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.md
source 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

ModeTypeGluingExample
UndirectedResourceSharerPushout (shared state)Lotka-Volterra
DirectedMachineWiring (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