eigenslur
arXiv:2026.01234 [math.PR]

Topos-TheoreticProbability

Descent as Epistemic Coherence

Treat uncertainty not as random noise on one big global picture, but as local beliefs that must agree where they overlap.

§0Abstract

Treat uncertainty not as random noise on one big global picture, but as local beliefs that must agree where they overlap; coherence across overlaps is enforced by descent (gluing), and Bayesian updating becomes “make the locals compatible, then glue.”

§1Minimal Background

Sheaf

A way to store data 'locally' on pieces of a space (nodes, regions, time windows) plus restriction maps that say how data looks on overlaps.

Topos

A universe where logic/probability can live. Working in a topos lets 'probability objects' behave functorially (pushforward/pullback) with crisp rules.

Descent

If local pieces agree on overlaps, there exists a unique compatible global section. Epistemically: if agents/sensors agree where they both see, they can be fused globally without contradictions.

§2Why This Reframes Fusion

Classic Fusion

Pick a global model, fit it, then patch residuals.
New Approach

Sheaf Fusion

Pick local models (per sensor/region/time), encode compatibility on overlaps, and solve for globally consistent beliefs. When data disagree, the descent obstruction quantifies “how incoherent” the system is.

§3A Practical Recipe

  • Base space: Choose your cover (e.g., rooms in a house × time windows; or sensor fields of view).
  • Stalks (local data): For each open set, store a belief object (distribution, credal set, Dirichlet parameters, subjective-logic opinion, etc.).
  • Restrictions: Maps that push beliefs to smaller overlaps (marginalize variables, project coordinates, or calibrate units).
  • Compatibility loss: Measure mismatch on overlaps (e.g., KL(P|Q)+KL(Q|P), Wasserstein, or an interval/credal distance).
  • Inference = sheaf gluing: Minimize total incompatibility subject to each node respecting its likelihood/prior. This is the sheaf Laplacian or message-passing analogue; the optimizer returns a glued belief.
  • Bayesian updates: New observation = update the local node, then re-solve the coherence problem (fast incremental solvers are possible).
  • Diagnostics: Large overlap residuals pinpoint bad sensors, drift, or miscalibration; cohomology classes (if you go that far) flag "global contradictions" that no local tweak can fix.

§3.1Concrete Choices That Work

Belief Types

Gaussians (mean/cov)Beta/Dirichlet (counts)Subjective logic opinions (b,d,u,a)

Overlap Loss Functions

  • Gaussian: Symmetric KL or 2-Wasserstein
  • Discrete: Jensen-Shannon
  • Subjective logic: Transform to equivalent Dirichlet, then JS/KL

Solver

Alternating projections / ADMM over overlaps; or build a sheaf Laplacian and solve a normal-equations style system (convex if losses are).

§4Worked Sketch: Gaussian Case

Setup

  • Nodes: (Uᵢ) (e.g., 'Kitchen @ minute k'), each with Pᵢ = N(μᵢ, Σᵢ)
  • Overlap Uᵢ ∩ Uⱼ: Both restrict to common variables via linear maps (Rᵢ, Rⱼ)

ℓᵢⱼ = W₂²(Rᵢ#Pᵢ, Rⱼ#Pⱼ)

(Loss on overlap)

min{Pᵢ} Σᵢ KL(Pᵢ || P̃ᵢ) + λ Σ₍ᵢ,ⱼ₎ ℓᵢⱼ

(Global objective)

where P̃ᵢ is the sensor-updated local posterior. The solution gives glued Pᵢ*; take any global section if needed.

§4.1Connection to Epistemic Transport

  • Transport: Move beliefs between contexts via restriction/pushforward; cost = your transport metric (Wasserstein/KL).
  • Epistemic: Beliefs may be second-order (uncertainty about parameters); encode as richer stalks (credal sets/intervals, or hyperpriors).
  • Objective: Literally optimal transport across overlaps + data terms; descent enforces that the transported beliefs agree.

§4.2Implementation Notes (Python)

sheaf_fusion.py
python
# Represent the cover and restrictions (graph or poset)
cover = build_cover(rooms, time_windows)

# Pick a belief carrier
# NumPy/SciPy for Gaussians; Dirichlet for discrete
beliefs = {node: GaussianBelief(mu, cov) for node in cover}

# Build overlap list with restriction matrices
overlaps = compute_overlaps(cover)
restrictions = {(i,j): linear_restriction_map(i, j)
                for (i,j) in overlaps}

# Solver: ADMM over overlaps
def sheaf_glue(beliefs, overlaps, restrictions, lambda_reg):
    while not converged:
        # Push to overlaps
        for (i, j) in overlaps:
            Ri, Rj = restrictions[(i,j)]
            mismatch = compute_wasserstein(Ri @ beliefs[i],
                                           Rj @ beliefs[j])
        # Take proximal/gradient steps
        beliefs = update_beliefs(beliefs, mismatch, lambda_reg)
    return beliefs

§5Where This Shines

Heterogeneous Sensors

Different units, frames, modalities → encode conversions in restriction maps. The sheaf structure naturally handles the translation.

Partial Observability

Overlaps are small but sufficient to glue. Even with limited shared context, coherent global beliefs emerge.

Drift Detection

Rising cohomology/residuals signal structural inconsistency. The framework provides built-in diagnostics for "something is wrong."

§6Quick Starter Roadmap

v0

Gaussian Sheaf Fusion

Room-by-room temp/pressure network; symmetric KL on overlaps; ADMM solver.

v1

Subjective Logic Bridge

Subjective-logic to Dirichlet bridge; JS overlap; outlier-robust penalties.

v2

Wasserstein Transport

Wasserstein-regularized transport + topology-aware diagnostics (flag loops with persistent residuals).

v3

Streaming Updates

Streaming updates with incremental gluing; per-edge health scores for monitoring.