I believe all that David was saying was that our LatticeQuotients
should probably inherit from a new FreeModule_ZZ_quotient class
instead of from AbelianGroups, since the latter are not fully
developed sage objects yet...
On Apr 28, 11:29 am, "John Cremona" <[EMAIL PROTECTED]> wrote:
> David, I don't think you understood my suggestion. We are talking
> about groups A which are finitely-generated and torsion-free, so
> abstractly isomorphic to Z^n, together with a suitable blinear
> function on AxA taking values in Z or Q, and I wish to include R
> -valued forms.
>
> John
>
> 2008/4/28 David Joyner <[EMAIL PROTECTED]>:
>
>
>
> > On Mon, Apr 28, 2008 at 2:02 PM, Robert Miller <[EMAIL PROTECTED]> wrote:
>
> > > SEP
>
> > > Implement Lattices over ZZ, with pairings into QQ or ZZ
>
> > > 0. (Maybe) Implement a FreeModule_ZZ_quotient class. This would also
> > > allow for constructing abelian groups in the sort of canonical way
> > > (something people have been asking for...)
>
> > > 1. Implement a LatticeModule class, which will inherit from
> > > FreeModule_generic_pid: instances of LatticeModule will inherit an
> > > underlying free ZZ module and make use of the optional
> > > inner_product_matrix property.
>
> > > This shouldn't just be a free ZZ module with inner product matrix,
> > > since we want specific functions for computing the dual lattice, etc.
> > > which are more appropriate in a Lattice class.
> > > a. Attributes will include
> > > - is_euclidean (whether the inner product matrix is symmetric,
> > > rather than skew-symmetric)
> > > - is_integral (whether the image of the pairing is in ZZ or QQ)
> > > - discriminant (the determinant of the matrix [<a_i,a_j>], where
> > > {a_i} is a basis for the module). A lattice is nondegenerate if its
> > > discriminant is nonvanishing.
> > > b. Euclidean lattices also have the attributes:
> > > - signature
> > > - even/odd (whether <a,a> \in 2 ZZ for all a)
> > > c. Use L.<a,b> for the pairing induced on module elements by the
> > > inner product matrix.
>
> > > 2. Implement a SubLatticeModule class, which will inherit from
> > > FreeModule_submodule_with_basis_pid and from Lattice, but override
> > > L.<a,b> for the inner product.
> > > a. Function is_primitive (a sublattice M of a lattice L is
> > > primitive if L/M is a free ZZ-module)
> > > b. Functions to get parent lattice and sublattice as LatticeModule
> > > objects.
>
> > > 3. Implement a LatticeQuotient class (for now, just full sublattices,
> > > i.e., finite quotients).
> > > -- Inherit from FreeModule_ZZ_quotient?
> > > -- Inherit from AbelianGroup?
>
> > -1 is my vote on this. Infinite AbelianGroup instances are not
> > completely implemented.
>
> > > -- 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? )
> > > a. Attributes will include a quadratic_form_matrix with entries
> > > defined over QQ/ZZ or QQ/2ZZ
>
> > > 4. Create a dual_lattice function for integral euclidean lattices,
> > > with optional "embedding" argument
>
> > > 5. Implement a dual_quotient function for integral euclidean lattices
> > > which returns a LatticeQuotient.
>
> > > 6. Implement isomorphism tests for indefinite integral euclidean
> > > lattices.
>
> > > -- Robert Miller, Andrey Novoseltsev, Ursula Whitcher
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---