lean4-htt/tests/bench/mvcgen/sym
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
..
cases test: lazy let-binding unfolding in sym mvcgen (#13210) 2026-03-31 15:29:11 +00:00
lib test: lazy let-binding unfolding in sym mvcgen (#13210) 2026-03-31 15:29:11 +00:00
baseline_add_sub_cancel.lean test: measure VC discharging separately in Sym mvcgen benchmarks (#12551) 2026-02-18 12:03:47 +00:00
lakefile.lean test: harden sym mvcgen bench script and tune benchmark sizes (#13107) 2026-03-24 21:14:36 +00:00
lean-toolchain chore: relative lean-toolchains (#12652) 2026-02-25 10:23:35 +00:00
README.md test: document Sym-based mvcGen and tidy up benchmark project (#12350) 2026-02-06 14:12:29 +00:00
run_bench.sh test: harden sym mvcgen bench script and tune benchmark sizes (#13107) 2026-03-24 21:14:36 +00:00
run_test.sh chore: improve how test suite interacts with stages (#12913) 2026-03-16 15:20:03 +00:00
test_vcgen.lean test: lazy let-binding unfolding in sym mvcgen (#13210) 2026-03-31 15:29:11 +00:00
vcgen_add_sub_cancel.lean test: add VCGen test suite for sym mvcgen benchmarks (#12855) 2026-03-10 13:32:13 +00:00
vcgen_add_sub_cancel_deep.lean test: harden sym mvcgen bench script and tune benchmark sizes (#13107) 2026-03-24 21:14:36 +00:00
vcgen_add_sub_cancel_simp.lean test: harden sym mvcgen bench script and tune benchmark sizes (#13107) 2026-03-24 21:14:36 +00:00
vcgen_get_throw_set.lean test: harden sym mvcgen bench script and tune benchmark sizes (#13107) 2026-03-24 21:14:36 +00:00
vcgen_get_throw_set_grind.lean test: simplify assumptions in mvcgen' with grind benchmark (#13186) 2026-03-30 10:03:43 +00:00
vcgen_match_split.lean test: harden sym mvcgen bench script and tune benchmark sizes (#13107) 2026-03-24 21:14:36 +00:00
vcgen_pure_precond.lean test: harden sym mvcgen bench script and tune benchmark sizes (#13107) 2026-03-24 21:14:36 +00:00
vcgen_reader_state.lean test: add VCGen test suite for sym mvcgen benchmarks (#12855) 2026-03-10 13:32:13 +00:00

Benchmarks for a Sym-based mvcgen

Compares the performance of a Sym-based rewrite of mvcgen with that of a direct, hard-coded solution procedure (the shallow_add_sub_cancel benchmark). To run the benchmarks, launch lake build. To run individual benchmarks, run lake lean vcgen_add_sub_cancel.lean (which runs the VCGen-based version) or lake lean baseline_add_sub_cancel.lean (which runs the baseline hard-coded solution procedure).