% FILE: tribondx3.pro % IMPORT GLOBAL VARIABLE DATA TYPE :- consult('gv.pro'). % IMPORT COMPARISONS CODE :- consult('comparisons.pro'). % EXTENDED TRIBOND SOLVER xtribond(A,B,C) :- declare(count,0), tribond(A,B,C,_,Solution), valueOf(count,Count), write(Solution),write(' count='),write(Count),nl, undeclare(count). xtribond(_,_,_) :- undeclare(count). % TRIBOND SOLVER tribond(X,Y,Z,CC,tribond(R1,R2,R3)) :- reach1(X,CC,R1), reach1(Y,CC,R2), reach1(Z,CC,R3). reach1(S,D,isa(S,D)) :- inc(count),isa(S,D). reach1(S,D,has(S,D)) :- inc(count),has(S,D). reach1(S,D,vip(S,D)) :- inc(count),vip(S,D). % FIND ALL PROBLEMS problems :- concepts(SC1,SC2,SC3), distinct(SC1,SC2,SC3), ordered(SC1,SC2,SC3), write(problem(SC1,SC2,SC3)),nl, fail. problems. % FIND ALL TRIBONDS tribonds :- concepts(SC1,SC2,SC3), distinct(SC1,SC2,SC3), ordered(SC1,SC2,SC3), xtribond(SC1,SC2,SC3), fail. tribonds. concepts(A,B,C) :- concept(A),concept(B),concept(C). distinct(A,B,C) :- not(A=B),not(A=C),not(B=C). ordered(A,B,C) :- aless(A,B),aless(B,C).