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: A10 — close last two deferred proof-debt items (L12 propagation + compatCommute)
Closes the remaining named "deferred" items in PROOF-NEEDS and LEVEL-STATUS,
leaving the proof-side envelope clean except for the explicitly-tracked
"stronger LevelAttestation reindexed by witness" research item.
Epistemic.idr (closes PROOF-NEEDS §P1.2 + LEVEL-STATUS row 12 "Full
freshness propagation under concurrent writes deferred"):
- freshImpliesEqual / staleImpliesLT — projectors out of Fresh/Stale
- freshNotStale — mutual exclusion (via local ltIrreflexive)
- concurrentWriteStales — Fresh at v + LT v v' -> Stale at (v, v')
- resyncRecoversFresh — Stale + Sync -> Fresh
- freshnessPropagatesUnderWrites (flagship) — Fresh -> LT -> Sync -> Fresh
- syncChainEndsFresh — two-step sync chain
- epistemicFreshness — named projector on Level12Proof
MultiModule.idr (closes PROOF-NEEDS §P0.5 paragraph 246 "compatCommute is
NOT proven"):
- compatCommute — ModuleCompat from to imp exp -> SchemaSub exp imp
-> ModuleCompat to from exp imp
- noSpoofingBidir — bidirectional field-transport pair
- Example.serviceA/serviceB worked example — permuted-schema pair where
both SchemaSub directions hold, demonstrating compatCommute on real input
tests/proof/regression.mjs:
- 11 new theorem-presence assertions (Layer 1 grep) covering the new
Epistemic + MultiModule entries
- Layer 2 invocation fixed: `idris2 --check typed-wasm.ipkg` was a no-op
(Idris2 tries to parse the .ipkg as an .idr source file); changed to
`--build` which is what the docstring describes
Build: `idris2 --build typed-wasm.ipkg` clean — all 21 modules → TTC,
zero believe_me / assert_total / postulate / sorry, %default total
preserved. Regression suite: 39 passed / 0 failed (38 Layer 1
theorem-presence + 1 Layer 2 build). Aspect (57/0) + security (10/0)
envelopes green.
L15-C surface-checker enforcement remains a separate follow-on item
(LEVEL-STATUS row 15 already notes the proof side carries the theorem;
the surface checker requires call-graph extraction in Checker.affine plus
parity tests with the existing 13 L15-A/B tests — feature work outside
proof-debt scope).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| 12 | Epistemic safety | Epistemic.idr | Not yet | None |**In package (A1, 2026-04-18); `writerKnowsFresh`, `freshOrStale`, `syncRestoresFresh` theorems live. Full freshness propagation under concurrent writes deferred.**|
57
+
| 12 | Epistemic safety | Epistemic.idr | Not yet | None |**In package (A1, 2026-04-18); A10 (2026-05-26) closes the previously-deferred "freshness propagation under concurrent writes" gap with the flagship `freshnessPropagatesUnderWrites` plus the supporting `concurrentWriteStales`, `resyncRecoversFresh`, `freshNotStale`, `freshImpliesEqual`, `staleImpliesLT`, `syncChainEndsFresh`, and the `epistemicFreshness` projector (closes PROOF-NEEDS §P1.2 "Level12Proof implies freshness"). 11 named theorems total.**|
| MultiModule.idr | 0 | 0 | 0 | In package. Flagship no-spoofing theorem proven A6 (2026-04-18): `FieldMatches`, `SchemaSub` preorder (`schemaSubRefl`, `schemaSubTrans`), `ModuleCompat` indexed on modules + schemas (`compatRefl`, `compatTrans`), and the flagship `noSpoofing : ModuleCompat from to imp exp -> FieldMatches f imp -> FieldMatches f exp`. Worked Rust-exports / AffineScript-imports example (4-field export, 2-field import subset) constructs a live certificate and applies the theorem. |
99
+
| MultiModule.idr | 0 | 0 | 0 | In package. Flagship no-spoofing theorem proven A6 (2026-04-18): `FieldMatches`, `SchemaSub` preorder (`schemaSubRefl`, `schemaSubTrans`), `ModuleCompat` indexed on modules + schemas (`compatRefl`, `compatTrans`), and the flagship `noSpoofing : ModuleCompat from to imp exp -> FieldMatches f imp -> FieldMatches f exp`. Worked Rust-exports / AffineScript-imports example (4-field export, 2-field import subset) constructs a live certificate and applies the theorem. A10 (2026-05-26) closes the deferred `compatCommute` item: mutual-subschema commutativity `compatCommute : ModuleCompat from to imp exp -> SchemaSub exp imp -> ModuleCompat to from exp imp`, plus the `noSpoofingBidir` corollary returning a pair of field-transport functions. Second worked example (`serviceA`/`serviceB` with permuted schemas) demonstrates `compatCommute` on a case where both `SchemaSub` directions hold. |
| 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. |
0 commit comments