TFL/tfl.sig
author paulson
Thu, 15 May 1997 12:29:59 +0200
changeset 3191 14bd6e5985f1
parent 2112 3902e9af752f
child 3245 241838c01caf
permissions -rw-r--r--
TFL now integrated with HOL (more work needed)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2112
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     1
signature TFL_sig =
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     2
sig
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     3
   structure Rules: Rules_sig
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     4
   structure Thms : Thms_sig
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     5
   structure Thry : Thry_sig
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     6
   structure USyntax : USyntax_sig
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     7
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     8
   type Preterm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     9
   type Term
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    10
   type Thm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    11
   type Thry
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    12
   type Tactic
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    13
   
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    14
   datatype pattern = GIVEN of Preterm * int
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    15
                    | OMITTED of Preterm * int
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    16
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    17
   val mk_functional : Thry -> Preterm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    18
                       -> {functional:Preterm,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    19
                           pats: pattern list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    20
3191
14bd6e5985f1 TFL now integrated with HOL (more work needed)
paulson
parents: 2112
diff changeset
    21
   val wfrec_definition0 : Thry -> Preterm -> Preterm -> Thm * Thry
14bd6e5985f1 TFL now integrated with HOL (more work needed)
paulson
parents: 2112
diff changeset
    22
14bd6e5985f1 TFL now integrated with HOL (more work needed)
paulson
parents: 2112
diff changeset
    23
   val post_definition : Thry * (Thm * pattern list)
14bd6e5985f1 TFL now integrated with HOL (more work needed)
paulson
parents: 2112
diff changeset
    24
                              -> {theory : Thry,
14bd6e5985f1 TFL now integrated with HOL (more work needed)
paulson
parents: 2112
diff changeset
    25
                                  rules  : Thm, 
14bd6e5985f1 TFL now integrated with HOL (more work needed)
paulson
parents: 2112
diff changeset
    26
                                    TCs  : Preterm list list,
14bd6e5985f1 TFL now integrated with HOL (more work needed)
paulson
parents: 2112
diff changeset
    27
                          full_pats_TCs  : (Preterm * Preterm list) list, 
14bd6e5985f1 TFL now integrated with HOL (more work needed)
paulson
parents: 2112
diff changeset
    28
                               patterns  : pattern list}
14bd6e5985f1 TFL now integrated with HOL (more work needed)
paulson
parents: 2112
diff changeset
    29
2112
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    30
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    31
   val wfrec_eqns : Thry -> Preterm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    32
                     -> {WFR : Preterm, 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    33
                         proto_def : Preterm,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    34
                         extracta :(Thm * Preterm list) list,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    35
                         pats  : pattern list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    36
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    37
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    38
   val lazyR_def : Thry
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    39
                   -> Preterm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    40
                   -> {theory:Thry,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    41
                       rules :Thm,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    42
                           R :Preterm,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    43
                       full_pats_TCs :(Preterm * Preterm list) list, 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    44
                       patterns: pattern list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    45
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    46
   val mk_induction : Thry 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    47
                       -> Preterm -> Preterm 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    48
                         -> (Preterm * Preterm list) list
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    49
                           -> Thm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    50
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    51
   val postprocess: {WFtac:Tactic, terminator:Tactic, simplifier:Term -> Thm}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    52
                     -> Thry 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    53
                      -> {rules:Thm, induction:Thm, TCs:Preterm list list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    54
                       -> {rules:Thm, induction:Thm, nested_tcs:Thm list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    55
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    56
   structure Context
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    57
     : sig
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    58
         val read : unit -> Thm list
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    59
         val write : Thm list -> unit
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    60
       end
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    61
end;