1{ parricide(X), nonParricide(X) }1 :- person(X). person(iokaste). nonParricide(iokaste). hasChild(iokaste, oedipus). person(oedipus). parricide(oedipus). marriedto(oedipus, iokaste). %% irrelevant, but the reason why he became prominent hasChild(oedipus, perineikes). person(perineikes). %% unknown whether parricide or not. hasChild(perineikes, thesandros). person(thesandros). nonParricide(thesandros). parentOfParricide(X) :- hasChild(X,Y), parricide(Y). parentOfNonParricide(X) :- hasChild(X,Y), nonParricide(Y). parentOfParricideGrandparentOfNonParricide(X) :- parentOfParricide(X), hasChild(X,Y), parentOfNonParricide(Y). existsPoPGoNP :- parentOfParricideGrandparentOfNonParricide(X), person(X). %% => t/f