Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
Find a file
Leonardo de Moura 87dae299b8
fix: ite and dite should not be used in E-matching patterns (#9579)
This PR ensures `ite` and `dite` are to selected as E-matching patterns.
They are bad patterns because the then/else branches are only
internalized after `grind` decided whether the condition is
`True`/`False`.

The issue reported by #9572 has been fixed, but the fix exposed another
issue. The patterns for `List.Pairwise` produce an unbounded number of
E-matching instances.
```lean
example (l : List α) : l.Pairwise R := by
  grind
```
2025-07-27 17:51:23 +00:00
.github refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
doc doc: building core with Lake (#9547) 2025-07-26 06:13:09 +00:00
images
nix
releases_drafts
script refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
src fix: ite and dite should not be used in E-matching patterns (#9579) 2025-07-27 17:51:23 +00:00
stage0 chore: update stage0 2025-07-26 15:58:53 +00:00
tests fix: ite and dite should not be used in E-matching patterns (#9579) 2025-07-27 17:51:23 +00:00
.gitattributes
.gitignore feat: further release automation (#9092) 2025-06-30 05:44:10 +00:00
.gitpod.Dockerfile
.gitpod.yml
.ignore
CMakeLists.txt chore: compile stage 0 against correct version string (#9085) 2025-06-29 20:52:46 +00:00
CMakePresets.json
CODEOWNERS chore: Update CODEOWNERS (#9232) 2025-07-07 13:11:41 +00:00
CONTRIBUTING.md
flake.lock
flake.nix
lean-toolchain
lean.code-workspace
LICENSE
LICENSES
README.md
RELEASES.md

This is the repository for Lean 4.

About

Installation

See Setting Up Lean.

Contributing

Please read our Contribution Guidelines first.

Building from Source

See Building Lean.