leanprover / leanprover/lean4

Tactics should preserve goals on nested term elaboration failure

Open
#7,136 2 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug P-high
Dominant language
Lean
Stars
9.2k
Forks
990
Avg merge
1d 17h
Merged PRs (30d)
175

Description

example : True ∧ False ∧ True := by
  simp only [false_and]
  exact -- Tactic state: No goals / error: unexpected token 

example : True ∧ False ∧ True := by
  simp only [false_and]
  exact true_ -- Tactic state: No goals / error: unknown identifier

In both cases, term elaboration inside exact results in sorry with a logged error message due to errToSorry being true, then we assign this sorry to the goal. Thus there is no tactic state shown. If we want to keep errToSorry here, we should likely check for synthetic sorries in exact/... and skip assignment in that case.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing nested term elaboration in exact and related tactics when errToSorry is true. Check how synthetic sorries are produced and assigned to goals; done means elaboration failures preserve the existing tactic state while still reporting the error.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.