/// <summary> /// \-完備かどうか(差集合\について閉じているかどうか) /// </summary> /// <param name="subsets">集合族</param> /// <returns>\-完備</returns> public static bool isDiffComplete <TEnum>(this FamilyOfSubsets <TEnum> subsets) where TEnum : Enum { foreach (FiniteSet <TEnum> subset1 in subsets) { foreach (FiniteSet <TEnum> subset2 in subsets) { FiniteSet <TEnum> diffSet = subset1.Diff(subset2); IEqualityComparer <FiniteSet <TEnum> > comparer = new FiniteSetComparer <TEnum>(); if (!subsets.Contains(diffSet, comparer)) { return(false); } } } return(true); }
/// <summary> /// 集合族の中に要素である集合が含まれているかどうか /// </summary> /// <param name="item">有限集合</param> /// <returns>含まれている</returns> public override bool Contains(FiniteSet <TEnum> item) { IEqualityComparer <FiniteSet <TEnum> > comparer = new FiniteSetComparer <TEnum>(); return(Enumerable.Contains(this, item, comparer)); }