murdered(X,Y,Day):- motive(X,Y),owns_gun(X),no_alibi(X,Day).

no_alibi(X,Day):-alibi(X,Y,Day), liar(Y).
no_alibi(X,Day):-not(alibi(X,_,Day)).

motive(X,Y):-interest(X,Y);revenge(X,Y).

interest(X,Y):- inheritor(X,Y);owns_money(X,Y);seen_committing_crime(X,Y).

alibi(luc,bernard,tue).
alibi(paul,bernard,tue).
alibi(louis,luc,tue).
alibi(alain,luc,thu). %thursday

liar(alain).

revenge(paul,jean).
revenge(luc,jean).

inheritor(bernard, jean).
inheritor(jean, louis).

owns_money(louis,jean).
owns_money(luc,jean).

seen_committing_crime(alain,jean).

owns_gun(luc).
owns_gun(louis).
owns_gun(alain).



solve(X):- murdered(X,jean,tue).
