The initial collector state.
Instances For
def
CordialMiners.collectorStep
{P : Type u_1}
[DecidableEq P]
(S : CommitteeSnapshot P)
(ok : P → Bool)
(st : WCertState P)
(p : P)
:
One collector step on an incoming approval from p, whose validity is the abstract Boolean check
ok p. Reject once done, off-committee, a duplicate signer, or invalid; otherwise accept p, add
its weight, and emit once the threshold is crossed. One-shot and set-canonical.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The collector invariant (CERT-02): the accumulated weight equals the weight of the accepted signer
set, the signers are within the committee, and done implies the threshold was crossed.
Equations
- One or more equations did not get rendered due to their size.
Instances For
CERT-02 (base): the initial state satisfies the invariant.
theorem
CordialMiners.cert_04_step_inv
{P : Type u_1}
[DecidableEq P]
(S : CommitteeSnapshot P)
(ok : P → Bool)
{st : WCertState P}
(h : WCertState.Inv S st)
(p : P)
:
WCertState.Inv S (collectorStep S ok st p)
CERT-04: every collector step preserves the invariant.
theorem
CordialMiners.cert_03_collector_sound
{P : Type u_1}
(S : CommitteeSnapshot P)
{st : WCertState P}
(h : WCertState.Inv S st)
(hd : st.done = true)
:
CERT-03 (collector soundness): a state that has emitted holds a threshold-heavy signer set, so the emitted certificate is valid in the snapshot.