Theorem: LinearMap.pi_apply_eq_sum_univ
File: Mathlib/LinearAlgebra/Basic.lean

tactic: conv_lhs => rw [pi_eq_sum_univ x, f.map_sum]
state_before: R : Type u_2
R₁ : Type ?u.256942
R₂ : Type ?u.256945
R₃ : Type ?u.256948
R₄ : Type ?u.256951
S : Type ?u.256954
K : Type ?u.256957
K₂ : Type ?u.256960
M : Type u_3
M' : Type ?u.256966
M₁ : Type ?u.256969
M₂ : Type ?u.256972
M₃ : Type ?u.256975
M₄ : Type ?u.256978
N : Type ?u.256981
N₂ : Type ?u.256984
ι : Type u_1
V : Type ?u.256990
V₂ : Type ?u.256993
inst✝¹⁹ : Semiring R
inst✝¹⁸ : Semiring R₂
inst✝¹⁷ : Semiring R₃
inst✝¹⁶ : Semiring R₄
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid M₃
inst✝¹¹ : AddCommMonoid M₄
inst✝¹⁰ : Module R M
inst✝⁹ : Module R M₁
inst✝⁸ : Module R₂ M₂
inst✝⁷ : Module R₃ M₃
inst✝⁶ : Module R₄ M₄
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₃₄ : R₃ →+* R₄
σ₁₃ : R →+* R₃
σ₂₄ : R₂ →+* R₄
σ₁₄ : R →+* R₄
inst✝⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁴ : RingHomCompTriple σ₂₃ σ₃₄ σ₂₄
inst✝³ : RingHomCompTriple σ₁₃ σ₃₄ σ₁₄
inst✝² : RingHomCompTriple σ₁₂ σ₂₄ σ₁₄
f✝ : M →ₛₗ[σ₁₂] M₂
g : M₂ →ₛₗ[σ₂₃] M₃
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
f : (ι → R) →ₗ[R] M
x : ι → R
⊢ ↑f x = ∑ i : ι, x i • ↑f fun j => if i = j then 1 else 0

tactic: refine Finset.sum_congr rfl (fun _ _ => ?_)
state_before: R : Type u_2
R₁ : Type ?u.256942
R₂ : Type ?u.256945
R₃ : Type ?u.256948
R₄ : Type ?u.256951
S : Type ?u.256954
K : Type ?u.256957
K₂ : Type ?u.256960
M : Type u_3
M' : Type ?u.256966
M₁ : Type ?u.256969
M₂ : Type ?u.256972
M₃ : Type ?u.256975
M₄ : Type ?u.256978
N : Type ?u.256981
N₂ : Type ?u.256984
ι : Type u_1
V : Type ?u.256990
V₂ : Type ?u.256993
inst✝¹⁹ : Semiring R
inst✝¹⁸ : Semiring R₂
inst✝¹⁷ : Semiring R₃
inst✝¹⁶ : Semiring R₄
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid M₃
inst✝¹¹ : AddCommMonoid M₄
inst✝¹⁰ : Module R M
inst✝⁹ : Module R M₁
inst✝⁸ : Module R₂ M₂
inst✝⁷ : Module R₃ M₃
inst✝⁶ : Module R₄ M₄
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₃₄ : R₃ →+* R₄
σ₁₃ : R →+* R₃
σ₂₄ : R₂ →+* R₄
σ₁₄ : R →+* R₄
inst✝⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁴ : RingHomCompTriple σ₂₃ σ₃₄ σ₂₄
inst✝³ : RingHomCompTriple σ₁₃ σ₃₄ σ₁₄
inst✝² : RingHomCompTriple σ₁₂ σ₂₄ σ₁₄
f✝ : M →ₛₗ[σ₁₂] M₂
g : M₂ →ₛₗ[σ₂₃] M₃
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
f : (ι → R) →ₗ[R] M
x : ι → R
⊢ ∑ i : ι, ↑f (x i • fun j => if i = j then 1 else 0) = ∑ i : ι, x i • ↑f fun j => if i = j then 1 else 0

tactic: rw [map_smul]
state_before: R : Type u_2
R₁ : Type ?u.256942
R₂ : Type ?u.256945
R₃ : Type ?u.256948
R₄ : Type ?u.256951
S : Type ?u.256954
K : Type ?u.256957
K₂ : Type ?u.256960
M : Type u_3
M' : Type ?u.256966
M₁ : Type ?u.256969
M₂ : Type ?u.256972
M₃ : Type ?u.256975
M₄ : Type ?u.256978
N : Type ?u.256981
N₂ : Type ?u.256984
ι : Type u_1
V : Type ?u.256990
V₂ : Type ?u.256993
inst✝¹⁹ : Semiring R
inst✝¹⁸ : Semiring R₂
inst✝¹⁷ : Semiring R₃
inst✝¹⁶ : Semiring R₄
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : AddCommMonoid M₁
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : AddCommMonoid M₃
inst✝¹¹ : AddCommMonoid M₄
inst✝¹⁰ : Module R M
inst✝⁹ : Module R M₁
inst✝⁸ : Module R₂ M₂
inst✝⁷ : Module R₃ M₃
inst✝⁶ : Module R₄ M₄
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₃₄ : R₃ →+* R₄
σ₁₃ : R →+* R₃
σ₂₄ : R₂ →+* R₄
σ₁₄ : R →+* R₄
inst✝⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁴ : RingHomCompTriple σ₂₃ σ₃₄ σ₂₄
inst✝³ : RingHomCompTriple σ₁₃ σ₃₄ σ₁₄
inst✝² : RingHomCompTriple σ₁₂ σ₂₄ σ₁₄
f✝ : M →ₛₗ[σ₁₂] M₂
g : M₂ →ₛₗ[σ₂₃] M₃
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
f : (ι → R) →ₗ[R] M
x : ι → R
x✝¹ : ι
x✝ : x✝¹ ∈ Finset.univ
⊢ ↑f (x x✝¹ • fun j => if x✝¹ = j then 1 else 0) = x x✝¹ • ↑f fun j => if x✝¹ = j then 1 else 0