Skip to content

fix: if _ : p ... syntax in new do elaborator#13192

Merged
sgraf812 merged 2 commits intomasterfrom
sg/fix-dite-new-do
Mar 30, 2026
Merged

fix: if _ : p ... syntax in new do elaborator#13192
sgraf812 merged 2 commits intomasterfrom
sg/fix-dite-new-do

Conversation

@sgraf812
Copy link
Copy Markdown
Contributor

This PR fixes the handling of anonymous dependent if (if _ : cond then ... else ...) inside do blocks when using the new do elaborator.

The _%$tk binder pattern was incorrectly quoted as $(⟨tk⟩):hole in the generated dite syntax, causing "elaboration function for termDepIfThenElse has not been implemented" errors. The fix quotes it correctly as _%$tk.

A test case is added to verify both anonymous (if _ : ...) and named (if h : ...) dependent if work in do blocks.

@sgraf812 sgraf812 added the changelog-language Language features and metaprograms label Mar 30, 2026
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sgraf812 sgraf812 force-pushed the sg/fix-dite-new-do branch from a03a6c6 to 5d21b9e Compare March 30, 2026 16:28
@sgraf812 sgraf812 added this pull request to the merge queue Mar 30, 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 Mar 30, 2026
@mathlib-lean-pr-testing
Copy link
Copy Markdown

Mathlib CI status (docs):

  • ❗ Batteries/Mathlib CI will not be attempted unless your PR branches off the nightly-with-mathlib branch. Try git rebase 22308dbaaaf5763a2298a72c0f5d60a59f0fde01 --onto 4786e082dca22873d14d2a5b9b7c8843380c6e78. You can force Mathlib CI using the force-mathlib-ci label. (2026-03-30 17:17:31)

@leanprover-bot
Copy link
Copy Markdown
Collaborator

Reference manual CI status:

  • ❗ Reference manual CI will not be attempted unless your PR branches off the nightly-with-manual branch. Try git rebase 22308dbaaaf5763a2298a72c0f5d60a59f0fde01 --onto cfa8c5a036d6990635c6ec50b02d0e806995cec3. You can force reference manual CI using the force-manual-ci label. (2026-03-30 17:17:32)

Merged via the queue into master with commit 313abdb Mar 30, 2026
19 checks passed
volodeyka pushed a commit that referenced this pull request Apr 16, 2026
This PR fixes the handling of anonymous dependent `if` (`if _ : cond
then ... else ...`) inside `do` blocks when using the new do elaborator.

The `_%$tk` binder pattern was incorrectly quoted as `$(⟨tk⟩):hole` in
the generated `dite` syntax, causing "elaboration function for
`termDepIfThenElse` has not been implemented" errors. The fix quotes it
correctly as `_%$tk`.

A test case is added to verify both anonymous (`if _ : ...`) and named
(`if h : ...`) dependent `if` work in do blocks.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog-language Language features and metaprograms 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.

2 participants