{-# OPTIONS --sized-types --safe --without-K #-} module GlobSet.Invertible where open import GlobSet.Invertible.Core public open import GlobSet open import GlobSet.Composition open import GlobSet.HCat idIsInv : {a : Level} → {i : Size} → (j : Size< i) → {G : GlobSet a i} → (h : HigherCat i G) → (x : cells G) → Invertible i (com h) j (id (com h) j x) idIsInv j h x .finv = id (com h) j x idIsInv j h x .fR k = ƛ (hCat h) k (id (com h) j x) idIsInv j h x .fL k = ƛ (hCat h) k (id (com h) j x) id' : {a : Level} → {i : Size} → (j : Size< i) → {G : GlobSet a i} → (h : HigherCat i G) → (x : cells G) → InvertibleCell i (com h) j x x id' j h x .cell = id (com h) j x id' j h x .invert = idIsInv j h x invIsInv : {a : Level} → {i : Size} → (j : Size< i) → {G : GlobSet a i} → (c : Composable i G) → {x y : cells G} → (f : cells (morphisms G j x y)) → (inv : Invertible i c j f) → Invertible i c j (finv inv) invIsInv j c f inv .finv = f invIsInv j c f inv .fR k = fL inv k invIsInv j c f inv .fL k = fR inv k invIsInvCell : {a : Level} → {i : Size} → (j : Size< i) → {G : GlobSet a i} → (c : Composable i G) → {x y : cells G} → (inv : InvertibleCell i c j x y) → InvertibleCell i c j y x invIsInvCell j c inv .cell = finv (invert inv) invIsInvCell j c inv .invert = invIsInv j c (cell inv) (invert inv)