I’ve been playing around with prolog and realised something. You can do everything without predicate names.
e.g. Just change all predicates
$ $ a(b,c,d,e,..)$ $
$ $ prop(a,b,c,d,e,..)$ $
Where $ prop$ is some character that you can use for all function names.
So $ isRed(X)$ becomes $ prop(isRed,X)$ .
Which makes me wonder if there is any point to prolog having function heads? Couldn’t everthing be done using lists? e.g. $ loves(romeo,juliet)$ could just as easily be written $ [loves,romeo,juliet]$ without loss of information.
Have I missed something or is there anything special about predicate function heads?