nx_ladder_gate.nx source
↩ module page · 172 lines · 14465 B
1// nx_ladder_gate.nx -- GATE for the ladder ruler (nx_ladder_lib), driven IN-PROCESS on planted plan rows: a fully
2// declared ladder (two dated targets, every rung placed, every role counted), a plan with rungs but no targets (NO-LADDER,
3// labeled not refused), a target whose bar row does not exist (UNDATED), a target with an unknown class, a rung with no
4// rungrole row, a rung with an unknown role, a rungrole row naming an undeclared target, a board with only best-in-class,
5// an orphan rungrole row naming no rung, a target id declared twice, a rung placed twice (a duplicate role, counted apart
6// from orphans), NUL-terminated lines as the ranker hands them over, and a mixed board whose partition must sum. Every fixture asserts its own condition first.
7// license_tier: ORIGINAL No hw writes (Rule 26).
8import "nx_syscalls.nx"
9import "nx_barfresh_lib.nx"
10import "nx_ladder_lib.nx"
11import "nx_gate_verdict.nx"
12
13const G_I64: i64 = 8
14const G_MAX: i64 = 8
15const G_FULL: *u8 = "sotabar|B1|2026-08|absa|what august says|k1|note\nsotabar|B2|2026-07|dim|what july says|k2|note\nsotatarget|T-BIC|best-in-class|B1|fine-tuned encoders and LLMs|k1\nsotatarget|T-FR|frontier|B2|generative quads and dimensional VA|k2\nrung|R1|the ruler|sym1|d|Organ|1|-\nrung|R2|the arm|sym2|d|Organ|1|R1\nrung|R3|the contender|sym3|d|Organ|1|R1,R2\nrung|R4|the old target|sym4|d|Organ|1|-\nrungrole|R1|substrate|T-FR|the frontier scores on it\nrungrole|R2|arm|T-FR|triangulates the frontier\nrungrole|R3|contender|T-BIC|its done-rule is a number against best in class\nrungrole|R4|superseded|T-BIC|kept as capability, retired as a claim\n"
16const G_FULL_RUNGS: i64 = 4
17const G_FULL_TARGETS: i64 = 2
18const G_NOLADDER: *u8 = "rung|R1|the ruler|sym1|d|Organ|1|-\nlog|1|R1|measure|no targets declared\n"
19const G_UNDATED: *u8 = "sotatarget|T-BIC|best-in-class|B9|no such bar|k1\nsotatarget|T-FR|frontier|B9|no such bar either|k2\nrung|R1|r|s|d|Organ|1|-\nrungrole|R1|substrate|T-FR|why\n"
20const G_BADCLASS: *u8 = "sotabar|B1|2026-08|s|says|k1|n\nsotatarget|T-X|leader|B1|an unknown class|k1\nsotatarget|T-FR|frontier|B1|ok|k1\nrung|R1|r|s|d|Organ|1|-\nrungrole|R1|substrate|T-FR|why\n"
21const G_UNPLACED: *u8 = "sotabar|B1|2026-08|s|says|k1|n\nsotatarget|T-BIC|best-in-class|B1|ok|k1\nsotatarget|T-FR|frontier|B1|ok|k1\nrung|R1|r|s|d|Organ|1|-\nrung|R2|r|s|d|Organ|1|R1\nrungrole|R1|substrate|T-FR|why\n"
22const G_BADROLE: *u8 = "sotabar|B1|2026-08|s|says|k1|n\nsotatarget|T-BIC|best-in-class|B1|ok|k1\nsotatarget|T-FR|frontier|B1|ok|k1\nrung|R1|r|s|d|Organ|1|-\nrungrole|R1|helper|T-FR|an unknown role\n"
23const G_BADTARGET: *u8 = "sotabar|B1|2026-08|s|says|k1|n\nsotatarget|T-BIC|best-in-class|B1|ok|k1\nsotatarget|T-FR|frontier|B1|ok|k1\nrung|R1|r|s|d|Organ|1|-\nrungrole|R1|arm|T-NOWHERE|names a target nobody declared\n"
24const G_ONLY_BIC: *u8 = "sotabar|B1|2026-08|s|says|k1|n\nsotatarget|T-BIC|best-in-class|B1|ok|k1\nrung|R1|r|s|d|Organ|1|-\nrungrole|R1|contender|T-BIC|why\n"
25const G_ORPHAN: *u8 = "sotabar|B1|2026-08|s|says|k1|n\nsotatarget|T-BIC|best-in-class|B1|ok|k1\nsotatarget|T-FR|frontier|B1|ok|k1\nrung|R1|r|s|d|Organ|1|-\nrungrole|R1|arm|T-FR|why\nrungrole|Z9|arm|T-FR|a rung that does not exist\n"
26const G_MIXED: *u8 = "sotabar|B1|2026-08|s|says|k1|n\nsotatarget|T-BIC|best-in-class|B1|ok|k1\nsotatarget|T-FR|frontier|B1|ok|k1\nrung|R1|r|s|d|Organ|1|-\nrung|R2|r|s|d|Organ|1|-\nrung|R3|r|s|d|Organ|1|-\nrung|R4|r|s|d|Organ|1|-\nrungrole|R1|substrate|T-FR|why\nrungrole|R2|helper|T-FR|bad role\nrungrole|R3|arm|T-GONE|bad target\n"
27const G_MIXED_RUNGS: i64 = 4
28// a declaration made twice (2026-09-14: search.plan carried two sotatarget rows for one bar and rung id R0c twice,
29// landed across a transport drop; only the rung id was refused, by the plan-graph rule)
30const G_DUPTARGET: *u8 = "sotabar|B1|2026-08|s|says|k1|n\nsotatarget|T-BIC|best-in-class|B1|ok|k1\nsotatarget|T-FR|frontier|B1|ok|k1\nsotatarget|T-FR|frontier|B1|declared twice|k1\nrung|R1|r|s|d|Organ|1|-\nrungrole|R1|contender|T-FR|why\n"
31const G_DUPTARGET_TARGETS: i64 = 3
32const G_DUPROLE: *u8 = "sotabar|B1|2026-08|s|says|k1|n\nsotatarget|T-BIC|best-in-class|B1|ok|k1\nsotatarget|T-FR|frontier|B1|ok|k1\nrung|R1|r|s|d|Organ|1|-\nrungrole|R1|contender|T-FR|why\nrungrole|R1|arm|T-BIC|the same rung placed twice\n"
33const G_DUPROLE_ROWS: i64 = 2
34const G_RULE_TARGET_DUP: *u8 = "TARGET-DUPLICATE"
35const G_RULE_ROLE_DUP: *u8 = "ROLE-DUPLICATE"
36const G_RULE_NONE: *u8 = "NONE"
37
38// two NUL-terminated strings byte-equal
39func g_str_is(a: *u8, b: *u8) -> i64 {
40 let n: i64 = bf_slen(a)
41 if n != bf_slen(b) { return 0 }
42 var i: i64 = 0
43 while i < n { if a[i] != b[i] { return 0 } i = i + 1 }
44 return 1
45}
46
47func g_copy(src: *u8) -> *u8 {
48 let n: i64 = bf_slen(src)
49 let d: *u8 = sys_mmap(n + 1)
50 var i: i64 = 0
51 while i < n { d[i] = src[i]; i = i + 1 }
52 d[n] = 0 as u8
53 return d
54}
55
56// classify a fixture; returns the rung count; c filled; first rung's placement in p0, first target's state in t0
57func g_run(fx: *u8, n: i64, c: *i64, p0: *i64, t0: *i64, roles: *i64, states: *i64) -> i64 {
58 let toff: *i64 = sys_mmap(G_MAX * G_I64) as *i64
59 let tcls: *i64 = sys_mmap(G_MAX * G_I64) as *i64
60 let tst: *i64 = sys_mmap(G_MAX * G_I64) as *i64
61 let roff: *i64 = sys_mmap(G_MAX * G_I64) as *i64
62 let rtgt: *i64 = sys_mmap(G_MAX * G_I64) as *i64
63 let nr: i64 = ld_classify(fx, n, toff, tcls, tst, roff, roles, rtgt, states, c)
64 p0[0] = LD_NONE
65 t0[0] = LD_NONE
66 if nr > 0 { p0[0] = states[0] }
67 if c[LD_N_TARGETS] > 0 { t0[0] = tst[0] }
68 return nr
69}
70
71func main() -> i64 {
72 gv_head("=== nx_ladder_gate -- every board names best-in-class and the frontier, dated, and every rung says what it is for ===" as *u8)
73 let c: *i64 = gv_ctr()
74 let cen: *i64 = sys_mmap(LD_N_COUNT * G_I64) as *i64
75 let p0: *i64 = sys_mmap(G_I64) as *i64
76 let t0: *i64 = sys_mmap(G_I64) as *i64
77 let roles: *i64 = sys_mmap(G_MAX * G_I64) as *i64
78 let states: *i64 = sys_mmap(G_MAX * G_I64) as *i64
79 // the fully declared ladder
80 var nr: i64 = g_run(G_FULL, bf_slen(G_FULL), cen, p0, t0, roles, states)
81 gv_check_eq("fixture-reached-the-condition: the full plan carries four rungs" as *u8, nr, G_FULL_RUNGS, c)
82 gv_check_eq("fixture-reached-the-condition: the full plan carries two targets" as *u8, cen[LD_N_TARGETS], G_FULL_TARGETS, c)
83 gv_check_eq("full-ladder-one-best-in-class" as *u8, cen[LD_N_BIC], 1, c)
84 gv_check_eq("full-ladder-one-frontier" as *u8, cen[LD_N_FRONTIER], 1, c)
85 gv_check_eq("full-ladder-every-target-dated (undated 0)" as *u8, cen[LD_N_UNDATED], 0, c)
86 gv_check_eq("full-ladder-every-rung-placed" as *u8, cen[LD_N_PLACED], G_FULL_RUNGS, c)
87 gv_check_eq("full-ladder-roles: one substrate" as *u8, cen[LD_N_SUBSTRATE], 1, c)
88 gv_check_eq("full-ladder-roles: one arm" as *u8, cen[LD_N_ARM], 1, c)
89 gv_check_eq("full-ladder-roles: one contender" as *u8, cen[LD_N_CONTENDER], 1, c)
90 gv_check_eq("full-ladder-roles: one superseded" as *u8, cen[LD_N_SUPERSEDED], 1, c)
91 gv_check_eq("full-ladder-roles-sum-to-placed" as *u8, ld_role_sum(cen), cen[LD_N_PLACED], c)
92 gv_check_eq("full-ladder-first-rung-is-substrate" as *u8, roles[0], LD_R_SUBSTRATE, c)
93 gv_check_eq("full-ladder-third-rung-is-contender" as *u8, roles[2], LD_R_CONTENDER, c)
94 gv_check_eq("full-ladder-verdict-LADDERED (exit 0)" as *u8, ld_verdict(cen), LD_EXIT_LADDERED, c)
95 gv_check_eq("full-ladder-declares-nothing-twice (duptarget + duprole 0)" as *u8, cen[LD_N_DUPTARGET] + cen[LD_N_DUPROLE], 0, c)
96 gv_check("full-ladder-has-no-refusal-rule (NONE)" as *u8, g_str_is(ld_refusal_rule(cen), G_RULE_NONE), c)
97 // no targets: labeled, not refused
98 nr = g_run(G_NOLADDER, bf_slen(G_NOLADDER), cen, p0, t0, roles, states)
99 gv_check_eq("no-targets-counts-zero-targets" as *u8, cen[LD_N_TARGETS], 0, c)
100 gv_check_eq("no-targets-is-NO-LADDER (exit 3), neither acquitted nor refused" as *u8, ld_verdict(cen), LD_EXIT_NOLADDER, c)
101 // undated targets
102 nr = g_run(G_UNDATED, bf_slen(G_UNDATED), cen, p0, t0, roles, states)
103 gv_check_eq("neg-control-a-target-whose-bar-row-does-not-exist-is-UNDATED" as *u8, t0[0], LD_T_UNDATED, c)
104 gv_check_eq("neg-control-undated-counts-both" as *u8, cen[LD_N_UNDATED], 2, c)
105 gv_check_eq("neg-control-undated-is-PARTIAL (exit 1): a target without a month is the day-costing defect" as *u8, ld_verdict(cen), LD_EXIT_PARTIAL, c)
106 // unknown class
107 nr = g_run(G_BADCLASS, bf_slen(G_BADCLASS), cen, p0, t0, roles, states)
108 gv_check_eq("neg-control-an-unknown-class-is-BADCLASS" as *u8, t0[0], LD_T_BADCLASS, c)
109 gv_check_eq("neg-control-badclass-is-PARTIAL" as *u8, ld_verdict(cen), LD_EXIT_PARTIAL, c)
110 // a rung with no rungrole row
111 nr = g_run(G_UNPLACED, bf_slen(G_UNPLACED), cen, p0, t0, roles, states)
112 gv_check_eq("fixture-reached-the-condition: two rungs, one rungrole row" as *u8, cen[LD_N_LADDER_ROWS], 1, c)
113 gv_check_eq("neg-control-a-rung-with-no-rungrole-row-is-UNPLACED (the second rung)" as *u8, states[1], LD_P_UNPLACED, c)
114 gv_check_eq("neg-control-unplaced-is-PARTIAL" as *u8, ld_verdict(cen), LD_EXIT_PARTIAL, c)
115 // unknown role
116 nr = g_run(G_BADROLE, bf_slen(G_BADROLE), cen, p0, t0, roles, states)
117 gv_check_eq("neg-control-an-unknown-role-is-BADROLE" as *u8, p0[0], LD_P_BADROLE, c)
118 gv_check_eq("neg-control-badrole-is-PARTIAL" as *u8, ld_verdict(cen), LD_EXIT_PARTIAL, c)
119 // rungrole row naming an undeclared target
120 nr = g_run(G_BADTARGET, bf_slen(G_BADTARGET), cen, p0, t0, roles, states)
121 gv_check_eq("neg-control-a-rungrole-row-naming-an-undeclared-target-is-BADTARGET" as *u8, p0[0], LD_P_BADTARGET, c)
122 gv_check_eq("neg-control-badtarget-is-PARTIAL" as *u8, ld_verdict(cen), LD_EXIT_PARTIAL, c)
123 // only best-in-class declared
124 nr = g_run(G_ONLY_BIC, bf_slen(G_ONLY_BIC), cen, p0, t0, roles, states)
125 gv_check_eq("fixture-reached-the-condition: one target, best-in-class" as *u8, cen[LD_N_BIC], 1, c)
126 gv_check_eq("neg-control-no-frontier-target-is-PARTIAL: a board must name the edge, not only the leader" as *u8, ld_verdict(cen), LD_EXIT_PARTIAL, c)
127 // an orphan rungrole row
128 nr = g_run(G_ORPHAN, bf_slen(G_ORPHAN), cen, p0, t0, roles, states)
129 gv_check_eq("neg-control-a-rungrole-row-naming-no-rung-is-an-orphan" as *u8, cen[LD_N_ORPHANS], 1, c)
130 gv_check_eq("neg-control-orphan-is-PARTIAL" as *u8, ld_verdict(cen), LD_EXIT_PARTIAL, c)
131 // a declaration made twice: a target id repeated, a rung placed twice
132 nr = g_run(G_DUPTARGET, bf_slen(G_DUPTARGET), cen, p0, t0, roles, states)
133 gv_check_eq("fixture-reached-the-condition: three target rows, two of them one id" as *u8, cen[LD_N_TARGETS], G_DUPTARGET_TARGETS, c)
134 gv_check_eq("neg-control-the-later-target-row-with-the-same-id-is-DUPLICATE (duptarget 1)" as *u8, cen[LD_N_DUPTARGET], 1, c)
135 gv_check_eq("the-first-target-row-keeps-its-own-state (DATED)" as *u8, t0[0], LD_T_DATED, c)
136 gv_check_eq("neg-control-a-duplicate-target-is-PARTIAL (exit 1)" as *u8, ld_verdict(cen), LD_EXIT_PARTIAL, c)
137 gv_check("the-refusal-names-its-rule (TARGET-DUPLICATE)" as *u8, g_str_is(ld_refusal_rule(cen), G_RULE_TARGET_DUP), c)
138 nr = g_run(G_DUPROLE, bf_slen(G_DUPROLE), cen, p0, t0, roles, states)
139 gv_check_eq("fixture-reached-the-condition: two rungrole rows for one rung" as *u8, cen[LD_N_LADDER_ROWS], G_DUPROLE_ROWS, c)
140 gv_check_eq("neg-control-a-rung-placed-twice-is-a-duplicate-role (duprole 1)" as *u8, cen[LD_N_DUPROLE], 1, c)
141 gv_check_eq("neg-control-the-duplicate-role-is-not-miscounted-as-an-orphan (orphans 0)" as *u8, cen[LD_N_ORPHANS], 0, c)
142 gv_check_eq("the-rung-stays-PLACED-by-its-first-row" as *u8, p0[0], LD_P_PLACED, c)
143 gv_check_eq("neg-control-a-duplicate-role-is-PARTIAL (exit 1)" as *u8, ld_verdict(cen), LD_EXIT_PARTIAL, c)
144 gv_check("the-refusal-names-its-rule (ROLE-DUPLICATE)" as *u8, g_str_is(ld_refusal_rule(cen), G_RULE_ROLE_DUP), c)
145 // NUL-terminated lines, as the ranker leaves its buffer
146 let nulled: *u8 = g_copy(G_FULL)
147 let nn: i64 = bf_slen(G_FULL)
148 var q: i64 = 0
149 var nuls: i64 = 0
150 while q < nn { if nulled[q] == (BF_NL as u8) { nulled[q] = 0 as u8; nuls = nuls + 1 } q = q + 1 }
151 gv_check("fixture-reached-the-condition: line ends replaced by NULs (more than four)" as *u8, (nuls > G_FULL_RUNGS) as i64, c)
152 nr = g_run(nulled, nn, cen, p0, t0, roles, states)
153 gv_check_eq("NUL-terminated-lines-find-every-rung" as *u8, nr, G_FULL_RUNGS, c)
154 gv_check_eq("NUL-terminated-lines-verdict-identical (LADDERED)" as *u8, ld_verdict(cen), LD_EXIT_LADDERED, c)
155 // a mixed board: the partition sums
156 nr = g_run(G_MIXED, bf_slen(G_MIXED), cen, p0, t0, roles, states)
157 gv_check_eq("mixed-board-counts-four-rungs" as *u8, nr, G_MIXED_RUNGS, c)
158 gv_check_eq("mixed-board-placed-one" as *u8, cen[LD_N_PLACED], 1, c)
159 gv_check_eq("mixed-board-badrole-one" as *u8, cen[LD_N_BADROLE], 1, c)
160 gv_check_eq("mixed-board-badtarget-one" as *u8, cen[LD_N_BADTARGET], 1, c)
161 gv_check_eq("mixed-board-unplaced-one" as *u8, cen[LD_N_UNPLACED], 1, c)
162 gv_check_eq("mixed-board-partition-sums-to-rungs" as *u8, ld_partition_sum(cen), cen[LD_N_RUNGS], c)
163 gv_check_eq("mixed-board-is-PARTIAL" as *u8, ld_verdict(cen), LD_EXIT_PARTIAL, c)
164 let mixed_sum: i64 = ld_partition_sum(cen)
165 gv_values_head()
166 gv_kv("full_rungs" as *u8, G_FULL_RUNGS)
167 gv_kv("full_targets" as *u8, G_FULL_TARGETS)
168 gv_kv("mixed_rungs" as *u8, nr)
169 gv_kv("mixed_partition_sum" as *u8, mixed_sum)
170 gv_kv("nul_line_ends" as *u8, nuls)
171 return gv_verdict("nx_ladder_gate" as *u8, c, "the ladder ruler proven on planted plan rows: a board with a dated best-in-class and a dated frontier target and a role on every rung is LADDERED with its roles summing to its placed rungs, a board with no target rows is NO-LADDER and neither acquitted nor refused, and every half-declared shape is PARTIAL with the offender named: an undated target, an unknown class, a rung with no rungrole row, an unknown role, a rungrole row naming an undeclared target, a board naming only the leader and not the edge, an orphan rungrole row, a target id declared twice, a rung placed twice (counted as a duplicate role, never as an orphan), each refusal naming its rule from the lib; NUL-terminated lines classify as newline-terminated ones and a mixed board sums its partition; every fixture asserts its own condition first" as *u8)
172}