nx_de_referee_gate.nx
buildroot/runtime/nx_de_referee_gate.nx
about
nx_de_referee_gate.nx -- THE GATE FOR THE PER-REGION CIEDE2000 REFEREE, 2026-09-03.
SUBJECT: dr_region_de / dr_run in-process (nx_de_referee_lib has no main).
THE THREE TEETH THAT CARRY THE CLAIM ARE T4, T5 AND T9, and every one of them is a law the estate has
already been bitten by:
T4 ZERO REGIONS MUST NOT PASS. A tooth that passes on the empty set is not a tooth, and a referee that
returns PASS when it measured nothing is the most dangerous possible green.
T5 ALL-UNOBSERVED MUST NOT PASS either -- declaring regions and sampling none of them is the same
vacuum wearing a denominator.
T9 AN UNOBSERVED REGION RESCUES NOTHING. If one measured region is out of tolerance, adding empty
regions beside it must not turn the verdict green. That is the abstain-never-acquit law in the one
direction where getting it wrong is silent.
Teeth, in order:
T1 identical colours give a difference of exactly zero.
T2 a real difference is non-zero (so T1 cannot pass on a stub that always returns zero).
T3 the WORST region is correctly identified, not the first or the last.
T4 zero declared regions -> ABSTAIN, never PASS.
T5 all regions unobserved -> ABSTAIN, never PASS.
T6 the partition RECONCILES: measured + unobserved == declared, always.
T7 a render inside tolerance PASSES.
T8 a render outside tolerance FAILS -- with T7 this proves the verdict is not a constant.
T9 an unobserved region does not rescue a failing measured one.
T10 NEG-CONTROL: a non-positive tolerance REFUSES rather than judging against nothing.
license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
dependencies 3 imports · 0 importers
imports: nx_syscalls.nxnx_gate_verdict.nxnx_de_referee_lib.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 31 | const DG_SLOT: i64 = 8 |
| 32 | const DG_LAB: i64 = 3 |
| 33 | const DG_N: i64 = 4 |
| 34 | const DG_MICRO: i64 = 1000000 |
functions
| 36 | func dg_q(micro: i64) -> i64 { return fq_div(fq_from_int(micro), fq_from_int(DG_MICRO)) } |
| 38 | func main(argc: i64, argv: *i64) -> i64 |