src/FOL/ex/Nat2.thy
author kleing
Sat, 30 Apr 2005 14:18:36 +0200
changeset 15900 d6156cb8dc2e
parent 1473 e8d4606e6502
child 17245 1c519a3cca59
permissions -rw-r--r--
fixed typo
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1473
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
     1
(*  Title:      FOL/ex/nat2.thy
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     2
    ID:         $Id$
1473
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
     3
    Author:     Tobias Nipkow
352
fd3ab8bcb69d removal of obsolete type-declaration syntax
lcp
parents: 0
diff changeset
     4
    Copyright   1994  University of Cambridge
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     5
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     6
Theory for examples of simplification and induction on the natural numbers
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     7
*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     8
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     9
Nat2 = FOL +
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    10
352
fd3ab8bcb69d removal of obsolete type-declaration syntax
lcp
parents: 0
diff changeset
    11
types nat
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    12
arities nat :: term
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    13
352
fd3ab8bcb69d removal of obsolete type-declaration syntax
lcp
parents: 0
diff changeset
    14
consts
1322
9b3d3362a048 removed quotes from types in consts section
clasohm
parents: 352
diff changeset
    15
 succ,pred :: nat => nat  
1473
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    16
       "0" :: nat       ("0")
1322
9b3d3362a048 removed quotes from types in consts section
clasohm
parents: 352
diff changeset
    17
       "+" :: [nat,nat] => nat   (infixr 90)
9b3d3362a048 removed quotes from types in consts section
clasohm
parents: 352
diff changeset
    18
  "<","<=" :: [nat,nat] => o     (infixr 70)
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    19
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    20
rules
1473
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    21
 pred_0         "pred(0) = 0"
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    22
 pred_succ      "pred(succ(m)) = m"
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    23
1473
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    24
 plus_0         "0+n = n"
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    25
 plus_succ      "succ(m)+n = succ(m+n)"
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    26
1473
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    27
 nat_distinct1  "~ 0=succ(n)"
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    28
 nat_distinct2  "~ succ(m)=0"
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    29
 succ_inject    "succ(m)=succ(n) <-> m=n"
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    30
1473
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    31
 leq_0          "0 <= n"
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    32
 leq_succ_succ  "succ(m)<=succ(n) <-> m<=n"
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    33
 leq_succ_0     "~ succ(m) <= 0"
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    34
1473
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    35
 lt_0_succ      "0 < succ(n)"
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    36
 lt_succ_succ   "succ(m)<succ(n) <-> m<n"
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    37
 lt_0 "~ m < 0"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    38
1473
e8d4606e6502 expanded tabs
clasohm
parents: 1322
diff changeset
    39
 nat_ind        "[| P(0); ALL n. P(n)-->P(succ(n)) |] ==> All(P)"
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    40
end