--- a/doc-src/AxClass/generated/NatClass.tex Mon May 22 10:31:44 2000 +0200
+++ b/doc-src/AxClass/generated/NatClass.tex Mon May 22 11:56:55 2000 +0200
@@ -31,26 +31,28 @@
\begin{isamarkuptext}%
This is an abstract version of the plain $Nat$ theory in
FOL.\footnote{See
- \url{http://isabelle.in.tum.de/library/FOL/ex/Nat.html}}
+ \url{http://isabelle.in.tum.de/library/FOL/ex/Nat.html}} Basically,
+ we have just replaced all occurrences of type $nat$ by $\alpha$ and
+ used the natural number axioms to define class $nat$. There is only
+ a minor snag, that the original recursion operator $rec$ had to be
+ made monomorphic.
- Basically, we have just replaced all occurrences of type $nat$ by
- $\alpha$ and used the natural number axioms to define class $nat$.
- There is only a minor snag, that the original recursion operator
- $rec$ had to be made monomorphic, in a sense. Thus class $nat$
- contains exactly those types $\tau$ that are isomorphic to ``the''
- natural numbers (with signature $0$, $Suc$, $rec$).
+ Thus class $nat$ contains exactly those types $\tau$ that are
+ isomorphic to ``the'' natural numbers (with signature $0$, $Suc$,
+ $rec$).
\medskip What we have done here can be also viewed as \emph{type
specification}. Of course, it still remains open if there is some
type at all that meets the class axioms. Now a very nice property of
- axiomatic type classes is, that abstract reasoning is always possible
+ axiomatic type classes is that abstract reasoning is always possible
--- independent of satisfiability. The meta-logic won't break, even
- if some classes (or general sorts) turns out to be empty
- (``inconsistent'') later.
+ if some classes (or general sorts) turns out to be empty later ---
+ ``inconsistent'' class definitions may be useless, but do not cause
+ any harm.
Theorems of the abstract natural numbers may be derived in the same
way as for the concrete version. The original proof scripts may be
- used with some trivial changes only (mostly adding some type
+ re-used with some trivial changes only (mostly adding some type
constraints).%
\end{isamarkuptext}%
\isacommand{end}\end{isabelle}%