proof: evaluate short mappingChain reads#2091
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_6316e9db-9de9-4a1f-82e7-32170dae3339) |
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_b348186f-fc13-40c9-a71b-94fed156c35f) |
| \n### CI Failure Hints\n\nFailed jobs: `checks`\n\nCopy-paste local triage:\n```bash\nmake check\nlake build\nFOUNDRY_PROFILE=difftest forge test -vv\n``` |
…tAxioms totals) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_e8f4ce74-8f30-4397-aa0a-8c5d58ffc4d3) |
Summary
Expr.mappingChainreads, matching the existingmapping/mapping2slot bridge behaviorVerity.Core.Model.DenoteDenoteAgreementso the denotational evaluator remains checked againstSourceSemanticsRefs #2081.
Validation
lean-slot lake build Compiler.Proofs.IRGeneration.SourceSemanticslean-slot lake build Compiler.Proofs.IRGeneration.DenoteAgreementgit diff --checkrg -n "\\bsorry\\b|\\badmit\\b|^\\s*axiom\\b" Compiler/Proofs/IRGeneration/SourceSemantics.lean Verity/Core/Model/Denote.lean Compiler/Proofs/IRGeneration/DenoteAgreement.leanRemaining blockers
mappingChainreads are still deferred; they need shared list-recursion infrastructure for evaluating arbitrary key lists without restructuring the large evaluator unsafely.Note
Low Risk
Proof-layer semantic extensions only; no runtime auth or IO. Remaining gap for 3+ key reads is unchanged and documented.
Overview
Implements one-key and two-key
Expr.mappingChainread semantics inSourceSemantics, aligned with existingmapping/mapping2slot hashing viaabstractMappingSlot. The denotation interpreter inVerity.Core.Model.Denotemirrors the same cases (oraclemappingSlotinstead ofabstractMappingSlot).DenoteAgreementsplits the old catch-allmappingChainarm: empty lists and three-or-more keys stay unsupported (rfl); singleton and pair reads usebindAgreelike other keyed expressions. PrivateevalExpr_mappingChain_singleton/_pairrfllemmas andPrintAxiomsentries track the new proof surface.Documentation now states that only 0- and 3+-key chain reads remain outside the denotation fragment; 1- and 2-key reads are in scope. Arbitrary longer chains are still explicitly deferred pending list-recursion infrastructure.
Reviewed by Cursor Bugbot for commit 692253e. Bugbot is set up for automated code reviews on this repo. Configure here.