# Turning a preorder into a partial order #

This file allows to make a preorder into a partial order by quotienting out the elements a, b such that a ≤ b and b ≤ a.

Antisymmetrization is a functor from Preorder to PartialOrder. See Preorder_to_PartialOrder.

## Main declarations #

• AntisymmRel: The antisymmetrization relation. AntisymmRel r a b means that a and b are related both ways by r.
• Antisymmetrization α r: The quotient of α by AntisymmRel r. Even when r is just a preorder, Antisymmetrization α is a partial order.
def AntisymmRel {α : Type u_1} (r : ααProp) (a : α) (b : α) :

The antisymmetrization relation.

Equations
Instances For
theorem antisymmRel_swap {α : Type u_1} (r : ααProp) :
theorem antisymmRel_refl {α : Type u_1} (r : ααProp) [IsRefl α r] (a : α) :
theorem AntisymmRel.symm {α : Type u_1} {r : ααProp} {a : α} {b : α} :
AntisymmRel r a bAntisymmRel r b a
theorem AntisymmRel.trans {α : Type u_1} {r : ααProp} [IsTrans α r] {a : α} {b : α} {c : α} (hab : AntisymmRel r a b) (hbc : AntisymmRel r b c) :
instance AntisymmRel.decidableRel {α : Type u_1} {r : ααProp} [] :
Equations
• = instDecidableAnd
@[simp]
theorem antisymmRel_iff_eq {α : Type u_1} {r : ααProp} [IsRefl α r] [] {a : α} {b : α} :
AntisymmRel r a b a = b
theorem AntisymmRel.eq {α : Type u_1} {r : ααProp} [IsRefl α r] [] {a : α} {b : α} :
AntisymmRel r a ba = b

Alias of the forward direction of antisymmRel_iff_eq.

@[simp]
theorem AntisymmRel.setoid_r (α : Type u_1) (r : ααProp) [] (a : α) (b : α) :
def AntisymmRel.setoid (α : Type u_1) (r : ααProp) [] :

The antisymmetrization relation as an equivalence relation.

Equations
• = { r := , iseqv := }
Instances For
def Antisymmetrization (α : Type u_1) (r : ααProp) [] :
Type u_1

The partial order derived from a preorder by making pairwise comparable elements equal. This is the quotient by fun a b => a ≤ b ∧ b ≤ a.

Equations
Instances For
def toAntisymmetrization {α : Type u_1} (r : ααProp) [] :
α

Turn an element into its antisymmetrization.

Equations
Instances For
noncomputable def ofAntisymmetrization {α : Type u_1} (r : ααProp) [] :
α

Get a representative from the antisymmetrization.

Equations
• = Quotient.out'
Instances For
instance instInhabitedAntisymmetrization {α : Type u_1} (r : ααProp) [] [] :
Equations
• = id inferInstance
theorem Antisymmetrization.ind {α : Type u_1} (r : ααProp) [] {p : } :
(∀ (a : α), p ())∀ (q : ), p q
theorem Antisymmetrization.induction_on {α : Type u_1} (r : ααProp) [] {p : } (a : ) (h : ∀ (a : α), p ()) :
p a
@[simp]
theorem toAntisymmetrization_ofAntisymmetrization {α : Type u_1} (r : ααProp) [] (a : ) :
theorem AntisymmRel.image {α : Type u_1} {β : Type u_2} [] [] {a : α} {b : α} (h : AntisymmRel (fun (x x_1 : α) => x x_1) a b) {f : αβ} (hf : ) :
AntisymmRel (fun (x x_1 : β) => x x_1) (f a) (f b)
instance instPartialOrderAntisymmetrization {α : Type u_1} [] :
PartialOrder (Antisymmetrization α fun (x x_1 : α) => x x_1)
Equations
• instPartialOrderAntisymmetrization =
theorem antisymmetrization_fibration {α : Type u_1} [] :
Relation.Fibration (fun (x x_1 : α) => x < x_1) (fun (x x_1 : Antisymmetrization α fun (x x_1 : α) => x x_1) => x < x_1) (toAntisymmetrization fun (x x_1 : α) => x x_1)
theorem acc_antisymmetrization_iff {α : Type u_1} [] {a : α} :
Acc (fun (x x_1 : Antisymmetrization α fun (x x_1 : α) => x x_1) => x < x_1) (toAntisymmetrization (fun (x x_1 : α) => x x_1) a) Acc (fun (x x_1 : α) => x < x_1) a
instance instWellFoundedLTAntisymmetrizationLe {α : Type u_1} [] [] :
WellFoundedLT (Antisymmetrization α fun (x x_1 : α) => x x_1)
Equations
• =
instance instLinearOrderAntisymmetrizationLeOfDecidableRelLtOfIsTotal {α : Type u_1} [] [DecidableRel fun (x x_1 : α) => x x_1] [DecidableRel fun (x x_1 : α) => x < x_1] [IsTotal α fun (x x_1 : α) => x x_1] :
LinearOrder (Antisymmetrization α fun (x x_1 : α) => x x_1)
Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem toAntisymmetrization_le_toAntisymmetrization_iff {α : Type u_1} [] {a : α} {b : α} :
toAntisymmetrization (fun (x x_1 : α) => x x_1) a toAntisymmetrization (fun (x x_1 : α) => x x_1) b a b
@[simp]
theorem toAntisymmetrization_lt_toAntisymmetrization_iff {α : Type u_1} [] {a : α} {b : α} :
toAntisymmetrization (fun (x x_1 : α) => x x_1) a < toAntisymmetrization (fun (x x_1 : α) => x x_1) b a < b
@[simp]
theorem ofAntisymmetrization_le_ofAntisymmetrization_iff {α : Type u_1} [] {a : Antisymmetrization α fun (x x_1 : α) => x x_1} {b : Antisymmetrization α fun (x x_1 : α) => x x_1} :
ofAntisymmetrization (fun (x x_1 : α) => x x_1) a ofAntisymmetrization (fun (x x_1 : α) => x x_1) b a b
@[simp]
theorem ofAntisymmetrization_lt_ofAntisymmetrization_iff {α : Type u_1} [] {a : Antisymmetrization α fun (x x_1 : α) => x x_1} {b : Antisymmetrization α fun (x x_1 : α) => x x_1} :
ofAntisymmetrization (fun (x x_1 : α) => x x_1) a < ofAntisymmetrization (fun (x x_1 : α) => x x_1) b a < b
theorem toAntisymmetrization_mono {α : Type u_1} [] :
Monotone (toAntisymmetrization fun (x x_1 : α) => x x_1)
def OrderHom.antisymmetrization {α : Type u_1} {β : Type u_2} [] [] (f : α →o β) :
(Antisymmetrization α fun (x x_1 : α) => x x_1) →o Antisymmetrization β fun (x x_1 : β) => x x_1

Turns an order homomorphism from α to β into one from Antisymmetrization α to Antisymmetrization β. Antisymmetrization is actually a functor. See Preorder_to_PartialOrder.

Equations
• f.antisymmetrization = { toFun := , monotone' := }
Instances For
@[simp]
theorem OrderHom.coe_antisymmetrization {α : Type u_1} {β : Type u_2} [] [] (f : α →o β) :
f.antisymmetrization =
theorem OrderHom.antisymmetrization_apply {α : Type u_1} {β : Type u_2} [] [] (f : α →o β) (a : Antisymmetrization α fun (x x_1 : α) => x x_1) :
f.antisymmetrization a = Quotient.map' f a
@[simp]
theorem OrderHom.antisymmetrization_apply_mk {α : Type u_1} {β : Type u_2} [] [] (f : α →o β) (a : α) :
f.antisymmetrization (toAntisymmetrization (fun (x x_1 : α) => x x_1) a) = toAntisymmetrization (fun (x x_1 : β) => x x_1) (f a)
@[simp]
theorem OrderEmbedding.ofAntisymmetrization_apply (α : Type u_1) [] :
∀ (a : Antisymmetrization α fun (x x_1 : α) => x x_1), = ofAntisymmetrization (fun (x x_1 : α) => x x_1) a
noncomputable def OrderEmbedding.ofAntisymmetrization (α : Type u_1) [] :
(Antisymmetrization α fun (x x_1 : α) => x x_1) ↪o α

ofAntisymmetrization as an order embedding.

Equations
Instances For
def OrderIso.dualAntisymmetrization (α : Type u_1) [] :
(Antisymmetrization α fun (x x_1 : α) => x x_1)ᵒᵈ ≃o Antisymmetrization αᵒᵈ fun (x x_1 : αᵒᵈ) => x x_1

Antisymmetrization and orderDual commute.

Equations
• = { toFun := , invFun := , left_inv := , right_inv := , map_rel_iff' := }
Instances For
@[simp]
theorem OrderIso.dualAntisymmetrization_apply (α : Type u_1) [] (a : α) :
(OrderDual.toDual (toAntisymmetrization (fun (x x_1 : α) => x x_1) a)) = toAntisymmetrization (fun (x x_1 : αᵒᵈ) => x x_1) (OrderDual.toDual a)
@[simp]
theorem OrderIso.dualAntisymmetrization_symm_apply (α : Type u_1) [] (a : α) :
.symm (toAntisymmetrization (fun (x x_1 : αᵒᵈ) => x x_1) (OrderDual.toDual a)) = OrderDual.toDual (toAntisymmetrization (fun (x x_1 : α) => x x_1) a)