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

tactic: rcases exists_maximal_independent' R s with ⟨I, hIlinind, hImaximal⟩
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
⊢ ∃ I, (LinearIndependent R fun (x : ↑I) => s ↑x) ∧ ∀ i ∉ I, ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)
state_after: case intro.intro
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
hImaximal : ∀ (J : Set ι), I ⊆ J → (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
⊢ ∃ I, (LinearIndependent R fun (x : ↑I) => s ↑x) ∧ ∀ i ∉ I, ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)

tactic: use I, hIlinind
state_before: case intro.intro
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
hImaximal : ∀ (J : Set ι), I ⊆ J → (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
⊢ ∃ I, (LinearIndependent R fun (x : ↑I) => s ↑x) ∧ ∀ i ∉ I, ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
hImaximal : ∀ (J : Set ι), I ⊆ J → (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
⊢ ∀ i ∉ I, ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)

tactic: intro i hi
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
hImaximal : ∀ (J : Set ι), I ⊆ J → (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
⊢ ∀ i ∉ I, ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
hImaximal : ∀ (J : Set ι), I ⊆ J → (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
i : ι
hi : i ∉ I
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)

tactic: specialize hImaximal (I ∪ {i}) (by simp)
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
hImaximal : ∀ (J : Set ι), I ⊆ J → (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
i : ι
hi : i ∉ I
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
hImaximal : (LinearIndependent R fun (x : ↑(I ∪ {i})) => s ↑x) → I = I ∪ {i}
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)

tactic: set J := I ∪ {i} with hJ
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
hImaximal : (LinearIndependent R fun (x : ↑(I ∪ {i})) => s ↑x) → I = I ∪ {i}
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)

tactic: have memJ : ∀ {x}, x ∈ J ↔ x = i ∨ x ∈ I := by simp [hJ]
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)

tactic: have hiJ : i ∈ J := by simp [J]
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)

tactic: obtain ⟨f, supp_f, sum_f, f_ne⟩ := linearDependent_comp_subtype.mp h
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)
state_after: case right.intro.intro.intro
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)

tactic: have hfi : f i ≠ 0 := by
  contrapose hIlinind
  refine linearDependent_comp_subtype.mpr ⟨f, ?_, sum_f, f_ne⟩
  simp only [Finsupp.mem_supported, hJ] at supp_f ⊢
  rintro x hx
  refine (memJ.mp (supp_f hx)).resolve_left ?_
  rintro rfl
  exact hIlinind (Finsupp.mem_support_iff.mp hx)
state_before: case right.intro.intro.intro
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)
state_after: case right.intro.intro.intro
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hfi : f i ≠ 0
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)

tactic: use f i, hfi
state_before: case right.intro.intro.intro
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hfi : f i ≠ 0
⊢ ∃ a, a ≠ 0 ∧ a • s i ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hfi : f i ≠ 0
⊢ f i • s i ∈ span R (s '' I)

tactic: have hfi' : i ∈ f.support := Finsupp.mem_support_iff.mpr hfi
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hfi : f i ≠ 0
⊢ f i • s i ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hfi : f i ≠ 0
hfi' : i ∈ f.support
⊢ f i • s i ∈ span R (s '' I)

tactic: rw [← Finset.insert_erase hfi', Finset.sum_insert (Finset.not_mem_erase _ _),
  add_eq_zero_iff_eq_neg] at sum_f
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hfi : f i ≠ 0
hfi' : i ∈ f.support
⊢ f i • s i ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : f i • s i = -∑ x ∈ f.support.erase i, f x • s x
f_ne : f ≠ 0
hfi : f i ≠ 0
hfi' : i ∈ f.support
⊢ f i • s i ∈ span R (s '' I)

tactic: rw [sum_f]
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : f i • s i = -∑ x ∈ f.support.erase i, f x • s x
f_ne : f ≠ 0
hfi : f i ≠ 0
hfi' : i ∈ f.support
⊢ f i • s i ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : f i • s i = -∑ x ∈ f.support.erase i, f x • s x
f_ne : f ≠ 0
hfi : f i ≠ 0
hfi' : i ∈ f.support
⊢ -∑ x ∈ f.support.erase i, f x • s x ∈ span R (s '' I)

tactic: refine neg_mem (sum_mem fun c hc => smul_mem _ _ (subset_span ⟨c, ?_, rfl⟩))
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : f i • s i = -∑ x ∈ f.support.erase i, f x • s x
f_ne : f ≠ 0
hfi : f i ≠ 0
hfi' : i ∈ f.support
⊢ -∑ x ∈ f.support.erase i, f x • s x ∈ span R (s '' I)
state_after: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : f i • s i = -∑ x ∈ f.support.erase i, f x • s x
f_ne : f ≠ 0
hfi : f i ≠ 0
hfi' : i ∈ f.support
c : ι
hc : c ∈ f.support.erase i
⊢ c ∈ I

tactic: exact (memJ.mp (supp_f (Finset.erase_subset _ _ hc))).resolve_left (Finset.ne_of_mem_erase hc)
state_before: case right
ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : f i • s i = -∑ x ∈ f.support.erase i, f x • s x
f_ne : f ≠ 0
hfi : f i ≠ 0
hfi' : i ∈ f.support
c : ι
hc : c ∈ f.support.erase i
⊢ c ∈ I
state_after: no goals

tactic: simp
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
hImaximal : ∀ (J : Set ι), I ⊆ J → (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
i : ι
hi : i ∉ I
⊢ I ⊆ I ∪ {i}
state_after: no goals

tactic: simp [hJ]
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
⊢ ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
state_after: no goals

tactic: simp [J]
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
⊢ i ∈ J
state_after: no goals

tactic: refine mt hImaximal ?_
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
⊢ ?m.521572
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
⊢ ¬I = J

tactic: intro h2
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
⊢ ¬I = J
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h2 : I = J
⊢ False

tactic: rw [h2] at hi
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h2 : I = J
⊢ False
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
J : Set ι := I ∪ {i}
hi : i ∉ J
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h2 : I = J
⊢ False

tactic: exact absurd hiJ hi
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
J : Set ι := I ∪ {i}
hi : i ∉ J
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h2 : I = J
⊢ False
state_after: no goals

tactic: contrapose hIlinind
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
hIlinind : LinearIndependent R fun (x : ↑I) => s ↑x
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
⊢ f i ≠ 0
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hIlinind : ¬f i ≠ 0
⊢ ¬LinearIndependent R fun (x : ↑I) => s ↑x

tactic: refine linearDependent_comp_subtype.mpr ⟨f, ?_, sum_f, f_ne⟩
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hIlinind : ¬f i ≠ 0
⊢ ¬LinearIndependent R fun (x : ↑I) => s ↑x
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hIlinind : ¬f i ≠ 0
⊢ f ∈ Finsupp.supported R R I

tactic: simp only [Finsupp.mem_supported, hJ] at supp_f ⊢
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
supp_f : f ∈ Finsupp.supported R R J
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hIlinind : ¬f i ≠ 0
⊢ f ∈ Finsupp.supported R R I
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hIlinind : ¬f i ≠ 0
supp_f : ↑f.support ⊆ I ∪ {i}
⊢ ↑f.support ⊆ I

tactic: rintro x hx
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hIlinind : ¬f i ≠ 0
supp_f : ↑f.support ⊆ I ∪ {i}
⊢ ↑f.support ⊆ I
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hIlinind : ¬f i ≠ 0
supp_f : ↑f.support ⊆ I ∪ {i}
x : ι
hx : x ∈ ↑f.support
⊢ x ∈ I

tactic: refine (memJ.mp (supp_f hx)).resolve_left ?_
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hIlinind : ¬f i ≠ 0
supp_f : ↑f.support ⊆ I ∪ {i}
x : ι
hx : x ∈ ↑f.support
⊢ x ∈ I
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hIlinind : ¬f i ≠ 0
supp_f : ↑f.support ⊆ I ∪ {i}
x : ι
hx : x ∈ ↑f.support
⊢ ¬x = i

tactic: rintro rfl
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
i : ι
hi : i ∉ I
J : Set ι := I ∪ {i}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {i}
memJ : ∀ {x : ι}, x ∈ J ↔ x = i ∨ x ∈ I
hiJ : i ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
f : ι →₀ R
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
hIlinind : ¬f i ≠ 0
supp_f : ↑f.support ⊆ I ∪ {i}
x : ι
hx : x ∈ ↑f.support
⊢ ¬x = i
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
f : ι →₀ R
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
x : ι
hx : x ∈ ↑f.support
hi : x ∉ I
J : Set ι := I ∪ {x}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {x}
memJ : ∀ {x_1 : ι}, x_1 ∈ J ↔ x_1 = x ∨ x_1 ∈ I
hiJ : x ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
hIlinind : ¬f x ≠ 0
supp_f : ↑f.support ⊆ I ∪ {x}
⊢ False

tactic: exact hIlinind (Finsupp.mem_support_iff.mp hx)
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
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
hv : LinearIndependent R v
s : ι → M
I : Set ι
f : ι →₀ R
sum_f : ∑ i ∈ f.support, f i • s i = 0
f_ne : f ≠ 0
x : ι
hx : x ∈ ↑f.support
hi : x ∉ I
J : Set ι := I ∪ {x}
hImaximal : (LinearIndependent R fun (x : ↑J) => s ↑x) → I = J
hJ : J = I ∪ {x}
memJ : ∀ {x_1 : ι}, x_1 ∈ J ↔ x_1 = x ∨ x_1 ∈ I
hiJ : x ∈ J
h : ¬LinearIndependent R fun (x : ↑J) => s ↑x
hIlinind : ¬f x ≠ 0
supp_f : ↑f.support ⊆ I ∪ {x}
⊢ False
state_after: no goals