src/HOL/Library/Fset.thy
changeset 37016 e938a0b5286e
parent 37015 efc202e1677e
child 37443 a2a3b62fc819
     1.1 --- a/src/HOL/Library/Fset.thy	Thu May 20 16:35:54 2010 +0200
     1.2 +++ b/src/HOL/Library/Fset.thy	Thu May 20 16:40:29 2010 +0200
     1.3 @@ -4,7 +4,7 @@
     1.4  header {* Executable finite sets *}
     1.5  
     1.6  theory Fset
     1.7 -imports List_Set More_List
     1.8 +imports More_Set More_List
     1.9  begin
    1.10  
    1.11  declare mem_def [simp]
    1.12 @@ -109,7 +109,7 @@
    1.13  subsection {* Basic operations *}
    1.14  
    1.15  definition is_empty :: "'a fset \<Rightarrow> bool" where
    1.16 -  [simp]: "is_empty A \<longleftrightarrow> List_Set.is_empty (member A)"
    1.17 +  [simp]: "is_empty A \<longleftrightarrow> More_Set.is_empty (member A)"
    1.18  
    1.19  lemma is_empty_Set [code]:
    1.20    "is_empty (Set xs) \<longleftrightarrow> null xs"
    1.21 @@ -132,13 +132,13 @@
    1.22    by (simp_all add: Set_def Coset_def)
    1.23  
    1.24  definition remove :: "'a \<Rightarrow> 'a fset \<Rightarrow> 'a fset" where
    1.25 -  [simp]: "remove x A = Fset (List_Set.remove x (member A))"
    1.26 +  [simp]: "remove x A = Fset (More_Set.remove x (member A))"
    1.27  
    1.28  lemma remove_Set [code]:
    1.29    "remove x (Set xs) = Set (removeAll x xs)"
    1.30    "remove x (Coset xs) = Coset (List.insert x xs)"
    1.31    by (simp_all add: Set_def Coset_def remove_set_compl)
    1.32 -    (simp add: List_Set.remove_def)
    1.33 +    (simp add: More_Set.remove_def)
    1.34  
    1.35  definition map :: "('a \<Rightarrow> 'b) \<Rightarrow> 'a fset \<Rightarrow> 'b fset" where
    1.36    [simp]: "map f A = Fset (image f (member A))"
    1.37 @@ -148,7 +148,7 @@
    1.38    by (simp add: Set_def)
    1.39  
    1.40  definition filter :: "('a \<Rightarrow> bool) \<Rightarrow> 'a fset \<Rightarrow> 'a fset" where
    1.41 -  [simp]: "filter P A = Fset (List_Set.project P (member A))"
    1.42 +  [simp]: "filter P A = Fset (More_Set.project P (member A))"
    1.43  
    1.44  lemma filter_Set [code]:
    1.45    "filter P (Set xs) = Set (List.filter P xs)"
    1.46 @@ -211,18 +211,18 @@
    1.47  proof -
    1.48    show "inf A (Set xs) = Set (List.filter (member A) xs)"
    1.49      by (simp add: inter project_def Set_def)
    1.50 -  have *: "\<And>x::'a. remove = (\<lambda>x. Fset \<circ> List_Set.remove x \<circ> member)"
    1.51 +  have *: "\<And>x::'a. remove = (\<lambda>x. Fset \<circ> More_Set.remove x \<circ> member)"
    1.52      by (simp add: expand_fun_eq)
    1.53 -  have "member \<circ> fold (\<lambda>x. Fset \<circ> List_Set.remove x \<circ> member) xs =
    1.54 -    fold List_Set.remove xs \<circ> member"
    1.55 +  have "member \<circ> fold (\<lambda>x. Fset \<circ> More_Set.remove x \<circ> member) xs =
    1.56 +    fold More_Set.remove xs \<circ> member"
    1.57      by (rule fold_apply) (simp add: expand_fun_eq)
    1.58 -  then have "fold List_Set.remove xs (member A) = 
    1.59 -    member (fold (\<lambda>x. Fset \<circ> List_Set.remove x \<circ> member) xs A)"
    1.60 +  then have "fold More_Set.remove xs (member A) = 
    1.61 +    member (fold (\<lambda>x. Fset \<circ> More_Set.remove x \<circ> member) xs A)"
    1.62      by (simp add: expand_fun_eq)
    1.63    then have "inf A (Coset xs) = fold remove xs A"
    1.64      by (simp add: Diff_eq [symmetric] minus_set *)
    1.65    moreover have "\<And>x y :: 'a. Fset.remove y \<circ> Fset.remove x = Fset.remove x \<circ> Fset.remove y"
    1.66 -    by (auto simp add: List_Set.remove_def * intro: ext)
    1.67 +    by (auto simp add: More_Set.remove_def * intro: ext)
    1.68    ultimately show "inf A (Coset xs) = foldr remove xs A"
    1.69      by (simp add: foldr_fold)
    1.70  qed
    1.71 @@ -296,17 +296,17 @@
    1.72  
    1.73  lemma is_empty_simp [simp]:
    1.74    "is_empty A \<longleftrightarrow> member A = {}"
    1.75 -  by (simp add: List_Set.is_empty_def)
    1.76 +  by (simp add: More_Set.is_empty_def)
    1.77  declare is_empty_def [simp del]
    1.78  
    1.79  lemma remove_simp [simp]:
    1.80    "remove x A = Fset (member A - {x})"
    1.81 -  by (simp add: List_Set.remove_def)
    1.82 +  by (simp add: More_Set.remove_def)
    1.83  declare remove_def [simp del]
    1.84  
    1.85  lemma filter_simp [simp]:
    1.86    "filter P A = Fset {x \<in> member A. P x}"
    1.87 -  by (simp add: List_Set.project_def)
    1.88 +  by (simp add: More_Set.project_def)
    1.89  declare filter_def [simp del]
    1.90  
    1.91  declare mem_def [simp del]