Skip to content

Commit 612f0f7

Browse files
authored
Merge pull request #273 from teorth:tuple
change a to x; add comment
2 parents f35b744 + cb85255 commit 612f0f7

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

analysis/Analysis/Section_3_5.lean

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ example : ({1, 2}: Set) ×ˢ ({3, 4, 5}: Set) = ({
142142
((mk_cartesian (2: Nat) (3: Nat)): Object),
143143
((mk_cartesian (2: Nat) (4: Nat)): Object),
144144
((mk_cartesian (2: Nat) (5: Nat)): Object)
145-
}: Set) := by apply ext; aesop
145+
}: Set) := by ext; aesop
146146

147147
/-- Example 3.5.5 / Exercise 3.6.5. There is a bijection between `X ×ˢ Y` and `Y ×ˢ X`. -/
148148
noncomputable abbrev SetTheory.Set.prod_commutator (X Y:Set) : X ×ˢ Y ≃ Y ×ˢ X where
@@ -158,29 +158,31 @@ noncomputable abbrev SetTheory.Set.curry_equiv {X Y Z:Set} : (X → Y → Z) ≃
158158
left_inv := by intro; simp
159159
right_inv := by intro; simp [←pair_eq_fst_snd]
160160

161-
/-- Definition 3.5.6 -/
162-
abbrev SetTheory.Set.tuple {I:Set} {X: I → Set} (a: ∀ i, X i) : Object :=
163-
((fun i ↦ ⟨ a i, by rw [mem_iUnion]; use i; exact (a i).property ⟩):I → iUnion I X)
161+
/-- Definition 3.5.6. The indexing set `I` plays the role of `{ i : 1 ≤ i ≤ n }` in the text.
162+
See Exercise 3.5.10 below for some connections betweeen this concept and the preceding notion
163+
of Cartesian product and ordered pair. -/
164+
abbrev SetTheory.Set.tuple {I:Set} {X: I → Set} (x: ∀ i, X i) : Object :=
165+
((fun i ↦ ⟨ x i, by rw [mem_iUnion]; use i; exact (x i).property ⟩):I → iUnion I X)
164166

165167
/-- Definition 3.5.6 -/
166168
abbrev SetTheory.Set.iProd {I: Set} (X: I → Set) : Set :=
167-
((iUnion I X)^I).specify (fun t ↦ ∃ a : ∀ i, X i, t = tuple a)
169+
((iUnion I X)^I).specify (fun t ↦ ∃ x : ∀ i, X i, t = tuple x)
168170

169171
/-- Definition 3.5.6 -/
170172
theorem SetTheory.Set.mem_iProd {I: Set} {X: I → Set} (t:Object) :
171-
t ∈ iProd X ↔ ∃ a: ∀ i, X i, t = tuple a := by
173+
t ∈ iProd X ↔ ∃ x: ∀ i, X i, t = tuple x := by
172174
simp only [iProd, specification_axiom'']; constructor
173-
. intro ⟨ ht, a, h ⟩; use a
174-
intro ⟨ a, ha
175-
have h : t ∈ (I.iUnion X)^I := by simp [ha]
176-
use h, a
175+
. intro ⟨ ht, x, h ⟩; use x
176+
intro ⟨ x, hx
177+
have h : t ∈ (I.iUnion X)^I := by simp [hx]
178+
use h, x
177179

178-
theorem SetTheory.Set.tuple_mem_iProd {I: Set} {X: I → Set} (a: ∀ i, X i) :
179-
tuple a ∈ iProd X := by rw [mem_iProd]; use a
180+
theorem SetTheory.Set.tuple_mem_iProd {I: Set} {X: I → Set} (x: ∀ i, X i) :
181+
tuple x ∈ iProd X := by rw [mem_iProd]; use x
180182

181183
@[simp]
182-
theorem SetTheory.Set.tuple_inj {I:Set} {X: I → Set} (a b: ∀ i, X i) :
183-
tuple a = tuple ba = b := by sorry
184+
theorem SetTheory.Set.tuple_inj {I:Set} {X: I → Set} (x y: ∀ i, X i) :
185+
tuple x = tuple yx = y := by sorry
184186

185187
/-- Example 3.5.8. There is a bijection between `(X ×ˢ Y) ×ˢ Z` and `X ×ˢ (Y ×ˢ Z)`. -/
186188
noncomputable abbrev SetTheory.Set.prod_associator (X Y Z:Set) : (X ×ˢ Y) ×ˢ Z ≃ X ×ˢ (Y ×ˢ Z) where

0 commit comments

Comments
 (0)