Abstract
The programming environment FoCaLiZe allows the user to specify, implement, and prove programs with the help of the theorem prover Zenon. In the actual version, those proofs are verified by Coq. In this paper we propose to extend the FoCaLiZe compiler by a backend to the Dedukti language in order to benefit from Zenon Modulo, an extension of Zenon for Deduction modulo. By doing so, FoCaLiZe can benefit from a technique for finding and verifying proofs more quickly. The paper focuses mainly on the process that overcomes the lack of local pattern-matching and recursive definitions in Dedukti.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
This work is available at http://deducteam.gforge.inria.fr/focalide.
- 2.
The files can be obtained from http://deducteam.inria.fr/focalide.
References
Assaf, A.: A framework for defining computational higher-order logics. Ph.D. thesis, École Polytechnique (2015)
Assaf, A., Burel, G.: Translating HOL to Dedukti. In: Kaliszyk, C., Paskevich, A. (eds.) Proceedings Fourth Workshop on Proof eXchange for Theorem Proving. EPTCS, vol. 186, Berlin, Germany, pp. 74–88 (2015)
Bonichon, R., Delahaye, D., Doligez, D.: Zenon: an extensible automated theorem prover producing checkable proofs. In: Dershowitz, N., Voronkov, A. (eds.) LPAR 2007. LNCS (LNAI), vol. 4790, pp. 151–165. Springer, Heidelberg (2007). doi:10.1007/978-3-540-75560-9_13
Burel, G.: A shallow embedding of resolution and superposition proofs into the \(\lambda {\varPi }\)-calculus modulo. In: Blanchette, J.C., Urban, J. (eds.) PxTP 2013. 3rd International Workshop on Proof Exchange for Theorem Proving. EasyChair Proceedings in Computing, vol. 14, Lake Placid, USA, pp. 43–57 (2013)
Cauderlier, R.: Object-oriented mechanisms for interoperability between proof systems. Ph.D. thesis, Conservatoire National des Arts et Métiers, Paris (draft)
Cauderlier, R., Dubois, C.: Objects and subtyping in the \(\lambda \varPi \)-calculus modulo. In: Post-proceedings of the 20th International Conference on Types for Proofs and Programs (TYPES 2014). Leibniz International Proceedings in Informatics (LIPIcs), Schloss Dagstuhl, Paris (2014)
Cauderlier, R., Halmagrand, P.: Checking Zenon Modulo proofs in Dedukti. In: Kaliszyk, C., Paskevich, A. (eds.) Proceedings 4th Workshop on Proof eXchange for Theorem Proving. EPTCS, vol. 186, Berlin, Germany, pp. 57–73 (2015)
Cousineau, D., Dowek, G.: Embedding pure type systems in the \(\lambda {\varPi }\)-calculus modulo. In: Rocca, S.R.D. (ed.) TLCA 2007. LNCS, vol. 4583, pp. 102–117. Springer, Heidelberg (2007). doi:10.1007/978-3-540-73228-0_9
Delahaye, D., Doligez, D., Gilbert, F., Halmagrand, P., Hermant, O.: Zenon Modulo: when Achilles outruns the tortoise using deduction modulo. In: McMillan, K., Middeldorp, A., Voronkov, A. (eds.) LPAR-19. LNCS, vol. 8312, pp. 274–290. Springer, Heidelberg (2013). doi:10.1007/978-3-642-45221-5_20
Dubois, C., Pessaux, F.: Termination proofs for recursive functions in FoCaLiZe. In: Serrano, M., Hage, J. (eds.) TFP 2015. LNCS, vol. 9547, pp. 136–156. Springer, Heidelberg (2016). doi:10.1007/978-3-319-39110-6_8
Giesl, J., Raffelsieper, M., Schneider-Kamp, P., Swiderski, S., Thiemann, R.: Automated termination proofs for Haskell by term rewriting. ACM Trans. Program. Lang. Syst. 33(2), 7:1–7:39 (2011)
Kahl, W.: Basic pattern matching calculi: a fresh view on matching failure. In: Kameyama, Y., Stuckey, P.J. (eds.) FLOPS 2004. LNCS, vol. 2998, pp. 276–290. Springer, Heidelberg (2004). doi:10.1007/978-3-540-24754-8_20
Klop, J.W., van Oostrom, V., de Vrijer, R.: Lambda calculus with patterns. Theoret. Comput. Sci. 398(1–3), 16–31 (2008). Calculi, Types and Applications: Essays in honour of M. Coppo, M. Dezani-Ciancaglini and S. Ronchi Della Rocca
Lucas, S., Peña, R.: Rewriting techniques for analysing termination and complexity bounds of Safe programs. In: LOPSTR 2008, pp. 43–57 (2008)
Pessaux, F.: FoCaLiZe: inside an F-IDE. In: Dubois, C., Giannakopoulou, D., Méry, D. (eds.) Proceedings 1st Workshop on Formal Integrated Development Environment, F-IDE 2014. EPTCS, vol. 149, Grenoble, France, pp. 64–78 (2014)
Peyton Jones, S.L.: The Implementation of Functional Programming Languages. Prentice-Hall International Series in Computer Science. Prentice-Hall, Inc., Upper Saddle River (1987)
Saillard, R.: Type checking in the \(\lambda {\varPi }\)-calculus modulo: theory and practice. Ph.D. thesis, MINES Paritech (2015)
Acknowledgements
This work has been partially supported by the BWare project (ANR-12-INSE-0010) funded by the INS programme of the French National Research Agency (ANR).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Cauderlier, R., Dubois, C. (2016). ML Pattern-Matching, Recursion, and Rewriting: From FoCaLiZe to Dedukti. In: Sampaio, A., Wang, F. (eds) Theoretical Aspects of Computing – ICTAC 2016. ICTAC 2016. Lecture Notes in Computer Science(), vol 9965. Springer, Cham. https://doi.org/10.1007/978-3-319-46750-4_26
Download citation
DOI: https://doi.org/10.1007/978-3-319-46750-4_26
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-46749-8
Online ISBN: 978-3-319-46750-4
eBook Packages: Computer ScienceComputer Science (R0)