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.