lean4-htt/tests/bench/mvcgen/sym/lib
Sebastian Graf 504e099c5d
test: lazy let-binding unfolding in sym mvcgen (#13210)
This PR replaces eager let-expression zeta-reduction in the sym-based
mvcgen with on-demand unfolding that mirrors the production mvcgen's
behavior.

Previously, all let-expressions in the program head were immediately
zeta-reduced. Now, let-expressions are hoisted to the top of the goal
target, and the value is only inlined if it is duplicable (literals,
fvars, consts, `OfNat.ofNat`). Complex values are introduced into the
local context via `introsSimp`, preserving SymM's maximal sharing
invariants, and unfolded on demand when the fvar later appears as the
program head.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 15:29:11 +00:00
..
Baseline.lean test: share benchmark driver for Sym mvcgen; don't measure unfolding (#12501) 2026-02-16 13:17:00 +00:00
Driver.lean test: add VCGen test suite for sym mvcgen benchmarks (#12855) 2026-03-10 13:32:13 +00:00
VCGen.lean test: lazy let-binding unfolding in sym mvcgen (#13210) 2026-03-31 15:29:11 +00:00