Suggested fix: the translator should always generate a goal. If the problem
"natively" has no goal, then it should emit a trivial solvable problem with one
binary variable, no operators and one goal, similar to the trivially unsolvable
problem of the same form it can already emit. (Of course a problem with a
variable of domain 1 would be sufficient, too, but in other contexts we have
discussed the requirement that all variables should have domain >= 2. While I
don't think we currently enforce it, we might want to enforce it in the future.)
The relevance analysis in the preprocessor will never throw away goal variables,
so ensuring that the the translator emits a goal variable is sufficient for
resolving the issue.
|