leanprover / leanprover/lean4

Deprecate and remove `inductive` ... `:=`

Open
#5,236 14 comments 6 reactions 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

Description

Today, Lean accepts all of the following:

inductive DogSound
  | woof
  | grr
inductive DogSound :=
  | woof
  | grr
inductive DogSound where
  | woof
  | grr

It seems that the overwhelming majority of declarations use the latter syntax (with where). In the interest of simplifying things, how about we deprecate the first two?

Context

The broad context here is that I'm writing the new reference manual with tooling that can let us know about undocumented tokens. The documentation should be comprehensive and describe what the language does.

Deprecating these two alternate syntaxes, rather than documenting them, would make Lean code more uniform and reduce the language surface area.

I'm not advocating immediate removal - a long deprecation period won't hurt anything - but a warning would be useful.

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

Read the three syntax examples and determine how the first two should be distinguished from the where form. Done means Lean warns on the inductive forms using ... and :=, while continuing to accept the where syntax; the issue does not name implementation files or tests.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.