lean4-htt/src/Lean/Compiler/LCNF
Joachim Breitner 0cb79868f4
feat: sparse casesOn constructions (#11072)
This PR adds “sparse casesOn” constructions. They are similar to
`.casesOn`, but have arms only for some constructors and a catch-all
(providing `t.ctorIdx ≠ 42` assumptions). The compiler has native
support for these constructors and now (because of the similarity) also
the per-constructor elimination principles.
2025-11-05 15:49:11 +00:00
..
Simp refactor: make constant folding more robust for future bugs (#11044) 2025-11-01 11:07:20 +00:00
AlphaEqv.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
AuxDeclCache.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
BaseTypes.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Basic.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Bind.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Check.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Closure.lean perf: during specialization, don't abstract all local fun decls under binders (#9596) 2025-07-28 17:36:43 +00:00
CompatibleTypes.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
CompilerM.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
ConfigOptions.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
CSE.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
DeclHash.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
DependsOn.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ElimDead.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ElimDeadBranches.lean perf: widen more in ElimDeadBranches (#10856) 2025-10-27 09:12:16 +00:00
ExtractClosed.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
FixedParams.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
FloatLetIn.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
FVarUtil.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
InferType.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Internalize.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Irrelevant.lean feat: zero cost BaseIO (#10625) 2025-10-22 10:55:12 +02:00
JoinPoints.lean perf: improve join point finding (#10999) 2025-10-30 15:05:11 +00:00
LambdaLifting.lean fix: more stable eager lambda lifting heuristic (#11010) 2025-10-29 13:58:23 +00:00
LCtx.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Level.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Main.lean feat: sparse casesOn constructions (#11072) 2025-11-05 15:49:11 +00:00
MonadScope.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
MonoTypes.lean feat: zero cost BaseIO (#10625) 2025-10-22 10:55:12 +02:00
OtherDecl.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Passes.lean perf: improve join point finding (#10999) 2025-10-30 15:05:11 +00:00
PassManager.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
PhaseExt.lean perf: remove unused argument to ExternEntry.opaque (#11066) 2025-11-03 17:26:32 +00:00
PrettyPrinter.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Probing.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
PullFunDecls.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
PullLetDecls.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
ReduceArity.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
ReduceJpArity.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Renaming.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ScopeM.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Simp.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Specialize.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
SpecInfo.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
StructProjCases.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Testing.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
ToDecl.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
ToExpr.lean fix: overeager specialisation reuse in codegen (#10429) 2025-09-17 17:35:40 +00:00
ToLCNF.lean feat: sparse casesOn constructions (#11072) 2025-11-05 15:49:11 +00:00
ToMono.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
Types.lean feat: zero cost BaseIO (#10625) 2025-10-22 10:55:12 +02:00
Util.lean feat: sparse casesOn constructions (#11072) 2025-11-05 15:49:11 +00:00
Visibility.lean chore: further shake improvements (#10947) 2025-10-26 11:27:19 +00:00