Theorem: Representation.ofModule_asModule_act
File: Mathlib/RepresentationTheory/Basic.lean

Proof steps:
state_before: k : Type u_1
G : Type u_2
V : Type u_3
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
ρ : Representation k G V
M : Type u_4
inst✝¹ : AddCommMonoid M
inst✝ : Module (MonoidAlgebra k G) M
g : G
x : RestrictScalars k (MonoidAlgebra k G) ρ.asModule
⊢ ((ofModule ρ.asModule) g) x =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule).symm
      (ρ.asModuleEquiv.symm ((ρ g) (ρ.asModuleEquiv ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule) x))))
state_after: k : Type u_1
G : Type u_2
V : Type u_3
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
ρ : Representation k G V
M : Type u_4
inst✝¹ : AddCommMonoid M
inst✝ : Module (MonoidAlgebra k G) M
g : G
x : RestrictScalars k (MonoidAlgebra k G) ρ.asModule
⊢ (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule) (((ofModule ρ.asModule) g) x) =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule)
      ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule).symm
        (ρ.asModuleEquiv.symm
          ((ρ g) (ρ.asModuleEquiv ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule) x)))))
tactic: apply_fun RestrictScalars.addEquiv _ _ ρ.asModule using
    (RestrictScalars.addEquiv _ _ ρ.asModule).injective
state_before: k : Type u_1
G : Type u_2
V : Type u_3
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
ρ : Representation k G V
M : Type u_4
inst✝¹ : AddCommMonoid M
inst✝ : Module (MonoidAlgebra k G) M
g : G
x : RestrictScalars k (MonoidAlgebra k G) ρ.asModule
⊢ (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule) (((ofModule ρ.asModule) g) x) =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule)
      ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule).symm
        (ρ.asModuleEquiv.symm
          ((ρ g) (ρ.asModuleEquiv ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule) x)))))
state_after: k : Type u_1
G : Type u_2
V : Type u_3
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
ρ : Representation k G V
M : Type u_4
inst✝¹ : AddCommMonoid M
inst✝ : Module (MonoidAlgebra k G) M
g : G
x : RestrictScalars k (MonoidAlgebra k G) ρ.asModule
⊢ (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule)
      ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule).symm
        (MonoidAlgebra.single g 1 • (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule) x)) =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule)
      ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule).symm
        (ρ.asModuleEquiv.symm
          ((ρ g) (ρ.asModuleEquiv ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule) x)))))
tactic: dsimp [ofModule, RestrictScalars.lsmul_apply_apply]
state_before: k : Type u_1
G : Type u_2
V : Type u_3
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
ρ : Representation k G V
M : Type u_4
inst✝¹ : AddCommMonoid M
inst✝ : Module (MonoidAlgebra k G) M
g : G
x : RestrictScalars k (MonoidAlgebra k G) ρ.asModule
⊢ (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule)
      ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule).symm
        (MonoidAlgebra.single g 1 • (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule) x)) =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule)
      ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule).symm
        (ρ.asModuleEquiv.symm
          ((ρ g) (ρ.asModuleEquiv ((RestrictScalars.addEquiv k (MonoidAlgebra k G) ρ.asModule) x)))))
state_after: no goals
tactic: simp