%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Encoding for admissible extensions % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% out(X) :- arg(X), not natt(X,X). %% Guess a set S \subseteq A in(X) :- not out(X), arg(X). out(X) :- not in(X), arg(X). %% S has to be conflict-free :- in(X), in(Y), not natt(X,Y). %% The argument x is defeated by the set S defeated(X) :- in(Y), not natt(Y,X), arg(X). %% The argument x is not defended by S %not_defended(X) :- arg(X), arg(Y), not natt(Y,X), not defeated(Y). :- in(X), arg(Y), not natt(Y,X), not defeated(Y). %% All arguments x \in S need to be defended by S %:- in(X), not_defended(X). #show in/1.