section‹Theory of the natural numbers: Peano's axioms, primitive recursion›
theory Nat_Class imports FOL begin
text‹
This is an abstract version of 🚫‹Nat.thy›. Instead of axiomatizing a
single type ‹nat›, it defines the class of all these types (up to
isomorphism).
Note: The ‹rec› operator has been made ∗‹monomorphic›, because class
axioms cannot contain more than one type variable. ›
class nat = fixes Zero :: ‹'a› (‹0›) and Suc :: ‹'a → 'a› and rec :: ‹'a → 'a → ('a → 'a → 'a) → 'a› assumes induct: ‹P(0) ==> (∧x. P(x) ==> P(Suc(x))) ==> P(n)› and Suc_inject: ‹Suc(m) = Suc(n) ==> m = n› and Suc_neq_Zero: ‹Suc(m) = 0 ==> R› and rec_Zero: ‹rec(0, a, f) = a› and rec_Suc: ‹rec(Suc(m), a, f) = f(m, rec(m, a, f))› begin
definition add :: ‹'a → 'a → 'a› (infixl‹+›60) where‹m + n = rec(m, n, λx y. Suc(y))›
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.