Skip to content

Commit e8ce8bc

Browse files
committed
fix Data.Int.Basic: fix zsmul on (#1217)
This way two instances for `m • n`, `m n : ℤ`, are defeq. Also use defeq to golf some proofs.
1 parent be15128 commit e8ce8bc

File tree

2 files changed

+23
-23
lines changed

2 files changed

+23
-23
lines changed

Mathlib/Algebra/GroupPower/Lemmas.lean

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,33 +1218,29 @@ open Multiplicative
12181218

12191219
-- Porting note: the proof became a little roundabout while porting.
12201220
@[simp]
1221-
theorem Nat.to_add_pow (a : Multiplicative ℕ) (b : ℕ) : toAdd (a ^ b) = toAdd a * b := by
1222-
induction' b with b ihs
1223-
· erw [_root_.pow_zero, toAdd_one, mul_zero]
1224-
· simp [*, _root_.pow_succ, add_comm, Nat.mul_succ]
1225-
#align nat.to_add_pow Nat.to_add_pow
1221+
theorem Nat.toAdd_pow (a : Multiplicative ℕ) (b : ℕ) : toAdd (a ^ b) = toAdd a * b :=
1222+
mul_comm _ _
1223+
#align nat.to_add_pow Nat.toAdd_pow
12261224

12271225
@[simp]
1228-
theorem Nat.of_add_mul (a b : ℕ) : ofAdd (a * b) = ofAdd a ^ b :=
1229-
(Nat.to_add_pow _ _).symm
1230-
#align nat.of_add_mul Nat.of_add_mul
1226+
theorem Nat.ofAdd_mul (a b : ℕ) : ofAdd (a * b) = ofAdd a ^ b :=
1227+
(Nat.toAdd_pow _ _).symm
1228+
#align nat.of_add_mul Nat.ofAdd_mul
12311229

12321230
@[simp]
1233-
theorem Int.to_add_pow (a : Multiplicative ℤ) (b : ℕ) : toAdd (a ^ b) = toAdd a * b := by
1234-
induction b <;> simp [*, mul_add, pow_succ, add_comm]
1235-
#align int.to_add_pow Int.to_add_pow
1231+
theorem Int.toAdd_pow (a : Multiplicative ℤ) (b : ℕ) : toAdd (a ^ b) = toAdd a * b :=
1232+
mul_comm _ _
1233+
#align int.to_add_pow Int.toAdd_pow
12361234

12371235
@[simp]
1238-
theorem Int.to_add_zpow (a : Multiplicative ℤ) (b : ℤ) : toAdd (a ^ b) = toAdd a * b :=
1239-
Int.induction_on b (by simp) (by simp (config := { contextual := true }) [zpow_add, mul_add])
1240-
(by
1241-
simp (config := { contextual := true }) [zpow_add, mul_add, sub_eq_add_neg])
1242-
#align int.to_add_zpow Int.to_add_zpow
1236+
theorem Int.toAdd_zpow (a : Multiplicative ℤ) (b : ℤ) : toAdd (a ^ b) = toAdd a * b :=
1237+
mul_comm _ _
1238+
#align int.to_add_zpow Int.toAdd_zpow
12431239

12441240
@[simp]
1245-
theorem Int.of_add_mul (a b : ℤ) : ofAdd (a * b) = ofAdd a ^ b :=
1246-
(Int.to_add_zpow _ _).symm
1247-
#align int.of_add_mul Int.of_add_mul
1241+
theorem Int.ofAdd_mul (a b : ℤ) : ofAdd (a * b) = ofAdd a ^ b :=
1242+
(Int.toAdd_zpow _ _).symm
1243+
#align int.of_add_mul Int.ofAdd_mul
12481244

12491245
end Multiplicative
12501246

Mathlib/Data/Int/Basic.lean

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,14 @@ instance : CommRing ℤ where
4848
add_left_neg := Int.add_left_neg
4949
nsmul := (·*·)
5050
nsmul_zero := Int.zero_mul
51-
nsmul_succ n x := by
52-
show ofNat (Nat.succ n) * x = x + ofNat n * x
53-
simp only [ofNat_eq_coe]
54-
rw [Int.ofNat_succ, Int.add_mul, Int.add_comm, Int.one_mul]
51+
nsmul_succ n x :=
52+
show (n + 1 : ℤ) * x = x + n * x
53+
by rw [Int.add_mul, Int.add_comm, Int.one_mul]
54+
zsmul := (·*·)
55+
zsmul_zero' := Int.zero_mul
56+
zsmul_succ' m n := by
57+
simp only [ofNat_eq_coe, ofNat_succ, Int.add_mul, Int.add_comm, Int.one_mul]
58+
zsmul_neg' m n := by simp only [negSucc_coe, ofNat_succ, Int.neg_mul]
5559
sub_eq_add_neg _ _ := Int.sub_eq_add_neg
5660
natCast := (·)
5761
natCast_zero := rfl

0 commit comments

Comments
 (0)