oh, never mind, I see you are doing something clever here.  Can ou add a line not explaining it?  Viz, the binary relations must agree exactly, and the unary relations, if specified, must be present.  The way that the code is written now, this is not obvious, and without the explanation that this is what you are trying to do, its even cryptic and mysterious ...