Documentation

Aesop.Search.Main

def Aesop.expandNextGoal {Q : Type} [Queue Q] :
SearchM Q Unit
Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def Aesop.checkGoalLimit {Q : Type} [Queue Q] :
    SearchM Q (Option Lean.MessageData)
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Aesop.checkRappLimit {Q : Type} [Queue Q] :
      SearchM Q (Option Lean.MessageData)
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Aesop.checkRootUnprovable {Q : Type} [Queue Q] :
        SearchM Q (Option Lean.MessageData)
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Aesop.getProof? {Q : Type} [Queue Q] :
          SearchM Q (Option Lean.Expr)
          Equations
          Instances For
            def Aesop.finalizeProof {Q : Type} [Queue Q] :
            SearchM Q Unit
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Aesop.traceScript {Q : Type} [Queue Q] (completeProof : Bool) :
              SearchM Q Unit
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def Aesop.traceTree {Q : Type} [Queue Q] :
                SearchM Q Unit
                Equations
                Instances For
                  def Aesop.finishIfProven {Q : Type} [Queue Q] :
                  SearchM Q Bool
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    This function detects whether the search has made progress, meaning that the remaining goals after safe prefix expansion are different from the initial goal. We approximate this by checking whether, after safe prefix expansion, either of the following statements is true.

                    • There is a safe rapp.
                    • A subgoal of the preprocessing rule has been modified during normalisation.

                    This is an approximation because a safe rule could, in principle, leave the initial goal unchanged.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Aesop.throwAesopEx {Q : Type} [Queue Q] {α : Type} (mvarId : Lean.MVarId) (remainingSafeGoals : Array Lean.MVarId) (safePrefixExpansionSuccess : Bool) (msg? : Option Lean.MessageData) :
                      SearchM Q α
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def Aesop.handleNonfatalError {Q : Type} [Queue Q] (err : Lean.MessageData) :
                        SearchM Q (Array Lean.MVarId)
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          partial def Aesop.searchLoop {Q : Type} [Queue Q] :
                          SearchM Q (Array Lean.MVarId)
                          def Aesop.search (goal : Lean.MVarId) (ruleSet? : Option LocalRuleSet := none) (options : Options := { }) (simpConfig : Lean.Meta.Simp.Config := { }) (simpConfigSyntax? : Option Lean.Term := none) (stats : Stats := ) :
                          Lean.MetaM (Array Lean.MVarId × Stats)
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For