lean4-htt/tests
Leonardo de Moura f63ddd67a2
feat: add simpControl simproc for if-then-else simplification (#12035)
This PR adds `simpControl`, a simproc that handles control-flow
expressions such as `if-then-else`. It simplifies conditions while
avoiding unnecessary work on branches that won't be taken.

The key behavior of `simpControl`:
- Simplifies the condition of `if-then-else` expressions
- If the condition reduces to `True` or `False`, returns the appropriate
branch, and continue simplifying.
- If the condition simplifies to a new expression, rebuilds the
`if-then-else` with the simplified condition (synthesizing a new
`Decidable` instance), and mark it as "done". That is, simplifier main
loop will not visit branches.
- Does **not** visit branches unless the condition becomes `True` or
`False`

This is useful for symbolic simplification where we want to avoid
wasting effort
simplifying branches that may be eliminated after the condition is
resolved.

This PR also fixes a bug in `Sym/Simp/EvalGround.lean`, and adds some
helper functions.
2026-01-18 04:14:26 +00:00
..
bench test: add benchmark for #11992 (#11997) 2026-01-13 21:15:32 +00:00
bench-radar chore: add size/install benchmark (#12015) 2026-01-15 14:43:47 +00:00
compiler
elabissues
ir
lake fix: lake: meta import transitivity (#11683) 2025-12-16 08:28:52 +00:00
lean feat: add simpControl simproc for if-then-else simplification (#12035) 2026-01-18 04:14:26 +00:00
pkg fix: split ngen on async elab (#12000) 2026-01-14 12:35:25 +00:00
playground
plugin
simpperf
.gitignore
common.sh feat: re-integrate lean4checker as leanchecker (#11887) 2026-01-08 09:41:33 +00:00
lakefile.toml feat: module system is no longer experimental (#11637) 2025-12-12 21:20:26 +00:00
lean-toolchain