OK, the bug is somewhere in the Unifier in build_model.py.
It looks like the current code doesn't work properly if conditions on the same
predicate which are mixes of constants and variables occur with different
patterns on where the constants and variables are. That is, we get a problem if
we have the condition "pred(?var, const1)" and "pred(const2, ?var)", but not if
all occurrences of constants are always in the same position. The IPC tasks all
have the latter form, which is why we never noticed this.
Working on it.
|