equal
deleted
inserted
replaced
500 apply (tactic {* DEPTH_SOLVE (atac 1 ORELSE eresolve_tac [@{thm subst}, @{thm ssubst}] 1) *}) |
500 apply (tactic {* DEPTH_SOLVE (atac 1 ORELSE eresolve_tac [@{thm subst}, @{thm ssubst}] 1) *}) |
501 done |
501 done |
502 |
502 |
503 (*special cases for free variables P, Q, R, S -- up to 3 arguments*) |
503 (*special cases for free variables P, Q, R, S -- up to 3 arguments*) |
504 |
504 |
505 ML_setup {* |
505 ML {* |
506 bind_thms ("pred_congs", |
506 bind_thms ("pred_congs", |
507 flat (map (fn c => |
507 flat (map (fn c => |
508 map (fn th => read_instantiate [("P",c)] th) |
508 map (fn th => read_instantiate [("P",c)] th) |
509 [@{thm pred1_cong}, @{thm pred2_cong}, @{thm pred3_cong}]) |
509 [@{thm pred1_cong}, @{thm pred2_cong}, @{thm pred3_cong}]) |
510 (explode"PQRS"))) |
510 (explode"PQRS"))) |