subsection‹Sigma: Disjoint Union of a Family of Sets›
text‹Generalizes Cartesian product›
lemma Sigma_iff [simp]: "⟨a,b⟩: Sigma(A,B) ⟷ a ∈ A ∧ b ∈ B(a)" by (simp add:java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
lemma SigmaI [TC,intro!]: "[ by simp
java.lang.StringIndexOutOfBoundsException: Range [35, 32) out of bounds for length 55 SigmaD = Sigma_iff [THEN iffD1, HEN conjun]
(*The general elimination rule*) lemma SigmaE [elim!]: "[rule [ iff_trans,) ∧x ∈ B(x); c=⟨\rangle>] P ]==> P" by (unf
lemma SigmaE2 [elim!]: "[
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0 🚫 by (unfold Sigma_def, blast)
lemma Sigma_cong:
java.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 8 Sigma(A,B) = Sigma(A',B')" by (simp add: Sigma_def)
(*Sigma_cong, Pi_cong NOT given to Addcongs: they cause flex-flexpairsandthe"Checkyourprover"error.Most
Sigmas and Pis are abbreviated as * or -> *)
lemma Sigma_empty1 [simp]: "Sigma(0,B) = 0" by blast
lemma Sigma_empty2 [simp]: "A*0 = 0" by blast
lemma Sigma_empty_iff: "A*B=0 ⟷ A=0 | B=0" by blast
subsection‹Projections term‹fst› and term‹snd››
lemma fst_conv [simp]: "fst(⟨a,b⟩) = a" by (simp add: fst_def)
lemma snd_conv [simp]: "snd(⟨a,b⟩) = b" by (simp add: snd_def)
lemma fst_type [TC]: "p ∈ Sigma(A,B) ==> fst(p) ∈ A" by auto
lemma snd_type [TC]: "p ∈ Sigma(A,B) ==> snd(p) ∈ B(fst(p))" by auto
lemma Pair_fst_snd_eq: "a ∈ Sigma(A,B) ==> <fst(a),snd(a)> = a" by auto
subsection‹The Eliminator, term‹split››
(*A META-equality, so that it applies to higher types as well...*) lemma split [simp]: "split(λx y. c(x,y), ⟨a,b⟩) ≡ c(a,b)" by (simp add: split_def)
lemma split_type [TC]: "[p ∈ Sigma(A,B); ∧x y.[x ∈ A; y ∈ B(x)]==> c(x,y):C(⟨x,y⟩) \<rbrakk> ==> split(λx y. c(x,y), p) ∈ C(p)" by (erule SigmaE, auto)
lemma expand_split: "u ∈ A*B ==> R(split(c,u)) ⟷ (∀x∈A. ∀y∈B. u = ⟨x,y⟩⟶ R(c(x,y)))" by (auto simp add: split_def)
subsection‹A version of term‹split› for Formulae: Result Type typ‹o››
lemma splitI: "R(a,b) ==> split(R, ⟨a,b⟩)" by (simp add: split_def)
lemma splitE: "[split(R,z); z ∈ Sigma(A,B); ∧x y. [z = ⟨x,y⟩; R(x,y)]==> P \<rbrakk> ==> P" by (auto simp add: split_def)
lemma splitD: "split(R,⟨a,b⟩) ==> R(a,b)" by (simp add: split_def)
text‹ \bigskip Complex rules for Sigma. ›
lemma split_paired_Bex_Sigma [simp]: "(∃z ∈ Sigma(A,B). P(z)) ⟷ (∃x ∈ A. ∃y ∈ B(x). P(⟨x,y⟩))" by blast
lemma split_paired_Ball_Sigma [simp]: "(∀z ∈ Sigma(A,B). P(z)) ⟷ (∀x ∈ A. ∀y ∈ B(x). P(⟨x,y⟩))" by blast
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-08-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.