Ask Your Question

"Abstract" linear algebra

asked 2010-09-06 18:28:29 -0500

marco gravatar image

This is more of a general question about whether we can do with Sage what we normally do as mathematicians on paper and in our minds. For example, if I do

V = VectorSpace(QQ,4)

W = VectorSpace(QQ,4)


I get: True. This is quite disturbing - while V and W are isomorphic they should not be identical. As I understand it, a vectorspace over QQ for Sage is just QQ^4, that's it. In other words, the Linear algebra package, while excellent, is not really about vector spaces but rather about arrays of numbers.

Any thoughts on this desire of mine to have a genuine "coordinate-free" approach?

edit retag flag offensive close merge delete

1 answer

Sort by » oldest newest most voted

answered 2010-09-07 04:31:05 -0500

niles gravatar image

I like coordinate-free linear algebra, but your issue here may simply be that == is not the "is identical" operator. Consider the following examples:

sage: 3 == Mod(3,7)
sage: 3 == Mod(3,5)
sage: Mod(3,5) == Mod(3,7)
sage: Q = PolynomialRing(QQ,'t')
sage: 3 == Q(3)
sage: 3 in Q
sage: R = PolynomialRing(RR,'w,v')
sage: 3 == R(3)
sage: Q(3) == R(3)

Given this behavior, I don't find it particularly surprising that V == W returns True above!

Of course, id(V) == id(W) also returns True, which is a little more surprising (to me). And the free module documentation includes the following note:

Note: In Sage it is the case that there is only one dense and one sparse free ambient module of rank n over R.

So it seems it's not even _possible_ to make two separate copies of a free module with a given rank. That seems a little limiting, which is your original point, I guess :) Maybe it's more accurate to think of VectorSpace as short for "VectorSpaceWithCanonicalBasis".

edit flag offensive delete link more


Thanks for the comments! Given that they went to the trouble of implementing categories, this seems particularly strange. But I think this "problem" is common to all CAS.There must be a reference out there which works out the fundamentals for a CAS with higher fidelity.

marco gravatar imagemarco ( 2010-09-07 05:41:48 -0500 )edit

This behavior of "VectorSpace" -- which is *just* shorthand for K^n -- is very much by design. It's the same as what Magma does. Also, all this " trouble of implementing categories" was done 4 years after VectorSpace was implemented. The combinatorics code maybe has other more general modules.

William Stein gravatar imageWilliam Stein ( 2010-09-08 04:32:40 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2010-09-06 18:28:29 -0500

Seen: 301 times

Last updated: Sep 07 '10