module 'data.fd.pac' { /** + A = A. * Identity relation. */ + A = A. /** - A = B. * Ensures that finite-domain variables A and B * are opposite. */ - A = 'kernel':fd_pac_opp(A). /** A + B = R. * Ensures that the sum of finite-domain variables A and B * is equal to the finite-domain variable R. */ A + B = 'kernel':fd_pac_add(A, B). /** A - B = R. * Ensures that the difference between finite-domain variables A and B * is equal to the finite-domain variable R. */ A - B = 'kernel':fd_pac_sub(A, B). /** A * B = R. * Ensures that the product of finite-domain variables A and B * is equal to the finite-domain variable R. */ A * B = 'kernel':fd_pac_mul(A, B). /** A / B = R. * Ensures that the division of finite-domain variables A and B * is equal to the finite-domain variable R. */ A / B = 'kernel':fd_pac_div(A, B). /** (A = B) = X. * Succeeds if X is the reified constraint A * = B, where A and B are * finite-domain variables. */ (A = B) = 'kernel':fd_pac_eq(A, B). /** A < B. * Succeeds if A * < B, where A and B are * finite-domain variables. */ A < B :- 'kernel':fd_pac_lt(A, B). /** (A < B) = X. * Succeeds if X is the reified constraint A * < B, where A and B are * finite-domain variables. */ (A < B) = 'kernel':fd_pac_lt(A, B). /** A =< B. * Succeeds if A * ≤ B, where A and B are * finite-domain variables. */ A =< B :- 'kernel':fd_pac_le(A, B). /** (A =< B) = X. * Succeeds if X is the reified constraint A * ≤ B, where A and B are * finite-domain variables. */ (A =< B) = 'kernel':fd_pac_le(A, B). /** A > B. * Succeeds if A * > B, where A and B are * finite-domain variables. */ A > B :- 'kernel':fd_pac_gt(A, B). /** (A > B) = X. * Succeeds if X is the reified constraint A * > B, where A and B are * finite-domain variables. */ (A > B) = 'kernel':fd_pac_gt(A, B). /** A >= B. * Succeeds if A * ≥ B, where A and B are * finite-domain variables. */ A >= B :- 'kernel':fd_pac_ge(A, B). /** (A >= B) = X. * Succeeds if X is the reified constraint A * ≥ B, where A and B are * finite-domain variables. */ (A >= B) = 'kernel':fd_pac_ge(A, B). }