Abstract
In a world where trusting software systems is increasingly important, formal methods and formal proof can help provide some basis for trust. Proof checking can help to reduce the size of the trusted base since we do not need to trust an entire theorem prover: instead, we only need to trust a (smaller and simpler) proof checker. Many approaches to building proof checkers require embedding within them a full programming language. In most modern proof checkers and theorem provers, that programming language is a functional programming language, often a variant of ML. In fact, aspects of ML (e.g., strong typing, abstract datatypes, and higher-order programming) were designed to make ML a trustworthy “meta-language” for checking proofs. While there is considerable overlap between logic programming and proof checking (e.g., both benefit from unification, backtracking search, efficient term structures, etc.), the discipline of logic programming has, in fact, played a minor role in the history of proof checking. I will argue that logic programming can have a major role in the future of this important topic.
Similar content being viewed by others
References
Andreoli JM (1992) Logic programming with focusing proofs in linear logic. J Logic Comput 2(3): 297–347
Assaf A (2015) A framework for defining computational higher-order logics. PhD thesis, École Polytechnique
Baelde D (2012) Least and greatest fixed points in linear logic. ACM Trans Comput Logic 13(1)
Baelde D, Chaudhuri K, Gacek A, Miller D, Nadathur G, Tiu A, Wang Y (2014) Abella: a system for reasoning about relational specifications. J Formal Reas 7(2)
Baelde D, Gacek A, Miller D, Nadathur G, Tiu A (2007) The Bedwyr system for model checking over syntactic expressions. In: Pfenning F (ed) 21th conference on automated deduction (CADE). LNAI, vol 4603. Springer, New York, pp 391–397
Boyer RS, Moore JS (1979) A computational logic. Academic Press, New York
Baelde D, Miller D (2007) Least and greatest fixed points in linear logic. In: Dershowitz N, Voronkov A (eds) International conference on logic for programming and automated reasoning (LPAR), vol 4790. LNCS, New York, pp 92–106
Blanco R, Miller D (2015) Proof outlines as proof certificates: a system description. In: Cervesato I, Schürmann C (eds) Proceedings first international workshop on focusing. Electronic proceedings in theoretical computer science, vol 197. Open Publishing Association, Virginia, pp 7–14
Cousineau D, Dowek G (2007) Embedding pure type systems in the lambda-Pi-calculus modulo. In: Ronchi Della Rocca S (ed) Typed lambda calculi and applications, 8th international conference, TLCA 2007, Paris, France, June 26–28, 2007, proceedings, vol 4583. LNCS, Springer, Berlin, pp 102–117
Church A (1940) A formulation of the simple theory of types. J Symbol Logic 5: 56–68
Chihani Z, Libal T, Reis G (2015) The proof certifier Checkers. In: De Nivelle H (ed) Proceedings of the 24th automated reasoning with analytic tableaux and related methods (TABLEAUX), vol 9323. LNCS, Springer, Berlin, pp 201–210
Chihaniz MD (2016) Proof certificates for equality reasoning. In: Benevides M, Thiemann R (ed) Post-proceedings of LSFA 2015: 10th workshop on logical and semantic frameworks, with applications. Natal, Brazil, vol 323. ENTCS, UK
Chihani Z, Miller D, Renaud F (2013) Foundational proof certificates in first-order logic. In: Paola Bonacina M (ed) CADE 24: conference on automated deduction 2013, vol 7898. LNAI, Berlin, pp 162–177
Chihani Z, Miller D, Renaud F (2016) A semantic framework for proof evidence. J Autom Reas (Published electronically). doi:10.1007/s10817-016-9380-6
Chaudhuri K, Pfenning F, Price G (2008) A logical characterization of forward and backward chaining in the inverse method. J Autom Reas 40(2–3): 133–177
The Dedukti system (2013). https://www.rocq.inria.fr/deducteam/Dedukti/index.html
Dunchev C, Guidi F, Coen CS, Tassi E (2015) ELPI: fast, embeddable, \({\lambda}\)Prolog interpreter. In: Davis M, Fehnker A, McIver A, Voronkov A (eds) Logic for programming, artificial intelligence, and reasoning—20th international conference, LPAR-20 2015, Suva, Fiji, November 24–28, 2015, proceedings, vol 9450. LNCS, Springer, Berlin, pp 460–468
Danos V, Joinet JB, Schellinx H (1995) LKT and LKQ: sequent calculi for second order logic based upon dual linear decompositions of classical implication. In: Girard JY, Lafont Y, Regnier L (eds) Advances in linear logic, vol 222. London mathematical society lecture note series. Cambridge University Press, Cambridge, pp 211–224
Dyckhoff R, Lengrand S (2007) Call-by-value \({\lambda}\)-calculus and LJQ. J Logic Comput 17(6): 1109–1134
Gentzen G (1935) Investigations into logical deduction. In: Szabo ME (ed) The collected papers of Gerhard Gentzen. North-Holland, Amsterdam, pp 68–131
Girard JY (1987) Linear logic. Theor Comput Sci 50: 1–102
Girard JY (1991) A new constructive logic: classical logic. Math Struct Comput Sci 1: 255–296
Girard JY (1992) A fixpoint theorem in linear logic. An email posting to the mailing list linear@cs.stanford.edu
Gacek A, Miller D, Nadathur G (2012) A two-level logic approach to reasoning about computations. J Autom Reas 49(2): 241–273
Gordon MJ, Milner AJ, Wadsworth CP (1979) Edinburgh LCF: a mechanised logic of computation, vol 78. LNCS, Springer, Berlin
Gonthier G (2007) The four colour theorem: engineering of a formal proof. In: Kapur D (ed) 8th Asian symposium on computer mathematics, vol 5081. LNCS, Springer, Berlin, p 333
Hales TC (2005) A proof of the Kepler conjecture. Ann Math 162(3): 1065–1185
Herbelin H (1995) S équents qu’on calcule: de l’interprétation du calcul des séquents comme calcul de lambda-termes et comme calcul de stratégies gagnantes. PhD thesis, Université Paris 7
Harper R, Honsell F, Plotkin G (1993) A framework for defining logics. J ACM 40(1): 143–184
Heath Q, Miller D (2015) A framework for proof certificates in finite state exploration. In: Kaliszyk C, Paskevich A (eds) Proceedings of the fourth workshop on proof exchange for theorem proving. Electronic proceedings in theoretical computer science, vol 186. Open Publishing Association, Virginia, pp 11–26
Howe J.M (1998) Proof search issues in some non-classical logics. PhD thesis, University of St Andrews. University of St Andrews Research Report CS/99/1
Klein G, Elphinstone K, Heiser G, Andronick J, Cock D, Derrin P, Elkaduwe D, Engelhardt K, Kolanski R, Norrish M, Sewell T, Tuch H, Winwood S (2009) seL4: formal verification of an OS kernel. In: Proceedings of the 22nd symposium on operating systems principles (22nd SOSP’09), operating systems review (OSR). ACM SIGOPS, Big Sky, pp 207–220
Konev B, Lisitsa A (2014) A SAT attack on the Erdős discrepancy conjecture. In: International conference on theory and applications of satisfiability testing, vol 8561. LNCS, Springer, Berlin, pp 219–226
Laurent O (2002) Etude de la polarisation en logique. PhD thesis, Université Aix-Marseille II
Leroy X (2009) Formal verification of a realistic compiler. Commun. ACM 52(7): 107–115
Liang C, Miller D (2009) Focusing and polarization in linear, intuitionistic, and classical logics. Theor Comput Sci 410(46): 4747–4768
Meng J (2015) The integration of higher order interactive proof with first order automatic theorem proving. PhD thesis, University of Cambridge, Computer Laboratory
Milner R (1989) Communication and concurrency. Prentice-Hall International, USA
Miller D (1990) Abstractions in logic programming. In: Odifreddi P (ed) Logic and computer science. Academic Press, New York, pp 329–359
Miller D (2011) ProofCert: broad spectrum proof certificates. An ERC advanced grant funded for the five years 2012–2016
Miller D (2011) A proposal for broad spectrum proof certificates. In: Jouannaud JP, Shao Z (eds) CPP: first international conference on certified programs and proofs, vol 7086. LNCS, Springer, Berlin, pp 54–69
Miller D (2014) Communicating and trusting proofs: the case for broad spectrum proof certificates. In: Schroeder-Heister P, Hodges W, Heinzmann G, Bour PE (eds) Logic, methodology, and philosophy of science. Proceedings of the fourteenth international congress. College Publications, Wenham, pp 323–342
McDowell R, Miller D (2000) Cut-elimination for a logic with definitions and induction. Theor Comput Sci 232: 91–119
Marin S, Miller D, Volpe M (2016) A focused framework for emulating modal proof systems. In: Advances in modal logics (To appear)
Miller D, Nadathur G (2012) Programming with higher-order logic. Cambridge University Press, Cambridge
Miller D, Nadathur G, Pfenning F, Scedrov A (1991) Uniform proofs as a foundation for logic programming. Ann Pure Appl Logic 51: 125–157
Miller D, Tiu A (2005) A proof theory for generic judgments. ACM Trans Comput Logic 6(4): 749–783
Miller D, Volpe M (2015) Focused labeled proof systems for modal logic. In: Davis M, Fehnker A, McIver A, Voronkov A (eds) Logic for programming, artificial intelligence, and reasoning (LPAR), vol 9450. LNCS, Springer, Berlin, pp 266–280
Nadathur G, Mitchell DJ (1999) System description: Teyjus—a compiler and abstract machine based implementation of \({\lambda}\)Prolog. In: Ganzinger H (ed) 16th conf. on automated deduction (CADE), vol 1632. LNAI, Springer, Trento, pp 287–291
Necula GC, Rahul SP (2001) Oracle-based checking of untrusted software. In: Hankin C, Schmidt D (eds) 28th ACM symp. on principles of programming languages, pp 142–154
Pereira F (1988) C-Prolog user’s manual, version 1.5
Pfenning F, Schürmann C (1999) System description: Twelf—a meta-logical framework for deductive systems. In: Ganzinger H (ed) 16th conf. on automated deduction (CADE), vol 1632. LNAI, Springer, Trento, pp 202–206
Schroeder-Heister P (1993) Rules of definitional reflection. In: Vardi M (ed) 8th symp. on logic in computer science. IEEE Computer Society Press, IEEE, pp 222–232
Tiu A, Nadathur G, Miller D (2005) Mixing finite success and finite failure in an automated prover. In: Empirically successful automated reasoning in higher-order logics (ESHOL’05), pp 79–98
Wetzler N, Heule MJH, Hunt JWA (2014) DRAT-trim: efficient checking and trimming using expressive clausal proofs. In: Sinz C, Egly U (eds) Theory and applications of satisfiability testing SAT 2014, vol 8561. LNCS, Springer, Berlin, pp 422–429
Author information
Authors and Affiliations
Corresponding author
Additional information
Augusto Sampaio and Moreno Falashi
Rights and permissions
About this article
Cite this article
Miller, D. Proof checking and logic programming. Form Asp Comp 29, 383–399 (2017). https://doi.org/10.1007/s00165-016-0393-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-016-0393-z