CookBook/Package/Ind_Intro.thy
changeset 116 c9ff326e3ce5
parent 115 039845fc96bd
child 120 c39f83d8daeb
--- a/CookBook/Package/Ind_Intro.thy	Fri Feb 13 14:15:28 2009 +0000
+++ b/CookBook/Package/Ind_Intro.thy	Sat Feb 14 00:11:50 2009 +0000
@@ -11,23 +11,23 @@
   pyramid, but at the top. It's creative design of the highest order. It \\
   isn't monkey or donkey work; rather, as Edsger Dijkstra famously \\
   claimed, it's amongst the hardest intellectual tasks ever attempted.''} \\[1ex]
-  Richard Bornat, In defence of programming \cite{Bornat-lecture}
+  Richard Bornat, In Defence of Programming \cite{Bornat-lecture}
   \end{flushright}
 
   \medskip
   HOL is based on just a few primitive constants, like equality and
-  implication, whose properties are described by axioms. All other
-  concepts, such as inductive predicates, datatypes, or recursive functions
-  are defined in terms of those constants, and the desired properties, for
-  example induction theorems, or recursion equations are derived from the
-  definitions by a formal proof. Since it would be very tedious for a user to
-  define complex inductive predicates or datatypes ``by hand'' just using the
-  primitive operators of higher order logic, packages have been implemented
-  automating such work. Thanks to those packages, the user can give a
-  high-level specification, like a list of introduction rules or constructors,
-  and the package then does all the low-level definitions and proofs behind
-  the scenes. In this chapter we explain how such a package can be
-  implemented.
+  implication, whose properties are described by axioms. All other concepts,
+  such as inductive predicates, datatypes, or recursive functions are defined
+  in terms of those constants, and the desired properties, for example
+  induction theorems, or recursion equations are derived from the definitions
+  by a formal proof. Since it would be very tedious for a user to define
+  complex inductive predicates or datatypes ``by hand'' just using the
+  primitive operators of higher order logic, \emph{definitional packages} have
+  been implemented automating such work. Thanks to those packages, the user
+  can give a high-level specification, for example a list of introduction
+  rules or constructors, and the package then does all the low-level
+  definitions and proofs behind the scenes. In this chapter we explain how
+  such a package can be implemented.
 
   As a running example, we have chosen a rather simple package for defining
   inductive predicates. To keep things really simple, we will not use the general
@@ -39,7 +39,7 @@
   have a reduced functionality. It does neither support introduction rules
   involving arbitrary monotone operators, nor does it prove case analysis (or
   inversion) rules. Moreover, it only proves a weaker form of the
-  induction theorem.
+  induction principle for inductive predicates.
 *}
 
 end