TFL/thry.sig
author nipkow
Thu, 24 Apr 1997 18:38:30 +0200
changeset 3042 21cd332b65d3
parent 2112 3902e9af752f
child 3245 241838c01caf
permissions -rw-r--r--
induct_tac

signature Thry_sig =
sig
  type Type
  type Preterm
  type Term
  type Thm
  type Thry
  type 'a binding

  structure USyntax : USyntax_sig
  val match_term : Thry -> Preterm -> Preterm 
                    -> Preterm binding list * Type binding list

  val match_type : Thry -> Type -> Type -> Type binding list

  val typecheck : Thry -> Preterm -> Term

  val make_definition: Thry -> string -> Preterm -> Thm * Thry

  (* Datatype facts of various flavours *)
  val match_info: Thry -> string -> {constructors:Preterm list,
                                     case_const:Preterm} USyntax.Utils.option

  val induct_info: Thry -> string -> {constructors:Preterm list,
                                      nchotomy:Thm} USyntax.Utils.option

  val extract_info: Thry -> {case_congs:Thm list, case_rewrites:Thm list}

end;