{-# OPTIONS --without-K --safe --sized-types #-} module GlobSet.Invertible.Core where open import GlobSet open import GlobSet.Composition record Invertible {a : Level} (i : Size) {G : GlobSet a i} (c : Composable i G) (j : Size< i) {x y : cells G} (f : cells (morphisms G j x y)) : Set (suc a) record InvertibleCell {a : Level} (i : Size) {G : GlobSet a i} (c : Composable i G) (j : Size< i) (x y : cells G) : Set (suc a) where coinductive field cell : cells (morphisms G j x y) invert : Invertible i c j cell record Invertible {a} i {G} c j {x} {y} f where coinductive field finv : cells (morphisms G j y x) fR : (k : Size< j) → InvertibleCell j (compHigher c j x x) k (comp1 c f finv) (id c j x) fL : (k : Size< j) → InvertibleCell j (compHigher c j y y) k (comp1 c finv f) (id c j y) open InvertibleCell public open Invertible public