map sym_f expr_f p ==> p'
Return a predicate with the same structure, and sym_f applied to each
bound* symbol at the place where it is bound, and expr_f applied to
each expression.
a vanilla string is a string over the alphabet
[a-zA-Z0-9] ; it is useful because the theorem provers/other backend tools dislike
expressions like "|".