nx_uxf_decode_gate.nx
buildroot/runtime/nx_uxf_decode_gate.nx
about
nx_uxf_decode_gate.nx -- the D001 MIGRATION of nx_uxf_decode_test onto nx_gate_verdict (2026-09-06).
This is the operator's HOUSE-OF-CARDS fix made mechanical: a reader that preserves fields it does not
understand, proven by CID EQUALITY after a round-trip rather than by inspection. It is the load-bearing
half of law 4 (data and functionality on independent clocks), and it was unpromotable because the original
hand-rolls its counters and verdict line, so nothing outside could read its outcome.
ALL FOUR TEETH PRESERVED IN ORDER AND PREDICATE. What changes: gv_check owns the counting so declared and
executed cannot diverge, the neg-control is NAMED so the gate-law census can find it, and gv_kv emits the
three CIDs and the field count so this gate's GREEN can be contradicted by anyone who re-encodes the record.
license_tier: ORIGINAL No hw writes (Rule 26).
dependencies 5 imports · 0 importers
imports: nx_gate_verdict.nxnx_syscalls.nxnx_canon_cid.nxnx_uxf_cid.nxnx_uxf_decode.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
| 18 | const UD_PTRTAB: i64 = 64 |
| 19 | const UD_DECTAB: i64 = 128 |
| 20 | const UD_CANON: i64 = 4096 |
| 21 | const UD_CIDBUF: i64 = 128 |
| 22 | const UD_NFIELDS: i64 = 3 |
| 23 | const UD_KNOWN_FIELDS: i64 = 2 // what an INTOLERANT reader would keep: it does not know 'c' |
| 24 | const UD_MAXDEC: i64 = 16 |
functions
| 26 | func ud_streq(a: *u8, b: *u8) -> i64 called by 1: main |
| 36 | func main(argc: i64, argv: *i64) -> i64 |