Abstracts free variables xs[start...*] in expression e, converting them to de Bruijn indices.
Assumptions:
The local context of the metavariables occurring in
edo not include the free variables being abstracted. This invariant holds when abstracting over binders during pattern matching/unification: metavariables in the pattern were created before entering the binder, so their contexts exclude the bound variable's corresponding fvar.If
xs[start...*]is not empty, then the minimal variable isxs[start].Subterms whose
maxFVaris belowminFVarIdare skipped entirely. This function does not assume themaxFVarcache contains information for every subterm ine.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Abstracts free variables xs[0...n) in expression e, converting them to de Bruijn indices:
xs[n-1] becomes #0, ..., xs[0] becomes #(n-1). This is the Sym counterpart of
Expr.abstractRange, and it is the operation needed for the type of the binder xs[n] when
rebuilding a telescope.
Makes the same assumptions as abstractFVarsRange; the minimal variable must be xs[0].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Abstracts free variables xs in expression e, converting them to de Bruijn indices.
It is an abbreviation for abstractFVarsRange e 0 xs.
Equations
Instances For
Similar to mkLambdaFVars, but uses the more efficient abstractFVars and abstractFVarsPrefix,
and makes the same assumption made by these functions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Similar to mkForallFVars, but uses the more efficient abstractFVars and abstractFVarsPrefix,
and makes the same assumption made by these functions.
Equations
- One or more equations did not get rendered due to their size.