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 #
ground— evaluates ground (fully concrete) termstelescope— simplifies telescope binders (have-values, arrow hypotheses) but not the final bodyrewrite setName [with discharger]— rewrites using a named theorem setrewrite [thm₁, thm₂, ...] [with discharger]— rewrites using inline theoremsself— recursive simplification (calls the full simplifier)none— identity (no simplification)
Combinators #
a >> b— applya, then applybto the result (andThen)a <|> b— trya, if no progress tryb(orElse)
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 #
Evaluate ground (fully concrete) terms.
Instances For
Simplify telescope binders but not the final body.
Instances For
Simplify arrow telescopes (p₁ → p₂ → ... → q) without entering binders.
Simplifies each pᵢ and q individually. Intended as a pre simproc.
Instances For
Rewrite using a named theorem set. Optionally specify a discharger for conditional rewrites.
Instances For
Rewrite using inline theorems. Optionally specify a discharger for conditional rewrites.
Instances For
Recursive simplification (calls the full simplifier).
Instances For
Apply a, then apply b to the result.
Instances For
Parenthesized simproc expression.
Instances For
Recursive simplifier discharge. Calls the full simplifier to prove side conditions.
Instances For
No discharge. Only unconditional rewrites will apply.
Instances For
Parenthesized discharger expression.
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
Pre-processing simproc chain.
Instances For
Post-processing simproc chain.
Instances For
Maximum number of simplification steps.
Instances For
Maximum depth of recursive discharge attempts.