Given
- matcherApp
match_i As (fun xs => motive[xs]) discrs (fun ys_1 => (alt_1 : motive (C_1[ys_1])) ... (fun ys_n => (alt_n : motive (C_n[ys_n]) remaining, and - expression
e : B[discrs], Construct the termmatch_i As (fun xs => B[xs] -> motive[xs]) discrs (fun ys_1 (y : B[C_1[ys_1]]) => alt_1) ... (fun ys_n (y : B[C_n[ys_n]]) => alt_n) e remaining.
We use kabstract to abstract the discriminants from B[discrs].
This method assumes
- the
matcherApp.motiveis a lambda abstraction wherexs.size == discrs.size - each alternative is a lambda abstraction where
ys_i.size == matcherApp.altNumParams[i]
This is used in in Lean.Elab.PreDefinition.WF.Fix when replacing recursive calls with calls to
the argument provided by fix to refine the termination argument, which may mention major.
See there for how to use this function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Similar to MatcherApp.addArg, but returns none on failure.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given
- matcherApp
match_i As (fun xs => motive[xs]) discrs (fun ys_1 => (alt_1 : motive (C_1[ys_1])) ... (fun ys_n => (alt_n : motive (C_n[ys_n]) remaining, and - a expression
B[discrs](which may not be a type, e.g.n : Nat), returns the expressionsfun ys_1 ... ys_i => B[C_1[ys_1]] ... B[C_n[ys_n]],
This method assumes
- the
matcherApp.motiveis a lambda abstraction wherexs.size == discrs.size - each alternative is a lambda abstraction where
ys_i.size == matcherApp.altNumParams[i]
This is similar to MatcherApp.addArg when you only have an expression to
refined, and not a type with a value.
This is used in in Lean.Elab.PreDefinition.WF.GuessFix when constructing the context of recursive
calls to refine the functions' paramter, which may mention major.
See there for how to use this function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A non-failing version of MatcherApp.refineThrough
Equations
- One or more equations did not get rendered due to their size.