– opening a new thread …
Looking up Markus definition for declarative:
" Declaratively, Prolog programs state what holds . A Prolog program consists of clauses , and each clause is either a fact or a rule . Facts state what is always true. Rules state what is true under certain conditions .
I think this is exactly the beauty of Prolog.
Declaratively, you describe what holds … and you can then treat (and perhaps even derive) from this description several procedural “interpretations” … based on the calling context – and they all hold.