code wiki / (root) / nx_de_referee_gate.nx

nx_de_referee_gate.nx

buildroot/runtime/nx_de_referee_gate.nx

8030 B149 linesdepth 5pulls 8 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

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

nx_syscalls.nx nx_gate_verdict.nx nx_de_referee_lib.nx nx_de_referee_gate.nx

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

main gv_ctr sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ gv_head gv_puts sys_write ↻ cs_ctx sys_mmap ↻ fq_ctx sys_mmap ↻ fq_atan_small fq_mul fq_atanh_small fq_mul ↻ fq_mul ↻ fq_div fq_sqrt fq_bitlen fq_isqrt vm_isqrt fq_div ↻ fq_from_int fq_mul ↻ sys_mmap ↻ dg_q fq_div ↻

structs

none

consts

31const DG_SLOT: i64 = 8
32const DG_LAB: i64 = 3
33const DG_N: i64 = 4
34const DG_MICRO: i64 = 1000000

functions

36func dg_q(micro: i64) -> i64 { return fq_div(fq_from_int(micro), fq_from_int(DG_MICRO)) }
called by 1: main calls 2: fq_divfq_from_int
38func main(argc: i64, argv: *i64) -> i64