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

tactic: have :
  ↑((LinearIndependent.totalEquiv hv : (ι →₀ R) →ₗ[R] span R (range v)) l) =
    Finsupp.total ι M R v l :=
  rfl
state_before: ι : Type u'
ι' : Type ?u.448902
R : Type u_1
K : Type ?u.448908
M : Type u_2
M' : Type ?u.448914
M'' : Type ?u.448917
V : Type u
V' : Type ?u.448922
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
l : ι →₀ R
x : { x // x ∈ span R (range v) }
eq : ↑(Finsupp.total ι M R v) l = ↑x
⊢ ↑(repr hv) x = l

tactic: have : (LinearIndependent.totalEquiv hv : (ι →₀ R) →ₗ[R] span R (range v)) l = x := by
  rw [eq] at this
  exact Subtype.ext_iff.2 this
state_before: ι : Type u'
ι' : Type ?u.448902
R : Type u_1
K : Type ?u.448908
M : Type u_2
M' : Type ?u.448914
M'' : Type ?u.448917
V : Type u
V' : Type ?u.448922
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
l : ι →₀ R
x : { x // x ∈ span R (range v) }
eq : ↑(Finsupp.total ι M R v) l = ↑x
this : ↑(↑↑(totalEquiv hv) l) = ↑(Finsupp.total ι M R v) l
⊢ ↑(repr hv) x = l

tactic: rw [← LinearEquiv.symm_apply_apply hv.totalEquiv l]
state_before: ι : Type u'
ι' : Type ?u.448902
R : Type u_1
K : Type ?u.448908
M : Type u_2
M' : Type ?u.448914
M'' : Type ?u.448917
V : Type u
V' : Type ?u.448922
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
l : ι →₀ R
x : { x // x ∈ span R (range v) }
eq : ↑(Finsupp.total ι M R v) l = ↑x
this✝ : ↑(↑↑(totalEquiv hv) l) = ↑(Finsupp.total ι M R v) l
this : ↑↑(totalEquiv hv) l = x
⊢ ↑(repr hv) x = l

tactic: rw [← this]
state_before: ι : Type u'
ι' : Type ?u.448902
R : Type u_1
K : Type ?u.448908
M : Type u_2
M' : Type ?u.448914
M'' : Type ?u.448917
V : Type u
V' : Type ?u.448922
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
l : ι →₀ R
x : { x // x ∈ span R (range v) }
eq : ↑(Finsupp.total ι M R v) l = ↑x
this✝ : ↑(↑↑(totalEquiv hv) l) = ↑(Finsupp.total ι M R v) l
this : ↑↑(totalEquiv hv) l = x
⊢ ↑(repr hv) x = ↑(LinearEquiv.symm (totalEquiv hv)) (↑(totalEquiv hv) l)

tactic: rfl
state_before: ι : Type u'
ι' : Type ?u.448902
R : Type u_1
K : Type ?u.448908
M : Type u_2
M' : Type ?u.448914
M'' : Type ?u.448917
V : Type u
V' : Type ?u.448922
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
l : ι →₀ R
x : { x // x ∈ span R (range v) }
eq : ↑(Finsupp.total ι M R v) l = ↑x
this✝ : ↑(↑↑(totalEquiv hv) l) = ↑(Finsupp.total ι M R v) l
this : ↑↑(totalEquiv hv) l = x
⊢ ↑(repr hv) (↑↑(totalEquiv hv) l) = ↑(LinearEquiv.symm (totalEquiv hv)) (↑(totalEquiv hv) l)

tactic: rw [eq] at this
state_before: ι : Type u'
ι' : Type ?u.448902
R : Type u_1
K : Type ?u.448908
M : Type u_2
M' : Type ?u.448914
M'' : Type ?u.448917
V : Type u
V' : Type ?u.448922
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
l : ι →₀ R
x : { x // x ∈ span R (range v) }
eq : ↑(Finsupp.total ι M R v) l = ↑x
this : ↑(↑↑(totalEquiv hv) l) = ↑(Finsupp.total ι M R v) l
⊢ ↑↑(totalEquiv hv) l = x

tactic: exact Subtype.ext_iff.2 this
state_before: ι : Type u'
ι' : Type ?u.448902
R : Type u_1
K : Type ?u.448908
M : Type u_2
M' : Type ?u.448914
M'' : Type ?u.448917
V : Type u
V' : Type ?u.448922
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
l : ι →₀ R
x : { x // x ∈ span R (range v) }
eq : ↑(Finsupp.total ι M R v) l = ↑x
this : ↑(↑↑(totalEquiv hv) l) = ↑x
⊢ ↑↑(totalEquiv hv) l = x