On 4/28/08, Robert Miller <[EMAIL PROTECTED]> wrote: > 3. Implement a LatticeQuotient class (for now, just full sublattices, > i.e., finite quotients). > -- Inherit from FreeModule_ZZ_quotient? > -- Inherit from AbelianGroup? > -- Inherit from nothing? > ( The question here is what the underlying structure for a > LatticeQuotient should actually be. The important thing is how will > someone want to access elements of a LatticeQuotient? )
An example of use (a recurring one): L a lattice, M a sublattice of (noncyclic) index p^2. One wants to take the quotient L/M, and iterate (one by one or maybe using some structure), over all nontrivial subgroups (of order p), lift generators of those subgroups to obtain sublattices M + v\ZZ (all proper sublattices between L and M. This happens all the time, e.g. in working with quaternion algebra ideals/orders to construct modular forms (we use quite a lot of this for level p^2 constructions). Sometimes all you want is ONE element of L/M of order p (i.e. just a nontrivial element). A sensible way to represent a LatticeQuotient is by SNF --- that's one of the suggested ways to represent finitely generated abelian groups. Maybe that's handled by FreeModule_ZZ_quotient? Also, a special case is when M is the radical (or a submodule) --- i.e. the quadratic form is identically 0 in M, which means that L/M is actually a quadratic lattice itself. One important (for me) example: a quaternion algebra (order) together with the discriminant form D(x) = T(x)^2 - 4 N(x), which has the scalar part as radical, and the quotient as a ternary quadratic space (lattice). > a. Attributes will include a quadratic_form_matrix with entries > defined over QQ/ZZ or QQ/2ZZ Mmm... what is special about 2? Suppose <a,a> \in p ZZ for all a in M, then the quadratic form on L/M has values in QQ/p ZZ. And if <a,a>=0 for all a in M, then the values are on QQ (this is just what I said above about quotients by the radical). Gonzalo --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---