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.

Equations
    Instances For
      Equations
        Instances For
          @[reducible, inline]
          Equations
            Instances For
              Instances For
                @[reducible, inline]
                Equations
                  Instances For
                    @[reducible, inline]
                    Equations
                      Instances For
                        @[reducible, inline]
                        Equations
                          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.

                            Equations
                              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

                                  Equations
                                    Instances For
                                      @[reducible, inline]
                                      Equations
                                        Instances For
                                          Equations
                                            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
                                              Equations
                                                Instances For

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

                                                  Equations
                                                    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 := { }) :
                                                      Equations
                                                        Instances For

                                                          Helper functions

                                                          grind tactic syntax generator based on collected information.

                                                          Other generators

                                                          Function induction generators

                                                          Vanilla induction generators

                                                          Main code