Nominal/Rsp.thy
changeset 2072 db218886e674
parent 2029 e72121ea134b
child 2077 85826b52fd9d
equal deleted inserted replaced
2071:843e0a2d44d7 2072:db218886e674
    61 ML {*
    61 ML {*
    62 fun fvbv_rsp_tac induct fvbv_simps ctxt =
    62 fun fvbv_rsp_tac induct fvbv_simps ctxt =
    63   rel_indtac induct THEN_ALL_NEW
    63   rel_indtac induct THEN_ALL_NEW
    64   (TRY o rtac @{thm TrueI}) THEN_ALL_NEW
    64   (TRY o rtac @{thm TrueI}) THEN_ALL_NEW
    65   asm_full_simp_tac (HOL_basic_ss addsimps @{thms alphas2}) THEN_ALL_NEW
    65   asm_full_simp_tac (HOL_basic_ss addsimps @{thms alphas2}) THEN_ALL_NEW
    66   asm_full_simp_tac (HOL_ss addsimps (@{thms alphas} @ fvbv_simps)) THEN_ALL_NEW
    66   asm_full_simp_tac (HOL_ss addsimps (@{thms alphas prod_rel.simps prod_fv.simps} @ fvbv_simps)) THEN_ALL_NEW
    67   REPEAT o eresolve_tac [conjE, exE] THEN_ALL_NEW
    67   REPEAT o eresolve_tac [conjE, exE] THEN_ALL_NEW
    68   asm_full_simp_tac (HOL_ss addsimps fvbv_simps) THEN_ALL_NEW
    68   asm_full_simp_tac (HOL_ss addsimps fvbv_simps) THEN_ALL_NEW
    69   TRY o blast_tac (claset_of ctxt)
    69   TRY o blast_tac (claset_of ctxt)
    70 *}
    70 *}
    71 
    71 
    81   simp_tac (HOL_ss addsimps inj) THEN' split_conj_tac THEN_ALL_NEW
    81   simp_tac (HOL_ss addsimps inj) THEN' split_conj_tac THEN_ALL_NEW
    82   (asm_simp_tac HOL_ss THEN_ALL_NEW (
    82   (asm_simp_tac HOL_ss THEN_ALL_NEW (
    83    REPEAT o rtac @{thm exI[of _ "0 :: perm"]} THEN_ALL_NEW
    83    REPEAT o rtac @{thm exI[of _ "0 :: perm"]} THEN_ALL_NEW
    84    simp_tac (HOL_basic_ss addsimps @{thms alphas2}) THEN_ALL_NEW
    84    simp_tac (HOL_basic_ss addsimps @{thms alphas2}) THEN_ALL_NEW
    85    asm_full_simp_tac (HOL_ss addsimps (rsp @
    85    asm_full_simp_tac (HOL_ss addsimps (rsp @
    86      @{thms split_conv alphas fresh_star_def fresh_zero_perm permute_zero ball_triv add_0_left}))
    86      @{thms split_conv alphas fresh_star_def fresh_zero_perm permute_zero ball_triv add_0_left prod_rel.simps prod_fv.simps}))
    87   ))
    87   ))
    88 *}
    88 *}
    89 
    89 
    90 
    90 
    91 lemma exi: "\<exists>(pi :: perm). P pi \<Longrightarrow> (\<And>(p :: perm). P p \<Longrightarrow> Q (pi \<bullet> p)) \<Longrightarrow> \<exists>pi. Q pi"
    91 lemma exi: "\<exists>(pi :: perm). P pi \<Longrightarrow> (\<And>(p :: perm). P p \<Longrightarrow> Q (pi \<bullet> p)) \<Longrightarrow> \<exists>pi. Q pi"