# "Abstract" linear algebra

 0 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) V==W 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? asked Sep 06 '10 marco 73 ● 1 ● 11

 2 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) True sage: 3 == Mod(3,5) True sage: Mod(3,5) == Mod(3,7) False sage: Q = PolynomialRing(QQ,'t') sage: 3 == Q(3) True sage: 3 in Q True sage: R = PolynomialRing(RR,'w,v') sage: 3 == R(3) True sage: Q(3) == R(3) False  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". posted Sep 07 '10 niles 3429 ● 5 ● 41 ● 94 http://nilesjohnson.net/ 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 (Sep 07 '10) 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 (Sep 08 '10)

[hide preview]