predicates
man(symbol)
woman(symbol)
parent(symbol, symbol)
%shurin(symbol)
zolovka(symbol)
clauses
man(sergey).
man(dmitriy).
man(valera).
man(petr).
man(mihail).
man(nikolay).
man(alex).
man(alexandr).
man(kostya).
woman(barbara).
woman(anna).
woman(tatiana).
woman(liza).
woman(katya).
woman(juli).
woman(raisa).
woman(lyuda).
parent(barbara, liza).
parent(liza, alex).
parent(alex, kostya).
parent(anna, katya).
parent(anna, petr).
parent(sergey, katya).
parent(sergey, petr).
parent(katya, juli).
parent(petr, alex).
parent(petr, alexandr).
parent(alexandr, lyuda).
parent(juli, lyuda).
parent(tatiana, mihail).
parent(dmitriy, mihail).
parent(mihail, juli).
parent(valera, nikolay).
parent(nikolay, raisa).
parent(raisa, kostya).
/*shurin(X):-
parent(Z,Y),
parent(A,Y),
parent(B,Z),
parent(B,X),
man(X),
woman(Z).*/
zolovka(Z):-
parent(D,E),
parent(X,E),
parent(B,Z),
parent(B,X),
man(X),
woman(Z).
goal
%shurin(X).
zolovka(Z).
predicates
man(symbol)
woman(symbol)
parent(symbol, symbol)
tetya (symbol, symbol)
dyadya (symbol, symbol)
clauses
man(sergey).
man(dmitriy).
man(valera).
man(petr).
man(mihail).
man(nikolay).
man(alex).
man(alexandr).
man(kostya).
woman(barbara).
woman(anna).
woman(tatiana).
woman(liza).
woman(katya).
woman(juli).
woman(raisa).
woman(lyuda).
parent(barbara, liza).
parent(liza, alex).
parent(alex, kostya).
parent(anna, katya).
parent(anna, petr).
parent(sergey, katya).
parent(sergey, petr).
parent(katya, juli).
parent(petr, alex).
parent(petr, alexandr).
parent(alexandr, lyuda).
parent(juli, lyuda).
parent(tatiana, mihail).
parent(dmitriy, mihail).
parent(mihail, juli).
parent(valera, nikolay).
parent(nikolay, raisa).
parent(raisa, kostya).
tetya (X, Y):-
woman (X),
parent (H, X),
parent (H, M),
M<>X,
parent (M, Y).
dyadya (X1, Y1):-
man (X1),
parent (H1, X1),
parent (H1, M1),
M1<>X1,
parent (M1, Y1).
goal
tetya (What, Plemianik),
write («Tetya «);
dyadya (What,Plemianik),
write («_Dyadya «).
predicates
man(symbol)
woman(symbol)
parent(symbol, symbol)
suprug(symbol, symbol)
nevestka (symbol, symbol)
dever (symbol, symbol)
clauses
man(sergey).
man(dmitriy).
man(valera).
man(petr).
man(mihail).
man(nikolay).
man(alex).
man(alexandr).
man(kostya).
woman(barbara).
woman(anna).
woman(tatiana).
woman(liza).
woman(katya).
woman(juli).
woman(raisa).
woman(lyuda).
parent(barbara, liza).
parent(liza, alex).
parent(alex, kostya).
parent(anna, katya).
parent(anna, petr).
parent(sergey, katya).
parent(sergey, petr).
parent(katya, juli).
parent(petr, alex).
parent(petr, alexandr).
parent(alexandr, lyuda).
parent(juli, lyuda).
parent(tatiana, mihail).
parent(dmitriy, mihail).
parent(mihail, juli).
parent(valera, nikolay).
parent(nikolay, raisa).
parent(raisa, kostya).
suprug (anna, sergey).
suprug (tatiana, dmitriy).
suprug (liza, petr).
suprug (katya, mihail).
suprug (raisa, alex).
suprug (juli, alexandr).
nevestka (X, Y):-
parent (H, Y),
parent (H, B),
Y<>B,
suprug (X, B),
woman(X),
man(B).
nevestka (X, Y):-
parent (Y, S),
man(S),
suprug (X,S),
woman(X).
dever (X, Y):-
suprug (Y, M),
man(M),
woman(Y),
parent(R, X),
parent(R, M),
X<>M,
man(X).
goal
nevestka (Who, Whom),
write («Tetya «);
dever (Who, Whom),
write («_Dever «).
predicates
igrok(symbol)
liga_1(symbol)
liga_2(symbol)
liga_3(symbol)
vizov(symbol, symbol)
clauses
igrok(sergey).
igrok(dmitriy).
igrok(valera).
igrok(petr).
igrok(mihail).
igrok(nikolay).
igrok(alex).
igrok(alexandr).
igrok(kostya).
igrok(barbara).
igrok(anna).
igrok(tatiana).
liga_1(sergey).
liga_1(dmitriy).
liga_1(valera).
liga_1(petr).
liga_2(mihail).
liga_2(nikolay).
liga_2(alex).
liga_2(alexandr).
liga_3(kostya).
liga_3(barbara).
liga_3(anna).
liga_3(tatiana).
vizov (X, Y):-
igrok(X),
igrok(Y),
liga_1(X),
X<>Y,
not (liga_3(Y)).
/*vizov (X, Y):-
igrok(X),
igrok(Y),
liga_2(X),
X<>Y,
not (liga_1(Y)).
vizov (X, Y):-
igrok(X),
igrok(Y),
liga_3(X),
X<>Y,
liga_3(Y).*/
goal
vizov(What, Whom).
predicates
man(symbol)
woman(symbol)
parent(symbol, symbol)
plemyanniki(symbol,symbol)
clauses
man(sergey).
man(dmitriy).
man(valera).
man(petr).
man(mihail).
man(nikolay).
man(alex).
man(alexandr).
man(kostya).
woman(barbara).
woman(anna).
woman(tatiana).
woman(liza).
woman(katya).
woman(juli).
woman(raisa).
woman(lyuda).
parent(barbara, liza).
parent(liza, alex).
parent(alex, kostya).
parent(anna, katya).
parent(anna, petr).
parent(sergey, katya).
parent(sergey, petr).
parent(katya, juli).
parent(petr, alex).
parent(petr, alexandr).
parent(alexandr, lyuda).
parent(juli, lyuda).
parent(tatiana, mihail).
parent(dmitriy, mihail).
parent(mihail, juli).
parent(valera, nikolay).
parent(nikolay, raisa).
parent(raisa, kostya).
plemyanniki(X,Y):-
parent(Z,Y),
parent(A,Z),
parent(B,Z),
parent(C,X),
parent(A,C),
parent(B,C),
%X<>Y,
%Z<>C,
man(X),
woman(Y).
/*plemyanniki(X,Y):-
parent(Z,Y),
parent(A,Z),
parent(B,Z),
parent(C,X),
parent(A,C),
parent(B,C),
%X<>Y,
%Z<>C,
man(Y),
woman(X).*/
/*plemyanniki(X,Y):-
parent(Z,Y),
parent(A,Z),
parent(B,Z),
parent(C,X),
parent(A,C),
parent(B,C),
Z<>C.*/
goal
plemyanniki(X,Y),
write(«\nman and wonam\n»).
/*plemyanniki(X,Y),
write(«\nwoman and nam\n»).*/
/* plemyanniki(X,Y).*/
domains
name, addr = string
predicates
person(name,addr)
print_all()
clauses
person(tom,city1).
person(jim,city2).
person(ann,city3).
person(lize,city1).
person(tata,city4).
person(kat,city5).
print_all():-
person(Name,Addr),
write(«\nName=»,Name,», Address=»,Addr),
fail.
goal
print_all.
predicates
nacionalnost(symbol)
sport(symbol)
kto_kakoy_nacionalnosty(symbol,symbol,symbol)
kto_kakym_sportom_uvlekaetsya(symbol,symbol,symbol)
clauses
nacionalnost(amerikanec).
nacionalnost(izrailtyanen).
nacionalnost(avstraliec).
sport(basketbol).
sport(tenis).
sport(kriket).
kto_kakoy_nacionalnosty(M,S,R):-
nacionalnost(M),
nacionalnost(S),
nacionalnost(R),
M<>S,
M<>R,
S<>R,
not(M=amerikanec),
S=izrailtyanen.
kto_kakym_sportom_uvlekaetsya(M,S,R):-
sport(M),
sport(S),
sport(R),
M<>S,
M<>R,
S<>R,
M=basketbol,
not(S=tenis).
goal
kto_kakoy_nacionalnosty(Maik,Saimon,Richard) or
kto_kakym_sportom_uvlekaetsya(Maik,Saimon,Richard).
predicates
flower(symbol)
grow(symbol, symbol, symbol)
clauses
flower(roses).
flower(margaretes).
flower(ann_ey).
grow(R, M, A):-
flower(R),
flower(M),
flower(A),
R<>M,
M<>A,
R<>A,
not(R=roses),
not(M=margaretes),
not(A=ann_ey),
not(R=margaretes).
goal
grow(Rose,Margaret,Ann).