Theorem: CategoryTheory.Functor.mapAction_map_hom
File: Mathlib/RepresentationTheory/Action/Basic.lean

Proof steps:
state_before: V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
M : Action V G
⊢ (fun g => F.map (M.ρ g)) 1 = 1
state_after: no goals
tactic: simp only [End.one_def, Action.ρ_one, F.map_id, MonCat.one_of]
state_before: V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
M : Action V G
g h : ↑G
⊢ { toFun := fun g => F.map (M.ρ g), map_one' := ⋯ }.toFun (g * h) =
    { toFun := fun g => F.map (M.ρ g), map_one' := ⋯ }.toFun g *
      { toFun := fun g => F.map (M.ρ g), map_one' := ⋯ }.toFun h
state_after: V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
M : Action V G
g h : ↑G
⊢ F.map (M.ρ (g * h)) = F.map (M.ρ g) * F.map (M.ρ h)
tactic: dsimp
state_before: V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
M : Action V G
g h : ↑G
⊢ F.map (M.ρ (g * h)) = F.map (M.ρ g) * F.map (M.ρ h)
state_after: no goals
tactic: rw [map_mul, MonCat.mul_of, End.mul_def, End.mul_def, F.map_comp]
state_before: V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
X✝ Y✝ : Action V G
f : X✝ ⟶ Y✝
g : ↑G
⊢ ((fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } }) X✝).ρ g ≫
      F.map f.hom =
    F.map f.hom ≫
      ((fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } }) Y✝).ρ g
state_after: V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
X✝ Y✝ : Action V G
f : X✝ ⟶ Y✝
g : ↑G
⊢ F.map (X✝.ρ g) ≫ F.map f.hom = F.map f.hom ≫ F.map (Y✝.ρ g)
tactic: dsimp
state_before: V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
X✝ Y✝ : Action V G
f : X✝ ⟶ Y✝
g : ↑G
⊢ F.map (X✝.ρ g) ≫ F.map f.hom = F.map f.hom ≫ F.map (Y✝.ρ g)
state_after: no goals
tactic: rw [← F.map_comp, f.comm, F.map_comp]
state_before: V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
M : Action V G
⊢ { obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
          map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
      (𝟙 M) =
    𝟙
      ({ obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
            map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.obj
        M)
state_after: case h
V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
M : Action V G
⊢ ({ obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
            map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
        (𝟙 M)).hom =
    (𝟙
        ({ obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
              map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.obj
          M)).hom
tactic: ext
state_before: case h
V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
M : Action V G
⊢ ({ obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
            map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
        (𝟙 M)).hom =
    (𝟙
        ({ obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
              map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.obj
          M)).hom
state_after: no goals
tactic: simp only [Action.id_hom, F.map_id]
state_before: V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
X✝ Y✝ Z✝ : Action V G
f : X✝ ⟶ Y✝
g : Y✝ ⟶ Z✝
⊢ { obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
          map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
      (f ≫ g) =
    { obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
            map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
        f ≫
      { obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
            map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
        g
state_after: case h
V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
X✝ Y✝ Z✝ : Action V G
f : X✝ ⟶ Y✝
g : Y✝ ⟶ Z✝
⊢ ({ obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
            map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
        (f ≫ g)).hom =
    ({ obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
              map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
          f ≫
        { obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
              map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
          g).hom
tactic: ext
state_before: case h
V : Type (u + 1)
inst✝¹ : LargeCategory V
W : Type (u + 1)
inst✝ : LargeCategory W
F : V ⥤ W
G : MonCat
X✝ Y✝ Z✝ : Action V G
f : X✝ ⟶ Y✝
g : Y✝ ⟶ Z✝
⊢ ({ obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
            map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
        (f ≫ g)).hom =
    ({ obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
              map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
          f ≫
        { obj := fun M => { V := F.obj M.V, ρ := { toFun := fun g => F.map (M.ρ g), map_one' := ⋯, map_mul' := ⋯ } },
              map := fun {X Y} f => { hom := F.map f.hom, comm := ⋯ } }.map
          g).hom
state_after: no goals
tactic: simp only [Action.comp_hom, F.map_comp]