Nominal/Nominal2_FSet.thy
changeset 2565 6bf332360510
parent 2559 add799cf0817
child 2566 a59d8e1e3a17
--- a/Nominal/Nominal2_FSet.thy	Sun Nov 14 10:02:30 2010 +0000
+++ b/Nominal/Nominal2_FSet.thy	Sun Nov 14 11:05:22 2010 +0000
@@ -1,75 +1,8 @@
 theory Nominal2_FSet
 imports "../Nominal-General/Nominal2_Base"
-        "../Nominal-General/Nominal2_Eqvt" 
-        "$ISABELLE_HOME/src/HOL/Quotient_Examples/FSet"
-begin
-
-lemma permute_fset_rsp[quot_respect]:
-  shows "(op = ===> list_eq ===> list_eq) permute permute"
-  unfolding fun_rel_def
-  by (simp add: set_eqvt[symmetric])
-
-instantiation fset :: (pt) pt
+        "../Nominal-General/Nominal2_Eqvt"
 begin
 
-quotient_definition
-  "permute_fset :: perm \<Rightarrow> 'a fset \<Rightarrow> 'a fset"
-is
-  "permute :: perm \<Rightarrow> 'a list \<Rightarrow> 'a list"
-
-instance 
-proof
-  fix x :: "'a fset" and p q :: "perm"
-  show "0 \<bullet> x = x" by (descending) (simp)
-  show "(p + q) \<bullet> x = p \<bullet> q \<bullet> x" by (descending) (simp)
-qed
-
-end
-
-lemma permute_fset[simp, eqvt]:
-  fixes S::"('a::pt) fset"
-  shows "(p \<bullet> {||}) = ({||} ::('a::pt) fset)"
-  and   "(p \<bullet> insert_fset x S) = insert_fset (p \<bullet> x) (p \<bullet> S)"
-  by (lifting permute_list.simps)
-
-lemma map_fset_eqvt[eqvt]: 
-  shows "p \<bullet> (map_fset f S) = map_fset (p \<bullet> f) (p \<bullet> S)"
-  by (lifting map_eqvt)
-
-lemma fset_eqvt[eqvt]: 
-  shows "p \<bullet> (fset S) = fset (p \<bullet> S)"
-  by (lifting set_eqvt)
-
-lemma supp_fset [simp]:
-  shows "supp (fset S) = supp S"
-  unfolding supp_def
-  by (perm_simp) (simp add: fset_cong)
-
-lemma supp_empty_fset [simp]:
-  shows "supp {||} = {}"
-  unfolding supp_def
-  by simp
-
-lemma supp_insert_fset [simp]:
-  fixes x::"'a::fs"
-  and   S::"'a fset"
-  shows "supp (insert_fset x S) = supp x \<union> supp S"
-  apply(subst supp_fset[symmetric])
-  apply(simp add: supp_fset supp_of_fin_insert)
-  done
-
-lemma fset_finite_supp:
-  fixes S::"('a::fs) fset"
-  shows "finite (supp S)"
-  by (induct S) (simp_all add: finite_supp)
-
-
-subsection {* finite sets are fs-types *}
-
-instance fset :: (fs) fs
-  apply (default)
-  apply (rule fset_finite_supp)
-  done
 
 lemma atom_map_fset_cong:
   shows "map_fset atom x = map_fset atom y \<longleftrightarrow> x = y"
@@ -100,7 +33,7 @@
   apply (simp add: fresh_set_empty)
   apply simp
   apply (unfold fresh_def)
-  apply (simp add: supp_of_fin_insert)
+  apply (simp add: supp_of_finite_insert)
   apply (rule conjI)
   apply (unfold fresh_star_def)
   apply simp