code wiki / _hdl_build / nx_crew_council_test.nx

nx_crew_council_test.nx source

↩ module page · 57 lines · 3245 B

1// nx_crew_council_test.nx -- proves the crew council's 3 -> 2 -> 1 decision logic 2// (nx_crew_council.nx) on six real cases: no role acts unilaterally, unsafe is 3// hard-denied, doubtful escalates to the operator. Known answer: 6/6 governed 4// correctly (2 ACT, 1 DENY, 3 ESCALATE), exit 0. 5 6import "nx_crew_council.nx" 7 8func main() -> i64 { 9 let a: *CrewAction = sys_mmap(64) as *CrewAction 10 let why: *i64 = sys_mmap(8) as *i64 11 12 cc_puts("================================================================\n" as *u8) 13 cc_puts(" NISHI CREW COUNCIL -- 3 -> 2 -> 1 checks & balances on each act\n" as *u8) 14 cc_puts(" (Engineer/Genealogist/Racing -> Warden/Archivist -> Conductor)\n" as *u8) 15 cc_puts("================================================================\n" as *u8) 16 17 let exp: *i64 = sys_mmap(8 * 6) as *i64 18 var pass: i64 = 0 19 20 cc_set(a, "enroll: rv64im ALU 28/28 verified gate-level" as *u8, 1, 1, 1, 1, 1); exp[0] = CC_ACT 21 let v0: i64 = cc_council(a, why) 22 cc_puts(cc_verdict_name(v0)); cc_puts(" | " as *u8); cc_puts(a.name as *u8); cc_puts("\n -> " as *u8); cc_puts(why[0] as *u8); cc_puts("\n" as *u8) 23 if v0 == exp[0] { pass = pass + 1 } 24 25 cc_set(a, "heal: overwrite nx_opt.nx source in place" as *u8, 1, 1, 1, 0, 1); exp[1] = CC_DENY 26 let v1: i64 = cc_council(a, why) 27 cc_puts(cc_verdict_name(v1)); cc_puts(" | " as *u8); cc_puts(a.name as *u8); cc_puts("\n -> " as *u8); cc_puts(why[0] as *u8); cc_puts("\n" as *u8) 28 if v1 == exp[1] { pass = pass + 1 } 29 30 cc_set(a, "add: a 4th copy of the decimal int-printer" as *u8, 1, 0, 1, 1, 1); exp[2] = CC_ESCALATE 31 let v2: i64 = cc_council(a, why) 32 cc_puts(cc_verdict_name(v2)); cc_puts(" | " as *u8); cc_puts(a.name as *u8); cc_puts("\n -> " as *u8); cc_puts(why[0] as *u8); cc_puts("\n" as *u8) 33 if v2 == exp[2] { pass = pass + 1 } 34 35 cc_set(a, "commit: an UNPROVEN divider variant" as *u8, 0, 1, 1, 1, 1); exp[3] = CC_ESCALATE 36 let v3: i64 = cc_council(a, why) 37 cc_puts(cc_verdict_name(v3)); cc_puts(" | " as *u8); cc_puts(a.name as *u8); cc_puts("\n -> " as *u8); cc_puts(why[0] as *u8); cc_puts("\n" as *u8) 38 if v3 == exp[3] { pass = pass + 1 } 39 40 cc_set(a, "optimize: 0.5% gain at parity, no cascade" as *u8, 1, 1, 0, 1, 1); exp[4] = CC_ESCALATE 41 let v4: i64 = cc_council(a, why) 42 cc_puts(cc_verdict_name(v4)); cc_puts(" | " as *u8); cc_puts(a.name as *u8); cc_puts("\n -> " as *u8); cc_puts(why[0] as *u8); cc_puts("\n" as *u8) 43 if v4 == exp[4] { pass = pass + 1 } 44 45 cc_set(a, "ship: divider+mulh emitter, gated + documented" as *u8, 1, 1, 1, 1, 1); exp[5] = CC_ACT 46 let v5: i64 = cc_council(a, why) 47 cc_puts(cc_verdict_name(v5)); cc_puts(" | " as *u8); cc_puts(a.name as *u8); cc_puts("\n -> " as *u8); cc_puts(why[0] as *u8); cc_puts("\n" as *u8) 48 if v5 == exp[5] { pass = pass + 1 } 49 50 cc_puts("----------------------------------------------------------------\n" as *u8) 51 cc_puts(" council governed 6/6 actions correctly: 2 ACT, 1 DENY, 3 ESCALATE\n" as *u8) 52 cc_puts("----------------------------------------------------------------\n" as *u8) 53 54 if pass != 6 { sys_exit(1); return 1 } 55 sys_exit(0) 56 return 0 57}