@@ -259,10 +259,10 @@ theorem natTrailingDegree_mem_support_of_nonzero : p ≠ 0 → natTrailingDegree
259259theorem natTrailingDegree_le_of_mem_supp (a : ℕ) : a ∈ p.support → natTrailingDegree p ≤ a :=
260260 natTrailingDegree_le_of_ne_zero ∘ mem_support_iff.mp
261261
262- set_option backward.isDefEq.respectTransparency false in
263262theorem natTrailingDegree_eq_support_min' (h : p ≠ 0 ) :
264263 natTrailingDegree p = p.support.min' (nonempty_support_iff.mpr h) := by
265- rw [natTrailingDegree, trailingDegree, ← Finset.coe_min', ENat.some_eq_coe, ENat.toNat_coe]
264+ rw [natTrailingDegree, trailingDegree, ← Finset.coe_min' (support_nonempty.mpr h)]
265+ norm_cast
266266
267267theorem le_natTrailingDegree (hp : p ≠ 0 ) (hn : ∀ m < n, p.coeff m = 0 ) :
268268 n ≤ p.natTrailingDegree := by
@@ -296,15 +296,12 @@ theorem le_trailingDegree_mul : p.trailingDegree + q.trailingDegree ≤ (p * q).
296296 (min_le (mem_support_iff.mpr (right_ne_zero_of_mul hpq)))).trans_eq ?_
297297 rwa [← WithTop.coe_add, WithTop.coe_eq_coe, ← mem_antidiagonal]
298298
299- set_option backward.isDefEq.respectTransparency false in
300299theorem le_natTrailingDegree_mul (h : p * q ≠ 0 ) :
301300 p.natTrailingDegree + q.natTrailingDegree ≤ (p * q).natTrailingDegree := by
302301 have hp : p ≠ 0 := fun hp => h (by rw [hp, zero_mul])
303302 have hq : q ≠ 0 := fun hq => h (by rw [hq, mul_zero])
304- rw [← WithTop.coe_le_coe, WithTop.coe_add, ← Nat.cast_withTop (natTrailingDegree p),
305- ← Nat.cast_withTop (natTrailingDegree q), ← Nat.cast_withTop (natTrailingDegree (p * q)),
306- ← trailingDegree_eq_natTrailingDegree hp, ← trailingDegree_eq_natTrailingDegree hq,
307- ← trailingDegree_eq_natTrailingDegree h]
303+ rw [← ENat.coe_le_coe, ENat.coe_add, ← trailingDegree_eq_natTrailingDegree hp,
304+ ← trailingDegree_eq_natTrailingDegree hq, ← trailingDegree_eq_natTrailingDegree h]
308305 exact le_trailingDegree_mul
309306
310307theorem coeff_mul_natTrailingDegree_add_natTrailingDegree : (p * q).coeff
@@ -332,15 +329,13 @@ theorem trailingDegree_mul' (h : p.trailingCoeff * q.trailingCoeff ≠ 0) :
332329 apply trailingDegree_le_of_ne_zero
333330 rwa [coeff_mul_natTrailingDegree_add_natTrailingDegree]
334331
335- set_option backward.isDefEq.respectTransparency false in
336332theorem natTrailingDegree_mul' (h : p.trailingCoeff * q.trailingCoeff ≠ 0 ) :
337333 (p * q).natTrailingDegree = p.natTrailingDegree + q.natTrailingDegree := by
338334 have hp : p ≠ 0 := fun hp => h (by rw [hp, trailingCoeff_zero, zero_mul])
339335 have hq : q ≠ 0 := fun hq => h (by rw [hq, trailingCoeff_zero, mul_zero])
340336 apply natTrailingDegree_eq_of_trailingDegree_eq_some
341- rw [trailingDegree_mul' h, Nat.cast_withTop (natTrailingDegree p + natTrailingDegree q),
342- WithTop.coe_add, ← Nat.cast_withTop, ← Nat.cast_withTop,
343- ← trailingDegree_eq_natTrailingDegree hp, ← trailingDegree_eq_natTrailingDegree hq]
337+ rw [trailingDegree_mul' h, ENat.coe_add, ← trailingDegree_eq_natTrailingDegree hp,
338+ ← trailingDegree_eq_natTrailingDegree hq]
344339
345340theorem natTrailingDegree_mul [NoZeroDivisors R] (hp : p ≠ 0 ) (hq : q ≠ 0 ) :
346341 (p * q).natTrailingDegree = p.natTrailingDegree + q.natTrailingDegree :=
0 commit comments