I suspect that teyjus, the main implementation of λProlog, might be a bit of abandonware, but λProlog is a fascinating Prolog that is supposed to let you use higher-order logic, hypothetical reasoning and other things, which is why I'm trying to use it.
File "example.sig":
sig example.
kind person, language type.
type hans person.
type german, french, italian language.
type grade person -> o.
type take person -> language -> o.
File "example.mod":
module example.
(grade P) :- (take P german), (take P french).
(grade P) :- (take P german), (take P italian).
take hans french.
However, when I compile and load it, while it appears to work, hypothetical reasoning queries get rejected:
[example] ?- take X Y.
The answer substitution:
Y = french
X = hans
More solutions (y/n)? y
no (more) solutions
[example] ?- grade X.
no (more) solutions
[example] ?- (take hans german) => (grade hans).
(1,19) : Error : Symbol => is not permitted within terms
I was expecting a "yes" at the end there. What am I doing wrong?