Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
Find a file
Kyle Miller 71cf266cd7
feat: add Meta.letToHave and the let_to_have tactic (#8954)
This PR adds a procedure that efficiently transforms `let` expressions
into `have` expressions (`Meta.letToHave`). This is exposed as the
`let_to_have` tactic.

It uses the `withTrackingZetaDelta` technique: the expression is
typechecked, and any `let` variables that don't enter the zeta delta set
are nondependent. The procedure uses a number of heuristics to limit the
amount of typechecking performed. For example, it is ok to skip
subexpressions that do not contain fvars, mvars, or `let`s.
2025-06-24 01:33:53 +00:00
.github chore: CI: temporarily disable .olean cache 2025-06-18 11:12:56 +09:00
doc chore: improvements to release checklist and scripts (#8586) 2025-06-10 22:56:06 +00:00
images
nix
releases_drafts
script chore: remove old LEAN_AUTO_THREAD_FINALIZATION workaround (#8885) 2025-06-20 08:52:17 +00:00
src feat: add Meta.letToHave and the let_to_have tactic (#8954) 2025-06-24 01:33:53 +00:00
stage0 chore: update stage0 2025-06-23 20:40:08 +02:00
tests feat: add Meta.letToHave and the let_to_have tactic (#8954) 2025-06-24 01:33:53 +00:00
.gitattributes
.gitignore chore: allow module in tests (#8881) 2025-06-21 02:49:22 +00:00
.gitpod.Dockerfile
.gitpod.yml
.ignore
CMakeLists.txt
CMakePresets.json
CODEOWNERS
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.