father(john,jane). mother(jane,sue). mother(jane,liz). parent(X,Y) :- mother(X,Y). parent(X,Y) :- father(X,Y). grandparent(X,Y) :- parent(X,Z), parent(Z,Y), !. sibling(X,Y) :- parent(Z,X), parent(Z,Y), X \= Y. mylength([],0). mylength([_|T],N) :- mylength(T,LR), N is LR + 1. member(_,[]) :- fail. member(E,[E|_]). member(E,[_|T]) :- member(E,T). append([],L2,L2). append([H|T],L2,[H|NL]) :- append(T,L2,NL). factorial(0,1). factorial(N,X) :- N > 0, Temp is N - 1, factorial(Temp, Y), !, X is N * Y.