Documentation

CsdLean4.RecordLayer.OutcomeField

SigmaLayer/OutcomeField: outcome count decoupled from dimension (item 7) #

Category: 7-SigmaLayer (the record layer — generalisation).

ContextField N ties the number of outcomes to the Hilbert-space dimension: rate : CPN N → Fin N. That is right for a nondegenerate measurement and wrong for everything else — a degenerate projective measurement has fewer outcomes than dimensions.

OutcomeField N K decouples them.

★ The design constraint this file respects #

The plan is explicit on two points, and both are followed:

  1. Introduce OutcomeField alongside ContextField, do not replace every use of it. globalBasin and everything downstream still take a ContextField; nothing was refactored. The conversion ContextField.toOutcomeField shows the generalisation is conservative.
  2. Do not treat an arbitrary simplex-valued rate field as automatically physical. An OutcomeField is a measurable simplex-valued field and no more — inhabiting it proves nothing about an apparatus. The physical content is in blockField, which derives the field from a measurement's degeneracy structure rather than positing it.

What is proved #

The remaining extensions, in the plan's order #

blockField covers degenerate projective measurements (step 2). Corrected 2026-08-04 (codebase audit).steps 1, 3, 4 and 5 have all since landed (measurement_covariance, SigmaLayer/RotatedSwap.lean; mixed_swap_sector_born, MixedSwap.lean, with the conditioned update in MixedLuders.lean; povm_selector_born/povm_instrument, PovmDynamics.lean). What this module does not do is drive them. Formerly: still open, and not attempted here: arbitrary orthonormal bases by unitary covariance (step 1 — the U(N) action on CPN exists, so this should be cheap); mixed preparations by trace linearity (step 3); POVMs through the existing Naimark machinery (step 4); instrument-level updates (step 5).

⚠️ And note what is not connected: globalBasin still consumes a ContextField, so an OutcomeField cannot yet drive the dynamical layer. Generalising globalBasin is the bridge, and it is deliberately not done here — see design constraint 1.

References #

SigmaLayer/GlobalBasin.lean (ContextField, momentContext); LF4/MomentMap.lean (momentMap_nonneg, momentMap_sum_eq_one, measurable_momentMap); specs/BACKLOG.md.

A measurement's outcome field: a measurable, simplex-valued rate field with K outcomes on the N-dimensional projective base. Unlike ContextField, the outcome count is independent of the dimension, which is what a degenerate measurement needs.

⚠️ Inhabiting this proves nothing about a physical apparatus — it is a measurability-and-simplex condition. See blockField for a field that is derived from a measurement rather than posited.

  • rate : LF4.CPN NFin K

    The rate assigned to each ontic base point.

  • measurable_rate (i : Fin K) : Measurable fun (p : LF4.CPN N) => self.rate p i

    Each coordinate is measurable.

  • nonneg (p : LF4.CPN N) (i : Fin K) : 0 self.rate p i

    The rates are non-negative.

  • sum_one (p : LF4.CPN N) : i : Fin K, self.rate p i = 1

    The rates are normalised.

Instances For

    Conservativity: every ContextField is an OutcomeField with K = N. The generalisation adds cases, it does not change the existing ones.

    Equations
    Instances For

      Degenerate projective measurements #

      noncomputable def CSD.RecordLayer.blockField {N K : } (b : Fin NFin K) :

      ★ The outcome field of a degenerate projective measurement.

      b : Fin N → Fin K is the degeneracy map: it says which outcome each basis direction belongs to. The rate of outcome i is the total moment-map weight of its block,

      rate p i = ∑_{j : b j = i} momentMap p j

      which is the ontic form of ⟨ψ, Π_i ψ⟩ for the projector Π_i onto that block's eigenspace.

      ★ Every field condition comes free from the moment map's, because this is a finite sum of moment coordinates — the same object, coarse-grained. Nothing new is posited: the degeneracy structure is the only input, and it is combinatorial.

      Equations
      Instances For
        theorem CSD.RecordLayer.blockField_id {N : } (p : LF4.CPN N) (i : Fin N) :

        The nondegenerate case is recovered, not replaced. With the identity degeneracy map every block is a single direction, so blockField id is momentContext viewed as an OutcomeField.