You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
proof: A11 — tighten WriteSync/Observed + first composeCertificates laws
A11 attacks 3 of the 8 untracked proof debts surfaced by the A10
post-mortem audit (project_typed_wasm_proof_debt_post_a10.md):
Item 1 (CLOSED) — Sync.WriteSync no longer admits fake writers.
Constructor now requires a FieldVersion witness with three projection
equalities (fv.field, fv.version, fv.lastWriter). Corollary
writeSyncIdentifiesWriter extracts the witness. Adversarial
"WriteSync (MkFieldVersion otherField otherVer otherMod) Refl Refl
Refl" is now ill-typed unless the three coincide with the indexed
field/version/writer.
Item 2 (CLOSED) — Knowledge.Observed grounded in a Sync event.
Constructor now takes (sync : Sync mod field oldVer ver) so the
proposition cannot be inhabited without a causally-prior write.
observedHasProvenance reads the witness back out.
Item 4 (PARTIAL) — composeCertificates algebraic laws.
Proves achievedAppendSplit (LevelAchievedIn over ++), composeAssocLists
(list-level associativity), and composeAchievedSym (symmetric of
composeAchievedL/R). The Nat-min highestProven commutativity is
DEFERRED to A12: Prelude.min Nat is non-structural
(if x < y then x else y) and does not reduce to Refl on symbolic
inputs.
5 new theorems added, all guarded by tests/proof/regression.mjs Layer 1
grep + Layer 2 --build. Total: 44/44 passing.
Items 3, 5, 6, 7, 8 from the post-A10 audit remain open and inherit to
A12. See PROOF-NEEDS.md "RECONCILIATION 2026-05-26 (A11 follow-up)"
for the full reconciliation and the rationale for deferring item 4's
Nat-min half.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| Proofs.idr | 0 | 0 | 0 | In package. Attestation API hardened A7 (2026-04-18): every L1-L10 attestation now requires a witness from its level module (Schema / FieldIn / WasmTypeCompat / Ptr-NonNull / InBounds / AccessResult / ExclusiveWitness / EffectSubsumes / Lifetime.Outlives / CompletedProtocol). `simpleReadCert` / `fullCert12` / `fullCert15` thread witnesses per level; the certificate cannot be constructed without real proof artefacts. Level-achievement layer added A8 (2026-04-18): `LevelAchievedIn` predicate, `achievedAppendL` / `achievedAppendR` list-append preservation, `LevelAchieved n cert` lifted to certificates, `composeAchievedL` / `composeAchievedR` proving any level achieved in either component of `composeCertificates` is still achieved in the composition. |
104
+
| Proofs.idr | 0 | 0 | 0 | In package. Attestation API hardened A7 (2026-04-18): every L1-L10 attestation now requires a witness from its level module (Schema / FieldIn / WasmTypeCompat / Ptr-NonNull / InBounds / AccessResult / ExclusiveWitness / EffectSubsumes / Lifetime.Outlives / CompletedProtocol). `simpleReadCert` / `fullCert12` / `fullCert15` thread witnesses per level; the certificate cannot be constructed without real proof artefacts. Level-achievement layer added A8 (2026-04-18): `LevelAchievedIn` predicate, `achievedAppendL` / `achievedAppendR` list-append preservation, `LevelAchieved n cert` lifted to certificates, `composeAchievedL` / `composeAchievedR` proving any level achieved in either component of `composeCertificates` is still achieved in the composition. A11 (2026-05-26): partial laws for `composeCertificates` itself — `achievedAppendSplit` decomposes a `LevelAchievedIn n (xs ++ ys)` into one side; `composeAssocLists` proves the list-level associativity of three-way composition; `composeAchievedSym` is the symmetric counterpart of `composeAchievedL`/`R`, recovering the achieved-side from a composed certificate. |
| Epistemic.idr | 0 | 0 | 0 | In package (A1, 2026-04-18). A10 (2026-05-26): propagation theorems added — `freshImpliesEqual`, `staleImpliesLT`, `freshNotStale` (mutual exclusion via local `ltIrreflexive`), `concurrentWriteStales`, `resyncRecoversFresh`, the flagship `freshnessPropagatesUnderWrites`, `syncChainEndsFresh`, and the `epistemicFreshness` projector on `Level12Proof` (closes PROOF-NEEDS §P1.2). |
106
+
| Epistemic.idr | 0 | 0 | 0 | In package (A1, 2026-04-18). A10 (2026-05-26): propagation theorems added — `freshImpliesEqual`, `staleImpliesLT`, `freshNotStale` (mutual exclusion via local `ltIrreflexive`), `concurrentWriteStales`, `resyncRecoversFresh`, the flagship `freshnessPropagatesUnderWrites`, `syncChainEndsFresh`, and the `epistemicFreshness` projector on `Level12Proof` (closes PROOF-NEEDS §P1.2). A11 (2026-05-26): constructor-tightening pass — `WriteSync` now demands a `FieldVersion` witness with three equality components (`field`/`version`/`lastWriter`), and `Knowledge.Observed` is grounded in a `Sync` event (no more unfounded versions). Corollaries: `writeSyncIdentifiesWriter` returns the `FieldVersion` (+ the three projections) for an explicit-or-implicit Sync; `observedHasProvenance` extracts the witnessing prior-version and `Sync` from any `Observed` value. |
0 commit comments