{-# 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