src/HOL/Tools/Predicate_Compile/predicate_compile_core.ML
changeset 35845 e5980f0ad025
parent 35411 cafb74a131da
child 35879 99818df5b8f5
equal deleted inserted replaced
35844:65258d2c3214 35845:e5980f0ad025
   402 
   402 
   403 fun unify_consts thy cs intr_ts =
   403 fun unify_consts thy cs intr_ts =
   404   (let
   404   (let
   405      val add_term_consts_2 = fold_aterms (fn Const c => insert (op =) c | _ => I);
   405      val add_term_consts_2 = fold_aterms (fn Const c => insert (op =) c | _ => I);
   406      fun varify (t, (i, ts)) =
   406      fun varify (t, (i, ts)) =
   407        let val t' = map_types (Logic.incr_tvar (i + 1)) (#2 (Type.varify [] t))
   407        let val t' = map_types (Logic.incr_tvar (i + 1)) (#2 (Type.varify_global [] t))
   408        in (maxidx_of_term t', t'::ts) end;
   408        in (maxidx_of_term t', t'::ts) end;
   409      val (i, cs') = List.foldr varify (~1, []) cs;
   409      val (i, cs') = List.foldr varify (~1, []) cs;
   410      val (i', intr_ts') = List.foldr varify (i, []) intr_ts;
   410      val (i', intr_ts') = List.foldr varify (i, []) intr_ts;
   411      val rec_consts = fold add_term_consts_2 cs' [];
   411      val rec_consts = fold add_term_consts_2 cs' [];
   412      val intr_consts = fold add_term_consts_2 intr_ts' [];
   412      val intr_consts = fold add_term_consts_2 intr_ts' [];