leanprover / leanprover/lean4

Misleading extra "No goals to be solved" after unexpected type ascription

Open
#9,583 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Prerequisites

Please put an X between the brackets as you perform the following steps:

Description
theorem foo : True := by
  let map_X_subset := fun (X': X.powerset) (o : Object) : Prop ↦
    sorry
  let Z := union (X.powerset.replace (P := map_X'_to_y) (by sorry))
  have X := 1

  sorry

This error message is misleading:

Image

The actual problem is here:

Image

Or at least I think so. I'm still learning the syntax.

The issue is that the big red squiggly line is much more noticeable and I did not notice the actual problem. So it would be nice to not show the misleading error message and to only show its upstream cause, assuming the two cases are possible to reliably disambiguate, or that it's fine to drop one of the error messages when you have two.

Context

Above

Steps to Reproduce
  1. Above

Expected behavior: I'd expect to only see the type syntax error. I guess "no goals to be solved" would be OK to show in cases where it can reliably tell that in the presence of syntax errors, but in this case it looks like a false positive.

Actual behavior: Both errors are shown, including "no goals to be solved" (which is kind of not true in my example).

Versions

nightly from the website

Impact

Add 👍 to issues you consider important. If others are impacted by this issue, please ask them to add 👍 to it.

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

No source file or test is named. Start by running the minimal reproduction against the Lean nightly release and compare the two reported diagnostics; done means the misleading "No goals to be solved" message is omitted when the upstream type syntax error makes it a false positive.

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.