8 CONCLUSION
In this paper, we propose a transformation fro m Ecore
metamode ls to induc tive types. This transformation
allows to set u p a mode l-driven language engineering
chain, e.g., involving Xtext and, at the same time, to
specify the language using a proof assistant, such as
Coq, and then prove properties of this specifica tion.
In comparison to previous work (Djeddai et al., 201 2;
Klint and van der Storm, 2016), our transformation
has fewer co nstraints on the source Ecore metamodel
and ensures stronger typing in the generated inductive
types, but it is not bijective.
To validate our pr oposal, we implement the
transformation using QVT-Operation al, Acceleo, and
EMF-and- Java. Then we f etch 151 (meta )meta-
models, whic h contains both synthetic and r eal-world
(meta)metamodels com ing from public repositories.
147 of the genera ted Coq scripts compile success-
fully; 2 make Coq ru n out of memory; the last 2 ones
need further study in order to handle the correspon-
ding specific pattern. To our knowledge, no previous
work discusses nor deals with this pa ttern.
In future work, we will study how additional parts
of such infrastructure can be automatically derived
from the Ecore metamodel, such that model-driven
engineer ing better integrates with proof assistants.
REFERENCES
Barbier, F. and Cariou, E. (2012). Inductive UML. In Pro-
ceedings of the 2nd International Conference on Mo-
del and Data Engineering, MEDI’12, pages 153–161,
Poitiers, France. Springer.
Bertot, Y. and Castran, P. (2010). Interactive Theorem Pro-
ving and Program Development: Coq’Art The Calcu-
lus of Inductive Constructions. Springer Publishing
Company, Incorporated, 1st edition.
Bettini, L. (2013). Implementing Domain-Specific Langua-
ges with Xtext and Xtend. Packt Publishing.
Borras, P., Clement, D., Despeyroux, T., Incerpi, J., Kahn,
G., Lang, B., and Pascual, V. (1988). Centaur: The
system. I n Proceedings of the Third ACM SIGS-
OFT/SIGPLAN Software Engineering Symposium on
Practical Software Development Environments, SDE
3, pages 14–24, Boston, Massachusetts, USA . ACM.
Cabot, J., Clarisó, R., and Riera, D. (2014). On the verifi-
cation of uml/ocl class diagrams using constraint pro-
gramming. Journal of Systems and Software, 93:1–23.
Djeddai, S., Strecker, M., and Mezghiche, M. (2012). In-
tegrating a formal development for DSLs into meta-
modeling. In Proceedings of the 2nd Internatio-
nal Conference on Model and Data Engineering,
MEDI’12, pages 55–66, Poitiers, France. Springer.
Klint, P. (1993). A meta-environment for generating pro-
gramming environments. ACM Trans. Softw. Eng.
Methodol., 2(2):176–201.
Klint, P. and van der Storm, T. (2016). Model Transfor-
mation with Immutable Data, pages 19–35. Springer
International P ublishing, Cham.
Lano, K., Clark, D., and Androutsopoulos, K. (2004). UML
to B: Formal Verification of Object-Oriented Models,
pages 187–206. Springer, B erlin, Heidelberg.
Meyer, E. and S ouquières, J. (1999). A systematic appro-
ach to tr ansform omt diagrams to a b specification. In
Proceedings of the Wold Congress on Formal Methods
in the Development of Computing Systems-Volume I
- Volume I, FM ’99, pages 875–895, London, UK.
Springer-Verlag.
Mulligan, D. P., Owens, S., Gray, K. E., Ridge, T., and
Sewell, P. (2014). Lem: Reusable engineering of
real-world semantics. In Proceedings of the 19th
ACM SIGPLAN International Conference on Functio-
nal Programming, I CFP ’14, pages 175–188, Gothen-
burg, Sweden. ACM.
Necula, G. C. (1997). Proof-carrying code. In Procee-
dings of the 24th ACM SIGPLAN-SIGACT Symposium
on Principles of Programming Languages, POPL ’97,
pages 106–119, Paris, France. ACM.
Nipkow, T., Wenzel, M., and Paulson, L. C. (2002). Isa-
belle/HOL: A Proof Assistant for Higher-order Logic.
Springer-Verlag, Berlin, Heidelberg.
Oquendo, F., Buisson, J., Leroux, E., Moguérou, G., and
Quilbeuf, J. ( 2016). The SoS Architect Studio: Tool-
chain for the Formal Architecture Description and
Analysis of Software-intensive S ystems-of-Systems
with SosADL. In Proceedings of the ECSA Interna-
tional Colloquium on Software-intensive Systems-of-
Systems (SiSoS), Copenhagen, Denmark.
Ro¸su, G. and ¸Serb
˘
anu¸t
˘
a, T. F. (2014). K overview and sim-
ple case study. Electronic Notes in Theoretical Com-
puter Science, 304:3–56. Proceedings of the Second
International Workshop on the K Framework and its
Applications (K 2011).
Sewell, P., Nardelli, F. z., Owens, S., Peskine, G., Ridge,
T., Sarkar, S., and StrniŠa, R. (2010). O tt: Effective
tool support for the working semanticist. J. Funct.
Program., 20(1):71–122.
Steinberg, D., Budinsky, F., Paternostro, M., and Merks,
E. (2009). EMF: Eclipse Modeling Framework 2.0.
Addison-Wesley P r ofessional, 2nd edition.
Voelter, M. (2013). Language and IDE Modularization
and Composition with MPS, pages 383–430. Sprin-
ger, Berlin, Heidelberg.