/// <summary>
        /// Compares the bases of two statements.
        /// </summary>
        /// <param name="statement"></param>
        /// <returns></returns>
        public bool AreBasesEqual(IStatement statement)
        {
            if (statement == null)
            {
                return(false);
            }

            if (this.RepresentationLength != statement.RepresentationLength)
            {
                return(false);
            }

            for (int i = 0; i < this.RepresentationLength; ++i)
            {
                if (this.BaseAtIndex(i) != statement.BaseAtIndex(i))
                {
                    return(false);
                }
            }

            return(true);
        }