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'.
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
- category_theory.action_as_functor M X = {obj := λ (_x : category_theory.single_obj M), X, map := λ (_x _x_1 : category_theory.single_obj M), has_scalar.smul, map_id' := _, map_comp' := _}
A multiplicative action M ↻ X induces a category strucure 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
The projection from the action category to the monoid, mapping a morphism to its label.
The canonical map action_category M X → X
. It is given by λ x, x.snd
, but
has a more explicit type.
Equations
- category_theory.action_category.back = λ (x : category_theory.action_category M X), x.snd
An object of the action category given by M ↻ X corresponds to an element of X.
Equations
- category_theory.action_category.obj_equiv M X = {to_fun := coe coe_to_lift, inv_fun := λ (x : category_theory.action_category M X), x.back, left_inv := _, right_inv := _}
The stabilizer of a point is isomorphic to the endomorphism monoid at the corresponding point. In fact they are definitionally equivalent.
Any subgroup of G
is a vertex group in its action groupoid.
A target vertex t
and a scalar g
determine a morphism in the action groupoid.
Equations
Any morphism in the action groupoid is given by some pair.
Equations
- category_theory.action_category.cases hyp f = cast _ (hyp b.back f.val)
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
- category_theory.action_category.curry F = have F_map_eq : ∀ {a b : category_theory.action_category G X} {f : a ⟶ b}, F.map f = F.map (category_theory.action_category.hom_of_pair b.back f.val), from _, {to_fun := λ (g : G), ⟨λ (b : X), F.map (category_theory.action_category.hom_of_pair b g), g⟩, map_one' := _, map_mul' := _}
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
- category_theory.action_category.uncurry F sane = {obj := λ (_x : category_theory.action_category G X), (), map := λ (a b : category_theory.action_category G X) (f : a ⟶ b), (⇑F f.val).left b.back, map_id' := _, map_comp' := _}