Predicate ModulusAnalysis::exprModulus

Holds if e is equal to b + val modulo mod.

There are two cases for the modulus:

  • mod = 0: The equality e = b + val is an ordinary equality.
  • mod > 1: val lies within the range [0 .. mod-1].
predicate exprModulus(Expr e, Bound b, int val, int mod)