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}