Abstract. Isabelle/Isar is a generic framework for human-readable formal proof documents, based on higher-order natural deduction. The Isar proof language provides general principles that may be instantiated to particular object-logics and applications. We discuss specific Isar language elements that support complex induction patterns of practical importance. Despite the additional bookkeeping required for induction with local facts and parameters, definitions, simultaneous goals and multiple rules, the resulting Isar proof texts turn out well-structured and readable. Our techniques can be applied to non-standard variants of induction as well, such as co-induction and nominal induction. This demonstrates that Isar provides a viable platform for building domain-specific tools that support fully-formal mathematical proof composition.
Motivation
The Isar philosophyIsabelle/Isar [15,16,7,17] is intended as a generic framework for developing formal mathematical documents with full proof checking. The Isabelle/Isar system is well integrated with existing theorem prover interface technology [1] and document preparation based on PDF-L A T E X. 1 The main objective is the design of a human-readable structured proof language, which is called the "primary proof format" in Isar terminology. Such a primary proof language is somewhere in the middle between the extremes of primitive proof objects and actual natural language. In this respect, Isar is a bit more formalistic than Mizar [12,10], using explicit logical connectives for certain reasoning schemes where Mizar would prefer English words; see [19,18] for further comparisons of these systems. We argue that any effort of building a library of formalized mathematics heavily depends on a reasonable notion of structured proofs -the Mizar Mathematical Library [6] provides some empirical evidence for this. So Isar challenges the traditional way of recording informal proofs in mathematical prose, as well as the common tendency to see fully formal proofs directly as objects of some logical calculus (e.g. λ-terms in a version of type theory). In fact, Isar is better understood as an interpreter of a simple block-structured language for describing data flow of local facts and goals, interspersed with occasional invocations of proof methods.1 In fact, the present paper has been prepared as an Isabelle/Isar theory document, which means that the proofs and proof outlines encountered here have been checked by the system.