code wiki / _hdl_build / nx_evidence_gate.nx

nx_evidence_gate.nx source

↩ module page · 110 lines · 5761 B

1// nx_evidence_gate.nx -- GATE for graded evidence admission. Every tooth carries its OPPOSITE, 2// because the failure this organ exists to prevent is evidence that LOOKS like corroboration. 3// Verdict emission inherits nx_gate_verdict (D001). license_tier: ORIGINAL expect_exit: 0 4import "nx_syscalls.nx" 5import "nx_evidence.nx" 6import "nx_gate_verdict.nx" 7 8const EVG_BUF: i64 = 8192 9const EVG_IC_GOV: i64 = 1 10const EVG_IC_VENDOR: i64 = 2 11const EVG_IC_CONSUMER: i64 = 3 12const EVG_REL_OK: i64 = 2 13const EVG_CRED_OK: i64 = 2 14const EVG_REL_CANNOT_JUDGE: i64 = 6 15const EVG_REL_INVALID: i64 = 9 16 17// build a plane row without relying on escape handling in string literals 18func evg_row(buf: *u8, o: i64, id: *u8, class: *u8, ic: i64, rel: i64, cred: i64, party: i64, method: i64) -> i64 { 19 var p: i64 = o 20 p = lc_lit(buf, p, id) 21 buf[p] = 9 as u8; p = p + 1 22 p = lc_lit(buf, p, class) 23 buf[p] = 9 as u8; p = p + 1 24 p = lc_num(buf, p, ic) 25 buf[p] = 9 as u8; p = p + 1 26 p = lc_num(buf, p, rel) 27 buf[p] = 9 as u8; p = p + 1 28 p = lc_num(buf, p, cred) 29 buf[p] = 9 as u8; p = p + 1 30 p = lc_num(buf, p, party) 31 buf[p] = 9 as u8; p = p + 1 32 p = lc_num(buf, p, method) 33 buf[p] = 9 as u8; p = p + 1 34 p = lc_lit(buf, p, "https://example.gov/x" as *u8) 35 buf[p] = 9 as u8; p = p + 1 36 p = lc_lit(buf, p, "a claim" as *u8) 37 buf[p] = 10 as u8; p = p + 1 38 return p 39} 40 41func evg_chk(name: *u8, got: i64, want: i64, ctr: *i64) -> i64 { 42 ctr[1] = ctr[1] + 1 43 if got == want { ctr[0] = ctr[0] + 1; sys_write(1, " PASS " as *u8, 7) } else { sys_write(1, " FAIL " as *u8, 7) } 44 var n: i64 = 0 45 while name[n] != (0 as u8) { n = n + 1 } 46 sys_write(1, name, n) 47 sys_write(1, "\n" as *u8, 1) 48 return 0 49} 50 51func main(argc: i64, argv: *i64) -> i64 { 52 let ctr: *i64 = gv_ctr() 53 ctr[0] = 0 54 ctr[1] = 0 55 let scratch: *u8 = sys_mmap(SP_FLDBUF) 56 let k: *i64 = sys_mmap(64) as *i64 57 let DEM: *u8 = "demand" as *u8 58 59 // T1 TWO DISTINCT incentive classes, both actionable -> CORROBORATED, counts as 2 60 let b1: *u8 = sys_mmap(EVG_BUF) 61 var n1: i64 = evg_row(b1, 0, "d1" as *u8, DEM, EVG_IC_GOV, EVG_REL_OK, EVG_CRED_OK, SG_PRIMARY, SG_M_MEASURED) 62 n1 = evg_row(b1, n1, "d2" as *u8, DEM, EVG_IC_CONSUMER, EVG_REL_OK, EVG_CRED_OK, SG_PRIMARY, SG_M_MEASURED) 63 evg_chk("two DISTINCT incentive classes -> corroborated" as *u8, ev_admit(b1, n1, DEM, scratch, k), 2, ctr) 64 evg_chk(" ... and counts_as = 2" as *u8, ev_count(b1, n1, DEM, scratch), 2, ctr) 65 66 // T2 ★THE ECHO TOOTH -- same two rows, SAME incentive class. Still 2 admitted, but ZERO counted. 67 // One voice repeated is indistinguishable from no voice for a decision. 68 let b2: *u8 = sys_mmap(EVG_BUF) 69 var n2: i64 = evg_row(b2, 0, "e1" as *u8, DEM, EVG_IC_GOV, EVG_REL_OK, EVG_CRED_OK, SG_PRIMARY, SG_M_MEASURED) 70 n2 = evg_row(b2, n2, "e2" as *u8, DEM, EVG_IC_GOV, EVG_REL_OK, EVG_CRED_OK, SG_PRIMARY, SG_M_MEASURED) 71 evg_chk("same incentive class -> still 2 ADMITTED (grading unaffected)" as *u8, ev_admit(b2, n2, DEM, scratch, k), 2, ctr) 72 evg_chk(" ... but counts_as = 0 (ECHO, not corroboration)" as *u8, ev_count(b2, n2, DEM, scratch), 0, ctr) 73 74 // T3 Admiralty F reliability = honest cannot-judge -> NEVER actionable, owes a fetch-task 75 let b3: *u8 = sys_mmap(EVG_BUF) 76 let n3: i64 = evg_row(b3, 0, "u1" as *u8, DEM, EVG_IC_GOV, EVG_REL_CANNOT_JUDGE, EVG_CRED_OK, SG_PRIMARY, SG_M_MEASURED) 77 ev_admit(b3, n3, DEM, scratch, k) 78 evg_chk("reliability F -> 0 admitted" as *u8, k[1], 0, ctr) 79 evg_chk(" ... counted as unactionable-owes-fetch, not silently dropped" as *u8, k[2], 1, ctr) 80 81 // T4 out-of-range grades are a DEFECT, not a default 82 let b4: *u8 = sys_mmap(EVG_BUF) 83 let n4: i64 = evg_row(b4, 0, "i1" as *u8, DEM, EVG_IC_GOV, EVG_REL_INVALID, EVG_CRED_OK, SG_PRIMARY, SG_M_MEASURED) 84 ev_admit(b4, n4, DEM, scratch, k) 85 evg_chk("invalid grade -> counted INVALID, never admitted" as *u8, k[3], 1, ctr) 86 87 // T5 ★AN UNACTIONABLE ROW MUST NOT BUY INDEPENDENCE IT DID NOT EARN. One admitted (gov) plus one 88 // unactionable (vendor) is still ONE voice. Without this the cheapest way to fake corroboration 89 // would be to add a source too weak to judge. 90 let b5: *u8 = sys_mmap(EVG_BUF) 91 var n5: i64 = evg_row(b5, 0, "a1" as *u8, DEM, EVG_IC_GOV, EVG_REL_OK, EVG_CRED_OK, SG_PRIMARY, SG_M_MEASURED) 92 n5 = evg_row(b5, n5, "u2" as *u8, DEM, EVG_IC_VENDOR, EVG_REL_CANNOT_JUDGE, EVG_CRED_OK, SG_PRIMARY, SG_M_MEASURED) 93 ev_admit(b5, n5, DEM, scratch, k) 94 evg_chk("unactionable row does NOT add a distinct class" as *u8, k[4], 1, ctr) 95 evg_chk(" ... so the set stays an ECHO and counts 0" as *u8, ev_count(b5, n5, DEM, scratch), 0, ctr) 96 97 // T6 CLASS FILTER: failure-mode evidence is not demand evidence. A CPSC recall proves the 98 // category breaks, never that anyone will buy. Conflating them was the original defect. 99 let b6: *u8 = sys_mmap(EVG_BUF) 100 var n6: i64 = evg_row(b6, 0, "f1" as *u8, "failure" as *u8, EVG_IC_GOV, EVG_REL_OK, EVG_CRED_OK, SG_PRIMARY, SG_M_MEASURED) 101 n6 = evg_row(b6, n6, "f2" as *u8, "failure" as *u8, EVG_IC_CONSUMER, EVG_REL_OK, EVG_CRED_OK, SG_PRIMARY, SG_M_MEASURED) 102 ev_admit(b6, n6, DEM, scratch, k) 103 evg_chk("failure-class rows do NOT count as demand evidence" as *u8, k[0], 0, ctr) 104 ev_admit(b6, n6, "failure" as *u8, scratch, k) 105 evg_chk(" ... but DO count under their own class (OPPOSITE)" as *u8, k[1], 2, ctr) 106 107 let rc: i64 = gv_verdict("EVIDENCE-GATE" as *u8, ctr, "admission is valid + actionable + INDEPENDENT; an echo counts as zero; an unactionable source cannot buy corroboration; failure-mode evidence is not demand evidence" as *u8) 108 sys_exit(rc) 109 return rc 110}