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/ies/music-topos/.codex/skills/categorical-composition" ~/.claude/skills/plurigrid-asi-categorical-composition && rm -rf "$T"
manifest:
ies/music-topos/.codex/skills/categorical-composition/SKILL.mdsource content
Categorical Composition
Category: Phase 3 Core - Compositional Architecture Status: Skeleton Implementation Dependencies: None (foundational)
Overview
Implements categorical abstractions for compositional learning: Kan extensions for adapting between learning problems, higher adjunctions for bidirectional transformations, and functorial parameter transfer for compositional generalization.
Capabilities
- Kan Extensions: Left/right Kan extensions for problem adaptation
- Adjunctions: Adjoint functors for bidirectional transformations
- Functorial Transfer: Preserve structure across parameter spaces
- Compositional Architecture: Build complex systems from simple components
Core Components
-
Category Theory Primitives (
)category_theory.jl- Category, functor, natural transformation definitions
- Composition and identity laws
- Diagram chasing utilities
-
Kan Extensions (
)kan_extensions.jl- Left Kan extension (initial/colimit-based)
- Right Kan extension (terminal/limit-based)
- Pointwise computation formulas
-
Adjunctions (
)adjunctions.jl- Adjoint functor pairs
- Unit and counit natural transformations
- Triangle identities verification
-
Functorial Parameter Transfer (
)functorial_transfer.jl- Transfer neural network parameters via functors
- Preserve compositional structure
- Zero-shot generalization via categorical reasoning
Integration Points
- Input from: All Phase 3 skills (provides compositional framework)
- Output to: All Phase 3 skills (foundational abstraction)
- Coordinates with:
(correctness proofs)formal-verification-ai
Usage
using CategoricalComposition # Define source and target categories C = FiniteCategory(objects=[:A, :B], morphisms=Dict(:f => (:A, :B))) D = FiniteCategory(objects=[:X, :Y, :Z], morphisms=Dict(:g => (:X, :Y), :h => (:Y, :Z))) # Define functor F: C -> D F = Functor( source=C, target=D, object_map=Dict(:A => :X, :B => :Y), morphism_map=Dict(:f => :g) ) # Compute left Kan extension G = Functor(source=C, target=Set, object_map=Dict(:A => [1,2], :B => [3,4])) Lan_F_G = left_kan_extension(F, G) # Verify adjunction @assert check_adjunction(Lan_F_G, restriction_functor(F))
References
- Mac Lane "Categories for the Working Mathematician" (1971)
- Fong & Spivak "Seven Sketches in Compositionality" (2019)
- Shiebler et al. "Category Theory in Machine Learning" (2021)
Implementation Status
- Basic category theory primitives
- Functor composition
- Full Kan extension computation
- Adjunction verification
- Neural network parameter transfer demo