calificador existencial en prólogo, usando setof / bagof
Tuve una pregunta rápida re. calificador existencial utilizando setof en prólogo (es decir, ^).
al utilizar SICStus, parece que (a pesar de lo que afirman varios sitios web), parece que S está cuantificado en el código siguiente (que utiliza el estándar de bog, madre de hechos, que no se ha incluido aquí):
child(M,F,C) :- setof(X,(mother(S,X)),C).
Reviso la unificación usando:
child(M,F,C) :- setof(X-S,(mother(S,X)),C).
por lo que el siguiente código, con el operador existencial, parece no hacer ninguna diferencia:
child(M,F,C) :- setof(X,S^(mother(S,X)),C).
¿Alguna idea de por qué esto es? ¿Cuál sería una situación en la que necesitarías al unificador entonces?
¡Gracias!