code wiki / _hdl_build / nx_autofix_cascade_gate.nx

nx_autofix_cascade_gate.nx source

↩ module page · 70 lines · 4011 B

1// nx_autofix_cascade_gate.nx -- gate for THE NEURO-SYMBOLIC ENSEMBLE (nx_autofix_cascade). 2// On nx_gate_verdict (D001 law). Proves the union is computed correctly + sound: 3// T1 instance green in ledger1 ONLY -> resolved 4// T2 instance green in ledger2 ONLY -> resolved (complementarity = the whole point) 5// T3 instance MISS in both -> unresolved 6// T4 union count exact (3/4 over the synthetic complementary pair) 7// T5 property-verified count = greens with symj=GREEN (soundness signal) 8// T6 single-ledger mode = just ledger1 (2/4) -- degrades to one maker cleanly 9// Requires /tmp/nx_autofix_cascade.sov.elf staged. license_tier: ORIGINAL expect_exit: 0 10import "nx_seg_store.nx" 11import "nx_deploy_lib.nx" 12import "nx_gate_verdict.nx" 13import "nx_syscalls.nx" 14 15const ACG_CAP: i64 = 65536 16 17func acg_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 18func acg_has(q: *u8, n: i64, s: *u8) -> i64 { 19 let sn: i64 = acg_slen(s) 20 if sn == 0 { return 1 } 21 var i: i64 = 0 22 while i + sn <= n { 23 var hit: i64 = 1 24 var j: i64 = 0 25 while j < sn { if q[i+j] != s[j] { hit = 0; j = sn } else { j = j + 1 } } 26 if hit == 1 { return 1 } 27 i = i + 1 28 } 29 return 0 30} 31 32func main() -> i64 { 33 let ctr: *i64 = gv_ctr() 34 gv_head("nx_autofix_cascade gate -- neuro-symbolic ensemble: sound union of property-verified greens" as *u8) 35 let elf: *u8 = "/tmp/nx_autofix_cascade.sov.elf" as *u8 36 37 // synthetic complementary makers over 4 instances a,b,c,d (each ledger single-batch, one row/cand) 38 let man: *u8 = "a|runtime/a.nx\nb|runtime/b.nx\nc|runtime/c.nx\nd|runtime/d.nx\n" as *u8 39 let l1: *u8 = "AUTOFIX-AUTO ts=1 cand=a located=a attempts=1 maker=GREEN revert=1 symj=GREEN\nAUTOFIX-AUTO ts=1 cand=b located=b attempts=5 maker=MISS revert=1 symj=SKIP\nAUTOFIX-AUTO ts=1 cand=c located=c attempts=1 maker=GREEN revert=1 symj=GREEN\nAUTOFIX-AUTO ts=1 cand=d located=d attempts=5 maker=MISS revert=1 symj=SKIP\n" as *u8 40 let l2: *u8 = "AUTOFIX-AUTO ts=2 cand=a located=a attempts=5 maker=MISS revert=1 symj=SKIP\nAUTOFIX-AUTO ts=2 cand=b located=b attempts=1 maker=GREEN revert=1 symj=GREEN\nAUTOFIX-AUTO ts=2 cand=c located=c attempts=5 maker=MISS revert=1 symj=SKIP\nAUTOFIX-AUTO ts=2 cand=d located=d attempts=5 maker=MISS revert=1 symj=SKIP\n" as *u8 41 ss_writefile("/tmp/acg_man.txt" as *u8, man, acg_slen(man)) 42 ss_writefile("/tmp/acg_l1.txt" as *u8, l1, acg_slen(l1)) 43 ss_writefile("/tmp/acg_l2.txt" as *u8, l2, acg_slen(l2)) 44 45 // cascade over BOTH ledgers 46 let av: *i64 = sys_mmap(64) as *i64 47 av[0] = "/tmp/acg_man.txt" as *u8 as i64 48 av[1] = "/tmp/acg_l1.txt" as *u8 as i64 49 av[2] = "/tmp/acg_l2.txt" as *u8 as i64 50 dep_run_capture(elf, av, 3, "/tmp/acg_out.txt" as *u8) 51 let c: *u8 = sys_mmap(ACG_CAP) 52 let n: i64 = dp_read("/tmp/acg_out.txt" as *u8, c, ACG_CAP - 4) 53 54 gv_check("T1 green-in-ledger1-only resolved (a)" as *u8, acg_has(c, n, "a -> RESOLVED by ledger#1" as *u8), ctr) 55 gv_check("T2 green-in-ledger2-only resolved (b)" as *u8, acg_has(c, n, "b -> RESOLVED by ledger#2" as *u8), ctr) 56 gv_check("T3 miss-in-both unresolved (d)" as *u8, acg_has(c, n, "d -> unresolved by any maker" as *u8), ctr) 57 gv_check("T4 union count exact 3/4" as *u8, acg_has(c, n, "3/4 resolved = 75%" as *u8), ctr) 58 gv_check("T5 property-verified count 3" as *u8, acg_has(c, n, "3 property-verified" as *u8), ctr) 59 60 // single-ledger mode = just ledger1 -> a,c resolved = 2/4 61 av[1] = "/tmp/acg_l1.txt" as *u8 as i64 62 dep_run_capture(elf, av, 2, "/tmp/acg_out2.txt" as *u8) 63 let c2: *u8 = sys_mmap(ACG_CAP) 64 let n2: i64 = dp_read("/tmp/acg_out2.txt" as *u8, c2, ACG_CAP - 4) 65 gv_check("T6 single-maker degrades cleanly 2/4" as *u8, acg_has(c2, n2, "2/4 resolved = 50%" as *u8), ctr) 66 67 let rc: i64 = gv_verdict("AUTOFIX-CASCADE-GATE" as *u8, ctr, "sound union of property-verified greens across diverse makers" as *u8) 68 sys_exit(rc) 69 return rc 70}