A Minimal Extension of the WAM for clp(FD)

We present an abstract instruction set for a constraint solver over finite domains, which can be smoothly integrated in the WAM architecture. It is based on the use of a single primitive constraint X in r which embeds the core propagation mechanism. Complex user constraints such as linear equations or inequations are compiled into X in r expressions which encode the propagation scheme chosen to solve the constraint. The uniform treatment of a single primitive constraint leads to a better understanding of the overall constraint solving process and makes possible three main global optimizations which encompass many previous particular optimizations of "black box" finite domains solvers. Implementation results show that this approach combines both simplicity and efficiency. Our clp(FD) system is more than twice as fast as CHIP on average, with peak speedup reaching seve