@@ -103,6 +103,9 @@ lemma floor_pos : 0 < ⌊a⌋ ↔ 1 ≤ a :=
103
103
eq_of_forall_le_iff $ λ a, by rw [le_floor,
104
104
← sub_le_iff_le_add, ← sub_le_iff_le_add, le_floor, int.cast_sub]
105
105
106
+ lemma floor_add_one (a : α) : ⌊a + 1 ⌋ = ⌊a⌋ + 1 :=
107
+ by { convert floor_add_int a 1 , exact cast_one.symm }
108
+
106
109
@[simp] lemma floor_int_add (z : ℤ) (a : α) : ⌊↑z + a⌋ = z + ⌊a⌋ :=
107
110
by simpa only [add_comm] using floor_add_int a z
108
111
199
202
lemma ceil_le {z : ℤ} {a : α} : ⌈a⌉ ≤ z ↔ a ≤ z :=
200
203
by rw [ceil, neg_le, le_floor, int.cast_neg, neg_le_neg_iff]
201
204
205
+ lemma floor_neg {a : α} : ⌊-a⌋ = -⌈a⌉ :=
206
+ eq_of_forall_le_iff (λ z, by rw [le_neg, ceil_le, le_floor, int.cast_neg, le_neg])
207
+
208
+ lemma ceil_neg {a : α} : ⌈-a⌉ = -⌊a⌋ :=
209
+ eq_of_forall_ge_iff (λ z, by rw [neg_le, ceil_le, le_floor, int.cast_neg, neg_le])
210
+
202
211
lemma lt_ceil {a : α} {z : ℤ} : z < ⌈a⌉ ↔ (z : α) < a := lt_iff_lt_of_le_iff_le ceil_le
203
212
204
213
lemma ceil_le_floor_add_one (a : α) : ⌈a⌉ ≤ ⌊a⌋ + 1 :=
@@ -212,7 +221,10 @@ eq_of_forall_ge_iff $ λ a, by rw [ceil_le, int.cast_le]
212
221
lemma ceil_mono {a b : α} (h : a ≤ b) : ⌈a⌉ ≤ ⌈b⌉ := ceil_le.2 (h.trans (le_ceil _))
213
222
214
223
@[simp] lemma ceil_add_int (a : α) (z : ℤ) : ⌈a + z⌉ = ⌈a⌉ + z :=
215
- by rw [ceil, neg_add', floor_sub_int, neg_sub, sub_eq_neg_add]; refl
224
+ by rw [←neg_inj, neg_add', ←floor_neg, ←floor_neg, neg_add', floor_sub_int]
225
+
226
+ lemma ceil_add_one (a : α) : ⌈a + 1 ⌉ = ⌈a⌉ + 1 :=
227
+ by { convert ceil_add_int a (1 : ℤ), exact cast_one.symm }
216
228
217
229
lemma ceil_sub_int (a : α) (z : ℤ) : ⌈a - z⌉ = ⌈a⌉ - z :=
218
230
eq.trans (by rw [int.cast_neg, sub_eq_add_neg]) (ceil_add_int _ _)
@@ -356,6 +368,9 @@ begin
356
368
rw [int.floor_add_int, int.to_nat_add_nat (int.le_floor.2 ha)],
357
369
end
358
370
371
+ lemma floor_add_one {a : α} (ha : 0 ≤ a) : ⌊a + 1 ⌋₊ = ⌊a⌋₊ + 1 :=
372
+ by { convert floor_add_nat ha 1 , exact cast_one.symm }
373
+
359
374
lemma lt_floor_add_one (a : α) : a < ⌊a⌋₊ + 1 :=
360
375
begin
361
376
refine (int.lt_floor_add_one a).trans_le (add_le_add_right _ 1 ),
@@ -400,10 +415,11 @@ begin
400
415
refl
401
416
end
402
417
403
- theorem ceil_lt_add_one {a : α} (a_nonneg : 0 ≤ a) : (⌈a⌉₊ : α) < a + 1 :=
404
- lt_ceil.1 $ by rw (
405
- show ⌈a + 1 ⌉₊ = ⌈a⌉₊ + 1 , by exact_mod_cast (ceil_add_nat a_nonneg 1 ));
406
- apply nat.lt_succ_self
418
+ lemma ceil_add_one {a : α} (ha : 0 ≤ a) : ⌈a + 1 ⌉₊ = ⌈a⌉₊ + 1 :=
419
+ by { convert ceil_add_nat ha 1 , exact cast_one.symm }
420
+
421
+ lemma ceil_lt_add_one {a : α} (ha : 0 ≤ a) : (⌈a⌉₊ : α) < a + 1 :=
422
+ lt_ceil.1 $ (nat.lt_succ_self _).trans_le (ceil_add_one ha).ge
407
423
408
424
lemma lt_of_ceil_lt {a : α} {n : ℕ} (h : ⌈a⌉₊ < n) : a < n := (le_ceil a).trans_lt (nat.cast_lt.2 h)
409
425
0 commit comments