Fin n forms a bounded linear order #
This file contains the linear ordered instance on Fin n.
Fin n is the type whose elements are natural numbers smaller than n.
This file expands on the development in the core library.
Main definitions #
Fin.orderIsoSubtype: coercion to{i // i < n}as anOrderIso;Fin.valEmbedding: coercion to natural numbers as anEmbedding;Fin.valOrderEmb: coercion to natural numbers as anOrderEmbedding;Fin.succOrderEmb:Fin.succas anOrderEmbedding;Fin.castLEOrderEmb h:Fin.castLEas anOrderEmbedding, embedFin nintoFin mwhenh : n ≤ m;Fin.castOrderIso:Fin.castas anOrderIso, order isomorphism betweenFin nandFin mprovided thatn = m, see alsoEquiv.finCongr;Fin.castAddOrderEmb m:Fin.castAddas anOrderEmbedding, embedFin nintoFin (n+m);Fin.castSuccOrderEmb:Fin.castSuccas anOrderEmbedding, embedFin nintoFin (n+1);Fin.addNatOrderEmb m i:Fin.addNatas anOrderEmbedding, addmonion the right, generalizesFin.succ;Fin.natAddOrderEmb n i:Fin.natAddas anOrderEmbedding, addsnonion the left;Fin.revOrderIso:Fin.revas anOrderIso, the antitone involution given byi ↦ n-(i+1)
Instances #
@[implicit_reducible]
Extra instances to short-circuit type class resolution #
These also prevent non-computable instances being used to construct these instances non-computably.
@[implicit_reducible]
@[implicit_reducible]
Miscellaneous lemmas #
theorem
Fin.strictMono_pred_comp
{n : ℕ}
{α : Type u_1}
[Preorder α]
{f : α → Fin (n + 1)}
(hf : ∀ (a : α), f a ≠ 0)
(hf₂ : StrictMono f)
:
StrictMono fun (a : α) => (f a).pred ⋯
theorem
Fin.strictMono_castPred_comp
{n : ℕ}
{α : Type u_1}
[Preorder α]
{f : α → Fin (n + 1)}
(hf : ∀ (a : α), f a ≠ last n)
(hf₂ : StrictMono f)
:
StrictMono fun (a : α) => (f a).castPred ⋯
Monotonicity #
Fin.predAbove p as an OrderHom.
Instances For
@[simp]
predAbove is injective at the pivot
Order isomorphisms #
@[simp]
@[simp]
@[simp]
@[simp]
While in many cases Fin.castOrderIso is better than Equiv.cast/cast, sometimes we want to
apply a generic lemma about cast.
@[simp]
@[simp]
@[simp]
Order embeddings #
The ordering on Fin n is a well order.
@[simp]
@[simp]
@[simp]
Fin.castAdd as an OrderEmbedding.
castAddEmb m i embeds i : Fin n in Fin (n+m). See also Fin.natAddEmb and Fin.addNatEmb.
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
Fin.succAbove p as an OrderEmbedding.
Instances For
@[simp]
@[simp]