pith. machine review for the scientific record. sign in
def definition def or abbrev high

scheduleByMinIndex

show as:
view Lean formalization →

A canonical countable schedule for events is obtained by assigning each event to the smallest index consistent with precedence constraints. Researchers formalizing atomic serialization of finite recognition histories cite this when establishing one-event-per-tick enumerations. The construction uses classical choice on the existence predicate for each index and verifies no-duplicates together with completeness via injectivity of the minimal-index map.

claimLet $E$ be an event type equipped with a precedence relation. Let $m(e)$ denote the minimal natural-number index assigned to event $e$. Define the schedule function by $s(n) = e$ whenever $m(e) = n$ for some $e$, and $s(n)$ undefined otherwise. Then $s$ posts at most one event per tick, posts every event exactly once, and never repeats an event.

background

The Atomicity module supplies constructive serialization for finite recognition histories. It works abstractly over an event type $E$ with a precedence relation that encodes ledger and causal constraints. The central auxiliary notions are the minimal-index function, which returns the smallest tick consistent with precedence for each event, and its specification lemma, which asserts that this index is attained. The module deliberately avoids cost or convexity assumptions and relies only on finiteness together with decidable precedence. Upstream results include the shifted cost $H(x) = J(x) + 1$ and the fundamental tick unit equal to 1, although neither enters the present construction.

proof idea

The definition sets the posting function to return the classically chosen event whose minimal index equals the given tick when such an event exists, otherwise none. The no-duplicates clause proceeds by classical case analysis on the existence predicates, extracts the chosen events via their specification lemmas, and concludes equality of indices from injectivity of the minimal-index map. The completeness clause directly exhibits the minimal index of an arbitrary event and applies the specification lemma to witness that the event appears there.

why it matters in Recognition Science

This definition supplies the concrete schedule object required by the atomic_tick_countable theorem, which asserts existence of a countable atomic schedule that posts exactly one event per tick and visits every event without repetition. It realizes the constructive serialization result stated in the Atomicity module, thereby tightening the T2 forcing step with an axiom-free topological ordering for finite histories. In the larger framework the construction supports the eight-tick octave and the atomic tick as the fundamental time quantum while remaining independent of the phi-ladder and the recognition composition law.

scope and limits

Lean usage

refine ⟨scheduleByMinIndex (ev := ev), ?_, ?_⟩

formal statement (Lean)

 385noncomputable def scheduleByMinIndex : CountableSchedule E.Event :=

proof body

Definition body.

 386{ postAt := fun n =>
 387    if h : ∃ e : E.Event, minIndex (E:=E) e = n then
 388      some (Classical.choose h)
 389    else none
 390, nodup := by
 391    intro n₁ n₂ e h₁ h₂
 392    classical
 393    unfold scheduleByMinIndex at h₁ h₂
 394    simp only at h₁ h₂
 395    rcases Classical.decEq (∃ e, minIndex (E:=E) e = n₁) with hdec₁ | hdec₁
 396    · simp [scheduleByMinIndex._match_1, hdec₁] at h₁
 397    · rcases h₁
 398    rcases Classical.decEq (∃ e, minIndex (E:=E) e = n₂) with hdec₂ | hdec₂
 399    · simp [scheduleByMinIndex._match_1, hdec₂] at h₂
 400    · rcases h₂
 401    -- In the `some` branches on both sides
 402    have hsome₁ : ∃ e, minIndex (E:=E) e = n₁ := by
 403      by_contra H; simp [scheduleByMinIndex._match_1, H] at h₁
 404    have hsome₂ : ∃ e, minIndex (E:=E) e = n₂ := by
 405      by_contra H; simp [scheduleByMinIndex._match_1, H] at h₂
 406    let e₁ := Classical.choose hsome₁
 407    let e₂ := Classical.choose hsome₂
 408    have he₁ : minIndex (E:=E) e₁ = n₁ := (Classical.choose_spec hsome₁)
 409    have he₂ : minIndex (E:=E) e₂ = n₂ := (Classical.choose_spec hsome₂)
 410    -- The `some` payloads must coincide with `e`
 411    have : e₁ = e := by
 412      have : some e₁ = some e := by simpa [scheduleByMinIndex._match_1, he₁] using h₁
 413      exact by cases this; rfl
 414    have : e₂ = e := by
 415      have : some e₂ = some e := by simpa [scheduleByMinIndex._match_1, he₂] using h₂
 416      exact by cases this; rfl
 417    -- Conclude equality of indices by injectivity of `minIndex`
 418    simpa [this, he₁, he₂]
 419, complete := by
 420    intro e
 421    classical
 422    refine ⟨minIndex (E:=E) e, ?_⟩
 423    simp [scheduleByMinIndex, scheduleByMinIndex._match_1, minIndex_spec (E:=E) e]
 424      -- exhibits the chosen `e` at its minimal index
 425}
 426
 427/-- Countable atomic schedule (enumerative). Posts exactly one event per tick,
 428    visits every event, with no duplicates. -/

used by (1)

From the project-wide theorem graph. These declarations reference this one in their body.

depends on (17)

Lean names referenced from this declaration's body.