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
docs(proof): PROOF-NEEDS §5 — ground-truthed L1 status + closure plan + foundation audit (2026-06-16)
Add a dated status+plan section (§5) recording the coqc/grep-verified state of
the four L1 admits (region_shrink dissolves via tropical carrier; region_liveness
false→repaired; step_pop = the 9-case eliminator fork; preservation_l1 capstone),
the committed choreographic-tropical closure route, the Idris2 ABI proof-needs
axis (E1–E6, E5 highest-leverage), the foundation trust-audit GO, and two
threatened CI gates.
Also corrects a real main-wide count drift surfaced by the sweep: step_pop carries
an outer Admitted on main too, so formal/ holds 5 outer Admitted (1 legacy + 4 L1),
not the 4 the §4 status-gate marker + prose claimed. Marker 4→5 and the per-file
table row 3→4 corrected to match coqc/grep ground truth; §5.2 is now authoritative
for current line numbers. The companion fix/proof-gates PR repairs + wires the gate.
Companion plan docs (L1-REGION-REFOUNDATION-PLAN.md, L1-ELIMINATOR-FORK.md) are in PR #299.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|`formal/TypingL1.v`|**2**| 0 | ✅ active — L1 judgment, modality-indexed |
259
-
|`formal/Semantics_L1.v`|**37+**|**3**| ✅ active — Phase 3b Stage 1a + 1b landed via PRs #252 + #253. 3 outer `Admitted.` markers cover 4 internal `admit.` cases. See seam audit below for current line numbers.|
263
+
|`formal/Semantics_L1.v`|**37+**|**4**| ✅ active — Phase 3b Stage 1a + 1b landed via PRs #252 + #253. **4** outer `Admitted.` markers — the four open L1 lemmas (`region_shrink` / `region_liveness` / `step_pop` / `preservation_l1`). **Corrected 2026-06-16 from `3` (the `step_pop` marker was missed). §5.2 has the authoritative current line numbers + the 13 internal `admit.` cases; the 2026-06-01 line numbers in the seam audit below are superseded.**|
260
264
|`formal/Modality.v`|**1**| 0 | ✅ active — L2 core, zero axioms (`linear_to_affine`) |
261
265
|`formal/Echo.v`|**12**| 0 | ✅ active — L3 calculus mechanised |
262
266
|`formal/TypingL2.v`|**10**| 0 | ✅ active — `weaken_modality` (+ Affine_id + 3 `_le_*` variants), `preservation_l2_via_l1` (conditional on `preservation_l1`), `linear_value_retype_l1_m`, and 3 β-case lemmas (`preservation_l2_app_eff_beta_linear`, `_ground_nonlinear`, `_tfuneff` conditional on Stage 1b side conditions). NOT a wrapper. |
@@ -324,6 +328,154 @@ are all `admit.`-free.
324
328
325
329
---
326
330
331
+
## §5. Closure plan + current-branch state + foundation audit (2026-06-16)
332
+
333
+
> This section is a dated **status + plan** snapshot. It does **not**
334
+
> supersede §1–§4 (which track `main`); it records (a) the authoritative
335
+
> ground-truthed admit set on the current proof branch, (b) the committed
336
+
> closure route, and (c) the independent trust audit of the foundation
337
+
> repos the route builds on. Sourced from a ground-truth sweep
338
+
> (`coqc`/`grep`-verified, not doc-trusted), not from prose.
339
+
>
340
+
> **Companion design docs**`L1-REGION-REFOUNDATION-PLAN.md` and
341
+
> `L1-ELIMINATOR-FORK.md` (referenced below) live in **PR #299**
342
+
> (branch `docs/l1-closure-research`), pending merge to `formal/`. The
343
+
> tropical applicability case study is `tropical-resource-typing` PR #21
| 2 |`region_liveness_at_split_l1_gen`|`Semantics_L1.v:1904`|`:1956`, `:1976`|**provably FALSE** as written (witness `ERegion rv (EI32 5)` at `R=[rv]`) |**Repaired** — restate as graded `live R rv ∧ no-exit-of-rv ⇒ live R' rv`; prove from `count_occ_le_l1_m` monotonicity + ~13-site call audit. `L1-REGION-REFOUNDATION-PLAN.md §5`|
373
+
| 3 |`step_pop_disjoint_from_type_l1`|`Semantics_L1.v:3106`|**~9–11** across every eliminator/erasing context (`S_App_Step2`, `S_Pair_Step2`, `S_Inl/Inr_Step`, `S_Case_Step`, `S_Let_Step`, `S_Region_Step`) — all blocked on the §4.8 lambda-rigidity gap |**the eliminator fork**|**Open research** — choreographic typing across time segments, used foundationally. `L1-ELIMINATOR-FORK.md`|
374
+
| 4 |`preservation_l1` (capstone) |`Semantics_L1.v:3367`|`:3379`|**gated** on 1–3 | follows once 1–3 land |
375
+
376
+
`preservation_l3` (`Semantics_L1.v`, **Qed**) is real and depends on **only**
377
+
admit #1 (`region_shrink`); it flips **unconditional** the moment #1 closes.
378
+
`L4.v` is **scaffold-unbuilt** (`ProgramMode` + round-trip mapping;
379
+
definitions only, no theorems — not debt, just not yet built). No hidden 5th
380
+
admit, no `Axiom`/`Parameter`/`Hypothesis` smuggled assumption, no fake-`Qed`
381
+
was found anywhere in `formal/*.v`.
382
+
383
+
### 5.3 Idris2 ABI proof needs (a separate axis from the Coq L1 admits)
384
+
385
+
`src/abi/Ephapax/ABI/Invariants.idr` states six compiler-correctness
386
+
invariants as **erased (0-quantity) postulates**, each an explicit *owed*
387
+
forward to a discharging proof:
388
+
389
+
| ID | Invariant | Status |
390
+
|---|---|---|
391
+
| E1 | Type preservation (operational) |**owed** — forwards to Coq `preservation` (legacy is false; real obligation is `preservation_l1`) |
392
+
| E2 | Linear consumption across control flow | E2a position-form **DISCHARGED** (`splitLinearCoverage`, Qed, `Formal/Qualifier.idr`); E2b control-flow form **owed**|
393
+
| E3 | No region escape | static/type-level **DISCHARGED** (`noEscapeTheorem`, Qed, `Formal/RegionLinear.idr`); operational form **owed**|
394
+
| E4 | No runtime GC |**owed + flagged** — `noGCExtract` is a **tautological/vacuous wrapper** (returns inputs unchanged), not a proof |
0 commit comments