Documentation

Lean.Meta.Tactic.Grind.Util

Throws an exception if target of the given goal contains metavariables.

Instances For

    Instantiates metavariables occurring in the target and hypotheses.

    Instances For

      Abstracts metavariables occurring in the target.

      Instances For
        Instances For

          Unfolds all reducible declarations occurring in the goal's target.

          Instances For

            Beta-reduces the goal's target.

            Instances For

              If the target is not False, applies byContradiction.

              Instances For

                Clears auxiliary and implementation detail decls used to encode recursive declarations and implementation details.

                • grind eliminates auxiliary declarations to ensure they are not accidentally used by its proof automation.
                • grind eliminates implementation detail declarations because they have a support role.
                Instances For

                  In the grind tactic, during Expr internalization, we don't expect to find Expr.mdata. This function ensures Expr.mdata is not found during internalization. Recall that we do not internalize Expr.lam children. Recall that we still have to process Expr.forallE because of ForallProp.lean. Moreover, we may not want to reduce p → q to ¬p ∨ q when (p q : Prop).

                  Instances For

                    Converts nested Expr.projs into projection applications if possible.

                    Instances For

                      Normalizes universe levels in constants and sorts.

                      Instances For
                        @[extern lean_grind_normalize]

                        Normalizes the given expression using the grind simplification theorems and simprocs. This function is used for normalizing E-matching patterns. Note that it does not return a proof.

                        Returns Grind.MatchCond e. We have special support for propagating is truth value. See comment at MatchCond.lean.

                        Instances For

                          Returns Grind.PreMatchCond e. Recall that Grind.PreMatchCond is an identity function, but the simproc reducePreMatchCond is used to prevent the term e from being simplified. Grind.PreMatchCond is later converted into Grind.MatchCond. See comment at MatchCond.lean.

                          Instances For

                            Converts Grind.PreMatchCond into Grind.MatchCond. Recall that Grind.PreMatchCond uses default reducibility setting, but Grind.MatchCond does not.

                            Instances For
                              Instances For
                                Instances For