Signed margins of vote lists #
The signed margin is the number of correct votes minus the number of incorrect votes. A positive margin ensures that the existing strict-majority operation returns the supplied label, including a precise account of empty lists and ties.
Main definitions #
Cslib.BitString.listVoteMargin: the real-valued signed margin for analysis.Cslib.BitString.signedVote: one prediction's contribution to the margin.
Main results #
Cslib.BitString.listVoteMargin_cons: the change produced by one prediction.Cslib.BitString.listStrictMajority_eq_of_pos: positive margin guarantees the majority label.Cslib.BitString.listNonpositiveMargin_eq_true: the count test agrees with the real margin.
References #
Holenstein, Claim 2.16. Adapted from
Crypto/Computational/Pseudoentropy/Boosting/Vote.lean on the cslib crypto branch at
5ff69ca93402e7c947208dc56396d6d86203ccd8, reusing the shared strict-majority operation.
A correct prediction contributes one to the margin; an incorrect prediction subtracts one.
Instances For
Each vote contributes ±1 to the margin: |signedVote vote truth| = 1.
The empty vote list has margin zero.
Adding a predictor updates the margin by its signed prediction.
The training test agrees exactly with the real margin event used by the potential proof.
Reversing the label negates the signed margin of the same observable vote word.
The magnitude of the signed margin is at most the number of votes.
A positive signed margin guarantees that the executable majority predicts the label.