You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The saw-core rewriter currently only supports first-order patterns, i.e. patterns without lambdas in them. If the left-hand side of a rewrite rule contains a non-first-order subterm, then that subterm will only match terms that are exactly equal to it.
This means that, for example, the following rewrite rule (which is universally quantified over x) would not match the term map (\y -> 5+y) [1,2,3]:
… lambdas.
This is a small step toward GaloisInc/saw-script#115.
Note that this matcher cannot handle higher order patterns like
foo (\x -> ?f x + ?g x)
This matcher can only handle simple patterns like
foo (\x -> x + ?y)
where the unification variables are not applied to bound variables.
The saw-core rewriter currently only supports first-order patterns, i.e. patterns without lambdas in them. If the left-hand side of a rewrite rule contains a non-first-order subterm, then that subterm will only match terms that are exactly equal to it.
This means that, for example, the following rewrite rule (which is universally quantified over
x
) would not match the termmap (\y -> 5+y) [1,2,3]
:The best thing would be to support "higher order pattern unification", which is implemented in several interactive theorem provers such as Isabelle.
The text was updated successfully, but these errors were encountered: