Skip to content

Commit 16c3a86

Browse files
committed
chore(Algebra/Order/Ring/Unbundled/Rat): golf
1 parent 2a770fb commit 16c3a86

1 file changed

Lines changed: 11 additions & 26 deletions

File tree

  • Mathlib/Algebra/Order/Ring/Unbundled

Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean

Lines changed: 11 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,14 @@ namespace Rat
2828

2929
variable {a b c p q : ℚ}
3030

31-
@[simp] lemma mkRat_nonneg {a : ℤ} (ha : 0 ≤ a) (b : ℕ) : 0 ≤ mkRat a b := by
32-
simpa using divInt_nonneg ha (Int.natCast_nonneg _)
31+
@[simp] lemma mkRat_nonneg {a : ℤ} (ha : 0 ≤ a) (b : ℕ) : 0 ≤ mkRat a b :=
32+
divInt_nonneg ha <| Int.natCast_nonneg _
3333

34-
theorem ofScientific_nonneg (m : ℕ) (s : Bool) (e : ℕ) :
35-
0 ≤ Rat.ofScientific m s e := by
34+
theorem ofScientific_nonneg (m : ℕ) (s : Bool) (e : ℕ) : 0 ≤ Rat.ofScientific m s e := by
3635
rw [Rat.ofScientific]
3736
cases s
38-
· rw [if_neg (by decide)]
39-
refine num_nonneg.mp ?_
40-
rw [num_natCast]
41-
exact Int.natCast_nonneg _
42-
· rw [if_pos rfl, normalize_eq_mkRat]
43-
exact Rat.mkRat_nonneg (Int.natCast_nonneg _) _
37+
· exact num_nonneg.mp <| Int.natCast_nonneg _
38+
· grind [normalize_eq_mkRat, Rat.mkRat_nonneg]
4439

4540
instance _root_.NNRatCast.toOfScientific {K} [NNRatCast K] : OfScientific K where
4641
ofScientific (m : ℕ) (b : Bool) (d : ℕ) :=
@@ -58,7 +53,7 @@ protected lemma divInt_le_divInt {a b c d : ℤ} (b0 : 0 < b) (d0 : 0 < d) :
5853
simp [sub_eq_add_neg, ne_of_gt b0, ne_of_gt d0, Int.mul_pos d0 b0]
5954

6055
protected lemma lt_iff_le_not_ge (a b : ℚ) : a < b ↔ a ≤ b ∧ ¬b ≤ a := by
61-
rw [← Rat.not_le, and_iff_right_of_imp Rat.le_total.resolve_left]
56+
grind
6257

6358
instance linearOrder : LinearOrder ℚ where
6459
le_refl _ := Rat.le_refl
@@ -74,21 +69,21 @@ theorem mkRat_nonneg_iff (a : ℤ) {b : ℕ} (hb : b ≠ 0) : 0 ≤ mkRat a b
7469
divInt_nonneg_iff_of_pos_right (show 0 < (b : ℤ) by simpa using Nat.pos_of_ne_zero hb)
7570

7671
theorem mkRat_pos_iff (a : ℤ) {b : ℕ} (hb : b ≠ 0) : 0 < mkRat a b ↔ 0 < a := by
77-
grind [lt_iff_le_and_ne, mkRat_nonneg_iff, Rat.mkRat_eq_zero]
72+
grind [mkRat_nonneg_iff, Rat.mkRat_eq_zero]
7873

7974
theorem mkRat_pos {a : ℤ} (ha : 0 < a) {b : ℕ} (hb : b ≠ 0) : 0 < mkRat a b :=
8075
(mkRat_pos_iff a hb).mpr ha
8176

8277
theorem mkRat_nonpos_iff (a : ℤ) {b : ℕ} (hb : b ≠ 0) : mkRat a b ≤ 0 ↔ a ≤ 0 := by
83-
grind [lt_iff_not_ge, mkRat_pos_iff]
78+
grind [mkRat_pos_iff]
8479

8580
theorem mkRat_nonpos {a : ℤ} (ha : a ≤ 0) (b : ℕ) : mkRat a b ≤ 0 := by
8681
obtain rfl | hb := eq_or_ne b 0
8782
· simp
8883
· exact (mkRat_nonpos_iff a hb).mpr ha
8984

9085
theorem mkRat_neg_iff (a : ℤ) {b : ℕ} (hb : b ≠ 0) : mkRat a b < 0 ↔ a < 0 := by
91-
grind [lt_iff_not_ge, mkRat_nonneg_iff]
86+
grind [mkRat_nonneg_iff]
9287

9388
theorem mkRat_neg {a : ℤ} (ha : a < 0) {b : ℕ} (hb : b ≠ 0) : mkRat a b < 0 :=
9489
(mkRat_neg_iff a hb).mpr ha
@@ -125,21 +120,11 @@ instance : AddLeftMono ℚ where
125120
theorem div_lt_div_iff_mul_lt_mul {a b c d : ℤ} (b_pos : 0 < b) (d_pos : 0 < d) :
126121
(a : ℚ) / b < c / d ↔ a * d < c * b := by
127122
simp only [lt_iff_le_not_ge]
128-
apply and_congr
129-
· simp [div_def', Rat.divInt_le_divInt b_pos d_pos]
130-
· simp [div_def', Rat.divInt_le_divInt d_pos b_pos]
123+
simp [*, div_def', Rat.divInt_le_divInt]
131124

132125
theorem lt_one_iff_num_lt_denom {q : ℚ} : q < 1 ↔ q.num < q.den := by simp [Rat.lt_iff]
133126

134127
theorem abs_def (q : ℚ) : |q| = q.num.natAbs /. q.den := by
135-
rcases le_total q 0 with hq | hq
136-
· rw [abs_of_nonpos hq]
137-
rw [← num_divInt_den q, ← zero_divInt, Rat.divInt_le_divInt (mod_cast q.pos) Int.zero_lt_one,
138-
mul_one, zero_mul] at hq
139-
rw [Int.ofNat_natAbs_of_nonpos hq, ← neg_def]
140-
· rw [abs_of_nonneg hq]
141-
rw [← num_divInt_den q, ← zero_divInt, Rat.divInt_le_divInt Int.zero_lt_one (mod_cast q.pos),
142-
mul_one, zero_mul] at hq
143-
rw [Int.natAbs_of_nonneg hq, num_divInt_den]
128+
grind [abs_of_nonpos, neg_def, Rat.num_nonneg, abs_of_nonneg, num_divInt_den]
144129

145130
end Rat

0 commit comments

Comments
 (0)