Result is Number1 mod Number2
    which should be preferred for portability.
The modulus operation computes the remainder corresponding to the flooring division div. The following relation always holds:
    X =:= (X mod Y) + (X div Y) * Y.
    The result Result is either zero, or has the same sign as Number2.
In coroutining mode, if Number1 or Number2 are uninstantiated, the call to mod/3 is delayed until these variables are instantiated.
CAUTION: The behaviour of mod was changed for standard compliance! In ECLiPSe versions up to 5.8, mod computed the remainder corresponding to the truncating division //, and thus gave different results for arguments with opposite signs. Moreover, the operator precedence was changed from op(300,xfx,mod) to op(400,yfx,mod), which means that a*b mod c is now parsed as (a*b)mod c rather than a*(b mod c).
Success:
      X is 10 mod 3.		(gives X = 1)
      mod( 10,  3,  1).
      mod(-10,  3,  2).
      mod( 10, -3, -2).
      mod(-10, -3, -1).
      mod( 11,  3,  2).
Fail:
      mod(1, 2, 3).
      mod(6, 2.0, 3.0).
      mod(5, 2, r).
Error:
      mod(A, 2, 6).              (Error 4).
      mod(2, 0, Result).         (Error 20).
      mod(4 + 2, 2, 12).         (Error 24).