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 thata
andb
are related both ways byr
.Antisymmetrization α r
: The quotient ofα
byAntisymmRel r
. Even whenr
is just a preorder,Antisymmetrization α
is a partial order.
Equations
- AntisymmRel.decidableRel x✝ x = instDecidableAnd
Alias of the forward direction of antisymmRel_iff_eq
.
The antisymmetrization relation as an equivalence relation.
Equations
- AntisymmRel.setoid α r = { r := AntisymmRel r, iseqv := ⋯ }
Instances For
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
- Antisymmetrization α r = Quotient (AntisymmRel.setoid α r)
Instances For
Turn an element into its antisymmetrization.
Equations
Instances For
Get a representative from the antisymmetrization.
Equations
- ofAntisymmetrization r = Quotient.out'
Instances For
Equations
- instInhabitedAntisymmetrization r = id inferInstance
Equations
- instPartialOrderAntisymmetrization = PartialOrder.mk ⋯
Equations
- ⋯ = ⋯
Equations
- One or more equations did not get rendered due to their size.
Turns an order homomorphism from α
to β
into one from Antisymmetrization α
to
Antisymmetrization β
. Antisymmetrization
is actually a functor. See Preorder_to_PartialOrder
.
Equations
- OrderHom.antisymmetrization f = { toFun := Quotient.map' ⇑f ⋯, monotone' := ⋯ }
Instances For
ofAntisymmetrization
as an order embedding.
Equations
- OrderEmbedding.ofAntisymmetrization α = let __src := Quotient.out'RelEmbedding ⋯; { toEmbedding := { toFun := ofAntisymmetrization fun (x x_1 : α) => x ≤ x_1, inj' := ⋯ }, map_rel_iff' := ⋯ }
Instances For
Antisymmetrization
and orderDual
commute.
Equations
- OrderIso.dualAntisymmetrization α = { toEquiv := { toFun := Quotient.map' id ⋯, invFun := Quotient.map' id ⋯, left_inv := ⋯, right_inv := ⋯ }, map_rel_iff' := ⋯ }