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

full_name: Aesop.Index.byTarget
code: structure Index (α : Type) where
  byTarget : DiscrTree (Rule α)
  byHyp : DiscrTree (Rule α)
  unindexed : PHashSet (Rule α)
  deriving Inhabited
goal: Lean.Meta.DiscrTree (Aesop.Rule α)

full_name: Aesop.instInhabitedIndex
code: structure Index (α : Type) where
  byTarget : DiscrTree (Rule α)
  byHyp : DiscrTree (Rule α)
  unindexed : PHashSet (Rule α)
  deriving Inhabited
goal: {a : Type} → Inhabited (Aesop.Index a)

full_name: Aesop.Index.unindexed
code: structure Index (α : Type) where
  byTarget : DiscrTree (Rule α)
  byHyp : DiscrTree (Rule α)
  unindexed : PHashSet (Rule α)
  deriving Inhabited
goal: Lean.PHashSet (Aesop.Rule α)

full_name: Aesop.Index
code: structure Index (α : Type) where
  byTarget : DiscrTree (Rule α)
  byHyp : DiscrTree (Rule α)
  unindexed : PHashSet (Rule α)
  deriving Inhabited
goal: Type

full_name: Aesop.Index.byHyp
code: structure Index (α : Type) where
  byTarget : DiscrTree (Rule α)
  byHyp : DiscrTree (Rule α)
  unindexed : PHashSet (Rule α)
  deriving Inhabited
goal: Lean.Meta.DiscrTree (Aesop.Rule α)

full_name: Aesop.Index.trace
code: def trace [ToString (Rule α)] (ri : Index α) (traceOpt : TraceOption) :
    CoreM Unit 
goal: Lean.CoreM Unit

full_name: Aesop.Index.trace.traceArray
code: def trace [ToString (Rule α)] (ri : Index α) (traceOpt : TraceOption) :
    CoreM Unit 
goal: Lean.CoreM Unit

full_name: Aesop.Index.instEmptyCollection
code: instance : EmptyCollection (Index α) 
goal: EmptyCollection (Aesop.Index α)

full_name: Aesop.Index.merge
code: def merge (ri₁ ri₂ : Index α) : Index α 
goal: Aesop.Index α

full_name: Aesop.Index.add
code: @[specialize]
partial def add (r : Rule α) (imode : IndexingMode) (ri : Index α) :
    Index α 
goal: Aesop.Index α

full_name: Aesop.Index.unindex.filterDiscrTree'
code: def unindex (ri : Index α) (p : Rule α → Bool) : Index α 
goal: Lean.Meta.DiscrTree (Aesop.Rule α) × Lean.PHashSet (Aesop.Rule α)

full_name: Aesop.Index.unindex
code: def unindex (ri : Index α) (p : Rule α → Bool) : Index α 
goal: Aesop.Index α

full_name: Aesop.Index.foldM
code: def foldM [Monad m] (ri : Index α) (f : σ → Rule α → m σ) (init : σ) : m σ 
goal: m σ

full_name: Aesop.Index.fold
code: @[inline]
def fold (ri : Index α) (f : σ → Rule α → σ) (init : σ) : σ 
goal: σ

full_name: _private.«.lake».packages.aesop.Aesop.Index.0.Aesop.Index.applicableByTargetRules
code: @[inline]
private def applicableByTargetRules (ri : Index α) (goal : MVarId)
    (include? : Rule α → Bool) :
    MetaM (Array (Rule α × Array IndexMatchLocation)) 
goal: Lean.MetaM (Array (Aesop.Rule α × Array Aesop.IndexMatchLocation))

full_name: _private.«.lake».packages.aesop.Aesop.Index.0.Aesop.Index.applicableByHypRules
code: @[inline]
private def applicableByHypRules (ri : Index α) (goal : MVarId)
    (include? : Rule α → Bool) :
    MetaM (Array (Rule α × Array IndexMatchLocation)) 
goal: Lean.MetaM (Array (Aesop.Rule α × Array Aesop.IndexMatchLocation))

full_name: _private.«.lake».packages.aesop.Aesop.Index.0.Aesop.Index.applicableUnindexedRules
code: @[inline]
private def applicableUnindexedRules (ri : Index α) (include? : Rule α → Bool) :
    Array (Rule α × Array IndexMatchLocation) 
goal: Array (Aesop.Rule α × Array Aesop.IndexMatchLocation)

full_name: Aesop.Index.applicableRules.insertIndexMatchResults
code: @[specialize]
def applicableRules (ri : Index α) (goal : MVarId)
    (include? : Rule α → Bool) :
    MetaM (Array (IndexMatchResult (Rule α))) 
goal: Lean.RBMap (Aesop.Rule α) (Array Aesop.IndexMatchLocation) Aesop.Rule.compareByPriorityThenName

full_name: Aesop.Index.applicableRules
code: @[specialize]
def applicableRules (ri : Index α) (goal : MVarId)
    (include? : Rule α → Bool) :
    MetaM (Array (IndexMatchResult (Rule α))) 
goal: Lean.MetaM (Array (Aesop.IndexMatchResult (Aesop.Rule α)))