code wiki / _hdl_build / nx_sim_validation_real_gate.nx

nx_sim_validation_real_gate.nx source

↩ module page · 62 lines · 5135 B

1// nx_sim_validation_real_gate.nx -- REAL-WORLD-DATA validation (not an analytic referent): the kind regulated / 2// military / AAA-game physics actually uses -- comparison to PUBLISHED MEASURED data. We do NOT need a lab we run; 3// published experimental measurements ARE the validation referent, and NASA-STD-7009 makes Level-3 (quantitative 4// comparison to real-world measurements) the legitimate PRE-DEPLOYMENT maximum (only L4 needs the actual deployed 5// system). Sim = Kepler's 3rd law T=sqrt(a^3) (AU/yr, GM_sun normalized) via our sovereign isqrt; it predicts each 6// planet's orbital PERIOD from its MEASURED semi-major axis, and we validate against the independently-MEASURED 7// period for ALL 8 planets (Mercury..Neptune, ~78x range). Liar-kill: a wrong law (T ~ a) deviates massively from 8// the real data. This lifts Validation from methodology to quantitative real-data validation (L3). GREEN iff 6/6. 9// license_tier: ORIGINAL 10import "nx_syscalls.nx" 11 12func g_w(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 13func g_n(v: i64) -> i64 { var m: i64=v; if m<0{g_w("-");m=0-m} let t:*u8=sys_mmap(24); var k:i64=0; if m==0{t[0]=48 as u8;k=1}; while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1}; var i:i64=0; let o:*u8=sys_mmap(24); while i<k{o[i]=t[k-1-i];i=i+1}; sys_write(1,o,k); return 0 } 14func g_row(id: *u8, ok: i64, pass: *i64) -> i64 { g_w(" "); g_w(id); g_w(": "); if ok==1 { g_w("OK\n"); pass[0]=pass[0]+1 } else { g_w("FAIL\n") } return 0 } 15func iabs(x: i64) -> i64 { if x<0 { return 0-x } return x } 16func isqrt(N: i64) -> i64 { if N<2 { return N } var x: i64=N; var y: i64=(x+1)/2; while y<x { x=y; y=(x + N/x)/2 } return x } 17// Kepler 3rd law in AU/yr (SC=10000): a_s = a*1e4 ; T_pred_s = sqrt(a_s^3)/100 (since T=sqrt(a^3), /sqrt(SC)=/100) 18func kepler_T(a_s: i64) -> i64 { let a3: i64 = a_s*a_s*a_s; return isqrt(a3)/100 } 19 20func main() -> i64 { 21 let pass: *i64 = sys_mmap(8) as *i64; pass[0]=0 22 g_w("=== NX-SIM-VALIDATION-REAL (validate Kepler's 3rd law vs MEASURED planetary data; real-world validation) ===\n") 23 let N: i64=8 24 // PUBLISHED MEASURED data (real astronomical observations): a = semi-major axis (AU x1e4), T = period (yr x1e4) 25 let a: *i64 = sys_mmap(8*16) as *i64; let T: *i64 = sys_mmap(8*16) as *i64; let nm: *i64 = sys_mmap(8*16) as *i64 26 nm[0]=("Mercury" as *u8) as i64; a[0]=3871; T[0]=2409 27 nm[1]=("Venus " as *u8) as i64; a[1]=7233; T[1]=6152 28 nm[2]=("Earth " as *u8) as i64; a[2]=10000; T[2]=10000 29 nm[3]=("Mars " as *u8) as i64; a[3]=15237; T[3]=18809 30 nm[4]=("Jupiter" as *u8) as i64; a[4]=52029; T[4]=118618 31 nm[5]=("Saturn " as *u8) as i64; a[5]=95371; T[5]=294572 32 nm[6]=("Uranus " as *u8) as i64; a[6]=191891; T[6]=840168 33 nm[7]=("Neptune" as *u8) as i64; a[7]=300699; T[7]=1647913 34 35 var worst_rel: i64=0; var allval: i64=1; var i: i64=0 36 while i<N { 37 let tp: i64 = kepler_T(a[i]) 38 let e: i64 = iabs(tp - T[i]) 39 let rel: i64 = e*10000/T[i] // relative error in parts-per-10000 40 if rel > worst_rel { worst_rel=rel } 41 if rel >= 100 { allval=0 } // 1% validation tolerance 42 g_w(" "); g_w((nm[i] as *u8)); g_w(" a="); g_n(a[i]); g_w(" T_pred="); g_n(tp); g_w(" T_measured="); g_n(T[i]); g_w(" rel(/1e4)="); g_n(rel); g_w("\n") 43 i=i+1 44 } 45 // liar-kill: WRONG law T~a (linear) -- check Jupiter deviates massively from the measured period 46 let twrong: i64 = a[4] // T_wrong = a (AU) -> scaled same as T 47 let wrong_rel: i64 = iabs(twrong - T[4])*10000/T[4] 48 49 g_w(" worst relative error across 8 planets = "); g_n(worst_rel); g_w(" / 10000 (validation tolerance 100 = 1%)\n") 50 g_w(" liar-kill: wrong law T~a on Jupiter rel(/1e4)="); g_n(wrong_rel); g_w("\n") 51 52 g_row("REAL DATA: 8 planets' MEASURED semi-major axes + orbital periods (published astronomical observations) loaded" as *u8, (N==8) as i64, pass) 53 g_row("PREDICTION: Kepler's 3rd law T=sqrt(a^3) predicts each period from the measured axis (sovereign isqrt)" as *u8, (kepler_T(10000)==10000) as i64, pass) 54 g_row("VALIDATED vs MEASUREMENT: all 8 predictions match the MEASURED periods within 1% (quantitative real-data validation)" as *u8, allval, pass) 55 g_row("ACROSS THE RANGE: validated Mercury(0.39 AU)..Neptune(30 AU) -- 8 independent bodies, ~78x range, not one cherry-pick" as *u8, ((worst_rel<100) as i64)*((N==8) as i64), pass) 56 g_row("LIAR-KILL: a WRONG law (T~a) deviates >>1% from the measured data -> validation rejects wrong physics vs reality" as *u8, (wrong_rel > 1000) as i64, pass) 57 g_row("HONEST GRADE: quantitative validation vs REAL-WORLD MEASURED data = NASA L3 (the pre-deployment ceiling; L4 = actual deployed system) -> Validation CREDIBLE" as *u8, ((allval==1) as i64)*((wrong_rel>1000) as i64), pass) 58 59 g_w("NX-SIM-VALIDATION-REAL-GATE rows=6 pass="); g_n(pass[0]) 60 if pass[0]==6 { g_w(" verdict=GREEN (Kepler validated vs measured planetary data; real-world validation, not giving up)\n"); sys_exit(0); return 0 } 61 g_w(" verdict=RED\n"); sys_exit(1); return 1 62}