module Cat.Internal.Reasoning {o β} {C : Precategory o β} (β : Internal.Internal-cat C) where
Reasoning in internal categoriesπ
The combinators in this module mirror those in the category reasoning module, so we will not comment on them too much.
Identity morphismsπ
abstract id-commi : β {f : Homi x y} β f βi idi x β‘ idi y βi f id-commi {f = f} = idri f β sym (idli f) id-comm-symi : β {f : Homi x y} β idi y βi f β‘ f βi idi x id-comm-symi {f = f} = idli f β sym (idri f) module _ {a : Homi x x} (p : a β‘ idi x) where abstract elimli : a βi f β‘ f elimli {f = f} = ap (_βi f) p β idli _ elimri : f βi a β‘ f elimri {f = f} = ap (f βi_) p β idri _ elim-inneri : f βi a βi h β‘ f βi h elim-inneri {f = f} = ap (f βi_) elimli introli : f β‘ a βi f introli = sym elimli introri : f β‘ f βi a introri = sym elimri
Reassociationsπ
module _ (p : a βi b β‘ c) where abstract pullli : a βi (b βi f) β‘ c βi f pullli {f = f} = associ _ _ _ β ap (_βi f) p pullri : (f βi a) βi b β‘ f βi c pullri {f = f} = sym (associ _ _ _) β ap (f βi_) p module _ (p : c β‘ a βi b) where abstract pushli : c βi f β‘ a βi (b βi f) pushli = sym (pullli (sym p)) pushri : f βi c β‘ (f βi a) βi b pushri = sym (pullri (sym p)) module _ (p : f βi h β‘ g βi i) where abstract extendli : f βi (h βi b) β‘ g βi (i βi b) extendli {b = b} = associ _ _ _ Β·Β· ap (_βi b) p Β·Β· sym (associ _ _ _) extendri : (a βi f) βi h β‘ (a βi g) βi i extendri {a = a} = sym (associ _ _ _) Β·Β· ap (a βi_) p Β·Β· associ _ _ _ extend-inneri : a βi f βi h βi b β‘ a βi g βi i βi b extend-inneri {a = a} = ap (a βi_) extendli
Cancellationπ
module _ (inv : h βi i β‘ idi _) where cancelli : h βi (i βi f) β‘ f cancelli = pullli inv β idli _ cancelri : (f βi h) βi i β‘ f cancelri = pullri inv β idri _ insertli : f β‘ h βi (i βi f) insertli = sym cancelli insertri : f β‘ (f βi h) βi i insertri = sym cancelri deleteli : h βi (i βi f) βi g β‘ f βi g deleteli = pullli cancelli deleteri : (f βi g βi h) βi i β‘ f βi g deleteri = pullri cancelri
Substitutionsπ
sub-id : β {f : Homi x y} β PathP (Ξ» i β Homi (idr x i) (idr y i)) (f [ id ]) f sub-id = Internal-hom-pathp (idr _) (idr _) (idr _)
Generalized morphismsπ
βi-ihom : β {f : Homi y z} {f' : Homi y' z'} {g : Homi x y} {g' : Homi x' y'} β x β‘ x' β y β‘ y' β z β‘ z' β f .ihom β‘ f' .ihom β g .ihom β‘ g' .ihom β (f βi g) .ihom β‘ (f' βi g') .ihom βi-ihom {z = z} {x = x} {f = f} {f'} {g} {g'} px py pz q r i = βi-ihom-filler i .ihom where βi-ihom-filler : (i : I) β Homi (px i) (pz i) βi-ihom-filler i = (Internal-hom-pathp {f = f} {g = f'} py pz q i) βi (Internal-hom-pathp {f = g} {g = g'} px py r i)