prove(clause(X, Y)):-clause(X, Y). prove(A=A). prove(\+ A):- \+ prove(A). prove(Goal):- \+(Goal = true), \+(Goal = ','(_, _)), \+(Goal = \+(_)), \+(Goal = '='(_, _)), \+(Goal = clause(_, _)), clause(Goal, Body), prove(Body). prove((Goal1, Goal2)):- prove(Goal1), prove(Goal2). prove(true). male(mark). parent_of(mark, jim). father_of(X, Y):-parent_of(X, Y), male(X).