Xが10進数Yのローマ数字である場合に真となるプロローグ述語数字(X、Y)を定義しようとしています。
numerals(X,Y) :- X is ('M'), Y>=1000.
numerals(X,Y) :- X is ('CM'), Y>=900.
numerals(X,Y) :- X is ('D'), Y>=500.
numerals(X,Y) :- X is ('CD'), Y>=400.
numerals(X,Y) :- X is ('C'), Y>=100.
.
.
.
.
コードを実行すると、次のエラーが発生します。
?-numerals(M,1001).
ERROR: toplevel: Undefined procedure: numerals/2 (DWIM could not correct goal)