Hostname: page-component-cd9895bd7-lnqnp Total loading time: 0 Render date: 2024-12-30T19:54:53.986Z Has data issue: false hasContentIssue false

Ergo 6: A Generic Proof Engine that Uses Prolog Proof Technology

Published online by Cambridge University Press:  01 February 2010

Mark Utting
Affiliation:
Department of Computer Science, The University of Waikato, Private Bag 3105, Hamilton, New Zealand, marku@cs.waikato.ac.nz
Peter Robinson
Affiliation:
Information Technology and Electrical Engineering, The University of Queensland, Brisbane, Queensland 4072, Australia, pjr@itee.uq.edu.au
Ray Nickson
Affiliation:
School of Mathematical and Computing Sciences, Victoria University of Wellington, P.O. Box 600, Wellington, New Zealand, Ray.Nickson@mcs.vuw.ac.nz

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

To support formal reasoning in mathematical and software engineering applications, it is desirable to have a generic prover that can be instantiated with a range of logics. This allows the prover to be applied to a wider variety of reasoning tasks than a fixed-logic prover. This paper describes the design principles and the architecture of the latest version of the Ergo proof engine, Ergo 6. Ergo 6 is a generic interactive theorem prover, similar to Isabelle, but with better support for proving schematic theorems with user-defined constraints, and with a different approach to handling variable scoping. A major theme of the paper is that Prolog implementation technology can be generalized to obtain efficient implementations of generic proof engines. This is demonstrated via a Qu-Prolog implementation of Ergo 6.

Type
Research Article
Copyright
Copyright © London Mathematical Society 2002

References

1Bornat, R., Sufrin, B., ‘Jape: A calculator for animating proof-on-paper‘, Automated Deduction - CADE-14, 14th International Conference on Automated Deduction, Townsville, North Queensland, Australia, Lecture Notes in Comput. Sci. 1249 (ed. McCune, William, Springer, 1997)412415.Google Scholar
2Boyer, R. S., Moore, J. S., A computational logic (Academic Press, 1979).Google Scholar
3Deransart, P., ED-Dbali, A., Cervoni, L., Prolog: the standard reference manual (Springer, 1996).Google Scholar
4Dijkstra, Edsger W., A discipline of programming (Prentice-Hall, Englewood Cliffs, NJ, 1976).Google Scholar
5Gentzen, Gerhard, ‘Investigations into logical deduction‘, The collected papers of Gerhard Gentzen, Stud. Logic Found. Math. F (ed. Szabo, M. E., North-Holland, 1969; first published 1934) 68131.Google Scholar
6Gordon, Mike and Melham, T. F. (eds), Introduction to HOL: a theorem-proving environment for higher-order logic (Cambridge University Press, 1993).Google Scholar
7Hamilton, Nicholas, Nickson, Ray, Traynor, Owen and Utting, Mark, ‘Interpretation and instantiation of theories for reasoning about formal specifications’, Proc. Twentieth Australasian Computer Science Conference (ACSC'97), Austral. Comput.Sci. Comm. 19 (ed. M. Patel, Macquarie University, Sydney, 1997) 37–5; see also Technical Report SVRC-96-21, Software Verification Research Centre, The University of Queensland, 1996.Google Scholar
8van Hentenryck, P., Constraint satisfaction in logic programming, Logic Programming Series (The MIT Press, Cambridge, MA, 1989).Google Scholar
9Jones, C. B., Jones, K. D., Lindsay, P. A., and Moore, R., mural: a formal development support system (Springer, 1991).CrossRefGoogle Scholar
10Kalvala, Sara, ‘Annotations in formal specifications and proofs’, Form. Meth. Syst. Des. 5 (1994) 119144.CrossRefGoogle Scholar
11Kanger, S., ‘A simplified proof method for elementary logic’, Computer programming and formal systems (ed. Braffort, P. and D. Hirschberg, North-Holland, 1963) 8995.Google Scholar
12Kaufmann, Matt and Moore, J. Strother, ‘Design goals for ACL2’, CLI Technical Report 101, Computational Logic, Inc., 1717 West Sixth Street, Suite 290, Austin, Texas 78703–4776, August 1994.Google Scholar
13Martin, A. P., Gardiner, P. H .B. and Woodcock, J.C.P., ‘, A tactic calculus ’ (abridged version), Formal Aspects of Computing 8 (1996) 479489; the full version is available at the Formal Aspects of Computing FTP site: ftp://ftp.cs.man.ac.uk/pub/fac.Google Scholar
14Martin, Andrew, Nickson, Ray and Utting, Mark, ‘A tactic language for Ergo’,Formal Methods Pacific '97, Discrete Math. Theor. Comput. Sci. (ed. Groves, Lindsay and Reeves, Steve, Springer, 1997)186207.Google Scholar
15Nickolas, Peter and Robinson, Peter J., ‘The Qu-Prolog unification algorithm: Formalisation and correctness’, Theoret. Comput. Sci. 169 (1996) 81112; also available as Software Verification Research Centre Technical Report 94–23.Google Scholar
16Owre, Sam, Rushby, John, Shankar, Natarajan and Henke, Friedrich von, ‘Formal verification for fault-tolerant architectures: prolegomena to the design of PVS ’, IEEE Trans. Software Engrg 21 (1995) 107125.CrossRefGoogle Scholar
17Paulson, L. C., ‘Natural deduction as higher-order resolution’, J. Logic Programming 3 (1986) 237258.Google Scholar
18Paulson, L. C., Logic and computation: interactive proof with Cambridge LCF. Cambridge Tracts Theoret. Comput. Sci. (Cambridge University Press, 1987).Google Scholar
19Paulson, Lawrence C., ‘The foundation of a generic theorem prover’, J.Automat. Reason. 5 (1989) 363397.CrossRefGoogle Scholar
20Paulson, Lawrence C., with contributions by Nipkow, Tobias, Isabelle: a generic theorem prover, Lecture Notes in Comput. Sci. 828 (Springer, 1994).Google Scholar
21Pfenning, Frank, ‘Logical frameworks’, Handbook of automated reasoning, vol. 2 (Elsevier Science Publishers, 2001).Google Scholar
22Robinson, Peter, ‘Qu-Prolog 6.0 user guide’, Tech. Rep. 00-20, Software Verification Research Centre, School of Information Technology, The University of Queensland,Brisbane 4072, Australia, (2000); http://svrc.it.uq.edu.au/Bibliography/svrc-tr.html?00-20.Google Scholar
23Robinson, Peter J. and Staples, John, ‘Formalizing the hierarchical structure of practical mathematical reasoning’, J Logic Comput. 3 (1993) 4761.Google Scholar
24Roy, Peter Van, ‘1983–1993: The wonder years of sequential PROLOG implementation’, J. Logic Programming. 19, 20 (1994) 385441.Google Scholar
25Rushby, John, ‘Mechanized formal methods: where next?’ FM99: The World Congress in Formal Methods, Toulouse, France, 1999, Lecture Notes in Comput. Sci. 1708 (ed. Wing, Jeannette and Woodcock, Jim, Springer, 1999) 4851.Google Scholar
26Staples, J., Robinson, P. J., Paterson, R. A., Hagen, R. A., Craddock, A. J. and Wallis, P. C., ‘Qu-Prolog: an extended Prolog for meta level programming’, Meta- programming in logic programming (ed. Abramson, H. and Rogers, M. H., MIT Press, Cambridge, MA, 1989) 435452.Google Scholar
27Staples, Mark, ‘Window inference in Isabelle’, presented at the Isabelle Users’ Workshop, 1819 April 1995, University of Cambridge; available from http://www.cl.cam.ac.uk/users/lcp/Workshop/index.html.Google Scholar
28Stickel, Mark E., ‘A Prolog technology theorem prover: Implementation by an extended Prolog compiler’, J.Automat.Reason. 4 (1988) 353380.Google Scholar
29Utting, Mark and Reeves, Steve, ‘Implementing cc substitutions in Ergo’,‘WESTAPP 2000: The Third International Workshop on Explicit Substitutions: The ory and Applications to Programs and Proofs, Norwich, UK’, preprint, 2000, 3549; available from http://www.cs.waikato.ac.nz/~marku.Google Scholar
30Utting, Mark, Nickson, Ray and Traynor, Owen, ‘Theory structuring in Ergo 4.1’, Austral. Comput. Sci. Comm. 18 (1996), Proceedings of Cats'96, Computing: The Australian Theroy Symposium, 137146.Google Scholar