Documentation

CordialMiners.Ref.WeightedCollector

structure CordialMiners.WCertState (P : Type u_2) :
Type u_2

The collector state: the accepted signer set, the accumulated weight, and whether a certificate has been emitted.

Instances For

    The initial collector state.

    Equations
    Instances For
      def CordialMiners.collectorStep {P : Type u_1} [DecidableEq P] (S : CommitteeSnapshot P) (ok : PBool) (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 : PBool) {st : WCertState P} (h : WCertState.Inv S st) (p : 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.