code wiki / _hdl_build / nx_plotgen_gate.nx

nx_plotgen_gate.nx

buildroot/runtime/_hdl_build/nx_plotgen_gate.nx

9054 B208 linesdepth 4pulls 7 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_plotgen_gate.nx -- CERTIFICATION of nx_plotgen (gamebench hard GAP; the operator's "our own plot generator"). T1 STRUCTURAL VALIDITY -- every choice target is in range, forward-only (acyclic), endings marked T2 ★SOLVABILITY ACROSS 200 SEEDS -- the graph is WALKED with the real sv_choose from nx_story_vm and must reach an ending every time. This is the unwinnable-quest killer, proven by execution not inspection. T3 NO DEAD ENDS -- every non-ending node offers at least one choice T4 DETERMINISM -- same seed -> byte-identical plot (a story is reproducible from its seed) T5 VARIETY -- different seeds -> materially different plots (not one template) T6 GATES ARE REAL -- generated plots actually contain flag-gated choices; without this, solvability would be trivially satisfied by emitting an ungated linear chain T7 ★ANTI-VACUITY -- a gated choice is GENUINELY BLOCKED when its flag is missing. Proves the gating is enforced rather than decorative, and that T2 passes on merit rather than because nothing gates. T8 composes: runs on nx_story_vm and the plot DATA round-trips through nx_gamesave license_tier: ORIGINAL expect_exit: 0

dependencies 4 imports · 0 importers

nx_syscalls.nx nx_plotgen.nx nx_gamesave.nx nx_gate_verdict.nx nx_plotgen_gate.nx

imports: nx_syscalls.nxnx_plotgen.nxnx_gamesave.nxnx_gate_verdict.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main pw sys_write 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 ↻ pg_gen sys_mmap ↻ pg_bit pg_rng pn sys_write ↻ sys_mmap ↻ pg_walk sys_mmap ↻ sv_is_end sv_choose sv_is_end ↻ sv_choose ↻ sys_unlinkat gs_save sys_mmap ↻ put64 gsc_put64 gs_cksum gsc_fold_bytes joinsuf slen

structs

none

consts

none

functions

19func pw(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 1: main calls 1: sys_write
20func pn(v: i64) -> i64
called by 1: main calls 2: sys_writesys_mmap
30func main() -> i64