(* Diferencia_de_union_e_interseccion.thy Diferencia de unión e intersección José A. Alonso Jiménez Sevilla, 5 de marzo de 2024 --------------------------------------------------------------------- *) (* --------------------------------------------------------------------- Demostrar que (s - t) \<union> (t - s) = (s \<union> t) - (s \<inter> t) ------------------------------------------------------------------- *) theory Diferencia_de_union_e_interseccion imports Main begin (* 1 demostración *) lemma "(s - t) \<union> (t - s) = (s \<union> t) - (s \<inter> t)" proof (rule equalityI) show "(s - t) \<union> (t - s) \<subseteq> (s \<union> t) - (s \<inter> t)" proof (rule subsetI) fix x assume "x \<in> (s - t) \<union> (t - s)" then show "x \<in> (s \<union> t) - (s \<inter> t)" proof (rule UnE) assume "x \<in> s - t" then show "x \<in> (s \<union> t) - (s \<inter> t)" proof (rule DiffE) assume "x \<in> s" assume "x \<notin> t" have "x \<in> s \<union> t" using \<open>x \<in> s\<close> by (simp only: UnI1) moreover have "x \<notin> s \<inter> t" proof (rule notI) assume "x \<in> s \<inter> t" then have "x \<in> t" by (simp only: IntD2) with \<open>x \<notin> t\<close> show False by (rule notE) qed ultimately show "x \<in> (s \<union> t) - (s \<inter> t)" by (rule DiffI) qed next assume "x \<in> t - s" then show "x \<in> (s \<union> t) - (s \<inter> t)" proof (rule DiffE) assume "x \<in> t" assume "x \<notin> s" have "x \<in> s \<union> t" using \<open>x \<in> t\<close> by (simp only: UnI2) moreover have "x \<notin> s \<inter> t" proof (rule notI) assume "x \<in> s \<inter> t" then have "x \<in> s" by (simp only: IntD1) with \<open>x \<notin> s\<close> show False by (rule notE) qed ultimately show "x \<in> (s \<union> t) - (s \<inter> t)" by (rule DiffI) qed qed qed next show "(s \<union> t) - (s \<inter> t) \<subseteq> (s - t) \<union> (t - s)" proof (rule subsetI) fix x assume "x \<in> (s \<union> t) - (s \<inter> t)" then show "x \<in> (s - t) \<union> (t - s)" proof (rule DiffE) assume "x \<in> s \<union> t" assume "x \<notin> s \<inter> t" note \<open>x \<in> s \<union> t\<close> then show "x \<in> (s - t) \<union> (t - s)" proof (rule UnE) assume "x \<in> s" have "x \<notin> t" proof (rule notI) assume "x \<in> t" with \<open>x \<in> s\<close> have "x \<in> s \<inter> t" by (rule IntI) with \<open>x \<notin> s \<inter> t\<close> show False by (rule notE) qed with \<open>x \<in> s\<close> have "x \<in> s - t" by (rule DiffI) then show "x \<in> (s - t) \<union> (t - s)" by (simp only: UnI1) next assume "x \<in> t" have "x \<notin> s" proof (rule notI) assume "x \<in> s" then have "x \<in> s \<inter> t" using \<open>x \<in> t\<close> by (rule IntI) with \<open>x \<notin> s \<inter> t\<close> show False by (rule notE) qed with \<open>x \<in> t\<close> have "x \<in> t - s" by (rule DiffI) then show "x \<in> (s - t) \<union> (t - s)" by (rule UnI2) qed qed qed qed (* 2 demostración *) lemma "(s - t) \<union> (t - s) = (s \<union> t) - (s \<inter> t)" proof show "(s - t) \<union> (t - s) \<subseteq> (s \<union> t) - (s \<inter> t)" proof fix x assume "x \<in> (s - t) \<union> (t - s)" then show "x \<in> (s \<union> t) - (s \<inter> t)" proof assume "x \<in> s - t" then show "x \<in> (s \<union> t) - (s \<inter> t)" proof assume "x \<in> s" assume "x \<notin> t" have "x \<in> s \<union> t" using \<open>x \<in> s\<close> by simp moreover have "x \<notin> s \<inter> t" proof assume "x \<in> s \<inter> t" then have "x \<in> t" by simp with \<open>x \<notin> t\<close> show False by simp qed ultimately show "x \<in> (s \<union> t) - (s \<inter> t)" by simp qed next assume "x \<in> t - s" then show "x \<in> (s \<union> t) - (s \<inter> t)" proof assume "x \<in> t" assume "x \<notin> s" have "x \<in> s \<union> t" using \<open>x \<in> t\<close> by simp moreover have "x \<notin> s \<inter> t" proof assume "x \<in> s \<inter> t" then have "x \<in> s" by simp with \<open>x \<notin> s\<close> show False by simp qed ultimately show "x \<in> (s \<union> t) - (s \<inter> t)" by simp qed qed qed next show "(s \<union> t) - (s \<inter> t) \<subseteq> (s - t) \<union> (t - s)" proof fix x assume "x \<in> (s \<union> t) - (s \<inter> t)" then show "x \<in> (s - t) \<union> (t - s)" proof assume "x \<in> s \<union> t" assume "x \<notin> s \<inter> t" note \<open>x \<in> s \<union> t\<close> then show "x \<in> (s - t) \<union> (t - s)" proof assume "x \<in> s" have "x \<notin> t" proof assume "x \<in> t" with \<open>x \<in> s\<close> have "x \<in> s \<inter> t" by simp with \<open>x \<notin> s \<inter> t\<close> show False by simp qed with \<open>x \<in> s\<close> have "x \<in> s - t" by simp then show "x \<in> (s - t) \<union> (t - s)" by simp next assume "x \<in> t" have "x \<notin> s" proof assume "x \<in> s" then have "x \<in> s \<inter> t" using \<open>x \<in> t\<close> by simp with \<open>x \<notin> s \<inter> t\<close> show False by simp qed with \<open>x \<in> t\<close> have "x \<in> t - s" by simp then show "x \<in> (s - t) \<union> (t - s)" by simp qed qed qed qed (* 3\<ordfeminine> demostración *) lemma "(s - t) \<union> (t - s) = (s \<union> t) - (s \<inter> t)" proof show "(s - t) \<union> (t - s) \<subseteq> (s \<union> t) - (s \<inter> t)" proof fix x assume "x \<in> (s - t) \<union> (t - s)" then show "x \<in> (s \<union> t) - (s \<inter> t)" proof assume "x \<in> s - t" then show "x \<in> (s \<union> t) - (s \<inter> t)" by simp next assume "x \<in> t - s" then show "x \<in> (s \<union> t) - (s \<inter> t)" by simp qed qed next show "(s \<union> t) - (s \<inter> t) \<subseteq> (s - t) \<union> (t - s)" proof fix x assume "x \<in> (s \<union> t) - (s \<inter> t)" then show "x \<in> (s - t) \<union> (t - s)" proof assume "x \<in> s \<union> t" assume "x \<notin> s \<inter> t" note \<open>x \<in> s \<union> t\<close> then show "x \<in> (s - t) \<union> (t - s)" proof assume "x \<in> s" then show "x \<in> (s - t) \<union> (t - s)" using \<open>x \<notin> s \<inter> t\<close> by simp next assume "x \<in> t" then show "x \<in> (s - t) \<union> (t - s)" using \<open>x \<notin> s \<inter> t\<close> by simp qed qed qed qed (* 4\<ordfeminine> demostración *) lemma "(s - t) \<union> (t - s) = (s \<union> t) - (s \<inter> t)" proof show "(s - t) \<union> (t - s) \<subseteq> (s \<union> t) - (s \<inter> t)" proof fix x assume "x \<in> (s - t) \<union> (t - s)" then show "x \<in> (s \<union> t) - (s \<inter> t)" by auto qed next show "(s \<union> t) - (s \<inter> t) \<subseteq> (s - t) \<union> (t - s)" proof fix x assume "x \<in> (s \<union> t) - (s \<inter> t)" then show "x \<in> (s - t) \<union> (t - s)" by auto qed qed (* 5\<ordfeminine> demostración *) lemma "(s - t) \<union> (t - s) = (s \<union> t) - (s \<inter> t)" proof show "(s - t) \<union> (t - s) \<subseteq> (s \<union> t) - (s \<inter> t)" by auto next show "(s \<union> t) - (s \<inter> t) \<subseteq> (s - t) \<union> (t - s)" by auto qed (* 6\<ordfeminine> demostración *) lemma "(s - t) \<union> (t - s) = (s \<union> t) - (s \<inter> t)" by auto end