FIDE: the Dutch-pairing check run
Result: 33 presented pairings were checked on 2 October 2026 — 13
hand-built round cases (H5-01 through H5-13) and 20 generated tournaments
(RTG01 through RTG20) — with bbpPairings v6.0.0 on one side and the Arxo
package fide.swiss 0.1.0 with law 0.1.1 on the other. On the absolute
criteria [C1]–[C3] there are zero false accepts and zero false refusals
across all 33 presented pairings. 27 cases agree fully; the remaining 6
(H5-02, H5-03, H5-04, H5-11, H5-12, H5-13) are differences of checking
subject, not of the rules: pairings clean under [C1]–[C3] are rejected by
the check mode as non-optimal, without a named criterion. The numbers
belong to bbpPairings v6.0.0, rules C.04.3 effective 1 February 2026, and
the stated case bank.
The task and the reference
Section titled “The task and the reference”Pairing construction is outside the Arxo package; Arxo checks a presented pairing. The external reference does both: bbpPairings builds Dutch-system pairings and its check mode verifies a presented tournament file against its own result. The bank presents pairings — a hand-built five-round history whose last round is the case, plus twenty machine-generated tournaments (nine players, four rounds, seeds 1 through 20) — and asks both sides for a verdict. The absolute criteria under check are [C1] (no repeated pairings), [C2] (no second pairing bye) and [C3] (absolute colour constraints); the full criterion set runs [C1]–[C21]. The public pages of the references are bbpPairings and the FIDE Handbook.
What “agreement” means here
Section titled “What “agreement” means here”The two checkers answer different questions by construction, and the run records both. The check mode accepts only its own optimum over [C1]–[C21] and reports differing pairs without naming a criterion. Arxo checks compliance of the presented pairing with [C1]–[C3] and names each violation with a proof graph. A case agrees when both verdicts coincide — both accept, or both reject the same pairing. The six divergent cases are pairings the absolute-criteria check finds clean and the check mode rejects as non-optimal; the contract fixes this reading of scope before the run, and history rounds 1–3 count for neither side.
Results
Section titled “Results”| Case | Presented round | Check mode | Arxo | Outcome |
|---|---|---|---|---|
| H5-01 | round 4 built by the reference tool | ACCEPT | complies, TRUE_ONLY with proof | match |
| H5-02 | round 5, leader scheme | REJECT (5 pairs) | complies, TRUE_ONLY with proof | subject difference |
| H5-03 | round 5, fifty-percent boundary | REJECT (5 pairs) | complies, TRUE_ONLY with proof | subject difference |
| H5-04 | same round as H5-02 | REJECT (5 pairs) | collected score set {-1} for the bye player: the unplayed round does not count | subject difference |
| H5-05 | round 4, a repeated pairing | REJECT (3 pairs) | violated [C1] with proof | match: both reject; only Arxo names the criterion |
| H5-06 | same pair, colours flipped | REJECT (3 pairs) | violated [C1] with proof | match: both reject; only Arxo names the criterion |
| H5-07 | round 4, bye for a twice-rested player | REJECT (3 pairs) | violated [C2] with proof | match: both reject; only Arxo names the criterion |
| H5-08 | round 4, bye after a forfeit win | REJECT (2 pairs) | violated [C2] with proof | match: both reject; only Arxo names the criterion |
| H5-09 | round 4, both players black on difference | REJECT (4 pairs) | violated [C3] with proof | match: both reject; only Arxo names the criterion |
| H5-10 | round 4, both players white on the other colour rule | REJECT (3 pairs) | violated [C3] with proof | match: both reject; only Arxo names the criterion |
| H5-11 | round 5, leader-against-leader board | REJECT (3 pairs) | complies, TRUE_ONLY with proof | subject difference |
| H5-12 | round 5, colour difference against no preference | REJECT (4 pairs) | complies, TRUE_ONLY with proof | subject difference |
| H5-13 | same round as H5-11 | REJECT (3 pairs) | collected score set {0}: only played rounds count | subject difference |
| RTG01–RTG20 | 20 generated tournaments, round 4 each | 20 of 20 ACCEPT | 20 of 20 complies with proof | 20 of 20 match |
Where the two systems behave differently
Section titled “Where the two systems behave differently”The check mode verifies against its own optimum over [C1]–[C21]: any presented pairing that is not its own optimum is rejected with a list of differing pairs and no criterion named. Arxo verifies compliance with [C1]–[C3] and names the violated criterion with a proof whenever it rejects. So in H5-02, H5-03, H5-04, H5-11, H5-12 and H5-13 Arxo accepts with a proof of zero absolute-criteria violations — confirmed by an independent absolute-criteria reading of the same files — while the check mode rejects them as non-optimal. The reverse never happens: every mutation of the bank (H5-05 through H5-10) is rejected by both sides, and every machine-built tournament (H5-01, RTG01–RTG20) is accepted by both.
Where the model stops
Section titled “Where the model stops”Construction is outside the package: criteria [C4]–[C21], colour allocation and the pairing search itself are not modelled — Arxo checks what is presented and says nothing about what the best pairing would be. The run covers the Dutch system only, with standard points and a pairing-allocated bye value of 1. Twenty generated tournaments stand in for scale; the multi-thousand-tournament scale of the program approval procedure is outside this run. Accelerated and non-Dutch systems, free points and adjournments were not exercised.
Reproducing the run
Section titled “Reproducing the run”Pin the reference: bbpPairings v6.0.0 (tag 21c01d5d, commit
16a000f9, 1 February 2026; tarball SHA-256 starting b7f95c08),
built from sources. Pin the rules: C.04.3 effective 1 February 2026
(SHA-256 starting 4c3777fd, matching the package sources) and the
tournament-file format description (SHA-256 starting fadb222d). Pin
the Arxo side: package fide.swiss 0.1.0 with law 0.1.1. Each case is
one check-mode call over the presented tournament file plus one
law ask fide.swiss call per question (compliance, and where relevant
the collected score); the check mode always exits zero, so its verdict
is read from the round section of its output, not from the exit code.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.