code wiki / _hdl_build / nx_corroborate_test.nx

nx_corroborate_test.nx source

↩ module page · 56 lines · 4540 B

1// nx_corroborate_test.nx -- the team verifies claims by CROSS-SOURCE corroboration over its corpus. 2// Three sources (as if mirrored from three sites): 3// doc0 Google : 53% abandon, load threshold 3s 4// doc1 SOASTA : 53% abandon, Doherty response under 400ms 5// doc2 Akamai : 53% abandon, load threshold 5s <-- conflicts with doc0 on the threshold 6// Expected verdicts: 53% = CONFIRMED (3 agree), load-threshold = CONTESTED (3 vs 5), Doherty 400 = 7// SINGLE_SOURCE. Only the CONFIRMED claim becomes a build task. Exit 0 on 6/6. license_tier: ORIGINAL 8 9import "nx_corroborate.nx" 10import "nx_research_extract.nx" // re_strlen 11import "nx_syscalls.nx" 12 13func 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 } 14func ct_num(v: i64) -> i64 { let bb: *u8 = sys_mmap(28); var m: i64=v; if m<0 {m=0-m; sys_write(1,"-" as *u8,1)}; 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 } 15func ct_verdict(v: i64) -> i64 { 16 if v == CO_CONFIRMED { ct_puts("CONFIRMED" as *u8) } else { if v == CO_CONTESTED { ct_puts("CONTESTED" as *u8) } else { if v == CO_SINGLE { ct_puts("SINGLE_SOURCE" as *u8) } else { ct_puts("UNFOUND" as *u8) } } } 17 return 0 18} 19 20func main() -> i64 { 21 ct_puts("=== RESEARCHER: cross-source corroboration over the harvested corpus ===\n" as *u8) 22 let N: i64 = 3 23 let d0: *u8 = "Google found that 53 percent abandon when load is longer than 3 seconds." as *u8 24 let d1: *u8 = "SOASTA found that 53 percent abandon. Doherty response under 400 milliseconds." as *u8 25 let d2: *u8 = "Akamai found that 53 percent abandon when load is longer than 5 seconds." as *u8 26 let ptrs: *i64 = sys_mmap(8 * 8) as *i64; let lens: *i64 = sys_mmap(8 * 8) as *i64 27 ptrs[0]=d0 as i64; ptrs[1]=d1 as i64; ptrs[2]=d2 as i64 28 var i: i64 = 0; while i < N { lens[i] = re_strlen(ptrs[i] as *u8); i = i + 1 } 29 30 // claim 1: 53% abandonment (key "found that", expected 53) 31 let a1: i64 = co_agree(ptrs, lens, N, "found that" as *u8, 53); let g1: i64 = co_disagree(ptrs, lens, N, "found that" as *u8, 53) 32 let v1: i64 = co_verdict(a1, g1) 33 // claim 2: load threshold (key "longer than", expected 3) -- doc2 conflicts with 5 34 let a2: i64 = co_agree(ptrs, lens, N, "longer than" as *u8, 3); let g2: i64 = co_disagree(ptrs, lens, N, "longer than" as *u8, 3) 35 let v2: i64 = co_verdict(a2, g2) 36 // claim 3: Doherty 400ms (key "under", expected 400) -- one source 37 let a3: i64 = co_agree(ptrs, lens, N, "under" as *u8, 400); let g3: i64 = co_disagree(ptrs, lens, N, "under" as *u8, 400) 38 let v3: i64 = co_verdict(a3, g3) 39 40 ct_puts(" claim '53% abandon' agree=" as *u8); ct_num(a1); ct_puts(" conflict=" as *u8); ct_num(g1); ct_puts(" -> " as *u8); ct_verdict(v1); ct_puts(" taskable=" as *u8); ct_num(co_taskable(v1)); ct_puts("\n" as *u8) 41 ct_puts(" claim 'load 3s' agree=" as *u8); ct_num(a2); ct_puts(" conflict=" as *u8); ct_num(g2); ct_puts(" -> " as *u8); ct_verdict(v2); ct_puts(" taskable=" as *u8); ct_num(co_taskable(v2)); ct_puts(" (3s vs 5s -> escalate, don't pick)\n" as *u8) 42 ct_puts(" claim 'Doherty 400ms' agree=" as *u8); ct_num(a3); ct_puts(" conflict=" as *u8); ct_num(g3); ct_puts(" -> " as *u8); ct_verdict(v3); ct_puts(" taskable=" as *u8); ct_num(co_taskable(v3)); ct_puts(" (1 source -> needs corroboration)\n" as *u8) 43 44 let r: *i64 = sys_mmap(8 * 8) as *i64 45 r[0] = 0; if v1 == CO_CONFIRMED { r[0] = 1 } // 3 agreeing sources 46 r[1] = 0; if v2 == CO_CONTESTED { r[1] = 1 } // conflicting values flagged, not picked 47 r[2] = 0; if v3 == CO_SINGLE { r[2] = 1 } // single-source flagged 48 r[3] = 0; if co_taskable(v1) == 1 { r[3] = 1 } // only the confirmed claim becomes a task 49 r[4] = 0; if co_taskable(v2) == 0 { if co_taskable(v3) == 0 { r[4] = 1 } } // contested/single -> 0 tasks 50 r[5] = 0; if a1 == 3 { if g2 == 1 { r[5] = 1 } } // counts grounded in the real corpus 51 var pass: i64 = 0; i = 0 52 while i < 6 { pass = pass + r[i]; i = i + 1 } 53 ct_puts("----\n passed " as *u8); ct_num(pass); ct_puts("/6\n" as *u8) 54 if pass == 6 { ct_puts(" CORROBORATION PROVEN: verification grounded in multi-source fetched evidence -- confirmed only on agreement, conflicts escalated honestly, reproducible.\n" as *u8); sys_exit(0); return 0 } 55 ct_puts(" FAIL\n" as *u8); sys_exit(1); return 1 56}