Repository navigation
Conversation
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.
Problem
least(lo, xs)from #1483 checks in Bend, but its type-onlyList.all(~…, ~(y => Nat.is_le(lo, y)), xs)is dropped by the BendTT translator because the template lambda captureslo. Consequently even the universally validleast_nil(lo)fails--verdict.Fixes #1483.
Change
No edit to
bend.ts,bendtt.lean, gates, allow list or token caps. The existing live-code rule still rejects template arguments that depend on run-time variables.Evidence
Actual unchanged native BendTT kernel, byte-identical to the current-main Lean source; Bun 1.3.13 on Linux x64.
--check-onlyexits 0;--verdictexits 1; emitted module omitsleastandleast_nilas out of scope.--verdictexits 0 and emits both definitions without out-of-scope omissions.2 <= 1yielding False and separate lower/upper captures rather than only vacuous empty-list checks.[0]validates; lower bound 1 with[0]is rejected, exit 1. This checks preservation of the captured argument, not merely successful elaboration.template_law,fold_assoc,model_lambdasandmodel_orderretain successful actual kernel verdicts before/after.Limits
Mini-cluster/GPU were not run. This does not solve the separate opaque higher-order-template problem #1182, and no full bend-mathlib verdict is claimed. Non-Data captures are not made duplicable: the unchanged kernel remains authoritative for their quantity/type admissibility. The standard output-only gate is not claimed to run the proof kernel; the actual before/after
--verdictruns above are the kernel regression evidence.