Documentation

Init.Sym.Simp.SimprocDSL

Simproc and Discharger DSLs for Sym.simp #

Simproc DSL (sym_simproc) #

A syntax category for specifying pre and post simproc chains in Sym.simp variants.

Primitives #

Combinators #

Discharger DSL (sym_discharger) #

A syntax category for specifying dischargers used in the with clause of rewrite. Dischargers attempt to prove side conditions of conditional rewrite rules.

Primitives #

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

      Evaluate ground (fully concrete) terms.

      Equations
      Instances For

        Simplify telescope binders but not the final body.

        Equations
        Instances For

          Simplify control-flow expressions (if-then-else, match, cond, dite). Visits only conditions and discriminants. Intended as a pre simproc.

          Equations
          Instances For

            Simplify arrow telescopes (p₁ → p₂ → ... → q) without entering binders. Simplifies each pᵢ and q individually. Intended as a pre simproc.

            Equations
            Instances For

              Rewrite using a named theorem set. Optionally specify a discharger for conditional rewrites.

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

                Rewrite using inline theorems. Optionally specify a discharger for conditional rewrites.

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

                  Recursive simplification (calls the full simplifier).

                  Equations
                  Instances For

                    Identity simproc (no simplification).

                    Equations
                    Instances For

                      Apply a, then apply b to the result.

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

                        Try a, if no progress try b.

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

                          Parenthesized simproc expression.

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

                            Recursive simplifier discharge. Calls the full simplifier to prove side conditions.

                            Equations
                            Instances For

                              No discharge. Only unconditional rewrites will apply.

                              Equations
                              Instances For

                                Parenthesized discharger expression.

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

                                  register_sym_simp command #

                                  Declares a named Sym.simp variant with pre/post simproc chains and optional config overrides.

                                  register_sym_simp myVariant where
                                    pre  := telescope
                                    post := ground >> rewrite mySet with self
                                  
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For

                                    Pre-processing simproc chain.

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

                                      Post-processing simproc chain.

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

                                        Maximum number of simplification steps.

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

                                          Maximum depth of recursive discharge attempts.

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

                                            Register a named Sym.simp variant.

                                            register_sym_simp myVariant where
                                              pre  := telescope
                                              post := ground >> rewrite [thm1, thm2] with self
                                              maxSteps := 50000
                                            
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For