definition example theorem

An action of a Group on a set is a Monoid Action of the underlying monoid: with and . Because every has an inverse, each map is a bijection — “when a group acts on a set, it has the character of symmetry”. The orbit of is ; “being in the same orbit” is an Equivalence Relation (reflexive by , symmetric by inverses, transitive by composition), so the orbits partition (CTfS Exercise 3.2.1.15). Categorically, an action is a Functor from the one-object Groupoid , and the set of orbits is its Colimit.

Sources: CTfS §3.2 (Definitions 3.2.1.9, 3.2.1.12, Examples 3.2.1.4, 3.2.1.10, Applications 3.2.1.6, 3.2.1.13, Exercises 3.2.1.11, 3.2.1.14–3.2.1.15), Slogan 4.2.1.5; §5.2.2.1 (representations: actions on vector spaces).

Examples from Category Theory for Scientists

  • Rotations of the earth (CTfS Example 3.2.1.10). The circle group — angles with , or unit complex numbers under multiplication — acts on by rotation about the -axis, and preserves the unit sphere since . An action table needs infinitely many columns (one per angle); with this formula at and at (CTfS’s printed table rotates the other way).
  • Latitudes and climate (CTfS Application 3.2.1.13). The orbits of on the earth’s surface are the circles of latitude; on a thin atmospheric shell they are latitude-lines-at-altitude. “A simplifying assumption in climatology may be given by assuming that acts on all currents in the atmosphere”: only motion that looks the same along each orbit is allowed. The orbits on all of are the horizontal circles around the -axis together with the single points on it (CTfS Exercise 3.2.1.14).
  • Permutations (CTfS Exercises 3.2.1.7, 3.2.1.11): the permutations of a set form a group acting on by evaluation, ; has a single orbit. Every action of on is a homomorphism (Cayley’s view).
  • Symmetries of a square and of crystals (CTfS Example 3.2.1.4, Application 3.2.1.6): the dihedral group of 8 symmetries acts on the square; the space group of an arrangement of atoms is the group of isometries of with — the dashed arrow in over .
  • Linear symmetries: acts on , on the sphere, the Euclidean group on space. Actions on vector spaces by linear maps are representations, functors (CTfS §5.2.2.1).

Structure

  • Monoids vs. groups (CTfS §3.2): “monoids are likely useful in thinking about diffusion, in which time plays a role and things cannot be undone; groups in mechanics, where actions are time-reversible.” When a symmetry breaks, forget along and keep the monoid action (CTfS Application 4.1.2.4).
  • The orbit set is the Coequalizer of the two maps (action and projection), i.e. the colimit of the functor ; the set of fixed points is its Limit.
  • Equivariant maps are natural transformations; -sets form a Topos , and the automorphism group of any object of any category acts on its hom-sets.

Docs: plain Julia — Catlab has no dedicated API for this; related: Catlab v0.16 docs · GATlab standard library

using LinearAlgebra
# U(1) acting on ℝ³ by rotation about the z-axis (CTfS Example 3.2.1.10)
R(θ) = [cosd(θ) sind(θ) 0; -sind(θ) cosd(θ) 0; 0 0 1]
act(θ, p) = R(θ) * p
round.(act(45, [1, 0, 0]); digits = 2)                 # [0.71, -0.71, 0.0] (sign convention of R)
act(190, act(278, [3, 4, 2])) ≈ act(468, [3, 4, 2])     # the action law: θ₁ ⋅ (θ₂ ⋅ p) = (θ₁+θ₂) ⋅ p
norm(act(100, [0.6, 0.0, 0.8])) ≈ 1                      # the sphere is preserved
# the orbit of a point on the sphere is its circle of latitude
orbit(p; n = 8) = [act(360k / n, p) for k in 0:n-1]
all(q -> q[3] ≈ 0.8, orbit([0.6, 0.0, 0.8]))            # same height z: true
import Mathlib
#check @MulAction.orbit           -- the orbit G • x
#check @MulAction.orbitRel        -- "same orbit" as a Setoid (equivalence relation)
#check @MulAction.orbitRel.Quotient
#check @MulAction.stabilizer
#check @MulAction.toPermHom       -- an action is a homomorphism G →* Equiv.Perm X
example (X : Type) : MulAction (Equiv.Perm X) X := inferInstance   -- Σ_X acts on X
import Data.List (nub, sort)
 
-- the dihedral group of the square acting on its corners 0..3
data D4 = Rot Int | Flip Int deriving (Eq, Show)   -- ρ^k and φ ρ^k
actD4 :: D4 -> Int -> Int
actD4 (Rot k)  c = (c + k) `mod` 4
actD4 (Flip k) c = (negate (c + k)) `mod` 4
 
orbit :: [g] -> (g -> x -> x) -> x -> [x]
orbit gs act x = map (`act` x) gs
 
-- orbit [Rot k | k <- [0..3]] actD4 0 == [0,1,2,3]: one orbit, the action is transitive