the same sense as is used with the evaluation of BOOLEAN expressions.
I find it fun and instructive to write pseudo code about these social matters that actually compiles.
Here briefly is my interpretation of the current desired way of voting augmented with short circuiting
Code: Select all
MODULE BBChairShortCircuit;
IMPORT
Services;
VAR
T: LONGINT; (*Termination time of vote*)
Q: INTEGER; (*Quorum number*)
q: INTEGER; (*Number of members who have voted*)
dB: INTEGER; (*Excess of Best score over the next runner up (not including abstain*)
M: INTEGER; (*Missing members who have not yet voted*)
(*
*)
PROCEDURE ShortCircuitVote* (VAR o: INTEGER): BOOLEAN;
VAR time: LONGINT;
BEGIN
time := Services.Ticks();
WHILE time < T DO
IF (M < dB) OR (Q<=q) THEN
(* o := Option(B); option that wins the vote*)
RETURN TRUE
END;
time := Services.Ticks();
END;
RETURN FALSE
END ShortCircuitVote;
END BBChairShortCircuit.
With that understanding a vote of 2 YES, 0 NO, 9 ABSTAIN would be considered valid and 'YES' for the measure would be the result of the vote.
So, I capitulate to the will of the people and abandon my effort to use the MajorityRule.
Comments