doc-src/Intro/bool_nat.thy
author krauss
Fri, 22 Jun 2007 10:23:37 +0200
changeset 23473 997bca36d4fe
parent 105 216d6ed87399
permissions -rw-r--r--
new method "elim_to_cases" provides ad-hoc conversion of obtain-style elimination goals to a disjunction of existentials.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
105
216d6ed87399 Initial revision
lcp
parents:
diff changeset
     1
BoolNat = Arith +
216d6ed87399 Initial revision
lcp
parents:
diff changeset
     2
types   bool,nat    0
216d6ed87399 Initial revision
lcp
parents:
diff changeset
     3
arities bool,nat    :: arith
216d6ed87399 Initial revision
lcp
parents:
diff changeset
     4
consts  Suc         :: "nat=>nat"
216d6ed87399 Initial revision
lcp
parents:
diff changeset
     5
rules   add0        "0 + n = n::nat"
216d6ed87399 Initial revision
lcp
parents:
diff changeset
     6
        addS        "Suc(m)+n = Suc(m+n)"
216d6ed87399 Initial revision
lcp
parents:
diff changeset
     7
        nat1        "1 = Suc(0)"
216d6ed87399 Initial revision
lcp
parents:
diff changeset
     8
        or0l        "0 + x = x::bool"
216d6ed87399 Initial revision
lcp
parents:
diff changeset
     9
        or0r        "x + 0 = x::bool"
216d6ed87399 Initial revision
lcp
parents:
diff changeset
    10
        or1l        "1 + x = 1::bool"
216d6ed87399 Initial revision
lcp
parents:
diff changeset
    11
        or1r        "x + 1 = 1::bool"
216d6ed87399 Initial revision
lcp
parents:
diff changeset
    12
end