code wiki / _hdl_build / nx_symjudge_gate.nx
nx_symjudge_gate.nx
buildroot/runtime/_hdl_build/nx_symjudge_gate.nx
about
nx_symjudge_gate.nx -- gate for THE SYMBOLIC JUDGE (autonomous-builder lane, 2026-07-20).
On nx_gate_verdict (D001 migrate-on-touch law: new gates import THE lib). Proves the judge:
T1 a CORRECT fn passes its property contract -> verdict=GREEN rc=0
T1b domain fits budget -> mode=EXH (true bounded sweep, not a sample)
T1c checked == full domain size (1201 for -600..600) = exhaustiveness is real
T2 the OVERFIT-PATCH class is KILLED: a fn that passes its baked tests (dbl(2)=4, dbl(3)=6)
but is wrong elsewhere -> property sweep RED rc=1 (the class test-only judging cannot see)
T3 the first counterexample is REPORTED (SYMJVIOL line) = actionable, not just a verdict
T4 a CRASHING fn (SIGFPE at x=0) -> detected -> rc=2 (the fuzz-crash finding class)
T5 determinism: identical rerun -> byte-identical judge output
T6 fn with no contract row -> REFUSED rc=3 (fail-closed, never silently green)
Requires /tmp/nx_symjudge.sov.elf staged (nx_sov_build_run nx_symjudge --build-only).
license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
dependencies 5 imports · 0 importers
imports: nx_store_seed_lib.nxnx_seg_store.nxnx_deploy_lib.nxnx_gate_verdict.nxnx_syscalls.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
| 20 | const SJG_CAP: i64 = 65536 |
| 21 | const SJG_TAB: i64 = 9 |
| 22 | const SJG_NL: i64 = 10 |
functions
| 24 | func sjg_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } |
| 25 | func sjg_has(q: *u8, n: i64, s: *u8) -> i64 |
| 38 | func sjg_eqbuf(a: *u8, an: i64, b: *u8, bn: i64) -> i64 called by 1: main |
| 45 | func sjg_row(d: *u8, o0: i64, c0: *u8, c1: *u8, c2: *u8, c3: *u8, c4: *u8, c5: *u8, c6: *u8) -> i64 |
| 63 | func main() -> i64 |