Enderton. Exercise 3.29.

finite-set-exercises
Joshua Potter 2023-07-07 20:30:53 -06:00
parent 04fe6c66db
commit c574b481af
2 changed files with 70 additions and 17 deletions

View File

@ -44,7 +44,7 @@ For any set $I$ and any function $H$ with domain $I$, if $H(i) \neq \emptyset$
\end{axiom} \end{axiom}
\section{\pending{Cartesian Product}}% \section{\defined{Cartesian Product}}%
\label{ref:cartesian-product} \label{ref:cartesian-product}
Let $I$ be a set and let $H$ be a \nameref{ref:function} whose domain includes $I$. 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 } f \text{ is a function with domain } I \text{ and }
(\forall i \in I) f(i) \in H(i)\}.$$ (\forall i \in I) f(i) \in H(i)\}.$$
\begin{definition}
\lean*{Mathlib/Data/Set/Prod}{Set.prod}
\end{definition}
\section{\defined{Compatible}}% \section{\defined{Compatible}}%
\label{ref: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. All that remains is to prove $F$ is single-rooted.
Let $y \in \ran{F}$. Let $y \in \ran{F}$.
By definition of the \nameref{ref:range} of a function, there exists some By definition of the \nameref{ref:range} of a function, there exists some
$x$ such that $\left< x, y \right> \in F$. $x_1$ such that $\left< x_1, y \right> \in F$.
Suppose $x_1, x_2 \in \dom{F}$ such that Suppose there exists a set $x_2$ such that $\left< x_2, y \right> \in F$.
$\left< x_1, y \right>, \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)$.
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)$.
Thus $x_1 = x_2$. Thus $x_1 = x_2$.
Therefore $F$ must be single-rooted.
\subparagraph{($\Leftarrow$)}% \subparagraph{($\Leftarrow$)}%
@ -4663,7 +4668,7 @@ Show that $G$ maps $\powerset{A}$ one-to-one into $\powerset{B}$.
\end{proof} \end{proof}
\subsection{\pending{Exercise 3.29}}% \subsection{\verified{Exercise 3.29}}%
\label{sub:exercise-3.29} \label{sub:exercise-3.29}
Assume that $f \colon A \rightarrow B$ and define a function Assume that $f \colon A \rightarrow B$ and define a function
@ -4677,6 +4682,9 @@ Does the converse hold?
\begin{proof} \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$. Let $f \colon A \rightarrow B$ such that $f$ maps $A$ onto $B$.
Define $G \colon B \rightarrow \powerset{A}$ by Define $G \colon B \rightarrow \powerset{A}$ by
\eqref{sub:exercise-3.29-eq1}. \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\}. G(x_2) & = \{x \in A \mid f(x) = x_2\}.
\end{align*} \end{align*}
Since $f$ maps $A$ onto $B$, $\ran{f} = B$. 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$ By definition of the \nameref{ref:range} of a set, there exist some $t \in A$
such that $f(t) = x_1$. such that $f(t) = x_1$.
Therefore $t \in G(x_1)$. Therefore $t \in G(x_1)$.

View File

@ -508,19 +508,19 @@ Assume that `F : A → B`, and that `A` is nonempty. There exists a function
**iff** `F` is one-to-one. **iff** `F` is one-to-one.
-/ -/
theorem theorem_3j_a {F : Set.HRelation α β} {A : Set α} {B : Set β} 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 β α, : (∃ G : Set.HRelation β α,
isSingleValued G ∧ mapsInto G B A ∧ 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 apply Iff.intro
· intro ⟨G, hG₁, hG₂, hI⟩ · intro ⟨G, hG⟩
refine ⟨hF.left, ?_⟩ refine ⟨hF.left, ?_⟩
show isSingleRooted F
intro y hy intro y hy
have ⟨x, hx⟩ := ran_exists hy have ⟨x, hx⟩ := ran_exists hy
sorry refine ⟨x₁, ⟨mem_pair_imp_fst_mem_dom hx₁, hx₁⟩, ?_⟩
· intro h intro x₂ hx₂
sorry sorry
· sorry
/-- #### Theorem 3J (b) /-- #### 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`. `B` **iff** `F` maps `A` onto `B`.
-/ -/
theorem theorem_3j_b {F : Set.HRelation α β} {A : Set α} {B : Set β} 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 β α, : (∃ H : Set.HRelation β α,
isSingleValued H ∧ mapsInto H B A ∧ 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 sorry
/-- #### Theorem 3K (a) /-- #### 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 have hz := mem_pair_imp_snd_mem_ran hb.right
exact hf.right.right.right hz 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 Relation
end Enderton.Set.Chapter_3 end Enderton.Set.Chapter_3