succ prec
indice
Predicato "create_universe/1"
*
%---------------------------------------------------------------------------
% Closed World Assumption on the Herbrand base
create_universe(Universe) :-
setof(Term, term_of_ext_def(Term), Universe).
term_of_ext_def(Term) :-
foil_predicates(PredSpecs),
member(Pred/Arity, PredSpecs),
functor(Goal, Pred, Arity),
call(Goal),
between(1, Arity, ArgPos),
arg(ArgPos, Goal, Term).
create_negatives([P|Ps], Negatives) :-
functor(P, F, N),
functor(Template, F, N),
create_universe(Universe),
setof(Template,
( arguments_are_members(Template, N, Universe),
\+ member(Template, [P|Ps]) ),
Negatives).
arguments_are_members(Term, N, Universe) :-
( N > 0 ->
arg(N, Term, Arg),
member(Arg, Universe),
N1 is N-1,
arguments_are_members(Term, N1, Universe)
; true
).
*
succ prec
indice