/// <summary>
            /// Initializes a new instance of the <see cref="SubtermCollection"/> class.
            /// </summary>
            /// <param name="owner">The owner of this collection.</param>
            public SubtermCollection(PropertyATerm owner)
            {
                #region Contract
                Debug.Assert(owner != null);
                #endregion

                this.owner = owner;
            }
        /// <inheritdoc />
        public bool Equals(PropertyATerm other)
        {
            if (Object.ReferenceEquals(this, other))
            {
                return(true);
            }

            return(base.Equals(other) &&
                   this.Name.Equals(other.Name) &&
                   this.Type.Equals(other.Type));
        }