Skip to content

Commit 285cb86

Browse files
kim-emclaude
andauthored
doc: list reducibility levels from most to least restrictive (#840)
Reorder the four reducibility levels in the section on reducibility so the list now reads irreducible → semireducible → implicit reducible → reducible (most restrictive to least), which matches how the levels are usually introduced and aligns with the unfolding hierarchy. 🤖 Prepared with Claude Code Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent dab3483 commit 285cb86

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

Manual/RecursiveDefs.lean

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -386,11 +386,10 @@ A definition's reducibility controls the contexts in which it is unfolded during
386386

387387
There are four levels of reducibility:
388388

389-
: {deftech}[Reducible]
389+
: {deftech}[Irreducible]
390390

391-
Reducible definitions are unfolded essentially everywhere, on demand.
392-
Type class instance synthesis, definitional equality checks, and the rest of the language treat the definition as being essentially an abbreviation.
393-
This is the setting applied by the {keywordOf Lean.Parser.Command.declaration}`abbrev` command.
391+
Irreducible definitions are not unfolded at all during elaboration.
392+
Definitions can be made irreducible by applying the {attr}`irreducible` attribute.
394393

395394
: {deftech}[Semireducible]
396395

@@ -403,10 +402,11 @@ There are four levels of reducibility:
403402
This includes ordinary {tech}[implicit] arguments, {tech}[instance implicit] arguments, and {tech}[strict implicit] arguments.
404403
All type class instances should be instance-reducible or reducible, as should definitions that appear in the types of implicit arguments and are intended to reduce.
405404

406-
: {deftech}[Irreducible]
405+
: {deftech}[Reducible]
407406

408-
Irreducible definitions are not unfolded at all during elaboration.
409-
Definitions can be made irreducible by applying the {attr}`irreducible` attribute.
407+
Reducible definitions are unfolded essentially everywhere, on demand.
408+
Type class instance synthesis, definitional equality checks, and the rest of the language treat the definition as being essentially an abbreviation.
409+
This is the setting applied by the {keywordOf Lean.Parser.Command.declaration}`abbrev` command.
410410

411411
:::example "Reducibility and Instance Synthesis"
412412
These three aliases for {lean}`String` are respectively reducible, semireducible, and irreducible.

0 commit comments

Comments
 (0)