lean4-htt/src/Lean/Compiler/LCNF
Cameron Zwarich ca4322ff09
fix: support casesOn for inductive predicates with computations on fields (#10023)
This PR adds support for correctly handling computations on fields in
`casesOn` for inductive predicates that support large elimination. In
any such predicate, the only relevant fields allowed are those that are
also used as an index, in which case we can find the supplied index and
use that term instead.
2025-08-21 18:55:34 +00:00
..
Simp fix: check for recursive decls before instance proj inlining (#9847) 2025-08-11 13:50:26 +00:00
AlphaEqv.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
AuxDeclCache.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
BaseTypes.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Basic.lean fix: do not allow access to private primitives in public scope (#9890) 2025-08-14 15:34:54 +00:00
Bind.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Check.lean fix: remove incorrect error in LCNF's check (#9720) 2025-08-05 04:36:57 +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 fix: erase dependencies on let-bound fvars in internalizeCode (#9922) 2025-08-15 01:52:47 +00:00
ConfigOptions.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
CSE.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +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 fix: correctly handle non-Nat literal types in LCNF elimDeadBranches (#9703) 2025-08-05 02:14:07 +00:00
ExtractClosed.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
FixedParams.lean chore: don't check type of erased arguments in FixedParams analysis (#9602) 2025-08-05 02:41:36 +00:00
FloatLetIn.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
FVarUtil.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
InferType.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Internalize.lean fix: erase dependencies on let-bound fvars in internalizeCode (#9922) 2025-08-15 01:52:47 +00:00
JoinPoints.lean chore: make Compiler.findJoinPoints trace messages more useful (#9668) 2025-08-01 17:42:32 +00:00
LambdaLifting.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
LCtx.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Level.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Main.lean chore: add separate profiling entries for base, mono, and IR phases (#9817) 2025-08-10 05:00:49 +00:00
MonadScope.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
MonoTypes.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
OtherDecl.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Passes.lean refactor: split the LCNF pass list into separate base/mono lists (#9816) 2025-08-10 04:23:19 +00:00
PassManager.lean refactor: split the LCNF pass list into separate base/mono lists (#9816) 2025-08-10 04:23:19 +00:00
PhaseExt.lean chore: remove support for unused arity specification in ExternAttrData (#9552) 2025-07-25 21:23:56 +00:00
PrettyPrinter.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Probing.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
PullFunDecls.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
PullLetDecls.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ReduceArity.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ReduceJpArity.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +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 refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Specialize.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
SpecInfo.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
StructProjCases.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Testing.lean refactor: split the LCNF pass list into separate base/mono lists (#9816) 2025-08-10 04:23:19 +00:00
ToDecl.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ToExpr.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ToLCNF.lean fix: support casesOn for inductive predicates with computations on fields (#10023) 2025-08-21 18:55:34 +00:00
ToMono.lean fix: support overapplication of Quot.lift in the compiler (#9827) 2025-08-11 01:51:54 +00:00
Types.lean chore: adopt <||> to reduce code duplication (#9719) 2025-08-05 04:13:02 +00:00
Util.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Visibility.lean chore: make inferVisibility LCNF pass style match others (#9558) 2025-07-26 00:49:52 +00:00