src/FOL/ex/.prolog.thy.ML
author lcp
Tue, 07 Mar 1995 13:15:25 +0100
changeset 928 cb31a4e97f75
parent 0 a5a9c433f639
permissions -rw-r--r--
Moved declaration of ~= to a syntax section
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     1
structure Prolog =
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
 "Prolog"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    21
 ([],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    22
  [],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    23
  [(["list"], 1)],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    24
  [(["list"], ([["term"]], "term"))],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    25
  [(["Nil"], "'a list"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    26
   (["app"], "['a list, 'a list, 'a list] => o"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    27
   (["rev"], "['a list, 'a list] => o")],
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    28
  Some (NewSext {
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    29
   mixfix =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    30
    [Infixr(":", "['a, 'a list]=> 'a list", 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
 [("appNil", "app(Nil,ys,ys)"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    42
  ("appCons", "app(xs,ys,zs) ==> app(x:xs, ys, x:zs)"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    43
  ("revNil", "rev(Nil,Nil)"),
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    44
  ("revCons", "[| rev(xs,ys);  app(ys, x:Nil, zs) |] ==> rev(x:xs, zs)")]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    45
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    46
val ax = get_axiom thy
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    47
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    48
val appNil = ax "appNil"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    49
val appCons = ax "appCons"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    50
val revNil = ax "revNil"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    51
val revCons = ax "revCons"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    52
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    53
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    54
end
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    55
end