Documentation

Init.Grind.Interactive

The ! modifier instructs grind to consider only minimal indexable subexpressions when selecting patterns.

Instances For

    The ! modifier instructs grind to consider only minimal indexable subexpressions when selecting patterns.

    Instances For

      grind is the syntax category for a "grind interactive tactic". A grind tactic is a program which receives a grind goal.

      Instances For

        (grindSeq) runs the grindSeq in sequence on the current list of targets. This is pure grouping with no added effects.

        Instances For

          lia linear integer arithmetic.

          Instances For

            ring (commutative) rings and fields.

            Instances For

              ac associativity and commutativity procedure.

              Instances For

                The sorry tactic is a temporary placeholder for an incomplete tactic proof.

                Instances For

                  Instantiates theorems using E-matching. The approx modifier is just a marker for users to easily identify automatically generated instantiate tactics that may have redundant arguments.

                  Instances For

                    Shorthand for instantiate only

                    Instances For

                      Shows asserted facts.

                      Instances For

                        Shows propositions known to be True.

                        Instances For

                          Shows propositions known to be False.

                          Instances For

                            Shows equivalence classes of terms.

                            Instances For

                              Show case-split candidates.

                              Instances For

                                Show active local theorems and their anchors for heuristic instantiation.

                                Instances For

                                  show_term tac runs tac, then displays the generated proof in the InfoView.

                                  Instances For

                                    Performs a case-split on a logical connective, match-expression, if-then-else-expression, or inductive predicate. The argument is an anchor referencing one of the case-split candidates in the grind state. You can use cases? to select a specific candidate using a code action.

                                    Instances For

                                      A variant of cases that provides a code-action for selecting one of the candidate case-splits available in the grind state.

                                      Instances For

                                        Performs the next case-split. The case-split is selected using the same heuristic used by finish.

                                        Instances For

                                          done succeeds iff there are no remaining goals.

                                          Instances For

                                            finish tries to close the current goal using grind's default strategy

                                            Instances For

                                              finish? tries to close the current goal using grind's default strategy and suggests a tactic script.

                                              Instances For

                                                The have tactic is for adding opaque definitions and hypotheses to the local context of the main goal. The definitions forget their associated value and cannot be unfolded.

                                                • have h : t := e adds the hypothesis h : t if e is a term of type t.
                                                • have h := e uses the type of e for t.
                                                • have : t := e and have := e use this for the name of the hypothesis.
                                                Instances For

                                                  Executes the given tactic block to close the current goal.

                                                  Instances For

                                                    all_goals tac runs tac on each goal, concatenating the resulting goals. If the tactic fails on any goal, the entire all_goals tactic fails.

                                                    Instances For

                                                      focus tac focuses on the main goal, suppressing all other goals, and runs tac on it. Usually · tac, which enforces that the goal is closed by tac, should be preferred.

                                                      Instances For

                                                        next => tac focuses on the next goal and solves it using tac, or else fails. next x₁ ... xₙ => tac additionally renames the n most recent hypotheses with inaccessible names to the given names.

                                                        Instances For

                                                          · grindSeq focuses on the main grind goal and tries to solve it using the given sequence of grind tactics.

                                                          Instances For

                                                            any_goals tac applies the tactic tac to every goal, concatenating the resulting goals for successful tactic applications. If the tactic fails on all of the goals, the entire any_goals tactic fails.

                                                            This tactic is like all_goals try tac except that it fails if none of the applications of tac succeeds.

                                                            Instances For

                                                              with_annotate_state stx t annotates the lexical range of stx : Syntax with the initial and final state of running tactic t.

                                                              Instances For

                                                                tac <;> tac' runs tac on the main goal and tac' on each produced goal, concatenating all goals produced by tac'.

                                                                Instances For

                                                                  first | tac | ... runs each tac until one succeeds, or else fails.

                                                                  Instances For

                                                                    try tac runs tac and succeeds even if tac failed.

                                                                    Instances For

                                                                      fail_if_success t fails if the tactic t succeeds.

                                                                      Instances For

                                                                        admit is a synonym for sorry.

                                                                        Instances For

                                                                          fail msg is a tactic that always fails, and produces an error using the given message.

                                                                          Instances For

                                                                            repeat tac repeatedly applies tac so long as it succeeds. The tactic tac may be a tactic sequence, and if tac fails at any point in its execution, repeat will revert any partial changes that tac made to the tactic state. The tactic tac should eventually fail, otherwise repeat tac will run indefinitely.

                                                                            Instances For

                                                                              rename_i x_1 ... x_n renames the last n inaccessible names using the given names.

                                                                              Instances For

                                                                                expose_names renames all inaccessible variables with accessible names, making them available for reference in generated tactics. However, this renaming introduces machine-generated names that are not fully under user control. expose_names is primarily intended as a preamble for generated grind tactic scripts.

                                                                                Instances For

                                                                                  set_option opt val in tacs (the tactic) acts like set_option opt val at the command level, but it sets the option only within the tactics tacs.

                                                                                  Instances For

                                                                                    set_config configItem+ in tacs executes tacs with the updated configuration options configItem+

                                                                                    Instances For

                                                                                      Proves <term> using the current grind state and default search strategy.

                                                                                      Instances For

                                                                                        Adds new case-splits using model-based theory combination.

                                                                                        Instances For