lean4-htt/src/kernel
Kyle Miller cdc923167e
feat: add the nondep field of Expr.letE to the C++ data model (#8751)
This PR adds the `nondep` field of `Expr.letE` to the C++ data model.
Previously this field has been unused, and in followup PRs the
elaborator will use it to encode `have` expressions (non-dependent
`let`s). The kernel does not verify that `nondep` is correctly applied
during typechecking. The `letE` delaborator now prints `have`s when
`nondep` is true, though `have` still elaborates as `letFun` for now.
Breaking change: `Expr.updateLet!` is renamed to `Expr.updateLetE!`.

This PR also fixes a bug in `Expr.letFun?` and `Expr.letFunAppArgs?`
when the body is not a lambda. In any case, these functions will be
removed once the `Expr.letE (nondep := true)` encoding of `have`
expressions is complete.
2025-06-14 23:10:27 +00:00
..
abstract.cpp
abstract.h
CMakeLists.txt
declaration.cpp
declaration.h
environment.cpp feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
environment.h feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
equiv_manager.cpp
equiv_manager.h
expr.cpp feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
expr.h feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
expr_cache.cpp
expr_cache.h
expr_eq_fn.cpp feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
expr_eq_fn.h
expr_maps.h
expr_sets.h
find_fn.h
for_each_fn.cpp perf: optimize sorry detection in unused variables linter (#7129) 2025-02-22 16:43:39 +00:00
for_each_fn.h
inductive.cpp
inductive.h
init_module.cpp
init_module.h
instantiate.cpp
instantiate.h
instantiate_mvars.cpp
kernel_exception.h feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
level.cpp fix: block potential adversarial exploit of non-aborting assert! (#8560) 2025-05-31 03:14:01 +00:00
level.h
local_ctx.cpp
local_ctx.h
quot.cpp
quot.h
replace_fn.cpp perf: use mimalloc with important C++ hash maps (#7868) 2025-04-11 16:23:33 +00:00
replace_fn.h
trace.cpp feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
trace.h feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00
type_checker.cpp fix: reducing Nat.pow, kernel interprets constant as Nat literal (#8060) 2025-04-23 13:55:20 +00:00
type_checker.h feat: split Lean.Kernel.Environment from Lean.Environment (#5145) 2025-01-18 18:42:57 +00:00