szulo(a,b).
szulo(a,c).
szulo(b,d).
szulo(b,e).
szulo(c,f).
szulo(c,g).

szulo(h,i).
szulo(h,j).
szulo(i,d).
szulo(i,e).
szulo(j,k).
szulo(j,l).

nsz(X,Y):- szulo(X,Z), szulo(Z,Y).

os(X,Y):- szulo(X,Y).
os(X,Y):- szulo(X,Z), os(Z,Y).

ose(1,X,Y):- szulo(X,Y).
ose(N,X,Y):- szulo(X,Z), ose(M,Z,Y), N is M+1.

% Az is a prolog értékadó utasítása; a bal oldalon lévő változóba a
% jobb oldalon lévő kifejezés értéke kerül behelyettesítésre.