Skip to main content Accessibility help
×
Home

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

  • Mark Utting (a1), Peter Robinson (a2) and Ray Nickson (a3)

Abstract

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.

    • Send article to Kindle

      To send this article to your Kindle, first ensure no-reply@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about sending to your Kindle. Find out more about sending to your Kindle.

      Note you can select to send to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be sent to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

      Find out more about the Kindle Personal Document Service.

      Ergo 6: A Generic Proof Engine that Uses Prolog Proof Technology
      Available formats
      ×

      Send article to Dropbox

      To send this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Dropbox.

      Ergo 6: A Generic Proof Engine that Uses Prolog Proof Technology
      Available formats
      ×

      Send article to Google Drive

      To send this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Google Drive.

      Ergo 6: A Generic Proof Engine that Uses Prolog Proof Technology
      Available formats
      ×

Copyright

References

Hide All
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.
2Boyer, R. S., Moore, J. S., A computational logic (Academic Press, 1979).
3Deransart, P., ED-Dbali, A., Cervoni, L., Prolog: the standard reference manual (Springer, 1996).
4Dijkstra, Edsger W., A discipline of programming (Prentice-Hall, Englewood Cliffs, NJ, 1976).
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.
6Gordon, Mike and Melham, T. F. (eds), Introduction to HOL: a theorem-proving environment for higher-order logic (Cambridge University Press, 1993).
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.
8van Hentenryck, P., Constraint satisfaction in logic programming, Logic Programming Series (The MIT Press, Cambridge, MA, 1989).
9Jones, C. B., Jones, K. D., Lindsay, P. A., and Moore, R., mural: a formal development support system (Springer, 1991).
10Kalvala, Sara, ‘Annotations in formal specifications and proofs’, Form. Meth. Syst. Des. 5 (1994) 119144.
11Kanger, S., ‘A simplified proof method for elementary logic’, Computer programming and formal systems (ed. Braffort, P. and D. Hirschberg, North-Holland, 1963) 8995.
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.
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.
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.
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.
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.
17Paulson, L. C., ‘Natural deduction as higher-order resolution’, J. Logic Programming 3 (1986) 237258.
18Paulson, L. C., Logic and computation: interactive proof with Cambridge LCF. Cambridge Tracts Theoret. Comput. Sci. (Cambridge University Press, 1987).
19Paulson, Lawrence C., ‘The foundation of a generic theorem prover’, J.Automat. Reason. 5 (1989) 363397.
20Paulson, Lawrence C., with contributions by Nipkow, Tobias, Isabelle: a generic theorem prover, Lecture Notes in Comput. Sci. 828 (Springer, 1994).
21Pfenning, Frank, ‘Logical frameworks’, Handbook of automated reasoning, vol. 2 (Elsevier Science Publishers, 2001).
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.
23Robinson, Peter J. and Staples, John, ‘Formalizing the hierarchical structure of practical mathematical reasoning’, J Logic Comput. 3 (1993) 4761.
24Roy, Peter Van, ‘1983–1993: The wonder years of sequential PROLOG implementation’, J. Logic Programming. 19, 20 (1994) 385441.
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.
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.
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.
28Stickel, Mark E., ‘A Prolog technology theorem prover: Implementation by an extended Prolog compiler’, J.Automat.Reason. 4 (1988) 353380.
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.
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.
MathJax
MathJax is a JavaScript display engine for mathematics. For more information see http://www.mathjax.org.

Related content

Powered by UNSILO

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

  • Mark Utting (a1), Peter Robinson (a2) and Ray Nickson (a3)

Metrics

Full text views

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

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed.