Markdown for LLMs
FIDE: the Dutch-pairing check run
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# 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
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](https://github.com/BieremaBoyzProgramming/bbpPairings)
and the [FIDE Handbook](https://handbook.fide.com/).
## 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
| 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
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
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
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.