docs(coq): correct stale "only ONE case" claim in preservation PROOF STATUS#104
Merged
hyperpolymath merged 2 commits intoMay 20, 2026
Merged
Conversation
…STATUS
PR ephapax#92 honestly marked the preservation theorem `Admitted.`
after `coqc` rejected the `Qed.` for "remaining open goals". The
in-file comment at line 3269+ continued to claim "Only ONE case
remains open: S_Region_Step + T_Region_Active" — which is the
*language-design* bottleneck, but is NOT the actual goal count.
Diagnostic build (2026-05-20):
$ # Replace `Admitted.` with `Qed.`, insert before it:
$ # all: match goal with |- ?G => idtac G end.
$ coqc -Q . Ephapax Semantics.v 2>&1 | grep '^REMAINING' | wc -l
40
~40 goals remain open across many type-shape variants:
TBase TUnit, TBase TBool, TBase TI32, T0, TString, TFun,
TProd, TSum, TBorrow, TProd T T, …
These are mostly congruence-case failures, not the documented
S_Region_Step language-design item. The proof script's
IH-application pattern picks ANY `has_type` hypothesis in scope:
match goal with
| [ IH : forall _ _ _, _ -> exists _, _ |- _ ] =>
match goal with
| [ H : has_type _ _ _ _ _ |- _ ] => destruct (IH _ _ _ H) ...
With multiple inversion-introduced has_types in scope (one per
typing premise of each compound expression), it often picks the
wrong one, and the subsequent `eassumption` fails silently inside
`try solve [...]`.
Closing the additional ~40 goals is multi-day proof engineering:
each step-constructor's congruence case needs its IH applied to
the specific inner-expression typing (not just any has_type), then
the outer typing reconstructed by the matching typing constructor.
This commit just corrects the PROOF STATUS comment to reflect that
quantitative reality. No proof change.
Refs ephapax#92, standards#124.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirror the quantitative correction in the previous commit (in-file PROOF STATUS comment in Semantics.v) over to PROOF-NEEDS.md. The "Close the remaining open goals" bullet now states the count explicitly (~40), lists the ten type-shape variants from the diagnostic build, and characterises the work as multi-day proof engineering rather than a one-PR fix. Refs ephapax#92, standards#124. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 20, 2026
hyperpolymath
added a commit
that referenced
this pull request
May 21, 2026
…122) Closure sweep after PR #116 took preservation from 22 → 12 open goals and PR #121 landed Phase 1 scaffold. Updates the preservation-count claims across docs to reflect 12, and adds a CHANGELOG entry summarising the full 2026-05-20 → 2026-05-21 reduction campaign. ## Files updated | File | What changed | |---|---| | `README.adoc` | Coq formal-foundations paragraph; reduction chain now lists all 8 PRs through #121; clear pointer to ROADMAP closure plan | | `ROADMAP.adoc` | Formal-proof status table row (`12 open goals`); v0.1 blocker entry; v1.0 status; 97.6% → 98.7% reduction figure | | `EXPLAINME.adoc` | Coq theorem table; reduction-story bullets extended through #114, #116, #121 | | `CHANGELOG.md` | New "Proof state" + "Documentation" sections under `[Unreleased]` tracking the full PR chain (#92, #102, #104, #106, #114, #115, #116, #117, #121) + the Idris2 totality campaign (#89–#100) + doc/wiki refresh (#113 + wiki) | ## Companion wiki update `Home.md`, `Proof-status.md`, `What-can-go-wrong.md` updated in the wiki repo with the same 22 → 12 figures + extended reduction story. Pushed separately to wiki master. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Docs-only correction to the
PROOF STATUS [preservation]comment informal/Semantics.v(lines 3328+). PR #92 honestly marked preservationAdmitted.aftercoqcrejected theQed., but the earlier in-file comment at line 3269 continued to claim "Only ONE case remains open: S_Region_Step + T_Region_Active" — that's the language-design bottleneck, not the actual goal count.Diagnostic
40 goals remain open across many type-shape variants:
Root cause
These are mostly congruence-case failures, not the documented
S_Region_Steplanguage-design item. The proof script's IH-application pattern picks ANYhas_typehypothesis in scope:With multiple inversion-introduced
has_types(one per typing premise of each compound expression), it often picks the wrong one.eassumptionthen fails silently insidetry solve [...].What this PR does
Updates the
PROOF STATUScomment block at line 3328+ to:try solve [...]scaffolding fails (pattern picks wronghas_type)No proof change.
Admitted.remains;Qed.-proven supporting lemmas are stillQed..Verification
Refs
ephapax#92(honest framing of preservation Admitted)standards#124(proof-debt audit epic)Test plan
coqc -Q . Ephapax Semantics.vbuilds clean🤖 Generated with Claude Code