diff -r 8732ff59068b -r c6db12ddb60c Nominal/Nominal2_FSet.thy --- a/Nominal/Nominal2_FSet.thy Wed May 26 15:37:56 2010 +0200 +++ b/Nominal/Nominal2_FSet.thy Thu May 27 18:37:52 2010 +0200 @@ -1,8 +1,14 @@ theory Nominal2_FSet imports "../Nominal-General/Nominal2_Supp" + "../Nominal-General/Nominal2_Atoms" + "../Nominal-General/Nominal2_Eqvt" FSet begin +lemma "p \ {} = {}" +apply(perm_simp) +by simp + lemma permute_rsp_fset[quot_respect]: "(op = ===> list_eq ===> list_eq) permute permute" apply (simp add: eqvts[symmetric]) @@ -34,12 +40,29 @@ end -lemma permute_fset[simp, eqvt]: +lemma "p \ {} = {}" +apply(perm_simp) +by simp + +lemma permute_fset[simp]: fixes S::"('a::pt) fset" shows "(p \ {||}) = ({||} ::('a::pt) fset)" and "p \ finsert x S = finsert (p \ x) (p \ S)" by (lifting permute_list.simps) +lemma "p \ {} = {}" +apply(perm_simp) +by simp + +ML {* @{term "{}"} ; @{term "{||}"} *} + +declare permute_fset[eqvt] + +lemma "p \ {} = {}" +apply(perm_simp) +by simp + + lemma fmap_eqvt[eqvt]: shows "p \ (fmap f S) = fmap (p \ f) (p \ S)" by (lifting map_eqvt) @@ -119,4 +142,8 @@ apply auto done +lemma "p \ {} = {}" +apply(perm_simp) +by simp + end