module Cat.Functor.Reasoning.FullyFaithful {o β o' β'} {C : Precategory o β} {D : Precategory o' β'} (F : Functor C D) (ff : is-fully-faithful F) where
Reasoning for ff functorsπ
This module contains a few short combinators for reasoning about the actions of fully faithful functors on morphisms and isomorphisms.
open Fr F public private module C = Cat.Reasoning C module D = Cat.Reasoning D private variable a b c d : C.Ob Ξ± Ξ² Ξ³ Ξ΄ : D.Ob f g g' h i : C.Hom a b w x x' y z : D.Hom Ξ± Ξ² module _ {a} {b} where open Equiv (Fβ {a} {b} , ff) public iso-equiv : β {a b} β (a C.β b) β (Fβ a D.β Fβ b) iso-equiv {a} {b} = (F-map-iso {x = a} {b} , is-ffβF-map-iso-is-equiv {F = F} ff) module iso {a} {b} = Equiv (F-map-iso {x = a} {b} , is-ffβF-map-iso-is-equiv {F = F} ff)
fromn't : w β‘ Fβ f β from w β‘ f fromn't p = ap from p β Ξ· _ from-id : w β‘ D.id β from w β‘ C.id from-id p = injectiveβ (Ξ΅ _ β p) F-id from-β : from (w D.β x) β‘ from w C.β from x from-β = injective (Ξ΅ _ β sym (F-β _ _ β apβ D._β_ (Ξ΅ _) (Ξ΅ _))) ipushr : x D.β Fβ g β‘ x' β from (w D.β x) C.β g β‘ from (w D.β x') ipushr p = injective (F-β _ _ ββ apβ D._β_ (Ξ΅ _) refl ββ D.pullr p β sym (Ξ΅ _)) Ξ΅-lswizzle : w D.β x β‘ D.id β w D.β Fβ (from (x D.β y)) β‘ y Ξ΅-lswizzle = D.lswizzle (Ξ΅ _) Ξ΅-expand : w D.β x β‘ y β Fβ (from w C.β from x) β‘ y Ξ΅-expand p = F-β _ _ ββ apβ D._β_ (Ξ΅ _) (Ξ΅ _) ββ p Ξ΅-twist : Fβ f D.β x β‘ y D.β Fβ g β f C.β from x β‘ from y C.β g Ξ΅-twist {f = f} {g = g} p = injective $ swap $ ap (Fβ f D.β_) (Ξ΅ _) ββ p ββ ap (D._β Fβ g) (sym (Ξ΅ _)) invβl : x D.β Fβ f β‘ y β from x C.β f β‘ from y invβl x = sym (Ξ΅-twist (D.eliml F-id β sym x)) β C.idl _ whackl : x D.β Fβ f β‘ Fβ g β from x C.β f β‘ g whackl p = sym (Ξ΅-twist (D.idr _ β sym p)) β C.elimr (from-id refl) whackr : Fβ f D.β x β‘ Fβ g β f C.β from x β‘ g whackr p = Ξ΅-twist (p β sym (D.idl _)) β C.eliml (from-id refl) pouncer : Fβ f D.β x β‘ z β f C.β from x β‘ from z pouncer p = Ξ΅-twist (p β intror refl) β C.idr _ Ξ·-expand : f C.β g β‘ h β from (Fβ f D.β Fβ g) β‘ h Ξ·-expand p = from-β ββ apβ C._β_ (Ξ· _) (Ξ· _) ββ p Ξ·-twist : from x C.β f β‘ g C.β from y β x D.β Fβ f β‘ Fβ g D.β y Ξ·-twist {x = x} {f = f} {g = g} {y = y} p = x D.β Fβ f β‘Λβ¨ Ξ΅-expand refl β©β‘Λ Fβ (from x C.β from (Fβ f)) β‘β¨ β¨ C.reflβ©ββ¨ Ξ· _ β© β©β‘ Fβ (from x C.β f) β‘β¨ β¨ p β© β©β‘ Fβ (g C.β from y) β‘Λβ¨ β¨ Ξ· _ C.β©ββ¨refl β© β©β‘Λ Fβ (from (Fβ g) C.β from y) β‘β¨ Ξ΅-expand refl β©β‘ Fβ g D.β y β unwhackr : f C.β from w β‘ g β Fβ f D.β w β‘ Fβ g unwhackr {f = f} {w = w} p = sym (Ξ·-twist $ C.idr _ ββ Ξ· _ ββ sym p) β elimr refl