Expand description
The round register: what current_round means, and why it only ever grows.
These are the first genuinely inductive results: they quantify over all reachable states of
one consensus instance (ConsensusInstance). They are used by both the locking invariants
and round advancement, so they are stated once, here.
Traitsยง
- Current
Round - Definition (Current round). The current round of an instance is
ChainManager::current_round, the lowest round in which the validator is still willing to vote. It is the round to whichround_timeoutapplies. - Current
Round Monotone - Invariant (The current round never decreases). Within one consensus instance,
current_roundis non-decreasing over time. - Round
Floor - Lemma (Round floor). Let
Mdenote - Vote
Round Below Current Round - Invariant (A cast vote never exceeds the current round). Immediately after a correct
validator casts a validation or confirmation vote in round
r, itscurrent_roundis at leastr; and byCurrentRoundMonotoneit stays at leastrfor the rest of the instance.