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

tactic: simp only [disjoint_def, Finsupp.mem_span_image_iff_total]
state_before: ι : Type u'
ι' : Type ?u.335804
R : Type u_1
K : Type ?u.335810
M : Type u_2
M' : Type ?u.335816
M'' : Type ?u.335819
V : Type u
V' : Type ?u.335824
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 t : Set ι
hs : Disjoint s t
⊢ Disjoint (span R (v '' s)) (span R (v '' t))

tactic: rintro _ ⟨l₁, hl₁, rfl⟩ ⟨l₂, hl₂, H⟩
state_before: ι : Type u'
ι' : Type ?u.335804
R : Type u_1
K : Type ?u.335810
M : Type u_2
M' : Type ?u.335816
M'' : Type ?u.335819
V : Type u
V' : Type ?u.335824
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 t : Set ι
hs : Disjoint s t
⊢ ∀ (x : M),
    (∃ l, l ∈ Finsupp.supported R R s ∧ ↑(Finsupp.total ι M R v) l = x) →
      (∃ l, l ∈ Finsupp.supported R R t ∧ ↑(Finsupp.total ι M R v) l = x) → x = 0

tactic: rw [hv.injective_total.eq_iff] at H
state_before: case intro.intro.intro.intro
ι : Type u'
ι' : Type ?u.335804
R : Type u_1
K : Type ?u.335810
M : Type u_2
M' : Type ?u.335816
M'' : Type ?u.335819
V : Type u
V' : Type ?u.335824
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 t : Set ι
hs : Disjoint s t
l₁ : ι →₀ R
hl₁ : l₁ ∈ Finsupp.supported R R s
l₂ : ι →₀ R
hl₂ : l₂ ∈ Finsupp.supported R R t
H : ↑(Finsupp.total ι M R v) l₂ = ↑(Finsupp.total ι M R v) l₁
⊢ ↑(Finsupp.total ι M R v) l₁ = 0

tactic: subst l₂
state_before: case intro.intro.intro.intro
ι : Type u'
ι' : Type ?u.335804
R : Type u_1
K : Type ?u.335810
M : Type u_2
M' : Type ?u.335816
M'' : Type ?u.335819
V : Type u
V' : Type ?u.335824
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 t : Set ι
hs : Disjoint s t
l₁ : ι →₀ R
hl₁ : l₁ ∈ Finsupp.supported R R s
l₂ : ι →₀ R
hl₂ : l₂ ∈ Finsupp.supported R R t
H : l₂ = l₁
⊢ ↑(Finsupp.total ι M R v) l₁ = 0

tactic: have : l₁ = 0 := Submodule.disjoint_def.mp (Finsupp.disjoint_supported_supported hs) _ hl₁ hl₂
state_before: case intro.intro.intro.intro
ι : Type u'
ι' : Type ?u.335804
R : Type u_1
K : Type ?u.335810
M : Type u_2
M' : Type ?u.335816
M'' : Type ?u.335819
V : Type u
V' : Type ?u.335824
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 t : Set ι
hs : Disjoint s t
l₁ : ι →₀ R
hl₁ : l₁ ∈ Finsupp.supported R R s
hl₂ : l₁ ∈ Finsupp.supported R R t
⊢ ↑(Finsupp.total ι M R v) l₁ = 0

tactic: simp [this]
state_before: case intro.intro.intro.intro
ι : Type u'
ι' : Type ?u.335804
R : Type u_1
K : Type ?u.335810
M : Type u_2
M' : Type ?u.335816
M'' : Type ?u.335819
V : Type u
V' : Type ?u.335824
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 t : Set ι
hs : Disjoint s t
l₁ : ι →₀ R
hl₁ : l₁ ∈ Finsupp.supported R R s
hl₂ : l₁ ∈ Finsupp.supported R R t
this : l₁ = 0
⊢ ↑(Finsupp.total ι M R v) l₁ = 0