# The Factorisation Category of a Category #

Factorisation f is the category containing as objects all factorisations of a morphism f.

We show that Factorisation f always has an initial and a terminal object.

TODO: Show that Factorisation f is isomorphic to a comma category in two ways.

TODO: Make MonoFactorisation f a special case of a Factorisation f.

structure CategoryTheory.Factorisation {C : Type u} {X : C} {Y : C} (f : X Y) :
Type (max u v)

Factorisations of a morphism f as a structure, containing, one object, two morphisms, and the condition that their composition equals f.

• mid : C

The midpoint of the factorisation.

• ι : X self.mid

The morphism into the factorisation midpoint.

• π : self.mid Y

The morphism out of the factorisation midpoint.

• ι_π : CategoryTheory.CategoryStruct.comp self self = f

The factorisation condition.

Instances For
@[simp]
theorem CategoryTheory.Factorisation.ι_π {C : Type u} {X : C} {Y : C} {f : X Y} (self : ) :

The factorisation condition.

theorem CategoryTheory.Factorisation.Hom.ext_iff {C : Type u} :
∀ {inst : } {X Y : C} {f : X Y} {d e : } (x y : d.Hom e), x = y x.h = y.h
theorem CategoryTheory.Factorisation.Hom.ext {C : Type u} :
∀ {inst : } {X Y : C} {f : X Y} {d e : } (x y : d.Hom e), x.h = y.hx = y
structure CategoryTheory.Factorisation.Hom {C : Type u} {X : C} {Y : C} {f : X Y} (d : ) (e : ) :
Type (max u v)

Morphisms of Factorisation f consist of morphism between their midpoints and the obvious commutativity conditions.

Instances For
@[simp]
theorem CategoryTheory.Factorisation.Hom.ι_h {C : Type u} {X : C} {Y : C} {f : X Y} {d : } {e : } (self : d.Hom e) :

The left commuting triangle of the factorization morphism.

@[simp]
theorem CategoryTheory.Factorisation.Hom.h_π {C : Type u} {X : C} {Y : C} {f : X Y} {d : } {e : } (self : d.Hom e) :

The right commuting triangle of the factorization morphism.

@[simp]
theorem CategoryTheory.Factorisation.Hom.id_h {C : Type u} {X : C} {Y : C} {f : X Y} (d : ) :
def CategoryTheory.Factorisation.Hom.id {C : Type u} {X : C} {Y : C} {f : X Y} (d : ) :
d.Hom d

The identity morphism of Factorisation f.

Equations
• = { h := , ι_h := , h_π := }
Instances For
@[simp]
theorem CategoryTheory.Factorisation.Hom.comp_h {C : Type u} {X : C} {Y : C} {f : X Y} {d₁ : } {d₂ : } {d₃ : } (f : d₁.Hom d₂) (g : d₂.Hom d₃) :
(f.comp g).h =
def CategoryTheory.Factorisation.Hom.comp {C : Type u} {X : C} {Y : C} {f : X Y} {d₁ : } {d₂ : } {d₃ : } (f : d₁.Hom d₂) (g : d₂.Hom d₃) :
d₁.Hom d₃

Composition of morphisms in Factorisation f.

Equations
• f.comp g = { h := , ι_h := , h_π := }
Instances For
instance CategoryTheory.Factorisation.instCategory {C : Type u} {X : C} {Y : C} {f : X Y} :
Equations
• CategoryTheory.Factorisation.instCategory =
@[simp]
theorem CategoryTheory.Factorisation.initial_mid {C : Type u} {X : C} {Y : C} {f : X Y} :
CategoryTheory.Factorisation.initial.mid = X
@[simp]
theorem CategoryTheory.Factorisation.initial_π {C : Type u} {X : C} {Y : C} {f : X Y} :
CategoryTheory.Factorisation.initial = f
@[simp]
theorem CategoryTheory.Factorisation.initial_ι {C : Type u} {X : C} {Y : C} {f : X Y} :
CategoryTheory.Factorisation.initial =
def CategoryTheory.Factorisation.initial {C : Type u} {X : C} {Y : C} {f : X Y} :

The initial object in Factorisation f, with the domain of f as its midpoint.

Equations
• CategoryTheory.Factorisation.initial = { mid := X, ι := , π := f, ι_π := }
Instances For
@[simp]
theorem CategoryTheory.Factorisation.initialHom_h {C : Type u} {X : C} {Y : C} {f : X Y} (d : ) :
d.initialHom.h = d
def CategoryTheory.Factorisation.initialHom {C : Type u} {X : C} {Y : C} {f : X Y} (d : ) :
CategoryTheory.Factorisation.initial.Hom d

The unique morphism out of Factorisation.initial f.

Equations
• d.initialHom = { h := d, ι_h := , h_π := }
Instances For
instance CategoryTheory.Factorisation.instUniqueHomInitial {C : Type u} {X : C} {Y : C} {f : X Y} (d : ) :
Unique (CategoryTheory.Factorisation.initial d)
Equations
• d.instUniqueHomInitial = { default := d.initialHom, uniq := }
@[simp]
theorem CategoryTheory.Factorisation.terminal_π {C : Type u} {X : C} {Y : C} {f : X Y} :
CategoryTheory.Factorisation.terminal =
@[simp]
theorem CategoryTheory.Factorisation.terminal_ι {C : Type u} {X : C} {Y : C} {f : X Y} :
CategoryTheory.Factorisation.terminal = f
@[simp]
theorem CategoryTheory.Factorisation.terminal_mid {C : Type u} {X : C} {Y : C} {f : X Y} :
CategoryTheory.Factorisation.terminal.mid = Y
def CategoryTheory.Factorisation.terminal {C : Type u} {X : C} {Y : C} {f : X Y} :

The terminal object in Factorisation f, with the codomain of f as its midpoint.

Equations
• CategoryTheory.Factorisation.terminal = { mid := Y, ι := f, π := , ι_π := }
Instances For
@[simp]
theorem CategoryTheory.Factorisation.terminalHom_h {C : Type u} {X : C} {Y : C} {f : X Y} (d : ) :
d.terminalHom.h = d
def CategoryTheory.Factorisation.terminalHom {C : Type u} {X : C} {Y : C} {f : X Y} (d : ) :
d.Hom CategoryTheory.Factorisation.terminal

The unique morphism into Factorisation.terminal f.

Equations
• d.terminalHom = { h := d, ι_h := , h_π := }
Instances For
instance CategoryTheory.Factorisation.instUniqueHomTerminal {C : Type u} {X : C} {Y : C} {f : X Y} (d : ) :
Unique (d CategoryTheory.Factorisation.terminal)
Equations
• d.instUniqueHomTerminal = { default := d.terminalHom, uniq := }
def CategoryTheory.Factorisation.IsInitial_initial {C : Type u} {X : C} {Y : C} {f : X Y} :
CategoryTheory.Limits.IsInitial CategoryTheory.Factorisation.initial

The initial factorisation is an initial object

Equations
Instances For
instance CategoryTheory.Factorisation.instHasInitial {C : Type u} {X : C} {Y : C} {f : X Y} :
Equations
• =
def CategoryTheory.Factorisation.IsTerminal_terminal {C : Type u} {X : C} {Y : C} {f : X Y} :
CategoryTheory.Limits.IsTerminal CategoryTheory.Factorisation.terminal

The terminal factorisation is a terminal object

Equations
Instances For
instance CategoryTheory.Factorisation.instHasTerminal {C : Type u} {X : C} {Y : C} {f : X Y} :
Equations
• =
@[simp]
theorem CategoryTheory.Factorisation.forget_obj {C : Type u} {X : C} {Y : C} {f : X Y} (self : ) :
CategoryTheory.Factorisation.forget.obj self = self.mid
@[simp]
theorem CategoryTheory.Factorisation.forget_map {C : Type u} {X : C} {Y : C} {f : X Y} :
∀ {X_1 Y_1 : } (f_1 : X_1 Y_1), CategoryTheory.Factorisation.forget.map f_1 = f_1.h
def CategoryTheory.Factorisation.forget {C : Type u} {X : C} {Y : C} {f : X Y} :

The forgetful functor from Factorisation f to the underlying category C.

Equations
• CategoryTheory.Factorisation.forget = { obj := CategoryTheory.Factorisation.mid, map := fun {X_1 Y_1 : } (f_1 : X_1 Y_1) => f_1.h, map_id := , map_comp := }
Instances For