It seems to me that the issue might be that Sage doesn't understand
how Hom(ZZ^3, ZZ^1) is a (free) module over ZZ. If you could coerce it
into that category, then the object H = Hom(ZZ^3, ZZ^1) would have
generators induced by those of ZZ^3 and ZZ^1 and then specifying a map
in Hom( ZZ^3, Hom( ZZ^3, ZZ^1 ) ) would go something like:

{{{
H = Hom( ZZ^3, ZZ^1 )
HH = Hom( ZZ^3, H )
f = H(0)

phi = HH( [f, f, f] )
}}}

but this doesn't work, I get:
AttributeError: 'FreeModuleHomspace_with_category' object has no
attribute 'coordinates'

I tried some other things.. one would like to define an isomorphism
between ZZ^3 and Hom( ZZ^3, ZZ^1 ), but the obvious thing (to me)
doesn't work:

{{{
M = ZZ^3
H = Hom( ZZ^3, ZZ^1 )
phi = M.hom( [ H([1,0,0]), H([0,1,0]), H([0,0,1]) ], H )
}}}

raises: AttributeError: 'FreeModuleHomspace_with_category' object has
no attribute 'coordinates'

Again, I guess the ZZ-module structure on H is necessary in order to
define a morphism by specifying where the generators of M go.


On Nov 18, 5:29 pm, Johannes <dajo.m...@web.de> wrote:
> Hi,
> I'm looking for a way to create a map from ZZ^3 to Hom(ZZ^3,Z) mapping
> an element x to x :-> <x,-> where <-,-> is the default scalarproduct.
> i know i could do this by vertormultiplikation, but i want to know if
> it's possible to do with the Hom function.
>
> I tried this one:
> H = Hom(ZZ^3,Hom(ZZ^3,ZZ)) #this works
> #creating a very simple homom. fails:
> f = H([0,0,0])
> ---------------------------------------------------------------------------
> AttributeError                            Traceback (most recent call last)
>
> /home/j_schn14/<ipython console> in <module>()
>
> /opt/sage-4.6/local/lib/python2.6/site-packages/sage/modules/free_module_ho 
> mspace.pyc
> in __call__(self, A, check)
>     126             C = self.codomain()
>     127             try:
> --> 128                 v = [C(a) for a in A]
>     129                 A = matrix.matrix([C.coordinates(a) for a in v])
>
>     130             except TypeError:
>
> /opt/sage-4.6/local/lib/python2.6/site-packages/sage/modules/free_module_ho 
> mspace.pyc
> in __call__(self, A, check)
>     130             except TypeError:
>     131                 pass
> --> 132         return free_module_morphism.FreeModuleMorphism(self, A)
>     133
>     134     def _matrix_space(self):
>
> /opt/sage-4.6/local/lib/python2.6/site-packages/sage/modules/free_module_mo 
> rphism.pyc
> in __init__(self, parent, A)
>      81         if isinstance(A, matrix_morphism.MatrixMorphism):
>      82             A = A.matrix()
> ---> 83         A = parent._matrix_space()(A)
>      84         matrix_morphism.MatrixMorphism.__init__(self, parent, A)
>      85
>
> /opt/sage-4.6/local/lib/python2.6/site-packages/sage/modules/free_module_ho 
> mspace.pyc
> in _matrix_space(self)
>     150         except AttributeError:
>     151             R = self.domain().base_ring()
> --> 152             M = matrix.MatrixSpace(R, self.domain().rank(),
> self.codomain().rank())
>     153             self.__matrix_space = M
>     154             return M
>
> is this a bug, or something which is just not implemented?
> It fails if i use QQ instead of ZZ too.
>
> greatz Johannes

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to