Skip to content

Commit eb53472

Browse files
Add detailed explanation for claims in README (#132)
This document provides a detailed explanation of the claims made in README.adoc, including implementation details and caveats for various proofs and concepts related to CNO and OND. <!-- SPDX-License-Identifier: CC-BY-SA-4.0 Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> --> ## Summary <!-- What does this PR do, and why? --> Closes # ## Type of change - [ ] 🐛 Bug fix (non-breaking change that fixes an issue) - [ ] ✨ New feature (non-breaking change that adds functionality) - [ ] 💥 Breaking change (would change existing behaviour) - [ ] 🕳️ Soundness fix (fixes a checker/proof false-negative) - [ ] 📖 Documentation - [ ] 🧹 Refactor / tech debt (behaviour-preserving) - [ ] ⚡ Performance - [ ] 🔧 Build / CI / tooling ## How has this been verified? <!-- Establish ground truth: which tool did you RUN, and what did it report? Don't cite a status doc — cite the command and its output. --> ## Checklist - [ ] My commits are **signed** (`git commit -S`). - [ ] I ran the project's own checks/tests locally and they pass. - [ ] New files carry the correct `SPDX-License-Identifier` (code/config `MPL-2.0`, prose `CC-BY-SA-4.0`); I did not relicense existing files. - [ ] Docs are updated, and no public claim now overstates what the code does. - [ ] I have not introduced a soundness hole (or I have flagged where I might have). ## Notes for reviewers <!-- Anything that needs special attention, follow-up, or context. --> Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
1 parent 02e6b11 commit eb53472

1 file changed

Lines changed: 158 additions & 0 deletions

File tree

EXPLAINME.adoc

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
// SPDX-License-Identifier: MPL-2.0
2+
= Absolute Zero — EXPLAINME
3+
:toc: preamble
4+
:toc-title: Contents
5+
:icons: font
6+
:doctype: article
7+
8+
This file backs every factual claim in link:README.adoc[README.adoc] with code paths and honest caveats. Read it if you are doing due diligence on whether the story matches the code.
9+
10+
== Claim-to-implementation map
11+
12+
=== CNO and OND are logically independent
13+
14+
[quote, README.adoc]
15+
____
16+
The two pillars are logically independent (a proved theorem, with witnesses).
17+
____
18+
19+
How this is implemented::
20+
The independence theorem is proved in Coq, anchored to the core `is_CNO` definition. Witnesses demonstrating that CNO does not entail OND and OND does not entail CNO are constructed.
21+
22+
Caveat::
23+
None currently known for the independence proof itself. However, the *coupling dial* between them (connecting a thing to the trace it casts) is explicitly framing, not theorem.
24+
25+
=== OND-1..5 are proved with zero axioms
26+
27+
[quote, README.adoc]
28+
____OND obligations OND-1..5 are proved with zero axioms in Coq (proofs/coq/ond/OND.v, every theorem Closed under the global context)____
29+
30+
How this is implemented::
31+
`link:proofs/coq/ond/OND.v[]` contains the proofs. CI verifies that the global context is closed (no axioms admitted). Mirrored in Lean 4, Agda, and Z3.
32+
33+
Caveat::
34+
OND proofs are axiom-free *relative to the declared observation model `O`*. The choice of `O` is a proof input, not a proof output. If `O` omits a real-world observable channel (e.g., power analysis), the OND proof is sound but physically incomplete. The residue list in `link:proofs/residue/[]` records this gap.
35+
36+
=== Coq CNO: 115 Qed, 0 Admitted, 61 Axioms
37+
38+
[quote, README.adoc]
39+
____115 Qed / 0 Admitted / 61 Axioms across 13 files — every theorem is discharged (no Admitted), but the development rests on 61 Coq + 52 Lean axioms.____
40+
41+
How this is implemented::
42+
`link:proofs/coq/[]` contains all CNO theories. CI runs `coq_makefile` and confirms Qed counts and axiom counts. The axioms are domain-specific assumptions (quantum-gate unitarity, complex-analysis identities, Shannon-entropy non-negativity, filesystem inverse laws) that are *assumed* but not derived within Coq.
43+
44+
Caveat::
45+
**This is not an axiom-free machine-checked proof.** "Machine-checked" here means the proof is valid *assuming the axioms hold*. If an axiom is false in the intended model, the theorem fails. The 61 Coq + 52 Lean axioms represent the proof debt. Discharging them (especially quantum unitarity and filesystem inverse laws) is the next major obligation.
46+
47+
=== Multi-prover verification across six systems
48+
49+
[quote, README.adoc]
50+
____Verify CNO properties in six independent proof systems.____
51+
52+
How this is implemented::
53+
Artefacts exist for Coq, Lean 4, Agda, Z3, Isabelle, and Mizar in `link:proofs/[]`. `link:proofs/verify-all-provers.sh[]` orchestrates verification. CI gates Coq, Lean 4, and Agda.
54+
55+
Caveat::
56+
**Z3, Isabelle, and Mizar are generated but not yet run in CI.** The artefacts exist but are not evidence until machine-executed and green. The "six prover" claim describes the target architecture, not the current CI gate.
57+
58+
=== Thermodynamic reversibility follows from Landauer's principle
59+
60+
[quote, README.adoc]
61+
____ThermodynamicallyReversible(p) — Zero energy____
62+
63+
How this is implemented::
64+
`link:proofs/coq/physics/StatMech.v[]` and `link:proofs/lean4/StatMech.lean[]` formalise Landauer's principle and Bennett's reversible computing, proving CNOs dissipate zero energy because they erase no information.
65+
66+
Caveat::
67+
The physics formalisation relies on axioms about the physical model (e.g., that the thermodynamic system satisfies the assumptions of Landauer's principle). This is standard for formalisations of physics, but the gap between the mathematical model and physical metal is real.
68+
69+
=== CNO verification is undecidable in general
70+
71+
[quote, README.adoc]
72+
____The problem "Is program p a CNO?" is undecidable in general.____
73+
74+
How this is implemented::
75+
Proved by reduction from the halting problem. Constructive witness: the ability to decide CNO-ness would decide halting.
76+
77+
Caveat::
78+
This is a standard result. The practical consequence is that the verified CNOs in this repo are specific programs or finite-state classes, not arbitrary input programs.
79+
80+
== Dogfooded Across The Account
81+
82+
[cols="1,2,2", options="header"]
83+
|===
84+
| Technology / Pattern | Used here | Also used in
85+
86+
| Coq CNO/OND formalisation
87+
| `proofs/coq/`
88+
| link:https://github.com/hyperpolymath/echo-types[echo-types] (EchoCNOBridge)
89+
90+
| Multi-prover pattern
91+
| Six provers + Idris ABI
92+
| link:https://github.com/hyperpolymath/kategoria[Kategoria] (Route δ)
93+
94+
| OND residue-list honesty
95+
| `proofs/residue/`
96+
| link:https://github.com/hyperpolymath/epistemic-types[epistemic-types] (proof transport)
97+
|===
98+
99+
== Known gaps
100+
101+
[CAUTION]
102+
====
103+
**61 Coq + 52 Lean axioms are unproven.** The CNO pillar is machine-checked *relative to these axioms*. Key axioms: quantum-gate unitarity, complex-analysis identities, Shannon-entropy non-negativity, filesystem inverse laws. Discharging these is the next major obligation.
104+
====
105+
106+
[CAUTION]
107+
====
108+
**Z3, Isabelle, and Mizar artefacts are not run.** They exist in-tree but are not part of the CI gate. Only Coq, Lean 4, and Agda are currently machine-checked evidence.
109+
====
110+
111+
[CAUTION]
112+
====
113+
**OND-6 (conditional composition) is open.** OND-1..5 are proved. The capstone composition theorem is deferred.
114+
====
115+
116+
[CAUTION]
117+
====
118+
**OND proofs are conditional on declared `O`.** An OND certificate is valid only for the observables in `O`. Out-of-scope channels (timing, power, cache, EM radiation) are listed in the residue, not blocked by the proof.
119+
====
120+
121+
[CAUTION]
122+
====
123+
**CNO↔OND coupling dial is framing, not theorem.** The connection between a thing and the trace it casts to an observer is a conceptual bridge, not a formal result.
124+
====
125+
126+
== Evidence Index
127+
128+
[cols="2,3", options="header"]
129+
|===
130+
| Path | Proves
131+
132+
| `proofs/coq/common/CNO.v`
133+
| Core CNO framework (115 Qed, 61 Axioms)
134+
135+
| `proofs/coq/ond/OND.v`
136+
| OND-1..5 (zero axioms)
137+
138+
| `proofs/coq/physics/StatMech.v`
139+
| Landauer's principle, thermodynamic reversibility
140+
141+
| `proofs/coq/category/CNOCategory.v`
142+
| Universal CNO definition, model independence
143+
144+
| `proofs/lean4/`
145+
| Lean 4 mirrors (Phases 1–4, 52 Axioms)
146+
147+
| `proofs/agda/`
148+
| Agda Phase 1
149+
150+
| `proofs/verify-all-provers.sh`
151+
| One-shot gate script
152+
153+
| `proofs/observation-models/`
154+
| Declared `O` inputs for OND
155+
156+
| `proofs/residue/`
157+
| OND residue lists (out-of-scope observables)
158+
|===abc def ghi jkl mno pqr stu

0 commit comments

Comments
 (0)