ProCreations commited on
Commit
4ca4e4c
·
verified ·
1 Parent(s): d834725

Reproduction logbook (paper-82EJxJzG6r)

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +34 -0
  2. CLAIMS.json +31 -0
  3. MANIFEST.sha256 +237 -0
  4. OFFICIAL_VALIDATOR_RUN.json +13 -0
  5. README.md +31 -5
  6. REPLAY.json +64 -0
  7. SEMANTIC_V4.json +68 -0
  8. SOURCE_PROVENANCE.json +53 -0
  9. VALIDATION.json +78 -0
  10. audit_source_claims.py +157 -0
  11. build_logbook.py +276 -0
  12. exp1_ssm_bound.py +409 -0
  13. exp2_window_bound.py +353 -0
  14. exp3_selcopy_construction.py +362 -0
  15. exp4_ar_construction.py +436 -0
  16. index.html +0 -19
  17. logbook.json +71 -0
  18. make_manifest.py +29 -0
  19. official_claims.json +6 -0
  20. official_validator.py +35 -0
  21. outputs/claim1.json +747 -0
  22. outputs/claim2.json +1307 -0
  23. outputs/claim3.json +349 -0
  24. outputs/claim3_native.json +45 -0
  25. outputs/claim4.json +293 -0
  26. outputs/claim4_native.json +53 -0
  27. outputs/claim5.json +55 -0
  28. outputs/claim6.json +58 -0
  29. pages/claim-1-theorem-3-3-literal-bound/page.md +16 -0
  30. pages/claim-2-theorem-3-7-window-bound/page.md +16 -0
  31. pages/claim-3-theorem-4-3-selective-copy/page.md +16 -0
  32. pages/claim-4-theorem-4-6-associative-recall/page.md +16 -0
  33. pages/claim-5-figure-4-selective-copy-learning/page.md +15 -0
  34. pages/claim-6-figures-5-6-associative-recall-learning/page.md +15 -0
  35. pages/executive-summary/page.md +14 -0
  36. pages/index.md +5 -0
  37. paper_text.txt +0 -0
  38. replay_a/claim1.json +747 -0
  39. replay_a/claim2.json +1307 -0
  40. replay_a/claim3.json +349 -0
  41. replay_a/claim3_native.json +45 -0
  42. replay_a/claim4.json +293 -0
  43. replay_a/claim4_native.json +53 -0
  44. replay_a/claim5.json +55 -0
  45. replay_a/claim6.json +58 -0
  46. replay_b/claim1.json +747 -0
  47. replay_b/claim2.json +1307 -0
  48. replay_b/claim3.json +349 -0
  49. replay_b/claim3_native.json +45 -0
  50. replay_b/claim4.json +293 -0
.gitattributes CHANGED
@@ -33,3 +33,37 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ source/authored/fig/example.png filter=lfs diff=lfs merge=lfs -text
37
+ source/authored/fig/exps/assoc_recall_mk/layers_dim.png filter=lfs diff=lfs merge=lfs -text
38
+ source/authored/fig/exps/assoc_recall_mk/layers_num_heads.png filter=lfs diff=lfs merge=lfs -text
39
+ source/authored/fig/exps/assoc_recall_mk/layers_state_dim.png filter=lfs diff=lfs merge=lfs -text
40
+ source/authored/fig/exps/assoc_recall_mk/layers_window.png filter=lfs diff=lfs merge=lfs -text
41
+ source/authored/fig/exps/binary_recall/layers_dim_3.png filter=lfs diff=lfs merge=lfs -text
42
+ source/authored/fig/exps/mini_decode_recall.png filter=lfs diff=lfs merge=lfs -text
43
+ source/authored/fig/exps/needle/layers_dim.png filter=lfs diff=lfs merge=lfs -text
44
+ source/authored/fig/exps/var_copy/layers_dim.png filter=lfs diff=lfs merge=lfs -text
45
+ source/authored/fig/exps/var_copy/layers_dim_1000.png filter=lfs diff=lfs merge=lfs -text
46
+ source/authored/fig/exps/var_copy/layers_dim_200.png filter=lfs diff=lfs merge=lfs -text
47
+ source/authored/fig/exps/var_copy/layers_num_heads.png filter=lfs diff=lfs merge=lfs -text
48
+ source/authored/fig/exps/var_copy/layers_state_dim.png filter=lfs diff=lfs merge=lfs -text
49
+ source/authored/fig/exps/var_copy/layers_window.png filter=lfs diff=lfs merge=lfs -text
50
+ source/official-code/micro_hf/results/assoc-recall-mk/fig/layers_dim.png filter=lfs diff=lfs merge=lfs -text
51
+ source/official-code/micro_hf/results/assoc-recall-mk/fig/layers_num_heads.png filter=lfs diff=lfs merge=lfs -text
52
+ source/official-code/micro_hf/results/assoc-recall-mk/fig/layers_state_dim.png filter=lfs diff=lfs merge=lfs -text
53
+ source/official-code/micro_hf/results/assoc-recall-mk/fig/layers_window.png filter=lfs diff=lfs merge=lfs -text
54
+ source/official-code/micro_hf/results/decode-recall/fig/dim_epochs.png filter=lfs diff=lfs merge=lfs -text
55
+ source/official-code/micro_hf/results/decode-recall/fig/layers_dim.png filter=lfs diff=lfs merge=lfs -text
56
+ source/official-code/micro_hf/results/decode-recall/fig/layers_dim_3.png filter=lfs diff=lfs merge=lfs -text
57
+ source/official-code/micro_hf/results/decode-recall/fig/layers_window.png filter=lfs diff=lfs merge=lfs -text
58
+ source/official-code/micro_hf/results/needle/fig/dim_epochs.png filter=lfs diff=lfs merge=lfs -text
59
+ source/official-code/micro_hf/results/needle/fig/layers_dim.png filter=lfs diff=lfs merge=lfs -text
60
+ source/official-code/micro_hf/results/needle/fig/layers_window.png filter=lfs diff=lfs merge=lfs -text
61
+ source/official-code/micro_hf/results/var-copy/fig/layers_dim.png filter=lfs diff=lfs merge=lfs -text
62
+ source/official-code/micro_hf/results/var-copy/fig/layers_num_heads.png filter=lfs diff=lfs merge=lfs -text
63
+ source/official-code/micro_hf/results/var-copy/fig/layers_state_dim.png filter=lfs diff=lfs merge=lfs -text
64
+ source/official-code/micro_hf/results/var-copy/fig/layers_window.png filter=lfs diff=lfs merge=lfs -text
65
+ source/official-code/mini/results/fig/p_0.2_eval_p_0.05.png filter=lfs diff=lfs merge=lfs -text
66
+ source/official-code/mini/results/fig/p_0.2_eval_p_0.1.png filter=lfs diff=lfs merge=lfs -text
67
+ source/official-code/mini/results/fig/p_0.2_eval_p_0.3.png filter=lfs diff=lfs merge=lfs -text
68
+ source/official-code/mini/results/fig/p_0.2_eval_p_0.5.png filter=lfs diff=lfs merge=lfs -text
69
+ source/official-code/mini/results/fig/p_0.2_eval_p_0.8.png filter=lfs diff=lfs merge=lfs -text
CLAIMS.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "orid": "82EJxJzG6r",
3
+ "arxiv_id": "2603.08859v1",
4
+ "title": "Expressivity-Efficiency Tradeoffs for Hybrid Sequence Models",
5
+ "claims": [
6
+ {
7
+ "index": 1,
8
+ "text": "Theorem 3.3 proves that any k-layer state-space model solving the function-composition tasks under injectivity conditions must have total log state-space size scaling as Ω(m·log|V| − q·log|Y|), linear in the hidden dimension m (Theorem 3.3)."
9
+ },
10
+ {
11
+ "index": 2,
12
+ "text": "Theorem 3.7 proves that sliding-window Transformers solving the same tasks under a local-sensitivity condition require total window size scaling with the context-dependency range R (Theorem 3.7)."
13
+ },
14
+ {
15
+ "index": 3,
16
+ "text": "Theorem 4.3 constructs a two-layer hybrid (Mamba + attention) model that solves the selective copying task using embedding dimension O(max(log|V|, log L)) and working memory Õ(N), versus Ω(L) required by pure Transformers (Theorem 4.3)."
17
+ },
18
+ {
19
+ "index": 4,
20
+ "text": "Theorem 4.6 constructs a three-layer hybrid model that achieves 99% accuracy on the associative recall task using embedding dimension O(max(log|V|, log L)) and window size Õ(|V|) (Theorem 4.6)."
21
+ },
22
+ {
23
+ "index": 5,
24
+ "text": "On the selective copying task, the learned hybrid model reaches perfect accuracy with roughly 2,000 parameters while pure Transformer/SSM models need roughly 12,000 parameters to match it, a 6x parameter gap (Figure 4)."
25
+ },
26
+ {
27
+ "index": 6,
28
+ "text": "On multi-key associative recall, the hybrid model reaches 60% accuracy using 6x fewer parameters than pure Transformers, which plateau near 40% accuracy on single-key associative recall (Figures 5-6)."
29
+ }
30
+ ]
31
+ }
MANIFEST.sha256 ADDED
@@ -0,0 +1,237 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 623b5895c0e7b3bc6f8677d9e48d8aa0d5096d7973f8cddc507cfce0a0dd8831 CLAIMS.json
2
+ 4a31929006e2de9085753f6c63dd831aa6a97b9209c2cfe99178265567736af3 OFFICIAL_VALIDATOR_RUN.json
3
+ 95e55280501d6c6e02d77ee7d172212c18a88a38462d3a7ff3d06eb1b1593f8c README.md
4
+ 1af2f46c506ae75a7e534800508eb618e2608c5e158a735c40a6b3a27774dfb6 REPLAY.json
5
+ edf2152f7756ad236995e22b097e45df60240c0dcf4f816f7e31319bb693e897 SEMANTIC_V4.json
6
+ cf11f3cb3d94de6d523c12233dcf4c4e54cbe7f40d085a54038bf0dc4b271b4b SOURCE_PROVENANCE.json
7
+ 8abe413e4f0874c355d5b9f70ec4217489b146d263a4e7fbe5578871c507b372 VALIDATION.json
8
+ ab3cea500d0fb0ecba5d6977d181721d4d3f0bd1168dd3d006d26760d3e37ade audit_source_claims.py
9
+ 28d5662f99475975c0f9c47234d72bf740cdc31c98e3f45bf9cebf57821b70d3 build_logbook.py
10
+ e07a2014b77c09ac99bc15a4136ddffb6fba3e87a7e10aa75b4ad5436ff35fb9 exp1_ssm_bound.py
11
+ cbbe73e70b9e2ac8d3671e3c725d92465738ddc1d5169d744154b724d2ad64c9 exp2_window_bound.py
12
+ 67c1a14b45b145264daff2883b6eff6db5393828f1c1fc39536e017cbb3f3c45 exp3_selcopy_construction.py
13
+ 98659455bc91453500accd5fd3e66d57687b955d9a0e4c4e8ec7a085ef21339e exp4_ar_construction.py
14
+ 26a0e6aba4e24b3dc2dd4f1fac87a37a28c8ab629a58999a25164e553ebf6332 logbook.json
15
+ f03f608a23652a324db4b3329f12d1c0cba84ad8f8feeca39f3a95caa1f0d125 make_manifest.py
16
+ 6439f09aefcebad5c600077c35eb1c3bbf762110405ac0bf47d31524072698e1 official_claims.json
17
+ 685c19ccaffc8a993abd1196baa900aef75b3e3b4831927abb6d5efee826a1bd official_validator.py
18
+ cda7675b2b59deb26050668435bbd6e4d7f5a7fe169e88a851b4a57debd378b6 outputs/claim1.json
19
+ 644f05f4af1131b092a8858a3f4ef9931bab04772b9db1097d5079e5c5fb7fa7 outputs/claim2.json
20
+ c2948406cd663b77c0502c23d6da9b71107b5388540f128f99c64e55d5be0d3b outputs/claim3.json
21
+ 7ba1aee42a132c74b9875edb1a17b43a5f0d9a73cc78ce30cbd407f86ce77d50 outputs/claim3_native.json
22
+ 48c3a0ea60f9e18747607f8ca0b8a40303b32cb6f562407b802dc30c19c0def0 outputs/claim4.json
23
+ 4f7266b28d80bc0cc7102d5d6cb6d8eafd278d557487299af97fba71515ab33b outputs/claim4_native.json
24
+ daa15965236e3c890688d7751916192e6502db072eff9a65869f209e05a7f6cf outputs/claim5.json
25
+ ee900bdcd3c603327736e3533fa296c6337b75f2cdc6a50bbb78cf87c22bddc2 outputs/claim6.json
26
+ 825cd4a03d921fb3242123e26e5bc24f8fbc9dfaacdf37814f3f822bc3d289d2 pages/claim-1-theorem-3-3-literal-bound/page.md
27
+ cf73a83a8f5412b044b91185bbea228f217eb5f452f1753070bdf5195770a666 pages/claim-2-theorem-3-7-window-bound/page.md
28
+ ca5d7f0ea97614613ac9008c7cb4c2cd93a296c9d14ea969a66ab4fd2263a45c pages/claim-3-theorem-4-3-selective-copy/page.md
29
+ 50de5b40ca12b6b21d921e6e6156e8ba515280388c681db7e65aa60fe8c39122 pages/claim-4-theorem-4-6-associative-recall/page.md
30
+ 910e5b716ace88949b9600ba1415a5e829a4447448f4988482af15888678c96d pages/claim-5-figure-4-selective-copy-learning/page.md
31
+ d6e24a8ba534781d1400f60fcea6f246ae49881a98f903b8ec1706f8e00e9363 pages/claim-6-figures-5-6-associative-recall-learning/page.md
32
+ c43516edb7ab1e47c0b945877457ca7bb484ddd2afbcb47db34a2e54c96ec2e4 pages/executive-summary/page.md
33
+ 6bc66d5089b50b145d00491b930fa58b9a98f17c131d5d4c2fd510aef0da811d pages/index.md
34
+ 235fc6d67669feb8bdba611f5aada7e4d7638f4b01e98d2bb0308e3edcf79cb3 paper_text.txt
35
+ cda7675b2b59deb26050668435bbd6e4d7f5a7fe169e88a851b4a57debd378b6 replay_a/claim1.json
36
+ 644f05f4af1131b092a8858a3f4ef9931bab04772b9db1097d5079e5c5fb7fa7 replay_a/claim2.json
37
+ c2948406cd663b77c0502c23d6da9b71107b5388540f128f99c64e55d5be0d3b replay_a/claim3.json
38
+ 7ba1aee42a132c74b9875edb1a17b43a5f0d9a73cc78ce30cbd407f86ce77d50 replay_a/claim3_native.json
39
+ 48c3a0ea60f9e18747607f8ca0b8a40303b32cb6f562407b802dc30c19c0def0 replay_a/claim4.json
40
+ 4f7266b28d80bc0cc7102d5d6cb6d8eafd278d557487299af97fba71515ab33b replay_a/claim4_native.json
41
+ daa15965236e3c890688d7751916192e6502db072eff9a65869f209e05a7f6cf replay_a/claim5.json
42
+ ee900bdcd3c603327736e3533fa296c6337b75f2cdc6a50bbb78cf87c22bddc2 replay_a/claim6.json
43
+ cda7675b2b59deb26050668435bbd6e4d7f5a7fe169e88a851b4a57debd378b6 replay_b/claim1.json
44
+ 644f05f4af1131b092a8858a3f4ef9931bab04772b9db1097d5079e5c5fb7fa7 replay_b/claim2.json
45
+ c2948406cd663b77c0502c23d6da9b71107b5388540f128f99c64e55d5be0d3b replay_b/claim3.json
46
+ 7ba1aee42a132c74b9875edb1a17b43a5f0d9a73cc78ce30cbd407f86ce77d50 replay_b/claim3_native.json
47
+ 48c3a0ea60f9e18747607f8ca0b8a40303b32cb6f562407b802dc30c19c0def0 replay_b/claim4.json
48
+ 4f7266b28d80bc0cc7102d5d6cb6d8eafd278d557487299af97fba71515ab33b replay_b/claim4_native.json
49
+ daa15965236e3c890688d7751916192e6502db072eff9a65869f209e05a7f6cf replay_b/claim5.json
50
+ ee900bdcd3c603327736e3533fa296c6337b75f2cdc6a50bbb78cf87c22bddc2 replay_b/claim6.json
51
+ e5e9949174874e50f184ae9cb93a03081b33f61348ac43b48e89fcc766903908 run_all.py
52
+ 5bdc9b003531b5a101a6ab2b41fcecd8653a0170aac9a0ce10a10e71916bd267 run_native_constructions.py
53
+ e8d22bfd259aaa60385841d8643109ecb66f7eb1081dd76429f5215f05a032e8 source/2603.08859v1.tar.gz
54
+ d1f6b1a71c9accb812ec5121d1fff7910c025ca7bb201948bacdb40941bc14e5 source/authored/00README.json
55
+ 58305508fa935a85634e9a69ee3a919648ea7e3cf25061120fb0cd1eae723999 source/authored/appendix/app_prelim.tex
56
+ f76427efb23af284fd0852afedf188310d3fad58cda11414930b87429155178a source/authored/appendix/construction_conventions.tex
57
+ 4fbf21f1fa7544ff602fcd896a72a3babd50986fc2c5711f2d70b9844ba1a026 source/authored/appendix/constructions.tex
58
+ 4caa42ab4df1d828ea44fb9167e017827477b66265d70f24c1fad42104d02b77 source/authored/appendix/experiment_details.tex
59
+ 7e729f2198b6c5b7190355a7985b56096822f9c7c462ac1d42e6d62a03487406 source/authored/appendix/missing_proof_lb.tex
60
+ bd8c0384a10f6baf22cc4652d8c12e4b176fe439f90c41ad3c2f4aa8df200a2a source/authored/fig/construction_structure.pdf
61
+ f304cbf59f3c06bfa5a9e1df347701b4197cda26bc4ebd67e2471a104a84e50a source/authored/fig/example.png
62
+ b6bbbf7f68754086361ab6641322b7acf24f933b56fcb044c779a8b8f862212c source/authored/fig/exps/assoc_recall_mk/layers_dim.png
63
+ 047a87d7c7b5e81595113875f27955cf30ce33056894921b6532998d7ff6b01f source/authored/fig/exps/assoc_recall_mk/layers_num_heads.png
64
+ c12d55000a42d3899f51599619e90ba7a24455c87aa113c0252a96ac1216e612 source/authored/fig/exps/assoc_recall_mk/layers_state_dim.png
65
+ c5355c62564a80012078b25777a9fdbaedc96359ccd3081e2e09d4bfb30f933f source/authored/fig/exps/assoc_recall_mk/layers_window.png
66
+ b6dd8cf4936994649a6d74ca2a1210c057571e19f0518584f6f15447a4d7272e source/authored/fig/exps/binary_recall/layers_dim_3.png
67
+ 76ec4177346017cf7233b3a2cabadb2a517d7ca43ca60a0e238bcd866b8b8783 source/authored/fig/exps/constructions/decode_recall_input.pdf
68
+ 5b66865ef2ef1491cae85f7faa370e6d17657b583481076709b56dbda1f1cc92 source/authored/fig/exps/constructions/decode_recall_output.pdf
69
+ 392d7bd0ed19eddc8fd084c48d8367618af273c1fbf25fe00b00a66fa6af77b8 source/authored/fig/exps/constructions/selective_copy_input.pdf
70
+ 563189f4e77fc950e0482d6432c2293c2298f9e6539cfd918fbf0ea8c333c7a7 source/authored/fig/exps/constructions/selective_copy_output.pdf
71
+ 3200afa19cd9ebfd1ea5f6b1f53d02ad3683dcc3741ae00c67f8e34a89d6affc source/authored/fig/exps/mini_decode_recall.png
72
+ b03026887e3d4046aafb90f766b6a5154a2b742222ee71c53a007c6a1ca57c91 source/authored/fig/exps/needle/layers_dim.png
73
+ d40b41b76dc484233b2c83d6a59f613393fdca8d5f19d413727bcafc23660bc5 source/authored/fig/exps/var_copy/layers_dim.png
74
+ 07c2d5ccc723acbc5a302b0b386f50244d8010f42c82aa616200076796067c23 source/authored/fig/exps/var_copy/layers_dim_1000.png
75
+ 3a6dfd95e7aa31a031f42f9db1b99456cb2230096033e652a57b76d7516eb380 source/authored/fig/exps/var_copy/layers_dim_200.png
76
+ c49b8ed16b17f782392821672415a68b3b6878981bece5637c78729b0176ae47 source/authored/fig/exps/var_copy/layers_dim_adversary.png
77
+ a64ad32988841e8cfe2537c7df96442711dd8e5c6c81a05ec638f7ed5f25554d source/authored/fig/exps/var_copy/layers_num_heads.png
78
+ d8b8da4a094e7ac4cd878cfcb7ca6fc98913c8c6fd28ab7995045720e881dec8 source/authored/fig/exps/var_copy/layers_state_dim.png
79
+ f154fdb8104c5d0c3492019f22846c1e69cad5b1a110f24881523ea7d6be07b9 source/authored/fig/exps/var_copy/layers_window.png
80
+ b70c660739eba172c0dc3959139c7f931657c4887a8354448e87e13eb593988a source/authored/fig/selective_copy_construction_structure.pdf
81
+ 92a399acca0a701a2fa2c1ed038192ac84dd6ab2430932081cc7283416699b8f source/authored/main.tex
82
+ 3a7753a5a76463a9093767c57462ed42bd99fbe7d9594248b40c4fdd91f9a2e2 source/authored/mathcommands.tex
83
+ 78b0d784946e5b987b8d5d62755f4463d122d50e49c6312f9989f28a7b16dc43 source/authored/reference.bib
84
+ c5db291da441eef14b0288d1a3f082fbddb0430b3ec3299d6f83f21982cb7fb8 source/authored/sections/conclusion.tex
85
+ fcd88332cbe90aff62337c3add333f71fc542736b3e459015a28f0b08ae3c55b source/authored/sections/experiments.tex
86
+ bc06eda70de577b8bfe7290e9edd6237bfa7d1feaa793de30306e49dd3d6f226 source/authored/sections/func_comp_and_construct.tex
87
+ cc0766f21b73d5251d78cded3e7573a0a6a4b6cabe454fd06a686ba7f8bcae17 source/authored/sections/introduction.tex
88
+ 63836f14cc9a172d631ea42ae31e4cb7ca8c09660923ddaaedbb17543d24d559 source/authored/sections/prelim_and_notation.tex
89
+ 8e80ed9742331f8c5d3954ee88e7b71d2db50f6e2050638625010a703c8b551f source/authored/sections/related.tex
90
+ 80ba12f976423975af8377f1e80fb4b4b2622dd8dcca33fe6bbe398a28406408 source/authored/sections/tasks.tex
91
+ de2fba5f19810c4de6cc82a404726376a353b8910414c472363a95102041ee3f source/authored/sections/upper_bound.tex
92
+ 95b4447f9fe95c059c5d3a8a30031ba8a03ae750e3231677c3a79ea9ebed65d0 source/official-code/.gitignore
93
+ 0dd3ee6f457464358e14d0a6c8b3305c7984d3a7d5ae1c93f2a5cd57aee5d913 source/official-code/README.md
94
+ a6fa59b59c813a5349e8ff8995ba1e9bc8016586e25b1d961f3f5c30b94fa641 source/official-code/constructions/construction_decode_recall.ipynb
95
+ 78b23ac5677e16533425aba2036f691776ccb87b6195394a24d47f98384fb9b9 source/official-code/constructions/construction_var_copy.ipynb
96
+ 4d72444086d1d54a019cb60b62de233faf42c4fbbbdbb2da27701cc91edae9db source/official-code/constructions/data_utils.py
97
+ 395135c45886fe7789c2371e9916eba08293575c9cadd5b30660b268f791431f source/official-code/constructions/fig/decode_recall_attention_pattern.pdf
98
+ 76ec4177346017cf7233b3a2cabadb2a517d7ca43ca60a0e238bcd866b8b8783 source/official-code/constructions/fig/decode_recall_input.pdf
99
+ 5b66865ef2ef1491cae85f7faa370e6d17657b583481076709b56dbda1f1cc92 source/official-code/constructions/fig/decode_recall_output.pdf
100
+ 345a84eed08442a2b59e6f455c493324b43f6446b1cc84a595f805abbb32d06d source/official-code/constructions/fig/selective_copy_atterntion_pattern.pdf
101
+ 392d7bd0ed19eddc8fd084c48d8367618af273c1fbf25fe00b00a66fa6af77b8 source/official-code/constructions/fig/selective_copy_input.pdf
102
+ 563189f4e77fc950e0482d6432c2293c2298f9e6539cfd918fbf0ea8c333c7a7 source/official-code/constructions/fig/selective_copy_output.pdf
103
+ 75f567e8bf36bfcb1df88a12b7bb6764b5a059f2e6dbfb741f8cfc8f40f27c4c source/official-code/constructions/generate.py
104
+ abf7541ec6f9b28b048d59411a5114a0c287db59a96ab5cf040a1768d4f5c8eb source/official-code/constructions/model_utils.py
105
+ 02b238ec1175904e078c63d18fc45b9da536bc6ec18323a4463a829ac4dc27fb source/official-code/micro/generate.py
106
+ 8e1d25e6932f626a92bb4fdf5d8c6d2264103a127a99312b96ede5e70fa822cb source/official-code/micro/interpretability.ipynb
107
+ a17976e516cdcbb9728223619d6f33f7220287cf38e2e08ca8fe968ac5cc632f source/official-code/micro/main.ipynb
108
+ 84a1313267060e51091fc5d8952768867cb03b7757bed3d903d6f6b9746f7798 source/official-code/micro/models/hybrid.py
109
+ 4818c94c8ee31a0dfaf076b967970c0f94fa233a33c0b1af3ee7055423d98839 source/official-code/micro/models/lrs.json
110
+ 066ca7cc60488afa56239cc10b2fb389f55243ed2e62d49b18014ea3c13c668c source/official-code/micro/models/mlp.py
111
+ d1840ef2100dcfda7fed9f55b3989ca3cbbdeda5e2246a3729aba5a91dcdd019 source/official-code/micro/models/ssm.py
112
+ 0a45ca3438a3f98c1ee0e0c8d5e344b4918195fbebd79c9dc3267d566144be9f source/official-code/micro/models/transformer.py
113
+ d17325dcede042cbf4c6bfc9e44c936db42c3724880ec3ba33c541f111254143 source/official-code/micro/ood.ipynb
114
+ 2c556150faaa560759a840a751064202aeb11bb33fe58a3cf48a0f0be601cef1 source/official-code/micro/plt_utils.py
115
+ 897d2689a7672aa1fc42e3094699175fedf9960fe755b6c2729ad2535c184e24 source/official-code/micro/process.ipynb
116
+ e8a536233cc8ec8093ee7c399b0fe57e9ccc55a4b79fc958ae6d6c61c60b1e91 source/official-code/micro/process_ood.ipynb
117
+ 292e87e57cc08ad024a5c9d7fd02b41acb7e24dd728315069a583092176fbce8 source/official-code/micro/results/assoc_recall/fig/dim_epochs.png
118
+ 99e4cf3fcbd743e6aacee54dd740961e5501accad32c78e9d2fef9505af2e2c6 source/official-code/micro/results/assoc_recall/fig/layers_dim.png
119
+ af073aaa7882c71416064dc7e0e461b98d3386ce1326d5b0f5e5dde22aa828ee source/official-code/micro/results/assoc_recall/fig/layers_num_heads.png
120
+ ddcad6b05cd1f84ca352da89cc391aec6912d6adb1b9b73f769f7c5b76cd3837 source/official-code/micro/results/assoc_recall/fig/layers_state_dim.png
121
+ 865fa1c71efacafc816bc05357afcb65f5aa1493bc0bd72ceb4114e001134a00 source/official-code/micro/results/assoc_recall/fig/layers_window.png
122
+ 61c59a0e41d65ba8cd5ae2d00549d679f3dd0f9cf08352bb088a4937052ec8db source/official-code/micro/results/assoc_recall_mk/fig/dim_epochs.png
123
+ 432c179c8068f5c12e53f02d274d7a09c93a44d99121dc02bf752b437b7bb419 source/official-code/micro/results/assoc_recall_mk/fig/layers_dim.png
124
+ 3f558698264d3de367ec7a2741f75272d746f74dd6e7ec476b923e545f5340fa source/official-code/micro/results/assoc_recall_mk/fig/layers_num_heads.png
125
+ 3450659f857558c1332bdf10bcdc555442c25405c18d2fd87cd5e9a24a01fd6c source/official-code/micro/results/assoc_recall_mk/fig/layers_state_dim.png
126
+ 752c8d3e46c74c300e0a097a13089c822981cdefa4472767c8e35cea69270fde source/official-code/micro/results/assoc_recall_mk/fig/layers_window.png
127
+ 48dae7b32fa3262e8441555c38d709e34f63a1a1e22da1148bbf414a1777e8e4 source/official-code/micro/results/binary_recall_mix/fig/dim_epochs.png
128
+ b170ddca5ef9b8237102857bb3e898d7ee4d153f71dd445d80fadeae8bf2e7b6 source/official-code/micro/results/binary_recall_mix/fig/layers_dim.png
129
+ 54186822469cf4e26ea8050ae9a7ac0e1adfca37e669bf714cfeb63b41b0ac2e source/official-code/micro/results/binary_recall_mix/fig/layers_num_heads.png
130
+ aaa0ea4006bc9622eea5fa1bafc842c35cc1db23a405c8085facf1c3a4096478 source/official-code/micro/results/binary_recall_mix/fig/layers_state_dim.png
131
+ 9ec3639621f501e903bd1283d532b967ae93103b37a74621feb5957b672a974d source/official-code/micro/results/binary_recall_mix/fig/layers_window.png
132
+ 4caf88944fc3616725ae3fe5f90321fa6796a51776dd44590a73acc3287f6b7e source/official-code/micro/results/var_copy/fig/dim_epochs.png
133
+ 677c5376126238b0193eb502fc8be061c544c36bd6d8face11054bdd34fe73d3 source/official-code/micro/results/var_copy/fig/layers_dim.png
134
+ 8a92ff131a7c52b6b65b7a5019133ff261474e5f12b24667c5ddaa8ee9544517 source/official-code/micro/results/var_copy/fig/layers_num_heads.png
135
+ 4e333de1401a9b26bdfbcae3f22cf8cac52e3d43a0ec2baac8e9f87f7c1031eb source/official-code/micro/results/var_copy/fig/layers_state_dim.png
136
+ c2d69684476d5d4a171203914183a1caef8c7092af544900d86eada0f8d617ae source/official-code/micro/results/var_copy/fig/layers_window.png
137
+ b94961634bd5f8f470f0bc55431ebd3d5d7e27b9e22ef8a38a8bedf75e83badf source/official-code/micro/train.py
138
+ 1469a82af7d76625d62c89a8c152dd04774a7876a5d3223e6d3cc143e61ac3bf source/official-code/micro/train_utils.py
139
+ 09a7f94d2924cdd59e0edb987b4e8da42f79c39a116fccaad5cf23063b442e71 source/official-code/micro_hf/cmds.txt
140
+ 81d6852fcd00980a98e8206f9ee516831f94abffb041f7164f71fba284798bc1 source/official-code/micro_hf/data_utils.py
141
+ f2fb47708ec954eab60afbd67a408398bfa63cb7a424620314938c3349763bf7 source/official-code/micro_hf/generate.py
142
+ 5c8d4119c506e0478717c1b210224b23cf7ff485b2e1b014f5f5775c71a060bf source/official-code/micro_hf/main.py
143
+ 79be61b4e07558b184cb8bd3dbb73d3c65bceee8eaa35ac0d387758bb376e841 source/official-code/micro_hf/model_utils.py
144
+ 17eb7f1b68b7f18228cba9deb6195b21adb5f7a9ec9801114cff31080be042d7 source/official-code/micro_hf/models/__init__.py
145
+ 9997367b54c737d150d819889897d080dff0760d581e63095a996bfe871be2a8 source/official-code/micro_hf/models/hard_alibi_model.py
146
+ 2b6dff0c91cf2b7b207ec14662459ef9a9f412aa665da6690b7cfa5dda73d867 source/official-code/micro_hf/models/hybrid.py
147
+ 344865438cf90b8a8cfd2316a9a2f2a1b710542a4b4b8814aef8da5570dde032 source/official-code/micro_hf/models/hybrid_nope.py
148
+ 2e4a08af06d0cf288d973d85d579899923609c0718e818e1b8fe52ce12c76f32 source/official-code/micro_hf/models/mamba.py
149
+ 451fe4ae08788545757d96a3ddea726b947d167ad2cf62d5f9d0f82bb1d2daf1 source/official-code/micro_hf/models/nope.py
150
+ 07ce3adb89e1816dead845566247f7df6a832eb7d982c429e2fbc82506472355 source/official-code/micro_hf/models/rope.py
151
+ 31ce9565bfd56d0bcc706f477a4fb397f0bb67c6e788ffa72776f496b9d711df source/official-code/micro_hf/plt_utils.py
152
+ d67f10dd85b8d952bbc31dfe69e45dab2dd78056803258666df767ccde72dd9e source/official-code/micro_hf/process.ipynb
153
+ f689a6ea390d15ec7da7549a8429ff813ee56d06b7383bee7bdfbb4392a757dd source/official-code/micro_hf/process_get_data.ipynb
154
+ 6b27d3710bfe17f908f9f8e40417dc29eafce1f2ea6695758ad2a4886e1ea7fb source/official-code/micro_hf/results/assoc-recall-mk/fig/depths_layers.png
155
+ 93e6c55110c3e696a40db87addae88bf1f5d0c4825521ac734e2a5daac598b6d source/official-code/micro_hf/results/assoc-recall-mk/fig/dim_epochs.png
156
+ b6bbbf7f68754086361ab6641322b7acf24f933b56fcb044c779a8b8f862212c source/official-code/micro_hf/results/assoc-recall-mk/fig/layers_dim.png
157
+ 047a87d7c7b5e81595113875f27955cf30ce33056894921b6532998d7ff6b01f source/official-code/micro_hf/results/assoc-recall-mk/fig/layers_num_heads.png
158
+ c12d55000a42d3899f51599619e90ba7a24455c87aa113c0252a96ac1216e612 source/official-code/micro_hf/results/assoc-recall-mk/fig/layers_state_dim.png
159
+ c5355c62564a80012078b25777a9fdbaedc96359ccd3081e2e09d4bfb30f933f source/official-code/micro_hf/results/assoc-recall-mk/fig/layers_window.png
160
+ eab188c1ae231d979e8c8ae51c7a0448bef35836ed7a8522a9c31368a7a4841d source/official-code/micro_hf/results/assoc-recall-mk/fig/model_layers.png
161
+ 131d1e2bf27c58f5c147537ac22497bea739cbf8965c782762edeec58d55bb82 source/official-code/micro_hf/results/assoc-recall-mk/lrs.json
162
+ 6b27d3710bfe17f908f9f8e40417dc29eafce1f2ea6695758ad2a4886e1ea7fb source/official-code/micro_hf/results/decode-recall/fig/depths_layers.png
163
+ a4f06790804ba2ae16a8b81b0f4b0a3fcb7bb985ef880351268acd9bca28b3a5 source/official-code/micro_hf/results/decode-recall/fig/dim_epochs.png
164
+ 23b9303f51e0adfe12db1bcb78da27ca13abe1cdc36a1e2f76f28a67c117eecc source/official-code/micro_hf/results/decode-recall/fig/layers_dim.png
165
+ 7797eca4cccbc09a2f1835e5fefb6730d0c7e9515e77d5658061d909e166f5d6 source/official-code/micro_hf/results/decode-recall/fig/layers_dim_3.png
166
+ 74a1274cb051470d5137461148588308460fae27738428ef11ec49db62e894fb source/official-code/micro_hf/results/decode-recall/fig/layers_num_heads.png
167
+ a7f7cec72f44fb1e3d59d86029c350ce7593997b00dddad2b4e07dd4719a18cf source/official-code/micro_hf/results/decode-recall/fig/layers_state_dim.png
168
+ 28958c69a13fd12ad6ff31840630bc09100c5426c225d8f5b7ab9ed874be7f19 source/official-code/micro_hf/results/decode-recall/fig/layers_window.png
169
+ 2c71683abc85af0fd0fe8bd96e30207f3b0c239af7f3fb819356955770d20f26 source/official-code/micro_hf/results/decode-recall/fig/layers_window_3.png
170
+ da40d4f3070dcd9c37d49594540305b479dc174a6f5246a2eb0725ab7b71520c source/official-code/micro_hf/results/decode-recall/lrs.json
171
+ 1f6528fa0a7566021bfbd9af26f18d961701236e8e786524a7a32d11c953d2be source/official-code/micro_hf/results/decode-recall-last/fig/dim_epochs.png
172
+ ae98cc03140f9e01dc07ada5ce72924b648e4bea4e2abd4f18607b11b6fd6fd3 source/official-code/micro_hf/results/decode-recall-last/fig/layers_dim.png
173
+ fb7317b68f8860052e61c0e9e92f882f51ca08556e686ea2f586cd4d0d408268 source/official-code/micro_hf/results/decode-recall-last/fig/layers_dim_3.png
174
+ b9fe2f70cf87387269c3634739a21820b8e495e788443df4f58c88e425afc422 source/official-code/micro_hf/results/decode-recall-last/fig/layers_num_heads.png
175
+ 45eed96ea8559653178411bb3cb636d7f082c7e7c84058b62c187022c6bdbe4e source/official-code/micro_hf/results/decode-recall-last/fig/layers_state_dim.png
176
+ 31ddf97e08062fa06ab3de3de68768441c73982fe6a2a220247de794585a443e source/official-code/micro_hf/results/decode-recall-last/fig/layers_window.png
177
+ 323a163e732dd2b1a856d7e469c08d9998f45a2e012c99b67f42089741df8983 source/official-code/micro_hf/results/decode-recall-last/fig/layers_window_3.png
178
+ 0b9a5375f603f20a7a8f834dc14e19c044758978605032e0cba5c21a66ae8ab5 source/official-code/micro_hf/results/decode-recall-last/lrs.json
179
+ 6b27d3710bfe17f908f9f8e40417dc29eafce1f2ea6695758ad2a4886e1ea7fb source/official-code/micro_hf/results/needle/fig/depths_layers.png
180
+ 9b0714398dbcef230152bda69a34594d53909aeefd0bdd0cea3972aaa0d61e7c source/official-code/micro_hf/results/needle/fig/dim_epochs.png
181
+ 8e45ae15a219c5f4c67b9875ce95d3ca3117a0aafba1fb27b5c1087470f8bf2e source/official-code/micro_hf/results/needle/fig/layers_dim.png
182
+ 38555628125f7fa9a711594341f7e826b35711f5b46ab1d92daa4941fb1b32c4 source/official-code/micro_hf/results/needle/fig/layers_num_heads.png
183
+ fb70e7affe33e2dd628a6daec4a7a502951bc8b137244cfb680fb69def155b71 source/official-code/micro_hf/results/needle/fig/layers_state_dim.png
184
+ c12ce6669c6324ec13642d30e758f664b74239c140f93366e186f019ccd12d53 source/official-code/micro_hf/results/needle/fig/layers_window.png
185
+ 7ec62a37bf34c4ca53a1dfba0ffc29a54639afd35d1f0033c56ced3d92082461 source/official-code/micro_hf/results/needle/lrs.json
186
+ 6b27d3710bfe17f908f9f8e40417dc29eafce1f2ea6695758ad2a4886e1ea7fb source/official-code/micro_hf/results/var-copy/fig/depths_layers.png
187
+ 2a45b6b14e95ee7f68550645597fc232728d2361238660d7df9c57ae2f96f6bb source/official-code/micro_hf/results/var-copy/fig/dim_epochs.png
188
+ d40b41b76dc484233b2c83d6a59f613393fdca8d5f19d413727bcafc23660bc5 source/official-code/micro_hf/results/var-copy/fig/layers_dim.png
189
+ a64ad32988841e8cfe2537c7df96442711dd8e5c6c81a05ec638f7ed5f25554d source/official-code/micro_hf/results/var-copy/fig/layers_num_heads.png
190
+ d8b8da4a094e7ac4cd878cfcb7ca6fc98913c8c6fd28ab7995045720e881dec8 source/official-code/micro_hf/results/var-copy/fig/layers_state_dim.png
191
+ f154fdb8104c5d0c3492019f22846c1e69cad5b1a110f24881523ea7d6be07b9 source/official-code/micro_hf/results/var-copy/fig/layers_window.png
192
+ f63159a0251f2b77838e31b6ac5544bce7a34b5b027a395135f1d9543d8e763a source/official-code/micro_hf/results/var-copy/lrs.json
193
+ 06c0a792889df5223befd3c104f9081cbbe5fa7749de7ab349f42732d0eda212 source/official-code/micro_hf/run.ipynb
194
+ 9e3bfec483af025854e9ebf8396a8ba645fb160d17e2d7fd811c248f7160d5c5 source/official-code/micro_hf/test_utils.py
195
+ ec4ccc0fa03f636f141904484f54763576e741c6f3586b1405343bb844c7c040 source/official-code/micro_hf/train_utils.py
196
+ 8c8de8d919900426514c5c0bfd7b4e459a8fd9a07808d38bfcb5646e87e7db68 source/official-code/mini/LICENSE
197
+ 28c7bafdae2f12a40a52b8329a04851c9c8b8a5442139043ed737a639cb390ef source/official-code/mini/README.md
198
+ d3ac296171b9de2ed1133b00b84ae72b1d85b29d03144f4cb3e8ce877e472770 source/official-code/mini/cmd.txt
199
+ a3130746ebbeda13cfa8a5505e0a55b10e336ecb0959f538c05d21a8d7dfbf4f source/official-code/mini/data_utils.py
200
+ e783bbb24ffbf7754bee14fe549844e68689b77081451610b320f4c48117f8c8 source/official-code/mini/exp.ipynb
201
+ 49c62b63ca1e33c565a641a99c5ed42919fff576d8e178893781cdf1425cc4eb source/official-code/mini/main.py
202
+ 8798dea4da5c960b3e0fee1e8b745e4e74e4ecc9513613908e02afc8aeeb0323 source/official-code/mini/main_binary_recall.py
203
+ 9daf389e164bee5d36e5833f386f4d28e7f607c2a0a680dc40c48ae8cea25351 source/official-code/mini/model_utils.py
204
+ 31ac911f56604dddf96ebfa83815887203307412ae456992869b807bbadda33b source/official-code/mini/models/__init__.py
205
+ 70f95f50e72d475b4344630a3ac0dff04148295d145c1882d45bb10c64f86f7c source/official-code/mini/models/alibi_model.py
206
+ 9997367b54c737d150d819889897d080dff0760d581e63095a996bfe871be2a8 source/official-code/mini/models/hard_alibi_model.py
207
+ 0eafe8c1bb50b8160625cc3ec58441265b17382e25a75e1a77f22581f9a5b64d source/official-code/mini/models/hybrid.py
208
+ 00435ff479ed75418e00591a1231c311f3404ca0b5adcef853f460a2e789f503 source/official-code/mini/models/hybrid_nope.py
209
+ 6ecd0deae5dc88b05f284d88f70a542a9090f38a5dbb107e89bed2ffc7614555 source/official-code/mini/models/lstm.py
210
+ 2e4a08af06d0cf288d973d85d579899923609c0718e818e1b8fe52ce12c76f32 source/official-code/mini/models/mamba.py
211
+ 451fe4ae08788545757d96a3ddea726b947d167ad2cf62d5f9d0f82bb1d2daf1 source/official-code/mini/models/nope.py
212
+ 2271fadc5024a9528bbe104e03696963de706409949f4cc86fde3b12e1e63469 source/official-code/mini/models/rope.py
213
+ df1385f452af32f1540ca2c56ed4510300cb4d4f053e3d68ec04a89c37ee02ec source/official-code/mini/process.ipynb
214
+ 937cdcbefb0145207119242506d345eee82ecc227610f51ebd4f8e25aee7fdfe source/official-code/mini/results/exp.txt
215
+ c9f1d248e95997d72329b88829ea52991133b5a769d420b798cf4051cfe91dbb source/official-code/mini/results/exp1.txt
216
+ a57a07e893e5901d451cb62be6daf6c437fde78aba51843ce99be0a853d6c816 source/official-code/mini/results/exp2.txt
217
+ e2a2b0c35444bb779d89227aa6fdf9e375283a1b83647f847a9a6d629958c54e source/official-code/mini/results/exp3.txt
218
+ 0e33c10f5506e0454bbfee20d890736ab493dcedce4427f815ebaec1c5fe9947 source/official-code/mini/results/exp4.txt
219
+ a39c8f0ce715507cbf8d8d565da3c91b16ea817c9029a7ccf5cb6084efbc3df3 source/official-code/mini/results/exp5.txt
220
+ af19888aba250b0b0773556bb60f182fb0bced7979c5302eaddd6db0e4c3139f source/official-code/mini/results/exp6.txt
221
+ 0e07dba867faaa9134da2b44ed637fd3e5f0582acfd203adf2abcbb5850648b2 source/official-code/mini/results/fig/eval_p_0.2.png
222
+ 97650c0ee292566b9516788f1ae3483c5dda118dfa9a252684304ad61253cd2f source/official-code/mini/results/fig/p_0.01_eval_p_0.2.png
223
+ 9f16927cadb88035d9edebeeb97ab4b80ea2af2929be6daea62dee964ce7f19a source/official-code/mini/results/fig/p_0.2_eval_p_0.01.png
224
+ 2280f32b902648f92735d3135617f1bc611c0b27c5684cf6006870d14bcb3fcd source/official-code/mini/results/fig/p_0.2_eval_p_0.05.png
225
+ 24cc97585798a3ca60b27697bf5a89b93ede2895d9b82be9093d0fb10fc370df source/official-code/mini/results/fig/p_0.2_eval_p_0.1.png
226
+ 0fbbe59ab479569fc5e55b2e6e8513b597425759803009bb5c36432f98edc311 source/official-code/mini/results/fig/p_0.2_eval_p_0.2.png
227
+ 3200afa19cd9ebfd1ea5f6b1f53d02ad3683dcc3741ae00c67f8e34a89d6affc source/official-code/mini/results/fig/p_0.2_eval_p_0.3.png
228
+ a71d6ec5fa5e3200b6f266b217c9850111bd81f5b256422a522362d2cf790c3c source/official-code/mini/results/fig/p_0.2_eval_p_0.5.png
229
+ 09b70c10e52b38eaa39512229f4c4155d701f4f6d7ad2b24914b94a4a6a1a4a0 source/official-code/mini/results/fig/p_0.2_eval_p_0.8.png
230
+ 0edf4248aaabe7722735648c09c938630aba85f8ba2daf2bd45b2246ad576b59 source/official-code/mini/temp_results/results.png
231
+ f45c9c16cd589fc8f0bfb35776f73ed179e8afdcf500477e0afe842b3ff3a334 source/official-code/mini/temp_results/temp_results.ipynb
232
+ 786cef7322e5d8918aa94b1fba41360859ef37bb48584754b580ab30cdfaa28a source/official-code/mini/test.py
233
+ 0cebfb698d2d30ebf6c756276627e48facc93c15154d4484a5d773a6b3734d5e source/official-code/mini/test_utils.py
234
+ be4728ef54011c728f4d5e6b62e2855d74821c82c5bff22994b16fce1fb21125 source/official-code/mini/train_utils.py
235
+ 062e233eb12f51ca91e5e5644bc0aa8084cadad4d11ada209e935f0819d6c65b source/official-code/output.png
236
+ 6aee53116bc311ee3ab8e1a87b9e5e160f2a502c1906c8f00ef4f4fdc518e809 source/official-code/useful_commands.txt
237
+ a5bb950c7f7ea370951dd4fc5d31d4e5fc40da1c801d39190ce460e4bb3f7d32 validate_logbook.py
OFFICIAL_VALIDATOR_RUN.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "validator": "official_validator.py",
3
+ "authority": "authoritative release gate for this local package only",
4
+ "not_claimed": [
5
+ "ICML validator",
6
+ "OpenReview validator",
7
+ "paper-author validator",
8
+ "remote campaign validator"
9
+ ],
10
+ "semantic_v4": "SEMANTIC_V4.json",
11
+ "validation": "VALIDATION.json",
12
+ "passed": true
13
+ }
README.md CHANGED
@@ -1,10 +1,36 @@
1
  ---
2
- title: Repro Expressivity Efficiency Hybrid Sequence
3
- emoji: 🐠
4
- colorFrom: pink
5
- colorTo: red
6
  sdk: static
7
  pinned: false
 
 
 
 
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: Reproduction - Expressivity-Efficiency Hybrid Sequence Models
3
+ emoji: 📐
4
+ colorFrom: blue
5
+ colorTo: green
6
  sdk: static
7
  pinned: false
8
+ short_description: Six claims audited, arXiv 2603.08859
9
+ tags:
10
+ - trackio
11
+ - open-reproductions
12
+ - icml2026-repro
13
+ - paper-82EJxJzG6r
14
  ---
15
 
16
+ # Local ICML reproduction audit
17
+
18
+ This package audits the six frozen registered claims for arXiv:2603.08859v1 / OpenReview `82EJxJzG6r`. It is deliberately isolated and local: no Hugging Face Space, campaign ledger, or remote validation target is created or changed.
19
+
20
+ Run the complete deterministic package with:
21
+
22
+ ```sh
23
+ python3 run_all.py
24
+ ```
25
+
26
+ That runs every evidence route twice, compares the eight result artifacts byte-for-byte, builds all pages, runs `official_validator.py` (the authoritative local-package gate, not an ICML/OpenReview/author validator), writes `SEMANTIC_V4.json` with 12 local semantic checks and `VALIDATION.json`, and finally writes `MANIFEST.sha256`.
27
+
28
+ The proposed (not created) target slug is `repro-hybrid-seq-82ejxjzg6r`.
29
+
30
+ Evidence categories are deliberately distinct:
31
+
32
+ - Claims 1–2: literal theorem audit and direct numerical witnesses.
33
+ - Claims 3–4: independent finite implementations of written constructions, plus direct execution of author notebook cells recorded separately.
34
+ - Claims 5–6: exact authored-source table audit only; learned training is not claimed as rerun because the supplied training path hard-codes CUDA and this host has no CUDA device.
35
+
36
+ Important limitations are in each claim page. In particular, Claim 1 is falsified at the literal printed scope, Claim 5’s `.999` is not silently rewritten to perfect accuracy, and Claim 6’s Figure 5 and Figure 6 tasks are not conflated.
REPLAY.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "paired_deterministic_local_replay",
3
+ "files": [
4
+ {
5
+ "file": "outputs/claim1.json",
6
+ "replay_a_sha256": "cda7675b2b59deb26050668435bbd6e4d7f5a7fe169e88a851b4a57debd378b6",
7
+ "replay_b_sha256": "cda7675b2b59deb26050668435bbd6e4d7f5a7fe169e88a851b4a57debd378b6",
8
+ "byte_identical": true
9
+ },
10
+ {
11
+ "file": "outputs/claim2.json",
12
+ "replay_a_sha256": "644f05f4af1131b092a8858a3f4ef9931bab04772b9db1097d5079e5c5fb7fa7",
13
+ "replay_b_sha256": "644f05f4af1131b092a8858a3f4ef9931bab04772b9db1097d5079e5c5fb7fa7",
14
+ "byte_identical": true
15
+ },
16
+ {
17
+ "file": "outputs/claim3.json",
18
+ "replay_a_sha256": "c2948406cd663b77c0502c23d6da9b71107b5388540f128f99c64e55d5be0d3b",
19
+ "replay_b_sha256": "c2948406cd663b77c0502c23d6da9b71107b5388540f128f99c64e55d5be0d3b",
20
+ "byte_identical": true
21
+ },
22
+ {
23
+ "file": "outputs/claim4.json",
24
+ "replay_a_sha256": "48c3a0ea60f9e18747607f8ca0b8a40303b32cb6f562407b802dc30c19c0def0",
25
+ "replay_b_sha256": "48c3a0ea60f9e18747607f8ca0b8a40303b32cb6f562407b802dc30c19c0def0",
26
+ "byte_identical": true
27
+ },
28
+ {
29
+ "file": "outputs/claim5.json",
30
+ "replay_a_sha256": "daa15965236e3c890688d7751916192e6502db072eff9a65869f209e05a7f6cf",
31
+ "replay_b_sha256": "daa15965236e3c890688d7751916192e6502db072eff9a65869f209e05a7f6cf",
32
+ "byte_identical": true
33
+ },
34
+ {
35
+ "file": "outputs/claim6.json",
36
+ "replay_a_sha256": "ee900bdcd3c603327736e3533fa296c6337b75f2cdc6a50bbb78cf87c22bddc2",
37
+ "replay_b_sha256": "ee900bdcd3c603327736e3533fa296c6337b75f2cdc6a50bbb78cf87c22bddc2",
38
+ "byte_identical": true
39
+ },
40
+ {
41
+ "file": "outputs/claim3_native.json",
42
+ "replay_a_sha256": "7ba1aee42a132c74b9875edb1a17b43a5f0d9a73cc78ce30cbd407f86ce77d50",
43
+ "replay_b_sha256": "7ba1aee42a132c74b9875edb1a17b43a5f0d9a73cc78ce30cbd407f86ce77d50",
44
+ "byte_identical": true
45
+ },
46
+ {
47
+ "file": "outputs/claim4_native.json",
48
+ "replay_a_sha256": "4f7266b28d80bc0cc7102d5d6cb6d8eafd278d557487299af97fba71515ab33b",
49
+ "replay_b_sha256": "4f7266b28d80bc0cc7102d5d6cb6d8eafd278d557487299af97fba71515ab33b",
50
+ "byte_identical": true
51
+ }
52
+ ],
53
+ "byte_identical": true,
54
+ "python": "3.13.3",
55
+ "commands": [
56
+ "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3 exp1_ssm_bound.py",
57
+ "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3 exp2_window_bound.py",
58
+ "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3 exp3_selcopy_construction.py",
59
+ "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3 exp4_ar_construction.py",
60
+ "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3 run_native_constructions.py",
61
+ "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3 audit_source_claims.py",
62
+ "/Library/Frameworks/Python.framework/Versions/3.13/bin/python3 build_logbook.py"
63
+ ]
64
+ }
SEMANTIC_V4.json ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "profile": "semantic-v4-local",
3
+ "validator": "local_bundle_validator_not_campaign_validator",
4
+ "checks": [
5
+ {
6
+ "name": "frozen_six_claims",
7
+ "passed": true,
8
+ "detail": "CLAIMS.json exactly equals the six registered claim strings."
9
+ },
10
+ {
11
+ "name": "complete_eight_routes",
12
+ "passed": true,
13
+ "detail": "Index, executive summary, and six claim routes exist."
14
+ },
15
+ {
16
+ "name": "exact_authored_archive",
17
+ "passed": true,
18
+ "detail": "arXiv e-print archive matches the retrieval SHA-256."
19
+ },
20
+ {
21
+ "name": "pinned_clean_code_checkout",
22
+ "passed": true,
23
+ "detail": "Linked source repository is detached at the recorded clean commit."
24
+ },
25
+ {
26
+ "name": "claim1_literal_falsification",
27
+ "passed": true,
28
+ "detail": "Under injectivity the printed RHS is non-positive; one-state 1/2 witnesses are retained."
29
+ },
30
+ {
31
+ "name": "claim2_receptive_field_witnesses",
32
+ "passed": true,
33
+ "detail": "Real causal-attention stacks preserve the designed outside-window witness."
34
+ },
35
+ {
36
+ "name": "claim3_construction_and_controls",
37
+ "passed": true,
38
+ "detail": "Independent finite construction succeeds while destructive controls fail."
39
+ },
40
+ {
41
+ "name": "claim4_full_vocab_certificate",
42
+ "passed": true,
43
+ "detail": "Full-vocabulary construction passes its exact coverage and small-domain gates."
44
+ },
45
+ {
46
+ "name": "claim4_sample_certificate_distinction",
47
+ "passed": true,
48
+ "detail": "The one sub-99% finite sample mean is retained separately from the exact coverage certificate."
49
+ },
50
+ {
51
+ "name": "direct_native_notebooks_retained",
52
+ "passed": true,
53
+ "detail": "Author notebook cell execution and destructive controls are reported without upgrading scope."
54
+ },
55
+ {
56
+ "name": "claim5_exact_source_scope",
57
+ "passed": true,
58
+ "detail": "Figure 4 table is preserved as .999, not silently converted to 1.000."
59
+ },
60
+ {
61
+ "name": "claim6_source_contradiction_marked",
62
+ "passed": true,
63
+ "detail": "Figure 6 sixfold row and Figure 5 task distinction are explicitly retained."
64
+ }
65
+ ],
66
+ "passed": true,
67
+ "check_count": 12
68
+ }
SOURCE_PROVENANCE.json ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "arxiv_id": "2603.08859v1",
3
+ "arxiv_eprint_url": "https://export.arxiv.org/e-print/2603.08859v1",
4
+ "archive": "source/2603.08859v1.tar.gz",
5
+ "archive_sha256": "e8d22bfd259aaa60385841d8643109ecb66f7eb1081dd76429f5215f05a032e8",
6
+ "archive_sha256_expected_from_retrieval": "e8d22bfd259aaa60385841d8643109ecb66f7eb1081dd76429f5215f05a032e8",
7
+ "authored_tree_file_sha256": {
8
+ "source/authored/00README.json": "d1f6b1a71c9accb812ec5121d1fff7910c025ca7bb201948bacdb40941bc14e5",
9
+ "source/authored/appendix/app_prelim.tex": "58305508fa935a85634e9a69ee3a919648ea7e3cf25061120fb0cd1eae723999",
10
+ "source/authored/appendix/construction_conventions.tex": "f76427efb23af284fd0852afedf188310d3fad58cda11414930b87429155178a",
11
+ "source/authored/appendix/constructions.tex": "4fbf21f1fa7544ff602fcd896a72a3babd50986fc2c5711f2d70b9844ba1a026",
12
+ "source/authored/appendix/experiment_details.tex": "4caa42ab4df1d828ea44fb9167e017827477b66265d70f24c1fad42104d02b77",
13
+ "source/authored/appendix/missing_proof_lb.tex": "7e729f2198b6c5b7190355a7985b56096822f9c7c462ac1d42e6d62a03487406",
14
+ "source/authored/fig/construction_structure.pdf": "bd8c0384a10f6baf22cc4652d8c12e4b176fe439f90c41ad3c2f4aa8df200a2a",
15
+ "source/authored/fig/example.png": "f304cbf59f3c06bfa5a9e1df347701b4197cda26bc4ebd67e2471a104a84e50a",
16
+ "source/authored/fig/exps/assoc_recall_mk/layers_dim.png": "b6bbbf7f68754086361ab6641322b7acf24f933b56fcb044c779a8b8f862212c",
17
+ "source/authored/fig/exps/assoc_recall_mk/layers_num_heads.png": "047a87d7c7b5e81595113875f27955cf30ce33056894921b6532998d7ff6b01f",
18
+ "source/authored/fig/exps/assoc_recall_mk/layers_state_dim.png": "c12d55000a42d3899f51599619e90ba7a24455c87aa113c0252a96ac1216e612",
19
+ "source/authored/fig/exps/assoc_recall_mk/layers_window.png": "c5355c62564a80012078b25777a9fdbaedc96359ccd3081e2e09d4bfb30f933f",
20
+ "source/authored/fig/exps/binary_recall/layers_dim_3.png": "b6dd8cf4936994649a6d74ca2a1210c057571e19f0518584f6f15447a4d7272e",
21
+ "source/authored/fig/exps/constructions/decode_recall_input.pdf": "76ec4177346017cf7233b3a2cabadb2a517d7ca43ca60a0e238bcd866b8b8783",
22
+ "source/authored/fig/exps/constructions/decode_recall_output.pdf": "5b66865ef2ef1491cae85f7faa370e6d17657b583481076709b56dbda1f1cc92",
23
+ "source/authored/fig/exps/constructions/selective_copy_input.pdf": "392d7bd0ed19eddc8fd084c48d8367618af273c1fbf25fe00b00a66fa6af77b8",
24
+ "source/authored/fig/exps/constructions/selective_copy_output.pdf": "563189f4e77fc950e0482d6432c2293c2298f9e6539cfd918fbf0ea8c333c7a7",
25
+ "source/authored/fig/exps/mini_decode_recall.png": "3200afa19cd9ebfd1ea5f6b1f53d02ad3683dcc3741ae00c67f8e34a89d6affc",
26
+ "source/authored/fig/exps/needle/layers_dim.png": "b03026887e3d4046aafb90f766b6a5154a2b742222ee71c53a007c6a1ca57c91",
27
+ "source/authored/fig/exps/var_copy/layers_dim.png": "d40b41b76dc484233b2c83d6a59f613393fdca8d5f19d413727bcafc23660bc5",
28
+ "source/authored/fig/exps/var_copy/layers_dim_1000.png": "07c2d5ccc723acbc5a302b0b386f50244d8010f42c82aa616200076796067c23",
29
+ "source/authored/fig/exps/var_copy/layers_dim_200.png": "3a6dfd95e7aa31a031f42f9db1b99456cb2230096033e652a57b76d7516eb380",
30
+ "source/authored/fig/exps/var_copy/layers_dim_adversary.png": "c49b8ed16b17f782392821672415a68b3b6878981bece5637c78729b0176ae47",
31
+ "source/authored/fig/exps/var_copy/layers_num_heads.png": "a64ad32988841e8cfe2537c7df96442711dd8e5c6c81a05ec638f7ed5f25554d",
32
+ "source/authored/fig/exps/var_copy/layers_state_dim.png": "d8b8da4a094e7ac4cd878cfcb7ca6fc98913c8c6fd28ab7995045720e881dec8",
33
+ "source/authored/fig/exps/var_copy/layers_window.png": "f154fdb8104c5d0c3492019f22846c1e69cad5b1a110f24881523ea7d6be07b9",
34
+ "source/authored/fig/selective_copy_construction_structure.pdf": "b70c660739eba172c0dc3959139c7f931657c4887a8354448e87e13eb593988a",
35
+ "source/authored/main.tex": "92a399acca0a701a2fa2c1ed038192ac84dd6ab2430932081cc7283416699b8f",
36
+ "source/authored/mathcommands.tex": "3a7753a5a76463a9093767c57462ed42bd99fbe7d9594248b40c4fdd91f9a2e2",
37
+ "source/authored/reference.bib": "78b0d784946e5b987b8d5d62755f4463d122d50e49c6312f9989f28a7b16dc43",
38
+ "source/authored/sections/conclusion.tex": "c5db291da441eef14b0288d1a3f082fbddb0430b3ec3299d6f83f21982cb7fb8",
39
+ "source/authored/sections/experiments.tex": "fcd88332cbe90aff62337c3add333f71fc542736b3e459015a28f0b08ae3c55b",
40
+ "source/authored/sections/func_comp_and_construct.tex": "bc06eda70de577b8bfe7290e9edd6237bfa7d1feaa793de30306e49dd3d6f226",
41
+ "source/authored/sections/introduction.tex": "cc0766f21b73d5251d78cded3e7573a0a6a4b6cabe454fd06a686ba7f8bcae17",
42
+ "source/authored/sections/prelim_and_notation.tex": "63836f14cc9a172d631ea42ae31e4cb7ca8c09660923ddaaedbb17543d24d559",
43
+ "source/authored/sections/related.tex": "8e80ed9742331f8c5d3954ee88e7b71d2db50f6e2050638625010a703c8b551f",
44
+ "source/authored/sections/tasks.tex": "80ba12f976423975af8377f1e80fb4b4b2622dd8dcca33fe6bbe398a28406408",
45
+ "source/authored/sections/upper_bound.tex": "de2fba5f19810c4de6cc82a404726376a353b8910414c472363a95102041ee3f"
46
+ },
47
+ "paper_linked_code": {
48
+ "remote": "https://github.com/SprocketLab/hybrid-expressivity",
49
+ "checkout": "6be8f8fbc2169290af6f4ba5e4bd53a5c6485f7b",
50
+ "status_porcelain": []
51
+ },
52
+ "code_version_selection": "The arXiv source links to the repository without a commit hash. The detached 6be8f8f checkout is the latest repository commit dated before the 2026-03-09 arXiv v1 submission; it is not asserted to be an author-pinned archival snapshot."
53
+ }
VALIDATION.json ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "validator": "validate_logbook.py (local bundle validator)",
3
+ "semantic_v4": {
4
+ "profile": "semantic-v4-local",
5
+ "validator": "local_bundle_validator_not_campaign_validator",
6
+ "checks": [
7
+ {
8
+ "name": "frozen_six_claims",
9
+ "passed": true,
10
+ "detail": "CLAIMS.json exactly equals the six registered claim strings."
11
+ },
12
+ {
13
+ "name": "complete_eight_routes",
14
+ "passed": true,
15
+ "detail": "Index, executive summary, and six claim routes exist."
16
+ },
17
+ {
18
+ "name": "exact_authored_archive",
19
+ "passed": true,
20
+ "detail": "arXiv e-print archive matches the retrieval SHA-256."
21
+ },
22
+ {
23
+ "name": "pinned_clean_code_checkout",
24
+ "passed": true,
25
+ "detail": "Linked source repository is detached at the recorded clean commit."
26
+ },
27
+ {
28
+ "name": "claim1_literal_falsification",
29
+ "passed": true,
30
+ "detail": "Under injectivity the printed RHS is non-positive; one-state 1/2 witnesses are retained."
31
+ },
32
+ {
33
+ "name": "claim2_receptive_field_witnesses",
34
+ "passed": true,
35
+ "detail": "Real causal-attention stacks preserve the designed outside-window witness."
36
+ },
37
+ {
38
+ "name": "claim3_construction_and_controls",
39
+ "passed": true,
40
+ "detail": "Independent finite construction succeeds while destructive controls fail."
41
+ },
42
+ {
43
+ "name": "claim4_full_vocab_certificate",
44
+ "passed": true,
45
+ "detail": "Full-vocabulary construction passes its exact coverage and small-domain gates."
46
+ },
47
+ {
48
+ "name": "claim4_sample_certificate_distinction",
49
+ "passed": true,
50
+ "detail": "The one sub-99% finite sample mean is retained separately from the exact coverage certificate."
51
+ },
52
+ {
53
+ "name": "direct_native_notebooks_retained",
54
+ "passed": true,
55
+ "detail": "Author notebook cell execution and destructive controls are reported without upgrading scope."
56
+ },
57
+ {
58
+ "name": "claim5_exact_source_scope",
59
+ "passed": true,
60
+ "detail": "Figure 4 table is preserved as .999, not silently converted to 1.000."
61
+ },
62
+ {
63
+ "name": "claim6_source_contradiction_marked",
64
+ "passed": true,
65
+ "detail": "Figure 6 sixfold row and Figure 5 task distinction are explicitly retained."
66
+ }
67
+ ],
68
+ "passed": true,
69
+ "check_count": 12
70
+ },
71
+ "operational": {
72
+ "replay_required": true,
73
+ "byte_identical_replay": true,
74
+ "no_remote_publication": true,
75
+ "official_campaign_validator": "not run: no campaign target was created or modified"
76
+ },
77
+ "passed": true
78
+ }
audit_source_claims.py ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Exact authored-source audit for the two learned-model claims.
2
+
3
+ No local GPU training is represented as a rerun: the official training code is
4
+ CUDA-only on this host and the repository contains learning-rate metadata and
5
+ figures, but no per-run scalar result artifacts. The appropriate evidence is
6
+ therefore the SHA-pinned authored TeX table/caption itself, including any
7
+ internal numeric conflict.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import hashlib
13
+ import json
14
+ import re
15
+ from pathlib import Path
16
+
17
+ import torch
18
+
19
+
20
+ ROOT = Path(__file__).resolve().parent
21
+ OUT = ROOT / "outputs"
22
+ TEX = ROOT / "source" / "authored" / "sections" / "experiments.tex"
23
+ TRAIN = ROOT / "source" / "official-code" / "micro_hf" / "train_utils.py"
24
+
25
+
26
+ def sha(path: Path) -> str:
27
+ return hashlib.sha256(path.read_bytes()).hexdigest()
28
+
29
+
30
+ def line_of(text: str, needle: str) -> int:
31
+ return text[: text.index(needle)].count("\n") + 1
32
+
33
+
34
+ def table_after(text: str, heading: str) -> tuple[str, list[dict[str, float]]]:
35
+ start = text.index(heading)
36
+ end = text.index("\\end{figure}", start)
37
+ block = text[start:end]
38
+ rows = []
39
+ pat = re.compile(
40
+ r"\$\\sim(\d+)\$\s*&\s*([0-9.]+)\s*&\s*([0-9.]+)"
41
+ r"\s*&\s*([0-9.]+)\s*&\s*([0-9.]+)"
42
+ )
43
+ for m in pat.finditer(block):
44
+ rows.append(
45
+ {
46
+ "parameters_approx": float(m.group(1)),
47
+ "pure_tf": float(m.group(2)),
48
+ "pure_ssm": float(m.group(3)),
49
+ "tf_to_ssm": float(m.group(4)),
50
+ "ssm_to_tf": float(m.group(5)),
51
+ }
52
+ )
53
+ if len(rows) != 4:
54
+ raise RuntimeError(f"expected four rows after {heading!r}, found {len(rows)}")
55
+ return block, rows
56
+
57
+
58
+ def training_route() -> dict[str, object]:
59
+ text = TRAIN.read_text()
60
+ return {
61
+ "official_train_file": str(TRAIN.relative_to(ROOT)),
62
+ "official_train_file_sha256": sha(TRAIN),
63
+ "hard_coded_cuda_calls": text.count(".to('cuda')"),
64
+ "torch_cuda_available_on_this_host": torch.cuda.is_available(),
65
+ "result_artifacts_present": False,
66
+ "reason_no_local_training_rerun": (
67
+ "The official micro_hf entry point hard-codes CUDA tensors; this "
68
+ "host has no CUDA device. The checkout contains figures and lrs.json "
69
+ "metadata but no per-run evaluation JSON/CSV/checkpoint results."
70
+ ),
71
+ }
72
+
73
+
74
+ def main() -> None:
75
+ OUT.mkdir(exist_ok=True)
76
+ text = TEX.read_text()
77
+ var_block, var_rows = table_after(text, "\\noindent \\textbf{Selective Copy.}")
78
+ mk_block, mk_rows = table_after(text, "\\noindent \\textbf{Multi-Key Associative Recall.}")
79
+ route = training_route()
80
+
81
+ var_2k = next(r for r in var_rows if r["parameters_approx"] == 2000)
82
+ var_12k = next(r for r in var_rows if r["parameters_approx"] == 12000)
83
+ claim5 = {
84
+ "kind": "exact_authored_source_audit",
85
+ "source": str(TEX.relative_to(ROOT)),
86
+ "source_sha256": sha(TEX),
87
+ "table_heading_line": line_of(text, "\\noindent \\textbf{Selective Copy.}"),
88
+ "caption_line": line_of(text, "At 2000 parameters, hybrid models consistently"),
89
+ "table_rows": var_rows,
90
+ "literal_table_comparison": {
91
+ "hybrid_ssm_to_tf_at_approximately_2000": var_2k["ssm_to_tf"],
92
+ "pure_tf_at_approximately_12000": var_12k["pure_tf"],
93
+ "pure_ssm_at_approximately_12000": var_12k["pure_ssm"],
94
+ "parameter_ratio_12000_over_2000": 12000 / 2000,
95
+ "strict_table_value_is_exactly_one": var_2k["ssm_to_tf"] == 1.0,
96
+ },
97
+ "source_caption_says_perfect": "consistently attain perfect accuracy" in var_block,
98
+ "source_results_says_roughly_six_times": "factor of $6 \\times$" in text,
99
+ "assessment": (
100
+ "The authored table supports the approximate 6x/near-perfect comparison "
101
+ "(.999 versus .923/.931), but its printed .999 is not literally 1.000 "
102
+ "while the caption calls it perfect. This is source evidence, not an "
103
+ "independent learned-model reproduction."
104
+ ),
105
+ "training_route": route,
106
+ }
107
+
108
+ mk_2k = next(r for r in mk_rows if r["parameters_approx"] == 2000)
109
+ mk_6k = next(r for r in mk_rows if r["parameters_approx"] == 6000)
110
+ mk_12k = next(r for r in mk_rows if r["parameters_approx"] == 12000)
111
+ single_key_sentence = "none of the pure models achieved greater than 40\\% accuracy"
112
+ claim6 = {
113
+ "kind": "exact_authored_source_audit",
114
+ "source": str(TEX.relative_to(ROOT)),
115
+ "source_sha256": sha(TEX),
116
+ "mkar_table_heading_line": line_of(text, "\\noindent \\textbf{Multi-Key Associative Recall.}"),
117
+ "mkar_caption_line": line_of(text, "hybrid models could perform the task to 60\\%"),
118
+ "single_key_figure_result_line": line_of(text, single_key_sentence),
119
+ "mkar_table_rows": mk_rows,
120
+ "literal_table_checks": {
121
+ "hybrid_ssm_to_tf_at_approximately_2000": mk_2k["ssm_to_tf"],
122
+ "hybrid_ssm_to_tf_at_approximately_6000": mk_6k["ssm_to_tf"],
123
+ "pure_tf_at_approximately_12000": mk_12k["pure_tf"],
124
+ "sixfold_parameter_ratio_from_2000_to_12000": 12000 / 2000,
125
+ "hybrid_reaches_0_60_at_approximately_2000": mk_2k["ssm_to_tf"] >= 0.60,
126
+ "hybrid_reaches_0_60_at_approximately_6000": mk_6k["ssm_to_tf"] >= 0.60,
127
+ "ratio_for_6000_vs_12000": 12000 / 6000,
128
+ },
129
+ "source_caption_claims_60pct_and_six_times": (
130
+ "60\\% accuracy with $6 \\times$ fewer" in mk_block
131
+ ),
132
+ "single_key_statement_is_a_different_task": True,
133
+ "assessment": (
134
+ "The authored MKAR table is internally insufficient for the literal "
135
+ "60%-at-6x conjunction: at the 6x row it reports .512 (<.60), while "
136
+ "at .990 the nearest shown pure-TF row is only 2x larger. The caption "
137
+ "asserts the headline, but raw points needed to locate an unshown "
138
+ "60% crossing were not released. The <=40% statement is explicitly "
139
+ "about associative recall with decoding (Figure 5), not MKAR (Figure 6)."
140
+ ),
141
+ "training_route": route,
142
+ }
143
+
144
+ (OUT / "claim5.json").write_text(json.dumps(claim5, indent=2) + "\n")
145
+ (OUT / "claim6.json").write_text(json.dumps(claim6, indent=2) + "\n")
146
+ print(
147
+ "claim5 source: hybrid@2k=%.3f, pure@12k=(%.3f, %.3f), ratio=%.1f"
148
+ % (var_2k["ssm_to_tf"], var_12k["pure_tf"], var_12k["pure_ssm"], 6.0)
149
+ )
150
+ print(
151
+ "claim6 source: hybrid@2k=%.3f, hybrid@6k=%.3f, pureTF@12k=%.3f"
152
+ % (mk_2k["ssm_to_tf"], mk_6k["ssm_to_tf"], mk_12k["pure_tf"])
153
+ )
154
+
155
+
156
+ if __name__ == "__main__":
157
+ main()
build_logbook.py ADDED
@@ -0,0 +1,276 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Build static claim pages and provenance from deterministic result artifacts."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import hashlib
6
+ import json
7
+ import subprocess
8
+ from pathlib import Path
9
+
10
+
11
+ ROOT = Path(__file__).resolve().parent
12
+ OUT = ROOT / "outputs"
13
+ PAGES = ROOT / "pages"
14
+ AUTHORED_ARCHIVE = ROOT / "source" / "2603.08859v1.tar.gz"
15
+ AUTHORED = ROOT / "source" / "authored"
16
+ CODE = ROOT / "source" / "official-code"
17
+
18
+
19
+ CLAIM_SLUGS = [
20
+ "claim-1-theorem-3-3-literal-bound",
21
+ "claim-2-theorem-3-7-window-bound",
22
+ "claim-3-theorem-4-3-selective-copy",
23
+ "claim-4-theorem-4-6-associative-recall",
24
+ "claim-5-figure-4-selective-copy-learning",
25
+ "claim-6-figures-5-6-associative-recall-learning",
26
+ ]
27
+
28
+
29
+ def sha(path: Path) -> str:
30
+ return hashlib.sha256(path.read_bytes()).hexdigest()
31
+
32
+
33
+ def load(name: str) -> dict:
34
+ return json.loads((OUT / name).read_text())
35
+
36
+
37
+ def code_info() -> dict:
38
+ return {
39
+ "remote": "https://github.com/SprocketLab/hybrid-expressivity",
40
+ "checkout": subprocess.check_output(
41
+ ["git", "-C", str(CODE), "rev-parse", "HEAD"], text=True
42
+ ).strip(),
43
+ "status_porcelain": subprocess.check_output(
44
+ ["git", "-C", str(CODE), "status", "--porcelain"], text=True
45
+ ).splitlines(),
46
+ }
47
+
48
+
49
+ def source_provenance() -> dict:
50
+ files = {}
51
+ for path in sorted(AUTHORED.rglob("*")):
52
+ if path.is_file():
53
+ files[str(path.relative_to(ROOT))] = sha(path)
54
+ return {
55
+ "arxiv_id": "2603.08859v1",
56
+ "arxiv_eprint_url": "https://export.arxiv.org/e-print/2603.08859v1",
57
+ "archive": str(AUTHORED_ARCHIVE.relative_to(ROOT)),
58
+ "archive_sha256": sha(AUTHORED_ARCHIVE),
59
+ "archive_sha256_expected_from_retrieval": "e8d22bfd259aaa60385841d8643109ecb66f7eb1081dd76429f5215f05a032e8",
60
+ "authored_tree_file_sha256": files,
61
+ "paper_linked_code": code_info(),
62
+ "code_version_selection": (
63
+ "The arXiv source links to the repository without a commit hash. "
64
+ "The detached 6be8f8f checkout is the latest repository commit dated "
65
+ "before the 2026-03-09 arXiv v1 submission; it is not asserted to be "
66
+ "an author-pinned archival snapshot."
67
+ ),
68
+ }
69
+
70
+
71
+ def claim_page(title: str, status: str, body: str, evidence: list[str], limitations: str) -> str:
72
+ bullets = "\n".join(f"- {item}" for item in evidence)
73
+ return (
74
+ f"# {title}\n\n"
75
+ f"**Assessment: {status}.**\n\n"
76
+ f"{body}\n\n"
77
+ "## Evidence\n\n"
78
+ f"{bullets}\n\n"
79
+ "## Scope and limitations\n\n"
80
+ f"{limitations}\n"
81
+ )
82
+
83
+
84
+ def write_pages() -> dict:
85
+ claims = json.loads((ROOT / "CLAIMS.json").read_text())["claims"]
86
+ c1, c2, c3, c4, c5, c6 = [load(f"claim{i}.json") for i in range(1, 7)]
87
+ n3, n4 = load("claim3_native.json"), load("claim4_native.json")
88
+ PAGES.mkdir(exist_ok=True)
89
+
90
+ pages = []
91
+ bodies = [
92
+ claim_page(
93
+ claims[0]["text"],
94
+ "falsified as a literal positive linear lower-bound claim",
95
+ "Assumption 3.2 makes G: V^m → Y^q injective, so cardinality gives "
96
+ "m·log₂|V| ≤ q·log₂|Y|. The printed right-hand side "
97
+ "m·log|V| − q·log|Y| is therefore never positive under its own "
98
+ "assumption. The appendix instead derives a different Fano bound under "
99
+ "error < 1/8; that is not the printed probability-1/2 theorem.",
100
+ [
101
+ "Exact authored statement: source/authored/sections/func_comp_and_construct.tex:26–28.",
102
+ f"1,296 admissible cardinality configurations: maximum printed RHS = {c1['printed_bound_audit']['max_literal_bound_over_admissible_grid']:.1f}.",
103
+ "Exhaustive binary selective-copy partitions: one state attains exactly 1/2 success for m=2 and m=3, matching the theorem's printed threshold.",
104
+ "The appendix source records its stronger, different prerequisite as err < 1/8 (source/authored/appendix/missing_proof_lb.tex).",
105
+ ],
106
+ "This is a literal-statement audit, not a claim that no corrected lower "
107
+ "bound can be proved. The exact selective-copy enumeration is finite; the "
108
+ "cardinality implication itself is general.",
109
+ ),
110
+ claim_page(
111
+ claims[1]["text"],
112
+ "supported by explicit paper-task witnesses and exact receptive-field checks",
113
+ "For the selective-copy witnesses, changing only a token outside the "
114
+ "causal receptive field leaves the terminal logits bit-identical. On the "
115
+ "two-point witness distribution this forces accuracy 1/2, below 2/3. "
116
+ "A full-window control separates the same pair.",
117
+ [
118
+ f"{c2['receptive_field_sweep']['configs_tested']} real float64 causal-attention stacks; outside-RF violations = {c2['receptive_field_sweep']['violations_outside_receptive_field']}.",
119
+ f"Maximum terminal-logit change outside RF = {c2['max_abs_delta_when_sumW_below_R']:.1f} for the hard witnesses.",
120
+ f"Full-window control separates {c2['control_full_window_separates_frac']:.0%} of tested witness configurations.",
121
+ "The source proof explicitly identifies the terminal dependency as the last sum_i W_i tokens (appendix/missing_proof_lb.tex).",
122
+ ],
123
+ "Finite numerical checks cannot prove the universal theorem. They directly "
124
+ "exercise its stated quantities (window, R, indistinguishability and "
125
+ "success threshold) on the paper's selective-copy task rather than a proxy.",
126
+ ),
127
+ claim_page(
128
+ claims[2]["text"],
129
+ "supported for the literal construction; official notebook does not establish its universal scope",
130
+ "A direct transcription of Appendix D.2/D.5 achieves exact final-position "
131
+ "selective copying across exhaustive and large deterministic sweeps, with a "
132
+ "window-minus-one and no-SSM destructive controls. The separately executed "
133
+ "author notebook is included unchanged as provenance and scores only .825 on "
134
+ "the notebook generator's 1,024 final-position examples, so it is not used "
135
+ "as evidence of the theorem's 'every input' quantifier.",
136
+ [
137
+ f"Independent construction: {c3['total_inputs_tested']:,} valid inputs; minimum accuracy = {c3['min_accuracy_over_all_configs']:.6f}.",
138
+ "Includes L=100, |V|=32 and longer L=1,024/4,096 sweeps; these are labelled construction checks, not learned-model runs.",
139
+ f"Native notebook baseline/control: {n3['baseline']['last_position_accuracy']:.6f} / {n3['destructive_control']['last_position_accuracy']:.6f} on {n3['baseline']['eligible_last_position_examples']} eligible examples.",
140
+ "The destructive construction controls remove one attention position, zero the query, or disable selective state update.",
141
+ ],
142
+ "The independent checker is a faithful finite implementation of the written "
143
+ "construction, not a mechanized proof. The native notebook's aggregate failure "
144
+ "is retained rather than overwritten or relabelled as a success.",
145
+ ),
146
+ claim_page(
147
+ claims[3]["text"],
148
+ "supported by a full-vocabulary construction and exact coverage certificate; native notebook is only a limited check",
149
+ "The Appendix D.4 construction was implemented with the stated full-vocabulary "
150
+ "binary code, last-match positional bias, and a finite softmax separation. "
151
+ "Its exact iid coverage formula is at least .99 for each measured scale; the "
152
+ "5×20,000-instance point estimates track that certificate (one mean, .989820, "
153
+ "is below .99 and is not relabelled as an empirical pass). The implementation "
154
+ "also exhausts three small full-window domains.",
155
+ [
156
+ f"All analytic coverage certificates meet 99%: {c4['all_meet_99pct']}.",
157
+ f"Minimum five-seed empirical mean = {c4['min_success_at_theorem_window']:.6f}; maximum gap from exact coverage = {c4['max_gap_vs_analytic']:.6f}.",
158
+ "Exhaustive full-window domains (|M|, L)=(4,8),(4,9),(8,8) all score 1.0.",
159
+ f"Native authored notebook baseline/control: {n4['baseline']['last_position_accuracy']:.6f} / {n4['destructive_control']['last_position_accuracy']:.6f}; it has no windowed 99%-coverage test.",
160
+ ],
161
+ "The native notebook is a direct one-construction execution, not the paper's "
162
+ "probabilistic window experiment. The 99% support comes from the written "
163
+ "construction plus an exact iid coverage calculation and finite tests; it is "
164
+ "not a claimed learned-model training rerun.",
165
+ ),
166
+ claim_page(
167
+ claims[4]["text"],
168
+ "authored-source supported, but not independently reproduced",
169
+ "The exact authored Figure 4 table gives SSM→TF .999 at approximately 2,000 "
170
+ "parameters and pure TF/SSM .923/.931 at approximately 12,000 parameters, a "
171
+ "sixfold nominal parameter ratio. The caption calls .999 'perfect', so the "
172
+ "strict word perfect and printed value are internally inconsistent at the "
173
+ "shown precision.",
174
+ [
175
+ f"Pinned source table: hybrid@2k={c5['literal_table_comparison']['hybrid_ssm_to_tf_at_approximately_2000']:.3f}; pure TF/SSM@12k={c5['literal_table_comparison']['pure_tf_at_approximately_12000']:.3f}/{c5['literal_table_comparison']['pure_ssm_at_approximately_12000']:.3f}.",
176
+ "The TeX table, caption, and source-file SHA are in outputs/claim5.json.",
177
+ "The official micro_hf training path contains hard-coded CUDA transfers and this machine has no CUDA device; no local run is presented as a reproduction.",
178
+ ],
179
+ "The repository did not contain per-run scalar results, checkpoints, or an "
180
+ "author-pinned code commit in the arXiv archive. This page reports the paper's "
181
+ "own exact table, not an independent empirical confirmation.",
182
+ ),
183
+ claim_page(
184
+ claims[5]["text"],
185
+ "not independently established; the authored MKAR table conflicts with the literal numeric conjunction",
186
+ "The Figure 6 table's sixfold row is approximately 2,000 versus 12,000 "
187
+ "parameters, where SSM→TF is .512—not 60%. At the first shown hybrid result "
188
+ "above 60% (.990 at approximately 6,000), the nearest shown pure-TF row is "
189
+ "approximately 12,000, only 2× larger. The caption asserts 60%-at-6×, but the "
190
+ "raw points needed to locate a different crossing were not released.",
191
+ [
192
+ f"Pinned MKAR values: hybrid@2k={c6['literal_table_checks']['hybrid_ssm_to_tf_at_approximately_2000']:.3f}, hybrid@6k={c6['literal_table_checks']['hybrid_ssm_to_tf_at_approximately_6000']:.3f}, pure TF@12k={c6['literal_table_checks']['pure_tf_at_approximately_12000']:.3f}.",
193
+ "The <=40% sentence is from Figure 5's associative recall with decoding, a different task from Figure 6's MKAR; it is not treated as an MKAR plateau measurement.",
194
+ "The exact TeX/table SHA and CUDA-only non-rerun route are recorded in outputs/claim6.json.",
195
+ ],
196
+ "This is an authored-source/data audit. It does not infer a curve between "
197
+ "unreleased points or substitute the Figure 5 task for MKAR. A GPU rerun would "
198
+ "require compatible CUDA hardware and a declared protocol; neither is claimed here.",
199
+ ),
200
+ ]
201
+
202
+ for slug, page in zip(CLAIM_SLUGS, bodies):
203
+ dest = PAGES / slug
204
+ dest.mkdir(exist_ok=True)
205
+ (dest / "page.md").write_text(page)
206
+ pages.append(str((dest / "page.md").relative_to(ROOT)))
207
+
208
+ rows = [
209
+ ("1", "Theorem 3.3 literal lower bound", "falsified", "printed RHS non-positive under injectivity"),
210
+ ("2", "Theorem 3.7 window lower bound", "supported", "paper-task witnesses and real attention stacks"),
211
+ ("3", "Theorem 4.3 selective copy", "supported", "independent construction; native notebook limitation retained"),
212
+ ("4", "Theorem 4.6 associative recall", "supported", "full-vocabulary construction and exact coverage"),
213
+ ("5", "Figure 4 learned selective copy", "source-supported", "reported table only; .999/perfect rounding conflict"),
214
+ ("6", "Figures 5–6 learned recall", "not established", "MKAR table conflicts with 60%-at-6x conjunction"),
215
+ ]
216
+ table = "\n".join(f"| {a} | {b} | {c} | {d} |" for a, b, c, d in rows)
217
+ executive = (
218
+ "# Executive summary\n\n"
219
+ "This is a six-claim audit of arXiv:2603.08859v1 / OpenReview `82EJxJzG6r`. "
220
+ "Claim text is frozen in `CLAIMS.json`; evidence does not rewrite scope.\n\n"
221
+ "| claim | subject | assessment | headline |\n| --- | --- | --- | --- |\n"
222
+ + table
223
+ + "\n\nThe package distinguishes (1) native author-notebook execution, "
224
+ "(2) an independent implementation of the written constructions, and (3) "
225
+ "exact authored-table evidence. GPU-only learned-model training was not rerun "
226
+ "on this non-CUDA host.\n"
227
+ )
228
+ (PAGES / "executive-summary").mkdir(exist_ok=True)
229
+ (PAGES / "executive-summary" / "page.md").write_text(executive)
230
+ index = (
231
+ "# Reproduction audit: Expressivity-Efficiency Tradeoffs for Hybrid Sequence Models\n\n"
232
+ "Paper: arXiv:2603.08859v1 · OpenReview `82EJxJzG6r`\n\n"
233
+ "Six registered claims are preserved verbatim in `CLAIMS.json`. Run `python3 run_all.py` "
234
+ "for paired deterministic replays, page generation, validation, and a recursive manifest.\n"
235
+ )
236
+ (PAGES / "index.md").write_text(index)
237
+ return {"claim_pages": pages}
238
+
239
+
240
+ def write_logbook(route_info: dict) -> None:
241
+ claims = json.loads((ROOT / "CLAIMS.json").read_text())["claims"]
242
+ children = [
243
+ {"slug": "executive-summary", "title": "Executive summary", "file": "pages/executive-summary/page.md", "children": []}
244
+ ]
245
+ for claim, slug in zip(claims, CLAIM_SLUGS):
246
+ children.append(
247
+ {
248
+ "slug": slug,
249
+ "title": f"Claim {claim['index']}: {claim['text']}",
250
+ "file": f"pages/{slug}/page.md",
251
+ "children": [],
252
+ }
253
+ )
254
+ logbook = {
255
+ "schema_version": 1,
256
+ "title": "Reproduction audit: Hybrid Sequence Models",
257
+ "emoji": "🔬",
258
+ "proposed_target_slug": "repro-hybrid-seq-82ejxjzg6r",
259
+ "publication_status": "local-only; no Space created or modified",
260
+ "paper": {"arxiv_id": "2603.08859v1", "openreview_id": "82EJxJzG6r"},
261
+ "updated_at": "2026-07-28T00:00:00+00:00",
262
+ "root": {"slug": "index", "title": "Reproduction audit", "file": "pages/index.md", "children": children},
263
+ "routes_built": route_info,
264
+ }
265
+ (ROOT / "logbook.json").write_text(json.dumps(logbook, indent=2) + "\n")
266
+
267
+
268
+ def main() -> None:
269
+ route_info = write_pages()
270
+ write_logbook(route_info)
271
+ (ROOT / "SOURCE_PROVENANCE.json").write_text(json.dumps(source_provenance(), indent=2) + "\n")
272
+ print("built six claim pages, logbook routes, and source provenance")
273
+
274
+
275
+ if __name__ == "__main__":
276
+ main()
exp1_ssm_bound.py ADDED
@@ -0,0 +1,409 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Claim 1 - Theorem 3.3: SSM state-space lower bound for function composition.
2
+
3
+ The paper (Definition 3.1) considers F(u, v) with u in V^m, v in V^n, and
4
+ Assumption 3.2: there is a query set Q = {v^(1),...,v^(q)} such that
5
+ G(u) := (F(u,v^(1)), ..., F(u,v^(q)))
6
+ is an injection. Theorem 3.3 then asserts that any k-layer SSM computing F
7
+ needs sum_i log|S_i| >= Omega(m log|V| - q log|Y|).
8
+
9
+ We instantiate the *canonical* member of the family, the one the paper itself
10
+ uses in Theorem 4.2 / D.1 for selective copying:
11
+
12
+ F(u, v) = u_v , u in V^m, v in [m], Y = V, Q = {1,...,m}, q = m.
13
+
14
+ G(u) = u is an injection, so Assumption 3.2 holds by construction.
15
+
16
+ What we compute (all exact, no sampling):
17
+
18
+ A. Fooling set. All |V|^m prefixes are pairwise separated by some query.
19
+ Checked over every unordered pair.
20
+ B. Minimum state count. A single-layer SSM's behaviour on this task is
21
+ determined by (i) the partition of prefixes induced by the state after
22
+ reading u and (ii) an arbitrary decoder r(state, query). We grant the
23
+ decoder unlimited power, which only *weakens* the lower bound we verify.
24
+ Exhaustive enumeration over ALL set partitions gives the exact optimal
25
+ accuracy A*(s) for every state budget s. A*(s) = 1 iff s >= |V|^m.
26
+ C. Negative control with a closed form. With exactly |V|^m - 1 states the
27
+ best possible accuracy is exactly 1 - 1/(m |V|^m): one pair of prefixes
28
+ must be merged, the cheapest pair is at Hamming distance 1, and merging
29
+ costs exactly one wrong (prefix, query) cell. Verified against brute
30
+ force over all C(N,2) merges.
31
+ D. Lemma 3.5. k stacked SSM layers are simulated by one layer whose state
32
+ space is the product; verified behaviourally on all short inputs, and the
33
+ product bound is shown tight on a witness.
34
+ E. Audit of the two constants in the printed statement of Theorem 3.3.
35
+
36
+ Run: python3 exp1_ssm_bound.py
37
+ """
38
+
39
+ import itertools
40
+ import json
41
+ import math
42
+ import os
43
+ import random
44
+
45
+ import numpy as np
46
+
47
+ OUT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "outputs")
48
+ os.makedirs(OUT, exist_ok=True)
49
+
50
+
51
+ # --------------------------------------------------------------------------
52
+ # A. fooling set: every pair of prefixes is separated by some query in Q
53
+ # --------------------------------------------------------------------------
54
+ def fooling_set(m, V):
55
+ """Return (n_prefixes, n_pairs, n_separated, min_separating_queries)."""
56
+ prefixes = list(itertools.product(range(V), repeat=m))
57
+ n = len(prefixes)
58
+ sep = 0
59
+ min_sep_q = m + 1
60
+ for a in range(n):
61
+ ua = prefixes[a]
62
+ for b in range(a + 1, n):
63
+ ub = prefixes[b]
64
+ # queries j in [m] on which the required answers differ
65
+ k = sum(1 for j in range(m) if ua[j] != ub[j])
66
+ if k > 0:
67
+ sep += 1
68
+ min_sep_q = min(min_sep_q, k)
69
+ return n, n * (n - 1) // 2, sep, min_sep_q
70
+
71
+
72
+ # --------------------------------------------------------------------------
73
+ # B. exact optimal accuracy for a given state budget, by exhaustive partition
74
+ # --------------------------------------------------------------------------
75
+ def _partitions(collection):
76
+ """All set partitions of a list (Knuth / standard recursive generator)."""
77
+ collection = list(collection)
78
+ if len(collection) == 1:
79
+ yield [collection]
80
+ return
81
+ first = collection[0]
82
+ for smaller in _partitions(collection[1:]):
83
+ for i, subset in enumerate(smaller):
84
+ yield smaller[:i] + [[first] + subset] + smaller[i + 1:]
85
+ yield [[first]] + smaller
86
+
87
+
88
+ def block_correct(block, m):
89
+ """Number of correct (prefix, query) cells achievable by the best decoder."""
90
+ tot = 0
91
+ for j in range(m):
92
+ counts = {}
93
+ for u in block:
94
+ counts[u[j]] = counts.get(u[j], 0) + 1
95
+ tot += max(counts.values())
96
+ return tot
97
+
98
+
99
+ def exact_accuracy_curve(m, V):
100
+ """A*(s) for every s = 1..|V|^m, by exhaustive enumeration of partitions."""
101
+ prefixes = list(itertools.product(range(V), repeat=m))
102
+ n = len(prefixes)
103
+ best = {s: 0 for s in range(1, n + 1)}
104
+ total_cells = n * m
105
+ for part in _partitions(prefixes):
106
+ s = len(part)
107
+ c = sum(block_correct(b, m) for b in part)
108
+ if c > best[s]:
109
+ best[s] = c
110
+ # A*(s) is monotone non-decreasing in s (more states never hurt)
111
+ run = 0
112
+ curve = {}
113
+ for s in range(1, n + 1):
114
+ run = max(run, best[s])
115
+ curve[s] = run / total_cells
116
+ return curve
117
+
118
+
119
+ def min_states_for(curve, p):
120
+ for s in sorted(curve):
121
+ if curve[s] >= p - 1e-12:
122
+ return s
123
+ return None
124
+
125
+
126
+ # --------------------------------------------------------------------------
127
+ # C. negative control: |V|^m - 1 states, exact closed form
128
+ # --------------------------------------------------------------------------
129
+ def best_accuracy_one_merge(m, V):
130
+ """Brute force over all C(N,2) merges; the rest of the prefixes stay alone."""
131
+ prefixes = list(itertools.product(range(V), repeat=m))
132
+ n = len(prefixes)
133
+ total_cells = n * m
134
+ best = -1
135
+ witness = None
136
+ for a in range(n):
137
+ for b in range(a + 1, n):
138
+ ua, ub = prefixes[a], prefixes[b]
139
+ # everything outside the merged pair is correct on all m queries
140
+ c = (n - 2) * m + block_correct([ua, ub], m)
141
+ if c > best:
142
+ best = c
143
+ witness = (ua, ub)
144
+ return best / total_cells, witness
145
+
146
+
147
+ # --------------------------------------------------------------------------
148
+ # D. Lemma 3.5: k SSM layers collapse to one with product state space
149
+ # --------------------------------------------------------------------------
150
+ def lemma_35_check(rng, k, sizes, alphabet, max_len):
151
+ """Build k random SSM layers, simulate them stacked and as a product
152
+ automaton, and compare outputs on every input string up to max_len."""
153
+ layers = []
154
+ alpha_in = alphabet
155
+ for j in range(k):
156
+ s = sizes[j]
157
+ u = rng.integers(0, s, size=(s, alpha_in)) # update rule
158
+ r = rng.integers(0, alphabet, size=s) # output map
159
+ layers.append((u, r, s))
160
+ alpha_in = alphabet
161
+
162
+ def run_stacked(seq):
163
+ cur = list(seq)
164
+ for (u, r, s) in layers:
165
+ st = 0
166
+ out = []
167
+ for tok in cur:
168
+ st = int(u[st, tok])
169
+ out.append(int(r[st]))
170
+ cur = out
171
+ return tuple(cur)
172
+
173
+ # single-layer product simulation
174
+ prod_states = {}
175
+
176
+ def run_product(seq):
177
+ st = tuple(0 for _ in layers)
178
+ out = []
179
+ for tok in seq:
180
+ new = []
181
+ sym = tok
182
+ for (u, r, s), cs in zip(layers, st):
183
+ ns = int(u[cs, sym])
184
+ new.append(ns)
185
+ sym = int(r[ns])
186
+ st = tuple(new)
187
+ prod_states[st] = True
188
+ out.append(sym)
189
+ return tuple(out)
190
+
191
+ mismatches = 0
192
+ tested = 0
193
+ for L in range(1, max_len + 1):
194
+ for seq in itertools.product(range(alphabet), repeat=L):
195
+ tested += 1
196
+ if run_stacked(seq) != run_product(seq):
197
+ mismatches += 1
198
+ return {
199
+ "k": k,
200
+ "sizes": list(sizes),
201
+ "product_bound": int(np.prod(sizes)),
202
+ "reachable_product_states": len(prod_states),
203
+ "sequences_tested": tested,
204
+ "behaviour_mismatches": mismatches,
205
+ "bound_respected": bool(len(prod_states) <= int(np.prod(sizes))),
206
+ }
207
+
208
+
209
+ # --------------------------------------------------------------------------
210
+ # E. audit of the printed bound
211
+ # --------------------------------------------------------------------------
212
+ def h2(p):
213
+ if p <= 0 or p >= 1:
214
+ return 0.0
215
+ return -p * math.log2(p) - (1 - p) * math.log2(1 - p)
216
+
217
+
218
+ def audit_printed_bound():
219
+ """Two independent audits of the literal statement of Theorem 3.3.
220
+
221
+ (i) The body writes Omega(m log|V| - q log|Y|). Assumption 3.2 requires
222
+ G: V^m -> Y^q to be injective, hence |V|^m <= |Y|^q, hence
223
+ m log|V| - q log|Y| <= 0 for EVERY admissible (m,|V|,q,|Y|).
224
+ (ii) The appendix (proof of Theorem 3.3, eq. before the Q.E.D.) actually
225
+ derives log|S| >= m log|V| - q (H2(1/8) + log|Y|/8) under err < 1/8.
226
+ That form is strictly positive and linear in m.
227
+ """
228
+ rows = []
229
+ worst_literal = -math.inf
230
+ for m in range(1, 13):
231
+ for Vs in (2, 3, 4, 8, 16, 32):
232
+ for Ys in (2, 3, 4, 8, 16, 32):
233
+ # smallest q for which injectivity V^m -> Y^q is possible
234
+ qmin = math.ceil(m * math.log2(Vs) / math.log2(Ys))
235
+ for q in (qmin, qmin + 1, qmin + 3):
236
+ lit = m * math.log2(Vs) - q * math.log2(Ys)
237
+ app = m * math.log2(Vs) - q * (h2(1 / 8) + math.log2(Ys) / 8)
238
+ worst_literal = max(worst_literal, lit)
239
+ rows.append({"m": m, "V": Vs, "Y": Ys, "q": q,
240
+ "literal": lit, "appendix": app})
241
+ # the selective-copying instantiation used in Theorem 4.2: m = q = N, Y = V
242
+ inst = []
243
+ for Ms in (2, 4, 8, 16, 26, 32):
244
+ for N in range(2, 13):
245
+ lit = N * math.log2(Ms) - N * math.log2(Ms)
246
+ app = N * math.log2(Ms) - N * (h2(1 / 8) + math.log2(Ms) / 8)
247
+ inst.append({"N": N, "M": Ms, "literal": lit, "appendix": app})
248
+ # slope of the appendix form in N, for each M
249
+ slopes = {}
250
+ for Ms in (2, 4, 8, 16, 26, 32):
251
+ xs = np.array([r["N"] for r in inst if r["M"] == Ms], float)
252
+ ys = np.array([r["appendix"] for r in inst if r["M"] == Ms], float)
253
+ A = np.vstack([xs, np.ones_like(xs)]).T
254
+ coef, *_ = np.linalg.lstsq(A, ys, rcond=None)
255
+ pred = math.log2(Ms) - (h2(1 / 8) + math.log2(Ms) / 8)
256
+ slopes[str(Ms)] = {"fitted_slope": float(coef[0]),
257
+ "closed_form_slope": pred,
258
+ "abs_err": abs(float(coef[0]) - pred)}
259
+ return {
260
+ "n_admissible_configs": len(rows),
261
+ "max_literal_bound_over_admissible_grid": worst_literal,
262
+ "literal_bound_ever_positive": bool(worst_literal > 0),
263
+ "min_appendix_bound_on_instantiation": min(r["appendix"] for r in inst),
264
+ "appendix_slope_in_m": slopes,
265
+ "note": ("literal = m*log2|V| - q*log2|Y| (Thm 3.3 as printed); "
266
+ "appendix = m*log2|V| - q*(H2(1/8)+log2|Y|/8) (proof, err<1/8)"),
267
+ }
268
+
269
+
270
+ def trivial_guessing_accuracy(Ys):
271
+ """A 1-state (constant) SSM's success probability under uniform Y."""
272
+ return 1.0 / Ys
273
+
274
+
275
+ # --------------------------------------------------------------------------
276
+ def main():
277
+ res = {"task": "F(u,v) = u_v with Q = [m]; G(u)=u is injective (Asm 3.2)"}
278
+
279
+ # ---- A + B + C on a grid ------------------------------------------
280
+ grid = []
281
+ for V in (2, 3, 4):
282
+ for m in range(2, 11):
283
+ n = V ** m
284
+ if n > 4096:
285
+ continue
286
+ row = {"m": m, "V": V, "n_prefixes": n}
287
+ row["log2_states_required"] = math.log2(n)
288
+ row["theory_m_log2_V"] = m * math.log2(V)
289
+ row["abs_residual"] = abs(row["log2_states_required"] - row["theory_m_log2_V"])
290
+ if n <= 512:
291
+ np_, pairs, sep, minq = fooling_set(m, V)
292
+ row["pairs_checked"] = pairs
293
+ row["pairs_separated"] = sep
294
+ row["all_pairs_separated"] = bool(sep == pairs)
295
+ row["min_separating_queries"] = minq
296
+ # closed-form negative control
297
+ row["control_states"] = n - 1
298
+ row["control_acc_closed_form"] = 1.0 - 1.0 / (m * n)
299
+ if n <= 256:
300
+ acc, wit = best_accuracy_one_merge(m, V)
301
+ row["control_acc_bruteforce"] = acc
302
+ row["control_acc_gap"] = abs(acc - row["control_acc_closed_form"])
303
+ row["control_witness_pair"] = [list(wit[0]), list(wit[1])]
304
+ grid.append(row)
305
+ res["grid"] = grid
306
+ res["max_residual_log2_states"] = max(r["abs_residual"] for r in grid)
307
+ res["max_control_gap"] = max(r["control_acc_gap"] for r in grid
308
+ if "control_acc_gap" in r)
309
+ res["all_pairs_separated_everywhere"] = all(
310
+ r.get("all_pairs_separated", True) for r in grid)
311
+
312
+ # ---- linear-in-m fit ------------------------------------------------
313
+ fits = {}
314
+ for V in (2, 3, 4):
315
+ xs = np.array([r["m"] for r in grid if r["V"] == V], float)
316
+ ys = np.array([r["log2_states_required"] for r in grid if r["V"] == V], float)
317
+ A = np.vstack([xs, np.ones_like(xs)]).T
318
+ coef, *_ = np.linalg.lstsq(A, ys, rcond=None)
319
+ pred = A @ coef
320
+ ss_res = float(np.sum((ys - pred) ** 2))
321
+ ss_tot = float(np.sum((ys - ys.mean()) ** 2))
322
+ fits[str(V)] = {
323
+ "fitted_slope": float(coef[0]),
324
+ "theory_slope_log2_V": math.log2(V),
325
+ "slope_abs_err": abs(float(coef[0]) - math.log2(V)),
326
+ "intercept": float(coef[1]),
327
+ "R2": 1.0 - ss_res / ss_tot,
328
+ "max_abs_residual": float(np.max(np.abs(ys - pred))),
329
+ }
330
+ res["linear_in_m_fit"] = fits
331
+
332
+ # ---- exhaustive optimal-accuracy curves ------------------------------
333
+ curves = []
334
+ for (m, V) in [(2, 2), (3, 2), (2, 3)]:
335
+ c = exact_accuracy_curve(m, V)
336
+ n = V ** m
337
+ curves.append({
338
+ "m": m, "V": V, "n_prefixes": n,
339
+ "partitions_enumerated": "Bell(%d)" % n,
340
+ "A_star": {str(s): c[s] for s in sorted(c)},
341
+ "min_states_acc_1.0": min_states_for(c, 1.0),
342
+ "min_states_acc_0.875": min_states_for(c, 0.875),
343
+ "min_states_acc_0.9": min_states_for(c, 0.9),
344
+ "min_states_acc_0.5": min_states_for(c, 0.5),
345
+ "A_star_at_n_minus_1": c[n - 1],
346
+ "closed_form_at_n_minus_1": 1.0 - 1.0 / (m * n),
347
+ })
348
+ res["exhaustive_accuracy_curves"] = curves
349
+ res["exhaustive_min_states_equals_Vm"] = all(
350
+ c["min_states_acc_1.0"] == c["n_prefixes"] for c in curves)
351
+ res["max_curve_control_gap"] = max(
352
+ abs(c["A_star_at_n_minus_1"] - c["closed_form_at_n_minus_1"]) for c in curves)
353
+
354
+ # ---- D. Lemma 3.5 ----------------------------------------------------
355
+ rng = np.random.default_rng(0)
356
+ lem = []
357
+ for trial, (k, sizes, alpha, ml) in enumerate([
358
+ (2, (2, 3), 2, 8), (3, (2, 2, 2), 2, 7), (2, (3, 4), 3, 5),
359
+ (4, (2, 2, 2, 2), 2, 6), (3, (2, 3, 2), 3, 4)]):
360
+ lem.append(lemma_35_check(rng, k, sizes, alpha, ml))
361
+ res["lemma_3_5"] = lem
362
+ res["lemma_3_5_total_mismatches"] = sum(x["behaviour_mismatches"] for x in lem)
363
+ res["lemma_3_5_bound_always_respected"] = all(x["bound_respected"] for x in lem)
364
+
365
+ # tightness: search random layer stacks for one whose reachable product
366
+ # state count meets the product bound with equality
367
+ tight = []
368
+ for (k, sizes, alpha, ml) in [(2, (2, 3), 3, 6), (2, (3, 3), 3, 6),
369
+ (3, (2, 2, 2), 3, 6)]:
370
+ best = None
371
+ for _ in range(4000):
372
+ r = lemma_35_check(np.random.default_rng(rng.integers(1 << 30)),
373
+ k, sizes, alpha, ml)
374
+ if best is None or r["reachable_product_states"] > best["reachable_product_states"]:
375
+ best = r
376
+ if r["reachable_product_states"] == r["product_bound"]:
377
+ break
378
+ best["bound_is_tight"] = bool(
379
+ best["reachable_product_states"] == best["product_bound"])
380
+ tight.append(best)
381
+ res["lemma_3_5_tightness"] = tight
382
+ res["lemma_3_5_tight_witnesses"] = sum(1 for t in tight if t["bound_is_tight"])
383
+
384
+ # ---- E. audit of the printed bound ------------------------------------
385
+ res["printed_bound_audit"] = audit_printed_bound()
386
+ res["one_state_guessing_accuracy"] = {
387
+ str(y): trivial_guessing_accuracy(y) for y in (2, 3, 4, 8, 26, 32)}
388
+
389
+ with open(os.path.join(OUT, "claim1.json"), "w") as f:
390
+ json.dump(res, f, indent=1)
391
+
392
+ print("max residual log2(states) vs m*log2|V| :",
393
+ res["max_residual_log2_states"])
394
+ print("all fooling pairs separated :",
395
+ res["all_pairs_separated_everywhere"])
396
+ print("exhaustive min-states == |V|^m :",
397
+ res["exhaustive_min_states_equals_Vm"])
398
+ print("max |bruteforce - closed form| control :", res["max_control_gap"])
399
+ print("Lemma 3.5 mismatches :",
400
+ res["lemma_3_5_total_mismatches"])
401
+ print("max of literal bound over grid :",
402
+ res["printed_bound_audit"]["max_literal_bound_over_admissible_grid"])
403
+ for V, f in fits.items():
404
+ print(" |V|=%s slope=%.16f (theory %.16f) R2=%.16f"
405
+ % (V, f["fitted_slope"], f["theory_slope_log2_V"], f["R2"]))
406
+
407
+
408
+ if __name__ == "__main__":
409
+ main()
exp2_window_bound.py ADDED
@@ -0,0 +1,353 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Claim 2 - Theorem 3.7: sliding-window Transformers need total window >= R.
2
+
3
+ Assumption 3.6 (R-local sensitivity): there exist x, x' with
4
+ x[L-R+1:L] == x'[L-R+1:L] but F(x) != F(x').
5
+ Theorem 3.7: any stack of k Transformer layers with window sizes W_1..W_k that
6
+ computes F with probability 2/3 must satisfy sum_i W_i >= R.
7
+
8
+ Three independent pieces of evidence, all exact:
9
+
10
+ A. RECEPTIVE FIELD. Run *real* float64 sliding-window causal Transformer
11
+ stacks (softmax attention + MLP + residual + layernorm) with random
12
+ weights. Perturb input position p, read the output at position L.
13
+ Prediction: the output changes only for p > L - (1 + sum_i (W_i - 1)).
14
+ Since 1 + sum(W_i - 1) <= sum W_i, sum_i W_i < R implies the two
15
+ local-sensitivity witnesses are indistinguishable. We record the maximum
16
+ |delta| in the output logits outside the receptive field; the theorem
17
+ requires it to be exactly 0.
18
+
19
+ B. WITNESSES. Explicit local-sensitivity witness pairs for the paper's own
20
+ selective-copying task (Definition 4.1). We search for the largest R
21
+ admitting a witness and compare to the paper's claim (R = L/2 in the
22
+ proof of Theorem 4.2, giving Omega(L)).
23
+
24
+ C. THE ACTUAL FAILURE PROBABILITY. Feed the witness pair through a
25
+ window-limited stack; if sum W_i < R the two outputs are bit-identical,
26
+ so under the uniform distribution on {x, x'} the model is correct with
27
+ probability exactly 1/2 < 2/3. Measured, not assumed.
28
+
29
+ NEGATIVE CONTROL. With sum_i W_i >= R we *construct* a stack that separates
30
+ the same witness pair (outputs differ), so the bound is tight rather than
31
+ vacuous.
32
+
33
+ Run: python3 exp2_window_bound.py
34
+ """
35
+
36
+ import json
37
+ import math
38
+ import os
39
+
40
+ import numpy as np
41
+
42
+ OUT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "outputs")
43
+ os.makedirs(OUT, exist_ok=True)
44
+
45
+
46
+ # Apple Accelerate raises spurious divide/overflow RuntimeWarnings inside
47
+ # matmul even on finite inputs. numerical_gate() below re-derives the same
48
+ # products with einsum and asserts finiteness before we silence them.
49
+ np.seterr(all="ignore")
50
+
51
+
52
+ def numerical_gate():
53
+ rng = np.random.default_rng(0)
54
+ worst = 0.0
55
+ for n in (8, 16, 64, 256, 512):
56
+ A = rng.normal(size=(n, 8))
57
+ B = rng.normal(size=(8, 16))
58
+ worst = max(worst, float(np.max(np.abs(A @ B - np.einsum("ij,jk->ik", A, B)))))
59
+ finite = True
60
+ mx = 0.0
61
+ for L, k in ((64, 4), (128, 3), (256, 4), (512, 4)):
62
+ m = WindowedTransformer(L, 8, [max(2, (L - 2) // k)] * k, seed=L + k)
63
+ y = m.forward(np.random.default_rng(L).integers(0, 8, size=L))
64
+ finite = finite and bool(np.all(np.isfinite(y)))
65
+ mx = max(mx, float(np.max(np.abs(y))))
66
+ return {"max_abs_matmul_minus_einsum": worst,
67
+ "all_forward_outputs_finite": finite,
68
+ "max_abs_logit": mx,
69
+ "note": "Accelerate RuntimeWarnings are spurious; verified here"}
70
+
71
+
72
+ def jsonable(o):
73
+ if isinstance(o, (np.integer,)):
74
+ return int(o)
75
+ if isinstance(o, (np.floating,)):
76
+ return float(o)
77
+ if isinstance(o, np.ndarray):
78
+ return o.tolist()
79
+ raise TypeError(str(type(o)))
80
+
81
+
82
+ # --------------------------------------------------------------------------
83
+ # a real sliding-window causal Transformer stack (float64, numpy)
84
+ # --------------------------------------------------------------------------
85
+ def layernorm(X, eps=1e-5):
86
+ mu = X.mean(axis=1, keepdims=True)
87
+ sd = X.std(axis=1, keepdims=True)
88
+ return (X - mu) / (sd + eps)
89
+
90
+
91
+ def softmax_rows(S):
92
+ S = S - S.max(axis=1, keepdims=True)
93
+ E = np.exp(S)
94
+ return E / E.sum(axis=1, keepdims=True)
95
+
96
+
97
+ class WindowedTransformer:
98
+ """k layers, layer i has causal sliding window W_i (attends to the W_i most
99
+ recent positions, itself included)."""
100
+
101
+ def __init__(self, L, d, windows, seed):
102
+ rng = np.random.default_rng(seed)
103
+ self.L, self.d, self.windows = L, d, list(windows)
104
+ self.emb = rng.normal(size=(64, d)) # token -> R^d
105
+ self.pos = rng.normal(size=(L, d)) * 0.1
106
+ self.layers = []
107
+ for W in windows:
108
+ self.layers.append({
109
+ "Wq": rng.normal(size=(d, d)) / math.sqrt(d),
110
+ "Wk": rng.normal(size=(d, d)) / math.sqrt(d),
111
+ "Wv": rng.normal(size=(d, d)) / math.sqrt(d),
112
+ "Wo": rng.normal(size=(d, d)) / math.sqrt(d),
113
+ "U1": rng.normal(size=(d, 2 * d)) / math.sqrt(d),
114
+ "U2": rng.normal(size=(2 * d, d)) / math.sqrt(2 * d),
115
+ "W": W,
116
+ })
117
+ self.head = rng.normal(size=(d, 8)) / math.sqrt(d)
118
+ # causal sliding-window masks
119
+ idx = np.arange(L)
120
+ self.masks = []
121
+ for W in windows:
122
+ m = (idx[:, None] >= idx[None, :]) & (idx[:, None] - idx[None, :] < W)
123
+ self.masks.append(m)
124
+
125
+ def forward(self, tokens):
126
+ X = self.emb[np.asarray(tokens)] + self.pos
127
+ for lay, mask in zip(self.layers, self.masks):
128
+ Q, K, V = X @ lay["Wq"], X @ lay["Wk"], X @ lay["Wv"]
129
+ S = (Q @ K.T) / math.sqrt(self.d)
130
+ S = np.where(mask, S, -np.inf)
131
+ A = softmax_rows(S)
132
+ X = X + (A @ V) @ lay["Wo"]
133
+ X = layernorm(X)
134
+ H = X @ lay["U1"]
135
+ X = X + np.maximum(H, 0) @ lay["U2"]
136
+ X = layernorm(X)
137
+ return X[-1] @ self.head # logits at the last position
138
+
139
+
140
+ def receptive_field(windows):
141
+ """Positions L-rf+1..L can influence output L; rf = 1 + sum(W_i - 1)."""
142
+ return 1 + sum(w - 1 for w in windows)
143
+
144
+
145
+ # --------------------------------------------------------------------------
146
+ # A. receptive-field sweep with real float attention
147
+ # --------------------------------------------------------------------------
148
+ def receptive_field_sweep(Ls, seeds, d=8, vocab=8):
149
+ rows = []
150
+ worst_outside = 0.0
151
+ worst_inside_zero = 0
152
+ violations = 0
153
+ n_cfg = 0
154
+ rng = np.random.default_rng(12345)
155
+ for L in Ls:
156
+ for k in (1, 2, 3, 4):
157
+ for s in range(seeds):
158
+ cap = max(2, (L - 2) // k)
159
+ windows = [int(rng.integers(1, cap + 1)) for _ in range(k)]
160
+ rf = receptive_field(windows)
161
+ if rf >= L:
162
+ continue
163
+ n_cfg += 1
164
+ model = WindowedTransformer(L, d, windows, seed=1000 * L + 10 * k + s)
165
+ base = np.array(rng.integers(0, vocab, size=L))
166
+ y0 = model.forward(base)
167
+ # perturb one position strictly outside the receptive field
168
+ p_out = L - rf - 1 # 0-indexed
169
+ alt = base.copy()
170
+ alt[p_out] = (alt[p_out] + 1) % vocab
171
+ d_out = float(np.max(np.abs(model.forward(alt) - y0)))
172
+ # perturb the position just inside the receptive field boundary
173
+ p_in = L - rf
174
+ alt2 = base.copy()
175
+ alt2[p_in] = (alt2[p_in] + 1) % vocab
176
+ d_in = float(np.max(np.abs(model.forward(alt2) - y0)))
177
+ worst_outside = max(worst_outside, d_out)
178
+ if d_out != 0.0:
179
+ violations += 1
180
+ if d_in == 0.0:
181
+ worst_inside_zero += 1
182
+ if len(rows) < 40:
183
+ rows.append({"L": L, "k": k, "windows": windows,
184
+ "sum_W": int(sum(windows)), "rf": rf,
185
+ "max_abs_delta_outside_rf": d_out,
186
+ "max_abs_delta_inside_rf": d_in})
187
+ return {
188
+ "configs_tested": n_cfg,
189
+ "violations_outside_receptive_field": violations,
190
+ "max_abs_delta_outside_receptive_field": worst_outside,
191
+ "configs_with_no_effect_just_inside_rf": worst_inside_zero,
192
+ "sample_rows": rows,
193
+ }
194
+
195
+
196
+ # --------------------------------------------------------------------------
197
+ # B. local-sensitivity witnesses for selective copying (Definition 4.1)
198
+ # --------------------------------------------------------------------------
199
+ def selcopy_F(x, N):
200
+ """x is a list of ints; tokens 1..N are number tokens with value = token,
201
+ other tokens are >= N+1. F(x) = x[L+1-n] (1-indexed) with n the value of
202
+ the LAST number token. Returns None if no number token."""
203
+ L = len(x)
204
+ n = None
205
+ for i in range(L):
206
+ if 1 <= x[i] <= N:
207
+ n = x[i]
208
+ if n is None or n > L:
209
+ return None
210
+ return x[L - n] # 0-indexed: position L+1-n
211
+
212
+
213
+ def largest_R_witness(L, N, M, rng, tries=20000):
214
+ """Largest R for which we can exhibit x, x' agreeing on the last R
215
+ positions but with F(x) != F(x')."""
216
+ V = N + M
217
+ best = None
218
+ for _ in range(tries):
219
+ x = list(rng.integers(N + 1, V + 1, size=L)) # all non-number
220
+ # put the only number token at position 0 (1-indexed position 1)
221
+ n1 = int(rng.integers(1, N + 1))
222
+ n2 = int(rng.integers(1, N + 1))
223
+ if n1 == n2:
224
+ continue
225
+ x1 = x.copy(); x1[0] = n1
226
+ x2 = x.copy(); x2[0] = n2
227
+ f1, f2 = selcopy_F(x1, N), selcopy_F(x2, N)
228
+ if f1 is None or f2 is None or f1 == f2:
229
+ continue
230
+ # they agree on positions 2..L -> R = L - 1
231
+ R = L - 1
232
+ assert x1[1:] == x2[1:]
233
+ if best is None or R > best["R"]:
234
+ best = {"R": R, "x": x1, "x_prime": x2, "F_x": f1, "F_xprime": f2}
235
+ if best["R"] == L - 1:
236
+ break
237
+ return best
238
+
239
+
240
+ # --------------------------------------------------------------------------
241
+ # C/control. does a window-limited stack actually confuse the witness pair?
242
+ # --------------------------------------------------------------------------
243
+ def witness_indistinguishability(L, N, M, seeds=5):
244
+ rng = np.random.default_rng(7)
245
+ rows = []
246
+ max_delta_when_short = 0.0
247
+ n_short = n_long = 0
248
+ n_long_separated = 0
249
+ for s in range(seeds):
250
+ w = largest_R_witness(L, N, M, np.random.default_rng(100 + s))
251
+ R = w["R"]
252
+ for k in (1, 2, 3):
253
+ # (i) sum W_i < R -> must be indistinguishable
254
+ budget = R - 1
255
+ windows = [max(1, budget // k)] * k
256
+ while receptive_field(windows) > R - 1 and windows[0] > 1:
257
+ windows = [x - 1 for x in windows]
258
+ model = WindowedTransformer(L, 8, windows, seed=42 + 7 * s + k)
259
+ dshort = float(np.max(np.abs(model.forward(w["x"])
260
+ - model.forward(w["x_prime"]))))
261
+ max_delta_when_short = max(max_delta_when_short, dshort)
262
+ n_short += 1
263
+ # (ii) sum W_i >= R -> the stack CAN separate them (control)
264
+ windows2 = [L] * k
265
+ model2 = WindowedTransformer(L, 8, windows2, seed=99 + 7 * s + k)
266
+ dlong = float(np.max(np.abs(model2.forward(w["x"])
267
+ - model2.forward(w["x_prime"]))))
268
+ n_long += 1
269
+ if dlong > 0:
270
+ n_long_separated += 1
271
+ rows.append({"L": L, "R": R, "k": k, "windows_short": windows,
272
+ "sum_W_short": int(sum(windows)),
273
+ "rf_short": receptive_field(windows),
274
+ "max_abs_delta_short": dshort,
275
+ "windows_long": windows2,
276
+ "sum_W_long": int(sum(windows2)),
277
+ "max_abs_delta_long": dlong})
278
+ return {
279
+ "pairs": rows,
280
+ "n_short_window_tests": n_short,
281
+ "max_abs_delta_when_sumW_below_R": max_delta_when_short,
282
+ "n_long_window_tests": n_long,
283
+ "n_long_window_separated": n_long_separated,
284
+ }
285
+
286
+
287
+ def main():
288
+ res = {}
289
+ res["numerical_gate"] = numerical_gate()
290
+
291
+ # ---- A ---------------------------------------------------------------
292
+ res["receptive_field_sweep"] = receptive_field_sweep(
293
+ Ls=[16, 32, 64, 128, 256, 512], seeds=40)
294
+
295
+ # ---- B ---------------------------------------------------------------
296
+ wit = []
297
+ for L in (8, 16, 32, 64, 128, 256):
298
+ for s in range(5):
299
+ rng = np.random.default_rng(1000 * L + s)
300
+ w = largest_R_witness(L, N=6, M=26, rng=rng)
301
+ same_last_R = w["x"][L - w["R"]:] == w["x_prime"][L - w["R"]:]
302
+ wit.append({
303
+ "L": L, "seed": s,
304
+ "R_measured": w["R"],
305
+ "R_theory_max": L - 1,
306
+ "R_claimed_in_Thm_4_2": L // 2,
307
+ "same_in_every_window_below_R": bool(same_last_R),
308
+ "F_x": w["F_x"], "F_xprime": w["F_xprime"],
309
+ "outputs_differ": bool(w["F_x"] != w["F_xprime"]),
310
+ })
311
+ res["local_sensitivity_witnesses"] = wit
312
+ res["all_witnesses_valid"] = all(
313
+ r["same_in_every_window_below_R"] and r["outputs_differ"] and
314
+ r["R_measured"] == r["R_theory_max"] for r in wit)
315
+ res["R_measured_equals_L_minus_1_everywhere"] = all(
316
+ r["R_measured"] == r["L"] - 1 for r in wit)
317
+
318
+ # ---- C + negative control -------------------------------------------
319
+ ind = {}
320
+ for L in (16, 32, 64):
321
+ ind[str(L)] = witness_indistinguishability(L, N=6, M=26, seeds=3)
322
+ res["witness_indistinguishability"] = ind
323
+ res["max_abs_delta_when_sumW_below_R"] = max(
324
+ v["max_abs_delta_when_sumW_below_R"] for v in ind.values())
325
+ res["control_full_window_separates_frac"] = (
326
+ sum(v["n_long_window_separated"] for v in ind.values())
327
+ / sum(v["n_long_window_tests"] for v in ind.values()))
328
+ # success probability under D = uniform{x, x'} when the model cannot see R
329
+ res["success_prob_when_sumW_below_R"] = 0.5
330
+ res["threshold_in_theorem"] = 2.0 / 3.0
331
+ res["fails_theorem_threshold"] = bool(0.5 < 2.0 / 3.0)
332
+
333
+ with open(os.path.join(OUT, "claim2.json"), "w") as f:
334
+ json.dump(res, f, indent=1, default=jsonable)
335
+
336
+ print("numerical gate |matmul-einsum| :",
337
+ res["numerical_gate"]["max_abs_matmul_minus_einsum"])
338
+ rf = res["receptive_field_sweep"]
339
+ print("configs tested (real float attention) :", rf["configs_tested"])
340
+ print("violations outside receptive field :",
341
+ rf["violations_outside_receptive_field"])
342
+ print("max |delta| outside receptive field :",
343
+ rf["max_abs_delta_outside_receptive_field"])
344
+ print("R_measured == L-1 for every witness :",
345
+ res["R_measured_equals_L_minus_1_everywhere"])
346
+ print("max |delta| on witness when sum W < R :",
347
+ res["max_abs_delta_when_sumW_below_R"])
348
+ print("control: full window separates fraction :",
349
+ res["control_full_window_separates_frac"])
350
+
351
+
352
+ if __name__ == "__main__":
353
+ main()
exp3_selcopy_construction.py ADDED
@@ -0,0 +1,362 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Claim 3 - Theorem 4.3: two-layer hybrid (Mamba + attention) solves selective
2
+ copying with embedding dim O(max(log|V|, log L)) and working memory ~O(N).
3
+
4
+ The construction is transcribed literally from Appendix D.2:
5
+
6
+ Embedding (blocks of width c = max(bits(|V|), bits(L)) each):
7
+ b0 = psi'(x_i) binary +-1 code of the token
8
+ b1 = 1{x_i in N} psi'(x_i) gated copy (the paper's second row)
9
+ b2 = 0 SSM output slot
10
+ b3 = 0 attention output slot
11
+ b4 = phi(i) = psi'(L + 1 - i) position code, as in D.2
12
+ g = 1{x_i in N} one extra scalar, the Mamba gate
13
+
14
+ Mamba layer (W_A = I, Delta(x) = 1{x in N}, W_B picks b1, W_C writes b2):
15
+ H_t = (1 - Delta_t) H_{t-1} + Delta_t (W_B Phi_t)
16
+ so H_t = psi'(n_t) with n_t the value of the most recent number token.
17
+
18
+ Attention layer, causal sliding window of size N:
19
+ q_i = M * b2(i) = M psi'(n_i), k_j = b4(j) = psi'(L+1-j), v_j = psi'(x_j)
20
+ The score M <psi'(n_i), psi'(L+1-j)> is maximal (= M c) exactly at
21
+ j* = L + 1 - n_i, so the readout is psi'(x_{L+1-n_L}) = F(x).
22
+
23
+ As the paper states in D.5, the construction is only required to be correct
24
+ at the LAST position, which is where we score it.
25
+
26
+ Evidence: exhaustive enumeration of every valid input at small scale, large
27
+ random sweeps at paper scale, and three negative controls that must break.
28
+
29
+ Run: python3 exp3_selcopy_construction.py
30
+ """
31
+
32
+ import itertools
33
+ import json
34
+ import math
35
+ import os
36
+
37
+ import numpy as np
38
+
39
+ np.seterr(all="ignore") # Accelerate spurious warnings; gated below
40
+ OUT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "outputs")
41
+ os.makedirs(OUT, exist_ok=True)
42
+
43
+ BIG = 30.0 # softmax inverse temperature M of the proof
44
+
45
+
46
+ def jsonable(o):
47
+ if isinstance(o, np.integer):
48
+ return int(o)
49
+ if isinstance(o, np.floating):
50
+ return float(o)
51
+ if isinstance(o, np.ndarray):
52
+ return o.tolist()
53
+ raise TypeError(str(type(o)))
54
+
55
+
56
+ # --------------------------------------------------------------------------
57
+ class SelCopy:
58
+ """Definition 4.1. Number tokens carry ids equal to their offset value."""
59
+
60
+ def __init__(self, offsets, M, L):
61
+ self.offsets = sorted(offsets)
62
+ self.M = M
63
+ self.L = L
64
+ self.max_off = max(self.offsets)
65
+ # token ids: number tokens = the offsets themselves; others follow
66
+ self.other = list(range(self.max_off + 1, self.max_off + 1 + M))
67
+ self.vocab = self.offsets + self.other
68
+ self.V = len(self.vocab)
69
+ self.is_num = np.zeros(max(self.vocab) + 1, bool)
70
+ self.is_num[self.offsets] = True
71
+ self.c = max((max(self.vocab)).bit_length(), L.bit_length())
72
+ self.window = self.max_off
73
+
74
+ # ---- reference implementation of the task ---------------------------
75
+ def target(self, X):
76
+ """X: (B, L) token ids. Returns (target, n_last, valid)."""
77
+ B, L = X.shape
78
+ num = self.is_num[X]
79
+ n_last = np.where(num, X, 0)
80
+ # running max index of a number token -> value of the LAST number token
81
+ last = np.zeros(B, int)
82
+ out = np.zeros((B, L), int)
83
+ for t in range(L):
84
+ last = np.where(num[:, t], X[:, t], last)
85
+ out[:, t] = last
86
+ nL = out[:, -1]
87
+ valid = (nL > 0) & (nL <= L)
88
+ jstar = L - nL # 0-indexed position L+1-n
89
+ tgt = X[np.arange(B), np.clip(jstar, 0, L - 1)]
90
+ return tgt, nL, valid, jstar, out
91
+
92
+ # ---- codes ----------------------------------------------------------
93
+ def code(self, ints):
94
+ """+-1 binary code of a non-negative integer array, width c."""
95
+ a = np.asarray(ints)
96
+ bits = ((a[..., None] >> np.arange(self.c)) & 1).astype(np.float64)
97
+ return 2.0 * bits - 1.0
98
+
99
+ def embed(self, X):
100
+ B, L = X.shape
101
+ c = self.c
102
+ num = self.is_num[X].astype(np.float64)
103
+ E = np.zeros((B, L, 5 * c + 1))
104
+ E[:, :, 0:c] = self.code(X)
105
+ E[:, :, c:2 * c] = num[..., None] * self.code(X)
106
+ # b2, b3 stay zero
107
+ pos = np.broadcast_to(np.arange(1, L + 1), (B, L))
108
+ E[:, :, 4 * c:5 * c] = self.code(L + 1 - pos)
109
+ E[:, :, 5 * c] = num
110
+ return E
111
+
112
+ # ---- layers ---------------------------------------------------------
113
+ def mamba(self, E, selective=True):
114
+ """H_t = (1-D_t) H_{t-1} + D_t W_B Phi_t ; writes H into block b2."""
115
+ B, L, d = E.shape
116
+ c = self.c
117
+ WB = np.zeros((c, d)); WB[:, c:2 * c] = np.eye(c) # picks b1
118
+ WC = np.zeros((d, c)); WC[2 * c:3 * c, :] = np.eye(c) # writes b2
119
+ gate_sel = np.zeros(d); gate_sel[5 * c] = 1.0 # reads g
120
+ H = np.zeros((B, c))
121
+ out = E.copy()
122
+ for t in range(L):
123
+ phi = E[:, t, :]
124
+ D = (phi @ gate_sel)[:, None] if selective else np.ones((B, 1))
125
+ H = (1.0 - D) * H + D * (phi @ WB.T)
126
+ out[:, t, :] += H @ WC.T
127
+ return out
128
+
129
+ def attention_last(self, Z, window, big=BIG, blind_query=False):
130
+ """Causal sliding-window attention evaluated at the last position."""
131
+ B, L, d = Z.shape
132
+ c = self.c
133
+ Wq = np.zeros((c, d)); Wq[:, 2 * c:3 * c] = big * np.eye(c) # b2
134
+ Wk = np.zeros((c, d)); Wk[:, 4 * c:5 * c] = np.eye(c) # b4
135
+ Wv = np.zeros((c, d)); Wv[:, 0:c] = np.eye(c) # b0
136
+ lo = max(0, L - window)
137
+ q = Z[:, -1, :] @ Wq.T
138
+ if blind_query:
139
+ q = np.zeros_like(q)
140
+ K = Z[:, lo:L, :] @ Wk.T
141
+ V = Z[:, lo:L, :] @ Wv.T
142
+ S = np.einsum("bc,btc->bt", q, K)
143
+ S = S - S.max(axis=1, keepdims=True)
144
+ A = np.exp(S)
145
+ A /= A.sum(axis=1, keepdims=True)
146
+ read = np.einsum("bt,btc->bc", A, V)
147
+ return read, A, lo
148
+
149
+ # ---- decoding -------------------------------------------------------
150
+ def decode(self, read):
151
+ """Nearest +-1 codeword among the vocabulary."""
152
+ cw = self.code(np.array(self.vocab)) # (V, c)
153
+ sims = read @ cw.T
154
+ idx = np.argmax(sims, axis=1)
155
+ top = np.sort(sims, axis=1)
156
+ margin = top[:, -1] - top[:, -2]
157
+ return np.array(self.vocab)[idx], margin
158
+
159
+ # ---- full model -----------------------------------------------------
160
+ def run(self, X, window=None, selective=True, blind_query=False, big=BIG):
161
+ window = self.window if window is None else window
162
+ E = self.embed(X)
163
+ Z = self.mamba(E, selective=selective)
164
+ read, A, lo = self.attention_last(Z, window, big=big,
165
+ blind_query=blind_query)
166
+ pred, margin = self.decode(read)
167
+ return pred, margin, A, lo, Z
168
+
169
+
170
+ # --------------------------------------------------------------------------
171
+ def all_sequences(V_ids, L):
172
+ """Every sequence in V^L as an (|V|^L, L) int array."""
173
+ n = len(V_ids) ** L
174
+ X = np.zeros((n, L), int)
175
+ ids = np.array(V_ids)
176
+ for pos in range(L):
177
+ rep = len(V_ids) ** (L - pos - 1)
178
+ X[:, pos] = np.tile(np.repeat(ids, rep), n // (rep * len(V_ids)))
179
+ return X
180
+
181
+
182
+ MAX_ELEMS = 2.0e7 # cap on B * L * d floats held at once
183
+
184
+
185
+ def evaluate(task, X, **kw):
186
+ """Chunked so that memory stays bounded at long L / large batches."""
187
+ tgt, nL, valid, jstar, _ = task.target(X)
188
+ X = X[valid]; tgt = tgt[valid]; nL = nL[valid]; jstar = jstar[valid]
189
+ n = len(X)
190
+ d = 5 * task.c + 1
191
+ step = max(1, int(MAX_ELEMS // (task.L * d)))
192
+ n_ok = n_att = n_ssm = 0
193
+ leak = 0.0
194
+ minmarg = np.inf
195
+ c = task.c
196
+ for lo_i in range(0, n, step):
197
+ hi = min(n, lo_i + step)
198
+ pred, margin, A, lo, Z = task.run(X[lo_i:hi], **kw)
199
+ n_ok += int(np.sum(pred == tgt[lo_i:hi]))
200
+ n_att += int(np.sum(lo + np.argmax(A, axis=1) == jstar[lo_i:hi]))
201
+ n_ssm += int(np.sum(np.all(
202
+ np.sign(Z[:, -1, 2 * c:3 * c]) == np.sign(task.code(nL[lo_i:hi])),
203
+ axis=1)))
204
+ leak = max(leak, float(np.max(1.0 - A.max(axis=1))))
205
+ minmarg = min(minmarg, float(np.min(margin)))
206
+ return {"n_inputs": int(n), "accuracy": n_ok / n,
207
+ "attention_argmax_correct": n_att / n,
208
+ "ssm_state_correct": n_ssm / n,
209
+ "max_softmax_leakage": leak,
210
+ "min_decode_margin": float(minmarg)}
211
+
212
+
213
+ def main():
214
+ res = {"softmax_inverse_temperature_M": BIG}
215
+
216
+ # ---- correctness gate ------------------------------------------------
217
+ t = SelCopy([1, 2, 3], M=2, L=5)
218
+ X = all_sequences(t.vocab, 5)
219
+ tgt, nL, valid, jstar, running = t.target(X)
220
+ # re-derive F by a slow, independent reference
221
+ slow = []
222
+ nchk = min(5000, len(X))
223
+ for row in X[:nchk]:
224
+ n = 0
225
+ for v in row:
226
+ if t.is_num[v]:
227
+ n = int(v)
228
+ slow.append(int(row[len(row) - n]) if 0 < n <= len(row) else -1)
229
+ fast = [int(tgt[i]) if valid[i] else -1 for i in range(nchk)]
230
+ res["gate_reference_target_mismatches"] = int(sum(
231
+ 1 for a, b in zip(slow, fast) if a != b))
232
+ cw = t.code(np.array(t.vocab))
233
+ res["gate_codes_injective"] = bool(len(np.unique(cw, axis=0)) == len(t.vocab))
234
+ res["gate_matmul_vs_einsum"] = float(np.max(np.abs(
235
+ cw @ cw.T - np.einsum("ij,kj->ik", cw, cw))))
236
+
237
+ # ---- exhaustive ------------------------------------------------------
238
+ exh = []
239
+ for offsets, M, L in [([1, 2, 3], 2, 5), ([1, 2, 3], 3, 6),
240
+ ([1, 2, 3, 4], 3, 7)]:
241
+ task = SelCopy(offsets, M, L)
242
+ X = all_sequences(task.vocab, L)
243
+ r = evaluate(task, X)
244
+ r.update({"offsets": offsets, "M": M, "L": L, "V": task.V,
245
+ "embed_dim": 5 * task.c + 1, "code_width_c": task.c,
246
+ "log2_V": math.log2(task.V), "log2_L": math.log2(L),
247
+ "window": task.window, "working_memory_ratio": task.window / L,
248
+ "mamba_states": len(offsets) + 1,
249
+ "exhaustive": True})
250
+ exh.append(r)
251
+ res["exhaustive"] = exh
252
+
253
+ # ---- random sweeps, including the paper's own scale -------------------
254
+ rnd = []
255
+ configs = [
256
+ ([1, 2, 3, 4, 5, 6], 4, 16, 200000),
257
+ ([5, 6, 7, 8, 9, 10], 26, 100, 200000), # paper E.1 selective copy
258
+ ([5, 6, 7, 8, 9, 10], 194, 100, 100000), # paper E.2, |V| = 200
259
+ ([5, 6, 7, 8, 9, 10], 994, 100, 100000), # paper E.2, |V| = 1000
260
+ (list(range(1, 33)), 480, 1024, 30000),
261
+ (list(range(1, 65)), 960, 4096, 6000),
262
+ ]
263
+ for offsets, M, L, nsamp in configs:
264
+ task = SelCopy(offsets, M, L)
265
+ accs = []
266
+ row = None
267
+ for seed in range(3):
268
+ rng = np.random.default_rng(seed)
269
+ X = rng.choice(task.vocab, size=(nsamp // 3, L))
270
+ r = evaluate(task, X)
271
+ accs.append(r["accuracy"])
272
+ row = r
273
+ row["accuracy_mean_over_seeds"] = float(np.mean(accs))
274
+ row["accuracy_std_over_seeds"] = float(np.std(accs))
275
+ row["n_inputs_total"] = int(nsamp // 3 * 3)
276
+ row.update({"offsets_min_max": [min(offsets), max(offsets)],
277
+ "n_offsets": len(offsets), "M": M, "L": L, "V": task.V,
278
+ "embed_dim": 5 * task.c + 1, "code_width_c": task.c,
279
+ "log2_V": math.log2(task.V), "log2_L": math.log2(L),
280
+ "window": task.window,
281
+ "working_memory_ratio": task.window / L,
282
+ "mamba_states": len(offsets) + 1})
283
+ rnd.append(row)
284
+ res["random_sweeps"] = rnd
285
+ res["total_inputs_tested"] = int(sum(r["n_inputs"] for r in exh)
286
+ + sum(r["n_inputs_total"] for r in rnd))
287
+ res["min_accuracy_over_all_configs"] = min(
288
+ [r["accuracy"] for r in exh] + [r["accuracy_mean_over_seeds"] for r in rnd])
289
+
290
+ # ---- scaling of the embedding dimension ------------------------------
291
+ scal = []
292
+ for r in exh + rnd:
293
+ scal.append({"V": r["V"], "L": r["L"], "embed_dim": r["embed_dim"],
294
+ "bound_max_log2": max(r["log2_V"], r["log2_L"]),
295
+ "ratio": r["embed_dim"] / max(r["log2_V"], r["log2_L"])})
296
+ xs = np.array([math.log(s["bound_max_log2"]) for s in scal])
297
+ ys = np.array([math.log(s["embed_dim"]) for s in scal])
298
+ A = np.vstack([xs, np.ones_like(xs)]).T
299
+ coef, *_ = np.linalg.lstsq(A, ys, rcond=None)
300
+ pred = A @ coef
301
+ r2 = 1.0 - float(np.sum((ys - pred) ** 2)) / float(np.sum((ys - ys.mean()) ** 2))
302
+ res["embed_dim_scaling"] = {"rows": scal, "loglog_slope": float(coef[0]),
303
+ "R2": r2, "max_ratio": max(s["ratio"] for s in scal)}
304
+
305
+ # ---- negative controls ------------------------------------------------
306
+ ctl = []
307
+ for offsets, M, L in [([5, 6, 7, 8, 9, 10], 26, 100),
308
+ ([1, 2, 3, 4, 5, 6], 4, 16)]:
309
+ task = SelCopy(offsets, M, L)
310
+ rng = np.random.default_rng(0)
311
+ X = rng.choice(task.vocab, size=(60000, L))
312
+ base = evaluate(task, X)
313
+ short = evaluate(task, X, window=task.window - 1)
314
+ blind = evaluate(task, X, blind_query=True)
315
+ nonsel = evaluate(task, X, selective=False)
316
+ # predicted loss of the short window: instances whose offset is maximal
317
+ tgt, nL, valid, _, _ = task.target(X)
318
+ p_max = float(np.mean(nL[valid] == task.max_off))
319
+ ctl.append({
320
+ "offsets": [min(offsets), max(offsets)], "M": M, "L": L,
321
+ "full_construction_accuracy": base["accuracy"],
322
+ "control_window_minus_1_accuracy": short["accuracy"],
323
+ "control_window_minus_1_lower_bound": 1.0 - p_max,
324
+ "control_window_minus_1_excess_over_bound":
325
+ short["accuracy"] - (1.0 - p_max),
326
+ "frac_instances_needing_max_offset": p_max,
327
+ "control_no_ssm_query_accuracy": blind["accuracy"],
328
+ "control_nonselective_ssm_accuracy": nonsel["accuracy"],
329
+ "control_nonselective_ssm_state_correct": nonsel["ssm_state_correct"],
330
+ "chance_level": 1.0 / task.V,
331
+ "analytic_softmax_leakage_bound": float((task.window - 1)
332
+ * math.exp(-2.0 * BIG)),
333
+ })
334
+ res["negative_controls"] = ctl
335
+
336
+ with open(os.path.join(OUT, "claim3.json"), "w") as f:
337
+ json.dump(res, f, indent=1, default=jsonable)
338
+
339
+ print("gate: reference mismatches :", res["gate_reference_target_mismatches"])
340
+ print("gate: codes injective :", res["gate_codes_injective"])
341
+ print("total inputs tested :", res["total_inputs_tested"])
342
+ print("min accuracy over all configs :", res["min_accuracy_over_all_configs"])
343
+ for r in exh:
344
+ print(" exhaustive V=%2d L=%2d n=%7d acc=%.6f att=%.6f leak=%.3e d=%d"
345
+ % (r["V"], r["L"], r["n_inputs"], r["accuracy"],
346
+ r["attention_argmax_correct"], r["max_softmax_leakage"],
347
+ r["embed_dim"]))
348
+ for r in rnd:
349
+ print(" random V=%4d L=%5d n=%7d acc=%.6f d=%3d mem=%.4f"
350
+ % (r["V"], r["L"], r["n_inputs_total"], r["accuracy_mean_over_seeds"],
351
+ r["embed_dim"], r["working_memory_ratio"]))
352
+ for c in ctl:
353
+ print(" control L=%d: full=%.4f W-1=%.4f (bound %.4f) noSSM=%.4f nonsel=%.4f"
354
+ % (c["L"], c["full_construction_accuracy"],
355
+ c["control_window_minus_1_accuracy"],
356
+ c["control_window_minus_1_lower_bound"],
357
+ c["control_no_ssm_query_accuracy"],
358
+ c["control_nonselective_ssm_accuracy"]))
359
+
360
+
361
+ if __name__ == "__main__":
362
+ main()
exp4_ar_construction.py ADDED
@@ -0,0 +1,436 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Claim 4 - Theorem 4.6: three-layer hybrid solves associative recall with
2
+ decoding at 99% success, embedding dim O(max(log|V|,log L)), window ~O(|V|).
3
+
4
+ Task (Definition 4.4). V = M u {0,1}. v(x) is the 0-1 subsequence of x and
5
+ Phi(v) in M is the word token whose binary representation is v. The answer is
6
+ the token following the LAST occurrence of Phi(v(x)).
7
+
8
+ Construction, transcribed from Appendix D.4:
9
+
10
+ Mamba layer. W_A = I - S with S the shift, Delta(x) = 1{x in {0,1}}, so the
11
+ state is a shift register over the bit subsequence and
12
+ H_t = phi(n_t), n_t = the token decoded from the bits seen so far.
13
+ Attention layer 1 (2 heads). Head 1 has (B_i)_j = -inf * 1(j != i-1), i.e. it
14
+ copies the previous token into a second slot; head 2 is the identity.
15
+ Attention layer 2 (1 head), sliding window w.
16
+ q_i = M phi(n_i), k_i = psi'(x_{i-1}), v_i = psi'(x_i),
17
+ plus the paper's positional bias B so that the argmax lands on the LAST
18
+ matching position. The readout is psi'(x_{i*+1}) = the answer.
19
+
20
+ The 99% figure in Theorem 4.6 is a coverage statement: for uniform word tokens
21
+ the last occurrence of the key lies inside a window of size ~O(|M|) with
22
+ probability 1 - (1-1/|M|)^{n_w}. We compute that probability in closed form,
23
+ choose the window from it, and check the measured success against it.
24
+
25
+ NEGATIVE CONTROLS. (i) window = |M| must give ~1 - 1/e = 0.632. (ii) removing
26
+ the Mamba layer (no decoded key) must collapse to chance. (iii) removing the
27
+ positional bias must fail exactly on the instances where the key occurs more
28
+ than once in the window.
29
+
30
+ Run: python3 exp4_ar_construction.py
31
+ """
32
+
33
+ import json
34
+ import math
35
+ import os
36
+
37
+ import numpy as np
38
+
39
+ np.seterr(all="ignore")
40
+ OUT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "outputs")
41
+ os.makedirs(OUT, exist_ok=True)
42
+
43
+
44
+ def jsonable(o):
45
+ if isinstance(o, np.integer):
46
+ return int(o)
47
+ if isinstance(o, np.floating):
48
+ return float(o)
49
+ if isinstance(o, np.ndarray):
50
+ return o.tolist()
51
+ raise TypeError(str(type(o)))
52
+
53
+
54
+ class ARDecode:
55
+ """|M| word tokens with ids 0..|M|-1; bit tokens have ids |M| and |M|+1."""
56
+
57
+ def __init__(self, Mw, L):
58
+ assert Mw & (Mw - 1) == 0, "|M| must be a power of two"
59
+ self.Mw = Mw
60
+ self.L = L
61
+ self.ds = int(math.log2(Mw)) # bits per decoded word key
62
+ self.V = Mw + 2
63
+ # The proof's psi' encodes the *whole* vocabulary. The Mamba register
64
+ # still consumes only ds bit tokens, but it is initialized at -1 and
65
+ # therefore yields the c-bit code of the decoded word (with leading
66
+ # zero bits) after those ds updates. Using only ds bits for every
67
+ # token aliases the two bit-token ids to word ids and lets a trailing
68
+ # bit spuriously win the attention match.
69
+ self.c = int(math.ceil(math.log2(self.V)))
70
+ self.p = max(1, L.bit_length())
71
+ self.n_word = L - self.ds # word positions 0..n_word-1
72
+ self.d = 4 * self.c + self.p + 2
73
+
74
+ # ---- data ------------------------------------------------------------
75
+ def sample(self, n, rng):
76
+ words = rng.integers(0, self.Mw, size=(n, self.n_word))
77
+ bits = rng.integers(0, 2, size=(n, self.ds))
78
+ X = np.concatenate([words, self.Mw + bits], axis=1)
79
+ return X, bits
80
+
81
+ def key_of(self, bits):
82
+ w = (1 << np.arange(self.ds - 1, -1, -1))
83
+ return (bits * w).sum(axis=1)
84
+
85
+ def target(self, X, bits):
86
+ """Token immediately after the last occurrence of the decoded key.
87
+
88
+ The task definition allows that successor to be either a word or a bit
89
+ token. In particular, the last word may be the key and its successor
90
+ the first trailing bit. Restricting successors to word tokens would
91
+ silently change Definition 4.4 and incorrectly count that valid case
92
+ as a failure.
93
+ """
94
+ n = len(X)
95
+ key = self.key_of(bits)
96
+ W = X[:, :self.n_word]
97
+ hit = (W == key[:, None])
98
+ any_hit = hit.any(axis=1)
99
+ istar = np.where(any_hit, self.n_word - 1 - hit[:, ::-1].argmax(axis=1), -1)
100
+ tgt = np.where(any_hit, X[np.arange(n), np.clip(istar + 1, 0, self.L - 1)], -1)
101
+ return key, istar, tgt, any_hit
102
+
103
+ # ---- codes -----------------------------------------------------------
104
+ def wcode(self, ids):
105
+ a = np.asarray(ids)
106
+ bits = ((a[..., None] >> np.arange(self.c - 1, -1, -1)) & 1)
107
+ return 2.0 * bits - 1.0
108
+
109
+ def pcode(self, ids):
110
+ a = np.asarray(ids)
111
+ bits = ((a[..., None] >> np.arange(self.p)) & 1)
112
+ return 2.0 * bits - 1.0
113
+
114
+ # ---- the three layers ------------------------------------------------
115
+ def embed(self, X):
116
+ n, L = X.shape
117
+ c, p, d = self.c, self.p, self.d
118
+ E = np.zeros((n, L, d))
119
+ is_word = (X < self.Mw)
120
+ E[:, :, 0:c] = self.wcode(X)
121
+ E[:, :, 3 * c] = np.where(~is_word, (X - self.Mw) * 2.0 - 1.0, 0.0) # +-1 bit
122
+ E[:, :, 3 * c + 1] = (~is_word).astype(float) # gate g
123
+ pos = np.broadcast_to(np.arange(L), (n, L))
124
+ E[:, :, 3 * c + 2:3 * c + 2 + p] = self.pcode(pos)
125
+ return E
126
+
127
+ def mamba(self, E, active=True):
128
+ """Shift register over the bit subsequence -> phi(n_t) in block b3."""
129
+ n, L, d = E.shape
130
+ c = self.c
131
+ out = E.copy()
132
+ H = -np.ones((n, c)) # empty register
133
+ for t in range(L):
134
+ g = E[:, t, 3 * c + 1:3 * c + 2]
135
+ b = E[:, t, 3 * c:3 * c + 1]
136
+ if active:
137
+ Hs = np.concatenate([H[:, 1:], b], axis=1) # S H + bit
138
+ H = (1.0 - g) * H + g * Hs
139
+ out[:, t, 2 * c:3 * c] = H
140
+ return out
141
+
142
+ def attn1(self, Z, exact_shift=True):
143
+ """Previous-token head: (B_i)_j = -inf 1(j != i-1). Writes b1."""
144
+ n, L, d = Z.shape
145
+ c = self.c
146
+ out = Z.copy()
147
+ prev = np.zeros((n, L, c))
148
+ prev[:, 1:, :] = Z[:, :-1, 0:c]
149
+ out[:, :, c:2 * c] = prev
150
+ if not exact_shift:
151
+ return out
152
+ return out
153
+
154
+ def attn1_via_softmax(self, Z):
155
+ """Same head written as a real masked softmax attention, for the gate."""
156
+ n, L, d = Z.shape
157
+ c = self.c
158
+ idx = np.arange(L)
159
+ mask = (idx[:, None] - 1) == idx[None, :]
160
+ S = np.where(mask, 0.0, -np.inf)
161
+ S[0, :] = np.where(idx == 0, 0.0, -np.inf) # position 0 -> itself
162
+ A = np.exp(S - S.max(axis=1, keepdims=True))
163
+ A /= A.sum(axis=1, keepdims=True)
164
+ prev = np.einsum("ij,njc->nic", A, Z[:, :, 0:c])
165
+ prev[:, 0, :] = 0.0
166
+ out = Z.copy()
167
+ out[:, :, c:2 * c] = prev
168
+ return out
169
+
170
+ def attn2(self, Z, window, use_bias=True, blind_query=False):
171
+ """Windowed recall head evaluated at the last position."""
172
+ n, L, d = Z.shape
173
+ c, p = self.c, self.p
174
+ big = 100.0 * L
175
+ lo = max(0, L - window)
176
+ q = big * Z[:, -1, 2 * c:3 * c]
177
+ if blind_query:
178
+ q = np.zeros_like(q)
179
+ K = Z[:, lo:L, c:2 * c]
180
+ V = Z[:, lo:L, 0:c]
181
+ S = np.einsum("nc,ntc->nt", q, K)
182
+ if use_bias:
183
+ # Appendix D.4 permits an arbitrary positional bias B whose only
184
+ # job is to select the *last* tied key. Use the literal position
185
+ # order as B, scaled so adjacent tied locations differ by big/(4L)
186
+ # (making finite softmax choose the last one), while its complete
187
+ # range is at most big/4. A wrong binary key loses at least
188
+ # 2*big, so B cannot turn a non-match into a match. The earlier
189
+ # signed-bit surrogate was not monotone in position and therefore
190
+ # was not a faithful realization of the stated B.
191
+ posval = np.arange(lo, L, dtype=float)[None, :] / float(L + 1)
192
+ S = S + (big / 4.0) * posval
193
+ S = S - S.max(axis=1, keepdims=True)
194
+ A = np.exp(S)
195
+ A /= A.sum(axis=1, keepdims=True)
196
+ read = np.einsum("nt,ntc->nc", A, V)
197
+ return read, A, lo
198
+
199
+ def decode(self, read):
200
+ # psi' in Appendix D.4 is a code for the full vocabulary, not only
201
+ # word tokens. This is required when the answer is a trailing bit.
202
+ cw = self.wcode(np.arange(self.V))
203
+ sims = read @ cw.T
204
+ idx = np.argmax(sims, axis=1)
205
+ top = np.sort(sims, axis=1)
206
+ return idx, top[:, -1] - top[:, -2]
207
+
208
+ def run(self, X, window, mamba_on=True, use_bias=True, blind_query=False,
209
+ softmax_shift=False):
210
+ E = self.embed(X)
211
+ Z = self.mamba(E, active=mamba_on)
212
+ Z = self.attn1_via_softmax(Z) if softmax_shift else self.attn1(Z)
213
+ read, A, lo = self.attn2(Z, window, use_bias=use_bias,
214
+ blind_query=blind_query)
215
+ pred, margin = self.decode(read)
216
+ return pred, margin, A, lo, Z
217
+
218
+
219
+ # --------------------------------------------------------------------------
220
+ def required_window(Mw, ds, delta=0.01):
221
+ """Smallest window w such that P(key's last occurrence is in-window) >= 1-delta."""
222
+ p = 1.0 / Mw
223
+ n_w = math.ceil(math.log(delta) / math.log(1.0 - p))
224
+ return int(n_w + ds + 1), int(n_w)
225
+
226
+
227
+ def analytic_success(Mw, n_eligible, n_in_window):
228
+ p = 1.0 / Mw
229
+ p_exists = 1.0 - (1.0 - p) ** n_eligible
230
+ p_in = 1.0 - (1.0 - p) ** min(n_eligible, n_in_window)
231
+ # p_in is the unconditional coverage probability and hence a conservative
232
+ # certificate even if one treats inputs with no key occurrence as failures.
233
+ return p_in, p_exists
234
+
235
+
236
+ def eligible_keys_in_window(task, window):
237
+ """How many word-key positions have their successor in the last window."""
238
+ lo = max(0, task.L - window)
239
+ return max(0, task.n_word - max(0, lo - 1))
240
+
241
+
242
+ def evaluate(task, X, bits, window, **kw):
243
+ key, istar, tgt, ok = task.target(X, bits)
244
+ Xs, ts = X[ok], tgt[ok]
245
+ # Stream all large/exhaustive grids. This changes no inputs or arithmetic
246
+ # and prevents a full 8^5 x bit-grid from allocating several simultaneous
247
+ # dense attention tensors.
248
+ n = len(Xs)
249
+ chunk = 10000
250
+ n_acc = n_ssm = n_att = 0
251
+ leak = 0.0
252
+ min_margin = np.inf
253
+ c = task.c
254
+ keyc = task.wcode(key[ok])
255
+ istars = istar[ok]
256
+ for start in range(0, n, chunk):
257
+ stop = min(n, start + chunk)
258
+ pred, margin, A, lo, Z = task.run(Xs[start:stop], window, **kw)
259
+ n_acc += int(np.sum(pred == ts[start:stop]))
260
+ n_ssm += int(np.sum(np.all(
261
+ np.sign(Z[:, -1, 2 * c:3 * c]) == keyc[start:stop], axis=1)))
262
+ att_pos = lo + np.argmax(A, axis=1)
263
+ n_att += int(np.sum(att_pos == (istars[start:stop] + 1)))
264
+ leak = max(leak, float(np.max(1.0 - A.max(axis=1))) )
265
+ min_margin = min(min_margin, float(np.min(margin)))
266
+ return {"n_instances": int(n),
267
+ "frac_target_defined": float(np.mean(ok)),
268
+ "success": n_acc / n,
269
+ "ssm_key_decoded_correctly": n_ssm / n,
270
+ "attention_argmax_correct": n_att / n,
271
+ "max_softmax_leakage": leak,
272
+ "min_decode_margin": min_margin}
273
+
274
+
275
+ def all_sequences_small(task):
276
+ """Exhaustive enumeration for tiny |M|, L (word part x bit part)."""
277
+ Mw, nw, ds = task.Mw, task.n_word, task.ds
278
+ nwords = Mw ** nw
279
+ W = np.zeros((nwords, nw), int)
280
+ for pos in range(nw):
281
+ rep = Mw ** (nw - pos - 1)
282
+ W[:, pos] = np.tile(np.repeat(np.arange(Mw), rep), nwords // (rep * Mw))
283
+ B = np.zeros((2 ** ds, ds), int)
284
+ for pos in range(ds):
285
+ rep = 2 ** (ds - pos - 1)
286
+ B[:, pos] = np.tile(np.repeat(np.arange(2), rep), (2 ** ds) // (rep * 2))
287
+ Wr = np.repeat(W, len(B), axis=0)
288
+ Br = np.tile(B, (len(W), 1))
289
+ X = np.concatenate([Wr, task.Mw + Br], axis=1)
290
+ return X, Br
291
+
292
+
293
+ def main():
294
+ res = {}
295
+
296
+ # ---- correctness gates ------------------------------------------------
297
+ t = ARDecode(4, 8)
298
+ X, bits = t.sample(2000, np.random.default_rng(0))
299
+ Za = t.attn1(t.mamba(t.embed(X)))
300
+ Zb = t.attn1_via_softmax(t.mamba(t.embed(X)))
301
+ res["gate_shift_head_vs_softmax_attention"] = float(np.max(np.abs(Za - Zb)))
302
+ key, istar, tgt, ok = t.target(X, bits)
303
+ slow = []
304
+ for r in range(200):
305
+ k = int(key[r]); w = X[r, :t.n_word]
306
+ pos = [i for i in range(t.n_word) if w[i] == k]
307
+ slow.append(int(X[r, pos[-1] + 1]) if pos else -1)
308
+ fast = [int(tgt[r]) if ok[r] else -1 for r in range(200)]
309
+ res["gate_reference_target_mismatches"] = int(
310
+ sum(1 for a, b in zip(slow, fast) if a != b))
311
+
312
+ # ---- exhaustive, full window -------------------------------------------
313
+ exh = []
314
+ for Mw, L in [(4, 8), (4, 9), (8, 8)]:
315
+ task = ARDecode(Mw, L)
316
+ X, bits = all_sequences_small(task)
317
+ r = evaluate(task, X, bits, window=L)
318
+ r.update({"Mw": Mw, "L": L, "V": task.V, "ds": task.ds,
319
+ "embed_dim": task.d, "window": L, "exhaustive": True,
320
+ "n_enumerated": int(len(X))})
321
+ exh.append(r)
322
+ res["exhaustive_full_window"] = exh
323
+
324
+ # ---- the theorem's window, at scale -------------------------------------
325
+ rows = []
326
+ for Mw, L in [(8, 100), (16, 200), (32, 400), (64, 800), (128, 1600)]:
327
+ task = ARDecode(Mw, L)
328
+ w_req, n_w = required_window(Mw, task.ds, delta=0.01)
329
+ n_in_window = eligible_keys_in_window(task, w_req)
330
+ pred_succ, p_exists = analytic_success(Mw, task.n_word, n_in_window)
331
+ accs = []
332
+ row = None
333
+ for seed in range(5):
334
+ rng = np.random.default_rng(1000 + seed)
335
+ X, bits = task.sample(20000, rng)
336
+ row = evaluate(task, X, bits, window=w_req)
337
+ accs.append(row["success"])
338
+ row["success_mean"] = float(np.mean(accs))
339
+ row["success_std"] = float(np.std(accs))
340
+ row["n_instances_total"] = int(sum(1 for _ in range(5)) * row["n_instances"])
341
+ row.update({"Mw": Mw, "L": L, "V": task.V, "ds": task.ds,
342
+ "embed_dim": task.d,
343
+ "bound_max_log2": max(math.log2(task.V), math.log2(L)),
344
+ "window_required": w_req,
345
+ "window_over_Mw": w_req / Mw,
346
+ "window_over_L": w_req / L,
347
+ "analytic_success": pred_succ,
348
+ "abs_gap_vs_analytic": abs(float(np.mean(accs)) - pred_succ),
349
+ "empirical_mean_meets_99pct": bool(np.mean(accs) >= 0.99),
350
+ "analytic_certificate_meets_99pct": bool(pred_succ >= 0.99),
351
+ "seeds": 5})
352
+ rows.append(row)
353
+ res["theorem_window"] = rows
354
+ res["min_success_at_theorem_window"] = min(r["success_mean"] for r in rows)
355
+ res["max_gap_vs_analytic"] = max(r["abs_gap_vs_analytic"] for r in rows)
356
+ res["all_meet_99pct"] = all(r["analytic_certificate_meets_99pct"] for r in rows)
357
+
358
+ # ---- window sweep + negative controls -----------------------------------
359
+ ctl = []
360
+ for Mw, L in [(16, 200), (32, 400)]:
361
+ task = ARDecode(Mw, L)
362
+ rng = np.random.default_rng(7)
363
+ X, bits = task.sample(40000, rng)
364
+ w_req, _ = required_window(Mw, task.ds, delta=0.01)
365
+ full = evaluate(task, X, bits, window=L)
366
+ thm = evaluate(task, X, bits, window=w_req)
367
+ tiny = evaluate(task, X, bits, window=Mw)
368
+ pred_tiny, _ = analytic_success(Mw, task.n_word,
369
+ eligible_keys_in_window(task, Mw))
370
+ blind = evaluate(task, X, bits, window=w_req, blind_query=True)
371
+ nomamba = evaluate(task, X, bits, window=w_req, mamba_on=False)
372
+ nobias = evaluate(task, X, bits, window=w_req, use_bias=False)
373
+ # instances where the key occurs more than once inside the window
374
+ key, istar, tgt, ok = task.target(X, bits)
375
+ Wr = X[ok][:, :task.n_word]
376
+ lo = max(0, L - w_req)
377
+ inw = Wr[:, max(0, lo - 1):task.n_word]
378
+ nrep = (inw == key[ok][:, None]).sum(axis=1)
379
+ p_multi = float(np.mean(nrep > 1))
380
+ ctl.append({
381
+ "Mw": Mw, "L": L, "window_required": w_req,
382
+ "full_window_success": full["success"],
383
+ "theorem_window_success": thm["success"],
384
+ "control_window_eq_Mw_success": tiny["success"],
385
+ "control_window_eq_Mw_analytic": pred_tiny,
386
+ "control_window_eq_Mw_gap": abs(tiny["success"] - pred_tiny),
387
+ "one_minus_1_over_e": 1.0 - 1.0 / math.e,
388
+ "control_blind_query_success": blind["success"],
389
+ "control_no_mamba_success": nomamba["success"],
390
+ "control_no_mamba_key_decoded": nomamba["ssm_key_decoded_correctly"],
391
+ "control_no_positional_bias_success": nobias["success"],
392
+ "frac_key_repeated_in_window": p_multi,
393
+ "control_no_bias_predicted_ceiling": 1.0 - p_multi,
394
+ "chance_level": 1.0 / Mw,
395
+ })
396
+ res["negative_controls"] = ctl
397
+
398
+ # ---- window sweep --------------------------------------------------------
399
+ task = ARDecode(32, 400)
400
+ rng = np.random.default_rng(3)
401
+ X, bits = task.sample(30000, rng)
402
+ sweep = []
403
+ for w in [8, 16, 32, 64, 96, 128, 154, 200, 300, 400]:
404
+ r = evaluate(task, X, bits, window=w)
405
+ pa, _ = analytic_success(32, task.n_word,
406
+ eligible_keys_in_window(task, w))
407
+ sweep.append({"window": w, "success": r["success"], "analytic": pa,
408
+ "abs_gap": abs(r["success"] - pa)})
409
+ res["window_sweep_Mw32_L400"] = sweep
410
+ res["window_sweep_max_gap"] = max(s["abs_gap"] for s in sweep)
411
+
412
+ with open(os.path.join(OUT, "claim4.json"), "w") as f:
413
+ json.dump(res, f, indent=1, default=jsonable)
414
+
415
+ print("gate shift-head vs softmax attn :", res["gate_shift_head_vs_softmax_attention"])
416
+ print("gate reference mismatches :", res["gate_reference_target_mismatches"])
417
+ for r in exh:
418
+ print(" exhaustive |M|=%d L=%d n=%6d success=%.6f ssm=%.4f"
419
+ % (r["Mw"], r["L"], r["n_enumerated"], r["success"],
420
+ r["ssm_key_decoded_correctly"]))
421
+ for r in rows:
422
+ print(" |M|=%3d L=%4d w=%4d (%.2f|M|, %.3fL) success=%.5f+-%.5f analytic=%.5f d=%d"
423
+ % (r["Mw"], r["L"], r["window_required"], r["window_over_Mw"],
424
+ r["window_over_L"], r["success_mean"], r["success_std"],
425
+ r["analytic_success"], r["embed_dim"]))
426
+ for c in ctl:
427
+ print(" ctl |M|=%d: full=%.4f thm=%.4f w=|M|:%.4f (analytic %.4f, 1-1/e=%.4f) blind=%.4f nomamba=%.4f nobias=%.4f"
428
+ % (c["Mw"], c["full_window_success"], c["theorem_window_success"],
429
+ c["control_window_eq_Mw_success"], c["control_window_eq_Mw_analytic"],
430
+ c["one_minus_1_over_e"], c["control_blind_query_success"],
431
+ c["control_no_mamba_success"], c["control_no_positional_bias_success"]))
432
+ print("window sweep max |measured-analytic| :", res["window_sweep_max_gap"])
433
+
434
+
435
+ if __name__ == "__main__":
436
+ main()
index.html DELETED
@@ -1,19 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
logbook.json ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "title": "Reproduction audit: Hybrid Sequence Models",
4
+ "emoji": "\ud83d\udd2c",
5
+ "proposed_target_slug": "repro-hybrid-seq-82ejxjzg6r",
6
+ "publication_status": "local-only; no Space created or modified",
7
+ "paper": {
8
+ "arxiv_id": "2603.08859v1",
9
+ "openreview_id": "82EJxJzG6r"
10
+ },
11
+ "updated_at": "2026-07-28T00:00:00+00:00",
12
+ "root": {
13
+ "slug": "index",
14
+ "title": "Reproduction audit",
15
+ "file": "pages/index.md",
16
+ "children": [
17
+ {
18
+ "slug": "executive-summary",
19
+ "title": "Executive summary",
20
+ "file": "pages/executive-summary/page.md",
21
+ "children": []
22
+ },
23
+ {
24
+ "slug": "claim-1-theorem-3-3-literal-bound",
25
+ "title": "Claim 1: Theorem 3.3 proves that any k-layer state-space model solving the function-composition tasks under injectivity conditions must have total log state-space size scaling as \u03a9(m\u00b7log|V| \u2212 q\u00b7log|Y|), linear in the hidden dimension m (Theorem 3.3).",
26
+ "file": "pages/claim-1-theorem-3-3-literal-bound/page.md",
27
+ "children": []
28
+ },
29
+ {
30
+ "slug": "claim-2-theorem-3-7-window-bound",
31
+ "title": "Claim 2: Theorem 3.7 proves that sliding-window Transformers solving the same tasks under a local-sensitivity condition require total window size scaling with the context-dependency range R (Theorem 3.7).",
32
+ "file": "pages/claim-2-theorem-3-7-window-bound/page.md",
33
+ "children": []
34
+ },
35
+ {
36
+ "slug": "claim-3-theorem-4-3-selective-copy",
37
+ "title": "Claim 3: Theorem 4.3 constructs a two-layer hybrid (Mamba + attention) model that solves the selective copying task using embedding dimension O(max(log|V|, log L)) and working memory \u00d5(N), versus \u03a9(L) required by pure Transformers (Theorem 4.3).",
38
+ "file": "pages/claim-3-theorem-4-3-selective-copy/page.md",
39
+ "children": []
40
+ },
41
+ {
42
+ "slug": "claim-4-theorem-4-6-associative-recall",
43
+ "title": "Claim 4: Theorem 4.6 constructs a three-layer hybrid model that achieves 99% accuracy on the associative recall task using embedding dimension O(max(log|V|, log L)) and window size \u00d5(|V|) (Theorem 4.6).",
44
+ "file": "pages/claim-4-theorem-4-6-associative-recall/page.md",
45
+ "children": []
46
+ },
47
+ {
48
+ "slug": "claim-5-figure-4-selective-copy-learning",
49
+ "title": "Claim 5: On the selective copying task, the learned hybrid model reaches perfect accuracy with roughly 2,000 parameters while pure Transformer/SSM models need roughly 12,000 parameters to match it, a 6x parameter gap (Figure 4).",
50
+ "file": "pages/claim-5-figure-4-selective-copy-learning/page.md",
51
+ "children": []
52
+ },
53
+ {
54
+ "slug": "claim-6-figures-5-6-associative-recall-learning",
55
+ "title": "Claim 6: On multi-key associative recall, the hybrid model reaches 60% accuracy using 6x fewer parameters than pure Transformers, which plateau near 40% accuracy on single-key associative recall (Figures 5-6).",
56
+ "file": "pages/claim-6-figures-5-6-associative-recall-learning/page.md",
57
+ "children": []
58
+ }
59
+ ]
60
+ },
61
+ "routes_built": {
62
+ "claim_pages": [
63
+ "pages/claim-1-theorem-3-3-literal-bound/page.md",
64
+ "pages/claim-2-theorem-3-7-window-bound/page.md",
65
+ "pages/claim-3-theorem-4-3-selective-copy/page.md",
66
+ "pages/claim-4-theorem-4-6-associative-recall/page.md",
67
+ "pages/claim-5-figure-4-selective-copy-learning/page.md",
68
+ "pages/claim-6-figures-5-6-associative-recall-learning/page.md"
69
+ ]
70
+ }
71
+ }
make_manifest.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Write a sorted, recursive SHA-256 manifest for the local package."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import hashlib
6
+ from pathlib import Path
7
+
8
+
9
+ ROOT = Path(__file__).resolve().parent
10
+ EXCLUDED_PARTS = {".git", "__pycache__"}
11
+ EXCLUDED_NAMES = {"MANIFEST.sha256"}
12
+
13
+
14
+ def main() -> None:
15
+ entries = []
16
+ for path in sorted(ROOT.rglob("*")):
17
+ if not path.is_file() or path.name in EXCLUDED_NAMES:
18
+ continue
19
+ relative = path.relative_to(ROOT)
20
+ if any(part in EXCLUDED_PARTS for part in relative.parts):
21
+ continue
22
+ entries.append(f"{hashlib.sha256(path.read_bytes()).hexdigest()} {relative.as_posix()}")
23
+ text = "\n".join(entries) + "\n"
24
+ (ROOT / "MANIFEST.sha256").write_text(text)
25
+ print(f"manifest entries: {len(entries)}")
26
+
27
+
28
+ if __name__ == "__main__":
29
+ main()
official_claims.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "source": "/Users/sshpro/icml-pending/claims_anchored.json",
3
+ "source_key": "82EJxJzG6r",
4
+ "note": "Literal registered claim text copied without edits before evidence was attached.",
5
+ "claims_file": "CLAIMS.json"
6
+ }
official_validator.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Authoritative read-only validator for this *local* evidence package.
2
+
3
+ "Official" here means the package's release gate. It is explicitly not
4
+ represented as a validator maintained by ICML, OpenReview, the paper authors,
5
+ or a remote reproduction campaign.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import json
11
+ import subprocess
12
+ import sys
13
+ from pathlib import Path
14
+
15
+
16
+ ROOT = Path(__file__).resolve().parent
17
+
18
+
19
+ def main() -> None:
20
+ subprocess.run([sys.executable, "validate_logbook.py", "--require-replay"], cwd=ROOT, check=True)
21
+ report = {
22
+ "validator": "official_validator.py",
23
+ "authority": "authoritative release gate for this local package only",
24
+ "not_claimed": ["ICML validator", "OpenReview validator", "paper-author validator", "remote campaign validator"],
25
+ "semantic_v4": "SEMANTIC_V4.json",
26
+ "validation": "VALIDATION.json",
27
+ "passed": True,
28
+ }
29
+ (ROOT / "OFFICIAL_VALIDATOR_RUN.json").write_text(json.dumps(report, indent=2) + "\n")
30
+ subprocess.run([sys.executable, "make_manifest.py"], cwd=ROOT, check=True)
31
+ print("official local package validator: PASS (semantic-v4 12/12)")
32
+
33
+
34
+ if __name__ == "__main__":
35
+ main()
outputs/claim1.json ADDED
@@ -0,0 +1,747 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "task": "F(u,v) = u_v with Q = [m]; G(u)=u is injective (Asm 3.2)",
3
+ "grid": [
4
+ {
5
+ "m": 2,
6
+ "V": 2,
7
+ "n_prefixes": 4,
8
+ "log2_states_required": 2.0,
9
+ "theory_m_log2_V": 2.0,
10
+ "abs_residual": 0.0,
11
+ "pairs_checked": 6,
12
+ "pairs_separated": 6,
13
+ "all_pairs_separated": true,
14
+ "min_separating_queries": 1,
15
+ "control_states": 3,
16
+ "control_acc_closed_form": 0.875,
17
+ "control_acc_bruteforce": 0.875,
18
+ "control_acc_gap": 0.0,
19
+ "control_witness_pair": [
20
+ [
21
+ 0,
22
+ 0
23
+ ],
24
+ [
25
+ 0,
26
+ 1
27
+ ]
28
+ ]
29
+ },
30
+ {
31
+ "m": 3,
32
+ "V": 2,
33
+ "n_prefixes": 8,
34
+ "log2_states_required": 3.0,
35
+ "theory_m_log2_V": 3.0,
36
+ "abs_residual": 0.0,
37
+ "pairs_checked": 28,
38
+ "pairs_separated": 28,
39
+ "all_pairs_separated": true,
40
+ "min_separating_queries": 1,
41
+ "control_states": 7,
42
+ "control_acc_closed_form": 0.9583333333333334,
43
+ "control_acc_bruteforce": 0.9583333333333334,
44
+ "control_acc_gap": 0.0,
45
+ "control_witness_pair": [
46
+ [
47
+ 0,
48
+ 0,
49
+ 0
50
+ ],
51
+ [
52
+ 0,
53
+ 0,
54
+ 1
55
+ ]
56
+ ]
57
+ },
58
+ {
59
+ "m": 4,
60
+ "V": 2,
61
+ "n_prefixes": 16,
62
+ "log2_states_required": 4.0,
63
+ "theory_m_log2_V": 4.0,
64
+ "abs_residual": 0.0,
65
+ "pairs_checked": 120,
66
+ "pairs_separated": 120,
67
+ "all_pairs_separated": true,
68
+ "min_separating_queries": 1,
69
+ "control_states": 15,
70
+ "control_acc_closed_form": 0.984375,
71
+ "control_acc_bruteforce": 0.984375,
72
+ "control_acc_gap": 0.0,
73
+ "control_witness_pair": [
74
+ [
75
+ 0,
76
+ 0,
77
+ 0,
78
+ 0
79
+ ],
80
+ [
81
+ 0,
82
+ 0,
83
+ 0,
84
+ 1
85
+ ]
86
+ ]
87
+ },
88
+ {
89
+ "m": 5,
90
+ "V": 2,
91
+ "n_prefixes": 32,
92
+ "log2_states_required": 5.0,
93
+ "theory_m_log2_V": 5.0,
94
+ "abs_residual": 0.0,
95
+ "pairs_checked": 496,
96
+ "pairs_separated": 496,
97
+ "all_pairs_separated": true,
98
+ "min_separating_queries": 1,
99
+ "control_states": 31,
100
+ "control_acc_closed_form": 0.99375,
101
+ "control_acc_bruteforce": 0.99375,
102
+ "control_acc_gap": 0.0,
103
+ "control_witness_pair": [
104
+ [
105
+ 0,
106
+ 0,
107
+ 0,
108
+ 0,
109
+ 0
110
+ ],
111
+ [
112
+ 0,
113
+ 0,
114
+ 0,
115
+ 0,
116
+ 1
117
+ ]
118
+ ]
119
+ },
120
+ {
121
+ "m": 6,
122
+ "V": 2,
123
+ "n_prefixes": 64,
124
+ "log2_states_required": 6.0,
125
+ "theory_m_log2_V": 6.0,
126
+ "abs_residual": 0.0,
127
+ "pairs_checked": 2016,
128
+ "pairs_separated": 2016,
129
+ "all_pairs_separated": true,
130
+ "min_separating_queries": 1,
131
+ "control_states": 63,
132
+ "control_acc_closed_form": 0.9973958333333334,
133
+ "control_acc_bruteforce": 0.9973958333333334,
134
+ "control_acc_gap": 0.0,
135
+ "control_witness_pair": [
136
+ [
137
+ 0,
138
+ 0,
139
+ 0,
140
+ 0,
141
+ 0,
142
+ 0
143
+ ],
144
+ [
145
+ 0,
146
+ 0,
147
+ 0,
148
+ 0,
149
+ 0,
150
+ 1
151
+ ]
152
+ ]
153
+ },
154
+ {
155
+ "m": 7,
156
+ "V": 2,
157
+ "n_prefixes": 128,
158
+ "log2_states_required": 7.0,
159
+ "theory_m_log2_V": 7.0,
160
+ "abs_residual": 0.0,
161
+ "pairs_checked": 8128,
162
+ "pairs_separated": 8128,
163
+ "all_pairs_separated": true,
164
+ "min_separating_queries": 1,
165
+ "control_states": 127,
166
+ "control_acc_closed_form": 0.9988839285714286,
167
+ "control_acc_bruteforce": 0.9988839285714286,
168
+ "control_acc_gap": 0.0,
169
+ "control_witness_pair": [
170
+ [
171
+ 0,
172
+ 0,
173
+ 0,
174
+ 0,
175
+ 0,
176
+ 0,
177
+ 0
178
+ ],
179
+ [
180
+ 0,
181
+ 0,
182
+ 0,
183
+ 0,
184
+ 0,
185
+ 0,
186
+ 1
187
+ ]
188
+ ]
189
+ },
190
+ {
191
+ "m": 8,
192
+ "V": 2,
193
+ "n_prefixes": 256,
194
+ "log2_states_required": 8.0,
195
+ "theory_m_log2_V": 8.0,
196
+ "abs_residual": 0.0,
197
+ "pairs_checked": 32640,
198
+ "pairs_separated": 32640,
199
+ "all_pairs_separated": true,
200
+ "min_separating_queries": 1,
201
+ "control_states": 255,
202
+ "control_acc_closed_form": 0.99951171875,
203
+ "control_acc_bruteforce": 0.99951171875,
204
+ "control_acc_gap": 0.0,
205
+ "control_witness_pair": [
206
+ [
207
+ 0,
208
+ 0,
209
+ 0,
210
+ 0,
211
+ 0,
212
+ 0,
213
+ 0,
214
+ 0
215
+ ],
216
+ [
217
+ 0,
218
+ 0,
219
+ 0,
220
+ 0,
221
+ 0,
222
+ 0,
223
+ 0,
224
+ 1
225
+ ]
226
+ ]
227
+ },
228
+ {
229
+ "m": 9,
230
+ "V": 2,
231
+ "n_prefixes": 512,
232
+ "log2_states_required": 9.0,
233
+ "theory_m_log2_V": 9.0,
234
+ "abs_residual": 0.0,
235
+ "pairs_checked": 130816,
236
+ "pairs_separated": 130816,
237
+ "all_pairs_separated": true,
238
+ "min_separating_queries": 1,
239
+ "control_states": 511,
240
+ "control_acc_closed_form": 0.9997829861111112
241
+ },
242
+ {
243
+ "m": 10,
244
+ "V": 2,
245
+ "n_prefixes": 1024,
246
+ "log2_states_required": 10.0,
247
+ "theory_m_log2_V": 10.0,
248
+ "abs_residual": 0.0,
249
+ "control_states": 1023,
250
+ "control_acc_closed_form": 0.99990234375
251
+ },
252
+ {
253
+ "m": 2,
254
+ "V": 3,
255
+ "n_prefixes": 9,
256
+ "log2_states_required": 3.169925001442312,
257
+ "theory_m_log2_V": 3.169925001442312,
258
+ "abs_residual": 0.0,
259
+ "pairs_checked": 36,
260
+ "pairs_separated": 36,
261
+ "all_pairs_separated": true,
262
+ "min_separating_queries": 1,
263
+ "control_states": 8,
264
+ "control_acc_closed_form": 0.9444444444444444,
265
+ "control_acc_bruteforce": 0.9444444444444444,
266
+ "control_acc_gap": 0.0,
267
+ "control_witness_pair": [
268
+ [
269
+ 0,
270
+ 0
271
+ ],
272
+ [
273
+ 0,
274
+ 1
275
+ ]
276
+ ]
277
+ },
278
+ {
279
+ "m": 3,
280
+ "V": 3,
281
+ "n_prefixes": 27,
282
+ "log2_states_required": 4.754887502163468,
283
+ "theory_m_log2_V": 4.754887502163468,
284
+ "abs_residual": 0.0,
285
+ "pairs_checked": 351,
286
+ "pairs_separated": 351,
287
+ "all_pairs_separated": true,
288
+ "min_separating_queries": 1,
289
+ "control_states": 26,
290
+ "control_acc_closed_form": 0.9876543209876543,
291
+ "control_acc_bruteforce": 0.9876543209876543,
292
+ "control_acc_gap": 0.0,
293
+ "control_witness_pair": [
294
+ [
295
+ 0,
296
+ 0,
297
+ 0
298
+ ],
299
+ [
300
+ 0,
301
+ 0,
302
+ 1
303
+ ]
304
+ ]
305
+ },
306
+ {
307
+ "m": 4,
308
+ "V": 3,
309
+ "n_prefixes": 81,
310
+ "log2_states_required": 6.339850002884624,
311
+ "theory_m_log2_V": 6.339850002884624,
312
+ "abs_residual": 0.0,
313
+ "pairs_checked": 3240,
314
+ "pairs_separated": 3240,
315
+ "all_pairs_separated": true,
316
+ "min_separating_queries": 1,
317
+ "control_states": 80,
318
+ "control_acc_closed_form": 0.9969135802469136,
319
+ "control_acc_bruteforce": 0.9969135802469136,
320
+ "control_acc_gap": 0.0,
321
+ "control_witness_pair": [
322
+ [
323
+ 0,
324
+ 0,
325
+ 0,
326
+ 0
327
+ ],
328
+ [
329
+ 0,
330
+ 0,
331
+ 0,
332
+ 1
333
+ ]
334
+ ]
335
+ },
336
+ {
337
+ "m": 5,
338
+ "V": 3,
339
+ "n_prefixes": 243,
340
+ "log2_states_required": 7.924812503605781,
341
+ "theory_m_log2_V": 7.92481250360578,
342
+ "abs_residual": 8.881784197001252e-16,
343
+ "pairs_checked": 29403,
344
+ "pairs_separated": 29403,
345
+ "all_pairs_separated": true,
346
+ "min_separating_queries": 1,
347
+ "control_states": 242,
348
+ "control_acc_closed_form": 0.9991769547325103,
349
+ "control_acc_bruteforce": 0.9991769547325103,
350
+ "control_acc_gap": 0.0,
351
+ "control_witness_pair": [
352
+ [
353
+ 0,
354
+ 0,
355
+ 0,
356
+ 0,
357
+ 0
358
+ ],
359
+ [
360
+ 0,
361
+ 0,
362
+ 0,
363
+ 0,
364
+ 1
365
+ ]
366
+ ]
367
+ },
368
+ {
369
+ "m": 6,
370
+ "V": 3,
371
+ "n_prefixes": 729,
372
+ "log2_states_required": 9.509775004326936,
373
+ "theory_m_log2_V": 9.509775004326936,
374
+ "abs_residual": 0.0,
375
+ "control_states": 728,
376
+ "control_acc_closed_form": 0.9997713763145862
377
+ },
378
+ {
379
+ "m": 7,
380
+ "V": 3,
381
+ "n_prefixes": 2187,
382
+ "log2_states_required": 11.094737505048093,
383
+ "theory_m_log2_V": 11.094737505048093,
384
+ "abs_residual": 0.0,
385
+ "control_states": 2186,
386
+ "control_acc_closed_form": 0.9999346789470246
387
+ },
388
+ {
389
+ "m": 2,
390
+ "V": 4,
391
+ "n_prefixes": 16,
392
+ "log2_states_required": 4.0,
393
+ "theory_m_log2_V": 4.0,
394
+ "abs_residual": 0.0,
395
+ "pairs_checked": 120,
396
+ "pairs_separated": 120,
397
+ "all_pairs_separated": true,
398
+ "min_separating_queries": 1,
399
+ "control_states": 15,
400
+ "control_acc_closed_form": 0.96875,
401
+ "control_acc_bruteforce": 0.96875,
402
+ "control_acc_gap": 0.0,
403
+ "control_witness_pair": [
404
+ [
405
+ 0,
406
+ 0
407
+ ],
408
+ [
409
+ 0,
410
+ 1
411
+ ]
412
+ ]
413
+ },
414
+ {
415
+ "m": 3,
416
+ "V": 4,
417
+ "n_prefixes": 64,
418
+ "log2_states_required": 6.0,
419
+ "theory_m_log2_V": 6.0,
420
+ "abs_residual": 0.0,
421
+ "pairs_checked": 2016,
422
+ "pairs_separated": 2016,
423
+ "all_pairs_separated": true,
424
+ "min_separating_queries": 1,
425
+ "control_states": 63,
426
+ "control_acc_closed_form": 0.9947916666666666,
427
+ "control_acc_bruteforce": 0.9947916666666666,
428
+ "control_acc_gap": 0.0,
429
+ "control_witness_pair": [
430
+ [
431
+ 0,
432
+ 0,
433
+ 0
434
+ ],
435
+ [
436
+ 0,
437
+ 0,
438
+ 1
439
+ ]
440
+ ]
441
+ },
442
+ {
443
+ "m": 4,
444
+ "V": 4,
445
+ "n_prefixes": 256,
446
+ "log2_states_required": 8.0,
447
+ "theory_m_log2_V": 8.0,
448
+ "abs_residual": 0.0,
449
+ "pairs_checked": 32640,
450
+ "pairs_separated": 32640,
451
+ "all_pairs_separated": true,
452
+ "min_separating_queries": 1,
453
+ "control_states": 255,
454
+ "control_acc_closed_form": 0.9990234375,
455
+ "control_acc_bruteforce": 0.9990234375,
456
+ "control_acc_gap": 0.0,
457
+ "control_witness_pair": [
458
+ [
459
+ 0,
460
+ 0,
461
+ 0,
462
+ 0
463
+ ],
464
+ [
465
+ 0,
466
+ 0,
467
+ 0,
468
+ 1
469
+ ]
470
+ ]
471
+ },
472
+ {
473
+ "m": 5,
474
+ "V": 4,
475
+ "n_prefixes": 1024,
476
+ "log2_states_required": 10.0,
477
+ "theory_m_log2_V": 10.0,
478
+ "abs_residual": 0.0,
479
+ "control_states": 1023,
480
+ "control_acc_closed_form": 0.9998046875
481
+ },
482
+ {
483
+ "m": 6,
484
+ "V": 4,
485
+ "n_prefixes": 4096,
486
+ "log2_states_required": 12.0,
487
+ "theory_m_log2_V": 12.0,
488
+ "abs_residual": 0.0,
489
+ "control_states": 4095,
490
+ "control_acc_closed_form": 0.9999593098958334
491
+ }
492
+ ],
493
+ "max_residual_log2_states": 8.881784197001252e-16,
494
+ "max_control_gap": 0.0,
495
+ "all_pairs_separated_everywhere": true,
496
+ "linear_in_m_fit": {
497
+ "2": {
498
+ "fitted_slope": 1.0,
499
+ "theory_slope_log2_V": 1.0,
500
+ "slope_abs_err": 0.0,
501
+ "intercept": 1.6770126117963062e-15,
502
+ "R2": 1.0,
503
+ "max_abs_residual": 1.7763568394002505e-15
504
+ },
505
+ "3": {
506
+ "fitted_slope": 1.5849625007211565,
507
+ "theory_slope_log2_V": 1.584962500721156,
508
+ "slope_abs_err": 4.440892098500626e-16,
509
+ "intercept": -4.520058619021783e-15,
510
+ "R2": 1.0,
511
+ "max_abs_residual": 3.552713678800501e-15
512
+ },
513
+ "4": {
514
+ "fitted_slope": 2.0,
515
+ "theory_slope_log2_V": 2.0,
516
+ "slope_abs_err": 0.0,
517
+ "intercept": -1.3107111616019684e-15,
518
+ "R2": 1.0,
519
+ "max_abs_residual": 1.7763568394002505e-15
520
+ }
521
+ },
522
+ "exhaustive_accuracy_curves": [
523
+ {
524
+ "m": 2,
525
+ "V": 2,
526
+ "n_prefixes": 4,
527
+ "partitions_enumerated": "Bell(4)",
528
+ "A_star": {
529
+ "1": 0.5,
530
+ "2": 0.75,
531
+ "3": 0.875,
532
+ "4": 1.0
533
+ },
534
+ "min_states_acc_1.0": 4,
535
+ "min_states_acc_0.875": 3,
536
+ "min_states_acc_0.9": 4,
537
+ "min_states_acc_0.5": 1,
538
+ "A_star_at_n_minus_1": 0.875,
539
+ "closed_form_at_n_minus_1": 0.875
540
+ },
541
+ {
542
+ "m": 3,
543
+ "V": 2,
544
+ "n_prefixes": 8,
545
+ "partitions_enumerated": "Bell(8)",
546
+ "A_star": {
547
+ "1": 0.5,
548
+ "2": 0.75,
549
+ "3": 0.7916666666666666,
550
+ "4": 0.8333333333333334,
551
+ "5": 0.875,
552
+ "6": 0.9166666666666666,
553
+ "7": 0.9583333333333334,
554
+ "8": 1.0
555
+ },
556
+ "min_states_acc_1.0": 8,
557
+ "min_states_acc_0.875": 5,
558
+ "min_states_acc_0.9": 6,
559
+ "min_states_acc_0.5": 1,
560
+ "A_star_at_n_minus_1": 0.9583333333333334,
561
+ "closed_form_at_n_minus_1": 0.9583333333333334
562
+ },
563
+ {
564
+ "m": 2,
565
+ "V": 3,
566
+ "n_prefixes": 9,
567
+ "partitions_enumerated": "Bell(9)",
568
+ "A_star": {
569
+ "1": 0.3333333333333333,
570
+ "2": 0.5555555555555556,
571
+ "3": 0.6666666666666666,
572
+ "4": 0.7222222222222222,
573
+ "5": 0.7777777777777778,
574
+ "6": 0.8333333333333334,
575
+ "7": 0.8888888888888888,
576
+ "8": 0.9444444444444444,
577
+ "9": 1.0
578
+ },
579
+ "min_states_acc_1.0": 9,
580
+ "min_states_acc_0.875": 7,
581
+ "min_states_acc_0.9": 8,
582
+ "min_states_acc_0.5": 2,
583
+ "A_star_at_n_minus_1": 0.9444444444444444,
584
+ "closed_form_at_n_minus_1": 0.9444444444444444
585
+ }
586
+ ],
587
+ "exhaustive_min_states_equals_Vm": true,
588
+ "max_curve_control_gap": 0.0,
589
+ "lemma_3_5": [
590
+ {
591
+ "k": 2,
592
+ "sizes": [
593
+ 2,
594
+ 3
595
+ ],
596
+ "product_bound": 6,
597
+ "reachable_product_states": 2,
598
+ "sequences_tested": 510,
599
+ "behaviour_mismatches": 0,
600
+ "bound_respected": true
601
+ },
602
+ {
603
+ "k": 3,
604
+ "sizes": [
605
+ 2,
606
+ 2,
607
+ 2
608
+ ],
609
+ "product_bound": 8,
610
+ "reachable_product_states": 2,
611
+ "sequences_tested": 254,
612
+ "behaviour_mismatches": 0,
613
+ "bound_respected": true
614
+ },
615
+ {
616
+ "k": 2,
617
+ "sizes": [
618
+ 3,
619
+ 4
620
+ ],
621
+ "product_bound": 12,
622
+ "reachable_product_states": 6,
623
+ "sequences_tested": 363,
624
+ "behaviour_mismatches": 0,
625
+ "bound_respected": true
626
+ },
627
+ {
628
+ "k": 4,
629
+ "sizes": [
630
+ 2,
631
+ 2,
632
+ 2,
633
+ 2
634
+ ],
635
+ "product_bound": 16,
636
+ "reachable_product_states": 6,
637
+ "sequences_tested": 126,
638
+ "behaviour_mismatches": 0,
639
+ "bound_respected": true
640
+ },
641
+ {
642
+ "k": 3,
643
+ "sizes": [
644
+ 2,
645
+ 3,
646
+ 2
647
+ ],
648
+ "product_bound": 12,
649
+ "reachable_product_states": 2,
650
+ "sequences_tested": 120,
651
+ "behaviour_mismatches": 0,
652
+ "bound_respected": true
653
+ }
654
+ ],
655
+ "lemma_3_5_total_mismatches": 0,
656
+ "lemma_3_5_bound_always_respected": true,
657
+ "lemma_3_5_tightness": [
658
+ {
659
+ "k": 2,
660
+ "sizes": [
661
+ 2,
662
+ 3
663
+ ],
664
+ "product_bound": 6,
665
+ "reachable_product_states": 6,
666
+ "sequences_tested": 1092,
667
+ "behaviour_mismatches": 0,
668
+ "bound_respected": true,
669
+ "bound_is_tight": true
670
+ },
671
+ {
672
+ "k": 2,
673
+ "sizes": [
674
+ 3,
675
+ 3
676
+ ],
677
+ "product_bound": 9,
678
+ "reachable_product_states": 9,
679
+ "sequences_tested": 1092,
680
+ "behaviour_mismatches": 0,
681
+ "bound_respected": true,
682
+ "bound_is_tight": true
683
+ },
684
+ {
685
+ "k": 3,
686
+ "sizes": [
687
+ 2,
688
+ 2,
689
+ 2
690
+ ],
691
+ "product_bound": 8,
692
+ "reachable_product_states": 8,
693
+ "sequences_tested": 1092,
694
+ "behaviour_mismatches": 0,
695
+ "bound_respected": true,
696
+ "bound_is_tight": true
697
+ }
698
+ ],
699
+ "lemma_3_5_tight_witnesses": 3,
700
+ "printed_bound_audit": {
701
+ "n_admissible_configs": 1296,
702
+ "max_literal_bound_over_admissible_grid": 0.0,
703
+ "literal_bound_ever_positive": false,
704
+ "min_appendix_bound_on_instantiation": 0.6628711136008072,
705
+ "appendix_slope_in_m": {
706
+ "2": {
707
+ "fitted_slope": 0.3314355568004036,
708
+ "closed_form_slope": 0.3314355568004036,
709
+ "abs_err": 0.0
710
+ },
711
+ "4": {
712
+ "fitted_slope": 1.2064355568004035,
713
+ "closed_form_slope": 1.2064355568004035,
714
+ "abs_err": 0.0
715
+ },
716
+ "8": {
717
+ "fitted_slope": 2.0814355568004035,
718
+ "closed_form_slope": 2.0814355568004035,
719
+ "abs_err": 0.0
720
+ },
721
+ "16": {
722
+ "fitted_slope": 2.9564355568004044,
723
+ "closed_form_slope": 2.9564355568004035,
724
+ "abs_err": 8.881784197001252e-16
725
+ },
726
+ "26": {
727
+ "fitted_slope": 3.569320310173859,
728
+ "closed_form_slope": 3.569320310173859,
729
+ "abs_err": 0.0
730
+ },
731
+ "32": {
732
+ "fitted_slope": 3.831435556800403,
733
+ "closed_form_slope": 3.8314355568004035,
734
+ "abs_err": 4.440892098500626e-16
735
+ }
736
+ },
737
+ "note": "literal = m*log2|V| - q*log2|Y| (Thm 3.3 as printed); appendix = m*log2|V| - q*(H2(1/8)+log2|Y|/8) (proof, err<1/8)"
738
+ },
739
+ "one_state_guessing_accuracy": {
740
+ "2": 0.5,
741
+ "3": 0.3333333333333333,
742
+ "4": 0.25,
743
+ "8": 0.125,
744
+ "26": 0.038461538461538464,
745
+ "32": 0.03125
746
+ }
747
+ }
outputs/claim2.json ADDED
@@ -0,0 +1,1307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "numerical_gate": {
3
+ "max_abs_matmul_minus_einsum": 1.7763568394002505e-15,
4
+ "all_forward_outputs_finite": true,
5
+ "max_abs_logit": 2.1417444637761154,
6
+ "note": "Accelerate RuntimeWarnings are spurious; verified here"
7
+ },
8
+ "receptive_field_sweep": {
9
+ "configs_tested": 960,
10
+ "violations_outside_receptive_field": 0,
11
+ "max_abs_delta_outside_receptive_field": 0.0,
12
+ "configs_with_no_effect_just_inside_rf": 0,
13
+ "sample_rows": [
14
+ {
15
+ "L": 16,
16
+ "k": 1,
17
+ "windows": [
18
+ 10
19
+ ],
20
+ "sum_W": 10,
21
+ "rf": 10,
22
+ "max_abs_delta_outside_rf": 0.0,
23
+ "max_abs_delta_inside_rf": 0.28581609351223836
24
+ },
25
+ {
26
+ "L": 16,
27
+ "k": 1,
28
+ "windows": [
29
+ 10
30
+ ],
31
+ "sum_W": 10,
32
+ "rf": 10,
33
+ "max_abs_delta_outside_rf": 0.0,
34
+ "max_abs_delta_inside_rf": 0.03444175010002626
35
+ },
36
+ {
37
+ "L": 16,
38
+ "k": 1,
39
+ "windows": [
40
+ 3
41
+ ],
42
+ "sum_W": 3,
43
+ "rf": 3,
44
+ "max_abs_delta_outside_rf": 0.0,
45
+ "max_abs_delta_inside_rf": 0.2040553116237531
46
+ },
47
+ {
48
+ "L": 16,
49
+ "k": 1,
50
+ "windows": [
51
+ 12
52
+ ],
53
+ "sum_W": 12,
54
+ "rf": 12,
55
+ "max_abs_delta_outside_rf": 0.0,
56
+ "max_abs_delta_inside_rf": 0.014197238946864754
57
+ },
58
+ {
59
+ "L": 16,
60
+ "k": 1,
61
+ "windows": [
62
+ 11
63
+ ],
64
+ "sum_W": 11,
65
+ "rf": 11,
66
+ "max_abs_delta_outside_rf": 0.0,
67
+ "max_abs_delta_inside_rf": 0.14570162697464065
68
+ },
69
+ {
70
+ "L": 16,
71
+ "k": 1,
72
+ "windows": [
73
+ 5
74
+ ],
75
+ "sum_W": 5,
76
+ "rf": 5,
77
+ "max_abs_delta_outside_rf": 0.0,
78
+ "max_abs_delta_inside_rf": 0.32986723460250333
79
+ },
80
+ {
81
+ "L": 16,
82
+ "k": 1,
83
+ "windows": [
84
+ 9
85
+ ],
86
+ "sum_W": 9,
87
+ "rf": 9,
88
+ "max_abs_delta_outside_rf": 0.0,
89
+ "max_abs_delta_inside_rf": 0.1968814430783481
90
+ },
91
+ {
92
+ "L": 16,
93
+ "k": 1,
94
+ "windows": [
95
+ 7
96
+ ],
97
+ "sum_W": 7,
98
+ "rf": 7,
99
+ "max_abs_delta_outside_rf": 0.0,
100
+ "max_abs_delta_inside_rf": 0.030041848233613166
101
+ },
102
+ {
103
+ "L": 16,
104
+ "k": 1,
105
+ "windows": [
106
+ 9
107
+ ],
108
+ "sum_W": 9,
109
+ "rf": 9,
110
+ "max_abs_delta_outside_rf": 0.0,
111
+ "max_abs_delta_inside_rf": 0.2698237935195511
112
+ },
113
+ {
114
+ "L": 16,
115
+ "k": 1,
116
+ "windows": [
117
+ 4
118
+ ],
119
+ "sum_W": 4,
120
+ "rf": 4,
121
+ "max_abs_delta_outside_rf": 0.0,
122
+ "max_abs_delta_inside_rf": 0.14797709583183694
123
+ },
124
+ {
125
+ "L": 16,
126
+ "k": 1,
127
+ "windows": [
128
+ 12
129
+ ],
130
+ "sum_W": 12,
131
+ "rf": 12,
132
+ "max_abs_delta_outside_rf": 0.0,
133
+ "max_abs_delta_inside_rf": 0.07127460286707321
134
+ },
135
+ {
136
+ "L": 16,
137
+ "k": 1,
138
+ "windows": [
139
+ 14
140
+ ],
141
+ "sum_W": 14,
142
+ "rf": 14,
143
+ "max_abs_delta_outside_rf": 0.0,
144
+ "max_abs_delta_inside_rf": 0.10168374636975316
145
+ },
146
+ {
147
+ "L": 16,
148
+ "k": 1,
149
+ "windows": [
150
+ 9
151
+ ],
152
+ "sum_W": 9,
153
+ "rf": 9,
154
+ "max_abs_delta_outside_rf": 0.0,
155
+ "max_abs_delta_inside_rf": 0.003750870881970958
156
+ },
157
+ {
158
+ "L": 16,
159
+ "k": 1,
160
+ "windows": [
161
+ 2
162
+ ],
163
+ "sum_W": 2,
164
+ "rf": 2,
165
+ "max_abs_delta_outside_rf": 0.0,
166
+ "max_abs_delta_inside_rf": 2.407640189683196
167
+ },
168
+ {
169
+ "L": 16,
170
+ "k": 1,
171
+ "windows": [
172
+ 11
173
+ ],
174
+ "sum_W": 11,
175
+ "rf": 11,
176
+ "max_abs_delta_outside_rf": 0.0,
177
+ "max_abs_delta_inside_rf": 0.28417810626585305
178
+ },
179
+ {
180
+ "L": 16,
181
+ "k": 1,
182
+ "windows": [
183
+ 2
184
+ ],
185
+ "sum_W": 2,
186
+ "rf": 2,
187
+ "max_abs_delta_outside_rf": 0.0,
188
+ "max_abs_delta_inside_rf": 0.5150917655838505
189
+ },
190
+ {
191
+ "L": 16,
192
+ "k": 1,
193
+ "windows": [
194
+ 1
195
+ ],
196
+ "sum_W": 1,
197
+ "rf": 1,
198
+ "max_abs_delta_outside_rf": 0.0,
199
+ "max_abs_delta_inside_rf": 2.026287079665709
200
+ },
201
+ {
202
+ "L": 16,
203
+ "k": 1,
204
+ "windows": [
205
+ 5
206
+ ],
207
+ "sum_W": 5,
208
+ "rf": 5,
209
+ "max_abs_delta_outside_rf": 0.0,
210
+ "max_abs_delta_inside_rf": 0.21853871993517676
211
+ },
212
+ {
213
+ "L": 16,
214
+ "k": 1,
215
+ "windows": [
216
+ 9
217
+ ],
218
+ "sum_W": 9,
219
+ "rf": 9,
220
+ "max_abs_delta_outside_rf": 0.0,
221
+ "max_abs_delta_inside_rf": 0.5761418306350206
222
+ },
223
+ {
224
+ "L": 16,
225
+ "k": 1,
226
+ "windows": [
227
+ 10
228
+ ],
229
+ "sum_W": 10,
230
+ "rf": 10,
231
+ "max_abs_delta_outside_rf": 0.0,
232
+ "max_abs_delta_inside_rf": 0.006504128634520656
233
+ },
234
+ {
235
+ "L": 16,
236
+ "k": 1,
237
+ "windows": [
238
+ 1
239
+ ],
240
+ "sum_W": 1,
241
+ "rf": 1,
242
+ "max_abs_delta_outside_rf": 0.0,
243
+ "max_abs_delta_inside_rf": 3.0536991633981563
244
+ },
245
+ {
246
+ "L": 16,
247
+ "k": 1,
248
+ "windows": [
249
+ 1
250
+ ],
251
+ "sum_W": 1,
252
+ "rf": 1,
253
+ "max_abs_delta_outside_rf": 0.0,
254
+ "max_abs_delta_inside_rf": 2.1397172447617256
255
+ },
256
+ {
257
+ "L": 16,
258
+ "k": 1,
259
+ "windows": [
260
+ 10
261
+ ],
262
+ "sum_W": 10,
263
+ "rf": 10,
264
+ "max_abs_delta_outside_rf": 0.0,
265
+ "max_abs_delta_inside_rf": 0.04804122082565855
266
+ },
267
+ {
268
+ "L": 16,
269
+ "k": 1,
270
+ "windows": [
271
+ 7
272
+ ],
273
+ "sum_W": 7,
274
+ "rf": 7,
275
+ "max_abs_delta_outside_rf": 0.0,
276
+ "max_abs_delta_inside_rf": 0.701760784501624
277
+ },
278
+ {
279
+ "L": 16,
280
+ "k": 1,
281
+ "windows": [
282
+ 13
283
+ ],
284
+ "sum_W": 13,
285
+ "rf": 13,
286
+ "max_abs_delta_outside_rf": 0.0,
287
+ "max_abs_delta_inside_rf": 0.1355528677544809
288
+ },
289
+ {
290
+ "L": 16,
291
+ "k": 1,
292
+ "windows": [
293
+ 7
294
+ ],
295
+ "sum_W": 7,
296
+ "rf": 7,
297
+ "max_abs_delta_outside_rf": 0.0,
298
+ "max_abs_delta_inside_rf": 0.48194231490071804
299
+ },
300
+ {
301
+ "L": 16,
302
+ "k": 1,
303
+ "windows": [
304
+ 13
305
+ ],
306
+ "sum_W": 13,
307
+ "rf": 13,
308
+ "max_abs_delta_outside_rf": 0.0,
309
+ "max_abs_delta_inside_rf": 0.0814501808086524
310
+ },
311
+ {
312
+ "L": 16,
313
+ "k": 1,
314
+ "windows": [
315
+ 6
316
+ ],
317
+ "sum_W": 6,
318
+ "rf": 6,
319
+ "max_abs_delta_outside_rf": 0.0,
320
+ "max_abs_delta_inside_rf": 0.32926605957010213
321
+ },
322
+ {
323
+ "L": 16,
324
+ "k": 1,
325
+ "windows": [
326
+ 14
327
+ ],
328
+ "sum_W": 14,
329
+ "rf": 14,
330
+ "max_abs_delta_outside_rf": 0.0,
331
+ "max_abs_delta_inside_rf": 0.10376140965519931
332
+ },
333
+ {
334
+ "L": 16,
335
+ "k": 1,
336
+ "windows": [
337
+ 3
338
+ ],
339
+ "sum_W": 3,
340
+ "rf": 3,
341
+ "max_abs_delta_outside_rf": 0.0,
342
+ "max_abs_delta_inside_rf": 0.15220621062657136
343
+ },
344
+ {
345
+ "L": 16,
346
+ "k": 1,
347
+ "windows": [
348
+ 9
349
+ ],
350
+ "sum_W": 9,
351
+ "rf": 9,
352
+ "max_abs_delta_outside_rf": 0.0,
353
+ "max_abs_delta_inside_rf": 0.10168883280928198
354
+ },
355
+ {
356
+ "L": 16,
357
+ "k": 1,
358
+ "windows": [
359
+ 8
360
+ ],
361
+ "sum_W": 8,
362
+ "rf": 8,
363
+ "max_abs_delta_outside_rf": 0.0,
364
+ "max_abs_delta_inside_rf": 0.2597069821704449
365
+ },
366
+ {
367
+ "L": 16,
368
+ "k": 1,
369
+ "windows": [
370
+ 11
371
+ ],
372
+ "sum_W": 11,
373
+ "rf": 11,
374
+ "max_abs_delta_outside_rf": 0.0,
375
+ "max_abs_delta_inside_rf": 0.38062082529689295
376
+ },
377
+ {
378
+ "L": 16,
379
+ "k": 1,
380
+ "windows": [
381
+ 1
382
+ ],
383
+ "sum_W": 1,
384
+ "rf": 1,
385
+ "max_abs_delta_outside_rf": 0.0,
386
+ "max_abs_delta_inside_rf": 1.6831235344120234
387
+ },
388
+ {
389
+ "L": 16,
390
+ "k": 1,
391
+ "windows": [
392
+ 14
393
+ ],
394
+ "sum_W": 14,
395
+ "rf": 14,
396
+ "max_abs_delta_outside_rf": 0.0,
397
+ "max_abs_delta_inside_rf": 0.02255092704988093
398
+ },
399
+ {
400
+ "L": 16,
401
+ "k": 1,
402
+ "windows": [
403
+ 3
404
+ ],
405
+ "sum_W": 3,
406
+ "rf": 3,
407
+ "max_abs_delta_outside_rf": 0.0,
408
+ "max_abs_delta_inside_rf": 0.1579483465578484
409
+ },
410
+ {
411
+ "L": 16,
412
+ "k": 1,
413
+ "windows": [
414
+ 14
415
+ ],
416
+ "sum_W": 14,
417
+ "rf": 14,
418
+ "max_abs_delta_outside_rf": 0.0,
419
+ "max_abs_delta_inside_rf": 0.032733635175017234
420
+ },
421
+ {
422
+ "L": 16,
423
+ "k": 1,
424
+ "windows": [
425
+ 10
426
+ ],
427
+ "sum_W": 10,
428
+ "rf": 10,
429
+ "max_abs_delta_outside_rf": 0.0,
430
+ "max_abs_delta_inside_rf": 0.03131013093506363
431
+ },
432
+ {
433
+ "L": 16,
434
+ "k": 1,
435
+ "windows": [
436
+ 14
437
+ ],
438
+ "sum_W": 14,
439
+ "rf": 14,
440
+ "max_abs_delta_outside_rf": 0.0,
441
+ "max_abs_delta_inside_rf": 0.07259073385286363
442
+ },
443
+ {
444
+ "L": 16,
445
+ "k": 1,
446
+ "windows": [
447
+ 5
448
+ ],
449
+ "sum_W": 5,
450
+ "rf": 5,
451
+ "max_abs_delta_outside_rf": 0.0,
452
+ "max_abs_delta_inside_rf": 0.1621850317171365
453
+ }
454
+ ]
455
+ },
456
+ "local_sensitivity_witnesses": [
457
+ {
458
+ "L": 8,
459
+ "seed": 0,
460
+ "R_measured": 7,
461
+ "R_theory_max": 7,
462
+ "R_claimed_in_Thm_4_2": 4,
463
+ "same_in_every_window_below_R": true,
464
+ "F_x": 28,
465
+ "F_xprime": 16,
466
+ "outputs_differ": true
467
+ },
468
+ {
469
+ "L": 8,
470
+ "seed": 1,
471
+ "R_measured": 7,
472
+ "R_theory_max": 7,
473
+ "R_claimed_in_Thm_4_2": 4,
474
+ "same_in_every_window_below_R": true,
475
+ "F_x": 9,
476
+ "F_xprime": 31,
477
+ "outputs_differ": true
478
+ },
479
+ {
480
+ "L": 8,
481
+ "seed": 2,
482
+ "R_measured": 7,
483
+ "R_theory_max": 7,
484
+ "R_claimed_in_Thm_4_2": 4,
485
+ "same_in_every_window_below_R": true,
486
+ "F_x": 13,
487
+ "F_xprime": 18,
488
+ "outputs_differ": true
489
+ },
490
+ {
491
+ "L": 8,
492
+ "seed": 3,
493
+ "R_measured": 7,
494
+ "R_theory_max": 7,
495
+ "R_claimed_in_Thm_4_2": 4,
496
+ "same_in_every_window_below_R": true,
497
+ "F_x": 19,
498
+ "F_xprime": 13,
499
+ "outputs_differ": true
500
+ },
501
+ {
502
+ "L": 8,
503
+ "seed": 4,
504
+ "R_measured": 7,
505
+ "R_theory_max": 7,
506
+ "R_claimed_in_Thm_4_2": 4,
507
+ "same_in_every_window_below_R": true,
508
+ "F_x": 19,
509
+ "F_xprime": 32,
510
+ "outputs_differ": true
511
+ },
512
+ {
513
+ "L": 16,
514
+ "seed": 0,
515
+ "R_measured": 15,
516
+ "R_theory_max": 15,
517
+ "R_claimed_in_Thm_4_2": 8,
518
+ "same_in_every_window_below_R": true,
519
+ "F_x": 27,
520
+ "F_xprime": 8,
521
+ "outputs_differ": true
522
+ },
523
+ {
524
+ "L": 16,
525
+ "seed": 1,
526
+ "R_measured": 15,
527
+ "R_theory_max": 15,
528
+ "R_claimed_in_Thm_4_2": 8,
529
+ "same_in_every_window_below_R": true,
530
+ "F_x": 19,
531
+ "F_xprime": 15,
532
+ "outputs_differ": true
533
+ },
534
+ {
535
+ "L": 16,
536
+ "seed": 2,
537
+ "R_measured": 15,
538
+ "R_theory_max": 15,
539
+ "R_claimed_in_Thm_4_2": 8,
540
+ "same_in_every_window_below_R": true,
541
+ "F_x": 10,
542
+ "F_xprime": 30,
543
+ "outputs_differ": true
544
+ },
545
+ {
546
+ "L": 16,
547
+ "seed": 3,
548
+ "R_measured": 15,
549
+ "R_theory_max": 15,
550
+ "R_claimed_in_Thm_4_2": 8,
551
+ "same_in_every_window_below_R": true,
552
+ "F_x": 29,
553
+ "F_xprime": 30,
554
+ "outputs_differ": true
555
+ },
556
+ {
557
+ "L": 16,
558
+ "seed": 4,
559
+ "R_measured": 15,
560
+ "R_theory_max": 15,
561
+ "R_claimed_in_Thm_4_2": 8,
562
+ "same_in_every_window_below_R": true,
563
+ "F_x": 24,
564
+ "F_xprime": 18,
565
+ "outputs_differ": true
566
+ },
567
+ {
568
+ "L": 32,
569
+ "seed": 0,
570
+ "R_measured": 31,
571
+ "R_theory_max": 31,
572
+ "R_claimed_in_Thm_4_2": 16,
573
+ "same_in_every_window_below_R": true,
574
+ "F_x": 28,
575
+ "F_xprime": 23,
576
+ "outputs_differ": true
577
+ },
578
+ {
579
+ "L": 32,
580
+ "seed": 1,
581
+ "R_measured": 31,
582
+ "R_theory_max": 31,
583
+ "R_claimed_in_Thm_4_2": 16,
584
+ "same_in_every_window_below_R": true,
585
+ "F_x": 13,
586
+ "F_xprime": 23,
587
+ "outputs_differ": true
588
+ },
589
+ {
590
+ "L": 32,
591
+ "seed": 2,
592
+ "R_measured": 31,
593
+ "R_theory_max": 31,
594
+ "R_claimed_in_Thm_4_2": 16,
595
+ "same_in_every_window_below_R": true,
596
+ "F_x": 18,
597
+ "F_xprime": 14,
598
+ "outputs_differ": true
599
+ },
600
+ {
601
+ "L": 32,
602
+ "seed": 3,
603
+ "R_measured": 31,
604
+ "R_theory_max": 31,
605
+ "R_claimed_in_Thm_4_2": 16,
606
+ "same_in_every_window_below_R": true,
607
+ "F_x": 22,
608
+ "F_xprime": 10,
609
+ "outputs_differ": true
610
+ },
611
+ {
612
+ "L": 32,
613
+ "seed": 4,
614
+ "R_measured": 31,
615
+ "R_theory_max": 31,
616
+ "R_claimed_in_Thm_4_2": 16,
617
+ "same_in_every_window_below_R": true,
618
+ "F_x": 13,
619
+ "F_xprime": 22,
620
+ "outputs_differ": true
621
+ },
622
+ {
623
+ "L": 64,
624
+ "seed": 0,
625
+ "R_measured": 63,
626
+ "R_theory_max": 63,
627
+ "R_claimed_in_Thm_4_2": 32,
628
+ "same_in_every_window_below_R": true,
629
+ "F_x": 11,
630
+ "F_xprime": 19,
631
+ "outputs_differ": true
632
+ },
633
+ {
634
+ "L": 64,
635
+ "seed": 1,
636
+ "R_measured": 63,
637
+ "R_theory_max": 63,
638
+ "R_claimed_in_Thm_4_2": 32,
639
+ "same_in_every_window_below_R": true,
640
+ "F_x": 7,
641
+ "F_xprime": 32,
642
+ "outputs_differ": true
643
+ },
644
+ {
645
+ "L": 64,
646
+ "seed": 2,
647
+ "R_measured": 63,
648
+ "R_theory_max": 63,
649
+ "R_claimed_in_Thm_4_2": 32,
650
+ "same_in_every_window_below_R": true,
651
+ "F_x": 30,
652
+ "F_xprime": 8,
653
+ "outputs_differ": true
654
+ },
655
+ {
656
+ "L": 64,
657
+ "seed": 3,
658
+ "R_measured": 63,
659
+ "R_theory_max": 63,
660
+ "R_claimed_in_Thm_4_2": 32,
661
+ "same_in_every_window_below_R": true,
662
+ "F_x": 10,
663
+ "F_xprime": 19,
664
+ "outputs_differ": true
665
+ },
666
+ {
667
+ "L": 64,
668
+ "seed": 4,
669
+ "R_measured": 63,
670
+ "R_theory_max": 63,
671
+ "R_claimed_in_Thm_4_2": 32,
672
+ "same_in_every_window_below_R": true,
673
+ "F_x": 30,
674
+ "F_xprime": 18,
675
+ "outputs_differ": true
676
+ },
677
+ {
678
+ "L": 128,
679
+ "seed": 0,
680
+ "R_measured": 127,
681
+ "R_theory_max": 127,
682
+ "R_claimed_in_Thm_4_2": 64,
683
+ "same_in_every_window_below_R": true,
684
+ "F_x": 20,
685
+ "F_xprime": 8,
686
+ "outputs_differ": true
687
+ },
688
+ {
689
+ "L": 128,
690
+ "seed": 1,
691
+ "R_measured": 127,
692
+ "R_theory_max": 127,
693
+ "R_claimed_in_Thm_4_2": 64,
694
+ "same_in_every_window_below_R": true,
695
+ "F_x": 7,
696
+ "F_xprime": 24,
697
+ "outputs_differ": true
698
+ },
699
+ {
700
+ "L": 128,
701
+ "seed": 2,
702
+ "R_measured": 127,
703
+ "R_theory_max": 127,
704
+ "R_claimed_in_Thm_4_2": 64,
705
+ "same_in_every_window_below_R": true,
706
+ "F_x": 25,
707
+ "F_xprime": 17,
708
+ "outputs_differ": true
709
+ },
710
+ {
711
+ "L": 128,
712
+ "seed": 3,
713
+ "R_measured": 127,
714
+ "R_theory_max": 127,
715
+ "R_claimed_in_Thm_4_2": 64,
716
+ "same_in_every_window_below_R": true,
717
+ "F_x": 18,
718
+ "F_xprime": 7,
719
+ "outputs_differ": true
720
+ },
721
+ {
722
+ "L": 128,
723
+ "seed": 4,
724
+ "R_measured": 127,
725
+ "R_theory_max": 127,
726
+ "R_claimed_in_Thm_4_2": 64,
727
+ "same_in_every_window_below_R": true,
728
+ "F_x": 17,
729
+ "F_xprime": 16,
730
+ "outputs_differ": true
731
+ },
732
+ {
733
+ "L": 256,
734
+ "seed": 0,
735
+ "R_measured": 255,
736
+ "R_theory_max": 255,
737
+ "R_claimed_in_Thm_4_2": 128,
738
+ "same_in_every_window_below_R": true,
739
+ "F_x": 16,
740
+ "F_xprime": 28,
741
+ "outputs_differ": true
742
+ },
743
+ {
744
+ "L": 256,
745
+ "seed": 1,
746
+ "R_measured": 255,
747
+ "R_theory_max": 255,
748
+ "R_claimed_in_Thm_4_2": 128,
749
+ "same_in_every_window_below_R": true,
750
+ "F_x": 7,
751
+ "F_xprime": 12,
752
+ "outputs_differ": true
753
+ },
754
+ {
755
+ "L": 256,
756
+ "seed": 2,
757
+ "R_measured": 255,
758
+ "R_theory_max": 255,
759
+ "R_claimed_in_Thm_4_2": 128,
760
+ "same_in_every_window_below_R": true,
761
+ "F_x": 8,
762
+ "F_xprime": 20,
763
+ "outputs_differ": true
764
+ },
765
+ {
766
+ "L": 256,
767
+ "seed": 3,
768
+ "R_measured": 255,
769
+ "R_theory_max": 255,
770
+ "R_claimed_in_Thm_4_2": 128,
771
+ "same_in_every_window_below_R": true,
772
+ "F_x": 7,
773
+ "F_xprime": 29,
774
+ "outputs_differ": true
775
+ },
776
+ {
777
+ "L": 256,
778
+ "seed": 4,
779
+ "R_measured": 255,
780
+ "R_theory_max": 255,
781
+ "R_claimed_in_Thm_4_2": 128,
782
+ "same_in_every_window_below_R": true,
783
+ "F_x": 20,
784
+ "F_xprime": 13,
785
+ "outputs_differ": true
786
+ }
787
+ ],
788
+ "all_witnesses_valid": true,
789
+ "R_measured_equals_L_minus_1_everywhere": true,
790
+ "witness_indistinguishability": {
791
+ "16": {
792
+ "pairs": [
793
+ {
794
+ "L": 16,
795
+ "R": 15,
796
+ "k": 1,
797
+ "windows_short": [
798
+ 14
799
+ ],
800
+ "sum_W_short": 14,
801
+ "rf_short": 14,
802
+ "max_abs_delta_short": 0.0,
803
+ "windows_long": [
804
+ 16
805
+ ],
806
+ "sum_W_long": 16,
807
+ "max_abs_delta_long": 0.1769761959118361
808
+ },
809
+ {
810
+ "L": 16,
811
+ "R": 15,
812
+ "k": 2,
813
+ "windows_short": [
814
+ 7,
815
+ 7
816
+ ],
817
+ "sum_W_short": 14,
818
+ "rf_short": 13,
819
+ "max_abs_delta_short": 0.0,
820
+ "windows_long": [
821
+ 16,
822
+ 16
823
+ ],
824
+ "sum_W_long": 32,
825
+ "max_abs_delta_long": 0.1321795520296115
826
+ },
827
+ {
828
+ "L": 16,
829
+ "R": 15,
830
+ "k": 3,
831
+ "windows_short": [
832
+ 4,
833
+ 4,
834
+ 4
835
+ ],
836
+ "sum_W_short": 12,
837
+ "rf_short": 10,
838
+ "max_abs_delta_short": 0.0,
839
+ "windows_long": [
840
+ 16,
841
+ 16,
842
+ 16
843
+ ],
844
+ "sum_W_long": 48,
845
+ "max_abs_delta_long": 0.8786377218884379
846
+ },
847
+ {
848
+ "L": 16,
849
+ "R": 15,
850
+ "k": 1,
851
+ "windows_short": [
852
+ 14
853
+ ],
854
+ "sum_W_short": 14,
855
+ "rf_short": 14,
856
+ "max_abs_delta_short": 0.0,
857
+ "windows_long": [
858
+ 16
859
+ ],
860
+ "sum_W_long": 16,
861
+ "max_abs_delta_long": 0.0552757776663132
862
+ },
863
+ {
864
+ "L": 16,
865
+ "R": 15,
866
+ "k": 2,
867
+ "windows_short": [
868
+ 7,
869
+ 7
870
+ ],
871
+ "sum_W_short": 14,
872
+ "rf_short": 13,
873
+ "max_abs_delta_short": 0.0,
874
+ "windows_long": [
875
+ 16,
876
+ 16
877
+ ],
878
+ "sum_W_long": 32,
879
+ "max_abs_delta_long": 0.043267705611890306
880
+ },
881
+ {
882
+ "L": 16,
883
+ "R": 15,
884
+ "k": 3,
885
+ "windows_short": [
886
+ 4,
887
+ 4,
888
+ 4
889
+ ],
890
+ "sum_W_short": 12,
891
+ "rf_short": 10,
892
+ "max_abs_delta_short": 0.0,
893
+ "windows_long": [
894
+ 16,
895
+ 16,
896
+ 16
897
+ ],
898
+ "sum_W_long": 48,
899
+ "max_abs_delta_long": 0.766364411932395
900
+ },
901
+ {
902
+ "L": 16,
903
+ "R": 15,
904
+ "k": 1,
905
+ "windows_short": [
906
+ 14
907
+ ],
908
+ "sum_W_short": 14,
909
+ "rf_short": 14,
910
+ "max_abs_delta_short": 0.0,
911
+ "windows_long": [
912
+ 16
913
+ ],
914
+ "sum_W_long": 16,
915
+ "max_abs_delta_long": 0.05877028865718653
916
+ },
917
+ {
918
+ "L": 16,
919
+ "R": 15,
920
+ "k": 2,
921
+ "windows_short": [
922
+ 7,
923
+ 7
924
+ ],
925
+ "sum_W_short": 14,
926
+ "rf_short": 13,
927
+ "max_abs_delta_short": 0.0,
928
+ "windows_long": [
929
+ 16,
930
+ 16
931
+ ],
932
+ "sum_W_long": 32,
933
+ "max_abs_delta_long": 0.3569878953567704
934
+ },
935
+ {
936
+ "L": 16,
937
+ "R": 15,
938
+ "k": 3,
939
+ "windows_short": [
940
+ 4,
941
+ 4,
942
+ 4
943
+ ],
944
+ "sum_W_short": 12,
945
+ "rf_short": 10,
946
+ "max_abs_delta_short": 0.0,
947
+ "windows_long": [
948
+ 16,
949
+ 16,
950
+ 16
951
+ ],
952
+ "sum_W_long": 48,
953
+ "max_abs_delta_long": 0.5521298147300295
954
+ }
955
+ ],
956
+ "n_short_window_tests": 9,
957
+ "max_abs_delta_when_sumW_below_R": 0.0,
958
+ "n_long_window_tests": 9,
959
+ "n_long_window_separated": 9
960
+ },
961
+ "32": {
962
+ "pairs": [
963
+ {
964
+ "L": 32,
965
+ "R": 31,
966
+ "k": 1,
967
+ "windows_short": [
968
+ 30
969
+ ],
970
+ "sum_W_short": 30,
971
+ "rf_short": 30,
972
+ "max_abs_delta_short": 0.0,
973
+ "windows_long": [
974
+ 32
975
+ ],
976
+ "sum_W_long": 32,
977
+ "max_abs_delta_long": 0.03534840754759783
978
+ },
979
+ {
980
+ "L": 32,
981
+ "R": 31,
982
+ "k": 2,
983
+ "windows_short": [
984
+ 15,
985
+ 15
986
+ ],
987
+ "sum_W_short": 30,
988
+ "rf_short": 29,
989
+ "max_abs_delta_short": 0.0,
990
+ "windows_long": [
991
+ 32,
992
+ 32
993
+ ],
994
+ "sum_W_long": 64,
995
+ "max_abs_delta_long": 0.02080493890641305
996
+ },
997
+ {
998
+ "L": 32,
999
+ "R": 31,
1000
+ "k": 3,
1001
+ "windows_short": [
1002
+ 10,
1003
+ 10,
1004
+ 10
1005
+ ],
1006
+ "sum_W_short": 30,
1007
+ "rf_short": 28,
1008
+ "max_abs_delta_short": 0.0,
1009
+ "windows_long": [
1010
+ 32,
1011
+ 32,
1012
+ 32
1013
+ ],
1014
+ "sum_W_long": 96,
1015
+ "max_abs_delta_long": 0.152554442308942
1016
+ },
1017
+ {
1018
+ "L": 32,
1019
+ "R": 31,
1020
+ "k": 1,
1021
+ "windows_short": [
1022
+ 30
1023
+ ],
1024
+ "sum_W_short": 30,
1025
+ "rf_short": 30,
1026
+ "max_abs_delta_short": 0.0,
1027
+ "windows_long": [
1028
+ 32
1029
+ ],
1030
+ "sum_W_long": 32,
1031
+ "max_abs_delta_long": 0.16234324137652778
1032
+ },
1033
+ {
1034
+ "L": 32,
1035
+ "R": 31,
1036
+ "k": 2,
1037
+ "windows_short": [
1038
+ 15,
1039
+ 15
1040
+ ],
1041
+ "sum_W_short": 30,
1042
+ "rf_short": 29,
1043
+ "max_abs_delta_short": 0.0,
1044
+ "windows_long": [
1045
+ 32,
1046
+ 32
1047
+ ],
1048
+ "sum_W_long": 64,
1049
+ "max_abs_delta_long": 0.3830170389889227
1050
+ },
1051
+ {
1052
+ "L": 32,
1053
+ "R": 31,
1054
+ "k": 3,
1055
+ "windows_short": [
1056
+ 10,
1057
+ 10,
1058
+ 10
1059
+ ],
1060
+ "sum_W_short": 30,
1061
+ "rf_short": 28,
1062
+ "max_abs_delta_short": 0.0,
1063
+ "windows_long": [
1064
+ 32,
1065
+ 32,
1066
+ 32
1067
+ ],
1068
+ "sum_W_long": 96,
1069
+ "max_abs_delta_long": 0.12814149073121756
1070
+ },
1071
+ {
1072
+ "L": 32,
1073
+ "R": 31,
1074
+ "k": 1,
1075
+ "windows_short": [
1076
+ 30
1077
+ ],
1078
+ "sum_W_short": 30,
1079
+ "rf_short": 30,
1080
+ "max_abs_delta_short": 0.0,
1081
+ "windows_long": [
1082
+ 32
1083
+ ],
1084
+ "sum_W_long": 32,
1085
+ "max_abs_delta_long": 0.06166132814076597
1086
+ },
1087
+ {
1088
+ "L": 32,
1089
+ "R": 31,
1090
+ "k": 2,
1091
+ "windows_short": [
1092
+ 15,
1093
+ 15
1094
+ ],
1095
+ "sum_W_short": 30,
1096
+ "rf_short": 29,
1097
+ "max_abs_delta_short": 0.0,
1098
+ "windows_long": [
1099
+ 32,
1100
+ 32
1101
+ ],
1102
+ "sum_W_long": 64,
1103
+ "max_abs_delta_long": 0.13876098797379044
1104
+ },
1105
+ {
1106
+ "L": 32,
1107
+ "R": 31,
1108
+ "k": 3,
1109
+ "windows_short": [
1110
+ 10,
1111
+ 10,
1112
+ 10
1113
+ ],
1114
+ "sum_W_short": 30,
1115
+ "rf_short": 28,
1116
+ "max_abs_delta_short": 0.0,
1117
+ "windows_long": [
1118
+ 32,
1119
+ 32,
1120
+ 32
1121
+ ],
1122
+ "sum_W_long": 96,
1123
+ "max_abs_delta_long": 0.08809620618693226
1124
+ }
1125
+ ],
1126
+ "n_short_window_tests": 9,
1127
+ "max_abs_delta_when_sumW_below_R": 0.0,
1128
+ "n_long_window_tests": 9,
1129
+ "n_long_window_separated": 9
1130
+ },
1131
+ "64": {
1132
+ "pairs": [
1133
+ {
1134
+ "L": 64,
1135
+ "R": 63,
1136
+ "k": 1,
1137
+ "windows_short": [
1138
+ 62
1139
+ ],
1140
+ "sum_W_short": 62,
1141
+ "rf_short": 62,
1142
+ "max_abs_delta_short": 0.0,
1143
+ "windows_long": [
1144
+ 64
1145
+ ],
1146
+ "sum_W_long": 64,
1147
+ "max_abs_delta_long": 0.03295132835513548
1148
+ },
1149
+ {
1150
+ "L": 64,
1151
+ "R": 63,
1152
+ "k": 2,
1153
+ "windows_short": [
1154
+ 31,
1155
+ 31
1156
+ ],
1157
+ "sum_W_short": 62,
1158
+ "rf_short": 61,
1159
+ "max_abs_delta_short": 0.0,
1160
+ "windows_long": [
1161
+ 64,
1162
+ 64
1163
+ ],
1164
+ "sum_W_long": 128,
1165
+ "max_abs_delta_long": 0.36324841338320957
1166
+ },
1167
+ {
1168
+ "L": 64,
1169
+ "R": 63,
1170
+ "k": 3,
1171
+ "windows_short": [
1172
+ 20,
1173
+ 20,
1174
+ 20
1175
+ ],
1176
+ "sum_W_short": 60,
1177
+ "rf_short": 58,
1178
+ "max_abs_delta_short": 0.0,
1179
+ "windows_long": [
1180
+ 64,
1181
+ 64,
1182
+ 64
1183
+ ],
1184
+ "sum_W_long": 192,
1185
+ "max_abs_delta_long": 0.08466638568402152
1186
+ },
1187
+ {
1188
+ "L": 64,
1189
+ "R": 63,
1190
+ "k": 1,
1191
+ "windows_short": [
1192
+ 62
1193
+ ],
1194
+ "sum_W_short": 62,
1195
+ "rf_short": 62,
1196
+ "max_abs_delta_short": 0.0,
1197
+ "windows_long": [
1198
+ 64
1199
+ ],
1200
+ "sum_W_long": 64,
1201
+ "max_abs_delta_long": 0.23067972072479592
1202
+ },
1203
+ {
1204
+ "L": 64,
1205
+ "R": 63,
1206
+ "k": 2,
1207
+ "windows_short": [
1208
+ 31,
1209
+ 31
1210
+ ],
1211
+ "sum_W_short": 62,
1212
+ "rf_short": 61,
1213
+ "max_abs_delta_short": 0.0,
1214
+ "windows_long": [
1215
+ 64,
1216
+ 64
1217
+ ],
1218
+ "sum_W_long": 128,
1219
+ "max_abs_delta_long": 0.08941496277410776
1220
+ },
1221
+ {
1222
+ "L": 64,
1223
+ "R": 63,
1224
+ "k": 3,
1225
+ "windows_short": [
1226
+ 20,
1227
+ 20,
1228
+ 20
1229
+ ],
1230
+ "sum_W_short": 60,
1231
+ "rf_short": 58,
1232
+ "max_abs_delta_short": 0.0,
1233
+ "windows_long": [
1234
+ 64,
1235
+ 64,
1236
+ 64
1237
+ ],
1238
+ "sum_W_long": 192,
1239
+ "max_abs_delta_long": 0.04893897066339015
1240
+ },
1241
+ {
1242
+ "L": 64,
1243
+ "R": 63,
1244
+ "k": 1,
1245
+ "windows_short": [
1246
+ 62
1247
+ ],
1248
+ "sum_W_short": 62,
1249
+ "rf_short": 62,
1250
+ "max_abs_delta_short": 0.0,
1251
+ "windows_long": [
1252
+ 64
1253
+ ],
1254
+ "sum_W_long": 64,
1255
+ "max_abs_delta_long": 0.01683241713322925
1256
+ },
1257
+ {
1258
+ "L": 64,
1259
+ "R": 63,
1260
+ "k": 2,
1261
+ "windows_short": [
1262
+ 31,
1263
+ 31
1264
+ ],
1265
+ "sum_W_short": 62,
1266
+ "rf_short": 61,
1267
+ "max_abs_delta_short": 0.0,
1268
+ "windows_long": [
1269
+ 64,
1270
+ 64
1271
+ ],
1272
+ "sum_W_long": 128,
1273
+ "max_abs_delta_long": 0.09862298740622921
1274
+ },
1275
+ {
1276
+ "L": 64,
1277
+ "R": 63,
1278
+ "k": 3,
1279
+ "windows_short": [
1280
+ 20,
1281
+ 20,
1282
+ 20
1283
+ ],
1284
+ "sum_W_short": 60,
1285
+ "rf_short": 58,
1286
+ "max_abs_delta_short": 0.0,
1287
+ "windows_long": [
1288
+ 64,
1289
+ 64,
1290
+ 64
1291
+ ],
1292
+ "sum_W_long": 192,
1293
+ "max_abs_delta_long": 0.053174914892574254
1294
+ }
1295
+ ],
1296
+ "n_short_window_tests": 9,
1297
+ "max_abs_delta_when_sumW_below_R": 0.0,
1298
+ "n_long_window_tests": 9,
1299
+ "n_long_window_separated": 9
1300
+ }
1301
+ },
1302
+ "max_abs_delta_when_sumW_below_R": 0.0,
1303
+ "control_full_window_separates_frac": 1.0,
1304
+ "success_prob_when_sumW_below_R": 0.5,
1305
+ "threshold_in_theorem": 0.6666666666666666,
1306
+ "fails_theorem_threshold": true
1307
+ }
outputs/claim3.json ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "softmax_inverse_temperature_M": 30.0,
3
+ "gate_reference_target_mismatches": 0,
4
+ "gate_codes_injective": true,
5
+ "gate_matmul_vs_einsum": 0.0,
6
+ "exhaustive": [
7
+ {
8
+ "n_inputs": 3093,
9
+ "accuracy": 1.0,
10
+ "attention_argmax_correct": 1.0,
11
+ "ssm_state_correct": 1.0,
12
+ "max_softmax_leakage": 0.0,
13
+ "min_decode_margin": 2.0,
14
+ "offsets": [
15
+ 1,
16
+ 2,
17
+ 3
18
+ ],
19
+ "M": 2,
20
+ "L": 5,
21
+ "V": 5,
22
+ "embed_dim": 16,
23
+ "code_width_c": 3,
24
+ "log2_V": 2.321928094887362,
25
+ "log2_L": 2.321928094887362,
26
+ "window": 3,
27
+ "working_memory_ratio": 0.6,
28
+ "mamba_states": 4,
29
+ "exhaustive": true
30
+ },
31
+ {
32
+ "n_inputs": 45927,
33
+ "accuracy": 1.0,
34
+ "attention_argmax_correct": 1.0,
35
+ "ssm_state_correct": 1.0,
36
+ "max_softmax_leakage": 0.0,
37
+ "min_decode_margin": 2.0,
38
+ "offsets": [
39
+ 1,
40
+ 2,
41
+ 3
42
+ ],
43
+ "M": 3,
44
+ "L": 6,
45
+ "V": 6,
46
+ "embed_dim": 16,
47
+ "code_width_c": 3,
48
+ "log2_V": 2.584962500721156,
49
+ "log2_L": 2.584962500721156,
50
+ "window": 3,
51
+ "working_memory_ratio": 0.5,
52
+ "mamba_states": 4,
53
+ "exhaustive": true
54
+ },
55
+ {
56
+ "n_inputs": 821356,
57
+ "accuracy": 1.0,
58
+ "attention_argmax_correct": 1.0,
59
+ "ssm_state_correct": 1.0,
60
+ "max_softmax_leakage": 0.0,
61
+ "min_decode_margin": 2.0,
62
+ "offsets": [
63
+ 1,
64
+ 2,
65
+ 3,
66
+ 4
67
+ ],
68
+ "M": 3,
69
+ "L": 7,
70
+ "V": 7,
71
+ "embed_dim": 16,
72
+ "code_width_c": 3,
73
+ "log2_V": 2.807354922057604,
74
+ "log2_L": 2.807354922057604,
75
+ "window": 4,
76
+ "working_memory_ratio": 0.5714285714285714,
77
+ "mamba_states": 5,
78
+ "exhaustive": true
79
+ }
80
+ ],
81
+ "random_sweeps": [
82
+ {
83
+ "n_inputs": 66666,
84
+ "accuracy": 1.0,
85
+ "attention_argmax_correct": 1.0,
86
+ "ssm_state_correct": 1.0,
87
+ "max_softmax_leakage": 0.0,
88
+ "min_decode_margin": 2.0,
89
+ "accuracy_mean_over_seeds": 1.0,
90
+ "accuracy_std_over_seeds": 0.0,
91
+ "n_inputs_total": 199998,
92
+ "offsets_min_max": [
93
+ 1,
94
+ 6
95
+ ],
96
+ "n_offsets": 6,
97
+ "M": 4,
98
+ "L": 16,
99
+ "V": 10,
100
+ "embed_dim": 26,
101
+ "code_width_c": 5,
102
+ "log2_V": 3.321928094887362,
103
+ "log2_L": 4.0,
104
+ "window": 6,
105
+ "working_memory_ratio": 0.375,
106
+ "mamba_states": 7
107
+ },
108
+ {
109
+ "n_inputs": 66666,
110
+ "accuracy": 1.0,
111
+ "attention_argmax_correct": 1.0,
112
+ "ssm_state_correct": 1.0,
113
+ "max_softmax_leakage": 0.0,
114
+ "min_decode_margin": 2.0,
115
+ "accuracy_mean_over_seeds": 1.0,
116
+ "accuracy_std_over_seeds": 0.0,
117
+ "n_inputs_total": 199998,
118
+ "offsets_min_max": [
119
+ 5,
120
+ 10
121
+ ],
122
+ "n_offsets": 6,
123
+ "M": 26,
124
+ "L": 100,
125
+ "V": 32,
126
+ "embed_dim": 36,
127
+ "code_width_c": 7,
128
+ "log2_V": 5.0,
129
+ "log2_L": 6.643856189774724,
130
+ "window": 10,
131
+ "working_memory_ratio": 0.1,
132
+ "mamba_states": 7
133
+ },
134
+ {
135
+ "n_inputs": 31722,
136
+ "accuracy": 1.0,
137
+ "attention_argmax_correct": 1.0,
138
+ "ssm_state_correct": 1.0,
139
+ "max_softmax_leakage": 0.0,
140
+ "min_decode_margin": 2.0,
141
+ "accuracy_mean_over_seeds": 1.0,
142
+ "accuracy_std_over_seeds": 0.0,
143
+ "n_inputs_total": 99999,
144
+ "offsets_min_max": [
145
+ 5,
146
+ 10
147
+ ],
148
+ "n_offsets": 6,
149
+ "M": 194,
150
+ "L": 100,
151
+ "V": 200,
152
+ "embed_dim": 41,
153
+ "code_width_c": 8,
154
+ "log2_V": 7.643856189774724,
155
+ "log2_L": 6.643856189774724,
156
+ "window": 10,
157
+ "working_memory_ratio": 0.1,
158
+ "mamba_states": 7
159
+ },
160
+ {
161
+ "n_inputs": 15063,
162
+ "accuracy": 1.0,
163
+ "attention_argmax_correct": 1.0,
164
+ "ssm_state_correct": 1.0,
165
+ "max_softmax_leakage": 0.0,
166
+ "min_decode_margin": 2.0,
167
+ "accuracy_mean_over_seeds": 1.0,
168
+ "accuracy_std_over_seeds": 0.0,
169
+ "n_inputs_total": 99999,
170
+ "offsets_min_max": [
171
+ 5,
172
+ 10
173
+ ],
174
+ "n_offsets": 6,
175
+ "M": 994,
176
+ "L": 100,
177
+ "V": 1000,
178
+ "embed_dim": 51,
179
+ "code_width_c": 10,
180
+ "log2_V": 9.965784284662087,
181
+ "log2_L": 6.643856189774724,
182
+ "window": 10,
183
+ "working_memory_ratio": 0.1,
184
+ "mamba_states": 7
185
+ },
186
+ {
187
+ "n_inputs": 10000,
188
+ "accuracy": 1.0,
189
+ "attention_argmax_correct": 1.0,
190
+ "ssm_state_correct": 1.0,
191
+ "max_softmax_leakage": 0.0,
192
+ "min_decode_margin": 2.0,
193
+ "accuracy_mean_over_seeds": 1.0,
194
+ "accuracy_std_over_seeds": 0.0,
195
+ "n_inputs_total": 30000,
196
+ "offsets_min_max": [
197
+ 1,
198
+ 32
199
+ ],
200
+ "n_offsets": 32,
201
+ "M": 480,
202
+ "L": 1024,
203
+ "V": 512,
204
+ "embed_dim": 56,
205
+ "code_width_c": 11,
206
+ "log2_V": 9.0,
207
+ "log2_L": 10.0,
208
+ "window": 32,
209
+ "working_memory_ratio": 0.03125,
210
+ "mamba_states": 33
211
+ },
212
+ {
213
+ "n_inputs": 2000,
214
+ "accuracy": 1.0,
215
+ "attention_argmax_correct": 1.0,
216
+ "ssm_state_correct": 1.0,
217
+ "max_softmax_leakage": 0.0,
218
+ "min_decode_margin": 2.0,
219
+ "accuracy_mean_over_seeds": 1.0,
220
+ "accuracy_std_over_seeds": 0.0,
221
+ "n_inputs_total": 6000,
222
+ "offsets_min_max": [
223
+ 1,
224
+ 64
225
+ ],
226
+ "n_offsets": 64,
227
+ "M": 960,
228
+ "L": 4096,
229
+ "V": 1024,
230
+ "embed_dim": 66,
231
+ "code_width_c": 13,
232
+ "log2_V": 10.0,
233
+ "log2_L": 12.0,
234
+ "window": 64,
235
+ "working_memory_ratio": 0.015625,
236
+ "mamba_states": 65
237
+ }
238
+ ],
239
+ "total_inputs_tested": 1506370,
240
+ "min_accuracy_over_all_configs": 1.0,
241
+ "embed_dim_scaling": {
242
+ "rows": [
243
+ {
244
+ "V": 5,
245
+ "L": 5,
246
+ "embed_dim": 16,
247
+ "bound_max_log2": 2.321928094887362,
248
+ "ratio": 6.890824929174289
249
+ },
250
+ {
251
+ "V": 6,
252
+ "L": 6,
253
+ "embed_dim": 16,
254
+ "bound_max_log2": 2.584962500721156,
255
+ "ratio": 6.189644915752666
256
+ },
257
+ {
258
+ "V": 7,
259
+ "L": 7,
260
+ "embed_dim": 16,
261
+ "bound_max_log2": 2.807354922057604,
262
+ "ratio": 5.699314993728355
263
+ },
264
+ {
265
+ "V": 10,
266
+ "L": 16,
267
+ "embed_dim": 26,
268
+ "bound_max_log2": 4.0,
269
+ "ratio": 6.5
270
+ },
271
+ {
272
+ "V": 32,
273
+ "L": 100,
274
+ "embed_dim": 36,
275
+ "bound_max_log2": 6.643856189774724,
276
+ "ratio": 5.418539921951662
277
+ },
278
+ {
279
+ "V": 200,
280
+ "L": 100,
281
+ "embed_dim": 41,
282
+ "bound_max_log2": 7.643856189774724,
283
+ "ratio": 5.363784846560324
284
+ },
285
+ {
286
+ "V": 1000,
287
+ "L": 100,
288
+ "embed_dim": 51,
289
+ "bound_max_log2": 9.965784284662087,
290
+ "ratio": 5.11750992628768
291
+ },
292
+ {
293
+ "V": 512,
294
+ "L": 1024,
295
+ "embed_dim": 56,
296
+ "bound_max_log2": 10.0,
297
+ "ratio": 5.6
298
+ },
299
+ {
300
+ "V": 1024,
301
+ "L": 4096,
302
+ "embed_dim": 66,
303
+ "bound_max_log2": 12.0,
304
+ "ratio": 5.5
305
+ }
306
+ ],
307
+ "loglog_slope": 0.8804643490237325,
308
+ "R2": 0.9884958161715269,
309
+ "max_ratio": 6.890824929174289
310
+ },
311
+ "negative_controls": [
312
+ {
313
+ "offsets": [
314
+ 5,
315
+ 10
316
+ ],
317
+ "M": 26,
318
+ "L": 100,
319
+ "full_construction_accuracy": 1.0,
320
+ "control_window_minus_1_accuracy": 0.8386333333333333,
321
+ "control_window_minus_1_lower_bound": 0.8332666666666666,
322
+ "control_window_minus_1_excess_over_bound": 0.005366666666666742,
323
+ "frac_instances_needing_max_offset": 0.16673333333333334,
324
+ "control_no_ssm_query_accuracy": 0.09431666666666666,
325
+ "control_nonselective_ssm_accuracy": 0.26576666666666665,
326
+ "control_nonselective_ssm_state_correct": 0.18866666666666668,
327
+ "chance_level": 0.03125,
328
+ "analytic_softmax_leakage_bound": 7.880859686426868e-26
329
+ },
330
+ {
331
+ "offsets": [
332
+ 1,
333
+ 6
334
+ ],
335
+ "M": 4,
336
+ "L": 16,
337
+ "full_construction_accuracy": 1.0,
338
+ "control_window_minus_1_accuracy": 0.8489333333333333,
339
+ "control_window_minus_1_lower_bound": 0.8313833333333334,
340
+ "control_window_minus_1_excess_over_bound": 0.017549999999999955,
341
+ "frac_instances_needing_max_offset": 0.16861666666666666,
342
+ "control_no_ssm_query_accuracy": 0.26435,
343
+ "control_nonselective_ssm_accuracy": 0.6937666666666666,
344
+ "control_nonselective_ssm_state_correct": 0.6011666666666666,
345
+ "chance_level": 0.1,
346
+ "analytic_softmax_leakage_bound": 4.37825538134826e-26
347
+ }
348
+ ]
349
+ }
outputs/claim3_native.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "direct_native_notebook_execution",
3
+ "official_repository": "https://github.com/SprocketLab/hybrid-expressivity",
4
+ "repository_checkout": "6be8f8fbc2169290af6f4ba5e4bd53a5c6485f7b",
5
+ "repository_is_git_checkout": true,
6
+ "notebook": "source/official-code/constructions/construction_var_copy.ipynb",
7
+ "notebook_sha256": "78b23ac5677e16533425aba2036f691776ccb87b6195394a24d47f98384fb9b9",
8
+ "executed_code_cells": [
9
+ 1,
10
+ 2,
11
+ 3,
12
+ 4,
13
+ 5,
14
+ 6,
15
+ 7,
16
+ 8,
17
+ 9,
18
+ 10,
19
+ 11,
20
+ 12,
21
+ 13,
22
+ 14,
23
+ 15,
24
+ 16,
25
+ 17,
26
+ 18
27
+ ],
28
+ "device": "cpu",
29
+ "torch_version": "2.6.0",
30
+ "baseline": {
31
+ "n_batches": 256,
32
+ "examples_per_batch": 4,
33
+ "eligible_last_position_examples": 1024,
34
+ "correct_last_position_examples": 845,
35
+ "last_position_accuracy": 0.8251953125
36
+ },
37
+ "destructive_control": {
38
+ "ablation": "first SimpleSSM Delta vector set to zero in memory",
39
+ "eligible_last_position_examples": 1024,
40
+ "correct_last_position_examples": 56,
41
+ "last_position_accuracy": 0.0546875
42
+ },
43
+ "control_is_lower": true,
44
+ "scope": "Construction cells plus deterministic last-position batches; not a learned-model training rerun."
45
+ }
outputs/claim4.json ADDED
@@ -0,0 +1,293 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "gate_shift_head_vs_softmax_attention": 0.0,
3
+ "gate_reference_target_mismatches": 0,
4
+ "exhaustive_full_window": [
5
+ {
6
+ "n_instances": 13468,
7
+ "frac_target_defined": 0.822021484375,
8
+ "success": 1.0,
9
+ "ssm_key_decoded_correctly": 1.0,
10
+ "attention_argmax_correct": 1.0,
11
+ "max_softmax_leakage": 2.2336310578907614e-10,
12
+ "min_decode_margin": 1.9999999991065476,
13
+ "Mw": 4,
14
+ "L": 8,
15
+ "V": 6,
16
+ "ds": 2,
17
+ "embed_dim": 18,
18
+ "window": 8,
19
+ "exhaustive": true,
20
+ "n_enumerated": 16384
21
+ },
22
+ {
23
+ "n_instances": 56788,
24
+ "frac_target_defined": 0.86651611328125,
25
+ "success": 1.0,
26
+ "ssm_key_decoded_correctly": 1.0,
27
+ "attention_argmax_correct": 1.0,
28
+ "max_softmax_leakage": 1.6918977330249163e-10,
29
+ "min_decode_margin": 1.999999999323241,
30
+ "Mw": 4,
31
+ "L": 9,
32
+ "V": 6,
33
+ "ds": 2,
34
+ "embed_dim": 18,
35
+ "window": 9,
36
+ "exhaustive": true,
37
+ "n_enumerated": 65536
38
+ },
39
+ {
40
+ "n_instances": 127688,
41
+ "frac_target_defined": 0.487091064453125,
42
+ "success": 1.0,
43
+ "ssm_key_decoded_correctly": 1.0,
44
+ "attention_argmax_correct": 1.0,
45
+ "max_softmax_leakage": 2.2336310578907614e-10,
46
+ "min_decode_margin": 1.9999999991065476,
47
+ "Mw": 8,
48
+ "L": 8,
49
+ "V": 10,
50
+ "ds": 3,
51
+ "embed_dim": 22,
52
+ "window": 8,
53
+ "exhaustive": true,
54
+ "n_enumerated": 262144
55
+ }
56
+ ],
57
+ "theorem_window": [
58
+ {
59
+ "n_instances": 20000,
60
+ "frac_target_defined": 1.0,
61
+ "success": 0.9931,
62
+ "ssm_key_decoded_correctly": 1.0,
63
+ "attention_argmax_correct": 0.9926,
64
+ "max_softmax_leakage": 1.7788437389754108e-11,
65
+ "min_decode_margin": 1.9999999999288463,
66
+ "success_mean": 0.9934199319965998,
67
+ "success_std": 0.0004020322623794229,
68
+ "n_instances_total": 100000,
69
+ "Mw": 8,
70
+ "L": 100,
71
+ "V": 10,
72
+ "ds": 3,
73
+ "embed_dim": 25,
74
+ "bound_max_log2": 6.643856189774724,
75
+ "window_required": 39,
76
+ "window_over_Mw": 4.875,
77
+ "window_over_L": 0.39,
78
+ "analytic_success": 0.992850133023305,
79
+ "abs_gap_vs_analytic": 0.0005697989732947883,
80
+ "empirical_mean_meets_99pct": true,
81
+ "analytic_certificate_meets_99pct": true,
82
+ "seeds": 5
83
+ },
84
+ {
85
+ "n_instances": 20000,
86
+ "frac_target_defined": 1.0,
87
+ "success": 0.99195,
88
+ "ssm_key_decoded_correctly": 1.0,
89
+ "attention_argmax_correct": 0.9914,
90
+ "max_softmax_leakage": 1.5727419366839968e-11,
91
+ "min_decode_margin": 1.9999999999370899,
92
+ "success_mean": 0.99193,
93
+ "success_std": 0.0003203123475609443,
94
+ "n_instances_total": 100000,
95
+ "Mw": 16,
96
+ "L": 200,
97
+ "V": 18,
98
+ "ds": 4,
99
+ "embed_dim": 30,
100
+ "bound_max_log2": 7.643856189774724,
101
+ "window_required": 77,
102
+ "window_over_Mw": 4.8125,
103
+ "window_over_L": 0.385,
104
+ "analytic_success": 0.9915690899931828,
105
+ "abs_gap_vs_analytic": 0.00036091000681715,
106
+ "empirical_mean_meets_99pct": true,
107
+ "analytic_certificate_meets_99pct": true,
108
+ "seeds": 5
109
+ },
110
+ {
111
+ "n_instances": 20000,
112
+ "frac_target_defined": 1.0,
113
+ "success": 0.9892,
114
+ "ssm_key_decoded_correctly": 1.0,
115
+ "attention_argmax_correct": 0.98895,
116
+ "max_softmax_leakage": 1.478128730525441e-11,
117
+ "min_decode_margin": 1.9999999999408744,
118
+ "success_mean": 0.9908899999999999,
119
+ "success_std": 0.0010589617556833637,
120
+ "n_instances_total": 100000,
121
+ "Mw": 32,
122
+ "L": 400,
123
+ "V": 34,
124
+ "ds": 5,
125
+ "embed_dim": 35,
126
+ "bound_max_log2": 8.643856189774725,
127
+ "window_required": 152,
128
+ "window_over_Mw": 4.75,
129
+ "window_over_L": 0.38,
130
+ "analytic_success": 0.9908938689499518,
131
+ "abs_gap_vs_analytic": 3.868949951857381e-06,
132
+ "empirical_mean_meets_99pct": true,
133
+ "analytic_certificate_meets_99pct": true,
134
+ "seeds": 5
135
+ },
136
+ {
137
+ "n_instances": 20000,
138
+ "frac_target_defined": 1.0,
139
+ "success": 0.9904,
140
+ "ssm_key_decoded_correctly": 1.0,
141
+ "attention_argmax_correct": 0.99025,
142
+ "max_softmax_leakage": 1.4328316311207345e-11,
143
+ "min_decode_margin": 1.9999999999426867,
144
+ "success_mean": 0.9898197874893745,
145
+ "success_std": 0.0004907101259804869,
146
+ "n_instances_total": 100000,
147
+ "Mw": 64,
148
+ "L": 800,
149
+ "V": 66,
150
+ "ds": 6,
151
+ "embed_dim": 40,
152
+ "bound_max_log2": 9.643856189774725,
153
+ "window_required": 300,
154
+ "window_over_Mw": 4.6875,
155
+ "window_over_L": 0.375,
156
+ "analytic_success": 0.9903978217538046,
157
+ "abs_gap_vs_analytic": 0.0005780342644301495,
158
+ "empirical_mean_meets_99pct": false,
159
+ "analytic_certificate_meets_99pct": true,
160
+ "seeds": 5
161
+ },
162
+ {
163
+ "n_instances": 20000,
164
+ "frac_target_defined": 1.0,
165
+ "success": 0.9916,
166
+ "ssm_key_decoded_correctly": 1.0,
167
+ "attention_argmax_correct": 0.99155,
168
+ "max_softmax_leakage": 1.4106493750887239e-11,
169
+ "min_decode_margin": 1.999999999943574,
170
+ "success_mean": 0.99084,
171
+ "success_std": 0.0005304714883950082,
172
+ "n_instances_total": 100000,
173
+ "Mw": 128,
174
+ "L": 1600,
175
+ "V": 130,
176
+ "ds": 7,
177
+ "embed_dim": 45,
178
+ "bound_max_log2": 10.643856189774725,
179
+ "window_required": 596,
180
+ "window_over_Mw": 4.65625,
181
+ "window_over_L": 0.3725,
182
+ "analytic_success": 0.9902205760941751,
183
+ "abs_gap_vs_analytic": 0.0006194239058249229,
184
+ "empirical_mean_meets_99pct": true,
185
+ "analytic_certificate_meets_99pct": true,
186
+ "seeds": 5
187
+ }
188
+ ],
189
+ "min_success_at_theorem_window": 0.9898197874893745,
190
+ "max_gap_vs_analytic": 0.0006194239058249229,
191
+ "all_meet_99pct": true,
192
+ "negative_controls": [
193
+ {
194
+ "Mw": 16,
195
+ "L": 200,
196
+ "window_required": 77,
197
+ "full_window_success": 1.0,
198
+ "theorem_window_success": 0.991575,
199
+ "control_window_eq_Mw_success": 0.58775,
200
+ "control_window_eq_Mw_analytic": 0.5678578849390983,
201
+ "control_window_eq_Mw_gap": 0.019892115060901716,
202
+ "one_minus_1_over_e": 0.6321205588285577,
203
+ "control_blind_query_success": 0.032425,
204
+ "control_no_mamba_success": 0.1152,
205
+ "control_no_mamba_key_decoded": 0.063325,
206
+ "control_no_positional_bias_success": 0.248525,
207
+ "frac_key_repeated_in_window": 0.95075,
208
+ "control_no_bias_predicted_ceiling": 0.049250000000000016,
209
+ "chance_level": 0.0625
210
+ },
211
+ {
212
+ "Mw": 32,
213
+ "L": 400,
214
+ "window_required": 152,
215
+ "full_window_success": 1.0,
216
+ "theorem_window_success": 0.991075,
217
+ "control_window_eq_Mw_success": 0.6003,
218
+ "control_window_eq_Mw_analytic": 0.5889184036018332,
219
+ "control_window_eq_Mw_gap": 0.011381596398166716,
220
+ "one_minus_1_over_e": 0.6321205588285577,
221
+ "control_blind_query_success": 0.01555,
222
+ "control_no_mamba_success": 0.05795,
223
+ "control_no_mamba_key_decoded": 0.03065,
224
+ "control_no_positional_bias_success": 0.194175,
225
+ "frac_key_repeated_in_window": 0.947875,
226
+ "control_no_bias_predicted_ceiling": 0.05212499999999998,
227
+ "chance_level": 0.03125
228
+ }
229
+ ],
230
+ "window_sweep_Mw32_L400": [
231
+ {
232
+ "window": 8,
233
+ "success": 0.12866666666666668,
234
+ "analytic": 0.1192617416381836,
235
+ "abs_gap": 0.009404925028483085
236
+ },
237
+ {
238
+ "window": 16,
239
+ "success": 0.32953333333333334,
240
+ "analytic": 0.31681143890437935,
241
+ "abs_gap": 0.012721894428953995
242
+ },
243
+ {
244
+ "window": 32,
245
+ "success": 0.6007333333333333,
246
+ "analytic": 0.5889184036018332,
247
+ "abs_gap": 0.011814929731500112
248
+ },
249
+ {
250
+ "window": 64,
251
+ "success": 0.8548666666666667,
252
+ "analytic": 0.8511657337081133,
253
+ "abs_gap": 0.003700932958553338
254
+ },
255
+ {
256
+ "window": 96,
257
+ "success": 0.9476333333333333,
258
+ "analytic": 0.9461137666664393,
259
+ "abs_gap": 0.0015195666668940122
260
+ },
261
+ {
262
+ "window": 128,
263
+ "success": 0.9806,
264
+ "analytic": 0.9804902042034843,
265
+ "abs_gap": 0.00010979579651571036
266
+ },
267
+ {
268
+ "window": 154,
269
+ "success": 0.9916,
270
+ "analytic": 0.9914541094344762,
271
+ "abs_gap": 0.00014589056552383184
272
+ },
273
+ {
274
+ "window": 200,
275
+ "success": 0.9979666666666667,
276
+ "analytic": 0.9980162075146308,
277
+ "abs_gap": 4.954084796415792e-05
278
+ },
279
+ {
280
+ "window": 300,
281
+ "success": 0.9999333333333333,
282
+ "analytic": 0.9999170783772994,
283
+ "abs_gap": 1.6254956033967538e-05
284
+ },
285
+ {
286
+ "window": 400,
287
+ "success": 1.0,
288
+ "analytic": 0.9999964221046956,
289
+ "abs_gap": 3.5778953043630324e-06
290
+ }
291
+ ],
292
+ "window_sweep_max_gap": 0.012721894428953995
293
+ }
outputs/claim4_native.json ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "direct_native_notebook_execution",
3
+ "official_repository": "https://github.com/SprocketLab/hybrid-expressivity",
4
+ "repository_checkout": "6be8f8fbc2169290af6f4ba5e4bd53a5c6485f7b",
5
+ "repository_is_git_checkout": true,
6
+ "notebook": "source/official-code/constructions/construction_decode_recall.ipynb",
7
+ "notebook_sha256": "a6fa59b59c813a5349e8ff8995ba1e9bc8016586e25b1d961f3f5c30b94fa641",
8
+ "executed_code_cells": [
9
+ 1,
10
+ 2,
11
+ 3,
12
+ 4,
13
+ 5,
14
+ 6,
15
+ 7,
16
+ 8,
17
+ 9,
18
+ 10,
19
+ 11,
20
+ 12,
21
+ 13,
22
+ 14,
23
+ 15,
24
+ 16,
25
+ 17,
26
+ 18,
27
+ 19,
28
+ 20,
29
+ 21,
30
+ 22,
31
+ 23,
32
+ 24,
33
+ 26,
34
+ 27
35
+ ],
36
+ "device": "cpu",
37
+ "torch_version": "2.6.0",
38
+ "baseline": {
39
+ "n_batches": 256,
40
+ "examples_per_batch": 4,
41
+ "eligible_last_position_examples": 952,
42
+ "correct_last_position_examples": 883,
43
+ "last_position_accuracy": 0.9275210084033614
44
+ },
45
+ "destructive_control": {
46
+ "ablation": "first SimpleSSM Delta vector set to zero in memory",
47
+ "eligible_last_position_examples": 952,
48
+ "correct_last_position_examples": 25,
49
+ "last_position_accuracy": 0.026260504201680673
50
+ },
51
+ "control_is_lower": true,
52
+ "scope": "Construction cells plus deterministic last-position batches; not a learned-model training rerun."
53
+ }
outputs/claim5.json ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "exact_authored_source_audit",
3
+ "source": "source/authored/sections/experiments.tex",
4
+ "source_sha256": "fcd88332cbe90aff62337c3add333f71fc542736b3e459015a28f0b08ae3c55b",
5
+ "table_heading_line": 26,
6
+ "caption_line": 42,
7
+ "table_rows": [
8
+ {
9
+ "parameters_approx": 1000.0,
10
+ "pure_tf": 0.056,
11
+ "pure_ssm": 0.084,
12
+ "tf_to_ssm": 0.1,
13
+ "ssm_to_tf": 0.087
14
+ },
15
+ {
16
+ "parameters_approx": 2000.0,
17
+ "pure_tf": 0.352,
18
+ "pure_ssm": 0.305,
19
+ "tf_to_ssm": 0.433,
20
+ "ssm_to_tf": 0.999
21
+ },
22
+ {
23
+ "parameters_approx": 6000.0,
24
+ "pure_tf": 0.727,
25
+ "pure_ssm": 0.485,
26
+ "tf_to_ssm": 0.822,
27
+ "ssm_to_tf": 1.0
28
+ },
29
+ {
30
+ "parameters_approx": 12000.0,
31
+ "pure_tf": 0.923,
32
+ "pure_ssm": 0.931,
33
+ "tf_to_ssm": 0.908,
34
+ "ssm_to_tf": 1.0
35
+ }
36
+ ],
37
+ "literal_table_comparison": {
38
+ "hybrid_ssm_to_tf_at_approximately_2000": 0.999,
39
+ "pure_tf_at_approximately_12000": 0.923,
40
+ "pure_ssm_at_approximately_12000": 0.931,
41
+ "parameter_ratio_12000_over_2000": 6.0,
42
+ "strict_table_value_is_exactly_one": false
43
+ },
44
+ "source_caption_says_perfect": true,
45
+ "source_results_says_roughly_six_times": true,
46
+ "assessment": "The authored table supports the approximate 6x/near-perfect comparison (.999 versus .923/.931), but its printed .999 is not literally 1.000 while the caption calls it perfect. This is source evidence, not an independent learned-model reproduction.",
47
+ "training_route": {
48
+ "official_train_file": "source/official-code/micro_hf/train_utils.py",
49
+ "official_train_file_sha256": "ec4ccc0fa03f636f141904484f54763576e741c6f3586b1405343bb844c7c040",
50
+ "hard_coded_cuda_calls": 1,
51
+ "torch_cuda_available_on_this_host": false,
52
+ "result_artifacts_present": false,
53
+ "reason_no_local_training_rerun": "The official micro_hf entry point hard-codes CUDA tensors; this host has no CUDA device. The checkout contains figures and lrs.json metadata but no per-run evaluation JSON/CSV/checkpoint results."
54
+ }
55
+ }
outputs/claim6.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "exact_authored_source_audit",
3
+ "source": "source/authored/sections/experiments.tex",
4
+ "source_sha256": "fcd88332cbe90aff62337c3add333f71fc542736b3e459015a28f0b08ae3c55b",
5
+ "mkar_table_heading_line": 63,
6
+ "mkar_caption_line": 80,
7
+ "single_key_figure_result_line": 60,
8
+ "mkar_table_rows": [
9
+ {
10
+ "parameters_approx": 1000.0,
11
+ "pure_tf": 0.124,
12
+ "pure_ssm": 0.158,
13
+ "tf_to_ssm": 0.131,
14
+ "ssm_to_tf": 0.144
15
+ },
16
+ {
17
+ "parameters_approx": 2000.0,
18
+ "pure_tf": 0.159,
19
+ "pure_ssm": 0.173,
20
+ "tf_to_ssm": 0.183,
21
+ "ssm_to_tf": 0.512
22
+ },
23
+ {
24
+ "parameters_approx": 6000.0,
25
+ "pure_tf": 0.23,
26
+ "pure_ssm": 0.356,
27
+ "tf_to_ssm": 0.286,
28
+ "ssm_to_tf": 0.99
29
+ },
30
+ {
31
+ "parameters_approx": 12000.0,
32
+ "pure_tf": 0.668,
33
+ "pure_ssm": 0.517,
34
+ "tf_to_ssm": 0.524,
35
+ "ssm_to_tf": 0.989
36
+ }
37
+ ],
38
+ "literal_table_checks": {
39
+ "hybrid_ssm_to_tf_at_approximately_2000": 0.512,
40
+ "hybrid_ssm_to_tf_at_approximately_6000": 0.99,
41
+ "pure_tf_at_approximately_12000": 0.668,
42
+ "sixfold_parameter_ratio_from_2000_to_12000": 6.0,
43
+ "hybrid_reaches_0_60_at_approximately_2000": false,
44
+ "hybrid_reaches_0_60_at_approximately_6000": true,
45
+ "ratio_for_6000_vs_12000": 2.0
46
+ },
47
+ "source_caption_claims_60pct_and_six_times": true,
48
+ "single_key_statement_is_a_different_task": true,
49
+ "assessment": "The authored MKAR table is internally insufficient for the literal 60%-at-6x conjunction: at the 6x row it reports .512 (<.60), while at .990 the nearest shown pure-TF row is only 2x larger. The caption asserts the headline, but raw points needed to locate an unshown 60% crossing were not released. The <=40% statement is explicitly about associative recall with decoding (Figure 5), not MKAR (Figure 6).",
50
+ "training_route": {
51
+ "official_train_file": "source/official-code/micro_hf/train_utils.py",
52
+ "official_train_file_sha256": "ec4ccc0fa03f636f141904484f54763576e741c6f3586b1405343bb844c7c040",
53
+ "hard_coded_cuda_calls": 1,
54
+ "torch_cuda_available_on_this_host": false,
55
+ "result_artifacts_present": false,
56
+ "reason_no_local_training_rerun": "The official micro_hf entry point hard-codes CUDA tensors; this host has no CUDA device. The checkout contains figures and lrs.json metadata but no per-run evaluation JSON/CSV/checkpoint results."
57
+ }
58
+ }
pages/claim-1-theorem-3-3-literal-bound/page.md ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Theorem 3.3 proves that any k-layer state-space model solving the function-composition tasks under injectivity conditions must have total log state-space size scaling as Ω(m·log|V| − q·log|Y|), linear in the hidden dimension m (Theorem 3.3).
2
+
3
+ **Assessment: falsified as a literal positive linear lower-bound claim.**
4
+
5
+ Assumption 3.2 makes G: V^m → Y^q injective, so cardinality gives m·log₂|V| ≤ q·log₂|Y|. The printed right-hand side m·log|V| − q·log|Y| is therefore never positive under its own assumption. The appendix instead derives a different Fano bound under error < 1/8; that is not the printed probability-1/2 theorem.
6
+
7
+ ## Evidence
8
+
9
+ - Exact authored statement: source/authored/sections/func_comp_and_construct.tex:26–28.
10
+ - 1,296 admissible cardinality configurations: maximum printed RHS = 0.0.
11
+ - Exhaustive binary selective-copy partitions: one state attains exactly 1/2 success for m=2 and m=3, matching the theorem's printed threshold.
12
+ - The appendix source records its stronger, different prerequisite as err < 1/8 (source/authored/appendix/missing_proof_lb.tex).
13
+
14
+ ## Scope and limitations
15
+
16
+ This is a literal-statement audit, not a claim that no corrected lower bound can be proved. The exact selective-copy enumeration is finite; the cardinality implication itself is general.
pages/claim-2-theorem-3-7-window-bound/page.md ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Theorem 3.7 proves that sliding-window Transformers solving the same tasks under a local-sensitivity condition require total window size scaling with the context-dependency range R (Theorem 3.7).
2
+
3
+ **Assessment: supported by explicit paper-task witnesses and exact receptive-field checks.**
4
+
5
+ For the selective-copy witnesses, changing only a token outside the causal receptive field leaves the terminal logits bit-identical. On the two-point witness distribution this forces accuracy 1/2, below 2/3. A full-window control separates the same pair.
6
+
7
+ ## Evidence
8
+
9
+ - 960 real float64 causal-attention stacks; outside-RF violations = 0.
10
+ - Maximum terminal-logit change outside RF = 0.0 for the hard witnesses.
11
+ - Full-window control separates 100% of tested witness configurations.
12
+ - The source proof explicitly identifies the terminal dependency as the last sum_i W_i tokens (appendix/missing_proof_lb.tex).
13
+
14
+ ## Scope and limitations
15
+
16
+ Finite numerical checks cannot prove the universal theorem. They directly exercise its stated quantities (window, R, indistinguishability and success threshold) on the paper's selective-copy task rather than a proxy.
pages/claim-3-theorem-4-3-selective-copy/page.md ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Theorem 4.3 constructs a two-layer hybrid (Mamba + attention) model that solves the selective copying task using embedding dimension O(max(log|V|, log L)) and working memory Õ(N), versus Ω(L) required by pure Transformers (Theorem 4.3).
2
+
3
+ **Assessment: supported for the literal construction; official notebook does not establish its universal scope.**
4
+
5
+ A direct transcription of Appendix D.2/D.5 achieves exact final-position selective copying across exhaustive and large deterministic sweeps, with a window-minus-one and no-SSM destructive controls. The separately executed author notebook is included unchanged as provenance and scores only .825 on the notebook generator's 1,024 final-position examples, so it is not used as evidence of the theorem's 'every input' quantifier.
6
+
7
+ ## Evidence
8
+
9
+ - Independent construction: 1,506,370 valid inputs; minimum accuracy = 1.000000.
10
+ - Includes L=100, |V|=32 and longer L=1,024/4,096 sweeps; these are labelled construction checks, not learned-model runs.
11
+ - Native notebook baseline/control: 0.825195 / 0.054688 on 1024 eligible examples.
12
+ - The destructive construction controls remove one attention position, zero the query, or disable selective state update.
13
+
14
+ ## Scope and limitations
15
+
16
+ The independent checker is a faithful finite implementation of the written construction, not a mechanized proof. The native notebook's aggregate failure is retained rather than overwritten or relabelled as a success.
pages/claim-4-theorem-4-6-associative-recall/page.md ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Theorem 4.6 constructs a three-layer hybrid model that achieves 99% accuracy on the associative recall task using embedding dimension O(max(log|V|, log L)) and window size Õ(|V|) (Theorem 4.6).
2
+
3
+ **Assessment: supported by a full-vocabulary construction and exact coverage certificate; native notebook is only a limited check.**
4
+
5
+ The Appendix D.4 construction was implemented with the stated full-vocabulary binary code, last-match positional bias, and a finite softmax separation. Its exact iid coverage formula is at least .99 for each measured scale; the 5×20,000-instance point estimates track that certificate (one mean, .989820, is below .99 and is not relabelled as an empirical pass). The implementation also exhausts three small full-window domains.
6
+
7
+ ## Evidence
8
+
9
+ - All analytic coverage certificates meet 99%: True.
10
+ - Minimum five-seed empirical mean = 0.989820; maximum gap from exact coverage = 0.000619.
11
+ - Exhaustive full-window domains (|M|, L)=(4,8),(4,9),(8,8) all score 1.0.
12
+ - Native authored notebook baseline/control: 0.927521 / 0.026261; it has no windowed 99%-coverage test.
13
+
14
+ ## Scope and limitations
15
+
16
+ The native notebook is a direct one-construction execution, not the paper's probabilistic window experiment. The 99% support comes from the written construction plus an exact iid coverage calculation and finite tests; it is not a claimed learned-model training rerun.
pages/claim-5-figure-4-selective-copy-learning/page.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # On the selective copying task, the learned hybrid model reaches perfect accuracy with roughly 2,000 parameters while pure Transformer/SSM models need roughly 12,000 parameters to match it, a 6x parameter gap (Figure 4).
2
+
3
+ **Assessment: authored-source supported, but not independently reproduced.**
4
+
5
+ The exact authored Figure 4 table gives SSM→TF .999 at approximately 2,000 parameters and pure TF/SSM .923/.931 at approximately 12,000 parameters, a sixfold nominal parameter ratio. The caption calls .999 'perfect', so the strict word perfect and printed value are internally inconsistent at the shown precision.
6
+
7
+ ## Evidence
8
+
9
+ - Pinned source table: hybrid@2k=0.999; pure TF/SSM@12k=0.923/0.931.
10
+ - The TeX table, caption, and source-file SHA are in outputs/claim5.json.
11
+ - The official micro_hf training path contains hard-coded CUDA transfers and this machine has no CUDA device; no local run is presented as a reproduction.
12
+
13
+ ## Scope and limitations
14
+
15
+ The repository did not contain per-run scalar results, checkpoints, or an author-pinned code commit in the arXiv archive. This page reports the paper's own exact table, not an independent empirical confirmation.
pages/claim-6-figures-5-6-associative-recall-learning/page.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # On multi-key associative recall, the hybrid model reaches 60% accuracy using 6x fewer parameters than pure Transformers, which plateau near 40% accuracy on single-key associative recall (Figures 5-6).
2
+
3
+ **Assessment: not independently established; the authored MKAR table conflicts with the literal numeric conjunction.**
4
+
5
+ The Figure 6 table's sixfold row is approximately 2,000 versus 12,000 parameters, where SSM→TF is .512—not 60%. At the first shown hybrid result above 60% (.990 at approximately 6,000), the nearest shown pure-TF row is approximately 12,000, only 2× larger. The caption asserts 60%-at-6×, but the raw points needed to locate a different crossing were not released.
6
+
7
+ ## Evidence
8
+
9
+ - Pinned MKAR values: hybrid@2k=0.512, hybrid@6k=0.990, pure TF@12k=0.668.
10
+ - The <=40% sentence is from Figure 5's associative recall with decoding, a different task from Figure 6's MKAR; it is not treated as an MKAR plateau measurement.
11
+ - The exact TeX/table SHA and CUDA-only non-rerun route are recorded in outputs/claim6.json.
12
+
13
+ ## Scope and limitations
14
+
15
+ This is an authored-source/data audit. It does not infer a curve between unreleased points or substitute the Figure 5 task for MKAR. A GPU rerun would require compatible CUDA hardware and a declared protocol; neither is claimed here.
pages/executive-summary/page.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Executive summary
2
+
3
+ This is a six-claim audit of arXiv:2603.08859v1 / OpenReview `82EJxJzG6r`. Claim text is frozen in `CLAIMS.json`; evidence does not rewrite scope.
4
+
5
+ | claim | subject | assessment | headline |
6
+ | --- | --- | --- | --- |
7
+ | 1 | Theorem 3.3 literal lower bound | falsified | printed RHS non-positive under injectivity |
8
+ | 2 | Theorem 3.7 window lower bound | supported | paper-task witnesses and real attention stacks |
9
+ | 3 | Theorem 4.3 selective copy | supported | independent construction; native notebook limitation retained |
10
+ | 4 | Theorem 4.6 associative recall | supported | full-vocabulary construction and exact coverage |
11
+ | 5 | Figure 4 learned selective copy | source-supported | reported table only; .999/perfect rounding conflict |
12
+ | 6 | Figures 5–6 learned recall | not established | MKAR table conflicts with 60%-at-6x conjunction |
13
+
14
+ The package distinguishes (1) native author-notebook execution, (2) an independent implementation of the written constructions, and (3) exact authored-table evidence. GPU-only learned-model training was not rerun on this non-CUDA host.
pages/index.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Reproduction audit: Expressivity-Efficiency Tradeoffs for Hybrid Sequence Models
2
+
3
+ Paper: arXiv:2603.08859v1 · OpenReview `82EJxJzG6r`
4
+
5
+ Six registered claims are preserved verbatim in `CLAIMS.json`. Run `python3 run_all.py` for paired deterministic replays, page generation, validation, and a recursive manifest.
paper_text.txt ADDED
The diff for this file is too large to render. See raw diff
 
replay_a/claim1.json ADDED
@@ -0,0 +1,747 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "task": "F(u,v) = u_v with Q = [m]; G(u)=u is injective (Asm 3.2)",
3
+ "grid": [
4
+ {
5
+ "m": 2,
6
+ "V": 2,
7
+ "n_prefixes": 4,
8
+ "log2_states_required": 2.0,
9
+ "theory_m_log2_V": 2.0,
10
+ "abs_residual": 0.0,
11
+ "pairs_checked": 6,
12
+ "pairs_separated": 6,
13
+ "all_pairs_separated": true,
14
+ "min_separating_queries": 1,
15
+ "control_states": 3,
16
+ "control_acc_closed_form": 0.875,
17
+ "control_acc_bruteforce": 0.875,
18
+ "control_acc_gap": 0.0,
19
+ "control_witness_pair": [
20
+ [
21
+ 0,
22
+ 0
23
+ ],
24
+ [
25
+ 0,
26
+ 1
27
+ ]
28
+ ]
29
+ },
30
+ {
31
+ "m": 3,
32
+ "V": 2,
33
+ "n_prefixes": 8,
34
+ "log2_states_required": 3.0,
35
+ "theory_m_log2_V": 3.0,
36
+ "abs_residual": 0.0,
37
+ "pairs_checked": 28,
38
+ "pairs_separated": 28,
39
+ "all_pairs_separated": true,
40
+ "min_separating_queries": 1,
41
+ "control_states": 7,
42
+ "control_acc_closed_form": 0.9583333333333334,
43
+ "control_acc_bruteforce": 0.9583333333333334,
44
+ "control_acc_gap": 0.0,
45
+ "control_witness_pair": [
46
+ [
47
+ 0,
48
+ 0,
49
+ 0
50
+ ],
51
+ [
52
+ 0,
53
+ 0,
54
+ 1
55
+ ]
56
+ ]
57
+ },
58
+ {
59
+ "m": 4,
60
+ "V": 2,
61
+ "n_prefixes": 16,
62
+ "log2_states_required": 4.0,
63
+ "theory_m_log2_V": 4.0,
64
+ "abs_residual": 0.0,
65
+ "pairs_checked": 120,
66
+ "pairs_separated": 120,
67
+ "all_pairs_separated": true,
68
+ "min_separating_queries": 1,
69
+ "control_states": 15,
70
+ "control_acc_closed_form": 0.984375,
71
+ "control_acc_bruteforce": 0.984375,
72
+ "control_acc_gap": 0.0,
73
+ "control_witness_pair": [
74
+ [
75
+ 0,
76
+ 0,
77
+ 0,
78
+ 0
79
+ ],
80
+ [
81
+ 0,
82
+ 0,
83
+ 0,
84
+ 1
85
+ ]
86
+ ]
87
+ },
88
+ {
89
+ "m": 5,
90
+ "V": 2,
91
+ "n_prefixes": 32,
92
+ "log2_states_required": 5.0,
93
+ "theory_m_log2_V": 5.0,
94
+ "abs_residual": 0.0,
95
+ "pairs_checked": 496,
96
+ "pairs_separated": 496,
97
+ "all_pairs_separated": true,
98
+ "min_separating_queries": 1,
99
+ "control_states": 31,
100
+ "control_acc_closed_form": 0.99375,
101
+ "control_acc_bruteforce": 0.99375,
102
+ "control_acc_gap": 0.0,
103
+ "control_witness_pair": [
104
+ [
105
+ 0,
106
+ 0,
107
+ 0,
108
+ 0,
109
+ 0
110
+ ],
111
+ [
112
+ 0,
113
+ 0,
114
+ 0,
115
+ 0,
116
+ 1
117
+ ]
118
+ ]
119
+ },
120
+ {
121
+ "m": 6,
122
+ "V": 2,
123
+ "n_prefixes": 64,
124
+ "log2_states_required": 6.0,
125
+ "theory_m_log2_V": 6.0,
126
+ "abs_residual": 0.0,
127
+ "pairs_checked": 2016,
128
+ "pairs_separated": 2016,
129
+ "all_pairs_separated": true,
130
+ "min_separating_queries": 1,
131
+ "control_states": 63,
132
+ "control_acc_closed_form": 0.9973958333333334,
133
+ "control_acc_bruteforce": 0.9973958333333334,
134
+ "control_acc_gap": 0.0,
135
+ "control_witness_pair": [
136
+ [
137
+ 0,
138
+ 0,
139
+ 0,
140
+ 0,
141
+ 0,
142
+ 0
143
+ ],
144
+ [
145
+ 0,
146
+ 0,
147
+ 0,
148
+ 0,
149
+ 0,
150
+ 1
151
+ ]
152
+ ]
153
+ },
154
+ {
155
+ "m": 7,
156
+ "V": 2,
157
+ "n_prefixes": 128,
158
+ "log2_states_required": 7.0,
159
+ "theory_m_log2_V": 7.0,
160
+ "abs_residual": 0.0,
161
+ "pairs_checked": 8128,
162
+ "pairs_separated": 8128,
163
+ "all_pairs_separated": true,
164
+ "min_separating_queries": 1,
165
+ "control_states": 127,
166
+ "control_acc_closed_form": 0.9988839285714286,
167
+ "control_acc_bruteforce": 0.9988839285714286,
168
+ "control_acc_gap": 0.0,
169
+ "control_witness_pair": [
170
+ [
171
+ 0,
172
+ 0,
173
+ 0,
174
+ 0,
175
+ 0,
176
+ 0,
177
+ 0
178
+ ],
179
+ [
180
+ 0,
181
+ 0,
182
+ 0,
183
+ 0,
184
+ 0,
185
+ 0,
186
+ 1
187
+ ]
188
+ ]
189
+ },
190
+ {
191
+ "m": 8,
192
+ "V": 2,
193
+ "n_prefixes": 256,
194
+ "log2_states_required": 8.0,
195
+ "theory_m_log2_V": 8.0,
196
+ "abs_residual": 0.0,
197
+ "pairs_checked": 32640,
198
+ "pairs_separated": 32640,
199
+ "all_pairs_separated": true,
200
+ "min_separating_queries": 1,
201
+ "control_states": 255,
202
+ "control_acc_closed_form": 0.99951171875,
203
+ "control_acc_bruteforce": 0.99951171875,
204
+ "control_acc_gap": 0.0,
205
+ "control_witness_pair": [
206
+ [
207
+ 0,
208
+ 0,
209
+ 0,
210
+ 0,
211
+ 0,
212
+ 0,
213
+ 0,
214
+ 0
215
+ ],
216
+ [
217
+ 0,
218
+ 0,
219
+ 0,
220
+ 0,
221
+ 0,
222
+ 0,
223
+ 0,
224
+ 1
225
+ ]
226
+ ]
227
+ },
228
+ {
229
+ "m": 9,
230
+ "V": 2,
231
+ "n_prefixes": 512,
232
+ "log2_states_required": 9.0,
233
+ "theory_m_log2_V": 9.0,
234
+ "abs_residual": 0.0,
235
+ "pairs_checked": 130816,
236
+ "pairs_separated": 130816,
237
+ "all_pairs_separated": true,
238
+ "min_separating_queries": 1,
239
+ "control_states": 511,
240
+ "control_acc_closed_form": 0.9997829861111112
241
+ },
242
+ {
243
+ "m": 10,
244
+ "V": 2,
245
+ "n_prefixes": 1024,
246
+ "log2_states_required": 10.0,
247
+ "theory_m_log2_V": 10.0,
248
+ "abs_residual": 0.0,
249
+ "control_states": 1023,
250
+ "control_acc_closed_form": 0.99990234375
251
+ },
252
+ {
253
+ "m": 2,
254
+ "V": 3,
255
+ "n_prefixes": 9,
256
+ "log2_states_required": 3.169925001442312,
257
+ "theory_m_log2_V": 3.169925001442312,
258
+ "abs_residual": 0.0,
259
+ "pairs_checked": 36,
260
+ "pairs_separated": 36,
261
+ "all_pairs_separated": true,
262
+ "min_separating_queries": 1,
263
+ "control_states": 8,
264
+ "control_acc_closed_form": 0.9444444444444444,
265
+ "control_acc_bruteforce": 0.9444444444444444,
266
+ "control_acc_gap": 0.0,
267
+ "control_witness_pair": [
268
+ [
269
+ 0,
270
+ 0
271
+ ],
272
+ [
273
+ 0,
274
+ 1
275
+ ]
276
+ ]
277
+ },
278
+ {
279
+ "m": 3,
280
+ "V": 3,
281
+ "n_prefixes": 27,
282
+ "log2_states_required": 4.754887502163468,
283
+ "theory_m_log2_V": 4.754887502163468,
284
+ "abs_residual": 0.0,
285
+ "pairs_checked": 351,
286
+ "pairs_separated": 351,
287
+ "all_pairs_separated": true,
288
+ "min_separating_queries": 1,
289
+ "control_states": 26,
290
+ "control_acc_closed_form": 0.9876543209876543,
291
+ "control_acc_bruteforce": 0.9876543209876543,
292
+ "control_acc_gap": 0.0,
293
+ "control_witness_pair": [
294
+ [
295
+ 0,
296
+ 0,
297
+ 0
298
+ ],
299
+ [
300
+ 0,
301
+ 0,
302
+ 1
303
+ ]
304
+ ]
305
+ },
306
+ {
307
+ "m": 4,
308
+ "V": 3,
309
+ "n_prefixes": 81,
310
+ "log2_states_required": 6.339850002884624,
311
+ "theory_m_log2_V": 6.339850002884624,
312
+ "abs_residual": 0.0,
313
+ "pairs_checked": 3240,
314
+ "pairs_separated": 3240,
315
+ "all_pairs_separated": true,
316
+ "min_separating_queries": 1,
317
+ "control_states": 80,
318
+ "control_acc_closed_form": 0.9969135802469136,
319
+ "control_acc_bruteforce": 0.9969135802469136,
320
+ "control_acc_gap": 0.0,
321
+ "control_witness_pair": [
322
+ [
323
+ 0,
324
+ 0,
325
+ 0,
326
+ 0
327
+ ],
328
+ [
329
+ 0,
330
+ 0,
331
+ 0,
332
+ 1
333
+ ]
334
+ ]
335
+ },
336
+ {
337
+ "m": 5,
338
+ "V": 3,
339
+ "n_prefixes": 243,
340
+ "log2_states_required": 7.924812503605781,
341
+ "theory_m_log2_V": 7.92481250360578,
342
+ "abs_residual": 8.881784197001252e-16,
343
+ "pairs_checked": 29403,
344
+ "pairs_separated": 29403,
345
+ "all_pairs_separated": true,
346
+ "min_separating_queries": 1,
347
+ "control_states": 242,
348
+ "control_acc_closed_form": 0.9991769547325103,
349
+ "control_acc_bruteforce": 0.9991769547325103,
350
+ "control_acc_gap": 0.0,
351
+ "control_witness_pair": [
352
+ [
353
+ 0,
354
+ 0,
355
+ 0,
356
+ 0,
357
+ 0
358
+ ],
359
+ [
360
+ 0,
361
+ 0,
362
+ 0,
363
+ 0,
364
+ 1
365
+ ]
366
+ ]
367
+ },
368
+ {
369
+ "m": 6,
370
+ "V": 3,
371
+ "n_prefixes": 729,
372
+ "log2_states_required": 9.509775004326936,
373
+ "theory_m_log2_V": 9.509775004326936,
374
+ "abs_residual": 0.0,
375
+ "control_states": 728,
376
+ "control_acc_closed_form": 0.9997713763145862
377
+ },
378
+ {
379
+ "m": 7,
380
+ "V": 3,
381
+ "n_prefixes": 2187,
382
+ "log2_states_required": 11.094737505048093,
383
+ "theory_m_log2_V": 11.094737505048093,
384
+ "abs_residual": 0.0,
385
+ "control_states": 2186,
386
+ "control_acc_closed_form": 0.9999346789470246
387
+ },
388
+ {
389
+ "m": 2,
390
+ "V": 4,
391
+ "n_prefixes": 16,
392
+ "log2_states_required": 4.0,
393
+ "theory_m_log2_V": 4.0,
394
+ "abs_residual": 0.0,
395
+ "pairs_checked": 120,
396
+ "pairs_separated": 120,
397
+ "all_pairs_separated": true,
398
+ "min_separating_queries": 1,
399
+ "control_states": 15,
400
+ "control_acc_closed_form": 0.96875,
401
+ "control_acc_bruteforce": 0.96875,
402
+ "control_acc_gap": 0.0,
403
+ "control_witness_pair": [
404
+ [
405
+ 0,
406
+ 0
407
+ ],
408
+ [
409
+ 0,
410
+ 1
411
+ ]
412
+ ]
413
+ },
414
+ {
415
+ "m": 3,
416
+ "V": 4,
417
+ "n_prefixes": 64,
418
+ "log2_states_required": 6.0,
419
+ "theory_m_log2_V": 6.0,
420
+ "abs_residual": 0.0,
421
+ "pairs_checked": 2016,
422
+ "pairs_separated": 2016,
423
+ "all_pairs_separated": true,
424
+ "min_separating_queries": 1,
425
+ "control_states": 63,
426
+ "control_acc_closed_form": 0.9947916666666666,
427
+ "control_acc_bruteforce": 0.9947916666666666,
428
+ "control_acc_gap": 0.0,
429
+ "control_witness_pair": [
430
+ [
431
+ 0,
432
+ 0,
433
+ 0
434
+ ],
435
+ [
436
+ 0,
437
+ 0,
438
+ 1
439
+ ]
440
+ ]
441
+ },
442
+ {
443
+ "m": 4,
444
+ "V": 4,
445
+ "n_prefixes": 256,
446
+ "log2_states_required": 8.0,
447
+ "theory_m_log2_V": 8.0,
448
+ "abs_residual": 0.0,
449
+ "pairs_checked": 32640,
450
+ "pairs_separated": 32640,
451
+ "all_pairs_separated": true,
452
+ "min_separating_queries": 1,
453
+ "control_states": 255,
454
+ "control_acc_closed_form": 0.9990234375,
455
+ "control_acc_bruteforce": 0.9990234375,
456
+ "control_acc_gap": 0.0,
457
+ "control_witness_pair": [
458
+ [
459
+ 0,
460
+ 0,
461
+ 0,
462
+ 0
463
+ ],
464
+ [
465
+ 0,
466
+ 0,
467
+ 0,
468
+ 1
469
+ ]
470
+ ]
471
+ },
472
+ {
473
+ "m": 5,
474
+ "V": 4,
475
+ "n_prefixes": 1024,
476
+ "log2_states_required": 10.0,
477
+ "theory_m_log2_V": 10.0,
478
+ "abs_residual": 0.0,
479
+ "control_states": 1023,
480
+ "control_acc_closed_form": 0.9998046875
481
+ },
482
+ {
483
+ "m": 6,
484
+ "V": 4,
485
+ "n_prefixes": 4096,
486
+ "log2_states_required": 12.0,
487
+ "theory_m_log2_V": 12.0,
488
+ "abs_residual": 0.0,
489
+ "control_states": 4095,
490
+ "control_acc_closed_form": 0.9999593098958334
491
+ }
492
+ ],
493
+ "max_residual_log2_states": 8.881784197001252e-16,
494
+ "max_control_gap": 0.0,
495
+ "all_pairs_separated_everywhere": true,
496
+ "linear_in_m_fit": {
497
+ "2": {
498
+ "fitted_slope": 1.0,
499
+ "theory_slope_log2_V": 1.0,
500
+ "slope_abs_err": 0.0,
501
+ "intercept": 1.6770126117963062e-15,
502
+ "R2": 1.0,
503
+ "max_abs_residual": 1.7763568394002505e-15
504
+ },
505
+ "3": {
506
+ "fitted_slope": 1.5849625007211565,
507
+ "theory_slope_log2_V": 1.584962500721156,
508
+ "slope_abs_err": 4.440892098500626e-16,
509
+ "intercept": -4.520058619021783e-15,
510
+ "R2": 1.0,
511
+ "max_abs_residual": 3.552713678800501e-15
512
+ },
513
+ "4": {
514
+ "fitted_slope": 2.0,
515
+ "theory_slope_log2_V": 2.0,
516
+ "slope_abs_err": 0.0,
517
+ "intercept": -1.3107111616019684e-15,
518
+ "R2": 1.0,
519
+ "max_abs_residual": 1.7763568394002505e-15
520
+ }
521
+ },
522
+ "exhaustive_accuracy_curves": [
523
+ {
524
+ "m": 2,
525
+ "V": 2,
526
+ "n_prefixes": 4,
527
+ "partitions_enumerated": "Bell(4)",
528
+ "A_star": {
529
+ "1": 0.5,
530
+ "2": 0.75,
531
+ "3": 0.875,
532
+ "4": 1.0
533
+ },
534
+ "min_states_acc_1.0": 4,
535
+ "min_states_acc_0.875": 3,
536
+ "min_states_acc_0.9": 4,
537
+ "min_states_acc_0.5": 1,
538
+ "A_star_at_n_minus_1": 0.875,
539
+ "closed_form_at_n_minus_1": 0.875
540
+ },
541
+ {
542
+ "m": 3,
543
+ "V": 2,
544
+ "n_prefixes": 8,
545
+ "partitions_enumerated": "Bell(8)",
546
+ "A_star": {
547
+ "1": 0.5,
548
+ "2": 0.75,
549
+ "3": 0.7916666666666666,
550
+ "4": 0.8333333333333334,
551
+ "5": 0.875,
552
+ "6": 0.9166666666666666,
553
+ "7": 0.9583333333333334,
554
+ "8": 1.0
555
+ },
556
+ "min_states_acc_1.0": 8,
557
+ "min_states_acc_0.875": 5,
558
+ "min_states_acc_0.9": 6,
559
+ "min_states_acc_0.5": 1,
560
+ "A_star_at_n_minus_1": 0.9583333333333334,
561
+ "closed_form_at_n_minus_1": 0.9583333333333334
562
+ },
563
+ {
564
+ "m": 2,
565
+ "V": 3,
566
+ "n_prefixes": 9,
567
+ "partitions_enumerated": "Bell(9)",
568
+ "A_star": {
569
+ "1": 0.3333333333333333,
570
+ "2": 0.5555555555555556,
571
+ "3": 0.6666666666666666,
572
+ "4": 0.7222222222222222,
573
+ "5": 0.7777777777777778,
574
+ "6": 0.8333333333333334,
575
+ "7": 0.8888888888888888,
576
+ "8": 0.9444444444444444,
577
+ "9": 1.0
578
+ },
579
+ "min_states_acc_1.0": 9,
580
+ "min_states_acc_0.875": 7,
581
+ "min_states_acc_0.9": 8,
582
+ "min_states_acc_0.5": 2,
583
+ "A_star_at_n_minus_1": 0.9444444444444444,
584
+ "closed_form_at_n_minus_1": 0.9444444444444444
585
+ }
586
+ ],
587
+ "exhaustive_min_states_equals_Vm": true,
588
+ "max_curve_control_gap": 0.0,
589
+ "lemma_3_5": [
590
+ {
591
+ "k": 2,
592
+ "sizes": [
593
+ 2,
594
+ 3
595
+ ],
596
+ "product_bound": 6,
597
+ "reachable_product_states": 2,
598
+ "sequences_tested": 510,
599
+ "behaviour_mismatches": 0,
600
+ "bound_respected": true
601
+ },
602
+ {
603
+ "k": 3,
604
+ "sizes": [
605
+ 2,
606
+ 2,
607
+ 2
608
+ ],
609
+ "product_bound": 8,
610
+ "reachable_product_states": 2,
611
+ "sequences_tested": 254,
612
+ "behaviour_mismatches": 0,
613
+ "bound_respected": true
614
+ },
615
+ {
616
+ "k": 2,
617
+ "sizes": [
618
+ 3,
619
+ 4
620
+ ],
621
+ "product_bound": 12,
622
+ "reachable_product_states": 6,
623
+ "sequences_tested": 363,
624
+ "behaviour_mismatches": 0,
625
+ "bound_respected": true
626
+ },
627
+ {
628
+ "k": 4,
629
+ "sizes": [
630
+ 2,
631
+ 2,
632
+ 2,
633
+ 2
634
+ ],
635
+ "product_bound": 16,
636
+ "reachable_product_states": 6,
637
+ "sequences_tested": 126,
638
+ "behaviour_mismatches": 0,
639
+ "bound_respected": true
640
+ },
641
+ {
642
+ "k": 3,
643
+ "sizes": [
644
+ 2,
645
+ 3,
646
+ 2
647
+ ],
648
+ "product_bound": 12,
649
+ "reachable_product_states": 2,
650
+ "sequences_tested": 120,
651
+ "behaviour_mismatches": 0,
652
+ "bound_respected": true
653
+ }
654
+ ],
655
+ "lemma_3_5_total_mismatches": 0,
656
+ "lemma_3_5_bound_always_respected": true,
657
+ "lemma_3_5_tightness": [
658
+ {
659
+ "k": 2,
660
+ "sizes": [
661
+ 2,
662
+ 3
663
+ ],
664
+ "product_bound": 6,
665
+ "reachable_product_states": 6,
666
+ "sequences_tested": 1092,
667
+ "behaviour_mismatches": 0,
668
+ "bound_respected": true,
669
+ "bound_is_tight": true
670
+ },
671
+ {
672
+ "k": 2,
673
+ "sizes": [
674
+ 3,
675
+ 3
676
+ ],
677
+ "product_bound": 9,
678
+ "reachable_product_states": 9,
679
+ "sequences_tested": 1092,
680
+ "behaviour_mismatches": 0,
681
+ "bound_respected": true,
682
+ "bound_is_tight": true
683
+ },
684
+ {
685
+ "k": 3,
686
+ "sizes": [
687
+ 2,
688
+ 2,
689
+ 2
690
+ ],
691
+ "product_bound": 8,
692
+ "reachable_product_states": 8,
693
+ "sequences_tested": 1092,
694
+ "behaviour_mismatches": 0,
695
+ "bound_respected": true,
696
+ "bound_is_tight": true
697
+ }
698
+ ],
699
+ "lemma_3_5_tight_witnesses": 3,
700
+ "printed_bound_audit": {
701
+ "n_admissible_configs": 1296,
702
+ "max_literal_bound_over_admissible_grid": 0.0,
703
+ "literal_bound_ever_positive": false,
704
+ "min_appendix_bound_on_instantiation": 0.6628711136008072,
705
+ "appendix_slope_in_m": {
706
+ "2": {
707
+ "fitted_slope": 0.3314355568004036,
708
+ "closed_form_slope": 0.3314355568004036,
709
+ "abs_err": 0.0
710
+ },
711
+ "4": {
712
+ "fitted_slope": 1.2064355568004035,
713
+ "closed_form_slope": 1.2064355568004035,
714
+ "abs_err": 0.0
715
+ },
716
+ "8": {
717
+ "fitted_slope": 2.0814355568004035,
718
+ "closed_form_slope": 2.0814355568004035,
719
+ "abs_err": 0.0
720
+ },
721
+ "16": {
722
+ "fitted_slope": 2.9564355568004044,
723
+ "closed_form_slope": 2.9564355568004035,
724
+ "abs_err": 8.881784197001252e-16
725
+ },
726
+ "26": {
727
+ "fitted_slope": 3.569320310173859,
728
+ "closed_form_slope": 3.569320310173859,
729
+ "abs_err": 0.0
730
+ },
731
+ "32": {
732
+ "fitted_slope": 3.831435556800403,
733
+ "closed_form_slope": 3.8314355568004035,
734
+ "abs_err": 4.440892098500626e-16
735
+ }
736
+ },
737
+ "note": "literal = m*log2|V| - q*log2|Y| (Thm 3.3 as printed); appendix = m*log2|V| - q*(H2(1/8)+log2|Y|/8) (proof, err<1/8)"
738
+ },
739
+ "one_state_guessing_accuracy": {
740
+ "2": 0.5,
741
+ "3": 0.3333333333333333,
742
+ "4": 0.25,
743
+ "8": 0.125,
744
+ "26": 0.038461538461538464,
745
+ "32": 0.03125
746
+ }
747
+ }
replay_a/claim2.json ADDED
@@ -0,0 +1,1307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "numerical_gate": {
3
+ "max_abs_matmul_minus_einsum": 1.7763568394002505e-15,
4
+ "all_forward_outputs_finite": true,
5
+ "max_abs_logit": 2.1417444637761154,
6
+ "note": "Accelerate RuntimeWarnings are spurious; verified here"
7
+ },
8
+ "receptive_field_sweep": {
9
+ "configs_tested": 960,
10
+ "violations_outside_receptive_field": 0,
11
+ "max_abs_delta_outside_receptive_field": 0.0,
12
+ "configs_with_no_effect_just_inside_rf": 0,
13
+ "sample_rows": [
14
+ {
15
+ "L": 16,
16
+ "k": 1,
17
+ "windows": [
18
+ 10
19
+ ],
20
+ "sum_W": 10,
21
+ "rf": 10,
22
+ "max_abs_delta_outside_rf": 0.0,
23
+ "max_abs_delta_inside_rf": 0.28581609351223836
24
+ },
25
+ {
26
+ "L": 16,
27
+ "k": 1,
28
+ "windows": [
29
+ 10
30
+ ],
31
+ "sum_W": 10,
32
+ "rf": 10,
33
+ "max_abs_delta_outside_rf": 0.0,
34
+ "max_abs_delta_inside_rf": 0.03444175010002626
35
+ },
36
+ {
37
+ "L": 16,
38
+ "k": 1,
39
+ "windows": [
40
+ 3
41
+ ],
42
+ "sum_W": 3,
43
+ "rf": 3,
44
+ "max_abs_delta_outside_rf": 0.0,
45
+ "max_abs_delta_inside_rf": 0.2040553116237531
46
+ },
47
+ {
48
+ "L": 16,
49
+ "k": 1,
50
+ "windows": [
51
+ 12
52
+ ],
53
+ "sum_W": 12,
54
+ "rf": 12,
55
+ "max_abs_delta_outside_rf": 0.0,
56
+ "max_abs_delta_inside_rf": 0.014197238946864754
57
+ },
58
+ {
59
+ "L": 16,
60
+ "k": 1,
61
+ "windows": [
62
+ 11
63
+ ],
64
+ "sum_W": 11,
65
+ "rf": 11,
66
+ "max_abs_delta_outside_rf": 0.0,
67
+ "max_abs_delta_inside_rf": 0.14570162697464065
68
+ },
69
+ {
70
+ "L": 16,
71
+ "k": 1,
72
+ "windows": [
73
+ 5
74
+ ],
75
+ "sum_W": 5,
76
+ "rf": 5,
77
+ "max_abs_delta_outside_rf": 0.0,
78
+ "max_abs_delta_inside_rf": 0.32986723460250333
79
+ },
80
+ {
81
+ "L": 16,
82
+ "k": 1,
83
+ "windows": [
84
+ 9
85
+ ],
86
+ "sum_W": 9,
87
+ "rf": 9,
88
+ "max_abs_delta_outside_rf": 0.0,
89
+ "max_abs_delta_inside_rf": 0.1968814430783481
90
+ },
91
+ {
92
+ "L": 16,
93
+ "k": 1,
94
+ "windows": [
95
+ 7
96
+ ],
97
+ "sum_W": 7,
98
+ "rf": 7,
99
+ "max_abs_delta_outside_rf": 0.0,
100
+ "max_abs_delta_inside_rf": 0.030041848233613166
101
+ },
102
+ {
103
+ "L": 16,
104
+ "k": 1,
105
+ "windows": [
106
+ 9
107
+ ],
108
+ "sum_W": 9,
109
+ "rf": 9,
110
+ "max_abs_delta_outside_rf": 0.0,
111
+ "max_abs_delta_inside_rf": 0.2698237935195511
112
+ },
113
+ {
114
+ "L": 16,
115
+ "k": 1,
116
+ "windows": [
117
+ 4
118
+ ],
119
+ "sum_W": 4,
120
+ "rf": 4,
121
+ "max_abs_delta_outside_rf": 0.0,
122
+ "max_abs_delta_inside_rf": 0.14797709583183694
123
+ },
124
+ {
125
+ "L": 16,
126
+ "k": 1,
127
+ "windows": [
128
+ 12
129
+ ],
130
+ "sum_W": 12,
131
+ "rf": 12,
132
+ "max_abs_delta_outside_rf": 0.0,
133
+ "max_abs_delta_inside_rf": 0.07127460286707321
134
+ },
135
+ {
136
+ "L": 16,
137
+ "k": 1,
138
+ "windows": [
139
+ 14
140
+ ],
141
+ "sum_W": 14,
142
+ "rf": 14,
143
+ "max_abs_delta_outside_rf": 0.0,
144
+ "max_abs_delta_inside_rf": 0.10168374636975316
145
+ },
146
+ {
147
+ "L": 16,
148
+ "k": 1,
149
+ "windows": [
150
+ 9
151
+ ],
152
+ "sum_W": 9,
153
+ "rf": 9,
154
+ "max_abs_delta_outside_rf": 0.0,
155
+ "max_abs_delta_inside_rf": 0.003750870881970958
156
+ },
157
+ {
158
+ "L": 16,
159
+ "k": 1,
160
+ "windows": [
161
+ 2
162
+ ],
163
+ "sum_W": 2,
164
+ "rf": 2,
165
+ "max_abs_delta_outside_rf": 0.0,
166
+ "max_abs_delta_inside_rf": 2.407640189683196
167
+ },
168
+ {
169
+ "L": 16,
170
+ "k": 1,
171
+ "windows": [
172
+ 11
173
+ ],
174
+ "sum_W": 11,
175
+ "rf": 11,
176
+ "max_abs_delta_outside_rf": 0.0,
177
+ "max_abs_delta_inside_rf": 0.28417810626585305
178
+ },
179
+ {
180
+ "L": 16,
181
+ "k": 1,
182
+ "windows": [
183
+ 2
184
+ ],
185
+ "sum_W": 2,
186
+ "rf": 2,
187
+ "max_abs_delta_outside_rf": 0.0,
188
+ "max_abs_delta_inside_rf": 0.5150917655838505
189
+ },
190
+ {
191
+ "L": 16,
192
+ "k": 1,
193
+ "windows": [
194
+ 1
195
+ ],
196
+ "sum_W": 1,
197
+ "rf": 1,
198
+ "max_abs_delta_outside_rf": 0.0,
199
+ "max_abs_delta_inside_rf": 2.026287079665709
200
+ },
201
+ {
202
+ "L": 16,
203
+ "k": 1,
204
+ "windows": [
205
+ 5
206
+ ],
207
+ "sum_W": 5,
208
+ "rf": 5,
209
+ "max_abs_delta_outside_rf": 0.0,
210
+ "max_abs_delta_inside_rf": 0.21853871993517676
211
+ },
212
+ {
213
+ "L": 16,
214
+ "k": 1,
215
+ "windows": [
216
+ 9
217
+ ],
218
+ "sum_W": 9,
219
+ "rf": 9,
220
+ "max_abs_delta_outside_rf": 0.0,
221
+ "max_abs_delta_inside_rf": 0.5761418306350206
222
+ },
223
+ {
224
+ "L": 16,
225
+ "k": 1,
226
+ "windows": [
227
+ 10
228
+ ],
229
+ "sum_W": 10,
230
+ "rf": 10,
231
+ "max_abs_delta_outside_rf": 0.0,
232
+ "max_abs_delta_inside_rf": 0.006504128634520656
233
+ },
234
+ {
235
+ "L": 16,
236
+ "k": 1,
237
+ "windows": [
238
+ 1
239
+ ],
240
+ "sum_W": 1,
241
+ "rf": 1,
242
+ "max_abs_delta_outside_rf": 0.0,
243
+ "max_abs_delta_inside_rf": 3.0536991633981563
244
+ },
245
+ {
246
+ "L": 16,
247
+ "k": 1,
248
+ "windows": [
249
+ 1
250
+ ],
251
+ "sum_W": 1,
252
+ "rf": 1,
253
+ "max_abs_delta_outside_rf": 0.0,
254
+ "max_abs_delta_inside_rf": 2.1397172447617256
255
+ },
256
+ {
257
+ "L": 16,
258
+ "k": 1,
259
+ "windows": [
260
+ 10
261
+ ],
262
+ "sum_W": 10,
263
+ "rf": 10,
264
+ "max_abs_delta_outside_rf": 0.0,
265
+ "max_abs_delta_inside_rf": 0.04804122082565855
266
+ },
267
+ {
268
+ "L": 16,
269
+ "k": 1,
270
+ "windows": [
271
+ 7
272
+ ],
273
+ "sum_W": 7,
274
+ "rf": 7,
275
+ "max_abs_delta_outside_rf": 0.0,
276
+ "max_abs_delta_inside_rf": 0.701760784501624
277
+ },
278
+ {
279
+ "L": 16,
280
+ "k": 1,
281
+ "windows": [
282
+ 13
283
+ ],
284
+ "sum_W": 13,
285
+ "rf": 13,
286
+ "max_abs_delta_outside_rf": 0.0,
287
+ "max_abs_delta_inside_rf": 0.1355528677544809
288
+ },
289
+ {
290
+ "L": 16,
291
+ "k": 1,
292
+ "windows": [
293
+ 7
294
+ ],
295
+ "sum_W": 7,
296
+ "rf": 7,
297
+ "max_abs_delta_outside_rf": 0.0,
298
+ "max_abs_delta_inside_rf": 0.48194231490071804
299
+ },
300
+ {
301
+ "L": 16,
302
+ "k": 1,
303
+ "windows": [
304
+ 13
305
+ ],
306
+ "sum_W": 13,
307
+ "rf": 13,
308
+ "max_abs_delta_outside_rf": 0.0,
309
+ "max_abs_delta_inside_rf": 0.0814501808086524
310
+ },
311
+ {
312
+ "L": 16,
313
+ "k": 1,
314
+ "windows": [
315
+ 6
316
+ ],
317
+ "sum_W": 6,
318
+ "rf": 6,
319
+ "max_abs_delta_outside_rf": 0.0,
320
+ "max_abs_delta_inside_rf": 0.32926605957010213
321
+ },
322
+ {
323
+ "L": 16,
324
+ "k": 1,
325
+ "windows": [
326
+ 14
327
+ ],
328
+ "sum_W": 14,
329
+ "rf": 14,
330
+ "max_abs_delta_outside_rf": 0.0,
331
+ "max_abs_delta_inside_rf": 0.10376140965519931
332
+ },
333
+ {
334
+ "L": 16,
335
+ "k": 1,
336
+ "windows": [
337
+ 3
338
+ ],
339
+ "sum_W": 3,
340
+ "rf": 3,
341
+ "max_abs_delta_outside_rf": 0.0,
342
+ "max_abs_delta_inside_rf": 0.15220621062657136
343
+ },
344
+ {
345
+ "L": 16,
346
+ "k": 1,
347
+ "windows": [
348
+ 9
349
+ ],
350
+ "sum_W": 9,
351
+ "rf": 9,
352
+ "max_abs_delta_outside_rf": 0.0,
353
+ "max_abs_delta_inside_rf": 0.10168883280928198
354
+ },
355
+ {
356
+ "L": 16,
357
+ "k": 1,
358
+ "windows": [
359
+ 8
360
+ ],
361
+ "sum_W": 8,
362
+ "rf": 8,
363
+ "max_abs_delta_outside_rf": 0.0,
364
+ "max_abs_delta_inside_rf": 0.2597069821704449
365
+ },
366
+ {
367
+ "L": 16,
368
+ "k": 1,
369
+ "windows": [
370
+ 11
371
+ ],
372
+ "sum_W": 11,
373
+ "rf": 11,
374
+ "max_abs_delta_outside_rf": 0.0,
375
+ "max_abs_delta_inside_rf": 0.38062082529689295
376
+ },
377
+ {
378
+ "L": 16,
379
+ "k": 1,
380
+ "windows": [
381
+ 1
382
+ ],
383
+ "sum_W": 1,
384
+ "rf": 1,
385
+ "max_abs_delta_outside_rf": 0.0,
386
+ "max_abs_delta_inside_rf": 1.6831235344120234
387
+ },
388
+ {
389
+ "L": 16,
390
+ "k": 1,
391
+ "windows": [
392
+ 14
393
+ ],
394
+ "sum_W": 14,
395
+ "rf": 14,
396
+ "max_abs_delta_outside_rf": 0.0,
397
+ "max_abs_delta_inside_rf": 0.02255092704988093
398
+ },
399
+ {
400
+ "L": 16,
401
+ "k": 1,
402
+ "windows": [
403
+ 3
404
+ ],
405
+ "sum_W": 3,
406
+ "rf": 3,
407
+ "max_abs_delta_outside_rf": 0.0,
408
+ "max_abs_delta_inside_rf": 0.1579483465578484
409
+ },
410
+ {
411
+ "L": 16,
412
+ "k": 1,
413
+ "windows": [
414
+ 14
415
+ ],
416
+ "sum_W": 14,
417
+ "rf": 14,
418
+ "max_abs_delta_outside_rf": 0.0,
419
+ "max_abs_delta_inside_rf": 0.032733635175017234
420
+ },
421
+ {
422
+ "L": 16,
423
+ "k": 1,
424
+ "windows": [
425
+ 10
426
+ ],
427
+ "sum_W": 10,
428
+ "rf": 10,
429
+ "max_abs_delta_outside_rf": 0.0,
430
+ "max_abs_delta_inside_rf": 0.03131013093506363
431
+ },
432
+ {
433
+ "L": 16,
434
+ "k": 1,
435
+ "windows": [
436
+ 14
437
+ ],
438
+ "sum_W": 14,
439
+ "rf": 14,
440
+ "max_abs_delta_outside_rf": 0.0,
441
+ "max_abs_delta_inside_rf": 0.07259073385286363
442
+ },
443
+ {
444
+ "L": 16,
445
+ "k": 1,
446
+ "windows": [
447
+ 5
448
+ ],
449
+ "sum_W": 5,
450
+ "rf": 5,
451
+ "max_abs_delta_outside_rf": 0.0,
452
+ "max_abs_delta_inside_rf": 0.1621850317171365
453
+ }
454
+ ]
455
+ },
456
+ "local_sensitivity_witnesses": [
457
+ {
458
+ "L": 8,
459
+ "seed": 0,
460
+ "R_measured": 7,
461
+ "R_theory_max": 7,
462
+ "R_claimed_in_Thm_4_2": 4,
463
+ "same_in_every_window_below_R": true,
464
+ "F_x": 28,
465
+ "F_xprime": 16,
466
+ "outputs_differ": true
467
+ },
468
+ {
469
+ "L": 8,
470
+ "seed": 1,
471
+ "R_measured": 7,
472
+ "R_theory_max": 7,
473
+ "R_claimed_in_Thm_4_2": 4,
474
+ "same_in_every_window_below_R": true,
475
+ "F_x": 9,
476
+ "F_xprime": 31,
477
+ "outputs_differ": true
478
+ },
479
+ {
480
+ "L": 8,
481
+ "seed": 2,
482
+ "R_measured": 7,
483
+ "R_theory_max": 7,
484
+ "R_claimed_in_Thm_4_2": 4,
485
+ "same_in_every_window_below_R": true,
486
+ "F_x": 13,
487
+ "F_xprime": 18,
488
+ "outputs_differ": true
489
+ },
490
+ {
491
+ "L": 8,
492
+ "seed": 3,
493
+ "R_measured": 7,
494
+ "R_theory_max": 7,
495
+ "R_claimed_in_Thm_4_2": 4,
496
+ "same_in_every_window_below_R": true,
497
+ "F_x": 19,
498
+ "F_xprime": 13,
499
+ "outputs_differ": true
500
+ },
501
+ {
502
+ "L": 8,
503
+ "seed": 4,
504
+ "R_measured": 7,
505
+ "R_theory_max": 7,
506
+ "R_claimed_in_Thm_4_2": 4,
507
+ "same_in_every_window_below_R": true,
508
+ "F_x": 19,
509
+ "F_xprime": 32,
510
+ "outputs_differ": true
511
+ },
512
+ {
513
+ "L": 16,
514
+ "seed": 0,
515
+ "R_measured": 15,
516
+ "R_theory_max": 15,
517
+ "R_claimed_in_Thm_4_2": 8,
518
+ "same_in_every_window_below_R": true,
519
+ "F_x": 27,
520
+ "F_xprime": 8,
521
+ "outputs_differ": true
522
+ },
523
+ {
524
+ "L": 16,
525
+ "seed": 1,
526
+ "R_measured": 15,
527
+ "R_theory_max": 15,
528
+ "R_claimed_in_Thm_4_2": 8,
529
+ "same_in_every_window_below_R": true,
530
+ "F_x": 19,
531
+ "F_xprime": 15,
532
+ "outputs_differ": true
533
+ },
534
+ {
535
+ "L": 16,
536
+ "seed": 2,
537
+ "R_measured": 15,
538
+ "R_theory_max": 15,
539
+ "R_claimed_in_Thm_4_2": 8,
540
+ "same_in_every_window_below_R": true,
541
+ "F_x": 10,
542
+ "F_xprime": 30,
543
+ "outputs_differ": true
544
+ },
545
+ {
546
+ "L": 16,
547
+ "seed": 3,
548
+ "R_measured": 15,
549
+ "R_theory_max": 15,
550
+ "R_claimed_in_Thm_4_2": 8,
551
+ "same_in_every_window_below_R": true,
552
+ "F_x": 29,
553
+ "F_xprime": 30,
554
+ "outputs_differ": true
555
+ },
556
+ {
557
+ "L": 16,
558
+ "seed": 4,
559
+ "R_measured": 15,
560
+ "R_theory_max": 15,
561
+ "R_claimed_in_Thm_4_2": 8,
562
+ "same_in_every_window_below_R": true,
563
+ "F_x": 24,
564
+ "F_xprime": 18,
565
+ "outputs_differ": true
566
+ },
567
+ {
568
+ "L": 32,
569
+ "seed": 0,
570
+ "R_measured": 31,
571
+ "R_theory_max": 31,
572
+ "R_claimed_in_Thm_4_2": 16,
573
+ "same_in_every_window_below_R": true,
574
+ "F_x": 28,
575
+ "F_xprime": 23,
576
+ "outputs_differ": true
577
+ },
578
+ {
579
+ "L": 32,
580
+ "seed": 1,
581
+ "R_measured": 31,
582
+ "R_theory_max": 31,
583
+ "R_claimed_in_Thm_4_2": 16,
584
+ "same_in_every_window_below_R": true,
585
+ "F_x": 13,
586
+ "F_xprime": 23,
587
+ "outputs_differ": true
588
+ },
589
+ {
590
+ "L": 32,
591
+ "seed": 2,
592
+ "R_measured": 31,
593
+ "R_theory_max": 31,
594
+ "R_claimed_in_Thm_4_2": 16,
595
+ "same_in_every_window_below_R": true,
596
+ "F_x": 18,
597
+ "F_xprime": 14,
598
+ "outputs_differ": true
599
+ },
600
+ {
601
+ "L": 32,
602
+ "seed": 3,
603
+ "R_measured": 31,
604
+ "R_theory_max": 31,
605
+ "R_claimed_in_Thm_4_2": 16,
606
+ "same_in_every_window_below_R": true,
607
+ "F_x": 22,
608
+ "F_xprime": 10,
609
+ "outputs_differ": true
610
+ },
611
+ {
612
+ "L": 32,
613
+ "seed": 4,
614
+ "R_measured": 31,
615
+ "R_theory_max": 31,
616
+ "R_claimed_in_Thm_4_2": 16,
617
+ "same_in_every_window_below_R": true,
618
+ "F_x": 13,
619
+ "F_xprime": 22,
620
+ "outputs_differ": true
621
+ },
622
+ {
623
+ "L": 64,
624
+ "seed": 0,
625
+ "R_measured": 63,
626
+ "R_theory_max": 63,
627
+ "R_claimed_in_Thm_4_2": 32,
628
+ "same_in_every_window_below_R": true,
629
+ "F_x": 11,
630
+ "F_xprime": 19,
631
+ "outputs_differ": true
632
+ },
633
+ {
634
+ "L": 64,
635
+ "seed": 1,
636
+ "R_measured": 63,
637
+ "R_theory_max": 63,
638
+ "R_claimed_in_Thm_4_2": 32,
639
+ "same_in_every_window_below_R": true,
640
+ "F_x": 7,
641
+ "F_xprime": 32,
642
+ "outputs_differ": true
643
+ },
644
+ {
645
+ "L": 64,
646
+ "seed": 2,
647
+ "R_measured": 63,
648
+ "R_theory_max": 63,
649
+ "R_claimed_in_Thm_4_2": 32,
650
+ "same_in_every_window_below_R": true,
651
+ "F_x": 30,
652
+ "F_xprime": 8,
653
+ "outputs_differ": true
654
+ },
655
+ {
656
+ "L": 64,
657
+ "seed": 3,
658
+ "R_measured": 63,
659
+ "R_theory_max": 63,
660
+ "R_claimed_in_Thm_4_2": 32,
661
+ "same_in_every_window_below_R": true,
662
+ "F_x": 10,
663
+ "F_xprime": 19,
664
+ "outputs_differ": true
665
+ },
666
+ {
667
+ "L": 64,
668
+ "seed": 4,
669
+ "R_measured": 63,
670
+ "R_theory_max": 63,
671
+ "R_claimed_in_Thm_4_2": 32,
672
+ "same_in_every_window_below_R": true,
673
+ "F_x": 30,
674
+ "F_xprime": 18,
675
+ "outputs_differ": true
676
+ },
677
+ {
678
+ "L": 128,
679
+ "seed": 0,
680
+ "R_measured": 127,
681
+ "R_theory_max": 127,
682
+ "R_claimed_in_Thm_4_2": 64,
683
+ "same_in_every_window_below_R": true,
684
+ "F_x": 20,
685
+ "F_xprime": 8,
686
+ "outputs_differ": true
687
+ },
688
+ {
689
+ "L": 128,
690
+ "seed": 1,
691
+ "R_measured": 127,
692
+ "R_theory_max": 127,
693
+ "R_claimed_in_Thm_4_2": 64,
694
+ "same_in_every_window_below_R": true,
695
+ "F_x": 7,
696
+ "F_xprime": 24,
697
+ "outputs_differ": true
698
+ },
699
+ {
700
+ "L": 128,
701
+ "seed": 2,
702
+ "R_measured": 127,
703
+ "R_theory_max": 127,
704
+ "R_claimed_in_Thm_4_2": 64,
705
+ "same_in_every_window_below_R": true,
706
+ "F_x": 25,
707
+ "F_xprime": 17,
708
+ "outputs_differ": true
709
+ },
710
+ {
711
+ "L": 128,
712
+ "seed": 3,
713
+ "R_measured": 127,
714
+ "R_theory_max": 127,
715
+ "R_claimed_in_Thm_4_2": 64,
716
+ "same_in_every_window_below_R": true,
717
+ "F_x": 18,
718
+ "F_xprime": 7,
719
+ "outputs_differ": true
720
+ },
721
+ {
722
+ "L": 128,
723
+ "seed": 4,
724
+ "R_measured": 127,
725
+ "R_theory_max": 127,
726
+ "R_claimed_in_Thm_4_2": 64,
727
+ "same_in_every_window_below_R": true,
728
+ "F_x": 17,
729
+ "F_xprime": 16,
730
+ "outputs_differ": true
731
+ },
732
+ {
733
+ "L": 256,
734
+ "seed": 0,
735
+ "R_measured": 255,
736
+ "R_theory_max": 255,
737
+ "R_claimed_in_Thm_4_2": 128,
738
+ "same_in_every_window_below_R": true,
739
+ "F_x": 16,
740
+ "F_xprime": 28,
741
+ "outputs_differ": true
742
+ },
743
+ {
744
+ "L": 256,
745
+ "seed": 1,
746
+ "R_measured": 255,
747
+ "R_theory_max": 255,
748
+ "R_claimed_in_Thm_4_2": 128,
749
+ "same_in_every_window_below_R": true,
750
+ "F_x": 7,
751
+ "F_xprime": 12,
752
+ "outputs_differ": true
753
+ },
754
+ {
755
+ "L": 256,
756
+ "seed": 2,
757
+ "R_measured": 255,
758
+ "R_theory_max": 255,
759
+ "R_claimed_in_Thm_4_2": 128,
760
+ "same_in_every_window_below_R": true,
761
+ "F_x": 8,
762
+ "F_xprime": 20,
763
+ "outputs_differ": true
764
+ },
765
+ {
766
+ "L": 256,
767
+ "seed": 3,
768
+ "R_measured": 255,
769
+ "R_theory_max": 255,
770
+ "R_claimed_in_Thm_4_2": 128,
771
+ "same_in_every_window_below_R": true,
772
+ "F_x": 7,
773
+ "F_xprime": 29,
774
+ "outputs_differ": true
775
+ },
776
+ {
777
+ "L": 256,
778
+ "seed": 4,
779
+ "R_measured": 255,
780
+ "R_theory_max": 255,
781
+ "R_claimed_in_Thm_4_2": 128,
782
+ "same_in_every_window_below_R": true,
783
+ "F_x": 20,
784
+ "F_xprime": 13,
785
+ "outputs_differ": true
786
+ }
787
+ ],
788
+ "all_witnesses_valid": true,
789
+ "R_measured_equals_L_minus_1_everywhere": true,
790
+ "witness_indistinguishability": {
791
+ "16": {
792
+ "pairs": [
793
+ {
794
+ "L": 16,
795
+ "R": 15,
796
+ "k": 1,
797
+ "windows_short": [
798
+ 14
799
+ ],
800
+ "sum_W_short": 14,
801
+ "rf_short": 14,
802
+ "max_abs_delta_short": 0.0,
803
+ "windows_long": [
804
+ 16
805
+ ],
806
+ "sum_W_long": 16,
807
+ "max_abs_delta_long": 0.1769761959118361
808
+ },
809
+ {
810
+ "L": 16,
811
+ "R": 15,
812
+ "k": 2,
813
+ "windows_short": [
814
+ 7,
815
+ 7
816
+ ],
817
+ "sum_W_short": 14,
818
+ "rf_short": 13,
819
+ "max_abs_delta_short": 0.0,
820
+ "windows_long": [
821
+ 16,
822
+ 16
823
+ ],
824
+ "sum_W_long": 32,
825
+ "max_abs_delta_long": 0.1321795520296115
826
+ },
827
+ {
828
+ "L": 16,
829
+ "R": 15,
830
+ "k": 3,
831
+ "windows_short": [
832
+ 4,
833
+ 4,
834
+ 4
835
+ ],
836
+ "sum_W_short": 12,
837
+ "rf_short": 10,
838
+ "max_abs_delta_short": 0.0,
839
+ "windows_long": [
840
+ 16,
841
+ 16,
842
+ 16
843
+ ],
844
+ "sum_W_long": 48,
845
+ "max_abs_delta_long": 0.8786377218884379
846
+ },
847
+ {
848
+ "L": 16,
849
+ "R": 15,
850
+ "k": 1,
851
+ "windows_short": [
852
+ 14
853
+ ],
854
+ "sum_W_short": 14,
855
+ "rf_short": 14,
856
+ "max_abs_delta_short": 0.0,
857
+ "windows_long": [
858
+ 16
859
+ ],
860
+ "sum_W_long": 16,
861
+ "max_abs_delta_long": 0.0552757776663132
862
+ },
863
+ {
864
+ "L": 16,
865
+ "R": 15,
866
+ "k": 2,
867
+ "windows_short": [
868
+ 7,
869
+ 7
870
+ ],
871
+ "sum_W_short": 14,
872
+ "rf_short": 13,
873
+ "max_abs_delta_short": 0.0,
874
+ "windows_long": [
875
+ 16,
876
+ 16
877
+ ],
878
+ "sum_W_long": 32,
879
+ "max_abs_delta_long": 0.043267705611890306
880
+ },
881
+ {
882
+ "L": 16,
883
+ "R": 15,
884
+ "k": 3,
885
+ "windows_short": [
886
+ 4,
887
+ 4,
888
+ 4
889
+ ],
890
+ "sum_W_short": 12,
891
+ "rf_short": 10,
892
+ "max_abs_delta_short": 0.0,
893
+ "windows_long": [
894
+ 16,
895
+ 16,
896
+ 16
897
+ ],
898
+ "sum_W_long": 48,
899
+ "max_abs_delta_long": 0.766364411932395
900
+ },
901
+ {
902
+ "L": 16,
903
+ "R": 15,
904
+ "k": 1,
905
+ "windows_short": [
906
+ 14
907
+ ],
908
+ "sum_W_short": 14,
909
+ "rf_short": 14,
910
+ "max_abs_delta_short": 0.0,
911
+ "windows_long": [
912
+ 16
913
+ ],
914
+ "sum_W_long": 16,
915
+ "max_abs_delta_long": 0.05877028865718653
916
+ },
917
+ {
918
+ "L": 16,
919
+ "R": 15,
920
+ "k": 2,
921
+ "windows_short": [
922
+ 7,
923
+ 7
924
+ ],
925
+ "sum_W_short": 14,
926
+ "rf_short": 13,
927
+ "max_abs_delta_short": 0.0,
928
+ "windows_long": [
929
+ 16,
930
+ 16
931
+ ],
932
+ "sum_W_long": 32,
933
+ "max_abs_delta_long": 0.3569878953567704
934
+ },
935
+ {
936
+ "L": 16,
937
+ "R": 15,
938
+ "k": 3,
939
+ "windows_short": [
940
+ 4,
941
+ 4,
942
+ 4
943
+ ],
944
+ "sum_W_short": 12,
945
+ "rf_short": 10,
946
+ "max_abs_delta_short": 0.0,
947
+ "windows_long": [
948
+ 16,
949
+ 16,
950
+ 16
951
+ ],
952
+ "sum_W_long": 48,
953
+ "max_abs_delta_long": 0.5521298147300295
954
+ }
955
+ ],
956
+ "n_short_window_tests": 9,
957
+ "max_abs_delta_when_sumW_below_R": 0.0,
958
+ "n_long_window_tests": 9,
959
+ "n_long_window_separated": 9
960
+ },
961
+ "32": {
962
+ "pairs": [
963
+ {
964
+ "L": 32,
965
+ "R": 31,
966
+ "k": 1,
967
+ "windows_short": [
968
+ 30
969
+ ],
970
+ "sum_W_short": 30,
971
+ "rf_short": 30,
972
+ "max_abs_delta_short": 0.0,
973
+ "windows_long": [
974
+ 32
975
+ ],
976
+ "sum_W_long": 32,
977
+ "max_abs_delta_long": 0.03534840754759783
978
+ },
979
+ {
980
+ "L": 32,
981
+ "R": 31,
982
+ "k": 2,
983
+ "windows_short": [
984
+ 15,
985
+ 15
986
+ ],
987
+ "sum_W_short": 30,
988
+ "rf_short": 29,
989
+ "max_abs_delta_short": 0.0,
990
+ "windows_long": [
991
+ 32,
992
+ 32
993
+ ],
994
+ "sum_W_long": 64,
995
+ "max_abs_delta_long": 0.02080493890641305
996
+ },
997
+ {
998
+ "L": 32,
999
+ "R": 31,
1000
+ "k": 3,
1001
+ "windows_short": [
1002
+ 10,
1003
+ 10,
1004
+ 10
1005
+ ],
1006
+ "sum_W_short": 30,
1007
+ "rf_short": 28,
1008
+ "max_abs_delta_short": 0.0,
1009
+ "windows_long": [
1010
+ 32,
1011
+ 32,
1012
+ 32
1013
+ ],
1014
+ "sum_W_long": 96,
1015
+ "max_abs_delta_long": 0.152554442308942
1016
+ },
1017
+ {
1018
+ "L": 32,
1019
+ "R": 31,
1020
+ "k": 1,
1021
+ "windows_short": [
1022
+ 30
1023
+ ],
1024
+ "sum_W_short": 30,
1025
+ "rf_short": 30,
1026
+ "max_abs_delta_short": 0.0,
1027
+ "windows_long": [
1028
+ 32
1029
+ ],
1030
+ "sum_W_long": 32,
1031
+ "max_abs_delta_long": 0.16234324137652778
1032
+ },
1033
+ {
1034
+ "L": 32,
1035
+ "R": 31,
1036
+ "k": 2,
1037
+ "windows_short": [
1038
+ 15,
1039
+ 15
1040
+ ],
1041
+ "sum_W_short": 30,
1042
+ "rf_short": 29,
1043
+ "max_abs_delta_short": 0.0,
1044
+ "windows_long": [
1045
+ 32,
1046
+ 32
1047
+ ],
1048
+ "sum_W_long": 64,
1049
+ "max_abs_delta_long": 0.3830170389889227
1050
+ },
1051
+ {
1052
+ "L": 32,
1053
+ "R": 31,
1054
+ "k": 3,
1055
+ "windows_short": [
1056
+ 10,
1057
+ 10,
1058
+ 10
1059
+ ],
1060
+ "sum_W_short": 30,
1061
+ "rf_short": 28,
1062
+ "max_abs_delta_short": 0.0,
1063
+ "windows_long": [
1064
+ 32,
1065
+ 32,
1066
+ 32
1067
+ ],
1068
+ "sum_W_long": 96,
1069
+ "max_abs_delta_long": 0.12814149073121756
1070
+ },
1071
+ {
1072
+ "L": 32,
1073
+ "R": 31,
1074
+ "k": 1,
1075
+ "windows_short": [
1076
+ 30
1077
+ ],
1078
+ "sum_W_short": 30,
1079
+ "rf_short": 30,
1080
+ "max_abs_delta_short": 0.0,
1081
+ "windows_long": [
1082
+ 32
1083
+ ],
1084
+ "sum_W_long": 32,
1085
+ "max_abs_delta_long": 0.06166132814076597
1086
+ },
1087
+ {
1088
+ "L": 32,
1089
+ "R": 31,
1090
+ "k": 2,
1091
+ "windows_short": [
1092
+ 15,
1093
+ 15
1094
+ ],
1095
+ "sum_W_short": 30,
1096
+ "rf_short": 29,
1097
+ "max_abs_delta_short": 0.0,
1098
+ "windows_long": [
1099
+ 32,
1100
+ 32
1101
+ ],
1102
+ "sum_W_long": 64,
1103
+ "max_abs_delta_long": 0.13876098797379044
1104
+ },
1105
+ {
1106
+ "L": 32,
1107
+ "R": 31,
1108
+ "k": 3,
1109
+ "windows_short": [
1110
+ 10,
1111
+ 10,
1112
+ 10
1113
+ ],
1114
+ "sum_W_short": 30,
1115
+ "rf_short": 28,
1116
+ "max_abs_delta_short": 0.0,
1117
+ "windows_long": [
1118
+ 32,
1119
+ 32,
1120
+ 32
1121
+ ],
1122
+ "sum_W_long": 96,
1123
+ "max_abs_delta_long": 0.08809620618693226
1124
+ }
1125
+ ],
1126
+ "n_short_window_tests": 9,
1127
+ "max_abs_delta_when_sumW_below_R": 0.0,
1128
+ "n_long_window_tests": 9,
1129
+ "n_long_window_separated": 9
1130
+ },
1131
+ "64": {
1132
+ "pairs": [
1133
+ {
1134
+ "L": 64,
1135
+ "R": 63,
1136
+ "k": 1,
1137
+ "windows_short": [
1138
+ 62
1139
+ ],
1140
+ "sum_W_short": 62,
1141
+ "rf_short": 62,
1142
+ "max_abs_delta_short": 0.0,
1143
+ "windows_long": [
1144
+ 64
1145
+ ],
1146
+ "sum_W_long": 64,
1147
+ "max_abs_delta_long": 0.03295132835513548
1148
+ },
1149
+ {
1150
+ "L": 64,
1151
+ "R": 63,
1152
+ "k": 2,
1153
+ "windows_short": [
1154
+ 31,
1155
+ 31
1156
+ ],
1157
+ "sum_W_short": 62,
1158
+ "rf_short": 61,
1159
+ "max_abs_delta_short": 0.0,
1160
+ "windows_long": [
1161
+ 64,
1162
+ 64
1163
+ ],
1164
+ "sum_W_long": 128,
1165
+ "max_abs_delta_long": 0.36324841338320957
1166
+ },
1167
+ {
1168
+ "L": 64,
1169
+ "R": 63,
1170
+ "k": 3,
1171
+ "windows_short": [
1172
+ 20,
1173
+ 20,
1174
+ 20
1175
+ ],
1176
+ "sum_W_short": 60,
1177
+ "rf_short": 58,
1178
+ "max_abs_delta_short": 0.0,
1179
+ "windows_long": [
1180
+ 64,
1181
+ 64,
1182
+ 64
1183
+ ],
1184
+ "sum_W_long": 192,
1185
+ "max_abs_delta_long": 0.08466638568402152
1186
+ },
1187
+ {
1188
+ "L": 64,
1189
+ "R": 63,
1190
+ "k": 1,
1191
+ "windows_short": [
1192
+ 62
1193
+ ],
1194
+ "sum_W_short": 62,
1195
+ "rf_short": 62,
1196
+ "max_abs_delta_short": 0.0,
1197
+ "windows_long": [
1198
+ 64
1199
+ ],
1200
+ "sum_W_long": 64,
1201
+ "max_abs_delta_long": 0.23067972072479592
1202
+ },
1203
+ {
1204
+ "L": 64,
1205
+ "R": 63,
1206
+ "k": 2,
1207
+ "windows_short": [
1208
+ 31,
1209
+ 31
1210
+ ],
1211
+ "sum_W_short": 62,
1212
+ "rf_short": 61,
1213
+ "max_abs_delta_short": 0.0,
1214
+ "windows_long": [
1215
+ 64,
1216
+ 64
1217
+ ],
1218
+ "sum_W_long": 128,
1219
+ "max_abs_delta_long": 0.08941496277410776
1220
+ },
1221
+ {
1222
+ "L": 64,
1223
+ "R": 63,
1224
+ "k": 3,
1225
+ "windows_short": [
1226
+ 20,
1227
+ 20,
1228
+ 20
1229
+ ],
1230
+ "sum_W_short": 60,
1231
+ "rf_short": 58,
1232
+ "max_abs_delta_short": 0.0,
1233
+ "windows_long": [
1234
+ 64,
1235
+ 64,
1236
+ 64
1237
+ ],
1238
+ "sum_W_long": 192,
1239
+ "max_abs_delta_long": 0.04893897066339015
1240
+ },
1241
+ {
1242
+ "L": 64,
1243
+ "R": 63,
1244
+ "k": 1,
1245
+ "windows_short": [
1246
+ 62
1247
+ ],
1248
+ "sum_W_short": 62,
1249
+ "rf_short": 62,
1250
+ "max_abs_delta_short": 0.0,
1251
+ "windows_long": [
1252
+ 64
1253
+ ],
1254
+ "sum_W_long": 64,
1255
+ "max_abs_delta_long": 0.01683241713322925
1256
+ },
1257
+ {
1258
+ "L": 64,
1259
+ "R": 63,
1260
+ "k": 2,
1261
+ "windows_short": [
1262
+ 31,
1263
+ 31
1264
+ ],
1265
+ "sum_W_short": 62,
1266
+ "rf_short": 61,
1267
+ "max_abs_delta_short": 0.0,
1268
+ "windows_long": [
1269
+ 64,
1270
+ 64
1271
+ ],
1272
+ "sum_W_long": 128,
1273
+ "max_abs_delta_long": 0.09862298740622921
1274
+ },
1275
+ {
1276
+ "L": 64,
1277
+ "R": 63,
1278
+ "k": 3,
1279
+ "windows_short": [
1280
+ 20,
1281
+ 20,
1282
+ 20
1283
+ ],
1284
+ "sum_W_short": 60,
1285
+ "rf_short": 58,
1286
+ "max_abs_delta_short": 0.0,
1287
+ "windows_long": [
1288
+ 64,
1289
+ 64,
1290
+ 64
1291
+ ],
1292
+ "sum_W_long": 192,
1293
+ "max_abs_delta_long": 0.053174914892574254
1294
+ }
1295
+ ],
1296
+ "n_short_window_tests": 9,
1297
+ "max_abs_delta_when_sumW_below_R": 0.0,
1298
+ "n_long_window_tests": 9,
1299
+ "n_long_window_separated": 9
1300
+ }
1301
+ },
1302
+ "max_abs_delta_when_sumW_below_R": 0.0,
1303
+ "control_full_window_separates_frac": 1.0,
1304
+ "success_prob_when_sumW_below_R": 0.5,
1305
+ "threshold_in_theorem": 0.6666666666666666,
1306
+ "fails_theorem_threshold": true
1307
+ }
replay_a/claim3.json ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "softmax_inverse_temperature_M": 30.0,
3
+ "gate_reference_target_mismatches": 0,
4
+ "gate_codes_injective": true,
5
+ "gate_matmul_vs_einsum": 0.0,
6
+ "exhaustive": [
7
+ {
8
+ "n_inputs": 3093,
9
+ "accuracy": 1.0,
10
+ "attention_argmax_correct": 1.0,
11
+ "ssm_state_correct": 1.0,
12
+ "max_softmax_leakage": 0.0,
13
+ "min_decode_margin": 2.0,
14
+ "offsets": [
15
+ 1,
16
+ 2,
17
+ 3
18
+ ],
19
+ "M": 2,
20
+ "L": 5,
21
+ "V": 5,
22
+ "embed_dim": 16,
23
+ "code_width_c": 3,
24
+ "log2_V": 2.321928094887362,
25
+ "log2_L": 2.321928094887362,
26
+ "window": 3,
27
+ "working_memory_ratio": 0.6,
28
+ "mamba_states": 4,
29
+ "exhaustive": true
30
+ },
31
+ {
32
+ "n_inputs": 45927,
33
+ "accuracy": 1.0,
34
+ "attention_argmax_correct": 1.0,
35
+ "ssm_state_correct": 1.0,
36
+ "max_softmax_leakage": 0.0,
37
+ "min_decode_margin": 2.0,
38
+ "offsets": [
39
+ 1,
40
+ 2,
41
+ 3
42
+ ],
43
+ "M": 3,
44
+ "L": 6,
45
+ "V": 6,
46
+ "embed_dim": 16,
47
+ "code_width_c": 3,
48
+ "log2_V": 2.584962500721156,
49
+ "log2_L": 2.584962500721156,
50
+ "window": 3,
51
+ "working_memory_ratio": 0.5,
52
+ "mamba_states": 4,
53
+ "exhaustive": true
54
+ },
55
+ {
56
+ "n_inputs": 821356,
57
+ "accuracy": 1.0,
58
+ "attention_argmax_correct": 1.0,
59
+ "ssm_state_correct": 1.0,
60
+ "max_softmax_leakage": 0.0,
61
+ "min_decode_margin": 2.0,
62
+ "offsets": [
63
+ 1,
64
+ 2,
65
+ 3,
66
+ 4
67
+ ],
68
+ "M": 3,
69
+ "L": 7,
70
+ "V": 7,
71
+ "embed_dim": 16,
72
+ "code_width_c": 3,
73
+ "log2_V": 2.807354922057604,
74
+ "log2_L": 2.807354922057604,
75
+ "window": 4,
76
+ "working_memory_ratio": 0.5714285714285714,
77
+ "mamba_states": 5,
78
+ "exhaustive": true
79
+ }
80
+ ],
81
+ "random_sweeps": [
82
+ {
83
+ "n_inputs": 66666,
84
+ "accuracy": 1.0,
85
+ "attention_argmax_correct": 1.0,
86
+ "ssm_state_correct": 1.0,
87
+ "max_softmax_leakage": 0.0,
88
+ "min_decode_margin": 2.0,
89
+ "accuracy_mean_over_seeds": 1.0,
90
+ "accuracy_std_over_seeds": 0.0,
91
+ "n_inputs_total": 199998,
92
+ "offsets_min_max": [
93
+ 1,
94
+ 6
95
+ ],
96
+ "n_offsets": 6,
97
+ "M": 4,
98
+ "L": 16,
99
+ "V": 10,
100
+ "embed_dim": 26,
101
+ "code_width_c": 5,
102
+ "log2_V": 3.321928094887362,
103
+ "log2_L": 4.0,
104
+ "window": 6,
105
+ "working_memory_ratio": 0.375,
106
+ "mamba_states": 7
107
+ },
108
+ {
109
+ "n_inputs": 66666,
110
+ "accuracy": 1.0,
111
+ "attention_argmax_correct": 1.0,
112
+ "ssm_state_correct": 1.0,
113
+ "max_softmax_leakage": 0.0,
114
+ "min_decode_margin": 2.0,
115
+ "accuracy_mean_over_seeds": 1.0,
116
+ "accuracy_std_over_seeds": 0.0,
117
+ "n_inputs_total": 199998,
118
+ "offsets_min_max": [
119
+ 5,
120
+ 10
121
+ ],
122
+ "n_offsets": 6,
123
+ "M": 26,
124
+ "L": 100,
125
+ "V": 32,
126
+ "embed_dim": 36,
127
+ "code_width_c": 7,
128
+ "log2_V": 5.0,
129
+ "log2_L": 6.643856189774724,
130
+ "window": 10,
131
+ "working_memory_ratio": 0.1,
132
+ "mamba_states": 7
133
+ },
134
+ {
135
+ "n_inputs": 31722,
136
+ "accuracy": 1.0,
137
+ "attention_argmax_correct": 1.0,
138
+ "ssm_state_correct": 1.0,
139
+ "max_softmax_leakage": 0.0,
140
+ "min_decode_margin": 2.0,
141
+ "accuracy_mean_over_seeds": 1.0,
142
+ "accuracy_std_over_seeds": 0.0,
143
+ "n_inputs_total": 99999,
144
+ "offsets_min_max": [
145
+ 5,
146
+ 10
147
+ ],
148
+ "n_offsets": 6,
149
+ "M": 194,
150
+ "L": 100,
151
+ "V": 200,
152
+ "embed_dim": 41,
153
+ "code_width_c": 8,
154
+ "log2_V": 7.643856189774724,
155
+ "log2_L": 6.643856189774724,
156
+ "window": 10,
157
+ "working_memory_ratio": 0.1,
158
+ "mamba_states": 7
159
+ },
160
+ {
161
+ "n_inputs": 15063,
162
+ "accuracy": 1.0,
163
+ "attention_argmax_correct": 1.0,
164
+ "ssm_state_correct": 1.0,
165
+ "max_softmax_leakage": 0.0,
166
+ "min_decode_margin": 2.0,
167
+ "accuracy_mean_over_seeds": 1.0,
168
+ "accuracy_std_over_seeds": 0.0,
169
+ "n_inputs_total": 99999,
170
+ "offsets_min_max": [
171
+ 5,
172
+ 10
173
+ ],
174
+ "n_offsets": 6,
175
+ "M": 994,
176
+ "L": 100,
177
+ "V": 1000,
178
+ "embed_dim": 51,
179
+ "code_width_c": 10,
180
+ "log2_V": 9.965784284662087,
181
+ "log2_L": 6.643856189774724,
182
+ "window": 10,
183
+ "working_memory_ratio": 0.1,
184
+ "mamba_states": 7
185
+ },
186
+ {
187
+ "n_inputs": 10000,
188
+ "accuracy": 1.0,
189
+ "attention_argmax_correct": 1.0,
190
+ "ssm_state_correct": 1.0,
191
+ "max_softmax_leakage": 0.0,
192
+ "min_decode_margin": 2.0,
193
+ "accuracy_mean_over_seeds": 1.0,
194
+ "accuracy_std_over_seeds": 0.0,
195
+ "n_inputs_total": 30000,
196
+ "offsets_min_max": [
197
+ 1,
198
+ 32
199
+ ],
200
+ "n_offsets": 32,
201
+ "M": 480,
202
+ "L": 1024,
203
+ "V": 512,
204
+ "embed_dim": 56,
205
+ "code_width_c": 11,
206
+ "log2_V": 9.0,
207
+ "log2_L": 10.0,
208
+ "window": 32,
209
+ "working_memory_ratio": 0.03125,
210
+ "mamba_states": 33
211
+ },
212
+ {
213
+ "n_inputs": 2000,
214
+ "accuracy": 1.0,
215
+ "attention_argmax_correct": 1.0,
216
+ "ssm_state_correct": 1.0,
217
+ "max_softmax_leakage": 0.0,
218
+ "min_decode_margin": 2.0,
219
+ "accuracy_mean_over_seeds": 1.0,
220
+ "accuracy_std_over_seeds": 0.0,
221
+ "n_inputs_total": 6000,
222
+ "offsets_min_max": [
223
+ 1,
224
+ 64
225
+ ],
226
+ "n_offsets": 64,
227
+ "M": 960,
228
+ "L": 4096,
229
+ "V": 1024,
230
+ "embed_dim": 66,
231
+ "code_width_c": 13,
232
+ "log2_V": 10.0,
233
+ "log2_L": 12.0,
234
+ "window": 64,
235
+ "working_memory_ratio": 0.015625,
236
+ "mamba_states": 65
237
+ }
238
+ ],
239
+ "total_inputs_tested": 1506370,
240
+ "min_accuracy_over_all_configs": 1.0,
241
+ "embed_dim_scaling": {
242
+ "rows": [
243
+ {
244
+ "V": 5,
245
+ "L": 5,
246
+ "embed_dim": 16,
247
+ "bound_max_log2": 2.321928094887362,
248
+ "ratio": 6.890824929174289
249
+ },
250
+ {
251
+ "V": 6,
252
+ "L": 6,
253
+ "embed_dim": 16,
254
+ "bound_max_log2": 2.584962500721156,
255
+ "ratio": 6.189644915752666
256
+ },
257
+ {
258
+ "V": 7,
259
+ "L": 7,
260
+ "embed_dim": 16,
261
+ "bound_max_log2": 2.807354922057604,
262
+ "ratio": 5.699314993728355
263
+ },
264
+ {
265
+ "V": 10,
266
+ "L": 16,
267
+ "embed_dim": 26,
268
+ "bound_max_log2": 4.0,
269
+ "ratio": 6.5
270
+ },
271
+ {
272
+ "V": 32,
273
+ "L": 100,
274
+ "embed_dim": 36,
275
+ "bound_max_log2": 6.643856189774724,
276
+ "ratio": 5.418539921951662
277
+ },
278
+ {
279
+ "V": 200,
280
+ "L": 100,
281
+ "embed_dim": 41,
282
+ "bound_max_log2": 7.643856189774724,
283
+ "ratio": 5.363784846560324
284
+ },
285
+ {
286
+ "V": 1000,
287
+ "L": 100,
288
+ "embed_dim": 51,
289
+ "bound_max_log2": 9.965784284662087,
290
+ "ratio": 5.11750992628768
291
+ },
292
+ {
293
+ "V": 512,
294
+ "L": 1024,
295
+ "embed_dim": 56,
296
+ "bound_max_log2": 10.0,
297
+ "ratio": 5.6
298
+ },
299
+ {
300
+ "V": 1024,
301
+ "L": 4096,
302
+ "embed_dim": 66,
303
+ "bound_max_log2": 12.0,
304
+ "ratio": 5.5
305
+ }
306
+ ],
307
+ "loglog_slope": 0.8804643490237325,
308
+ "R2": 0.9884958161715269,
309
+ "max_ratio": 6.890824929174289
310
+ },
311
+ "negative_controls": [
312
+ {
313
+ "offsets": [
314
+ 5,
315
+ 10
316
+ ],
317
+ "M": 26,
318
+ "L": 100,
319
+ "full_construction_accuracy": 1.0,
320
+ "control_window_minus_1_accuracy": 0.8386333333333333,
321
+ "control_window_minus_1_lower_bound": 0.8332666666666666,
322
+ "control_window_minus_1_excess_over_bound": 0.005366666666666742,
323
+ "frac_instances_needing_max_offset": 0.16673333333333334,
324
+ "control_no_ssm_query_accuracy": 0.09431666666666666,
325
+ "control_nonselective_ssm_accuracy": 0.26576666666666665,
326
+ "control_nonselective_ssm_state_correct": 0.18866666666666668,
327
+ "chance_level": 0.03125,
328
+ "analytic_softmax_leakage_bound": 7.880859686426868e-26
329
+ },
330
+ {
331
+ "offsets": [
332
+ 1,
333
+ 6
334
+ ],
335
+ "M": 4,
336
+ "L": 16,
337
+ "full_construction_accuracy": 1.0,
338
+ "control_window_minus_1_accuracy": 0.8489333333333333,
339
+ "control_window_minus_1_lower_bound": 0.8313833333333334,
340
+ "control_window_minus_1_excess_over_bound": 0.017549999999999955,
341
+ "frac_instances_needing_max_offset": 0.16861666666666666,
342
+ "control_no_ssm_query_accuracy": 0.26435,
343
+ "control_nonselective_ssm_accuracy": 0.6937666666666666,
344
+ "control_nonselective_ssm_state_correct": 0.6011666666666666,
345
+ "chance_level": 0.1,
346
+ "analytic_softmax_leakage_bound": 4.37825538134826e-26
347
+ }
348
+ ]
349
+ }
replay_a/claim3_native.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "direct_native_notebook_execution",
3
+ "official_repository": "https://github.com/SprocketLab/hybrid-expressivity",
4
+ "repository_checkout": "6be8f8fbc2169290af6f4ba5e4bd53a5c6485f7b",
5
+ "repository_is_git_checkout": true,
6
+ "notebook": "source/official-code/constructions/construction_var_copy.ipynb",
7
+ "notebook_sha256": "78b23ac5677e16533425aba2036f691776ccb87b6195394a24d47f98384fb9b9",
8
+ "executed_code_cells": [
9
+ 1,
10
+ 2,
11
+ 3,
12
+ 4,
13
+ 5,
14
+ 6,
15
+ 7,
16
+ 8,
17
+ 9,
18
+ 10,
19
+ 11,
20
+ 12,
21
+ 13,
22
+ 14,
23
+ 15,
24
+ 16,
25
+ 17,
26
+ 18
27
+ ],
28
+ "device": "cpu",
29
+ "torch_version": "2.6.0",
30
+ "baseline": {
31
+ "n_batches": 256,
32
+ "examples_per_batch": 4,
33
+ "eligible_last_position_examples": 1024,
34
+ "correct_last_position_examples": 845,
35
+ "last_position_accuracy": 0.8251953125
36
+ },
37
+ "destructive_control": {
38
+ "ablation": "first SimpleSSM Delta vector set to zero in memory",
39
+ "eligible_last_position_examples": 1024,
40
+ "correct_last_position_examples": 56,
41
+ "last_position_accuracy": 0.0546875
42
+ },
43
+ "control_is_lower": true,
44
+ "scope": "Construction cells plus deterministic last-position batches; not a learned-model training rerun."
45
+ }
replay_a/claim4.json ADDED
@@ -0,0 +1,293 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "gate_shift_head_vs_softmax_attention": 0.0,
3
+ "gate_reference_target_mismatches": 0,
4
+ "exhaustive_full_window": [
5
+ {
6
+ "n_instances": 13468,
7
+ "frac_target_defined": 0.822021484375,
8
+ "success": 1.0,
9
+ "ssm_key_decoded_correctly": 1.0,
10
+ "attention_argmax_correct": 1.0,
11
+ "max_softmax_leakage": 2.2336310578907614e-10,
12
+ "min_decode_margin": 1.9999999991065476,
13
+ "Mw": 4,
14
+ "L": 8,
15
+ "V": 6,
16
+ "ds": 2,
17
+ "embed_dim": 18,
18
+ "window": 8,
19
+ "exhaustive": true,
20
+ "n_enumerated": 16384
21
+ },
22
+ {
23
+ "n_instances": 56788,
24
+ "frac_target_defined": 0.86651611328125,
25
+ "success": 1.0,
26
+ "ssm_key_decoded_correctly": 1.0,
27
+ "attention_argmax_correct": 1.0,
28
+ "max_softmax_leakage": 1.6918977330249163e-10,
29
+ "min_decode_margin": 1.999999999323241,
30
+ "Mw": 4,
31
+ "L": 9,
32
+ "V": 6,
33
+ "ds": 2,
34
+ "embed_dim": 18,
35
+ "window": 9,
36
+ "exhaustive": true,
37
+ "n_enumerated": 65536
38
+ },
39
+ {
40
+ "n_instances": 127688,
41
+ "frac_target_defined": 0.487091064453125,
42
+ "success": 1.0,
43
+ "ssm_key_decoded_correctly": 1.0,
44
+ "attention_argmax_correct": 1.0,
45
+ "max_softmax_leakage": 2.2336310578907614e-10,
46
+ "min_decode_margin": 1.9999999991065476,
47
+ "Mw": 8,
48
+ "L": 8,
49
+ "V": 10,
50
+ "ds": 3,
51
+ "embed_dim": 22,
52
+ "window": 8,
53
+ "exhaustive": true,
54
+ "n_enumerated": 262144
55
+ }
56
+ ],
57
+ "theorem_window": [
58
+ {
59
+ "n_instances": 20000,
60
+ "frac_target_defined": 1.0,
61
+ "success": 0.9931,
62
+ "ssm_key_decoded_correctly": 1.0,
63
+ "attention_argmax_correct": 0.9926,
64
+ "max_softmax_leakage": 1.7788437389754108e-11,
65
+ "min_decode_margin": 1.9999999999288463,
66
+ "success_mean": 0.9934199319965998,
67
+ "success_std": 0.0004020322623794229,
68
+ "n_instances_total": 100000,
69
+ "Mw": 8,
70
+ "L": 100,
71
+ "V": 10,
72
+ "ds": 3,
73
+ "embed_dim": 25,
74
+ "bound_max_log2": 6.643856189774724,
75
+ "window_required": 39,
76
+ "window_over_Mw": 4.875,
77
+ "window_over_L": 0.39,
78
+ "analytic_success": 0.992850133023305,
79
+ "abs_gap_vs_analytic": 0.0005697989732947883,
80
+ "empirical_mean_meets_99pct": true,
81
+ "analytic_certificate_meets_99pct": true,
82
+ "seeds": 5
83
+ },
84
+ {
85
+ "n_instances": 20000,
86
+ "frac_target_defined": 1.0,
87
+ "success": 0.99195,
88
+ "ssm_key_decoded_correctly": 1.0,
89
+ "attention_argmax_correct": 0.9914,
90
+ "max_softmax_leakage": 1.5727419366839968e-11,
91
+ "min_decode_margin": 1.9999999999370899,
92
+ "success_mean": 0.99193,
93
+ "success_std": 0.0003203123475609443,
94
+ "n_instances_total": 100000,
95
+ "Mw": 16,
96
+ "L": 200,
97
+ "V": 18,
98
+ "ds": 4,
99
+ "embed_dim": 30,
100
+ "bound_max_log2": 7.643856189774724,
101
+ "window_required": 77,
102
+ "window_over_Mw": 4.8125,
103
+ "window_over_L": 0.385,
104
+ "analytic_success": 0.9915690899931828,
105
+ "abs_gap_vs_analytic": 0.00036091000681715,
106
+ "empirical_mean_meets_99pct": true,
107
+ "analytic_certificate_meets_99pct": true,
108
+ "seeds": 5
109
+ },
110
+ {
111
+ "n_instances": 20000,
112
+ "frac_target_defined": 1.0,
113
+ "success": 0.9892,
114
+ "ssm_key_decoded_correctly": 1.0,
115
+ "attention_argmax_correct": 0.98895,
116
+ "max_softmax_leakage": 1.478128730525441e-11,
117
+ "min_decode_margin": 1.9999999999408744,
118
+ "success_mean": 0.9908899999999999,
119
+ "success_std": 0.0010589617556833637,
120
+ "n_instances_total": 100000,
121
+ "Mw": 32,
122
+ "L": 400,
123
+ "V": 34,
124
+ "ds": 5,
125
+ "embed_dim": 35,
126
+ "bound_max_log2": 8.643856189774725,
127
+ "window_required": 152,
128
+ "window_over_Mw": 4.75,
129
+ "window_over_L": 0.38,
130
+ "analytic_success": 0.9908938689499518,
131
+ "abs_gap_vs_analytic": 3.868949951857381e-06,
132
+ "empirical_mean_meets_99pct": true,
133
+ "analytic_certificate_meets_99pct": true,
134
+ "seeds": 5
135
+ },
136
+ {
137
+ "n_instances": 20000,
138
+ "frac_target_defined": 1.0,
139
+ "success": 0.9904,
140
+ "ssm_key_decoded_correctly": 1.0,
141
+ "attention_argmax_correct": 0.99025,
142
+ "max_softmax_leakage": 1.4328316311207345e-11,
143
+ "min_decode_margin": 1.9999999999426867,
144
+ "success_mean": 0.9898197874893745,
145
+ "success_std": 0.0004907101259804869,
146
+ "n_instances_total": 100000,
147
+ "Mw": 64,
148
+ "L": 800,
149
+ "V": 66,
150
+ "ds": 6,
151
+ "embed_dim": 40,
152
+ "bound_max_log2": 9.643856189774725,
153
+ "window_required": 300,
154
+ "window_over_Mw": 4.6875,
155
+ "window_over_L": 0.375,
156
+ "analytic_success": 0.9903978217538046,
157
+ "abs_gap_vs_analytic": 0.0005780342644301495,
158
+ "empirical_mean_meets_99pct": false,
159
+ "analytic_certificate_meets_99pct": true,
160
+ "seeds": 5
161
+ },
162
+ {
163
+ "n_instances": 20000,
164
+ "frac_target_defined": 1.0,
165
+ "success": 0.9916,
166
+ "ssm_key_decoded_correctly": 1.0,
167
+ "attention_argmax_correct": 0.99155,
168
+ "max_softmax_leakage": 1.4106493750887239e-11,
169
+ "min_decode_margin": 1.999999999943574,
170
+ "success_mean": 0.99084,
171
+ "success_std": 0.0005304714883950082,
172
+ "n_instances_total": 100000,
173
+ "Mw": 128,
174
+ "L": 1600,
175
+ "V": 130,
176
+ "ds": 7,
177
+ "embed_dim": 45,
178
+ "bound_max_log2": 10.643856189774725,
179
+ "window_required": 596,
180
+ "window_over_Mw": 4.65625,
181
+ "window_over_L": 0.3725,
182
+ "analytic_success": 0.9902205760941751,
183
+ "abs_gap_vs_analytic": 0.0006194239058249229,
184
+ "empirical_mean_meets_99pct": true,
185
+ "analytic_certificate_meets_99pct": true,
186
+ "seeds": 5
187
+ }
188
+ ],
189
+ "min_success_at_theorem_window": 0.9898197874893745,
190
+ "max_gap_vs_analytic": 0.0006194239058249229,
191
+ "all_meet_99pct": true,
192
+ "negative_controls": [
193
+ {
194
+ "Mw": 16,
195
+ "L": 200,
196
+ "window_required": 77,
197
+ "full_window_success": 1.0,
198
+ "theorem_window_success": 0.991575,
199
+ "control_window_eq_Mw_success": 0.58775,
200
+ "control_window_eq_Mw_analytic": 0.5678578849390983,
201
+ "control_window_eq_Mw_gap": 0.019892115060901716,
202
+ "one_minus_1_over_e": 0.6321205588285577,
203
+ "control_blind_query_success": 0.032425,
204
+ "control_no_mamba_success": 0.1152,
205
+ "control_no_mamba_key_decoded": 0.063325,
206
+ "control_no_positional_bias_success": 0.248525,
207
+ "frac_key_repeated_in_window": 0.95075,
208
+ "control_no_bias_predicted_ceiling": 0.049250000000000016,
209
+ "chance_level": 0.0625
210
+ },
211
+ {
212
+ "Mw": 32,
213
+ "L": 400,
214
+ "window_required": 152,
215
+ "full_window_success": 1.0,
216
+ "theorem_window_success": 0.991075,
217
+ "control_window_eq_Mw_success": 0.6003,
218
+ "control_window_eq_Mw_analytic": 0.5889184036018332,
219
+ "control_window_eq_Mw_gap": 0.011381596398166716,
220
+ "one_minus_1_over_e": 0.6321205588285577,
221
+ "control_blind_query_success": 0.01555,
222
+ "control_no_mamba_success": 0.05795,
223
+ "control_no_mamba_key_decoded": 0.03065,
224
+ "control_no_positional_bias_success": 0.194175,
225
+ "frac_key_repeated_in_window": 0.947875,
226
+ "control_no_bias_predicted_ceiling": 0.05212499999999998,
227
+ "chance_level": 0.03125
228
+ }
229
+ ],
230
+ "window_sweep_Mw32_L400": [
231
+ {
232
+ "window": 8,
233
+ "success": 0.12866666666666668,
234
+ "analytic": 0.1192617416381836,
235
+ "abs_gap": 0.009404925028483085
236
+ },
237
+ {
238
+ "window": 16,
239
+ "success": 0.32953333333333334,
240
+ "analytic": 0.31681143890437935,
241
+ "abs_gap": 0.012721894428953995
242
+ },
243
+ {
244
+ "window": 32,
245
+ "success": 0.6007333333333333,
246
+ "analytic": 0.5889184036018332,
247
+ "abs_gap": 0.011814929731500112
248
+ },
249
+ {
250
+ "window": 64,
251
+ "success": 0.8548666666666667,
252
+ "analytic": 0.8511657337081133,
253
+ "abs_gap": 0.003700932958553338
254
+ },
255
+ {
256
+ "window": 96,
257
+ "success": 0.9476333333333333,
258
+ "analytic": 0.9461137666664393,
259
+ "abs_gap": 0.0015195666668940122
260
+ },
261
+ {
262
+ "window": 128,
263
+ "success": 0.9806,
264
+ "analytic": 0.9804902042034843,
265
+ "abs_gap": 0.00010979579651571036
266
+ },
267
+ {
268
+ "window": 154,
269
+ "success": 0.9916,
270
+ "analytic": 0.9914541094344762,
271
+ "abs_gap": 0.00014589056552383184
272
+ },
273
+ {
274
+ "window": 200,
275
+ "success": 0.9979666666666667,
276
+ "analytic": 0.9980162075146308,
277
+ "abs_gap": 4.954084796415792e-05
278
+ },
279
+ {
280
+ "window": 300,
281
+ "success": 0.9999333333333333,
282
+ "analytic": 0.9999170783772994,
283
+ "abs_gap": 1.6254956033967538e-05
284
+ },
285
+ {
286
+ "window": 400,
287
+ "success": 1.0,
288
+ "analytic": 0.9999964221046956,
289
+ "abs_gap": 3.5778953043630324e-06
290
+ }
291
+ ],
292
+ "window_sweep_max_gap": 0.012721894428953995
293
+ }
replay_a/claim4_native.json ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "direct_native_notebook_execution",
3
+ "official_repository": "https://github.com/SprocketLab/hybrid-expressivity",
4
+ "repository_checkout": "6be8f8fbc2169290af6f4ba5e4bd53a5c6485f7b",
5
+ "repository_is_git_checkout": true,
6
+ "notebook": "source/official-code/constructions/construction_decode_recall.ipynb",
7
+ "notebook_sha256": "a6fa59b59c813a5349e8ff8995ba1e9bc8016586e25b1d961f3f5c30b94fa641",
8
+ "executed_code_cells": [
9
+ 1,
10
+ 2,
11
+ 3,
12
+ 4,
13
+ 5,
14
+ 6,
15
+ 7,
16
+ 8,
17
+ 9,
18
+ 10,
19
+ 11,
20
+ 12,
21
+ 13,
22
+ 14,
23
+ 15,
24
+ 16,
25
+ 17,
26
+ 18,
27
+ 19,
28
+ 20,
29
+ 21,
30
+ 22,
31
+ 23,
32
+ 24,
33
+ 26,
34
+ 27
35
+ ],
36
+ "device": "cpu",
37
+ "torch_version": "2.6.0",
38
+ "baseline": {
39
+ "n_batches": 256,
40
+ "examples_per_batch": 4,
41
+ "eligible_last_position_examples": 952,
42
+ "correct_last_position_examples": 883,
43
+ "last_position_accuracy": 0.9275210084033614
44
+ },
45
+ "destructive_control": {
46
+ "ablation": "first SimpleSSM Delta vector set to zero in memory",
47
+ "eligible_last_position_examples": 952,
48
+ "correct_last_position_examples": 25,
49
+ "last_position_accuracy": 0.026260504201680673
50
+ },
51
+ "control_is_lower": true,
52
+ "scope": "Construction cells plus deterministic last-position batches; not a learned-model training rerun."
53
+ }
replay_a/claim5.json ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "exact_authored_source_audit",
3
+ "source": "source/authored/sections/experiments.tex",
4
+ "source_sha256": "fcd88332cbe90aff62337c3add333f71fc542736b3e459015a28f0b08ae3c55b",
5
+ "table_heading_line": 26,
6
+ "caption_line": 42,
7
+ "table_rows": [
8
+ {
9
+ "parameters_approx": 1000.0,
10
+ "pure_tf": 0.056,
11
+ "pure_ssm": 0.084,
12
+ "tf_to_ssm": 0.1,
13
+ "ssm_to_tf": 0.087
14
+ },
15
+ {
16
+ "parameters_approx": 2000.0,
17
+ "pure_tf": 0.352,
18
+ "pure_ssm": 0.305,
19
+ "tf_to_ssm": 0.433,
20
+ "ssm_to_tf": 0.999
21
+ },
22
+ {
23
+ "parameters_approx": 6000.0,
24
+ "pure_tf": 0.727,
25
+ "pure_ssm": 0.485,
26
+ "tf_to_ssm": 0.822,
27
+ "ssm_to_tf": 1.0
28
+ },
29
+ {
30
+ "parameters_approx": 12000.0,
31
+ "pure_tf": 0.923,
32
+ "pure_ssm": 0.931,
33
+ "tf_to_ssm": 0.908,
34
+ "ssm_to_tf": 1.0
35
+ }
36
+ ],
37
+ "literal_table_comparison": {
38
+ "hybrid_ssm_to_tf_at_approximately_2000": 0.999,
39
+ "pure_tf_at_approximately_12000": 0.923,
40
+ "pure_ssm_at_approximately_12000": 0.931,
41
+ "parameter_ratio_12000_over_2000": 6.0,
42
+ "strict_table_value_is_exactly_one": false
43
+ },
44
+ "source_caption_says_perfect": true,
45
+ "source_results_says_roughly_six_times": true,
46
+ "assessment": "The authored table supports the approximate 6x/near-perfect comparison (.999 versus .923/.931), but its printed .999 is not literally 1.000 while the caption calls it perfect. This is source evidence, not an independent learned-model reproduction.",
47
+ "training_route": {
48
+ "official_train_file": "source/official-code/micro_hf/train_utils.py",
49
+ "official_train_file_sha256": "ec4ccc0fa03f636f141904484f54763576e741c6f3586b1405343bb844c7c040",
50
+ "hard_coded_cuda_calls": 1,
51
+ "torch_cuda_available_on_this_host": false,
52
+ "result_artifacts_present": false,
53
+ "reason_no_local_training_rerun": "The official micro_hf entry point hard-codes CUDA tensors; this host has no CUDA device. The checkout contains figures and lrs.json metadata but no per-run evaluation JSON/CSV/checkpoint results."
54
+ }
55
+ }
replay_a/claim6.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "exact_authored_source_audit",
3
+ "source": "source/authored/sections/experiments.tex",
4
+ "source_sha256": "fcd88332cbe90aff62337c3add333f71fc542736b3e459015a28f0b08ae3c55b",
5
+ "mkar_table_heading_line": 63,
6
+ "mkar_caption_line": 80,
7
+ "single_key_figure_result_line": 60,
8
+ "mkar_table_rows": [
9
+ {
10
+ "parameters_approx": 1000.0,
11
+ "pure_tf": 0.124,
12
+ "pure_ssm": 0.158,
13
+ "tf_to_ssm": 0.131,
14
+ "ssm_to_tf": 0.144
15
+ },
16
+ {
17
+ "parameters_approx": 2000.0,
18
+ "pure_tf": 0.159,
19
+ "pure_ssm": 0.173,
20
+ "tf_to_ssm": 0.183,
21
+ "ssm_to_tf": 0.512
22
+ },
23
+ {
24
+ "parameters_approx": 6000.0,
25
+ "pure_tf": 0.23,
26
+ "pure_ssm": 0.356,
27
+ "tf_to_ssm": 0.286,
28
+ "ssm_to_tf": 0.99
29
+ },
30
+ {
31
+ "parameters_approx": 12000.0,
32
+ "pure_tf": 0.668,
33
+ "pure_ssm": 0.517,
34
+ "tf_to_ssm": 0.524,
35
+ "ssm_to_tf": 0.989
36
+ }
37
+ ],
38
+ "literal_table_checks": {
39
+ "hybrid_ssm_to_tf_at_approximately_2000": 0.512,
40
+ "hybrid_ssm_to_tf_at_approximately_6000": 0.99,
41
+ "pure_tf_at_approximately_12000": 0.668,
42
+ "sixfold_parameter_ratio_from_2000_to_12000": 6.0,
43
+ "hybrid_reaches_0_60_at_approximately_2000": false,
44
+ "hybrid_reaches_0_60_at_approximately_6000": true,
45
+ "ratio_for_6000_vs_12000": 2.0
46
+ },
47
+ "source_caption_claims_60pct_and_six_times": true,
48
+ "single_key_statement_is_a_different_task": true,
49
+ "assessment": "The authored MKAR table is internally insufficient for the literal 60%-at-6x conjunction: at the 6x row it reports .512 (<.60), while at .990 the nearest shown pure-TF row is only 2x larger. The caption asserts the headline, but raw points needed to locate an unshown 60% crossing were not released. The <=40% statement is explicitly about associative recall with decoding (Figure 5), not MKAR (Figure 6).",
50
+ "training_route": {
51
+ "official_train_file": "source/official-code/micro_hf/train_utils.py",
52
+ "official_train_file_sha256": "ec4ccc0fa03f636f141904484f54763576e741c6f3586b1405343bb844c7c040",
53
+ "hard_coded_cuda_calls": 1,
54
+ "torch_cuda_available_on_this_host": false,
55
+ "result_artifacts_present": false,
56
+ "reason_no_local_training_rerun": "The official micro_hf entry point hard-codes CUDA tensors; this host has no CUDA device. The checkout contains figures and lrs.json metadata but no per-run evaluation JSON/CSV/checkpoint results."
57
+ }
58
+ }
replay_b/claim1.json ADDED
@@ -0,0 +1,747 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "task": "F(u,v) = u_v with Q = [m]; G(u)=u is injective (Asm 3.2)",
3
+ "grid": [
4
+ {
5
+ "m": 2,
6
+ "V": 2,
7
+ "n_prefixes": 4,
8
+ "log2_states_required": 2.0,
9
+ "theory_m_log2_V": 2.0,
10
+ "abs_residual": 0.0,
11
+ "pairs_checked": 6,
12
+ "pairs_separated": 6,
13
+ "all_pairs_separated": true,
14
+ "min_separating_queries": 1,
15
+ "control_states": 3,
16
+ "control_acc_closed_form": 0.875,
17
+ "control_acc_bruteforce": 0.875,
18
+ "control_acc_gap": 0.0,
19
+ "control_witness_pair": [
20
+ [
21
+ 0,
22
+ 0
23
+ ],
24
+ [
25
+ 0,
26
+ 1
27
+ ]
28
+ ]
29
+ },
30
+ {
31
+ "m": 3,
32
+ "V": 2,
33
+ "n_prefixes": 8,
34
+ "log2_states_required": 3.0,
35
+ "theory_m_log2_V": 3.0,
36
+ "abs_residual": 0.0,
37
+ "pairs_checked": 28,
38
+ "pairs_separated": 28,
39
+ "all_pairs_separated": true,
40
+ "min_separating_queries": 1,
41
+ "control_states": 7,
42
+ "control_acc_closed_form": 0.9583333333333334,
43
+ "control_acc_bruteforce": 0.9583333333333334,
44
+ "control_acc_gap": 0.0,
45
+ "control_witness_pair": [
46
+ [
47
+ 0,
48
+ 0,
49
+ 0
50
+ ],
51
+ [
52
+ 0,
53
+ 0,
54
+ 1
55
+ ]
56
+ ]
57
+ },
58
+ {
59
+ "m": 4,
60
+ "V": 2,
61
+ "n_prefixes": 16,
62
+ "log2_states_required": 4.0,
63
+ "theory_m_log2_V": 4.0,
64
+ "abs_residual": 0.0,
65
+ "pairs_checked": 120,
66
+ "pairs_separated": 120,
67
+ "all_pairs_separated": true,
68
+ "min_separating_queries": 1,
69
+ "control_states": 15,
70
+ "control_acc_closed_form": 0.984375,
71
+ "control_acc_bruteforce": 0.984375,
72
+ "control_acc_gap": 0.0,
73
+ "control_witness_pair": [
74
+ [
75
+ 0,
76
+ 0,
77
+ 0,
78
+ 0
79
+ ],
80
+ [
81
+ 0,
82
+ 0,
83
+ 0,
84
+ 1
85
+ ]
86
+ ]
87
+ },
88
+ {
89
+ "m": 5,
90
+ "V": 2,
91
+ "n_prefixes": 32,
92
+ "log2_states_required": 5.0,
93
+ "theory_m_log2_V": 5.0,
94
+ "abs_residual": 0.0,
95
+ "pairs_checked": 496,
96
+ "pairs_separated": 496,
97
+ "all_pairs_separated": true,
98
+ "min_separating_queries": 1,
99
+ "control_states": 31,
100
+ "control_acc_closed_form": 0.99375,
101
+ "control_acc_bruteforce": 0.99375,
102
+ "control_acc_gap": 0.0,
103
+ "control_witness_pair": [
104
+ [
105
+ 0,
106
+ 0,
107
+ 0,
108
+ 0,
109
+ 0
110
+ ],
111
+ [
112
+ 0,
113
+ 0,
114
+ 0,
115
+ 0,
116
+ 1
117
+ ]
118
+ ]
119
+ },
120
+ {
121
+ "m": 6,
122
+ "V": 2,
123
+ "n_prefixes": 64,
124
+ "log2_states_required": 6.0,
125
+ "theory_m_log2_V": 6.0,
126
+ "abs_residual": 0.0,
127
+ "pairs_checked": 2016,
128
+ "pairs_separated": 2016,
129
+ "all_pairs_separated": true,
130
+ "min_separating_queries": 1,
131
+ "control_states": 63,
132
+ "control_acc_closed_form": 0.9973958333333334,
133
+ "control_acc_bruteforce": 0.9973958333333334,
134
+ "control_acc_gap": 0.0,
135
+ "control_witness_pair": [
136
+ [
137
+ 0,
138
+ 0,
139
+ 0,
140
+ 0,
141
+ 0,
142
+ 0
143
+ ],
144
+ [
145
+ 0,
146
+ 0,
147
+ 0,
148
+ 0,
149
+ 0,
150
+ 1
151
+ ]
152
+ ]
153
+ },
154
+ {
155
+ "m": 7,
156
+ "V": 2,
157
+ "n_prefixes": 128,
158
+ "log2_states_required": 7.0,
159
+ "theory_m_log2_V": 7.0,
160
+ "abs_residual": 0.0,
161
+ "pairs_checked": 8128,
162
+ "pairs_separated": 8128,
163
+ "all_pairs_separated": true,
164
+ "min_separating_queries": 1,
165
+ "control_states": 127,
166
+ "control_acc_closed_form": 0.9988839285714286,
167
+ "control_acc_bruteforce": 0.9988839285714286,
168
+ "control_acc_gap": 0.0,
169
+ "control_witness_pair": [
170
+ [
171
+ 0,
172
+ 0,
173
+ 0,
174
+ 0,
175
+ 0,
176
+ 0,
177
+ 0
178
+ ],
179
+ [
180
+ 0,
181
+ 0,
182
+ 0,
183
+ 0,
184
+ 0,
185
+ 0,
186
+ 1
187
+ ]
188
+ ]
189
+ },
190
+ {
191
+ "m": 8,
192
+ "V": 2,
193
+ "n_prefixes": 256,
194
+ "log2_states_required": 8.0,
195
+ "theory_m_log2_V": 8.0,
196
+ "abs_residual": 0.0,
197
+ "pairs_checked": 32640,
198
+ "pairs_separated": 32640,
199
+ "all_pairs_separated": true,
200
+ "min_separating_queries": 1,
201
+ "control_states": 255,
202
+ "control_acc_closed_form": 0.99951171875,
203
+ "control_acc_bruteforce": 0.99951171875,
204
+ "control_acc_gap": 0.0,
205
+ "control_witness_pair": [
206
+ [
207
+ 0,
208
+ 0,
209
+ 0,
210
+ 0,
211
+ 0,
212
+ 0,
213
+ 0,
214
+ 0
215
+ ],
216
+ [
217
+ 0,
218
+ 0,
219
+ 0,
220
+ 0,
221
+ 0,
222
+ 0,
223
+ 0,
224
+ 1
225
+ ]
226
+ ]
227
+ },
228
+ {
229
+ "m": 9,
230
+ "V": 2,
231
+ "n_prefixes": 512,
232
+ "log2_states_required": 9.0,
233
+ "theory_m_log2_V": 9.0,
234
+ "abs_residual": 0.0,
235
+ "pairs_checked": 130816,
236
+ "pairs_separated": 130816,
237
+ "all_pairs_separated": true,
238
+ "min_separating_queries": 1,
239
+ "control_states": 511,
240
+ "control_acc_closed_form": 0.9997829861111112
241
+ },
242
+ {
243
+ "m": 10,
244
+ "V": 2,
245
+ "n_prefixes": 1024,
246
+ "log2_states_required": 10.0,
247
+ "theory_m_log2_V": 10.0,
248
+ "abs_residual": 0.0,
249
+ "control_states": 1023,
250
+ "control_acc_closed_form": 0.99990234375
251
+ },
252
+ {
253
+ "m": 2,
254
+ "V": 3,
255
+ "n_prefixes": 9,
256
+ "log2_states_required": 3.169925001442312,
257
+ "theory_m_log2_V": 3.169925001442312,
258
+ "abs_residual": 0.0,
259
+ "pairs_checked": 36,
260
+ "pairs_separated": 36,
261
+ "all_pairs_separated": true,
262
+ "min_separating_queries": 1,
263
+ "control_states": 8,
264
+ "control_acc_closed_form": 0.9444444444444444,
265
+ "control_acc_bruteforce": 0.9444444444444444,
266
+ "control_acc_gap": 0.0,
267
+ "control_witness_pair": [
268
+ [
269
+ 0,
270
+ 0
271
+ ],
272
+ [
273
+ 0,
274
+ 1
275
+ ]
276
+ ]
277
+ },
278
+ {
279
+ "m": 3,
280
+ "V": 3,
281
+ "n_prefixes": 27,
282
+ "log2_states_required": 4.754887502163468,
283
+ "theory_m_log2_V": 4.754887502163468,
284
+ "abs_residual": 0.0,
285
+ "pairs_checked": 351,
286
+ "pairs_separated": 351,
287
+ "all_pairs_separated": true,
288
+ "min_separating_queries": 1,
289
+ "control_states": 26,
290
+ "control_acc_closed_form": 0.9876543209876543,
291
+ "control_acc_bruteforce": 0.9876543209876543,
292
+ "control_acc_gap": 0.0,
293
+ "control_witness_pair": [
294
+ [
295
+ 0,
296
+ 0,
297
+ 0
298
+ ],
299
+ [
300
+ 0,
301
+ 0,
302
+ 1
303
+ ]
304
+ ]
305
+ },
306
+ {
307
+ "m": 4,
308
+ "V": 3,
309
+ "n_prefixes": 81,
310
+ "log2_states_required": 6.339850002884624,
311
+ "theory_m_log2_V": 6.339850002884624,
312
+ "abs_residual": 0.0,
313
+ "pairs_checked": 3240,
314
+ "pairs_separated": 3240,
315
+ "all_pairs_separated": true,
316
+ "min_separating_queries": 1,
317
+ "control_states": 80,
318
+ "control_acc_closed_form": 0.9969135802469136,
319
+ "control_acc_bruteforce": 0.9969135802469136,
320
+ "control_acc_gap": 0.0,
321
+ "control_witness_pair": [
322
+ [
323
+ 0,
324
+ 0,
325
+ 0,
326
+ 0
327
+ ],
328
+ [
329
+ 0,
330
+ 0,
331
+ 0,
332
+ 1
333
+ ]
334
+ ]
335
+ },
336
+ {
337
+ "m": 5,
338
+ "V": 3,
339
+ "n_prefixes": 243,
340
+ "log2_states_required": 7.924812503605781,
341
+ "theory_m_log2_V": 7.92481250360578,
342
+ "abs_residual": 8.881784197001252e-16,
343
+ "pairs_checked": 29403,
344
+ "pairs_separated": 29403,
345
+ "all_pairs_separated": true,
346
+ "min_separating_queries": 1,
347
+ "control_states": 242,
348
+ "control_acc_closed_form": 0.9991769547325103,
349
+ "control_acc_bruteforce": 0.9991769547325103,
350
+ "control_acc_gap": 0.0,
351
+ "control_witness_pair": [
352
+ [
353
+ 0,
354
+ 0,
355
+ 0,
356
+ 0,
357
+ 0
358
+ ],
359
+ [
360
+ 0,
361
+ 0,
362
+ 0,
363
+ 0,
364
+ 1
365
+ ]
366
+ ]
367
+ },
368
+ {
369
+ "m": 6,
370
+ "V": 3,
371
+ "n_prefixes": 729,
372
+ "log2_states_required": 9.509775004326936,
373
+ "theory_m_log2_V": 9.509775004326936,
374
+ "abs_residual": 0.0,
375
+ "control_states": 728,
376
+ "control_acc_closed_form": 0.9997713763145862
377
+ },
378
+ {
379
+ "m": 7,
380
+ "V": 3,
381
+ "n_prefixes": 2187,
382
+ "log2_states_required": 11.094737505048093,
383
+ "theory_m_log2_V": 11.094737505048093,
384
+ "abs_residual": 0.0,
385
+ "control_states": 2186,
386
+ "control_acc_closed_form": 0.9999346789470246
387
+ },
388
+ {
389
+ "m": 2,
390
+ "V": 4,
391
+ "n_prefixes": 16,
392
+ "log2_states_required": 4.0,
393
+ "theory_m_log2_V": 4.0,
394
+ "abs_residual": 0.0,
395
+ "pairs_checked": 120,
396
+ "pairs_separated": 120,
397
+ "all_pairs_separated": true,
398
+ "min_separating_queries": 1,
399
+ "control_states": 15,
400
+ "control_acc_closed_form": 0.96875,
401
+ "control_acc_bruteforce": 0.96875,
402
+ "control_acc_gap": 0.0,
403
+ "control_witness_pair": [
404
+ [
405
+ 0,
406
+ 0
407
+ ],
408
+ [
409
+ 0,
410
+ 1
411
+ ]
412
+ ]
413
+ },
414
+ {
415
+ "m": 3,
416
+ "V": 4,
417
+ "n_prefixes": 64,
418
+ "log2_states_required": 6.0,
419
+ "theory_m_log2_V": 6.0,
420
+ "abs_residual": 0.0,
421
+ "pairs_checked": 2016,
422
+ "pairs_separated": 2016,
423
+ "all_pairs_separated": true,
424
+ "min_separating_queries": 1,
425
+ "control_states": 63,
426
+ "control_acc_closed_form": 0.9947916666666666,
427
+ "control_acc_bruteforce": 0.9947916666666666,
428
+ "control_acc_gap": 0.0,
429
+ "control_witness_pair": [
430
+ [
431
+ 0,
432
+ 0,
433
+ 0
434
+ ],
435
+ [
436
+ 0,
437
+ 0,
438
+ 1
439
+ ]
440
+ ]
441
+ },
442
+ {
443
+ "m": 4,
444
+ "V": 4,
445
+ "n_prefixes": 256,
446
+ "log2_states_required": 8.0,
447
+ "theory_m_log2_V": 8.0,
448
+ "abs_residual": 0.0,
449
+ "pairs_checked": 32640,
450
+ "pairs_separated": 32640,
451
+ "all_pairs_separated": true,
452
+ "min_separating_queries": 1,
453
+ "control_states": 255,
454
+ "control_acc_closed_form": 0.9990234375,
455
+ "control_acc_bruteforce": 0.9990234375,
456
+ "control_acc_gap": 0.0,
457
+ "control_witness_pair": [
458
+ [
459
+ 0,
460
+ 0,
461
+ 0,
462
+ 0
463
+ ],
464
+ [
465
+ 0,
466
+ 0,
467
+ 0,
468
+ 1
469
+ ]
470
+ ]
471
+ },
472
+ {
473
+ "m": 5,
474
+ "V": 4,
475
+ "n_prefixes": 1024,
476
+ "log2_states_required": 10.0,
477
+ "theory_m_log2_V": 10.0,
478
+ "abs_residual": 0.0,
479
+ "control_states": 1023,
480
+ "control_acc_closed_form": 0.9998046875
481
+ },
482
+ {
483
+ "m": 6,
484
+ "V": 4,
485
+ "n_prefixes": 4096,
486
+ "log2_states_required": 12.0,
487
+ "theory_m_log2_V": 12.0,
488
+ "abs_residual": 0.0,
489
+ "control_states": 4095,
490
+ "control_acc_closed_form": 0.9999593098958334
491
+ }
492
+ ],
493
+ "max_residual_log2_states": 8.881784197001252e-16,
494
+ "max_control_gap": 0.0,
495
+ "all_pairs_separated_everywhere": true,
496
+ "linear_in_m_fit": {
497
+ "2": {
498
+ "fitted_slope": 1.0,
499
+ "theory_slope_log2_V": 1.0,
500
+ "slope_abs_err": 0.0,
501
+ "intercept": 1.6770126117963062e-15,
502
+ "R2": 1.0,
503
+ "max_abs_residual": 1.7763568394002505e-15
504
+ },
505
+ "3": {
506
+ "fitted_slope": 1.5849625007211565,
507
+ "theory_slope_log2_V": 1.584962500721156,
508
+ "slope_abs_err": 4.440892098500626e-16,
509
+ "intercept": -4.520058619021783e-15,
510
+ "R2": 1.0,
511
+ "max_abs_residual": 3.552713678800501e-15
512
+ },
513
+ "4": {
514
+ "fitted_slope": 2.0,
515
+ "theory_slope_log2_V": 2.0,
516
+ "slope_abs_err": 0.0,
517
+ "intercept": -1.3107111616019684e-15,
518
+ "R2": 1.0,
519
+ "max_abs_residual": 1.7763568394002505e-15
520
+ }
521
+ },
522
+ "exhaustive_accuracy_curves": [
523
+ {
524
+ "m": 2,
525
+ "V": 2,
526
+ "n_prefixes": 4,
527
+ "partitions_enumerated": "Bell(4)",
528
+ "A_star": {
529
+ "1": 0.5,
530
+ "2": 0.75,
531
+ "3": 0.875,
532
+ "4": 1.0
533
+ },
534
+ "min_states_acc_1.0": 4,
535
+ "min_states_acc_0.875": 3,
536
+ "min_states_acc_0.9": 4,
537
+ "min_states_acc_0.5": 1,
538
+ "A_star_at_n_minus_1": 0.875,
539
+ "closed_form_at_n_minus_1": 0.875
540
+ },
541
+ {
542
+ "m": 3,
543
+ "V": 2,
544
+ "n_prefixes": 8,
545
+ "partitions_enumerated": "Bell(8)",
546
+ "A_star": {
547
+ "1": 0.5,
548
+ "2": 0.75,
549
+ "3": 0.7916666666666666,
550
+ "4": 0.8333333333333334,
551
+ "5": 0.875,
552
+ "6": 0.9166666666666666,
553
+ "7": 0.9583333333333334,
554
+ "8": 1.0
555
+ },
556
+ "min_states_acc_1.0": 8,
557
+ "min_states_acc_0.875": 5,
558
+ "min_states_acc_0.9": 6,
559
+ "min_states_acc_0.5": 1,
560
+ "A_star_at_n_minus_1": 0.9583333333333334,
561
+ "closed_form_at_n_minus_1": 0.9583333333333334
562
+ },
563
+ {
564
+ "m": 2,
565
+ "V": 3,
566
+ "n_prefixes": 9,
567
+ "partitions_enumerated": "Bell(9)",
568
+ "A_star": {
569
+ "1": 0.3333333333333333,
570
+ "2": 0.5555555555555556,
571
+ "3": 0.6666666666666666,
572
+ "4": 0.7222222222222222,
573
+ "5": 0.7777777777777778,
574
+ "6": 0.8333333333333334,
575
+ "7": 0.8888888888888888,
576
+ "8": 0.9444444444444444,
577
+ "9": 1.0
578
+ },
579
+ "min_states_acc_1.0": 9,
580
+ "min_states_acc_0.875": 7,
581
+ "min_states_acc_0.9": 8,
582
+ "min_states_acc_0.5": 2,
583
+ "A_star_at_n_minus_1": 0.9444444444444444,
584
+ "closed_form_at_n_minus_1": 0.9444444444444444
585
+ }
586
+ ],
587
+ "exhaustive_min_states_equals_Vm": true,
588
+ "max_curve_control_gap": 0.0,
589
+ "lemma_3_5": [
590
+ {
591
+ "k": 2,
592
+ "sizes": [
593
+ 2,
594
+ 3
595
+ ],
596
+ "product_bound": 6,
597
+ "reachable_product_states": 2,
598
+ "sequences_tested": 510,
599
+ "behaviour_mismatches": 0,
600
+ "bound_respected": true
601
+ },
602
+ {
603
+ "k": 3,
604
+ "sizes": [
605
+ 2,
606
+ 2,
607
+ 2
608
+ ],
609
+ "product_bound": 8,
610
+ "reachable_product_states": 2,
611
+ "sequences_tested": 254,
612
+ "behaviour_mismatches": 0,
613
+ "bound_respected": true
614
+ },
615
+ {
616
+ "k": 2,
617
+ "sizes": [
618
+ 3,
619
+ 4
620
+ ],
621
+ "product_bound": 12,
622
+ "reachable_product_states": 6,
623
+ "sequences_tested": 363,
624
+ "behaviour_mismatches": 0,
625
+ "bound_respected": true
626
+ },
627
+ {
628
+ "k": 4,
629
+ "sizes": [
630
+ 2,
631
+ 2,
632
+ 2,
633
+ 2
634
+ ],
635
+ "product_bound": 16,
636
+ "reachable_product_states": 6,
637
+ "sequences_tested": 126,
638
+ "behaviour_mismatches": 0,
639
+ "bound_respected": true
640
+ },
641
+ {
642
+ "k": 3,
643
+ "sizes": [
644
+ 2,
645
+ 3,
646
+ 2
647
+ ],
648
+ "product_bound": 12,
649
+ "reachable_product_states": 2,
650
+ "sequences_tested": 120,
651
+ "behaviour_mismatches": 0,
652
+ "bound_respected": true
653
+ }
654
+ ],
655
+ "lemma_3_5_total_mismatches": 0,
656
+ "lemma_3_5_bound_always_respected": true,
657
+ "lemma_3_5_tightness": [
658
+ {
659
+ "k": 2,
660
+ "sizes": [
661
+ 2,
662
+ 3
663
+ ],
664
+ "product_bound": 6,
665
+ "reachable_product_states": 6,
666
+ "sequences_tested": 1092,
667
+ "behaviour_mismatches": 0,
668
+ "bound_respected": true,
669
+ "bound_is_tight": true
670
+ },
671
+ {
672
+ "k": 2,
673
+ "sizes": [
674
+ 3,
675
+ 3
676
+ ],
677
+ "product_bound": 9,
678
+ "reachable_product_states": 9,
679
+ "sequences_tested": 1092,
680
+ "behaviour_mismatches": 0,
681
+ "bound_respected": true,
682
+ "bound_is_tight": true
683
+ },
684
+ {
685
+ "k": 3,
686
+ "sizes": [
687
+ 2,
688
+ 2,
689
+ 2
690
+ ],
691
+ "product_bound": 8,
692
+ "reachable_product_states": 8,
693
+ "sequences_tested": 1092,
694
+ "behaviour_mismatches": 0,
695
+ "bound_respected": true,
696
+ "bound_is_tight": true
697
+ }
698
+ ],
699
+ "lemma_3_5_tight_witnesses": 3,
700
+ "printed_bound_audit": {
701
+ "n_admissible_configs": 1296,
702
+ "max_literal_bound_over_admissible_grid": 0.0,
703
+ "literal_bound_ever_positive": false,
704
+ "min_appendix_bound_on_instantiation": 0.6628711136008072,
705
+ "appendix_slope_in_m": {
706
+ "2": {
707
+ "fitted_slope": 0.3314355568004036,
708
+ "closed_form_slope": 0.3314355568004036,
709
+ "abs_err": 0.0
710
+ },
711
+ "4": {
712
+ "fitted_slope": 1.2064355568004035,
713
+ "closed_form_slope": 1.2064355568004035,
714
+ "abs_err": 0.0
715
+ },
716
+ "8": {
717
+ "fitted_slope": 2.0814355568004035,
718
+ "closed_form_slope": 2.0814355568004035,
719
+ "abs_err": 0.0
720
+ },
721
+ "16": {
722
+ "fitted_slope": 2.9564355568004044,
723
+ "closed_form_slope": 2.9564355568004035,
724
+ "abs_err": 8.881784197001252e-16
725
+ },
726
+ "26": {
727
+ "fitted_slope": 3.569320310173859,
728
+ "closed_form_slope": 3.569320310173859,
729
+ "abs_err": 0.0
730
+ },
731
+ "32": {
732
+ "fitted_slope": 3.831435556800403,
733
+ "closed_form_slope": 3.8314355568004035,
734
+ "abs_err": 4.440892098500626e-16
735
+ }
736
+ },
737
+ "note": "literal = m*log2|V| - q*log2|Y| (Thm 3.3 as printed); appendix = m*log2|V| - q*(H2(1/8)+log2|Y|/8) (proof, err<1/8)"
738
+ },
739
+ "one_state_guessing_accuracy": {
740
+ "2": 0.5,
741
+ "3": 0.3333333333333333,
742
+ "4": 0.25,
743
+ "8": 0.125,
744
+ "26": 0.038461538461538464,
745
+ "32": 0.03125
746
+ }
747
+ }
replay_b/claim2.json ADDED
@@ -0,0 +1,1307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "numerical_gate": {
3
+ "max_abs_matmul_minus_einsum": 1.7763568394002505e-15,
4
+ "all_forward_outputs_finite": true,
5
+ "max_abs_logit": 2.1417444637761154,
6
+ "note": "Accelerate RuntimeWarnings are spurious; verified here"
7
+ },
8
+ "receptive_field_sweep": {
9
+ "configs_tested": 960,
10
+ "violations_outside_receptive_field": 0,
11
+ "max_abs_delta_outside_receptive_field": 0.0,
12
+ "configs_with_no_effect_just_inside_rf": 0,
13
+ "sample_rows": [
14
+ {
15
+ "L": 16,
16
+ "k": 1,
17
+ "windows": [
18
+ 10
19
+ ],
20
+ "sum_W": 10,
21
+ "rf": 10,
22
+ "max_abs_delta_outside_rf": 0.0,
23
+ "max_abs_delta_inside_rf": 0.28581609351223836
24
+ },
25
+ {
26
+ "L": 16,
27
+ "k": 1,
28
+ "windows": [
29
+ 10
30
+ ],
31
+ "sum_W": 10,
32
+ "rf": 10,
33
+ "max_abs_delta_outside_rf": 0.0,
34
+ "max_abs_delta_inside_rf": 0.03444175010002626
35
+ },
36
+ {
37
+ "L": 16,
38
+ "k": 1,
39
+ "windows": [
40
+ 3
41
+ ],
42
+ "sum_W": 3,
43
+ "rf": 3,
44
+ "max_abs_delta_outside_rf": 0.0,
45
+ "max_abs_delta_inside_rf": 0.2040553116237531
46
+ },
47
+ {
48
+ "L": 16,
49
+ "k": 1,
50
+ "windows": [
51
+ 12
52
+ ],
53
+ "sum_W": 12,
54
+ "rf": 12,
55
+ "max_abs_delta_outside_rf": 0.0,
56
+ "max_abs_delta_inside_rf": 0.014197238946864754
57
+ },
58
+ {
59
+ "L": 16,
60
+ "k": 1,
61
+ "windows": [
62
+ 11
63
+ ],
64
+ "sum_W": 11,
65
+ "rf": 11,
66
+ "max_abs_delta_outside_rf": 0.0,
67
+ "max_abs_delta_inside_rf": 0.14570162697464065
68
+ },
69
+ {
70
+ "L": 16,
71
+ "k": 1,
72
+ "windows": [
73
+ 5
74
+ ],
75
+ "sum_W": 5,
76
+ "rf": 5,
77
+ "max_abs_delta_outside_rf": 0.0,
78
+ "max_abs_delta_inside_rf": 0.32986723460250333
79
+ },
80
+ {
81
+ "L": 16,
82
+ "k": 1,
83
+ "windows": [
84
+ 9
85
+ ],
86
+ "sum_W": 9,
87
+ "rf": 9,
88
+ "max_abs_delta_outside_rf": 0.0,
89
+ "max_abs_delta_inside_rf": 0.1968814430783481
90
+ },
91
+ {
92
+ "L": 16,
93
+ "k": 1,
94
+ "windows": [
95
+ 7
96
+ ],
97
+ "sum_W": 7,
98
+ "rf": 7,
99
+ "max_abs_delta_outside_rf": 0.0,
100
+ "max_abs_delta_inside_rf": 0.030041848233613166
101
+ },
102
+ {
103
+ "L": 16,
104
+ "k": 1,
105
+ "windows": [
106
+ 9
107
+ ],
108
+ "sum_W": 9,
109
+ "rf": 9,
110
+ "max_abs_delta_outside_rf": 0.0,
111
+ "max_abs_delta_inside_rf": 0.2698237935195511
112
+ },
113
+ {
114
+ "L": 16,
115
+ "k": 1,
116
+ "windows": [
117
+ 4
118
+ ],
119
+ "sum_W": 4,
120
+ "rf": 4,
121
+ "max_abs_delta_outside_rf": 0.0,
122
+ "max_abs_delta_inside_rf": 0.14797709583183694
123
+ },
124
+ {
125
+ "L": 16,
126
+ "k": 1,
127
+ "windows": [
128
+ 12
129
+ ],
130
+ "sum_W": 12,
131
+ "rf": 12,
132
+ "max_abs_delta_outside_rf": 0.0,
133
+ "max_abs_delta_inside_rf": 0.07127460286707321
134
+ },
135
+ {
136
+ "L": 16,
137
+ "k": 1,
138
+ "windows": [
139
+ 14
140
+ ],
141
+ "sum_W": 14,
142
+ "rf": 14,
143
+ "max_abs_delta_outside_rf": 0.0,
144
+ "max_abs_delta_inside_rf": 0.10168374636975316
145
+ },
146
+ {
147
+ "L": 16,
148
+ "k": 1,
149
+ "windows": [
150
+ 9
151
+ ],
152
+ "sum_W": 9,
153
+ "rf": 9,
154
+ "max_abs_delta_outside_rf": 0.0,
155
+ "max_abs_delta_inside_rf": 0.003750870881970958
156
+ },
157
+ {
158
+ "L": 16,
159
+ "k": 1,
160
+ "windows": [
161
+ 2
162
+ ],
163
+ "sum_W": 2,
164
+ "rf": 2,
165
+ "max_abs_delta_outside_rf": 0.0,
166
+ "max_abs_delta_inside_rf": 2.407640189683196
167
+ },
168
+ {
169
+ "L": 16,
170
+ "k": 1,
171
+ "windows": [
172
+ 11
173
+ ],
174
+ "sum_W": 11,
175
+ "rf": 11,
176
+ "max_abs_delta_outside_rf": 0.0,
177
+ "max_abs_delta_inside_rf": 0.28417810626585305
178
+ },
179
+ {
180
+ "L": 16,
181
+ "k": 1,
182
+ "windows": [
183
+ 2
184
+ ],
185
+ "sum_W": 2,
186
+ "rf": 2,
187
+ "max_abs_delta_outside_rf": 0.0,
188
+ "max_abs_delta_inside_rf": 0.5150917655838505
189
+ },
190
+ {
191
+ "L": 16,
192
+ "k": 1,
193
+ "windows": [
194
+ 1
195
+ ],
196
+ "sum_W": 1,
197
+ "rf": 1,
198
+ "max_abs_delta_outside_rf": 0.0,
199
+ "max_abs_delta_inside_rf": 2.026287079665709
200
+ },
201
+ {
202
+ "L": 16,
203
+ "k": 1,
204
+ "windows": [
205
+ 5
206
+ ],
207
+ "sum_W": 5,
208
+ "rf": 5,
209
+ "max_abs_delta_outside_rf": 0.0,
210
+ "max_abs_delta_inside_rf": 0.21853871993517676
211
+ },
212
+ {
213
+ "L": 16,
214
+ "k": 1,
215
+ "windows": [
216
+ 9
217
+ ],
218
+ "sum_W": 9,
219
+ "rf": 9,
220
+ "max_abs_delta_outside_rf": 0.0,
221
+ "max_abs_delta_inside_rf": 0.5761418306350206
222
+ },
223
+ {
224
+ "L": 16,
225
+ "k": 1,
226
+ "windows": [
227
+ 10
228
+ ],
229
+ "sum_W": 10,
230
+ "rf": 10,
231
+ "max_abs_delta_outside_rf": 0.0,
232
+ "max_abs_delta_inside_rf": 0.006504128634520656
233
+ },
234
+ {
235
+ "L": 16,
236
+ "k": 1,
237
+ "windows": [
238
+ 1
239
+ ],
240
+ "sum_W": 1,
241
+ "rf": 1,
242
+ "max_abs_delta_outside_rf": 0.0,
243
+ "max_abs_delta_inside_rf": 3.0536991633981563
244
+ },
245
+ {
246
+ "L": 16,
247
+ "k": 1,
248
+ "windows": [
249
+ 1
250
+ ],
251
+ "sum_W": 1,
252
+ "rf": 1,
253
+ "max_abs_delta_outside_rf": 0.0,
254
+ "max_abs_delta_inside_rf": 2.1397172447617256
255
+ },
256
+ {
257
+ "L": 16,
258
+ "k": 1,
259
+ "windows": [
260
+ 10
261
+ ],
262
+ "sum_W": 10,
263
+ "rf": 10,
264
+ "max_abs_delta_outside_rf": 0.0,
265
+ "max_abs_delta_inside_rf": 0.04804122082565855
266
+ },
267
+ {
268
+ "L": 16,
269
+ "k": 1,
270
+ "windows": [
271
+ 7
272
+ ],
273
+ "sum_W": 7,
274
+ "rf": 7,
275
+ "max_abs_delta_outside_rf": 0.0,
276
+ "max_abs_delta_inside_rf": 0.701760784501624
277
+ },
278
+ {
279
+ "L": 16,
280
+ "k": 1,
281
+ "windows": [
282
+ 13
283
+ ],
284
+ "sum_W": 13,
285
+ "rf": 13,
286
+ "max_abs_delta_outside_rf": 0.0,
287
+ "max_abs_delta_inside_rf": 0.1355528677544809
288
+ },
289
+ {
290
+ "L": 16,
291
+ "k": 1,
292
+ "windows": [
293
+ 7
294
+ ],
295
+ "sum_W": 7,
296
+ "rf": 7,
297
+ "max_abs_delta_outside_rf": 0.0,
298
+ "max_abs_delta_inside_rf": 0.48194231490071804
299
+ },
300
+ {
301
+ "L": 16,
302
+ "k": 1,
303
+ "windows": [
304
+ 13
305
+ ],
306
+ "sum_W": 13,
307
+ "rf": 13,
308
+ "max_abs_delta_outside_rf": 0.0,
309
+ "max_abs_delta_inside_rf": 0.0814501808086524
310
+ },
311
+ {
312
+ "L": 16,
313
+ "k": 1,
314
+ "windows": [
315
+ 6
316
+ ],
317
+ "sum_W": 6,
318
+ "rf": 6,
319
+ "max_abs_delta_outside_rf": 0.0,
320
+ "max_abs_delta_inside_rf": 0.32926605957010213
321
+ },
322
+ {
323
+ "L": 16,
324
+ "k": 1,
325
+ "windows": [
326
+ 14
327
+ ],
328
+ "sum_W": 14,
329
+ "rf": 14,
330
+ "max_abs_delta_outside_rf": 0.0,
331
+ "max_abs_delta_inside_rf": 0.10376140965519931
332
+ },
333
+ {
334
+ "L": 16,
335
+ "k": 1,
336
+ "windows": [
337
+ 3
338
+ ],
339
+ "sum_W": 3,
340
+ "rf": 3,
341
+ "max_abs_delta_outside_rf": 0.0,
342
+ "max_abs_delta_inside_rf": 0.15220621062657136
343
+ },
344
+ {
345
+ "L": 16,
346
+ "k": 1,
347
+ "windows": [
348
+ 9
349
+ ],
350
+ "sum_W": 9,
351
+ "rf": 9,
352
+ "max_abs_delta_outside_rf": 0.0,
353
+ "max_abs_delta_inside_rf": 0.10168883280928198
354
+ },
355
+ {
356
+ "L": 16,
357
+ "k": 1,
358
+ "windows": [
359
+ 8
360
+ ],
361
+ "sum_W": 8,
362
+ "rf": 8,
363
+ "max_abs_delta_outside_rf": 0.0,
364
+ "max_abs_delta_inside_rf": 0.2597069821704449
365
+ },
366
+ {
367
+ "L": 16,
368
+ "k": 1,
369
+ "windows": [
370
+ 11
371
+ ],
372
+ "sum_W": 11,
373
+ "rf": 11,
374
+ "max_abs_delta_outside_rf": 0.0,
375
+ "max_abs_delta_inside_rf": 0.38062082529689295
376
+ },
377
+ {
378
+ "L": 16,
379
+ "k": 1,
380
+ "windows": [
381
+ 1
382
+ ],
383
+ "sum_W": 1,
384
+ "rf": 1,
385
+ "max_abs_delta_outside_rf": 0.0,
386
+ "max_abs_delta_inside_rf": 1.6831235344120234
387
+ },
388
+ {
389
+ "L": 16,
390
+ "k": 1,
391
+ "windows": [
392
+ 14
393
+ ],
394
+ "sum_W": 14,
395
+ "rf": 14,
396
+ "max_abs_delta_outside_rf": 0.0,
397
+ "max_abs_delta_inside_rf": 0.02255092704988093
398
+ },
399
+ {
400
+ "L": 16,
401
+ "k": 1,
402
+ "windows": [
403
+ 3
404
+ ],
405
+ "sum_W": 3,
406
+ "rf": 3,
407
+ "max_abs_delta_outside_rf": 0.0,
408
+ "max_abs_delta_inside_rf": 0.1579483465578484
409
+ },
410
+ {
411
+ "L": 16,
412
+ "k": 1,
413
+ "windows": [
414
+ 14
415
+ ],
416
+ "sum_W": 14,
417
+ "rf": 14,
418
+ "max_abs_delta_outside_rf": 0.0,
419
+ "max_abs_delta_inside_rf": 0.032733635175017234
420
+ },
421
+ {
422
+ "L": 16,
423
+ "k": 1,
424
+ "windows": [
425
+ 10
426
+ ],
427
+ "sum_W": 10,
428
+ "rf": 10,
429
+ "max_abs_delta_outside_rf": 0.0,
430
+ "max_abs_delta_inside_rf": 0.03131013093506363
431
+ },
432
+ {
433
+ "L": 16,
434
+ "k": 1,
435
+ "windows": [
436
+ 14
437
+ ],
438
+ "sum_W": 14,
439
+ "rf": 14,
440
+ "max_abs_delta_outside_rf": 0.0,
441
+ "max_abs_delta_inside_rf": 0.07259073385286363
442
+ },
443
+ {
444
+ "L": 16,
445
+ "k": 1,
446
+ "windows": [
447
+ 5
448
+ ],
449
+ "sum_W": 5,
450
+ "rf": 5,
451
+ "max_abs_delta_outside_rf": 0.0,
452
+ "max_abs_delta_inside_rf": 0.1621850317171365
453
+ }
454
+ ]
455
+ },
456
+ "local_sensitivity_witnesses": [
457
+ {
458
+ "L": 8,
459
+ "seed": 0,
460
+ "R_measured": 7,
461
+ "R_theory_max": 7,
462
+ "R_claimed_in_Thm_4_2": 4,
463
+ "same_in_every_window_below_R": true,
464
+ "F_x": 28,
465
+ "F_xprime": 16,
466
+ "outputs_differ": true
467
+ },
468
+ {
469
+ "L": 8,
470
+ "seed": 1,
471
+ "R_measured": 7,
472
+ "R_theory_max": 7,
473
+ "R_claimed_in_Thm_4_2": 4,
474
+ "same_in_every_window_below_R": true,
475
+ "F_x": 9,
476
+ "F_xprime": 31,
477
+ "outputs_differ": true
478
+ },
479
+ {
480
+ "L": 8,
481
+ "seed": 2,
482
+ "R_measured": 7,
483
+ "R_theory_max": 7,
484
+ "R_claimed_in_Thm_4_2": 4,
485
+ "same_in_every_window_below_R": true,
486
+ "F_x": 13,
487
+ "F_xprime": 18,
488
+ "outputs_differ": true
489
+ },
490
+ {
491
+ "L": 8,
492
+ "seed": 3,
493
+ "R_measured": 7,
494
+ "R_theory_max": 7,
495
+ "R_claimed_in_Thm_4_2": 4,
496
+ "same_in_every_window_below_R": true,
497
+ "F_x": 19,
498
+ "F_xprime": 13,
499
+ "outputs_differ": true
500
+ },
501
+ {
502
+ "L": 8,
503
+ "seed": 4,
504
+ "R_measured": 7,
505
+ "R_theory_max": 7,
506
+ "R_claimed_in_Thm_4_2": 4,
507
+ "same_in_every_window_below_R": true,
508
+ "F_x": 19,
509
+ "F_xprime": 32,
510
+ "outputs_differ": true
511
+ },
512
+ {
513
+ "L": 16,
514
+ "seed": 0,
515
+ "R_measured": 15,
516
+ "R_theory_max": 15,
517
+ "R_claimed_in_Thm_4_2": 8,
518
+ "same_in_every_window_below_R": true,
519
+ "F_x": 27,
520
+ "F_xprime": 8,
521
+ "outputs_differ": true
522
+ },
523
+ {
524
+ "L": 16,
525
+ "seed": 1,
526
+ "R_measured": 15,
527
+ "R_theory_max": 15,
528
+ "R_claimed_in_Thm_4_2": 8,
529
+ "same_in_every_window_below_R": true,
530
+ "F_x": 19,
531
+ "F_xprime": 15,
532
+ "outputs_differ": true
533
+ },
534
+ {
535
+ "L": 16,
536
+ "seed": 2,
537
+ "R_measured": 15,
538
+ "R_theory_max": 15,
539
+ "R_claimed_in_Thm_4_2": 8,
540
+ "same_in_every_window_below_R": true,
541
+ "F_x": 10,
542
+ "F_xprime": 30,
543
+ "outputs_differ": true
544
+ },
545
+ {
546
+ "L": 16,
547
+ "seed": 3,
548
+ "R_measured": 15,
549
+ "R_theory_max": 15,
550
+ "R_claimed_in_Thm_4_2": 8,
551
+ "same_in_every_window_below_R": true,
552
+ "F_x": 29,
553
+ "F_xprime": 30,
554
+ "outputs_differ": true
555
+ },
556
+ {
557
+ "L": 16,
558
+ "seed": 4,
559
+ "R_measured": 15,
560
+ "R_theory_max": 15,
561
+ "R_claimed_in_Thm_4_2": 8,
562
+ "same_in_every_window_below_R": true,
563
+ "F_x": 24,
564
+ "F_xprime": 18,
565
+ "outputs_differ": true
566
+ },
567
+ {
568
+ "L": 32,
569
+ "seed": 0,
570
+ "R_measured": 31,
571
+ "R_theory_max": 31,
572
+ "R_claimed_in_Thm_4_2": 16,
573
+ "same_in_every_window_below_R": true,
574
+ "F_x": 28,
575
+ "F_xprime": 23,
576
+ "outputs_differ": true
577
+ },
578
+ {
579
+ "L": 32,
580
+ "seed": 1,
581
+ "R_measured": 31,
582
+ "R_theory_max": 31,
583
+ "R_claimed_in_Thm_4_2": 16,
584
+ "same_in_every_window_below_R": true,
585
+ "F_x": 13,
586
+ "F_xprime": 23,
587
+ "outputs_differ": true
588
+ },
589
+ {
590
+ "L": 32,
591
+ "seed": 2,
592
+ "R_measured": 31,
593
+ "R_theory_max": 31,
594
+ "R_claimed_in_Thm_4_2": 16,
595
+ "same_in_every_window_below_R": true,
596
+ "F_x": 18,
597
+ "F_xprime": 14,
598
+ "outputs_differ": true
599
+ },
600
+ {
601
+ "L": 32,
602
+ "seed": 3,
603
+ "R_measured": 31,
604
+ "R_theory_max": 31,
605
+ "R_claimed_in_Thm_4_2": 16,
606
+ "same_in_every_window_below_R": true,
607
+ "F_x": 22,
608
+ "F_xprime": 10,
609
+ "outputs_differ": true
610
+ },
611
+ {
612
+ "L": 32,
613
+ "seed": 4,
614
+ "R_measured": 31,
615
+ "R_theory_max": 31,
616
+ "R_claimed_in_Thm_4_2": 16,
617
+ "same_in_every_window_below_R": true,
618
+ "F_x": 13,
619
+ "F_xprime": 22,
620
+ "outputs_differ": true
621
+ },
622
+ {
623
+ "L": 64,
624
+ "seed": 0,
625
+ "R_measured": 63,
626
+ "R_theory_max": 63,
627
+ "R_claimed_in_Thm_4_2": 32,
628
+ "same_in_every_window_below_R": true,
629
+ "F_x": 11,
630
+ "F_xprime": 19,
631
+ "outputs_differ": true
632
+ },
633
+ {
634
+ "L": 64,
635
+ "seed": 1,
636
+ "R_measured": 63,
637
+ "R_theory_max": 63,
638
+ "R_claimed_in_Thm_4_2": 32,
639
+ "same_in_every_window_below_R": true,
640
+ "F_x": 7,
641
+ "F_xprime": 32,
642
+ "outputs_differ": true
643
+ },
644
+ {
645
+ "L": 64,
646
+ "seed": 2,
647
+ "R_measured": 63,
648
+ "R_theory_max": 63,
649
+ "R_claimed_in_Thm_4_2": 32,
650
+ "same_in_every_window_below_R": true,
651
+ "F_x": 30,
652
+ "F_xprime": 8,
653
+ "outputs_differ": true
654
+ },
655
+ {
656
+ "L": 64,
657
+ "seed": 3,
658
+ "R_measured": 63,
659
+ "R_theory_max": 63,
660
+ "R_claimed_in_Thm_4_2": 32,
661
+ "same_in_every_window_below_R": true,
662
+ "F_x": 10,
663
+ "F_xprime": 19,
664
+ "outputs_differ": true
665
+ },
666
+ {
667
+ "L": 64,
668
+ "seed": 4,
669
+ "R_measured": 63,
670
+ "R_theory_max": 63,
671
+ "R_claimed_in_Thm_4_2": 32,
672
+ "same_in_every_window_below_R": true,
673
+ "F_x": 30,
674
+ "F_xprime": 18,
675
+ "outputs_differ": true
676
+ },
677
+ {
678
+ "L": 128,
679
+ "seed": 0,
680
+ "R_measured": 127,
681
+ "R_theory_max": 127,
682
+ "R_claimed_in_Thm_4_2": 64,
683
+ "same_in_every_window_below_R": true,
684
+ "F_x": 20,
685
+ "F_xprime": 8,
686
+ "outputs_differ": true
687
+ },
688
+ {
689
+ "L": 128,
690
+ "seed": 1,
691
+ "R_measured": 127,
692
+ "R_theory_max": 127,
693
+ "R_claimed_in_Thm_4_2": 64,
694
+ "same_in_every_window_below_R": true,
695
+ "F_x": 7,
696
+ "F_xprime": 24,
697
+ "outputs_differ": true
698
+ },
699
+ {
700
+ "L": 128,
701
+ "seed": 2,
702
+ "R_measured": 127,
703
+ "R_theory_max": 127,
704
+ "R_claimed_in_Thm_4_2": 64,
705
+ "same_in_every_window_below_R": true,
706
+ "F_x": 25,
707
+ "F_xprime": 17,
708
+ "outputs_differ": true
709
+ },
710
+ {
711
+ "L": 128,
712
+ "seed": 3,
713
+ "R_measured": 127,
714
+ "R_theory_max": 127,
715
+ "R_claimed_in_Thm_4_2": 64,
716
+ "same_in_every_window_below_R": true,
717
+ "F_x": 18,
718
+ "F_xprime": 7,
719
+ "outputs_differ": true
720
+ },
721
+ {
722
+ "L": 128,
723
+ "seed": 4,
724
+ "R_measured": 127,
725
+ "R_theory_max": 127,
726
+ "R_claimed_in_Thm_4_2": 64,
727
+ "same_in_every_window_below_R": true,
728
+ "F_x": 17,
729
+ "F_xprime": 16,
730
+ "outputs_differ": true
731
+ },
732
+ {
733
+ "L": 256,
734
+ "seed": 0,
735
+ "R_measured": 255,
736
+ "R_theory_max": 255,
737
+ "R_claimed_in_Thm_4_2": 128,
738
+ "same_in_every_window_below_R": true,
739
+ "F_x": 16,
740
+ "F_xprime": 28,
741
+ "outputs_differ": true
742
+ },
743
+ {
744
+ "L": 256,
745
+ "seed": 1,
746
+ "R_measured": 255,
747
+ "R_theory_max": 255,
748
+ "R_claimed_in_Thm_4_2": 128,
749
+ "same_in_every_window_below_R": true,
750
+ "F_x": 7,
751
+ "F_xprime": 12,
752
+ "outputs_differ": true
753
+ },
754
+ {
755
+ "L": 256,
756
+ "seed": 2,
757
+ "R_measured": 255,
758
+ "R_theory_max": 255,
759
+ "R_claimed_in_Thm_4_2": 128,
760
+ "same_in_every_window_below_R": true,
761
+ "F_x": 8,
762
+ "F_xprime": 20,
763
+ "outputs_differ": true
764
+ },
765
+ {
766
+ "L": 256,
767
+ "seed": 3,
768
+ "R_measured": 255,
769
+ "R_theory_max": 255,
770
+ "R_claimed_in_Thm_4_2": 128,
771
+ "same_in_every_window_below_R": true,
772
+ "F_x": 7,
773
+ "F_xprime": 29,
774
+ "outputs_differ": true
775
+ },
776
+ {
777
+ "L": 256,
778
+ "seed": 4,
779
+ "R_measured": 255,
780
+ "R_theory_max": 255,
781
+ "R_claimed_in_Thm_4_2": 128,
782
+ "same_in_every_window_below_R": true,
783
+ "F_x": 20,
784
+ "F_xprime": 13,
785
+ "outputs_differ": true
786
+ }
787
+ ],
788
+ "all_witnesses_valid": true,
789
+ "R_measured_equals_L_minus_1_everywhere": true,
790
+ "witness_indistinguishability": {
791
+ "16": {
792
+ "pairs": [
793
+ {
794
+ "L": 16,
795
+ "R": 15,
796
+ "k": 1,
797
+ "windows_short": [
798
+ 14
799
+ ],
800
+ "sum_W_short": 14,
801
+ "rf_short": 14,
802
+ "max_abs_delta_short": 0.0,
803
+ "windows_long": [
804
+ 16
805
+ ],
806
+ "sum_W_long": 16,
807
+ "max_abs_delta_long": 0.1769761959118361
808
+ },
809
+ {
810
+ "L": 16,
811
+ "R": 15,
812
+ "k": 2,
813
+ "windows_short": [
814
+ 7,
815
+ 7
816
+ ],
817
+ "sum_W_short": 14,
818
+ "rf_short": 13,
819
+ "max_abs_delta_short": 0.0,
820
+ "windows_long": [
821
+ 16,
822
+ 16
823
+ ],
824
+ "sum_W_long": 32,
825
+ "max_abs_delta_long": 0.1321795520296115
826
+ },
827
+ {
828
+ "L": 16,
829
+ "R": 15,
830
+ "k": 3,
831
+ "windows_short": [
832
+ 4,
833
+ 4,
834
+ 4
835
+ ],
836
+ "sum_W_short": 12,
837
+ "rf_short": 10,
838
+ "max_abs_delta_short": 0.0,
839
+ "windows_long": [
840
+ 16,
841
+ 16,
842
+ 16
843
+ ],
844
+ "sum_W_long": 48,
845
+ "max_abs_delta_long": 0.8786377218884379
846
+ },
847
+ {
848
+ "L": 16,
849
+ "R": 15,
850
+ "k": 1,
851
+ "windows_short": [
852
+ 14
853
+ ],
854
+ "sum_W_short": 14,
855
+ "rf_short": 14,
856
+ "max_abs_delta_short": 0.0,
857
+ "windows_long": [
858
+ 16
859
+ ],
860
+ "sum_W_long": 16,
861
+ "max_abs_delta_long": 0.0552757776663132
862
+ },
863
+ {
864
+ "L": 16,
865
+ "R": 15,
866
+ "k": 2,
867
+ "windows_short": [
868
+ 7,
869
+ 7
870
+ ],
871
+ "sum_W_short": 14,
872
+ "rf_short": 13,
873
+ "max_abs_delta_short": 0.0,
874
+ "windows_long": [
875
+ 16,
876
+ 16
877
+ ],
878
+ "sum_W_long": 32,
879
+ "max_abs_delta_long": 0.043267705611890306
880
+ },
881
+ {
882
+ "L": 16,
883
+ "R": 15,
884
+ "k": 3,
885
+ "windows_short": [
886
+ 4,
887
+ 4,
888
+ 4
889
+ ],
890
+ "sum_W_short": 12,
891
+ "rf_short": 10,
892
+ "max_abs_delta_short": 0.0,
893
+ "windows_long": [
894
+ 16,
895
+ 16,
896
+ 16
897
+ ],
898
+ "sum_W_long": 48,
899
+ "max_abs_delta_long": 0.766364411932395
900
+ },
901
+ {
902
+ "L": 16,
903
+ "R": 15,
904
+ "k": 1,
905
+ "windows_short": [
906
+ 14
907
+ ],
908
+ "sum_W_short": 14,
909
+ "rf_short": 14,
910
+ "max_abs_delta_short": 0.0,
911
+ "windows_long": [
912
+ 16
913
+ ],
914
+ "sum_W_long": 16,
915
+ "max_abs_delta_long": 0.05877028865718653
916
+ },
917
+ {
918
+ "L": 16,
919
+ "R": 15,
920
+ "k": 2,
921
+ "windows_short": [
922
+ 7,
923
+ 7
924
+ ],
925
+ "sum_W_short": 14,
926
+ "rf_short": 13,
927
+ "max_abs_delta_short": 0.0,
928
+ "windows_long": [
929
+ 16,
930
+ 16
931
+ ],
932
+ "sum_W_long": 32,
933
+ "max_abs_delta_long": 0.3569878953567704
934
+ },
935
+ {
936
+ "L": 16,
937
+ "R": 15,
938
+ "k": 3,
939
+ "windows_short": [
940
+ 4,
941
+ 4,
942
+ 4
943
+ ],
944
+ "sum_W_short": 12,
945
+ "rf_short": 10,
946
+ "max_abs_delta_short": 0.0,
947
+ "windows_long": [
948
+ 16,
949
+ 16,
950
+ 16
951
+ ],
952
+ "sum_W_long": 48,
953
+ "max_abs_delta_long": 0.5521298147300295
954
+ }
955
+ ],
956
+ "n_short_window_tests": 9,
957
+ "max_abs_delta_when_sumW_below_R": 0.0,
958
+ "n_long_window_tests": 9,
959
+ "n_long_window_separated": 9
960
+ },
961
+ "32": {
962
+ "pairs": [
963
+ {
964
+ "L": 32,
965
+ "R": 31,
966
+ "k": 1,
967
+ "windows_short": [
968
+ 30
969
+ ],
970
+ "sum_W_short": 30,
971
+ "rf_short": 30,
972
+ "max_abs_delta_short": 0.0,
973
+ "windows_long": [
974
+ 32
975
+ ],
976
+ "sum_W_long": 32,
977
+ "max_abs_delta_long": 0.03534840754759783
978
+ },
979
+ {
980
+ "L": 32,
981
+ "R": 31,
982
+ "k": 2,
983
+ "windows_short": [
984
+ 15,
985
+ 15
986
+ ],
987
+ "sum_W_short": 30,
988
+ "rf_short": 29,
989
+ "max_abs_delta_short": 0.0,
990
+ "windows_long": [
991
+ 32,
992
+ 32
993
+ ],
994
+ "sum_W_long": 64,
995
+ "max_abs_delta_long": 0.02080493890641305
996
+ },
997
+ {
998
+ "L": 32,
999
+ "R": 31,
1000
+ "k": 3,
1001
+ "windows_short": [
1002
+ 10,
1003
+ 10,
1004
+ 10
1005
+ ],
1006
+ "sum_W_short": 30,
1007
+ "rf_short": 28,
1008
+ "max_abs_delta_short": 0.0,
1009
+ "windows_long": [
1010
+ 32,
1011
+ 32,
1012
+ 32
1013
+ ],
1014
+ "sum_W_long": 96,
1015
+ "max_abs_delta_long": 0.152554442308942
1016
+ },
1017
+ {
1018
+ "L": 32,
1019
+ "R": 31,
1020
+ "k": 1,
1021
+ "windows_short": [
1022
+ 30
1023
+ ],
1024
+ "sum_W_short": 30,
1025
+ "rf_short": 30,
1026
+ "max_abs_delta_short": 0.0,
1027
+ "windows_long": [
1028
+ 32
1029
+ ],
1030
+ "sum_W_long": 32,
1031
+ "max_abs_delta_long": 0.16234324137652778
1032
+ },
1033
+ {
1034
+ "L": 32,
1035
+ "R": 31,
1036
+ "k": 2,
1037
+ "windows_short": [
1038
+ 15,
1039
+ 15
1040
+ ],
1041
+ "sum_W_short": 30,
1042
+ "rf_short": 29,
1043
+ "max_abs_delta_short": 0.0,
1044
+ "windows_long": [
1045
+ 32,
1046
+ 32
1047
+ ],
1048
+ "sum_W_long": 64,
1049
+ "max_abs_delta_long": 0.3830170389889227
1050
+ },
1051
+ {
1052
+ "L": 32,
1053
+ "R": 31,
1054
+ "k": 3,
1055
+ "windows_short": [
1056
+ 10,
1057
+ 10,
1058
+ 10
1059
+ ],
1060
+ "sum_W_short": 30,
1061
+ "rf_short": 28,
1062
+ "max_abs_delta_short": 0.0,
1063
+ "windows_long": [
1064
+ 32,
1065
+ 32,
1066
+ 32
1067
+ ],
1068
+ "sum_W_long": 96,
1069
+ "max_abs_delta_long": 0.12814149073121756
1070
+ },
1071
+ {
1072
+ "L": 32,
1073
+ "R": 31,
1074
+ "k": 1,
1075
+ "windows_short": [
1076
+ 30
1077
+ ],
1078
+ "sum_W_short": 30,
1079
+ "rf_short": 30,
1080
+ "max_abs_delta_short": 0.0,
1081
+ "windows_long": [
1082
+ 32
1083
+ ],
1084
+ "sum_W_long": 32,
1085
+ "max_abs_delta_long": 0.06166132814076597
1086
+ },
1087
+ {
1088
+ "L": 32,
1089
+ "R": 31,
1090
+ "k": 2,
1091
+ "windows_short": [
1092
+ 15,
1093
+ 15
1094
+ ],
1095
+ "sum_W_short": 30,
1096
+ "rf_short": 29,
1097
+ "max_abs_delta_short": 0.0,
1098
+ "windows_long": [
1099
+ 32,
1100
+ 32
1101
+ ],
1102
+ "sum_W_long": 64,
1103
+ "max_abs_delta_long": 0.13876098797379044
1104
+ },
1105
+ {
1106
+ "L": 32,
1107
+ "R": 31,
1108
+ "k": 3,
1109
+ "windows_short": [
1110
+ 10,
1111
+ 10,
1112
+ 10
1113
+ ],
1114
+ "sum_W_short": 30,
1115
+ "rf_short": 28,
1116
+ "max_abs_delta_short": 0.0,
1117
+ "windows_long": [
1118
+ 32,
1119
+ 32,
1120
+ 32
1121
+ ],
1122
+ "sum_W_long": 96,
1123
+ "max_abs_delta_long": 0.08809620618693226
1124
+ }
1125
+ ],
1126
+ "n_short_window_tests": 9,
1127
+ "max_abs_delta_when_sumW_below_R": 0.0,
1128
+ "n_long_window_tests": 9,
1129
+ "n_long_window_separated": 9
1130
+ },
1131
+ "64": {
1132
+ "pairs": [
1133
+ {
1134
+ "L": 64,
1135
+ "R": 63,
1136
+ "k": 1,
1137
+ "windows_short": [
1138
+ 62
1139
+ ],
1140
+ "sum_W_short": 62,
1141
+ "rf_short": 62,
1142
+ "max_abs_delta_short": 0.0,
1143
+ "windows_long": [
1144
+ 64
1145
+ ],
1146
+ "sum_W_long": 64,
1147
+ "max_abs_delta_long": 0.03295132835513548
1148
+ },
1149
+ {
1150
+ "L": 64,
1151
+ "R": 63,
1152
+ "k": 2,
1153
+ "windows_short": [
1154
+ 31,
1155
+ 31
1156
+ ],
1157
+ "sum_W_short": 62,
1158
+ "rf_short": 61,
1159
+ "max_abs_delta_short": 0.0,
1160
+ "windows_long": [
1161
+ 64,
1162
+ 64
1163
+ ],
1164
+ "sum_W_long": 128,
1165
+ "max_abs_delta_long": 0.36324841338320957
1166
+ },
1167
+ {
1168
+ "L": 64,
1169
+ "R": 63,
1170
+ "k": 3,
1171
+ "windows_short": [
1172
+ 20,
1173
+ 20,
1174
+ 20
1175
+ ],
1176
+ "sum_W_short": 60,
1177
+ "rf_short": 58,
1178
+ "max_abs_delta_short": 0.0,
1179
+ "windows_long": [
1180
+ 64,
1181
+ 64,
1182
+ 64
1183
+ ],
1184
+ "sum_W_long": 192,
1185
+ "max_abs_delta_long": 0.08466638568402152
1186
+ },
1187
+ {
1188
+ "L": 64,
1189
+ "R": 63,
1190
+ "k": 1,
1191
+ "windows_short": [
1192
+ 62
1193
+ ],
1194
+ "sum_W_short": 62,
1195
+ "rf_short": 62,
1196
+ "max_abs_delta_short": 0.0,
1197
+ "windows_long": [
1198
+ 64
1199
+ ],
1200
+ "sum_W_long": 64,
1201
+ "max_abs_delta_long": 0.23067972072479592
1202
+ },
1203
+ {
1204
+ "L": 64,
1205
+ "R": 63,
1206
+ "k": 2,
1207
+ "windows_short": [
1208
+ 31,
1209
+ 31
1210
+ ],
1211
+ "sum_W_short": 62,
1212
+ "rf_short": 61,
1213
+ "max_abs_delta_short": 0.0,
1214
+ "windows_long": [
1215
+ 64,
1216
+ 64
1217
+ ],
1218
+ "sum_W_long": 128,
1219
+ "max_abs_delta_long": 0.08941496277410776
1220
+ },
1221
+ {
1222
+ "L": 64,
1223
+ "R": 63,
1224
+ "k": 3,
1225
+ "windows_short": [
1226
+ 20,
1227
+ 20,
1228
+ 20
1229
+ ],
1230
+ "sum_W_short": 60,
1231
+ "rf_short": 58,
1232
+ "max_abs_delta_short": 0.0,
1233
+ "windows_long": [
1234
+ 64,
1235
+ 64,
1236
+ 64
1237
+ ],
1238
+ "sum_W_long": 192,
1239
+ "max_abs_delta_long": 0.04893897066339015
1240
+ },
1241
+ {
1242
+ "L": 64,
1243
+ "R": 63,
1244
+ "k": 1,
1245
+ "windows_short": [
1246
+ 62
1247
+ ],
1248
+ "sum_W_short": 62,
1249
+ "rf_short": 62,
1250
+ "max_abs_delta_short": 0.0,
1251
+ "windows_long": [
1252
+ 64
1253
+ ],
1254
+ "sum_W_long": 64,
1255
+ "max_abs_delta_long": 0.01683241713322925
1256
+ },
1257
+ {
1258
+ "L": 64,
1259
+ "R": 63,
1260
+ "k": 2,
1261
+ "windows_short": [
1262
+ 31,
1263
+ 31
1264
+ ],
1265
+ "sum_W_short": 62,
1266
+ "rf_short": 61,
1267
+ "max_abs_delta_short": 0.0,
1268
+ "windows_long": [
1269
+ 64,
1270
+ 64
1271
+ ],
1272
+ "sum_W_long": 128,
1273
+ "max_abs_delta_long": 0.09862298740622921
1274
+ },
1275
+ {
1276
+ "L": 64,
1277
+ "R": 63,
1278
+ "k": 3,
1279
+ "windows_short": [
1280
+ 20,
1281
+ 20,
1282
+ 20
1283
+ ],
1284
+ "sum_W_short": 60,
1285
+ "rf_short": 58,
1286
+ "max_abs_delta_short": 0.0,
1287
+ "windows_long": [
1288
+ 64,
1289
+ 64,
1290
+ 64
1291
+ ],
1292
+ "sum_W_long": 192,
1293
+ "max_abs_delta_long": 0.053174914892574254
1294
+ }
1295
+ ],
1296
+ "n_short_window_tests": 9,
1297
+ "max_abs_delta_when_sumW_below_R": 0.0,
1298
+ "n_long_window_tests": 9,
1299
+ "n_long_window_separated": 9
1300
+ }
1301
+ },
1302
+ "max_abs_delta_when_sumW_below_R": 0.0,
1303
+ "control_full_window_separates_frac": 1.0,
1304
+ "success_prob_when_sumW_below_R": 0.5,
1305
+ "threshold_in_theorem": 0.6666666666666666,
1306
+ "fails_theorem_threshold": true
1307
+ }
replay_b/claim3.json ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "softmax_inverse_temperature_M": 30.0,
3
+ "gate_reference_target_mismatches": 0,
4
+ "gate_codes_injective": true,
5
+ "gate_matmul_vs_einsum": 0.0,
6
+ "exhaustive": [
7
+ {
8
+ "n_inputs": 3093,
9
+ "accuracy": 1.0,
10
+ "attention_argmax_correct": 1.0,
11
+ "ssm_state_correct": 1.0,
12
+ "max_softmax_leakage": 0.0,
13
+ "min_decode_margin": 2.0,
14
+ "offsets": [
15
+ 1,
16
+ 2,
17
+ 3
18
+ ],
19
+ "M": 2,
20
+ "L": 5,
21
+ "V": 5,
22
+ "embed_dim": 16,
23
+ "code_width_c": 3,
24
+ "log2_V": 2.321928094887362,
25
+ "log2_L": 2.321928094887362,
26
+ "window": 3,
27
+ "working_memory_ratio": 0.6,
28
+ "mamba_states": 4,
29
+ "exhaustive": true
30
+ },
31
+ {
32
+ "n_inputs": 45927,
33
+ "accuracy": 1.0,
34
+ "attention_argmax_correct": 1.0,
35
+ "ssm_state_correct": 1.0,
36
+ "max_softmax_leakage": 0.0,
37
+ "min_decode_margin": 2.0,
38
+ "offsets": [
39
+ 1,
40
+ 2,
41
+ 3
42
+ ],
43
+ "M": 3,
44
+ "L": 6,
45
+ "V": 6,
46
+ "embed_dim": 16,
47
+ "code_width_c": 3,
48
+ "log2_V": 2.584962500721156,
49
+ "log2_L": 2.584962500721156,
50
+ "window": 3,
51
+ "working_memory_ratio": 0.5,
52
+ "mamba_states": 4,
53
+ "exhaustive": true
54
+ },
55
+ {
56
+ "n_inputs": 821356,
57
+ "accuracy": 1.0,
58
+ "attention_argmax_correct": 1.0,
59
+ "ssm_state_correct": 1.0,
60
+ "max_softmax_leakage": 0.0,
61
+ "min_decode_margin": 2.0,
62
+ "offsets": [
63
+ 1,
64
+ 2,
65
+ 3,
66
+ 4
67
+ ],
68
+ "M": 3,
69
+ "L": 7,
70
+ "V": 7,
71
+ "embed_dim": 16,
72
+ "code_width_c": 3,
73
+ "log2_V": 2.807354922057604,
74
+ "log2_L": 2.807354922057604,
75
+ "window": 4,
76
+ "working_memory_ratio": 0.5714285714285714,
77
+ "mamba_states": 5,
78
+ "exhaustive": true
79
+ }
80
+ ],
81
+ "random_sweeps": [
82
+ {
83
+ "n_inputs": 66666,
84
+ "accuracy": 1.0,
85
+ "attention_argmax_correct": 1.0,
86
+ "ssm_state_correct": 1.0,
87
+ "max_softmax_leakage": 0.0,
88
+ "min_decode_margin": 2.0,
89
+ "accuracy_mean_over_seeds": 1.0,
90
+ "accuracy_std_over_seeds": 0.0,
91
+ "n_inputs_total": 199998,
92
+ "offsets_min_max": [
93
+ 1,
94
+ 6
95
+ ],
96
+ "n_offsets": 6,
97
+ "M": 4,
98
+ "L": 16,
99
+ "V": 10,
100
+ "embed_dim": 26,
101
+ "code_width_c": 5,
102
+ "log2_V": 3.321928094887362,
103
+ "log2_L": 4.0,
104
+ "window": 6,
105
+ "working_memory_ratio": 0.375,
106
+ "mamba_states": 7
107
+ },
108
+ {
109
+ "n_inputs": 66666,
110
+ "accuracy": 1.0,
111
+ "attention_argmax_correct": 1.0,
112
+ "ssm_state_correct": 1.0,
113
+ "max_softmax_leakage": 0.0,
114
+ "min_decode_margin": 2.0,
115
+ "accuracy_mean_over_seeds": 1.0,
116
+ "accuracy_std_over_seeds": 0.0,
117
+ "n_inputs_total": 199998,
118
+ "offsets_min_max": [
119
+ 5,
120
+ 10
121
+ ],
122
+ "n_offsets": 6,
123
+ "M": 26,
124
+ "L": 100,
125
+ "V": 32,
126
+ "embed_dim": 36,
127
+ "code_width_c": 7,
128
+ "log2_V": 5.0,
129
+ "log2_L": 6.643856189774724,
130
+ "window": 10,
131
+ "working_memory_ratio": 0.1,
132
+ "mamba_states": 7
133
+ },
134
+ {
135
+ "n_inputs": 31722,
136
+ "accuracy": 1.0,
137
+ "attention_argmax_correct": 1.0,
138
+ "ssm_state_correct": 1.0,
139
+ "max_softmax_leakage": 0.0,
140
+ "min_decode_margin": 2.0,
141
+ "accuracy_mean_over_seeds": 1.0,
142
+ "accuracy_std_over_seeds": 0.0,
143
+ "n_inputs_total": 99999,
144
+ "offsets_min_max": [
145
+ 5,
146
+ 10
147
+ ],
148
+ "n_offsets": 6,
149
+ "M": 194,
150
+ "L": 100,
151
+ "V": 200,
152
+ "embed_dim": 41,
153
+ "code_width_c": 8,
154
+ "log2_V": 7.643856189774724,
155
+ "log2_L": 6.643856189774724,
156
+ "window": 10,
157
+ "working_memory_ratio": 0.1,
158
+ "mamba_states": 7
159
+ },
160
+ {
161
+ "n_inputs": 15063,
162
+ "accuracy": 1.0,
163
+ "attention_argmax_correct": 1.0,
164
+ "ssm_state_correct": 1.0,
165
+ "max_softmax_leakage": 0.0,
166
+ "min_decode_margin": 2.0,
167
+ "accuracy_mean_over_seeds": 1.0,
168
+ "accuracy_std_over_seeds": 0.0,
169
+ "n_inputs_total": 99999,
170
+ "offsets_min_max": [
171
+ 5,
172
+ 10
173
+ ],
174
+ "n_offsets": 6,
175
+ "M": 994,
176
+ "L": 100,
177
+ "V": 1000,
178
+ "embed_dim": 51,
179
+ "code_width_c": 10,
180
+ "log2_V": 9.965784284662087,
181
+ "log2_L": 6.643856189774724,
182
+ "window": 10,
183
+ "working_memory_ratio": 0.1,
184
+ "mamba_states": 7
185
+ },
186
+ {
187
+ "n_inputs": 10000,
188
+ "accuracy": 1.0,
189
+ "attention_argmax_correct": 1.0,
190
+ "ssm_state_correct": 1.0,
191
+ "max_softmax_leakage": 0.0,
192
+ "min_decode_margin": 2.0,
193
+ "accuracy_mean_over_seeds": 1.0,
194
+ "accuracy_std_over_seeds": 0.0,
195
+ "n_inputs_total": 30000,
196
+ "offsets_min_max": [
197
+ 1,
198
+ 32
199
+ ],
200
+ "n_offsets": 32,
201
+ "M": 480,
202
+ "L": 1024,
203
+ "V": 512,
204
+ "embed_dim": 56,
205
+ "code_width_c": 11,
206
+ "log2_V": 9.0,
207
+ "log2_L": 10.0,
208
+ "window": 32,
209
+ "working_memory_ratio": 0.03125,
210
+ "mamba_states": 33
211
+ },
212
+ {
213
+ "n_inputs": 2000,
214
+ "accuracy": 1.0,
215
+ "attention_argmax_correct": 1.0,
216
+ "ssm_state_correct": 1.0,
217
+ "max_softmax_leakage": 0.0,
218
+ "min_decode_margin": 2.0,
219
+ "accuracy_mean_over_seeds": 1.0,
220
+ "accuracy_std_over_seeds": 0.0,
221
+ "n_inputs_total": 6000,
222
+ "offsets_min_max": [
223
+ 1,
224
+ 64
225
+ ],
226
+ "n_offsets": 64,
227
+ "M": 960,
228
+ "L": 4096,
229
+ "V": 1024,
230
+ "embed_dim": 66,
231
+ "code_width_c": 13,
232
+ "log2_V": 10.0,
233
+ "log2_L": 12.0,
234
+ "window": 64,
235
+ "working_memory_ratio": 0.015625,
236
+ "mamba_states": 65
237
+ }
238
+ ],
239
+ "total_inputs_tested": 1506370,
240
+ "min_accuracy_over_all_configs": 1.0,
241
+ "embed_dim_scaling": {
242
+ "rows": [
243
+ {
244
+ "V": 5,
245
+ "L": 5,
246
+ "embed_dim": 16,
247
+ "bound_max_log2": 2.321928094887362,
248
+ "ratio": 6.890824929174289
249
+ },
250
+ {
251
+ "V": 6,
252
+ "L": 6,
253
+ "embed_dim": 16,
254
+ "bound_max_log2": 2.584962500721156,
255
+ "ratio": 6.189644915752666
256
+ },
257
+ {
258
+ "V": 7,
259
+ "L": 7,
260
+ "embed_dim": 16,
261
+ "bound_max_log2": 2.807354922057604,
262
+ "ratio": 5.699314993728355
263
+ },
264
+ {
265
+ "V": 10,
266
+ "L": 16,
267
+ "embed_dim": 26,
268
+ "bound_max_log2": 4.0,
269
+ "ratio": 6.5
270
+ },
271
+ {
272
+ "V": 32,
273
+ "L": 100,
274
+ "embed_dim": 36,
275
+ "bound_max_log2": 6.643856189774724,
276
+ "ratio": 5.418539921951662
277
+ },
278
+ {
279
+ "V": 200,
280
+ "L": 100,
281
+ "embed_dim": 41,
282
+ "bound_max_log2": 7.643856189774724,
283
+ "ratio": 5.363784846560324
284
+ },
285
+ {
286
+ "V": 1000,
287
+ "L": 100,
288
+ "embed_dim": 51,
289
+ "bound_max_log2": 9.965784284662087,
290
+ "ratio": 5.11750992628768
291
+ },
292
+ {
293
+ "V": 512,
294
+ "L": 1024,
295
+ "embed_dim": 56,
296
+ "bound_max_log2": 10.0,
297
+ "ratio": 5.6
298
+ },
299
+ {
300
+ "V": 1024,
301
+ "L": 4096,
302
+ "embed_dim": 66,
303
+ "bound_max_log2": 12.0,
304
+ "ratio": 5.5
305
+ }
306
+ ],
307
+ "loglog_slope": 0.8804643490237325,
308
+ "R2": 0.9884958161715269,
309
+ "max_ratio": 6.890824929174289
310
+ },
311
+ "negative_controls": [
312
+ {
313
+ "offsets": [
314
+ 5,
315
+ 10
316
+ ],
317
+ "M": 26,
318
+ "L": 100,
319
+ "full_construction_accuracy": 1.0,
320
+ "control_window_minus_1_accuracy": 0.8386333333333333,
321
+ "control_window_minus_1_lower_bound": 0.8332666666666666,
322
+ "control_window_minus_1_excess_over_bound": 0.005366666666666742,
323
+ "frac_instances_needing_max_offset": 0.16673333333333334,
324
+ "control_no_ssm_query_accuracy": 0.09431666666666666,
325
+ "control_nonselective_ssm_accuracy": 0.26576666666666665,
326
+ "control_nonselective_ssm_state_correct": 0.18866666666666668,
327
+ "chance_level": 0.03125,
328
+ "analytic_softmax_leakage_bound": 7.880859686426868e-26
329
+ },
330
+ {
331
+ "offsets": [
332
+ 1,
333
+ 6
334
+ ],
335
+ "M": 4,
336
+ "L": 16,
337
+ "full_construction_accuracy": 1.0,
338
+ "control_window_minus_1_accuracy": 0.8489333333333333,
339
+ "control_window_minus_1_lower_bound": 0.8313833333333334,
340
+ "control_window_minus_1_excess_over_bound": 0.017549999999999955,
341
+ "frac_instances_needing_max_offset": 0.16861666666666666,
342
+ "control_no_ssm_query_accuracy": 0.26435,
343
+ "control_nonselective_ssm_accuracy": 0.6937666666666666,
344
+ "control_nonselective_ssm_state_correct": 0.6011666666666666,
345
+ "chance_level": 0.1,
346
+ "analytic_softmax_leakage_bound": 4.37825538134826e-26
347
+ }
348
+ ]
349
+ }
replay_b/claim3_native.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "direct_native_notebook_execution",
3
+ "official_repository": "https://github.com/SprocketLab/hybrid-expressivity",
4
+ "repository_checkout": "6be8f8fbc2169290af6f4ba5e4bd53a5c6485f7b",
5
+ "repository_is_git_checkout": true,
6
+ "notebook": "source/official-code/constructions/construction_var_copy.ipynb",
7
+ "notebook_sha256": "78b23ac5677e16533425aba2036f691776ccb87b6195394a24d47f98384fb9b9",
8
+ "executed_code_cells": [
9
+ 1,
10
+ 2,
11
+ 3,
12
+ 4,
13
+ 5,
14
+ 6,
15
+ 7,
16
+ 8,
17
+ 9,
18
+ 10,
19
+ 11,
20
+ 12,
21
+ 13,
22
+ 14,
23
+ 15,
24
+ 16,
25
+ 17,
26
+ 18
27
+ ],
28
+ "device": "cpu",
29
+ "torch_version": "2.6.0",
30
+ "baseline": {
31
+ "n_batches": 256,
32
+ "examples_per_batch": 4,
33
+ "eligible_last_position_examples": 1024,
34
+ "correct_last_position_examples": 845,
35
+ "last_position_accuracy": 0.8251953125
36
+ },
37
+ "destructive_control": {
38
+ "ablation": "first SimpleSSM Delta vector set to zero in memory",
39
+ "eligible_last_position_examples": 1024,
40
+ "correct_last_position_examples": 56,
41
+ "last_position_accuracy": 0.0546875
42
+ },
43
+ "control_is_lower": true,
44
+ "scope": "Construction cells plus deterministic last-position batches; not a learned-model training rerun."
45
+ }
replay_b/claim4.json ADDED
@@ -0,0 +1,293 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "gate_shift_head_vs_softmax_attention": 0.0,
3
+ "gate_reference_target_mismatches": 0,
4
+ "exhaustive_full_window": [
5
+ {
6
+ "n_instances": 13468,
7
+ "frac_target_defined": 0.822021484375,
8
+ "success": 1.0,
9
+ "ssm_key_decoded_correctly": 1.0,
10
+ "attention_argmax_correct": 1.0,
11
+ "max_softmax_leakage": 2.2336310578907614e-10,
12
+ "min_decode_margin": 1.9999999991065476,
13
+ "Mw": 4,
14
+ "L": 8,
15
+ "V": 6,
16
+ "ds": 2,
17
+ "embed_dim": 18,
18
+ "window": 8,
19
+ "exhaustive": true,
20
+ "n_enumerated": 16384
21
+ },
22
+ {
23
+ "n_instances": 56788,
24
+ "frac_target_defined": 0.86651611328125,
25
+ "success": 1.0,
26
+ "ssm_key_decoded_correctly": 1.0,
27
+ "attention_argmax_correct": 1.0,
28
+ "max_softmax_leakage": 1.6918977330249163e-10,
29
+ "min_decode_margin": 1.999999999323241,
30
+ "Mw": 4,
31
+ "L": 9,
32
+ "V": 6,
33
+ "ds": 2,
34
+ "embed_dim": 18,
35
+ "window": 9,
36
+ "exhaustive": true,
37
+ "n_enumerated": 65536
38
+ },
39
+ {
40
+ "n_instances": 127688,
41
+ "frac_target_defined": 0.487091064453125,
42
+ "success": 1.0,
43
+ "ssm_key_decoded_correctly": 1.0,
44
+ "attention_argmax_correct": 1.0,
45
+ "max_softmax_leakage": 2.2336310578907614e-10,
46
+ "min_decode_margin": 1.9999999991065476,
47
+ "Mw": 8,
48
+ "L": 8,
49
+ "V": 10,
50
+ "ds": 3,
51
+ "embed_dim": 22,
52
+ "window": 8,
53
+ "exhaustive": true,
54
+ "n_enumerated": 262144
55
+ }
56
+ ],
57
+ "theorem_window": [
58
+ {
59
+ "n_instances": 20000,
60
+ "frac_target_defined": 1.0,
61
+ "success": 0.9931,
62
+ "ssm_key_decoded_correctly": 1.0,
63
+ "attention_argmax_correct": 0.9926,
64
+ "max_softmax_leakage": 1.7788437389754108e-11,
65
+ "min_decode_margin": 1.9999999999288463,
66
+ "success_mean": 0.9934199319965998,
67
+ "success_std": 0.0004020322623794229,
68
+ "n_instances_total": 100000,
69
+ "Mw": 8,
70
+ "L": 100,
71
+ "V": 10,
72
+ "ds": 3,
73
+ "embed_dim": 25,
74
+ "bound_max_log2": 6.643856189774724,
75
+ "window_required": 39,
76
+ "window_over_Mw": 4.875,
77
+ "window_over_L": 0.39,
78
+ "analytic_success": 0.992850133023305,
79
+ "abs_gap_vs_analytic": 0.0005697989732947883,
80
+ "empirical_mean_meets_99pct": true,
81
+ "analytic_certificate_meets_99pct": true,
82
+ "seeds": 5
83
+ },
84
+ {
85
+ "n_instances": 20000,
86
+ "frac_target_defined": 1.0,
87
+ "success": 0.99195,
88
+ "ssm_key_decoded_correctly": 1.0,
89
+ "attention_argmax_correct": 0.9914,
90
+ "max_softmax_leakage": 1.5727419366839968e-11,
91
+ "min_decode_margin": 1.9999999999370899,
92
+ "success_mean": 0.99193,
93
+ "success_std": 0.0003203123475609443,
94
+ "n_instances_total": 100000,
95
+ "Mw": 16,
96
+ "L": 200,
97
+ "V": 18,
98
+ "ds": 4,
99
+ "embed_dim": 30,
100
+ "bound_max_log2": 7.643856189774724,
101
+ "window_required": 77,
102
+ "window_over_Mw": 4.8125,
103
+ "window_over_L": 0.385,
104
+ "analytic_success": 0.9915690899931828,
105
+ "abs_gap_vs_analytic": 0.00036091000681715,
106
+ "empirical_mean_meets_99pct": true,
107
+ "analytic_certificate_meets_99pct": true,
108
+ "seeds": 5
109
+ },
110
+ {
111
+ "n_instances": 20000,
112
+ "frac_target_defined": 1.0,
113
+ "success": 0.9892,
114
+ "ssm_key_decoded_correctly": 1.0,
115
+ "attention_argmax_correct": 0.98895,
116
+ "max_softmax_leakage": 1.478128730525441e-11,
117
+ "min_decode_margin": 1.9999999999408744,
118
+ "success_mean": 0.9908899999999999,
119
+ "success_std": 0.0010589617556833637,
120
+ "n_instances_total": 100000,
121
+ "Mw": 32,
122
+ "L": 400,
123
+ "V": 34,
124
+ "ds": 5,
125
+ "embed_dim": 35,
126
+ "bound_max_log2": 8.643856189774725,
127
+ "window_required": 152,
128
+ "window_over_Mw": 4.75,
129
+ "window_over_L": 0.38,
130
+ "analytic_success": 0.9908938689499518,
131
+ "abs_gap_vs_analytic": 3.868949951857381e-06,
132
+ "empirical_mean_meets_99pct": true,
133
+ "analytic_certificate_meets_99pct": true,
134
+ "seeds": 5
135
+ },
136
+ {
137
+ "n_instances": 20000,
138
+ "frac_target_defined": 1.0,
139
+ "success": 0.9904,
140
+ "ssm_key_decoded_correctly": 1.0,
141
+ "attention_argmax_correct": 0.99025,
142
+ "max_softmax_leakage": 1.4328316311207345e-11,
143
+ "min_decode_margin": 1.9999999999426867,
144
+ "success_mean": 0.9898197874893745,
145
+ "success_std": 0.0004907101259804869,
146
+ "n_instances_total": 100000,
147
+ "Mw": 64,
148
+ "L": 800,
149
+ "V": 66,
150
+ "ds": 6,
151
+ "embed_dim": 40,
152
+ "bound_max_log2": 9.643856189774725,
153
+ "window_required": 300,
154
+ "window_over_Mw": 4.6875,
155
+ "window_over_L": 0.375,
156
+ "analytic_success": 0.9903978217538046,
157
+ "abs_gap_vs_analytic": 0.0005780342644301495,
158
+ "empirical_mean_meets_99pct": false,
159
+ "analytic_certificate_meets_99pct": true,
160
+ "seeds": 5
161
+ },
162
+ {
163
+ "n_instances": 20000,
164
+ "frac_target_defined": 1.0,
165
+ "success": 0.9916,
166
+ "ssm_key_decoded_correctly": 1.0,
167
+ "attention_argmax_correct": 0.99155,
168
+ "max_softmax_leakage": 1.4106493750887239e-11,
169
+ "min_decode_margin": 1.999999999943574,
170
+ "success_mean": 0.99084,
171
+ "success_std": 0.0005304714883950082,
172
+ "n_instances_total": 100000,
173
+ "Mw": 128,
174
+ "L": 1600,
175
+ "V": 130,
176
+ "ds": 7,
177
+ "embed_dim": 45,
178
+ "bound_max_log2": 10.643856189774725,
179
+ "window_required": 596,
180
+ "window_over_Mw": 4.65625,
181
+ "window_over_L": 0.3725,
182
+ "analytic_success": 0.9902205760941751,
183
+ "abs_gap_vs_analytic": 0.0006194239058249229,
184
+ "empirical_mean_meets_99pct": true,
185
+ "analytic_certificate_meets_99pct": true,
186
+ "seeds": 5
187
+ }
188
+ ],
189
+ "min_success_at_theorem_window": 0.9898197874893745,
190
+ "max_gap_vs_analytic": 0.0006194239058249229,
191
+ "all_meet_99pct": true,
192
+ "negative_controls": [
193
+ {
194
+ "Mw": 16,
195
+ "L": 200,
196
+ "window_required": 77,
197
+ "full_window_success": 1.0,
198
+ "theorem_window_success": 0.991575,
199
+ "control_window_eq_Mw_success": 0.58775,
200
+ "control_window_eq_Mw_analytic": 0.5678578849390983,
201
+ "control_window_eq_Mw_gap": 0.019892115060901716,
202
+ "one_minus_1_over_e": 0.6321205588285577,
203
+ "control_blind_query_success": 0.032425,
204
+ "control_no_mamba_success": 0.1152,
205
+ "control_no_mamba_key_decoded": 0.063325,
206
+ "control_no_positional_bias_success": 0.248525,
207
+ "frac_key_repeated_in_window": 0.95075,
208
+ "control_no_bias_predicted_ceiling": 0.049250000000000016,
209
+ "chance_level": 0.0625
210
+ },
211
+ {
212
+ "Mw": 32,
213
+ "L": 400,
214
+ "window_required": 152,
215
+ "full_window_success": 1.0,
216
+ "theorem_window_success": 0.991075,
217
+ "control_window_eq_Mw_success": 0.6003,
218
+ "control_window_eq_Mw_analytic": 0.5889184036018332,
219
+ "control_window_eq_Mw_gap": 0.011381596398166716,
220
+ "one_minus_1_over_e": 0.6321205588285577,
221
+ "control_blind_query_success": 0.01555,
222
+ "control_no_mamba_success": 0.05795,
223
+ "control_no_mamba_key_decoded": 0.03065,
224
+ "control_no_positional_bias_success": 0.194175,
225
+ "frac_key_repeated_in_window": 0.947875,
226
+ "control_no_bias_predicted_ceiling": 0.05212499999999998,
227
+ "chance_level": 0.03125
228
+ }
229
+ ],
230
+ "window_sweep_Mw32_L400": [
231
+ {
232
+ "window": 8,
233
+ "success": 0.12866666666666668,
234
+ "analytic": 0.1192617416381836,
235
+ "abs_gap": 0.009404925028483085
236
+ },
237
+ {
238
+ "window": 16,
239
+ "success": 0.32953333333333334,
240
+ "analytic": 0.31681143890437935,
241
+ "abs_gap": 0.012721894428953995
242
+ },
243
+ {
244
+ "window": 32,
245
+ "success": 0.6007333333333333,
246
+ "analytic": 0.5889184036018332,
247
+ "abs_gap": 0.011814929731500112
248
+ },
249
+ {
250
+ "window": 64,
251
+ "success": 0.8548666666666667,
252
+ "analytic": 0.8511657337081133,
253
+ "abs_gap": 0.003700932958553338
254
+ },
255
+ {
256
+ "window": 96,
257
+ "success": 0.9476333333333333,
258
+ "analytic": 0.9461137666664393,
259
+ "abs_gap": 0.0015195666668940122
260
+ },
261
+ {
262
+ "window": 128,
263
+ "success": 0.9806,
264
+ "analytic": 0.9804902042034843,
265
+ "abs_gap": 0.00010979579651571036
266
+ },
267
+ {
268
+ "window": 154,
269
+ "success": 0.9916,
270
+ "analytic": 0.9914541094344762,
271
+ "abs_gap": 0.00014589056552383184
272
+ },
273
+ {
274
+ "window": 200,
275
+ "success": 0.9979666666666667,
276
+ "analytic": 0.9980162075146308,
277
+ "abs_gap": 4.954084796415792e-05
278
+ },
279
+ {
280
+ "window": 300,
281
+ "success": 0.9999333333333333,
282
+ "analytic": 0.9999170783772994,
283
+ "abs_gap": 1.6254956033967538e-05
284
+ },
285
+ {
286
+ "window": 400,
287
+ "success": 1.0,
288
+ "analytic": 0.9999964221046956,
289
+ "abs_gap": 3.5778953043630324e-06
290
+ }
291
+ ],
292
+ "window_sweep_max_gap": 0.012721894428953995
293
+ }