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 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.

@[simp]
theorem CategoryTheory.actionAsFunctor_map (M : Type u_1) [Monoid M] (X : Type u) [MulAction M X] :
∀ {X_1 Y : CategoryTheory.SingleObj M} (x : X_1 Y) (x_1 : X), (CategoryTheory.actionAsFunctor M X).toPrefunctor.map x x_1 = x x_1
@[simp]
theorem CategoryTheory.actionAsFunctor_obj (M : Type u_1) [Monoid M] (X : Type u) [MulAction M X] :
∀ (x : CategoryTheory.SingleObj M), (CategoryTheory.actionAsFunctor M X).toPrefunctor.obj x = X

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
    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

      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 : CategoryTheory.ActionCategory M X) (q : CategoryTheory.ActionCategory M X) (f : p q) :
        (CategoryTheory.ActionCategory.π M X).toPrefunctor.map f = f

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

        Equations
        Instances For
          Equations
          • CategoryTheory.ActionCategory.instCoeTCActionCategory = { coe := fun (x : X) => { fst := (), snd := x } }
          @[simp]
          theorem CategoryTheory.ActionCategory.coe_back {M : Type u_1} [Monoid M] {X : Type u} [MulAction M X] (x : X) :
          CategoryTheory.ActionCategory.back { fst := (), snd := x } = x

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

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            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

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

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def CategoryTheory.ActionCategory.homOfPair {X : Type u} {G : Type u_2} [Group G] [MulAction G X] (t : X) (g : G) :
                { fst := (), snd := g⁻¹ t } { fst := (), snd := t }

                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) :
                  def CategoryTheory.ActionCategory.cases {X : Type u} {G : Type u_2} [Group G] [MulAction G X] {P : a b : CategoryTheory.ActionCategory G X⦄ → (a b)Sort u_3} (hyp : (t : X) → (g : G) → P (CategoryTheory.ActionCategory.homOfPair t g)) ⦃a : CategoryTheory.ActionCategory G X ⦃b : CategoryTheory.ActionCategory G X (f : a b) :
                  P f

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

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem CategoryTheory.ActionCategory.cases' {X : Type u} {G : Type u_2} [Group G] [MulAction G X] ⦃a' : CategoryTheory.ActionCategory G X ⦃b' : CategoryTheory.ActionCategory G X (f : a' b') :
                    ∃ (a : X) (b : X) (g : G) (ha : a' = { fst := (), snd := a }) (hb : b' = { fst := (), snd := b }) (hg : a = g⁻¹ b), f = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom (_ : a' = { fst := (), snd := g⁻¹ b })) (CategoryTheory.CategoryStruct.comp (CategoryTheory.ActionCategory.homOfPair b g) (CategoryTheory.eqToHom (_ : { fst := (), snd := b } = b')))

                    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
                    • 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 : CategoryTheory.ActionCategory G X} (f : x b), (CategoryTheory.ActionCategory.uncurry F sane).toPrefunctor.map f = (F f).left (CategoryTheory.ActionCategory.back b)
                      @[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 : CategoryTheory.ActionCategory G X), (CategoryTheory.ActionCategory.uncurry F sane).toPrefunctor.obj x = ()
                      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