Zinc is a new modelling language developed as part of the G12 project. It has four important characteristics. First, Zinc allows specication of models using a natural mathematicallike notation. To do so it supports overloaded functions and predicates and automatic coercion and provides arithmetic, nite domain and set constraints. Second, while Zinc is a relatively simple and small language, it can be readily extended to dierent application areas by means of powerful language constructs such as user-dened predicates and functions and constrained types. Third, Zinc provides sophisticated type and instantiation checking which allows early detection of errors in models. Finally, perhaps the main novelty in Zinc is that it is designed to support a modelling methodology in which the same conceptual model can be automatically mapped into dierent design models, thus allowing modellers to easily \plug and play" with dierent solving techniques and so choose the most appropriate for that ...