Skip to main content
Log in

Proof checking and logic programming

  • Original Article
  • Published:
Formal Aspects of Computing

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Andreoli JM (1992) Logic programming with focusing proofs in linear logic. J Logic Comput 2(3): 297–347

    Article  MathSciNet  MATH  Google Scholar 

  2. Assaf A (2015) A framework for defining computational higher-order logics. PhD thesis, École Polytechnique

  3. Baelde D (2012) Least and greatest fixed points in linear logic. ACM Trans Comput Logic 13(1)

  4. 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)

  5. 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

    Google Scholar 

  6. Boyer RS, Moore JS (1979) A computational logic. Academic Press, New York

    MATH  Google Scholar 

  7. 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

    Google Scholar 

  8. 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

    Google Scholar 

  9. 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

  10. Church A (1940) A formulation of the simple theory of types. J Symbol Logic 5: 56–68

    Article  MathSciNet  MATH  Google Scholar 

  11. 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

    Chapter  Google Scholar 

  12. 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

  13. 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

  14. 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

  15. 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

    Article  MathSciNet  MATH  Google Scholar 

  16. The Dedukti system (2013). https://www.rocq.inria.fr/deducteam/Dedukti/index.html

  17. 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

  18. 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

    Google Scholar 

  19. Dyckhoff R, Lengrand S (2007) Call-by-value \({\lambda}\)-calculus and LJQ. J Logic Comput 17(6): 1109–1134

    Article  MathSciNet  MATH  Google Scholar 

  20. Gentzen G (1935) Investigations into logical deduction. In: Szabo ME (ed) The collected papers of Gerhard Gentzen. North-Holland, Amsterdam, pp 68–131

    Google Scholar 

  21. Girard JY (1987) Linear logic. Theor Comput Sci 50: 1–102

    Article  MathSciNet  MATH  Google Scholar 

  22. Girard JY (1991) A new constructive logic: classical logic. Math Struct Comput Sci 1: 255–296

    Article  MathSciNet  MATH  Google Scholar 

  23. Girard JY (1992) A fixpoint theorem in linear logic. An email posting to the mailing list linear@cs.stanford.edu

  24. Gacek A, Miller D, Nadathur G (2012) A two-level logic approach to reasoning about computations. J Autom Reas 49(2): 241–273

    Article  MathSciNet  MATH  Google Scholar 

  25. Gordon MJ, Milner AJ, Wadsworth CP (1979) Edinburgh LCF: a mechanised logic of computation, vol 78. LNCS, Springer, Berlin

    Book  MATH  Google Scholar 

  26. 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

    Google Scholar 

  27. Hales TC (2005) A proof of the Kepler conjecture. Ann Math 162(3): 1065–1185

    Article  MathSciNet  MATH  Google Scholar 

  28. 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

  29. Harper R, Honsell F, Plotkin G (1993) A framework for defining logics. J ACM 40(1): 143–184

    Article  MathSciNet  MATH  Google Scholar 

  30. 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

    Google Scholar 

  31. 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

  32. 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

  33. 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

  34. Laurent O (2002) Etude de la polarisation en logique. PhD thesis, Université Aix-Marseille II

  35. Leroy X (2009) Formal verification of a realistic compiler. Commun. ACM 52(7): 107–115

    Article  Google Scholar 

  36. Liang C, Miller D (2009) Focusing and polarization in linear, intuitionistic, and classical logics. Theor Comput Sci 410(46): 4747–4768

    Article  MathSciNet  MATH  Google Scholar 

  37. Meng J (2015) The integration of higher order interactive proof with first order automatic theorem proving. PhD thesis, University of Cambridge, Computer Laboratory

  38. Milner R (1989) Communication and concurrency. Prentice-Hall International, USA

    MATH  Google Scholar 

  39. Miller D (1990) Abstractions in logic programming. In: Odifreddi P (ed) Logic and computer science. Academic Press, New York, pp 329–359

    Google Scholar 

  40. Miller D (2011) ProofCert: broad spectrum proof certificates. An ERC advanced grant funded for the five years 2012–2016

  41. 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

    Google Scholar 

  42. 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

  43. McDowell R, Miller D (2000) Cut-elimination for a logic with definitions and induction. Theor Comput Sci 232: 91–119

    Article  MathSciNet  MATH  Google Scholar 

  44. Marin S, Miller D, Volpe M (2016) A focused framework for emulating modal proof systems. In: Advances in modal logics (To appear)

  45. Miller D, Nadathur G (2012) Programming with higher-order logic. Cambridge University Press, Cambridge

    Book  MATH  Google Scholar 

  46. Miller D, Nadathur G, Pfenning F, Scedrov A (1991) Uniform proofs as a foundation for logic programming. Ann Pure Appl Logic 51: 125–157

    Article  MathSciNet  MATH  Google Scholar 

  47. Miller D, Tiu A (2005) A proof theory for generic judgments. ACM Trans Comput Logic 6(4): 749–783

    Article  MathSciNet  Google Scholar 

  48. 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

    Chapter  Google Scholar 

  49. 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

  50. 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

  51. Pereira F (1988) C-Prolog user’s manual, version 1.5

  52. 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

  53. 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

    Google Scholar 

  54. 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

  55. 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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dale Miller.

Additional information

Augusto Sampaio and Moreno Falashi

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00165-016-0393-z

Keywords

Navigation