{-# OPTIONS --safe #-}
module Cubical.Categories.Isomorphism.More where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Equiv
open import Cubical.Foundations.Isomorphism
open import Cubical.Foundations.GroupoidLaws
open import Cubical.Foundations.Function
open import Cubical.Categories.Category
open import Cubical.Categories.Functor.Base
open import Cubical.Categories.Isomorphism
private
variable
ℓC ℓC' ℓD ℓD' : Level
open Category
open isIso
module _ {C : Category ℓC ℓC'} where
⋆InvLMove⁻ : {x y z : C .ob}
(f : CatIso C x y)
{g : C [ y , z ]}{h : C [ x , z ]}
→ g ≡ f .snd .inv ⋆⟨ C ⟩ h
→ f .fst ⋆⟨ C ⟩ g ≡ h
⋆InvLMove⁻ f {g = g} {h = h} p =
cong (λ a → f .fst ⋆⟨ C ⟩ a) p ∙
sym (C .⋆Assoc _ _ _) ∙
cong (λ a → a ⋆⟨ C ⟩ h) (f .snd .ret) ∙
C .⋆IdL _
⋆InvRMove⁻ : {x y z : C .ob}
(f : CatIso C y z)
{g : C [ x , y ]}{h : C [ x , z ]}
→ g ≡ h ⋆⟨ C ⟩ f .snd .inv
→ g ⋆⟨ C ⟩ f .fst ≡ h
⋆InvRMove⁻ f {g = g} {h = h} p =
cong (λ a → a ⋆⟨ C ⟩ f .fst) p ∙
C .⋆Assoc _ _ _ ∙
cong (λ a → h ⋆⟨ C ⟩ a) (f .snd .sec) ∙
C .⋆IdR _
⋆InvsFlipSq : {w x y z : C .ob}
(e : CatIso C w x)
{g : C [ w , y ]}
{h : C [ x , z ]}
(f : CatIso C y z)
→ e .fst ⋆⟨ C ⟩ h ≡ g ⋆⟨ C ⟩ f .fst
→ h ⋆⟨ C ⟩ f .snd .inv ≡ e .snd .inv ⋆⟨ C ⟩ g
⋆InvsFlipSq e {g} {h} f p =
⋆InvLMove e
(sym (C .⋆Assoc _ _ _)
∙ sym (⋆InvRMove f (sym p)))
⋆InvsFlipSq⁻ : {w x y z : C .ob}
(e : CatIso C w x)
{g : C [ w , y ]}
{h : C [ x , z ]}
(f : CatIso C y z)
→ h ⋆⟨ C ⟩ f .snd .inv ≡ e .snd .inv ⋆⟨ C ⟩ g
→ e .fst ⋆⟨ C ⟩ h ≡ g ⋆⟨ C ⟩ f .fst
⋆InvsFlipSq⁻ e f p = ⋆InvLMove⁻ e
( sym (⋆InvRMove⁻ f (sym p))
∙ C .⋆Assoc _ _ _)