TFL/thry.sig
author wenzelm
Fri, 04 Apr 1997 19:08:35 +0200
changeset 2914 01d24f98528f
parent 2112 3902e9af752f
child 3245 241838c01caf
permissions -rw-r--r--
improved messages;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2112
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     1
signature Thry_sig =
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     2
sig
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     3
  type Type
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     4
  type Preterm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     5
  type Term
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     6
  type Thm
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     7
  type Thry
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     8
  type 'a binding
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
     9
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    10
  structure USyntax : USyntax_sig
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    11
  val match_term : Thry -> Preterm -> Preterm 
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    12
                    -> Preterm binding list * Type binding list
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    13
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    14
  val match_type : Thry -> Type -> Type -> Type binding list
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    15
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    16
  val typecheck : Thry -> Preterm -> Term
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    17
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    18
  val make_definition: Thry -> string -> Preterm -> Thm * Thry
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    19
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    20
  (* Datatype facts of various flavours *)
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    21
  val match_info: Thry -> string -> {constructors:Preterm list,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    22
                                     case_const:Preterm} USyntax.Utils.option
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    23
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    24
  val induct_info: Thry -> string -> {constructors:Preterm list,
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    25
                                      nchotomy:Thm} USyntax.Utils.option
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    26
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    27
  val extract_info: Thry -> {case_congs:Thm list, case_rewrites:Thm list}
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    28
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    29
end;
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    30
3902e9af752f Konrad Slind's TFL
paulson
parents:
diff changeset
    31