Documentation

Lean.Meta.Tactic.Grind.Split

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Instances For
          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
                      def Lean.Meta.Grind.Action.splitCore (c : SplitInfo) (numCases : Nat) (isRec stopAtFirstFailure compress : Bool) (candidates? : Option (List SplitInfo) := none) :

                      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
                        def Lean.Meta.Grind.Action.splitNext (stopAtFirstFailure compress : Bool := true) :

                        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.
                        Instances For