SigmaLayer/PointerWeights: the selector-modulated weight field and the arena propagator (brick 2b) #
Category: dynamical measurement — the smooth-Hamiltonian witness route
(specs/pointer-witness-plan.md brick 2, weight-field half).
The weight of outcome j at the ontic point x = (p, θ, ·) is a circle-intrinsic
trapezoid: with r = c.rate p the context rates at the base point (the ContextField /
globalBasin discipline — no preparation anywhere), mⱼ the midpoint of the j-th CDF cell
and rⱼ/2 its half-width,
pointerWeights c ε x j = clamp₀¹((rⱼ/2 − dist(θ₁, mⱼ))/ε).
Because the construction runs through dist on AddCircle and the (continuous) coercion
ℝ → AddCircle — never through a fundamental-domain lift — joint continuity in the ontic
point is a plain composition (continuous_pointerWeights), with no seam-gluing at the
wrap point. The weight is 1 on the ε-shrunk cell arc (pointerWeights_eq_one), 0 off
the open cell arc (pointerWeights_eq_zero), and in [0,1] always.
The arena propagator fires the brick-2a coupling with these weights:
pointerEvolve c ε (x, q) = (x, couplingUU (pointerWeights c ε x) • q).
Headlines:
- ★
continuous_pointerEvolve— the propagator is continuous on the whole arena: the theorem the piecewise witness provably cannot have (shearEvolve_not_continuous— a clopen-partition contradiction on the connectedKSigma). Proof: descend through the open quotient mapid × mk'(IsOpenQuotientMap.prodMap), where the lifted map ismk ∘ (matrix–vector application)of entrywise-continuous data (continuous_couplingU_entrycomposed with the weight field). pointerEvolve_measurePreserving— Liouville preservation on the arena, as a skew product (MeasurePreserving.skew_product): the sector coordinate is conserved and every pointer slice acts by an FS-preserving unitary.pointerEvolve_pure— on theε-shrunk cell of outcomej(stated as the two distance hypotheses), the weights are the pure vectorPi.single j 1and the propagator is exactly the brick-1 quarter rotation in planej— the seed of the landing theorem.
⚠️ Honest scope. No record landing, Born accounting, or protocol packaging yet — that is
bricks 3–4. The two distance hypotheses of pointerEvolve_pure (in the shrunk arc of cell
j; outside every other open arc) are hypotheses here: the bridging geometry — shrunk
arcs have those distance properties and carry volume ≥ rⱼ − 2ε, cells being the corpus's
circleCell/torusCell — is brick 3's first job. Continuity statements require continuous
context rates (hc); the witness instantiations (momentContext, basisContext) have
them, but a bare ContextField promises only measurability.
⚠️ Boundary sharpened 2026-08-03 (fourth external review): substituting the
selector-dependent weights w = w(x) while keeping the base fixed makes the arena map
fibrewise-Hamiltonian only — the joint flow of the scalar 𝓗(x,q) = μ_{H_eff(w(x))}(q)
would back-react on the register wherever the weights vary (ι_Vω ≠ d𝓗 on the ε-collars;
full accounting in PointerGeneration.lean's honest-scope block). The weight functions
here are Lipschitz ( are now clampDiv/min/max), proved Continuous, not C¹ at the
joinsC^∞: the substitution landed 2026-08-04 (BACKLOG.md B1) —
pointerWeights is built on smoothArcWeight (SigmaLayer/SmoothProfile.lean), the
plateau interface is unchanged so every downstream proof transferred untouched, and
contDiff_pointerWeights_lift is the new smoothness statement. clampDiv remains below as
the construction record, no longer used by the witness.
References #
specs/pointer-witness-plan.md (bricks 2b, 3); specs/BACKLOG.md (the ★ L row);
specs/future-work.md. Reused corpus API: couplingUU/couplingU_single/
continuous_couplingU_entry (SigmaLayer/PointerCoupling.lean), ContextField/loSum
(SigmaLayer/GlobalBasin.lean, BornFibrePartition.lean),
Projectivization.isOpenQuotientMap_mk' + smul_mk_eq_mk_toEuclideanLin +
toEuclideanLin_unitary_apply_ne_zero (projectivization staging),
MeasurePreserving.skew_product (Mathlib).
The trapezoid clamp #
The [0,1]-clamped ramp u ↦ clamp₀¹(u/ε): 1 for u ≥ ε, 0 for u ≤ 0, linear
between. ⚠️ Superseded 2026-08-04: the witness no longer uses this — pointerWeights
is built on smoothArcWeight, because this profile is not C¹ and so cannot carry a
Poisson bracket. Kept as the construction record and because its plateau lemmas are the
template the smooth profile matches statement-for-statement.
Equations
- CSD.RecordLayer.clampDiv ε u = max 0 (min 1 (u / ε))
Instances For
The weight field #
The midpoint of the j-th CDF cell at rate vector r, as a circle point.
Equations
- CSD.RecordLayer.cellMid r j = ↑(CSD.RecordLayer.loSum r j + r j / 2)
Instances For
The selector-modulated weight field: outcome j's weight at the ontic point x,
a C^∞ corridor profile in the circle distance from the first fibre coordinate to the
j-th cell midpoint, with rates read at the base point (context-fixed — no preparation).
★ Substituted onto the smooth profile 2026-08-04 (BACKLOG.md B1). This was
clampDiv ε (…), a trapezoid: Lipschitz, but not C¹ at its joins. That is not a
presentational defect — the Poisson bracket {wᵢ, wⱼ} on which the joint-arena Hamiltonian
route turns is undefined on non-differentiable weights, so the trapezoid blocked the
argument outright. smoothArcWeight has the identical plateau interface (same
statements, same hypotheses: = 1 on the shrunk arc, = 0 off the open arc, values in
[0,1]), so every downstream landing/Born/protocol proof is unaffected — see the four
lemmas below, whose statements are unchanged. What is new is
contDiff_pointerWeights_lift.
Equations
- CSD.RecordLayer.pointerWeights c ε x j = CSD.RecordLayer.smoothArcWeight ε (c.rate x.1 j) (CSD.RecordLayer.cellMid (c.rate x.1) j) x.2.1
Instances For
In the ε-shrunk cell arc of outcome j, the weight is exactly 1.
Off the open cell arc of outcome j, the weight is exactly 0.
Joint continuity of the weight field — circle-intrinsic, so a plain composition: no fundamental-domain lift, no seam. Requires continuous context rates.
On a point satisfying the shrunk-cell distance facts for outcome j, the weight vector
is the pure vector of outcome j.
The pure-weight coupling propagator is the brick-1 quarter rotation, at the unitary-group level.
★ The weight field is C^∞ in the register coordinate — the property the joint-arena
Hamiltonian route needs and the trapezoid could not supply. Stated on the universal cover
at fixed rates, which is the strongest form available without a smooth structure on
KSigma (§2a, MATHLIB-GAPS.md). Hypotheses are geometric, not technical debt: 2ε < r
is the ε-Born sandwich's own nonvacuity condition, and r < 1 says there is more than one
cell. With this, {wᵢ, wⱼ} is at last a well-formed expression on the corpus's weights —
see specs/BACKLOG.md A2, which depends on exactly this.
The arena propagator #
The pointer-witness propagator at the measurement stroke: the ontic sector coordinate is conserved, and the pointer is rotated by the coupling at the selector-modulated weights.
Equations
- CSD.RecordLayer.pointerEvolve c ε y = (y.1, CSD.RecordLayer.couplingUU (CSD.RecordLayer.pointerWeights c ε y.1) • y.2)
Instances For
The sector coordinate is conserved — records about the sector survive the stroke, and the base/selector marginals are untouched.
The pointer component of the propagator is continuous (the joint-continuity core).
★ The full arena propagator is continuous — the property
shearEvolve_not_continuous proves no torus-register witness can have: the smooth horn's
record transport has no seams.
Liouville preservation on the arena — a skew product: the sector coordinate is conserved, and every pointer slice acts by an FS-preserving unitary.
On the shrunk cell of outcome j, the propagator is exactly the brick-1 quarter
rotation in plane j — the seed of the landing theorem (brick 3 supplies the two distance
facts from the cell geometry).