Initialization stages and epoch-bounded attention counting #
In a priority schedule action : ℕ → Option ℕ, an action of i < e at stage s initializes e
at run index s + 1 ∈ initializationStages action e = ⋃ i < e, attentionStages action i. When e
acts at most once per epoch between higher-priority actions, every action of e after its first is
preceded by a distinct initialization stage, giving (attentionStages action e).ncard ≤ (initializationStages action e).ncard + 1 and the inductive 2 ^ e / 2 ^ e - 1 bounds.
References #
- R. I. Soare, Recursively Enumerable Sets and Degrees, Springer, 1987, Chapters VII.1 and VII.2.
Stage 0 is never an initialization stage.
Priority 0 has no higher-priority requirements and is never initialized.
A lower-priority requirement has at least the initialization stages of a higher-priority one.
Stepping from priority e to e + 1 adds the attention stages of e.
The initialization stages of e are the union of the attention stages of i < e.
Initialization stages and attention stages of the same requirement are disjoint.
If every i < e receives attention finitely often, e is initialized finitely often.
The number of initializations of e sums the attention counts of i < e.
At most one action per epoch. If e is initialized finitely often and some i < e acts
between any two actions of e, then e acts at most (initializationStages action e).ncard + 1
times.
Exponential attention bound. When every requirement acts at most once per epoch, priority
e receives attention at most 2 ^ e times.
Initialization bound 2 ^ e - 1. When every requirement acts at most once per epoch,
priority e is initialized at most 2 ^ e - 1 times.