Instances For
Inserts declName ↦ prio into s.
Instances For
- eqLhs (gen : Bool) : EMatchTheoremKind
- eqRhs (gen : Bool) : EMatchTheoremKind
- eqBoth (gen : Bool) : EMatchTheoremKind
- eqBwd : EMatchTheoremKind
- fwd : EMatchTheoremKind
- bwd (gen : Bool) : EMatchTheoremKind
- leftRight : EMatchTheoremKind
- rightLeft : EMatchTheoremKind
- default (gen : Bool) : EMatchTheoremKind
- user : EMatchTheoremKind
Instances For
Instances For
Instances For
Instances For
Grind patterns may have constraints associated with them.
- notDefEq (lhs : Nat) (rhs : CnstrRHS) : EMatchTheoremConstraint
A constraint of the form
lhs =/= rhs. Thelhsis one of the bound variables, and therhsan abstract term that must not be definitionally equal to a termtassigned tolhs. - defEq (lhs : Nat) (rhs : CnstrRHS) : EMatchTheoremConstraint
A constraint of the form
lhs =?= rhs. Thelhsis one of the bound variables, and therhsan abstract term that must be definitionally equal to a termtassigned tolhs. - sizeLt (lhs n : Nat) : EMatchTheoremConstraint
A constraint of the form
size lhs < n. Thelhsis one of the bound variables. The size is computed ignoring implicit terms, but sharing is not taken into account. - depthLt (lhs n : Nat) : EMatchTheoremConstraint
A constraint of the form
depth lhs < n. Thelhsis one of the bound variables. The depth is computed in constant time using theapproxDepthfield attached to expressions. - genLt (n : Nat) : EMatchTheoremConstraint
Instantiates the theorem only if its generation is less than
n - isGround (bvarIdx : Nat) : EMatchTheoremConstraint
Constraints of the form
is_ground x. Instantiates the theorem only ifxis ground term. - isValue (bvarIdx : Nat) (strict : Bool) : EMatchTheoremConstraint
Constraints of the form
is_value xandis_strict_value x. A value is defined as- A constructor fully applied to value arguments.
- A literal: numerals, strings, etc.
- A lambda. In the strict case, lambdas are not considered.
- maxInsts (n : Nat) : EMatchTheoremConstraint
Instantiates the theorem only if less than
ninstances have been generated for this theorem. - guard (e : Expr) : EMatchTheoremConstraint
It instructs
grindto postpone the instantiation of the theorem untileis known to betrue. - check (e : Expr) : EMatchTheoremConstraint
Similar to
guard, but checks whethereis implied by asserting¬e. - notValue (bvarIdx : Nat) (strict : Bool) : EMatchTheoremConstraint
Constraints of the form
not_value xandnot_strict_value x. They are the negations ofis_value xandis_strict_value x.
Instances For
Instances For
A theorem for heuristic instantiation based on E-matching.
It stores universe parameter names for universe polymorphic proofs. Recall that it is non-empty only when we elaborate an expression provided by the user. When
proofis just a constant, we can use the universe parameter names stored in the declaration.- proof : Expr
- numParams : Nat
Contains all symbols used in
patterns.- origin : Origin
- kind : EMatchTheoremKind
- minIndexable : Bool
Stores whether patterns were inferred using the minimal indexable subexpression condition.
- cnstrs : List EMatchTheoremConstraint
Instances For
A theorem marked with @[grind inj]
- proof : Expr
Contains all symbols used in the term
fat the theorem's conclusion:Function.Injective f.- origin : Origin
Instances For
- casesTypes : CasesTypes
- extThms : ExtTheorems
- funCC : NameSet
- ematch : Theorems EMatchTheorem
- inj : Theorems InjectiveTheorem
Instances For
Instances For
Instances For
grind is parametrized by a collection of ExtensionState. The motivation is to allow
users to use multiple extensions simultaneously without merging them into a single structure.
The collection is scanned linearly. In practice, we expect the array to be very small.