Skip to content

fix: make lia and Nat offset simproc proofs cheap to check in the kernel - #16319

Open
leodemoura wants to merge 1 commit into
masterfrom
lia-kernel-timeout
Open

leodemoura wants to merge 1 commit into
masterfrom
lia-kernel-timeout

Conversation

@leodemoura

Copy link
Copy Markdown
Member

This PR changes the proofs produced by lia, grind, and the Nat offset simprocs so that the kernel no longer has to evaluate their arithmetic atoms. Before, for goals containing terms such as (x + 4294967295) % 4294967296, the kernel ran in unary Nat arithmetic and failed to check the proofs in practice. Closes #16311.

🤖 Generated with Claude Code

… kernel

This PR changes the proofs produced by `lia`, `grind`, and the `Nat` offset simprocs so that the kernel no longer has to evaluate their arithmetic atoms. Before, for goals containing terms such as `(x + 4294967295) % 4294967296`, the kernel ran in unary `Nat` arithmetic and failed to check the proofs in practice. Closes #16311.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@leodemoura
leodemoura requested a review from kim-em as a code owner November 6, 2026 14:29
@leodemoura leodemoura added the changelog-tactics User facing tactics label Nov 6, 2026
@leodemoura
leodemoura enabled auto-merge November 6, 2026 14:29
@leodemoura
leodemoura added this pull request to the merge queue Nov 6, 2026
@github-actions github-actions Bot added the toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN label Nov 6, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Nov 6, 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

changelog-tactics User facing tactics toolchain-available A toolchain is available for this PR, at leanprover/lean4-pr-releases:pr-release-NNNN

Projects

None yet

Development

Successfully merging this pull request may close these issues.

lia proof using Nat.Simproc.add_le_add_le takes kernel time linear in a numeric literal

1 participant