Orthogonal maps
module orthogonal-factorization-systems.orthogonal-maps where
Imports
open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.propositions open import foundation.universe-levels open import orthogonal-factorization-systems.pullback-hom
Idea
The map f : A → X
is said to be orthogonal to g : B → Y
if the
pullback-hom is an equivalence. This means that there is a unique lifting
operation between f
and g
.
In this case we say that f
is left orthogonal to g
and g
is right
orthogonal to f
.
Definition
module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} where is-orthogonal : (A → X) → (B → Y) → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) is-orthogonal f g = is-equiv (pullback-hom f g) _⊥_ = is-orthogonal module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} where
A term of is-right-orthogonal f g
asserts that g
is right orthogonal to f
.
is-right-orthogonal : (A → X) → (B → Y) → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) is-right-orthogonal = is-orthogonal
A term of is-left-orthogonal f g
asserts that g
is left orthogonal to f
.
is-left-orthogonal : (A → X) → (B → Y) → UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) is-left-orthogonal g f = is-orthogonal f g
Properties
Orthogonality of maps is a property
module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} (f : A → X) (g : B → Y) where is-property-is-orthogonal : is-prop (is-orthogonal f g) is-property-is-orthogonal = is-property-is-equiv (pullback-hom f g) is-orthogonal-Prop : Prop (l1 ⊔ l2 ⊔ l3 ⊔ l4) pr1 is-orthogonal-Prop = is-orthogonal f g pr2 is-orthogonal-Prop = is-property-is-orthogonal