Por que o Prolog corresponderia uma variável a um resultado que falharia se conectado diretamente?

Estou criando um programa Prolog que encontra um subconjunto de um conjunto de listas. Esse subconjunto deve corresponder a algumas condições específicas, cujo aspecto é que as listas do subconjunto não podem ser idênticas. O que me confunde é que, quando tento encontrar uma correspondência para uma variável, X, ela gera resultados que retornam false se eu os vincular à consulta no lugar de X. Por exemplo:

?- containsSet(2, [[3],[7],[7]], X).
X = [[3], [7]] ;
X = [[3], [7]] ;
X = [[7], [7]] ;
false.

?- containsSet(2, [[3],[7],[7]], [[7],[7]]).
false.

Como poderia corresponder X a [[7], [7]] se, quando conectado diretamente, retorna falso?

A idéia de containsSet é encontrar um subconjunto de comprimento-N (neste caso 2) de listas que não possui elementos correspondentes em posições correspondentes (ou seja, não há duas listas no subconjunto que tenham o mesmo primeiro elemento ou o mesmo segundo elemento, etc.) . No exemplo acima, os primeiros (e únicos) elementos de [7] e [7] correspondem, portanto, ele retorna false.

questionAnswers(1)

yourAnswerToTheQuestion