Effective Bridging Between Ecore and Coq: Case of a Type-Checker with Proof-Carrying Code

  • Jérémy BuissonEmail author
  • Seidali Rehab
Conference paper
Part of the Lecture Notes in Networks and Systems book series (LNNS, volume 64)


The work presented in this paper lies in the context of implementing supporting tools for a domain-specific language named SosADL, targeted at the description and analysis of architecture for systems of systems. While the language has formal definition rooted in the Cc-pi calculus, we have adopted the Eclipse ecosystem, including EMF, Ecore and Xtext for the convenience they provide in implementation tasks. Proof-carrying code is a well-known approach to ensure such an implementation involving non-formal technologies conforms to its formal definition, by making the implementation generate proof in addition to usual output artifacts. In this paper, we therefore investigate for an infrastructure that eases the development of proof-carrying code for an Eclipse/EMF/Ecore/Xtext-based tool in relation with the Coq proof assistant. At the core of our approach, we combine an automatic transformation of a metamodel into a set of inductive types, in conjunction with a second transformation of model elements into terms. The first one, reused from our previous work, provides necessary abstract syntax definitions such that the formal definition of the language can be mechanized using Coq. The second transformation is part of the proof generator.


Ecore Coq Proof-carrying code Model transformation 


  1. 1.
    Buisson, J., Rehab, S.: Automatic transformation from ecore metamodels towards gallina inductive types. In: Hammoudi, S., Pires, L.F., Selic, B. (eds.) Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development, MODELSWARD 2018, Funchal, Madeira, Portugal, 22–24 Jan 2018. pp. 488–495. SciTePress (2018).
  2. 2.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework 2.0, 2nd edn. Addison-Wesley Professional, New York (2009)Google Scholar
  3. 3.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development—Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. An EATCS Series. Springer, Berlin (2004). Scholar
  4. 4.
    Necula, G.C.: Proof-carrying code. In: Lee, P., Henglein, F., Jones, N.D. (eds.) Conference Record of POPL’97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. Papers Presented at the Symposium, Paris, France, 15–17 Jan 1997, pp. 106–119. ACM Press (1997).
  5. 5.
    Oquendo, F., Buisson, J., Leroux, E., Moguérou, G.: A formal approach for architecting software-intensive systems-of-systems with guarantees. In: 13th Annual Conference on System of Systems Engineering, SoSE 2018, Paris, France, 19–22 June 2018, pp. 14–21. IEEE (2018).
  6. 6.
    Buscemi, M.G., Montanari, U.: Cc-pi: a constraint language for service negotiation and composition. In: Wirsing, M., Hölzl, M.M. (eds.) Rigorous Software Engineering for Service-Oriented Systems—Results of the SENSORIA Project on Software Engineering for Service-Oriented Computing. Lecture Notes in Computer Science, vol. 6582, pp. 262–281. Springer (2011). Scholar
  7. 7.
    Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing, Birmingham (2013)Google Scholar
  8. 8.
    Djeddai, S., Strecker, M., Mezghiche, M.: Integrating a formal development for DSLs into meta-modeling. J. Data Semant. 3(3), 143–155 (2014). Scholar
  9. 9.
    Klint, P., van der Storm, T.: Model transformation with immutable data. In: Gorp, P.V., Engels, G. (eds.) Theory and Practice of Model Transformations—9th International Conference, ICMT 2016, Held as Part of STAF 2016, Vienna, Austria, 4–5 July 2016, Proceedings. Lecture Notes in Computer Science, vol. 9765, pp. 19–35. Springer (2016). Scholar
  10. 10.
    Meyer, E., Souquières, J.: A systematic approach to transform OMT diagrams to a B specification. In: Wing, J.M., Woodcock, J., Davies, J. (eds.) FM’99—Formal Methods, World Congress on Formal Methods in the Development of Computing Systems, Toulouse, France, 20–24 Sept 1999, Proceedings, Volume I. Lecture Notes in Computer Science, vol. 1708, pp. 875–895. Springer (1999). Scholar
  11. 11.
    Lano, K., Clark, D., Androutsopoulos, K.: UML to B: formal verification of object-oriented models. In: Boiten, E.A., Derrick, J., Smith, G. (eds.) Integrated Formal Methods, 4th International Conference, IFM 2004, Canterbury, UK, 4–7 April 2004, Proceedings. Lecture Notes in Computer Science, vol. 2999, pp. 187–206. Springer (2004). Scholar
  12. 12.
    Barbier, F., Cariou, E.: Inductive UML. In: Abelló, A., Bellatreche, L., Benatallah, B. (eds.) Model and Data Engineering—2nd International Conference, MEDI 2012, Poitiers, France, 3–5 Oct 2012. Proceedings. Lecture Notes in Computer Science, vol. 7602, pp. 153–161. Springer (2012). Scholar
  13. 13.
    Cabot, J., Clarisó, R., Riera, D.: On the verification of UML/OCL class diagrams using constraint programming. J. Syst. Softw. 93, 1–23 (2014). Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.IRISA, Écoles de Saint-Cyr CoëtquidanGuerFrance
  2. 2.MISC, University of Constantine 2 - Abdelhamid MehriConstantineAlgeria

Personalised recommendations