Zulip Chat Archive
Stream: maths
Topic: Relation between general cartesian product and prod
Esteban Martínez Vañó (Nov 26 2024 at 12:48):
Hi everyone.
Is there a relation between the general cartesian product and the prod type?
For example, I have the following theorem:
theorem prod_limit {X ι D: Type*} {π : ι → Type*} [DirectedSet D] [TopologicalSpace X] [T : (i : ι) → TopologicalSpace (π i)]
(s: D → (i : ι) → π i) (x: (i : ι) → π i) : Limit s x ↔ ∀ (i: ι), Limit (fun (d: D) ↦ s d i) (x i)
(It doesn't matter for the question how Limit
and DirectedSet
are defined)
And I want to apply it to a net of the form s: D → X × Y
. Is there a nice way to use the previous theorem to work with this case?
For example, is there a simple way of proving
theorem prod_limit' {X Y D: Type*} [DirectedSet D] [TopologicalSpace X] [TopologicalSpace Y]
(s: D → X × Y) (x: X × Y) : Limit s x ↔ Limit (fun (d: D) ↦ (s d).1) x.1 ∧ Limit (fun (d: D) ↦ (s d).2) x.2
using the previous theorem?
Thanks in advance for any help.
Daniel Weber (Nov 26 2024 at 12:56):
There's docs#Equiv.boolArrowEquivProd, and you can also define
import Mathlib
/-- The function type `((a : Bool) → bif a then β else α)` is equivalent to `α × β`. -/
@[simps]
def boolPiEquivProd (α) : ((a : Bool) → bif a then β else α) ≃ α × β where
toFun f := (f false, f true)
invFun p b := b.casesOn p.1 p.2
left_inv _ := funext <| Bool.forall_bool.2 ⟨rfl, rfl⟩
right_inv := fun _ => rfl
but there's nothing inherent
Esteban Martínez Vañó (Nov 26 2024 at 14:08):
Okay thanks.
Then I thinks it is easier to directly prove the second version and have both.
Last updated: May 02 2025 at 03:31 UTC