equal
deleted
inserted
replaced
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})" |