Linear locally finite orders #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We prove that a linear_order
which is a locally_finite_order
also verifies
Furthermore, we show that there is an order_iso
between such an order and a subset of ℤ
.
Main definitions #
to_Z i0 i
: in a linear order on which we can define predecessors and successors and which is succ-archimedean, we can assign a unique integerto_Z i0 i
to each elementi : ι
while respecting the order, starting fromto_Z i0 i0 = 0
.
Main results #
Instances about linear locally finite orders:
linear_locally_finite_order.succ_order
: a linear locally finite order has a successor function.linear_locally_finite_order.pred_order
: a linear locally finite order has a predecessor function.linear_locally_finite_order.is_succ_archimedean
: a linear locally finite order is succ-archimedean.linear_order.pred_archimedean_of_succ_archimedean
: a succ-archimedean linear order is also pred-archimedean.countable_of_linear_succ_pred_arch
: a succ-archimedean linear order is countable.
About to_Z
:
order_iso_range_to_Z_of_linear_succ_pred_arch
:to_Z
defines anorder_iso
betweenι
and its range.order_iso_nat_of_linear_succ_pred_arch
: if the order has a bot but no top,to_Z
defines anorder_iso
betweenι
andℕ
.order_iso_int_of_linear_succ_pred_arch
: if the order has neither bot nor top,to_Z
defines anorder_iso
betweenι
andℤ
.order_iso_range_of_linear_succ_pred_arch
: if the order has both a bot and a top,to_Z
gives anorder_iso
betweenι
andfinset.range ((to_Z ⊥ ⊤).to_nat + 1)
.
Successor in a linear order. This defines a true successor only when i
is isolated from above,
i.e. when i
is not the greatest lower bound of (i, ∞)
.
Equations
Equations
- linear_locally_finite_order.succ_order = {succ := linear_locally_finite_order.succ_fn _inst_1, le_succ := _, max_of_succ_le := _, succ_le_of_lt := _, le_of_lt_succ := _}
to_Z
numbers elements of ι
according to their order, starting from i0
. We prove in
order_iso_range_to_Z_of_linear_succ_pred_arch
that this defines an order_iso
between ι
and
the range of to_Z
.
to_Z
defines an order_iso
between ι
and its range.
Equations
- order_iso_range_to_Z_of_linear_succ_pred_arch = {to_equiv := equiv.of_injective (to_Z hι.some) order_iso_range_to_Z_of_linear_succ_pred_arch._proof_1, map_rel_iff' := _}
If the order has neither bot nor top, to_Z
defines an order_iso
between ι
and ℤ
.
If the order has a bot but no top, to_Z
defines an order_iso
between ι
and ℕ
.
If the order has both a bot and a top, to_Z
gives an order_iso
between ι
and
finset.range n
for some n
.