@@ -285,16 +285,15 @@ theorem le_trailingDegree_mul : p.trailingDegree + q.trailingDegree ≤ (p * q).
285
285
obtain ⟨⟨i, j⟩, hij, hpq⟩ := exists_ne_zero_of_sum_ne_zero hn
286
286
refine
287
287
(add_le_add (min_le (mem_support_iff.mpr (left_ne_zero_of_mul hpq)))
288
- (min_le (mem_support_iff.mpr (right_ne_zero_of_mul hpq)))).trans
289
- (le_of_eq ?_)
288
+ (min_le (mem_support_iff.mpr (right_ne_zero_of_mul hpq)))).trans_eq ?_
290
289
rwa [← WithTop.coe_add, WithTop.coe_eq_coe, ← mem_antidiagonal]
291
290
292
291
theorem le_natTrailingDegree_mul (h : p * q ≠ 0 ) :
293
292
p.natTrailingDegree + q.natTrailingDegree ≤ (p * q).natTrailingDegree := by
294
293
have hp : p ≠ 0 := fun hp => h (by rw [hp, zero_mul])
295
294
have hq : q ≠ 0 := fun hq => h (by rw [hq, mul_zero])
296
- have (p : R[X]) : WithTop.some (natTrailingDegree p) = Nat.cast (natTrailingDegree p) := rfl
297
- rw [← WithTop.coe_le_coe, WithTop.coe_add, this p, this q, this (p * q),
295
+ rw [← WithTop.coe_le_coe, WithTop.coe_add, ← Nat.cast_withTop (natTrailingDegree p),
296
+ ← Nat.cast_withTop (natTrailingDegree q), ← Nat.cast_withTop (natTrailingDegree (p * q) ),
298
297
← trailingDegree_eq_natTrailingDegree hp, ← trailingDegree_eq_natTrailingDegree hq,
299
298
← trailingDegree_eq_natTrailingDegree h]
300
299
exact le_trailingDegree_mul
@@ -329,12 +328,10 @@ theorem natTrailingDegree_mul' (h : p.trailingCoeff * q.trailingCoeff ≠ 0) :
329
328
(p * q).natTrailingDegree = p.natTrailingDegree + q.natTrailingDegree := by
330
329
have hp : p ≠ 0 := fun hp => h (by rw [hp, trailingCoeff_zero, zero_mul])
331
330
have hq : q ≠ 0 := fun hq => h (by rw [hq, trailingCoeff_zero, mul_zero])
332
- have aux1 n : Nat.cast n = WithTop.some (n) := rfl
333
- have aux2 (p : R[X]) : WithTop.some (natTrailingDegree p) = Nat.cast (natTrailingDegree p) := rfl
334
331
apply natTrailingDegree_eq_of_trailingDegree_eq_some
335
- rw [trailingDegree_mul' h, aux1 (natTrailingDegree p + natTrailingDegree q),
336
- WithTop.coe_add, aux2 p, aux2 q, ← trailingDegree_eq_natTrailingDegree hp, ←
337
- trailingDegree_eq_natTrailingDegree hq]
332
+ rw [trailingDegree_mul' h, Nat.cast_withTop (natTrailingDegree p + natTrailingDegree q),
333
+ WithTop.coe_add, ← Nat.cast_withTop, ← Nat.cast_withTop,
334
+ ← trailingDegree_eq_natTrailingDegree hp, ← trailingDegree_eq_natTrailingDegree hq]
338
335
339
336
theorem natTrailingDegree_mul [NoZeroDivisors R] (hp : p ≠ 0 ) (hq : q ≠ 0 ) :
340
337
(p * q).natTrailingDegree = p.natTrailingDegree + q.natTrailingDegree :=
0 commit comments