Asi oapply-colimit
oapply: Operad algebra evaluation via colimits. Composes machines/resource sharers.
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/.agents/skills/oapply-colimit" ~/.claude/skills/plurigrid-asi-oapply-colimit && rm -rf "$T"
manifest:
ies/music-topos/.agents/skills/oapply-colimit/SKILL.mdsource content
oapply-colimit Skill
Core Pattern
oapply computes colimit of component diagram over wiring pattern:
using AlgebraicDynamics # Pattern + components → composite composite = oapply(wiring_diagram, [machine1, machine2, ...])
Two Composition Modes
| Mode | Type | Gluing | Example |
|---|---|---|---|
| Undirected | ResourceSharer | Pushout (shared state) | Lotka-Volterra |
| Directed | Machine | Wiring (signal flow) | Control systems |
Implementation
function oapply(d::UndirectedWiringDiagram, xs::Vector{ResourceSharer}) # 1. Coproduct of state spaces S = coproduct((FinSet ∘ nstates).(xs)) # 2. Pushout identifies shared variables S′ = pushout(portmap, junctions) # 3. Induced dynamics sum at junctions return ResourceSharer(induced_interface, induced_dynamics) end
GF(3) Triads
schema-validation (-1) ⊗ acsets (0) ⊗ oapply-colimit (+1) = 0 ✓ interval-presheaf (-1) ⊗ algebraic-dynamics (0) ⊗ oapply-colimit (+1) = 0 ✓
References
- Libkind "An Algebra of Resource Sharers" arXiv:2007.14442
- AlgebraicJulia/AlgebraicDynamics.jl