src/FOL/ex/Nat2.thy
changeset 0 a5a9c433f639
child 352 fd3ab8bcb69d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/FOL/ex/Nat2.thy	Thu Sep 16 12:20:38 1993 +0200
@@ -0,0 +1,39 @@
+(*  Title: 	FOL/ex/nat2.thy
+    ID:         $Id$
+    Author: 	Tobias Nipkow
+    Copyright   1991  University of Cambridge
+
+Theory for examples of simplification and induction on the natural numbers
+*)
+
+Nat2 = FOL +
+
+types nat 0
+arities nat :: term
+
+consts succ,pred :: "nat => nat"
+       "0" :: "nat"	("0")
+       "+" :: "[nat,nat] => nat" (infixr 90)
+  "<","<=" :: "[nat,nat] => o"   (infixr 70)
+
+rules
+ pred_0		"pred(0) = 0"
+ pred_succ	"pred(succ(m)) = m"
+
+ plus_0		"0+n = n"
+ plus_succ	"succ(m)+n = succ(m+n)"
+
+ nat_distinct1	"~ 0=succ(n)"
+ nat_distinct2	"~ succ(m)=0"
+ succ_inject	"succ(m)=succ(n) <-> m=n"
+
+ leq_0		"0 <= n"
+ leq_succ_succ	"succ(m)<=succ(n) <-> m<=n"
+ leq_succ_0	"~ succ(m) <= 0"
+
+ lt_0_succ	"0 < succ(n)"
+ lt_succ_succ	"succ(m)<succ(n) <-> m<n"
+ lt_0 "~ m < 0"
+
+ nat_ind	"[| P(0); ALL n. P(n)-->P(succ(n)) |] ==> All(P)"
+end