:- include(search_base_qcsp).


%% EEEE
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([e(X, [0,1,2]), e(Y, [0,1,2]), e(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = base([vlva(_#2(0..2),[0,1,2],[va(0),va(1),va(2)]),vlva(_#35(0..2),[0,1,2],[va(0,ab(_#2(0..2),0,1,2)),va(1,ab(_#2(0..2),0,1,2)),va(2,ab(_#2(0..2),0,1,2))]),vlva(_#68(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),0,1,2)),(1,ab(_#35(0..2),0,1,2)),(2,ab(_#35(0..2),0,1,2)))),va(1,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0,1)),(2,ab(_#35(0..2),0,1,2)))),va(2,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0)),(2,ab(_#35(0..2),0,1))))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(1,ab(_#35(0..2),(1,ab(_#68(0..2),1)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)),(2,ab(_#68(0..2),1)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0))))))])])
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)


% % EEEA
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([e(X, [0,1,2]), e(Y, [0,1,2]), e(Z, [0,1,2]), a(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = bottombase
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)


% % EEAE
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([e(X, [0,1,2]), e(Y, [0,1,2]), a(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = base([vlva(_#2(0..2),[0,1,2],[va(0),va(1),va(2)]),vlva(_#35(0..2),[0,1,2],[va(0,ab(_#2(0..2),0,1,2)),va(1,ab(_#2(0..2),2))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0))))))])])
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)

% % EEAA
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([e(X, [0,1,2]), e(Y, [0,1,2]), a(Z, [0,1,2]), a(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = bottombase
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)

% % EAEE
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([e(X, [0,1,2]), a(Y, [0,1,2]), e(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = base([vlva(_#2(0..2),[0,1,2],[va(0),va(1),va(2)]),vlva(_#68(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),0,1,2)),(1,ab(_#35(0..2),0,1,2)),(2,ab(_#35(0..2),0,1,2)))),va(1,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0,1)),(2,ab(_#35(0..2),0,1,2)))),va(2,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0)),(2,ab(_#35(0..2),0,1))))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(1,ab(_#35(0..2),(1,ab(_#68(0..2),1)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)),(2,ab(_#68(0..2),1)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0))))))])])
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)

% % EAEA
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([e(X, [0,1,2]), a(Y, [0,1,2]), e(Z, [0,1,2]), a(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = bottombase
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)


% % EAAE
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([e(X, [0,1,2]), a(Y, [0,1,2]), a(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = bottombase
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)


% % EAAA
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([e(X, [0,1,2]), a(Y, [0,1,2]), a(Z, [0,1,2]), a(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = bottombase
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)


% % AEEE
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([a(X, [0,1,2]), e(Y, [0,1,2]), e(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = base([vlva(_#35(0..2),[0,1,2],[va(0,ab(_#2(0..2),0,1,2)),va(1,ab(_#2(0..2),0,1,2)),va(2,ab(_#2(0..2),0,1,2))]),vlva(_#68(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),0,1,2)),(1,ab(_#35(0..2),0,1,2)),(2,ab(_#35(0..2),0,1,2)))),va(1,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0,1)),(2,ab(_#35(0..2),0,1,2)))),va(2,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0)),(2,ab(_#35(0..2),0,1))))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(1,ab(_#35(0..2),(1,ab(_#68(0..2),1)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)),(2,ab(_#68(0..2),1)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0))))))])])
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)


% % AEEA
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([a(X, [0,1,2]), e(Y, [0,1,2]), e(Z, [0,1,2]), a(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = bottombase
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)

% % AEAE
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([a(X, [0,1,2]), e(Y, [0,1,2]), a(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = base([vlva(_#35(0..2),[0,1,2],[va(0,ab(_#2(0..2),0,1,2)),va(1,ab(_#2(0..2),2))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0))))))])])
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)


% % AEAA
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([a(X, [0,1,2]), e(Y, [0,1,2]), a(Z, [0,1,2]), a(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = bottombase
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)

% % AAEE
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([a(X, [0,1,2]), a(Y, [0,1,2]), e(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = base([vlva(_#68(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),0,1,2)),(1,ab(_#35(0..2),0,1,2)),(2,ab(_#35(0..2),0,1,2)))),va(1,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0,1)),(2,ab(_#35(0..2),0,1,2)))),va(2,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0)),(2,ab(_#35(0..2),0,1))))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(1,ab(_#35(0..2),(1,ab(_#68(0..2),1)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)),(2,ab(_#68(0..2),1)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0))))))])])
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)


% % AAEA
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([a(X, [0,1,2]), a(Y, [0,1,2]), e(Z, [0,1,2]), a(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = bottombase
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)

% % AAAE
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([a(X, [0,1,2]), a(Y, [0,1,2]), a(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = bottombase
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)

% % AAAA
% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([a(X, [0,1,2]), a(Y, [0,1,2]), a(Z, [0,1,2]), a(T, [0,1,2])], (X #= (Y*Z)+T), Base).

% Base = bottombase
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)




% | ?- fd_domain([X,Y,Z,T], [0,1,2]), search_base_qcsp([e(X, [0,1,2]), e(Y, [0,1,2]), e(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base1), search_base_qcsp([e(X, [0,1,2]), e(Y, [0,1,2]), a(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base2), search_base_qcsp([e(X, [0,1,2]), a(Y, [0,1,2]), e(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base3),search_base_qcsp([a(X, [0,1,2]), e(Y, [0,1,2]), e(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base4), search_base_qcsp([a(X, [0,1,2]), e(Y, [0,1,2]), a(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base5), search_base_qcsp([a(X, [0,1,2]), a(Y, [0,1,2]), e(Z, [0,1,2]), e(T, [0,1,2])], (X #= (Y*Z)+T), Base6).
% Base1 = base([vlva(_#2(0..2),[0,1,2],[va(0),va(1),va(2)]),vlva(_#35(0..2),[0,1,2],[va(0,ab(_#2(0..2),0,1,2)),va(1,ab(_#2(0..2),0,1,2)),va(2,ab(_#2(0..2),0,1,2))]),vlva(_#68(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),0,1,2)),(1,ab(_#35(0..2),0,1,2)),(2,ab(_#35(0..2),0,1,2)))),va(1,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0,1)),(2,ab(_#35(0..2),0,1,2)))),va(2,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0)),(2,ab(_#35(0..2),0,1))))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(1,ab(_#35(0..2),(1,ab(_#68(0..2),1)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)),(2,ab(_#68(0..2),1)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0))))))])])
% Base2 = base([vlva(_#2(0..2),[0,1,2],[va(0),va(1),va(2)]),vlva(_#35(0..2),[0,1,2],[va(0,ab(_#2(0..2),0,1,2)),va(1,ab(_#2(0..2),2))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0))))))])])
% Base3 = base([vlva(_#2(0..2),[0,1,2],[va(0),va(1),va(2)]),vlva(_#68(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),0,1,2)),(1,ab(_#35(0..2),0,1,2)),(2,ab(_#35(0..2),0,1,2)))),va(1,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0,1)),(2,ab(_#35(0..2),0,1,2)))),va(2,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0)),(2,ab(_#35(0..2),0,1))))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(1,ab(_#35(0..2),(1,ab(_#68(0..2),1)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)),(2,ab(_#68(0..2),1)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0))))))])])
% Base4 = base([vlva(_#35(0..2),[0,1,2],[va(0,ab(_#2(0..2),0,1,2)),va(1,ab(_#2(0..2),0,1,2)),va(2,ab(_#2(0..2),0,1,2))]),vlva(_#68(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),0,1,2)),(1,ab(_#35(0..2),0,1,2)),(2,ab(_#35(0..2),0,1,2)))),va(1,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0,1)),(2,ab(_#35(0..2),0,1,2)))),va(2,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0)),(2,ab(_#35(0..2),0,1))))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(1,ab(_#35(0..2),(1,ab(_#68(0..2),1)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)),(2,ab(_#68(0..2),1)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0))))))])])
% Base5 = base([vlva(_#35(0..2),[0,1,2],[va(0,ab(_#2(0..2),0,1,2)),va(1,ab(_#2(0..2),2))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0))))))])])
% Base6 = base([vlva(_#68(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),0,1,2)),(1,ab(_#35(0..2),0,1,2)),(2,ab(_#35(0..2),0,1,2)))),va(1,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0,1)),(2,ab(_#35(0..2),0,1,2)))),va(2,ab(_#2(0..2),(0,ab(_#35(0..2),0)),(1,ab(_#35(0..2),0)),(2,ab(_#35(0..2),0,1))))]),vlva(_#101(0..2),[0,1,2],[va(0,ab(_#2(0..2),(0,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(1,ab(_#35(0..2),(1,ab(_#68(0..2),1)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),2)),(2,ab(_#68(0..2),1)))))),va(1,ab(_#2(0..2),(1,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0)))),(2,ab(_#35(0..2),(1,ab(_#68(0..2),1)))))),va(2,ab(_#2(0..2),(2,ab(_#35(0..2),(0,ab(_#68(0..2),0,1,2)),(1,ab(_#68(0..2),0)),(2,ab(_#68(0..2),0))))))])])
% T = _#101(0..2)
% X = _#2(0..2)
% Y = _#35(0..2)
% Z = _#68(0..2)


% | ?- fd_domain([W1], [1]), fd_domain([W2], [3]), fd_domain([W3], [9]), fd_domain([W4], [27]), fd_domain([F], [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]), fd_domain([C1, C2, C3, C4], [0,1,2]),_Quant = [e(W1, [1]), e(W2, [3]), e(W3, [9]), e(W4, [27]), a(F, [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]), e(C1,[0,1,2]), e(C2, [0,1,2]), e(C3, [0,1,2]), e(C4,[0,1,2])], _Contraintes = ((C1-1)*W1 + (C2-1)*W2 + (C3-1)*W3 + (C4-1)*W4 #= F), search_base_qcsp(_Quant, _Contraintes, Cert).


% C1 = _#151(0..2)
% C2 = _#184(0..2)
% C3 = _#217(0..2)
% C4 = _#250(0..2)
% Cert = base([vlva(1,[1],[va(1)]),vlva(3,[3],[va(3,ab(1,1))]),vlva(9,[9],[va(9,ab(1,(1,ab(3,3))))]),vlva(27,[27],[va(27,ab(1,(1,ab(3,(3,ab(9,9))))))]),vlva(_#151(0..2),[0,1,2],[va(2,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),1,4,7,10,13,16,19,22,25,28,31,34,37,40)))))))))),va(0,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),2,5,8,11,14,17,20,23,26,29,32,35,38)))))))))),va(1,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),3,6,9,12,15,18,21,24,27,30,33,36,39))))))))))]),vlva(_#184(0..2),[0,1,2],[va(1,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),(1,ab(_#151(0..2),2)),(8,ab(_#151(0..2),0)),(9,ab(_#151(0..2),1)),(10,ab(_#151(0..2),2)),(17,ab(_#151(0..2),0)),(18,ab(_#151(0..2),1)),(19,ab(_#151(0..2),2)),(26,ab(_#151(0..2),0)),(27,ab(_#151(0..2),1)),(28,ab(_#151(0..2),2)),(35,ab(_#151(0..2),0)),(36,ab(_#151(0..2),1)),(37,ab(_#151(0..2),2)))))))))))),va(2,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),(2,ab(_#151(0..2),0)),(3,ab(_#151(0..2),1)),(4,ab(_#151(0..2),2)),(11,ab(_#151(0..2),0)),(12,ab(_#151(0..2),1)),(13,ab(_#151(0..2),2)),(20,ab(_#151(0..2),0)),(21,ab(_#151(0..2),1)),(22,ab(_#151(0..2),2)),(29,ab(_#151(0..2),0)),(30,ab(_#151(0..2),1)),(31,ab(_#151(0..2),2)),(38,ab(_#151(0..2),0)),(39,ab(_#151(0..2),1)),(40,ab(_#151(0..2),2)))))))))))),va(0,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),(5,ab(_#151(0..2),0)),(6,ab(_#151(0..2),1)),(7,ab(_#151(0..2),2)),(14,ab(_#151(0..2),0)),(15,ab(_#151(0..2),1)),(16,ab(_#151(0..2),2)),(23,ab(_#151(0..2),0)),(24,ab(_#151(0..2),1)),(25,ab(_#151(0..2),2)),(32,ab(_#151(0..2),0)),(33,ab(_#151(0..2),1)),(34,ab(_#151(0..2),2))))))))))))]),vlva(_#217(0..2),[0,1,2],[va(1,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),(1,ab(_#151(0..2),(2,ab(_#184(0..2),1)))),(2,ab(_#151(0..2),(0,ab(_#184(0..2),2)))),(3,ab(_#151(0..2),(1,ab(_#184(0..2),2)))),(4,ab(_#151(0..2),(2,ab(_#184(0..2),2)))),(23,ab(_#151(0..2),(0,ab(_#184(0..2),0)))),(24,ab(_#151(0..2),(1,ab(_#184(0..2),0)))),(25,ab(_#151(0..2),(2,ab(_#184(0..2),0)))),(26,ab(_#151(0..2),(0,ab(_#184(0..2),1)))),(27,ab(_#151(0..2),(1,ab(_#184(0..2),1)))),(28,ab(_#151(0..2),(2,ab(_#184(0..2),1)))),(29,ab(_#151(0..2),(0,ab(_#184(0..2),2)))),(30,ab(_#151(0..2),(1,ab(_#184(0..2),2)))),(31,ab(_#151(0..2),(2,ab(_#184(0..2),2)))))))))))))),va(2,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),(5,ab(_#151(0..2),(0,ab(_#184(0..2),0)))),(6,ab(_#151(0..2),(1,ab(_#184(0..2),0)))),(7,ab(_#151(0..2),(2,ab(_#184(0..2),0)))),(8,ab(_#151(0..2),(0,ab(_#184(0..2),1)))),(9,ab(_#151(0..2),(1,ab(_#184(0..2),1)))),(10,ab(_#151(0..2),(2,ab(_#184(0..2),1)))),(11,ab(_#151(0..2),(0,ab(_#184(0..2),2)))),(12,ab(_#151(0..2),(1,ab(_#184(0..2),2)))),(13,ab(_#151(0..2),(2,ab(_#184(0..2),2)))),(32,ab(_#151(0..2),(0,ab(_#184(0..2),0)))),(33,ab(_#151(0..2),(1,ab(_#184(0..2),0)))),(34,ab(_#151(0..2),(2,ab(_#184(0..2),0)))),(35,ab(_#151(0..2),(0,ab(_#184(0..2),1)))),(36,ab(_#151(0..2),(1,ab(_#184(0..2),1)))),(37,ab(_#151(0..2),(2,ab(_#184(0..2),1)))),(38,ab(_#151(0..2),(0,ab(_#184(0..2),2)))),(39,ab(_#151(0..2),(1,ab(_#184(0..2),2)))),(40,ab(_#151(0..2),(2,ab(_#184(0..2),2)))))))))))))),va(0,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),(14,ab(_#151(0..2),(0,ab(_#184(0..2),0)))),(15,ab(_#151(0..2),(1,ab(_#184(0..2),0)))),(16,ab(_#151(0..2),(2,ab(_#184(0..2),0)))),(17,ab(_#151(0..2),(0,ab(_#184(0..2),1)))),(18,ab(_#151(0..2),(1,ab(_#184(0..2),1)))),(19,ab(_#151(0..2),(2,ab(_#184(0..2),1)))),(20,ab(_#151(0..2),(0,ab(_#184(0..2),2)))),(21,ab(_#151(0..2),(1,ab(_#184(0..2),2)))),(22,ab(_#151(0..2),(2,ab(_#184(0..2),2))))))))))))))]),vlva(_#250(0..2),[0,1,2],[va(1,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),(1,ab(_#151(0..2),(2,ab(_#184(0..2),(1,ab(_#217(0..2),1)))))),(2,ab(_#151(0..2),(0,ab(_#184(0..2),(2,ab(_#217(0..2),1)))))),(3,ab(_#151(0..2),(1,ab(_#184(0..2),(2,ab(_#217(0..2),1)))))),(4,ab(_#151(0..2),(2,ab(_#184(0..2),(2,ab(_#217(0..2),1)))))),(5,ab(_#151(0..2),(0,ab(_#184(0..2),(0,ab(_#217(0..2),2)))))),(6,ab(_#151(0..2),(1,ab(_#184(0..2),(0,ab(_#217(0..2),2)))))),(7,ab(_#151(0..2),(2,ab(_#184(0..2),(0,ab(_#217(0..2),2)))))),(8,ab(_#151(0..2),(0,ab(_#184(0..2),(1,ab(_#217(0..2),2)))))),(9,ab(_#151(0..2),(1,ab(_#184(0..2),(1,ab(_#217(0..2),2)))))),(10,ab(_#151(0..2),(2,ab(_#184(0..2),(1,ab(_#217(0..2),2)))))),(11,ab(_#151(0..2),(0,ab(_#184(0..2),(2,ab(_#217(0..2),2)))))),(12,ab(_#151(0..2),(1,ab(_#184(0..2),(2,ab(_#217(0..2),2)))))),(13,ab(_#151(0..2),(2,ab(_#184(0..2),(2,ab(_#217(0..2),2)))))))))))))))),va(2,ab(1,(1,ab(3,(3,ab(9,(9,ab(27,(27,ab(_#118(1..40),(14,ab(_#151(0..2),(0,ab(_#184(0..2),(0,ab(_#217(0..2),0)))))),(15,ab(_#151(0..2),(1,ab(_#184(0..2),(0,ab(_#217(0..2),0)))))),(16,ab(_#151(0..2),(2,ab(_#184(0..2),(0,ab(_#217(0..2),0)))))),(17,ab(_#151(0..2),(0,ab(_#184(0..2),(1,ab(_#217(0..2),0)))))),(18,ab(_#151(0..2),(1,ab(_#184(0..2),(1,ab(_#217(0..2),0)))))),(19,ab(_#151(0..2),(2,ab(_#184(0..2),(1,ab(_#217(0..2),0)))))),(20,ab(_#151(0..2),(0,ab(_#184(0..2),(2,ab(_#217(0..2),0)))))),(21,ab(_#151(0..2),(1,ab(_#184(0..2),(2,ab(_#217(0..2),0)))))),(22,ab(_#151(0..2),(2,ab(_#184(0..2),(2,ab(_#217(0..2),0)))))),(23,ab(_#151(0..2),(0,ab(_#184(0..2),(0,ab(_#217(0..2),1)))))),(24,ab(_#151(0..2),(1,ab(_#184(0..2),(0,ab(_#217(0..2),1)))))),(25,ab(_#151(0..2),(2,ab(_#184(0..2),(0,ab(_#217(0..2),1)))))),(26,ab(_#151(0..2),(0,ab(_#184(0..2),(1,ab(_#217(0..2),1)))))),(27,ab(_#151(0..2),(1,ab(_#184(0..2),(1,ab(_#217(0..2),1)))))),(28,ab(_#151(0..2),(2,ab(_#184(0..2),(1,ab(_#217(0..2),1)))))),(29,ab(_#151(0..2),(0,ab(_#184(0..2),(2,ab(_#217(0..2),1)))))),(30,ab(_#151(0..2),(1,ab(_#184(0..2),(2,ab(_#217(0..2),1)))))),(31,ab(_#151(0..2),(2,ab(_#184(0..2),(2,ab(_#217(0..2),1)))))),(32,ab(_#151(0..2),(0,ab(_#184(0..2),(0,ab(_#217(0..2),2)))))),(33,ab(_#151(0..2),(1,ab(_#184(0..2),(0,ab(_#217(0..2),2)))))),(34,ab(_#151(0..2),(2,ab(_#184(0..2),(0,ab(_#217(0..2),2)))))),(35,ab(_#151(0..2),(0,ab(_#184(0..2),(1,ab(_#217(0..2),2)))))),(36,ab(_#151(0..2),(1,ab(_#184(0..2),(1,ab(_#217(0..2),2)))))),(37,ab(_#151(0..2),(2,ab(_#184(0..2),(1,ab(_#217(0..2),2)))))),(38,ab(_#151(0..2),(0,ab(_#184(0..2),(2,ab(_#217(0..2),2)))))),(39,ab(_#151(0..2),(1,ab(_#184(0..2),(2,ab(_#217(0..2),2)))))),(40,ab(_#151(0..2),(2,ab(_#184(0..2),(2,ab(_#217(0..2),2))))))))))))))))])])
% F = _#118(1..40)
% W1 = 1
% W2 = 3
% W3 = 9
% W4 = 27