Hello,

That's nice to see some Riemannian geometry to come in ! Before I'm playing with the patch and be involved into details, I have some general preliminary remarks

0) The description of this patch (on this webpage) should contains few words about what you intend to developp. I wrote few lines of description that you can modify.

1) **patch errors**

- the patch trac_10123_final_allfiles_done.patch does not contain the modification of "setup.py" which is needed to take into account modification of Sage sources
- I get a minor error for patching index.rst in the doc with sage-4.6.2

2) **name logic**

- There is a directory sage/geometry/ which is the directory intended for... geometry. It would be better to put all Riemannian geometry inside.
- "riemann" is a very ambiguous name as there is the Riemaniann geometry which deals with manifolds with metric, Riemann surface which are complex curves, Riemann hypothesis, ... perhaps riemannian_manifolds (repository are always plural) is safer and more comprehensive.
- the vector (resp. matrix) manipulation for simplifications of coordinates should be put elsewhere because it has nothing to do with riemannian geometry. The ideal way to do is to implement a new class for vectors on symbolic ring (look at the repertory sage/modules). But that job is a patch in its own. The simplest way I see is that you move this file as sage/modules/vector_symbolic_ring.py and inside its preambule write a word about your needs (ie simplification of coordinates) and make an explicit link to your file. That way, when somebody else comes in to implement the class for vector on symbolic rings he will modify your functions on Riemannian manifolds accordingly.

3) **about a class for generic manifolds:** I do not think the class GenericManifold? would be interesting. If anyway you intend to add it, it should be put in another file in another place. If you start such generic stuff, your ParametrizedSurface3D should derive from something like EmbeddedRiemannianManifold?. And if so, you have to implement a class for morphisms between RiemannianManifolds?... it will be painful !

4) In your file you mention "PatchOfCoordinates?" without any reference to the corresponding file ! I think it would be very useful to use it right now in order to be able to have a parametrization defined on a restricted domain... In a soon future it can be used to write differential equations on the surface itself.