diff --git a/Bookshelf/Enderton/Set.tex b/Bookshelf/Enderton/Set.tex index 2cfd8a8..f1eee7d 100644 --- a/Bookshelf/Enderton/Set.tex +++ b/Bookshelf/Enderton/Set.tex @@ -44,7 +44,7 @@ For any set $I$ and any function $H$ with domain $I$, if $H(i) \neq \emptyset$ \end{axiom} -\section{\pending{Cartesian Product}}% +\section{\defined{Cartesian Product}}% \label{ref:cartesian-product} Let $I$ be a set and let $H$ be a \nameref{ref:function} whose domain includes $I$. @@ -54,6 +54,12 @@ We define the \textbf{cartesian product} of the $H(i)$'s as f \text{ is a function with domain } I \text{ and } (\forall i \in I) f(i) \in H(i)\}.$$ +\begin{definition} + + \lean*{Mathlib/Data/Set/Prod}{Set.prod} + +\end{definition} + \section{\defined{Compatible}}% \label{ref:compatible} @@ -2974,12 +2980,11 @@ For any one-to-one function $F$, $F^{-1}$ is also one-to-one. All that remains is to prove $F$ is single-rooted. Let $y \in \ran{F}$. By definition of the \nameref{ref:range} of a function, there exists some - $x$ such that $\left< x, y \right> \in F$. - Suppose $x_1, x_2 \in \dom{F}$ such that - $\left< x_1, y \right>, \left< x_2, y \right> \in F$. - Then $F(x_1) = F(x_2) = y$. - Then $G(F(x_1)) = G(F(x_2))$ implies $I_A(x_1) = I_A(x_2)$. + $x_1$ such that $\left< x_1, y \right> \in F$. + Suppose there exists a set $x_2$ such that $\left< x_2, y \right> \in F$. + By hypothesis, $G(F(x_1)) = G(F(x_2))$ implies $I_A(x_1) = I_A(x_2)$. Thus $x_1 = x_2$. + Therefore $F$ must be single-rooted. \subparagraph{($\Leftarrow$)}% @@ -4663,7 +4668,7 @@ Show that $G$ maps $\powerset{A}$ one-to-one into $\powerset{B}$. \end{proof} -\subsection{\pending{Exercise 3.29}}% +\subsection{\verified{Exercise 3.29}}% \label{sub:exercise-3.29} Assume that $f \colon A \rightarrow B$ and define a function @@ -4677,6 +4682,9 @@ Does the converse hold? \begin{proof} + \lean{Bookshelf/Enderton/Set/Relation} + {Enderton.Set.Chapter\_3.exercise\_3\_29} + Let $f \colon A \rightarrow B$ such that $f$ maps $A$ onto $B$. Define $G \colon B \rightarrow \powerset{A}$ by \eqref{sub:exercise-3.29-eq1}. @@ -4693,7 +4701,7 @@ Does the converse hold? G(x_2) & = \{x \in A \mid f(x) = x_2\}. \end{align*} Since $f$ maps $A$ onto $B$, $\ran{f} = B$. - Thus $x_2, x_2 \in \ran{f}$. + Thus $x_1, x_2 \in \ran{f}$. By definition of the \nameref{ref:range} of a set, there exist some $t \in A$ such that $f(t) = x_1$. Therefore $t \in G(x_1)$. diff --git a/Bookshelf/Enderton/Set/Chapter_3.lean b/Bookshelf/Enderton/Set/Chapter_3.lean index bfdc161..9d7d183 100644 --- a/Bookshelf/Enderton/Set/Chapter_3.lean +++ b/Bookshelf/Enderton/Set/Chapter_3.lean @@ -508,19 +508,19 @@ Assume that `F : A → B`, and that `A` is nonempty. There exists a function **iff** `F` is one-to-one. -/ theorem theorem_3j_a {F : Set.HRelation α β} {A : Set α} {B : Set β} - (hF : isSingleValued F ∧ mapsInto F A B) (hA : Set.Nonempty A) + (hF : mapsInto F A B) (hA : Set.Nonempty A) : (∃ G : Set.HRelation β α, isSingleValued G ∧ mapsInto G B A ∧ - (∀ p ∈ comp G F, p.1 = p.2)) ↔ isOneToOne F := by + (comp G F = { p | p.1 ∈ A ∧ p.1 = p.2 })) ↔ isOneToOne F := by apply Iff.intro - · intro ⟨G, ⟨hG₁, hG₂, hI⟩⟩ + · intro ⟨G, hG⟩ refine ⟨hF.left, ?_⟩ - show isSingleRooted F intro y hy - have ⟨x, hx⟩ := ran_exists hy - sorry - · intro h + have ⟨x₁, hx₁⟩ := ran_exists hy + refine ⟨x₁, ⟨mem_pair_imp_fst_mem_dom hx₁, hx₁⟩, ?_⟩ + intro x₂ hx₂ sorry + · sorry /-- #### Theorem 3J (b) @@ -529,10 +529,10 @@ Assume that `F : A → B`, and that `A` is nonempty. There exists a function `B` **iff** `F` maps `A` onto `B`. -/ theorem theorem_3j_b {F : Set.HRelation α β} {A : Set α} {B : Set β} - (hF : isSingleValued F ∧ mapsInto F A B) (hA : Set.Nonempty A) + (hF : mapsInto F A B) (hA : Set.Nonempty A) : (∃ H : Set.HRelation β α, isSingleValued H ∧ mapsInto H B A ∧ - (∀ p ∈ comp F H, p.1 = p.2)) ↔ mapsOnto F A B := by + (comp F H = { p | p.1 ∈ B ∧ p.1 = p.2 })) ↔ mapsOnto F A B := by sorry /-- #### Theorem 3K (a) @@ -1642,6 +1642,51 @@ theorem exercise_3_28 {A : Set α} {B : Set β} have hz := mem_pair_imp_snd_mem_ran hb.right exact hf.right.right.right hz +/-- #### Exercise 3.29 + +Assume that `f : A → B` and define a function `G : B → 𝒫 A` by +``` +G(b) = {x ∈ A | f(x) = b} +``` +Show that if `f` maps `A` *onto* `B`, then `G` is one-to-one. Does the converse +hold? +-/ +theorem exercise_3_29 {f : Set.HRelation α β} {G : Set.HRelation β (Set α)} + {A : Set α} {B : Set β} (hf : mapsOnto f A B) + (hG : mapsInto G B (𝒫 A) ∧ G = { p | p.1 ∈ B ∧ p.2 = {x ∈ A | (x, p.1) ∈ f} }) + : isOneToOne G := by + unfold isOneToOne + refine ⟨hG.left.left, ?_⟩ + intro y hy + have ⟨x₁, hx₁⟩ := ran_exists hy + refine ⟨x₁, ⟨mem_pair_imp_fst_mem_dom hx₁, hx₁⟩, ?_⟩ + intro x₂ hx₂ + + have hG₁ : (x₁, {x ∈ A | (x, x₁) ∈ f}) ∈ G := by + rw [hG.right, ← hG.left.right.left] + simp only [Set.mem_setOf_eq, and_true] + exact mem_pair_imp_fst_mem_dom hx₁ + have hG₂ : (x₂, {x ∈ A | (x, x₂) ∈ f}) ∈ G := by + rw [hG.right, ← hG.left.right.left] + simp only [Set.mem_setOf_eq, and_true] + exact hx₂.left + have heq : {x ∈ A | (x, x₁) ∈ f} = {x ∈ A | (x, x₂) ∈ f} := by + have h₁ := single_valued_eq_unique hG.left.left hx₁ hG₁ + have h₂ := single_valued_eq_unique hG.left.left hx₂.right hG₂ + rw [← h₁, ← h₂] + + rw [hG.right, ← hf.right.right] at hG₁ hG₂ + simp only [Set.mem_setOf_eq, and_true] at hG₁ hG₂ + have ⟨t, ht⟩ := ran_exists hG₁ + have : t ∈ {x ∈ A | (x, x₁) ∈ f} := by + simp only [Set.mem_setOf_eq] + refine ⟨?_, ht⟩ + rw [← hf.right.left] + exact mem_pair_imp_fst_mem_dom ht + rw [heq] at this + simp only [Set.mem_setOf_eq] at this + exact single_valued_eq_unique hf.left this.right ht + end Relation end Enderton.Set.Chapter_3 \ No newline at end of file