imadreamerboy commited on
Commit
99bc722
·
verified ·
1 Parent(s): 499c4f2

Publish bounded DiffRes stored-evidence package

Browse files

Static evidence package for one stored 100-ID Gaussian-mixture comparison. It verifies the stored record only and explicitly does not claim a source rerun, paper-level reproduction, significance, or broad outperformance.

LICENSE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2026 DiffRes publication package contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so,
11
+ subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
MANIFEST.md ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Source and artefact manifest
2
+
3
+ ## Package purpose
4
+
5
+ This manifest records the provenance and SHA-256 identity of every copied
6
+ public asset. The `evidence/` files and `UPSTREAM-MPL-2.0.txt` were copied
7
+ byte-for-byte; wrapper documentation and the static page were authored for this
8
+ package. No numerical evaluation was run while creating this package.
9
+
10
+ ## Package-only verifier
11
+
12
+ [`evidence/verify_stored_gms_evidence.py`](evidence/verify_stored_gms_evidence.py)
13
+ and its focused standard-library test
14
+ [`evidence/test_verify_stored_gms_evidence.py`](evidence/test_verify_stored_gms_evidence.py)
15
+ are package-authored. They recompute the immutable raw record's JSON structure,
16
+ configuration, ordered IDs, descriptive aggregates, paired aggregates, and
17
+ lower-counts without a source checkout, SciPy, network access, or numerical
18
+ evaluation. The verifier itself has no output-file dependency; its focused test
19
+ uses only temporary local fixtures. They do not validate the recorded upstream
20
+ hashes against source files, prove provenance, or establish paper-level claims.
21
+
22
+ ## Copied public assets
23
+
24
+ | Package path | Source role | SHA-256 | Transfer |
25
+ | --- | --- | --- | --- |
26
+ | `evidence/gms-selected-ids-0-99.json` | Historical 100-ID GMS raw result | `c74851b88b5df723cbfb28edb48be09eb61e7a2dab086088f90d59591b68723b` | Byte-for-byte copy |
27
+ | `evidence/gms-selected-ids-0-99-validation.json` | Historical post-hoc validation record | `8e9c7263415799f6f5cd456696290f5034ff8670c77e17951ea6be5f584c07ee` | Byte-for-byte copy |
28
+ | `evidence/validate_gms_selected_result.py` | Separate post-hoc validator source | `80841d7e4395f60bcbf06880a92288ad7bfdd7e022ea60876911277f3b3e69e5` | Byte-for-byte copy |
29
+ | `UPSTREAM-MPL-2.0.txt` | Upstream MPL-2.0 licence text | `3f3d9e0024b1921b067d6f7f88deb4a60cbe7a78e76c64e3f1d7fc3b779b9d04` | Byte-for-byte copy |
30
+
31
+ ## Recorded released-source identity (not vendored)
32
+
33
+ The raw result and validation record identify the upstream repository as
34
+ `https://github.com/zgbkdlm/diffres.git`, commit
35
+ `767effe3e755067eb8a04422597fbf37eb8ab754`. The validator's historical source
36
+ hash checks cover the following released files; they are **not** copied into
37
+ this package:
38
+
39
+ | Released path | SHA-256 |
40
+ | --- | --- |
41
+ | `diffres/integators.py` | `4cbcdba683cf27532b21acfa9c3295354c52cc2f4494b4063a0459629eb72954` |
42
+ | `diffres/resampling.py` | `12b33fe23e1f62e18909cbcff9fa45db36ed65f6f943668728c9fe61795aa06e` |
43
+ | `diffres/tools.py` | `54c60e1ac4f484532f51be57a63aacbdfb7a53ef8cef621495176ea7a843a5df` |
44
+ | `experiments/gms/baselines.py` | `7b258df0ab4a7ca8eb5c91f6d5efbabbe359e0130db1cb9e4d3263a9241f1d5c` |
45
+ | `experiments/gms/diffusion.py` | `886496bab31d254ac8030286ea350e48db817bd680cccc8cdda50c58a94ba774` |
46
+ | `experiments/rnd_keys.npy` | `6e60685445936e0380220f34fc3fd15b5b7720070dc8c8f7f1148575de4ff5df` |
47
+ | `experiments/run_gms.sh` | `c01a4c88a3ef05d6a5ffb585b9d4233b1b1a9e8c1c46d40360eab44963b3eee5` |
48
+ | `experiments/summary/print_gms_errs.py` | `1df81cadaaf35ca5b26e8bd1ce6fc19aa4a60a2f7e161075087e518b3a0d17cd` |
49
+
50
+ ## Deliberate exclusions
51
+
52
+ The package does not include the upstream source tree, any virtual environment
53
+ or cache, numerical runners, model artefacts, partial GMS outputs, or any
54
+ LGSSM, CIFAR-10, Lokta, timing, or other study materials. It contains no upload
55
+ client or deployment script.
56
+
57
+ ## Integrity check
58
+
59
+ From the package root, run:
60
+
61
+ ```sh
62
+ shasum -a 256 -c MANIFEST.sha256
63
+ ```
64
+
65
+ `MANIFEST.sha256` covers every package file except itself. It is a packaging
66
+ integrity check only; it does not validate the underlying numerical result.
MANIFEST.sha256 ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ aa7e793d938e2371c7e759bd81e7bb8355336705dc92e28e1c7f89ddc89d971a README.md
2
+ c39f5f10df2a79c63f95eb000a60c29a6caf937372a127d4ed362125f693acd4 index.html
3
+ 9925f027238163d3b60fe3edbc991375b1b40da80556df3792d54844bb404038 LICENSE
4
+ 63dd00dfab08c4f4dd8ccd86cef24125b8aeefe3a8c28c30b9a00230afc9e12e NOTICE
5
+ 3f3d9e0024b1921b067d6f7f88deb4a60cbe7a78e76c64e3f1d7fc3b779b9d04 UPSTREAM-MPL-2.0.txt
6
+ 75d21d15838ddc8627f7b2136adb08077e904979a06a0d3dc0970e997e4531e0 MANIFEST.md
7
+ 50fa516668270ac13b332c7c539ce94cc45118faf775607051e94e4be86c5734 evidence/README.md
8
+ c74851b88b5df723cbfb28edb48be09eb61e7a2dab086088f90d59591b68723b evidence/gms-selected-ids-0-99.json
9
+ 8e9c7263415799f6f5cd456696290f5034ff8670c77e17951ea6be5f584c07ee evidence/gms-selected-ids-0-99-validation.json
10
+ 80841d7e4395f60bcbf06880a92288ad7bfdd7e022ea60876911277f3b3e69e5 evidence/validate_gms_selected_result.py
11
+ 7359767586cc5f5410b940de359adac14b6ff69acc2570ab8b7b0d3e55fd9a49 evidence/test_verify_stored_gms_evidence.py
12
+ e030156293c8bf77f211f31220ca4fcd96c9f8850267f32cd315b5551b6931d6 evidence/verify_stored_gms_evidence.py
NOTICE ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Notice and attribution
2
+
3
+ ## Package scope
4
+
5
+ This repository is a local static publication package. Its wrapper-authored
6
+ documentation and presentation material are licensed under the MIT Licence in
7
+ [`LICENSE`](LICENSE). The evidence JSON records and validator are preserved as
8
+ historic study artefacts; this notice does not grant rights that their original
9
+ contributors do not hold.
10
+
11
+ ## Upstream implementation
12
+
13
+ The study evidence refers to the released implementation:
14
+
15
+ - Repository: <https://github.com/zgbkdlm/diffres>
16
+ - Revision: `767effe3e755067eb8a04422597fbf37eb8ab754`
17
+ - Licence: Mozilla Public License 2.0 (MPL-2.0)
18
+
19
+ No upstream implementation source files are redistributed in this package.
20
+ [`UPSTREAM-MPL-2.0.txt`](UPSTREAM-MPL-2.0.txt) is a byte-for-byte copy of the
21
+ upstream licence text, included for attribution and reference only.
22
+
23
+ ## Paper
24
+
25
+ Jennifer Rosina Andersson and Zheng Zhao, *Diffusion differentiable
26
+ resampling*, arXiv:2512.10401, OpenReview:M0e5XORjAW.
27
+
28
+ This package is an evidence wrapper, not an official paper artefact or an
29
+ endorsement by the paper authors.
README.md CHANGED
@@ -1,10 +1,96 @@
1
  ---
2
- title: Repro Diffusion Differentiable Resampling
3
- emoji:
4
- colorFrom: indigo
5
  colorTo: indigo
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: "DiffRes: traceable 100-ID Gaussian-mixture study"
3
+ emoji: "🔬"
4
+ colorFrom: blue
5
  colorTo: indigo
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - icml2026-repro
10
+ - paper-M0e5XORjAW
11
+ - reproducibility
12
+ - diffusion
13
  ---
14
 
15
+ # DiffRes: traceable 100-ID Gaussian-mixture study
16
+
17
+ This is a static, local publication package for **Diffusion differentiable
18
+ resampling** by Jennifer Rosina Andersson and Zheng Zhao
19
+ ([arXiv:2512.10401](https://arxiv.org/abs/2512.10401),
20
+ [OpenReview:M0e5XORjAW](https://openreview.net/forum?id=M0e5XORjAW)).
21
+
22
+ **Evidence statement.** A local study wrapper using released implementation,
23
+ stored numerical random keys and pinned source config recorded a traceable 100-ID
24
+ Gaussian-mixture result; a separate validator recomputed raw-record aggregates,
25
+ paired intervals, and source hashes.
26
+
27
+ The files here are **historic stored outputs**, transferred without rerunning
28
+ the numerical evaluation. This static site has no execution, upload, or model
29
+ hosting component.
30
+
31
+ ## What the evidence covers
32
+
33
+ - Released implementation: [`zgbkdlm/diffres`](https://github.com/zgbkdlm/diffres)
34
+ at commit `767effe3e755067eb8a04422597fbf37eb8ab754` (MPL-2.0).
35
+ - One paper-selected Gaussian-mixture configuration, with stored Monte Carlo IDs
36
+ `0`–`99`, 10,000 particles, 1,000 sliced-Wasserstein projections,
37
+ probability-flow ODE `T=3`, 128 steps, and the Jentzen--Kloeden integrator.
38
+ - A paired comparison between diffusion resampling and the multinomial
39
+ baseline only.
40
+ - A post-hoc, standard-Python validator that checks strict JSON, the 100 raw
41
+ records, reported aggregates, paired intervals, the recorded source pin, and
42
+ hashes of the released source files.
43
+
44
+ | Historical stored aggregate (lower is better) | Diffusion resampling | Multinomial baseline |
45
+ | --- | ---: | ---: |
46
+ | Sliced Wasserstein L1, mean ± population SD | 0.0807686 ± 0.0212899 | 0.0824334 ± 0.0250323 |
47
+ | Squared posterior-mean residual L2, mean ± population SD | 0.0373908 ± 0.0299358 | 0.0378330 ± 0.0442877 |
48
+
49
+ The stored paired 95% t intervals cross zero for both metrics. They are not
50
+ evidence of a statistically significant improvement.
51
+
52
+ ## Evidence files
53
+
54
+ - [Raw 100-ID result](evidence/gms-selected-ids-0-99.json) — preserved
55
+ per-ID values, source provenance, configuration, and recorded aggregates.
56
+ - [Post-hoc validation record](evidence/gms-selected-ids-0-99-validation.json)
57
+ — the historic validator output.
58
+ - [Validator source](evidence/validate_gms_selected_result.py) — copied
59
+ byte-for-byte as an audit artefact; it does not rerun the JAX evaluation.
60
+ - [Self-contained stored-evidence verifier](evidence/verify_stored_gms_evidence.py)
61
+ — a standard-library-only check of the JSON structure and recorded
62
+ arithmetic; run it with `python3 evidence/verify_stored_gms_evidence.py`.
63
+ - [Evidence guide](evidence/README.md) — lineage, portability, and limits.
64
+ - [Source and artefact manifest](MANIFEST.md) and
65
+ [package SHA-256 manifest](MANIFEST.sha256).
66
+
67
+ ## Limits
68
+
69
+ This is **not** an exact reproduction, an independent replication, a complete
70
+ Table 1 or Table 2 reproduction, a publication score, or a broad
71
+ outperformance claim. It does not evaluate the OT, Gumbel-Softmax, or
72
+ soft-resampling baselines, and it does not rerun the numerical study in this
73
+ package. The included validator recomputes historic raw-record statistics and
74
+ checks the recorded source identity; it is not a second numerical run. The
75
+ self-contained verifier recomputes the stored record's configuration, ordered
76
+ IDs, aggregates, and lower-counts without a source checkout or SciPy. It does
77
+ not validate source hashes, execution provenance, paper-level results, or any
78
+ comparative claim.
79
+
80
+ ## Safety and selection note
81
+
82
+ The selected material is a benign numerical-methods study package: static
83
+ HTML/Markdown, two JSON evidence records, a non-networked validator, and
84
+ licensing/provenance files. The transfer excludes the upstream source tree,
85
+ virtual environments, caches, runners, model artefacts, partial studies, and
86
+ all LGSSM material. A pre-transfer content scan found no private local paths,
87
+ credential-shaped values, upload clients, or source files from excluded study
88
+ areas. The validator's only generic token-pattern match is a JSON-parser parameter,
89
+ not credential handling.
90
+
91
+ ## Licence and attribution
92
+
93
+ The package-authored wrapper material is under the [MIT Licence](LICENSE).
94
+ The upstream DiffRes implementation is not redistributed here; it remains
95
+ available under MPL-2.0, with attribution in [NOTICE](NOTICE) and a copy of
96
+ the upstream licence at [UPSTREAM-MPL-2.0.txt](UPSTREAM-MPL-2.0.txt).
UPSTREAM-MPL-2.0.txt ADDED
@@ -0,0 +1,373 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Mozilla Public License Version 2.0
2
+ ==================================
3
+
4
+ 1. Definitions
5
+ --------------
6
+
7
+ 1.1. "Contributor"
8
+ means each individual or legal entity that creates, contributes to
9
+ the creation of, or owns Covered Software.
10
+
11
+ 1.2. "Contributor Version"
12
+ means the combination of the Contributions of others (if any) used
13
+ by a Contributor and that particular Contributor's Contribution.
14
+
15
+ 1.3. "Contribution"
16
+ means Covered Software of a particular Contributor.
17
+
18
+ 1.4. "Covered Software"
19
+ means Source Code Form to which the initial Contributor has attached
20
+ the notice in Exhibit A, the Executable Form of such Source Code
21
+ Form, and Modifications of such Source Code Form, in each case
22
+ including portions thereof.
23
+
24
+ 1.5. "Incompatible With Secondary Licenses"
25
+ means
26
+
27
+ (a) that the initial Contributor has attached the notice described
28
+ in Exhibit B to the Covered Software; or
29
+
30
+ (b) that the Covered Software was made available under the terms of
31
+ version 1.1 or earlier of the License, but not also under the
32
+ terms of a Secondary License.
33
+
34
+ 1.6. "Executable Form"
35
+ means any form of the work other than Source Code Form.
36
+
37
+ 1.7. "Larger Work"
38
+ means a work that combines Covered Software with other material, in
39
+ a separate file or files, that is not Covered Software.
40
+
41
+ 1.8. "License"
42
+ means this document.
43
+
44
+ 1.9. "Licensable"
45
+ means having the right to grant, to the maximum extent possible,
46
+ whether at the time of the initial grant or subsequently, any and
47
+ all of the rights conveyed by this License.
48
+
49
+ 1.10. "Modifications"
50
+ means any of the following:
51
+
52
+ (a) any file in Source Code Form that results from an addition to,
53
+ deletion from, or modification of the contents of Covered
54
+ Software; or
55
+
56
+ (b) any new file in Source Code Form that contains any Covered
57
+ Software.
58
+
59
+ 1.11. "Patent Claims" of a Contributor
60
+ means any patent claim(s), including without limitation, method,
61
+ process, and apparatus claims, in any patent Licensable by such
62
+ Contributor that would be infringed, but for the grant of the
63
+ License, by the making, using, selling, offering for sale, having
64
+ made, import, or transfer of either its Contributions or its
65
+ Contributor Version.
66
+
67
+ 1.12. "Secondary License"
68
+ means either the GNU General Public License, Version 2.0, the GNU
69
+ Lesser General Public License, Version 2.1, the GNU Affero General
70
+ Public License, Version 3.0, or any later versions of those
71
+ licenses.
72
+
73
+ 1.13. "Source Code Form"
74
+ means the form of the work preferred for making modifications.
75
+
76
+ 1.14. "You" (or "Your")
77
+ means an individual or a legal entity exercising rights under this
78
+ License. For legal entities, "You" includes any entity that
79
+ controls, is controlled by, or is under common control with You. For
80
+ purposes of this definition, "control" means (a) the power, direct
81
+ or indirect, to cause the direction or management of such entity,
82
+ whether by contract or otherwise, or (b) ownership of more than
83
+ fifty percent (50%) of the outstanding shares or beneficial
84
+ ownership of such entity.
85
+
86
+ 2. License Grants and Conditions
87
+ --------------------------------
88
+
89
+ 2.1. Grants
90
+
91
+ Each Contributor hereby grants You a world-wide, royalty-free,
92
+ non-exclusive license:
93
+
94
+ (a) under intellectual property rights (other than patent or trademark)
95
+ Licensable by such Contributor to use, reproduce, make available,
96
+ modify, display, perform, distribute, and otherwise exploit its
97
+ Contributions, either on an unmodified basis, with Modifications, or
98
+ as part of a Larger Work; and
99
+
100
+ (b) under Patent Claims of such Contributor to make, use, sell, offer
101
+ for sale, have made, import, and otherwise transfer either its
102
+ Contributions or its Contributor Version.
103
+
104
+ 2.2. Effective Date
105
+
106
+ The licenses granted in Section 2.1 with respect to any Contribution
107
+ become effective for each Contribution on the date the Contributor first
108
+ distributes such Contribution.
109
+
110
+ 2.3. Limitations on Grant Scope
111
+
112
+ The licenses granted in this Section 2 are the only rights granted under
113
+ this License. No additional rights or licenses will be implied from the
114
+ distribution or licensing of Covered Software under this License.
115
+ Notwithstanding Section 2.1(b) above, no patent license is granted by a
116
+ Contributor:
117
+
118
+ (a) for any code that a Contributor has removed from Covered Software;
119
+ or
120
+
121
+ (b) for infringements caused by: (i) Your and any other third party's
122
+ modifications of Covered Software, or (ii) the combination of its
123
+ Contributions with other software (except as part of its Contributor
124
+ Version); or
125
+
126
+ (c) under Patent Claims infringed by Covered Software in the absence of
127
+ its Contributions.
128
+
129
+ This License does not grant any rights in the trademarks, service marks,
130
+ or logos of any Contributor (except as may be necessary to comply with
131
+ the notice requirements in Section 3.4).
132
+
133
+ 2.4. Subsequent Licenses
134
+
135
+ No Contributor makes additional grants as a result of Your choice to
136
+ distribute the Covered Software under a subsequent version of this
137
+ License (see Section 10.2) or under the terms of a Secondary License (if
138
+ permitted under the terms of Section 3.3).
139
+
140
+ 2.5. Representation
141
+
142
+ Each Contributor represents that the Contributor believes its
143
+ Contributions are its original creation(s) or it has sufficient rights
144
+ to grant the rights to its Contributions conveyed by this License.
145
+
146
+ 2.6. Fair Use
147
+
148
+ This License is not intended to limit any rights You have under
149
+ applicable copyright doctrines of fair use, fair dealing, or other
150
+ equivalents.
151
+
152
+ 2.7. Conditions
153
+
154
+ Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
155
+ in Section 2.1.
156
+
157
+ 3. Responsibilities
158
+ -------------------
159
+
160
+ 3.1. Distribution of Source Form
161
+
162
+ All distribution of Covered Software in Source Code Form, including any
163
+ Modifications that You create or to which You contribute, must be under
164
+ the terms of this License. You must inform recipients that the Source
165
+ Code Form of the Covered Software is governed by the terms of this
166
+ License, and how they can obtain a copy of this License. You may not
167
+ attempt to alter or restrict the recipients' rights in the Source Code
168
+ Form.
169
+
170
+ 3.2. Distribution of Executable Form
171
+
172
+ If You distribute Covered Software in Executable Form then:
173
+
174
+ (a) such Covered Software must also be made available in Source Code
175
+ Form, as described in Section 3.1, and You must inform recipients of
176
+ the Executable Form how they can obtain a copy of such Source Code
177
+ Form by reasonable means in a timely manner, at a charge no more
178
+ than the cost of distribution to the recipient; and
179
+
180
+ (b) You may distribute such Executable Form under the terms of this
181
+ License, or sublicense it under different terms, provided that the
182
+ license for the Executable Form does not attempt to limit or alter
183
+ the recipients' rights in the Source Code Form under this License.
184
+
185
+ 3.3. Distribution of a Larger Work
186
+
187
+ You may create and distribute a Larger Work under terms of Your choice,
188
+ provided that You also comply with the requirements of this License for
189
+ the Covered Software. If the Larger Work is a combination of Covered
190
+ Software with a work governed by one or more Secondary Licenses, and the
191
+ Covered Software is not Incompatible With Secondary Licenses, this
192
+ License permits You to additionally distribute such Covered Software
193
+ under the terms of such Secondary License(s), so that the recipient of
194
+ the Larger Work may, at their option, further distribute the Covered
195
+ Software under the terms of either this License or such Secondary
196
+ License(s).
197
+
198
+ 3.4. Notices
199
+
200
+ You may not remove or alter the substance of any license notices
201
+ (including copyright notices, patent notices, disclaimers of warranty,
202
+ or limitations of liability) contained within the Source Code Form of
203
+ the Covered Software, except that You may alter any license notices to
204
+ the extent required to remedy known factual inaccuracies.
205
+
206
+ 3.5. Application of Additional Terms
207
+
208
+ You may choose to offer, and to charge a fee for, warranty, support,
209
+ indemnity or liability obligations to one or more recipients of Covered
210
+ Software. However, You may do so only on Your own behalf, and not on
211
+ behalf of any Contributor. You must make it absolutely clear that any
212
+ such warranty, support, indemnity, or liability obligation is offered by
213
+ You alone, and You hereby agree to indemnify every Contributor for any
214
+ liability incurred by such Contributor as a result of warranty, support,
215
+ indemnity or liability terms You offer. You may include additional
216
+ disclaimers of warranty and limitations of liability specific to any
217
+ jurisdiction.
218
+
219
+ 4. Inability to Comply Due to Statute or Regulation
220
+ ---------------------------------------------------
221
+
222
+ If it is impossible for You to comply with any of the terms of this
223
+ License with respect to some or all of the Covered Software due to
224
+ statute, judicial order, or regulation then You must: (a) comply with
225
+ the terms of this License to the maximum extent possible; and (b)
226
+ describe the limitations and the code they affect. Such description must
227
+ be placed in a text file included with all distributions of the Covered
228
+ Software under this License. Except to the extent prohibited by statute
229
+ or regulation, such description must be sufficiently detailed for a
230
+ recipient of ordinary skill to be able to understand it.
231
+
232
+ 5. Termination
233
+ --------------
234
+
235
+ 5.1. The rights granted under this License will terminate automatically
236
+ if You fail to comply with any of its terms. However, if You become
237
+ compliant, then the rights granted under this License from a particular
238
+ Contributor are reinstated (a) provisionally, unless and until such
239
+ Contributor explicitly and finally terminates Your grants, and (b) on an
240
+ ongoing basis, if such Contributor fails to notify You of the
241
+ non-compliance by some reasonable means prior to 60 days after You have
242
+ come back into compliance. Moreover, Your grants from a particular
243
+ Contributor are reinstated on an ongoing basis if such Contributor
244
+ notifies You of the non-compliance by some reasonable means, this is the
245
+ first time You have received notice of non-compliance with this License
246
+ from such Contributor, and You become compliant prior to 30 days after
247
+ Your receipt of the notice.
248
+
249
+ 5.2. If You initiate litigation against any entity by asserting a patent
250
+ infringement claim (excluding declaratory judgment actions,
251
+ counter-claims, and cross-claims) alleging that a Contributor Version
252
+ directly or indirectly infringes any patent, then the rights granted to
253
+ You by any and all Contributors for the Covered Software under Section
254
+ 2.1 of this License shall terminate.
255
+
256
+ 5.3. In the event of termination under Sections 5.1 or 5.2 above, all
257
+ end user license agreements (excluding distributors and resellers) which
258
+ have been validly granted by You or Your distributors under this License
259
+ prior to termination shall survive termination.
260
+
261
+ ************************************************************************
262
+ * *
263
+ * 6. Disclaimer of Warranty *
264
+ * ------------------------- *
265
+ * *
266
+ * Covered Software is provided under this License on an "as is" *
267
+ * basis, without warranty of any kind, either expressed, implied, or *
268
+ * statutory, including, without limitation, warranties that the *
269
+ * Covered Software is free of defects, merchantable, fit for a *
270
+ * particular purpose or non-infringing. The entire risk as to the *
271
+ * quality and performance of the Covered Software is with You. *
272
+ * Should any Covered Software prove defective in any respect, You *
273
+ * (not any Contributor) assume the cost of any necessary servicing, *
274
+ * repair, or correction. This disclaimer of warranty constitutes an *
275
+ * essential part of this License. No use of any Covered Software is *
276
+ * authorized under this License except under this disclaimer. *
277
+ * *
278
+ ************************************************************************
279
+
280
+ ************************************************************************
281
+ * *
282
+ * 7. Limitation of Liability *
283
+ * -------------------------- *
284
+ * *
285
+ * Under no circumstances and under no legal theory, whether tort *
286
+ * (including negligence), contract, or otherwise, shall any *
287
+ * Contributor, or anyone who distributes Covered Software as *
288
+ * permitted above, be liable to You for any direct, indirect, *
289
+ * special, incidental, or consequential damages of any character *
290
+ * including, without limitation, damages for lost profits, loss of *
291
+ * goodwill, work stoppage, computer failure or malfunction, or any *
292
+ * and all other commercial damages or losses, even if such party *
293
+ * shall have been informed of the possibility of such damages. This *
294
+ * limitation of liability shall not apply to liability for death or *
295
+ * personal injury resulting from such party's negligence to the *
296
+ * extent applicable law prohibits such limitation. Some *
297
+ * jurisdictions do not allow the exclusion or limitation of *
298
+ * incidental or consequential damages, so this exclusion and *
299
+ * limitation may not apply to You. *
300
+ * *
301
+ ************************************************************************
302
+
303
+ 8. Litigation
304
+ -------------
305
+
306
+ Any litigation relating to this License may be brought only in the
307
+ courts of a jurisdiction where the defendant maintains its principal
308
+ place of business and such litigation shall be governed by laws of that
309
+ jurisdiction, without reference to its conflict-of-law provisions.
310
+ Nothing in this Section shall prevent a party's ability to bring
311
+ cross-claims or counter-claims.
312
+
313
+ 9. Miscellaneous
314
+ ----------------
315
+
316
+ This License represents the complete agreement concerning the subject
317
+ matter hereof. If any provision of this License is held to be
318
+ unenforceable, such provision shall be reformed only to the extent
319
+ necessary to make it enforceable. Any law or regulation which provides
320
+ that the language of a contract shall be construed against the drafter
321
+ shall not be used to construe this License against a Contributor.
322
+
323
+ 10. Versions of the License
324
+ ---------------------------
325
+
326
+ 10.1. New Versions
327
+
328
+ Mozilla Foundation is the license steward. Except as provided in Section
329
+ 10.3, no one other than the license steward has the right to modify or
330
+ publish new versions of this License. Each version will be given a
331
+ distinguishing version number.
332
+
333
+ 10.2. Effect of New Versions
334
+
335
+ You may distribute the Covered Software under the terms of the version
336
+ of the License under which You originally received the Covered Software,
337
+ or under the terms of any subsequent version published by the license
338
+ steward.
339
+
340
+ 10.3. Modified Versions
341
+
342
+ If you create software not governed by this License, and you want to
343
+ create a new license for such software, you may create and use a
344
+ modified version of this License if you rename the license and remove
345
+ any references to the name of the license steward (except to note that
346
+ such modified license differs from this License).
347
+
348
+ 10.4. Distributing Source Code Form that is Incompatible With Secondary
349
+ Licenses
350
+
351
+ If You choose to distribute Source Code Form that is Incompatible With
352
+ Secondary Licenses under the terms of this version of the License, the
353
+ notice described in Exhibit B of this License must be attached.
354
+
355
+ Exhibit A - Source Code Form License Notice
356
+ -------------------------------------------
357
+
358
+ This Source Code Form is subject to the terms of the Mozilla Public
359
+ License, v. 2.0. If a copy of the MPL was not distributed with this
360
+ file, You can obtain one at https://mozilla.org/MPL/2.0/.
361
+
362
+ If it is not possible or desirable to put the notice in a particular
363
+ file, then You may include the notice in a location (such as a LICENSE
364
+ file in a relevant directory) where a recipient would be likely to look
365
+ for such a notice.
366
+
367
+ You may add additional accurate notices of copyright ownership.
368
+
369
+ Exhibit B - "Incompatible With Secondary Licenses" Notice
370
+ ---------------------------------------------------------
371
+
372
+ This Source Code Form is "Incompatible With Secondary Licenses", as
373
+ defined by the Mozilla Public License, v. 2.0.
evidence/README.md ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Evidence guide
2
+
3
+ ## Lineage
4
+
5
+ The public evidence set is intentionally small:
6
+
7
+ 1. [`gms-selected-ids-0-99.json`](gms-selected-ids-0-99.json) is the
8
+ historical stored result: 100 ordered Gaussian-mixture records, the selected
9
+ configuration, source provenance, and reported aggregates.
10
+ 2. [`validate_gms_selected_result.py`](validate_gms_selected_result.py) is the
11
+ separate post-hoc validator, copied byte-for-byte from the local study.
12
+ 3. [`gms-selected-ids-0-99-validation.json`](gms-selected-ids-0-99-validation.json)
13
+ is the historical output from that validator.
14
+ 4. [`verify_stored_gms_evidence.py`](verify_stored_gms_evidence.py) is a new,
15
+ standard-library-only verifier for the preserved JSON record.
16
+ 5. [`test_verify_stored_gms_evidence.py`](test_verify_stored_gms_evidence.py)
17
+ is its focused standard-library test suite.
18
+
19
+ The validator is intentionally separate from the JAX numerical runner. It
20
+ recomputes strict-JSON checks, the 100 ordered raw records, aggregate statistics,
21
+ paired intervals, and the recorded hashes of released source files. It does not
22
+ run the numerical evaluation.
23
+
24
+ ## Portability
25
+
26
+ The validator is preserved as an audit artefact, not as a standalone Space
27
+ application. It expects the released DiffRes checkout layout at the recorded
28
+ commit and checks its Git identity and eight source/input hashes. The upstream
29
+ source is deliberately not vendored in this package. Consequently, the bundled
30
+ historical validation JSON is the inspection record for this static package;
31
+ running the validator requires a separately obtained clean checkout at the
32
+ recorded pin and a Python environment with SciPy.
33
+
34
+ The self-contained verifier fills the package-only gap without changing the
35
+ historical artefacts. From the package root, run:
36
+
37
+ ```sh
38
+ python3 evidence/verify_stored_gms_evidence.py
39
+ python3 evidence/test_verify_stored_gms_evidence.py
40
+ ```
41
+
42
+ It strictly parses the raw JSON, rejects duplicate keys and non-finite values,
43
+ checks the declared configuration and ordered IDs `0`–`99`, and recomputes the
44
+ method/metric aggregates, paired aggregates, and lower-counts. It has no
45
+ network, source-checkout, third-party-package, numerical-run, or output-file
46
+ dependency. It cannot validate the claimed source hashes against a checkout,
47
+ prove execution provenance, or establish a paper result, statistical
48
+ significance, or outperformance claim.
49
+
50
+ ## Interpretation limits
51
+
52
+ The stored result covers the selected 100-ID Gaussian-mixture configuration and
53
+ the multinomial baseline. It does not supply a full Table 1 or Table 2 result,
54
+ an independent numerical rerun, other baseline comparisons, a significance
55
+ claim, or an outperformance claim. The paired 95% t intervals recorded by the
56
+ validator cross zero for both metrics.
57
+
58
+ ## Asset integrity
59
+
60
+ Each transferred asset is listed with its source path, SHA-256, and transfer
61
+ mode in the repository-root [manifest](../MANIFEST.md). The package-level
62
+ [SHA-256 manifest](../MANIFEST.sha256) enables a local integrity check without
63
+ executing either validator. The focused verifier tests run only with the Python
64
+ standard library.
evidence/gms-selected-ids-0-99-validation.json ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "checked_at_utc": "2026-07-19T11:19:22.402493Z",
3
+ "checks": {
4
+ "current_source_identity_and_hashes": {
5
+ "checked_author_source_sha256": {
6
+ "diffres/integators.py": "4cbcdba683cf27532b21acfa9c3295354c52cc2f4494b4063a0459629eb72954",
7
+ "diffres/resampling.py": "12b33fe23e1f62e18909cbcff9fa45db36ed65f6f943668728c9fe61795aa06e",
8
+ "diffres/tools.py": "54c60e1ac4f484532f51be57a63aacbdfb7a53ef8cef621495176ea7a843a5df",
9
+ "experiments/gms/baselines.py": "7b258df0ab4a7ca8eb5c91f6d5efbabbe359e0130db1cb9e4d3263a9241f1d5c",
10
+ "experiments/gms/diffusion.py": "886496bab31d254ac8030286ea350e48db817bd680cccc8cdda50c58a94ba774",
11
+ "experiments/rnd_keys.npy": "6e60685445936e0380220f34fc3fd15b5b7720070dc8c8f7f1148575de4ff5df",
12
+ "experiments/run_gms.sh": "c01a4c88a3ef05d6a5ffb585b9d4233b1b1a9e8c1c46d40360eab44963b3eee5",
13
+ "experiments/summary/print_gms_errs.py": "1df81cadaaf35ca5b26e8bd1ce6fc19aa4a60a2f7e161075087e518b3a0d17cd"
14
+ },
15
+ "current_commit": "767effe3e755067eb8a04422597fbf37eb8ab754",
16
+ "current_origin_matches_expected": true,
17
+ "current_tracked_worktree_clean": true
18
+ },
19
+ "raw_record_integrity_and_aggregate_recomputation": {
20
+ "diffusion_lower_is_better_wins": {
21
+ "posterior_mean_residual_squared_l2": 51,
22
+ "sliced_wasserstein_l1": 54
23
+ },
24
+ "paired_diffusion_minus_multinomial_95_percent_t_intervals": {
25
+ "posterior_mean_residual_squared_l2": {
26
+ "critical_value": 1.9842169515086827,
27
+ "lower": -0.007123449582480549,
28
+ "mean": -0.00044225546225615345,
29
+ "sample_count": 100,
30
+ "sample_standard_deviation": 0.03367169157155121,
31
+ "standard_error": 0.003367169157155121,
32
+ "upper": 0.006238938657968242
33
+ },
34
+ "sliced_wasserstein_l1": {
35
+ "critical_value": 1.9842169515086827,
36
+ "lower": -0.004659334515850839,
37
+ "mean": -0.0016648057831093993,
38
+ "sample_count": 100,
39
+ "sample_standard_deviation": 0.015091740499770325,
40
+ "standard_error": 0.0015091740499770326,
41
+ "upper": 0.0013297229496320405
42
+ }
43
+ },
44
+ "recomputed_aggregate": {
45
+ "diffusion_resampling": {
46
+ "posterior_mean_residual_squared_l2": {
47
+ "maximum": 0.13674925583503703,
48
+ "mean": 0.037390775125730545,
49
+ "minimum": 0.003946685433082616,
50
+ "population_standard_deviation": 0.029935755902808506
51
+ },
52
+ "sliced_wasserstein_l1": {
53
+ "maximum": 0.13845705348834103,
54
+ "mean": 0.08076861937013251,
55
+ "minimum": 0.049275986886894586,
56
+ "population_standard_deviation": 0.021289921970778995
57
+ }
58
+ },
59
+ "multinomial_baseline": {
60
+ "posterior_mean_residual_squared_l2": {
61
+ "maximum": 0.34224144904965786,
62
+ "mean": 0.0378330305879867,
63
+ "minimum": 0.00328472168500068,
64
+ "population_standard_deviation": 0.044287731038823226
65
+ },
66
+ "sliced_wasserstein_l1": {
67
+ "maximum": 0.19381190521839362,
68
+ "mean": 0.08243342515324191,
69
+ "minimum": 0.04778862503625366,
70
+ "population_standard_deviation": 0.02503231412513419
71
+ }
72
+ }
73
+ },
74
+ "recomputed_paired_aggregate": {
75
+ "posterior_mean_residual_squared_l2": {
76
+ "maximum": 0.10671040850944102,
77
+ "mean": -0.00044225546225615345,
78
+ "minimum": -0.24669590547035306,
79
+ "population_standard_deviation": 0.03350291009982232
80
+ },
81
+ "sliced_wasserstein_l1": {
82
+ "maximum": 0.041779128105039046,
83
+ "mean": -0.0016648057831093993,
84
+ "minimum": -0.07544369540487143,
85
+ "population_standard_deviation": 0.015016092201344656
86
+ }
87
+ },
88
+ "record_count": 100
89
+ },
90
+ "selected_protocol": "passed",
91
+ "strict_json": "passed"
92
+ },
93
+ "claim_boundary": "This check independently recomputes the recorded aggregates and paired intervals from the 100 raw JSON records while checking the current pinned source identity. It does not rerun the numerical experiment, independently reproduce the paper, or establish an outperformance or significance claim.",
94
+ "input": {
95
+ "path": "study/gms-selected-ids-0-99.json",
96
+ "sha256": "c74851b88b5df723cbfb28edb48be09eb61e7a2dab086088f90d59591b68723b"
97
+ },
98
+ "schema_version": 1,
99
+ "validation_status": "passed",
100
+ "validation_type": "post-hoc integrity and aggregate recomputation; no numerical rerun",
101
+ "validator": {
102
+ "path": "study/validate_gms_selected_result.py",
103
+ "platform": {
104
+ "machine": "arm64",
105
+ "release": "25.5.0",
106
+ "system": "Darwin"
107
+ },
108
+ "python_version": "3.13.14 (main, Jun 23 2026, 15:20:43) [Clang 22.1.3 ]",
109
+ "scipy_version": "1.16.2",
110
+ "sha256": "80841d7e4395f60bcbf06880a92288ad7bfdd7e022ea60876911277f3b3e69e5"
111
+ }
112
+ }
evidence/gms-selected-ids-0-99.json ADDED
@@ -0,0 +1,1319 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "aggregate": {
3
+ "diffusion_lower_is_better_wins": {
4
+ "posterior_mean_residual_squared_l2": 51,
5
+ "sliced_wasserstein_l1": 54
6
+ },
7
+ "diffusion_resampling": {
8
+ "posterior_mean_residual_squared_l2": {
9
+ "maximum": 0.13674925583503703,
10
+ "mean": 0.037390775125730545,
11
+ "minimum": 0.003946685433082616,
12
+ "population_standard_deviation": 0.029935755902808506
13
+ },
14
+ "sliced_wasserstein_l1": {
15
+ "maximum": 0.13845705348834103,
16
+ "mean": 0.08076861937013251,
17
+ "minimum": 0.049275986886894586,
18
+ "population_standard_deviation": 0.021289921970778995
19
+ }
20
+ },
21
+ "multinomial_baseline": {
22
+ "posterior_mean_residual_squared_l2": {
23
+ "maximum": 0.34224144904965786,
24
+ "mean": 0.037833030587986684,
25
+ "minimum": 0.00328472168500068,
26
+ "population_standard_deviation": 0.04428773103882322
27
+ },
28
+ "sliced_wasserstein_l1": {
29
+ "maximum": 0.19381190521839362,
30
+ "mean": 0.08243342515324191,
31
+ "minimum": 0.04778862503625366,
32
+ "population_standard_deviation": 0.025032314125134195
33
+ }
34
+ },
35
+ "paired_diffusion_minus_multinomial": {
36
+ "posterior_mean_residual_squared_l2": {
37
+ "maximum": 0.10671040850944102,
38
+ "mean": -0.0004422554622561538,
39
+ "minimum": -0.24669590547035306,
40
+ "population_standard_deviation": 0.03350291009982232
41
+ },
42
+ "sliced_wasserstein_l1": {
43
+ "maximum": 0.041779128105039046,
44
+ "mean": -0.0016648057831093993,
45
+ "minimum": -0.07544369540487143,
46
+ "population_standard_deviation": 0.015016092201344656
47
+ }
48
+ }
49
+ },
50
+ "claim_boundary": "Uses the fixed Jentzen--Kloeden ODE grid selection and 100 of the author's 100 stored Monte Carlo IDs. Its particle count and SWD projections match the paper-scale source grid. It is source-faithful and reproduction-compatible with the selected 100-ID source protocol because it uses exactly author IDs 0\u201399 at paper-scale inputs. It does not by itself establish an outperformance claim.",
51
+ "configuration": {
52
+ "author_keys_path": "experiments/rnd_keys.npy",
53
+ "components": 5,
54
+ "diffusion_a": -1.0,
55
+ "diffusion_steps": 128,
56
+ "dimension": 8,
57
+ "execution": "one CPU process; compiled functions shared across ids",
58
+ "integrator": "jentzen_and_kloeden",
59
+ "mc_ids": [
60
+ 0,
61
+ 1,
62
+ 2,
63
+ 3,
64
+ 4,
65
+ 5,
66
+ 6,
67
+ 7,
68
+ 8,
69
+ 9,
70
+ 10,
71
+ 11,
72
+ 12,
73
+ 13,
74
+ 14,
75
+ 15,
76
+ 16,
77
+ 17,
78
+ 18,
79
+ 19,
80
+ 20,
81
+ 21,
82
+ 22,
83
+ 23,
84
+ 24,
85
+ 25,
86
+ 26,
87
+ 27,
88
+ 28,
89
+ 29,
90
+ 30,
91
+ 31,
92
+ 32,
93
+ 33,
94
+ 34,
95
+ 35,
96
+ 36,
97
+ 37,
98
+ 38,
99
+ 39,
100
+ 40,
101
+ 41,
102
+ 42,
103
+ 43,
104
+ 44,
105
+ 45,
106
+ 46,
107
+ 47,
108
+ 48,
109
+ 49,
110
+ 50,
111
+ 51,
112
+ 52,
113
+ 53,
114
+ 54,
115
+ 55,
116
+ 56,
117
+ 57,
118
+ 58,
119
+ 59,
120
+ 60,
121
+ 61,
122
+ 62,
123
+ 63,
124
+ 64,
125
+ 65,
126
+ 66,
127
+ 67,
128
+ 68,
129
+ 69,
130
+ 70,
131
+ 71,
132
+ 72,
133
+ 73,
134
+ 74,
135
+ 75,
136
+ 76,
137
+ 77,
138
+ 78,
139
+ 79,
140
+ 80,
141
+ 81,
142
+ 82,
143
+ 83,
144
+ 84,
145
+ 85,
146
+ 86,
147
+ 87,
148
+ 88,
149
+ 89,
150
+ 90,
151
+ 91,
152
+ 92,
153
+ 93,
154
+ 94,
155
+ 95,
156
+ 96,
157
+ 97,
158
+ 98,
159
+ 99
160
+ ],
161
+ "observation_dimension": 1,
162
+ "ode": true,
163
+ "particles": 10000,
164
+ "swd_projections": 1000,
165
+ "terminal_time": 3.0
166
+ },
167
+ "execution": {
168
+ "elapsed_s": 3937.3646077919984,
169
+ "finished_at_utc": "2026-07-19T07:23:30.027035Z",
170
+ "jax_devices": [
171
+ "TFRT_CPU_0"
172
+ ],
173
+ "jax_version": "0.7.2",
174
+ "platform": {
175
+ "machine": "arm64",
176
+ "release": "25.5.0",
177
+ "system": "Darwin"
178
+ },
179
+ "python_executable_name": "python",
180
+ "python_version": "3.13.14 (main, Jun 23 2026, 15:20:43) [Clang 22.1.3 ]",
181
+ "started_at_utc": "2026-07-19T06:17:52.538734Z"
182
+ },
183
+ "label": "100/100 source-faithful selected-configuration reproduction-compatible run",
184
+ "per_id_results": [
185
+ {
186
+ "diffusion_resampling": {
187
+ "posterior_mean_residual_squared_l2": 0.06891570937888941,
188
+ "sliced_wasserstein_l1": 0.09377322994986281
189
+ },
190
+ "mc_id": 0,
191
+ "multinomial_baseline": {
192
+ "posterior_mean_residual_squared_l2": 0.1040802101148604,
193
+ "sliced_wasserstein_l1": 0.1141936577500182
194
+ }
195
+ },
196
+ {
197
+ "diffusion_resampling": {
198
+ "posterior_mean_residual_squared_l2": 0.03264922970816248,
199
+ "sliced_wasserstein_l1": 0.09548877442318275
200
+ },
201
+ "mc_id": 1,
202
+ "multinomial_baseline": {
203
+ "posterior_mean_residual_squared_l2": 0.022600303692709725,
204
+ "sliced_wasserstein_l1": 0.09276878330938158
205
+ }
206
+ },
207
+ {
208
+ "diffusion_resampling": {
209
+ "posterior_mean_residual_squared_l2": 0.012047793621225154,
210
+ "sliced_wasserstein_l1": 0.06502579965803025
211
+ },
212
+ "mc_id": 2,
213
+ "multinomial_baseline": {
214
+ "posterior_mean_residual_squared_l2": 0.005596881905338691,
215
+ "sliced_wasserstein_l1": 0.05904409471586796
216
+ }
217
+ },
218
+ {
219
+ "diffusion_resampling": {
220
+ "posterior_mean_residual_squared_l2": 0.020648448470086508,
221
+ "sliced_wasserstein_l1": 0.08870963335465994
222
+ },
223
+ "mc_id": 3,
224
+ "multinomial_baseline": {
225
+ "posterior_mean_residual_squared_l2": 0.05116297439687086,
226
+ "sliced_wasserstein_l1": 0.10006138160113144
227
+ }
228
+ },
229
+ {
230
+ "diffusion_resampling": {
231
+ "posterior_mean_residual_squared_l2": 0.014426982131915986,
232
+ "sliced_wasserstein_l1": 0.060177782135357065
233
+ },
234
+ "mc_id": 4,
235
+ "multinomial_baseline": {
236
+ "posterior_mean_residual_squared_l2": 0.01194154773307079,
237
+ "sliced_wasserstein_l1": 0.057109334743782846
238
+ }
239
+ },
240
+ {
241
+ "diffusion_resampling": {
242
+ "posterior_mean_residual_squared_l2": 0.0488239412169504,
243
+ "sliced_wasserstein_l1": 0.0831088724212703
244
+ },
245
+ "mc_id": 5,
246
+ "multinomial_baseline": {
247
+ "posterior_mean_residual_squared_l2": 0.06271602368229345,
248
+ "sliced_wasserstein_l1": 0.09303696373674894
249
+ }
250
+ },
251
+ {
252
+ "diffusion_resampling": {
253
+ "posterior_mean_residual_squared_l2": 0.06283535001772204,
254
+ "sliced_wasserstein_l1": 0.07373427590119798
255
+ },
256
+ "mc_id": 6,
257
+ "multinomial_baseline": {
258
+ "posterior_mean_residual_squared_l2": 0.01669189826874349,
259
+ "sliced_wasserstein_l1": 0.05669838936194826
260
+ }
261
+ },
262
+ {
263
+ "diffusion_resampling": {
264
+ "posterior_mean_residual_squared_l2": 0.03621921111754006,
265
+ "sliced_wasserstein_l1": 0.08021821303146537
266
+ },
267
+ "mc_id": 7,
268
+ "multinomial_baseline": {
269
+ "posterior_mean_residual_squared_l2": 0.020051216331967728,
270
+ "sliced_wasserstein_l1": 0.06563150098737912
271
+ }
272
+ },
273
+ {
274
+ "diffusion_resampling": {
275
+ "posterior_mean_residual_squared_l2": 0.04558563959133777,
276
+ "sliced_wasserstein_l1": 0.09810503545345538
277
+ },
278
+ "mc_id": 8,
279
+ "multinomial_baseline": {
280
+ "posterior_mean_residual_squared_l2": 0.04710291340381191,
281
+ "sliced_wasserstein_l1": 0.09261694216873077
282
+ }
283
+ },
284
+ {
285
+ "diffusion_resampling": {
286
+ "posterior_mean_residual_squared_l2": 0.018591467076089545,
287
+ "sliced_wasserstein_l1": 0.06538085226729047
288
+ },
289
+ "mc_id": 9,
290
+ "multinomial_baseline": {
291
+ "posterior_mean_residual_squared_l2": 0.008565463164904566,
292
+ "sliced_wasserstein_l1": 0.06298573487285027
293
+ }
294
+ },
295
+ {
296
+ "diffusion_resampling": {
297
+ "posterior_mean_residual_squared_l2": 0.03482571646739699,
298
+ "sliced_wasserstein_l1": 0.05679967272934064
299
+ },
300
+ "mc_id": 10,
301
+ "multinomial_baseline": {
302
+ "posterior_mean_residual_squared_l2": 0.016673352284000888,
303
+ "sliced_wasserstein_l1": 0.06251043883629538
304
+ }
305
+ },
306
+ {
307
+ "diffusion_resampling": {
308
+ "posterior_mean_residual_squared_l2": 0.02397993086589409,
309
+ "sliced_wasserstein_l1": 0.0810018748517188
310
+ },
311
+ "mc_id": 11,
312
+ "multinomial_baseline": {
313
+ "posterior_mean_residual_squared_l2": 0.04326380989962982,
314
+ "sliced_wasserstein_l1": 0.08484258349307595
315
+ }
316
+ },
317
+ {
318
+ "diffusion_resampling": {
319
+ "posterior_mean_residual_squared_l2": 0.022528846872763013,
320
+ "sliced_wasserstein_l1": 0.07539072810363967
321
+ },
322
+ "mc_id": 12,
323
+ "multinomial_baseline": {
324
+ "posterior_mean_residual_squared_l2": 0.0240350974671139,
325
+ "sliced_wasserstein_l1": 0.08655175825606867
326
+ }
327
+ },
328
+ {
329
+ "diffusion_resampling": {
330
+ "posterior_mean_residual_squared_l2": 0.0172505155954237,
331
+ "sliced_wasserstein_l1": 0.07533019877383342
332
+ },
333
+ "mc_id": 13,
334
+ "multinomial_baseline": {
335
+ "posterior_mean_residual_squared_l2": 0.013925609952305039,
336
+ "sliced_wasserstein_l1": 0.07191291804028546
337
+ }
338
+ },
339
+ {
340
+ "diffusion_resampling": {
341
+ "posterior_mean_residual_squared_l2": 0.13674925583503703,
342
+ "sliced_wasserstein_l1": 0.13425807430669245
343
+ },
344
+ "mc_id": 14,
345
+ "multinomial_baseline": {
346
+ "posterior_mean_residual_squared_l2": 0.19217005082645844,
347
+ "sliced_wasserstein_l1": 0.15165201156090122
348
+ }
349
+ },
350
+ {
351
+ "diffusion_resampling": {
352
+ "posterior_mean_residual_squared_l2": 0.0122310681273865,
353
+ "sliced_wasserstein_l1": 0.06300401680423787
354
+ },
355
+ "mc_id": 15,
356
+ "multinomial_baseline": {
357
+ "posterior_mean_residual_squared_l2": 0.00874067511443533,
358
+ "sliced_wasserstein_l1": 0.07584196783089482
359
+ }
360
+ },
361
+ {
362
+ "diffusion_resampling": {
363
+ "posterior_mean_residual_squared_l2": 0.09554554357930481,
364
+ "sliced_wasserstein_l1": 0.11836820981352218
365
+ },
366
+ "mc_id": 16,
367
+ "multinomial_baseline": {
368
+ "posterior_mean_residual_squared_l2": 0.34224144904965786,
369
+ "sliced_wasserstein_l1": 0.19381190521839362
370
+ }
371
+ },
372
+ {
373
+ "diffusion_resampling": {
374
+ "posterior_mean_residual_squared_l2": 0.03355242019153578,
375
+ "sliced_wasserstein_l1": 0.07920532715009895
376
+ },
377
+ "mc_id": 17,
378
+ "multinomial_baseline": {
379
+ "posterior_mean_residual_squared_l2": 0.03694658745061967,
380
+ "sliced_wasserstein_l1": 0.0815834985050807
381
+ }
382
+ },
383
+ {
384
+ "diffusion_resampling": {
385
+ "posterior_mean_residual_squared_l2": 0.04181830426004726,
386
+ "sliced_wasserstein_l1": 0.06601850317598792
387
+ },
388
+ "mc_id": 18,
389
+ "multinomial_baseline": {
390
+ "posterior_mean_residual_squared_l2": 0.01563539731793071,
391
+ "sliced_wasserstein_l1": 0.055248678588276326
392
+ }
393
+ },
394
+ {
395
+ "diffusion_resampling": {
396
+ "posterior_mean_residual_squared_l2": 0.015516074232818578,
397
+ "sliced_wasserstein_l1": 0.0638787566633529
398
+ },
399
+ "mc_id": 19,
400
+ "multinomial_baseline": {
401
+ "posterior_mean_residual_squared_l2": 0.016798210362882815,
402
+ "sliced_wasserstein_l1": 0.0709559686498657
403
+ }
404
+ },
405
+ {
406
+ "diffusion_resampling": {
407
+ "posterior_mean_residual_squared_l2": 0.03622937651844619,
408
+ "sliced_wasserstein_l1": 0.0839791851744826
409
+ },
410
+ "mc_id": 20,
411
+ "multinomial_baseline": {
412
+ "posterior_mean_residual_squared_l2": 0.04667016577797182,
413
+ "sliced_wasserstein_l1": 0.08796245805616663
414
+ }
415
+ },
416
+ {
417
+ "diffusion_resampling": {
418
+ "posterior_mean_residual_squared_l2": 0.010971503994763232,
419
+ "sliced_wasserstein_l1": 0.07441394700956039
420
+ },
421
+ "mc_id": 21,
422
+ "multinomial_baseline": {
423
+ "posterior_mean_residual_squared_l2": 0.013080369670669775,
424
+ "sliced_wasserstein_l1": 0.07989432486039345
425
+ }
426
+ },
427
+ {
428
+ "diffusion_resampling": {
429
+ "posterior_mean_residual_squared_l2": 0.016168654318198274,
430
+ "sliced_wasserstein_l1": 0.06457886736421524
431
+ },
432
+ "mc_id": 22,
433
+ "multinomial_baseline": {
434
+ "posterior_mean_residual_squared_l2": 0.0049919676390353315,
435
+ "sliced_wasserstein_l1": 0.0848852300161524
436
+ }
437
+ },
438
+ {
439
+ "diffusion_resampling": {
440
+ "posterior_mean_residual_squared_l2": 0.036319512769618714,
441
+ "sliced_wasserstein_l1": 0.10049743455881818
442
+ },
443
+ "mc_id": 23,
444
+ "multinomial_baseline": {
445
+ "posterior_mean_residual_squared_l2": 0.005085532129554061,
446
+ "sliced_wasserstein_l1": 0.0719266849790782
447
+ }
448
+ },
449
+ {
450
+ "diffusion_resampling": {
451
+ "posterior_mean_residual_squared_l2": 0.05515254441039166,
452
+ "sliced_wasserstein_l1": 0.12041122587202396
453
+ },
454
+ "mc_id": 24,
455
+ "multinomial_baseline": {
456
+ "posterior_mean_residual_squared_l2": 0.040459661992828404,
457
+ "sliced_wasserstein_l1": 0.11297896203095471
458
+ }
459
+ },
460
+ {
461
+ "diffusion_resampling": {
462
+ "posterior_mean_residual_squared_l2": 0.048811202900908526,
463
+ "sliced_wasserstein_l1": 0.10304247915205773
464
+ },
465
+ "mc_id": 25,
466
+ "multinomial_baseline": {
467
+ "posterior_mean_residual_squared_l2": 0.06572107317392184,
468
+ "sliced_wasserstein_l1": 0.11913945526796399
469
+ }
470
+ },
471
+ {
472
+ "diffusion_resampling": {
473
+ "posterior_mean_residual_squared_l2": 0.03188240598092994,
474
+ "sliced_wasserstein_l1": 0.08014028312665263
475
+ },
476
+ "mc_id": 26,
477
+ "multinomial_baseline": {
478
+ "posterior_mean_residual_squared_l2": 0.039137608166440845,
479
+ "sliced_wasserstein_l1": 0.09522486774760414
480
+ }
481
+ },
482
+ {
483
+ "diffusion_resampling": {
484
+ "posterior_mean_residual_squared_l2": 0.10602543810555018,
485
+ "sliced_wasserstein_l1": 0.11829297198983159
486
+ },
487
+ "mc_id": 27,
488
+ "multinomial_baseline": {
489
+ "posterior_mean_residual_squared_l2": 0.03694724866204143,
490
+ "sliced_wasserstein_l1": 0.07651384388479254
491
+ }
492
+ },
493
+ {
494
+ "diffusion_resampling": {
495
+ "posterior_mean_residual_squared_l2": 0.04519603577011913,
496
+ "sliced_wasserstein_l1": 0.07916126367801211
497
+ },
498
+ "mc_id": 28,
499
+ "multinomial_baseline": {
500
+ "posterior_mean_residual_squared_l2": 0.021939693207344717,
501
+ "sliced_wasserstein_l1": 0.07377469620929651
502
+ }
503
+ },
504
+ {
505
+ "diffusion_resampling": {
506
+ "posterior_mean_residual_squared_l2": 0.021689055008637093,
507
+ "sliced_wasserstein_l1": 0.08072295588996176
508
+ },
509
+ "mc_id": 29,
510
+ "multinomial_baseline": {
511
+ "posterior_mean_residual_squared_l2": 0.056758870853395885,
512
+ "sliced_wasserstein_l1": 0.07442207840830083
513
+ }
514
+ },
515
+ {
516
+ "diffusion_resampling": {
517
+ "posterior_mean_residual_squared_l2": 0.009695508118593954,
518
+ "sliced_wasserstein_l1": 0.06051299052441679
519
+ },
520
+ "mc_id": 30,
521
+ "multinomial_baseline": {
522
+ "posterior_mean_residual_squared_l2": 0.006350280596347399,
523
+ "sliced_wasserstein_l1": 0.05894358104667147
524
+ }
525
+ },
526
+ {
527
+ "diffusion_resampling": {
528
+ "posterior_mean_residual_squared_l2": 0.009178384000445463,
529
+ "sliced_wasserstein_l1": 0.051127440029858966
530
+ },
531
+ "mc_id": 31,
532
+ "multinomial_baseline": {
533
+ "posterior_mean_residual_squared_l2": 0.019952473956209704,
534
+ "sliced_wasserstein_l1": 0.06425940099215953
535
+ }
536
+ },
537
+ {
538
+ "diffusion_resampling": {
539
+ "posterior_mean_residual_squared_l2": 0.003946685433082616,
540
+ "sliced_wasserstein_l1": 0.055551979709069686
541
+ },
542
+ "mc_id": 32,
543
+ "multinomial_baseline": {
544
+ "posterior_mean_residual_squared_l2": 0.00328472168500068,
545
+ "sliced_wasserstein_l1": 0.04778862503625366
546
+ }
547
+ },
548
+ {
549
+ "diffusion_resampling": {
550
+ "posterior_mean_residual_squared_l2": 0.027655494001120773,
551
+ "sliced_wasserstein_l1": 0.07749391586406214
552
+ },
553
+ "mc_id": 33,
554
+ "multinomial_baseline": {
555
+ "posterior_mean_residual_squared_l2": 0.03421265167904036,
556
+ "sliced_wasserstein_l1": 0.08697936042638041
557
+ }
558
+ },
559
+ {
560
+ "diffusion_resampling": {
561
+ "posterior_mean_residual_squared_l2": 0.028753387199250597,
562
+ "sliced_wasserstein_l1": 0.07692327137757905
563
+ },
564
+ "mc_id": 34,
565
+ "multinomial_baseline": {
566
+ "posterior_mean_residual_squared_l2": 0.01993589734175196,
567
+ "sliced_wasserstein_l1": 0.07640535980157984
568
+ }
569
+ },
570
+ {
571
+ "diffusion_resampling": {
572
+ "posterior_mean_residual_squared_l2": 0.13645953398436217,
573
+ "sliced_wasserstein_l1": 0.1364480284383062
574
+ },
575
+ "mc_id": 35,
576
+ "multinomial_baseline": {
577
+ "posterior_mean_residual_squared_l2": 0.029749125474921145,
578
+ "sliced_wasserstein_l1": 0.10271344324946956
579
+ }
580
+ },
581
+ {
582
+ "diffusion_resampling": {
583
+ "posterior_mean_residual_squared_l2": 0.06378146133236005,
584
+ "sliced_wasserstein_l1": 0.09235928033253747
585
+ },
586
+ "mc_id": 36,
587
+ "multinomial_baseline": {
588
+ "posterior_mean_residual_squared_l2": 0.04812120865442554,
589
+ "sliced_wasserstein_l1": 0.086689384262429
590
+ }
591
+ },
592
+ {
593
+ "diffusion_resampling": {
594
+ "posterior_mean_residual_squared_l2": 0.07318255498406302,
595
+ "sliced_wasserstein_l1": 0.10767117494804813
596
+ },
597
+ "mc_id": 37,
598
+ "multinomial_baseline": {
599
+ "posterior_mean_residual_squared_l2": 0.017561540182111854,
600
+ "sliced_wasserstein_l1": 0.06834652722068182
601
+ }
602
+ },
603
+ {
604
+ "diffusion_resampling": {
605
+ "posterior_mean_residual_squared_l2": 0.008273956530541294,
606
+ "sliced_wasserstein_l1": 0.05691306423402274
607
+ },
608
+ "mc_id": 38,
609
+ "multinomial_baseline": {
610
+ "posterior_mean_residual_squared_l2": 0.009875563619541753,
611
+ "sliced_wasserstein_l1": 0.05615763307782245
612
+ }
613
+ },
614
+ {
615
+ "diffusion_resampling": {
616
+ "posterior_mean_residual_squared_l2": 0.0165144041097703,
617
+ "sliced_wasserstein_l1": 0.0605974542095017
618
+ },
619
+ "mc_id": 39,
620
+ "multinomial_baseline": {
621
+ "posterior_mean_residual_squared_l2": 0.0138462435193336,
622
+ "sliced_wasserstein_l1": 0.06122826874233936
623
+ }
624
+ },
625
+ {
626
+ "diffusion_resampling": {
627
+ "posterior_mean_residual_squared_l2": 0.016170796701220378,
628
+ "sliced_wasserstein_l1": 0.08013952435496892
629
+ },
630
+ "mc_id": 40,
631
+ "multinomial_baseline": {
632
+ "posterior_mean_residual_squared_l2": 0.019334214268880462,
633
+ "sliced_wasserstein_l1": 0.09032684701612713
634
+ }
635
+ },
636
+ {
637
+ "diffusion_resampling": {
638
+ "posterior_mean_residual_squared_l2": 0.04916890253907513,
639
+ "sliced_wasserstein_l1": 0.08086656468931712
640
+ },
641
+ "mc_id": 41,
642
+ "multinomial_baseline": {
643
+ "posterior_mean_residual_squared_l2": 0.0405525693366199,
644
+ "sliced_wasserstein_l1": 0.07788709644111658
645
+ }
646
+ },
647
+ {
648
+ "diffusion_resampling": {
649
+ "posterior_mean_residual_squared_l2": 0.007256297472821466,
650
+ "sliced_wasserstein_l1": 0.07348561540590808
651
+ },
652
+ "mc_id": 42,
653
+ "multinomial_baseline": {
654
+ "posterior_mean_residual_squared_l2": 0.008433431257133975,
655
+ "sliced_wasserstein_l1": 0.07724571075033773
656
+ }
657
+ },
658
+ {
659
+ "diffusion_resampling": {
660
+ "posterior_mean_residual_squared_l2": 0.024409065411978917,
661
+ "sliced_wasserstein_l1": 0.06370226151295652
662
+ },
663
+ "mc_id": 43,
664
+ "multinomial_baseline": {
665
+ "posterior_mean_residual_squared_l2": 0.019277530576053897,
666
+ "sliced_wasserstein_l1": 0.06291781723500348
667
+ }
668
+ },
669
+ {
670
+ "diffusion_resampling": {
671
+ "posterior_mean_residual_squared_l2": 0.040039119483248634,
672
+ "sliced_wasserstein_l1": 0.08278005955635163
673
+ },
674
+ "mc_id": 44,
675
+ "multinomial_baseline": {
676
+ "posterior_mean_residual_squared_l2": 0.04469642354816345,
677
+ "sliced_wasserstein_l1": 0.09049253158975623
678
+ }
679
+ },
680
+ {
681
+ "diffusion_resampling": {
682
+ "posterior_mean_residual_squared_l2": 0.03512961263399872,
683
+ "sliced_wasserstein_l1": 0.059611055254663314
684
+ },
685
+ "mc_id": 45,
686
+ "multinomial_baseline": {
687
+ "posterior_mean_residual_squared_l2": 0.046490006266494466,
688
+ "sliced_wasserstein_l1": 0.06558819056663613
689
+ }
690
+ },
691
+ {
692
+ "diffusion_resampling": {
693
+ "posterior_mean_residual_squared_l2": 0.11369175970179392,
694
+ "sliced_wasserstein_l1": 0.1278557554699578
695
+ },
696
+ "mc_id": 46,
697
+ "multinomial_baseline": {
698
+ "posterior_mean_residual_squared_l2": 0.07983129343943343,
699
+ "sliced_wasserstein_l1": 0.11086546514285925
700
+ }
701
+ },
702
+ {
703
+ "diffusion_resampling": {
704
+ "posterior_mean_residual_squared_l2": 0.027697428658468883,
705
+ "sliced_wasserstein_l1": 0.07489820253231728
706
+ },
707
+ "mc_id": 47,
708
+ "multinomial_baseline": {
709
+ "posterior_mean_residual_squared_l2": 0.04633156776296311,
710
+ "sliced_wasserstein_l1": 0.09180141884905282
711
+ }
712
+ },
713
+ {
714
+ "diffusion_resampling": {
715
+ "posterior_mean_residual_squared_l2": 0.020260159096109863,
716
+ "sliced_wasserstein_l1": 0.06779096363012993
717
+ },
718
+ "mc_id": 48,
719
+ "multinomial_baseline": {
720
+ "posterior_mean_residual_squared_l2": 0.024386112175089368,
721
+ "sliced_wasserstein_l1": 0.07036352248847726
722
+ }
723
+ },
724
+ {
725
+ "diffusion_resampling": {
726
+ "posterior_mean_residual_squared_l2": 0.03944531135601915,
727
+ "sliced_wasserstein_l1": 0.07618845992022413
728
+ },
729
+ "mc_id": 49,
730
+ "multinomial_baseline": {
731
+ "posterior_mean_residual_squared_l2": 0.0452475838479419,
732
+ "sliced_wasserstein_l1": 0.08156071506723642
733
+ }
734
+ },
735
+ {
736
+ "diffusion_resampling": {
737
+ "posterior_mean_residual_squared_l2": 0.0360583618084263,
738
+ "sliced_wasserstein_l1": 0.07701444707699175
739
+ },
740
+ "mc_id": 50,
741
+ "multinomial_baseline": {
742
+ "posterior_mean_residual_squared_l2": 0.031100423984830886,
743
+ "sliced_wasserstein_l1": 0.08079768431036741
744
+ }
745
+ },
746
+ {
747
+ "diffusion_resampling": {
748
+ "posterior_mean_residual_squared_l2": 0.05991537505573065,
749
+ "sliced_wasserstein_l1": 0.08239907581648087
750
+ },
751
+ "mc_id": 51,
752
+ "multinomial_baseline": {
753
+ "posterior_mean_residual_squared_l2": 0.04150528147417784,
754
+ "sliced_wasserstein_l1": 0.0803286513051208
755
+ }
756
+ },
757
+ {
758
+ "diffusion_resampling": {
759
+ "posterior_mean_residual_squared_l2": 0.05447490788475813,
760
+ "sliced_wasserstein_l1": 0.11760021948069026
761
+ },
762
+ "mc_id": 52,
763
+ "multinomial_baseline": {
764
+ "posterior_mean_residual_squared_l2": 0.06253264799261019,
765
+ "sliced_wasserstein_l1": 0.1295152516090122
766
+ }
767
+ },
768
+ {
769
+ "diffusion_resampling": {
770
+ "posterior_mean_residual_squared_l2": 0.07492358212512154,
771
+ "sliced_wasserstein_l1": 0.12687321197892554
772
+ },
773
+ "mc_id": 53,
774
+ "multinomial_baseline": {
775
+ "posterior_mean_residual_squared_l2": 0.08969898665002002,
776
+ "sliced_wasserstein_l1": 0.14107296116830592
777
+ }
778
+ },
779
+ {
780
+ "diffusion_resampling": {
781
+ "posterior_mean_residual_squared_l2": 0.0707384572987245,
782
+ "sliced_wasserstein_l1": 0.09114823366200502
783
+ },
784
+ "mc_id": 54,
785
+ "multinomial_baseline": {
786
+ "posterior_mean_residual_squared_l2": 0.033805564988371554,
787
+ "sliced_wasserstein_l1": 0.07676588265000124
788
+ }
789
+ },
790
+ {
791
+ "diffusion_resampling": {
792
+ "posterior_mean_residual_squared_l2": 0.04127102011331055,
793
+ "sliced_wasserstein_l1": 0.06943578970690761
794
+ },
795
+ "mc_id": 55,
796
+ "multinomial_baseline": {
797
+ "posterior_mean_residual_squared_l2": 0.07783626967561276,
798
+ "sliced_wasserstein_l1": 0.09177087269424802
799
+ }
800
+ },
801
+ {
802
+ "diffusion_resampling": {
803
+ "posterior_mean_residual_squared_l2": 0.04627221017489215,
804
+ "sliced_wasserstein_l1": 0.09637893817927559
805
+ },
806
+ "mc_id": 56,
807
+ "multinomial_baseline": {
808
+ "posterior_mean_residual_squared_l2": 0.05869791245754579,
809
+ "sliced_wasserstein_l1": 0.10857449404500859
810
+ }
811
+ },
812
+ {
813
+ "diffusion_resampling": {
814
+ "posterior_mean_residual_squared_l2": 0.011626618670458364,
815
+ "sliced_wasserstein_l1": 0.06345020088313694
816
+ },
817
+ "mc_id": 57,
818
+ "multinomial_baseline": {
819
+ "posterior_mean_residual_squared_l2": 0.011099062023747894,
820
+ "sliced_wasserstein_l1": 0.0691410606798498
821
+ }
822
+ },
823
+ {
824
+ "diffusion_resampling": {
825
+ "posterior_mean_residual_squared_l2": 0.007424533181744994,
826
+ "sliced_wasserstein_l1": 0.0803660057570237
827
+ },
828
+ "mc_id": 58,
829
+ "multinomial_baseline": {
830
+ "posterior_mean_residual_squared_l2": 0.007724146789577309,
831
+ "sliced_wasserstein_l1": 0.07432703167673048
832
+ }
833
+ },
834
+ {
835
+ "diffusion_resampling": {
836
+ "posterior_mean_residual_squared_l2": 0.008910396477103507,
837
+ "sliced_wasserstein_l1": 0.08094452577129212
838
+ },
839
+ "mc_id": 59,
840
+ "multinomial_baseline": {
841
+ "posterior_mean_residual_squared_l2": 0.016106152644097267,
842
+ "sliced_wasserstein_l1": 0.062215840517573784
843
+ }
844
+ },
845
+ {
846
+ "diffusion_resampling": {
847
+ "posterior_mean_residual_squared_l2": 0.00969159835821405,
848
+ "sliced_wasserstein_l1": 0.06230479728127258
849
+ },
850
+ "mc_id": 60,
851
+ "multinomial_baseline": {
852
+ "posterior_mean_residual_squared_l2": 0.005869116657438355,
853
+ "sliced_wasserstein_l1": 0.058596985344374464
854
+ }
855
+ },
856
+ {
857
+ "diffusion_resampling": {
858
+ "posterior_mean_residual_squared_l2": 0.019176009155429566,
859
+ "sliced_wasserstein_l1": 0.06866662570424405
860
+ },
861
+ "mc_id": 61,
862
+ "multinomial_baseline": {
863
+ "posterior_mean_residual_squared_l2": 0.005135600131749514,
864
+ "sliced_wasserstein_l1": 0.05307635624837906
865
+ }
866
+ },
867
+ {
868
+ "diffusion_resampling": {
869
+ "posterior_mean_residual_squared_l2": 0.032940480611043585,
870
+ "sliced_wasserstein_l1": 0.08115299207424688
871
+ },
872
+ "mc_id": 62,
873
+ "multinomial_baseline": {
874
+ "posterior_mean_residual_squared_l2": 0.03482372699497808,
875
+ "sliced_wasserstein_l1": 0.09140849279706548
876
+ }
877
+ },
878
+ {
879
+ "diffusion_resampling": {
880
+ "posterior_mean_residual_squared_l2": 0.03197749116872859,
881
+ "sliced_wasserstein_l1": 0.06809506594495815
882
+ },
883
+ "mc_id": 63,
884
+ "multinomial_baseline": {
885
+ "posterior_mean_residual_squared_l2": 0.03236664579919469,
886
+ "sliced_wasserstein_l1": 0.07776943302317336
887
+ }
888
+ },
889
+ {
890
+ "diffusion_resampling": {
891
+ "posterior_mean_residual_squared_l2": 0.058113540386713576,
892
+ "sliced_wasserstein_l1": 0.10809009416849835
893
+ },
894
+ "mc_id": 64,
895
+ "multinomial_baseline": {
896
+ "posterior_mean_residual_squared_l2": 0.017437586287233672,
897
+ "sliced_wasserstein_l1": 0.08371655260944777
898
+ }
899
+ },
900
+ {
901
+ "diffusion_resampling": {
902
+ "posterior_mean_residual_squared_l2": 0.03705517679568902,
903
+ "sliced_wasserstein_l1": 0.0666989847928869
904
+ },
905
+ "mc_id": 65,
906
+ "multinomial_baseline": {
907
+ "posterior_mean_residual_squared_l2": 0.04692990151171835,
908
+ "sliced_wasserstein_l1": 0.07384877337985353
909
+ }
910
+ },
911
+ {
912
+ "diffusion_resampling": {
913
+ "posterior_mean_residual_squared_l2": 0.008689254403217456,
914
+ "sliced_wasserstein_l1": 0.08486668168434311
915
+ },
916
+ "mc_id": 66,
917
+ "multinomial_baseline": {
918
+ "posterior_mean_residual_squared_l2": 0.016076782830448687,
919
+ "sliced_wasserstein_l1": 0.09768473404989733
920
+ }
921
+ },
922
+ {
923
+ "diffusion_resampling": {
924
+ "posterior_mean_residual_squared_l2": 0.07126645197188654,
925
+ "sliced_wasserstein_l1": 0.11040639255924382
926
+ },
927
+ "mc_id": 67,
928
+ "multinomial_baseline": {
929
+ "posterior_mean_residual_squared_l2": 0.06110364304780909,
930
+ "sliced_wasserstein_l1": 0.11514817619088384
931
+ }
932
+ },
933
+ {
934
+ "diffusion_resampling": {
935
+ "posterior_mean_residual_squared_l2": 0.03624296774386637,
936
+ "sliced_wasserstein_l1": 0.08161645072870102
937
+ },
938
+ "mc_id": 68,
939
+ "multinomial_baseline": {
940
+ "posterior_mean_residual_squared_l2": 0.06364797838576038,
941
+ "sliced_wasserstein_l1": 0.10048007265920597
942
+ }
943
+ },
944
+ {
945
+ "diffusion_resampling": {
946
+ "posterior_mean_residual_squared_l2": 0.08115269530522308,
947
+ "sliced_wasserstein_l1": 0.1078712021514446
948
+ },
949
+ "mc_id": 69,
950
+ "multinomial_baseline": {
951
+ "posterior_mean_residual_squared_l2": 0.10383150623922409,
952
+ "sliced_wasserstein_l1": 0.12228691157708348
953
+ }
954
+ },
955
+ {
956
+ "diffusion_resampling": {
957
+ "posterior_mean_residual_squared_l2": 0.012047078097153321,
958
+ "sliced_wasserstein_l1": 0.05282802747712897
959
+ },
960
+ "mc_id": 70,
961
+ "multinomial_baseline": {
962
+ "posterior_mean_residual_squared_l2": 0.004723957569919281,
963
+ "sliced_wasserstein_l1": 0.05245945999016524
964
+ }
965
+ },
966
+ {
967
+ "diffusion_resampling": {
968
+ "posterior_mean_residual_squared_l2": 0.05991785078648852,
969
+ "sliced_wasserstein_l1": 0.11491187262007564
970
+ },
971
+ "mc_id": 71,
972
+ "multinomial_baseline": {
973
+ "posterior_mean_residual_squared_l2": 0.056891032796029604,
974
+ "sliced_wasserstein_l1": 0.10992493726748974
975
+ }
976
+ },
977
+ {
978
+ "diffusion_resampling": {
979
+ "posterior_mean_residual_squared_l2": 0.01971028811507647,
980
+ "sliced_wasserstein_l1": 0.06904640752859757
981
+ },
982
+ "mc_id": 72,
983
+ "multinomial_baseline": {
984
+ "posterior_mean_residual_squared_l2": 0.02313268783627494,
985
+ "sliced_wasserstein_l1": 0.07200333335528362
986
+ }
987
+ },
988
+ {
989
+ "diffusion_resampling": {
990
+ "posterior_mean_residual_squared_l2": 0.026023725980347207,
991
+ "sliced_wasserstein_l1": 0.07381699029228993
992
+ },
993
+ "mc_id": 73,
994
+ "multinomial_baseline": {
995
+ "posterior_mean_residual_squared_l2": 0.04375853876538683,
996
+ "sliced_wasserstein_l1": 0.09402276074664541
997
+ }
998
+ },
999
+ {
1000
+ "diffusion_resampling": {
1001
+ "posterior_mean_residual_squared_l2": 0.03041544705388763,
1002
+ "sliced_wasserstein_l1": 0.071578473069758
1003
+ },
1004
+ "mc_id": 74,
1005
+ "multinomial_baseline": {
1006
+ "posterior_mean_residual_squared_l2": 0.010722311770555245,
1007
+ "sliced_wasserstein_l1": 0.05720229914771131
1008
+ }
1009
+ },
1010
+ {
1011
+ "diffusion_resampling": {
1012
+ "posterior_mean_residual_squared_l2": 0.021368221601264583,
1013
+ "sliced_wasserstein_l1": 0.060236511044311235
1014
+ },
1015
+ "mc_id": 75,
1016
+ "multinomial_baseline": {
1017
+ "posterior_mean_residual_squared_l2": 0.017955033908617683,
1018
+ "sliced_wasserstein_l1": 0.06404413360656891
1019
+ }
1020
+ },
1021
+ {
1022
+ "diffusion_resampling": {
1023
+ "posterior_mean_residual_squared_l2": 0.006374454683134088,
1024
+ "sliced_wasserstein_l1": 0.05195730426191277
1025
+ },
1026
+ "mc_id": 76,
1027
+ "multinomial_baseline": {
1028
+ "posterior_mean_residual_squared_l2": 0.004612117467660425,
1029
+ "sliced_wasserstein_l1": 0.05257080446901189
1030
+ }
1031
+ },
1032
+ {
1033
+ "diffusion_resampling": {
1034
+ "posterior_mean_residual_squared_l2": 0.04862932964889803,
1035
+ "sliced_wasserstein_l1": 0.08538747543050669
1036
+ },
1037
+ "mc_id": 77,
1038
+ "multinomial_baseline": {
1039
+ "posterior_mean_residual_squared_l2": 0.03398615226809264,
1040
+ "sliced_wasserstein_l1": 0.07894425544411471
1041
+ }
1042
+ },
1043
+ {
1044
+ "diffusion_resampling": {
1045
+ "posterior_mean_residual_squared_l2": 0.01833601858478738,
1046
+ "sliced_wasserstein_l1": 0.05853182149447343
1047
+ },
1048
+ "mc_id": 78,
1049
+ "multinomial_baseline": {
1050
+ "posterior_mean_residual_squared_l2": 0.011370484772635723,
1051
+ "sliced_wasserstein_l1": 0.05796323886743226
1052
+ }
1053
+ },
1054
+ {
1055
+ "diffusion_resampling": {
1056
+ "posterior_mean_residual_squared_l2": 0.014526385870776577,
1057
+ "sliced_wasserstein_l1": 0.06762679215307542
1058
+ },
1059
+ "mc_id": 79,
1060
+ "multinomial_baseline": {
1061
+ "posterior_mean_residual_squared_l2": 0.014778310033297956,
1062
+ "sliced_wasserstein_l1": 0.061937744770012515
1063
+ }
1064
+ },
1065
+ {
1066
+ "diffusion_resampling": {
1067
+ "posterior_mean_residual_squared_l2": 0.05530392966862325,
1068
+ "sliced_wasserstein_l1": 0.09552879611228021
1069
+ },
1070
+ "mc_id": 80,
1071
+ "multinomial_baseline": {
1072
+ "posterior_mean_residual_squared_l2": 0.014674989269232046,
1073
+ "sliced_wasserstein_l1": 0.07155034906885474
1074
+ }
1075
+ },
1076
+ {
1077
+ "diffusion_resampling": {
1078
+ "posterior_mean_residual_squared_l2": 0.01602442842946189,
1079
+ "sliced_wasserstein_l1": 0.04950326153086329
1080
+ },
1081
+ "mc_id": 81,
1082
+ "multinomial_baseline": {
1083
+ "posterior_mean_residual_squared_l2": 0.005394143010299702,
1084
+ "sliced_wasserstein_l1": 0.04948276006101239
1085
+ }
1086
+ },
1087
+ {
1088
+ "diffusion_resampling": {
1089
+ "posterior_mean_residual_squared_l2": 0.020363014436935393,
1090
+ "sliced_wasserstein_l1": 0.0758942265053605
1091
+ },
1092
+ "mc_id": 82,
1093
+ "multinomial_baseline": {
1094
+ "posterior_mean_residual_squared_l2": 0.024251092777101812,
1095
+ "sliced_wasserstein_l1": 0.07456628404458072
1096
+ }
1097
+ },
1098
+ {
1099
+ "diffusion_resampling": {
1100
+ "posterior_mean_residual_squared_l2": 0.018812894105280482,
1101
+ "sliced_wasserstein_l1": 0.07049352945415321
1102
+ },
1103
+ "mc_id": 83,
1104
+ "multinomial_baseline": {
1105
+ "posterior_mean_residual_squared_l2": 0.01686249745404021,
1106
+ "sliced_wasserstein_l1": 0.07394344697611276
1107
+ }
1108
+ },
1109
+ {
1110
+ "diffusion_resampling": {
1111
+ "posterior_mean_residual_squared_l2": 0.0977775590009634,
1112
+ "sliced_wasserstein_l1": 0.1219960333594908
1113
+ },
1114
+ "mc_id": 84,
1115
+ "multinomial_baseline": {
1116
+ "posterior_mean_residual_squared_l2": 0.1613756707509844,
1117
+ "sliced_wasserstein_l1": 0.14869578800183555
1118
+ }
1119
+ },
1120
+ {
1121
+ "diffusion_resampling": {
1122
+ "posterior_mean_residual_squared_l2": 0.010649266940816237,
1123
+ "sliced_wasserstein_l1": 0.055396204483944736
1124
+ },
1125
+ "mc_id": 85,
1126
+ "multinomial_baseline": {
1127
+ "posterior_mean_residual_squared_l2": 0.015503516562891954,
1128
+ "sliced_wasserstein_l1": 0.06540279556958378
1129
+ }
1130
+ },
1131
+ {
1132
+ "diffusion_resampling": {
1133
+ "posterior_mean_residual_squared_l2": 0.08835662877012126,
1134
+ "sliced_wasserstein_l1": 0.12000226148366587
1135
+ },
1136
+ "mc_id": 86,
1137
+ "multinomial_baseline": {
1138
+ "posterior_mean_residual_squared_l2": 0.09066643615092282,
1139
+ "sliced_wasserstein_l1": 0.12378738113761353
1140
+ }
1141
+ },
1142
+ {
1143
+ "diffusion_resampling": {
1144
+ "posterior_mean_residual_squared_l2": 0.006280290751351108,
1145
+ "sliced_wasserstein_l1": 0.049275986886894586
1146
+ },
1147
+ "mc_id": 87,
1148
+ "multinomial_baseline": {
1149
+ "posterior_mean_residual_squared_l2": 0.0075425721554638805,
1150
+ "sliced_wasserstein_l1": 0.051205684022493016
1151
+ }
1152
+ },
1153
+ {
1154
+ "diffusion_resampling": {
1155
+ "posterior_mean_residual_squared_l2": 0.08676744779219941,
1156
+ "sliced_wasserstein_l1": 0.10086046158089164
1157
+ },
1158
+ "mc_id": 88,
1159
+ "multinomial_baseline": {
1160
+ "posterior_mean_residual_squared_l2": 0.08672420842532068,
1161
+ "sliced_wasserstein_l1": 0.10362834973472226
1162
+ }
1163
+ },
1164
+ {
1165
+ "diffusion_resampling": {
1166
+ "posterior_mean_residual_squared_l2": 0.050064377262750294,
1167
+ "sliced_wasserstein_l1": 0.06726747977149947
1168
+ },
1169
+ "mc_id": 89,
1170
+ "multinomial_baseline": {
1171
+ "posterior_mean_residual_squared_l2": 0.025722523807794665,
1172
+ "sliced_wasserstein_l1": 0.059359619647393745
1173
+ }
1174
+ },
1175
+ {
1176
+ "diffusion_resampling": {
1177
+ "posterior_mean_residual_squared_l2": 0.022933841608613423,
1178
+ "sliced_wasserstein_l1": 0.07734549062706542
1179
+ },
1180
+ "mc_id": 90,
1181
+ "multinomial_baseline": {
1182
+ "posterior_mean_residual_squared_l2": 0.027591621165413194,
1183
+ "sliced_wasserstein_l1": 0.0752111822642114
1184
+ }
1185
+ },
1186
+ {
1187
+ "diffusion_resampling": {
1188
+ "posterior_mean_residual_squared_l2": 0.013372240585768063,
1189
+ "sliced_wasserstein_l1": 0.05957422928911832
1190
+ },
1191
+ "mc_id": 91,
1192
+ "multinomial_baseline": {
1193
+ "posterior_mean_residual_squared_l2": 0.014893498026516227,
1194
+ "sliced_wasserstein_l1": 0.06704279968011366
1195
+ }
1196
+ },
1197
+ {
1198
+ "diffusion_resampling": {
1199
+ "posterior_mean_residual_squared_l2": 0.013702302856228709,
1200
+ "sliced_wasserstein_l1": 0.06260278890938169
1201
+ },
1202
+ "mc_id": 92,
1203
+ "multinomial_baseline": {
1204
+ "posterior_mean_residual_squared_l2": 0.04625965636759917,
1205
+ "sliced_wasserstein_l1": 0.09541376580991753
1206
+ }
1207
+ },
1208
+ {
1209
+ "diffusion_resampling": {
1210
+ "posterior_mean_residual_squared_l2": 0.011406129241299162,
1211
+ "sliced_wasserstein_l1": 0.06773922158955231
1212
+ },
1213
+ "mc_id": 93,
1214
+ "multinomial_baseline": {
1215
+ "posterior_mean_residual_squared_l2": 0.009615428618909539,
1216
+ "sliced_wasserstein_l1": 0.058359290651428225
1217
+ }
1218
+ },
1219
+ {
1220
+ "diffusion_resampling": {
1221
+ "posterior_mean_residual_squared_l2": 0.025135606985714654,
1222
+ "sliced_wasserstein_l1": 0.07027188348914146
1223
+ },
1224
+ "mc_id": 94,
1225
+ "multinomial_baseline": {
1226
+ "posterior_mean_residual_squared_l2": 0.04735402475865002,
1227
+ "sliced_wasserstein_l1": 0.08490848851766643
1228
+ }
1229
+ },
1230
+ {
1231
+ "diffusion_resampling": {
1232
+ "posterior_mean_residual_squared_l2": 0.011799847063263463,
1233
+ "sliced_wasserstein_l1": 0.06747323266203388
1234
+ },
1235
+ "mc_id": 95,
1236
+ "multinomial_baseline": {
1237
+ "posterior_mean_residual_squared_l2": 0.024608777522026684,
1238
+ "sliced_wasserstein_l1": 0.08356864837774786
1239
+ }
1240
+ },
1241
+ {
1242
+ "diffusion_resampling": {
1243
+ "posterior_mean_residual_squared_l2": 0.020370931124455607,
1244
+ "sliced_wasserstein_l1": 0.0796056202940244
1245
+ },
1246
+ "mc_id": 96,
1247
+ "multinomial_baseline": {
1248
+ "posterior_mean_residual_squared_l2": 0.00661146014516815,
1249
+ "sliced_wasserstein_l1": 0.06836157727901913
1250
+ }
1251
+ },
1252
+ {
1253
+ "diffusion_resampling": {
1254
+ "posterior_mean_residual_squared_l2": 0.13167805524514758,
1255
+ "sliced_wasserstein_l1": 0.13845705348834103
1256
+ },
1257
+ "mc_id": 97,
1258
+ "multinomial_baseline": {
1259
+ "posterior_mean_residual_squared_l2": 0.1127275074632845,
1260
+ "sliced_wasserstein_l1": 0.13545506362319115
1261
+ }
1262
+ },
1263
+ {
1264
+ "diffusion_resampling": {
1265
+ "posterior_mean_residual_squared_l2": 0.005631224288311868,
1266
+ "sliced_wasserstein_l1": 0.05855718767133343
1267
+ },
1268
+ "mc_id": 98,
1269
+ "multinomial_baseline": {
1270
+ "posterior_mean_residual_squared_l2": 0.005273737343580874,
1271
+ "sliced_wasserstein_l1": 0.054645480902919465
1272
+ }
1273
+ },
1274
+ {
1275
+ "diffusion_resampling": {
1276
+ "posterior_mean_residual_squared_l2": 0.023480566420237135,
1277
+ "sliced_wasserstein_l1": 0.07257987027150435
1278
+ },
1279
+ "mc_id": 99,
1280
+ "multinomial_baseline": {
1281
+ "posterior_mean_residual_squared_l2": 0.031187830388583963,
1282
+ "sliced_wasserstein_l1": 0.07481256106368367
1283
+ }
1284
+ }
1285
+ ],
1286
+ "protocol_note": "The initial Euler T=2, K=8 partial pilot is retained separately. This run changes only terminal_time, diffusion_steps, and integrator to the paper-selected configuration.",
1287
+ "reproduction_compatible": true,
1288
+ "source_commit": "767effe3e755067eb8a04422597fbf37eb8ab754",
1289
+ "source_paths": [
1290
+ "experiments/run_gms.sh",
1291
+ "experiments/gms/diffusion.py",
1292
+ "experiments/gms/baselines.py",
1293
+ "experiments/summary/print_gms_errs.py",
1294
+ "experiments/rnd_keys.npy"
1295
+ ],
1296
+ "source_provenance": {
1297
+ "author_source_sha256": {
1298
+ "diffres/integators.py": "4cbcdba683cf27532b21acfa9c3295354c52cc2f4494b4063a0459629eb72954",
1299
+ "diffres/resampling.py": "12b33fe23e1f62e18909cbcff9fa45db36ed65f6f943668728c9fe61795aa06e",
1300
+ "diffres/tools.py": "54c60e1ac4f484532f51be57a63aacbdfb7a53ef8cef621495176ea7a843a5df",
1301
+ "experiments/gms/baselines.py": "7b258df0ab4a7ca8eb5c91f6d5efbabbe359e0130db1cb9e4d3263a9241f1d5c",
1302
+ "experiments/gms/diffusion.py": "886496bab31d254ac8030286ea350e48db817bd680cccc8cdda50c58a94ba774",
1303
+ "experiments/rnd_keys.npy": "6e60685445936e0380220f34fc3fd15b5b7720070dc8c8f7f1148575de4ff5df",
1304
+ "experiments/run_gms.sh": "c01a4c88a3ef05d6a5ffb585b9d4233b1b1a9e8c1c46d40360eab44963b3eee5",
1305
+ "experiments/summary/print_gms_errs.py": "1df81cadaaf35ca5b26e8bd1ce6fc19aa4a60a2f7e161075087e518b3a0d17cd"
1306
+ },
1307
+ "expected_source_commit": "767effe3e755067eb8a04422597fbf37eb8ab754",
1308
+ "expected_source_origin": "https://github.com/zgbkdlm/diffres.git",
1309
+ "git_metadata_available": true,
1310
+ "observed_remote_matches_expected": true,
1311
+ "observed_source_commit": "767effe3e755067eb8a04422597fbf37eb8ab754",
1312
+ "staged_diff_paths": [],
1313
+ "tracked_worktree_diff_paths": []
1314
+ },
1315
+ "study_runtime_sha256": {
1316
+ "study/run_gms_partial.py": "f8bd08d01ddc2fb8837aa5bd5f1788ea7cf721deae5d08db3234d18ede25091c",
1317
+ "study/run_gms_selected_partial.py": "93da9132e53b5aefff85b9257a6b84dcf4f966bcce9e488f01ca577a7a747e0d"
1318
+ }
1319
+ }
evidence/test_verify_stored_gms_evidence.py ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Focused standard-library tests for the self-contained stored-evidence verifier."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import copy
6
+ import json
7
+ from pathlib import Path
8
+ import tempfile
9
+ import unittest
10
+
11
+ import verify_stored_gms_evidence as verifier
12
+
13
+
14
+ class StoredEvidenceVerifierTests(unittest.TestCase):
15
+ def test_canonical_record_passes(self) -> None:
16
+ report = verifier.verify_evidence(verifier.DEFAULT_INPUT)
17
+
18
+ self.assertEqual(report["record_count"], 100)
19
+ self.assertEqual(
20
+ report["diffusion_lower_is_better_wins"],
21
+ {
22
+ "sliced_wasserstein_l1": 54,
23
+ "posterior_mean_residual_squared_l2": 51,
24
+ },
25
+ )
26
+
27
+ def test_duplicate_json_key_is_rejected(self) -> None:
28
+ with tempfile.TemporaryDirectory() as directory:
29
+ path = Path(directory) / "duplicate.json"
30
+ path.write_text('{"configuration": {}, "configuration": {}}\n', encoding="utf-8")
31
+
32
+ with self.assertRaisesRegex(verifier.VerificationError, "duplicate JSON object key"):
33
+ verifier.strict_json_load(path)
34
+
35
+ def test_nonfinite_json_constant_is_rejected(self) -> None:
36
+ with tempfile.TemporaryDirectory() as directory:
37
+ path = Path(directory) / "nonfinite.json"
38
+ path.write_text('{"value": NaN}\n', encoding="utf-8")
39
+
40
+ with self.assertRaisesRegex(verifier.VerificationError, "non-standard JSON constant"):
41
+ verifier.strict_json_load(path)
42
+
43
+ def test_tampered_aggregate_is_rejected(self) -> None:
44
+ payload = json.loads(verifier.DEFAULT_INPUT.read_text(encoding="utf-8"))
45
+ tampered = copy.deepcopy(payload)
46
+ tampered["aggregate"]["diffusion_resampling"]["sliced_wasserstein_l1"]["mean"] += 0.01
47
+
48
+ with tempfile.TemporaryDirectory() as directory:
49
+ path = Path(directory) / "tampered.json"
50
+ path.write_text(json.dumps(tampered), encoding="utf-8")
51
+
52
+ with self.assertRaisesRegex(
53
+ verifier.VerificationError,
54
+ "aggregate.diffusion_resampling.sliced_wasserstein_l1.mean",
55
+ ):
56
+ verifier.verify_evidence(path)
57
+
58
+ def test_tampered_configuration_is_rejected(self) -> None:
59
+ payload = json.loads(verifier.DEFAULT_INPUT.read_text(encoding="utf-8"))
60
+ tampered = copy.deepcopy(payload)
61
+ tampered["configuration"]["particles"] = 9_999
62
+
63
+ with tempfile.TemporaryDirectory() as directory:
64
+ path = Path(directory) / "wrong-configuration.json"
65
+ path.write_text(json.dumps(tampered), encoding="utf-8")
66
+
67
+ with self.assertRaisesRegex(verifier.VerificationError, "configuration.particles"):
68
+ verifier.verify_evidence(path)
69
+
70
+ def test_out_of_order_id_is_rejected(self) -> None:
71
+ payload = json.loads(verifier.DEFAULT_INPUT.read_text(encoding="utf-8"))
72
+ tampered = copy.deepcopy(payload)
73
+ tampered["per_id_results"][0]["mc_id"] = 1
74
+
75
+ with tempfile.TemporaryDirectory() as directory:
76
+ path = Path(directory) / "wrong-id.json"
77
+ path.write_text(json.dumps(tampered), encoding="utf-8")
78
+
79
+ with self.assertRaisesRegex(verifier.VerificationError, "per_id_results\\[0\\].mc_id"):
80
+ verifier.verify_evidence(path)
81
+
82
+
83
+ if __name__ == "__main__":
84
+ unittest.main()
evidence/validate_gms_selected_result.py ADDED
@@ -0,0 +1,430 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Independently validate the recorded 100-ID selected GMS result.
2
+
3
+ This is a post-hoc integrity and aggregation check. It deliberately does not
4
+ import the numerical runner or re-execute JAX: its purpose is to make the
5
+ recorded result's input identity, raw values, and reported aggregates
6
+ independently traceable from a small standard-Python programme.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import argparse
12
+ import datetime as dt
13
+ import hashlib
14
+ import json
15
+ import math
16
+ import os
17
+ from pathlib import Path
18
+ import platform
19
+ import statistics
20
+ import subprocess
21
+ import sys
22
+ import tempfile
23
+ from typing import Any, Iterable, NoReturn
24
+
25
+ import scipy
26
+ from scipy.stats import t as student_t
27
+
28
+
29
+ REPOSITORY_ROOT = Path(__file__).resolve().parents[1]
30
+ STUDY_ROOT = REPOSITORY_ROOT / "study"
31
+ DEFAULT_INPUT = STUDY_ROOT / "gms-selected-ids-0-99.json"
32
+ DEFAULT_OUTPUT = STUDY_ROOT / "gms-selected-ids-0-99-validation.json"
33
+ SOURCE_COMMIT = "767effe3e755067eb8a04422597fbf37eb8ab754"
34
+ EXPECTED_SOURCE_ORIGIN = "https://github.com/zgbkdlm/diffres.git"
35
+ EXPECTED_CONFIGURATION = {
36
+ "diffusion_a": -1.0,
37
+ "terminal_time": 3.0,
38
+ "diffusion_steps": 128,
39
+ "integrator": "jentzen_and_kloeden",
40
+ "ode": True,
41
+ "particles": 10_000,
42
+ "components": 5,
43
+ "dimension": 8,
44
+ "observation_dimension": 1,
45
+ "swd_projections": 1_000,
46
+ }
47
+ METHODS = ("diffusion_resampling", "multinomial_baseline")
48
+ METRICS = ("sliced_wasserstein_l1", "posterior_mean_residual_squared_l2")
49
+
50
+
51
+ class ValidationError(ValueError):
52
+ """Raised when the recorded result is not internally traceable."""
53
+
54
+
55
+ def fail(message: str) -> NoReturn:
56
+ raise ValidationError(message)
57
+
58
+
59
+ def sha256_file(path: Path) -> str:
60
+ digest = hashlib.sha256()
61
+ with path.open("rb") as handle:
62
+ for block in iter(lambda: handle.read(1024 * 1024), b""):
63
+ digest.update(block)
64
+ return digest.hexdigest()
65
+
66
+
67
+ def utc_now() -> str:
68
+ return dt.datetime.now(tz=dt.timezone.utc).isoformat().replace("+00:00", "Z")
69
+
70
+
71
+ def strict_json_load(path: Path) -> dict[str, Any]:
72
+ def reject_nonfinite(token: str) -> NoReturn:
73
+ fail(f"{path.name} contains non-standard JSON constant {token!r}")
74
+
75
+ def reject_duplicate_keys(pairs: list[tuple[str, Any]]) -> dict[str, Any]:
76
+ object_value: dict[str, Any] = {}
77
+ for key, value in pairs:
78
+ if key in object_value:
79
+ fail(f"{path.name} contains duplicate JSON object key {key!r}")
80
+ object_value[key] = value
81
+ return object_value
82
+
83
+ try:
84
+ value = json.loads(
85
+ path.read_text(encoding="utf-8"),
86
+ parse_constant=reject_nonfinite,
87
+ object_pairs_hook=reject_duplicate_keys,
88
+ )
89
+ except (OSError, json.JSONDecodeError) as error:
90
+ fail(f"Cannot parse strict JSON from {path}: {error}")
91
+ if not isinstance(value, dict):
92
+ fail(f"Top-level value in {path.name} must be an object")
93
+ return value
94
+
95
+
96
+ def git_text(*arguments: str) -> str:
97
+ completed = subprocess.run(
98
+ ["git", *arguments],
99
+ cwd=REPOSITORY_ROOT,
100
+ check=False,
101
+ capture_output=True,
102
+ text=True,
103
+ )
104
+ if completed.returncode != 0:
105
+ fail(f"Git command failed: git {' '.join(arguments)}: {completed.stderr.strip()}")
106
+ return completed.stdout.strip()
107
+
108
+
109
+ def resolve_within_repository(relative_path: str) -> Path:
110
+ candidate = (REPOSITORY_ROOT / relative_path).resolve()
111
+ try:
112
+ candidate.relative_to(REPOSITORY_ROOT.resolve())
113
+ except ValueError:
114
+ fail(f"Recorded source path escapes repository root: {relative_path}")
115
+ return candidate
116
+
117
+
118
+ def require_finite_number(value: object, path: str) -> float:
119
+ if isinstance(value, bool) or not isinstance(value, (int, float)):
120
+ fail(f"{path} must be a numeric JSON value")
121
+ converted = float(value)
122
+ if not math.isfinite(converted):
123
+ fail(f"{path} must be finite")
124
+ return converted
125
+
126
+
127
+ def require_equal(actual: object, expected: object, path: str) -> None:
128
+ if actual != expected:
129
+ fail(f"{path} is {actual!r}; expected {expected!r}")
130
+
131
+
132
+ def require_close(actual: object, expected: float, path: str) -> None:
133
+ value = require_finite_number(actual, path)
134
+ if not math.isclose(value, expected, rel_tol=0.0, abs_tol=1e-12):
135
+ fail(f"{path} is {value:.17g}; recomputation is {expected:.17g}")
136
+
137
+
138
+ def summary(values: Iterable[float]) -> dict[str, float]:
139
+ values_list = list(values)
140
+ if not values_list:
141
+ fail("Cannot aggregate an empty metric series")
142
+ return {
143
+ "mean": statistics.fmean(values_list),
144
+ "population_standard_deviation": statistics.pstdev(values_list),
145
+ "minimum": min(values_list),
146
+ "maximum": max(values_list),
147
+ }
148
+
149
+
150
+ def paired_t_interval(values: Iterable[float]) -> dict[str, float | int]:
151
+ values_list = list(values)
152
+ if len(values_list) < 2:
153
+ fail("A paired t interval needs at least two observations")
154
+ mean = statistics.fmean(values_list)
155
+ sample_standard_deviation = statistics.stdev(values_list)
156
+ standard_error = sample_standard_deviation / math.sqrt(len(values_list))
157
+ critical_value = float(student_t.ppf(0.975, len(values_list) - 1))
158
+ half_width = critical_value * standard_error
159
+ return {
160
+ "sample_count": len(values_list),
161
+ "mean": mean,
162
+ "sample_standard_deviation": sample_standard_deviation,
163
+ "standard_error": standard_error,
164
+ "critical_value": critical_value,
165
+ "lower": mean - half_width,
166
+ "upper": mean + half_width,
167
+ }
168
+
169
+
170
+ def validate_source_identity(result: dict[str, Any]) -> dict[str, Any]:
171
+ provenance = result.get("source_provenance")
172
+ if not isinstance(provenance, dict):
173
+ fail("source_provenance must be an object")
174
+
175
+ require_equal(result.get("source_commit"), SOURCE_COMMIT, "source_commit")
176
+ require_equal(
177
+ provenance.get("expected_source_commit"), SOURCE_COMMIT, "source_provenance.expected_source_commit"
178
+ )
179
+ require_equal(
180
+ provenance.get("observed_source_commit"), SOURCE_COMMIT, "source_provenance.observed_source_commit"
181
+ )
182
+ require_equal(
183
+ provenance.get("expected_source_origin"),
184
+ EXPECTED_SOURCE_ORIGIN,
185
+ "source_provenance.expected_source_origin",
186
+ )
187
+ require_equal(
188
+ provenance.get("observed_remote_matches_expected"),
189
+ True,
190
+ "source_provenance.observed_remote_matches_expected",
191
+ )
192
+ require_equal(provenance.get("git_metadata_available"), True, "source_provenance.git_metadata_available")
193
+ require_equal(
194
+ provenance.get("tracked_worktree_diff_paths"), [], "source_provenance.tracked_worktree_diff_paths"
195
+ )
196
+ require_equal(provenance.get("staged_diff_paths"), [], "source_provenance.staged_diff_paths")
197
+
198
+ current_commit = git_text("rev-parse", "HEAD")
199
+ current_origin = git_text("config", "--get", "remote.origin.url")
200
+ current_diff = git_text("diff", "--name-only")
201
+ current_staged_diff = git_text("diff", "--cached", "--name-only")
202
+ require_equal(current_commit, SOURCE_COMMIT, "current Git commit")
203
+ require_equal(current_origin, EXPECTED_SOURCE_ORIGIN, "current Git origin")
204
+ require_equal(current_diff, "", "current tracked worktree diff")
205
+ require_equal(current_staged_diff, "", "current staged worktree diff")
206
+
207
+ recorded_hashes = provenance.get("author_source_sha256")
208
+ if not isinstance(recorded_hashes, dict) or not recorded_hashes:
209
+ fail("source_provenance.author_source_sha256 must be a non-empty object")
210
+ checked_hashes: dict[str, str] = {}
211
+ for relative_path, recorded_hash in sorted(recorded_hashes.items()):
212
+ if not isinstance(relative_path, str) or not isinstance(recorded_hash, str):
213
+ fail("source_provenance.author_source_sha256 must map strings to strings")
214
+ path = resolve_within_repository(relative_path)
215
+ if not path.is_file():
216
+ fail(f"Recorded source file is unavailable: {relative_path}")
217
+ actual_hash = sha256_file(path)
218
+ require_equal(actual_hash, recorded_hash, f"SHA-256 for {relative_path}")
219
+ checked_hashes[relative_path] = actual_hash
220
+
221
+ return {
222
+ "current_commit": current_commit,
223
+ "current_origin_matches_expected": current_origin == EXPECTED_SOURCE_ORIGIN,
224
+ "current_tracked_worktree_clean": current_diff == "" and current_staged_diff == "",
225
+ "checked_author_source_sha256": checked_hashes,
226
+ }
227
+
228
+
229
+ def validate_protocol(result: dict[str, Any]) -> None:
230
+ require_equal(result.get("reproduction_compatible"), True, "reproduction_compatible")
231
+ configuration = result.get("configuration")
232
+ if not isinstance(configuration, dict):
233
+ fail("configuration must be an object")
234
+ for key, expected in EXPECTED_CONFIGURATION.items():
235
+ require_equal(configuration.get(key), expected, f"configuration.{key}")
236
+ require_equal(configuration.get("mc_ids"), list(range(100)), "configuration.mc_ids")
237
+ require_equal(configuration.get("author_keys_path"), "experiments/rnd_keys.npy", "configuration.author_keys_path")
238
+
239
+ source_paths = result.get("source_paths")
240
+ required_paths = {
241
+ "experiments/run_gms.sh",
242
+ "experiments/gms/diffusion.py",
243
+ "experiments/gms/baselines.py",
244
+ "experiments/summary/print_gms_errs.py",
245
+ "experiments/rnd_keys.npy",
246
+ }
247
+ if not isinstance(source_paths, list) or not required_paths.issubset(source_paths):
248
+ fail("source_paths does not record the required released GMS files")
249
+
250
+
251
+ def validate_records_and_aggregates(result: dict[str, Any]) -> dict[str, Any]:
252
+ records = result.get("per_id_results")
253
+ if not isinstance(records, list):
254
+ fail("per_id_results must be a list")
255
+ if len(records) != 100:
256
+ fail(f"per_id_results has {len(records)} records; expected 100")
257
+
258
+ series: dict[str, dict[str, list[float]]] = {
259
+ method: {metric: [] for metric in METRICS} for method in METHODS
260
+ }
261
+ for expected_id, record in enumerate(records):
262
+ if not isinstance(record, dict):
263
+ fail(f"per_id_results[{expected_id}] must be an object")
264
+ require_equal(record.get("mc_id"), expected_id, f"per_id_results[{expected_id}].mc_id")
265
+ for method in METHODS:
266
+ method_values = record.get(method)
267
+ if not isinstance(method_values, dict):
268
+ fail(f"per_id_results[{expected_id}].{method} must be an object")
269
+ for metric in METRICS:
270
+ series[method][metric].append(
271
+ require_finite_number(
272
+ method_values.get(metric), f"per_id_results[{expected_id}].{method}.{metric}"
273
+ )
274
+ )
275
+
276
+ aggregate = result.get("aggregate")
277
+ if not isinstance(aggregate, dict):
278
+ fail("aggregate must be an object")
279
+ recomputed: dict[str, Any] = {}
280
+ for method in METHODS:
281
+ reported_method = aggregate.get(method)
282
+ if not isinstance(reported_method, dict):
283
+ fail(f"aggregate.{method} must be an object")
284
+ recomputed[method] = {}
285
+ for metric in METRICS:
286
+ reported_metric = reported_method.get(metric)
287
+ if not isinstance(reported_metric, dict):
288
+ fail(f"aggregate.{method}.{metric} must be an object")
289
+ computed = summary(series[method][metric])
290
+ for name, value in computed.items():
291
+ require_close(reported_metric.get(name), value, f"aggregate.{method}.{metric}.{name}")
292
+ recomputed[method][metric] = computed
293
+
294
+ reported_paired = aggregate.get("paired_diffusion_minus_multinomial")
295
+ if not isinstance(reported_paired, dict):
296
+ fail("aggregate.paired_diffusion_minus_multinomial must be an object")
297
+ recomputed_paired: dict[str, dict[str, float]] = {}
298
+ intervals: dict[str, dict[str, float | int]] = {}
299
+ wins: dict[str, int] = {}
300
+ for metric in METRICS:
301
+ values = [
302
+ diffusion - multinomial
303
+ for diffusion, multinomial in zip(
304
+ series["diffusion_resampling"][metric],
305
+ series["multinomial_baseline"][metric],
306
+ strict=True,
307
+ )
308
+ ]
309
+ reported_metric = reported_paired.get(metric)
310
+ if not isinstance(reported_metric, dict):
311
+ fail(f"aggregate.paired_diffusion_minus_multinomial.{metric} must be an object")
312
+ computed = summary(values)
313
+ for name, value in computed.items():
314
+ require_close(
315
+ reported_metric.get(name), value, f"aggregate.paired_diffusion_minus_multinomial.{metric}.{name}"
316
+ )
317
+ recomputed_paired[metric] = computed
318
+ intervals[metric] = paired_t_interval(values)
319
+ wins[metric] = sum(value < 0.0 for value in values)
320
+
321
+ reported_wins = aggregate.get("diffusion_lower_is_better_wins")
322
+ if not isinstance(reported_wins, dict):
323
+ fail("aggregate.diffusion_lower_is_better_wins must be an object")
324
+ for metric, count in wins.items():
325
+ require_equal(reported_wins.get(metric), count, f"aggregate.diffusion_lower_is_better_wins.{metric}")
326
+
327
+ return {
328
+ "record_count": len(records),
329
+ "recomputed_aggregate": recomputed,
330
+ "recomputed_paired_aggregate": recomputed_paired,
331
+ "paired_diffusion_minus_multinomial_95_percent_t_intervals": intervals,
332
+ "diffusion_lower_is_better_wins": wins,
333
+ }
334
+
335
+
336
+ def validate_result(input_path: Path) -> dict[str, Any]:
337
+ result = strict_json_load(input_path)
338
+ validate_protocol(result)
339
+ source_identity = validate_source_identity(result)
340
+ aggregation = validate_records_and_aggregates(result)
341
+ return {
342
+ "schema_version": 1,
343
+ "validation_status": "passed",
344
+ "validation_type": "post-hoc integrity and aggregate recomputation; no numerical rerun",
345
+ "checked_at_utc": utc_now(),
346
+ "input": {
347
+ "path": input_path.relative_to(REPOSITORY_ROOT).as_posix(),
348
+ "sha256": sha256_file(input_path),
349
+ },
350
+ "checks": {
351
+ "strict_json": "passed",
352
+ "selected_protocol": "passed",
353
+ "current_source_identity_and_hashes": source_identity,
354
+ "raw_record_integrity_and_aggregate_recomputation": aggregation,
355
+ },
356
+ "validator": {
357
+ "path": Path(__file__).relative_to(REPOSITORY_ROOT).as_posix(),
358
+ "sha256": sha256_file(Path(__file__)),
359
+ "python_version": sys.version,
360
+ "scipy_version": scipy.__version__,
361
+ "platform": {
362
+ "system": platform.system(),
363
+ "release": platform.release(),
364
+ "machine": platform.machine(),
365
+ },
366
+ },
367
+ "claim_boundary": (
368
+ "This check independently recomputes the recorded aggregates and paired intervals "
369
+ "from the 100 raw JSON records while checking the current pinned source identity. "
370
+ "It does not rerun the numerical experiment, independently reproduce the paper, "
371
+ "or establish an outperformance or significance claim."
372
+ ),
373
+ }
374
+
375
+
376
+ def resolve_study_path(requested: Path) -> Path:
377
+ path = requested if requested.is_absolute() else REPOSITORY_ROOT / requested
378
+ path = path.resolve()
379
+ try:
380
+ path.relative_to(STUDY_ROOT.resolve())
381
+ except ValueError:
382
+ fail(f"Path must be contained in {STUDY_ROOT}: {path}")
383
+ return path
384
+
385
+
386
+ def write_json(path: Path, payload: dict[str, Any], *, overwrite: bool) -> None:
387
+ serialised = json.dumps(payload, indent=2, sort_keys=True, allow_nan=False) + "\n"
388
+ with tempfile.NamedTemporaryFile(
389
+ mode="w", encoding="utf-8", dir=path.parent, prefix=f".{path.name}.", delete=False
390
+ ) as temporary_file:
391
+ temporary_file.write(serialised)
392
+ temporary_file.flush()
393
+ os.fsync(temporary_file.fileno())
394
+ temporary_path = Path(temporary_file.name)
395
+ try:
396
+ if overwrite:
397
+ os.replace(temporary_path, path)
398
+ else:
399
+ os.link(temporary_path, path)
400
+ except FileExistsError as error:
401
+ raise FileExistsError(
402
+ f"Refusing to overwrite {path}; pass --overwrite for a deliberate rerun."
403
+ ) from error
404
+ finally:
405
+ temporary_path.unlink(missing_ok=True)
406
+
407
+
408
+ def parse_args() -> argparse.Namespace:
409
+ parser = argparse.ArgumentParser(description=__doc__)
410
+ parser.add_argument("--input", type=Path, default=DEFAULT_INPUT)
411
+ parser.add_argument("--output", type=Path, default=DEFAULT_OUTPUT)
412
+ parser.add_argument("--overwrite", action="store_true")
413
+ return parser.parse_args()
414
+
415
+
416
+ def main() -> None:
417
+ args = parse_args()
418
+ input_path = resolve_study_path(args.input)
419
+ output_path = resolve_study_path(args.output)
420
+ if output_path.exists() and not args.overwrite:
421
+ raise FileExistsError(
422
+ f"Refusing to overwrite {output_path}; pass --overwrite for a deliberate rerun."
423
+ )
424
+ payload = validate_result(input_path)
425
+ write_json(output_path, payload, overwrite=args.overwrite)
426
+ print(f"Wrote validation result to {output_path}")
427
+
428
+
429
+ if __name__ == "__main__":
430
+ main()
evidence/verify_stored_gms_evidence.py ADDED
@@ -0,0 +1,343 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Verify the structure and arithmetic of the stored 100-ID GMS evidence.
2
+
3
+ This verifier uses only Python's standard library and never starts the numerical
4
+ experiment, contacts a network service, opens a source checkout, or writes an
5
+ output file. It checks the immutable JSON record's declared configuration,
6
+ ordered records, and reported descriptive aggregates.
7
+
8
+ It cannot establish that the recorded source hashes match a checkout, that the
9
+ stored values came from a particular execution, or that the paper-level claims
10
+ hold. Those are intentionally outside this file-only check.
11
+ """
12
+
13
+ from __future__ import annotations
14
+
15
+ import argparse
16
+ import hashlib
17
+ import json
18
+ import math
19
+ from pathlib import Path
20
+ import statistics
21
+ import sys
22
+ from typing import Any, Iterable, NoReturn
23
+
24
+
25
+ EVIDENCE_DIRECTORY = Path(__file__).resolve().parent
26
+ DEFAULT_INPUT = EVIDENCE_DIRECTORY / "gms-selected-ids-0-99.json"
27
+ METHODS = ("diffusion_resampling", "multinomial_baseline")
28
+ METRICS = ("sliced_wasserstein_l1", "posterior_mean_residual_squared_l2")
29
+ SUMMARY_FIELDS = ("mean", "population_standard_deviation", "minimum", "maximum")
30
+ EXPECTED_CONFIGURATION = {
31
+ "author_keys_path": "experiments/rnd_keys.npy",
32
+ "components": 5,
33
+ "diffusion_a": -1.0,
34
+ "diffusion_steps": 128,
35
+ "dimension": 8,
36
+ "execution": "one CPU process; compiled functions shared across ids",
37
+ "integrator": "jentzen_and_kloeden",
38
+ "mc_ids": list(range(100)),
39
+ "observation_dimension": 1,
40
+ "ode": True,
41
+ "particles": 10_000,
42
+ "swd_projections": 1_000,
43
+ "terminal_time": 3.0,
44
+ }
45
+ EXPECTED_SOURCE_COMMIT = "767effe3e755067eb8a04422597fbf37eb8ab754"
46
+ EXPECTED_TOP_LEVEL_KEYS = {
47
+ "aggregate",
48
+ "claim_boundary",
49
+ "configuration",
50
+ "execution",
51
+ "label",
52
+ "per_id_results",
53
+ "protocol_note",
54
+ "reproduction_compatible",
55
+ "source_commit",
56
+ "source_paths",
57
+ "source_provenance",
58
+ "study_runtime_sha256",
59
+ }
60
+ ABSOLUTE_TOLERANCE = 1e-12
61
+
62
+
63
+ class VerificationError(ValueError):
64
+ """Raised when a stored evidence record is malformed or internally inconsistent."""
65
+
66
+
67
+ def fail(message: str) -> NoReturn:
68
+ raise VerificationError(message)
69
+
70
+
71
+ def sha256_file(path: Path) -> str:
72
+ digest = hashlib.sha256()
73
+ with path.open("rb") as handle:
74
+ for block in iter(lambda: handle.read(1024 * 1024), b""):
75
+ digest.update(block)
76
+ return digest.hexdigest()
77
+
78
+
79
+ def strict_json_load(path: Path) -> dict[str, Any]:
80
+ """Load a JSON object while rejecting duplicate keys and non-finite constants."""
81
+
82
+ def reject_nonfinite(token: str) -> NoReturn:
83
+ fail(f"{path.name} contains non-standard JSON constant {token!r}")
84
+
85
+ def reject_duplicate_keys(pairs: list[tuple[str, Any]]) -> dict[str, Any]:
86
+ value: dict[str, Any] = {}
87
+ for key, item in pairs:
88
+ if key in value:
89
+ fail(f"{path.name} contains duplicate JSON object key {key!r}")
90
+ value[key] = item
91
+ return value
92
+
93
+ try:
94
+ loaded = json.loads(
95
+ path.read_text(encoding="utf-8"),
96
+ parse_constant=reject_nonfinite,
97
+ object_pairs_hook=reject_duplicate_keys,
98
+ )
99
+ except (OSError, json.JSONDecodeError) as error:
100
+ fail(f"Cannot parse strict JSON from {path}: {error}")
101
+ if not isinstance(loaded, dict):
102
+ fail(f"Top-level value in {path.name} must be an object")
103
+ return loaded
104
+
105
+
106
+ def require_object(value: object, path: str, *, keys: set[str] | None = None) -> dict[str, Any]:
107
+ if not isinstance(value, dict):
108
+ fail(f"{path} must be an object")
109
+ if keys is not None and set(value) != keys:
110
+ fail(f"{path} has keys {sorted(value)!r}; expected {sorted(keys)!r}")
111
+ return value
112
+
113
+
114
+ def require_list(value: object, path: str) -> list[Any]:
115
+ if not isinstance(value, list):
116
+ fail(f"{path} must be a list")
117
+ return value
118
+
119
+
120
+ def require_integer(value: object, path: str) -> int:
121
+ if isinstance(value, bool) or not isinstance(value, int):
122
+ fail(f"{path} must be an integer")
123
+ return value
124
+
125
+
126
+ def require_number(value: object, path: str) -> float:
127
+ if isinstance(value, bool) or not isinstance(value, (int, float)):
128
+ fail(f"{path} must be a numeric JSON value")
129
+ number = float(value)
130
+ if not math.isfinite(number):
131
+ fail(f"{path} must be finite")
132
+ return number
133
+
134
+
135
+ def require_equal(actual: object, expected: object, path: str) -> None:
136
+ if actual != expected:
137
+ fail(f"{path} is {actual!r}; expected {expected!r}")
138
+
139
+
140
+ def require_close(actual: object, expected: float, path: str) -> None:
141
+ value = require_number(actual, path)
142
+ if not math.isclose(value, expected, rel_tol=0.0, abs_tol=ABSOLUTE_TOLERANCE):
143
+ fail(f"{path} is {value:.17g}; recomputation is {expected:.17g}")
144
+
145
+
146
+ def summary(values: Iterable[float]) -> dict[str, float]:
147
+ series = list(values)
148
+ if not series:
149
+ fail("Cannot aggregate an empty metric series")
150
+ return {
151
+ "mean": statistics.fmean(series),
152
+ "population_standard_deviation": statistics.pstdev(series),
153
+ "minimum": min(series),
154
+ "maximum": max(series),
155
+ }
156
+
157
+
158
+ def verify_declared_configuration(result: dict[str, Any]) -> None:
159
+ configuration = require_object(
160
+ result.get("configuration"), "configuration", keys=set(EXPECTED_CONFIGURATION)
161
+ )
162
+ for name, expected in EXPECTED_CONFIGURATION.items():
163
+ value = configuration[name]
164
+ path = f"configuration.{name}"
165
+ if name == "mc_ids":
166
+ identifiers = require_list(value, path)
167
+ require_equal(
168
+ [require_integer(item, f"{path}[{index}]") for index, item in enumerate(identifiers)],
169
+ expected,
170
+ path,
171
+ )
172
+ continue
173
+ if isinstance(expected, bool):
174
+ if not isinstance(value, bool):
175
+ fail(f"{path} must be a Boolean")
176
+ elif isinstance(expected, int):
177
+ require_integer(value, path)
178
+ elif isinstance(expected, float):
179
+ require_number(value, path)
180
+ require_equal(value, expected, path)
181
+
182
+ require_equal(result.get("source_commit"), EXPECTED_SOURCE_COMMIT, "source_commit declaration")
183
+
184
+
185
+ def verify_records_and_aggregates(result: dict[str, Any]) -> dict[str, Any]:
186
+ records = require_list(result.get("per_id_results"), "per_id_results")
187
+ if len(records) != 100:
188
+ fail(f"per_id_results has {len(records)} records; expected 100")
189
+
190
+ series: dict[str, dict[str, list[float]]] = {
191
+ method: {metric: [] for metric in METRICS} for method in METHODS
192
+ }
193
+ for expected_id, record_value in enumerate(records):
194
+ record = require_object(
195
+ record_value,
196
+ f"per_id_results[{expected_id}]",
197
+ keys={"mc_id", *METHODS},
198
+ )
199
+ require_equal(
200
+ require_integer(record["mc_id"], f"per_id_results[{expected_id}].mc_id"),
201
+ expected_id,
202
+ f"per_id_results[{expected_id}].mc_id",
203
+ )
204
+ for method in METHODS:
205
+ values = require_object(
206
+ record[method],
207
+ f"per_id_results[{expected_id}].{method}",
208
+ keys=set(METRICS),
209
+ )
210
+ for metric in METRICS:
211
+ series[method][metric].append(
212
+ require_number(
213
+ values[metric], f"per_id_results[{expected_id}].{method}.{metric}"
214
+ )
215
+ )
216
+
217
+ aggregate = require_object(
218
+ result.get("aggregate"),
219
+ "aggregate",
220
+ keys={*METHODS, "paired_diffusion_minus_multinomial", "diffusion_lower_is_better_wins"},
221
+ )
222
+ recomputed: dict[str, Any] = {}
223
+ for method in METHODS:
224
+ reported_method = require_object(
225
+ aggregate[method], f"aggregate.{method}", keys=set(METRICS)
226
+ )
227
+ recomputed[method] = {}
228
+ for metric in METRICS:
229
+ reported_summary = require_object(
230
+ reported_method[metric],
231
+ f"aggregate.{method}.{metric}",
232
+ keys=set(SUMMARY_FIELDS),
233
+ )
234
+ calculated = summary(series[method][metric])
235
+ for field, value in calculated.items():
236
+ require_close(
237
+ reported_summary[field], value, f"aggregate.{method}.{metric}.{field}"
238
+ )
239
+ recomputed[method][metric] = calculated
240
+
241
+ paired_reported = require_object(
242
+ aggregate["paired_diffusion_minus_multinomial"],
243
+ "aggregate.paired_diffusion_minus_multinomial",
244
+ keys=set(METRICS),
245
+ )
246
+ wins_reported = require_object(
247
+ aggregate["diffusion_lower_is_better_wins"],
248
+ "aggregate.diffusion_lower_is_better_wins",
249
+ keys=set(METRICS),
250
+ )
251
+ paired: dict[str, Any] = {}
252
+ lower_counts: dict[str, int] = {}
253
+ for metric in METRICS:
254
+ differences = [
255
+ diffusion - multinomial
256
+ for diffusion, multinomial in zip(
257
+ series["diffusion_resampling"][metric],
258
+ series["multinomial_baseline"][metric],
259
+ strict=True,
260
+ )
261
+ ]
262
+ reported_summary = require_object(
263
+ paired_reported[metric],
264
+ f"aggregate.paired_diffusion_minus_multinomial.{metric}",
265
+ keys=set(SUMMARY_FIELDS),
266
+ )
267
+ calculated = summary(differences)
268
+ for field, value in calculated.items():
269
+ require_close(
270
+ reported_summary[field], value,
271
+ f"aggregate.paired_diffusion_minus_multinomial.{metric}.{field}",
272
+ )
273
+ lower_count = sum(value < 0.0 for value in differences)
274
+ require_equal(
275
+ require_integer(
276
+ wins_reported[metric], f"aggregate.diffusion_lower_is_better_wins.{metric}"
277
+ ),
278
+ lower_count,
279
+ f"aggregate.diffusion_lower_is_better_wins.{metric}",
280
+ )
281
+ paired[metric] = calculated
282
+ lower_counts[metric] = lower_count
283
+
284
+ return {
285
+ "record_count": len(records),
286
+ "recomputed_aggregate": recomputed,
287
+ "recomputed_paired_aggregate": paired,
288
+ "diffusion_lower_is_better_wins": lower_counts,
289
+ }
290
+
291
+
292
+ def verify_evidence(input_path: Path) -> dict[str, Any]:
293
+ """Verify one stored result record and return the recomputed evidence summary."""
294
+
295
+ result = strict_json_load(input_path)
296
+ require_object(result, "top-level record", keys=EXPECTED_TOP_LEVEL_KEYS)
297
+ verify_declared_configuration(result)
298
+ recomputed = verify_records_and_aggregates(result)
299
+ return {
300
+ "input_sha256": sha256_file(input_path),
301
+ "declared_source_commit": EXPECTED_SOURCE_COMMIT,
302
+ **recomputed,
303
+ }
304
+
305
+
306
+ def parse_args() -> argparse.Namespace:
307
+ parser = argparse.ArgumentParser(description=__doc__)
308
+ parser.add_argument(
309
+ "--input",
310
+ type=Path,
311
+ default=DEFAULT_INPUT,
312
+ help="stored GMS JSON to inspect (default: evidence/gms-selected-ids-0-99.json)",
313
+ )
314
+ return parser.parse_args()
315
+
316
+
317
+ def main() -> int:
318
+ args = parse_args()
319
+ try:
320
+ report = verify_evidence(args.input)
321
+ except (OSError, VerificationError) as error:
322
+ print(f"Stored-evidence verification: failed: {error}", file=sys.stderr)
323
+ return 1
324
+
325
+ print("Stored-evidence verification: passed")
326
+ print(f"Input SHA-256: {report['input_sha256']}")
327
+ print(f"Ordered records checked: {report['record_count']} (IDs 0–99)")
328
+ print("Methods checked: diffusion_resampling, multinomial_baseline")
329
+ print("Metrics checked: sliced_wasserstein_l1, posterior_mean_residual_squared_l2")
330
+ print(f"Diffusion-lower counts: {report['diffusion_lower_is_better_wins']}")
331
+ print(
332
+ "Recomputed from this file only: declared configuration, strict JSON structure, "
333
+ "raw-record aggregates, paired aggregates, and lower-counts."
334
+ )
335
+ print(
336
+ "Not established: source-checkout identity or hashes, numerical-execution provenance, "
337
+ "paper reproduction, statistical significance, or any outperformance claim."
338
+ )
339
+ return 0
340
+
341
+
342
+ if __name__ == "__main__":
343
+ raise SystemExit(main())
index.html CHANGED
@@ -1,19 +1,170 @@
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>
 
1
  <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta
7
+ name="description"
8
+ content="Traceable historic 100-ID Gaussian-mixture evidence for Diffusion differentiable resampling."
9
+ />
10
+ <link rel="icon" href="data:," />
11
+ <title>DiffRes: traceable 100-ID Gaussian-mixture study</title>
12
+ <style>
13
+ :root {
14
+ color-scheme: light dark;
15
+ --paper: #f8fafc;
16
+ --ink: #172033;
17
+ --muted: #526076;
18
+ --panel: #ffffff;
19
+ --line: #d8e0ec;
20
+ --accent: #215bd8;
21
+ --warning: #7a4d00;
22
+ --warning-bg: #fff6e3;
23
+ }
24
+
25
+ @media (prefers-color-scheme: dark) {
26
+ :root {
27
+ --paper: #10151f;
28
+ --ink: #edf2ff;
29
+ --muted: #afbbce;
30
+ --panel: #182131;
31
+ --line: #2b384d;
32
+ --accent: #8bb2ff;
33
+ --warning: #ffce72;
34
+ --warning-bg: #2b2417;
35
+ }
36
+ }
37
+
38
+ * { box-sizing: border-box; }
39
+ body {
40
+ margin: 0;
41
+ background: var(--paper);
42
+ color: var(--ink);
43
+ font: 16px/1.55 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
44
+ }
45
+ main { max-width: 900px; margin: 0 auto; padding: 56px 24px 72px; }
46
+ h1, h2 { line-height: 1.2; }
47
+ h1 { font-size: clamp(2rem, 5vw, 3.25rem); margin: 0.45rem 0 1rem; }
48
+ h2 { margin: 2.4rem 0 0.7rem; font-size: 1.3rem; }
49
+ p, li { max-width: 76ch; }
50
+ a { color: var(--accent); }
51
+ .eyebrow { color: var(--muted); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
52
+ .status {
53
+ display: inline-block;
54
+ border: 1px solid var(--line);
55
+ border-radius: 999px;
56
+ padding: 0.2rem 0.65rem;
57
+ color: var(--muted);
58
+ font-size: 0.85rem;
59
+ font-weight: 650;
60
+ }
61
+ .card, .warning {
62
+ border: 1px solid var(--line);
63
+ border-radius: 12px;
64
+ padding: 1.1rem 1.2rem;
65
+ background: var(--panel);
66
+ }
67
+ .warning { background: var(--warning-bg); color: var(--warning); }
68
+ table { border-collapse: collapse; width: 100%; margin: 1rem 0; }
69
+ th, td { border-bottom: 1px solid var(--line); padding: 0.7rem 0.55rem; text-align: left; vertical-align: top; }
70
+ th:first-child, td:first-child { padding-left: 0; }
71
+ th:last-child, td:last-child { padding-right: 0; }
72
+ .number { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
73
+ footer { border-top: 1px solid var(--line); color: var(--muted); font-size: 0.9rem; margin-top: 3rem; padding-top: 1rem; }
74
+ </style>
75
+ </head>
76
+ <body>
77
+ <main>
78
+ <div class="eyebrow">ICML 2026 evidence package</div>
79
+ <h1>DiffRes: traceable 100-ID Gaussian-mixture study</h1>
80
+ <p class="status">Historic stored output · static package · no numerical execution</p>
81
+ <p>
82
+ A local study wrapper using released implementation, stored numerical random keys and pinned source
83
+ config recorded a traceable 100-ID Gaussian-mixture result; a separate validator recomputed
84
+ raw-record aggregates, paired intervals, and source hashes.
85
+ </p>
86
+
87
+ <section class="warning" aria-labelledby="boundary-title">
88
+ <h2 id="boundary-title">Interpretation boundary</h2>
89
+ <p>
90
+ This is not an exact reproduction, independent replication, complete Table 1 or Table 2
91
+ reproduction, publication score, or broad outperformance claim. It is a stored,
92
+ traceable comparison against the multinomial baseline only. This static package
93
+ does not verify a source checkout or numerical execution, and it does not establish
94
+ source-hash identity, execution provenance, paper-level results, or significance.
95
+ </p>
96
+ </section>
97
+
98
+ <section aria-labelledby="record-title">
99
+ <h2 id="record-title">Recorded configuration</h2>
100
+ <div class="card">
101
+ <ul>
102
+ <li>Released <code>zgbkdlm/diffres</code> source at <code>767effe3e755067eb8a04422597fbf37eb8ab754</code>.</li>
103
+ <li>Stored Monte Carlo IDs 0–99; 10,000 particles; 1,000 sliced-Wasserstein projections.</li>
104
+ <li>Probability-flow ODE, <code>T=3</code>, 128 steps, Jentzen--Kloeden integrator.</li>
105
+ <li>Diffusion resampling and multinomial baseline; no other Table 1 baselines.</li>
106
+ </ul>
107
+ </div>
108
+ </section>
109
+
110
+ <section aria-labelledby="results-title">
111
+ <h2 id="results-title">Historical stored aggregates</h2>
112
+ <table>
113
+ <thead>
114
+ <tr>
115
+ <th scope="col">Metric (lower is better)</th>
116
+ <th scope="col" class="number">Diffusion resampling</th>
117
+ <th scope="col" class="number">Multinomial baseline</th>
118
+ </tr>
119
+ </thead>
120
+ <tbody>
121
+ <tr>
122
+ <td>Sliced Wasserstein L1, mean ± population SD</td>
123
+ <td class="number">0.0807686 ± 0.0212899</td>
124
+ <td class="number">0.0824334 ± 0.0250323</td>
125
+ </tr>
126
+ <tr>
127
+ <td>Squared posterior-mean residual L2, mean ± population SD</td>
128
+ <td class="number">0.0373908 ± 0.0299358</td>
129
+ <td class="number">0.0378330 ± 0.0442877</td>
130
+ </tr>
131
+ </tbody>
132
+ </table>
133
+ <p>
134
+ The recorded paired 95% t intervals cross zero for both metrics. They are not evidence of
135
+ a statistically significant improvement.
136
+ </p>
137
+ </section>
138
+
139
+ <section aria-labelledby="evidence-title">
140
+ <h2 id="evidence-title">Inspect the evidence</h2>
141
+ <ul>
142
+ <li><a href="evidence/gms-selected-ids-0-99.json">Raw 100-ID result</a></li>
143
+ <li><a href="evidence/gms-selected-ids-0-99-validation.json">Historic validation record</a></li>
144
+ <li><a href="evidence/validate_gms_selected_result.py">Validator source</a></li>
145
+ <li><a href="evidence/verify_stored_gms_evidence.py">Self-contained stored-evidence verifier</a></li>
146
+ <li><a href="evidence/README.md">Evidence guide and validator limits</a></li>
147
+ <li><a href="MANIFEST.md">Source and artefact manifest</a></li>
148
+ <li><a href="README.md">Full README, safety note, and licensing</a></li>
149
+ </ul>
150
+ </section>
151
+
152
+ <section aria-labelledby="safety-title">
153
+ <h2 id="safety-title">Selection and safety</h2>
154
+ <p>
155
+ The package contains only static presentation files, two historical JSON records, a
156
+ non-networked audit script, and licensing/provenance notes. It deliberately excludes the
157
+ upstream source tree, virtual environments, caches, runners, model artefacts, partial
158
+ studies, and LGSSM material.
159
+ </p>
160
+ </section>
161
+
162
+ <footer>
163
+ <a href="https://arxiv.org/abs/2512.10401">Paper</a> ·
164
+ <a href="https://openreview.net/forum?id=M0e5XORjAW">OpenReview</a> ·
165
+ <a href="https://github.com/zgbkdlm/diffres">released source</a> ·
166
+ <a href="NOTICE">attribution and licence notice</a>
167
+ </footer>
168
+ </main>
169
+ </body>
170
  </html>