← Brain Candy

Evolutionary Techniques on Graphs: Concept Mating via the Rho Calculus

Lucius Gregory Meredith — F1R3FLY Research & Development — March 2026

Abstract: Instead of concept blending—the category-theoretic pushout that merges two mental spaces into one—we propose concept mating: a biologically inspired operation that crosses the port structure of two graph vertices to produce two offspring, each inheriting half of each parent’s relational profile. The construction composes cleanly, encodes directly in rholang, and connects to Connes–Kreimer Hopf algebras when iterated.

Downloads

Key Ideas

Vertex mating ⊕

Given two parent vertices M and F with port sets (sources and targets), the offspring D gets M’s inputs and F’s outputs, while S gets F’s inputs and M’s outputs. The symmetry is exact: swapping parents swaps children.

Agentic encoding in rholang

Each vertex becomes a rholang process: V(s⃗, t⃗) = for(y₁ <- s₁ & … & yₘ <- sₘ){ t₁!([y₁,…,yₘ]) | … | tₙ!([y₁,…,yₘ]) | V(s⃗,t⃗) }. Mating ⊕ is then just parallel composition |. A population of agents is an agent.

Local evolution via gendered vertices

Female vertices pattern-match on messages carrying sender vertex codes; male vertices tag their outputs with their own code. Sex is determined by the shape of incoming data—à la Le Guin’s Left Hand of Darkness. This makes generational change entirely local: agents don’t know the graph, only their neighbors.

Graph-level crossover requires homomorphisms

Naive crossover G(V₁,E₂)|G(V₂,E₁) fails because edges can’t find their vertices. A pair of graph homomorphisms H₁:G₁→G₂ and H₂:G₂→G₁ solves this—the whole graph becomes more than the sum of its parts.

Iterated evolution → small-world + Hopf algebras

Without constraints the agentic encoding generates infinite iterations. The limit approaches a graph with the small-world property surrounded by a cloud of isolated points. The vertex mating operation appears to produce a Hopf algebra associated with the Connes–Kreimer renormalization group.

The Core Construction

The expand operation takes a graph G and two distinguished vertices M and F:

expand(G, M, F, D, S) ports_in(D) = ports_in(M) ports_out(D) = ports_out(F) ports_in(S) = ports_in(F) ports_out(S) = ports_out(M) V(s⃗, t⃗) ⊕ V(s⃗', t⃗') = V(s⃗, t⃗') | V(s⃗', t⃗)

The duality is clean: swapping M↔F simultaneously swaps D↔S. The operation composes under tensor product and respects the reflective name structure of the rho calculus.

graph expansion concept mating rholang rho calculus Hopf algebras small-world graphs evolutionary programming