module 'data.fd.fac' { /** + A = A. * Identity relation. */ `+'(A) = A. /** - A = B. * Ensures that finite-domain variables A and B * are opposite. */ `-'(A) = 'kernel':fd_fac_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_fac_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_fac_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_fac_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_fac_div(A, B). /** (A == B) = X. * Succeeds if X is the reified constraint A * = B, where A and B are * finite-domain variables. */ syntax: infix '===' '=\\='. syntax: '===' = '=\\=' = '='. `==='(A, B) = 'kernel':fd_fac_eq(A, B). `=\\='(A, B) :- 'kernel':fd_fac_neq(A, B). `=\\='(A, B) = 'kernel':fd_fac_neq(A, B). /** A < B. * Succeeds if A * < B, where A and B are * finite-domain variables. */ `<'(A, B) :- 'kernel':fd_fac_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_fac_lt(A, B). /** A =< B. * Succeeds if A * ≤ B, where A and B are * finite-domain variables. */ `=<'(A, B) :- 'kernel':fd_fac_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_fac_le(A, B). /** A > B. * Succeeds if A * > B, where A and B are * finite-domain variables. */ `>'(A, B) :- 'kernel':fd_fac_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_fac_gt(A, B). /** A >= B. * Succeeds if A * ≥ B, where A and B are * finite-domain variables. */ `>='(A, B) :- 'kernel':fd_fac_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_fac_ge(A, B). }