skills/plurigrid/asi/bumpus-narratives

bumpus-narratives

SKILL.md

Bumpus Narratives Skill

Trit: 0 (ERGODIC) - Mediates between verification (-1) and generation (+1)

Sheaves on time categories for compositional reasoning about temporal data.

Source Papers

  • Bumpus, B.M. et al. "Unified Framework for Time-Varying Data" (arXiv:2402.00206)
  • Bumpus, B.M. "Compositional Algorithms on Compositional Data" (arXiv:2302.05575)
  • Bumpus, B.M. "Structured Decompositions" (arXiv:2207.06091)
  • Bumpus, B.M. "Spined Categories" (arXiv:2104.01841)
  • Bumpus, B.M. "Cohomological Obstructions" (arXiv:2408.15184)

Core Concepts

1. Narratives as Sheaves

Temporal data = sheaf F: I_N → D where:

  • I_N = time category (intervals [a,b] with inclusions)
  • D = data category with pullbacks
  • Sheaf condition: F([a,b]) = F([a,p]) ×_{F([p,p])} F([p,b])
F₁³ := {(x,y) ∈ F₁² × F₂³ | f₁,₂²(x) = f₂,₃²(y)}

2. Adhesion Filter (FPT Algorithm)

For tree decompositions of width w:

  • Complexity: O(f(w) · n) instead of O(2^n)
  • Runs on bag boundaries via pullback checking
function adhesion_filter(sheaf::Sheaf, decomp::TreeDecomp)
    for (bag1, bag2) in edges(decomp)
        adhesion = bag1 ∩ bag2
        if !is_pullback(sheaf, bag1, bag2, adhesion)
            return false
        end
    end
    true
end

3. Cohomological Obstructions

H⁰ detects local-to-global failure:

  • H⁰(F) ≠ 0 → obstruction to gluing
  • Čech complex on cover of intervals

Integration with Gay.jl

Color-Coded Narratives

Each interval [i,j] gets deterministic color:

color([i,j]) = gay_color(BUMPUS_SEED  hash(i,j))

GF(3) Conservation

Narrative operations preserve triadic balance:

  • Restriction (-1): F([a,b]) → F([a,a])
  • Extension (+1): F([a,a]) → F([a,b])
  • Pullback (0): F₁³ := fibered product

Diagram Catalog

20 extracted diagrams from Bumpus papers:

  • 17 commutative diagrams
  • 2 functor diagrams
  • 1 graph diagram

Location: papers/diagrams/images/bumpus-*.jpg

Triadic Composition

structured-decomp (-1) ⊗ bumpus-narratives (0) ⊗ world-hopping (+1) = 0 ✓
sheaf-cohomology (-1) ⊗ bumpus-narratives (0) ⊗ triad-interleave (+1) = 0 ✓
persistent-homology (-1) ⊗ bumpus-narratives (0) ⊗ gay-mcp (+1) = 0 ✓

Example: Ice Cream Companies

From the Venice ice cream example (Diagram 1):

Time 1: {a₁, a₂, b, c}  →  Time 2: {a*, b, c}  →  Time 3: {a*, b}

The sheaf tracks:

  • Company mergers (a₁, a₂ → a*)
  • Company disappearance (c)
  • Supplier relationships (graph morphisms)

API

using BumpusNarratives

# Create narrative
n = Narrative(TimeCategory(1:10), FinSet)

# Add snapshots
add_snapshot!(n, 1, Set([:a, :b, :c]))
add_snapshot!(n, 2, Set([:a, :b]))

# Check sheaf condition
is_sheaf(n)  # true if pullbacks exist

# Compute H⁰ obstruction
obstruction = cech_H0(n)

References

  1. Bumpus et al. - Time-varying data via sheaves on time categories
  2. Ghrist - Elementary Applied Topology (Čech cohomology)
  3. Fairbanks - AlgebraicJulia ecosystem for ACSets
  4. Gay.jl - Deterministic color chains for diagram coloring
Weekly Installs
7
Repository
plurigrid/asi
GitHub Stars
8
First Seen
Jan 29, 2026
Installed on
mcpjam7
roo7
kilo7
claude-code7
junie7
windsurf7