nmarshall commited on
Commit
485180d
·
1 Parent(s): c1bb3ed

qvm: leaf ancestry matrix

Browse files
docs/ASSET_PIPELINE_TODO.md CHANGED
@@ -694,3 +694,6 @@ Research progress: RE-672 [report](research/QVM_CHILD_TRANSFORM.md); remaining n
694
 
695
 
696
  Research progress: RE-673 [report](research/QVM_MODEL_HIERARCHY.md); remaining native/content/runtime/platform scope stays open.
 
 
 
 
694
 
695
 
696
  Research progress: RE-673 [report](research/QVM_MODEL_HIERARCHY.md); remaining native/content/runtime/platform scope stays open.
697
+
698
+
699
+ Research progress: RE-674 [report](research/QVM_LEAF_BASIS.md); remaining native/content/runtime/platform scope stays open.
docs/FINDINGS.md CHANGED
@@ -1040,3 +1040,6 @@ Bounded qagame paths recover bomb-plant/inactivity correction requests, direct f
1040
 
1041
 
1042
  **RE-673 — Complete hierarchy traversal through actual child transforms:** 25341 now executes actual22009, skips null children, recurses into child tables and visits parent leaves after children; leaf geometry remains captured. [Evidence](research/QVM_MODEL_HIERARCHY.md).
 
 
 
 
1040
 
1041
 
1042
  **RE-673 — Complete hierarchy traversal through actual child transforms:** 25341 now executes actual22009, skips null children, recurses into child tables and visits parent leaves after children; leaf geometry remains captured. [Evidence](research/QVM_MODEL_HIERARCHY.md).
1043
+
1044
+
1045
+ **RE-674 — Leaf ancestry matrix accumulation:** 23092 accumulates matrices through the node parent chain and repeats the unusual fourth-row source indexing; identity ancestors therefore alter row four. [Evidence](research/QVM_LEAF_BASIS.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1020,3 +1020,6 @@ Research progress: RE-672 [report](research/QVM_CHILD_TRANSFORM.md); remaining n
1020
 
1021
 
1022
  Research progress: RE-673 [report](research/QVM_MODEL_HIERARCHY.md); remaining native/content/runtime/platform scope stays open.
 
 
 
 
1020
 
1021
 
1022
  Research progress: RE-673 [report](research/QVM_MODEL_HIERARCHY.md); remaining native/content/runtime/platform scope stays open.
1023
+
1024
+
1025
+ Research progress: RE-674 [report](research/QVM_LEAF_BASIS.md); remaining native/content/runtime/platform scope stays open.
docs/RESEARCH_LEDGER.md CHANGED
@@ -1022,3 +1022,8 @@ Complete22009 composes the sample basis only with nonnull parents and uses local
1022
  ## 2026-10-21 — RE-673 Complete hierarchy traversal through actual child transforms (separate task commit)
1023
 
1024
  25341 now executes actual22009, skips null children, recurses into child tables and visits parent leaves after children; leaf geometry remains captured. 15 finite hierarchy fixtures independently verify postorder leaf requests, every transformed record, null-slot skipping, nested frame isolation and forwarded geometry arguments. Full suite: 1153 tests pass. Report regenerates byte-identically (294562 bytes). Storage/filter, links and whitespace checks pass. No assets/Rust runtime/shared VM evaluator changed; native/reference/legal/full platform scope remains open.
 
 
 
 
 
 
1022
  ## 2026-10-21 — RE-673 Complete hierarchy traversal through actual child transforms (separate task commit)
1023
 
1024
  25341 now executes actual22009, skips null children, recurses into child tables and visits parent leaves after children; leaf geometry remains captured. 15 finite hierarchy fixtures independently verify postorder leaf requests, every transformed record, null-slot skipping, nested frame isolation and forwarded geometry arguments. Full suite: 1153 tests pass. Report regenerates byte-identically (294562 bytes). Storage/filter, links and whitespace checks pass. No assets/Rust runtime/shared VM evaluator changed; native/reference/legal/full platform scope remains open.
1025
+
1026
+
1027
+ ## 2026-10-21 — RE-674 Leaf ancestry matrix accumulation (separate task commit)
1028
+
1029
+ 23092 accumulates matrices through the node parent chain and repeats the unusual fourth-row source indexing; identity ancestors therefore alter row four. 12 independent full4×4 float32 product fixtures cover depths1..4, identity, turn/scale and nondiagonal inputs. Full suite: 1157 tests pass. Report regenerates byte-identically (22327 bytes). Storage/filter, links and whitespace checks pass. No assets/Rust runtime/shared VM evaluator changed; native/reference/legal/full platform scope remains open.
docs/REVERSE_ENGINEERING_TODO.md CHANGED
@@ -1063,3 +1063,6 @@ Purpose: turn the supplied installation into an evidence-backed specification of
1063
 
1064
 
1065
  - [x] RE-673 Complete hierarchy traversal through actual child transforms ([report](research/QVM_MODEL_HIERARCHY.md)).
 
 
 
 
1063
 
1064
 
1065
  - [x] RE-673 Complete hierarchy traversal through actual child transforms ([report](research/QVM_MODEL_HIERARCHY.md)).
1066
+
1067
+
1068
+ - [x] RE-674 Leaf ancestry matrix accumulation ([report](research/QVM_LEAF_BASIS.md)).
docs/research/QVM_LEAF_BASIS.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # Leaf ancestry matrix accumulation
2
+
3
+ RE-674. Reproduce with `python3 scripts/analyze_qvm_leaf_basis.py`; check with `python3 scripts/test_qvm_leaf_basis.py`. The [machine report](qvm-leaf-basis.json) retains source identity and bounded fixtures.
4
+
5
+ Actual23093–23887 initializes an identity matrix then multiplies through node96 ancestry using each node basis12..72. Its fourth row reads local48/68/56/76. Consequently an identity chain of any positive depth produces row4=[0,0,1,1], not a conventional identity product. Pure scalar dot-product oracles retain exact source addition order across all sixteen outputs. No origins, primitive lists, native math or intersection children run in this stage. Inputs remain acyclic supplied chains; model ownership and original live behavior remain unverified.
6
+
7
+ No original executable/full QVM/native collision/physics/rendering executes. Native responses and legal input domains are supplied or unverified where stated; full runtime/macOS/Linux Rust/Bevy/Solari gameplay remains open.
docs/research/README.md CHANGED
@@ -621,3 +621,6 @@ The extension collector adds five focused tests for native tail calls, command-r
621
 
622
 
623
  [RE-673: Complete hierarchy traversal through actual child transforms](QVM_MODEL_HIERARCHY.md). Reproduce with `python3 scripts/analyze_qvm_model_hierarchy.py`; check with `python3 scripts/test_qvm_model_hierarchy.py`.
 
 
 
 
621
 
622
 
623
  [RE-673: Complete hierarchy traversal through actual child transforms](QVM_MODEL_HIERARCHY.md). Reproduce with `python3 scripts/analyze_qvm_model_hierarchy.py`; check with `python3 scripts/test_qvm_model_hierarchy.py`.
624
+
625
+
626
+ [RE-674: Leaf ancestry matrix accumulation](QVM_LEAF_BASIS.md). Reproduce with `python3 scripts/analyze_qvm_leaf_basis.py`; check with `python3 scripts/test_qvm_leaf_basis.py`.
docs/research/qvm-leaf-basis.json ADDED
@@ -0,0 +1,1301 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "limits": "Actual23093\u201323887; explicit acyclic transform chains only. Source fourth row reads local48/68/56/76 rather than a standard product row. No primitive/geometry/native calls execute.",
3
+ "probes": [
4
+ {
5
+ "execution": {
6
+ "byte_writes": [],
7
+ "calls": [],
8
+ "children": [],
9
+ "return": null,
10
+ "trace": null,
11
+ "trace_length": 799,
12
+ "trace_sha256": "cf95044deb7c1a382bcd187449b9fde10a62e0d13624d19b1d31fd0a91237c52"
13
+ },
14
+ "input_chain": [
15
+ [
16
+ [
17
+ 1065353216,
18
+ 0,
19
+ 0,
20
+ 0
21
+ ],
22
+ [
23
+ 0,
24
+ 1065353216,
25
+ 0,
26
+ 0
27
+ ],
28
+ [
29
+ 0,
30
+ 0,
31
+ 1065353216,
32
+ 0
33
+ ],
34
+ [
35
+ 0,
36
+ 0,
37
+ 0,
38
+ 1065353216
39
+ ]
40
+ ]
41
+ ],
42
+ "kind": "identity",
43
+ "matrix": [
44
+ [
45
+ 1065353216,
46
+ 0,
47
+ 0,
48
+ 0
49
+ ],
50
+ [
51
+ 0,
52
+ 1065353216,
53
+ 0,
54
+ 0
55
+ ],
56
+ [
57
+ 0,
58
+ 0,
59
+ 1065353216,
60
+ 0
61
+ ],
62
+ [
63
+ 0,
64
+ 0,
65
+ 1065353216,
66
+ 1065353216
67
+ ]
68
+ ]
69
+ },
70
+ {
71
+ "execution": {
72
+ "byte_writes": [],
73
+ "calls": [],
74
+ "children": [],
75
+ "return": null,
76
+ "trace": null,
77
+ "trace_length": 799,
78
+ "trace_sha256": "cf95044deb7c1a382bcd187449b9fde10a62e0d13624d19b1d31fd0a91237c52"
79
+ },
80
+ "input_chain": [
81
+ [
82
+ [
83
+ 0,
84
+ 1065353216,
85
+ 0,
86
+ 0
87
+ ],
88
+ [
89
+ 3212836864,
90
+ 0,
91
+ 0,
92
+ 0
93
+ ],
94
+ [
95
+ 0,
96
+ 0,
97
+ 1067450368,
98
+ 0
99
+ ],
100
+ [
101
+ 0,
102
+ 0,
103
+ 0,
104
+ 1065353216
105
+ ]
106
+ ]
107
+ ],
108
+ "kind": "turn-scale",
109
+ "matrix": [
110
+ [
111
+ 0,
112
+ 1065353216,
113
+ 0,
114
+ 0
115
+ ],
116
+ [
117
+ 3212836864,
118
+ 0,
119
+ 0,
120
+ 0
121
+ ],
122
+ [
123
+ 0,
124
+ 0,
125
+ 1067450368,
126
+ 0
127
+ ],
128
+ [
129
+ 0,
130
+ 0,
131
+ 1067450368,
132
+ 1065353216
133
+ ]
134
+ ]
135
+ },
136
+ {
137
+ "execution": {
138
+ "byte_writes": [],
139
+ "calls": [],
140
+ "children": [],
141
+ "return": null,
142
+ "trace": null,
143
+ "trace_length": 799,
144
+ "trace_sha256": "cf95044deb7c1a382bcd187449b9fde10a62e0d13624d19b1d31fd0a91237c52"
145
+ },
146
+ "input_chain": [
147
+ [
148
+ [
149
+ 1065353216,
150
+ 1048576000,
151
+ 0,
152
+ 1036831949
153
+ ],
154
+ [
155
+ 0,
156
+ 1065353216,
157
+ 3204448256,
158
+ 1045220557
159
+ ],
160
+ [
161
+ 1040187392,
162
+ 0,
163
+ 1065353216,
164
+ 1050253722
165
+ ],
166
+ [
167
+ 0,
168
+ 0,
169
+ 0,
170
+ 1065353216
171
+ ]
172
+ ]
173
+ ],
174
+ "kind": "general",
175
+ "matrix": [
176
+ [
177
+ 1065353216,
178
+ 1048576000,
179
+ 0,
180
+ 1036831949
181
+ ],
182
+ [
183
+ 0,
184
+ 1065353216,
185
+ 3204448256,
186
+ 1045220557
187
+ ],
188
+ [
189
+ 1040187392,
190
+ 0,
191
+ 1065353216,
192
+ 1050253722
193
+ ],
194
+ [
195
+ 1040187392,
196
+ 0,
197
+ 1065353216,
198
+ 1067869798
199
+ ]
200
+ ]
201
+ },
202
+ {
203
+ "execution": {
204
+ "byte_writes": [],
205
+ "calls": [],
206
+ "children": [],
207
+ "return": null,
208
+ "trace": null,
209
+ "trace_length": 1466,
210
+ "trace_sha256": "308c2980c2d81333c4cc06da4f17de8a4c5e9e7a99fc33c7e96d6958ecc52a9a"
211
+ },
212
+ "input_chain": [
213
+ [
214
+ [
215
+ 1065353216,
216
+ 0,
217
+ 0,
218
+ 0
219
+ ],
220
+ [
221
+ 0,
222
+ 1065353216,
223
+ 0,
224
+ 0
225
+ ],
226
+ [
227
+ 0,
228
+ 0,
229
+ 1065353216,
230
+ 0
231
+ ],
232
+ [
233
+ 0,
234
+ 0,
235
+ 0,
236
+ 1065353216
237
+ ]
238
+ ],
239
+ [
240
+ [
241
+ 1065353216,
242
+ 0,
243
+ 0,
244
+ 0
245
+ ],
246
+ [
247
+ 0,
248
+ 1065353216,
249
+ 0,
250
+ 0
251
+ ],
252
+ [
253
+ 0,
254
+ 0,
255
+ 1065353216,
256
+ 0
257
+ ],
258
+ [
259
+ 0,
260
+ 0,
261
+ 0,
262
+ 1065353216
263
+ ]
264
+ ]
265
+ ],
266
+ "kind": "identity",
267
+ "matrix": [
268
+ [
269
+ 1065353216,
270
+ 0,
271
+ 0,
272
+ 0
273
+ ],
274
+ [
275
+ 0,
276
+ 1065353216,
277
+ 0,
278
+ 0
279
+ ],
280
+ [
281
+ 0,
282
+ 0,
283
+ 1065353216,
284
+ 0
285
+ ],
286
+ [
287
+ 0,
288
+ 0,
289
+ 1065353216,
290
+ 1065353216
291
+ ]
292
+ ]
293
+ },
294
+ {
295
+ "execution": {
296
+ "byte_writes": [],
297
+ "calls": [],
298
+ "children": [],
299
+ "return": null,
300
+ "trace": null,
301
+ "trace_length": 1466,
302
+ "trace_sha256": "308c2980c2d81333c4cc06da4f17de8a4c5e9e7a99fc33c7e96d6958ecc52a9a"
303
+ },
304
+ "input_chain": [
305
+ [
306
+ [
307
+ 0,
308
+ 1065353216,
309
+ 0,
310
+ 0
311
+ ],
312
+ [
313
+ 3212836864,
314
+ 0,
315
+ 0,
316
+ 0
317
+ ],
318
+ [
319
+ 0,
320
+ 0,
321
+ 1067450368,
322
+ 0
323
+ ],
324
+ [
325
+ 0,
326
+ 0,
327
+ 0,
328
+ 1065353216
329
+ ]
330
+ ],
331
+ [
332
+ [
333
+ 0,
334
+ 1065353216,
335
+ 0,
336
+ 0
337
+ ],
338
+ [
339
+ 3212836864,
340
+ 0,
341
+ 0,
342
+ 0
343
+ ],
344
+ [
345
+ 0,
346
+ 0,
347
+ 1067450368,
348
+ 0
349
+ ],
350
+ [
351
+ 0,
352
+ 0,
353
+ 0,
354
+ 1065353216
355
+ ]
356
+ ]
357
+ ],
358
+ "kind": "turn-scale",
359
+ "matrix": [
360
+ [
361
+ 3212836864,
362
+ 0,
363
+ 0,
364
+ 0
365
+ ],
366
+ [
367
+ 0,
368
+ 3212836864,
369
+ 0,
370
+ 0
371
+ ],
372
+ [
373
+ 0,
374
+ 0,
375
+ 1070071808,
376
+ 0
377
+ ],
378
+ [
379
+ 0,
380
+ 0,
381
+ 1070071808,
382
+ 1065353216
383
+ ]
384
+ ]
385
+ },
386
+ {
387
+ "execution": {
388
+ "byte_writes": [],
389
+ "calls": [],
390
+ "children": [],
391
+ "return": null,
392
+ "trace": null,
393
+ "trace_length": 1466,
394
+ "trace_sha256": "308c2980c2d81333c4cc06da4f17de8a4c5e9e7a99fc33c7e96d6958ecc52a9a"
395
+ },
396
+ "input_chain": [
397
+ [
398
+ [
399
+ 1065353216,
400
+ 1048576000,
401
+ 0,
402
+ 1036831949
403
+ ],
404
+ [
405
+ 0,
406
+ 1065353216,
407
+ 3204448256,
408
+ 1045220557
409
+ ],
410
+ [
411
+ 1040187392,
412
+ 0,
413
+ 1065353216,
414
+ 1050253722
415
+ ],
416
+ [
417
+ 0,
418
+ 0,
419
+ 0,
420
+ 1065353216
421
+ ]
422
+ ],
423
+ [
424
+ [
425
+ 1065353216,
426
+ 1048576000,
427
+ 0,
428
+ 1036831949
429
+ ],
430
+ [
431
+ 0,
432
+ 1065353216,
433
+ 3204448256,
434
+ 1045220557
435
+ ],
436
+ [
437
+ 1040187392,
438
+ 0,
439
+ 1065353216,
440
+ 1050253722
441
+ ],
442
+ [
443
+ 0,
444
+ 0,
445
+ 0,
446
+ 1065353216
447
+ ]
448
+ ]
449
+ ],
450
+ "kind": "general",
451
+ "matrix": [
452
+ [
453
+ 1065353216,
454
+ 1056964608,
455
+ 3187671040,
456
+ 1048576000
457
+ ],
458
+ [
459
+ 3179282432,
460
+ 1065353216,
461
+ 3212836864,
462
+ 1048576000
463
+ ],
464
+ [
465
+ 1048576000,
466
+ 1023410176,
467
+ 1065353216,
468
+ 1058852045
469
+ ],
470
+ [
471
+ 1048576000,
472
+ 1023410176,
473
+ 1065353216,
474
+ 1070491238
475
+ ]
476
+ ]
477
+ },
478
+ {
479
+ "execution": {
480
+ "byte_writes": [],
481
+ "calls": [],
482
+ "children": [],
483
+ "return": null,
484
+ "trace": null,
485
+ "trace_length": 2133,
486
+ "trace_sha256": "e86114056358525fc70ceafe0e5bc27e888bb5744a8da884afd2af2adc7b770b"
487
+ },
488
+ "input_chain": [
489
+ [
490
+ [
491
+ 1065353216,
492
+ 0,
493
+ 0,
494
+ 0
495
+ ],
496
+ [
497
+ 0,
498
+ 1065353216,
499
+ 0,
500
+ 0
501
+ ],
502
+ [
503
+ 0,
504
+ 0,
505
+ 1065353216,
506
+ 0
507
+ ],
508
+ [
509
+ 0,
510
+ 0,
511
+ 0,
512
+ 1065353216
513
+ ]
514
+ ],
515
+ [
516
+ [
517
+ 1065353216,
518
+ 0,
519
+ 0,
520
+ 0
521
+ ],
522
+ [
523
+ 0,
524
+ 1065353216,
525
+ 0,
526
+ 0
527
+ ],
528
+ [
529
+ 0,
530
+ 0,
531
+ 1065353216,
532
+ 0
533
+ ],
534
+ [
535
+ 0,
536
+ 0,
537
+ 0,
538
+ 1065353216
539
+ ]
540
+ ],
541
+ [
542
+ [
543
+ 1065353216,
544
+ 0,
545
+ 0,
546
+ 0
547
+ ],
548
+ [
549
+ 0,
550
+ 1065353216,
551
+ 0,
552
+ 0
553
+ ],
554
+ [
555
+ 0,
556
+ 0,
557
+ 1065353216,
558
+ 0
559
+ ],
560
+ [
561
+ 0,
562
+ 0,
563
+ 0,
564
+ 1065353216
565
+ ]
566
+ ]
567
+ ],
568
+ "kind": "identity",
569
+ "matrix": [
570
+ [
571
+ 1065353216,
572
+ 0,
573
+ 0,
574
+ 0
575
+ ],
576
+ [
577
+ 0,
578
+ 1065353216,
579
+ 0,
580
+ 0
581
+ ],
582
+ [
583
+ 0,
584
+ 0,
585
+ 1065353216,
586
+ 0
587
+ ],
588
+ [
589
+ 0,
590
+ 0,
591
+ 1065353216,
592
+ 1065353216
593
+ ]
594
+ ]
595
+ },
596
+ {
597
+ "execution": {
598
+ "byte_writes": [],
599
+ "calls": [],
600
+ "children": [],
601
+ "return": null,
602
+ "trace": null,
603
+ "trace_length": 2133,
604
+ "trace_sha256": "e86114056358525fc70ceafe0e5bc27e888bb5744a8da884afd2af2adc7b770b"
605
+ },
606
+ "input_chain": [
607
+ [
608
+ [
609
+ 0,
610
+ 1065353216,
611
+ 0,
612
+ 0
613
+ ],
614
+ [
615
+ 3212836864,
616
+ 0,
617
+ 0,
618
+ 0
619
+ ],
620
+ [
621
+ 0,
622
+ 0,
623
+ 1067450368,
624
+ 0
625
+ ],
626
+ [
627
+ 0,
628
+ 0,
629
+ 0,
630
+ 1065353216
631
+ ]
632
+ ],
633
+ [
634
+ [
635
+ 0,
636
+ 1065353216,
637
+ 0,
638
+ 0
639
+ ],
640
+ [
641
+ 3212836864,
642
+ 0,
643
+ 0,
644
+ 0
645
+ ],
646
+ [
647
+ 0,
648
+ 0,
649
+ 1067450368,
650
+ 0
651
+ ],
652
+ [
653
+ 0,
654
+ 0,
655
+ 0,
656
+ 1065353216
657
+ ]
658
+ ],
659
+ [
660
+ [
661
+ 0,
662
+ 1065353216,
663
+ 0,
664
+ 0
665
+ ],
666
+ [
667
+ 3212836864,
668
+ 0,
669
+ 0,
670
+ 0
671
+ ],
672
+ [
673
+ 0,
674
+ 0,
675
+ 1067450368,
676
+ 0
677
+ ],
678
+ [
679
+ 0,
680
+ 0,
681
+ 0,
682
+ 1065353216
683
+ ]
684
+ ]
685
+ ],
686
+ "kind": "turn-scale",
687
+ "matrix": [
688
+ [
689
+ 0,
690
+ 3212836864,
691
+ 0,
692
+ 0
693
+ ],
694
+ [
695
+ 1065353216,
696
+ 0,
697
+ 0,
698
+ 0
699
+ ],
700
+ [
701
+ 0,
702
+ 0,
703
+ 1073348608,
704
+ 0
705
+ ],
706
+ [
707
+ 0,
708
+ 0,
709
+ 1073348608,
710
+ 1065353216
711
+ ]
712
+ ]
713
+ },
714
+ {
715
+ "execution": {
716
+ "byte_writes": [],
717
+ "calls": [],
718
+ "children": [],
719
+ "return": null,
720
+ "trace": null,
721
+ "trace_length": 2133,
722
+ "trace_sha256": "e86114056358525fc70ceafe0e5bc27e888bb5744a8da884afd2af2adc7b770b"
723
+ },
724
+ "input_chain": [
725
+ [
726
+ [
727
+ 1065353216,
728
+ 1048576000,
729
+ 0,
730
+ 1036831949
731
+ ],
732
+ [
733
+ 0,
734
+ 1065353216,
735
+ 3204448256,
736
+ 1045220557
737
+ ],
738
+ [
739
+ 1040187392,
740
+ 0,
741
+ 1065353216,
742
+ 1050253722
743
+ ],
744
+ [
745
+ 0,
746
+ 0,
747
+ 0,
748
+ 1065353216
749
+ ]
750
+ ],
751
+ [
752
+ [
753
+ 1065353216,
754
+ 1048576000,
755
+ 0,
756
+ 1036831949
757
+ ],
758
+ [
759
+ 0,
760
+ 1065353216,
761
+ 3204448256,
762
+ 1045220557
763
+ ],
764
+ [
765
+ 1040187392,
766
+ 0,
767
+ 1065353216,
768
+ 1050253722
769
+ ],
770
+ [
771
+ 0,
772
+ 0,
773
+ 0,
774
+ 1065353216
775
+ ]
776
+ ],
777
+ [
778
+ [
779
+ 1065353216,
780
+ 1048576000,
781
+ 0,
782
+ 1036831949
783
+ ],
784
+ [
785
+ 0,
786
+ 1065353216,
787
+ 3204448256,
788
+ 1045220557
789
+ ],
790
+ [
791
+ 1040187392,
792
+ 0,
793
+ 1065353216,
794
+ 1050253722
795
+ ],
796
+ [
797
+ 0,
798
+ 0,
799
+ 0,
800
+ 1065353216
801
+ ]
802
+ ]
803
+ ],
804
+ "kind": "general",
805
+ "matrix": [
806
+ [
807
+ 1065091072,
808
+ 1061158912,
809
+ 3200253952,
810
+ 1054028595
811
+ ],
812
+ [
813
+ 3191865344,
814
+ 1065091072,
815
+ 3217031168,
816
+ 1041445683
817
+ ],
818
+ [
819
+ 1052770304,
820
+ 1035993088,
821
+ 1065091072,
822
+ 1064409498
823
+ ],
824
+ [
825
+ 1052770304,
826
+ 1035993088,
827
+ 1065091072,
828
+ 1073269964
829
+ ]
830
+ ]
831
+ },
832
+ {
833
+ "execution": {
834
+ "byte_writes": [],
835
+ "calls": [],
836
+ "children": [],
837
+ "return": null,
838
+ "trace": null,
839
+ "trace_length": 2800,
840
+ "trace_sha256": "735de2b52c285fec9cbe508c81f1d714e8449f6fc1ae7e08d04f9b8983a27eaf"
841
+ },
842
+ "input_chain": [
843
+ [
844
+ [
845
+ 1065353216,
846
+ 0,
847
+ 0,
848
+ 0
849
+ ],
850
+ [
851
+ 0,
852
+ 1065353216,
853
+ 0,
854
+ 0
855
+ ],
856
+ [
857
+ 0,
858
+ 0,
859
+ 1065353216,
860
+ 0
861
+ ],
862
+ [
863
+ 0,
864
+ 0,
865
+ 0,
866
+ 1065353216
867
+ ]
868
+ ],
869
+ [
870
+ [
871
+ 1065353216,
872
+ 0,
873
+ 0,
874
+ 0
875
+ ],
876
+ [
877
+ 0,
878
+ 1065353216,
879
+ 0,
880
+ 0
881
+ ],
882
+ [
883
+ 0,
884
+ 0,
885
+ 1065353216,
886
+ 0
887
+ ],
888
+ [
889
+ 0,
890
+ 0,
891
+ 0,
892
+ 1065353216
893
+ ]
894
+ ],
895
+ [
896
+ [
897
+ 1065353216,
898
+ 0,
899
+ 0,
900
+ 0
901
+ ],
902
+ [
903
+ 0,
904
+ 1065353216,
905
+ 0,
906
+ 0
907
+ ],
908
+ [
909
+ 0,
910
+ 0,
911
+ 1065353216,
912
+ 0
913
+ ],
914
+ [
915
+ 0,
916
+ 0,
917
+ 0,
918
+ 1065353216
919
+ ]
920
+ ],
921
+ [
922
+ [
923
+ 1065353216,
924
+ 0,
925
+ 0,
926
+ 0
927
+ ],
928
+ [
929
+ 0,
930
+ 1065353216,
931
+ 0,
932
+ 0
933
+ ],
934
+ [
935
+ 0,
936
+ 0,
937
+ 1065353216,
938
+ 0
939
+ ],
940
+ [
941
+ 0,
942
+ 0,
943
+ 0,
944
+ 1065353216
945
+ ]
946
+ ]
947
+ ],
948
+ "kind": "identity",
949
+ "matrix": [
950
+ [
951
+ 1065353216,
952
+ 0,
953
+ 0,
954
+ 0
955
+ ],
956
+ [
957
+ 0,
958
+ 1065353216,
959
+ 0,
960
+ 0
961
+ ],
962
+ [
963
+ 0,
964
+ 0,
965
+ 1065353216,
966
+ 0
967
+ ],
968
+ [
969
+ 0,
970
+ 0,
971
+ 1065353216,
972
+ 1065353216
973
+ ]
974
+ ]
975
+ },
976
+ {
977
+ "execution": {
978
+ "byte_writes": [],
979
+ "calls": [],
980
+ "children": [],
981
+ "return": null,
982
+ "trace": null,
983
+ "trace_length": 2800,
984
+ "trace_sha256": "735de2b52c285fec9cbe508c81f1d714e8449f6fc1ae7e08d04f9b8983a27eaf"
985
+ },
986
+ "input_chain": [
987
+ [
988
+ [
989
+ 0,
990
+ 1065353216,
991
+ 0,
992
+ 0
993
+ ],
994
+ [
995
+ 3212836864,
996
+ 0,
997
+ 0,
998
+ 0
999
+ ],
1000
+ [
1001
+ 0,
1002
+ 0,
1003
+ 1067450368,
1004
+ 0
1005
+ ],
1006
+ [
1007
+ 0,
1008
+ 0,
1009
+ 0,
1010
+ 1065353216
1011
+ ]
1012
+ ],
1013
+ [
1014
+ [
1015
+ 0,
1016
+ 1065353216,
1017
+ 0,
1018
+ 0
1019
+ ],
1020
+ [
1021
+ 3212836864,
1022
+ 0,
1023
+ 0,
1024
+ 0
1025
+ ],
1026
+ [
1027
+ 0,
1028
+ 0,
1029
+ 1067450368,
1030
+ 0
1031
+ ],
1032
+ [
1033
+ 0,
1034
+ 0,
1035
+ 0,
1036
+ 1065353216
1037
+ ]
1038
+ ],
1039
+ [
1040
+ [
1041
+ 0,
1042
+ 1065353216,
1043
+ 0,
1044
+ 0
1045
+ ],
1046
+ [
1047
+ 3212836864,
1048
+ 0,
1049
+ 0,
1050
+ 0
1051
+ ],
1052
+ [
1053
+ 0,
1054
+ 0,
1055
+ 1067450368,
1056
+ 0
1057
+ ],
1058
+ [
1059
+ 0,
1060
+ 0,
1061
+ 0,
1062
+ 1065353216
1063
+ ]
1064
+ ],
1065
+ [
1066
+ [
1067
+ 0,
1068
+ 1065353216,
1069
+ 0,
1070
+ 0
1071
+ ],
1072
+ [
1073
+ 3212836864,
1074
+ 0,
1075
+ 0,
1076
+ 0
1077
+ ],
1078
+ [
1079
+ 0,
1080
+ 0,
1081
+ 1067450368,
1082
+ 0
1083
+ ],
1084
+ [
1085
+ 0,
1086
+ 0,
1087
+ 0,
1088
+ 1065353216
1089
+ ]
1090
+ ]
1091
+ ],
1092
+ "kind": "turn-scale",
1093
+ "matrix": [
1094
+ [
1095
+ 1065353216,
1096
+ 0,
1097
+ 0,
1098
+ 0
1099
+ ],
1100
+ [
1101
+ 0,
1102
+ 1065353216,
1103
+ 0,
1104
+ 0
1105
+ ],
1106
+ [
1107
+ 0,
1108
+ 0,
1109
+ 1075593216,
1110
+ 0
1111
+ ],
1112
+ [
1113
+ 0,
1114
+ 0,
1115
+ 1075593216,
1116
+ 1065353216
1117
+ ]
1118
+ ]
1119
+ },
1120
+ {
1121
+ "execution": {
1122
+ "byte_writes": [],
1123
+ "calls": [],
1124
+ "children": [],
1125
+ "return": null,
1126
+ "trace": null,
1127
+ "trace_length": 2800,
1128
+ "trace_sha256": "735de2b52c285fec9cbe508c81f1d714e8449f6fc1ae7e08d04f9b8983a27eaf"
1129
+ },
1130
+ "input_chain": [
1131
+ [
1132
+ [
1133
+ 1065353216,
1134
+ 1048576000,
1135
+ 0,
1136
+ 1036831949
1137
+ ],
1138
+ [
1139
+ 0,
1140
+ 1065353216,
1141
+ 3204448256,
1142
+ 1045220557
1143
+ ],
1144
+ [
1145
+ 1040187392,
1146
+ 0,
1147
+ 1065353216,
1148
+ 1050253722
1149
+ ],
1150
+ [
1151
+ 0,
1152
+ 0,
1153
+ 0,
1154
+ 1065353216
1155
+ ]
1156
+ ],
1157
+ [
1158
+ [
1159
+ 1065353216,
1160
+ 1048576000,
1161
+ 0,
1162
+ 1036831949
1163
+ ],
1164
+ [
1165
+ 0,
1166
+ 1065353216,
1167
+ 3204448256,
1168
+ 1045220557
1169
+ ],
1170
+ [
1171
+ 1040187392,
1172
+ 0,
1173
+ 1065353216,
1174
+ 1050253722
1175
+ ],
1176
+ [
1177
+ 0,
1178
+ 0,
1179
+ 0,
1180
+ 1065353216
1181
+ ]
1182
+ ],
1183
+ [
1184
+ [
1185
+ 1065353216,
1186
+ 1048576000,
1187
+ 0,
1188
+ 1036831949
1189
+ ],
1190
+ [
1191
+ 0,
1192
+ 1065353216,
1193
+ 3204448256,
1194
+ 1045220557
1195
+ ],
1196
+ [
1197
+ 1040187392,
1198
+ 0,
1199
+ 1065353216,
1200
+ 1050253722
1201
+ ],
1202
+ [
1203
+ 0,
1204
+ 0,
1205
+ 0,
1206
+ 1065353216
1207
+ ]
1208
+ ],
1209
+ [
1210
+ [
1211
+ 1065353216,
1212
+ 1048576000,
1213
+ 0,
1214
+ 1036831949
1215
+ ],
1216
+ [
1217
+ 0,
1218
+ 1065353216,
1219
+ 3204448256,
1220
+ 1045220557
1221
+ ],
1222
+ [
1223
+ 1040187392,
1224
+ 0,
1225
+ 1065353216,
1226
+ 1050253722
1227
+ ],
1228
+ [
1229
+ 0,
1230
+ 0,
1231
+ 0,
1232
+ 1065353216
1233
+ ]
1234
+ ]
1235
+ ],
1236
+ "kind": "general",
1237
+ "matrix": [
1238
+ [
1239
+ 1064304640,
1240
+ 1065287680,
1241
+ 3208642560,
1242
+ 1057777254
1243
+ ],
1244
+ [
1245
+ 3200253952,
1246
+ 1064304640,
1247
+ 3221159936,
1248
+ 3187880757
1249
+ ],
1250
+ [
1251
+ 1056899072,
1252
+ 1044381696,
1253
+ 1064304640,
1254
+ 1067830477
1255
+ ],
1256
+ [
1257
+ 1056899072,
1258
+ 1044381696,
1259
+ 1064304640,
1260
+ 1074980454
1261
+ ]
1262
+ ]
1263
+ }
1264
+ ],
1265
+ "sha256": "a589351dfe517470a1b121dd2164714987d9e4577bf00c6486e1540035d7a79d",
1266
+ "source": {
1267
+ "archive": "zUrT43_qvm.pk3",
1268
+ "archive_sha256": "b59bf0c5bedf11d50e0edd220da7eade96de40601e98ae14c54c819047df0796",
1269
+ "member": {
1270
+ "bytes": 983300,
1271
+ "comment_hex": "",
1272
+ "compressed_bytes": 246560,
1273
+ "compression": 8,
1274
+ "crc32": "98ea1768",
1275
+ "create_system": 0,
1276
+ "create_version": 63,
1277
+ "date_time": [
1278
+ 2018,
1279
+ 6,
1280
+ 18,
1281
+ 22,
1282
+ 11,
1283
+ 50
1284
+ ],
1285
+ "directory": false,
1286
+ "entry_index": 2,
1287
+ "external_attr": 32,
1288
+ "extra_hex": "0a0020000000000001001800d1e24e974007d40116dcbf962f1fd20116dcbf962f1fd201",
1289
+ "extract_version": 20,
1290
+ "flags": 0,
1291
+ "header_offset": 221309,
1292
+ "internal_attr": 0,
1293
+ "occurrence": 0,
1294
+ "output": "assets/extracted/zUrT43_qvm.pk3/members/000002/vm/qagame.qvm",
1295
+ "path": "vm/qagame.qvm",
1296
+ "sha256": "a589351dfe517470a1b121dd2164714987d9e4577bf00c6486e1540035d7a79d",
1297
+ "type": "member",
1298
+ "volume": 0
1299
+ }
1300
+ }
1301
+ }
scripts/analyze_qvm_leaf_basis.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """23092 ancestry matrix accumulation, before primitive traversal."""
3
+ import itertools
4
+ from pathlib import Path
5
+ from qvm_research_support import source,execute
6
+ from analyze_qvm_acceleration import word
7
+ from analyze_qvm import write_json
8
+ LOCAL=0x78400000
9
+ NODES=[LOCAL+4096*(j+1) for j in range(4)]
10
+ MODEL=LOCAL+0x10000
11
+
12
+ def fixture(depth,kind):
13
+ m={LOCAL+440:NODES[0],MODEL+100:256};matrices=[]
14
+ for j,p in enumerate(NODES[:depth]):
15
+ matrix=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]] if kind=='identity' else ([[0,1,0,0],[-1,0,0,0],[0,0,1.25,0],[0,0,0,1]] if kind=='turn-scale' else [[1,.25,0,.1],[0,1,-.5,.2],[.125,0,1,.3],[0,0,0,1]])
16
+ for row in range(4):
17
+ for col in range(4):m[p+12+16*row+4*col]=word(matrix[row][col])
18
+ m[p+88]=MODEL;m[p+96]=NODES[j+1] if j+1<depth else 0;matrices.append([[word(x) for x in row] for row in matrix])
19
+ return m,matrices
20
+
21
+ def basis(ins,m):
22
+ m=dict(m);m,_,e=execute(ins,23093,23888,m,(0,0,0),LOCAL)
23
+ return m,{'matrix':[[m[LOCAL+16+16*r+4*c]&0xffffffff for c in range(4)] for r in range(4)],'execution':e}
24
+
25
+ def main():
26
+ q,raw,h,ins=source();rows=[]
27
+ for depth,kind in itertools.product([1,2,3,4],['identity','turn-scale','general']):
28
+ m,inputs=fixture(depth,kind);m,r=basis(ins,m);r['input_chain']=inputs;r['kind']=kind;rows.append(r)
29
+ write_json(Path('docs/research/qvm-leaf-basis.json'),{'source':q['source'],'sha256':q['sha256'],'probes':rows,'limits':'Actual23093–23887; explicit acyclic transform chains only. Source fourth row reads local48/68/56/76 rather than a standard product row. No primitive/geometry/native calls execute.'})
30
+ if __name__=='__main__':main()
scripts/test_qvm_leaf_basis.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json,unittest
2
+ from pathlib import Path
3
+ from test_qvm_ground import word,n,f
4
+
5
+ def expected(chain):
6
+ a=[[float(r==c) for c in range(4)] for r in range(4)]
7
+ for words in chain:
8
+ b=[[n(v) for v in row] for row in words];a=[row[:] for row in a];a[3]=[a[2][0],a[3][1],a[2][2],a[3][3]];out=[]
9
+ for row in a:
10
+ result=[]
11
+ for c in range(4):
12
+ v=f(row[0]*b[0][c])
13
+ for k in range(1,4):v=f(v+f(row[k]*b[k][c]))
14
+ result.append(v)
15
+ out.append(result)
16
+ a=out
17
+ return [[word(v) for v in row] for row in a]
18
+ class LeafBasisTests(unittest.TestCase):
19
+ @classmethod
20
+ def setUpClass(cls):cls.rows=json.loads(Path('docs/research/qvm-leaf-basis.json').read_text())['probes']
21
+ def test_independent_whole_matrix_for_all_ancestors(self):
22
+ self.assertEqual(len(self.rows),12)
23
+ for p in self.rows:self.assertEqual(p['matrix'],expected(p['input_chain']))
24
+ def test_identity_exposes_nonstandard_fourth_row(self):
25
+ for p in self.rows:
26
+ if p['kind']=='identity':self.assertEqual(p['matrix'][3],[0,0,word(1),word(1)])
27
+ def test_no_child_calls_or_native_math(self):
28
+ for p in self.rows:self.assertEqual(p['execution']['calls'],[])
29
+ def test_every_depth_and_nondiagonal_case_present(self):
30
+ self.assertEqual({len(p['input_chain']) for p in self.rows},{1,2,3,4});self.assertEqual({p['kind'] for p in self.rows},{'identity','turn-scale','general'})
31
+ if __name__=='__main__':unittest.main()