I support John's view that real-valued lattice need also to be taken into account. Minkowski lattices of number fields and Mordell-Weil groups are prime examples.
Some people also like to embed lattices in R^n equipped with the standard Euclidean inner product. As such the coordinates are non-rational even though the module L is (isomorphic to) Z^n (or Z^m for m < n). These could be handled better than Magma, in which the problem of recognizing a vector from R^n in L is not handled well. There need to be good constructors for elements of L both from approximations in R^n and in terms of an integer coordinates relative to the basis of L. I think the proposed definition of is_euclidean is not obviously the natural one. I would expect this to return True iff the inner product was symmetric and positive definite, i.e. is embeddable in Euclidean space R^n (with the standard inner product). The syntax is_symmetric should return True if the inner product is symmetric. I also support the extension (relative to Magma) to (symmetric) lattices with isotropic elements and arbitrary signature. The treatment of skew-symmetric or general non-symmetric inner products might be handled by a different class. The need for a separate LatticeModule class is not completely obvious. Shouldn't the dual of a free module ever return anything but the dual with respect to the inner product, embedded in L \otimes_Z R? Probably the lattice label should apply only to symmetric inner products, and there should be subclasses for positive definite lattices. Note that even this dual constructor, for non real-valued inner products, requires that we have Z-modules embedded in an ambient space with respect to non-rational coordinates. There was also the previously raised issue of Hermitian modules, but these are yet another beast, which need to be defined with respect to a ring with fixed involution. Again there should be exact versions (e.g. over the Gaussian or Eisenstein integers, a cyclotomic ring/field, or a number ring/field) and inexact versions over the complex numbers. For real-valued lattices or non-exact Hermitian lattices, it becomes clear that the ambient vector space places an important role and should be a fixed attribute. I don't think that there should be a sublattice class. I think there should be an ambient vector space, and if two lattices lie in the same ambient space they can be added or intersected to get new lattices, and tested for inclusion. Note that the terminology QuadraticModule (for LatticeModule) and QuadraticSpace (for the ambient space) are also possible. These classes should interact well with Jon Hanke's classes for quadratic forms. --David --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] 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 -~----------~----~----~----~------~----~------~--~---
