#14990: Implement algebraic closures of finite fields
-------------------------------------+-------------------------------------
       Reporter:  pbruin             |        Owner:
           Type:  enhancement        |       Status:  needs_work
       Priority:  major              |    Milestone:  sage-6.2
      Component:  algebra            |   Resolution:
       Keywords:  finite field       |    Merged in:
  algebraic closure                  |    Reviewers:
        Authors:  Peter Bruin        |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:  u/pbruin/14990     |  33f982f1acbf61cf08897e6a46ee23bb14e78e1e
   Dependencies:  #14958, #13214     |     Stopgaps:
-------------------------------------+-------------------------------------
Changes (by vdelecroix):

 * status:  needs_review => needs_work


Comment:

 Hello,

 Thanks Peter and Luca for the lights.

 1) For the comparison of `AlgebraicClosureFiniteField` you rely on the
 equality in `PseudoConwayLattice`... which is not exactly what you want.
 It compares the nodes which is something dynamical by definition. We have
 for example
 {{{
 sage: P1 = PseudoConwayLattice(5, use_database=False)
 sage: P2 = PseudoConwayLattice(5, use_database=False)
 sage: P1 == P2
 True
 sage: _ = P1.polynomial(1)
 sage: P1 == P2     # hum!?
 False
 sage: _ = P2.polynomial(1)
 sage: P1 == P2     # hum hum!!??
 True
 }}}
 It is fine for the lattices but not for the fields. The simplest fix would
 be
 {{{
 class AlgebraicClosureFiniteField_pseudo_conway:
    ...
    def __cmp___(self, other):
       ...
       return self._pseudo_conway_lattice is other._pseudo_conway_lattice
 }}}

 2) It makes sense to have something more flexible like
 {{{
 sage: AC = AlgebraicClosureFiniteField_pseudo_conway
 sage: AC(GF(3), lattice=my_pc_lattice)
 }}}
 where "my_pc_lattice" is an instance of a subclass or
 `PseudoConwayLattice` or something with the same specifications (i.e. at
 least a method `polynomial`). That way we can already have two
 implementations of the algebraic closure (calling `PseudoConwayLattice`
 with the option `use_database=True` or `use_database=False`).

 3) In the example above, there is some redundancy as the pseudo-Conway
 lattice already knows the finite field... so it would be nice if the
 pseudo-Conway lattice implements a method `base_ring` that returns the
 finite field it is based on.

 4) It would also make sense in `PseudoConwayLattice` to have a method
 `associated_finite_field_algebraic_closure` (with a better name if
 possible).

 Vincent

 PS: will see later for the unique representation problems.

--
Ticket URL: <http://trac.sagemath.org/ticket/14990#comment:65>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to