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

full_name: Aesop.BaseRuleSet
code: /--
The Aesop-specific parts of an Aesop rule set. A `BaseRuleSet` stores global
Aesop rules, e.g. safe and unsafe rules. It does not store simp theorems for
the builtin norm simp rule; these are instead stored in a simp extension.
-/
structure BaseRuleSet where
  /--
  Normalisation rules registered in this rule set.
  -/
  normRules : Index NormRuleInfo
  /--
  Unsafe rules registered in this rule set.
  -/
  unsafeRules : Index UnsafeRuleInfo
  /--
  Safe rules registered in this rule set.
  -/
  safeRules : Index SafeRuleInfo
  /--
  Rules for the builtin unfold rule. A pair `(decl, unfoldThm?)` in this map
  represents a declaration `decl` which should be unfolded. `unfoldThm?` should
  be the output of `getUnfoldEqnFor? decl` and is cached here for efficiency.
  -/
  unfoldRules : PHashMap Name (Option Name)
  /--
  The set of rules that were erased from `normRules`, `unsafeRules` and
  `safeRules`. When we erase a rule which is present in any of these three
  indices, the rule is not removed from the indices but just added to this set.
  By contrast, when we erase a rule from `unfoldRules`, we actually delete it.
  -/
  erased : PHashSet RuleName
  /--
  A cache of the names of all rules registered in this rule set. Invariant:
  `ruleNames` contains exactly the names of the rules present in `normRules`,
  `unsafeRules`, `safeRules` and `unfoldRules` and not present in `erased`. We
  use this cache (a) to quickly determine whether a rule is present in the rule
  set and (b) to find the full rule names associated with the fvar or const
  identified by a name.
  -/
  ruleNames : PHashMap Name (UnorderedArraySet RuleName)
  deriving Inhabited
goal: Type

full_name: Aesop.instInhabitedBaseRuleSet
code: /--
The Aesop-specific parts of an Aesop rule set. A `BaseRuleSet` stores global
Aesop rules, e.g. safe and unsafe rules. It does not store simp theorems for
the builtin norm simp rule; these are instead stored in a simp extension.
-/
structure BaseRuleSet where
  /--
  Normalisation rules registered in this rule set.
  -/
  normRules : Index NormRuleInfo
  /--
  Unsafe rules registered in this rule set.
  -/
  unsafeRules : Index UnsafeRuleInfo
  /--
  Safe rules registered in this rule set.
  -/
  safeRules : Index SafeRuleInfo
  /--
  Rules for the builtin unfold rule. A pair `(decl, unfoldThm?)` in this map
  represents a declaration `decl` which should be unfolded. `unfoldThm?` should
  be the output of `getUnfoldEqnFor? decl` and is cached here for efficiency.
  -/
  unfoldRules : PHashMap Name (Option Name)
  /--
  The set of rules that were erased from `normRules`, `unsafeRules` and
  `safeRules`. When we erase a rule which is present in any of these three
  indices, the rule is not removed from the indices but just added to this set.
  By contrast, when we erase a rule from `unfoldRules`, we actually delete it.
  -/
  erased : PHashSet RuleName
  /--
  A cache of the names of all rules registered in this rule set. Invariant:
  `ruleNames` contains exactly the names of the rules present in `normRules`,
  `unsafeRules`, `safeRules` and `unfoldRules` and not present in `erased`. We
  use this cache (a) to quickly determine whether a rule is present in the rule
  set and (b) to find the full rule names associated with the fvar or const
  identified by a name.
  -/
  ruleNames : PHashMap Name (UnorderedArraySet RuleName)
  deriving Inhabited
goal: Inhabited Aesop.BaseRuleSet

full_name: Aesop.BaseRuleSet.unsafeRules
code: /--
The Aesop-specific parts of an Aesop rule set. A `BaseRuleSet` stores global
Aesop rules, e.g. safe and unsafe rules. It does not store simp theorems for
the builtin norm simp rule; these are instead stored in a simp extension.
-/
structure BaseRuleSet where
  /--
  Normalisation rules registered in this rule set.
  -/
  normRules : Index NormRuleInfo
  /--
  Unsafe rules registered in this rule set.
  -/
  unsafeRules : Index UnsafeRuleInfo
  /--
  Safe rules registered in this rule set.
  -/
  safeRules : Index SafeRuleInfo
  /--
  Rules for the builtin unfold rule. A pair `(decl, unfoldThm?)` in this map
  represents a declaration `decl` which should be unfolded. `unfoldThm?` should
  be the output of `getUnfoldEqnFor? decl` and is cached here for efficiency.
  -/
  unfoldRules : PHashMap Name (Option Name)
  /--
  The set of rules that were erased from `normRules`, `unsafeRules` and
  `safeRules`. When we erase a rule which is present in any of these three
  indices, the rule is not removed from the indices but just added to this set.
  By contrast, when we erase a rule from `unfoldRules`, we actually delete it.
  -/
  erased : PHashSet RuleName
  /--
  A cache of the names of all rules registered in this rule set. Invariant:
  `ruleNames` contains exactly the names of the rules present in `normRules`,
  `unsafeRules`, `safeRules` and `unfoldRules` and not present in `erased`. We
  use this cache (a) to quickly determine whether a rule is present in the rule
  set and (b) to find the full rule names associated with the fvar or const
  identified by a name.
  -/
  ruleNames : PHashMap Name (UnorderedArraySet RuleName)
  deriving Inhabited
goal: Aesop.Index Aesop.UnsafeRuleInfo

full_name: Aesop.BaseRuleSet.unfoldRules
code: /--
The Aesop-specific parts of an Aesop rule set. A `BaseRuleSet` stores global
Aesop rules, e.g. safe and unsafe rules. It does not store simp theorems for
the builtin norm simp rule; these are instead stored in a simp extension.
-/
structure BaseRuleSet where
  /--
  Normalisation rules registered in this rule set.
  -/
  normRules : Index NormRuleInfo
  /--
  Unsafe rules registered in this rule set.
  -/
  unsafeRules : Index UnsafeRuleInfo
  /--
  Safe rules registered in this rule set.
  -/
  safeRules : Index SafeRuleInfo
  /--
  Rules for the builtin unfold rule. A pair `(decl, unfoldThm?)` in this map
  represents a declaration `decl` which should be unfolded. `unfoldThm?` should
  be the output of `getUnfoldEqnFor? decl` and is cached here for efficiency.
  -/
  unfoldRules : PHashMap Name (Option Name)
  /--
  The set of rules that were erased from `normRules`, `unsafeRules` and
  `safeRules`. When we erase a rule which is present in any of these three
  indices, the rule is not removed from the indices but just added to this set.
  By contrast, when we erase a rule from `unfoldRules`, we actually delete it.
  -/
  erased : PHashSet RuleName
  /--
  A cache of the names of all rules registered in this rule set. Invariant:
  `ruleNames` contains exactly the names of the rules present in `normRules`,
  `unsafeRules`, `safeRules` and `unfoldRules` and not present in `erased`. We
  use this cache (a) to quickly determine whether a rule is present in the rule
  set and (b) to find the full rule names associated with the fvar or const
  identified by a name.
  -/
  ruleNames : PHashMap Name (UnorderedArraySet RuleName)
  deriving Inhabited
goal: Lean.PHashMap Lean.Name (Option Lean.Name)

full_name: Aesop.BaseRuleSet.erased
code: /--
The Aesop-specific parts of an Aesop rule set. A `BaseRuleSet` stores global
Aesop rules, e.g. safe and unsafe rules. It does not store simp theorems for
the builtin norm simp rule; these are instead stored in a simp extension.
-/
structure BaseRuleSet where
  /--
  Normalisation rules registered in this rule set.
  -/
  normRules : Index NormRuleInfo
  /--
  Unsafe rules registered in this rule set.
  -/
  unsafeRules : Index UnsafeRuleInfo
  /--
  Safe rules registered in this rule set.
  -/
  safeRules : Index SafeRuleInfo
  /--
  Rules for the builtin unfold rule. A pair `(decl, unfoldThm?)` in this map
  represents a declaration `decl` which should be unfolded. `unfoldThm?` should
  be the output of `getUnfoldEqnFor? decl` and is cached here for efficiency.
  -/
  unfoldRules : PHashMap Name (Option Name)
  /--
  The set of rules that were erased from `normRules`, `unsafeRules` and
  `safeRules`. When we erase a rule which is present in any of these three
  indices, the rule is not removed from the indices but just added to this set.
  By contrast, when we erase a rule from `unfoldRules`, we actually delete it.
  -/
  erased : PHashSet RuleName
  /--
  A cache of the names of all rules registered in this rule set. Invariant:
  `ruleNames` contains exactly the names of the rules present in `normRules`,
  `unsafeRules`, `safeRules` and `unfoldRules` and not present in `erased`. We
  use this cache (a) to quickly determine whether a rule is present in the rule
  set and (b) to find the full rule names associated with the fvar or const
  identified by a name.
  -/
  ruleNames : PHashMap Name (UnorderedArraySet RuleName)
  deriving Inhabited
goal: Lean.PHashSet Aesop.RuleName

full_name: Aesop.BaseRuleSet.normRules
code: /--
The Aesop-specific parts of an Aesop rule set. A `BaseRuleSet` stores global
Aesop rules, e.g. safe and unsafe rules. It does not store simp theorems for
the builtin norm simp rule; these are instead stored in a simp extension.
-/
structure BaseRuleSet where
  /--
  Normalisation rules registered in this rule set.
  -/
  normRules : Index NormRuleInfo
  /--
  Unsafe rules registered in this rule set.
  -/
  unsafeRules : Index UnsafeRuleInfo
  /--
  Safe rules registered in this rule set.
  -/
  safeRules : Index SafeRuleInfo
  /--
  Rules for the builtin unfold rule. A pair `(decl, unfoldThm?)` in this map
  represents a declaration `decl` which should be unfolded. `unfoldThm?` should
  be the output of `getUnfoldEqnFor? decl` and is cached here for efficiency.
  -/
  unfoldRules : PHashMap Name (Option Name)
  /--
  The set of rules that were erased from `normRules`, `unsafeRules` and
  `safeRules`. When we erase a rule which is present in any of these three
  indices, the rule is not removed from the indices but just added to this set.
  By contrast, when we erase a rule from `unfoldRules`, we actually delete it.
  -/
  erased : PHashSet RuleName
  /--
  A cache of the names of all rules registered in this rule set. Invariant:
  `ruleNames` contains exactly the names of the rules present in `normRules`,
  `unsafeRules`, `safeRules` and `unfoldRules` and not present in `erased`. We
  use this cache (a) to quickly determine whether a rule is present in the rule
  set and (b) to find the full rule names associated with the fvar or const
  identified by a name.
  -/
  ruleNames : PHashMap Name (UnorderedArraySet RuleName)
  deriving Inhabited
goal: Aesop.Index Aesop.NormRuleInfo

full_name: Aesop.BaseRuleSet.safeRules
code: /--
The Aesop-specific parts of an Aesop rule set. A `BaseRuleSet` stores global
Aesop rules, e.g. safe and unsafe rules. It does not store simp theorems for
the builtin norm simp rule; these are instead stored in a simp extension.
-/
structure BaseRuleSet where
  /--
  Normalisation rules registered in this rule set.
  -/
  normRules : Index NormRuleInfo
  /--
  Unsafe rules registered in this rule set.
  -/
  unsafeRules : Index UnsafeRuleInfo
  /--
  Safe rules registered in this rule set.
  -/
  safeRules : Index SafeRuleInfo
  /--
  Rules for the builtin unfold rule. A pair `(decl, unfoldThm?)` in this map
  represents a declaration `decl` which should be unfolded. `unfoldThm?` should
  be the output of `getUnfoldEqnFor? decl` and is cached here for efficiency.
  -/
  unfoldRules : PHashMap Name (Option Name)
  /--
  The set of rules that were erased from `normRules`, `unsafeRules` and
  `safeRules`. When we erase a rule which is present in any of these three
  indices, the rule is not removed from the indices but just added to this set.
  By contrast, when we erase a rule from `unfoldRules`, we actually delete it.
  -/
  erased : PHashSet RuleName
  /--
  A cache of the names of all rules registered in this rule set. Invariant:
  `ruleNames` contains exactly the names of the rules present in `normRules`,
  `unsafeRules`, `safeRules` and `unfoldRules` and not present in `erased`. We
  use this cache (a) to quickly determine whether a rule is present in the rule
  set and (b) to find the full rule names associated with the fvar or const
  identified by a name.
  -/
  ruleNames : PHashMap Name (UnorderedArraySet RuleName)
  deriving Inhabited
goal: Aesop.Index Aesop.SafeRuleInfo

full_name: Aesop.BaseRuleSet.ruleNames
code: /--
The Aesop-specific parts of an Aesop rule set. A `BaseRuleSet` stores global
Aesop rules, e.g. safe and unsafe rules. It does not store simp theorems for
the builtin norm simp rule; these are instead stored in a simp extension.
-/
structure BaseRuleSet where
  /--
  Normalisation rules registered in this rule set.
  -/
  normRules : Index NormRuleInfo
  /--
  Unsafe rules registered in this rule set.
  -/
  unsafeRules : Index UnsafeRuleInfo
  /--
  Safe rules registered in this rule set.
  -/
  safeRules : Index SafeRuleInfo
  /--
  Rules for the builtin unfold rule. A pair `(decl, unfoldThm?)` in this map
  represents a declaration `decl` which should be unfolded. `unfoldThm?` should
  be the output of `getUnfoldEqnFor? decl` and is cached here for efficiency.
  -/
  unfoldRules : PHashMap Name (Option Name)
  /--
  The set of rules that were erased from `normRules`, `unsafeRules` and
  `safeRules`. When we erase a rule which is present in any of these three
  indices, the rule is not removed from the indices but just added to this set.
  By contrast, when we erase a rule from `unfoldRules`, we actually delete it.
  -/
  erased : PHashSet RuleName
  /--
  A cache of the names of all rules registered in this rule set. Invariant:
  `ruleNames` contains exactly the names of the rules present in `normRules`,
  `unsafeRules`, `safeRules` and `unfoldRules` and not present in `erased`. We
  use this cache (a) to quickly determine whether a rule is present in the rule
  set and (b) to find the full rule names associated with the fvar or const
  identified by a name.
  -/
  ruleNames : PHashMap Name (UnorderedArraySet RuleName)
  deriving Inhabited
goal: Lean.PHashMap Lean.Name (Aesop.UnorderedArraySet Aesop.RuleName)

full_name: Aesop.GlobalRuleSet.simprocs
code: /--
A global Aesop rule set. When we tag a declaration with `@[aesop]`, it is stored
in one or more of these rule sets. Internally, a `GlobalRuleSet` is composed of
a `BaseRuleSet` (stored in an Aesop rule set extension) plus a set of simp
theorems (stored in a `SimpExtension`).
-/
structure GlobalRuleSet extends BaseRuleSet where
  /--
  The simp theorems stored in this rule set.
  -/
  simpTheorems : SimpTheorems
  /--
  The simprocs stored in this rule set.
  -/
  simprocs : Simprocs
  deriving Inhabited
goal: Lean.Meta.Simprocs

full_name: Aesop.GlobalRuleSet
code: /--
A global Aesop rule set. When we tag a declaration with `@[aesop]`, it is stored
in one or more of these rule sets. Internally, a `GlobalRuleSet` is composed of
a `BaseRuleSet` (stored in an Aesop rule set extension) plus a set of simp
theorems (stored in a `SimpExtension`).
-/
structure GlobalRuleSet extends BaseRuleSet where
  /--
  The simp theorems stored in this rule set.
  -/
  simpTheorems : SimpTheorems
  /--
  The simprocs stored in this rule set.
  -/
  simprocs : Simprocs
  deriving Inhabited
goal: Type

full_name: Aesop.GlobalRuleSet.simpTheorems
code: /--
A global Aesop rule set. When we tag a declaration with `@[aesop]`, it is stored
in one or more of these rule sets. Internally, a `GlobalRuleSet` is composed of
a `BaseRuleSet` (stored in an Aesop rule set extension) plus a set of simp
theorems (stored in a `SimpExtension`).
-/
structure GlobalRuleSet extends BaseRuleSet where
  /--
  The simp theorems stored in this rule set.
  -/
  simpTheorems : SimpTheorems
  /--
  The simprocs stored in this rule set.
  -/
  simprocs : Simprocs
  deriving Inhabited
goal: Lean.Meta.SimpTheorems

full_name: Aesop.instInhabitedGlobalRuleSet
code: /--
A global Aesop rule set. When we tag a declaration with `@[aesop]`, it is stored
in one or more of these rule sets. Internally, a `GlobalRuleSet` is composed of
a `BaseRuleSet` (stored in an Aesop rule set extension) plus a set of simp
theorems (stored in a `SimpExtension`).
-/
structure GlobalRuleSet extends BaseRuleSet where
  /--
  The simp theorems stored in this rule set.
  -/
  simpTheorems : SimpTheorems
  /--
  The simprocs stored in this rule set.
  -/
  simprocs : Simprocs
  deriving Inhabited
goal: Inhabited Aesop.GlobalRuleSet

full_name: Aesop.LocalRuleSet
code: /--
The rule set used by an Aesop tactic call. A local rule set is produced by
combining several global rule sets and possibly adding or erasing some
individual rules.
-/
structure LocalRuleSet extends BaseRuleSet where
  /--
  The simp theorems used by the builtin norm simp rule.
  -/
  simpTheoremsArray : Array (Name × SimpTheorems)
  /--
  The simp theorems array must contain at least one `SimpTheorems` structure.
  When a simp theorem is added to a `LocalRuleSet`, it is stored in this first
  `SimpTheorems` structure.
  -/
  simpTheoremsArrayNonempty : 0 < simpTheoremsArray.size
  /--
  The simprocs used by the builtin norm simp rule.
  -/
  simprocsArray : Array (Name × Simprocs)
  /--
  The simprocs array must contain at least one `Simprocs` structure, for the
  same reason as above.
  -/
  simprocsArrayNonempty : 0 < simprocsArray.size
  /--
  FVars that were explicitly added as simp rules.
  -/
  localNormSimpRules : Array LocalNormSimpRule
goal: Type

full_name: Aesop.LocalRuleSet.localNormSimpRules
code: /--
The rule set used by an Aesop tactic call. A local rule set is produced by
combining several global rule sets and possibly adding or erasing some
individual rules.
-/
structure LocalRuleSet extends BaseRuleSet where
  /--
  The simp theorems used by the builtin norm simp rule.
  -/
  simpTheoremsArray : Array (Name × SimpTheorems)
  /--
  The simp theorems array must contain at least one `SimpTheorems` structure.
  When a simp theorem is added to a `LocalRuleSet`, it is stored in this first
  `SimpTheorems` structure.
  -/
  simpTheoremsArrayNonempty : 0 < simpTheoremsArray.size
  /--
  The simprocs used by the builtin norm simp rule.
  -/
  simprocsArray : Array (Name × Simprocs)
  /--
  The simprocs array must contain at least one `Simprocs` structure, for the
  same reason as above.
  -/
  simprocsArrayNonempty : 0 < simprocsArray.size
  /--
  FVars that were explicitly added as simp rules.
  -/
  localNormSimpRules : Array LocalNormSimpRule
goal: Array Aesop.LocalNormSimpRule

full_name: Aesop.LocalRuleSet.simprocsArrayNonempty
code: /--
The rule set used by an Aesop tactic call. A local rule set is produced by
combining several global rule sets and possibly adding or erasing some
individual rules.
-/
structure LocalRuleSet extends BaseRuleSet where
  /--
  The simp theorems used by the builtin norm simp rule.
  -/
  simpTheoremsArray : Array (Name × SimpTheorems)
  /--
  The simp theorems array must contain at least one `SimpTheorems` structure.
  When a simp theorem is added to a `LocalRuleSet`, it is stored in this first
  `SimpTheorems` structure.
  -/
  simpTheoremsArrayNonempty : 0 < simpTheoremsArray.size
  /--
  The simprocs used by the builtin norm simp rule.
  -/
  simprocsArray : Array (Name × Simprocs)
  /--
  The simprocs array must contain at least one `Simprocs` structure, for the
  same reason as above.
  -/
  simprocsArrayNonempty : 0 < simprocsArray.size
  /--
  FVars that were explicitly added as simp rules.
  -/
  localNormSimpRules : Array LocalNormSimpRule
goal: 0 < self.simprocsArray.size

full_name: Aesop.LocalRuleSet.simpTheoremsArray
code: /--
The rule set used by an Aesop tactic call. A local rule set is produced by
combining several global rule sets and possibly adding or erasing some
individual rules.
-/
structure LocalRuleSet extends BaseRuleSet where
  /--
  The simp theorems used by the builtin norm simp rule.
  -/
  simpTheoremsArray : Array (Name × SimpTheorems)
  /--
  The simp theorems array must contain at least one `SimpTheorems` structure.
  When a simp theorem is added to a `LocalRuleSet`, it is stored in this first
  `SimpTheorems` structure.
  -/
  simpTheoremsArrayNonempty : 0 < simpTheoremsArray.size
  /--
  The simprocs used by the builtin norm simp rule.
  -/
  simprocsArray : Array (Name × Simprocs)
  /--
  The simprocs array must contain at least one `Simprocs` structure, for the
  same reason as above.
  -/
  simprocsArrayNonempty : 0 < simprocsArray.size
  /--
  FVars that were explicitly added as simp rules.
  -/
  localNormSimpRules : Array LocalNormSimpRule
goal: Array (Lean.Name × Lean.Meta.SimpTheorems)

full_name: Aesop.LocalRuleSet.simprocsArray
code: /--
The rule set used by an Aesop tactic call. A local rule set is produced by
combining several global rule sets and possibly adding or erasing some
individual rules.
-/
structure LocalRuleSet extends BaseRuleSet where
  /--
  The simp theorems used by the builtin norm simp rule.
  -/
  simpTheoremsArray : Array (Name × SimpTheorems)
  /--
  The simp theorems array must contain at least one `SimpTheorems` structure.
  When a simp theorem is added to a `LocalRuleSet`, it is stored in this first
  `SimpTheorems` structure.
  -/
  simpTheoremsArrayNonempty : 0 < simpTheoremsArray.size
  /--
  The simprocs used by the builtin norm simp rule.
  -/
  simprocsArray : Array (Name × Simprocs)
  /--
  The simprocs array must contain at least one `Simprocs` structure, for the
  same reason as above.
  -/
  simprocsArrayNonempty : 0 < simprocsArray.size
  /--
  FVars that were explicitly added as simp rules.
  -/
  localNormSimpRules : Array LocalNormSimpRule
goal: Array (Lean.Name × Lean.Meta.Simprocs)

full_name: Aesop.LocalRuleSet.simpTheoremsArrayNonempty
code: /--
The rule set used by an Aesop tactic call. A local rule set is produced by
combining several global rule sets and possibly adding or erasing some
individual rules.
-/
structure LocalRuleSet extends BaseRuleSet where
  /--
  The simp theorems used by the builtin norm simp rule.
  -/
  simpTheoremsArray : Array (Name × SimpTheorems)
  /--
  The simp theorems array must contain at least one `SimpTheorems` structure.
  When a simp theorem is added to a `LocalRuleSet`, it is stored in this first
  `SimpTheorems` structure.
  -/
  simpTheoremsArrayNonempty : 0 < simpTheoremsArray.size
  /--
  The simprocs used by the builtin norm simp rule.
  -/
  simprocsArray : Array (Name × Simprocs)
  /--
  The simprocs array must contain at least one `Simprocs` structure, for the
  same reason as above.
  -/
  simprocsArrayNonempty : 0 < simprocsArray.size
  /--
  FVars that were explicitly added as simp rules.
  -/
  localNormSimpRules : Array LocalNormSimpRule
goal: 0 < self.simpTheoremsArray.size

full_name: Aesop.GlobalRuleSet.onBaseM
code: @[inline, always_inline]
def onBaseM [Monad m] (f : BaseRuleSet → m (BaseRuleSet × α))
    (rs : GlobalRuleSet) : m (GlobalRuleSet × α) 
goal: m (Aesop.GlobalRuleSet × α)

full_name: Aesop.GlobalRuleSet.onBase
code: @[inline, always_inline]
def onBase (f : BaseRuleSet → BaseRuleSet × α) (rs : GlobalRuleSet) :
    GlobalRuleSet × α 
goal: Aesop.GlobalRuleSet × α

full_name: Aesop.GlobalRuleSet.modifyBaseM
code: @[inline, always_inline]
def modifyBaseM [Monad m] (f : BaseRuleSet → m BaseRuleSet)
    (rs : GlobalRuleSet) : m GlobalRuleSet 
goal: m Aesop.GlobalRuleSet

full_name: Aesop.GlobalRuleSet.modifyBase
code: @[inline, always_inline]
def modifyBase (f : BaseRuleSet → BaseRuleSet) (rs : GlobalRuleSet) :
    GlobalRuleSet 
goal: Aesop.GlobalRuleSet

full_name: Aesop.LocalRuleSet.onBaseM
code: @[inline, always_inline]
def onBaseM [Monad m] (f : BaseRuleSet → m (BaseRuleSet × α))
    (rs : LocalRuleSet) : m (LocalRuleSet × α) 
goal: m (Aesop.LocalRuleSet × α)

full_name: Aesop.LocalRuleSet.onBase
code: @[inline, always_inline]
def onBase (f : BaseRuleSet → (BaseRuleSet × α)) (rs : LocalRuleSet) :
    LocalRuleSet × α 
goal: Aesop.LocalRuleSet × α

full_name: Aesop.LocalRuleSet.modifyBaseM
code: def modifyBaseM [Monad m] (f : BaseRuleSet → m BaseRuleSet) (rs : LocalRuleSet) :
    m LocalRuleSet 
goal: m Aesop.LocalRuleSet

full_name: Aesop.LocalRuleSet.modifyBase
code: def modifyBase (f : BaseRuleSet → BaseRuleSet) (rs : LocalRuleSet) :
    LocalRuleSet 
goal: Aesop.LocalRuleSet

full_name: Aesop.BaseRuleSet.trace
code: def BaseRuleSet.trace (rs : BaseRuleSet) (traceOpt : TraceOption) :
    CoreM Unit 
goal: Lean.CoreM Unit

full_name: Aesop.GlobalRuleSet.trace
code: def GlobalRuleSet.trace (rs : GlobalRuleSet) (traceOpt : TraceOption) :
    CoreM Unit 
goal: Lean.CoreM Unit

full_name: Aesop.LocalRuleSet.trace
code: def LocalRuleSet.trace (rs : LocalRuleSet) (traceOpt : TraceOption) :
    CoreM Unit 
goal: Lean.CoreM Unit

full_name: Aesop.LocalRuleSet.trace.printSimpSetName
code: def LocalRuleSet.trace (rs : LocalRuleSet) (traceOpt : TraceOption) :
    CoreM Unit 
goal: Lean.Name → String

full_name: Aesop.BaseRuleSet.empty
code: def BaseRuleSet.empty : BaseRuleSet 
goal: Aesop.BaseRuleSet

full_name: Aesop.instEmptyCollectionBaseRuleSet
code: instance : EmptyCollection BaseRuleSet 
goal: EmptyCollection Aesop.BaseRuleSet

full_name: Aesop.GlobalRuleSet.empty
code: def GlobalRuleSet.empty : GlobalRuleSet 
goal: Aesop.GlobalRuleSet

full_name: Aesop.instEmptyCollectionGlobalRuleSet
code: instance : EmptyCollection GlobalRuleSet 
goal: EmptyCollection Aesop.GlobalRuleSet

full_name: Aesop.LocalRuleSet.empty
code: def LocalRuleSet.empty : LocalRuleSet 
goal: Aesop.LocalRuleSet

full_name: Aesop.instEmptyCollectionLocalRuleSet
code: instance : EmptyCollection LocalRuleSet 
goal: EmptyCollection Aesop.LocalRuleSet

full_name: Aesop.instInhabitedLocalRuleSet
code: instance : Inhabited LocalRuleSet 
goal: Inhabited Aesop.LocalRuleSet

full_name: _private.«.lake».packages.aesop.Aesop.RuleSet.0.Aesop.BaseRuleSet.isErased
code: private def BaseRuleSet.isErased (rs : BaseRuleSet) (n : RuleName) : Bool 
goal: Bool

full_name: Aesop.BaseRuleSet.contains
code: def BaseRuleSet.contains (rs : BaseRuleSet) (n : RuleName) : Bool 
goal: Bool

full_name: Aesop.GlobalRuleSet.contains
code: def GlobalRuleSet.contains (rs : GlobalRuleSet) (n : RuleName) : Bool 
goal: Bool

full_name: Aesop.LocalRuleSet.containsGlobalSimpTheorem
code: def LocalRuleSet.containsGlobalSimpTheorem (rs : LocalRuleSet) (decl : Name) :
    Bool 
goal: Bool

full_name: Aesop.LocalRuleSet.contains
code: def LocalRuleSet.contains (rs : LocalRuleSet) (n : RuleName) : Bool 
goal: Bool

full_name: Aesop.BaseRuleSet.merge
code: def BaseRuleSet.merge (rs₁ rs₂ : BaseRuleSet) : BaseRuleSet 
goal: Aesop.BaseRuleSet

full_name: Aesop.BaseRuleSet.add
code: def BaseRuleSet.add (rs : BaseRuleSet) (r : BaseRuleSetMember) :
    BaseRuleSet 
goal: Aesop.BaseRuleSet

full_name: Aesop.LocalRuleSet.add
code: def LocalRuleSet.add (rs : LocalRuleSet) :
    LocalRuleSetMember → LocalRuleSet
  
goal: Aesop.LocalRuleSetMember → Aesop.LocalRuleSet

full_name: Aesop.BaseRuleSet.erase
code: def BaseRuleSet.erase (rs : BaseRuleSet) (f : RuleFilter) :
    BaseRuleSet × Bool 
goal: Aesop.BaseRuleSet × Bool

full_name: Aesop.GlobalRuleSet.erase
code: def GlobalRuleSet.erase (rs : GlobalRuleSet) (f : RuleFilter) :
    GlobalRuleSet × Bool 
goal: Aesop.GlobalRuleSet × Bool

full_name: Aesop.LocalRuleSet.erase
code: def LocalRuleSet.erase (rs : LocalRuleSet) (f : RuleFilter) :
    LocalRuleSet × Bool 
goal: Aesop.LocalRuleSet × Bool

full_name: Aesop.LocalRuleSet.applicableNormalizationRulesWith
code: def applicableNormalizationRulesWith (rs : LocalRuleSet) (goal : MVarId)
    (include? : NormRule → Bool) : MetaM (Array (IndexMatchResult NormRule)) 
goal: Lean.MetaM (Array (Aesop.IndexMatchResult Aesop.NormRule))

full_name: Aesop.LocalRuleSet.applicableNormalizationRules
code: @[inline, always_inline]
def applicableNormalizationRules (rs : LocalRuleSet) (goal : MVarId) :
    MetaM (Array (IndexMatchResult NormRule)) 
goal: Lean.MetaM (Array (Aesop.IndexMatchResult Aesop.NormRule))

full_name: Aesop.LocalRuleSet.applicableUnsafeRulesWith
code: def applicableUnsafeRulesWith (rs : LocalRuleSet) (goal : MVarId)
    (include? : UnsafeRule → Bool) :
    MetaM (Array (IndexMatchResult UnsafeRule)) 
goal: Lean.MetaM (Array (Aesop.IndexMatchResult Aesop.UnsafeRule))

full_name: Aesop.LocalRuleSet.applicableUnsafeRules
code: @[inline, always_inline]
def applicableUnsafeRules (rs : LocalRuleSet) (goal : MVarId) :
    MetaM (Array (IndexMatchResult UnsafeRule)) 
goal: Lean.MetaM (Array (Aesop.IndexMatchResult Aesop.UnsafeRule))

full_name: Aesop.LocalRuleSet.applicableSafeRulesWith
code: def applicableSafeRulesWith (rs : LocalRuleSet) (goal : MVarId)
    (include? : SafeRule → Bool) 
goal: Lean.MetaM (Array (Aesop.IndexMatchResult (Aesop.Rule Aesop.SafeRuleInfo)))

full_name: Aesop.LocalRuleSet.applicableSafeRules
code: @[inline, always_inline]
def applicableSafeRules (rs : LocalRuleSet) (goal : MVarId) :
    MetaM (Array (IndexMatchResult SafeRule)) 
goal: Lean.MetaM (Array (Aesop.IndexMatchResult Aesop.SafeRule))

full_name: Aesop.LocalRuleSet.unindex
code: def unindex (rs : LocalRuleSet) (p : RuleName → Bool) : LocalRuleSet 
goal: Aesop.LocalRuleSet

full_name: Aesop.unindexPredicate?
code: @[inline, always_inline]
def unindexPredicate? (options : Options') : Option (RuleName → Bool) 
goal: Option (Aesop.RuleName → Bool)

full_name: Aesop.mkLocalRuleSet
code: def mkLocalRuleSet (rss : Array (GlobalRuleSet × Name × Name))
    (options : Options') : CoreM LocalRuleSet 
goal: Lean.CoreM Aesop.LocalRuleSet