File: .lake/packages/aesop/Aesop/Tracing.lean

full_name: Aesop.TraceOption.option
code: structure TraceOption where
  traceClass : Name
  option : Lean.Option Bool
  deriving Inhabited
goal: Lean.Option Bool

full_name: Aesop.TraceOption.traceClass
code: structure TraceOption where
  traceClass : Name
  option : Lean.Option Bool
  deriving Inhabited
goal: Lean.Name

full_name: Aesop.instInhabitedTraceOption
code: structure TraceOption where
  traceClass : Name
  option : Lean.Option Bool
  deriving Inhabited
goal: Inhabited Aesop.TraceOption

full_name: Aesop.TraceOption
code: structure TraceOption where
  traceClass : Name
  option : Lean.Option Bool
  deriving Inhabited
goal: Type

full_name: Aesop.registerTraceOption
code: def registerTraceOption (traceName : Name) (descr : String) :
    IO TraceOption 
goal: IO Aesop.TraceOption

full_name: Aesop.TraceOption.isEnabled
code: def isEnabled [Monad m] [MonadOptions m] (opt : TraceOption) : m Bool 
goal: m Bool

full_name: Aesop.TraceOption.withEnabled
code: def withEnabled [Monad m] [MonadWithOptions m] (opt : TraceOption) (k : m α) :
    m α 
goal: m α

full_name: Aesop.TraceOption.steps
code: initialize steps : TraceOption ←
  registerTraceOption .anonymous
    "(aesop) Print actions taken by Aesop during the proof search."
goal: Aesop.TraceOption

full_name: Aesop.TraceOption.initFn._@..lake.packages.aesop.Aesop.Tracing._hyg.182
code: initialize steps : TraceOption ←
  registerTraceOption .anonymous
    "(aesop) Print actions taken by Aesop during the proof search."
goal: IO Aesop.TraceOption

full_name: Aesop.TraceOption.initFn._@..lake.packages.aesop.Aesop.Tracing._hyg.204
code: initialize ruleSet : TraceOption ←
  registerTraceOption `ruleSet
    "(aesop) Print the rule set before starting the search."
goal: IO Aesop.TraceOption

full_name: Aesop.TraceOption.ruleSet
code: initialize ruleSet : TraceOption ←
  registerTraceOption `ruleSet
    "(aesop) Print the rule set before starting the search."
goal: Aesop.TraceOption

full_name: Aesop.TraceOption.proof
code: initialize proof : TraceOption ←
  registerTraceOption `proof
    "(aesop) If the search is successful, print the produced proof term."
goal: Aesop.TraceOption

full_name: Aesop.TraceOption.initFn._@..lake.packages.aesop.Aesop.Tracing._hyg.226
code: initialize proof : TraceOption ←
  registerTraceOption `proof
    "(aesop) If the search is successful, print the produced proof term."
goal: IO Aesop.TraceOption

full_name: Aesop.TraceOption.initFn._@..lake.packages.aesop.Aesop.Tracing._hyg.248
code: initialize tree : TraceOption ←
  registerTraceOption `tree
    "(aesop) Once the search has concluded (successfully or unsuccessfully), print the final search tree."
goal: IO Aesop.TraceOption

full_name: Aesop.TraceOption.tree
code: initialize tree : TraceOption ←
  registerTraceOption `tree
    "(aesop) Once the search has concluded (successfully or unsuccessfully), print the final search tree."
goal: Aesop.TraceOption

full_name: Aesop.TraceOption.extraction
code: initialize extraction : TraceOption ←
  registerTraceOption `extraction
    "(aesop) Print a trace of the proof extraction procedure."
goal: Aesop.TraceOption

full_name: Aesop.TraceOption.initFn._@..lake.packages.aesop.Aesop.Tracing._hyg.270
code: initialize extraction : TraceOption ←
  registerTraceOption `extraction
    "(aesop) Print a trace of the proof extraction procedure."
goal: IO Aesop.TraceOption

full_name: Aesop.TraceOption.initFn._@..lake.packages.aesop.Aesop.Tracing._hyg.292
code: initialize stats : TraceOption ←
  registerTraceOption `stats
    "(aesop) If the search is successful, print some statistics."
goal: IO Aesop.TraceOption

full_name: Aesop.TraceOption.stats
code: initialize stats : TraceOption ←
  registerTraceOption `stats
    "(aesop) If the search is successful, print some statistics."
goal: Aesop.TraceOption

full_name: Aesop.TraceOption.debug
code: initialize debug : TraceOption ←
  registerTraceOption `debug
    "(aesop) Print various debugging information."
goal: Aesop.TraceOption

full_name: Aesop.TraceOption.initFn._@..lake.packages.aesop.Aesop.Tracing._hyg.314
code: initialize debug : TraceOption ←
  registerTraceOption `debug
    "(aesop) Print various debugging information."
goal: IO Aesop.TraceOption

full_name: _private.«.lake».packages.aesop.Aesop.Tracing.0.Aesop.isFullyQualifiedGlobalName
code: private def isFullyQualifiedGlobalName (n : Name) : MacroM Bool 
goal: Lean.MacroM Bool

full_name: Aesop.resolveTraceOption
code: def resolveTraceOption (stx : Ident) : MacroM Name 
goal: Lean.MacroM Lean.Name

full_name: Aesop.«doElemAesop_trace![_]__»
code: macro "aesop_trace![" opt:ident "] " msg:(interpolatedStr(term) <|> term) :
    doElem => do
  let opt ← mkIdent <$> resolveTraceOption opt
  let msg := msg.raw
  let msg ← if msg.getKind == interpolatedStrKind then
    `(m! $(⟨msg⟩):interpolatedStr)
  else
    `(toMessageData ($(⟨msg⟩)))
  `(doElem| Lean.addTrace (Aesop.TraceOption.traceClass $opt) $msg)
goal: Lean.ParserDescr

full_name: Aesop.«_aux_.lake_packages_aesop_Aesop_Tracing___macroRules_Aesop_doElemAesop_trace![_]___1»
code: macro "aesop_trace![" opt:ident "] " msg:(interpolatedStr(term) <|> term) :
    doElem => do
  let opt ← mkIdent <$> resolveTraceOption opt
  let msg := msg.raw
  let msg ← if msg.getKind == interpolatedStrKind then
    `(m! $(⟨msg⟩):interpolatedStr)
  else
    `(toMessageData ($(⟨msg⟩)))
  `(doElem| Lean.addTrace (Aesop.TraceOption.traceClass $opt) $msg)
goal: Lean.Macro

full_name: Aesop.«doElemAesop_trace[_]___»
code: macro "aesop_trace[" opt:ident "] "
    msg:(interpolatedStr(term) <|> Parser.Term.do <|> term) : doElem => do
  let msg := msg.raw
  let opt ← mkIdent <$> resolveTraceOption opt
  match msg with
  | `(do $action) =>
    `(doElem| do
        if ← Aesop.TraceOption.isEnabled $opt then
          $action)
  | _ =>
    `(doElem| do
        if ← Aesop.TraceOption.isEnabled $opt then
          aesop_trace![$opt] $(⟨msg⟩))
goal: Lean.ParserDescr

full_name: Aesop.«_aux_.lake_packages_aesop_Aesop_Tracing___macroRules_Aesop_doElemAesop_trace[_]____1»
code: macro "aesop_trace[" opt:ident "] "
    msg:(interpolatedStr(term) <|> Parser.Term.do <|> term) : doElem => do
  let msg := msg.raw
  let opt ← mkIdent <$> resolveTraceOption opt
  match msg with
  | `(do $action) =>
    `(doElem| do
        if ← Aesop.TraceOption.isEnabled $opt then
          $action)
  | _ =>
    `(doElem| do
        if ← Aesop.TraceOption.isEnabled $opt then
          aesop_trace![$opt] $(⟨msg⟩))
goal: Lean.Macro

full_name: Aesop.ruleSuccessEmoji
code: def ruleSuccessEmoji    
goal: String

full_name: Aesop.ruleFailureEmoji
code: def ruleFailureEmoji    
goal: String

full_name: Aesop.ruleProvedEmoji
code: def ruleProvedEmoji     
goal: String

full_name: Aesop.ruleErrorEmoji
code: def ruleErrorEmoji      
goal: String

full_name: Aesop.rulePostponedEmoji
code: def rulePostponedEmoji  
goal: String

full_name: Aesop.ruleSkippedEmoji
code: def ruleSkippedEmoji    
goal: String

full_name: Aesop.nodeUnknownEmoji
code: def nodeUnknownEmoji    
goal: String

full_name: Aesop.nodeProvedEmoji
code: def nodeProvedEmoji     
goal: String

full_name: Aesop.nodeUnprovableEmoji
code: def nodeUnprovableEmoji 
goal: String

full_name: Aesop.newNodeEmoji
code: def newNodeEmoji        
goal: String

full_name: Aesop.exceptRuleResultToEmoji
code: def exceptRuleResultToEmoji (toEmoji : α → String) : Except ε α → String
  
goal: Except ε α → String

full_name: Aesop.withAesopTraceNode
code: @[inline, always_inline]
def withAesopTraceNode (opt : TraceOption)
    (msg : Except ε α → m MessageData) (k : m α) (collapsed := true) : m α 
goal: m α

full_name: Aesop.withConstAesopTraceNode
code: @[inline, always_inline]
def withConstAesopTraceNode (opt : TraceOption) (msg : m MessageData) (k : m α)
    (collapsed := true) : m α 
goal: m α

full_name: Aesop.traceSimpTheoremTreeContents
code: def traceSimpTheoremTreeContents (t : SimpTheoremTree) (opt : TraceOption) :
    CoreM Unit 
goal: Lean.CoreM Unit

full_name: Aesop.traceSimpTheorems
code: def traceSimpTheorems (s : SimpTheorems) (opt : TraceOption) : CoreM Unit 
goal: Lean.CoreM Unit