Thanks for your help but I think I need more. I've written some code for a
somewhat general case of n orthogonal generators and an arbitrary diagonal
metric and I think I've generated the correct 16x16 matrices for my n=4
case. When I finish running the .sage file and return to sage I execute

F = PRGA.monoid()
MyStr=str(PRGA.gens())
MyStr=MyStr[1:len(MyStr)-1]
exec MyStr+' = F.gens()'
ST.<g0,g1,g2,g3>=FreeAlgebraQuotient(PRGA,MyList6,mats)
ST
  Free algebra quotient on 4 generators ('g0', 'g1', 'g2', 'g3') and
dimension 16 over Rational Field

but when I do

g3*g3 # or ST.gen(3)*ST.gen(3)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_9.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8
-*-\\n" +
_support_.preparse_worksheet_cell(base64.b64decode("ZzMqZzM="),globals())+"\\n");
execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>

  File "/tmp/tmpnhv5ev/___code___.py", line 2, in <module>
    exec compile(u'g3*g3
  File "", line 1, in <module>

  File "element.pyx", line 1710, in
sage.structure.element.RingElement.__mul__ (sage/structure/element.c:15287)
  File "element.pyx", line 1717, in
sage.structure.element.RingElement._mul_ (sage/structure/element.c:15414)
  File
"/home/anonymous/sage-6.2/local/lib/python2.7/site-packages/sage/algebras/free_algebra_quotient_element.py",
line 255, in _mul_
    if c != 0: z.__vector += monomial_product(A,c*u,B[i])
  File
"/home/anonymous/sage-6.2/local/lib/python2.7/site-packages/sage/algebras/free_algebra_quotient_element.py",
line 245, in monomial_product
    for (j,k) in m._element_list:
  File "element.pyx", line 344, in
sage.structure.element.Element.__getattr__ (sage/structure/element.c:4022)
  File "misc.pyx", line 251, in
sage.structure.misc.getattr_from_other_class (sage/structure/misc.c:1687)
AttributeError: 'FreeAlgebra_generic_with_category.element_class' object
has no attribute '_element_list'

Further when I try to automate with the generated string MyStr='g0, g1, g2,
g3' and within the .sage file

exec 'ST.<'+MyStr+'> = FreeAlgebraQuotient(PRGA,MyList6,mats)'

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_13.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8
-*-\\n" +
_support_.preparse_worksheet_cell(base64.b64decode("ZXhlYyAnU1QuPCcrTXlTdHIrJz4gPSBGcmVlQWxnZWJyYVF1b3RpZW50KFBSR0EsTXlMaXN0NixtYXRzKSc="),globals())+"\\n");
execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>

  File "/tmp/tmpLPtPyL/___code___.py", line 2, in <module>
    exec compile(u"exec 'ST.<'+MyStr+'> =
FreeAlgebraQuotient(PRGA,MyList6,mats)'" + '\n', '', 'single')
  File "", line 1, in <module>

  File "<string>", line 1
    ST.<g0, g1, g2, g3> = FreeAlgebraQuotient(PRGA,MyList6,mats)
       ^
SyntaxError: invalid syntax

If I try:

ST=FreeAlgebraQuotient(PRGA,MyList6,mats, names='g0, g1, g2, g3') # or
anything else I try in names

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_7.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8
-*-\\n" +
_support_.preparse_worksheet_cell(base64.b64decode("U1Q9RnJlZUFsZ2VicmFRdW90aWVudChQUkdBLE15TGlzdDYsbWF0cywgbmFtZXM9J2cwLCBnMSwgZzIsIGczJykKI2V4ZWMgJ1NULjwnK015U3RyKyc+ID0gRnJlZUFsZ2VicmFRdW90aWVudChQUkdBLE15TGlzdDYsbWF0cyknCmV4ZWMgTXlTdHIrJyA9IFNULmdlbnMoKSc="),globals())+"\\n");
execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>

  File "/tmp/tmprvEfNn/___code___.py", line 2, in <module>
    ST=FreeAlgebraQuotient(PRGA,MyList6,mats, names='g0, g1, g2, g3')
  File "classcall_metaclass.pyx", line 330, in
sage.misc.classcall_metaclass.ClasscallMetaclass.__call__
(sage/misc/classcall_metaclass.c:1282)
  File
"/home/anonymous/sage-6.2/local/lib/python2.7/site-packages/sage/algebras/free_algebra_quotient.py",
line 74, in __classcall__
    tuple(new_mats), tuple(names))
  File "cachefunc.pyx", line 1077, in
sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:6486)
  File
"/home/anonymous/sage-6.2/local/lib/python2.7/site-packages/sage/structure/unique_representation.py",
line 1021, in __classcall__
    instance = typecall(cls, *args, **options)
  File "classcall_metaclass.pyx", line 518, in
sage.misc.classcall_metaclass.typecall
(sage/misc/classcall_metaclass.c:1665)
  File
"/home/anonymous/sage-6.2/local/lib/python2.7/site-packages/sage/algebras/free_algebra_quotient.py",
line 143, in __init__
    Algebra.__init__(self, R, names, normalize=True)
  File "ring.pyx", line 2135, in sage.rings.ring.Algebra.__init__
(sage/rings/ring.c:13719)
  File "ring.pyx", line 176, in sage.rings.ring.Ring.__init__
(sage/rings/ring.c:2370)
  File "parent.pyx", line 357, in sage.structure.parent.Parent.__init__
(sage/structure/parent.c:4393)
  File "parent_gens.pyx", line 332, in
sage.structure.parent_gens.ParentWithGens._assign_names
(sage/structure/parent_gens.c:3682)
  File "parent_gens.pyx", line 207, in
sage.structure.parent_gens.normalize_names
(sage/structure/parent_gens.c:2762)
  File "parent_gens.pyx", line 148, in
sage.structure.parent_gens._certify_names
(sage/structure/parent_gens.c:2325)
ValueError: first letter of variable name must be a letter


On Sat, Jul 26, 2014 at 10:17 PM, Nils Bruin <[email protected]> wrote:

> On Saturday, July 26, 2014 12:21:38 PM UTC-7, Stephen Kauffman wrote:
>>
>> TypeError: unsupported operand parent(s) for '*': 'Vector space of
>> dimension 16 over Rational Field' and 'Full MatrixSpace of 8 by 8 dense
>> matrices over Integer
>> Ring'
>>
>> The error that you're getting is because there's a dimension mismatch in
> the data you specify. "mons" is supposed to be a QQ-vector space basis of
> your algebra (16 dimensional in your case) and mats is supposed to give the
> linear transformations that multiplying by, resp., g0,g1,g2,g3 give. Thus,
> G0 is supposed to have as rows the elements
>
> [m*g0 for m in mons]
>
> written out as coordinates wrt. mons.
>
> In particular, "mats" should consist of 16x16 matrices. The constructor
> should have done a sanity check and given you an error earlier.
>
> In particular, this routine does NOT represent an algebra by a free ring
> modulo some ideal, but basically via structure constants (it saves you some
> work because you only have to specify the endomorphisms for the algebra
> generators of the free algebra, not for all the elements of mons).
>
> You can probably work out what the 4 16x16 matrices are quite easily.
>
>  --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sage-support.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to