Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
Find a file
Joachim Breitner d41f39fb10
perf: sparse case splitting in match compilation (#10823)
This PR lets the match compilation procedure use sparse case analysis
when the patterns only match on some but not all constructors of an
inductive type. This way, less code is produce. Before, code handling
each of the other cases was then optimized and commoned-up by later
compilation pipeline, but that is wasteful to do.

In some cases this will prevent Lean from noticing that a match
statement is complete
because it performs less case-splitting for the unreachable case. In
this case, give explicit
patterns to perform the deeper split with `by contradiction` as the
right-hand side.

At least temporarily, there is also the option to disable this behaviour
with
```
set_option backwards.match.sparseCases false
```
2025-11-06 13:46:35 +00:00
.claude chore: basic dev instructions for Claude (#11074) 2025-11-04 04:07:53 +00:00
.github chore: adjust pr-title check to enforce capitalization (#11033) 2025-10-31 07:23:25 +00:00
doc feat: String.toList_map (#11021) 2025-11-01 13:54:39 +00:00
images
releases_drafts chore: updates to release_checklist.md (#7817) 2025-04-04 03:45:36 +00:00
script chore: further shake improvements (#10947) 2025-10-26 11:27:19 +00:00
src perf: sparse case splitting in match compilation (#10823) 2025-11-06 13:46:35 +00:00
stage0 chore: update stage0 2025-11-03 23:26:40 +11:00
tests perf: sparse case splitting in match compilation (#10823) 2025-11-06 13:46:35 +00:00
.gitattributes fix: mark doc parser tests as eol=lf (#10344) 2025-09-11 11:19:01 +00:00
.gitignore chore: add .vscode/settings.json to .gitignore (#10795) 2025-10-16 07:08:41 +00:00
.gitpod.Dockerfile chore: add gitpod configuration (#6382) 2024-12-15 21:38:13 +00:00
.gitpod.yml chore: add gitpod configuration (#6382) 2024-12-15 21:38:13 +00:00
.ignore
CMakeLists.txt chore: make USE_LAKE the default (#10016) 2025-08-21 11:43:25 +00:00
CMakePresets.json chore: fix reldebug preset (#8051) 2025-04-23 10:05:11 +00:00
CODEOWNERS chore: make @hargoniX code owner of the compiler (#10732) 2025-10-10 04:43:38 +00:00
CONTRIBUTING.md doc: triage 2024-07-26 18:24:06 +02:00
flake.lock chore: robustify Nix shell (#8141) 2025-04-28 15:08:32 +00:00
flake.nix chore: use lld if available for building core (#10694) 2025-10-08 16:47:30 +00:00
lean-toolchain
lean.code-workspace chore: lean.code-workspace: fix terminal cwd (#10802) 2025-10-16 20:19:12 +00:00
LICENSE
LICENSES feat: ship cadical (#4325) 2024-08-23 09:13:27 +00:00
README.md doc: update URLs that are currently pointing to redirects (#10397) 2025-09-17 15:50:07 +00:00
RELEASES.md chore: updates to release_checklist.md (#7817) 2025-04-04 03:45:36 +00:00

This is the repository for Lean 4.

About

Installation

See Install Lean.

Contributing

Please read our Contribution Guidelines first.

Building from Source

See Building Lean.