DEMO
?- consult('combosets.pro').
% combosets.pro compiled 0.00 sec, 7,432 bytes
Yes
?- combos(set(a,b,c),C,X).
C = combo(a, b)
X = extra(c) ;
C = combo(b, c)
X = extra(a) ;
C = combo(a, c)
X = extra(b) ;
No
?- combos(set(1,2,3,7),C,X).
C = combo(1, 2)
X = extras(3, 7) ;
C = combo(1, 3)
X = extras(2, 7) ;
C = combo(1, 7)
X = extras(2, 3) ;
C = combo(2, 3)
X = extras(1, 7) ;
C = combo(2, 7)
X = extras(1, 3) ;
C = combo(3, 7)
X = extras(1, 2) ;
No
?- combos(set(12,2,4,6),C,X).
C = combo(12, 2)
X = extras(4, 6) ;
C = combo(12, 4)
X = extras(2, 6) ;
C = combo(12, 6)
X = extras(2, 4) ;
C = combo(2, 4)
X = extras(12, 6) ;
C = combo(2, 6)
X = extras(12, 4) ;
C = combo(4, 6)
X = extras(12, 2) ;
No
?-halt.
