lean4-htt/tests/bench/mvcgen/sym/lib
Sebastian Graf e6d9220eee
test: add dite and match splitting to sym-based MVCGen (#12903)
This PR generalizes the sym MVCGen's match splitting from `ite`-only to
`ite`, `dite`, and arbitrary matchers. Previously, only `ite` was
supported; `dite` and match expressions were rejected with an error.

`mkBackwardRuleForSplit` uses `SplitInfo.splitWith` to build the
splitting proof. Hypothesis types are discovered via `rwIfOrMatcher`
inside the splitter telescope, and `TransformAltFVars.all` provides the
proper fvars for `mkForallFVars`. Subgoal type metavariables use
`mkFreshExprSyntheticOpaqueMVar` so that `rwIfOrMatcher`'s internal
`assumption` tactic cannot assign them.

Adds `DiteSplit`, `MatchSplit`, and `MatchSplitState` test cases and a
`vcgen_match_split` benchmark.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 22:39:43 +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: add dite and match splitting to sym-based MVCGen (#12903) 2026-03-12 22:39:43 +00:00