code wiki / (root) / nx_research_crossval_gate.nx

nx_research_crossval_gate.nx source

↩ module page · 222 lines · 13188 B

1// nx_research_crossval_gate.nx -- gate for nx_research_crossval (multi-source cross-validation, the refutation 2// sub-axis peers lead). PURE teeth ($0, fixtures): T1 corroborated needs >=2 CONFIRMS on DISTINCT hosts; 3// T2 LIAR-KILLER: the same host confirming twice is an ECHO -> NOT corroborated (stays CONFIRMED-SINGLE); 4// T3 confirm+discredit -> CONFLICTED (never averaged); T4 only-discredit -> REFUTED; T5 all-absent -> 5// UNVERIFIABLE + invents NO confirms/discredits; T6 zero sources -> fail-closed UNVERIFIABLE. 6// TIER-2 (argv[1]=live): the first sovereign LIVE multi-source cross-validation -- GPT-3 175B corroborated 7// across arxiv.org + api.semanticscholar.org + api.datacite.org (3 independent hosts over sovereign TLS-1.3; 8// graceful degradation: a rate-limited/degraded host contributes UNVERIFIABLE, never a fake corroboration). 9// license_tier: ORIGINAL expect_exit: 0 10import "nx_syscalls.nx" 11import "nx_research_crossval.nx" 12import "nx_research_unified.nx" 13import "nx_x509_trust_store.nx" 14import "nx_trust_store_load_from_certdata.nx" 15import "nx_https_fetch_follow.nx" 16 17func gv_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 18func gv_putn(v: i64) -> i64 { 19 if v == 0 { sys_write(1, "0" as *u8, 1); return 0 } 20 var m: i64 = v; if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m } 21 let d: *u8 = sys_mmap(24); var k: i64 = 0 22 while m > 0 { d[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 23 let o: *u8 = sys_mmap(24); var wi: i64 = 0 24 while wi < k { o[wi] = d[k-1-wi]; wi = wi + 1 } 25 sys_write(1, o, k) 26 return 0 27} 28func gv_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 29func gv_streq(a: *u8, b: *u8) -> i64 { 30 var i: i64 = 0 31 while a[i] != (0 as u8) { if a[i] != b[i] { return 0 } i = i + 1 } 32 if b[i] != (0 as u8) { return 0 } 33 return 1 34} 35func gv_name(v: i64) -> *u8 { 36 if v == 0 { return "CORROBORATED" as *u8 } 37 if v == 1 { return "CONFIRMED-SINGLE" as *u8 } 38 if v == 3 { return "CONFLICTED" as *u8 } 39 if v == 5 { return "REFUTED" as *u8 } 40 return "UNVERIFIABLE" as *u8 41} 42func gv_check(st: *i64, ok: i64, label: *u8) -> i64 { 43 if ok == 1 { st[0] = st[0] + 1; gv_puts(" PASS " as *u8) } else { st[1] = st[1] + 1; gv_puts(" FAIL " as *u8) } 44 gv_puts(label); gv_puts("\n" as *u8) 45 return 0 46} 47 48func main(argc: i64, argv: *i64) -> i64 { 49 let st: *i64 = sys_mmap(32) as *i64; st[0] = 0; st[1] = 0 50 gv_puts("=== nx_research_crossval_gate: multi-source cross-validation (independence-disciplined) ===\n\n" as *u8) 51 52 // fixtures: three "sources" about the SQuAD human ceiling (claim 868, tol 8) 53 let ev1: *u8 = "the study reports human performance (86.8 F1) on the benchmark" as *u8 54 let p1: *u8 = "performance (" as *u8 55 let ev2: *u8 = "an independent replication measured a ceiling of 86.8 F1 as well" as *u8 56 let p2: *u8 = "ceiling of " as *u8 57 let ev3: *u8 = "the baseline system scored 51.0 F1 in the same setting" as *u8 58 let p3: *u8 = "scored " as *u8 59 let pabs: *u8 = "zqx_never_present " as *u8 60 61 let bufs: *i64 = sys_mmap(64) as *i64 62 let lens: *i64 = sys_mmap(64) as *i64 63 let pats: *i64 = sys_mmap(64) as *i64 64 let hosts: *i64 = sys_mmap(64) as *i64 65 let out: *i64 = sys_mmap(48) as *i64 66 67 // T1 CORROBORATED: two confirms, DISTINCT hosts 68 bufs[0] = ev1 as i64; lens[0] = gv_slen(ev1); pats[0] = p1 as i64; hosts[0] = 100 69 bufs[1] = ev2 as i64; lens[1] = gv_slen(ev2); pats[1] = p2 as i64; hosts[1] = 200 70 var v: i64 = cvx_verify(bufs, lens, pats, hosts, 2, 868, 8, out) 71 var ok: i64 = 0 72 if v == 0 { if out[4] == 2 { ok = 1 } } 73 gv_check(st, ok, "T1 two distinct-host confirms -> CORROBORATED (dh=2)" as *u8) 74 75 // T2 LIAR-KILLER: the SAME host confirming twice = echo, NOT corroboration 76 bufs[1] = ev1 as i64; lens[1] = gv_slen(ev1); pats[1] = p1 as i64; hosts[1] = 100 77 v = cvx_verify(bufs, lens, pats, hosts, 2, 868, 8, out) 78 ok = 0 79 if v == 1 { if out[1] == 2 { if out[4] == 1 { ok = 1 } } } 80 gv_check(st, ok, "T2 same-host echo (2 confirms, 1 host) -> CONFIRMED-SINGLE not corroborated" as *u8) 81 82 // T3 CONFLICTED: a confirm + a discredit (never averaged) 83 bufs[1] = ev3 as i64; lens[1] = gv_slen(ev3); pats[1] = p3 as i64; hosts[1] = 200 84 v = cvx_verify(bufs, lens, pats, hosts, 2, 868, 8, out) 85 ok = 0 86 if v == 3 { if out[1] == 1 { if out[2] == 1 { ok = 1 } } } 87 gv_check(st, ok, "T3 confirm + discredit -> CONFLICTED (surfaced, not averaged)" as *u8) 88 89 // T4 REFUTED: only discredits 90 bufs[0] = ev3 as i64; lens[0] = gv_slen(ev3); pats[0] = p3 as i64; hosts[0] = 300 91 v = cvx_verify(bufs, lens, pats, hosts, 1, 868, 8, out) 92 ok = 0 93 if v == 5 { ok = 1 } 94 gv_check(st, ok, "T4 only discredits -> REFUTED" as *u8) 95 96 // T5 NEG-CONTROL: pattern absent everywhere -> UNVERIFIABLE, invents NOTHING 97 bufs[0] = ev1 as i64; lens[0] = gv_slen(ev1); pats[0] = pabs as i64; hosts[0] = 100 98 bufs[1] = ev2 as i64; lens[1] = gv_slen(ev2); pats[1] = pabs as i64; hosts[1] = 200 99 v = cvx_verify(bufs, lens, pats, hosts, 2, 868, 8, out) 100 ok = 0 101 if v == 4 { if out[1] == 0 { if out[2] == 0 { if out[3] == 2 { ok = 1 } } } } 102 gv_check(st, ok, "T5 all-absent -> UNVERIFIABLE, zero invented verdicts" as *u8) 103 104 // T6 NEG-CONTROL: zero sources -> fail-closed UNVERIFIABLE 105 v = cvx_verify(bufs, lens, pats, hosts, 0, 868, 8, out) 106 ok = 0 107 if v == 4 { ok = 1 } 108 gv_check(st, ok, "T6 zero sources -> fail-closed UNVERIFIABLE" as *u8) 109 110 // ---- ANSWER-LEVEL (the auto-invoke form): cvx_answer_verify + the nxr_assess wiring ------------------- 111 let s1: *u8 = "the alpha study measured the ceiling at 86.8 F1 overall" as *u8 112 let s2: *u8 = "an independent replication also reports 86.8 F1" as *u8 113 let s3: *u8 = "this unrelated source discusses methodology only" as *u8 114 let ansA: *u8 = "The ceiling is 86.8 F1 [1]." as *u8 115 let sv: *i64 = sys_mmap(64) as *i64 116 sv[0] = s1 as i64; sv[1] = s2 as i64; sv[2] = s3 as i64 117 let av: *i64 = sys_mmap(64) as *i64 118 119 // T8: claim confirmed by its cited source AND corroborated by a 2nd distinct origin 120 cvx_answer_verify(ansA, gv_slen(ansA), sv, 3, 0 as *i64, 8, av) 121 ok = 0 122 if av[0] == 1 { if av[1] == 1 { if av[2] == 0 { if av[4] == 1 { ok = 1 } } } } 123 gv_check(st, ok, "T8 answer claim confirmed + corroborated by 2nd distinct origin" as *u8) 124 125 // T9: only the cited source carries the value -> confirmed but NOT corroborated 126 sv[1] = s3 as i64 127 cvx_answer_verify(ansA, gv_slen(ansA), sv, 3, 0 as *i64, 8, av) 128 ok = 0 129 if av[1] == 1 { if av[4] == 0 { ok = 1 } } 130 gv_check(st, ok, "T9 single-source value -> confirmed, corroborated=0 (no echo-credit)" as *u8) 131 132 // T10: REGRESSION vs the sibling semantics -- out[0..3] must EQUAL rvs_verify_answer on the same fixture 133 sv[1] = s2 as i64 134 let rv: *i64 = sys_mmap(64) as *i64 135 rvs_verify_answer(ansA, gv_slen(ansA), sv, 3, 8, rv) 136 cvx_answer_verify(ansA, gv_slen(ansA), sv, 3, 0 as *i64, 8, av) 137 ok = 1 138 var q: i64 = 0 139 while q < 4 { if av[q] != rv[q] { ok = 0 } q = q + 1 } 140 gv_check(st, ok, "T10 rvs-compat: primary verdicts [0..3] identical to rvs_verify_answer" as *u8) 141 142 // T11: AUTO-INVOKE proof -- nxr_assess (the unified researcher) now reports corroboration at out[9] 143 let uo: *i64 = sys_mmap(96) as *i64 144 let uverd: i64 = nxr_assess(ansA, gv_slen(ansA), sv, 3, 0, 3, 1000000, uo) 145 ok = 0 146 if uverd == 0 { if uo[4] == 1 { if uo[9] == 1 { ok = 1 } } } 147 gv_check(st, ok, "T11 nxr_assess auto-invokes cross-val: PUBLISH + out[9]=corroborated" as *u8) 148 149 // T12: cvx_host_id -- same host same id (path-independent, case-insensitive), distinct hosts distinct ids 150 let ha: i64 = cvx_host_id("https://arxiv.org/abs/2005.14165" as *u8) 151 let hb: i64 = cvx_host_id("https://api.datacite.org/dois/10.48550/arXiv.2005.14165" as *u8) 152 let hc: i64 = cvx_host_id("https://arxiv.org/abs/1606.05250" as *u8) 153 let hd: i64 = cvx_host_id("https://ARXIV.org/case" as *u8) 154 let he: i64 = cvx_host_id("not_a_url" as *u8) 155 ok = 0 156 if ha > 0 { if ha == hc { if ha == hd { if ha != hb { if he == 0 { ok = 1 } } } } } 157 gv_check(st, ok, "T12 cvx_host_id: path/case-invariant per host, distinct across hosts, 0 on no-host" as *u8) 158 159 // T13: HOST-TRUE echo-kill through the FULL pipeline -- two sources, both carry the value, SAME real origin 160 // -> nxr_assess_hosts reports corroborated=0; distinct origins -> 1. (The index-as-host default would 161 // over-credit the same-origin pair -- this is exactly what real host ids fix.) 162 let hosts2: *i64 = sys_mmap(64) as *i64 163 let uo2: *i64 = sys_mmap(96) as *i64 164 sv[0] = s1 as i64; sv[1] = s2 as i64; sv[2] = s3 as i64 165 hosts2[0] = ha; hosts2[1] = ha; hosts2[2] = hb 166 nxr_assess_hosts(ansA, gv_slen(ansA), sv, 3, hosts2, 0, 3, 1000000, uo2) 167 var same_cb: i64 = uo2[9] 168 hosts2[1] = hb 169 nxr_assess_hosts(ansA, gv_slen(ansA), sv, 3, hosts2, 0, 3, 1000000, uo2) 170 ok = 0 171 if same_cb == 0 { if uo2[9] == 1 { ok = 1 } } 172 gv_check(st, ok, "T13 nxr_assess_hosts: same-origin pair corroborated=0, distinct origins=1 (host-TRUE)" as *u8) 173 174 // ---- TIER-2 LIVE (argv[1]=live): GPT-3 175B cross-validated on two DISTINCT live hosts ---- 175 var live: i64 = 0 176 if argc >= 2 { if gv_streq(argv[1] as *u8, "live" as *u8) == 1 { live = 1 } } 177 if live == 1 { 178 gv_puts("\n== TIER-2 LIVE: cross-validate GPT-3 175B across arxiv.org + api.semanticscholar.org ==\n" as *u8) 179 let r: i64 = nx_trust_store_load_from_certdata("data/mozilla_certdata.txt\x00" as *u8, 512, 4194304) 180 if r <= 0 { gv_puts("FETCH-FAILED: certdata load\n" as *u8); return 2 } 181 let store: *TrustStore = r as *TrustStore 182 // THREE independent hosts (arxiv anchor + semanticscholar + datacite). Graceful degradation (#14): 183 // a host that fails to fetch or serves a degraded stub simply contributes UNVERIFIABLE -- the 184 // independence discipline then decides from whatever REAL evidence arrived (>=2 fetched required). 185 let b1: *u8 = sys_mmap(4194304) 186 let b2: *u8 = sys_mmap(4194304) 187 let b3: *u8 = sys_mmap(4194304) 188 let sc: *i64 = sys_mmap(16) as *i64 189 var n1: i64 = nx_https_fetch_follow_best("https://arxiv.org/abs/2005.14165" as *u8, store, b1, 4194304, 6, sc) 190 if n1 <= 0 { sys_sleep_ms(2000); n1 = nx_https_fetch_follow_best("https://arxiv.org/abs/2005.14165" as *u8, store, b1, 4194304, 6, sc) } 191 var n2: i64 = nx_https_fetch_follow_best("https://api.semanticscholar.org/graph/v1/paper/arXiv:2005.14165?fields=abstract" as *u8, store, b2, 4194304, 6, sc) 192 if n2 <= 0 { sys_sleep_ms(2000); n2 = nx_https_fetch_follow_best("https://api.semanticscholar.org/graph/v1/paper/arXiv:2005.14165?fields=abstract" as *u8, store, b2, 4194304, 6, sc) } 193 var n3: i64 = nx_https_fetch_follow_best("https://api.datacite.org/dois/10.48550/arXiv.2005.14165" as *u8, store, b3, 4194304, 6, sc) 194 if n3 <= 0 { sys_sleep_ms(2000); n3 = nx_https_fetch_follow_best("https://api.datacite.org/dois/10.48550/arXiv.2005.14165" as *u8, store, b3, 4194304, 6, sc) } 195 gv_puts(" fetched arxiv=" as *u8); gv_putn(n1) 196 gv_puts("B semanticscholar=" as *u8); gv_putn(n2) 197 gv_puts("B datacite=" as *u8); gv_putn(n3); gv_puts("B\n" as *u8) 198 let lp: *u8 = "language model with " as *u8 199 // REAL origin ids from the URLs (cvx_host_id) -- not hand-assigned indices 200 let lh1: i64 = cvx_host_id("https://arxiv.org/abs/2005.14165" as *u8) 201 let lh2: i64 = cvx_host_id("https://api.semanticscholar.org/graph/v1/paper/arXiv:2005.14165?fields=abstract" as *u8) 202 let lh3: i64 = cvx_host_id("https://api.datacite.org/dois/10.48550/arXiv.2005.14165" as *u8) 203 var ns: i64 = 0 204 if n1 > 0 { bufs[ns] = b1 as i64; lens[ns] = n1; pats[ns] = lp as i64; hosts[ns] = lh1; ns = ns + 1 } 205 if n2 > 0 { bufs[ns] = b2 as i64; lens[ns] = n2; pats[ns] = lp as i64; hosts[ns] = lh2; ns = ns + 1 } 206 if n3 > 0 { bufs[ns] = b3 as i64; lens[ns] = n3; pats[ns] = lp as i64; hosts[ns] = lh3; ns = ns + 1 } 207 if ns < 2 { gv_puts("FETCH-FAILED: fewer than 2 live sources reachable\n" as *u8); return 2 } 208 v = cvx_verify(bufs, lens, pats, hosts, ns, 1750, 10, out) 209 gv_puts(" claim=175.0B cross-verdict=" as *u8); gv_puts(gv_name(v)) 210 gv_puts(" confirms=" as *u8); gv_putn(out[1]); gv_puts(" distinct-hosts=" as *u8); gv_putn(out[4]); gv_puts("\n" as *u8) 211 ok = 0 212 if v == 0 { if out[4] >= 2 { ok = 1 } } 213 gv_check(st, ok, "T7-LIVE corroborated by >=2 independent live hosts" as *u8) 214 } else { 215 gv_puts("\nT7-LIVE SKIP (pure run; pass argv[1]=live to cross-validate against the live hosts)\n" as *u8) 216 } 217 218 gv_puts("\nPASS=" as *u8); gv_putn(st[0]); gv_puts(" FAIL=" as *u8); gv_putn(st[1]); gv_puts("\n" as *u8) 219 if st[1] > 0 { gv_puts("GATE RED\n" as *u8); return 1 } 220 gv_puts("GATE GREEN -- cross-validation independence-disciplined (echo != corroboration; conflict surfaced)\n" as *u8) 221 return 0 222}