leanprover / leanprover/lean4

Unhelpful error message on wrong `example` syntax

Open
#2,222 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Prerequisites
  • Put an X between the brackets on this line if you have done all of the following:
    • Checked that your issue isn't already filed.
    • Reduced the issue to a self-contained, reproducible test case.
Description

When trying to supply a name to an example Lean complains in a way that does not help resolve the issue.

Steps to Reproduce
example foo: True := by trivial

Expected behavior: Lean tells me that examples can't have names.

Actual behavior: Lean prints the following unhelpful error message with foo highlighted

failed to infer binder type 
when the resulting type of a declaration is explicitly provided, all holes (e.g., `_`) 
in the header are resolved before the declaration body is processed
Versions

Lean (version 4.0.0-nightly-2023-04-20, commit f9da1d8b55ca, Release)
Windows 11

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 reproducing the reported example foo: True := by trivial case with the stated Lean version and compare the current diagnostic with the expected message. Trace the handling of named example declarations and update the behavior so this syntax reports that examples cannot have names; verify the resulting diagnostic with the reproduction.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.