- normRule: Aesop.NormRule → Aesop.BaseRuleSetMember
- unsafeRule: Aesop.UnsafeRule → Aesop.BaseRuleSetMember
- safeRule: Aesop.SafeRule → Aesop.BaseRuleSetMember
- unfoldRule: Aesop.UnfoldRule → Aesop.BaseRuleSetMember
Instances For
Equations
- Aesop.instInhabitedBaseRuleSetMember = { default := Aesop.BaseRuleSetMember.normRule default }
Equations
- One or more equations did not get rendered due to their size.
Instances For
- base: Aesop.BaseRuleSetMember → Aesop.GlobalRuleSetMember
- normSimpRule: Aesop.NormSimpRule → Aesop.GlobalRuleSetMember
Instances For
Equations
- Aesop.instInhabitedGlobalRuleSetMember = { default := Aesop.GlobalRuleSetMember.base default }
Equations
- Aesop.GlobalRuleSetMember.name x = match x with | Aesop.GlobalRuleSetMember.base m => Aesop.BaseRuleSetMember.name m | Aesop.GlobalRuleSetMember.normSimpRule r => r.name
Instances For
- global: Aesop.GlobalRuleSetMember → Aesop.LocalRuleSetMember
- localNormSimpRule: Aesop.LocalNormSimpRule → Aesop.LocalRuleSetMember
Instances For
Equations
- Aesop.instInhabitedLocalRuleSetMember = { default := Aesop.LocalRuleSetMember.global default }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aesop.LocalRuleSetMember.toGlobalRuleSetMember? x = match x with | Aesop.LocalRuleSetMember.global m => some m | x => none
Instances For
- ident : Aesop.RuleIdent
- builders : Array Aesop.BuilderName
- phases : Array Aesop.PhaseName
Instances For
Equations
- Aesop.RuleNameFilter.ofIdent i = { ident := i, builders := #[], phases := #[] }
Instances For
Equations
- Aesop.RuleNameFilter.matchesPhase f p = (Array.isEmpty f.phases || Array.contains f.phases p)
Instances For
Equations
- Aesop.RuleNameFilter.matchesBuilder f b = (Array.isEmpty f.builders || Array.contains f.builders b)
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
Instances For
Equations
- Aesop.defaultRuleSetName = `default
Instances For
Equations
- Aesop.builtinRuleSetName = `builtin
Instances For
Equations
- Aesop.localRuleSetName = `local
Instances For
Instances For
Equations
Instances For
Equations
- Aesop.RuleSetNameFilter.all = { ns := #[] }
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Aesop.RuleSetNameFilter.matchedRuleSetNames f = if Aesop.RuleSetNameFilter.matchesAll f = true then none else some f.ns
Instances For
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 Aesop.RuleIdent (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 corresponding to aRuleIdent
.
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 Aesop.RuleIdent (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 Aesop.RuleIdent (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
- 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.