The occurrence registry: actual record writes, with their provenance #
Category: 7-SigmaLayer (the record layer — the registry of the clock-and-echo programme). BACKLOG #191 (out of #39; the first of #191–#197, the author's second operational-geometry brief).
Three things have been called "an event" in the programme and they are not the same thing:
- an actual record occurrence — a carrier whose readout changes, along the constructed dynamics, from a preparation that was ready, to a value it then holds for a stated window;
- a possible observation of a subsystem — a measurable readout and nothing else, which can be evaluated at any time without anything having been written (the receiver readouts of #190);
- a region label —
CV.RecordEvent, a read region with a period index, which is what the causal orderCausalPrecedesis about.
This file keeps the three apart and names the maps between them.
IsRecordWrite h t₀ τ₀ τ₁ w v— a readout history writesv: notvon[t₀, τ₀),von[τ₁, τ₁ + w]; the write interval is[τ₀, τ₁](sharp whenτ₀ = τ₁), the windowwfinite;- ★
not_isRecordWrite_of_eq,IsRecordWrite.not_within— inside a write's window there is no second write of that carrier, for any value: inspecting an unchanged register is not an occurrence; Observation X Ω— kind 2;ActualOccurrence X Ω K— kind 1, carrying the carrier's two-time measurable evolution, its readout, its ready set, the actual preparation, the recorded value, the write interval and the window, and the write itself as a proof field discharged from the dynamics (isWrite);toObservationforgets to kind 2,toRecordEvent clkforgets to kind 3 by labelling the carrier's site with a clock readout at the completion of the write;recordSet,measurableSet_recordSet,recordPattern, ★factorsThrough_recordSet— the record predicate "this occurrence's value is displayed" is measurable and factors through the pattern projection ofMacroProjection.lean;- instances, each discharged from an existing dynamics:
exchangeRegister i— the emission, reception and return registers of #186 (sharp writes at the readout times,toRecordEventis #186'seventOf);clockSlot n— every slot of the record clock of #185 (write interval[nT, (n+1)T]); ★exchange_no_second_write— after its readout a register of #186 admits no further write; - the chain of #190 has readouts, not registers:
receiverObservation kis kind 2. SoChainXArena n Kadds a reception register at every site,chainXEvolveis its two-time (★chainXEvolve_comp), measurable, ★ measure-preserving skew-product propagator, ★★chainRegister_writtenwrites registerkwith the message from the transmitted state atk τ_hopandchainRegister_frozenkeeps it,chainRegister kis the actual occurrence, and ★★★siteEvent_eq_toRecordEvent— the chain's site events are the forgetful images of actual writes on the common arena, their period labels the ticks of the site's own clock, which are writes themselves (clockSlot). That is the brief's §2 acceptance criterion; - ★★★
record_occurrences— the package.
Honest scope #
- ⚠️ The chain registers are written on the crossing of
k τ_hopby the bit read off the exchange state at that time: the schedule still triggers the write, exactly as in #186. What is new is that the receptions of the chain are now writes with provenance rather than readouts; a write activated by the arriving carrier itself is #194. - ⚠️
ActualOccurrencecarries itsevolveas a field so that one registry serves several arenas; the two-time law and measurability are proof fields, and every instance below supplies the corpus's constructed evolution. Nothing physical is carried by an unproved field. - The period label of
toRecordEventis whatever clock readout is supplied; under the stated calibrationT = τ_hopit is the site index, as in #186 and #190. - Clock calibration and synchronisation stay hypotheses; the clocks' horizon must cover the chain.
References: specs/BACKLOG.md #191, #185, #186, #190, #39; RecordLayer/RecordedExchange.lean,
RecordLayer/RecordClock.lean, RecordLayer/ChainClocks.lean, RecordLayer/MacroProjection.lean,
CV/RecordCausalOrder.lean.
Record writes along a readout history #
A readout history writes the value v, from the start t₀, with write interval [τ₀, τ₁]
and window w: it does not display v on [t₀, τ₀), and displays v on [τ₁, τ₁ + w].
The write starts after the start.
The write interval is an interval.
The window is a window.
Before the write the value is not displayed.
Through the window the value is displayed.
Instances For
A history that displays the same value at a time before a candidate write interval and at a time inside the candidate window admits no write there: an unchanged readout is not a write.
★ No second write inside a write's window. Once h has written v by τ₁ and holds it
through τ₁ + w, there is no write — of any value — whose interval starts after τ₁ and completes
within the window, from any start at or before τ₁. Repeated inspection of the unchanged register
creates no occurrence.
The three kinds #
A possible observation of the arena: a measurable readout and nothing else. It can be evaluated at any time; nothing need have been written.
- obs : X → Ω
The readout.
- measurable_obs : Measurable self.obs
It is measurable.
Instances For
An actual record occurrence on the arena X, with values in Ω and sites in Fin K: the
carrier's evolution (a two-time, measurable dynamics), its readout, its ready set, the actual
preparation, the site of the carrier, the start, the recorded value, the write interval
[writeStart, writeEnd], the window, and the write itself, as a proof along the history
t ↦ readout (evolve start t prep).
- evolve : SigmaLayer.OnticTime → SigmaLayer.OnticTime → X → X
The evolution producing the write.
Nothing happens in no time.
The two-time law.
- measurable_evolve (s t : SigmaLayer.OnticTime) : Measurable (self.evolve s t)
Each time-step is measurable.
- readout : X → Ω
The carrier's readout.
- measurable_readout : Measurable self.readout
It is measurable.
- ready : Set X
The ready-state condition.
- measurableSet_ready : MeasurableSet self.ready
It is measurable.
- prep : X
The actual preparation.
It is ready.
The site of the carrier.
- start : SigmaLayer.OnticTime
The start of the history.
- value : Ω
The recorded value.
- writeStart : ℝ
The write interval begins.
- writeEnd : ℝ
The write interval ends.
- window : ℝ
The finite persistence window.
- isWrite : IsRecordWrite (fun (t : ℝ) => self.readout (self.evolve self.start t self.prep)) self.start self.writeStart self.writeEnd self.window self.value
The write, discharged from the dynamics.
Instances For
The readout history of the occurrence.
Instances For
Forget to kind 2: the readout alone.
Equations
- o.toObservation = { obs := o.readout, measurable_obs := ⋯ }
Instances For
Forget to kind 3: the region is the carrier's site, the period is the supplied clock readout at the completion of the write.
Equations
Instances For
The record predicate: at the completion of the write, the carrier displays the value.
Instances For
The actual preparation lies in the record predicate: the write happened.
The preparation displays the value throughout the window.
Before the write interval the preparation does not display the value.
The macroscopic coordinate of a finite family of occurrences: the pattern projection of their record predicates.
Equations
- CSD.RecordLayer.ActualOccurrence.recordPattern os = CSD.RecordLayer.patternProjection (fun (j : Fin k) => (os j).recordSet) ⋯
Instances For
★ Every record predicate of the family factors through the family's pattern projection.
The arc readout of a register #
The readout of a two-outcome register: 0 or 1 when the pointer sits in that pointer arc,
2 when it displays no record.
Equations
- CSD.RecordLayer.arcReadout q = if q ∈ CSD.RecordLayer.pointerArc 2 0 then 0 else if q ∈ CSD.RecordLayer.pointerArc 2 1 then 1 else 2
Instances For
A pointer in the pointer arc of b reads b.
A ready pointer displays no record.
Instance: the three registers of the recorded exchange (#186) #
A register of the exchange is still ready before its readout time, from the preparation
xPrep b c r with ready registers (no condition on the clock is needed).
Register i of the recorded exchange as an actual occurrence: carrier the register, readout
its arc, ready set its ready arc, preparation xPrep b c r, site readSite i, a sharp write at the
readout time with any window w ≥ 0 — the write discharged from register_written.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The forgetful image of the emission register is #186's eventOf of the emission.
The forgetful image of the reception register is #186's eventOf of the reception.
The forgetful image of the return register is #186's eventOf of the return.
★ After its readout a register of the exchange admits no further write: for every candidate write interval starting after the readout time, from any start at or before it, the register's history is not a write of any value. Reading the register again is not an occurrence.
Instance: the slots of the record clock (#185) #
The readout of slot n: whether it has been written.
Equations
- CSD.RecordLayer.slotReadout n x = if x.2 n ∈ CSD.RecordLayer.writtenArc K then true else false
Instances For
Slot n of the record clock as an actual occurrence: the write interval is the window
[nT, (n+1)T] of #185, the value true, any window w ≥ 0; the site is the supplied label.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The chain of #190: readouts at the sites, then registers at the sites #
The bit read off a chain state at site k: its occupancy weight, thresholded at 1/2.
Equations
- CSD.RecordLayer.chainReadBit k p = if 1 / 2 ≤ Projectivization.momentMap p (CSD.CV.excAt k) then 1 else 0
Instances For
The receiver readout at site k is a possible observation of the chain arena — kind 2, which
is all the chain of #190 has at its sites.
Equations
- CSD.RecordLayer.receiverObservation k = { obs := fun (x : CSD.RecordLayer.ChainArena n K) => CSD.RecordLayer.chainReadBit k x.1, measurable_obs := ⋯ }
Instances For
The occupancy weight at site k is the arena observable of occAt k.
At every time the readout at site k of message 0 is 0.
The chain arena with a reception register at every site.
Equations
- CSD.RecordLayer.ChainXArena n K = (CSD.RecordLayer.ChainArena n K × (Fin (n + 1) → CSD.LF4.KTorus))
Instances For
The bit register k reads: the occupancy of site k in the exchange state at k τ_hop, when
the propagator starts at s.
Equations
- CSD.RecordLayer.chainReadAt J ħ k s p = CSD.RecordLayer.chainReadBit k (CSD.CV.arenaKick ((CSD.CV.chainSchedule n J ħ).evolve s (↑↑k * CSD.CV.hopTime J ħ)) p)
Instances For
The bit read at k τ_hop does not depend on where the propagator is cut.
The joint two-time propagator with registers: the chain of #190, and register k translated
by shearAmt 2 (bit) on the crossing of k τ_hop, the bit read off the exchange state then.
Equations
- One or more equations did not get rendered due to their size.
Instances For
★ The two-time composition law on the arena with registers.
★ The joint propagator preserves Liouville measure — the measure of #190 on the chain arena, Haar on every register: a skew product over the chain arena, since the register shifts depend on the exchange state.
What the chain registers read and write #
The preparation with message b: the chain preparation and the registers r.
Equations
- CSD.RecordLayer.chainXPrep b c r = (CSD.RecordLayer.chainPrep b c, r)
Instances For
From a start before the switch-on, the exchange factor at k τ_hop is the scheduled arena
flow.
Before k τ_hop register k is still ready.
★★ Register k is written with the message from k τ_hop on, from the transmitted state:
the reception at site k is now a write with provenance, not a readout.
After k τ_hop register k is frozen.
Register k of the chain as an actual occurrence: a sharp write at k τ_hop with the
message, from the ready preparation, any window w ≥ 0.
Equations
- One or more equations did not get rendered due to their size.
Instances For
★★★ The chain's site events are the forgetful images of actual writes on the common arena.
Under the calibration T = τ_hop, with the period read off the clock at site k — whose ticks are
writes themselves (clockSlot) — the actual occurrence of register k maps to siteEvent k, the
event #190's causal chain is built from.
The package #
★★★ The occurrence registry. No carrier is written twice inside a write's window; the three
registers of the exchange and every clock slot are actual occurrences discharged from their
dynamics, the exchange's forgetful images being #186's events; the chain of #190 carries registers
on one two-time measure-preserving dynamics, each written with the message at k τ_hop and frozen
after, and the site events of #190's causal chain are the forgetful images of those writes, labelled
by the site's own clock.