Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
TPHOLs '96 Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics
A Methodology for Large-Scale Hardware Verification
FMCAD '00 Proceedings of the Third International Conference on Formal Methods in Computer-Aided Design
Formalizing Stålmarck's Algorithm in Coq
TPHOLs '00 Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
TPHOLs '01 Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics
Calculational Reasoning Revisited (An Isabelle/Isar Experience)
TPHOLs '01 Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Recent developments in mega's proof search programming language
ACM Communications in Computer Algebra
A proof-theoretic approach to tactics
MKM'06 Proceedings of the 5th international conference on Mathematical Knowledge Management
A tactic language for declarative proofs
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Hi-index | 0.00 |
We describe the key features of the proof description language of Declare, an experimental theorem prover for higher order logic. We take a somewhat radical approach to proof description: proofs are not described with tactics but by using just three expressive outlining constructs. The language is "declarative" because each step specifies its logical consequences, i.e. the constants and formulae that are introduced, independently of the justification of that step. Logical constants and facts are lexically scoped in a style reminiscent of structured programming. The style is also heavily "inferential", because Declare relies on an automated prover to eliminate much of the detail normally made explicit in tactic proofs. Declare has been partly inspired by Mizar, but provides better automation. The proof language has been designed to take advantage of this, allowing proof steps to be both large and controlled. We assess the costs and benefits of this approach, and describe its impact on three areas of theorem prover design: Specification, automated reasoning and interaction.