Lemmas on Nat.floor
and Nat.ceil
#
This file contains basic results on the natural-valued floor and ceiling functions.
TODO #
LinearOrderedSemiring
can be relaxed to OrderedSemiring
in many lemmas.
Tags #
rounding, floor, ceil
theorem
Nat.floor_lt
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(ha : 0 ≤ a)
:
theorem
Nat.floor_lt_one
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
:
theorem
Nat.lt_of_floor_lt
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(h : ⌊a⌋₊ < n)
:
theorem
Nat.lt_one_of_floor_lt_one
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(h : ⌊a⌋₊ < 1)
:
theorem
Nat.floor_le
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
:
@[simp]
@[simp]
@[simp]
@[simp]
theorem
Nat.floor_ofNat
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
(n : ℕ)
[n.AtLeastTwo]
:
theorem
Nat.floor_of_nonpos
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : a ≤ 0)
:
theorem
Nat.floor_le_floor
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a b : α}
(hab : a ≤ b)
:
theorem
Nat.le_floor_iff'
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(hn : n ≠ 0)
:
@[simp]
theorem
Nat.floor_lt'
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
Nat.pos_of_floor_pos
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(h : 0 < ⌊a⌋₊)
:
theorem
Nat.lt_of_lt_floor
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(h : n < ⌊a⌋₊)
:
theorem
Nat.floor_le_of_le
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(h : a ≤ ↑n)
:
theorem
Nat.floor_le_one_of_le_one
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(h : a ≤ 1)
:
@[simp]
theorem
Nat.floor_eq_iff
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(ha : 0 ≤ a)
:
theorem
Nat.floor_eq_iff'
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(hn : n ≠ 0)
:
theorem
Nat.floor_eq_on_Ico
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
(n : ℕ)
(a : α)
:
theorem
Nat.floor_eq_on_Ico'
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
(n : ℕ)
(a : α)
:
@[simp]
theorem
Nat.preimage_floor_of_ne_zero
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{n : ℕ}
(hn : n ≠ 0)
:
Ceil #
theorem
Nat.add_one_le_ceil_iff
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
:
@[simp]
theorem
Nat.ceil_le_floor_add_one
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
(a : α)
:
@[simp]
@[simp]
theorem
Nat.ceil_le_ceil
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a b : α}
(hab : a ≤ b)
:
@[simp]
@[simp]
@[simp]
theorem
Nat.ceil_ofNat
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
(n : ℕ)
[n.AtLeastTwo]
:
@[simp]
theorem
Nat.lt_of_ceil_lt
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(h : ⌈a⌉₊ < n)
:
theorem
Nat.le_of_ceil_le
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(h : ⌈a⌉₊ ≤ n)
:
theorem
Nat.floor_lt_ceil_of_lt_of_pos
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a b : α}
(h : a < b)
(h' : 0 < b)
:
theorem
Nat.ceil_eq_iff
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{n : ℕ}
(hn : n ≠ 0)
:
@[simp]
theorem
Nat.preimage_ceil_of_ne_zero
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{n : ℕ}
(hn : n ≠ 0)
:
Intervals #
@[simp]
theorem
Nat.preimage_Ioo
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a b : α}
(ha : 0 ≤ a)
:
@[simp]
@[simp]
theorem
Nat.preimage_Icc
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a b : α}
(hb : 0 ≤ b)
:
@[simp]
theorem
Nat.preimage_Ioi
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
:
@[simp]
@[simp]
@[simp]
theorem
Nat.preimage_Iic
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
:
theorem
Nat.floor_add_natCast
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
(n : ℕ)
:
@[deprecated Nat.floor_add_natCast (since := "2025-04-01")]
theorem
Nat.floor_add_nat
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
(n : ℕ)
:
Alias of Nat.floor_add_natCast
.
theorem
Nat.floor_add_one
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
:
theorem
Nat.floor_add_ofNat
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
(n : ℕ)
[n.AtLeastTwo]
:
@[simp]
theorem
Nat.floor_sub_natCast
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
[Sub α]
[OrderedSub α]
[ExistsAddOfLE α]
(a : α)
(n : ℕ)
:
@[deprecated Nat.floor_sub_natCast (since := "2025-04-01")]
theorem
Nat.floor_sub_nat
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
[Sub α]
[OrderedSub α]
[ExistsAddOfLE α]
(a : α)
(n : ℕ)
:
Alias of Nat.floor_sub_natCast
.
@[simp]
theorem
Nat.floor_sub_one
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
[Sub α]
[OrderedSub α]
[ExistsAddOfLE α]
(a : α)
:
@[simp]
theorem
Nat.floor_sub_ofNat
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
[Sub α]
[OrderedSub α]
[ExistsAddOfLE α]
(a : α)
(n : ℕ)
[n.AtLeastTwo]
:
theorem
Nat.ceil_add_natCast
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
(n : ℕ)
:
@[deprecated Nat.ceil_add_natCast (since := "2025-04-01")]
theorem
Nat.ceil_add_nat
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
(n : ℕ)
:
Alias of Nat.ceil_add_natCast
.
theorem
Nat.ceil_add_one
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
:
theorem
Nat.ceil_add_ofNat
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
(n : ℕ)
[n.AtLeastTwo]
:
theorem
Nat.ceil_lt_add_one
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
(ha : 0 ≤ a)
:
theorem
Nat.floor_div_natCast
{α : Type u_1}
[LinearOrderedSemifield α]
[FloorSemiring α]
(a : α)
(n : ℕ)
:
@[deprecated Nat.floor_div_natCast (since := "2025-04-01")]
theorem
Nat.floor_div_nat
{α : Type u_1}
[LinearOrderedSemifield α]
[FloorSemiring α]
(a : α)
(n : ℕ)
:
Alias of Nat.floor_div_natCast
.
theorem
Nat.floor_div_ofNat
{α : Type u_1}
[LinearOrderedSemifield α]
[FloorSemiring α]
(a : α)
(n : ℕ)
[n.AtLeastTwo]
:
theorem
Nat.floor_div_eq_div
{α : Type u_1}
[LinearOrderedSemifield α]
[FloorSemiring α]
(m n : ℕ)
:
Natural division is the floor of field division.
theorem
Nat.div_two_lt_floor
{α : Type u_1}
[LinearOrderedField α]
[FloorSemiring α]
{a : α}
(ha : 1 ≤ a)
:
theorem
Nat.ceil_lt_two_mul
{α : Type u_1}
[LinearOrderedField α]
[FloorSemiring α]
{a : α}
(ha : 2⁻¹ < a)
:
theorem
Nat.ceil_le_two_mul
{α : Type u_1}
[LinearOrderedField α]
[FloorSemiring α]
{a : α}
(ha : 2⁻¹ ≤ a)
:
theorem
Nat.floor_congr
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{β : Type u_2}
[LinearOrderedSemiring β]
[FloorSemiring β]
{b : β}
(h : ∀ (n : ℕ), ↑n ≤ a ↔ ↑n ≤ b)
:
theorem
Nat.ceil_congr
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{a : α}
{β : Type u_2}
[LinearOrderedSemiring β]
[FloorSemiring β]
{b : β}
(h : ∀ (n : ℕ), a ≤ ↑n ↔ b ≤ ↑n)
:
theorem
Nat.map_floor
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{β : Type u_2}
[LinearOrderedSemiring β]
[FloorSemiring β]
{F : Type u_3}
[FunLike F α β]
[RingHomClass F α β]
(f : F)
(hf : StrictMono ⇑f)
(a : α)
:
theorem
Nat.map_ceil
{α : Type u_1}
[LinearOrderedSemiring α]
[FloorSemiring α]
{β : Type u_2}
[LinearOrderedSemiring β]
[FloorSemiring β]
{F : Type u_3}
[FunLike F α β]
[RingHomClass F α β]
(f : F)
(hf : StrictMono ⇑f)
(a : α)
:
There exists at most one FloorSemiring
structure on a linear ordered semiring.