
succ(?X, ?Y)

   Successor relation over natural numbers.

Arguments
   X                   an integer or a variable
   Y                   an integer or a variable

Type
   Arithmetic

Description
   Successor relation over natural numbers.  Succeeds if X is an
   integer greater or equal to zero, and Y is one greater than X.
   If one of the arguments is uninstantiated, it gets computed from
   the other by adding or subtracting 1, respectively.

   If the system is in coroutining mode and both arguments are
   uninstantiated, succ/2 delays until at least one argument is known.



Modes and Determinism
   succ(+, -) is semidet
   succ(-, +) is semidet

Fail Conditions
   Fails if X or Y are negative integers, or if Y is 0

Exceptions
     5 --- an argument is a non-integer number
     4 --- both arguments are uninstantiated (non-coroutining mode only)
    24 --- X or Y is not a number

Examples
   
   Success:
   	succ(0, 1).
   	succ(7, 8).
   	succ(10000000000000000000, 10000000000000000001).
   	succ(0, Y).		(gives Y=1)
   	succ(X, 3).		(gives X=2)

   Fail:
   	succ(X, 0).
   	succ(X, -5).
   	succ(-1, Y).

   Error:
   	succ(X, Y).		(error 4)
   	succ(0.0, Y).		(error 5)
   	succ(a, Y).		(error 24)


See Also
   plus / 3, + / 3, - / 3
