Falha na união do prólogo
Estou tentando entender o uso da união (o predicado interno) no Prolog. Em muitos casos, parece falhar quando deve ter sucesso. Parece que tem algo a ver com a ordem dos elementos das listas. Todos os casos abaixo falham (eles retornam com "false".).
?- union([1,2,3],[],[2,3,1]).
?- union([1,5,3], [1,2], [1,5,3,2]).
?- union([4,6,2,1], [2], [1,2,4,6]).
?- union([1,2], [], [2,1]).
Tudo isso não deveria ser verdade? Qualquer explicação sobre por que esses casos continuam falhando seria muito útil.
Além disso: Por que o abaixo não é bem-sucedido e encontra a lista correta para A?
?- union([1,5,3], A, [4,1,5,3,2]). /** comes back with "fail." */