lean4-htt/src/Lean/Meta/Sym
Leonardo de Moura 1e99ff1dba
feat: optimized abstractFVars and abstractFVarsRange (#11820)
This PR adds optimized `abstractFVars` and `abstractFVarsRange` for
converting free variables to de Bruijn indices during pattern
matching/unification.

**Optimizations:**
- Metavariables are skipped (their contexts must not include abstracted
fvars)
- Subterms whose `maxFVar` is below the minimal abstracted fvar are
skipped via early cutoff
- Results are maximally shared via `AlphaShareBuilderM`

These optimizations are sound for Miller pattern matching where
metavariables are created before entering binders.
2025-12-28 23:12:21 +00:00
..
AbstractS.lean feat: optimized abstractFVars and abstractFVarsRange (#11820) 2025-12-28 23:12:21 +00:00
InstantiateMVarsS.lean feat: structural isDefEq for Sym (#11819) 2025-12-28 22:37:21 +00:00
InstantiateS.lean feat: add instantiateRevBetaS (#11814) 2025-12-28 03:28:15 +00:00
Intro.lean feat: intro tactic for SymM (#11803) 2025-12-26 03:45:33 +00:00
IsClass.lean feat: intro tactic for SymM (#11803) 2025-12-26 03:45:33 +00:00
LooseBVarsS.lean feat: add instantiateS and variants (#11802) 2025-12-25 23:02:16 +00:00
Main.lean feat: add Sym.getMaxFVar? (#11794) 2025-12-25 02:24:00 +00:00
MaxFVar.lean feat: add Sym.getMaxFVar? (#11794) 2025-12-25 02:24:00 +00:00
Pattern.lean feat: structural isDefEq for Sym (#11819) 2025-12-28 22:37:21 +00:00
ProofInstInfo.lean feat: structural isDefEq for Sym (#11819) 2025-12-28 22:37:21 +00:00
ReplaceS.lean feat: add instantiateS and variants (#11802) 2025-12-25 23:02:16 +00:00
SymM.lean feat: structural isDefEq for Sym (#11819) 2025-12-28 22:37:21 +00:00
Util.lean