{-# OPTIONS --without-K --exact-split --rewriting #-}
open import BasicTypes public
open import BasicFunctions public
open import AlgebraOnPaths public
open import Transport public
open import TransportLemmas public
Algebra of Pathovers¶
Some of the following lemmas are based on
HoTT-Agda/core/lib/PathOver.agda
.
!ᵈ
: ∀ {ℓ₁ ℓ₂}{A : Type ℓ₁} {B : A → Type ℓ₂} {x y : A}
→ {p : x == y} {u : B x} {v : B y}
→ u == v [ B ↓ p ]
---------------------
→ v == u [ B ↓ (! p)]
!ᵈ {p = idp} = !_
module _ {ℓ₁ ℓ₂ : Level} {A : Type ℓ₁} {B : Type ℓ₂} where
↓-cst-in : {x y : A} {p : x == y} {u v : B}
→ u == v
→ u == v [ (λ _ → B) ↓ p ]
↓-cst-in {p = idp} q = q
↓-cst-out : {x y : A} {p : x == y} {u v : B}
→ u == v [ (λ _ → B) ↓ p ]
→ u == v
↓-cst-out {p = idp} q = q
module _ {ℓ₁ ℓ₂ : Level} {A : Type ℓ₁} {B : A → Type ℓ₂} where
_·2ᵈ_
: {f g h : Π A B}
→ {a a' : A} {p : a == a'} {q : f a == g a} {q' : f a' == g a'}
→ {r : g a == h a} {r' : g a' == h a'}
→ (q == q' [ (λ a → f a == g a) ↓ p ])
→ (r == r' [ (λ a → g a == h a) ↓ p ])
------------------------------------------------
→ (q · r == q' · r' [ (λ a → f a == h a) ↓ p ])
_·2ᵈ_ {p = idp} idp idp = idp -- α · β
apd-·
: (f : ∏ A B) → {a₁ a₂ a₃ : A}
→ (α : a₁ ≡ a₂) → (β : a₂ ≡ a₃)
-----------------------------------------------------------------
→ apd f (α · β) ≡ pathover-comp {p = α} (apd f α) (apd f β)
apd-· C idp idp = idp
apd-!
: (f : ∏ A B) → {a₁ a₂ : A}
→ (α : a₁ ≡ a₂)
----------------------------------------------------------------------------
→ apd f (α ⁻¹) ≡ ! (move-transport {α = α} (apd f α))
apd-! C idp = idp
·d-lunit
: ∀ {x y : A} {p : x == y}
→ {u : B x} {v : B y}
→ (r : u == v [ B ↓ p ])
------------------------
→ pathover-comp {q = p} idp r == r
·d-lunit {p = idp} idp = idp
-- ▹idp : {x y : A} {p : x == y}
-- {u : B x} {v : B y} (q : u == v [ B ↓ p ])
-- → q ▹ idp == q
-- ▹idp {p = idp} idp = idp