This page is for readers who want to check the book rather than read it: what kinds of claim it makes, where each is argued, and how to reproduce every figure the numerical chapters report. It is a research index, not a second book. Everything here leads to the same conclusions, with the same qualifications, as the chapters themselves.
Three Kinds of Claim
The book makes claims of three different kinds, and they need different kinds of evidence. Reading one as if it were another is the commonest way to misjudge it.
| Kind | What it depends on | Where |
|---|---|---|
| Historical and textual | Primary sources, manuscript evidence, the reading traditions, and how the Arabic is construed | Chapters 2, 3, 9–12; Appendix A |
| Scientific correspondences | The range of the Arabic, the alternative classical readings, and the risk of reading the present back into the text (the Introduction’s lens-invariance and pre-registration tests) | Chapters 4–8, 13, 16, 17; Appendices C and E |
| Statistical | Explicit null models, procedures fixed before the run, sensitivity analyses, controls on matched texts, and code anyone can rerun | Chapter 18; Appendix D; this page |
Each evidence chapter ends with a short box in the same five parts — what the text says, what to expect historically, the strongest supporting evidence, the strongest objection, and what remains unresolved — so that the claims can be compared on the same terms.
Reproduce the Results
Every headline figure in Chapter 18 and Appendix D is listed below with the script that produces it, the input it needs, and the output a run should give. The scripts are plain Python 3 with no dependencies beyond the standard library. The two control scripts take several hours at 10,000 runs; give a smaller number as the first argument for a quick check (the digits will differ, the pattern should not).
| Figure in the book | Where stated | Reproduced by | Input | Expected output |
|---|---|---|---|---|
| Five of fourteen openings hold (1 in 1,848); three of fourteen counted strictly (1 in 29); alignment 1 in 36 / 1 in 16 | Ch 18; App D III.c, V.E | test29.py (counts); ledger_fisher.py (arithmetic) | quran-json 3.1.2 | test29_result.txt, ledger_fisher_result.txt |
| Ledger tables: 1 in 715, 360, 5,005, 2,652; formula-only 1 in 3, 5, 6.5, 13 | Ch 18; App D V.D | ledger_fisher.py | none (case tables) | ledger_fisher_result.txt |
| Historical frame: about 1 in 8,000 (three hard-tier trials); 1 in 150,000 sensitivity; 1 in 2.5 million flat with the pending pair | App D V.A | ledger_fisher.py | per-trial probabilities stated in V.A | ledger_fisher_result.txt |
| The seventeen historical cases under ten counting conventions | App D II, IV | count19.py | quran-json 3.1.2 | count19_result.txt |
| Discovery control: a free search matches the frozen result 3–7 times in 10,000; ordinary once freedoms are restored | Ch 18; App D V.E | discovery_control.py (seed 19, 10,000 runs) | quran-json + four control corpora (see below) | discovery_control_result.txt |
| Alignment control (the sign partition fixed in advance) | App D V.E | alignment_control.py (seed 19) | as above | alignment_control_result.txt |
| The oath split, tested after the fact: pool 37,620; 112 of 2,002 splits divide (5.6%); 20 as good (1.0%) | App D III.a | oath_split_check.py | KFGQPC data, commit 281dbbe8 | oath_split_result.txt |
| Letter stability across the eight transmitted readings | Ch 18; App D II.b.2 | letter_stability.py | KFGQPC data, commit 281dbbe8 | letter_stability_result.txt, letter_stability.csv |
| Recited-consonant audit (every canonical departure from the written consonant in the thirteen surahs) | App D II.a.2 | recited_audit2.py | Corpus Coranicum allvariants.xml, cairoquran.xml | — (output not yet archived) |
How to Run
# 1. the text npm pack quran-json@3.1.2 && tar xzf quran-json-3.1.2.tgz # gives package/dist/quran.json # 2. the scripts (same folder) curl -O https://readproject-sgk6.onrender.com/assets/supplementary/test29.py # and the others listed above python3 test29.py # five of fourteen; compare with test29_result.txt python3 count19.py # the seventeen cases, ten conventions python3 ledger_fisher.py # every probability in the ledger and the frozen frame # 3. the eight-reading checks git clone https://github.com/thetruetruth/quran-data-kfgqpc && git -C quran-data-kfgqpc checkout 281dbbe8 python3 oath_split_check.py quran-data-kfgqpc python3 letter_stability.py quran-data-kfgqpc # 4. the controls (place the four control texts where the script header says) python3 discovery_control.py 10000 # seed 19 python3 alignment_control.py 10000
Inputs
| Input | Version | Where | sha256 |
|---|---|---|---|
| quran-json (Uthmani text, Tanzil lineage) | 3.1.2, file dist/quran.json | github.com/risan/quran-json; npm pack quran-json@3.1.2 | d8a8adff…cefd4 |
| KFGQPC eight-reading data (Ḥafṣ, Shuʿba, Warsh, Qālūn, al-Dūrī, al-Sūsī, al-Bazzī, Qunbul) | commit 281dbbe8 (15 Feb 2022) | github.com/thetruetruth/quran-data-kfgqpc | Ḥafṣ file 5d8bb917…0ba140 |
| Control corpora: Ṣaḥīḥ al-Bukhārī, Ṣaḥīḥ Muslim, Ibn Hishām’s Sīra | OpenITI, JK/Shamela editions | github.com/OpenITI | not recorded (see Limitations) |
| Control corpus: pre-Islamic (Jāhilī) poetry, 2,350 poems | tahaio/arabicpoetry, era العصر الجاهلي | GitHub, tahaio/arabicpoetry | not recorded |
| Corpus Coranicum variant data | allvariants.xml, cairoquran.xml | corpuscoranicum.de | not recorded |
Frozen Files
These files were hashed on 7 September 2026, before the results were written into the book, and have not changed since. A reader can confirm that the protocol was fixed before the run by checking the hashes.
| File | sha256 |
|---|---|
| test29.py | 3e0af0fd0aacefe244ac4c0c0f87e48e1c6d1f9af4a9bbd6407f45ea9ca70a7e |
| discovery_control.py | 5f335f5c79131074836d46765817db0c91068973333a1ed03c289109a366567f |
| discovery_control_result.txt | 393173b3c644a09a1c825d1d7167dbbfc4cb4e813f11b37aca445ad09b6ca6fc |
| alignment_control.py | c7edfce0c454d5a2daf7aafed86599c3c5f981565cc7e9e9b2a1bcd82c56f370 |
| alignment_control_result.txt | 01eb0ba675b1e3869644781efa940129b54f3afc43f1129d7260c08e504eb1d5 |
What the Code Does Not Settle
Reproducing a figure shows that the arithmetic is right. It does not show that the choices behind it are. Those choices are stated in the book, and a reader should weigh them separately:
- The rules of the frozen frame were written after the historical counts were known. The frame removes the freedoms that matter most, but it is not a prediction (Chapter 18; Appendix D, V.E).
- The text the scripts count is a modern digital edition — Layer 4 in the book’s terms — checked against codices and treatises only at the counted letters (Appendix D, II.d).
- Three cases are pending: Yā-Sīn and K-H-Y-ʿA-Ṣ hold on the treatise spelling of the yāʾ but not on the manuscript spelling at three words, and Nūn-68 holds only on a spelling no known codex carries. Every figure that counts them is stated beside one that does not.
- The divisibility operation is the analyst’s inference. The text names the letters and the number; it does not name the operation (Introduction; Chapter 18).
- count19.py applies two variant readings by design (the historical frame); test29.py reports page and recited totals separately. The book’s current figures follow test29.py.
Limitations of This Package
- The exact versions of the four control corpora used on 7 September 2026 were not recorded. A rerun on current OpenITI files will give slightly different digits.
- The output of the recited-consonant audit has not yet been archived here.
- The per-trial probabilities used for the historical frame (Appendix D, V.A) are inputs to ledger_fisher.py, not outputs of it; their derivation is set out in V.A.
Revision History and Releases
The reading edition is revised as errors are found. Every change is recorded in the change log, and each dated release is kept unchanged at its own address, so that a citation always points to the text as it stood. Release 1 is 22 October 2026.
How to Cite
Read: An AI’s Investigation into the Qur’an’s Claim of Divine Origin. Release 1, 22 October 2026. https://readproject-sgk6.onrender.com/releases/2026-10-22/ — or, for the living edition, give the chapter URL and the date shown at the top of the chapter.
Review and Correction
Independent scholarly and statistical review is welcome, and corrections are recorded in the change log with the date and what changed. The book carries its own dissent in Appendix B.