code wiki / (root) / nx_conflict_owned_gate.nx

nx_conflict_owned_gate.nx source

↩ module page · 82 lines · 3756 B

1// nx_conflict_owned_gate.nx -- REFEREE for cf_detect_owned (per-character conflicts). 2// [T1] SAME character contradicts: "Mira faced forward. Mira faced backward." -> 1 3// [T2] DIFFERENT characters: "Mira faced forward. Dev faced backward." -> 0 (the fix) 4// [T3] UNOWNED (no character named near terms) -> 0 (honest: per-char pass skips it) 5// Sovereign x86_64. Exit 0/1. -> knowledge/status/conflict_owned_gate.log 6import "nx_syscalls_x86_64.nx" 7import "nx_conflict.nx" 8 9func gp(logfd: i64, s: *u8) -> i64 { 10 var n: i64 = 0 11 while s[n] != (0 as u8) { n = n + 1 } 12 sys_write(1, s, n) 13 if logfd > 0 { sys_write(logfd, s, n) } 14 return 0 15} 16func gn(logfd: i64, v: i64) -> i64 { 17 var m: i64 = v 18 if m < 0 { sys_write(1, "-\x00" as *u8, 1); if logfd > 0 { sys_write(logfd, "-\x00" as *u8, 1) } m = 0 - m } 19 let bb: *u8 = sys_mmap(32) 20 let t: *u8 = sys_mmap(32) 21 var k: i64 = 0 22 if m == 0 { t[0] = 48 as u8; k = 1 } 23 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 24 var i: i64 = 0 25 while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } 26 sys_write(1, bb, k) 27 if logfd > 0 { sys_write(logfd, bb, k) } 28 return 0 29} 30func slen(s: *u8) -> i64 { 31 var n: i64 = 0 32 while s[n] != (0 as u8) { n = n + 1 } 33 return n 34} 35func pr_kv(logfd: i64, label: *u8, got: i64, exp: i64) -> i64 { 36 gp(logfd, label); gp(logfd, " got=\x00" as *u8); gn(logfd, got); gp(logfd, " exp=\x00" as *u8); gn(logfd, exp) 37 if got == exp { gp(logfd, " OK\n\x00" as *u8); return 1 } 38 gp(logfd, " FAIL\n\x00" as *u8); return 0 39} 40 41func main() -> i64 { 42 let logfd: i64 = sys_openat_append("knowledge/status/conflict_owned_gate.log\x00" as *u8, 0x1a4) 43 gp(logfd, "CONFLICT-OWNED-GATE (per-character attribution)\n\x00" as *u8) 44 45 let roster: *u8 = "mira\x00dev\x00" as *u8 46 let terms: *u8 = "forward\x00backward\x00left\x00right\x00" as *u8 47 let axes: *i64 = sys_mmap(64) as *i64 48 axes[0] = 0; axes[1] = 0; axes[2] = 0; axes[3] = 0 49 let out: *i64 = sys_mmap(256) as *i64 50 var ok: i64 = 1 51 52 // T1 same character -> conflict 53 gp(logfd, " [T1] \"Mira faced forward. Mira faced backward.\"\n\x00" as *u8) 54 let t1: *u8 = "Mira faced forward. Mira faced backward.\x00" as *u8 55 let c1: i64 = cf_detect_owned(t1, 0, slen(t1), roster, 2, terms, axes, 4, 1, out) 56 if pr_kv(logfd, " nconflicts\x00" as *u8, c1, 1) == 0 { ok = 0 } 57 if pr_kv(logfd, " char(0=mira)\x00" as *u8, out[0], 0) == 0 { ok = 0 } 58 if pr_kv(logfd, " axis\x00" as *u8, out[1], 0) == 0 { ok = 0 } 59 if pr_kv(logfd, " term_i(fwd)\x00" as *u8, out[2], 0) == 0 { ok = 0 } 60 if pr_kv(logfd, " term_j(back)\x00" as *u8, out[3], 1) == 0 { ok = 0 } 61 62 // T2 different characters -> NO conflict (the false-positive fix) 63 gp(logfd, " [T2] \"Mira faced forward. Dev faced backward.\"\n\x00" as *u8) 64 let t2: *u8 = "Mira faced forward. Dev faced backward.\x00" as *u8 65 if pr_kv(logfd, " nconflicts\x00" as *u8, cf_detect_owned(t2, 0, slen(t2), roster, 2, terms, axes, 4, 1, out), 0) == 0 { ok = 0 } 66 67 // T3 unowned (no character named) -> 0 in the per-character pass 68 gp(logfd, " [T3] \"She faced forward then backward.\" (no roster name)\n\x00" as *u8) 69 let t3: *u8 = "She faced forward then backward.\x00" as *u8 70 if pr_kv(logfd, " nconflicts\x00" as *u8, cf_detect_owned(t3, 0, slen(t3), roster, 2, terms, axes, 4, 1, out), 0) == 0 { ok = 0 } 71 72 if ok == 1 { 73 gp(logfd, "CONFLICT-OWNED-GATE result=ALL-PASS verdict=GREEN\n\x00" as *u8) 74 if logfd > 0 { sys_close(logfd) } 75 sys_exit(0) 76 return 0 77 } 78 gp(logfd, "CONFLICT-OWNED-GATE result=FAIL verdict=RED\n\x00" as *u8) 79 if logfd > 0 { sys_close(logfd) } 80 sys_exit(1) 81 return 1 82}