Theorem: MvPolynomial.weightedTotalDegree_eq_zero_iff
File: Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
⊢ weightedTotalDegree w p = 0 ↔ ∀ m ∈ p.support, ∀ (x : σ), m x = 0
state_after: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
⊢ (∀ ⦃d : σ →₀ ℕ⦄, coeff d p ≠ 0 → (weight w) d = 0) ↔ ∀ m ∈ p.support, ∀ (x : σ), m x = 0
tactic: rw [← isWeightedHomogeneous_zero_iff_weightedTotalDegree_eq_zero, IsWeightedHomogeneous]
state_before: R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
⊢ (∀ ⦃d : σ →₀ ℕ⦄, coeff d p ≠ 0 → (weight w) d = 0) ↔ ∀ m ∈ p.support, ∀ (x : σ), m x = 0
state_after: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
⊢ ∀ (a : σ →₀ ℕ), coeff a p ≠ 0 → (weight w) a = 0 ↔ a ∈ p.support → ∀ (x : σ), a x = 0
tactic: apply forall_congr'
state_before: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
⊢ ∀ (a : σ →₀ ℕ), coeff a p ≠ 0 → (weight w) a = 0 ↔ a ∈ p.support → ∀ (x : σ), a x = 0
state_after: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
m : σ →₀ ℕ
⊢ coeff m p ≠ 0 → (weight w) m = 0 ↔ m ∈ p.support → ∀ (x : σ), m x = 0
tactic: intro m
state_before: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
m : σ →₀ ℕ
⊢ coeff m p ≠ 0 → (weight w) m = 0 ↔ m ∈ p.support → ∀ (x : σ), m x = 0
state_after: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
m : σ →₀ ℕ
⊢ coeff m p ≠ 0 → (weight w) m = 0 ↔ coeff m p ≠ 0 → ∀ (x : σ), m x = 0
tactic: rw [mem_support_iff]
state_before: case h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
m : σ →₀ ℕ
⊢ coeff m p ≠ 0 → (weight w) m = 0 ↔ coeff m p ≠ 0 → ∀ (x : σ), m x = 0
state_after: case h.h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
m : σ →₀ ℕ
⊢ coeff m p ≠ 0 → ((weight w) m = 0 ↔ ∀ (x : σ), m x = 0)
tactic: apply forall_congr'
state_before: case h.h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
m : σ →₀ ℕ
⊢ coeff m p ≠ 0 → ((weight w) m = 0 ↔ ∀ (x : σ), m x = 0)
state_after: case h.h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
m : σ →₀ ℕ
a✝ : coeff m p ≠ 0
⊢ (weight w) m = 0 ↔ ∀ (x : σ), m x = 0
tactic: intro _
state_before: case h.h
R : Type u_1
M : Type u_2
inst✝¹ : CommSemiring R
σ : Type u_3
inst✝ : CanonicallyLinearOrderedAddCommMonoid M
w : σ → M
φ : MvPolynomial σ R
hw : NonTorsionWeight w
p : MvPolynomial σ R
m : σ →₀ ℕ
a✝ : coeff m p ≠ 0
⊢ (weight w) m = 0 ↔ ∀ (x : σ), m x = 0
state_after: no goals
tactic: exact weightedDegree_eq_zero_iff hw