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

Proof steps:
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
inst✝⁷ : Ring R
inst✝⁶ : Nontrivial R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M
inst✝² : NoZeroSMulDivisors R M
inst✝¹ : Module R M'
v✝ : ι → M
s t : Set M
x y z : M
v : ι → M
inst✝ : Unique ι
⊢ LinearIndependent R v ↔ v default ≠ 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
inst✝⁷ : Ring R
inst✝⁶ : Nontrivial R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M
inst✝² : NoZeroSMulDivisors R M
inst✝¹ : Module R M'
v✝ : ι → M
s t : Set M
x y z : M
v : ι → M
inst✝ : Unique ι
⊢ (∀ (l : ι →₀ R), l default = 0 ∨ v default = 0 → l = 0) ↔ v default ≠ 0
tactic: simp only [linearIndependent_iff, Finsupp.total_unique, smul_eq_zero]
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
inst✝⁷ : Ring R
inst✝⁶ : Nontrivial R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M
inst✝² : NoZeroSMulDivisors R M
inst✝¹ : Module R M'
v✝ : ι → M
s t : Set M
x y z : M
v : ι → M
inst✝ : Unique ι
⊢ (∀ (l : ι →₀ R), l default = 0 ∨ v default = 0 → l = 0) ↔ v default ≠ 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
inst✝⁷ : Ring R
inst✝⁶ : Nontrivial R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M
inst✝² : NoZeroSMulDivisors R M
inst✝¹ : Module R M'
v✝ : ι → M
s t : Set M
x y z : M
v : ι → M
inst✝ : Unique ι
h : ∀ (l : ι →₀ R), l default = 0 ∨ v default = 0 → l = 0
hv : v default = 0
⊢ False
tactic: refine ⟨fun h hv => ?_, fun hv l hl => Finsupp.unique_ext <| hl.resolve_right hv⟩
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
inst✝⁷ : Ring R
inst✝⁶ : Nontrivial R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M
inst✝² : NoZeroSMulDivisors R M
inst✝¹ : Module R M'
v✝ : ι → M
s t : Set M
x y z : M
v : ι → M
inst✝ : Unique ι
h : ∀ (l : ι →₀ R), l default = 0 ∨ v default = 0 → l = 0
hv : v default = 0
⊢ 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
inst✝⁷ : Ring R
inst✝⁶ : Nontrivial R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M
inst✝² : NoZeroSMulDivisors R M
inst✝¹ : Module R M'
v✝ : ι → M
s t : Set M
x y z : M
v : ι → M
inst✝ : Unique ι
h : ∀ (l : ι →₀ R), l default = 0 ∨ v default = 0 → l = 0
hv : v default = 0
this : Finsupp.single default 1 = 0
⊢ False
tactic: have := h (Finsupp.single default 1) (Or.inr hv)
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
inst✝⁷ : Ring R
inst✝⁶ : Nontrivial R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : Module R M
inst✝² : NoZeroSMulDivisors R M
inst✝¹ : Module R M'
v✝ : ι → M
s t : Set M
x y z : M
v : ι → M
inst✝ : Unique ι
h : ∀ (l : ι →₀ R), l default = 0 ∨ v default = 0 → l = 0
hv : v default = 0
this : Finsupp.single default 1 = 0
⊢ False
state_after: no goals
tactic: exact one_ne_zero (Finsupp.single_eq_zero.1 this)