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

tactic: apply MonoidAlgebra.induction_on r
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
⊢ ((ofModule M).asAlgebraHom r) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm (r • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
state_after: case hM
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
⊢ ∀ (g : G),
    ((ofModule M).asAlgebraHom ((of k G) g)) m =
      (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
        ((of k G) g • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)

case hadd
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
⊢ ∀ (f g : MonoidAlgebra k G),
    ((ofModule M).asAlgebraHom f) m =
        (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
          (f • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m) →
      ((ofModule M).asAlgebraHom g) m =
          (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
            (g • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m) →
        ((ofModule M).asAlgebraHom (f + g)) m =
          (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
            ((f + g) • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)

case hsmul
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
⊢ ∀ (r : k) (f : MonoidAlgebra k G),
    ((ofModule M).asAlgebraHom f) m =
        (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
          (f • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m) →
      ((ofModule M).asAlgebraHom (r • f)) m =
        (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
          ((r • f) • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)

tactic: intro g
state_before: case hM
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
⊢ ∀ (g : G),
    ((ofModule M).asAlgebraHom ((of k G) g)) m =
      (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
        ((of k G) g • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
state_after: case hM
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
g : G
⊢ ((ofModule M).asAlgebraHom ((of k G) g)) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
      ((of k G) g • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)

tactic: simp only [one_smul, MonoidAlgebra.lift_symm_apply, MonoidAlgebra.of_apply,
  Representation.asAlgebraHom_single, Representation.ofModule, AddEquiv.apply_eq_iff_eq,
  RestrictScalars.lsmul_apply_apply]
state_before: case hM
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
g : G
⊢ ((ofModule M).asAlgebraHom ((of k G) g)) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
      ((of k G) g • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
state_after: no goals

tactic: intro f g fw gw
state_before: case hadd
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
⊢ ∀ (f g : MonoidAlgebra k G),
    ((ofModule M).asAlgebraHom f) m =
        (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
          (f • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m) →
      ((ofModule M).asAlgebraHom g) m =
          (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
            (g • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m) →
        ((ofModule M).asAlgebraHom (f + g)) m =
          (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
            ((f + g) • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
state_after: case hadd
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
f g : MonoidAlgebra k G
fw :
  ((ofModule M).asAlgebraHom f) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm (f • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
gw :
  ((ofModule M).asAlgebraHom g) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm (g • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
⊢ ((ofModule M).asAlgebraHom (f + g)) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
      ((f + g) • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)

tactic: simp only [fw, gw, map_add, add_smul, LinearMap.add_apply]
state_before: case hadd
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
f g : MonoidAlgebra k G
fw :
  ((ofModule M).asAlgebraHom f) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm (f • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
gw :
  ((ofModule M).asAlgebraHom g) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm (g • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
⊢ ((ofModule M).asAlgebraHom (f + g)) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
      ((f + g) • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
state_after: no goals

tactic: intro r f w
state_before: case hsmul
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
r : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
⊢ ∀ (r : k) (f : MonoidAlgebra k G),
    ((ofModule M).asAlgebraHom f) m =
        (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
          (f • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m) →
      ((ofModule M).asAlgebraHom (r • f)) m =
        (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
          ((r • f) • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
state_after: case hsmul
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
r✝ : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
r : k
f : MonoidAlgebra k G
w :
  ((ofModule M).asAlgebraHom f) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm (f • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
⊢ ((ofModule M).asAlgebraHom (r • f)) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
      ((r • f) • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)

tactic: simp only [w, AlgHom.map_smul, LinearMap.smul_apply,
  RestrictScalars.addEquiv_symm_map_smul_smul]
state_before: case hsmul
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
r✝ : MonoidAlgebra k G
m : RestrictScalars k (MonoidAlgebra k G) M
r : k
f : MonoidAlgebra k G
w :
  ((ofModule M).asAlgebraHom f) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm (f • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
⊢ ((ofModule M).asAlgebraHom (r • f)) m =
    (RestrictScalars.addEquiv k (MonoidAlgebra k G) M).symm
      ((r • f) • (RestrictScalars.addEquiv k (MonoidAlgebra k G) M) m)
state_after: no goals