Backtrack Search with Isomorph Rejection and Consistency Check

Performing an exhaustive backtrack search of combinatorial objects is always a dicey business. One can spend years of CPU time without finding anything. There is always the embarrassing question: ''is the program correct?'' The situation is even worse when the combinatorial object being searched for has a large symmetry group. For efficiency purposes, it is almost obligatory to use as much of the group as possible to prune isomorphic branches of the search tree. Yet, isomorph rejection is difficult to implement and is one of the major sources of errors. This paper proposes a new method of using the symmetry group, not only for isomorph rejection, but also as an independent consistency check of the correctness of the program. The number of isomorphic copies of a given solution is computed in two different ways and the results have to agree, which provides us with the independent consistency check.