Skip to main content
×
×
Home

Plugging-in proof development environments using Locks in LF

  • FURIO HONSELL (a1), LUIGI LIQUORI (a2), PETAR MAKSIMOVIĆ (a3) (a4) and IVAN SCAGNETTO (a1)
Abstract

We present two extensions of the LF constructive type theory featuring monadic locks. A lock is a monadic type construct that captures the effect of an external call to an oracle. Such calls are the basic tool for plugging-in and gluing together, different metalanguages and proof development environments. Oracles can be invoked either to check that a constraint holds or to provide a witness. The systems are presented in the canonical style developed by the ‘CMU School.’ The first system, CLLF𝒫, is the canonical version of the system LLF𝒫, presented earlier by the authors. The second system, CLLF𝒫?, features the possibility of invoking the oracle to obtain also a witness satisfying a given constraint. In order to illustrate the advantages of our new frameworks, we show how to encode logical systems featuring rules that deeply constrain the shape of proofs. The locks mechanisms of CLLF𝒫 and CLLF𝒫? permit to factor out naturally the complexities arising from enforcing these ‘side conditions,’ which severely obscure standard LF encodings. We discuss Girard's Elementary Affine Logic, Fitch–Prawitz set theory, call-by-value λ-calculi and functions, both total and even partial.

Copyright
References
Hide All
Alechina, N., Mendler, M., De Paiva, V. and Ritter, E. (2001). Categorical and Kripke semantics for constructive s4 modal logic. In: Fribourg, L. (ed.) Computer Science Logic, Springer, 292307, doi:10.1007/3-540-44802-0_21.
Baillot, P., Coppola, P. and Dal Lago, U. (2007). Light logics and optimal reduction: Completeness and complexity. In: Proceedings of the Logic in Computer Science (LICS '07), IEEE Computer Society, 421–430, doi:10.1016/j.ic.2010.10.002.
Barbanera, F. and Martini, S. (1994). Proof-functional connectives and realizability. Archive for Mathematical Logic 33 189211.
Barendregt, H.P. and Barendsen, E. (2002). Autarkic computations in formal proofs. Journal of Automated Reasoning 28 321336, doi:10.1.1.39.3551.
Barthe, G., Cirstea, H., Kirchner, C. and Liquori, L. (2003). Pure pattern type systems. In: Proceedings of the 30th Annual SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'03), ACM, 250–261, doi:10.1.1.298.4555.
Battel, C. and Felty, A. (2015). A higher-order logical framework for reasoning about programming languages. In: Proceedings of the CMS Winter Meeting, Montréal, December 4–7, 2015.
Blanco, R., Chihani, Z. and Miller, D. (2017). Translating between implicit and explicit versions of proof. In: de Moura, L. (ed.), Proceedings of the 26th International Conference on Automated Deduction (CADE '17). Lecture Notes in Computer Science, vol. 10395, Springer, Cham.
Boespflug, M., Carbonneaux, Q. and Hermant, O. (2012). The λΠ-calculus modulo as a universal proof language. In: Proceedings of the 2nd International Workshop on Proof Exchange for Theorem Proving (PxTP '12), vol. 878, 28–43, doi:10.1.1.416.1602.
Boulton, R., Gordon, A., Gordon, M., Harrison, J., Herbert, J. and Van Tassel, J. (1992). Experience with embedding hardware description languages in HOL. In: Proceedings of the IFIP TC10/WG 10.2 International Conference on Theorem Provers in Circuit Design: Theory, Practice and Experience (TPCD '92), North-Holland, 129–156, doi:10.1.1.111.260.
Casinghino, C., Sjöberg, V. and Weirich, S. (2014). Combining proofs and programs in a dependently typed language. In: Proceedings of the 41st SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '14), ACM, 33–45.
Chihani, Z., Libal, T. and Reis, G. (2015). The proof certifier checkers. In: De Nivelle, H. (ed.) Automated Reasoning with Analytic Tableaux and Related Methods. Lecture Notes in Computer Science, vol. 9323, Springer, Cham.
Chihani, Z. and Miller, D. (2016). Proof Certificates for Equality Reasoning, Electronic Notes in Theoretical Computer Science, vol. 323, 93–108, ISSN 1571-0661.
Cousineau, D. and Dowek, G. (2007). Embedding pure type systems in the lambda-pi-calculus modulo. In: Proceedings of the International Conference on Typed Lambda Calculi and Applications (TLCA '07), Lecture Notes in Computer Science, vol. 4583, Springer-Verlag, 102–117, doi:10.1.1.102.4096.
Danielsson, N.A., Hughes, J., Jansson, P. and Gibbons, J. (2006). Fast and loose reasoning is morally correct. In: Proceedings of the 33rd SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '06), ACM, 206–217.
Fairtlough, M. and Mendler, M. (1997). Propositional lax logic. Information and Computation 137 (1) 133, doi:10.1.1.22.5812.
Fairtlough, M., Mendler, M. and Cheng, X. (2001). Abstraction and refinement in higher order logic. In: Boulton, R. J., Jackson, P. B. (eds.) Theorem Proving in Higher Order Logics, Springer, 201216, doi:10.1.1.29.3515.
Fairtlough, M. Mendler, M. and Walton, M. (1997). First-order lax logic as a framework for constraint logic programming. Tech. rep. MIPS-9714, https://pdfs.semanticscholar.org/a934/8355b554e593e1e9e370136f1d7e268c8ba8.pdf.
Filliâtre, J.-C. (2013). One logic to use them all. In: Maria Paola Bonacina (ed.) Proceedings of the 24th International Conference on Automated Deduction (CADE '13), Lake Placid, New York, NY, USA.
Fitch, F.B. (1952). Symbolic Logic—An Introduction, New York, NY, Ronald Press Co, ASIN: B0007DLS2O.
Garg, D. and Tschantz, M.C. (2008). From indexed lax logic to intuitionistic logic. Tech. rep. CMU-CS-07-167, doi:10.1.1.295.8643.
Girard, J.-Y. (1998). Light linear logic. Information and Computation 143 (2) 175204, doi:10.1.1.134.4420.
Harper, R. and Licata, D. (2007). Mechanizing metatheory in a logical framework. Journal of Functional Programming 17 613673, doi:10.1017/S0956796807006430.
Hirschkoff, D. (1997). Bisimulation proofs for the π-calculus in the calculus of constructions. In: Proceedings of the International Conference on Theorem Proving in Higher Order Logics (TPHOL'97), Lecture Notes in Computer Science, vol. 1275, Springer, doi:10.1007/BFb0028392.
Honsell, F., Miculan, M. and Scagnetto, I. (2001). π-calculus in (Co)inductive type theories. Theoretical Computer Science 253 (2) 239285, doi:10.1016/S0304-3975(00)00095-5.
Honsell, F., Lenisa, M. and Liquori, L. (2007). A framework for defining logical frameworks. Volume in Honor of G. Plotkin, Electronic Notes in Theoretical Computer Science, vol. 172, 399–436, doi:10.1016/j.entcs.2007.02.014.
Honsell, F., Lenisa, M., Liquori, L., Maksimovic, P. and Scagnetto, I. (2012). LF𝒫: A logical framework with external predicates. In: Proceedings of the International Workshop on Logical Frameworks and Metalanguages: Theory and Practice (LFMTP '12), ACM, 13–22, doi:10.1145/2364406.2364409.
Honsell, F., Lenisa, M., Liquori, L., Maksimovic, P. and Scagnetto, I. (2016). An open logical framework. Journal of Logic and Computation 26 (1) 293–335, https://doi.org/10.1093/logcom/ext028
Honsell, F. (2013). 25 years of formal proof cultures: Some problems, some philosophy, bright future. In: Proceedings of the 8th SIGPLAN International Workshop on Logical Frameworks and Metalanguages: Theory and Practise (LFMTP'13), ACM, 37–42, doi: 10.1145/2503887.2503896.
Honsell, F., Liquori, L. and Scagnetto, I. (2014). LaxF: Side conditions and external evidence as monads. In: Proceedings of the 39th International Symposium on Mathematical Foundations of Computer Science (MFCS '14), Part I, Lecture Notes in Computer Science, vol. 8634, Budapest, Hungary, August 2014. Springer, 327–339, doi:10.1007/978-3-662-44522-8_28.
Honsell, F., Liquori, L., Maksimovic, P. and Scagnetto, I. (2015). Gluing together proof environments: Canonical extensions of LF type theories featuring locks. In: Proceedings of the International Workshop on Logical Frameworks and Metalanguages: Theory and Practice (LFMTP '15), Berlin, Germany, August 01, 2015, 3–17, Open Publishing Association, http://dx.doi.org/10.4204/EPTCS.185.1, ISSN: 2075-2180.
Honsell, F. (2016). Wherefore art thou . . . semantics of computation?. In: Gadducci, F., Tavosanis, M. (eds) History and Philosophy of Computing. HaPoC 2015. IFIP Advances in Information and Communication Technology, vol 487. Springer, Cham.
Honsell, F., Liquori, L., Maksimovic, P. and Scagnetto, I. (2017). LLF𝒫: A logical framework for modeling external evidence, side conditions, and proof irrelevance using monads. In: Proceedings of the Logical Methods in Computer Science, vol. 13 (3) July 6, 2017, Special Issue of Logical Methods in Computer Science devoted to Festschrift for Pierre-Louis Curien.
Honsell, F., Lenisa, M., Liquori, L. and Scagnetto, I. (2016). Implementing Cantor's Paradise. In: Proceedings of 14th Asian Symposium on Programming Languages and Systems (APLAS '16), Chapter Programming Languages and Systems, Lecture Notes in Computer Science, vol. 10017, Vietnam, November 21–23, Springer, 229–250.
Kerber, M. (2006). A dynamic poincaré principle. In: Borwein, J.M. and Farmer, W.M. (eds.) Proceedings of 5th International Conference on Mathematical Knowledge Management (MKM '06), Lecture Notes in Artificial Intelligence, vol. 4108, Springer, 44–53.
Mendler, M. (1991). Constrained proofs: A logic for dealing with behavioral constraints in formal hardware verification. In: Jones, G., Sheeran, M. (eds.) Designing Correct Circuits, Springer-Verlag, 128, doi:10.1007/978-1-4471-3544-9_1.
Moggi, E. (1988). The Partial Lambda Calculus. Ph.D. thesis, University of Edinburgh, doi:10.1.1.53.8462.
Moggi, E. (1989). Computational lambda-calculus and monads. In: Proceedings of the Lecture Notes in Computer Science (LICS '89), IEEE Press, 14–23. doi:10.1.1.26.2787.
Nanevski, A., Pfenning, F. and Pientka, B. (2008). Contextual modal type theory. ACM Transactions on Computational Logic 9 (3), doi:10.1145/1352582.1352591.
Pfenning, F. and Schürmann, C. (1999). System description: Twelf–A meta-logical framework for deductive systems. In: Proceedings of the 16th International Conference on Automated Deduction: Automated Deduction (CADE '99), Lecture Notes in Computer Science, vol. 1632, Springer-Verlag, 202–206, doi:10.1007/3-540-48660-7_14.
Pientka, B. and Dunfield, J. (2008). Programming with proofs and explicit contexts. In: Proceedings of the 10th International SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP' 08), ACM, 163–173, doi:10.1145/1389449.1389469.
Pientka, B. and Dunfield, J. (2010). Beluga: A framework for programming and reasoning with deductive systems (system description). In: Proceedings of the International Symposium on Frontiers of Combining Systems (IJCAR '10), Lecture Notes in Computer Science, Springer-Verlag, 15–21. doi:10.1007/978-3-642-14203-1_2.
Pottinger, G. A type assignment for the strongly normalizable λ-terms. (1980). In: To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, Academic Press, 561577.
Prawitz, D. (1965). Natural Deduction. A Proof Theoretical Study, Almqvist Wiksell, Stockholm, ISBN: 978-0486446554.
Schack-Nielsen, A. and Schürmann, C. (2008). Celf—A logical framework for deductive and concurrent systems (System description). In: Armando, A., Baumgartner, P., Dowek, G. (eds.) Automated Reasoning, Springer, 320326, doi:10.1007/978-3-540-71070-7_28.
Schroeder-Heister, P. (2012a). Paradoxes and structural rules. In: Novaes, C. D., Hjortland, O. T. (eds.) Insolubles and Consequences : Essays in Honor of Stephen Read, College Publications, London, 203211, ISBN 978-1-84890-086-8.
Schroeder-Heister, P. (2012b). Proof-theoretic semantics, self-contradiction, and the format of deductive reasoning. Topoi 31 (1) 7785, doi:10.1007/s11245-012-9119-x.
Stump, A. (2009). Proof checking technology for satisfiability modulo theories. In: Proceedings of the 4th International Workshop on Logical Frameworks and Metalanguages: Theory and Practice (LFMTP '08), vol. 228, 121–133, doi:10.1.1.219.1459.
Stump, A., Reynolds, A., Tinelli, C., Laugesen, A., Eades, H., Oliver, C. and Zhang, R. (2012). LFSC for SMT proofs: Work in progress. In: Proceedings of the 2nd International Workshop on Proof eXchange for Theorem Proving (PxTP '12), Manchester, UK.
Wang, Y. and Chaudhuri, K. (2015). A proof-theoretic characterization of independence in type theory. In: Proceedings of the 13th International Conference on Typed Lambda Calculi and Applications (TLCA '15), vol. 38, 332–346.
Watkins, K., Cervesato, I., Pfenning, F. and Walker, D. (2002). A concurrent logical framework I: Judgments and properties. Tech. rep. CMU-CS-02-101, CMU, doi:10.1.1.14.5484.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Mathematical Structures in Computer Science
  • ISSN: 0960-1295
  • EISSN: 1469-8072
  • URL: /core/journals/mathematical-structures-in-computer-science
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
×

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 8 *
Loading metrics...

Abstract views

Total abstract views: 83 *
Loading metrics...

* Views captured on Cambridge Core between 15th May 2018 - 14th August 2018. This data will be updated every 24 hours.