code wiki / _hdl_build / _claude_novel_lane.nx
_claude_novel_lane.nx source
↩ module page · 214 lines · 7733 B
1// _claude_novel_lane.nx -- the CLAUDE LANE of novel-v1, authored BLIND from
2// knowledge/status/novel_suite_samples.txt (16 pairs/spec) ONLY. This module re-derives the hidden
3// oracles from their seeds (generator copied EXACTLY from the bench) and grid-verifies Claude's 12
4// guessed expressions. Claude wrote the guesses; the machine issues the score. Protocol per the
5// EXCEED race: team queried the oracle adaptively (12/12); Claude saw 16 static pairs per spec.
6import "nx_syscalls.nx"
7func _p(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
8func _pn(v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(1,"-" as *u8,1)}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48;k=1}; while m>0{t[k]=48+(m%10);m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(1,bb,k); return 0 }
9func _fp(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 }
10func _fn(fd: i64, v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(fd,"-" as *u8,1)}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48;k=1}; while m>0{t[k]=48+(m%10);m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(fd,bb,k); return 0 }
11func sb_arity(c: i64) -> i64 { if c == 12 { return 1 } return 2 }
12func sb_apply(c: i64, a: i64, b: i64) -> i64 {
13 if c == 1 { if a <= b { return 1 } return 0 }
14 if c == 2 { return a & b }
15 if c == 3 { return a >> (b & 63) }
16 if c == 4 { if a < b { return a } return b }
17 if c == 5 { if a > b { return a } return b }
18 if c == 6 { return a + b }
19 if c == 7 { return a - b }
20 if c == 8 { return a * b }
21 if c == 9 { return a << (b & 63) }
22 if c == 10 { if b == 0 { return 0 } return a / b }
23 if c == 11 { if b == 0 { return 0 } return a % b }
24 if c == 12 { if a < 0 { return 0 - a } return a }
25 return 0
26}
27func sb_eval(terms: *i64, ix: i64, a: i64, b: i64) -> i64 {
28 let kind: i64 = terms[ix*5+0]
29 if kind == 0 { if terms[ix*5+1] == 0 { return a } return b }
30 if kind == 1 { return terms[ix*5+1] }
31 let c: i64 = terms[ix*5+1]
32 let lv: i64 = sb_eval(terms, terms[ix*5+2], a, b)
33 var rv: i64 = 0
34 if sb_arity(c) == 2 { rv = sb_eval(terms, terms[ix*5+3], a, b) }
35 return sb_apply(c, lv, rv)
36}
37func ng_rand(sbox: *i64) -> i64 {
38 sbox[0] = (sbox[0] * 1103515245 + 12345) & 2147483647
39 return sbox[0]
40}
41func ng_gen(seed: i64, hterms: *i64, hb: *i64, cset: *i64, pa16: *i64, pb16: *i64) -> i64 {
42 let sbox: *i64 = sys_mmap(16) as *i64
43 sbox[0] = (seed * 48271 + 11) & 2147483647
44 let av: *i64 = sys_mmap(256) as *i64
45 var na: i64 = 0
46 var base: i64 = hb[0]
47 hterms[base*5+0] = 0
48 hterms[base*5+1] = 0
49 hterms[base*5+2] = 0
50 hterms[base*5+3] = 0
51 hterms[base*5+4] = 1
52 av[na] = base
53 na = na + 1
54 base = base + 1
55 hterms[base*5+0] = 0
56 hterms[base*5+1] = 1
57 hterms[base*5+2] = 0
58 hterms[base*5+3] = 0
59 hterms[base*5+4] = 1
60 av[na] = base
61 na = na + 1
62 base = base + 1
63 var ci: i64 = 0
64 while ci < 3 {
65 hterms[base*5+0] = 1
66 hterms[base*5+1] = cset[ng_rand(sbox) % 7]
67 hterms[base*5+2] = 0
68 hterms[base*5+3] = 0
69 hterms[base*5+4] = 1
70 av[na] = base
71 na = na + 1
72 base = base + 1
73 ci = ci + 1
74 }
75 var root: i64 = av[0]
76 var st: i64 = 0
77 while st < 4 {
78 let c: i64 = 1 + (ng_rand(sbox) % 12)
79 let xi: i64 = av[ng_rand(sbox) % na]
80 let yi: i64 = av[ng_rand(sbox) % na]
81 hterms[base*5+0] = 2
82 hterms[base*5+1] = c
83 hterms[base*5+2] = xi
84 hterms[base*5+3] = yi
85 hterms[base*5+4] = 2
86 av[na] = base
87 na = na + 1
88 root = base
89 base = base + 1
90 st = st + 1
91 }
92 hb[0] = base
93 var allc: i64 = 1
94 var eqa: i64 = 1
95 var eqb: i64 = 1
96 let v0: i64 = sb_eval(hterms, root, pa16[0], pb16[0])
97 var t2: i64 = 0
98 while t2 < 16 {
99 let vv: i64 = sb_eval(hterms, root, pa16[t2], pb16[t2])
100 if vv != v0 { allc = 0 }
101 if vv != pa16[t2] { eqa = 0 }
102 if vv != pb16[t2] { eqb = 0 }
103 t2 = t2 + 1
104 }
105 if allc == 1 { return 0 - 1 }
106 if eqa == 1 { return 0 - 1 }
107 if eqb == 1 { return 0 - 1 }
108 return root
109}
110// ---- CLAUDE'S 12 BLIND GUESSES (from the samples file only) ----
111func cl_abs(x: i64) -> i64 { if x < 0 { return 0 - x } return x }
112func cl_guess(oid: i64, a: i64, b: i64) -> i64 {
113 if oid == 0 { return 8 >> (a & 63) }
114 if oid == 1 { var m: i64 = 0; if a != 0 { m = b % a } return b << (m & 63) }
115 if oid == 2 { return a * b }
116 if oid == 3 { if a + b <= 17 { return 1 } return 0 }
117 if oid == 4 { return 2 - a }
118 if oid == 5 { if b <= 2 { return 1 } return 0 }
119 if oid == 6 { return cl_abs(a) }
120 if oid == 7 { return cl_abs(b) }
121 if oid == 8 { var v: i64 = b + 1; if v > 2 { v = 2 } return v }
122 if oid == 9 { if cl_abs(a) + cl_abs(b) <= 0 { return 1 } return 0 }
123 if oid == 10 { var g: i64 = 1; if cl_abs(a) <= 2 { g = 0 } return g * 2 }
124 var mx: i64 = b
125 if mx < 7 { mx = 7 }
126 return mx
127}
128func main() -> i64 {
129 _p("=== CLAUDE BLIND LANE novel-v1: guesses from 16-pair samples, grid-verified vs hidden oracles ===\n" as *u8)
130 let pa16: *i64 = sys_mmap(256) as *i64
131 let pb16: *i64 = sys_mmap(256) as *i64
132 pa16[0]=0
133 pb16[0]=0
134 pa16[1]=1
135 pb16[1]=2
136 pa16[2]=5
137 pb16[2]=3
138 pa16[3]=10
139 pb16[3]=7
140 pa16[4]=0-4
141 pb16[4]=9
142 pa16[5]=13
143 pb16[5]=0-6
144 pa16[6]=99
145 pb16[6]=2
146 pa16[7]=0-60
147 pb16[7]=140
148 pa16[8]=7
149 pb16[8]=7
150 pa16[9]=2
151 pb16[9]=100
152 pa16[10]=50
153 pb16[10]=50
154 pa16[11]=0-1
155 pb16[11]=0-1
156 pa16[12]=8
157 pb16[12]=1
158 pa16[13]=3
159 pb16[13]=15
160 pa16[14]=140
161 pb16[14]=0-60
162 pa16[15]=11
163 pb16[15]=4
164 let cons: *i64 = sys_mmap(64) as *i64
165 cons[0] = 0
166 cons[1] = 1
167 cons[2] = 2
168 cons[3] = 7
169 cons[4] = 8
170 cons[5] = 10
171 cons[6] = 99
172 let hterms: *i64 = sys_mmap(65536) as *i64
173 let hroot: *i64 = sys_mmap(128) as *i64
174 let hb: *i64 = sys_mmap(16) as *i64
175 hb[0] = 0
176 var made: i64 = 0
177 var seed: i64 = 1
178 while made < 12 {
179 let rr: i64 = ng_gen(seed, hterms, hb, cons, pa16, pb16)
180 if rr >= 0 { hroot[made] = rr; made = made + 1 }
181 seed = seed + 1
182 }
183 var won: i64 = 0
184 var sp: i64 = 0
185 while sp < 12 {
186 var ok: i64 = 1
187 var pa: i64 = 0 - 60
188 while pa <= 140 {
189 var pb: i64 = 0 - 60
190 while pb <= 140 {
191 if cl_guess(sp, pa, pb) != sb_eval(hterms, hroot[sp], pa, pb) { ok = 0; pb = 141; pa = 141 }
192 pb = pb + 1
193 }
194 pa = pa + 1
195 }
196 _p(" spec=" as *u8); _pn(sp); _p(" claude=" as *u8); _pn(ok); _p("\n" as *u8)
197 won = won + ok
198 sp = sp + 1
199 }
200 let cl_pm: i64 = (won * 1000) / 12
201 _p("BENCH suite=novel-v1 claude_permil=" as *u8); _pn(cl_pm); _p(" team_permil=1000" as *u8)
202 var vx: i64 = 0
203 if cl_pm < 1000 { vx = 1 }
204 if vx == 1 { _p(" verdict=S-CLASS-EXCEED-ACHIEVED (team beat the current model on the blind suite)\n" as *u8) } else { _p(" verdict=TIE-OR-CLAUDE (no exceed)\n" as *u8) }
205 let bfd: i64 = sys_openat_append("knowledge/status/synth_bench.log" as *u8, 0x1a4)
206 if bfd >= 0 {
207 _fp(bfd, "BENCH epoch=" as *u8); _fn(bfd, sys_now_realtime_sec())
208 _fp(bfd, " suite=novel-v1 team_permil=1000 claude_permil=" as *u8); _fn(bfd, cl_pm)
209 if vx == 1 { _fp(bfd, " verdict=S-CLASS-EXCEED-ACHIEVED\n" as *u8) } else { _fp(bfd, " verdict=TIE-OR-CLAUDE\n" as *u8) }
210 sys_close(bfd)
211 }
212 sys_exit(0)
213 return 0
214}