Supporting clause definitions as Implication and improved parsing
Bule support (restricted) implications in a clause definition with straight forward semantics.
dom[1..2].
dom[X] :: p(X) -> dom[Y]: ~q(Y).
grounds to
~p(1) | ~q(1) | ~q(2).
~p(2) | ~q(1) | ~q(2).
.
Left hand side of the implication is separated by &
(a conjunction) and right hand (disjunction) with |
.
Other structures are not allowed and the parser will complain!