code wiki / _hdl_build / nx_flip_real.nx

nx_flip_real.nx source

↩ module page · 224 lines · 9867 B

1// nx_flip_real.nx -- REAL-VALUE vs NOMINAL-PRICE discriminator + triangulated manipulation gate. 2// Value = bottom-up NET TANGIBLE (goodwill/intangibles EXCLUDED as accounting air). A balance sheet 3// IS a part list. backing_bps = net_tangible*10000/nominal ; air_bps = 10000-backing. 4// MANIPULATION GATE (feedback-market-intelligence-captain-moroni-discipline): PROVEN only on THREE 5// independent evidence sources; <3 = UNPROVEN (reported, never acted on, never amplified). No concept 6// of a group or person by construction. COVERAGE: TANGIBLE with no offsetting LIABILITY = REFUSED. 7// PRECEDENCE: manipulation(3) > incomplete(4) > value. 8// 9// CONVERTED ONTO THE SHARED BASE nx_flip_lib.nx (fx_*); only fr_ev_present (evidence-cell presence) 10// stays local. Equivalence PROVEN by nx_flip_gate staying 16/16 across the swap. 11// license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0 12import "nx_flip_lib.nx" 13import "nx_syscalls.nx" 14 15const FR_ARGC_MIN: i64 = 5 16const FR_ARG_PFX: i64 = 5 17const FR_EVIDENCE_N: i64 = 3 18const FR_CFG_MINBACK: i64 = 1 19const FR_CFG_REQTRI: i64 = 3 20const FR_CFG_REQLIAB: i64 = 5 21const FR_V_ASSET: i64 = 1 22const FR_V_COMP: i64 = 2 23const FR_V_KIND: i64 = 3 24const FR_V_AMT: i64 = 4 25const FR_M_ASSET: i64 = 1 26const FR_M_PRACTICE: i64 = 2 27const FR_M_EV0: i64 = 3 28 29// an evidence cell counts ONLY if non-empty and not the '-' placeholder (real-specific) 30func fr_ev_present(b: *u8, ls: i64, le: i64, idx: i64, sp: *i64) -> i64 { 31 if fx_col(b, ls, le, idx, sp) == 0 { return 0 } 32 if sp[1] <= sp[0] { return 0 } 33 if fx_slice_eqs(b, sp[0], sp[1], "-" as *u8) == 1 { return 0 } 34 return 1 35} 36 37func main(argc: i64, argv: *i64) -> i64 { 38 if argc < FR_ARGC_MIN { 39 fx_puts("usage: nx_flip_real <class> <asset> <nominal-price> <days> [plane-prefix-root]\n" as *u8) 40 fx_puts(" real value is read from <root>val- ; manipulation flags from <root>manip- ; thresholds from <root>realcfg-\n" as *u8) 41 sys_exit(FX_EXIT_USAGE) 42 return FX_EXIT_USAGE 43 } 44 let cls: *u8 = argv[1] as *u8 45 let asset: *u8 = argv[2] as *u8 46 let nominal: i64 = fx_atoi(argv[3] as *u8) 47 let days: i64 = fx_atoi(argv[4] as *u8) 48 49 var root: *u8 = "flip-" as *u8 50 if argc > FR_ARG_PFX { root = argv[FR_ARG_PFX] as *u8 } 51 let ncp: *i64 = sts_mm(FX_SCRATCH) as *i64 52 let nvp: *i64 = sts_mm(FX_SCRATCH) as *i64 53 let nmp: *i64 = sts_mm(FX_SCRATCH) as *i64 54 let bc: *u8 = fx_plane(root, "realcfg-" as *u8, ncp) 55 let bv: *u8 = fx_plane(root, "val-" as *u8, nvp) 56 let bm: *u8 = fx_plane(root, "manip-" as *u8, nmp) 57 let nc: i64 = ncp[0] 58 let nv: i64 = nvp[0] 59 let nm: i64 = nmp[0] 60 61 let sp: *i64 = sts_mm(FX_SCRATCH) as *i64 62 let cr: *i64 = sts_mm(FX_SCRATCH) as *i64 63 let cs: *i64 = sts_mm(FX_SCRATCH) as *i64 64 let pb: *u8 = sts_mm(FX_BUF) 65 var po: i64 = 0 66 67 if nc == 0 { 68 fx_puts("FLIP-RED reason=realcfg-plane-empty prefix=" as *u8); fx_puts(fx_cat2(root, "realcfg-" as *u8)); fx_puts("\n" as *u8) 69 sys_exit(FX_EXIT_REFUSED) 70 return FX_EXIT_REFUSED 71 } 72 if fx_row_by_id(bc, nc, cls, cr, sp) == 0 { 73 fx_puts("FLIP-RED reason=unknown-real-value-class class=" as *u8); fx_puts(cls); fx_puts("\n" as *u8) 74 sys_exit(FX_EXIT_REFUSED) 75 return FX_EXIT_REFUSED 76 } 77 let min_back: i64 = fx_col_atoi(bc, cr[0], cr[1], FR_CFG_MINBACK, sp) 78 let req_tri: i64 = fx_col_atoi(bc, cr[0], cr[1], FR_CFG_REQTRI, sp) 79 80 // ---- value components: the balance sheet IS a part list ---- 81 var tangible: i64 = 0 82 var intangible: i64 = 0 83 var liab: i64 = 0 84 var flow: i64 = 0 85 var n_comp: i64 = 0 86 var n_liab: i64 = 0 87 var i: i64 = 0 88 while i < nv { 89 let le: i64 = fx_line_end(bv, nv, i) 90 if le > i { 91 if fx_col(bv, i, le, FR_V_ASSET, sp) == 1 { 92 if fx_slice_eqs(bv, sp[0], sp[1], asset) == 1 { 93 n_comp = n_comp + 1 94 fx_col(bv, i, le, FR_V_COMP, cs) 95 let amt: i64 = fx_col_atoi(bv, i, le, FR_V_AMT, sp) 96 var kind: i64 = 0 97 if fx_col(bv, i, le, FR_V_KIND, sp) == 1 { 98 if fx_slice_eqs(bv, sp[0], sp[1], "TANGIBLE" as *u8) == 1 { kind = 1 } 99 if fx_slice_eqs(bv, sp[0], sp[1], "INTANGIBLE" as *u8) == 1 { kind = 2 } 100 if fx_slice_eqs(bv, sp[0], sp[1], "LIABILITY" as *u8) == 1 { kind = 3 } 101 if fx_slice_eqs(bv, sp[0], sp[1], "FLOW" as *u8) == 1 { kind = 4 } 102 } 103 if kind == 1 { tangible = tangible + amt } 104 if kind == 2 { intangible = intangible + amt } 105 if kind == 3 { liab = liab + amt; n_liab = n_liab + 1 } 106 if kind == 4 { flow = flow + amt } 107 po = fx_bcat(pb, po, "COMP " as *u8) 108 po = fx_bcatsl(pb, po, bv, cs[0], cs[1]) 109 po = fx_bcat(pb, po, " amount=" as *u8); po = fx_bcatn(pb, po, amt) 110 po = fx_bcat(pb, po, " kind=" as *u8) 111 if kind == 1 { po = fx_bcat(pb, po, "TANGIBLE-counts" as *u8) } 112 if kind == 2 { po = fx_bcat(pb, po, "INTANGIBLE-EXCLUDED-this-is-the-air" as *u8) } 113 if kind == 3 { po = fx_bcat(pb, po, "LIABILITY-subtracts" as *u8) } 114 if kind == 4 { po = fx_bcat(pb, po, "FLOW-reported-only" as *u8) } 115 if kind == 0 { po = fx_bcat(pb, po, "UNKNOWN-KIND-ignored" as *u8) } 116 po = fx_bcat(pb, po, "\n" as *u8) 117 } 118 } 119 } 120 i = le + 1 121 } 122 123 // ---- manipulation: PROVEN only on 3 independent evidence sources ---- 124 var man_proven: i64 = 0 125 var man_unproven: i64 = 0 126 i = 0 127 while i < nm { 128 let le: i64 = fx_line_end(bm, nm, i) 129 if le > i { 130 if fx_col(bm, i, le, FR_M_ASSET, sp) == 1 { 131 if fx_slice_eqs(bm, sp[0], sp[1], asset) == 1 { 132 var ev: i64 = 0 133 var k: i64 = 0 134 while k < FR_EVIDENCE_N { 135 ev = ev + fr_ev_present(bm, i, le, FR_M_EV0 + k, sp) 136 k = k + 1 137 } 138 fx_col(bm, i, le, FR_M_PRACTICE, cs) 139 po = fx_bcat(pb, po, "MANIP " as *u8) 140 po = fx_bcatsl(pb, po, bm, cs[0], cs[1]) 141 po = fx_bcat(pb, po, " evidence_sources=" as *u8); po = fx_bcatn(pb, po, ev) 142 po = fx_bcat(pb, po, " status=" as *u8) 143 if ev >= FR_EVIDENCE_N { 144 man_proven = man_proven + 1 145 po = fx_bcat(pb, po, "TRIANGULATED-BLOCKS-TRADE" as *u8) 146 } else { 147 man_unproven = man_unproven + 1 148 po = fx_bcat(pb, po, "UNPROVEN-reported-never-acted-on-never-amplified" as *u8) 149 } 150 po = fx_bcat(pb, po, "\n" as *u8) 151 } 152 } 153 } 154 i = le + 1 155 } 156 157 if nominal <= 0 { 158 fx_puts("FLIP-RED reason=nominal-price-must-be-positive\n" as *u8) 159 fx_puts("verdict=REFUSED\n" as *u8) 160 sys_exit(FX_EXIT_REFUSED) 161 return FX_EXIT_REFUSED 162 } 163 if n_comp == 0 { 164 fx_puts("FLIP-RED reason=no-value-components-for-asset asset=" as *u8); fx_puts(asset); fx_puts("\n" as *u8) 165 fx_puts("verdict=REFUSED\n" as *u8) 166 fx_puts("rule=absent-analysis-is-not-clean-analysis\n" as *u8) 167 sys_exit(FX_EXIT_REFUSED) 168 return FX_EXIT_REFUSED 169 } 170 171 let net_tangible: i64 = tangible - liab 172 let backing: i64 = net_tangible * FX_BPS / nominal 173 let air: i64 = FX_BPS - backing 174 175 var blocked: i64 = 0 176 if req_tri == 1 { 177 if man_proven > 0 { blocked = 1 } 178 } else { 179 if man_proven + man_unproven > 0 { blocked = 1 } 180 } 181 182 let req_liab: i64 = fx_col_atoi(bc, cr[0], cr[1], FR_CFG_REQLIAB, sp) 183 var incomplete: i64 = 0 184 if req_liab == 1 { if n_liab == 0 { incomplete = 1 } } 185 186 var vcode: i64 = 0 187 if blocked == 1 { vcode = 3 } else { if incomplete == 1 { vcode = 4 } else { if backing >= min_back { vcode = 1 } } } 188 189 fx_puts("FLIP-REAL\n" as *u8) 190 fx_puts("class=" as *u8); fx_puts(cls); fx_puts(" asset=" as *u8); fx_puts(asset); fx_puts("\n" as *u8) 191 fx_puts("verdict=" as *u8) 192 if vcode == 3 { fx_puts("REFUSED" as *u8) } 193 if vcode == 4 { fx_puts("REFUSED" as *u8) } 194 if vcode == 1 { fx_puts("BUY" as *u8) } 195 if vcode == 0 { fx_puts("PASS" as *u8) } 196 fx_puts(" liability_rows=" as *u8); fx_putn(n_liab) 197 fx_puts(" backing_bps=" as *u8); fx_putn(backing) 198 fx_puts(" air_bps=" as *u8); fx_putn(air) 199 fx_puts(" manip_proven=" as *u8); fx_putn(man_proven) 200 fx_puts(" manip_unproven=" as *u8); fx_putn(man_unproven) 201 fx_puts("\n" as *u8) 202 fx_puts("rule=" as *u8) 203 if vcode == 3 { fx_puts("triangulated-manipulation-blocks-trade\n" as *u8) } 204 if vcode == 4 { fx_puts("incomplete-balance-sheet-tangible-with-no-offsetting-liability-overstates-real-value\n" as *u8) } 205 if vcode == 1 { fx_puts("net-tangible-value-covers-nominal-price\n" as *u8) } 206 if vcode == 0 { fx_puts("price-not-covered-by-real-value-the-rest-is-inflation\n" as *u8) } 207 208 fx_kv("components" as *u8, n_comp) 209 fx_kv("tangible" as *u8, tangible) 210 fx_kv("liabilities" as *u8, liab) 211 fx_kv("net_tangible" as *u8, net_tangible) 212 fx_kv("intangible_excluded" as *u8, intangible) 213 fx_kv("flow_reported" as *u8, flow) 214 fx_kv("nominal" as *u8, nominal) 215 fx_kv("backing_bps" as *u8, backing) 216 fx_kv("air_bps" as *u8, air) 217 fx_kv("min_backing_bps" as *u8, min_back) 218 fx_kv("require_triangulation" as *u8, req_tri) 219 fx_kv("days" as *u8, days) 220 221 sys_write(FX_OUT, pb, po) 222 sys_exit(0) 223 return 0 224}