The problem is that we don't have an algorithm to find out that the group 
is finite (short of generating all elements). So it is placed in the 
"Groups" category instead of "FiniteGroups", and that doesn't have an 
iterator. There should be an in-between category of finitely generated 
groups which provides the iterator. In any case, a workaround is:

sage: list(TransitiveIdeal(lambda x:[g*x for g in G4.gens()], [G4.one()]))
[ [1 0]  [    w     0]  [     1 -w - 1]  [    w     1]  [     0 -w - 1]  
[ [0 1], [w + 1     1], [     0      w], [w + 1     0], [    -1      w], 

[-w - 1      w]  [     1     -w]  [    w w + 1]  [-w - 1     -1]  
[     w  w + 1], [     0 -w - 1], [w + 1    -w], [     w      0], 

[    -w      0]  [ 0  1]  [    0     w]  [ w + 1     -w]  [    -w     -1] 
[-w - 1     -1], [-1  0], [   -1 w + 1], [    -w -w - 1], [-w - 1      0],

 [   -1 w + 1]  [    0 w + 1]  [-w - 1      0]  [    -w -w - 1]  
 [    0    -w], [    1    -w], [     w      1], [-w - 1      w], 

[w + 1     1]  [   -1     w]  [ 0 -1]  [w + 1     0]  [-1  0]  
[   -w     0], [    0 w + 1], [ 1  0], [   -w    -1], [ 0 -1], 

[     0     -w] ]
[     1 -w - 1] ]


On Friday, April 18, 2014 4:08:16 PM UTC+1, Ben Cote wrote:
>
> I am trying to get sage to list the elements of a (finite) finitely 
> generated matrix group.  
>
> It works in version 5.9 installed on a Mac, but not on 6.1.1 on linux or 
> on the cloud, which leads me to believe somewhere between 5.9 and 6.1.1 the 
> .list() operation for finite matrix groups was compromised.  I just was 
> hoping to bring this to the attention of someone who might repair it for 
> future versions. 
>
> Here is the code:
>
> x=polygen(QQ,'x')
> E.<w>=NumberField(x^2+x+1,'w')  
>
> r=matrix([[w,0],[-w^2,1]])
> s=matrix([[1,w^2],[0,w]])
>
>
> G4 = MatrixGroup([r,s])
> l = G4.list()  # returns the elements of G as a list
>
> Here is the error from the cloud:
>
> Traceback (most recent call last):
>   File 
> "/projects/00f50bac-d0a4-44e5-b456-34ae18b9117d/.sagemathcloud/sage_server.py",
>  line 733, in execute
>     exec compile(block+'\n', '', 'single') in namespace, locals
>   File "", line 1, in <module>
>   File "parent.pyx", line 822, in sage.structure.parent.Parent.__getattr__ 
> (sage/structure/parent.c:6997)
>   File "misc.pyx", line 251, in sage.structure.misc.getattr_from_other_class 
> (sage/structure/misc.c:1606)
> AttributeError: 'FinitelyGeneratedMatrixGroup_generic_with_category' object 
> has no attribute 'list'
>
>
> Here is the error from 6.11 on a linux machine:
>
> AttributeError                            Traceback (most recent call last)
> <ipython-input-9-a6e94ecf7e4a> in <module>()
> ----> 1 G4.list()
>
> /opt/sage-6.1.1-x86_64-Linux/local/lib/python2.7/site-packages/sage/structure/parent.so
>  
> in sage.structure.parent.Parent.__getattr__ (sage/structure/parent.c:6997)()
>
> /opt/sage-6.1.1-x86_64-Linux/local/lib/python2.7/site-packages/sage/structure/misc.so
>  
> in sage.structure.misc.getattr_from_other_class 
> (sage/structure/misc.c:1606)()
>
> AttributeError: 'FinitelyGeneratedMatrixGroup_generic_with_category' 
> object has no attribute 'list'
>
>
> And as I said before, it works and "l" prints the list of 24 matrices on 
> the 5.9 version on a mac.  
>
> Also, 5.9 says that type(G4) is 
>
> <class 
> 'sage.groups.matrix_gps.finitely_generated.FinitelyGeneratedMatrixGroup_gens_with_category'>
> But the cloud and 6.1.1 say 
> <class 
> 'sage.groups.matrix_gps.finitely_generated.FinitelyGeneratedMatrixGroup_generic_with_category'>
>
>
>

-- 
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