Theorem: LinearIndependent.total_ne_of_not_mem_support
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: replace h : x ∉ (f.support : Set ι) := h
state_before: ι : Type u'
ι' : Type ?u.347665
R : Type u_1
K : Type ?u.347671
M : Type u_2
M' : Type ?u.347677
M'' : Type ?u.347680
V : Type u
V' : Type ?u.347685
v : ι → M
inst✝⁷ : Ring R
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup M'
inst✝⁴ : AddCommGroup M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
a b : R
x✝ y : M
inst✝ : Nontrivial R
hv : LinearIndependent R v
x : ι
f : ι →₀ R
h : ¬x ∈ f.support
⊢ ↑(Finsupp.total ι M R v) f ≠ v x

tactic: have p := hv.not_mem_span_image h
state_before: ι : Type u'
ι' : Type ?u.347665
R : Type u_1
K : Type ?u.347671
M : Type u_2
M' : Type ?u.347677
M'' : Type ?u.347680
V : Type u
V' : Type ?u.347685
v : ι → M
inst✝⁷ : Ring R
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup M'
inst✝⁴ : AddCommGroup M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
a b : R
x✝ y : M
inst✝ : Nontrivial R
hv : LinearIndependent R v
x : ι
f : ι →₀ R
h : ¬x ∈ ↑f.support
⊢ ↑(Finsupp.total ι M R v) f ≠ v x

tactic: intro w
state_before: ι : Type u'
ι' : Type ?u.347665
R : Type u_1
K : Type ?u.347671
M : Type u_2
M' : Type ?u.347677
M'' : Type ?u.347680
V : Type u
V' : Type ?u.347685
v : ι → M
inst✝⁷ : Ring R
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup M'
inst✝⁴ : AddCommGroup M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
a b : R
x✝ y : M
inst✝ : Nontrivial R
hv : LinearIndependent R v
x : ι
f : ι →₀ R
h : ¬x ∈ ↑f.support
p : ¬v x ∈ span R (v '' ↑f.support)
⊢ ↑(Finsupp.total ι M R v) f ≠ v x

tactic: rw [← w] at p
state_before: ι : Type u'
ι' : Type ?u.347665
R : Type u_1
K : Type ?u.347671
M : Type u_2
M' : Type ?u.347677
M'' : Type ?u.347680
V : Type u
V' : Type ?u.347685
v : ι → M
inst✝⁷ : Ring R
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup M'
inst✝⁴ : AddCommGroup M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
a b : R
x✝ y : M
inst✝ : Nontrivial R
hv : LinearIndependent R v
x : ι
f : ι →₀ R
h : ¬x ∈ ↑f.support
p : ¬v x ∈ span R (v '' ↑f.support)
w : ↑(Finsupp.total ι M R v) f = v x
⊢ False

tactic: rw [Finsupp.span_image_eq_map_total] at p
state_before: ι : Type u'
ι' : Type ?u.347665
R : Type u_1
K : Type ?u.347671
M : Type u_2
M' : Type ?u.347677
M'' : Type ?u.347680
V : Type u
V' : Type ?u.347685
v : ι → M
inst✝⁷ : Ring R
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup M'
inst✝⁴ : AddCommGroup M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
a b : R
x✝ y : M
inst✝ : Nontrivial R
hv : LinearIndependent R v
x : ι
f : ι →₀ R
h : ¬x ∈ ↑f.support
p : ¬↑(Finsupp.total ι M R v) f ∈ span R (v '' ↑f.support)
w : ↑(Finsupp.total ι M R v) f = v x
⊢ False

tactic: simp only [not_exists, not_and, mem_map] at p
state_before: ι : Type u'
ι' : Type ?u.347665
R : Type u_1
K : Type ?u.347671
M : Type u_2
M' : Type ?u.347677
M'' : Type ?u.347680
V : Type u
V' : Type ?u.347685
v : ι → M
inst✝⁷ : Ring R
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup M'
inst✝⁴ : AddCommGroup M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
a b : R
x✝ y : M
inst✝ : Nontrivial R
hv : LinearIndependent R v
x : ι
f : ι →₀ R
h : ¬x ∈ ↑f.support
p : ¬↑(Finsupp.total ι M R v) f ∈ Submodule.map (Finsupp.total ι M R v) (Finsupp.supported R R ↑f.support)
w : ↑(Finsupp.total ι M R v) f = v x
⊢ False

tactic: exact p f (f.mem_supported_support R) rfl
state_before: ι : Type u'
ι' : Type ?u.347665
R : Type u_1
K : Type ?u.347671
M : Type u_2
M' : Type ?u.347677
M'' : Type ?u.347680
V : Type u
V' : Type ?u.347685
v : ι → M
inst✝⁷ : Ring R
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup M'
inst✝⁴ : AddCommGroup M''
inst✝³ : Module R M
inst✝² : Module R M'
inst✝¹ : Module R M''
a b : R
x✝ y : M
inst✝ : Nontrivial R
hv : LinearIndependent R v
x : ι
f : ι →₀ R
h : ¬x ∈ ↑f.support
w : ↑(Finsupp.total ι M R v) f = v x
p : ∀ (x : ι →₀ R), x ∈ Finsupp.supported R R ↑f.support → ¬↑(Finsupp.total ι M R v) x = ↑(Finsupp.total ι M R v) f
⊢ False