Academia.eduAcademia.edu

Outline

Generic Automatic Proof Tools

2001

https://doi.org/10.48456/TR-396

Abstract
sparkles

AI

This paper presents a synthesis of resolution and interaction in automated reasoning through the Isabelle interactive theorem prover. Unlike traditional resolution systems that heavily rely on unification and sophisticated algorithms for automatic theorem proving, Isabelle employs a tableau approach and supports a wide variety of domains without confining them to first-order logic. By emphasizing the limited yet effective capabilities of interactive proof tools, the authors aim to illustrate their potential advantages and applications in various fields.

References (47)

  1. B. Beckert and J. Posegga. leanTAP: Lean tableau-based deduction. J. Auto. Reas., 15(3):339-358, 1995.
  2. J. Camilleri and T. F. Melham. Reasoning with inductively defined relations in the HOL theorem prover. Technical Report 265, Comp. Lab., Univ. Cambridge, Aug. 1992.
  3. D. Cyrluk, P. Lincoln, and N. Shankar. On Shostak's decision procedure for combinations of theories. In McRobbie and Slaney [14], pages 463-477.
  4. G. Dowek et al. The Coq proof assistant user's guide. Technical Report 154, INRIA-Rocquencourt, 1993. Version 5.8.
  5. A. Felty. Implementing tactics and tacticals in a higher-order logic programming language. J. Auto. Reas., 11(1):43-82, 1993.
  6. J. Frost. A case study of co-induction in Isabelle. Technical Report 359, Comp. Lab., Univ. Cambridge, Feb. 1995.
  7. M. J. C. Gordon. Why higher-order logic is a good formalism for specifying and verifying hardware. In G. Milne and P. A. Subrahmanyam, editors, Formal Aspects of VLSI Design, pages 153-177. North-Holland, 1986.
  8. M. J. C. Gordon and T. F. Melham. Introduction to HOL: A Theorem Proving Environment for Higher Order Logic. Cambridge Univ. Press, 1993.
  9. G. P. Huet. A unification algorithm for typed λ-calculus. Theoretical Comput. Sci., 1:27-57, 1975.
  10. G. P. Huet and B. Lang. Proving and applying program transformations expressed with second-order patterns. Acta Inf., 11:31-55, 1978.
  11. R. Letz, J. Schumann, S. Bayerl, and W. Bibel. SETHEO: A high-performance theorem prover. J. Auto. Reas., 8(2):183-212, 1992.
  12. H. Lötzbeyer and R. Sandner. Proof of the equivalence of the operational and denotational semantics of IMP in Isabelle/ZF. Project report, Institut für Informatik, TU München, 1994.
  13. W. McCune. Otter 3.0 Reference Manual and Guide. Technical Report ANL-94/6, Argonne National Laboratory, Argonne, IL, 1994.
  14. M. McRobbie and J. K. Slaney, editors. Automated Deduction -CADE-13 International Conference, LNAI 1104. Springer, 1996.
  15. D. Miller. A logic programming language with lambda-abstraction, function variables, and simple unification. J. Logic and Comput., 1(4):497-536, 1991.
  16. D. Miller. Unification under a mixed prefix. J. Symb. Comput., 14(4):321-358, 1992.
  17. R. Milner and M. Tofte. Co-induction in relational semantics. Theoretical Comput. Sci., 87:209-220, 1991.
  18. T. Nipkow. Constructive rewriting. Comput. J., 34:34-41, 1991.
  19. T. Nipkow. Functional unification of higher-order patterns. In M. Vardi, editor, Eighth Annual Symposium on Logic in Computer Science, pages 64-74. ieee Comp. Soc. Press, 1993.
  20. T. Nipkow. More Church-Rosser proofs (in Isabelle/HOL). In McRobbie and Slaney [14], pages 733-747.
  21. T. Nipkow. Winskel is (almost) right: Towards a mechanized semantics textbook. In Foundations of Software Technology and Theoretical Computer Science, LNCS. Springer, 1996. In press.
  22. F. Oppacher and E. Suen. HARP: A tableau-based theorem prover. J. Auto. Reas., 4(1):69-100, 1988.
  23. S. Owre, J. M. Rushby, N. Shankar, and M. K. Srivas. A tutorial on using PVS for hardware verification. In R. Kumar, editor, Theorem Provers in Circuit Design: Theory, Practice, and Experience, LNCS 901, pages 258-279. Springer, 1995.
  24. L. C. Paulson. The foundation of a generic theorem prover. J. Auto. Reas., 5(3):363-397, 1989.
  25. L. C. Paulson. Set theory for verification: I. From foundations to functions. J. Auto. Reas., 11(3):353-389, 1993.
  26. L. C. Paulson. A fixedpoint approach to implementing (co)inductive definitions. In A. Bundy, editor, Automated Deduction -CADE-12 International Conference, LNAI 814, pages 148-161. Springer, 1994.
  27. L. C. Paulson. Isabelle: A Generic Theorem Prover. Springer, 1994. LNCS 828.
  28. L. C. Paulson. Set theory for verification: II. Induction and recursion. J. Auto. Reas., 15(2):167-215, 1995.
  29. L. C. Paulson. ML for the Working Programmer. Cambridge Univ. Press, 2nd edition, 1996.
  30. L. C. Paulson and K. Grabczewski. Mechanizing set theory: Cardinal arithmetic and the axiom of choice. J. Auto. Reas., 1996. In press.
  31. F. J. Pelletier. Seventy-five problems for testing automatic theorem provers. J. Auto. Reas., 2:191-216, 1986. Errata, JAR 4 (1988), 235-236.
  32. O. Rasmussen. The Church-Rosser theorem in Isabelle: A proof porting experiment. Technical Report 364, Computer Laboratory, University of Cambridge, May 1995.
  33. P. Rudnicki. Obvious inferences. J. Auto. Reas., 3(4):383-393, 1987.
  34. M. E. Stickel. A Prolog technology theorem prover: Implementation by an extended Prolog compiler. J. Auto. Reas., 4(4):353-380, 1988.
  35. G. Takeuti. Proof Theory. North-Holland, 2nd edition, 1987.
  36. G. Winskel. The Formal Semantics of Programming Languages. MIT Press, 1993. A Full Proof Script (* Title: HOL/ex/comb.ML ID: $Id: Comb.ML,v 1.8 1996/08/19 09:18:36 paulson Exp $ Author: Lawrence C Paulson Copyright 1996 University of Cambridge Combinatory Logic example: the Church-Rosser Theorem Curiously, combinators do not include free variables. Example taken from J. Camilleri and T. F. Melham. Reasoning with Inductively Defined Relations in the HOL Theorem Prover. Report 265, University of Cambridge Computer Laboratory, 1992. HOL system proofs may be found in /usr/groups/theory/hvg-aftp/contrib/rule-induction/cl.ml *) open Comb;
  37. *** Reflexive/Transitive closure preserves the Church-Rosser property So does the Transitive closure; use r_into_trancl instead of rtrancl_refl ***) val [_, spec_mp] = [spec] RL [mp];
  38. *Strip lemma. The induction hyp is all but the last diamond of the strip.*) goalw Comb.thy [diamond_def] "!!r. [| diamond(r); (x,y):r^* |] ==> \ \ ALL y'. (x,y'):r --> (EX z. (y',z): r^* & (y,z): r)"; by (etac rtrancl_induct 1); by (Fast_tac 1);
  39. val diamond_strip_lemmaE = result() RS spec RS mp RS exE; val [major] = goal Comb.thy "diamond(r) ==> diamond(r^*)"; by (rewtac diamond_def); (*unfold only in goal, not in premise!*) by (rtac (impI RS allI RS allI) 1);
  40. by (etac rtrancl_induct 1); by (Fast_tac 1);
  41. K_contractE = contract.mk_cases comb.simps "K -1-> z";
  42. S_contractE = contract.mk_cases comb.simps "S -1-> z";
  43. Ap_contractE = contract.mk_cases comb.simps "x#y -1-> z"; AddIs contract.intrs;
  44. AddSEs [K_contractE, S_contractE, Ap_contractE];
  45. Addss (!simpset);
  46. goalw Comb.thy [I_def] "!!z. I -1-> z ==> P"; by (Fast_tac 1);
  47. goalw Comb.thy [I_def] "I#x ---> x";