ensureIsDatalog

Asserts isDatalog rule by rule, so that the resulting exception identifies precisely which rule and which condition (hasNoCompound, allHeadVariablesInNonNegatedLiterals or allNegatedLiteralsVariablesInNonNegatedLiteralsToo) was violated first, before finally checking ensureIsNonRecursive on the theory as a whole.

Throws

on the first rule/condition (in that order) that fails.