src/FOL/ex/.nat2.thy.ML
author paulson
Wed, 25 Nov 1998 15:54:41 +0100
changeset 5971 c5a7a7685826
parent 0 a5a9c433f639
permissions -rw-r--r--
simplified ensures_UNIV
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     1
structure Nat2 =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     2
struct
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     3
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     4
local
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     5
 val parse_ast_translation = []
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     6
 val parse_preproc = None
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     7
 val parse_postproc = None
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     8
 val parse_translation = []
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     9
 val print_translation = []
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    10
 val print_preproc = None
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    11
 val print_postproc = None
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    12
 val print_ast_translation = []
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    13
in
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    14
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    15
(**** begin of user section ****)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    16
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    17
(**** end of user section ****)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    18
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    19
val thy = extend_theory (FOL.thy)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    20
 "Nat2"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    21
 ([],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    22
  [],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    23
  [(["nat"], 0)],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    24
  [(["nat"], ([], "term"))],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    25
  [(["succ", "pred"], "nat => nat")],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    26
  Some (NewSext {
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    27
   mixfix =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    28
    [Delimfix("0", "nat", "0"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    29
     Infixr("+", "[nat,nat] => nat", 90),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    30
     Infixr("<", "[nat,nat] => o", 70),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    31
     Infixr("<=", "[nat,nat] => o", 70)],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    32
   xrules =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    33
    [],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    34
   parse_ast_translation = parse_ast_translation,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    35
   parse_preproc = parse_preproc,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    36
   parse_postproc = parse_postproc,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    37
   parse_translation = parse_translation,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    38
   print_translation = print_translation,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    39
   print_preproc = print_preproc,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    40
   print_postproc = print_postproc,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    41
   print_ast_translation = print_ast_translation}))
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    42
 [("pred_0", "pred(0) = 0"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    43
  ("pred_succ", "pred(succ(m)) = m"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    44
  ("plus_0", "0+n = n"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    45
  ("plus_succ", "succ(m)+n = succ(m+n)"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    46
  ("nat_distinct1", "~ 0=succ(n)"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    47
  ("nat_distinct2", "~ succ(m)=0"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    48
  ("succ_inject", "succ(m)=succ(n) <-> m=n"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    49
  ("leq_0", "0 <= n"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    50
  ("leq_succ_succ", "succ(m)<=succ(n) <-> m<=n"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    51
  ("leq_succ_0", "~ succ(m) <= 0"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    52
  ("lt_0_succ", "0 < succ(n)"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    53
  ("lt_succ_succ", "succ(m)<succ(n) <-> m<n"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    54
  ("lt_0", "~ m < 0"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    55
  ("nat_ind", "[| P(0); ALL n. P(n)-->P(succ(n)) |] ==> All(P)")]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    56
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    57
val ax = get_axiom thy
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    58
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    59
val pred_0 = ax "pred_0"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    60
val pred_succ = ax "pred_succ"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    61
val plus_0 = ax "plus_0"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    62
val plus_succ = ax "plus_succ"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    63
val nat_distinct1 = ax "nat_distinct1"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    64
val nat_distinct2 = ax "nat_distinct2"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    65
val succ_inject = ax "succ_inject"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    66
val leq_0 = ax "leq_0"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    67
val leq_succ_succ = ax "leq_succ_succ"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    68
val leq_succ_0 = ax "leq_succ_0"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    69
val lt_0_succ = ax "lt_0_succ"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    70
val lt_succ_succ = ax "lt_succ_succ"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    71
val lt_0 = ax "lt_0"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    72
val nat_ind = ax "nat_ind"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    73
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    74
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    75
end
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    76
end