Archimedean successor and predecessor #
IsSuccArchimedean
:SuccOrder
wheresucc
iterated to an element gives all the greater ones.IsPredArchimedean
:PredOrder
wherepred
iterated to an element gives all the smaller ones.
A SuccOrder
is succ-archimedean if one can go from any two comparable elements by iterating
succ
If
a ≤ b
then one can get toa
fromb
by iteratingsucc
Instances
A PredOrder
is pred-archimedean if one can go from any two comparable elements by iterating
pred
If
a ≤ b
then one can get tob
froma
by iteratingpred
Instances
instance
instIsPredArchimedeanOrderDual
{α : Type u_1}
[Preorder α]
[SuccOrder α]
[IsSuccArchimedean α]
:
theorem
LE.le.exists_succ_iterate
{α : Type u_1}
[Preorder α]
[SuccOrder α]
[IsSuccArchimedean α]
{a b : α}
(h : a ≤ b)
:
∃ (n : ℕ), Order.succ^[n] a = b
theorem
exists_succ_iterate_iff_le
{α : Type u_1}
[Preorder α]
[SuccOrder α]
[IsSuccArchimedean α]
{a b : α}
:
theorem
Succ.rec_iff
{α : Type u_1}
[Preorder α]
[SuccOrder α]
[IsSuccArchimedean α]
{p : α → Prop}
(hsucc : ∀ (a : α), p a ↔ p (Order.succ a))
{a b : α}
(h : a ≤ b)
:
instance
instIsSuccArchimedeanOrderDual
{α : Type u_1}
[Preorder α]
[PredOrder α]
[IsPredArchimedean α]
:
theorem
LE.le.exists_pred_iterate
{α : Type u_1}
[Preorder α]
[PredOrder α]
[IsPredArchimedean α]
{a b : α}
(h : a ≤ b)
:
∃ (n : ℕ), Order.pred^[n] b = a
theorem
exists_pred_iterate_iff_le
{α : Type u_1}
[Preorder α]
[PredOrder α]
[IsPredArchimedean α]
{a b : α}
:
theorem
Pred.rec
{α : Type u_1}
[Preorder α]
[PredOrder α]
[IsPredArchimedean α]
{P : α → Prop}
{m : α}
(h0 : P m)
(h1 : ∀ n ≤ m, P n → P (Order.pred n))
⦃n : α⦄
(hmn : n ≤ m)
:
P n
Induction principle on a type with a PredOrder
for all elements below a given element m
.
theorem
Pred.rec_iff
{α : Type u_1}
[Preorder α]
[PredOrder α]
[IsPredArchimedean α]
{p : α → Prop}
(hsucc : ∀ (a : α), p a ↔ p (Order.pred a))
{a b : α}
(h : a ≤ b)
:
theorem
lt_or_le_of_codirected
{α : Type u_1}
[PartialOrder α]
[SuccOrder α]
[IsSuccArchimedean α]
{r v₁ v₂ : α}
(h₁ : r ≤ v₁)
(h₂ : r ≤ v₂)
:
@[reducible, inline]
abbrev
IsSuccArchimedean.linearOrder
{α : Type u_1}
[PartialOrder α]
[SuccOrder α]
[IsSuccArchimedean α]
[DecidableEq α]
[DecidableLE α]
[DecidableLT α]
[IsDirected α fun (x1 x2 : α) => x1 ≥ x2]
:
This isn't an instance due to a loop with LinearOrder
.
Equations
Instances For
theorem
lt_or_le_of_directed
{α : Type u_1}
[PartialOrder α]
[PredOrder α]
[IsPredArchimedean α]
{r v₁ v₂ : α}
(h₁ : v₁ ≤ r)
(h₂ : v₂ ≤ r)
:
@[reducible, inline]
abbrev
IsPredArchimedean.linearOrder
{α : Type u_1}
[PartialOrder α]
[PredOrder α]
[IsPredArchimedean α]
[DecidableEq α]
[DecidableLE α]
[DecidableLT α]
[IsDirected α fun (x1 x2 : α) => x1 ≤ x2]
:
This isn't an instance due to a loop with LinearOrder
.
Equations
Instances For
theorem
exists_succ_iterate_or
{α : Type u_1}
[LinearOrder α]
[SuccOrder α]
[IsSuccArchimedean α]
{a b : α}
:
theorem
Succ.rec_linear
{α : Type u_1}
[LinearOrder α]
[SuccOrder α]
[IsSuccArchimedean α]
{p : α → Prop}
(hsucc : ∀ (a : α), p a ↔ p (Order.succ a))
(a b : α)
:
theorem
exists_pred_iterate_or
{α : Type u_1}
[LinearOrder α]
[PredOrder α]
[IsPredArchimedean α]
{a b : α}
:
theorem
Pred.rec_linear
{α : Type u_1}
[LinearOrder α]
[PredOrder α]
[IsPredArchimedean α]
{p : α → Prop}
(hsucc : ∀ (a : α), p a ↔ p (Order.pred a))
(a b : α)
:
theorem
StrictMono.not_bddAbove_range_of_isSuccArchimedean
{α : Type u_1}
{β : Type u_2}
[Preorder α]
[Nonempty α]
[Preorder β]
{f : α → β}
[NoMaxOrder α]
[SuccOrder β]
[IsSuccArchimedean β]
(hf : StrictMono f)
:
theorem
StrictMono.not_bddBelow_range_of_isPredArchimedean
{α : Type u_1}
{β : Type u_2}
[Preorder α]
[Nonempty α]
[Preorder β]
{f : α → β}
[NoMinOrder α]
[PredOrder β]
[IsPredArchimedean β]
(hf : StrictMono f)
:
theorem
StrictAnti.not_bddBelow_range_of_isSuccArchimedean
{α : Type u_1}
{β : Type u_2}
[Preorder α]
[Nonempty α]
[Preorder β]
{f : α → β}
[NoMinOrder α]
[SuccOrder β]
[IsSuccArchimedean β]
(hf : StrictAnti f)
:
theorem
StrictAnti.not_bddBelow_range_of_isPredArchimedean
{α : Type u_1}
{β : Type u_2}
[Preorder α]
[Nonempty α]
[Preorder β]
{f : α → β}
[NoMaxOrder α]
[PredOrder β]
[IsPredArchimedean β]
(hf : StrictAnti f)
:
@[instance 100]
instance
WellFoundedLT.toIsPredArchimedean
{α : Type u_1}
[PartialOrder α]
[h : WellFoundedLT α]
[PredOrder α]
:
@[instance 100]
instance
WellFoundedGT.toIsSuccArchimedean
{α : Type u_1}
[PartialOrder α]
[h : WellFoundedGT α]
[SuccOrder α]
:
theorem
Succ.rec_bot
{α : Type u_1}
[Preorder α]
[OrderBot α]
[SuccOrder α]
[IsSuccArchimedean α]
(p : α → Prop)
(hbot : p ⊥)
(hsucc : ∀ (a : α), p a → p (Order.succ a))
(a : α)
:
p a
theorem
Pred.rec_top
{α : Type u_1}
[Preorder α]
[OrderTop α]
[PredOrder α]
[IsPredArchimedean α]
(p : α → Prop)
(htop : p ⊤)
(hpred : ∀ (a : α), p a → p (Order.pred a))
(a : α)
:
p a
theorem
SuccOrder.forall_ne_bot_iff
{α : Type u_1}
[Nontrivial α]
[PartialOrder α]
[OrderBot α]
[SuccOrder α]
[IsSuccArchimedean α]
(P : α → Prop)
:
theorem
BddAbove.exists_isGreatest_of_nonempty
{X : Type u_3}
[LinearOrder X]
[SuccOrder X]
[IsSuccArchimedean X]
{S : Set X}
(hS : BddAbove S)
(hS' : S.Nonempty)
:
∃ (x : X), IsGreatest S x
theorem
BddBelow.exists_isLeast_of_nonempty
{X : Type u_3}
[LinearOrder X]
[PredOrder X]
[IsPredArchimedean X]
{S : Set X}
(hS : BddBelow S)
(hS' : S.Nonempty)
:
∃ (x : X), IsLeast S x
theorem
IsSuccArchimedean.of_orderIso
{X : Type u_3}
{Y : Type u_4}
[PartialOrder X]
[PartialOrder Y]
[SuccOrder X]
[IsSuccArchimedean X]
[SuccOrder Y]
(f : X ≃o Y)
:
IsSuccArchimedean
transfers across equivalences between SuccOrder
s.
theorem
IsPredArchimedean.of_orderIso
{X : Type u_3}
{Y : Type u_4}
[PartialOrder X]
[PartialOrder Y]
[PredOrder X]
[IsPredArchimedean X]
[PredOrder Y]
(f : X ≃o Y)
:
IsPredArchimedean
transfers across equivalences between PredOrder
s.
instance
Set.OrdConnected.isPredArchimedean
{α : Type u_1}
[PartialOrder α]
[PredOrder α]
[IsPredArchimedean α]
(s : Set α)
[s.OrdConnected]
:
instance
Set.OrdConnected.isSuccArchimedean
{α : Type u_1}
[PartialOrder α]
[SuccOrder α]
[IsSuccArchimedean α]
(s : Set α)
[s.OrdConnected]
:
theorem
monotoneOn_of_le_succ
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[SuccOrder α]
[IsSuccArchimedean α]
{s : Set α}
{f : α → β}
(hs : s.OrdConnected)
(hf : ∀ (a : α), ¬IsMax a → a ∈ s → Order.succ a ∈ s → f a ≤ f (Order.succ a))
:
MonotoneOn f s
theorem
antitoneOn_of_succ_le
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[SuccOrder α]
[IsSuccArchimedean α]
{s : Set α}
{f : α → β}
(hs : s.OrdConnected)
(hf : ∀ (a : α), ¬IsMax a → a ∈ s → Order.succ a ∈ s → f (Order.succ a) ≤ f a)
:
AntitoneOn f s
theorem
strictMonoOn_of_lt_succ
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[SuccOrder α]
[IsSuccArchimedean α]
{s : Set α}
{f : α → β}
(hs : s.OrdConnected)
(hf : ∀ (a : α), ¬IsMax a → a ∈ s → Order.succ a ∈ s → f a < f (Order.succ a))
:
StrictMonoOn f s
theorem
strictAntiOn_of_succ_lt
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[SuccOrder α]
[IsSuccArchimedean α]
{s : Set α}
{f : α → β}
(hs : s.OrdConnected)
(hf : ∀ (a : α), ¬IsMax a → a ∈ s → Order.succ a ∈ s → f (Order.succ a) < f a)
:
StrictAntiOn f s
theorem
monotone_of_le_succ
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[SuccOrder α]
[IsSuccArchimedean α]
{f : α → β}
(hf : ∀ (a : α), ¬IsMax a → f a ≤ f (Order.succ a))
:
Monotone f
theorem
antitone_of_succ_le
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[SuccOrder α]
[IsSuccArchimedean α]
{f : α → β}
(hf : ∀ (a : α), ¬IsMax a → f (Order.succ a) ≤ f a)
:
Antitone f
theorem
strictMono_of_lt_succ
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[SuccOrder α]
[IsSuccArchimedean α]
{f : α → β}
(hf : ∀ (a : α), ¬IsMax a → f a < f (Order.succ a))
:
theorem
strictAnti_of_succ_lt
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[SuccOrder α]
[IsSuccArchimedean α]
{f : α → β}
(hf : ∀ (a : α), ¬IsMax a → f (Order.succ a) < f a)
:
theorem
monotoneOn_of_pred_le
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[PredOrder α]
[IsPredArchimedean α]
{s : Set α}
{f : α → β}
(hs : s.OrdConnected)
(hf : ∀ (a : α), ¬IsMin a → a ∈ s → Order.pred a ∈ s → f (Order.pred a) ≤ f a)
:
MonotoneOn f s
theorem
antitoneOn_of_le_pred
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[PredOrder α]
[IsPredArchimedean α]
{s : Set α}
{f : α → β}
(hs : s.OrdConnected)
(hf : ∀ (a : α), ¬IsMin a → a ∈ s → Order.pred a ∈ s → f a ≤ f (Order.pred a))
:
AntitoneOn f s
theorem
strictMonoOn_of_pred_lt
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[PredOrder α]
[IsPredArchimedean α]
{s : Set α}
{f : α → β}
(hs : s.OrdConnected)
(hf : ∀ (a : α), ¬IsMin a → a ∈ s → Order.pred a ∈ s → f (Order.pred a) < f a)
:
StrictMonoOn f s
theorem
strictAntiOn_of_lt_pred
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[PredOrder α]
[IsPredArchimedean α]
{s : Set α}
{f : α → β}
(hs : s.OrdConnected)
(hf : ∀ (a : α), ¬IsMin a → a ∈ s → Order.pred a ∈ s → f a < f (Order.pred a))
:
StrictAntiOn f s
theorem
monotone_of_pred_le
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[PredOrder α]
[IsPredArchimedean α]
{f : α → β}
(hf : ∀ (a : α), ¬IsMin a → f (Order.pred a) ≤ f a)
:
Monotone f
theorem
antitone_of_le_pred
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[PredOrder α]
[IsPredArchimedean α]
{f : α → β}
(hf : ∀ (a : α), ¬IsMin a → f a ≤ f (Order.pred a))
:
Antitone f
theorem
strictMono_of_pred_lt
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[PredOrder α]
[IsPredArchimedean α]
{f : α → β}
(hf : ∀ (a : α), ¬IsMin a → f (Order.pred a) < f a)
:
theorem
strictAnti_of_lt_pred
{α : Type u_3}
{β : Type u_4}
[PartialOrder α]
[Preorder β]
[PredOrder α]
[IsPredArchimedean α]
{f : α → β}
(hf : ∀ (a : α), ¬IsMin a → f a < f (Order.pred a))
: