{-# OPTIONS --without-K --exact-split --rewriting #-} open import lib.Base open import lib.PathOver module Pi.FSMG.Paths where _■_ : ∀ {i} {j} → {A : Type i} {P : A → Type j} → {x y z : A} {u : P x} {v : P y} {w : P z} → {p : x == y} {q : y == z} → u == v [ P ↓ p ] → v == w [ P ↓ q ] → u == w [ P ↓ (p ∙ q) ] _■_ {p = idp} {idp} s t = s ∙ t $ : ∀ {i} {j} → {A : Type i} {P : A → Type j} → {x y : A} {u : P x} {v : P y} → {f : A → A} (g : {x : A} → P x → P (f x)) → {p : x == y} → u == v [ P ↓ p ] → g u == g v [ P ↓ ap f p ] $ g {idp} s = ap g s