Vote bookkeeping for fixed-time repetition #
This file connects the finite-control vote vector of NTM.repeatAtTime to the
block-event majority API and provides the update invariant used by the outer
trial induction.
def
Complexity.NTM.repeatTrialVote
{n : ℕ}
(tm : NTM n)
(x : List Bool)
(k T : ℕ)
(seed : Fin (k * T) → Bool)
(j : Fin k)
:
Verdict of source trial j in a compact k * T repetition seed.
Equations
- tm.repeatTrialVote x k T seed j = decide ((Complexity.blocksEquiv k T) seed j ∈ tm.repeatAcceptEvent x T)
Instances For
def
Complexity.NTM.repeatVotes
{n : ℕ}
(tm : NTM n)
(x : List Bool)
(k T : ℕ)
(seed : Fin (k * T) → Bool)
:
The vector of all source-trial verdicts in a compact repetition seed.
Equations
- tm.repeatVotes x k T seed j = tm.repeatTrialVote x k T seed j
Instances For
votes contains the expected verdicts below m and false in every
not-yet-completed trial slot.
Equations
Instances For
theorem
Complexity.NTM.RepeatVotesThrough.zero
{k : ℕ}
(expected : Fin k → Bool)
:
RepeatVotesThrough expected (fun (x : Fin k) => false) 0
theorem
Complexity.NTM.RepeatVotesThrough.update
{k : ℕ}
{expected votes : Fin k → Bool}
{m : ℕ}
(hm : m < k)
(h : RepeatVotesThrough expected votes m)
:
RepeatVotesThrough expected (Function.update votes ⟨m, hm⟩ (expected ⟨m, hm⟩)) (m + 1)
Recording trial m advances the vote invariant by one slot.
theorem
Complexity.NTM.RepeatVotesThrough.eq_expected
{k : ℕ}
{expected votes : Fin k → Bool}
(h : RepeatVotesThrough expected votes k)
:
Once all k trials are recorded, the finite-control vector is the full
expected vote vector.