Documentation

CsdLean4.RecordLayer.NullSeamGeneralN

SigmaLayer/NullSeamGeneralN: the third horn at every N (D3b) #

Category: dynamical measurement — the general-N null-seam witness (specs/BACKLOG.md D3b; the two-cell witness is NullSeamWitness.lean).

The construction #

N cells on the register circle, cut at the corpus's own cumulative Born positions loSum r i (BornFibrePartition.lean) of a positive weight vector r summing to 1. Each closed cell is realised as a closed ball cellArc r i around the existing cell midpoint cellMid r i (PointerWeights.lean), radius r i / 2, which hands the cell mass to AddCircle.volume_closedBall with no bespoke measure computation; the open cell is a rep-preimage (CircleFibre.lean), so measurability is free.

The landing amplitudes are plateau tents cellTent r i θ = max 0 (cellGap r − infDist θ (cellArc r i)) with cellGap = (min r)/2: value exactly cellGap on the whole closed cell, decaying outside, vanishing at distance cellGap. Off the seam the active cell's tent dominates strictly (it sits at the plateau, every other tent is strictly below it, and at most one other tent is nonzero — the separation estimates); at a seam point the two adjacent tents are equal — the kiss. The record criterion momentMap > ½ therefore reads: record i exactly on the open cell i, no record exactly on the N seam points.

The propagator's unitary is a single global formula — the rotation by π/2 in the plane spanned by the ready direction f₀ and the (normalised) amplitude vector a ⊥ f₀:

M(a) = I − f₀f₀ᵀ − aaᵀ + af₀ᵀ − f₀aᵀ,

orthogonal for every unit a with a₀ = 0 (seamRotation_mem), with first column a (the landing). Because M is a fixed polynomial in the amplitudes, continuity of the propagator reduces to continuity of the tents — there is no per-boundary gluing of plane rotations, and hence none of the monodromy trouble a piecewise-rotation design would have at the wrap.

Relation to the two-cell witness #

NullSeamWitness.lean stands as the minimal exhibit (its (f₁,f₂)-plane rotation is the N = 2 kissing-crossing in bespoke form); this module proves the same closure shape for every N ≥ 2 and every weight vector: continuity, measure invariance, exact records off an N-point null seam, and exact Born mass r i per cell (nullSeamGeneralClosure). The scope notes of the two-cell module apply verbatim: the exactness is at the Dirac-calibrated ready point (the third horn's price — posMeasure_noRecord_pointer), and the cell split r plays the Born-weight role without a preparation in the arena.

Cumulative-position extras #

loSum (BornFibrePartition.lean) carries the ordering lemmas (loSum_add_le_loSum, loSum_add_self_le_one); the two small identities below complete the tiling picture.

theorem CSD.RecordLayer.loSum_nonneg {N : } (r : Fin N) (hr : ∀ (i : Fin N), 0 < r i) (i : Fin N) :
0 loSum r i
theorem CSD.RecordLayer.loSum_zero_val {N : } {i : Fin N} (r : Fin N) (hi : i = 0) :
loSum r i = 0
theorem CSD.RecordLayer.loSum_succ_val {N : } (r : Fin N) {i j : Fin N} (hij : j = i + 1) :
loSum r j = loSum r i + r i

Consecutive cumulative positions: the cell for i ends where the cell for the next index begins.

theorem CSD.RecordLayer.loSum_last_add {N : } (r : Fin N) (hsum : i : Fin N, r i = 1) {i : Fin N} (hi : i + 1 = N) :
loSum r i + r i = 1

The last cell ends at 1.

The canonical representative #

theorem CSD.RecordLayer.coe_rep (θ : CircleFibre) :
(rep θ) = θ

The tent half-width #

noncomputable def CSD.RecordLayer.cellGap {N : } [NeZero N] (r : Fin N) :

The tent half-width: half the smallest cell width. Every tent extends exactly cellGap beyond its cell, so tents of cells that do not share a boundary never overlap.

Equations
Instances For
    theorem CSD.RecordLayer.cellGap_pos {N : } [NeZero N] (r : Fin N) (hr : ∀ (i : Fin N), 0 < r i) :
    theorem CSD.RecordLayer.two_cellGap_le {N : } [NeZero N] (r : Fin N) (i : Fin N) :
    2 * cellGap r r i

    Circle lemmas beyond the two-cell toolkit #

    theorem CSD.RecordLayer.circle_dist_coe_eq {a b : } (h : |a - b| 1 / 2) :
    dist a b = |a - b|

    On lifts within a half-period, the circle distance is exact.

    theorem CSD.RecordLayer.circle_dist_coe_ge (a b : ) :
    min |a - b| (1 - |a - b|) dist a b

    The circle distance of two lifts is at least min |a−b| (1 − |a−b|).

    The cells #

    noncomputable def CSD.RecordLayer.cellArc {N : } (r : Fin N) (i : Fin N) :

    Closed cell i: the closed ball of radius r i / 2 around the existing cell midpoint cellMid r i (PointerWeights.lean). Equal to the arc image of its lift interval (cellArc_eq_image).

    Equations
    Instances For
      noncomputable def CSD.RecordLayer.openCell {N : } (r : Fin N) (i : Fin N) :

      The open cell: the rep-preimage of the open CDF interval, so measurability is definitional (compare circleCell).

      Equations
      Instances For
        noncomputable def CSD.RecordLayer.seamPoint {N : } (r : Fin N) (i : Fin N) :

        The seam point at the left end of cell i. The N of them are the cell boundaries (the right end of the last cell wraps to the left end of the first).

        Equations
        Instances For
          theorem CSD.RecordLayer.cellArc_eq_image {N : } {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (i : Fin N) :
          cellArc r i = (fun (s : ) => s) '' Set.Icc (loSum r i) (loSum r i + r i)

          The closed cell is the arc image of its lift interval.

          theorem CSD.RecordLayer.exists_rep_mem_cell {N : } [NeZero N] {r : Fin N} (hsum : i : Fin N, r i = 1) (θ : CircleFibre) :
          ∃ (i : Fin N), rep θ Set.Ioc (loSum r i) (loSum r i + r i)

          Every circle point lies in some closed cell (via its canonical representative, whose CDF interval is found by taking the largest cumulative position strictly below it).

          theorem CSD.RecordLayer.openCell_subset_cellArc {N : } {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (i : Fin N) :
          openCell r icellArc r i

          The open cell sits inside the closed cell.

          theorem CSD.RecordLayer.volume_openCell {N : } {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (i : Fin N) :

          The Born mass of an open cell is exactly its weight (the Ioo sibling of volume_circleCell, same measure-preserving route).

          The tents #

          noncomputable def CSD.RecordLayer.cellTent {N : } [NeZero N] (r : Fin N) (i : Fin N) (θ : CircleFibre) :

          The plateau tent of cell i: value cellGap r on the whole closed cell, decaying with the distance outside, vanishing at distance cellGap r.

          Equations
          Instances For
            theorem CSD.RecordLayer.continuous_cellTent {N : } [NeZero N] {r : Fin N} (i : Fin N) :
            theorem CSD.RecordLayer.cellTent_nonneg {N : } [NeZero N] {r : Fin N} (i : Fin N) (θ : CircleFibre) :
            0 cellTent r i θ
            theorem CSD.RecordLayer.cellTent_le {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (i : Fin N) (θ : CircleFibre) :
            theorem CSD.RecordLayer.cellTent_of_mem {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) {i : Fin N} {θ : CircleFibre} ( : θ cellArc r i) :
            cellTent r i θ = cellGap r

            On the closed cell the tent sits at its plateau.

            theorem CSD.RecordLayer.cellArc_nonempty {N : } {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (i : Fin N) :
            theorem CSD.RecordLayer.cellTent_lt_of_notMem {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) {i : Fin N} {θ : CircleFibre} ( : θcellArc r i) :
            cellTent r i θ < cellGap r

            Off the closed cell the tent is strictly below its plateau.

            theorem CSD.RecordLayer.cellTent_eq_zero {N : } [NeZero N] {r : Fin N} {i : Fin N} {θ : CircleFibre} (h : cellGap r Metric.infDist θ (cellArc r i)) :
            cellTent r i θ = 0

            Vanishing at distance cellGap.

            theorem CSD.RecordLayer.infDist_lt_of_cellTent_pos {N : } [NeZero N] {r : Fin N} {i : Fin N} {θ : CircleFibre} (h : 0 < cellTent r i θ) :

            Positivity means the cell is within tent reach.

            Separation: at most one foreign tent is ever within reach #

            theorem CSD.RecordLayer.cellTent_pos_branches {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) {k : Fin N} {s : } (hpos : 0 < cellTent r k s) :
            ∃ (t : ), loSum r k t t loSum r k + r k (|s - t| < cellGap r 1 - |s - t| < cellGap r)

            Tent-positivity at a lift, resolved into the two approach directions: if cell k's tent is positive at coe s, then s is within cellGap of the cell's lift interval either directly or around the wrap.

            theorem CSD.RecordLayer.openCell_disjoint_cellArc {N : } {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) {i k : Fin N} (hik : k i) {θ : CircleFibre} ( : θ openCell r i) :
            θcellArc r k

            The open cell meets no other closed cell.

            theorem CSD.RecordLayer.cellTent_pos_left {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) {i k : Fin N} (hki : k < i) {s : } (hsi : loSum r i < s s < loSum r i + r i) (hpos : 0 < cellTent r k s) :
            s < loSum r k + r k + cellGap r loSum r k + 1 - cellGap r < s

            Foreign-tent approach bounds, cell to the left of the active one.

            theorem CSD.RecordLayer.cellTent_pos_right {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) {i k : Fin N} (hik : i < k) {s : } (hsi : loSum r i < s s < loSum r i + r i) (hpos : 0 < cellTent r k s) :
            loSum r k - cellGap r < s s < loSum r k + r k + cellGap r - 1

            Foreign-tent approach bounds, cell to the right of the active one.

            theorem CSD.RecordLayer.cellTent_pair_exclusion {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) {i k l : Fin N} (hk : k i) (hl : l i) (hkl : k < l) {θ : CircleFibre} ( : θ openCell r i) :
            ¬(0 < cellTent r k θ 0 < cellTent r l θ)

            At most one foreign tent is within reach at any point of an open cell. The twelve position/branch combinations each contradict the cumulative ordering (loSum_add_le_loSum), the one-turn bound (loSum_add_self_le_one), or the width floor (two_cellGap_le).

            The amplitude vector and the record criterion #

            noncomputable def CSD.RecordLayer.tentVec {N : } [NeZero N] (r : Fin N) (θ : CircleFibre) :

            The (unnormalised) landing amplitude vector: zero in the ready slot, tent i in record slot i.succ.

            Equations
            Instances For
              theorem CSD.RecordLayer.tentVec_zero {N : } [NeZero N] {r : Fin N} (θ : CircleFibre) :
              (tentVec r θ).ofLp 0 = 0
              theorem CSD.RecordLayer.tentVec_succ {N : } [NeZero N] {r : Fin N} (θ : CircleFibre) (i : Fin N) :
              (tentVec r θ).ofLp i.succ = (cellTent r i θ)
              theorem CSD.RecordLayer.exists_cellTent_plateau {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (θ : CircleFibre) :
              ∃ (i : Fin N), cellTent r i θ = cellGap r

              Every point sits on some closed cell's plateau.

              theorem CSD.RecordLayer.tentVec_ne_zero {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (θ : CircleFibre) :
              tentVec r θ 0
              theorem CSD.RecordLayer.norm_sq_tentVec {N : } [NeZero N] {r : Fin N} (θ : CircleFibre) :
              tentVec r θ ^ 2 = i : Fin N, cellTent r i θ ^ 2

              The squared norm of the tent vector is the tent sum of squares.

              The seam rotation #

              noncomputable def CSD.RecordLayer.seamRotationR {n : } (a : Fin (n + 1)) :
              Matrix (Fin (n + 1)) (Fin (n + 1))

              The rotation by π/2 in the plane spanned by the ready direction f₀ and a unit amplitude vector a ⊥ f₀, over : first column a, first row −aᵀ (off the corner), the record block I − aaᵀ.

              Equations
              Instances For
                @[simp]
                theorem CSD.RecordLayer.seamRotationR_zero_zero {n : } (a : Fin (n + 1)) :
                @[simp]
                theorem CSD.RecordLayer.seamRotationR_zero_succ {n : } (a : Fin (n + 1)) (m : Fin n) :
                @[simp]
                theorem CSD.RecordLayer.seamRotationR_succ_zero {n : } (a : Fin (n + 1)) (k : Fin n) :
                @[simp]
                theorem CSD.RecordLayer.seamRotationR_succ_succ {n : } (a : Fin (n + 1)) (k l : Fin n) :
                seamRotationR a k.succ l.succ = (if k = l then 1 else 0) - a k.succ * a l.succ
                theorem CSD.RecordLayer.seamRotationR_orthogonal {n : } (a : Fin (n + 1)) (h0 : a 0 = 0) (hsum : k : Fin (n + 1), a k ^ 2 = 1) :

                Orthogonality of the seam rotation, for every unit amplitude vector with empty ready slot.

                noncomputable def CSD.RecordLayer.seamRotation {n : } (a : Fin (n + 1)) :
                Matrix (Fin (n + 1)) (Fin (n + 1))

                The seam rotation over : the real matrix, entrywise embedded.

                Equations
                Instances For
                  theorem CSD.RecordLayer.seamRotation_mem {n : } (a : Fin (n + 1)) (h0 : a 0 = 0) (hsum : k : Fin (n + 1), a k ^ 2 = 1) :
                  theorem CSD.RecordLayer.seamRotation_mulVec_single {n : } (a : Fin (n + 1)) (h0 : a 0 = 0) :
                  (Matrix.toEuclideanLin (seamRotation a)) (EuclideanSpace.single 0 1) = WithLp.toLp 2 fun (k : Fin (n + 1)) => (a k)

                  The first column of the seam rotation is the amplitude vector.

                  The propagator #

                  noncomputable def CSD.RecordLayer.tentTotal {N : } [NeZero N] (r : Fin N) (θ : CircleFibre) :

                  The total tent weight (the amplitude normaliser).

                  Equations
                  Instances For
                    theorem CSD.RecordLayer.tentTotal_pos {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (θ : CircleFibre) :
                    0 < tentTotal r θ
                    theorem CSD.RecordLayer.sq_tentTotal {N : } [NeZero N] {r : Fin N} (θ : CircleFibre) :
                    tentTotal r θ ^ 2 = j : Fin N, cellTent r j θ ^ 2
                    noncomputable def CSD.RecordLayer.seamAmp {N : } [NeZero N] (r : Fin N) (θ : CircleFibre) :
                    Fin (N + 1)

                    The normalised landing amplitudes: empty ready slot, tent/total in the record slots.

                    Equations
                    Instances For
                      theorem CSD.RecordLayer.seamAmp_zero {N : } [NeZero N] {r : Fin N} (θ : CircleFibre) :
                      seamAmp r θ 0 = 0
                      theorem CSD.RecordLayer.seamAmp_succ {N : } [NeZero N] {r : Fin N} (θ : CircleFibre) (i : Fin N) :
                      seamAmp r θ i.succ = cellTent r i θ / tentTotal r θ
                      theorem CSD.RecordLayer.seamAmp_sq_sum {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (θ : CircleFibre) :
                      k : Fin (N + 1), seamAmp r θ k ^ 2 = 1
                      noncomputable def CSD.RecordLayer.nullSeamGenUU {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (θ : CircleFibre) :

                      The propagator's unitary at register point θ.

                      Equations
                      Instances For
                        noncomputable def CSD.RecordLayer.nullSeamGenEvolve {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) :

                        The general-N null-seam propagator: register conserved, pointer rotated by the seam rotation at the register's amplitudes.

                        Equations
                        Instances For
                          theorem CSD.RecordLayer.seamAmp_toLp_smul {N : } [NeZero N] {r : Fin N} (θ : CircleFibre) :
                          (WithLp.toLp 2 fun (k : Fin (N + 1)) => (seamAmp r θ k)) = (tentTotal r θ)⁻¹ tentVec r θ

                          The amplitude vector is the tent vector, normalised.

                          theorem CSD.RecordLayer.nullSeamGenEvolve_ready {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (θ : CircleFibre) :

                          The landing identity: the propagator sends the calibrated ready state to the tent ray.

                          Records: exactly the open cells #

                          theorem CSD.RecordLayer.momentMap_tentVec {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (θ : CircleFibre) (i : Fin N) :
                          LF4.momentMap (Projectivization.mk (tentVec r θ) ) i.succ = cellTent r i θ ^ 2 / j : Fin N, cellTent r j θ ^ 2

                          The landing moments are the normalised squared tents.

                          theorem CSD.RecordLayer.tentVec_record_iff {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (θ : CircleFibre) (i : Fin N) :
                          Projectivization.mk (tentVec r θ) recordRegion i jFinset.univ.erase i, cellTent r j θ ^ 2 < cellTent r i θ ^ 2

                          The record criterion: outcome i is recorded iff cell i's tent strictly dominates all the others combined.

                          theorem CSD.RecordLayer.nullSeamGen_landing {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) {i : Fin N} {θ : CircleFibre} ( : θ openCell r i) :

                          Records on the open cells — exactly.

                          The seam: the kiss, and no record #

                          theorem CSD.RecordLayer.seamPoint_mem_cellArc {N : } {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (i : Fin N) :
                          theorem CSD.RecordLayer.seamPoint_mem_left {N : } {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (hN : 1 < N) (i : Fin N) :
                          ∃ (i' : Fin N), i' i seamPoint r i cellArc r i'

                          Every seam point also sits on its left neighbour's plateau — the kiss. Needs N ≥ 2 (with a single cell, the seam point's only cell is its own).

                          theorem CSD.RecordLayer.nullSeamGen_seam_no_record {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (hN : 1 < N) (i j : Fin N) :

                          No record at any seam point, for any outcome — the kiss: two tents sit at the plateau, so no tent strictly dominates.

                          The outcome sets are exactly the open cells #

                          theorem CSD.RecordLayer.openCell_or_seam {N : } [NeZero N] {r : Fin N} (hsum : i : Fin N, r i = 1) (θ : CircleFibre) :
                          (∃ (i : Fin N), θ openCell r i) ∃ (i : Fin N), θ = seamPoint r i

                          Every register point is in an open cell or on the seam.

                          theorem CSD.RecordLayer.nullSeamGen_outcome {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (hN : 1 < N) (i : Fin N) :

                          The outcome set for record i is exactly the open cell i.

                          theorem CSD.RecordLayer.nullSeamGen_born {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (hN : 1 < N) (i : Fin N) :

                          Exact Born, every cell: the record-i outcome set has measure exactly r i.

                          The seam is null — indeed N points.

                          ★★ Continuity and measure invariance #

                          theorem CSD.RecordLayer.continuous_seamAmp {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (k : Fin (N + 1)) :
                          Continuous fun (θ : CircleFibre) => seamAmp r θ k
                          theorem CSD.RecordLayer.continuous_seamRotation_entry {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (a b : Fin (N + 1)) :
                          Continuous fun (θ : CircleFibre) => seamRotation (seamAmp r θ) a b

                          Entrywise continuity of the seam rotation over the register.

                          theorem CSD.RecordLayer.continuous_nullSeamGenEvolve_snd {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) :
                          Continuous fun (y : CircleFibre × Pointer N) => nullSeamGenUU hr hsum y.1 y.2

                          The pointer component of the propagator is continuous.

                          theorem CSD.RecordLayer.continuous_nullSeamGenEvolve {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) :

                          ★★ The propagator is continuous on the whole arena.

                          The arena's invariant measure: Haar on the register, Fubini–Study on the pointer (the same product as the two-cell witness's nullSeamMeasure).

                          Equations
                          Instances For
                            theorem CSD.RecordLayer.nullSeamGenEvolve_measurePreserving {N : } [NeZero N] {r : Fin N} (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (q₀ : Pointer N) :

                            ★★ Measure invariance — a skew product: register conserved, every register slice acts by an FS-preserving unitary.

                            ★★ The third horn at every N, bundled #

                            structure CSD.RecordLayer.NullSeamGenClosure {N : } [NeZero N] (r : Fin N) (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (hN : 1 < N) :

                            The general-N third horn: continuous, measure-preserving dynamics on S¹ × ℂℙ^N whose records from the calibrated ready state are exact and correct off an N-point null seam, with exact Born mass r i per cell. The price is unchanged from the two-cell witness: Dirac calibration (posMeasure_noRecord_pointer prices the alternative).

                            Instances For
                              theorem CSD.RecordLayer.nullSeamGenClosure {N : } [NeZero N] (r : Fin N) (hr : ∀ (i : Fin N), 0 < r i) (hsum : i : Fin N, r i = 1) (hN : 1 < N) :
                              NullSeamGenClosure r hr hsum hN

                              ★★ The third horn exists at every N ≥ 2 and every weight vector — D3b discharged.

                              theorem CSD.RecordLayer.nullSeamGenClosure_uniform {N : } [NeZero N] (hN : 1 < N) :
                              NullSeamGenClosure (fun (x : Fin N) => (↑N)⁻¹) hN

                              The uniform witness: N cells of weight 1/N each — non-vacuity of the closure at every N ≥ 2.