# free module changes dimensions after base change

Hi, I have a free module of rank 1 over the integers

sage: M

Free module of degree 1 and rank 1 over Integer Ring
Echelon basis matrix:
[2]


However, when I base change it to the field with two elements, it changes dimension!

sage: M.change_ring(GF(2))

Vector space of degree 1 and dimension 0 over Finite Field of size 2
Basis matrix:
[]


What's going on?

P.S.: What does Sage mean by "degree"?

edit retag close merge delete

Sort by ยป oldest newest most voted

The degree means the dimension of the ambient module. For example, the vector space spanned by (2,0,2) inside R^3 is one dimensional but is of degree 3.

In your case, you have a module over the integers, perhaps spanned by (2) inside of a rank one free Z-module. When you reduce mod 2, the spanning vector becomes (0), so the resulting module over GF(2) is zero dimensional.

more

So, change_ring applies to the ambient module and not the module itself? That's messed up! Is there a way to base change the module itself then?

( 2018-05-21 18:15:27 -0600 )edit

Note that this behavior of change_ring is described it its documentation. Anyway, mathematically, what are you trying to accomplish?

( 2018-05-22 09:49:09 -0600 )edit

I have a homomorphism between two free modules and what to base change it to a finite field.

( 2018-05-23 09:07:45 -0600 )edit

Mathematically, if you have the times 2 map between two free modules and you change to GF(2), that map should become zero. That is what Sage's behavior is modeling.

( 2018-05-23 09:56:10 -0600 )edit

The map that I want to base change is not multiplication by two. In fact, trying to base change the map in question throws an exception, precisely because the dimension of the codomain changes.

( 2018-05-24 11:47:26 -0600 )edit

## Stats

Seen: 63 times

Last updated: May 21 '18