equal
deleted
inserted
replaced
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' []; |