Theorem: MvPolynomial.IsHomogeneous.finSuccEquiv_coeff_isHomogeneous
File: Mathlib/RingTheory/MvPolynomial/Homogeneous.lean

tactic: intro d hd
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
⊢ (((finSuccEquiv R N) φ).coeff i).IsHomogeneous j
state_after: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
d : Fin N →₀ ℕ
hd : coeff d (((finSuccEquiv R N) φ).coeff i) ≠ 0
⊢ (weightedDegree 1) d = j

tactic: rw [finSuccEquiv_coeff_coeff] at hd
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
d : Fin N →₀ ℕ
hd : coeff d (((finSuccEquiv R N) φ).coeff i) ≠ 0
⊢ (weightedDegree 1) d = j
state_after: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
d : Fin N →₀ ℕ
hd : coeff (Finsupp.cons i d) φ ≠ 0
⊢ (weightedDegree 1) d = j

tactic: have h' : (weightedDegree 1) (Finsupp.cons i d) = i + j := by
  simpa [Finset.sum_subset_zero_on_sdiff (g := d.cons i)
   (d.cons_support (y := i)) (by simp) (fun _ _ ↦ rfl), ← h] using hφ hd
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
d : Fin N →₀ ℕ
hd : coeff (Finsupp.cons i d) φ ≠ 0
⊢ (weightedDegree 1) d = j
state_after: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
d : Fin N →₀ ℕ
hd : coeff (Finsupp.cons i d) φ ≠ 0
h' : (weightedDegree 1) (Finsupp.cons i d) = i + j
⊢ (weightedDegree 1) d = j

tactic: simp only [weightedDegree_apply, Pi.one_apply, smul_eq_mul, mul_one, Finsupp.sum_cons,
  add_right_inj] at h' ⊢
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
d : Fin N →₀ ℕ
hd : coeff (Finsupp.cons i d) φ ≠ 0
h' : (weightedDegree 1) (Finsupp.cons i d) = i + j
⊢ (weightedDegree 1) d = j
state_after: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
d : Fin N →₀ ℕ
hd : coeff (Finsupp.cons i d) φ ≠ 0
h' : (d.sum fun x e => e) = j
⊢ (d.sum fun i c => c) = j

tactic: exact h'
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
d : Fin N →₀ ℕ
hd : coeff (Finsupp.cons i d) φ ≠ 0
h' : (d.sum fun x e => e) = j
⊢ (d.sum fun i c => c) = j
state_after: no goals

tactic: simpa [Finset.sum_subset_zero_on_sdiff (g := d.cons i)
 (d.cons_support (y := i)) (by simp) (fun _ _ ↦ rfl), ← h] using hφ hd
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
d : Fin N →₀ ℕ
hd : coeff (Finsupp.cons i d) φ ≠ 0
⊢ (weightedDegree 1) (Finsupp.cons i d) = i + j
state_after: no goals

tactic: simp
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
inst✝² inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ✝ ψ : MvPolynomial σ R
m n✝ N : ℕ
φ : MvPolynomial (Fin (N + 1)) R
n : ℕ
hφ : φ.IsHomogeneous n
i j : ℕ
h : i + j = n
d : Fin N →₀ ℕ
hd : coeff (Finsupp.cons i d) φ ≠ 0
⊢ ∀ x ∈ insert 0 (Finset.map (Fin.succEmb N) d.support) \ (Finsupp.cons i d).support, (Finsupp.cons i d) x = 0
state_after: no goals