equal
deleted
inserted
replaced
287 Goal.prove_global thy1 [] [] |
287 Goal.prove_global thy1 [] [] |
288 (Ind_Syntax.traceIt "next case equation = " thy1 (mk_case_eqn arg)) |
288 (Ind_Syntax.traceIt "next case equation = " thy1 (mk_case_eqn arg)) |
289 (*Proves a single case equation. Could use simp_tac, but it's slower!*) |
289 (*Proves a single case equation. Could use simp_tac, but it's slower!*) |
290 (fn {context = ctxt, ...} => EVERY |
290 (fn {context = ctxt, ...} => EVERY |
291 [rewrite_goals_tac ctxt [con_def], |
291 [rewrite_goals_tac ctxt [con_def], |
292 rtac case_trans 1, |
292 resolve_tac [case_trans] 1, |
293 REPEAT |
293 REPEAT |
294 (resolve_tac [@{thm refl}, split_trans, |
294 (resolve_tac [@{thm refl}, split_trans, |
295 Su.case_inl RS @{thm trans}, Su.case_inr RS @{thm trans}] 1)]); |
295 Su.case_inl RS @{thm trans}, Su.case_inr RS @{thm trans}] 1)]); |
296 |
296 |
297 val free_iffs = map Drule.export_without_context (con_defs RL [@{thm def_swap_iff}]); |
297 val free_iffs = map Drule.export_without_context (con_defs RL [@{thm def_swap_iff}]); |
328 fun prove_recursor_eqn arg = |
328 fun prove_recursor_eqn arg = |
329 Goal.prove_global thy1 [] [] |
329 Goal.prove_global thy1 [] [] |
330 (Ind_Syntax.traceIt "next recursor equation = " thy1 (mk_recursor_eqn arg)) |
330 (Ind_Syntax.traceIt "next recursor equation = " thy1 (mk_recursor_eqn arg)) |
331 (*Proves a single recursor equation.*) |
331 (*Proves a single recursor equation.*) |
332 (fn {context = ctxt, ...} => EVERY |
332 (fn {context = ctxt, ...} => EVERY |
333 [rtac recursor_trans 1, |
333 [resolve_tac [recursor_trans] 1, |
334 simp_tac (put_simpset rank_ss ctxt addsimps case_eqns) 1, |
334 simp_tac (put_simpset rank_ss ctxt addsimps case_eqns) 1, |
335 IF_UNSOLVED (simp_tac (put_simpset rank_ss ctxt addsimps tl con_defs) 1)]); |
335 IF_UNSOLVED (simp_tac (put_simpset rank_ss ctxt addsimps tl con_defs) 1)]); |
336 in |
336 in |
337 map prove_recursor_eqn (flat con_ty_lists ~~ recursor_cases) |
337 map prove_recursor_eqn (flat con_ty_lists ~~ recursor_cases) |
338 end |
338 end |