This interface defines a bridge between the AssociativeFormula implementation
like a concrete Disjunction and the AssociativeFormulaSupport object which
adds the implementation of the common functionality.

Abstract base class for ComplexLogicalFormula, that are formulas which
implement substitute(), exchange(), getTerms(), isGround() and isWellFormed()
and therefore use terms to describe themself.

This is a term representing an integer number it is used
to distinguish between objects like an auto a which is
modeled as constant and integral numbers like 42.

A general predicate which contains an identifier that describes its meaning,
an argument count referred as arity and a list of sorts defining the types for
the arguments of the predicate.