equal
deleted
inserted
replaced
207 val insts = map (fn ((i, T), t) => absfree ("x" ^ (string_of_int i), T, t)) |
207 val insts = map (fn ((i, T), t) => absfree ("x" ^ (string_of_int i), T, t)) |
208 ((1 upto length recTs) ~~ recTs ~~ rec_unique_ts); |
208 ((1 upto length recTs) ~~ recTs ~~ rec_unique_ts); |
209 val induct' = cterm_instantiate ((map cert induct_Ps) ~~ |
209 val induct' = cterm_instantiate ((map cert induct_Ps) ~~ |
210 (map cert insts)) induct; |
210 (map cert insts)) induct; |
211 val (tac, _) = fold mk_unique_tac (descr' ~~ rec_elims ~~ recTs ~~ rec_result_Ts) |
211 val (tac, _) = fold mk_unique_tac (descr' ~~ rec_elims ~~ recTs ~~ rec_result_Ts) |
212 (((rtac induct' THEN_ALL_NEW ObjectLogic.atomize_prems_tac) 1 |
212 (((rtac induct' THEN_ALL_NEW Object_Logic.atomize_prems_tac) 1 |
213 THEN rewrite_goals_tac [mk_meta_eq @{thm choice_eq}], rec_intrs)); |
213 THEN rewrite_goals_tac [mk_meta_eq @{thm choice_eq}], rec_intrs)); |
214 |
214 |
215 in split_conj_thm (Skip_Proof.prove_global thy1 [] [] |
215 in split_conj_thm (Skip_Proof.prove_global thy1 [] [] |
216 (HOLogic.mk_Trueprop (mk_conj rec_unique_ts)) (K tac)) |
216 (HOLogic.mk_Trueprop (mk_conj rec_unique_ts)) (K tac)) |
217 end; |
217 end; |