Suppose I have a set of rules such as
rule( [push(S, C), chair(C)] , fall(C)).
which intuitively means "if C is a chair and someone S pushes it, C
I would like to program a
predicate which performs both deduction and *** . *** , in
particular, must sometimes assume the existence of new (skolem)
Example of deduction:
follows( [ push(jack, c1), chair(c1) ], [fall(c1)] ).
Example of *** :
follows( [fall(c1)], [chair(c1), push(skolem1(c1), c1) ]).
How can I define such a predicate follows/2? I suppose I have to use
term_variables, but I am not sure how. I am using swi-prolog.
Thank you very much for any help,