In some places, the following pattern currently occurs:
Goal -> false
This can always be rewritten to the negation of Goal, if a pure negation is available.
For example:
( 0 #= N mod D ->
false
This can be rewritten to:
0 #\= N mod D
This is because (#\=)/2 is true iff (#=)/2 isn't. Importantly, the rewritten version is more general.
In some places, the following pattern currently occurs:
This can always be rewritten to the negation of
Goal, if a pure negation is available.For example:
( 0 #= N mod D -> falseThis can be rewritten to:
This is because
(#\=)/2is true iff(#=)/2isn't. Importantly, the rewritten version is more general.