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