DSimproc DSL for Sym.dsimp #
A syntax category for specifying pre and post dsimproc chains in Sym.dsimp variants.
Primitives #
ground— evaluates ground (fully concrete) termsbeta— beta reductionzeta- zeta reductionzeta_delta [ids]- zeta delta reductionproj- reduce projectionsmatch- reduce match-expressions
Combinators #
a >> b— applya, then applybto the result (andThen)a <|> b— trya, if no progress tryb(orElse)
Evaluate ground (fully concrete) terms.
Instances For
zeta reduction. That is, expands let-expressions.
Instances For
zeta delta reduction. That is, expands all let-declarations.
Instances For
Apply a, then apply b to the result.
Instances For
Try a, if no progress try b.
Instances For
Parenthesized dsimproc expression.
Instances For
register_sym_dsimp command #
Declares a named Sym.dsimp variant with pre/post simproc chains and optional config overrides.
register_sym_dsimp myVariant where
pre := match
post := ground >> zeta_delta
Pre-processing simproc chain.
Instances For
Post-processing simproc chain.
Instances For
Maximum number of simplification steps.
Instances For
Register a named Sym.dsimp variant.
register_sym_dsimp myVariant where
pre := match
post := ground >> zeta_delta
maxSteps := 50000