Theorem: Basis.restrictScalars_repr_apply
File: Mathlib/LinearAlgebra/Basis.lean

tactic: suffices
  Finsupp.mapRange.linearMap (Algebra.linearMap R S) ∘ₗ (b.restrictScalars R).repr.toLinearMap =
    ((b.repr : M →ₗ[S] ι →₀ S).restrictScalars R).domRestrict _
  by exact FunLike.congr_fun (LinearMap.congr_fun this m) i
state_before: ι : Type u_3
ι' : Type ?u.1276630
R : Type u_2
R₂ : Type ?u.1276636
K : Type ?u.1276639
M : Type u_1
M' : Type ?u.1276645
M'' : Type ?u.1276648
V : Type u
V' : Type ?u.1276653
S : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : Ring S
inst✝⁶ : Nontrivial S
inst✝⁵ : AddCommGroup M
inst✝⁴ : Algebra R S
inst✝³ : Module S M
inst✝² : Module R M
inst✝¹ : IsScalarTower R S M
inst✝ : NoZeroSMulDivisors R S
b : Basis ι S M
m : { x // x ∈ span R (range ↑b) }
i : ι
⊢ ↑(algebraMap R S) (↑(↑(restrictScalars R b).repr m) i) = ↑(↑b.repr ↑m) i

tactic: refine Basis.ext (b.restrictScalars R) fun _ => ?_
state_before: ι : Type u_3
ι' : Type ?u.1276630
R : Type u_2
R₂ : Type ?u.1276636
K : Type ?u.1276639
M : Type u_1
M' : Type ?u.1276645
M'' : Type ?u.1276648
V : Type u
V' : Type ?u.1276653
S : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : Ring S
inst✝⁶ : Nontrivial S
inst✝⁵ : AddCommGroup M
inst✝⁴ : Algebra R S
inst✝³ : Module S M
inst✝² : Module R M
inst✝¹ : IsScalarTower R S M
inst✝ : NoZeroSMulDivisors R S
b : Basis ι S M
m : { x // x ∈ span R (range ↑b) }
i : ι
⊢ LinearMap.comp (Finsupp.mapRange.linearMap (Algebra.linearMap R S)) ↑(restrictScalars R b).repr =
    LinearMap.domRestrict (↑R ↑b.repr) (span R (range ↑b))

tactic: simp only [LinearMap.coe_comp, LinearEquiv.coe_toLinearMap, Function.comp_apply, map_one,
  Basis.repr_self, Finsupp.mapRange.linearMap_apply, Finsupp.mapRange_single,
  Algebra.linearMap_apply, LinearMap.domRestrict_apply, LinearEquiv.coe_coe,
  Basis.restrictScalars_apply, LinearMap.coe_restrictScalars]
state_before: ι : Type u_3
ι' : Type ?u.1276630
R : Type u_2
R₂ : Type ?u.1276636
K : Type ?u.1276639
M : Type u_1
M' : Type ?u.1276645
M'' : Type ?u.1276648
V : Type u
V' : Type ?u.1276653
S : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : Ring S
inst✝⁶ : Nontrivial S
inst✝⁵ : AddCommGroup M
inst✝⁴ : Algebra R S
inst✝³ : Module S M
inst✝² : Module R M
inst✝¹ : IsScalarTower R S M
inst✝ : NoZeroSMulDivisors R S
b : Basis ι S M
m : { x // x ∈ span R (range ↑b) }
i x✝ : ι
⊢ ↑(LinearMap.comp (Finsupp.mapRange.linearMap (Algebra.linearMap R S)) ↑(restrictScalars R b).repr)
      (↑(restrictScalars R b) x✝) =
    ↑(LinearMap.domRestrict (↑R ↑b.repr) (span R (range ↑b))) (↑(restrictScalars R b) x✝)

tactic: exact FunLike.congr_fun (LinearMap.congr_fun this m) i
state_before: ι : Type u_3
ι' : Type ?u.1276630
R : Type u_2
R₂ : Type ?u.1276636
K : Type ?u.1276639
M : Type u_1
M' : Type ?u.1276645
M'' : Type ?u.1276648
V : Type u
V' : Type ?u.1276653
S : Type u_4
inst✝⁸ : CommRing R
inst✝⁷ : Ring S
inst✝⁶ : Nontrivial S
inst✝⁵ : AddCommGroup M
inst✝⁴ : Algebra R S
inst✝³ : Module S M
inst✝² : Module R M
inst✝¹ : IsScalarTower R S M
inst✝ : NoZeroSMulDivisors R S
b : Basis ι S M
m : { x // x ∈ span R (range ↑b) }
i : ι
this :
  LinearMap.comp (Finsupp.mapRange.linearMap (Algebra.linearMap R S)) ↑(restrictScalars R b).repr =
    LinearMap.domRestrict (↑R ↑b.repr) (span R (range ↑b))
⊢ ↑(algebraMap R S) (↑(↑(restrictScalars R b).repr m) i) = ↑(↑b.repr ↑m) i