def verify_representation(self): r""" Verify the representation: tests that the images of the simple transpositions are involutions and tests that the braid relations hold. EXAMPLES:: sage: spc = SymmetricGroupRepresentation([1,1,1]) sage: spc.verify_representation() True sage: spc = SymmetricGroupRepresentation([4,2,1]) sage: spc.verify_representation() True """ n = self._n transpositions = [from_cycles(n, ((i, i + 1), )) for i in range(1, n)] repn_matrices = [self.representation_matrix(t) for t in transpositions] for i, si in enumerate(repn_matrices): for j, sj in enumerate(repn_matrices): if i == j: if si * sj != si.parent().identity_matrix(): return False, "si si != 1 for i = %s" % (i, ) elif abs(i - j) > 1: if si * sj != sj * si: return False, "si sj != sj si for (i,j) =(%s,%s)" % (i, j) else: if si * sj * si != sj * si * sj: return False, "si sj si != sj si sj for (i,j) = (%s,%s)" % ( i, j) return True
def __iter__(self): """ Iterate over ``self``. EXAMPLES:: sage: G = Permutations(4) sage: C = G.conjugacy_class(Partition([3,1])) sage: for x in C: x [1, 3, 4, 2] [1, 4, 2, 3] [3, 2, 4, 1] [4, 2, 1, 3] [2, 4, 3, 1] [4, 1, 3, 2] [2, 3, 1, 4] [3, 1, 2, 4] """ if self._set: for x in self._set: yield x return for x in conjugacy_class_iterator(self._part, self._domain): yield from_cycles(self._parent.n, x, self._parent)
def set(self): r""" The set of all elements in the conjugacy class ``self``. EXAMPLES:: sage: G = Permutations(3) sage: g = G([2, 1, 3]) sage: C = G.conjugacy_class(g) sage: S = [[1, 3, 2], [2, 1, 3], [3, 2, 1]] sage: C.set() == Set(G(x) for x in S) True """ if not self._set: self._set = Set(from_cycles(self._parent.n, x, self._parent) for x in conjugacy_class_iterator(self._part, self._domain) ) return self._set