src/Pure/term.ML
changeset 29286 5de880bda02d
parent 29280 c5531bf7c6b2
child 29882 29154e67731d
equal deleted inserted replaced
29285:5cf577cb2253 29286:5de880bda02d
   132   val add_tfree_names: term -> string list -> string list
   132   val add_tfree_names: term -> string list -> string list
   133   val add_tfreesT: typ -> (string * sort) list -> (string * sort) list
   133   val add_tfreesT: typ -> (string * sort) list -> (string * sort) list
   134   val add_tfrees: term -> (string * sort) list -> (string * sort) list
   134   val add_tfrees: term -> (string * sort) list -> (string * sort) list
   135   val add_free_names: term -> string list -> string list
   135   val add_free_names: term -> string list -> string list
   136   val add_frees: term -> (string * typ) list -> (string * typ) list
   136   val add_frees: term -> (string * typ) list -> (string * typ) list
       
   137   val add_const_names: term -> string list -> string list
       
   138   val add_consts: term -> (string * typ) list -> (string * typ) list
   137   val hidden_polymorphism: term -> (indexname * sort) list
   139   val hidden_polymorphism: term -> (indexname * sort) list
   138   val declare_typ_names: typ -> Name.context -> Name.context
   140   val declare_typ_names: typ -> Name.context -> Name.context
   139   val declare_term_names: term -> Name.context -> Name.context
   141   val declare_term_names: term -> Name.context -> Name.context
   140   val declare_term_frees: term -> Name.context -> Name.context
   142   val declare_term_frees: term -> Name.context -> Name.context
   141   val variant_frees: term -> (string * 'a) list -> (string * 'a) list
   143   val variant_frees: term -> (string * 'a) list -> (string * 'a) list
   459 val add_tfree_names = fold_types add_tfree_namesT;
   461 val add_tfree_names = fold_types add_tfree_namesT;
   460 val add_tfreesT = fold_atyps (fn TFree v => insert (op =) v | _ => I);
   462 val add_tfreesT = fold_atyps (fn TFree v => insert (op =) v | _ => I);
   461 val add_tfrees = fold_types add_tfreesT;
   463 val add_tfrees = fold_types add_tfreesT;
   462 val add_free_names = fold_aterms (fn Free (x, _) => insert (op =) x | _ => I);
   464 val add_free_names = fold_aterms (fn Free (x, _) => insert (op =) x | _ => I);
   463 val add_frees = fold_aterms (fn Free v => insert (op =) v | _ => I);
   465 val add_frees = fold_aterms (fn Free v => insert (op =) v | _ => I);
       
   466 val add_const_names = fold_aterms (fn Const (c, _) => insert (op =) c | _ => I);
       
   467 val add_consts = fold_aterms (fn Const c => insert (op =) c | _ => I);
   464 
   468 
   465 (*extra type variables in a term, not covered by its type*)
   469 (*extra type variables in a term, not covered by its type*)
   466 fun hidden_polymorphism t =
   470 fun hidden_polymorphism t =
   467   let
   471   let
   468     val T = fastype_of t;
   472     val T = fastype_of t;