@@ -48,9 +48,10 @@ record Product (A B : Obj) : Set (o ⊔ ℓ ⊔ e ⊔ t) where
4848 η₂ : ∀ {Γ}{p p'}(ϕ : hom Γ A×B [ p , p' ])
4949 → Along (η₁ _) , (η₁ _) [ ϕ ≈ ⟨ πa ▷ ϕ , πb ▷ ϕ ⟩₂ ]
5050
51- module β₁a {Γ} f g = _≅_ (β₁a {Γ} f g)
52- module β₁b {Γ} f g = _≅_ (β₁b {Γ} f g)
53- module η₁ {Γ} p = _≅_ (η₁ {Γ} p)
51+ private
52+ module β₁a {Γ} f g = _≅_ (β₁a {Γ} f g)
53+ module β₁b {Γ} f g = _≅_ (β₁b {Γ} f g)
54+ module η₁ {Γ} p = _≅_ (η₁ {Γ} p)
5455
5556 unique₂ : ∀ {Γ}{p p'}{ϕ ψ : hom Γ A×B [ p , p' ]} → πa ▷ ϕ ≈ πa ▷ ψ → πb ▷ ϕ ≈ πb ▷ ψ → ϕ ≈ ψ
5657 unique₂ {ϕ = ϕ}{ψ} ϕa≈ψa ϕb≈ψb = begin
@@ -63,23 +64,29 @@ record Product (A B : Obj) : Set (o ⊔ ℓ ⊔ e ⊔ t) where
6364 ⟨-,-⟩ = record
6465 { F₀ = uncurry′ ⟨_,_⟩₁
6566 ; F₁ = uncurry′ ⟨_,_⟩₂
66- ; identity = unique₂ (MR′.switch-fromtoˡ (β₁a _ _) (β₂a id₂ id₂) ○ hom.∘-resp-≈ʳ identity₂ˡ
67- ○ β₁a.isoˡ _ _ ○ ⟺ ⊚.identity)
68- (MR′.switch-fromtoˡ (β₁b _ _) (β₂b id₂ id₂) ○ hom.∘-resp-≈ʳ identity₂ˡ
69- ○ β₁b.isoˡ _ _ ○ ⟺ ⊚.identity)
70- ; homomorphism = λ {_ _ _ (αa , αb) (βa , βb)}
71- → unique₂ (MR′.switch-fromtoˡ (β₁a _ _) (β₂a (βa ∘ᵥ αa) (βb ∘ᵥ αb))
72- ○ MR′.pushʳ (MR′.extendˡ (MR′.insertˡ (β₁a.isoʳ _ _)))
73- ○ ⟺ (MR′.switch-fromtoˡ (β₁a _ _) (β₂a βa βb)
74- ⟩∘⟨ MR′.switch-fromtoˡ (β₁a _ _) (β₂a αa αb))
75- ○ ∘ᵥ-distr-▷)
76- (MR′.switch-fromtoˡ (β₁b _ _) (β₂b (βa ∘ᵥ αa) (βb ∘ᵥ αb))
77- ○ MR′.pushʳ (MR′.extendˡ (MR′.insertˡ (β₁b.isoʳ _ _)))
78- ○ ⟺ (MR′.switch-fromtoˡ (β₁b _ _) (β₂b βa βb)
79- ⟩∘⟨ MR′.switch-fromtoˡ (β₁b _ _) (β₂b αa αb))
80- ○ ∘ᵥ-distr-▷)
67+ ; identity = ⟨⟩-identity
68+ ; homomorphism = ⟨⟩-homomorphism
8169 ; F-resp-≈ = uncurry′ ⟨⟩-resp-≈
8270 }
71+ where
72+ ⟨⟩-identity : ∀ {Γ}{f : Γ ⇒₁ A}{g : Γ ⇒₁ B} → ⟨ id₂ {f = f} , id₂ {f = g} ⟩₂ ≈ id₂
73+ ⟨⟩-identity = unique₂ (MR′.switch-fromtoˡ (β₁a _ _) (β₂a id₂ id₂) ○ hom.∘-resp-≈ʳ identity₂ˡ
74+ ○ β₁a.isoˡ _ _ ○ ⟺ ⊚.identity)
75+ (MR′.switch-fromtoˡ (β₁b _ _) (β₂b id₂ id₂) ○ hom.∘-resp-≈ʳ identity₂ˡ
76+ ○ β₁b.isoˡ _ _ ○ ⟺ ⊚.identity)
77+ ⟨⟩-homomorphism : ∀ {Γ}{fa ga ha : Γ ⇒₁ A}{fb gb hb : Γ ⇒₁ B}
78+ → {αa : fa ⇒₂ ga}{αb : fb ⇒₂ gb}{βa : ga ⇒₂ ha}{βb : gb ⇒₂ hb}
79+ → ⟨ βa ∘ᵥ αa , βb ∘ᵥ αb ⟩₂ ≈ ⟨ βa , βb ⟩₂ ∘ᵥ ⟨ αa , αb ⟩₂
80+ ⟨⟩-homomorphism {αa = αa}{αb}{βa}{βb} = unique₂ (MR′.switch-fromtoˡ (β₁a _ _) (β₂a (βa ∘ᵥ αa) (βb ∘ᵥ αb))
81+ ○ MR′.pushʳ (MR′.extendˡ (MR′.insertˡ (β₁a.isoʳ _ _)))
82+ ○ ⟺ (MR′.switch-fromtoˡ (β₁a _ _) (β₂a βa βb)
83+ ⟩∘⟨ MR′.switch-fromtoˡ (β₁a _ _) (β₂a αa αb))
84+ ○ ∘ᵥ-distr-▷)
85+ (MR′.switch-fromtoˡ (β₁b _ _) (β₂b (βa ∘ᵥ αa) (βb ∘ᵥ αb))
86+ ○ MR′.pushʳ (MR′.extendˡ (MR′.insertˡ (β₁b.isoʳ _ _)))
87+ ○ ⟺ (MR′.switch-fromtoˡ (β₁b _ _) (β₂b βa βb)
88+ ⟩∘⟨ MR′.switch-fromtoˡ (β₁b _ _) (β₂b αa αb))
89+ ○ ∘ᵥ-distr-▷)
8390
8491 βa : ∀ {Γ} → πa ⊚- ∘F ⟨-,-⟩ {Γ} ≃ πˡ
8592 βa = pointwise-iso (uncurry β₁a) (uncurry β₂a)
@@ -94,5 +101,11 @@ record Product (A B : Obj) : Set (o ⊔ ℓ ⊔ e ⊔ t) where
94101 η = pointwise-iso η₁ η₂
95102
96103 𝒞[Γ,A×B]≅𝒞[Γ,A]×𝒞[Γ,B] : ∀ {Γ} → StrongEquivalence (hom Γ A×B) (CatProduct (hom Γ A) (hom Γ B))
97- 𝒞[Γ,A×B]≅𝒞[Γ,A]×𝒞[Γ,B] = record { F = πa ⊚- ※ πb ⊚- ; G = ⟨-,-⟩
98- ; weak-inverse = record { F∘G≈id = β ; G∘F≈id = sym η } }
104+ 𝒞[Γ,A×B]≅𝒞[Γ,A]×𝒞[Γ,B] = record
105+ { F = πa ⊚- ※ πb ⊚-
106+ ; G = ⟨-,-⟩
107+ ; weak-inverse = record
108+ { F∘G≈id = β
109+ ; G∘F≈id = sym η
110+ }
111+ }
0 commit comments