Predicates written in @term RULES using the where clause could benefit from some syntactic sugar. Rather than having to explicitly index into the given match, the scope could automatically be aware of the variables.
(abs(x) => x) where {σ -> isvalid(Image(σ[x], Nonnegative))} # current
(abs(x) => x) where {isvalid(Image(x, Nonnegative))} # proposed