Documentation

Lean.Elab.Tactic.Try

A very simple try? tactic implementation.

evalSuggest is a evalTactic variant that returns suggestions after executing a tactic built using combinators such as first, attempt_all, <;>, ;, and try.

def Lean.Elab.Tactic.Try.checkTactic (savedState : SavedState) (tac : TSyntax `tactic) :

Executes tac in the saved state. This function is used to validate a tactic before suggesting it.

Instances For
    @[reducible, inline]
    Instances For
      Instances For
        @[reducible, inline]
        Instances For
          @[reducible, inline]
          Instances For
            @[reducible, inline]
            Instances For

              User-extensible try suggestion generators

              @[reducible, inline]

              A user-defined generator that proposes tactics for try? to attempt. Takes the goal MVarId and collected info, returns array of tactics to try.

              Instances For

                Entry in the try suggestion registry

                Instances For

                  Environment extension for user try suggestion generators (supports local scoping)

                  Elaborate register_try?_tactic command

                  Instances For
                    @[reducible, inline]
                    Instances For

                      Executes a tactic with heartbeat management:

                      • Restores the original maxHeartbeats limit (recorded at try? start)
                      • Gives the tactic a fresh heartbeat budget via withCurrHeartbeats
                      • Catches heartbeat exceptions and converts them to regular errors
                      Instances For

                        Executes code with unlimited heartbeats (maxHeartbeats set to 0). Used by try? infrastructure itself so it doesn't timeout while testing tactics.

                        Instances For
                          @[extern lean_eval_suggest_tactic]

                          evalAndSuggest frontend

                          def Lean.Elab.Tactic.Try.evalAndSuggest (tk : Syntax) (tac : TSyntax `tactic) (originalMaxHeartbeats : Nat) (config : Try.Config := { }) :
                          Instances For

                            Helper functions

                            grind tactic syntax generator based on collected information.

                            Other generators

                            Function induction generators

                            Vanilla induction generators

                            Main code