Documentation

Mathlib.CategoryTheory.Action

Actions as functors and as categories #

From a multiplicative action M ↻ X, we can construct a functor from M to the category of types, mapping the single object of M to X and an element m : M to the map X → X given by multiplication by m. This functor induces a category structure on X -- a special case of the category of elements. A morphism x ⟶ y in this category is simply a scalar m : M such that m • x = y. In the case where M is a group, this category is a groupoid -- the action groupoid.

A multiplicative action M ↻ X viewed as a functor mapping the single object of M to X and an element m : M to the map X → X given by multiplication by m.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem CategoryTheory.actionAsFunctor_map (M : Type u_1) [Monoid M] (X : Type u) [MulAction M X] {X✝ Y✝ : SingleObj M} (x1✝ : X✝ Y✝) (x2✝ : X) :
    (actionAsFunctor M X).map x1✝ x2✝ = x1✝ x2✝
    @[simp]
    theorem CategoryTheory.actionAsFunctor_obj (M : Type u_1) [Monoid M] (X : Type u) [MulAction M X] (x✝ : SingleObj M) :
    (actionAsFunctor M X).obj x✝ = X
    def CategoryTheory.ActionCategory (M : Type u_1) [Monoid M] (X : Type u) [MulAction M X] :

    A multiplicative action M ↻ X induces a category structure on X, where a morphism from x to y is a scalar taking x to y. Due to implementation details, the object type of this category is not equal to X, but is in bijection with X.

    Equations
    Instances For
      @[implicit_reducible]
      Equations
      • One or more equations did not get rendered due to their size.

      The projection from the action category to the monoid, mapping a morphism to its label.

      Equations
      Instances For
        @[simp]
        theorem CategoryTheory.ActionCategory.π_map (M : Type u_1) [Monoid M] (X : Type u) [MulAction M X] (p q : ActionCategory M X) (f : p q) :
        (π M X).map f = f
        @[simp]
        theorem CategoryTheory.ActionCategory.π_obj (M : Type u_1) [Monoid M] (X : Type u) [MulAction M X] (p : ActionCategory M X) :
        def CategoryTheory.ActionCategory.back {M : Type u_1} [Monoid M] {X : Type u} [MulAction M X] :
        ActionCategory M XX

        The canonical map ActionCategory M X → X. It is given by fun x => x.snd, but has a more explicit type.

        Equations
        Instances For
          @[implicit_reducible]
          Equations
          @[simp]
          @[simp]
          theorem CategoryTheory.ActionCategory.back_coe {M : Type u_1} [Monoid M] {X : Type u} [MulAction M X] (x : ActionCategory M X) :

          An object of the action category given by M ↻ X corresponds to an element of X.

          Equations
          Instances For
            theorem CategoryTheory.ActionCategory.hom_as_subtype (M : Type u_1) [Monoid M] (X : Type u) [MulAction M X] (p q : ActionCategory M X) :
            (p q) = { m : M // m p.back = q.back }
            @[implicit_reducible]
            Equations

            The stabilizer of a point is isomorphic to the endomorphism monoid at the corresponding point. In fact they are definitionally equivalent.

            Equations
            Instances For
              @[simp]
              @[simp]
              @[simp]
              theorem CategoryTheory.ActionCategory.id_val {M : Type u_1} [Monoid M] {X : Type u} [MulAction M X] (x : ActionCategory M X) :
              @[simp]
              theorem CategoryTheory.ActionCategory.comp_val {M : Type u_1} [Monoid M] {X : Type u} [MulAction M X] {x y z : ActionCategory M X} (f : x y) (g : y z) :
              (CategoryStruct.comp f g) = g * f
              def CategoryTheory.ActionCategory.endMulEquivSubgroup {G : Type u_2} [Group G] (H : Subgroup G) :
              End ((objEquiv G (G H)) 1) ≃* H

              Any subgroup of G is a vertex group in its action groupoid.

              Equations
              Instances For
                def CategoryTheory.ActionCategory.homOfPair {X : Type u} {G : Type u_2} [Group G] [MulAction G X] (t : X) (g : G) :

                A target vertex t and a scalar g determine a morphism in the action groupoid.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.ActionCategory.homOfPair.val {X : Type u} {G : Type u_2} [Group G] [MulAction G X] (t : X) (g : G) :
                  (homOfPair t g) = g
                  def CategoryTheory.ActionCategory.cases {X : Type u} {G : Type u_2} [Group G] [MulAction G X] {P : a b : ActionCategory G X⦄ → (a b) → Sort u_3} (hyp : (t : X) → (g : G) → P (homOfPair t g)) a b : ActionCategory G X (f : a b) :
                  P f

                  Any morphism in the action groupoid is given by some pair.

                  Equations
                  Instances For
                    def CategoryTheory.ActionCategory.curry {X : Type u} {G : Type u_2} [Group G] [MulAction G X] {H : Type u_3} [Group H] (F : Functor (ActionCategory G X) (SingleObj H)) :
                    G →* (XH) ⋊[mulAutArrow] G

                    Given G acting on X, a functor from the corresponding action groupoid to a group H can be curried to a group homomorphism G →* (X → H) ⋊ G.

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.ActionCategory.curry_apply_left {X : Type u} {G : Type u_2} [Group G] [MulAction G X] {H : Type u_3} [Group H] (F : Functor (ActionCategory G X) (SingleObj H)) (g : G) (b : X) :
                      ((curry F) g).left b = F.map (homOfPair b g)
                      @[simp]
                      theorem CategoryTheory.ActionCategory.curry_apply_right {X : Type u} {G : Type u_2} [Group G] [MulAction G X] {H : Type u_3} [Group H] (F : Functor (ActionCategory G X) (SingleObj H)) (g : G) :
                      ((curry F) g).right = g
                      def CategoryTheory.ActionCategory.uncurry {X : Type u} {G : Type u_2} [Group G] [MulAction G X] {H : Type u_3} [Group H] (F : G →* (XH) ⋊[mulAutArrow] G) (sane : ∀ (g : G), (F g).right = g) :

                      Given G acting on X, a group homomorphism φ : G →* (X → H) ⋊ G can be uncurried to a functor from the action groupoid to H, provided that φ g = (_, g) for all g.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem CategoryTheory.ActionCategory.uncurry_map {X : Type u} {G : Type u_2} [Group G] [MulAction G X] {H : Type u_3} [Group H] (F : G →* (XH) ⋊[mulAutArrow] G) (sane : ∀ (g : G), (F g).right = g) {x✝ b : ActionCategory G X} (f : x✝ b) :
                        (uncurry F sane).map f = (F f).left b.back
                        @[simp]
                        theorem CategoryTheory.ActionCategory.uncurry_obj {X : Type u} {G : Type u_2} [Group G] [MulAction G X] {H : Type u_3} [Group H] (F : G →* (XH) ⋊[mulAutArrow] G) (sane : ∀ (g : G), (F g).right = g) (x✝ : ActionCategory G X) :
                        (uncurry F sane).obj x✝ = ()