- resolved : SplitStatus
- notReady : SplitStatus
- ready (numCases : Nat) (isRec tryPostpone : Bool := false) : SplitStatus
Instances For
Equations
Equations
Equations
- Lean.Meta.Grind.instBEqSplitStatus.beq Lean.Meta.Grind.SplitStatus.resolved Lean.Meta.Grind.SplitStatus.resolved = true
- Lean.Meta.Grind.instBEqSplitStatus.beq Lean.Meta.Grind.SplitStatus.notReady Lean.Meta.Grind.SplitStatus.notReady = true
- Lean.Meta.Grind.instBEqSplitStatus.beq (Lean.Meta.Grind.SplitStatus.ready a a_1 a_2) (Lean.Meta.Grind.SplitStatus.ready b b_1 b_2) = (a == b && (a_1 == b_1 && a_2 == b_2))
- Lean.Meta.Grind.instBEqSplitStatus.beq x✝¹ x✝ = false
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Meta.Grind.checkSplitStatus (Lean.Meta.Grind.SplitInfo.default e source) = Lean.Meta.Grind.checkDefaultSplitStatus✝ e
- Lean.Meta.Grind.checkSplitStatus (Lean.Meta.Grind.SplitInfo.imp e h source) = Lean.Meta.Grind.checkForallStatus✝ e h
- Lean.Meta.Grind.checkSplitStatus (Lean.Meta.Grind.SplitInfo.arg a b i eq source) = Lean.Meta.Grind.checkSplitInfoArgStatus a b eq
Instances For
Equations
- Lean.Meta.Grind.instHasAnchorSplitCandidateWithAnchor = { getAnchor := fun (e : Lean.Meta.Grind.SplitCandidateWithAnchor) => e.anchor }
- candidates : Array SplitCandidateWithAnchor
Pairs
(anchor, split) - numDigits : Nat
Number of digits (≥ 4) sufficient for distinguishing anchors. We usually display only the first
numDigits.
Instances For
Returns case-split candidates. Case-splits that are tagged as .resolved or .notReady are skipped.
Applies additional filter if provided.
If candidates? is provided, it is used instead of the candidates stored in the goal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Anchor reference for a case-split candidate in generated tactic scripts.
ordinal is the 0-based position of the candidate among the (ready) candidates whose
anchors share the same displayed prefix. Distinct candidates may have identical anchors
(e.g., candidates that differ only in inaccessible variables), and the ordinal is used
to disambiguate them.
Instances For
Computes the anchor reference information for the case-split candidate c.
The candidate list must be the one stored in the goal before the case-split is selected and
performed (i.e., before selectNextSplit? prunes the list and before c is marked as resolved),
so that it matches the list inspected by the cases tactic when replaying the generated script.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Creates the anchor reference syntax for the result of mkSplitAnchorRefInfo.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Performs a case-split using c.
Remark: numCases and isRec are computed using checkSplitStatus.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Selects a case-split from the list of candidates, performs the split and applies continuation to all subgoals. If a subgoal is solved without using new hypotheses, closes the original goal using this proof. That is, it performs non-chronological backtracking.
If stopsAtFirstFailure = true, it stops the search as soon as the given continuation cannot solve a subgoal.
If compress = true, then it uses <;> to generate the resulting tactic sequence if all subgoal sequences are
identical. For example, suppose that the following sequence is generated with compress = false
cases #50fc
next => lia
next => lia
Then with compress = true it generates cases #50fc <;> lia
Equations
- One or more equations did not get rendered due to their size.