code wiki / _hdl_build / nx_k3_arch_census_gate.nx

nx_k3_arch_census_gate.nx source

↩ module page · 101 lines · 4616 B

1// nx_k3_arch_census_gate.nx -- gate for the K3-class arch census (authored ON nx_gate_verdict). 2// Load-bearing tooth T2: a HAVE/PARTIAL claim with evidence "none" is LIAR-KILLED to GAP -- our K3 3// coverage can never be inflated past what a shipped gate proves. 4// T1 coverage computed from the store (points/total/permille from HAVE=2/PARTIAL=1/GAP=0) 5// T2 LIAR-KILL: HAVE-claim + evidence none -> effective GAP + liar_killed count (anti-fake) 6// T3 effective-GAP rows surface under research_opps with their fetch guidance 7// T4 fail-closed on an unseeded store 8// T5 deterministic (two runs byte-identical) 9// license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0 10import "nx_store_seed_lib.nx" 11import "nx_seg_store.nx" 12import "nx_deploy_lib.nx" 13import "nx_gate_verdict.nx" 14import "nx_syscalls.nx" 15 16const KG_CAP: i64 = 262144 17const KG_PFX: i64 = 128 18 19func kg_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 20func kg_has(q: *u8, n: i64, s: *u8) -> i64 { 21 let sn: i64 = kg_slen(s) 22 if sn == 0 { return 1 } 23 var i: i64 = 0 24 while i + sn <= n { 25 var hit: i64 = 1 26 var j: i64 = 0 27 while j < sn { if q[i+j] != s[j] { hit = 0; j = sn } else { j = j + 1 } } 28 if hit == 1 { return 1 } 29 i = i + 1 30 } 31 return 0 32} 33func kg_mkpfx(dst: *u8, stem: *u8, epoch: i64) -> i64 { 34 var o: i64 = ss_cat(dst, 0, stem) 35 o = ss_catn(dst, o, epoch) 36 o = ss_cat(dst, o, "-" as *u8) 37 dst[o] = 0 as u8 38 return o 39} 40 41func main() -> i64 { 42 let ctr: *i64 = gv_ctr() 43 gv_head("nx_k3_arch_census gate -- honest K3 coverage, liar-killed (no inflation past shipped evidence)" as *u8) 44 let elf: *u8 = "/tmp/nx_k3_arch_census.sov.elf" as *u8 45 let outf: *u8 = "/tmp/kg_run.out" as *u8 46 let epoch: i64 = sys_now_realtime_sec() 47 let px: *u8 = sys_mmap(KG_PFX) 48 kg_mkpfx(px, "/tmp/kgf" as *u8, epoch) 49 // fixture: k1 strong(HAVE/HAVE, evid) ; k2 HAVE/PARTIAL but evidence=none -> LIAR-KILL ; k3 PARTIAL/GAP evid 50 let b: *u8 = sys_mmap(KG_CAP) 51 var o: i64 = 0 52 o = ss_cat(b, o, "k1\tstrong feature\tHAVE\tHAVE\tgate5of5\tmech1\tfetch-a\n" as *u8) 53 o = ss_cat(b, o, "k2\tinflated feature\tHAVE\tPARTIAL\tnone\tmech2\tFETCHKILL-target\n" as *u8) 54 o = ss_cat(b, o, "k3\tpartial feature\tPARTIAL\tGAP\tprims-exist\tmech3\tfetch-c\n" as *u8) 55 sts_seed(px, b, o) 56 57 let av: *i64 = sys_mmap(8*8) as *i64 58 av[0] = px as i64 59 let rc: i64 = dep_run_capture(elf, av, 1, outf) 60 let d: *u8 = sys_mmap(KG_CAP) 61 let dn: i64 = dp_read(outf, d, KG_CAP - 4) 62 63 // T1: coverage = k1(4) + k2(0 killed) + k3(1) = 5 / 12 = 416 permille 64 var t1: i64 = 0 65 if rc == 0 { if kg_has(d, dn, "\x22points\x22:5" as *u8) == 1 { if kg_has(d, dn, "\x22total\x22:12" as *u8) == 1 { if kg_has(d, dn, "\x22permille\x22:416" as *u8) == 1 { t1 = 1 } } } } 66 gv_check("T1 coverage computed from store (5/12 = 416 permille)" as *u8, t1, ctr) 67 68 // T2 LIAR-KILL: k2 claimed HAVE but evidence none -> effective GAP + liar_killed 1 69 var t2: i64 = 0 70 if kg_has(d, dn, "\x22liar_killed\x22:1}" as *u8) == 1 { if kg_has(d, dn, "\x22id\x22:\x22k2\x22,\x22feature\x22:\x22inflated feature\x22,\x22serve_pts\x22:0,\x22train_pts\x22:0,\x22effective\x22:\x22GAP\x22,\x22liar_killed\x22:1" as *u8) == 1 { t2 = 1 } } 71 gv_check("T2 LIAR-KILL: HAVE-claim + no evidence -> effective GAP + counted (no inflation)" as *u8, t2, ctr) 72 73 // T3: k2 gap surfaces in research_opps with its fetch text 74 var t3: i64 = 0 75 if kg_has(d, dn, "\x22research_opps\x22:[\x22k2: FETCHKILL-target\x22]" as *u8) == 1 { t3 = 1 } 76 gv_check("T3 effective-GAP rows -> research_opps with fetch guidance" as *u8, t3, ctr) 77 78 // T4: fail-closed unseeded 79 av[0] = "/tmp/kg_nope-" as *u8 as i64 80 let rc4: i64 = dep_run_capture(elf, av, 1, outf) 81 var t4: i64 = 0 82 if rc4 != 0 { t4 = 1 } 83 gv_check("T4 unseeded store -> fail-closed (no census over missing data)" as *u8, t4, ctr) 84 85 // T5: deterministic 86 av[0] = px as i64 87 let rc5: i64 = dep_run_capture(elf, av, 1, outf) 88 let d2: *u8 = sys_mmap(KG_CAP) 89 let dn2: i64 = dp_read(outf, d2, KG_CAP - 4) 90 var t5: i64 = 0 91 if rc5 == 0 { if dn2 == dn { 92 t5 = 1 93 var k: i64 = 0 94 while k < dn2 { if d2[k] != d[k] { t5 = 0; k = dn2 } else { k = k + 1 } } 95 } } 96 gv_check("T5 deterministic (two runs byte-identical)" as *u8, t5, ctr) 97 98 let rcv: i64 = gv_verdict("K3-ARCH-CENSUS-GATE" as *u8, ctr, "honest K3 coverage: computed from store, liar-killed, GAPs->research; fail-closed" as *u8) 99 sys_exit(rcv) 100 return rcv 101}