213 lemma eq_sym_conv: "|- (x=y) <-> (y=x)" |
213 lemma eq_sym_conv: "|- (x=y) <-> (y=x)" |
214 apply (tactic {* fast_tac (LK_pack add_safes @{thms subst}) 1 *}) |
214 apply (tactic {* fast_tac (LK_pack add_safes @{thms subst}) 1 *}) |
215 done |
215 done |
216 |
216 |
217 ML_file "simpdata.ML" |
217 ML_file "simpdata.ML" |
218 setup {* Simplifier.map_simpset_global (K LK_ss) *} |
218 setup {* map_theory_simpset (put_simpset LK_ss) *} |
219 |
219 |
220 |
220 |
221 text {* To create substition rules *} |
221 text {* To create substition rules *} |
222 |
222 |
223 lemma eq_imp_subst: "|- a=b ==> $H, A(a), $G |- $E, A(b), $F" |
223 lemma eq_imp_subst: "|- a=b ==> $H, A(a), $G |- $E, A(b), $F" |
224 apply (tactic {* asm_simp_tac LK_basic_ss 1 *}) |
224 apply (tactic {* asm_simp_tac (put_simpset LK_basic_ss @{context}) 1 *}) |
225 done |
225 done |
226 |
226 |
227 lemma split_if: "|- P(if Q then x else y) <-> ((Q --> P(x)) & (~Q --> P(y)))" |
227 lemma split_if: "|- P(if Q then x else y) <-> ((Q --> P(x)) & (~Q --> P(y)))" |
228 apply (rule_tac P = Q in cut) |
228 apply (rule_tac P = Q in cut) |
229 apply (tactic {* simp_tac (@{simpset} addsimps @{thms if_P}) 2 *}) |
229 apply (tactic {* simp_tac (@{context} addsimps @{thms if_P}) 2 *}) |
230 apply (rule_tac P = "~Q" in cut) |
230 apply (rule_tac P = "~Q" in cut) |
231 apply (tactic {* simp_tac (@{simpset} addsimps @{thms if_not_P}) 2 *}) |
231 apply (tactic {* simp_tac (@{context} addsimps @{thms if_not_P}) 2 *}) |
232 apply (tactic {* fast_tac LK_pack 1 *}) |
232 apply (tactic {* fast_tac LK_pack 1 *}) |
233 done |
233 done |
234 |
234 |
235 lemma if_cancel: "|- (if P then x else x) = x" |
235 lemma if_cancel: "|- (if P then x else x) = x" |
236 apply (tactic {* lemma_tac @{thm split_if} 1 *}) |
236 apply (tactic {* lemma_tac @{thm split_if} 1 *}) |