Least upper bound and greatest lower bound properties for integers #
In this file we prove that a bounded above nonempty set of integers has the greatest element, and a counterpart of this statement for the least element.
Main definitions #
Int.leastOfBdd
: ifP : ℤ → Prop
is a decidable predicate,b
is a lower bound of the set{m | P m}
, and there existsm : ℤ
such thatP m
(this time, no witness is required), thenInt.leastOfBdd
returns the least numberm
such thatP m
, together with proofs ofP m
and of the minimality. This definition is computable and does not rely on the axiom of choice.Int.greatestOfBdd
: a similar definition with all inequalities reversed.
Main statements #
-
Int.exists_least_of_bdd
: ifP : ℤ → Prop
is a predicate such that the set{m : P m}
is bounded below and nonempty, then this set has the least element. This lemma uses classical logic to avoid assumption[DecidablePred P]
. SeeInt.leastOfBdd
for a constructive counterpart. -
Int.coe_leastOfBdd_eq
:(Int.leastOfBdd b Hb Hinh : ℤ)
does not depend onb
. -
Int.exists_greatest_of_bdd
,Int.coe_greatest_of_bdd_eq
: versions of the above lemmas with all inequalities reversed.
Tags #
integer numbers, least element, greatest element
A computable version of exists_least_of_bdd
: given a decidable predicate on the
integers, with an explicit lower bound and a proof that it is somewhere true, return
the least value for which the predicate is true.
Equations
- Int.leastOfBdd b Hb Hinh = let_fun EX := ⋯; { val := b + ↑(Nat.find EX), property := ⋯ }
Instances For
If P : ℤ → Prop
is a predicate such that the set {m : P m}
is bounded below and nonempty,
then this set has the least element. This lemma uses classical logic to avoid assumption
[DecidablePred P]
. See Int.leastOfBdd
for a constructive counterpart.
A computable version of exists_greatest_of_bdd
: given a decidable predicate on the
integers, with an explicit upper bound and a proof that it is somewhere true, return
the greatest value for which the predicate is true.
Equations
- Int.greatestOfBdd b Hb Hinh = let_fun Hbdd' := ⋯; let_fun Hinh' := ⋯; match Int.leastOfBdd (-b) Hbdd' Hinh' with | { val := lb, property := ⋯ } => { val := -lb, property := ⋯ }
Instances For
If P : ℤ → Prop
is a predicate such that the set {m : P m}
is bounded above and nonempty,
then this set has the greatest element. This lemma uses classical logic to avoid assumption
[DecidablePred P]
. See Int.greatestOfBdd
for a constructive counterpart.