coequalizers
Quotient redundant skill paths via coequalizers, preserving GF(3) conservation
When & Why to Use This Skill
The Coequalizers skill is an advanced architectural component designed to optimize AI agent workflows by identifying and merging redundant skill paths. Leveraging category-theoretic principles like colimits and bisimulation, it ensures behavioral equivalence across agentic processes, reduces computational overhead through quotienting, and maintains system integrity via GF(3) conservation laws. It is essential for developers building complex, multi-agent systems that require rigorous synchronization and efficiency.
Use Cases
- Redundancy Elimination: Automatically detect and merge overlapping logic paths in complex agent workflows to minimize token consumption and execution latency.
- Cross-Agent Skill Synchronization: Use MCP integration to maintain behavioral consistency across different AI agents performing equivalent tasks in a distributed environment.
- Structural Skill Composition: Glue disparate agent capabilities together using pushout constructions, ensuring that shared interfaces are correctly identified and unified.
- Behavioral Equivalence Testing: Verify that new skill versions or alternative tool paths produce identical outcomes using bisimulation-game techniques.
- Incremental System Updates: Apply adhesive rewriting to update agent knowledge bases and skill sets without breaking existing functional dependencies.
| name | coequalizers |
|---|---|
| description | Quotient redundant skill paths via coequalizers, preserving GF(3) conservation |
| version | 1.0.0 |
| trit | 0 |
Coequalizers Skill
Quotient redundant skill paths via categorical coequalizers
Version: 1.0.0
Trit: 0 (ERGODIC - coordinates equivalences)
Domain: category-theory, skill-composition, colimits, behavioral-equivalence
Overview
The coequalizers skill provides:
- Behavioral equivalence checking via bisimulation (from temporal-coalgebra)
- Parallel morphism quotienting via coequalizers (colimits)
- Skill overlap detection and gluing (from oapply-colimit pushouts)
- GF(3) conservation in quotient spaces
- MCP integration for cross-agent skill synchronization
Core Concept
What Are Coequalizers?
A coequalizer is the colimit of two parallel morphisms:
X ──f──→ Y
│ g │
└────────→ q
↓
Q (coequalizer)
Universal property: q ∘ f = q ∘ g
In Sets: Q = Y / ~ where ~ is the smallest equivalence relation such that f(x) ~ g(x) for all x ∈ X.
For skills: If two skill paths produce behaviorally equivalent outputs, the coequalizer gives the canonical quotient.
Key Patterns from asi Repository
1. oapply-colimit: Pushout = Coproduct + Coequalizer
From /skills/oapply-colimit/SKILL.md:
function oapply(d::UndirectedWiringDiagram, xs::Vector{ResourceSharer})
# Step 1: Coproduct of state spaces
S = coproduct((FinSet ∘ nstates).(xs))
# Step 2: Pushout identifies shared variables via COEQUALIZER
S′ = pushout(portmap, junctions) # ← Uses coequalizer internally
# Step 3: Induced dynamics sum at junctions
return ResourceSharer(induced_interface, induced_dynamics)
end
Key insight: Pushouts decompose as coproduct + coequalizer. This is how skills with shared interfaces are glued together.
2. Bisimulation-game: Behavioral Equivalence
From /skills/bisimulation-game/SKILL.md:
def bisimilar(skill₁, skill₂, input, depth=10):
"""
Recursively check if skills produce same observations.
Two skills are bisimilar if:
- They produce same immediate output
- Their continuations are pairwise bisimilar
"""
obs₁ = observe(skill₁, input)
obs₂ = observe(skill₂, input)
if obs₁ != obs₂:
return False
# Recursive check on continuations
if depth > 0:
for (next₁, inp₁), (next₂, inp₂) in zip(
skill₁.continuations(input),
skill₂.continuations(input)
):
if not bisimilar(next₁, next₂, inp₁, depth-1):
return False
return True
Application: Use bisimulation to establish equivalence relation ~ before applying coequalizer.
3. Adhesive Rewriting: Incremental Query Updating
From /skills/topos-adhesive-rewriting/SKILL.md:
# Decomposition: Q ≅ Q_G +_{Q_L} Q_R
# This IS a coequalizer construction!
function quotient_system(system::SkillSystem, equivalences)
# Build parallel morphisms from equivalence pairs
equiv_indices = parts(system, :Equivalence)
# Compute coequalizer (built into Catlab)
quotient = coequalizer(system, equiv_indices)
# Verify GF(3) conservation
@assert verify_gf3_conservation(quotient)
return quotient
end
Key: Adhesive categories (like C-Sets) have well-behaved coequalizers for incremental updates.
4. Browser-history-acset: Path Equivalence
From /skills/browser-history-acset/path_equivalence_test.jl:
# Path composition via subpart chains
@assert subpart(acs, subpart(acs, 1, :url_of), :domain_of) == 1
# Multiple visit paths may lead to same outcome
# Coequalizer identifies equivalent paths
Application: Navigation paths through skill graphs that produce same results should be identified.
5. Sheaves on Ordered Locale: Directional Restrictions
From /skills/ordered-locale/sheaves.py:
def gluing(cover: List[FrozenSet], family: Dict[FrozenSet, T]) -> Optional[T]:
"""
Glue a compatible family over a cover.
This is the sheaf condition - dual to coequalizer.
"""
# Check compatibility on overlaps
for U_i, U_j in pairs(cover):
overlap = U_i & U_j
if overlap:
res_i = restrict(U_i, overlap, family[U_i])
res_j = restrict(U_j, overlap, family[U_j])
if res_i != res_j:
return None # Incompatible family
# Glue: coequalizer of restrictions
return reduce(lambda a, b: a | b, family.values(), frozenset())
Key: Sheaf gluing IS the dual of coequalizer. Overlapping skill contexts must agree.
6. IrreversibleMorphisms: Lossy Transformations
From /skills/compositional-acset-comparison/IrreversibleMorphisms.jl:
# Irreversible morphisms: information loss
const MORPHISM_CLASSIFICATION = Dict(
:parent_manifest => :irreversible, # Append-only chain
:source_column => :irreversible, # Lossy embedding
# ...
)
# Coequalizers preserve irreversibility classification
# If f, g both irreversible, coeq(f,g) is irreversible
Application: Track information loss through quotients. GF(3) trit sum must be preserved.
Implementation Strategy
Schema: Skills with Equivalences
using Catlab.CategoricalAlgebra
using AlgebraicRewriting
@present SchSkillCoequalizer(FreeSchema) begin
Skill::Ob
Application::Ob
Equivalence::Ob
app_src::Hom(Application, Skill)
app_tgt::Hom(Application, Skill)
equiv_app1::Hom(Equivalence, Application)
equiv_app2::Hom(Equivalence, Application)
Trit::AttrType
Behavior::AttrType
skill_trit::Attr(Skill, Trit)
app_behavior::Attr(Application, Behavior)
end
@acset_type SkillSystem(SchSkillCoequalizer,
index=[:app_src, :app_tgt, :equiv_app1, :equiv_app2])
GF(3) Integration
Trit Assignment
- Coequalizers have trit = 0 (ERGODIC)
- They coordinate between validators (-1) and generators (+1)
- Preserve trit sums: if inputs sum to 0 mod 3, output preserves this
Synergistic Triads
bisimulation-game (-1) ⊗ coequalizers (0) ⊗ oapply-colimit (+1) = 0 ✓
temporal-coalgebra (-1) ⊗ coequalizers (0) ⊗ topos-adhesive (+1) = 0 ✓
browser-history-acset (-1) ⊗ coequalizers (0) ⊗ ordered-locale (sheaves) (+1) = 0 ✓
Commands
just coequalizer-find SKILLS... # Find equivalences among skills
just coequalizer-quotient SYSTEM # Compute quotient
just coequalizer-verify GF3 # Verify GF(3) conservation
just coequalizer-disperse AGENTS... # Sync across agents
just coequalizer-pushout SKILL1 SKILL2 # Compose with overlap
References
From asi Repository
oapply-colimit- Pushout = coproduct + coequalizerbisimulation-game- Behavioral equivalence testingtopos-adhesive-rewriting- Incremental query updating via coequalizersbrowser-history-acset- Path equivalence in ACSetsordered-locale(sheaves.py) - Gluing as dual of coequalizercompositional-acset-comparison(IrreversibleMorphisms.jl) - Lossy morphisms
Papers
- Lack & Sobociński, "Adhesive and Quasiadhesive Categories" (RAIRO 2005)
- Patterson et al., "Categorical Data Structures for Technical Computing" (Compositionality 2022)
- Brown, "Incremental Query Updating in Adhesive Categories" (Topos Institute 2025)
Web Resources
Related Skills
bisimulation-game(-1) - Behavioral equivalenceoapply-colimit(+1) - Pushout compositiontopos-adhesive-rewriting(+1) - Incremental updatestemporal-coalgebra(-1) - Coalgebraic bisimulationordered-locale(0) - Sheaf gluing
Skill Name: coequalizers
Type: Category-Theoretic Skill Composition
Trit: 0 (ERGODIC - coordinates equivalences)
GF(3): Conserved via triadic composition