TFL/tfl.sig
author wenzelm
Fri, 07 Mar 1997 11:48:46 +0100
changeset 2754 59bd96046ad6
parent 2112 3902e9af752f
child 3191 14bd6e5985f1
permissions -rw-r--r--
moved settings comment to build;
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
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    21
   val prim_wfrec_definition : Thry 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    22
                                -> {R:Preterm, functional:Preterm}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    23
                                -> {def:Thm, corollary:Thm, theory:Thry}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    24
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    25
   val wfrec_eqns : Thry -> Preterm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    26
                     -> {WFR : Preterm, 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    27
                         proto_def : Preterm,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    28
                         extracta :(Thm * Preterm list) list,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    29
                         pats  : pattern list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    30
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    31
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    32
   val gen_wfrec_definition : Thry 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    33
                               -> {R:Preterm, eqs:Preterm}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    34
                               -> {theory:Thry,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    35
                                   rules :Thm, 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    36
                                     TCs : Preterm list list,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    37
                           full_pats_TCs :(Preterm * Preterm list) list, 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    38
                                   patterns : pattern list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    39
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    40
   val lazyR_def : Thry
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    41
                   -> Preterm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    42
                   -> {theory:Thry,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    43
                       rules :Thm,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    44
                           R :Preterm,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    45
                       full_pats_TCs :(Preterm * Preterm list) list, 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    46
                       patterns: pattern list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    47
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    48
   val mk_induction : Thry 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    49
                       -> Preterm -> Preterm 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    50
                         -> (Preterm * Preterm list) list
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    51
                           -> Thm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    52
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    53
   val postprocess: {WFtac:Tactic, terminator:Tactic, simplifier:Term -> Thm}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    54
                     -> Thry 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    55
                      -> {rules:Thm, induction:Thm, TCs:Preterm list list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    56
                       -> {rules:Thm, induction:Thm, nested_tcs:Thm list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    57
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    58
   val termination_goals : Thm -> Preterm list
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    59
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    60
   structure Context
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    61
     : sig
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    62
         val read : unit -> Thm list
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    63
         val write : Thm list -> unit
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    64
       end
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    65
end;