install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ga-central-extensions" ~/.claude/skills/plurigrid-asi-ga-central-extensions && rm -rf "$T"
manifest:
skills/ga-central-extensions/SKILL.mdsource content
GA Central Extensions Skill
Central extensions of rotation groups via Clifford algebras and spinor covering spaces.
Trit: 0 (ERGODIC) — Transport/coordination between Lie algebra and Lie group
Mathematical Foundation
The Fundamental Central Extension
1 → ℤ/2 → Spin(n) → SO(n) → 1 ↓ ↓ ↓ (-1) Motors Rotations
This is THE central extension: Spin(n) is the universal cover of SO(n).
Pin and Spin Groups from Clifford
Pin(V,Q) = {v₁v₂...vₖ ∈ Cl(V,Q) : vᵢ ∈ V, Q(vᵢ) = ±1} Spin(V,Q) = Pin(V,Q) ∩ Cl⁺(V,Q) -- even subalgebra Central element: -1 ∈ Spin(n) maps to 1 ∈ SO(n) Kernel = ℤ/2 = center of extension
Exp/Log as Extension Witness
exp spin(n) ────────→ Spin(n) ↓ ↓ π so(n) ─────────→ SO(n) exp Bivector B ∈ Cl² ≅ spin(n) Motor M = exp(B/2) ∈ Spin(n) Rotation R = π(M) ∈ SO(n)
ACSet Schema for Central Extensions
@present SchCentralExtGA(FreeSchema) begin # Objects in extension sequence (Kernel, TotalGroup, BaseGroup)::Ob (LieAlg_K, LieAlg_T, LieAlg_B)::Ob # Group morphisms inject::Hom(Kernel, TotalGroup) # ℤ/2 → Spin project::Hom(TotalGroup, BaseGroup) # Spin → SO # Lie algebra morphisms d_inject::Hom(LieAlg_K, LieAlg_T) # 0 → spin (kernel is discrete) d_project::Hom(LieAlg_T, LieAlg_B) # spin ≅ so (isomorphism!) # Exp/Log connecting group ↔ algebra exp_total::Hom(LieAlg_T, TotalGroup) # bivector → motor log_total::Hom(TotalGroup, LieAlg_T) # motor → bivector # Central element central::Attr(Kernel, Sign) # -1 ∈ Spin # GF(3): centrality condition trit::Attr(TotalGroup, GF3Trit) end
H²(G, A) Classification
Central extensions classified by group cohomology H²(G, A):
H²(SO(n), ℤ/2) ≅ ℤ/2 for n ≥ 3 [0] = trivial extension SO(n) × ℤ/2 [1] = Spin(n) (non-trivial, connected double cover)
GF(3) Cohomology Lift
H²(SO(n), ℤ/3) classifies ℤ/3-central extensions - Relevant for GF(3) trit extensions - Trivial for most SO(n), but structure preserved Skill triad cohomology: H²(SkillTriad, GF(3)) ≅ GF(3) [0]: balanced triad (sum = 0) [±1]: unbalanced (needs completion)
Motor Decomposition (from pga-motor-interpolation)
# Motor M ∈ Spin⁺(3,0,1) decomposes: struct MotorDecomp scalar::Float64 # cos(θ/2), trit = -1 bivector::Vec3 # sin(θ/2)·axis, trit = 0 ideal_biv::Vec3 # translation, trit = +1 end # Central extension structure: # M and -M project to same rotation # π(M) = π(-M) ∈ SE(3)
Spinor Representations
Spinors = representations of Spin(n) that DON'T descend to SO(n) Cl(n) acts on spinor space S dim(S) = 2^⌊n/2⌋ The "square root of geometry" — needs double cover to define
Integration with GA Skills
| Skill | Central Extension Role | Trit |
|---|---|---|
| ga-abelian-extensions | Ext functor framework | -1 |
| ga-central-extensions | Spin covers, H² | 0 |
| ga-derived-category | Derived functors | +1 |
Triad: (-1) + 0 + (+1) = 0 ✓
Open Games: Covering as Strategy
Play: SO(n) → Spin(n) -- "lift rotation to motor" Coplay: Motor → (±1, R) -- "project with sign ambiguity" Equilibrium: consistent sign choice = spin structure Obstruction: w₂ (2nd Stiefel-Whitney class)
Specter Navigation
;; Lift through central extension (defn lift-to-spin [rotation] (sp/transform [MOTOR-PATH] #(choose-sign % (orientation-context)) (exp-map (log-so rotation)))) ;; Descend to SO (sp/select [ALL :project] spin-element)
Commands
# Compute spin lift of rotation julia -e 'spin_lift(rotation_matrix(π/4, [1,0,0]))' # Check if manifold admits spin structure bb -e '(spin-structure? manifold-acset)' # H² computation julia -e 'group_cohomology(SO(3), ZZ/2, 2)'
References
- Lawson & Michelsohn: Spin Geometry (Ch. 1)
- Lounesto: Clifford Algebras and Spinors
- pga-motor-interpolation skill (Exp/Log maps)
- ga-abelian-extensions skill (Ext framework)
Autopoietic Marginalia
The interaction IS the skill improving itself.
Every use of this skill is an opportunity for worlding:
- MEMORY (-1): Record what was learned
- REMEMBERING (0): Connect patterns to other skills
- WORLDING (+1): Evolve the skill based on use
Add Interaction Exemplars here as the skill is used.