Sigma equivalences¶
{-# OPTIONS --without-K --exact-split #-}
open import TransportLemmas
open import EquivalenceType
open import HomotopyType
open import QuasiinverseType
open import CoproductIdentities
module SigmaEquivalence where
module _ {ℓ₁ ℓ₂ : Level} (A : Type ℓ₁) (P : A → Type ℓ₂) where
pair=Equiv
: {v w : Σ A P}
--------------------------------------------------------------------
→ Σ (π₁ v == π₁ w) (λ p → tr (λ a → P a) p (π₂ v) == π₂ w) ≃ (v == w)
pair=Equiv = qinv-≃ Σ-bycomponents (Σ-componentwise , HΣ₁ , HΣ₂)
where
HΣ₁ : Σ-bycomponents ∘ Σ-componentwise ∼ id
HΣ₁ idp = idp
HΣ₂ : Σ-componentwise ∘ Σ-bycomponents ∼ id
HΣ₂ (idp , idp) = idp
private
f : {a₁ a₂ : A} {α : a₁ == a₂}{c₁ : P a₁} {c₂ : P a₂}
→ {β : a₁ == a₂}
→ {γ : transport P β c₁ == c₂}
→ ap π₁ (pair= (β , γ)) == α → β == α
f {β = idp} {γ = idp} idp = idp
g : {a₁ a₂ : A} {α : a₁ == a₂}{c₁ : P a₁} {c₂ : P a₂}
→ {β : a₁ == a₂}
→ {γ : transport P β c₁ == c₂}
→ β == α → ap π₁ (pair= (β , γ)) == α
g {β = idp} {γ = idp} idp = idp
f-g : {a₁ a₂ : A} {α : a₁ == a₂}{c₁ : P a₁} {c₂ : P a₂}
→ {β : a₁ == a₂}
→ {γ : transport P β c₁ == c₂}
→ f {α = α}{β = β}{γ} ∘ g {α = α}{β = β} ∼ id
f-g {β = idp} {γ = idp} idp = idp
g-f : {a₁ a₂ : A} {α : a₁ == a₂}{c₁ : P a₁} {c₂ : P a₂}
→ {β : a₁ == a₂}
→ {γ : transport P β c₁ == c₂}
→ g {α = α}{β = β}{γ} ∘ f {α = α}{β = β}{γ} ∼ id
g-f {β = idp} {γ = idp} idp = idp
ap-π₁-pair=Equiv
: ∀ {a₁ a₂ : A} {c₁ : P a₁} {c₂ : P a₂}
→ (α : a₁ == a₂)
→ (γ : Σ (a₁ == a₂) (λ p → c₁ == c₂ [ P ↓ p ]))
-----------------------------------------------
→ (ap π₁ (pair= γ) == α) ≃ (π₁ γ == α)
ap-π₁-pair=Equiv {a₁ = a₁} α (β , γ) = qinv-≃ f (g , f-g , g-f)
postulate
∑-≃-∑-with-≃
: ∀ {ℓ₁ ℓ₂ ℓ₃ ℓ₄ : Level}{A : Type ℓ₁}{B : A → Type ℓ₂}{A' : Type ℓ₃}{B' : A' → Type ℓ₄}
→ (e : A ≃ A')
→ ∑ A B ≃ ∑ A' B'
postulate
∑-≃-∑-with-→
: ∀ {ℓ₁ ℓ₂ ℓ₃ ℓ₄}{A : Type ℓ₁}{B : A → Type ℓ₂}{A' : Type ℓ₃}{B' : A' → Type ℓ₄}
→ (f : A → A')
→ (α : (a : A) → B a → B' (f a))
-- Then if
→ isEquiv f
→ (a : A) → isEquiv (α a)
-------------------------------------------
→ isEquiv (∑-map {B = B}{B' = B'} f α)