Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 86ed02f

Browse files
committed
chore(algebra/order/floor): add a few trivial lemmas (#10120)
1 parent 1dec85c commit 86ed02f

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/algebra/order/floor.lean

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,14 @@ lemma floor_eq_on_Ico' (n : ℤ) : ∀ a ∈ set.Ico (n : α) (n + 1), (⌊a⌋
364364

365365
@[simp] lemma fract_add_floor (a : α) : fract a + ⌊a⌋ = a := sub_add_cancel _ _
366366

367+
@[simp] lemma fract_add_int (a : α) (m : ℤ) : fract (a + m) = fract a := by simp [fract]
368+
369+
@[simp] lemma fract_sub_int (a : α) (m : ℤ) : fract (a - m) = fract a := by simp [fract]
370+
371+
@[simp] lemma self_sub_fract (a : α) : a - fract a = ⌊a⌋ := sub_sub_cancel _ _
372+
373+
@[simp] lemma fract_sub_self (a : α) : fract a - a = -⌊a⌋ := sub_sub_cancel_left _ _
374+
367375
lemma fract_nonneg (a : α) : 0 ≤ fract a := sub_nonneg.2 $ floor_le _
368376

369377
lemma fract_lt_one (a : α) : fract a < 1 := sub_lt.1 $ sub_one_lt_floor _
@@ -398,8 +406,11 @@ lemma fract_eq_fract {a b : α} : fract a = fract b ↔ ∃ z : ℤ, a - b = z :
398406
exact add_sub_sub_cancel _ _ _,
399407
end
400408

409+
@[simp] lemma fract_eq_self {a : α} : fract a = a ↔ 0 ≤ a ∧ a < 1 :=
410+
fract_eq_iff.trans $ and.assoc.symm.trans $ and_iff_left ⟨0, sub_self a⟩
411+
401412
@[simp] lemma fract_fract (a : α) : fract (fract a) = fract a :=
402-
fract_eq_fract.2-⌊a⌋, (cast_neg ⌊a⌋).symm.subst (sub_sub_cancel_left a ⌊a⌋)
413+
fract_eq_self.2fract_nonneg _, fract_lt_one _
403414

404415
lemma fract_add (a b : α) : ∃ z : ℤ, fract (a + b) - fract a - fract b = z :=
405416
⟨⌊a⌋ + ⌊b⌋ - ⌊a + b⌋, by { unfold fract, simp [sub_eq_add_neg], abel }⟩
@@ -443,12 +454,15 @@ lemma ceil_mono : monotone (ceil : α → ℤ) := gc_ceil_coe.monotone_l
443454
@[simp] lemma ceil_add_int (a : α) (z : ℤ) : ⌈a + z⌉ = ⌈a⌉ + z :=
444455
by rw [←neg_inj, neg_add', ←floor_neg, ←floor_neg, neg_add', floor_sub_int]
445456

446-
lemma ceil_add_one (a : α) : ⌈a + 1⌉ = ⌈a⌉ + 1 :=
457+
@[simp] lemma ceil_add_one (a : α) : ⌈a + 1⌉ = ⌈a⌉ + 1 :=
447458
by { convert ceil_add_int a (1 : ℤ), exact cast_one.symm }
448459

449-
lemma ceil_sub_int (a : α) (z : ℤ) : ⌈a - z⌉ = ⌈a⌉ - z :=
460+
@[simp] lemma ceil_sub_int (a : α) (z : ℤ) : ⌈a - z⌉ = ⌈a⌉ - z :=
450461
eq.trans (by rw [int.cast_neg, sub_eq_add_neg]) (ceil_add_int _ _)
451462

463+
@[simp] lemma ceil_sub_one (a : α) : ⌈a - 1⌉ = ⌈a⌉ - 1 :=
464+
by rw [eq_sub_iff_add_eq, ← ceil_add_one, sub_add_cancel]
465+
452466
lemma ceil_lt_add_one (a : α) : (⌈a⌉ : α) < a + 1 :=
453467
by { rw [← lt_ceil, ← int.cast_one, ceil_add_int], apply lt_add_one }
454468

0 commit comments

Comments
 (0)