System models are essential in planning, designing, realizing, and maintaining production systems. AutomationML (AML) is an emerging standard to represent and exchange heterogeneous artifacts throughout the complete system life cycle and is more and more used as a modeling language. AML is designed as a flexible, prototype-based language able to represent the full spectrum of different artifacts. It may be utilized to build reusable libraries containing prototypical elements to build up production systems by using clones. However, libraries have to evolve over time, e.g., to reflect bug fixes, new features or refactorings, and so system models have to co-evolve to reflect
the changes in the libraries.
To tackle this co-evolution challenge, we specify in this paper the relationship between library elements, i.e., prototypes, and system elements, i.e., clones, by establishing a formal model for prototype-based modeling languages. Based on this formalization,we introduce several levels of consistency rigor one may want to achieve when modeling with prototype-based languages. These levels are also the main input to reason about the impact of library changes on the concrete system models for which we provide semi-automated co-evolution propagation strategies. We apply the established theory to the concrete AML case and present concrete tool support for evolving AML models based on Eclipse which demonstrates that consistency between system models and libraries may be maintained semi-automatically.