nx_scene_compose_gate.nx
buildroot/runtime/nx_scene_compose_gate.nx
about
nx_scene_compose_gate.nx -- PG10: DOES A SCENE COMPOSE OVER THE LIVE SOLVER, AND DOES AN IMPOSSIBLE ONE REFUSE BY NAME?
SUBJECT: nx_part_solver_lib.ps_scene_compose (in-process). The rung's done-rule in its own words: a scene composes
over ps_solve with no second solver, and an unsatisfiable scene REFUSES by name. Every geometric claim below is
RECOMPUTED from the solver's own positions and extents, never read back from the composer's say-so, and every
value is emitted with gv_kv. Fixtures are in-memory strings, so the gate leaks no filesystem state.
dependencies 3 imports · 0 importers
imports: nx_syscalls.nxnx_gate_verdict.nxnx_part_solver_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
| 10 | const SG_SITE_EX: i64 = 120 |
| 11 | const SG_SITE_EY: i64 = 120 |
| 12 | const SG_BAND_LO: i64 = 16 // max(hut ex 12, ey 10) + being r 2 + SC_GAP 2 -- the composer's own derivation |
| 13 | const SG_BAND_HI: i64 = 56 // lo + SC_NEAR |
| 14 | const SG_SCENE_PARTS: i64 = 12 // site + sea + hut + shed + 6 trees + 2 beings |
functions
| 16 | func sg_scene() -> *u8 called by 1: main |
| 19 | func sg_unsat() -> *u8 called by 1: main |
| 22 | func sg_badrow() -> *u8 called by 1: main |
| 25 | func sg_abs(v: i64) -> i64 { if v < 0 { return 0 - v } return v } |
| 26 | func sg_max(a: i64, b: i64) -> i64 { if a > b { return a } return b } called by 1: sg_sep |
| 28 | func sg_sep(i: i64, j: i64) -> i64 |
| 34 | func main() -> i64 |