Equations
- One or more equations did not get rendered due to their size.
- used : Std.HashSet Nat
- counterExamples : List (List Lean.Meta.Match.Example)
Equations
- Lean.Meta.Match.Unify.isAltVar fvarId = do let a ← read pure (Lean.Meta.Match.inLocalDecls a.altFVarDecls fvarId)
Equations
- Lean.Meta.Match.Unify.expandIfVar e = match e with | Lean.Expr.fvar a a_1 => do let a ← get pure (Lean.Meta.FVarSubst.apply a.fvarSubst e) | x => pure e
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
- matcherName : Lean.Name
- matchType : Lean.Expr
- discrInfos : Array Lean.Meta.Match.DiscrInfo
- lhss : List Lean.Meta.Match.AltLHS
Equations
- Lean.Meta.Match.MkMatcherInput.numDiscrs m = Array.size m.discrInfos
Equations
- Lean.Meta.Match.MkMatcherInput.collectFVars m = do Lean.Expr.collectFVars m.matchType List.forM m.lhss fun alt => Lean.Meta.Match.AltLHS.collectFVars alt
Equations
- One or more equations did not get rendered due to their size.
Auxiliary method used at mkMatcher
. It executes k
in a local context that contains only
the local declarations m
depends on. This is important because otherwise dependent elimination
may "refine" the types of unnecessary declarations and accidentally introduce unnecessary dependencies
in the auto-generated auxiliary declaration. Note that this is not just an optimization because the
unnecessary dependencies may prevent the termination checker from succeeding. For an example,
see issue #1237.
Equations
- One or more equations did not get rendered due to their size.
Create a dependent matcher for matchType
where matchType
is of the form
(a_1 : A_1) -> (a_2 : A_2[a_1]) -> ... -> (a_n : A_n[a_1, a_2, ... a_{n-1}]) -> B[a_1, ..., a_n]
where n = numDiscrs
, and the lhss
are the left-hand-sides of the match
-expression alternatives.
Each AltLHS
has a list of local declarations and a list of patterns.
The number of patterns must be the same in each AltLHS
.
The generated matcher has the structure described at MatcherInfo
. The motive argument is of the form
(motive : (a_1 : A_1) -> (a_2 : A_2[a_1]) -> ... -> (a_n : A_n[a_1, a_2, ... a_{n-1}]) -> Sort v)
where v
is a universe parameter or 0 if B[a_1, ..., a_n]
is a proposition.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Similar MatcherApp.addArg?
, but returns none
on failure.
Equations
- One or more equations did not get rendered due to their size.