Jon's vision of lattices would include the ones I mentioned before
(f.g. but not necessarily free R-modules where R is a Dedekind Domain,
with one or more embeddings into RR^n or CC^n).

In another direction: Jon, to what extent could your quadratic form
class be extended to binary forms of higher degree?

This seems to be quite a common situation:  we have some kind of
mathematical object (in this case, binary quadratic form) which has
its own very rich structure and set of specialised methods, but which
is also a special case of various *different* other objects: in this
case, quadratic forms in more variables, or higher degree binary
forms, and so on.

If we make the implementation too general we risk losing efficiency
for the important special cases;  if not general enough we risk code
duplication.

This happens all the time regarding QQ as a special kind of number
field, for example.

John

2008/4/29 [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
>
>  I agree with David -- I'd like to see separate classes for various
>  lattice-type structures, including:
>
>     - Symmetric bilinear lattices
>     - Skew-symmetric bilinear lattices
>     - Quadratic lattices
>     - Hermitian lattices
>
>  For me the main point of a lattice class would deal with the issue of
>  lattices defined over a domain R which is not a PID by representing it
>  in ZZ basis and imposing extra structure of being closed under the R-
>  action.  Each of these classes can be defined individually over a
>  commutative ring (called a ___ lattice), over a PID (called a ___
>  form), and over a field (called a ___ space).  For lattices it seems
>  like each structure should be coded individually, though ___ spaces
>  can inherit from ___ forms with some overloading and flags.
>
>  I'm not sure if the QuadraticForm class I've been working on will fill
>  many of the needs above, since for most purposes a quadratic form is
>  equivalent to a symmetric bilinear form.  It still has some testing
>  and documentation to go, but I'll try to get something out soon.  This
>  basically internally represents the coefficients of a quadratic form,
>  but can produce an associated Gram/Hessian matrix if desired, compute
>  basic invariants, and do some local density arithmetic.
>  It also can call the Nebe/Kohel implementation of the genus symbols,
>  some features of Souvigner's fast automorphism code, and have a slow
>  version of the (unproven!) Conway-Sloane mass formula.
>
>  I'm really excited by this discussion, since it would be great to have
>  a uniform framework to build these additional structures on!  Thanks,
>
>  --Jon
>   =)
>
>
>
>
>  On Apr 28, 10:52 pm, David Kohel <[EMAIL PROTECTED]> wrote:
>  > 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 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to