File: .lake/packages/aesop/Aesop/Search/Main.lean

full_name: Aesop.nextActiveGoal
code: partial def nextActiveGoal : SearchM Q GoalRef 
goal: Aesop.SearchM Q Aesop.GoalRef

full_name: Aesop.expandNextGoal.traceNewRapps
code: def expandNextGoal : SearchM Q Unit 
goal: Aesop.SearchM Q Unit

full_name: Aesop.expandNextGoal.fmt
code: def expandNextGoal : SearchM Q Unit 
goal: Aesop.SearchM Q Lean.MessageData

full_name: Aesop.expandNextGoal
code: def expandNextGoal : SearchM Q Unit 
goal: Aesop.SearchM Q Unit

full_name: Aesop.checkGoalLimit
code: def checkGoalLimit : SearchM Q (Option MessageData) 
goal: Aesop.SearchM Q (Option Lean.MessageData)

full_name: Aesop.checkRappLimit
code: def checkRappLimit : SearchM Q (Option MessageData) 
goal: Aesop.SearchM Q (Option Lean.MessageData)

full_name: Aesop.checkRootUnprovable
code: def checkRootUnprovable : SearchM Q (Option MessageData) 
goal: Aesop.SearchM Q (Option Lean.MessageData)

full_name: Aesop.getProof?
code: def getProof? : SearchM Q (Option Expr) 
goal: Aesop.SearchM Q (Option Lean.Expr)

full_name: _private.«.lake».packages.aesop.Aesop.Search.Main.0.Aesop.withPPAnalyze
code: private def withPPAnalyze [Monad m] [MonadWithOptions m] (x : m α) : m α 
goal: m α

full_name: Aesop.finalizeProof
code: def finalizeProof : SearchM Q Unit 
goal: Aesop.SearchM Q Unit

full_name: Aesop.optimizeScript
code: def optimizeScript (uscript : Script.UScript) (rootState : Meta.SavedState)
    (rootGoal : MVarId) : SearchM Q (Option (TSyntax ``tacticSeq)) 
goal: Aesop.SearchM Q (Option (Lean.TSyntax `Lean.Parser.Tactic.tacticSeq))

full_name: Aesop.traceScript
code: def traceScript (completeProof : Bool) : SearchM Q Unit 
goal: Aesop.SearchM Q Unit

full_name: Aesop.traceTree
code: def traceTree : SearchM Q Unit 
goal: Aesop.SearchM Q Unit

full_name: Aesop.finishIfProven
code: def finishIfProven : SearchM Q Bool 
goal: Aesop.SearchM Q Bool

full_name: Aesop.treeHasProgress
code: /--
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.
-/
def treeHasProgress : TreeM Bool 
goal: Aesop.TreeM Bool

full_name: Aesop.throwAesopEx
code: def throwAesopEx (mvarId : MVarId) (remainingSafeGoals : Array MVarId)
    (safePrefixExpansionSuccess : Bool) (msg? : Option MessageData) :
    SearchM Q α 
goal: Aesop.SearchM Q α

full_name: Aesop.handleNonfatalError
code: def handleNonfatalError (err : MessageData) : SearchM Q (Array MVarId) 
goal: Aesop.SearchM Q (Array Lean.MVarId)

full_name: Aesop.searchLoop
code: partial def searchLoop : SearchM Q (Array MVarId) 
goal: Aesop.SearchM Q (Array Lean.MVarId)

full_name: Aesop.search
code: def search (goal : MVarId) (ruleSet? : Option LocalRuleSet := none)
     (options : Aesop.Options := {}) (simpConfig : Simp.Config := {})
     (simpConfigSyntax? : Option Term := none) (stats : Stats := {}) :
     MetaM (Array MVarId × Stats) 
goal: Lean.MetaM (Array Lean.MVarId × Aesop.Stats)