Commit 9974773
committed
proof(L1): choreographic experiment 2 — non-collapsed trace model closes the congruence fork in-model
Continues the choreographic re-derivation route for the eliminator fork
(the single invariant the two open L1 admits share). Experiment 1
(formal/L1ChoreoExperiment.v) returned "relocates" and its own honest-gaps
section prescribed the next move: build a NON-collapsed apparatus and aim
it at the CONGRUENCE cases (S_Let_Step / S_App_Step2 / S_Pair_Step2 /
S_Case_Step — inner pop erased from the outer result type), not the clean
ERegion exit (already Qed).
formal/L1ChoreoExperiment2.v does exactly that. It models one region's
lifecycle as a Trace of Open/Close/Use events relative to the subterm
structure, run from k = cnt rv R. The trace keeps the same balance the
scalar cnt rv R keeps but ALSO keeps the order, which separates two
configurations the snapshot conflates at the e1/e2 boundary:
- internal scope (stepping sibling rv-net-neutral) => surviving sibling
coherent at the original k [congruence_internal_scope_carries];
- escaping close (stepping sibling closes an outer rv the surviving
sibling still uses) => impossible in a coherent trace: the post-step
balance is forced >= 1 [sibling_use_keeps_region_live].
sibling_use_keeps_region_live is precisely the obligation
step_pop_disjoint_from_type_l1 relocates to (In rv (free_regions T) ->
In rv R -> In rv R'), proved here as a pure structural fact, NON-circularly
(no appeal to preservation). The snapshot cannot state it because it
carries only the final balance, not the witness that the Use is ordered
after the stepping sibling.
Verdict for the congruence cases is upgraded from "relocates" to "closes
in the trace model, reduced to ONE wiring lemma" (wiring_obligation: typing
=> valid trace at k = cnt rv R), with experiment 1's re-entry failure mode
provably absent (valid is defined to permit re-entry). The wiring lemma is
plausibly a structural induction on the typing derivation, not a
preservation-strength obligation — that is the precise next target.
Honest status: this closes NO admit and adds NO axiom. The 3 outer
Admitted markers (Semantics.v legacy + step_pop + preservation_l1) are
unchanged; it is the consolidation/sharpening step that names the next
target.
## Verification
- coqc 8.18.0 builds all of formal/ clean (exit 0); full project rebuild green.
- Print Assumptions on every new lemma (congruence_internal_scope_carries,
sibling_use_keeps_region_live, congruence_dichotomy,
step_pop_obligation_holds_in_trace_model, wiring_discharges_step_pop_holds):
"Closed under the global context" — axiom-free and admit-free.
- Outer Admitted markers unchanged: Semantics.v:1 + Semantics_L1.v:2 = 3
(matches PROOF-NEEDS.md §4 status-gate marker).
## Docs
- formal/L1-ELIMINATOR-FORK.md: new §9 recording experiment 2's result.
- formal/L1ChoreoExperiment.v: forward-reference from honest-gaps §2.
- PROOF-NEEDS.md §5.4: route step 2b added; §1 row corrected to ground truth.
- TEST-NEEDS.md / PROOF-NEEDS.md §1: stale admit counts (4/5) corrected to
verified ground truth (3 total, 2 in Semantics_L1.v at lines 3315/3336).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGFqWzByua4dKbA7W7oVsL1 parent 02bf873 commit 9974773
6 files changed
Lines changed: 382 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| |||
425 | 425 | | |
426 | 426 | | |
427 | 427 | | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
428 | 443 | | |
429 | 444 | | |
430 | 445 | | |
431 | 446 | | |
432 | | - | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
433 | 451 | | |
434 | 452 | | |
435 | 453 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
41 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
42 | 44 | | |
43 | 45 | | |
44 | 46 | | |
| |||
52 | 54 | | |
53 | 55 | | |
54 | 56 | | |
55 | | - | |
| 57 | + | |
56 | 58 | | |
57 | 59 | | |
58 | 60 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
190 | 194 | | |
191 | 195 | | |
192 | 196 | | |
| |||
0 commit comments