%%% Example in 
%%% Eisele and Dorre, Unification of Disjunctive Feature Structure,
%%%   26th ACL, 1988.
%%% 	
%%%  Disjunctive feature unification between
%%%  [a:{[b:+,c:-],[b:-,c+]}] and [a:[b:<d>],d:_].
%%% --> [a:[b:+,c:-],d:+] or [a:[b:-,c:+],d:-] 
%%%
f({a/X}):-cc1(X).
cc1({b/plus,c/minus}).
cc1({b/minus,c/plus}).

@ f(U),U={a/{b/X},d/X}.

%% --> c0(U,....)
%% then, solve :-c0(U,_,_).  This goal has two solutions.
%%   ------------------------------
%% solution = c0(U_0, X_1, {a/{b/X_1}, d/X_1})
%% c1(plus, {b/plus, c/minus}).
%% c1(minus, {b/minus, c/plus}).
%% c0(_p1, V0_0, _p1) :- c1(V0_0, {b/V0_0});_p1={a/{b/V0_0}, d/V0_0}.
%% CPU time = 0.017 sec (Constraints Handling = 0.000 sec)
%% 
%% _:-c0(U,_,_).
%%   U = {a/{b/plus, c/minus}, d/plus};
%%   U = {a/{b/minus, c/plus}, d/minus};
%% 
%% CPU time = 0.000 sec (Constraints Handling = 0.000 sec)



syntax highlighted by Code2HTML, v. 0.9.1