list1(X) :- clause(X,Y),output_clause(X,Y), write( '.' ), nl, fail. list1(X). output_clause(X,true) :- !, write(X). output_clause(X,Y) :- write( (X :- Y) ). a( b ). a( c ). outputclause(X,true) :- !, write(X). outputclause(X,Y) :- write( (X :- Y) ). r(X) :- a(X). s(X) :- true. u. u.