MROPEII: A finite domain solver on top of Mercury
Henk Vandecasteele · Lirias · 1999
In this paper we describe a new implementation of the Finite Domain solver ROPE [Van99], called MROPE II. This new version was preceded by an implementation on top of Prolog [VD94] and a version using an early version of Mercury [VDV96]. In the previous implementation Mercury was chosen for it's speed and, compile-time checking properties and fast reliable development. This previous experiment with Mercury was already a success, still there were some problems. For example for an efficient execution backtrackable destructive assignment was needed. Later on, this (backtrackable destructive assignment) and other features like impure declarations were added to the Mercury system. All we needed for a new attempt on a new implementation of ROPE: MROPE II. 1 The Finite Domain CLP System MROPE II The constraints handled in our new implementation, can easily be deduced from the Mercury types in the interface of the solver: A constraint has the following type: :- type expression ---> ...