public bool IsEqualTo(FiniteSet <T> other) { if (other is FiniteSet <T> ) { return(_set.SetEquals(((FiniteSet <T>)other)._set)); } else { return(this.IsSubsetOf(other) && other.IsSubsetOf(this)); } }
public static bool IsSubgroup(Group <T> group, FiniteSet <T> subset) { if (!subset.IsSubsetOf(group.Set)) { return(false); } foreach (T a in subset) { foreach (T b in subset) { T inverse = group.Inverse(b); if (!subset.IsMember(group.Product(a, inverse))) { return(false); } } } return(true); }