Documentation

Lean.Elab.Tactic.Simp

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

        Implement a simp discharge function using the given tactic syntax code. Recall that simp dischargers are in SimpM which does not have access to Term.State. We need access to Term.State to store messages and update the info tree. Thus, we create an IO.ref to track these changes at Term.State when we execute tacticCode. We must set this reference with the current Term.State before we execute simp using the generated Simp.Discharge.

        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
              Instances For

                Elaborate extra simp theorems provided to simp. stx is of the form "[" simpTheorem,* "]" If eraseLocal == true, then we consider local declarations when resolving names for erased theorems (- id), this option only makes sense for simp_all or * is used.

                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
                      @[inline]
                      Equations
                      Instances For

                        Create the Simp.Context for the simp, dsimp, and simp_all tactics. If kind != SimpKind.simp, the discharge option must be none

                        TODO: generate error message if non rfl theorems are provided as arguments to dsimp.

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

                          If stx is the syntax of a simp, simp_all or dsimp tactic invocation, and usedSimps is the set of simp lemmas used by this invocation, then mkSimpOnly creates the syntax of an equivalent simp only, simp_all only or dsimp only invocation.

                          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

                              simpLocation ctx discharge? varIdToLemmaId loc runs the simplifier at locations specified by loc, using the simp theorems collected in ctx optionally running a discharger specified in discharge? on generated subgoals.

                              Its primary use is as the implementation of the simp [...] at ... and simp only [...] at ... syntaxes, but can also be used by other tactics when a Syntax is not available.

                              For many tactics other than the simplifier, one should use the withLocation tactic combinator when working with a location.

                              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