src/FOL/ex/.nat.thy.ML
author clasohm
Thu, 16 Sep 1993 12:20:38 +0200
changeset 0 a5a9c433f639
permissions -rw-r--r--
Initial revision
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     1
structure Nat =
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
 "Nat"
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
  [(["Suc"], "nat=>nat"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    26
   (["rec"], "[nat, 'a, [nat,'a]=>'a] => 'a")],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    27
  Some (NewSext {
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    28
   mixfix =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    29
    [Delimfix("0", "nat", "0"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    30
     Infixl("+", "[nat, nat] => nat", 60)],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    31
   xrules =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    32
    [],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    33
   parse_ast_translation = parse_ast_translation,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    34
   parse_preproc = parse_preproc,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    35
   parse_postproc = parse_postproc,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    36
   parse_translation = parse_translation,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    37
   print_translation = print_translation,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    38
   print_preproc = print_preproc,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    39
   print_postproc = print_postproc,
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    40
   print_ast_translation = print_ast_translation}))
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    41
 [("induct", "[| P(0);  !!x. P(x) ==> P(Suc(x)) |]  ==> P(n)"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    42
  ("Suc_inject", "Suc(m)=Suc(n) ==> m=n"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    43
  ("Suc_neq_0", "Suc(m)=0      ==> R"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    44
  ("rec_0", "rec(0,a,f) = a"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    45
  ("rec_Suc", "rec(Suc(m), a, f) = f(m, rec(m,a,f))"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    46
  ("add_def", "m+n == rec(m, n, %x y. Suc(y))")]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    47
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    48
val ax = get_axiom thy
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    49
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    50
val induct = ax "induct"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    51
val Suc_inject = ax "Suc_inject"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    52
val Suc_neq_0 = ax "Suc_neq_0"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    53
val rec_0 = ax "rec_0"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    54
val rec_Suc = ax "rec_Suc"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    55
val add_def = ax "add_def"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    56
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    57
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    58
end
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    59
end