lean4-htt/tests/elab_bench
Joachim Breitner ee293de982
test: add instantiateMVars tests and benchmark for delayed assignments (#12808)
This PR adds tests and a benchmark exercising `instantiateMVars` on
metavariable assignment graphs with nested delayed assignments, in
preparation for optimizing the delayed mvar resolution path.

- `tests/elab/instantiateMVarsShadow.lean`: Two test cases for
correctness when the same fvar is bound to different values at different
scope levels (fvar shadowing and late-bind patterns). A buggy cache
could return a stale result from one scope level in another.
- `tests/elab/instantiateMVarsSharing.lean`: Verifies correct resolution
and object sharing on a graph with nested delayed mvars producing `∀ s,
(s = s → (s = s) ∧ (s = s)) ∧ (s = s)`.
- `tests/elab_bench/delayed_assign.lean`: Constructs an O(n²) delayed
mvar graph (n=700) and measures `instantiateMVars` resolution time,
calibrated to ~1s total elaboration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:59:13 +00:00
..
big_beq.lean
big_beq.lean.out.ignored
big_beq_rec.lean
big_beq_rec.lean.out.ignored
big_deceq.lean
big_deceq.lean.out.ignored
big_deceq_rec.lean
big_deceq_rec.lean.out.ignored
big_do.lean
big_do.lean.out.expected
big_match.lean
big_match.lean.out.ignored
big_match_nat.lean
big_match_nat.lean.out.ignored
big_match_nat_split.lean
big_match_nat_split.lean.out.ignored
big_match_partial.lean
big_match_partial.lean.out.ignored
big_omega.lean
big_omega_MT.lean
big_omega_MT.lean.init.sh
big_struct.lean
big_struct_dep.lean
big_struct_dep1.lean
bv_decide_inequality.lean
bv_decide_large_aig.lean
bv_decide_large_aig.lean.out.expected
bv_decide_mod.lean
bv_decide_mul.lean
bv_decide_realworld.lean
bv_decide_rewriter.lean
cbv_aes.lean
cbv_arm_ldst.lean
cbv_decide.lean
cbv_decide.lean.out.ignored
cbv_dedup.lean
cbv_divisors.lean
cbv_divisors.lean.out.ignored
cbv_leroy.lean
cbv_leroy.lean.out.ignored
cbv_merge_sort.lean
cbv_merge_sort.lean.out.ignored
cbv_system_f.lean
cbv_system_f.lean.out.ignored
charactersIn.lean
charactersIn.lean.out.ignored
delayed_assign.lean test: add instantiateMVars tests and benchmark for delayed assignments (#12808) 2026-03-06 10:59:13 +00:00
delayed_sharing.lean test: add instantiateMVars tests and benchmark for delayed assignments (#12808) 2026-03-06 10:59:13 +00:00
grind_bitvec2.lean
grind_bitvec2.lean.out.expected
grind_list2.lean
grind_ring_5.lean
iterators.lean
mut_rec_wf.lean
mut_rec_wf.lean.out.ignored
omega_stress.lean
omega_stress.lean.out.ignored
reduceMatch.lean
riscv-ast.lean
run_bench
run_test
simp_arith1.lean
simp_bubblesort_256.lean
simp_congr.lean
simp_congr.lean.init.sh
simp_local.lean
simp_subexpr.lean
simp_subexpr.lean.out.ignored
workspaceSymbols.lean
workspaceSymbols.lean.out.ignored