Theorem: MvPolynomial.mem_support_not_mem_vars_zero
File: Mathlib/Data/MvPolynomial/Variables.lean

tactic: classical
rw [vars_def, Multiset.mem_toFinset] at h
rw [← Finsupp.not_mem_support_iff]
contrapose! h
rw [degrees_def]
rw [show f.support = insert x f.support from Eq.symm <| Finset.insert_eq_of_mem H]
rw [Finset.sup_insert]
simp only [Multiset.mem_union, Multiset.sup_eq_union]
left
rwa [← toFinset_toMultiset, Multiset.mem_toFinset] at h
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.153194
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q f : MvPolynomial σ R
x : σ →₀ ℕ
H : x ∈ support f
v : σ
h : ¬v ∈ vars f
⊢ ↑x v = 0

tactic: rw [vars_def, Multiset.mem_toFinset] at h
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.153194
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q f : MvPolynomial σ R
x : σ →₀ ℕ
H : x ∈ support f
v : σ
h : ¬v ∈ vars f
⊢ ↑x v = 0

tactic: rw [← Finsupp.not_mem_support_iff]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.153194
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q f : MvPolynomial σ R
x : σ →₀ ℕ
H : x ∈ support f
v : σ
h✝ : ¬v ∈ vars f
h : ¬v ∈ degrees f
⊢ ↑x v = 0

tactic: contrapose! h
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.153194
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q f : MvPolynomial σ R
x : σ →₀ ℕ
H : x ∈ support f
v : σ
h✝ : ¬v ∈ vars f
h : ¬v ∈ degrees f
⊢ ¬v ∈ x.support

tactic: rw [degrees_def]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.153194
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q f : MvPolynomial σ R
x : σ →₀ ℕ
H : x ∈ support f
v : σ
h✝ : ¬v ∈ vars f
h : v ∈ x.support
⊢ v ∈ degrees f

tactic: rw [show f.support = insert x f.support from Eq.symm <| Finset.insert_eq_of_mem H]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.153194
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q f : MvPolynomial σ R
x : σ →₀ ℕ
H : x ∈ support f
v : σ
h✝ : ¬v ∈ vars f
h : v ∈ x.support
⊢ v ∈ Finset.sup (support f) fun s => ↑toMultiset s

tactic: rw [Finset.sup_insert]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.153194
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q f : MvPolynomial σ R
x : σ →₀ ℕ
H : x ∈ support f
v : σ
h✝ : ¬v ∈ vars f
h : v ∈ x.support
⊢ v ∈ Finset.sup (insert x (support f)) fun s => ↑toMultiset s

tactic: simp only [Multiset.mem_union, Multiset.sup_eq_union]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.153194
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q f : MvPolynomial σ R
x : σ →₀ ℕ
H : x ∈ support f
v : σ
h✝ : ¬v ∈ vars f
h : v ∈ x.support
⊢ v ∈ ↑toMultiset x ⊔ Finset.sup (support f) fun s => ↑toMultiset s

tactic: left
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.153194
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q f : MvPolynomial σ R
x : σ →₀ ℕ
H : x ∈ support f
v : σ
h✝ : ¬v ∈ vars f
h : v ∈ x.support
⊢ v ∈ ↑toMultiset x ∨ v ∈ Finset.sup (support f) fun s => ↑toMultiset s

tactic: rwa [← toFinset_toMultiset, Multiset.mem_toFinset] at h
state_before: case h
R : Type u
S : Type v
σ : Type u_1
τ : Type ?u.153194
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q f : MvPolynomial σ R
x : σ →₀ ℕ
H : x ∈ support f
v : σ
h✝ : ¬v ∈ vars f
h : v ∈ x.support
⊢ v ∈ ↑toMultiset x