Skip to main content

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

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Networks and Systems ((LNNS,volume 64))

Abstract

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  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). https://doi.org/10.5220/0006608604880495

  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. 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). https://doi.org/10.1007/978-3-662-07964-5

  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). https://doi.org/10.1145/263699.263712

  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). https://doi.org/10.1109/SYSOSE.2018.8428726

  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). https://doi.org/10.1007/978-3-642-20401-2_12

  7. Bettini, L.: Implementing Domain-Specific Languages with Xtext and Xtend. Packt Publishing, Birmingham (2013)

    Google Scholar 

  8. Djeddai, S., Strecker, M., Mezghiche, M.: Integrating a formal development for DSLs into meta-modeling. J. Data Semant. 3(3), 143–155 (2014). https://doi.org/10.1007/s13740-013-0030-4

  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). https://doi.org/10.1007/978-3-319-42064-6_2

  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). https://doi.org/10.1007/3-540-48119-2_48

  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). https://doi.org/10.1007/978-3-540-24756-2_11

  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). https://doi.org/10.1007/978-3-642-33609-6_15

  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). https://doi.org/10.1016/j.jss.2014.03.023

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jérémy Buisson .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Buisson, J., Rehab, S. (2019). Effective Bridging Between Ecore and Coq: Case of a Type-Checker with Proof-Carrying Code. In: Chikhi, S., Amine, A., Chaoui, A., Saidouni, D.E. (eds) Modelling and Implementation of Complex Systems. MISC 2018. Lecture Notes in Networks and Systems, vol 64. Springer, Cham. https://doi.org/10.1007/978-3-030-05481-6_20

Download citation

Publish with us

Policies and ethics