Tomemos R=Z y M=Z/2Z . Tenemos M⊗R(0)=M⊗Q=0 y M⊗R(2)=Z/2Z⊗Z/2Z=Z/2Z Dado que por definición el rango en un primo p es dimRp/pRp M⊗Rp/pRp aquí se ve que el rango en (0) y en (2) son 0 y 1 respectivamente. Así que tu prueba no funciona si supones que M localmente finita.
Pero si supones M localmente finito libre, y consideremos dos primos p⊂q entonces si Mq=Rnq entonces Mp=(Mq)pRq obtienes Mp=(Rq)npRq=Rnp por lo que el rango en cada punto p y q son iguales.
Significa que la función de rango viene determinada por su valor en los primos mínimos de R . Si R es un dominio, entonces es constante en cuanto M se supone que es libre finito en cada punto del espectro de R . Si R sólo tiene un número finito de primos mínimos, la función de rango sigue siendo localmente constante, ¿verdad? No hace falta ninguna otra hipótesis.
Editar : Si miro de cerca su prueba, creo que está utilizando la definición de la función de rango dada en el libro de Matsumura Teoría de anillos conmutativos que es M⊗K dado sólo para un dominio R con campo de fracción K . Esta medida el número máximo de elementos independientes de M que no son necesariamente generadores para dominios generales. En ese caso tu demostración es correcta pero no tiene sentido buscar en otros puntos del espectro. Como has notado siempre tienes Mp⊗K=M⊗K lo que significa que siempre miras al punto (0) sur p . Si quiere ver lo que ocurre localmente en p debe utilizar el campo de residuos en p , Rp/pRp . La definición de función de rango que di es medir el conjunto mínimo de generadores (para ver eso usa el lema de Nakayama en el primo máximo del espectro o esta otra pregunta aquí https://mathoverflow.net/a/30024/3333 ) que no tienen razón de ser del mismo cardinal en todas partes ...
Yo también tuve problemas al principio con todas las definiciones, así que conseguí la siguiente aclaración aquí https://mathoverflow.net/a/153681/3333