Turning a preorder into a partial order #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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 #
antisymm_rel
: The antisymmetrization relation.antisymm_rel r a b
means thata
andb
are related both ways byr
.antisymmetrization α r
: The quotient ofα
byantisymm_rel r
. Even whenr
is just a preorder,antisymmetrization α
is a partial order.
The antisymmetrization relation.
Equations
- antisymm_rel r a b = (r a b ∧ r b a)
Instances for antisymm_rel
Equations
- antisymm_rel.decidable_rel = λ (_x _x_1 : α), and.decidable
Alias of the forward direction of antisymm_rel_iff_eq
.
The antisymmetrization relation as an equivalence relation.
Equations
- antisymm_rel.setoid α r = {r := antisymm_rel r, iseqv := _}
The partial order derived from a preorder by making pairwise comparable elements equal. This is
the quotient by λ a b, a ≤ b ∧ b ≤ a
.
Equations
- antisymmetrization α r = quotient (antisymm_rel.setoid α r)
Instances for antisymmetrization
Turn an element into its antisymmetrization.
Equations
Get a representative from the antisymmetrization.
Equations
Equations
Equations
- antisymmetrization.partial_order = {le := λ (a b : antisymmetrization α has_le.le), quotient.lift_on₂' a b has_le.le antisymmetrization.partial_order._proof_1, lt := λ (a b : antisymmetrization α has_le.le), quotient.lift_on₂' a b has_lt.lt antisymmetrization.partial_order._proof_2, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _}
Equations
- antisymmetrization.linear_order = {le := partial_order.le antisymmetrization.partial_order, lt := partial_order.lt antisymmetrization.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := λ (_x _x_1 : antisymmetrization α has_le.le), quotient.lift_on₂'.decidable _x _x_1 (λ (a₁ : α), has_le.le a₁) antisymmetrization.partial_order._proof_1, decidable_eq := quotient.decidable_eq antisymm_rel.decidable_rel, decidable_lt := λ (_x _x_1 : antisymmetrization α has_le.le), quotient.lift_on₂'.decidable _x _x_1 (λ (a₁ : α), has_lt.lt a₁) antisymmetrization.partial_order._proof_2, max := max_default (λ (a b : antisymmetrization α has_le.le), quotient.lift_on₂'.decidable a b (λ (a₁ : α), has_le.le a₁) antisymmetrization.partial_order._proof_1), max_def := _, min := min_default (λ (a b : antisymmetrization α has_le.le), quotient.lift_on₂'.decidable a b (λ (a₁ : α), has_le.le a₁) antisymmetrization.partial_order._proof_1), min_def := _}
to_antisymmetrization
as an order homomorphism.
Equations
Turns an order homomorphism from α
to β
into one from antisymmetrization α
to
antisymmetrization β
. antisymmetrization
is actually a functor. See Preorder_to_PartialOrder
.
Equations
- f.antisymmetrization = {to_fun := quotient.map' ⇑f _, monotone' := _}
of_antisymmetrization
as an order embedding.
Equations
antisymmetrization
and order_dual
commute.
Equations
- order_iso.dual_antisymmetrization α = {to_equiv := {to_fun := quotient.map' id _, inv_fun := quotient.map' id _, left_inv := _, right_inv := _}, map_rel_iff' := _}