code wiki / _hdl_build / nx_stackaudit_census_gate.nx
nx_stackaudit_census_gate.nx source
↩ module page · 131 lines · 6161 B
1// nx_stackaudit_census_gate.nx -- gate for the sovereign full-stack auditor. Proves the EXACT
2// production code path (sax_eval + sax_census) on /tmp fixtures it writes itself (self-contained:
3// survives WSL /tmp cold-boot wipes; fixture bytes identical every run so non-truncating rewrites
4// stay deterministic). NEGATIVE CONTROLS are load-bearing: last-verdict-wins cannot fabricate a
5// green (T2), a missing file reads UNKNOWN not GREEN (T3), and the anti-rot liar-kill fires when
6// EXPECTED evidence is absent (T6 uses table t=1 whose 3rd row points at a never-created path).
7// verdict GREEN iff 8/8. license_tier: ORIGINAL
8import "nx_stackaudit_lib.nx"
9
10func sag_row(name: *u8, ok: i64) -> i64 {
11 _p("SAGATE row=" as *u8); _p(name)
12 if ok == 1 { _p(" verdict=PASS\n" as *u8) } else { _p(" verdict=FAIL\n" as *u8) }
13 if ok == 1 { return 1 }
14 return 0
15}
16
17func main(argc: i64, argv: *i64) -> i64 {
18 var pass: i64 = 0
19 let ev: *i64 = sys_mmap(32) as *i64
20 let buf: *u8 = sys_mmap(4096)
21
22 // fixtures (same bytes every run -> deterministic even without truncate-on-write)
23 var o: i64 = 0
24 o = ss_cat(buf, 0, "SAFX step=1 verdict=RED\nSAFX step=2 verdict=GREEN\n" as *u8)
25 ss_writefile("/tmp/sa_fx_g.log" as *u8, buf, o)
26 o = ss_cat(buf, 0, "SAFX meter=live permil=347 grade=D\n" as *u8)
27 ss_writefile("/tmp/sa_fx_p.log" as *u8, buf, o)
28 o = ss_cat(buf, 0, "SAFX only verdict=GREEN\n" as *u8)
29 ss_writefile("/tmp/sa_fx_g2.log" as *u8, buf, o)
30 o = ss_cat(buf, 0, "SAFX good verdict=GREEN\nSAFX later verdict=RED\n" as *u8)
31 ss_writefile("/tmp/sa_fx_r.log" as *u8, buf, o)
32 o = ss_cat(buf, 0, "SAFX nothing to parse here\n" as *u8)
33 ss_writefile("/tmp/sa_fx_noise.log" as *u8, buf, o)
34
35 // T1 gate-liveness last-wins GREEN (RED then GREEN -> GREEN)
36 sax_eval(2, "/tmp/sa_fx_g.log" as *u8, "verdict=" as *u8, ev)
37 var ok: i64 = 0
38 if ev[0] == 1 { if ev[2] == 0 { ok = 1 } }
39 pass = pass + sag_row("T1-last-wins-green" as *u8, ok)
40
41 // T2 NEG (load-bearing): GREEN then RED -> RED, a stale green can NOT survive
42 sax_eval(2, "/tmp/sa_fx_r.log" as *u8, "verdict=" as *u8, ev)
43 ok = 0
44 if ev[0] == 2 { if ev[2] == 0 { ok = 1 } }
45 pass = pass + sag_row("T2-neg-last-wins-red" as *u8, ok)
46
47 // T3 NEG: missing file -> UNKNOWN + missing flag, never GREEN (no fabricated liveness)
48 sax_eval(2, "/tmp/sa_fx_never.log" as *u8, "verdict=" as *u8, ev)
49 ok = 0
50 if ev[0] == 0 { if ev[2] == 1 { ok = 1 } }
51 pass = pass + sag_row("T3-neg-missing-unknown" as *u8, ok)
52
53 // T4 permil-derive parses the real token
54 sax_eval(1, "/tmp/sa_fx_p.log" as *u8, "permil=" as *u8, ev)
55 ok = 0
56 if ev[0] == 3 { if ev[1] == 347 { ok = 1 } }
57 pass = pass + sag_row("T4-permil-347" as *u8, ok)
58
59 // T5 NEG: file present but token absent -> missing evidence, not a number
60 sax_eval(1, "/tmp/sa_fx_noise.log" as *u8, "permil=" as *u8, ev)
61 ok = 0
62 if ev[0] == 0 { if ev[2] == 1 { ok = 1 } }
63 pass = pass + sag_row("T5-neg-token-absent" as *u8, ok)
64
65 // T6 NEG (the census-level anti-rot liar-kill): table t=1 row 3 EXPECTS /tmp/sa_fx_never.log
66 // which is never created -> conflicts=1 -> census verdict RED. Proves rot screams.
67 let out1: *i64 = sys_mmap(128) as *i64
68 let v1: i64 = sax_census(1, 0, out1)
69 ok = 0
70 if v1 == 1 { if out1[5] == 1 { if out1[1] == 1 { if out1[3] == 1 { if out1[4] == 1 { ok = 1 } } } } }
71 pass = pass + sag_row("T6-neg-liar-kill-fires" as *u8, ok)
72
73 // T7 POS: table t=2 fully evidenced -> verdict GREEN, counts exact (green=2 measured=1 unknown=0)
74 let out2: *i64 = sys_mmap(128) as *i64
75 let v2: i64 = sax_census(2, 0, out2)
76 ok = 0
77 if v2 == 0 { if out2[5] == 0 { if out2[1] == 2 { if out2[3] == 1 { if out2[4] == 0 { if out2[6] == 347 { ok = 1 } } } } } }
78 pass = pass + sag_row("T7-pos-green-path" as *u8, ok)
79
80 // T8 determinism: same table, two runs, identical outputs
81 let out3: *i64 = sys_mmap(128) as *i64
82 let v3: i64 = sax_census(2, 0, out3)
83 ok = 1
84 if v3 != v2 { ok = 0 }
85 var k: i64 = 0
86 while k < 8 { if out3[k] != out2[k] { ok = 0 } k = k + 1 }
87 pass = pass + sag_row("T8-deterministic" as *u8, ok)
88
89 // ---- TRIANGULATION (anti-self-validation) ----
90 // T9 health signal: gate-GREEN witness = healthy; permil below/above FLOOR = broken/healthy
91 ok = 0
92 if sax_healthy(2, 1, 0 - 1) == 1 { if sax_healthy(1, 3, 347) == 0 { if sax_healthy(1, 3, 947) == 1 { ok = 1 } } }
93 pass = pass + sag_row("T9-health-signal" as *u8, ok)
94
95 // T10 two witnesses AGREE (both healthy) -> triangulated
96 ok = 0
97 if sax_tri_status(1, 2, 0, 1) == 2 { ok = 1 }
98 pass = pass + sag_row("T10-agree-triangulated" as *u8, ok)
99
100 // T11 NEG (load-bearing): witnesses DISAGREE -> CONFLICT caught, never silently merged
101 ok = 0
102 if sax_tri_status(1, 2, 0, 0) == 3 { ok = 1 }
103 pass = pass + sag_row("T11-neg-disagree-conflict" as *u8, ok)
104
105 // T12 NEG: 2nd source DECLARED but ABSENT -> single-source, NOT a fabricated conflict
106 ok = 0
107 if sax_tri_status(1, 2, 1, 0) == 1 { ok = 1 }
108 pass = pass + sag_row("T12-neg-absent-2nd-single" as *u8, ok)
109
110 // T13 end-to-end conflict: table t=3 = one rung, primary GREEN vs 2nd source RED ->
111 // tri_conflict=1 -> census verdict RED (inconsistent evidence is untrustworthy)
112 let out4: *i64 = sys_mmap(128) as *i64
113 let v4: i64 = sax_census(3, 0, out4)
114 ok = 0
115 if v4 == 1 { if out4[9] == 1 { if out4[8] == 0 { if out4[5] == 0 { ok = 1 } } } }
116 pass = pass + sag_row("T13-neg-e2e-tri-conflict-reddens" as *u8, ok)
117
118 // T14 POS: t=2 green path triangulates row0 (agreeing 2nd source), stays GREEN
119 let out5: *i64 = sys_mmap(128) as *i64
120 let v5: i64 = sax_census(2, 0, out5)
121 ok = 0
122 if v5 == 0 { if out5[8] == 1 { if out5[9] == 0 { if out5[10] == 2 { ok = 1 } } } }
123 pass = pass + sag_row("T14-pos-triangulated-green" as *u8, ok)
124
125 _p("SAGATE pass=" as *u8); _fn(1, pass); _p("/14 verdict=" as *u8)
126 var rc: i64 = 1
127 if pass == 14 { rc = 0 }
128 if rc == 0 { _p("GREEN\n" as *u8) } else { _p("RED\n" as *u8) }
129 sys_exit(rc)
130 return rc
131}