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