public override bool Equals(Expression E) { FiniteSet S = E as FiniteSet; if (ReferenceEquals(S, null)) { return(base.Equals(E)); } return(Members.SequenceEqual(S.Members)); }
public override int CompareTo(Expression R) { FiniteSet RS = R as FiniteSet; if (!ReferenceEquals(RS, null)) { return(members.LexicalCompareTo(RS.Members)); } return(base.CompareTo(R)); }
public static Set New(params Expression[] Members) { return(FiniteSet.New(Members.AsEnumerable())); }
public static Set New(IEnumerable <Expression> Members) { return(FiniteSet.New(Members)); }
public static FiniteSet Intersection(FiniteSet A, FiniteSet B) { return(FiniteSet.New(A.Members.Intersect(B.Members))); }
public static FiniteSet Union(FiniteSet A, FiniteSet B) { return(FiniteSet.New(A.Members.Union(B.Members))); }
public static FiniteSet Union(FiniteSet A, FiniteSet B) { return FiniteSet.New(A.Members.Union(B.Members)); }
public static FiniteSet Intersection(FiniteSet A, FiniteSet B) { return FiniteSet.New(A.Members.Intersect(B.Members)); }