Theorem: Rep.leftRegularHomEquiv_symm_apply
File: Mathlib/RepresentationTheory/Rep.lean

Proof steps:
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Monoid G
X Y : Action (Type u) (MonCat.of G)
f✝ : X ⟶ Y
A : Rep k G
f : ofMulAction k G G ⟶ A
⊢ (fun x => A.leftRegularHom x)
      ({ toFun := fun f => f.hom (Finsupp.single 1 1), map_add' := ⋯, map_smul' := ⋯ }.toFun f) =
    f
state_after: k G : Type u
inst✝¹ : CommRing k
inst✝ : Monoid G
X Y : Action (Type u) (MonCat.of G)
f✝ : X ⟶ Y
A : Rep k G
f : ofMulAction k G G ⟶ A
x : G
⊢ (((fun x => A.leftRegularHom x)
            ({ toFun := fun f => f.hom (Finsupp.single 1 1), map_add' := ⋯, map_smul' := ⋯ }.toFun f)).hom ∘ₗ
        Finsupp.lsingle x)
      1 =
    (f.hom ∘ₗ Finsupp.lsingle x) 1
tactic: refine Action.Hom.ext _ _ (Finsupp.lhom_ext' fun x : G => LinearMap.ext_ring ?_)
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Monoid G
X Y : Action (Type u) (MonCat.of G)
f✝ : X ⟶ Y
A : Rep k G
f : ofMulAction k G G ⟶ A
x : G
⊢ (((fun x => A.leftRegularHom x)
            ({ toFun := fun f => f.hom (Finsupp.single 1 1), map_add' := ⋯, map_smul' := ⋯ }.toFun f)).hom ∘ₗ
        Finsupp.lsingle x)
      1 =
    (f.hom ∘ₗ Finsupp.lsingle x) 1
state_after: k G : Type u
inst✝¹ : CommRing k
inst✝ : Monoid G
X Y : Action (Type u) (MonCat.of G)
f✝ : X ⟶ Y
A : Rep k G
f : ofMulAction k G G ⟶ A
x : G
this : f.hom (((ofMulAction k G G).ρ x) (Finsupp.single 1 1)) = (A.ρ x) (f.hom (Finsupp.single 1 1))
⊢ (((fun x => A.leftRegularHom x)
            ({ toFun := fun f => f.hom (Finsupp.single 1 1), map_add' := ⋯, map_smul' := ⋯ }.toFun f)).hom ∘ₗ
        Finsupp.lsingle x)
      1 =
    (f.hom ∘ₗ Finsupp.lsingle x) 1
tactic: have :
      f.hom ((ofMulAction k G G).ρ x (Finsupp.single (1 : G) (1 : k))) =
        A.ρ x (f.hom (Finsupp.single (1 : G) (1 : k))) :=
      LinearMap.ext_iff.1 (f.comm x) (Finsupp.single 1 1)
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Monoid G
X Y : Action (Type u) (MonCat.of G)
f✝ : X ⟶ Y
A : Rep k G
f : ofMulAction k G G ⟶ A
x : G
this : f.hom (((ofMulAction k G G).ρ x) (Finsupp.single 1 1)) = (A.ρ x) (f.hom (Finsupp.single 1 1))
⊢ (((fun x => A.leftRegularHom x)
            ({ toFun := fun f => f.hom (Finsupp.single 1 1), map_add' := ⋯, map_smul' := ⋯ }.toFun f)).hom ∘ₗ
        Finsupp.lsingle x)
      1 =
    (f.hom ∘ₗ Finsupp.lsingle x) 1
state_after: k G : Type u
inst✝¹ : CommRing k
inst✝ : Monoid G
X Y : Action (Type u) (MonCat.of G)
f✝ : X ⟶ Y
A : Rep k G
f : ofMulAction k G G ⟶ A
x : G
this : f.hom (((ofMulAction k G G).ρ x) (Finsupp.single 1 1)) = (A.ρ x) (f.hom (Finsupp.single 1 1))
⊢ f.hom (Finsupp.single x 1) = f.hom (Finsupp.single x 1)
tactic: simp only [leftRegularHom_hom, LinearMap.comp_apply, Finsupp.lsingle_apply, Finsupp.lift_apply,
      ← this, coe_of, of_ρ, Representation.ofMulAction_single x (1 : G) (1 : k), smul_eq_mul,
      mul_one, zero_smul, Finsupp.sum_single_index, one_smul]
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Monoid G
X Y : Action (Type u) (MonCat.of G)
f✝ : X ⟶ Y
A : Rep k G
f : ofMulAction k G G ⟶ A
x : G
this : f.hom (((ofMulAction k G G).ρ x) (Finsupp.single 1 1)) = (A.ρ x) (f.hom (Finsupp.single 1 1))
⊢ f.hom (Finsupp.single x 1) = f.hom (Finsupp.single x 1)
state_after: no goals
tactic: rfl