- normRule: Aesop.NormRule → Aesop.RuleSetMember
- unsafeRule: Aesop.UnsafeRule → Aesop.RuleSetMember
- safeRule: Aesop.SafeRule → Aesop.RuleSetMember
- normSimpRule: Aesop.NormSimpRule → Aesop.RuleSetMember
- localNormSimpRule: Aesop.LocalNormSimpRule → Aesop.RuleSetMember
- unfoldRule: Aesop.UnfoldRule → Aesop.RuleSetMember
Instances For
Equations
- Aesop.instInhabitedRuleSetMember = { default := Aesop.RuleSetMember.normRule default }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
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
- One or more equations did not get rendered due to their size.
Instances For
- normRules : Aesop.Index Aesop.NormRule
- unsafeRules : Aesop.Index Aesop.UnsafeRule
- safeRules : Aesop.Index Aesop.SafeRule
- normSimpLemmas : Lean.Meta.SimpTheorems
- normSimpLemmaDescrs : Lean.PHashMap Aesop.RuleName (Array Lean.Meta.SimpEntry)
- localNormSimpLemmas : Array Aesop.LocalNormSimpRule
- unfoldRules : Lean.PHashMap Lean.Name (Option Lean.Name)
- ruleNames : Lean.PHashMap Aesop.RuleIdent (Aesop.UnorderedArraySet Aesop.RuleName)
- erased : Lean.HashSet Aesop.RuleName
Instances For
Equations
- One or more equations did not get rendered due to their size.
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.RuleSet.instEmptyCollectionRuleSet = { emptyCollection := Aesop.RuleSet.empty }
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.RuleSet.addArray rs ra = Array.foldl Aesop.RuleSet.add rs ra 0 (Array.size ra)
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
- Aesop.RuleSet.rulesMatching rs f = match Lean.PersistentHashMap.find? rs.ruleNames f.ident with | none => ∅ | some ns => Aesop.UnorderedArraySet.filter (Aesop.RuleNameFilter.match f) ns
Instances For
Equations
- Aesop.RuleSet.applicableNormalizationRules rs goal = Aesop.Index.applicableRules rs.normRules goal fun x => !Aesop.RuleSet.isErased rs x.name
Instances For
Equations
- Aesop.RuleSet.applicableUnsafeRules rs goal = Aesop.Index.applicableRules rs.unsafeRules goal fun x => !Aesop.RuleSet.isErased rs x.name
Instances For
Equations
- Aesop.RuleSet.applicableSafeRules rs goal = Aesop.Index.applicableRules rs.safeRules goal fun x => !Aesop.RuleSet.isErased rs x.name
Instances For
def
Aesop.RuleSet.foldM
{m : Type u_1 → Type u_1}
{σ : Type u_1}
[Monad m]
(rs : Aesop.RuleSet)
(f : σ → Aesop.RuleSetMember → m σ)
(init : σ)
:
m σ
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
def
Aesop.RuleSet.foldM.go
{m : Type u_1 → Type u_1}
{σ : Type u_1}
[Monad m]
(rs : Aesop.RuleSet)
(f : σ → Aesop.RuleSetMember → m σ)
(s : σ)
(r : Aesop.RuleSetMember)
:
m σ
Equations
- Aesop.RuleSet.foldM.go rs f s r = if Aesop.RuleSet.isErased rs (Aesop.RuleSetMember.name r) = true then pure s else f s r
Instances For
@[inline]
def
Aesop.RuleSet.fold
{σ : Type u_1}
(rs : Aesop.RuleSet)
(f : σ → Aesop.RuleSetMember → σ)
(init : σ)
:
σ
Equations
- Aesop.RuleSet.fold rs f init = Id.run (Aesop.RuleSet.foldM rs f init)
Instances For
@[inline, reducible]
Equations
Instances For
Equations
- Aesop.defaultRuleSetName = `default
Instances For
Equations
- Aesop.builtinRuleSetName = `builtin
Instances For
Equations
- Aesop.localRuleSetName = `local
Instances For
Equations
Instances For
Instances For
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
Equations
- Aesop.instInhabitedRuleSets = { default := { rs := default } }
Equations
- Aesop.RuleSets.empty = { rs := ∅ }
Instances For
Equations
- Aesop.RuleSets.instEmptyCollectionRuleSets = { emptyCollection := Aesop.RuleSets.empty }
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.RuleSets.trace.compareRuleSets
(x : Aesop.RuleSetName × Aesop.RuleSet)
(y : Aesop.RuleSetName × Aesop.RuleSet)
:
Equations
- Aesop.RuleSets.trace.compareRuleSets x y = Ordering.isLT (Lean.Name.cmp x.fst y.fst)
Instances For
Equations
- Aesop.RuleSets.addEmptyRuleSet rss rsName = { rs := Lean.HashMap.insert rss.rs rsName ∅ }
Instances For
def
Aesop.RuleSets.addRuleSet
(rss : Aesop.RuleSets)
(rsName : Aesop.RuleSetName)
(rs : Aesop.RuleSet)
:
Equations
- Aesop.RuleSets.addRuleSet rss rsName rs = { rs := Lean.HashMap.insert rss.rs rsName rs }
Instances For
Equations
- Aesop.RuleSets.containsRuleSet rss name = Lean.HashMap.contains rss.rs name
Instances For
Equations
- Aesop.RuleSets.ensureRuleSet rss name = if Aesop.RuleSets.containsRuleSet rss name = true then rss else Aesop.RuleSets.addEmptyRuleSet rss name
Instances For
Equations
- Aesop.RuleSets.eraseRuleSet rss rsName = { rs := Lean.HashMap.erase rss.rs rsName }
Instances For
Equations
- Aesop.RuleSets.getRuleSet? rss rsName = Lean.HashMap.find? rss.rs rsName
Instances For
@[inline]
def
Aesop.RuleSets.modifyRuleSetM
{m : Type → Type u_1}
[Monad m]
(rss : Aesop.RuleSets)
(rsName : Aesop.RuleSetName)
(f : Aesop.RuleSet → m Aesop.RuleSet)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[inline]
def
Aesop.RuleSets.modifyRuleSet
(rss : Aesop.RuleSets)
(rsName : Aesop.RuleSetName)
(f : Aesop.RuleSet → Aesop.RuleSet)
:
Equations
- Aesop.RuleSets.modifyRuleSet rss rsName f = Id.run (Aesop.RuleSets.modifyRuleSetM rss rsName fun rs => pure (f rs))
Instances For
def
Aesop.RuleSets.containsRule
(rss : Aesop.RuleSets)
(rsName : Aesop.RuleSetName)
(rName : Aesop.RuleName)
:
Equations
- Aesop.RuleSets.containsRule rss rsName rName = match Aesop.RuleSets.getRuleSet? rss rsName with | none => false | some rs => Aesop.RuleSet.contains rs rName
Instances For
def
Aesop.RuleSets.addRuleUnchecked
(rss : Aesop.RuleSets)
(rsName : Aesop.RuleSetName)
(r : Aesop.RuleSetMember)
:
Equations
- Aesop.RuleSets.addRuleUnchecked rss rsName r = Aesop.RuleSets.modifyRuleSet rss rsName fun x => Aesop.RuleSet.add x r
Instances For
def
Aesop.RuleSets.addRuleChecked
{m : Type → Type}
[Monad m]
[Lean.MonadError m]
(rss : Aesop.RuleSets)
(rsName : Aesop.RuleSetName)
(rule : Aesop.RuleSetMember)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.RuleSets.eraseRules
(rss : Aesop.RuleSets)
(rsf : Aesop.RuleSetNameFilter)
(rf : Aesop.RuleNameFilter)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Aesop.RuleSets.eraseRulesChecked
{m : Type → Type}
[Monad m]
[Lean.MonadError m]
(rss : Aesop.RuleSets)
(rsf : Aesop.RuleSetNameFilter)
(rf : Aesop.RuleNameFilter)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[always_inline]
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.