Factorization operations into function classes
module orthogonal-factorization-systems.factorization-operations-function-classes where
Imports
open import foundation.contractible-types open import foundation.functions open import foundation.inhabited-types open import foundation.propositions open import foundation.universe-levels open import orthogonal-factorization-systems.factorizations-of-maps open import orthogonal-factorization-systems.function-classes
Idea
A factorization operation into function classes is a factorization operation
equipped with two function classes L
and R
such that the left map of every
factorization is in L
, and the right map is in R
.
∙
^ \
L ∋ / \ ∈ R
/ v
A -----> B
Definition
module _ {l1 l2 lF lL lR : Level} (L : function-class l1 lF lL) (R : function-class lF l2 lR) (A : UU l1) (B : UU l2) where factorization-operation-function-class : UU (l1 ⊔ l2 ⊔ lsuc lF ⊔ lL ⊔ lR) factorization-operation-function-class = (f : A → B) → factorization-function-class L R f mere-factorization-property-function-class : UU (l1 ⊔ l2 ⊔ lsuc lF ⊔ lL ⊔ lR) mere-factorization-property-function-class = (f : A → B) → is-inhabited (factorization-function-class L R f) unique-factorization-operation-function-class : UU (l1 ⊔ l2 ⊔ lsuc lF ⊔ lL ⊔ lR) unique-factorization-operation-function-class = (f : A → B) → is-contr (factorization-function-class L R f)
Properties
A mere function class factorization property is a property
module _ {l1 l2 lF lL lR : Level} (L : function-class l1 lF lL) (R : function-class lF l2 lR) {A : UU l1} {B : UU l2} where mere-factorization-property-function-class-Prop : Prop (l1 ⊔ l2 ⊔ lsuc lF ⊔ lL ⊔ lR) mere-factorization-property-function-class-Prop = Π-Prop (A → B) (is-inhabited-Prop ∘ factorization-function-class L R) is-prop-mere-factorization-property-function-class : is-prop (mere-factorization-property-function-class L R A B) is-prop-mere-factorization-property-function-class = is-prop-type-Prop mere-factorization-property-function-class-Prop
Having a unique function class factorization operation is a property
module _ {l1 l2 lF lL lR : Level} (L : function-class l1 lF lL) (R : function-class lF l2 lR) {A : UU l1} {B : UU l2} where unique-factorization-operation-function-class-Prop : Prop (l1 ⊔ l2 ⊔ lsuc lF ⊔ lL ⊔ lR) unique-factorization-operation-function-class-Prop = Π-Prop (A → B) (is-contr-Prop ∘ factorization-function-class L R) is-prop-unique-factorization-operation-function-class : is-prop (unique-factorization-operation-function-class L R A B) is-prop-unique-factorization-operation-function-class = is-prop-type-Prop unique-factorization-operation-function-class-Prop