Documentation

Init.Grind.Tactics

Reset all grind attributes. This command is intended for testing purposes only and should not be used in applications.

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
          • 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

                        The configuration for grind. Passed to grind using, for example, the grind (config := { matchEqs := true }) syntax.

                        • trace : Bool

                          If trace is true, grind records used E-matching theorems and case-splits.

                        • splits : Nat

                          Maximum number of case-splits in a proof search branch. It does not include splits performed during normalization.

                        • ematch : Nat

                          Maximum number of E-matching (aka heuristic theorem instantiation) rounds before each case split.

                        • gen : Nat

                          Maximum term generation. The input goal terms have generation 0. When we instantiate a theorem using a term from generation n, the new terms have generation n+1. Thus, this parameter limits the length of an instantiation chain.

                        • instances : Nat

                          Maximum number of theorem instances generated using E-matching in a proof search tree branch.

                        • matchEqs : Bool

                          If matchEqs is true, grind uses match-equations as E-matching theorems.

                        • splitMatch : Bool

                          If splitMatch is true, grind performs case-splitting on match-expressions during the search.

                        • splitIte : Bool

                          If splitIte is true, grind performs case-splitting on if-then-else expressions during the search.

                        • splitIndPred : Bool

                          If splitIndPred is true, grind performs case-splitting on inductive predicates. Otherwise, it performs case-splitting only on types marked with [grind cases] attribute.

                        • failures : Nat

                          By default, grind halts as soon as it encounters a sub-goal where no further progress can be made.

                        • canonHeartbeats : Nat

                          Maximum number of heartbeats (in thousands) the canonicalizer can spend per definitional equality test.

                        • ext : Bool

                          If ext is true, grind uses extensionality theorems available in the environment.

                        • verbose : Bool

                          If verbose is false, additional diagnostics information is not collected.

                        • clean : Bool

                          If clean is true, grind uses expose_names and only generates accessible names.

                        • qlia : Bool

                          If qlia is true, grind may generate counterexamples for integer constraints using rational numbers, and ignoring divisibility constraints. This approach is cheaper but incomplete.

                        • mbtc : Bool

                          If mbtc is true, grind will use model-based theory commbination for creating new case splits. See paper "Model-based Theory Combination" for details.

                        • zetaDelta : Bool

                          When set to true (default: true), local definitions are unfolded during normalization and internalization. In other words, given a local context with an entry x : t := e, the free variable x is reduced to e. Note that this behavior is also available in simp, but there its default is false because simp is not always used as a terminal tactic, and it important to preserve the abstractions introduced by users. Additionally, in grind we observed that zetaDelta is particularly important when combined with function induction. In such scenarios, the same let-expressions can be introduced by function induction and also by unfolding the corresponding definition. We want to avoid a situation in which zetaDelta is not applied to let-declarations introduced by function induction while zeta unfolds the definition, causing a mismatch. Finally, note that congruence closure is less effective on terms containing many binders such as lambda and let expressions.

                        • zeta : Bool

                          When true (default: true), performs zeta reduction of let expressions during normalization. That is, let x := v; e[x] reduces to e[v]. See also zetaDelta.

                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.

                          grind tactic and related tactics.

                          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