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.
- normRules : Aesop.Index Aesop.NormRuleInfo
Normalisation rules registered in this rule set.
- unsafeRules : Aesop.Index Aesop.UnsafeRuleInfo
Unsafe rules registered in this rule set.
- safeRules : Aesop.Index Aesop.SafeRuleInfo
Safe rules registered in this rule set.
- unfoldRules : Lean.PHashMap Lean.Name (Option Lean.Name)
Rules for the builtin unfold rule. A pair
(decl, unfoldThm?)
in this map represents a declarationdecl
which should be unfolded.unfoldThm?
should be the output ofgetUnfoldEqnFor? decl
and is cached here for efficiency. - erased : Lean.PHashSet Aesop.RuleName
The set of rules that were erased from
normRules
,unsafeRules
andsafeRules
. 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 fromunfoldRules
, we actually delete it. - ruleNames : Lean.PHashMap Lean.Name (Aesop.UnorderedArraySet Aesop.RuleName)
A cache of the names of all rules registered in this rule set. Invariant:
ruleNames
contains exactly the names of the rules present innormRules
,unsafeRules
,safeRules
andunfoldRules
and not present inerased
. 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.
Instances For
Equations
- One or more equations did not get rendered due to their size.
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
).
- normRules : Aesop.Index Aesop.NormRuleInfo
- unsafeRules : Aesop.Index Aesop.UnsafeRuleInfo
- safeRules : Aesop.Index Aesop.SafeRuleInfo
- unfoldRules : Lean.PHashMap Lean.Name (Option Lean.Name)
- erased : Lean.PHashSet Aesop.RuleName
- ruleNames : Lean.PHashMap Lean.Name (Aesop.UnorderedArraySet Aesop.RuleName)
- simpTheorems : Lean.Meta.SimpTheorems
The simp theorems stored in this rule set.
- simprocs : Lean.Meta.Simprocs
The simprocs stored in this rule set.
Instances For
Equations
- Aesop.instInhabitedGlobalRuleSet = { default := { toBaseRuleSet := default, simpTheorems := default, simprocs := default } }
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.
- normRules : Aesop.Index Aesop.NormRuleInfo
- unsafeRules : Aesop.Index Aesop.UnsafeRuleInfo
- safeRules : Aesop.Index Aesop.SafeRuleInfo
- unfoldRules : Lean.PHashMap Lean.Name (Option Lean.Name)
- erased : Lean.PHashSet Aesop.RuleName
- ruleNames : Lean.PHashMap Lean.Name (Aesop.UnorderedArraySet Aesop.RuleName)
- simpTheoremsArray : Array (Lean.Name × Lean.Meta.SimpTheorems)
The simp theorems used by the builtin norm simp rule.
- simpTheoremsArrayNonempty : 0 < Array.size self.simpTheoremsArray
The simp theorems array must contain at least one
SimpTheorems
structure. When a simp theorem is added to aLocalRuleSet
, it is stored in this firstSimpTheorems
structure. - simprocsArray : Array (Lean.Name × Lean.Meta.Simprocs)
The simprocs used by the builtin norm simp rule.
- simprocsArrayNonempty : 0 < Array.size self.simprocsArray
The simprocs array must contain at least one
Simprocs
structure, for the same reason as above. - localNormSimpRules : Array Aesop.LocalNormSimpRule
FVars that were explicitly added as simp rules.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aesop.LocalRuleSet.trace.printSimpSetName x = match x with | `_ => "<default>" | n => toString n
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aesop.instEmptyCollectionBaseRuleSet = { emptyCollection := Aesop.BaseRuleSet.empty }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aesop.instEmptyCollectionGlobalRuleSet = { emptyCollection := Aesop.GlobalRuleSet.empty }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aesop.instEmptyCollectionLocalRuleSet = { emptyCollection := Aesop.LocalRuleSet.empty }
Equations
- Aesop.instInhabitedLocalRuleSet = { default := ∅ }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aesop.LocalRuleSet.applicableSafeRules rs goal = Aesop.Index.applicableRules rs.safeRules goal fun (x : Aesop.Rule Aesop.SafeRuleInfo) => !Aesop.BaseRuleSet.isErased rs.toBaseRuleSet x.name
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.