ASI skill integrating polynomial functors, free monad/cofree comonad module action, operadic decomposition, and open games for compositional intelligence.
/plugin marketplace add plurigrid/asi/plugin install plurigrid-asi-skills@plurigrid/asiThis skill inherits all available tools. When active, it can use any tool Claude has access to.
"Pattern runs on matter: The free monad monad as a module over the cofree comonad comonad" — Libkind & Spivak (ACT 2024)
A polynomial functor $p: \text{Set} \to \text{Set}$ is a sum of representables:
$$p \cong \sum_{i \in p(1)} y^{p[i]}$$
Where:
A lens $f: p \to q$ is a pair $(f_1, f^\sharp)$:
$$f_1: p(1) \to q(1) \quad \text{(on-positions)}$$ $$f^\sharp_i: q[f_1(i)] \to p[i] \quad \text{(on-directions, contravariant)}$$
$$\text{Poly}(p, q) \cong \prod_{i \in p(1)} \sum_{j \in q(1)} p[i]^{q[j]}$$
$$p \triangleleft q \cong \sum_{i \in p(1)} \sum_{\bar{j}: p[i] \to q(1)} y^{\sum_{a \in p[i]} q[\bar{j}(a)]}$$
Interpretation: Substitute $q$ into each "hole" of $p$.
$$p \otimes q \cong \sum_{i \in p(1)} \sum_{j \in q(1)} y^{p[i] \times q[j]}$$
Interpretation: Independent parallel execution.
$$p \times q \cong \sum_{i \in p(1)} \sum_{j \in q(1)} y^{p[i] + q[j]}$$
The carrier $t_p$ of the cofree comonoid on $p$:
$$t_p = \lim \left( 1 \xleftarrow{!} p \triangleleft 1 \xleftarrow{p \triangleleft !} p^{\triangleleft 2} \triangleleft 1 \leftarrow \cdots \right)$$
$$t_p \cong \sum_{T \in \text{tree}_p} y^{\text{vtx}(T)}$$
$$\Xi_{p,q} : \mathfrak{m}p \otimes \mathfrak{c}q \to \mathfrak{m}(p \otimes q)$$
Where:
Examples:
| Pattern | Matter | Runs On |
|---|---|---|
| Interview script | Person | Interview |
| Program | OS | Execution |
| Voting scheme | Voters | Election |
| Game rules | Players | Game |
| Musical score | Performer | Performance |
$$f^{upd}: A \times S \to S \quad \text{(update)}$$ $$f^{rdt}: S \to B \quad \text{(readout)}$$
$$f^{dyn}: A \times S \to TS \quad \text{(dynamics: } \dot{s} = f^{dyn}(a, s) \text{)}$$ $$f^{rdt}: S \to B \quad \text{(readout)}$$
For $\phi: X \to Y$: $$\phi^{in}: X^{in} \to X^{out} + Y^{in}$$ $$\phi^{out}: Y^{out} \to X^{out}$$
$$\bar{f}^{upd}(y, s) := f^{upd}(\phi^{in}(y, f^{rdt}(s)), s)$$ $$\bar{f}^{rdt}(s) := \phi^{out}(f^{rdt}(s))$$
$$d: \int G \to \mathbf{K}$$
Where $\int G$ is the Grothendieck construction.
$$O\left(\max_{x \in VG} \alpha(dx) + \kappa^{|S|} \kappa^2\right) |EG|$$
Where:
For tree-shaped decompositions ($|S| = 0$): $$O(\kappa^2) |EG|$$
$$H^n(X, \mathcal{U}, F) := \ker(\delta^n) / \text{im}(\delta^{n-1})$$
$$FX \neq \emptyset \iff H^0(X, \mathfrak{M}F) = 0$$
Interpretation: A problem has a solution iff the zeroth cohomology of its model-collecting presheaf is trivial.
While Bumpus uses $\mathbb{Z}[S]$ (free Abelianization), the methods generalize to:
A spined category $(\mathcal{C}, \Omega, \mathfrak{P})$:
For span $G \xleftarrow{g} \Omega_n \xrightarrow{h} H$: $$G \xrightarrow{\mathfrak{P}(g,h)_g} \mathfrak{P}(g,h) \xleftarrow{\mathfrak{P}(g,h)_h} H$$
Smallest set $S$ where:
$$\Delta[X] = \min { \text{width}(\delta) \mid \delta: X \hookrightarrow H \text{ pseudo-chordal}}$$
ParaLens p q x s y r = (get, put)
get : p → x → y -- forward
put : p → x → r → (s, q) -- backward
The 6 wires:
x = observed states (from past)y = output states (to future)r = utilities received (from future)s = back-propagated utilities (to past)p = strategies (parameters)q = rewards (co-parameters)(MkLens get put) >>>> (MkLens get' put') =
MkLens
(\(p, p') x -> get' p' (get p x)) -- compose forward
(\(p, p') x t ->
let (r, q') = put' p' (get p x) t -- future first
(s, q) = put p x r -- then past
in (s, (q, q')))
Key insight: Backward pass = constraint propagation / abduction.
$$E_G(x, k) := \varepsilon_G(x; A_G; k)$$
Where $\varepsilon = \bigotimes_{p \in P} \varepsilon_p$ is the joint selection function.
| Operad | Trit | Description |
|---|---|---|
| Little Disks (E₂) | +1 | Non-overlapping disk configurations |
| Cubes (E_∞) | -1 | Infinite-dimensional parallelism |
| Cactus | -1 | Trees with cycles (self-modification) |
| Thread | 0 | Linear continuations + DuckDB |
| Gravity | -1 | Moduli M_{0,n} with involutions |
| Modular | +1 | All genera, runtime polymorphism |
| Swiss-Cheese | +1 | Open/closed for forward-only learning |
GF(3) Total: $(+1) + (-1) + (-1) + (0) + (-1) + (+1) + (+1) = 0$ ✓
| Operad | Trit | Type |
|---|---|---|
| Directed (⊳) | +1 | Output → Input wiring |
| Undirected (○) | -1 | Interface matching via pullback |
| Machines | 0 | State machines with dynamics |
| Dynamical | +1 | Open ODEs |
From "Road to General Intelligence":
General intelligence must:
$$X_i = f_i(\text{PA}_i, U_i), \quad i = 1, \ldots, n$$
Where:
| Component | Role |
|---|---|
| get (forward) | Induction / forward inference |
| put (backward) | Abduction / constraint propagation |
| Selection function | Attention mechanism |
| Equilibrium checking | Reflective reasoning |
# Run polynomial functor demo
just poly-functor-demo
# Test free monad / cofree comonad pairing
just monad-test
# Run DiscoHy operads
python3 src/operads/relational_operad_interleave.py
# Run Libkind-Spivak dynamical systems
python3 src/operads/libkind_spivak_dynamics.py
# Check GF(3) conservation
just gf3-verify
lib/
├── free_monad.rb # Pattern (decision trees)
├── cofree_comonad.rb # Matter (behavior trees)
├── runs_on.rb # Module action implementation
└── discohy.hy # Hy operad implementations
src/music_topos/
├── free_monad.clj # Clojure Pattern
├── cofree_comonad.clj # Clojure Matter
├── runs_on.clj # Module action
└── operads/
├── relational_operad_interleave.py
├── libkind_spivak_dynamics.py
└── infinity_operads.py
scripts/
├── discohy_operad_1_little_disks.py
├── discohy_operad_2_cubes.py
├── discohy_operad_3_cactus.py
├── discohy_operad_4_thread.py
├── discohy_operad_5_gravity.lisp
├── discohy_operad_6_modular.bb
└── discohy_operad_7_swiss_cheese.py
acsets — Algebraic databases (schema category)discohy-streams — 7 operad variants with GF(3) balancetriad-interleave — Balanced ternary schedulingworld-hopping — Badiou triangle navigationopen-games — Bidirectional transformations