Skip to main content

Appendix E — Falsification register: the predictions the repository allows one to check

The book’s plan announced a full count of §1–§164 here. Chapter 28 explains why it was not done: the sections before §71 hardly use pre-registration, and many later ones leave their verdicts only in prose, worded differently. This appendix lists what can be checked with code. tools/make_appendices.py generates it with the same functions as the Chapter 28 figure (tools/make_cap28_figures.py), so its totals are the chapter’s.

E.1 Falsification statement

  • Definitions and identities are not falsified by experiments. The qg unit, the milli-qang, the probability equation and the formulas of Appendices A and B are proven or checked to machine precision in tests/. If one fails, it is a code bug, not a result.
  • Empirical claims are. Each says that a reading with qang is more accurate, cheaper or more stable than without qang, and it is fixed with a threshold before running. A failed prediction is published with its number and not rewritten.
  • What would falsify the programme as a whole. That the advantages of Chapter 29 did not repeat on real hardware with thresholds fixed in advance. Today there are three runs on IQM Garnet, with 12 of 13 predictions passed, but only one tests an advantage: §165, the weight filter on neutrinos. §168 and §170 test the scale and the reading, not an advantage. That is too little to decide.

E.2 Verdicts stored by the code

Each file of examples/data/ with a verdict dictionary is a run whose predictions the script itself scored. The § column is the notes section that names the script.

Table E.1: 34 runs, 148 predictions: 94 passed (64%) and 54 failed.
run § passed failed which failed
fisher_natural_gradient_qg §159 4 1 G2
ibm_coherent_zz_qg §145 0 3 X1, X2, X3
ibm_fleet_qg §144 0 3 F1, F2, F3
ibm_layout_qg §138 2 1 L1
ibm_pca_spectrum_qg §146 4 0 —
ibm_qnn_layout_qg §141 2 1 R3
ibm_qnn_qg §139 2 1 Q2
ibm_runtime_qg §137 3 0 —
ibm_shot_plan_qg §143 1 1 P2
ibm_static_zz_qg §150 2 2 Z2, Z3
ibm_swap_test_qg §149 5 0 —
ibm_trotter_walk_qg §147 5 1 W1
ibm_xxz_many_body_qg §148 3 1 K1
ibm_zne_qg §142 1 2 Z1, Z3
iqm_milliqang_qg_analysis §168 3 1 M2
iqm_zitterbewegung_qg_analysis §170 5 0 —
lih_lambda_filter_qg §153 5 1 L4
neutrino_collective_qg §154 0 7 C1, C2, C3, C4, C5, C6, C7
neutrino_matter_qg §152 4 1 M1
neutrino_ordering_majorana_sterile_qg §163 5 1 O3
neutrino_oscillation_qg §151 4 0 —
neutrino_solar_qg §156 6 0 —
postselection_ctc_blackhole_qg §164 2 4 C1, C2, C3, H1
pulse_area_qg §160 3 1 P4
qiskit_ml_qnn_qg §140 3 0 —
qnn_ingate_dephasing §133 2 2 D2, D3
qnn_torino_residual §132 2 2 T2, T3
qpon_teleport_dual_rail_qg §158 1 7 A1, A2, A3, B1, B2, B3, B5
qpon_teleport_qg §157 5 1 Q5
qsp_arcsine_fit §134 2 2 Q2, Q4
quantum_kernel_qg §161 2 3 K2, K3, K4
varqte_kraus_qg §162 4 1 V1
wqsp_kan §135 1 2 K1, K2
wqsp_kan_parity §136 1 1 P2
total 94 54

E.3 Pre-registrations by sha256

Each examples/data/*.prereg holds the sha256 of a frozen script. The ‘before’ is checked if the hash matches the script at the commit that added the .prereg and that commit is earlier than the one of the results.

Table E.2: 16 pre-registrations: 8 checked in git, 8 with the file’s own timestamp only.
pre-registration § matches today matches at its commit before the results ‘before’
fisher_natural_gradient_qg §159 no yes yes checked
iqm_milliqang_qg §168 no yes yes checked
iqm_neutrino_qg §165 no yes yes checked
iqm_zitterbewegung_qg §170 yes yes yes checked
lih_lambda_filter_qg §153 no yes yes checked
neutrino_collective_qg §154 no yes yes checked
neutrino_matter_qg §152 no no no own timestamp only
neutrino_ordering_majorana_sterile_qg §163 no no no own timestamp only
neutrino_oscillation_qg §151 no no no own timestamp only
neutrino_solar_qg §156 no no no own timestamp only
postselection_ctc_blackhole_qg §164 no no no own timestamp only
pulse_area_qg §160 no no no own timestamp only
qpon_teleport_dual_rail_qg §158 no yes yes checked
qpon_teleport_qg §157 no yes yes checked
quantum_kernel_qg §161 no no no own timestamp only
varqte_kraus_qg §162 no no no own timestamp only

That none matches today is expected: after the run the findings are added to the script’s opening comment. In those with their own timestamp only, the .prereg and the results entered in the same commit.

E.4 Pre-registrations by commit

Each “committed … (abcdef1)” in the notes: the commit exists and in it the notes do not yet have the section.

Table E.3: 54 citations in 54 sections, §71–§165: 54 consistent.
§ commits consistent
§71 daf0b6f 1 of 1
§72 092580f 1 of 1
§73 e877a72 1 of 1
§74 68d8d00 1 of 1
§75 1a516b4 1 of 1
§76 8d32f92 1 of 1
§77 1450374 1 of 1
§78 e999d7f 1 of 1
§79 00520dc 1 of 1
§80 77700bd 1 of 1
§81 1f2da5c 1 of 1
§82 1f4f8ac 1 of 1
§85 d0191cb 1 of 1
§86 5239ad3 1 of 1
§87 1f33029 1 of 1
§88 0b266fe 1 of 1
§90 14fab61 1 of 1
§91 d292c7e 1 of 1
§92 7a3bdad 1 of 1
§93 52d5cb1 1 of 1
§94 ebd795b 1 of 1
§95 505943d 1 of 1
§96 5648765 1 of 1
§98 4c11ff3 1 of 1
§100 517902b 1 of 1
§101 d4fcbaa 1 of 1
§102 6c0a1d7 1 of 1
§103 1b408dd 1 of 1
§104 22554eb 1 of 1
§105 052752d 1 of 1
§106 fa8eda6 1 of 1
§107 4d83029 1 of 1
§108 4ae2674 1 of 1
§109 9c06b36 1 of 1
§110 59f855a 1 of 1
§111 34760c3 1 of 1
§112 ea3fd3a 1 of 1
§113 d2dcd56 1 of 1
§114 d6e4f50 1 of 1
§115 12d12f0 1 of 1
§117 3c0fca9 1 of 1
§118 637e800 1 of 1
§119 d5d31e7 1 of 1
§120 fcfdf3b 1 of 1
§121 efba91a 1 of 1
§122 1bca045 1 of 1
§123 fc1e0ea 1 of 1
§124 b37b344 1 of 1
§125 b42cde2 1 of 1
§126 b2e92c4 1 of 1
§127 b2e92c4 1 of 1
§128 8a16974 1 of 1
§129 1a5507f 1 of 1
§165 a74c07c 1 of 1

E.5 What this register leaves out

  • The QML line (§75–§123) keeps its own count in the README: 176 predictions judged, 123 passed and 53 failed, with 4 more waiting for the IonQ hardware run (§116). It partly overlaps the tables above and must not be added to them.
  • The verdicts in prose (“Four passed; V1 failed”) of the sections that store no dictionary. They are in the notes, section by section, but counting them requires reading them one by one.
  • The sections before §71, which hardly use pre-registration: their numbers are reproducible, but they have no threshold fixed in advance.

Bibliographic notes

The falsification criterion is that of Popper (1959), and pre-registration as a practice, Nosek et al. (2018). The numbered notes (§), the files of examples/data/ and the scripts are in the repository (Monteverde 2026).