Package-level declarations

Types

Link copied to clipboard

Base ClauseVisitor that implements the head/body and negated/non-negated dispatching itself, so subclasses only need to fold per-literal results together (via reduce) and, typically, override the leaf-level visitX methods inherited from ExhaustiveTermVisitor to inspect the literals' arguments.

Link copied to clipboard

A AbstractClauseVisitor that detects whether a clause contains any compound term (a Struct with Struct.arity > 0) as an argument, anywhere in its head or body literals — the check backing it.unibo.tuprolog.datalog.hasNoCompound. Any non-Struct argument (a number, a variable, ...) is ignored (defaultValue).

Link copied to clipboard

A AbstractClauseVisitor that collects the Vars occurring in a clause's head which do not also occur in one of its non-negated body literals — i.e. the offending variables that would make it.unibo.tuprolog.datalog.allHeadVariablesInNonNegatedLiterals false. Variables inside negated body literals (ClauseVisitor's negated-literal visit path) are deliberately ignored when collecting "positive" variables, since a negated goal does not bind anything.