Formal Aspects of Computing

, Volume 29, Issue 3, pp 383–399 | Cite as

Proof checking and logic programming

  • Dale Miller
Original Article


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.


Proof checking Proof certificates Logic programming Focused proof systems 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. And92.
    Andreoli JM (1992) Logic programming with focusing proofs in linear logic. J Logic Comput 2(3): 297–347MathSciNetCrossRefzbMATHGoogle Scholar
  2. Ass15.
    Assaf A (2015) A framework for defining computational higher-order logics. PhD thesis, École PolytechniqueGoogle Scholar
  3. Bae12.
    Baelde D (2012) Least and greatest fixed points in linear logic. ACM Trans Comput Logic 13(1)Google Scholar
  4. BCG+14.
    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)Google Scholar
  5. BGM+07.
    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–397Google Scholar
  6. BM79.
    Boyer RS, Moore JS (1979) A computational logic. Academic Press, New YorkzbMATHGoogle Scholar
  7. BM07.
    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–106Google Scholar
  8. BM15.
    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–14Google Scholar
  9. CD07.
    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–117Google Scholar
  10. Chu40.
    Church A (1940) A formulation of the simple theory of types. J Symbol Logic 5: 56–68MathSciNetCrossRefzbMATHGoogle Scholar
  11. CLR15.
    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–210CrossRefGoogle Scholar
  12. CM16.
    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, UKGoogle Scholar
  13. CMR13.
    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–177Google Scholar
  14. CMR16.
    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. CPP08.
    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–177MathSciNetCrossRefzbMATHGoogle Scholar
  16. Ded13.
  17. DGCT15.
    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–468Google Scholar
  18. DJS95.
    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–224Google Scholar
  19. DL07.
    Dyckhoff R, Lengrand S (2007) Call-by-value \({\lambda}\)-calculus and LJQ. J Logic Comput 17(6): 1109–1134MathSciNetCrossRefzbMATHGoogle Scholar
  20. Gen35.
    Gentzen G (1935) Investigations into logical deduction. In: Szabo ME (ed) The collected papers of Gerhard Gentzen. North-Holland, Amsterdam, pp 68–131Google Scholar
  21. Gir87.
    Girard JY (1987) Linear logic. Theor Comput Sci 50: 1–102MathSciNetCrossRefzbMATHGoogle Scholar
  22. Gir91.
    Girard JY (1991) A new constructive logic: classical logic. Math Struct Comput Sci 1: 255–296MathSciNetCrossRefzbMATHGoogle Scholar
  23. Gir92.
    Girard JY (1992) A fixpoint theorem in linear logic. An email posting to the mailing list linear@cs.stanford.eduGoogle Scholar
  24. GMN12.
    Gacek A, Miller D, Nadathur G (2012) A two-level logic approach to reasoning about computations. J Autom Reas 49(2): 241–273MathSciNetCrossRefzbMATHGoogle Scholar
  25. GMW79.
    Gordon MJ, Milner AJ, Wadsworth CP (1979) Edinburgh LCF: a mechanised logic of computation, vol 78. LNCS, Springer, BerlinCrossRefzbMATHGoogle Scholar
  26. Gon07.
    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 333Google Scholar
  27. Hal05.
    Hales TC (2005) A proof of the Kepler conjecture. Ann Math 162(3): 1065–1185MathSciNetCrossRefzbMATHGoogle Scholar
  28. Her95.
    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 7Google Scholar
  29. HHP93.
    Harper R, Honsell F, Plotkin G (1993) A framework for defining logics. J ACM 40(1): 143–184MathSciNetCrossRefzbMATHGoogle Scholar
  30. HM15.
    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–26Google Scholar
  31. How98.
    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/1Google Scholar
  32. KEH+09.
    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–220Google Scholar
  33. KL14.
    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–226Google Scholar
  34. Lau02.
    Laurent O (2002) Etude de la polarisation en logique. PhD thesis, Université Aix-Marseille IIGoogle Scholar
  35. Ler09.
    Leroy X (2009) Formal verification of a realistic compiler. Commun. ACM 52(7): 107–115CrossRefGoogle Scholar
  36. LM09.
    Liang C, Miller D (2009) Focusing and polarization in linear, intuitionistic, and classical logics. Theor Comput Sci 410(46): 4747–4768MathSciNetCrossRefzbMATHGoogle Scholar
  37. Men15.
    Meng J (2015) The integration of higher order interactive proof with first order automatic theorem proving. PhD thesis, University of Cambridge, Computer LaboratoryGoogle Scholar
  38. Mil89.
    Milner R (1989) Communication and concurrency. Prentice-Hall International, USAzbMATHGoogle Scholar
  39. Mil90.
    Miller D (1990) Abstractions in logic programming. In: Odifreddi P (ed) Logic and computer science. Academic Press, New York, pp 329–359Google Scholar
  40. Mil11a.
    Miller D (2011) ProofCert: broad spectrum proof certificates. An ERC advanced grant funded for the five years 2012–2016Google Scholar
  41. Mil11b.
    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–69Google Scholar
  42. Mil14.
    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–342Google Scholar
  43. MM00.
    McDowell R, Miller D (2000) Cut-elimination for a logic with definitions and induction. Theor Comput Sci 232: 91–119MathSciNetCrossRefzbMATHGoogle Scholar
  44. MMV16.
    Marin S, Miller D, Volpe M (2016) A focused framework for emulating modal proof systems. In: Advances in modal logics (To appear) Google Scholar
  45. MN12.
    Miller D, Nadathur G (2012) Programming with higher-order logic. Cambridge University Press, CambridgeCrossRefzbMATHGoogle Scholar
  46. MNPS91.
    Miller D, Nadathur G, Pfenning F, Scedrov A (1991) Uniform proofs as a foundation for logic programming. Ann Pure Appl Logic 51: 125–157MathSciNetCrossRefzbMATHGoogle Scholar
  47. MT05.
    Miller D, Tiu A (2005) A proof theory for generic judgments. ACM Trans Comput Logic 6(4): 749–783MathSciNetCrossRefGoogle Scholar
  48. MV15.
    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–280CrossRefGoogle Scholar
  49. NM99.
    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–291Google Scholar
  50. NR01.
    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–154Google Scholar
  51. Per88.
    Pereira F (1988) C-Prolog user’s manual, version 1.5Google Scholar
  52. PS99.
    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–206Google Scholar
  53. SH93.
    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–232Google Scholar
  54. TNM05.
    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–98Google Scholar
  55. WHH14.
    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–429Google Scholar

Copyright information

© British Computer Society 2016

Authors and Affiliations

  1. 1.Inria Saclay & LIX, École PolytechniquePalaiseauFrance

Personalised recommendations