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

Commit 1a92c0d

Browse files
committed
feat(order/basic): add simp attribute on le_refl, zero_le_one and zero_lt_one (#7733)
These ones show up so often that they would have deserved a simp attribute long ago.
1 parent fd48ac5 commit 1a92c0d

File tree

10 files changed

+21
-18
lines changed

10 files changed

+21
-18
lines changed

src/algebra/ordered_ring.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class ordered_semiring (α : Type u) extends semiring α, ordered_cancel_add_com
2323
section ordered_semiring
2424
variables [ordered_semiring α] {a b c d : α}
2525

26-
lemma zero_le_one : 0 ≤ (1:α) :=
26+
@[simp] lemma zero_le_one : 0 ≤ (1:α) :=
2727
ordered_semiring.zero_le_one
2828

2929
lemma zero_le_two : 0 ≤ (2:α) :=
@@ -37,7 +37,7 @@ section nontrivial
3737

3838
variables [nontrivial α]
3939

40-
lemma zero_lt_one : 0 < (1 : α) :=
40+
@[simp] lemma zero_lt_one : 0 < (1 : α) :=
4141
lt_of_le_of_ne zero_le_one zero_ne_one
4242

4343
lemma zero_lt_two : 0 < (2:α) := add_pos zero_lt_one zero_lt_one

src/analysis/complex/isometry.lean

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,16 +137,14 @@ begin
137137
rw norm_sq_eq_abs,
138138
change 0 < ∥a∥ ^ 2,
139139
rw linear_isometry.norm_map,
140-
simp,
141-
simp [zero_lt_one] },
140+
simp },
142141
have h : (∀ z, g z = z) ∨ (∀ z, g z = conj z) := linear_isometry_complex_aux g hg1,
143142
change (∀ z, a⁻¹ * f z = z) ∨ (∀ z, a⁻¹ * f z = conj z) at h,
144143
have ha : a ≠ 0 := by {
145144
rw ← norm_sq_pos,
146145
rw norm_sq_eq_abs,
147146
change 0 < ∥a∥ ^ 2,
148147
rw linear_isometry.norm_map,
149-
simp,
150-
simp [zero_lt_one] },
148+
simp },
151149
simpa only [← inv_mul_eq_iff_eq_mul' ha] }
152150
end

src/data/complex/basic.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,7 @@ begin
536536
fsplit,
537537
{ rintro ⟨⟨x, l, rfl⟩, h⟩,
538538
by_cases hx : x = 0,
539-
{ simp [hx] at h, exfalso, exact h (le_refl _), },
539+
{ simpa [hx] using h },
540540
{ replace l : 0 < x := l.lt_of_ne (ne.symm hx),
541541
exact ⟨x, l, rfl⟩, } },
542542
{ rintro ⟨x, l, rfl⟩,

src/data/real/golden_ratio.lean

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,6 @@ begin
155155
simp only,
156156
rw [nat.fib_succ_succ, add_comm],
157157
simp [finset.sum_fin_eq_sum_range, finset.sum_range_succ'],
158-
refl,
159158
end
160159

161160
/-- The geometric sequence `λ n, φ^n` is a solution of `fib_rec`. -/

src/geometry/euclidean/basic.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ by rw [dist_left_midpoint p1 p2, dist_right_midpoint p1 p2]
499499
/-- If M is the midpoint of the segment AB, then ∠AMB = π. -/
500500
lemma angle_midpoint_eq_pi (p1 p2 : P) (hp1p2 : p1 ≠ p2) : ∠ p1 (midpoint ℝ p1 p2) p2 = π :=
501501
have p2 -ᵥ midpoint ℝ p1 p2 = -(p1 -ᵥ midpoint ℝ p1 p2), by { rw neg_vsub_eq_vsub_rev, simp },
502-
by simp [angle, this, hp1p2]
502+
by simp [angle, this, hp1p2, -zero_lt_one]
503503

504504
/-- If M is the midpoint of the segment AB and C is the same distance from A as it is from B
505505
then ∠CMA = π / 2. -/

src/order/basic.lean

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ open function
5656
universes u v w
5757
variables {α : Type u} {β : Type v} {γ : Type w} {r : α → α → Prop}
5858

59+
attribute [simp] le_refl
60+
5961
@[simp] lemma lt_self_iff_false [preorder α] (a : α) : a < a ↔ false :=
6062
by simp [lt_irrefl a]
6163

src/testing/slim_check/sampleable.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ begin
442442
end
443443

444444
lemma list.one_le_sizeof (xs : list α) : 1 ≤ sizeof xs :=
445-
by cases xs; unfold_wf; [refl, linarith]
445+
by cases xs; unfold_wf; linarith
446446

447447
/--
448448
`list.shrink_removes` shrinks a list by removing chunks of size `k` in

src/topology/path_connected.lean

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,16 +138,16 @@ def extend : ℝ → X := Icc_extend zero_le_one γ
138138
lemma continuous_extend : continuous γ.extend :=
139139
γ.continuous.Icc_extend
140140

141-
@[simp] lemma extend_zero : γ.extend 0 = x :=
142-
(Icc_extend_left _ _).trans γ.source
143-
144-
@[simp] lemma extend_one : γ.extend 1 = y :=
145-
(Icc_extend_right _ _).trans γ.target
146-
147141
@[simp] lemma extend_extends {X : Type*} [topological_space X] {a b : X}
148142
(γ : path a b) {t : ℝ} (ht : t ∈ (Icc 0 1 : set ℝ)) : γ.extend t = γ ⟨t, ht⟩ :=
149143
Icc_extend_of_mem _ γ ht
150144

145+
lemma extend_zero : γ.extend 0 = x :=
146+
by simp
147+
148+
lemma extend_one : γ.extend 1 = y :=
149+
by simp
150+
151151
@[simp] lemma extend_extends' {X : Type*} [topological_space X] {a b : X}
152152
(γ : path a b) (t : (Icc 0 1 : set ℝ)) : γ.extend t = γ t :=
153153
Icc_extend_coe _ γ t

src/topology/unit_interval.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,14 @@ instance has_zero : has_zero I := ⟨⟨0, by split ; norm_num⟩⟩
3939

4040
@[simp, norm_cast] lemma coe_zero : ((0 : I) : ℝ) = 0 := rfl
4141

42+
@[simp] lemma mk_zero (h : (0 : ℝ) ∈ Icc (0 : ℝ) 1) : (⟨0, h⟩ : I) = 0 := rfl
43+
4244
instance has_one : has_one I := ⟨⟨1, by split ; norm_num⟩⟩
4345

4446
@[simp, norm_cast] lemma coe_one : ((1 : I) : ℝ) = 1 := rfl
4547

48+
@[simp] lemma mk_one (h : (1 : ℝ) ∈ Icc (0 : ℝ) 1) : (⟨1, h⟩ : I) = 1 := rfl
49+
4650
instance : nonempty I := ⟨0
4751

4852
/-- Unit interval central symmetry. -/

test/nontriviality.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ begin
3636
exact zero_le_one,
3737
end
3838

39-
example {R : Type} [ordered_ring R] : 0 ≤ (1 : R) :=
39+
example {R : Type} [ordered_ring R] : 0 ≤ (2 : R) :=
4040
begin
4141
success_if_fail { nontriviality punit },
42-
exact zero_le_one,
42+
exact zero_le_two,
4343
end
4444

4545
example {R : Type} [ordered_ring R] {a : R} (h : 0 < a) : 24 :=

0 commit comments

Comments
 (0)