Skip to content

Verify explicit dictionary bodies before accepting elaboration - #6286

Open
runarorama wants to merge 1 commit into
gh/runarorama/18/basefrom
gh/runarorama/18/head
Open

runarorama wants to merge 1 commit into
gh/runarorama/18/basefrom
gh/runarorama/18/head

Conversation

@runarorama

@runarorama runarorama commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Stack from ghstack (oldest at bottom):

Add a verifier that lowers implicit type arrows to ordinary arrows and checks rewritten bodies against their claimed stored signatures. Lower term annotations and the complete type lookup consistently. Recheck the whole binding group so inserted dictionary dependencies determine the resulting components.

This is an internal prerequisite for enabling elaboration. The caller must use the recomputed component groups while retaining the original qualified signatures, whose lowered forms have now been checked.

Seven focused regressions pass: correct qualified lambdas and explicit applications, wrong or missing dictionary arguments, nested annotations, recomputed recursive components, and rejection of a Nat body claimed to have type forall a. a. The last case reproduces the soundness failure found in #6238. Full validation is recorded in the proof files before publication.

Full validation: all 13 unit suites, 22 CLI integration tests, 391 transcripts, edit/load round trips, manual rewrites, docs HTML generation, compiled fix5507 regression, and formatting passed.

[ghstack-poisoned]
This was referenced Sep 30, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant