home / skills / plurigrid / asi / string-diagram-rewriting-protocol

string-diagram-rewriting-protocol skill

/skills/string-diagram-rewriting-protocol

This skill implements a universal string-diagram rewriting protocol to coordinate compositional, verifiable transformations across skills.

npx playbooks add skill plurigrid/asi --skill string-diagram-rewriting-protocol

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
23.2 KB
---
name: string-diagram-rewriting-protocol
description: Kernel protocol for compositional string diagram rewriting across all skills
source: local
license: UNLICENSED
version: 1.0.0
---

# SKILL: String Diagram Rewriting Protocol

**Trit**: 0 (ERGODIC)
**Domain**: category-theory, rewriting-systems, string-diagrams, meta-protocol
**Role**: Kernel skill connecting 20 rewriting-capable skills into a unified pipeline

## 1. Purpose

This skill defines the **universal rewriting protocol** by which all information streams
and decisions are represented as string diagrams and transformed via categorical rewriting.
It is the missing meta-layer: every other skill in the 5-layer architecture plugs into
this protocol through a standard interface.

## 2. String Diagrams: Syntax

A **string diagram** in a monoidal category (C, ⊗, I) is a planar graph where:

- **Wires** = objects (types) in C
- **Boxes** = morphisms f : A → B
- **Vertical composition** = sequential application (;) read top-to-bottom
- **Horizontal composition** = tensor product (⊗) read left-to-right
- **Cups/caps** = units/counits of duality (when C is compact closed)
- **Crossings** = symmetry σ_{A,B} : A ⊗ B → B ⊗ A (when C is symmetric)

```
     A   B                    A   B
     │   │                    │   │
     ├───┤                    │   │
     │ f │  : A ⊗ B → C      │   │
     ├───┤                    ├───┤
     │   │                    │ g │  : A ⊗ B → C ⊗ D
     │ C │                    ├───┤
     │   │                    │   │
                              C   D

  Sequential:              Tensor:
     A                      A   C
     │                      │   │
   ┌─┴─┐                 ┌─┴─┐ │
   │ f │                 │ f │ │
   └─┬─┘                 └─┬─┘ │
     B                      B   │
     │                      │ ┌─┴─┐
   ┌─┴─┐                   │ │ g │
   │ g │                    │ └─┬─┘
   └─┬─┘                   B   D
     C
   g ∘ f                  f ⊗ g
```

### 2.1 Formal Grammar

```
Diagram  ::= Wire | Box | Seq | Tensor | Id | Swap | Trace
Wire     ::= object in Ob(C)
Box      ::= morphism f : A₁ ⊗ ... ⊗ Aₙ → B₁ ⊗ ... ⊗ Bₘ
Seq      ::= Diagram ; Diagram          (vertical composition)
Tensor   ::= Diagram ⊗ Diagram          (horizontal juxtaposition)
Id       ::= id_A : A → A               (straight wire)
Swap     ::= σ_{A,B} : A ⊗ B → B ⊗ A   (crossing)
Trace    ::= Tr^U(f) : A → B            (feedback loop, f : A ⊗ U → B ⊗ U)
```

### 2.2 Axioms (Coherence Conditions)

Every valid string diagram manipulation must preserve these:

**Monoidal axioms:**
```
(f ⊗ g) ⊗ h = f ⊗ (g ⊗ h)         associativity  (α)
I ⊗ f = f = f ⊗ I                   unitality      (λ, ρ)
(f ; g) ⊗ (h ; k) = (f ⊗ h) ; (g ⊗ k)   interchange law
```

**Symmetric monoidal axioms:**
```
σ_{A,B} ; σ_{B,A} = id_{A⊗B}        involution
σ_{A⊗B,C} = (σ_{A,C} ⊗ id_B) ; (id_C ⊗ σ_{A,B})   hexagon
```

**Traced monoidal axioms** (when applicable):
```
Tr^U(f ⊗ id_U) = f                  vanishing
Tr^U(σ_{A,U}) = id_A                superposing
Tr^{U⊗V}(f) = Tr^U(Tr^V(f))        composition (Joyal-Street-Verity)
```

**Mac Lane coherence theorem**: Every diagram of canonical isomorphisms
(built from α, λ, ρ, σ) commutes. This means string diagram equality =
ambient isotopy of the plane.

## 3. Rewrite Rules: The DPO Framework

A **rewrite rule** is a span in the category of string diagrams:

```
    L ←──l── K ──r──→ R
    │                  │
    m (match)          m* (comatch)
    │                  │
    ▼                  ▼
    G ←────── D ──────→ H
```

Where:
- **L** = left-hand side (pattern to match)
- **K** = interface (what is preserved)
- **R** = right-hand side (replacement)
- **G** = host diagram (before rewrite)
- **H** = result diagram (after rewrite)
- **D** = context (G with L removed = H with R removed)

### 3.1 DPO Conditions

The bottom squares must be **pushouts** in the ambient adhesive category:

1. **Matching**: Find m : L → G (a mono/regular mono)
2. **Gluing condition**: The pushout complement D exists iff:
   - **Dangling condition**: No edge in G\m(L) is incident to a node in m(L)\m(K)
   - **Identification condition**: m is injective on L\K
3. **Pushout construction**: H = D +_K R

### 3.2 Rule Interface

Every skill that provides rewrite rules must implement:

```
RewriteRule = {
  name    : String,
  L       : Diagram,           -- left-hand side
  K       : Diagram,           -- interface
  R       : Diagram,           -- right-hand side
  l       : Morphism(K, L),    -- left leg
  r       : Morphism(K, R),    -- right leg
  NAC     : [Diagram],         -- negative application conditions
  PAC     : [Diagram],         -- positive application conditions
  priority: ℤ,                 -- scheduling priority
  trit    : GF3,               -- which phase: -1 verify, 0 transport, +1 generate
}
```

### 3.3 SPO and SqPO Extensions

| Approach | Pushout type | Cloning | Deletion | Use case |
|----------|-------------|---------|----------|----------|
| DPO      | Double      | No      | Safe     | Default: well-behaved rewriting |
| SPO      | Single      | No      | Greedy   | When dangling edges should vanish |
| SqPO     | Sesqui      | Yes     | Safe     | Duplicating subdiagrams |

**Selection heuristic**: Use DPO unless the rule requires cloning (→ SqPO) or
greedy deletion (→ SPO). The `trit` field guides this:
- `+1` generation rules often need SqPO (create copies)
- `0` transport rules use DPO (structure-preserving)
- `-1` verification rules use DPO with NACs (reject bad patterns)

## 4. Confluence and Termination

### 4.1 Critical Pairs

Two rules r₁, r₂ form a **critical pair** when their left-hand sides overlap:

```
        L₁
       / \
      /   \
     G₁    G ← overlap
      \   /
       \ /
        L₂
```

The overlap is computed as the **pushout** of L₁ ← K → L₂ over their
common sub-diagram K.

**Procedure** (Plump 1993, Ehrig et al. 2006):
1. Enumerate all pairs of rules (rᵢ, rⱼ)
2. For each pair, compute all overlaps via joint surjections
3. Apply rᵢ and rⱼ to each overlap, yielding (H₁, H₂)
4. Check if H₁ and H₂ are **joinable** (rewrite to a common form)

### 4.2 Local Confluence (Newman's Lemma)

**Theorem** (Newman 1942): If a rewriting system is:
- **Terminating** (no infinite reduction sequences), AND
- **Locally confluent** (all critical pairs are joinable)

Then it is **confluent** (all divergences can be resolved).

### 4.3 Termination Orderings

For string diagram rewriting, use a **weighted size measure**:

```
w(d) = Σ_{box b in d} weight(b) + |wires(d)|
```

A rule L → R is **size-decreasing** if w(L) > w(R) for all matches.
Rules that increase size must be controlled by strategies or priorities.

### 4.4 Normal Forms

A diagram d is in **normal form** w.r.t. rule set R if no rule in R applies to d.
The rewriting protocol seeks normal forms in three phases:

```
Phase 1 (+1): GENERATE — expand abbreviations, unfold definitions
Phase 2 (0):  TRANSPORT — apply equational rewrites until fixpoint
Phase 3 (-1): VERIFY — check invariants, flag contradictions
```

## 5. The Five-Layer Architecture

Each layer provides rules to the protocol:

```
Layer 5: WORLDING                          ← decision + feedback
  worlding, glass-bead-game, active-interleave, cybernetic-open-game

Layer 4: DATA & CONCURRENCY               ← state + synchronization
  acsets-algebraic-databases, crdt, propagators

Layer 3: SEMANTICS                         ← meaning + equivalence
  open-games, bisimulation-game, linear-logic

Layer 2: REWRITING ENGINES                 ← rule application
  algebraic-rewriting, homoiconic-rewriting, categorical-rewriting-triad4
  interaction-nets, graph-grafting

Layer 1: FORMALISM                         ← syntax + types
  recursive-string-diagrams, discopy-operads, zx-calculus
  topos-adhesive-rewriting, operadic-composition
```

### 5.1 Inter-Layer Protocol

Information flows **bidirectionally** between layers:

```
Layer N+1                    Layer N
   │                           │
   │  ──── rule request ────→  │   "apply this rewrite"
   │                           │
   │  ←── result diagram ───   │   "here is the rewritten diagram"
   │                           │
   │  ←── critical pair ────   │   "these rules conflict"
   │                           │
   │  ──── strategy hint ───→  │   "prefer this rule ordering"
```

### 5.2 Skill Binding Interface

Each skill binds to the protocol by exporting:

```
SkillBinding = {
  skill_name  : String,
  layer       : 1..5,
  trit        : GF3,
  rules       : [RewriteRule],
  category    : CategorySpec,       -- what ambient category the rules live in
  objects     : [ObjectSpec],        -- wire types this skill introduces
  functors    : [FunctorSpec],       -- translations to/from other skills' categories
}
```

**CategorySpec**:
```
CategorySpec = {
  name        : String,             -- e.g. "FinGraph", "Petri", "ZX"
  monoidal    : Bool,               -- has ⊗?
  symmetric   : Bool,               -- has σ?
  compact     : Bool,               -- has cups/caps?
  traced      : Bool,               -- has Tr?
  adhesive    : Bool,               -- safe DPO?
  enrichment  : Option(String),     -- e.g. "CMon" for linear logic
}
```

## 6. GF(3) Conservation in Rewriting

Every rewrite step must conserve the GF(3) trit sum:

```
trit(L) ≡ trit(R) (mod 3)
```

This is enforced by assigning trits to generators:

| Generator type | Trit | Role |
|---------------|------|------|
| Introduction  | +1   | Create new structure |
| Transportation| 0    | Move/reshape without creating or destroying |
| Elimination   | -1   | Remove/verify/simplify |

**Conservation theorem**: If every rewrite rule has trit(L) ≡ trit(R) mod 3,
then trit is an invariant of the rewriting system. Proof: by induction on
rewrite steps, each step preserves the sum.

### 6.1 Balanced Triads

Three skills form a **balanced triad** when their trits sum to 0:

```
skill_a (+1) + skill_b (0) + skill_c (-1) ≡ 0 (mod 3)
```

The protocol ensures every rewriting pipeline passes through a balanced triad:
1. **Generate** (+1): Produce candidate diagrams
2. **Transport** (0): Apply equational rewrites
3. **Verify** (-1): Check invariants, reject ill-formed results

### 6.2 Layer Trit Assignments

```
Layer 1 (Formalism):
  recursive-string-diagrams  0   operadic-composition       0
  discopy-operads            0   topos-adhesive-rewriting  +1
  zx-calculus               -1

Layer 2 (Rewriting):
  algebraic-rewriting       +1   graph-grafting            -1
  homoiconic-rewriting       0   categorical-rewriting      0
  interaction-nets          -1

Layer 3 (Semantics):
  open-games                +1   linear-logic               0
  bisimulation-game         -1

Layer 4 (Data):
  acsets-algebraic-databases 0   propagators               +1
  crdt                       0

Layer 5 (Worlding):
  worlding                  +1   glass-bead-game            0
  active-interleave          0   cybernetic-open-game       0
```

Each layer sums to 0 (mod 3): the protocol is **globally balanced**.

## 7. The Rewriting Pipeline

### 7.1 Full Pipeline

```
Input Stream ──→ PARSE ──→ DIAGRAM ──→ REWRITE ──→ NORMAL FORM ──→ DECIDE
                  │           │           │              │            │
                  L1          L1          L2+L1          L3+L4       L5
                  │           │           │              │            │
              tokenize    build AST    apply rules    evaluate    commit
              to boxes    to diagram   to fixpoint    semantics   action
```

### 7.2 Rewrite Loop

```python
def rewrite(diagram, rules, strategy="innermost"):
    """Core rewriting loop."""
    while True:
        matches = find_all_matches(diagram, rules)
        if not matches:
            return diagram  # normal form reached

        match = strategy.select(matches)

        # DPO step
        assert gluing_condition(match)
        context = pushout_complement(match)
        diagram = pushout(context, match.rule.R)

        # GF(3) conservation check
        assert trit(diagram) == trit(original) % 3
```

### 7.3 Strategies

| Strategy | Description | When to use |
|----------|-------------|-------------|
| Innermost | Reduce innermost redexes first | Default; mimics call-by-value |
| Outermost | Reduce outermost redexes first | Lazy evaluation; may find NF faster |
| Priority  | Follow rule priorities | When rules have explicit ordering |
| Parallel  | Apply non-overlapping rules simultaneously | Interaction nets; maximum parallelism |
| Adaptive  | Use propagator network to select | When semantic feedback matters |

## 8. Adhesive Categories for String Diagrams

The protocol requires the ambient category to be **adhesive** (or at least
quasi-adhesive) to guarantee well-behaved DPO rewriting.

### 8.1 Adhesive Category Axioms

A category C is **adhesive** if:
1. C has pushouts along monomorphisms
2. C has pullbacks
3. Pushouts along monos are **van Kampen squares**:

```
A van Kampen square is a pushout square:

    A ──→ B
    │      │
    ▼      ▼
    C ──→ D

such that for any commutative cube with this square as bottom face,
if the back faces are pullbacks, then:
  top face is pushout ⟺ front faces are pullbacks
```

### 8.2 Examples of Adhesive Categories

| Category | Adhesive? | String diagrams? | Used by |
|----------|-----------|-------------------|---------|
| **Set** | Yes | No (discrete) | acsets base |
| **Graph** | Yes | Yes (typed) | graph-grafting |
| **C-Set** (presheaves on C) | Yes | Yes | algebraic-rewriting |
| **Petri** | Quasi | Yes (nets) | open-games |
| **Hypergraph** | Yes | Yes (hyper-wires) | operadic-composition |
| **Cospan(FinSet)** | No* | Yes (open systems) | crdt, propagators |

*Cospans are not adhesive but can use AGREE framework (Corradini et al. 2020).

## 9. Connections to Each Skill

### Layer 1: Formalism

**recursive-string-diagrams**: Provides the base `Diagram` type — white trapezoid
as atomic morphism. This skill supplies recursive nesting: diagrams inside boxes.

**discopy-operads**: Python implementation of monoidal categories via DisCoPy.
Supplies `Diagram`, `Box`, `Ty` (type = wire), and free monoidal category construction.

**zx-calculus**: Specialized string diagrams for quantum circuits. Z-spiders (green),
X-spiders (red), Hadamard boxes. The ZX rewrite rules are a complete equational
theory for qubit quantum mechanics (Coecke-Duncan 2011, Backens 2014).

**topos-adhesive-rewriting**: Provides the adhesive category infrastructure.
Van Kampen conditions, incremental query updating, pushout computation.

**operadic-composition**: Colored operads for multi-input composition. Supplies
the `compose_operad` operation for wiring diagrams with multiple ports.

### Layer 2: Rewriting Engines

**algebraic-rewriting**: AlgebraicRewriting.jl — DPO/SPO/SqPO over C-Sets.
Primary computational engine for applying rules. Supplies `rewrite`, `homomorphisms`.

**interaction-nets**: Lafont's optimal reduction. Rules are local (one active pair),
deterministic, and maximally parallel. Three combinators: γ (constructor),
δ (duplicator), ε (eraser).

**homoiconic-rewriting**: Self-modifying rules. Rules can rewrite other rules.
Five-layer architecture for reflective rewriting (cf. Clavel-Meseguer rewriting logic).

**categorical-rewriting-triad4**: Design-phase system using DisCoPy + graph grafting
for world transformation.

**graph-grafting**: Tree/graph operations with GF(3) coloring. Supplies `graft!`,
`prune!`, `transplant!` for structural modification.

### Layer 3: Semantics

**open-games**: Hedges-Ghani compositional game theory. Games as string diagrams
in Para(Optic(C)). Players are boxes, strategies flow through wires.
Supplies Nash equilibrium checking as a semantic invariant.

**bisimulation-game**: Attacker/Defender games for observational equivalence.
Two diagrams are equivalent iff Defender has a winning strategy.
Supplies behavioral equivalence as a semantic relation.

**linear-logic**: Girard's resource-sensitive logic. Provides the type system
for wires: ⊗ (tensor), ⅋ (par), ! (of course), ? (why not), ⊸ (lollipop).
Star-autonomous categories as semantics.

### Layer 4: Data & Concurrency

**acsets-algebraic-databases**: Attributed C-Sets as the data model for diagrams.
Functors C → Set give typed, attributed graphs. Supplies Δ (restriction),
Σ (left Kan), Π (right Kan) data migrations.

**crdt**: Conflict-free replicated data types. Join-semilattice merge for concurrent
diagram edits. Supplies `merge : D × D → D` with commutativity, associativity,
idempotence.

**propagators**: Radul-Sussman constraint propagation. Cells accumulate partial
information about diagrams; propagators enforce constraints bidirectionally.
Supplies the adaptive strategy engine.

### Layer 5: Worlding

**worlding**: Meta-skill for composable world construction. Each "world" is
a rewriting context with its own rule set. Supplies `world-hop` for switching
between rewriting contexts.

**glass-bead-game**: Interdisciplinary synthesis via analogy. Connections between
domains as rewrite rules. Supplies cross-domain translation.

**active-interleave**: Context sampling from multiple information streams.
Supplies the input pipeline: which diagrams to rewrite next.

**cybernetic-open-game**: Agent ↔ Environment feedback loop as open game.
Supplies the decision-making layer: which rewrite to commit.

## 10. Soundness and Completeness

### 10.1 Soundness

A rewriting system R is **sound** w.r.t. an equational theory E if:

```
d₁ →_R d₂  implies  d₁ =_E d₂
```

Every rewrite rule must be derivable from the axioms of the ambient monoidal category.

### 10.2 Completeness

A rewriting system R is **complete** (= convergent) if it is:
1. **Confluent**: d₁ ←* d *→ d₂ implies ∃d₃: d₁ *→ d₃ ←* d₂
2. **Terminating**: No infinite rewrite sequences

**Knuth-Bendix completion**: Given an equational theory E, attempt to generate a
complete rewriting system R by:
1. Orient equations into rules (using a termination ordering)
2. Compute critical pairs
3. Add new rules to resolve non-joinable critical pairs
4. Repeat until no new critical pairs arise (or fail)

### 10.3 Decidability

String diagram equality is decidable for:
- Free symmetric monoidal categories (Joyal-Street 1991)
- ZX-calculus for Clifford circuits (Backens 2014)
- Interaction nets with the 3 combinators (Lafont 1997)

It is undecidable in general (reduces to Post correspondence problem).

## 11. Implementation Sketch

### 11.1 Julia (via AlgebraicRewriting.jl + Catlab.jl)

```julia
using Catlab, AlgebraicRewriting

# Define the wire types
@present WireTheory(FreeSymmetricMonoidalCategory) begin
    A::Ob; B::Ob; C::Ob
    f::Hom(A, B)
    g::Hom(B, C)
end

# Define a rewrite rule: f;g ↦ h (where h = g∘f)
L = @acset Graph begin V=3; E=2; src=[1,2]; tgt=[2,3] end
K = @acset Graph begin V=3; E=0 end
R = @acset Graph begin V=3; E=1; src=[1]; tgt=[3] end

rule = Rule(homomorphism(K, L), homomorphism(K, R))

# Apply to a host graph
G = @acset Graph begin V=5; E=4; src=[1,2,3,4]; tgt=[2,3,4,5] end
H = rewrite(rule, G)
```

### 11.2 Python (via DisCoPy)

```python
from discopy import Ty, Box, Diagram, Functor

# Wire types
A, B, C = Ty('A'), Ty('B'), Ty('C')

# Morphisms (boxes)
f = Box('f', A, B)
g = Box('g', B, C)

# String diagram: sequential composition
d = f >> g  # g ∘ f : A → C

# Rewrite rule: replace f >> g with h
h = Box('h', A, C)
rewritten = d.replace(f >> g, h)
```

### 11.3 Zig (via interaction tensor)

```zig
const Diagram = struct {
    boxes: []Box,
    wires: []Wire,

    pub fn compose(self: Diagram, other: Diagram) Diagram { ... }
    pub fn tensor(self: Diagram, other: Diagram) Diagram { ... }
    pub fn rewrite(self: Diagram, rule: Rule) ?Diagram { ... }

    pub fn trit(self: Diagram) i2 {
        var sum: i32 = 0;
        for (self.boxes) |b| sum += b.trit;
        return @intCast(i2, @mod(sum, 3));
    }
};

const Rule = struct {
    L: Diagram,
    K: Diagram,
    R: Diagram,
    l: Morphism, // K → L
    r: Morphism, // K → R
};
```

## 12. Verification Checklist

For any skill binding to this protocol, verify:

- [ ] **Monoidal**: Does your category have ⊗ and I?
- [ ] **String diagrams**: Can morphisms be drawn as boxes-and-wires?
- [ ] **Adhesive**: Do pushouts along monos exist and are van Kampen?
- [ ] **Rules well-formed**: Is each rule a valid L ← K → R span?
- [ ] **NACs specified**: Are negative application conditions defined?
- [ ] **Confluence**: Are critical pairs joinable?
- [ ] **Termination**: Is there a decreasing measure?
- [ ] **GF(3) conserved**: Does trit(L) ≡ trit(R) mod 3?
- [ ] **Soundness**: Is each rule derivable from equational axioms?
- [ ] **Functors declared**: Are translations to other skills' categories given?

## 13. References

### Foundational

- Joyal, A. & Street, R. (1991). *The geometry of tensor calculus, I.* Advances in Mathematics.
- Selinger, P. (2010). *A survey of graphical languages for monoidal categories.* New Structures for Physics.
- Mac Lane, S. (1963). *Natural associativity and commutativity.* Rice University Studies.

### Rewriting Theory

- Lack, S. & Sobocinski, P. (2004). *Adhesive categories.* FOSSACS.
- Ehrig, H. et al. (2006). *Fundamentals of Algebraic Graph Transformation.* Springer.
- Plump, D. (1993). *Evaluation of functional expressions by hypergraph rewriting.* PhD thesis.
- Corradini, A. et al. (2020). *On the essence of parallel independence for the double-pushout approach.* LNCS.

### String Diagrams

- Coecke, B. & Duncan, R. (2011). *Interacting quantum observables: categorical algebra and diagrammatics.* NJP.
- Backens, M. (2014). *The ZX-calculus is complete for stabilizer quantum mechanics.* NJP.
- Bonchi, F., Sobocinski, P. & Zanasi, F. (2017). *Interacting Hopf algebras.* JPAL.

### Computation

- Lafont, Y. (1990). *Interaction nets.* POPL.
- Radul, A. & Sussman, G.J. (2009). *The art of the propagator.* MIT CSAIL TR.
- Patterson, E. et al. (2022). *Categorical data structures for technical computing.* Compositionality.

### Game Theory

- Hedges, J. (2016). *Towards compositional game theory.* PhD thesis, Oxford.
- Ghani, N. et al. (2018). *Compositional game theory.* LICS.

## SDF Interleaving

### Primary Chapter: 7. Propagators

String diagram rewriting = propagator network where cells are diagrams and
propagators are rewrite rules. The merge operation is confluence.

### GF(3) Balanced Triad

```
sdf (+1) + string-diagram-rewriting-protocol (0) + zx-calculus (-1) = 0 mod 3
```

**Skill Trit**: 0 (ERGODIC — transport/coordination)

### Secondary Chapters

- Ch1: Flexibility through Abstraction — combinators as string diagram generators
- Ch3: Variations on Arithmetic — generic dispatch as rule selection
- Ch4: Pattern Matching — match finding in DPO
- Ch9: Generic Procedures — multi-method = multi-sorted rewriting

---

*"String diagrams are to monoidal categories what commutative diagrams are to categories."*
— Peter Selinger

Overview

This skill implements a kernel protocol for compositional string diagram rewriting across multiple skills. It defines a universal interface, rule format, and pipeline so diverse rewriting engines and domain modules interoperate under a single DPO/SPO/SqPO-aware framework. The protocol enforces GF(3) trit conservation and a three-phase generate/transport/verify workflow.

How this skill works

The protocol represents all information and decisions as string diagrams in a chosen ambient (ideally adhesive) category and exposes a standard RewriteRule schema for matches and replacements. Rewrites are executed using categorical pushout constructions (DPO by default, with SPO or SqPO as extensions when needed), while gluing, dangling and identification conditions are checked to ensure correctness. Rules carry metadata (priority, NACs/PACs, trit) so strategies and inter-layer coordination preserve confluence, termination ordering, and GF(3) conservation.

When to use it

  • Unifying multiple diagrammatic rewriting engines into a single pipeline.
  • Coordinating generate/transport/verify phases across layered systems.
  • Applying categorical DPO-based rewrites where structural correctness matters.
  • Handling rules that require cloning (use SqPO) or greedy deletion (use SPO).
  • Building tooling that must reason about confluence, critical pairs, or termination.

Best practices

  • Prefer DPO for structure-preserving rules; switch to SqPO only for controlled cloning and to SPO for greedy deletion.
  • Assign trits (+1, 0, -1) consistently to rules and skills so the GF(3) invariant holds globally.
  • Design rules to be size-decreasing when possible or restrict size-increasing rules via priorities and strategies.
  • Run critical-pair analysis and local confluence checks before deploying rule sets into production pipelines.
  • Target an adhesive ambient category (e.g., typed graphs, C-sets) to guarantee pushout complements and van Kampen properties.

Example use cases

  • Layered pipeline where a formalism skill supplies diagram syntax, a rewriting engine applies equational laws, and a semantics layer verifies invariants.
  • Integrating a ZX-calculus module (verify phase) with a graph-grafting generator (generate phase) while conserving trit sums.
  • Automatic conflict detection via critical pair enumeration across rule sets from different skills.
  • Adaptive strategy selection: propagator feedback selects which transport rules to apply to reach semantic fixpoints.

FAQ

What ambient categories are supported?

Any adhesive or quasi-adhesive category is supported; common choices are typed graphs, presheaf categories (C-sets), hypergraphs, or other domains with pushouts along monos.

How do I decide between DPO, SPO, and SqPO?

Use DPO by default for safe, non-cloning rewrites. Use SqPO when you need controlled cloning (generation rules). Use SPO when dangling-edge deletion semantics are desired (greedy removal).