src/Pure/proofterm.ML
changeset 36619 deadcd0ec431
parent 35851 5c5f08f6d6e4
child 36620 e6bb250402b5
equal deleted inserted replaced
36618:7a0990473e03 36619:deadcd0ec431
    78 
    78 
    79   (** proof terms for specific inference rules **)
    79   (** proof terms for specific inference rules **)
    80   val implies_intr_proof: term -> proof -> proof
    80   val implies_intr_proof: term -> proof -> proof
    81   val forall_intr_proof: term -> string -> proof -> proof
    81   val forall_intr_proof: term -> string -> proof -> proof
    82   val varify_proof: term -> (string * sort) list -> proof -> proof
    82   val varify_proof: term -> (string * sort) list -> proof -> proof
    83   val freezeT: term -> proof -> proof
    83   val legacy_freezeT: term -> proof -> proof
    84   val rotate_proof: term list -> term -> int -> proof -> proof
    84   val rotate_proof: term list -> term -> int -> proof -> proof
    85   val permute_prems_prf: term list -> int -> int -> proof -> proof
    85   val permute_prems_prf: term list -> int -> int -> proof -> proof
    86   val generalize: string list * string list -> int -> proof -> proof
    86   val generalize: string list * string list -> int -> proof -> proof
    87   val instantiate: ((indexname * sort) * typ) list * ((indexname * typ) * term) list
    87   val instantiate: ((indexname * sort) * typ) list * ((indexname * typ) * term) list
    88     -> proof -> proof
    88     -> proof -> proof
   650     NONE => TVar (ix, sort)
   650     NONE => TVar (ix, sort)
   651   | SOME name => TFree (name, sort));
   651   | SOME name => TFree (name, sort));
   652 
   652 
   653 in
   653 in
   654 
   654 
   655 fun freezeT t prf =
   655 fun legacy_freezeT t prf =
   656   let
   656   let
   657     val used = OldTerm.it_term_types OldTerm.add_typ_tfree_names (t, [])
   657     val used = OldTerm.it_term_types OldTerm.add_typ_tfree_names (t, [])
   658     and tvars = map #1 (OldTerm.it_term_types OldTerm.add_typ_tvars (t, []));
   658     and tvars = map #1 (OldTerm.it_term_types OldTerm.add_typ_tvars (t, []));
   659     val (alist, _) = List.foldr new_name ([], used) tvars;
   659     val (alist, _) = List.foldr new_name ([], used) tvars;
   660   in
   660   in