diff -r 1e31ddcab458 -r 4c275405faae src/Doc/Isar_Ref/Framework.thy --- a/src/Doc/Isar_Ref/Framework.thy Sun Jan 15 16:28:03 2023 +0100 +++ b/src/Doc/Isar_Ref/Framework.thy Sun Jan 15 18:30:18 2023 +0100 @@ -7,9 +7,9 @@ chapter \The Isabelle/Isar Framework \label{ch:isar-framework}\ text \ - Isabelle/Isar @{cite "Wenzel:1999:TPHOL" and "Wenzel-PhD" and + Isabelle/Isar \<^cite>\"Wenzel:1999:TPHOL" and "Wenzel-PhD" and "Nipkow-TYPES02" and "Wiedijk:1999:Mizar" and "Wenzel-Paulson:2006" and - "Wenzel:2006:Festschrift"} is a generic framework for developing formal + "Wenzel:2006:Festschrift"\ is a generic framework for developing formal mathematical documents with full proof checking. Definitions, statements and proofs are organized as theories. A collection of theories sources may be presented as a printed document; see also \chref{ch:document-prep}. @@ -32,10 +32,9 @@ intelligible text to the human reader. The Isar proof language has emerged from careful analysis of some inherent - virtues of the logical framework Isabelle/Pure @{cite "paulson-found" and - "paulson700"}, notably composition of higher-order natural deduction rules, - which is a generalization of Gentzen's original calculus @{cite - "Gentzen:1935"}. The approach of generic inference systems in Pure is + virtues of the logical framework Isabelle/Pure \<^cite>\"paulson-found" and + "paulson700"\, notably composition of higher-order natural deduction rules, + which is a generalization of Gentzen's original calculus \<^cite>\"Gentzen:1935"\. The approach of generic inference systems in Pure is continued by Isar towards actual proof texts. See also \figref{fig:natural-deduction} @@ -88,14 +87,13 @@ \<^medskip> Concrete applications require another intermediate layer: an object-logic. - Isabelle/HOL @{cite "isa-tutorial"} (simply-typed set-theory) is most + Isabelle/HOL \<^cite>\"isa-tutorial"\ (simply-typed set-theory) is most commonly used; elementary examples are given in the directories \<^dir>\~~/src/Pure/Examples\ and \<^dir>\~~/src/HOL/Examples\. Some examples demonstrate how to start a fresh object-logic from Isabelle/Pure, and use Isar proofs from the very start, despite the lack of advanced proof tools at such an early stage (e.g.\ see - \<^file>\~~/src/Pure/Examples/Higher_Order_Logic.thy\). Isabelle/FOL @{cite - "isabelle-logics"} and Isabelle/ZF @{cite "isabelle-ZF"} also work, but are + \<^file>\~~/src/Pure/Examples/Higher_Order_Logic.thy\). Isabelle/FOL \<^cite>\"isabelle-logics"\ and Isabelle/ZF \<^cite>\"isabelle-ZF"\ also work, but are much less developed. In order to illustrate natural deduction in Isar, we shall subsequently @@ -276,8 +274,8 @@ section \The Pure framework \label{sec:framework-pure}\ text \ - The Pure logic @{cite "paulson-found" and "paulson700"} is an intuitionistic - fragment of higher-order logic @{cite "church40"}. In type-theoretic + The Pure logic \<^cite>\"paulson-found" and "paulson700"\ is an intuitionistic + fragment of higher-order logic \<^cite>\"church40"\. In type-theoretic parlance, there are three levels of \\\-calculus with corresponding arrows \\\/\\\/\\\: @@ -291,14 +289,13 @@ Here only the types of syntactic terms, and the propositions of proof terms have been shown. The \\\-structure of proofs can be recorded as an optional - feature of the Pure inference kernel @{cite "Berghofer-Nipkow:2000:TPHOL"}, + feature of the Pure inference kernel \<^cite>\"Berghofer-Nipkow:2000:TPHOL"\, but the formal system can never depend on them due to \<^emph>\proof irrelevance\. On top of this most primitive layer of proofs, Pure implements a generic - calculus for nested natural deduction rules, similar to @{cite - "Schroeder-Heister:1984"}. Here object-logic inferences are internalized as + calculus for nested natural deduction rules, similar to \<^cite>\"Schroeder-Heister:1984"\. Here object-logic inferences are internalized as formulae over \\\ and \\\. Combining such rule statements may involve - higher-order unification @{cite "paulson-natural"}. + higher-order unification \<^cite>\"paulson-natural"\. \ @@ -364,8 +361,7 @@ connectives \\\ and \\\ commute. So we may assume w.l.o.g.\ that rule statements always observe the normal form where quantifiers are pulled in front of implications at each level of nesting. This means that any Pure - proposition may be presented as a \<^emph>\Hereditary Harrop Formula\ @{cite - "Miller:1991"} which is of the form \\x\<^sub>1 \ x\<^sub>m. H\<^sub>1 \ \ H\<^sub>n \ A\ for \m, n + proposition may be presented as a \<^emph>\Hereditary Harrop Formula\ \<^cite>\"Miller:1991"\ which is of the form \\x\<^sub>1 \ x\<^sub>m. H\<^sub>1 \ \ H\<^sub>n \ A\ for \m, n \ 0\, and \A\ atomic, and \H\<^sub>1, \, H\<^sub>n\ being recursively of the same format. Following the convention that outermost quantifiers are implicit, Horn clauses \A\<^sub>1 \ \ A\<^sub>n \ A\ are a special case of this. @@ -572,7 +568,7 @@ may be populated later. The command \<^theory_text>\method_setup\ allows to define proof methods semantically in Isabelle/ML. The Eisbach language allows to define proof methods symbolically, as recursive expressions over existing methods - @{cite "Matichuk-et-al:2014"}; see also \<^dir>\~~/src/HOL/Eisbach\. + \<^cite>\"Matichuk-et-al:2014"\; see also \<^dir>\~~/src/HOL/Eisbach\. Methods use the facts indicated by \<^theory_text>\then\ or \<^theory_text>\using\, and then operate on the goal state. Some basic methods are predefined in Pure: ``@{method "-"}'' @@ -635,8 +631,7 @@ \] \<^medskip> - The most interesting derived context element in Isar is \<^theory_text>\obtain\ @{cite - \\S5.3\ "Wenzel-PhD"}, which supports generalized elimination steps in a + The most interesting derived context element in Isar is \<^theory_text>\obtain\ \<^cite>\\\S5.3\ in "Wenzel-PhD"\, which supports generalized elimination steps in a purely forward manner. The \<^theory_text>\obtain\ command takes a specification of parameters \\<^vec>x\ and assumptions \\<^vec>A\ to be added to the context, together with a proof of a case rule stating that this extension is @@ -971,8 +966,7 @@ etc. Due to the flexibility of rule composition (\secref{sec:framework-resolution}), substitution of equals by equals is covered as well, even substitution of inequalities involving monotonicity - conditions; see also @{cite \\S6\ "Wenzel-PhD"} and @{cite - "Bauer-Wenzel:2001"}. + conditions; see also \<^cite>\\\S6\ in "Wenzel-PhD"\ and \<^cite>\"Bauer-Wenzel:2001"\. The generic calculational mechanism is based on the observation that rules such as \trans:\~\<^prop>\x = y \ y = z \ x = z\ proceed from the premises