Sets of complete matches for norm/safe/unsafe rules.
- normMatches : Lean.PHashSet ForwardRuleMatch
Complete matches of norm rules.
- safeMatches : Lean.PHashSet ForwardRuleMatch
Complete matches of safe rules.
- unsafeMatches : Lean.PHashSet ForwardRuleMatch
Complete matches of unsafe rules.
Equations
- Aesop.instInhabitedForwardRuleMatches = { default := { normMatches := default, safeMatches := default, unsafeMatches := default } }
Empty ForwardRuleMatches
.
Equations
- Aesop.ForwardRuleMatches.empty = { normMatches := ∅, safeMatches := ∅, unsafeMatches := ∅ }
Equations
- Aesop.ForwardRuleMatches.instEmptyCollection = { emptyCollection := Aesop.ForwardRuleMatches.empty }
Add a complete match.
Equations
- One or more equations did not get rendered due to their size.
Add several complete matches.
Equations
- Aesop.ForwardRuleMatches.insertMany ms ms' = Array.foldl (fun (ms' : Aesop.ForwardRuleMatches) (m : Aesop.ForwardRuleMatch) => Aesop.ForwardRuleMatches.insert m ms') ms' ms
Erase a complete match.
Equations
- One or more equations did not get rendered due to their size.
Erase several complete matches.
Equations
- Aesop.ForwardRuleMatches.eraseMany ms ms' = Array.foldl (fun (ms' : Aesop.ForwardRuleMatches) (m : Aesop.ForwardRuleMatch) => Aesop.ForwardRuleMatches.erase m ms') ms' ms
Build a ForwardRuleMatches
structure containing the matches from ms
.
Equations
Erase matches containing any of the hypotheses hs
from ms
.
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.
Erase matches containing the hypothesis h
from ms
.
Equations
Update the ForwardRuleMatches
of a goal so that they are suitable for a
child goal. newMatches
are new forward rule matches obtained by updating the
old goal's ForwardState
with new hypotheses from the new goal. erasedHyps
are the hypotheses from the old goal that no longer appear in the new goal.
consumedForwardRuleMatch?
is a forward rule match that was applied as a rule
to transform the old goal into the new goal.
Equations
- One or more equations did not get rendered due to their size.
Fold over the norm rules corresponding to the norm rule matches.
Equations
- ms.foldNormRules f init = Aesop.ForwardRuleMatches.foldRules!✝ ms.normMatches (fun (x : Aesop.ForwardRuleMatch) => x.toNormRule?) f init
Get the norm rules corresponding to the norm rule matches.
Equations
- ms.normRules = ms.foldNormRules (fun (x1 : Array Aesop.NormRule) (x2 : Aesop.NormRule) => x1.push x2) #[]
Fold over the safe rules corresponding to the safe rule matches.
Equations
- ms.foldSafeRules f init = Aesop.ForwardRuleMatches.foldRules!✝ ms.safeMatches (fun (x : Aesop.ForwardRuleMatch) => x.toSafeRule?) f init
Get the safe rules corresponding to the safe rule matches.
Equations
- ms.safeRules = ms.foldSafeRules (fun (x1 : Array Aesop.SafeRule) (x2 : Aesop.SafeRule) => x1.push x2) #[]
Fold over the unsafe rules corresponding to the unsafe rule matches.
Equations
- ms.foldUnsafeRules f init = Aesop.ForwardRuleMatches.foldRules!✝ ms.unsafeMatches (fun (x : Aesop.ForwardRuleMatch) => x.toUnsafeRule?) f init
Get the unsafe rules corresponding to the unsafe rule matches.
Equations
- ms.unsafeRules = ms.foldUnsafeRules (fun (x1 : Array Aesop.UnsafeRule) (x2 : Aesop.UnsafeRule) => x1.push x2) #[]
O(n)
Number of matches in ms
.
Equations
- One or more equations did not get rendered due to their size.