Writing Programs that Construct Proofs
Constable, Robert L.; Knoblock, Todd B.; Bates, Joseph L.
When we learn mathematics, we learn more than definitions and theorems. We learn techniques of proof. In this paper, we describe a particular way to express these techniques and incorporate them into formal theories and into computer systems used to build such theories. We illustrate the methods as they were applied in the $\lambda$-PRL system, essentially using the ML programming language from Edinburgh LCF  as the formalised metalanguage. We report our experience with such an approach emphasizing the ideas that go beyond the LCF work, such as transformation tactics, refinement tactics, and special purpose reasoners. We also show how the validity of tactics can be guaranteed. The introduction places the work in historical context and the conclusion briefly describes plans to carry the methods further. The majority of the paper presents the $\lambda$-PRL approach in detail.
computer science; technical report
Previously Published As