Skip to content

Commit 21c6094

Browse files
chore: deprecate Nat.succ_mul_choose_eq (leanprover-community#32653)
1 parent 3d9f34a commit 21c6094

File tree

7 files changed

+14
-12
lines changed

7 files changed

+14
-12
lines changed

Archive/Wiedijk100Theorems/BallotProblem.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ theorem first_vote_pos :
218218
count_countedSequence, count_countedSequence, one_mul, zero_mul, add_zero,
219219
Nat.cast_add, Nat.cast_one, mul_comm, ← div_eq_mul_inv, ENNReal.div_eq_div_iff]
220220
· norm_cast
221-
rw [mul_comm _ (p + 1), ← Nat.succ_eq_add_one p, Nat.succ_add, Nat.succ_mul_choose_eq,
221+
rw [mul_comm _ (p + 1), add_right_comm, Nat.add_one_mul_choose_eq,
222222
mul_comm]
223223
all_goals simp [(Nat.choose_pos <| le_add_of_nonneg_right zero_le').ne']
224224
· simp

Mathlib/Algebra/Polynomial/Eval/Degree.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ theorem eval_monomial_one_add_sub [CommRing S] (d : ℕ) (y : S) :
8080
rw [sum_range_succ, mul_add, Nat.choose_self, Nat.cast_one, one_mul, add_sub_cancel_right,
8181
mul_sum, sum_range_succ', Nat.cast_zero, zero_mul, mul_zero, add_zero]
8282
refine sum_congr rfl fun y _hy => ?_
83-
rw [← mul_assoc, ← mul_assoc, ← Nat.cast_mul, Nat.succ_mul_choose_eq, Nat.cast_mul,
83+
rw [← mul_assoc, ← mul_assoc, ← Nat.cast_mul, Nat.add_one_mul_choose_eq, Nat.cast_mul,
8484
Nat.add_sub_cancel]
8585

8686
end Eval

Mathlib/Data/Nat/Choose/Basic.lean

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,16 +125,18 @@ theorem choose_ne_zero_iff {n k : ℕ} : n.choose k ≠ 0 ↔ k ≤ n :=
125125
lemma choose_ne_zero {n k : ℕ} (h : k ≤ n) : n.choose k ≠ 0 :=
126126
(choose_pos h).ne'
127127

128-
theorem succ_mul_choose_eq : ∀ n k, succ n * choose n k = choose (succ n) (succ k) * succ k
128+
theorem add_one_mul_choose_eq : ∀ n k, (n + 1) * choose n k = choose (n + 1) (k + 1) * (k + 1)
129129
| 0, 0 => by decide
130130
| 0, k + 1 => by simp [choose]
131131
| n + 1, 0 => by simp [choose, mul_succ, Nat.add_comm]
132132
| n + 1, k + 1 => by
133-
rw [choose_succ_succ (succ n) (succ k), Nat.add_mul, ← succ_mul_choose_eq n, mul_succ, ←
134-
succ_mul_choose_eq n, Nat.add_right_comm, ← Nat.mul_add, ← choose_succ_succ, ← succ_mul]
133+
rw [choose_succ_succ' (n + 1) (k + 1), Nat.add_mul _ _ (k + 1 + 1), ← add_one_mul_choose_eq n,
134+
mul_add_one, ← add_one_mul_choose_eq n, Nat.add_right_comm _ _ (_ * _), ← Nat.mul_add,
135+
← choose_succ_succ', ← add_one_mul]
135136

136-
theorem add_one_mul_choose_eq : ∀ n k, (n + 1) * choose n k = choose (n + 1) (k + 1) * (k + 1) :=
137-
succ_mul_choose_eq
137+
@[deprecated add_one_mul_choose_eq (since := "2025-12-09")]
138+
theorem succ_mul_choose_eq : ∀ n k, succ n * choose n k = choose (succ n) (succ k) * succ k :=
139+
add_one_mul_choose_eq
138140

139141
theorem choose_mul_factorial_mul_factorial : ∀ {n k}, k ≤ n → choose n k * k ! * (n - k)! = n !
140142
| 0, _, hk => by simp [Nat.eq_zero_of_le_zero hk]
@@ -214,7 +216,7 @@ theorem choose_symm_half (m : ℕ) : choose (2 * m + 1) (m + 1) = choose (2 * m
214216

215217
theorem choose_succ_right_eq (n k : ℕ) : choose n (k + 1) * (k + 1) = choose n k * (n - k) := by
216218
have e : (n + 1) * choose n k = choose n (k + 1) * (k + 1) + choose n k * (k + 1) := by
217-
rw [← Nat.add_mul, Nat.add_comm (choose _ _), ← choose_succ_succ, succ_mul_choose_eq]
219+
rw [← Nat.add_mul, Nat.add_comm (choose _ _), ← choose_succ_succ, add_one_mul_choose_eq]
218220
rw [← Nat.sub_eq_of_eq_add e, Nat.mul_comm, ← Nat.mul_sub_left_distrib, Nat.add_sub_add_right]
219221

220222
@[simp]

Mathlib/Data/Nat/Choose/Factorization.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ theorem factorization_le_factorization_choose_add {p : ℕ} :
149149
(zero_ne_add_one k).symm]
150150
refine factorization_le_factorization_of_dvd_right ?_ (zero_ne_add_one n).symm
151151
(Nat.mul_ne_zero (ne_of_gt <| choose_pos hkn) (by positivity))
152-
rw [← succ_mul_choose_eq]
152+
rw [← add_one_mul_choose_eq]
153153
exact dvd_mul_right _ _
154154

155155
variable {p n k : ℕ}

Mathlib/Data/Nat/Choose/Multinomial.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ theorem succ_mul_binomial [DecidableEq α] (h : a ≠ b) :
121121
(f a).succ * multinomial {a, b} (Function.update f a (f a).succ) := by
122122
rw [binomial_eq_choose h, binomial_eq_choose h, mul_comm (f a).succ, Function.update_self,
123123
Function.update_of_ne h.symm]
124-
rw [succ_mul_choose_eq (f a + f b) (f a), succ_add (f a) (f b)]
124+
rw [succ_eq_add_one, add_one_mul_choose_eq (f a + f b) (f a), succ_add (f a) (f b)]
125125

126126
/-! ### Simple cases -/
127127

Mathlib/Data/Nat/Multiplicity.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ theorem emultiplicity_le_emultiplicity_choose_add {p : ℕ} (hp : p.Prime) :
221221
| n + 1, k + 1 => by
222222
rw [← hp.emultiplicity_mul]
223223
refine emultiplicity_le_emultiplicity_of_dvd_right ?_
224-
rw [← succ_mul_choose_eq]
224+
rw [← add_one_mul_choose_eq]
225225
exact dvd_mul_right _ _
226226

227227
variable {p n k : ℕ}

Mathlib/RingTheory/Polynomial/Bernstein.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ theorem derivative_succ_aux (n ν : ℕ) :
115115
· simp only [← mul_assoc]
116116
apply congr (congr_arg (· * ·) (congr (congr_arg (· * ·) _) rfl)) rfl
117117
-- Now it's just about binomial coefficients
118-
exact mod_cast congr_arg (fun m : ℕ => (m : R[X])) (Nat.succ_mul_choose_eq n ν).symm
118+
exact mod_cast congr_arg (fun m : ℕ => (m : R[X])) (Nat.add_one_mul_choose_eq n ν).symm
119119
· rw [← tsub_add_eq_tsub_tsub, ← mul_assoc, ← mul_assoc]; congr 1
120120
rw [mul_comm, ← mul_assoc, ← mul_assoc]; congr 1
121121
norm_cast

0 commit comments

Comments
 (0)