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?
-- 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
-~----------~----~----~----~------~----~------~--~---