Unbundled relation classes #
In this file we prove some properties of is_*
classes defined in init.algebra.classes
. The main
difference between these classes and the usual order classes (preorder
etc) is that usual classes
extend has_le
and/or has_lt
while these classes take a relation as an explicit argument.
Construct a partial order from a is_strict_order
relation.
See note [reducible non-instances].
Equations
- partial_order_of_SO r = {le := λ (x y : α), x = y ∨ r x y, lt := r, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _}
- to_is_trichotomous : is_trichotomous α lt
- to_is_strict_order : is_strict_order α lt
This is basically the same as is_strict_total_order
, but that definition has a redundant
assumption is_incomp_trans α lt
.
Construct a linear order from an is_strict_total_order'
relation.
See note [reducible non-instances].
Equations
- linear_order_of_STO' r = {le := partial_order.le (partial_order_of_SO r), lt := partial_order.lt (partial_order_of_SO r), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := λ (x y : α), decidable_of_iff (¬r y x) _, decidable_eq := decidable_eq_of_decidable_le (λ (x y : α), decidable_of_iff (¬r y x) _), decidable_lt := decidable_lt_of_decidable_le (λ (x y : α), decidable_of_iff (¬r y x) _), max := max_default (λ (a b : α), decidable_of_iff (¬r b a) _), max_def := _, min := min_default (λ (a b : α), decidable_of_iff (¬r b a) _), min_def := _}
- conn : ∀ (a b c : α), lt a c → lt a b ∨ lt b c
A connected order is one satisfying the condition a < c → a < b ∨ b < c
.
This is recognizable as an intuitionistic substitute for a ≤ b ∨ b ≤ a
on
the constructive reals, and is also known as negative transitivity,
since the contrapositive asserts transitivity of the relation ¬ a < b
.
An extensional relation is one in which an element is determined by its set
of predecessors. It is named for the x ∈ y
relation in set theory, whose
extensionality is one of the first axioms of ZFC.
- to_is_strict_total_order' : is_strict_total_order' α r
- wf : well_founded r
A well order is a well-founded linear order.
Construct a decidable linear order from a well-founded linear order.
Equations
- is_well_order.linear_order r = let _inst : Π (x y : α), decidable (¬r x y) := λ (x y : α), classical.dec (¬r x y) in linear_order_of_STO' r