257 (simp_tac ((Simplifier.context ctxt HOL_ss) addsimps rsp_thms)) |
257 (simp_tac ((Simplifier.context ctxt HOL_ss) addsimps rsp_thms)) |
258 THEN_ALL_NEW (fn _ => no_tac) |
258 THEN_ALL_NEW (fn _ => no_tac) |
259 ), |
259 ), |
260 (instantiate_tac @{thm REP_ABS_RSP(1)} ctxt THEN' (RANGE [quotient_tac quot_thm])), |
260 (instantiate_tac @{thm REP_ABS_RSP(1)} ctxt THEN' (RANGE [quotient_tac quot_thm])), |
261 rtac refl, |
261 rtac refl, |
262 (* rtac @{thm arg_cong2[of _ _ _ _ "op ="]},*) |
|
263 (APPLY_RSP_TAC rty ctxt THEN' (RANGE [quotient_tac quot_thm, quotient_tac quot_thm])), |
262 (APPLY_RSP_TAC rty ctxt THEN' (RANGE [quotient_tac quot_thm, quotient_tac quot_thm])), |
264 Cong_Tac.cong_tac @{thm cong}, |
263 Cong_Tac.cong_tac @{thm cong}, |
265 rtac @{thm ext}, |
264 rtac @{thm ext}, |
266 rtac reflex_thm, |
265 rtac reflex_thm, |
267 atac, |
266 atac, |
272 WEAK_LAMBDA_RES_TAC ctxt |
271 WEAK_LAMBDA_RES_TAC ctxt |
273 ]); |
272 ]); |
274 fun r_mk_comb_tac_lam lthy = r_mk_comb_tac lthy rty quot rel_refl trans2 rsp_thms |
273 fun r_mk_comb_tac_lam lthy = r_mk_comb_tac lthy rty quot rel_refl trans2 rsp_thms |
275 *} |
274 *} |
276 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_lam @{context}) 1 *}) |
275 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_lam @{context}) 1 *}) |
277 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
276 *) |
278 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_lam @{context}) 1 *}) |
|
279 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
280 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_lam @{context}) 1 *}) |
|
281 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
282 prefer 2 |
|
283 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_lam @{context}) 1 *}) |
|
284 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
285 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
286 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
287 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
288 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
289 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
290 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
291 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
292 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
293 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
294 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
295 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
296 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
297 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
298 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
299 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
300 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
301 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_lam @{context}) 1 *}) |
|
302 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
303 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_lam @{context}) 1 *}) |
|
304 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
305 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_lam @{context}) 1 *}) |
|
306 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
307 apply (tactic {* REPEAT_ALL_NEW (r_mk_comb_tac_lam @{context}) 1 *}) |
|
308 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
309 apply (tactic {* r_mk_comb_tac_lam @{context} 1 *}) |
|
310 |
|
311 |
277 |
312 ML {* val t_t = repabs @{context} t_r consts rty qty quot rel_refl trans2 rsp_thms *} |
278 ML {* val t_t = repabs @{context} t_r consts rty qty quot rel_refl trans2 rsp_thms *} |
313 |
279 |
314 ML {* val abs = findabs rty (prop_of (atomize_thm @{thm alpha.induct})) *} |
280 ML {* val abs = findabs rty (prop_of (atomize_thm @{thm alpha.induct})) *} |
315 ML {* val aps = findaps rty (prop_of (atomize_thm @{thm alpha.induct})) *} |
281 ML {* val aps = findaps rty (prop_of (atomize_thm @{thm alpha.induct})) *} |
|
282 |
|
283 ML {* |
|
284 |
|
285 |
|
286 *} |
|
287 |
316 ML {* val aps = @{typ "LamEx.rlam \<Rightarrow> bool"} :: aps; *} |
288 ML {* val aps = @{typ "LamEx.rlam \<Rightarrow> bool"} :: aps; *} |
317 ML {* val simp_app_prs_thms = map (make_simp_prs_thm @{context} quot @{thm APP_PRS}) aps *} |
289 ML {* val simp_app_prs_thms = map (make_simp_prs_thm @{context} quot @{thm APP_PRS}) aps *} |
318 ML {* val simp_lam_prs_thms = map (make_simp_prs_thm @{context} quot @{thm LAMBDA_PRS}) abs *} |
290 ML {* val simp_lam_prs_thms = map (make_simp_prs_thm @{context} quot @{thm LAMBDA_PRS}) abs *} |
319 ML {* val t_l = repeat_eqsubst_thm @{context} (simp_app_prs_thms @ simp_lam_prs_thms) t_t *} |
291 ML {* val t_l = repeat_eqsubst_thm @{context} (simp_app_prs_thms @ simp_lam_prs_thms) t_t *} |
320 ML {* val t_a = simp_allex_prs @{context} quot t_l *} |
292 ML {* val t_a = simp_allex_prs @{context} quot t_l *} |