code wiki / _hdl_build / nx_math_ext_verify.nx

nx_math_ext_verify.nx source

↩ module page · 78 lines · 3399 B

1// nx_math_ext_verify.nx -- STANDING guardrail for the math EXTENSIONS that are proven 2// but live OUTSIDE the rung table (compositions / closed forms with no emitter rung): 3// erf full-domain (_f64_erf_full_gate), gamma reflection 0<x<0.5 (_f64_gamma_refl_gate), 4// integer-order incomplete gamma (_f64_igammaq_gate) -- all S-class GREEN; plus the 5// negative-x gamma KNOWN GAP (_f64_gamma_refl_neg_gate, conditioning-limited ~19 ulp, 6// re-measured transparently so a regression past the gap is caught, never hidden). 7// Each gate is built+run through the sovereign lane (nx_sov_build_run) so the extension 8// is re-proven FROM SOURCE every beat -- it cannot stale-rot. Wired into the math autorun 9// tail. Exit = number of S-class extension gates that are not GREEN (the known gap does 10// NOT count; it is reported as GAP/closed). EXTVERIFY row -> knowledge/status/math_engine.log. 11// license_tier: ORIGINAL 12// 13// module: nishi-core.math.ext_verify 14// depends: nishi-core.sys.syscalls 15// capability: MATH_EXTENSION_STANDING_GUARDRAIL 16import "nx_syscalls.nx" 17 18func ev_w(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return 0 } 19 20// build+run a gate through the sovereign lane, silenced; returns raw wait status (0 = clean exit 0) 21func ev_stage(base: *u8) -> i64 { 22 let pid: i64 = sys_fork() 23 if pid == 0 { 24 let dn: i64 = sys_openat_wr("/dev/null" as *u8, 0x1a4) 25 if dn >= 0 { sys_dup3(dn, 1, 0); sys_dup3(dn, 2, 0) } 26 let lane: *u8 = "./_offc/nx_sov_build_run.elf" as *u8 27 let argv: *i64 = sys_mmap(32) as *i64 28 argv[0] = lane as i64 29 argv[1] = base as i64 30 argv[2] = 0 31 let envp: *i64 = sys_mmap(16) as *i64 32 envp[0] = 0 33 sys_execve(lane, argv, envp) 34 sys_exit(127) 35 } 36 let st: *i64 = sys_mmap(16) as *i64 37 sys_wait4(pid, st, 0) 38 return st[0] 39} 40 41func ev_report(fd: i64, name: *u8, rc: i64) -> i64 { 42 ev_w(fd, " " as *u8); ev_w(fd, name); ev_w(fd, "=" as *u8) 43 if rc == 0 { ev_w(fd, "GREEN" as *u8) } else { ev_w(fd, "RED" as *u8) } 44 return 0 45} 46 47func main() -> i64 { 48 let erf: i64 = ev_stage("_f64_erf_full_gate" as *u8) 49 let grf: i64 = ev_stage("_f64_gamma_refl_gate" as *u8) 50 let igq: i64 = ev_stage("_f64_igammaq_gate" as *u8) 51 let neg: i64 = ev_stage("_f64_gamma_refl_neg_gate" as *u8) // known conditioning gap 52 53 var fails: i64 = 0 54 if erf != 0 { fails = fails + 1 } 55 if grf != 0 { fails = fails + 1 } 56 if igq != 0 { fails = fails + 1 } 57 58 // stdout + durable log 59 var p: i64 = 0 60 while p < 2 { 61 var fd: i64 = 1 62 if p == 1 { fd = sys_openat_append("knowledge/status/math_engine.log" as *u8, 0x1a4) } 63 if fd >= 0 { 64 ev_w(fd, "EXTVERIFY" as *u8) 65 ev_report(fd, "erf_full" as *u8, erf) 66 ev_report(fd, "gamma_refl" as *u8, grf) 67 ev_report(fd, "igammaq" as *u8, igq) 68 // the negative-x gamma is a NAMED known gap (dd-refinement); report transparently 69 ev_w(fd, " neg_gamma_x=" as *u8) 70 if neg == 0 { ev_w(fd, "GAP-CLOSED" as *u8) } else { ev_w(fd, "known-gap(~19ulp,dd-todo)" as *u8) } 71 if fails == 0 { ev_w(fd, " verdict=GREEN\n" as *u8) } else { ev_w(fd, " verdict=RED\n" as *u8) } 72 if p == 1 { sys_close(fd) } 73 } 74 p = p + 1 75 } 76 sys_exit(fails) 77 return fails 78}