module Cat.Morphism.Factorisation where
Factorisations🔗
module _
{o ℓ ℓl ℓr}
(C : Precategory o ℓ)
(L : Arrows C ℓl)
(R : Arrows C ℓr)
where
private module C = Cat.Reasoning C
Let be two classes of morphisms of An factorisation of a morphism consists of an object and a pair of morphisms such that and
record Factorisation {a b} (f : C.Hom a b) : Type (o ⊔ ℓ ⊔ ℓl ⊔ ℓr) where
field
: C.Ob
mid : C.Hom a mid
left : C.Hom mid b
right : left ∈ L
left∈L : right ∈ R
right∈R : f ≡ right C.∘ left factors
module _
{o ℓ ℓl ℓr}
{C : Precategory o ℓ}
{L : Arrows C ℓl}
{R : Arrows C ℓr}
where
private module C = Cat.Reasoning C
open Factorisation
Properties of factorisations🔗
If is monic and factors as then must also be monic.
factor-monic→left-monic: ∀ {x y} {f : C.Hom x y}
→ (f-fac : Factorisation C L R f)
→ C.is-monic f
→ C.is-monic (f-fac .left)
{f = f} f-fac f-monic = C.monic-cancell $
factor-monic→left-monic .subst-is-monic (f-fac .factors) f-monic C
If is epic and factors as then must also be epic.
factor-epic→right-epic: ∀ {x y} {f : C.Hom x y}
→ (f-fac : Factorisation C L R f)
→ C.is-epic f
→ C.is-epic (f-fac .right)
{f = f} f-fac f-epic = C.epic-cancelr $
factor-epic→right-epic .subst-is-epic (f-fac .factors) f-epic C