src/HOL/Finite_Set.thy
changeset 24303 32b67bdf2c3a
parent 24286 7619080e49f0
child 24342 a1d489e254ec
equal deleted inserted replaced
24302:3045683749af 24303:32b67bdf2c3a
  2422     thus ?thesis by(simp add: insert(1) B(1))
  2422     thus ?thesis by(simp add: insert(1) B(1))
  2423   qed
  2423   qed
  2424   have ne: "{a \<squnion> b |a b. a \<in> A \<and> b \<in> B} \<noteq> {}" using insert B by blast
  2424   have ne: "{a \<squnion> b |a b. a \<in> A \<and> b \<in> B} \<noteq> {}" using insert B by blast
  2425   have "\<Sqinter>(insert x A) \<squnion> \<Sqinter>B = (x \<sqinter> \<Sqinter>A) \<squnion> \<Sqinter>B"
  2425   have "\<Sqinter>(insert x A) \<squnion> \<Sqinter>B = (x \<sqinter> \<Sqinter>A) \<squnion> \<Sqinter>B"
  2426     using insert
  2426     using insert
  2427     thm ACIf.fold1_insert_idem_def
       
  2428  by(simp add:ACIf.fold1_insert_idem_def[OF ACIf_inf Inf_def])
  2427  by(simp add:ACIf.fold1_insert_idem_def[OF ACIf_inf Inf_def])
  2429   also have "\<dots> = (x \<squnion> \<Sqinter>B) \<sqinter> (\<Sqinter>A \<squnion> \<Sqinter>B)" by(rule sup_inf_distrib2)
  2428   also have "\<dots> = (x \<squnion> \<Sqinter>B) \<sqinter> (\<Sqinter>A \<squnion> \<Sqinter>B)" by(rule sup_inf_distrib2)
  2430   also have "\<dots> = \<Sqinter>{x \<squnion> b|b. b \<in> B} \<sqinter> \<Sqinter>{a \<squnion> b|a b. a \<in> A \<and> b \<in> B}"
  2429   also have "\<dots> = \<Sqinter>{x \<squnion> b|b. b \<in> B} \<sqinter> \<Sqinter>{a \<squnion> b|a b. a \<in> A \<and> b \<in> B}"
  2431     using insert by(simp add:sup_Inf1_distrib[OF B])
  2430     using insert by(simp add:sup_Inf1_distrib[OF B])
  2432   also have "\<dots> = \<Sqinter>({x\<squnion>b |b. b \<in> B} \<union> {a\<squnion>b |a b. a \<in> A \<and> b \<in> B})"
  2431   also have "\<dots> = \<Sqinter>({x\<squnion>b |b. b \<in> B} \<union> {a\<squnion>b |a b. a \<in> A \<and> b \<in> B})"