Chapters · Chapter 11

Holonomy: What the Loop Remembers

Part IV — What the Loop Remembers · seven builds, seven receipts

These are loop-walking experiments. You will stand up parallel transport, watch its carry come home, and instrument the five places the chapter named where the not quite fires — flat_transport, local_holonomy, compute_fiber_holonomy, holonomy_debt, shard_holonomy_around_loop, and the HolonomyLedger. The receipt class to aim for is the kind printed in this chapter: a verbatim block with a load-bearing scalar and a file:line anchor underneath it.

Run it live — GQL console

Point at the public read-only instance (no key needed) or your own engine (start it with GIGI_CORS_ORIGIN=* for browser access — dev only).

E11.1Reproduce the Foucault floor

Build

Stand up flat_transport at src/geometry/transport.rs:227 twice on the same unit-time path — once with bias = None and once with bias = Some(B) for a constant 2-form at \(b = 1.5\) — and diff the two returned receipts side by side.

Receipt

A printed pair whose bias = None row matches BLD-CH11-FLAT-TRANSPORT-CLASSICAL exactly (holonomy_norm = 0.000e0, energy_drift = 0.000e0) and whose Some(B) row matches BLD-CH11-FLAT-TRANSPORT-MAGNETIC to four figures (holonomy_norm \(\approx 1.469 \times 10^{-5}\), energy_drift \(< 10^{-9}\)).

Bonus

Sweep \(b \in \{0.5, 1.0, 1.5, 2.0, 3.0\}\) at fixed dt and plot holonomy_norm as a function of \(b\); the slope is the discretizer's confession about how it earned the zero in the classical case.

E11.2Instrument the windowed proprioception channel

Build

Fire local_holonomy at src/curvature.rs:906 along a 1024-step random walk on \(SO(3)\), scraping (defect, coherence) at every step into a CSV and plotting the coherence trace against a moving-average baseline.

Receipt

A trace whose endpoints reproduce BLD-CH11-LOCAL-HOLONOMY-IDENTITY at the laminar floor (defect = 0, coherence = 1) and BLD-CH11-LOCAL-HOLONOMY-MAXIMUM at the turbulent ceiling (defect \(= 2\sqrt{3} = 3.46410\ldots\), coherence = 0), with the running coherence never exceeding \(1\) or falling below \(0\).

Bonus

Conjugate every \(R_t\) by a fixed orthogonal \(Q\) (a 50-degree rotation, the same gauge BLD-CH11-LOCAL-HOLONOMY-GAUGE uses) and confirm the conjugated trace matches the baseline to within \(1.110 \times 10^{-16}\) at every sample.

E11.3Stress the per-axis affine fix

Build

Drive compute_fiber_holonomy at src/bin/gigi_stream.rs:12411 with 100 random affine gauges of the form \((x, y) \mapsto (a_x x + b_x,\, a_y y + b_y)\) with \(a_x \ne a_y\) — the per-axis-asymmetric family that motivated the v0.3.1 corrigendum — and record max \(|\text{deficit} - \text{encrypted}|\) mod \(2\pi\) over the sweep.

Receipt

A log line whose max distance lives six orders under the \(10^{-9}\) tolerance contracted in BLD-CH11-GAUGE-INVARIANCE-AFFINE, on the order of \(8.882 \times 10^{-16}\), with pass = true reported for all 100 gauges.

Bonus

Temporarily revert the centroid normalization to a single uniform scale and rerun; produce the failure receipt the v0.3.1 fix was written to retire (some gauge should now exceed the \(10^{-9}\) envelope), then restore the fix.

E11.4Forge a tamper and watch the telescope fire

Build

Open a HolonomyLedger at src/ledger.rs, append the five deltas \([0.1, 0.2, -0.05, 0.3, 0.15]\) from BLD-CH11-LEDGER-TAMPER, recompute the running sum, then call telescope_check(baseline, expected) twice — once honest, once with an extra \(0.05\) injected into the expected recompute.

Receipt

Two boolean returns from telescope_check that match the receipt verbatim: true on the honest sum of \(0.7000000000000001\), false on the tampered \(0.7500000000000001\). The tests/ledger_v0_3.rs:111 fixture is the contract.

Bonus

Sweep the injected lift from \(10^{-12}\) to \(10^{-3}\) in decades and find the smallest lift the current tolerance constant still catches; report it as the ledger's effective forgery floor.

E11.5Refute a Chern citation

Build

Call holonomy_debt at src/curvature.rs:98 twice — once on a four-winding loop at \(B = 0.5\) (the BLD-CH11-HOLONOMY-DEBT-QUANTIZED setup) and once on a loop whose \(\oint B\) lands at \(2\pi(e - 1)\) (the BLD-CH11-HOLONOMY-DEBT-CONTINUOUS setup) — and gate a stub cite_davis_l72(&debt) function on the returned variant.

Receipt

A console transcript showing Quantized(1) licensing the call and Continuous(1.71828…) refusing it, with the refusal pointing at the comment block at src/curvature.rs:60-63. The numeric winding scalar must reproduce \(1.71828182845904509080\) exactly.

Bonus

Walk the loop integral from \(2\pi\) to \(2\pi(1 + 10^{-7})\) and find the exact integrality tolerance at which the verdict flips from Quantized to Continuous; this is the citation gate's hysteresis edge.

E11.6Wire the M\"obius detector into your atlas

Build

Take examples/sharding_penguins.rs:223-253 and add a third chart whose transition pair into the existing two is a second reflection — two half-twists, not one — then call shard_holonomy_around_loop at src/sharded/execution.rs:410 on a closed walk that crosses both reflection boundaries.

Receipt

A printed \(H\) matrix with \(\det(H) = +1\) and orientation_flipped = false — the two half-twists composing back to orientable, in contrast to BLD-CH11-MOBIUS-MONODROMY's \(\det = -1\) on a single reflection.

Bonus

Add a fourth chart and a third reflection; confirm \(\det(H) = -1\) returns, and persuade yourself the determinant is reading the parity of the reflection count, not the count itself.

E11.7Benchmark the WISH refuse-tag

Build

Construct a WISH call whose accumulated holonomy along the candidate path crosses WishConfig.max_accumulated_holonomy = 0.5 and one whose path stays below it, then scrape the verdict and blocked_by fields from both responses.

Receipt

Two verdict payloads — one returning a row, one returning unreachable with blocked_by = "holonomy" matching the WishBlockReason::Holonomy fixture at tests/wish_wire.rs:146. The scalar that fired the block must agree with the row-response local_holonomy at src/curvature.rs:906 on the same path.

Bonus

Sweep the threshold from \(0.1\) to \(1.0\) in steps of \(0.05\) and plot the refusal rate on a fixed corpus of 1000 wishes; the curve is the trust envelope's own characteristic.

← Chapter 10 exercisesChapter 12 exercises →