%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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.