Задача про авиационное подразделение, не понятно в чём ошибка - Prolog
Формулировка задачи:
/**
Задача решается табличным способом.
В авиационном подразделении служат Потапов,Щедрин,Семенов,
Коновалов и Самойлов. Их специальности (они перечислены не
в том порядке, что и фамилии):пилот, штурман, бортмеханник,
радист и синоптик. Об этих людях известно следующее:
1) Щедрин и Коновалов не умеют управлять самолетом.
2) Потапов и Коновалов готовятся стать штурманами.
3) Щедрин и Самойлов живут в одном доме с радистом.
4) Семенов был в доме отдыха вместе со Щедриным и сыном синоптика.
5) Потапов и Щедрин всвободное время любят играть в шахматы
с бортмехаником.
6) Коновалов, Семенов и синоптик увлекаются боксом.
7) Радист боксом не увлекается.
Определить кто имеет какую специальность.
___________________________________________________________________
| | | | | | |
| | Потапов | Щедрин | Семенов | Коновалов | Самойлов |
|__________|___________|__________|_________|___________|___________|
| | | | | | |
| Пилот | - | - | + | - | - |
|__________|___________|__________|_________|___________|___________|
| | | | | | |
| Штурман | - | + | - | - | - |
|__________|___________|__________|_________|___________|___________|
| | | | | | |
| Бортмех | - | - | - | + | - |
|__________|___________|__________|_________|___________|___________|
| | | | | | |
| Радист | + | - | - | - | - |
|__________|___________|__________|_________|___________|___________|
| | | | | | |
| Синоптик | - | - | - | - | + |
|__________|___________|__________|_________|___________|___________|
**/
/**/
/**/
Ошибка какая-то.Объясните пожалуйста.
Решение задачи: «Задача про авиационное подразделение, не понятно в чём ошибка»
textual
Листинг программы
predicates pilot(symbol) shturm(symbol) radist(symbol) sinoptik(symbol) bort(symbol) clauses fam("Потапов"). fam("Щедрин"). fam("Семенов"). fam("Коновалов"). fam("Самойлов"). pilot(X):-fam(X), not(X="Щедрин"), not(X="Коновалов"). shturm(X):-fam(X), not(pilot(X)), not(X="Потапов"), not(X="Коновалов"). radist(X):-fam(X), not(pilot(X)), not(shturm(X)), not(X="Щедрин"), not(X="Самойлов"),not(X="Коновалов"), not(X="Семенов"). sinoptik(X):-fam(X), not(pilot(X)), not(shturm(X)), not(radist(X)), not(X="Семенов"), not(X="Щедрин"). bort(X):-fam(X), not(pilot(X)), not(shturm(X)), not(radist(X)), not(sinoptik(X)), not(X="Потапов"), not(X="Щедрин"). goal clearwindow, pilot(X), write(X," - пилот"), nl, shturm(Y), write(Y," - штурман"), nl, radist(Z), write(Z," - радист"), nl, sinoptik(K), write(K," - синоптик"), nl, bort(L), write(L," - бортмеханик"), nl.