src/HOL/Library/Dlist_Cset.thy
changeset 44842 892030194015
parent 44082 93b1183e43e5
child 45429 cc878a312673
     1.1 --- a/src/HOL/Library/Dlist_Cset.thy	Mon Jul 25 14:10:12 2011 +0200
     1.2 +++ b/src/HOL/Library/Dlist_Cset.thy	Mon Jul 25 16:55:48 2011 +0200
     1.3 @@ -7,7 +7,7 @@
     1.4  begin
     1.5  
     1.6  definition Set :: "'a dlist \<Rightarrow> 'a Cset.set" where
     1.7 -  "Set dxs = List_Cset.set (list_of_dlist dxs)"
     1.8 +  "Set dxs = Cset.set (list_of_dlist dxs)"
     1.9  
    1.10  definition Coset :: "'a dlist \<Rightarrow> 'a Cset.set" where
    1.11    "Coset dxs = List_Cset.coset (list_of_dlist dxs)"
    1.12 @@ -27,6 +27,9 @@
    1.13  declare forall_set [code del]
    1.14  declare exists_set [code del]
    1.15  declare card_set [code del]
    1.16 +declare List_Cset.single_set [code del]
    1.17 +declare List_Cset.bind_set [code del]
    1.18 +declare List_Cset.pred_of_cset_set [code del]
    1.19  declare inter_project [code del]
    1.20  declare subtract_remove [code del]
    1.21  declare union_insert [code del]
    1.22 @@ -50,7 +53,7 @@
    1.23    by (simp add: Coset_def member_set not_set_compl)
    1.24  
    1.25  lemma Set_dlist_of_list [code]:
    1.26 -  "List_Cset.set xs = Set (dlist_of_list xs)"
    1.27 +  "Cset.set xs = Set (dlist_of_list xs)"
    1.28    by (rule Cset.set_eqI) simp
    1.29  
    1.30  lemma Coset_dlist_of_list [code]:
    1.31 @@ -137,4 +140,16 @@
    1.32  
    1.33  end
    1.34  
    1.35 +declare Cset.single_code[code]
    1.36 +
    1.37 +lemma bind_set [code]:
    1.38 +  "Cset.bind (Dlist_Cset.Set xs) f = foldl (\<lambda>A x. sup A (f x)) Cset.empty (list_of_dlist xs)"
    1.39 +by(simp add: List_Cset.bind_set Dlist_Cset.Set_def)
    1.40 +hide_fact (open) bind_set
    1.41 +
    1.42 +lemma pred_of_cset_set [code]:
    1.43 +  "pred_of_cset (Dlist_Cset.Set xs) = foldr sup (map Predicate.single (list_of_dlist xs)) bot"
    1.44 +by(simp add: List_Cset.pred_of_cset_set Dlist_Cset.Set_def)
    1.45 +hide_fact (open) pred_of_cset_set
    1.46 +
    1.47  end