SymmetricGroupAlgebra is full of bugs and maybe a bit old. Use the method .algebra instead which use the category framework. In a near future it could be a good idea to deprecate it for SymmetricGroup(n).algebra(ring) ?
With the patch #11111 the following works: sage: p = Permutation((1,2)) sage: S = SymmetricGroup(3).algebra(QQ) sage: G = S.group() sage: G(p) (1,2) sage: G((1,2)) (1,2) sage: S(p) B[(1,2)] On Tuesday, July 15, 2014 12:51:14 PM UTC-7, Robert Zeier wrote: > > Summary: Two bugs in sage 6.2 that are both related to the element > constructors > for the SymmetricGroupAlgebra [see (1) below] and its group [if one sets > display='cycle', see (2) below]. > One comment: setting display='list' is not followed in the group case [see > (3) below]. > > Thank you very much! > > > (1) Bug: The constructor for the SymmetricGroupAlgebra elements > raises a TypeError even if the constructor for the group does work: > > sage: Permutations.global_options(display='list') > sage: p = Permutation((1,2)) > sage: S = SymmetricGroupAlgebra(QQ,3) > sage: G = S.group() > sage: G(p) > (1,2) > sage: G((1,2)) > (1,2) > sage: S(p) > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > <ipython-input-7-bea986bdeccc> in <module>() > ----> 1 S(p) > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/structure/parent.so > > in sage.structure.parent.Parent.__call__ (sage/structure/parent.c:8858)() > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/structure/coerce_maps.so > > in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ > (sage/structure/coerce_maps.c:4206)() > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/structure/coerce_maps.so > > in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ > (sage/structure/coerce_maps.c:4113)() > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/combinat/free_module.pyc > > in _element_constructor_(self, x) > 1577 except TypeError: > 1578 pass > -> 1579 raise TypeError("do not know how to make x (= %s) an > element of self (=%s)"%(x,self)) > 1580 > 1581 def _an_element_impl(self): > > TypeError: do not know how to make x (= [2, 1]) an element of self > (=Symmetric group algebra of order 3 over Rational Field) > sage: S((1,2)) > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > <ipython-input-8-f3af17ba6459> in <module>() > ----> 1 S((Integer(1),Integer(2))) > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/structure/parent.so > > in sage.structure.parent.Parent.__call__ (sage/structure/parent.c:8858)() > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/structure/coerce_maps.so > > in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ > (sage/structure/coerce_maps.c:4206)() > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/structure/coerce_maps.so > > in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ > (sage/structure/coerce_maps.c:4113)() > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/combinat/free_module.pyc > > in _element_constructor_(self, x) > 1577 except TypeError: > 1578 pass > -> 1579 raise TypeError("do not know how to make x (= %s) an > element of self (=%s)"%(x,self)) > 1580 > 1581 def _an_element_impl(self): > > TypeError: do not know how to make x (= (1, 2)) an element of self > (=Symmetric group algebra of order 3 over Rational Field) > > (2) Bug: The constructor for the group raises a TypeError if one sets > Permutations.global_options(display='cycle'): > > sage: Permutations.global_options(display='cycle') > sage: p = Permutation((1,2)) > sage: PERM_3 = Permutations(3) > sage: pp = PERM_3(p) > sage: S = SymmetricGroupAlgebra(QQ,3) > sage: G = S.group() > sage: S(pp) > (1,2) > sage: G(pp) > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > <ipython-input-8-d00150707fcf> in <module>() > ----> 1 G(pp) > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/groups/perm_gps/permgroup.pyc > > in __call__(self, x, check) > 652 return self.identity() > 653 > --> 654 return self._element_class()(x, self, check=check) > 655 > 656 def _coerce_impl(self, x): > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/groups/perm_gps/permgroup_element.so > > in sage.groups.perm_gps.permgroup_element.PermutationGroupElement.__init__ > (sage/groups/perm_gps/permgroup_element.c:4773)() > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc > > in __call__(self, x, name) > 197 > 198 if isinstance(x, basestring): > --> 199 return cls(self, x, name=name) > 200 try: > 201 return self._coerce_from_special_method(x) > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc > > in __init__(self, parent, value, is_name, name) > 1289 else: > 1290 try: > -> 1291 self._name = parent._create(value, name=name) > 1292 # Convert ValueError and RuntimeError to TypeError for > 1293 # coercion to work properly. > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc > > in _create(self, value, name) > 387 def _create(self, value, name=None): > 388 name = self._next_var_name() if name is None else name > --> 389 self.set(name, value) > 390 return name > 391 > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/gap.pyc > > in set(self, var, value) > 1303 """ > 1304 cmd = ('%s:=%s;;'%(var,value)).replace('\n','') > -> 1305 out = self._eval_line(cmd, allow_use_file=True) > 1306 > 1307 def get(self, var, use_file=False): > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/gap.pyc > > in _eval_line(self, line, allow_use_file, wait_for_prompt, > restart_if_needed) > 769 return '' > 770 else: > --> 771 raise RuntimeError(message) > 772 > 773 except KeyboardInterrupt: > > TypeError: Gap produced error output > Error, PermList: <list> must be a list (not a permutation (small)) > > executing $sage2:=PermList((1,2));; > sage: G(p) > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > <ipython-input-9-fc8fc6347723> in <module>() > ----> 1 G(p) > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/groups/perm_gps/permgroup.pyc > > in __call__(self, x, check) > 652 return self.identity() > 653 > --> 654 return self._element_class()(x, self, check=check) > 655 > 656 def _coerce_impl(self, x): > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/groups/perm_gps/permgroup_element.so > > in sage.groups.perm_gps.permgroup_element.PermutationGroupElement.__init__ > (sage/groups/perm_gps/permgroup_element.c:4773)() > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc > > in __call__(self, x, name) > 197 > 198 if isinstance(x, basestring): > --> 199 return cls(self, x, name=name) > 200 try: > 201 return self._coerce_from_special_method(x) > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc > > in __init__(self, parent, value, is_name, name) > 1289 else: > 1290 try: > -> 1291 self._name = parent._create(value, name=name) > 1292 # Convert ValueError and RuntimeError to TypeError for > 1293 # coercion to work properly. > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc > > in _create(self, value, name) > 387 def _create(self, value, name=None): > 388 name = self._next_var_name() if name is None else name > --> 389 self.set(name, value) > 390 return name > 391 > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/gap.pyc > > in set(self, var, value) > 1303 """ > 1304 cmd = ('%s:=%s;;'%(var,value)).replace('\n','') > -> 1305 out = self._eval_line(cmd, allow_use_file=True) > 1306 > 1307 def get(self, var, use_file=False): > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/gap.pyc > > in _eval_line(self, line, allow_use_file, wait_for_prompt, > restart_if_needed) > 769 return '' > 770 else: > --> 771 raise RuntimeError(message) > 772 > 773 except KeyboardInterrupt: > > TypeError: Gap produced error output > Error, PermList: <list> must be a list (not a permutation (small)) > > executing $sage3:=PermList((1,2));; > sage: G((1,2)) > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > <ipython-input-10-ba627ac157cc> in <module>() > ----> 1 G((Integer(1),Integer(2))) > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/groups/perm_gps/permgroup.pyc > > in __call__(self, x, check) > 652 return self.identity() > 653 > --> 654 return self._element_class()(x, self, check=check) > 655 > 656 def _coerce_impl(self, x): > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/groups/perm_gps/permgroup_element.so > > in sage.groups.perm_gps.permgroup_element.PermutationGroupElement.__init__ > (sage/groups/perm_gps/permgroup_element.c:4773)() > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc > > in __call__(self, x, name) > 197 > 198 if isinstance(x, basestring): > --> 199 return cls(self, x, name=name) > 200 try: > 201 return self._coerce_from_special_method(x) > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/expect.pyc > > in __init__(self, parent, value, is_name, name) > 1289 else: > 1290 try: > -> 1291 self._name = parent._create(value, name=name) > 1292 # Convert ValueError and RuntimeError to TypeError for > 1293 # coercion to work properly. > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/interface.pyc > > in _create(self, value, name) > 387 def _create(self, value, name=None): > 388 name = self._next_var_name() if name is None else name > --> 389 self.set(name, value) > 390 return name > 391 > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/gap.pyc > > in set(self, var, value) > 1303 """ > 1304 cmd = ('%s:=%s;;'%(var,value)).replace('\n','') > -> 1305 out = self._eval_line(cmd, allow_use_file=True) > 1306 > 1307 def get(self, var, use_file=False): > > /opt/sage/sage-6.2-binary/local/lib/python2.7/site-packages/sage/interfaces/gap.pyc > > in _eval_line(self, line, allow_use_file, wait_for_prompt, > restart_if_needed) > 769 return '' > 770 else: > --> 771 raise RuntimeError(message) > 772 > 773 except KeyboardInterrupt: > > TypeError: Gap produced error output > Error, PermList: <list> must be a list (not a permutation (small)) > > executing $sage4:=PermList((1,2));; > > (3) Comment: The options defined in Permutations.global_options() > are not followed everywhere: > > sage: Permutations.global_options(display='list') > sage: p = Permutation((1,2)) > sage: PERM_3 = Permutations(3) > sage: pp = PERM_3(p) > sage: S = SymmetricGroupAlgebra(QQ,3) > sage: G = S.group() > sage: G(pp) > (1,2) > sage: S(pp) > [2, 1, 3] > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.