code wiki / _hdl_build / nx_critic2_test.nx

nx_critic2_test.nx source

↩ module page · 52 lines · 4102 B

1// nx_critic2_test.nx -- the Critic's M2 upgrade (growth loop pick #3): graded counter-strength, a 2// settledness spectrum, and a proactive refutation-hunt trigger. Proves it no longer treats all 3// counters alike (a weak counter doesn't nuke a belief), grades how-settled on a spectrum, and 4// actively QUEUES blind spots for the Researcher to attack. Exit 0 if all hold. license_tier: ORIGINAL 5 6import "nx_critic.nx" 7import "nx_syscalls.nx" 8 9func ct_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 10func ct_num(v: i64) -> i64 { let bb: *u8 = sys_mmap(28); var m: i64=v; if m<0 {m=0-m}; let t: *u8 = sys_mmap(28); var k: i64=0; if m==0 {t[0]=48;k=1}; while m>0 {t[k]=48+(m%10); m=m/10; k=k+1}; var i: i64=0; while i<k {bb[i]=t[k-1-i]; i=i+1}; sys_write(1, bb, k); return 0 } 11func ct_st(s: i64) -> i64 { if s==CRIT_LAW {ct_puts("LAW" as *u8)} if s==CRIT_THEORY {ct_puts("THEORY" as *u8)} if s==CRIT_REFUTED {ct_puts("REFUTED" as *u8)} if s==CRIT_CONTESTED {ct_puts("CONTESTED" as *u8)} return 0 } 12 13func main() -> i64 { 14 ct_puts("=== CRITIC M2: graded counters + settledness spectrum + proactive refutation-hunt ===\n" as *u8) 15 // counter strengths 16 let cs_strong: i64 = crit_counter_strength(3, 3) // Blau-Michaeli: reproduced + independent 17 let cs_mod: i64 = crit_counter_strength(1, 2) // moderate 18 let cs_weak: i64 = crit_counter_strength(1, 1) // anecdotal 19 ct_puts(" counter strength: strong=" as *u8); ct_num(cs_strong); ct_puts(" moderate=" as *u8); ct_num(cs_mod); ct_puts(" weak=" as *u8); ct_num(cs_weak); ct_puts("\n" as *u8) 20 21 // graded verdicts: PSNR(strong counter)->REFUTED ; a moderate counter -> CONTESTED ; clean LAW 22 let v_psnr: i64 = crit_status2(3, cs_strong, 1) 23 let v_cont: i64 = crit_status2(3, cs_mod, 1) 24 let v_law: i64 = crit_status2(3, 0, 1) 25 let v_weak: i64 = crit_status2(3, cs_weak, 1) 26 ct_puts(" PSNR(strong counter) -> " as *u8); ct_st(v_psnr); ct_puts(" moderate-counter -> " as *u8); ct_st(v_cont); ct_puts(" no-counter -> " as *u8); ct_st(v_law); ct_puts(" weak-counter -> " as *u8); ct_st(v_weak); ct_puts("\n" as *u8) 27 28 // settledness spectrum 29 ct_puts(" settledness: solid law=" as *u8); ct_num(crit_settledness(3,0,1)); ct_puts(" PSNR=" as *u8); ct_num(crit_settledness(3,cs_strong,1)); ct_puts(" un-redteamed=" as *u8); ct_num(crit_settledness(2,0,0)); ct_puts("\n" as *u8) 30 31 // proactive refutation-hunt: queue blind spots (reproduced but not red-teamed) 32 let repro: *i64 = sys_mmap(8*8) as *i64; let rt: *i64 = sys_mmap(8*8) as *i64 33 repro[0]=3; rt[0]=1 // settled, red-teamed 34 repro[1]=2; rt[1]=0 // blind spot -> queue 35 repro[2]=1; rt[2]=0 // blind spot -> queue 36 repro[3]=2; rt[3]=1 // red-teamed 37 let queue: *i64 = sys_mmap(8*8) as *i64 38 let qn: i64 = crit_refutation_hunt_queue(4, repro, rt, queue) 39 ct_puts(" refutation-hunt queued " as *u8); ct_num(qn); ct_puts(" blind spots for the Researcher to attack\n" as *u8) 40 41 let r: *i64 = sys_mmap(8*8) as *i64 42 r[0] = 0; if cs_strong == 3 { if cs_mod == 2 { if cs_weak == 1 { r[0] = 1 } } } // graded counter strength 43 r[1] = 0; if v_psnr == CRIT_REFUTED { if v_law == CRIT_LAW { r[1] = 1 } } // strong refutes, clean = law 44 r[2] = 0; if v_cont == CRIT_CONTESTED { if v_weak == CRIT_THEORY { r[2] = 1 } } // moderate->contested, weak->theory (not nuked) 45 r[3] = 0; if crit_settledness(3,0,1) > crit_settledness(3,cs_strong,1) { r[3] = 1 } // settledness spectrum 46 r[4] = 0; if qn == 2 { r[4] = 1 } // proactively queued the 2 blind spots 47 var pass: i64 = 0; var i: i64 = 0 48 while i < 5 { pass = pass + r[i]; i = i + 1 } 49 ct_puts("----\n passed " as *u8); ct_num(pass); ct_puts("/5\n" as *u8) 50 if pass == 5 { ct_puts(" CRITIC LEVELED UP (M1->M2): graded counters (weak != strong), settledness spectrum, proactively hunts its own blind spots. No regression.\n" as *u8); sys_exit(0); return 0 } 51 ct_puts(" FAIL\n" as *u8); sys_exit(1); return 1 52}