Generic SBDD using GAP and ECLiPSe Ian P. Gent , Warwick Harvey , Tom Kelsey , and Steve Linton School of Computer Science, University of St Andrews, St Andrews,Fife, KY16 9SS, UK ipg,tom,sal @dcs.st-and.ac.uk IC-Parc, Imperial College Exhibition Road, London SW7 2AZ, UK wh@icparc.ic.ac.uk Abstract. We introduce a generic implementation of symmetry breaking by dominance detection. The implementation uses ECL PS to model and constrain a constraint satisfaction problem. Binary backtrack search with propagation is also performed in ECL PS , together with a check for a dominating group element at nodes in the search tree. These checks are performed in the GAP computational group theory system, which runs as a sub-process of ECL PS . The results of the dominance checks are used to restrict search to parts of the tree which are not symmetrically equiv- alent to a previously searched section. A constraint logic programming practitioner using the interface does not need to implement a dominance check for the problem; given a small number (typically 2–6) of generating symmetries, the GAP sub-process constructs a symmetry group, performs search for dominating elements when required, and provides the ECL PS super-process with the information needed to restrict search. Our imple- mentation is deterministic: all non-dominated nodes are visited during search, and each dominance check either succeeds or fails in finite time, so that only non-symmetric solutions are returned. The implementation easily handles problems involving symmetries, with only four per- mutations needed to direct the dominance checks during search. 1 Introduction Dealing with symmetries in constraint satisfaction problems has become a pop- ular topic for research in recent years. Main areas of recent study include 1. the modification of backtracking search procedures so that they only return unique solutions, and 2. the use of computational group theory (henceforth CGT) methods to effec- tively utilise the algebraic structure of symmetries. The modified search techniques currently broadly fall into two main cate- gories. The first involves adding constraints whenever backtracking occurs, so that symmetric versions of the failed part of the search tree will not be consid- ered in future [1, 10]; these techniques are collectively known as SBDS (Symme- try Breaking During Search). The second category involves performing checks