Hi Martin et al., Magma doesn't support rank zero polynomial rings and this is a real pain when we were trying to implement schemes. I could give you examples which break the schemes code, but I made no progress in convincing Allan Steel to support this boundary case. On the other hand if the polynomial rings are designed correctly from the outset, and the documentation and test code checks the design, then the support problem will be minimized. It is better to get the design right from the outset rather than trying to hack around it.
A similar problem we had in Magma was support for degree one number fields, which have been supported for a number of years now. Two obvious problems arise when trying to write generic code and these rings are not supported (e.g. returning the base ring for polynomials or the rationals for a degree one extension of the rationals): 1) the depth of recursion for calls to base ring drops, and 2) the type of the returned object is different (or wrong). Boundary cases do often break code and require support, but if the boundary cases are not supported then a lot of other code will break. For a robust generic system the boundary cases need to be well-supported even if they seem trivial. William's example of matrices with zero rows or columns is another good example; their importance should not be underestimated in a generic system. To give a trivial example, take Proj(K[x]), an zero dimensional scheme with one rational point (1) over K (or any field extension). An affine patch has coordinate ring isomorphic to K, but we need a rank zero polynomial ring to be able to represent it as a polynomial ring. Otherwise schemes code will have to test everywhere for this and similar boundary cases. --David --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---