src/Pure/term_subst.ML
changeset 43326 47cf4bc789aa
parent 36766 33e4246edf29
child 45395 830c9b9b0d66
equal deleted inserted replaced
43325:4384f4ae0574 43326:47cf4bc789aa
   161 (* zero var indexes *)
   161 (* zero var indexes *)
   162 
   162 
   163 fun zero_var_inst vars =
   163 fun zero_var_inst vars =
   164   fold (fn v as ((x, i), X) => fn (inst, used) =>
   164   fold (fn v as ((x, i), X) => fn (inst, used) =>
   165     let
   165     let
   166       val ([x'], used') = Name.variants [if Name.is_bound x then "u" else x] used;
   166       val (x', used') = Name.variant (if Name.is_bound x then "u" else x) used;
   167     in if x = x' andalso i = 0 then (inst, used') else ((v, ((x', 0), X)) :: inst, used') end)
   167     in if x = x' andalso i = 0 then (inst, used') else ((v, ((x', 0), X)) :: inst, used') end)
   168   vars ([], Name.context) |> #1;
   168   vars ([], Name.context) |> #1;
   169 
   169 
   170 fun zero_var_indexes_inst ts =
   170 fun zero_var_indexes_inst ts =
   171   let
   171   let