- 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.NormRuleInfoNormalisation rules registered in this rule set. 
- unsafeRules : Aesop.Index Aesop.UnsafeRuleInfoUnsafe rules registered in this rule set. 
- safeRules : Aesop.Index Aesop.SafeRuleInfoSafe 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 declarationdeclwhich should be unfolded.unfoldThm?should be the output ofgetUnfoldEqnFor? decland is cached here for efficiency.
- erased : Lean.PHashSet Aesop.RuleNameThe set of rules that were erased from normRules,unsafeRulesandsafeRules. 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: ruleNamescontains exactly the names of the rules present innormRules,unsafeRules,safeRulesandunfoldRulesand 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.SimpTheoremsThe simp theorems stored in this rule set. 
- simprocs : Lean.Meta.SimprocsThe 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.simpTheoremsArrayThe simp theorems array must contain at least one SimpTheoremsstructure. When a simp theorem is added to aLocalRuleSet, it is stored in this firstSimpTheoremsstructure.
- simprocsArray : Array (Lean.Name × Lean.Meta.Simprocs)The simprocs used by the builtin norm simp rule. 
- simprocsArrayNonempty : 0 < Array.size self.simprocsArrayThe simprocs array must contain at least one Simprocsstructure, for the same reason as above.
- localNormSimpRules : Array Aesop.LocalNormSimpRuleFVars 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.