A collection of theorems. We use it to implement E-matching and injectivity theorems used by grind.
- decl
(declName : Name)
: Origin
A global declaration in the environment.
- fvar
(fvarId : FVarId)
: Origin
A local hypothesis.
- stx
(id : Name)
(ref : Syntax)
: Origin
A proof term provided directly to a call to
grindwhererefis the provided grind argument. Theidis a unique identifier for the call. - local
(id : Name)
: Origin
It is local, but we don't have a local hypothesis for it.
Instances For
A unique identifier corresponding to the origin.
Equations
Instances For
- smap : Lean.PHashMap Lean.Name (List α)
- origins : Lean.PHashSet Lean.Meta.Grind.Origin
- erased : Lean.PHashSet Lean.Meta.Grind.Origin
- omap : Lean.PHashMap Lean.Meta.Grind.Origin (List α)
Instances For
Equations
Instances For
Inserts a thm with symbols [s_1, ..., s_n] to s.
We add s_1 -> { thm with symbols := [s_2, ..., s_n] }.
When grind internalizes a term containing symbol s, we
process all theorems thm associated with key s.
If their thm.symbols is empty, we say they are activated.
Otherwise, we reinsert into map.
Equations
Instances For
Retrieves theorems from s associated with the given symbol. See Theorems.insert.
The theorems are removed from s.
Equations
Instances For
Equations
Instances For
Equations
A TheoremsArray α is a collection of Theorems α.
The array is scanned linear during theorem activation.
This avoids the need for efficiently merging the Theorems α data structure.