/// <summary>
        /// Auxiliary function for transforming the argument sub-expression of a quantified expression. The expression is grounded
        /// by all possible substitutions and each of the resulting expression is recursively transformed.
        /// </summary>
        /// <param name="parameters">Quantified expression parameters.</param>
        /// <param name="expression">Argument sub-expression of the quantified expression.</param>
        /// <returns>List of all possible grounded and transformed sub-expressions.</returns>
        private List <IExpression> TransformQuantifiedSubExpression(Parameters parameters, IExpression expression)
        {
            List <IExpression> arguments = new List <IExpression>();

            IEnumerable <ISubstitution> localSubstitutions = GroundingManager.GenerateAllLocalSubstitutions(parameters);

            foreach (var localSubstitution in localSubstitutions)
            {
                var groundedSubExpression = GroundingManager.GroundExpression(expression, localSubstitution);
                arguments.Add(groundedSubExpression.Accept(this));
            }

            return(arguments);
        }