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.

Reply via email to