% original version at http://www.csupomona.edu/~jrfisher/www/geolog/mb.in % problem from Manthey/Bry :- op(1200,xfx,':='). :- op(1199,xfx,'=>'). :- dynamic(p/2). :- dynamic(q/2). :- dynamic(dom/1). :- dynamic(answer/1). flag(keywords). flag(quiet). flag(quick). %domain elements a,b,c dom(a). dom(b). dom(c). dom(d). [p_total] := p(a,b) => answer(p(a,b)). [q_total] := q(c,d) => answer(q(c,d)). [] := answer(_) => goal. [sym_p,X,Y] := p(X,Y) => p(Y,X). % [sym_q,X,Y] := q(X,Y) => q(Y,X). [trans_p,X,Y,Z] := p(X,Y),p(Y,Z) => p(X,Z). [trans_q,X,Y,Z] := q(X,Y),q(Y,Z) => q(X,Z). [p_or_q,X,Y] := dom(X),dom(Y) => p(X,Y);q(X,Y).