Skip to content

Fill in SetTheory.Set.iProd_equiv_pi - #276

Merged
teorth merged 2 commits into
teorth:mainfrom
gaearon:35pi
Aug 9, 2025
Merged

Fill in SetTheory.Set.iProd_equiv_pi#276
teorth merged 2 commits into
teorth:mainfrom
gaearon:35pi

Conversation

@gaearon

@gaearon gaearon commented Aug 7, 2025

Copy link
Copy Markdown
Contributor

Since this isn't a part of the book, let's fill it in. It's a bit hard to guess how to produce an element satisfying ↑(Set.univ.pi fun i ↦ {x | x ∈ X i}) anyway.

I haven't filled other equivalences because the text is a bit ambiguous on whether they're all "why" or not.


/-- Example 3.5.10 -/
noncomputable abbrev SetTheory.Set.empty_iProd_equiv (X: (∅:Set) → Set) : iProd X ≃ Unit where
abbrev SetTheory.Set.empty_iProd_equiv (X: (∅:Set) → Set) : iProd X ≃ Unit where

@gaearon gaearon Aug 7, 2025

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unrelated but this one is computable (maybe the only one?)

For example:

abbrev SetTheory.Set.empty_iProd_equiv (X: (∅:Set) → Set) : iProd X ≃ Unit where
  toFun := fun t ↦ ()
  invFun := fun x ↦ ⟨tuple fun e ↦ False.elim (not_mem_empty _ e.property), by apply tuple_mem_iProd⟩
  left_inv := by
    intro t
    have h := (mem_iProd _).mp t.property
    obtain ⟨x, ht⟩ := h
    ext
    rw [ht, tuple_inj]
    ext e
    have := not_mem_empty e
    contradiction
  right_inv := by
    intro
    simp

Not included because the book has a "why" seemingly for a related question:

Screenshot 2025-08-07 at 04 16 37

@teorth
teorth merged commit ac5f97e into teorth:main Aug 9, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants