diff -r 40e3e6a6076f -r bb7f4457091a Quot/Nominal/Nominal2_Eqvt.thy --- a/Quot/Nominal/Nominal2_Eqvt.thy Mon Feb 08 11:56:22 2010 +0100 +++ b/Quot/Nominal/Nominal2_Eqvt.thy Mon Feb 08 13:12:55 2010 +0100 @@ -2,6 +2,7 @@ Authors: Brian Huffman, Christian Urban Equivariance, Supp and Fresh Lemmas for Operators. + (Contains most, but not all such lemmas.) *) theory Nominal2_Eqvt imports Nominal2_Base @@ -76,7 +77,7 @@ lemma the_eqvt: assumes unique: "\!x. P x" - shows "p \ (THE x. P x) = (THE x. p \ P (- p \ x))" + shows "(p \ (THE x. P x)) = (THE x. p \ P (- p \ x))" apply(rule the1_equality [symmetric]) apply(simp add: ex1_eqvt2[symmetric]) apply(simp add: permute_bool_def unique) @@ -86,9 +87,14 @@ section {* Set Operations *} +lemma mem_permute_iff: + shows "(p \ x) \ (p \ X) \ x \ X" +unfolding mem_def permute_fun_def permute_bool_def +by simp + lemma mem_eqvt: shows "p \ (x \ A) \ (p \ x) \ (p \ A)" - unfolding mem_def permute_fun_def by simp + unfolding mem_permute_iff permute_bool_def by simp lemma not_mem_eqvt: shows "p \ (x \ A) \ (p \ x) \ (p \ A)" @@ -229,7 +235,7 @@ lemmas [eqvt] = (* connectives *) eq_eqvt if_eqvt imp_eqvt disj_eqvt conj_eqvt Not_eqvt - True_eqvt False_eqvt ex_eqvt all_eqvt + True_eqvt False_eqvt ex_eqvt all_eqvt ex1_eqvt imp_eqvt [folded induct_implies_def] (* nominal *) @@ -237,12 +243,12 @@ permute_pure (* datatypes *) - permute_prod.simps + permute_prod.simps append_eqvt rev_eqvt set_eqvt fst_eqvt snd_eqvt (* sets *) - empty_eqvt UNIV_eqvt union_eqvt inter_eqvt - Diff_eqvt Compl_eqvt insert_eqvt + empty_eqvt UNIV_eqvt union_eqvt inter_eqvt mem_eqvt + Diff_eqvt Compl_eqvt insert_eqvt Collect_eqvt thm eqvts thm eqvts_raw