#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     |  f9162dbae92551a67aea7a489d96591141fdebc8
   Dependencies:  #14958, #13214     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by pbruin):

 Hi Vincent,
 > Either I badly explained something or there is something contradictory
 in your argument.
 Or I badly explained something...
 > First of all you said
 >
 > > The main use for it [the equality] is in deciding whether
 > > to allow coercion from one `AlgebraicClosureFiniteField`
 > > to another.
 >
 > Fine. But that was my point, equality is broken
 I don't see in what sense you can really say that equality is broken,
 since it is not designed to be a mathematically meaningful property in
 this case.  I think we should use the most restrictive notion possible
 that still allows non-identical fields to compare equal.  (In this way we
 stay as close to unique representation as possible, in the sense that two
 non-identical objects only compare equal under very precise
 circumstances.)
 > So depending in which stage of the computation you are, there will or
 will not be a coercion between your fields! Do you agree that there is a
 problem here?
 No, I don't think there is a problem.  Nobody forces us to have all kinds
 of coercions that could possibly make sense.  We should encourage the user
 to do all computations in the ''same'' field; making `algebraic_closure()`
 a cached method (as in one of the two new commits) is meant to help with
 this.  As far as I'm concerned, coercion between equal but non-identical
 fields is only useful to make the "sanity check" `loads(dumps(x)) == x`
 work.  I think it would be a mistake to make efforts to make different
 instances "synchronized" in some way, e.g. by keeping coercion once the
 underlying pseudo-Conway lattices of two instances start to diverge.
 > > we do definitely want to check "only" equality, not identity [of PCL].
 >
 > Here it depends on what you mean by "equality". If it is equality as
 mathematical object I do agree if it is equality as Python comparison I
 strongly disagree.
 In this context I really think that the only sensible notion of equality
 is to compare the finite sublattices that have already been computed.  I
 understand that this does not fit the idea of "equality as mathematical
 object", but this is out of necessity, because an
 `AlgebraicClosureFiniteField_pseudo_conway` object simply doesn't define a
 unique mathematical object.  There is no guarantee that two partially
 computed PCL's will evolve in the same way.  Think of a situation where
 the user pickles one instance, loads it in a newer Sage version where the
 algorithm for computing pseudo-Conway polynomials has changed, and
 computes another instance of "the same" field in that Sage version.  Then
 as a consequence of the non-uniqueness of pseudo-Conway polynomials, the
 results may disagree even if the commands used to create them were exactly
 the same.
 > The Python equality of PCL currently is: "two PCL are equal if they
 agree on their already made computations". And, as Jean-Pierre mentioned,
 it is not the purpose of that ticket to improve that.
 I think it is not even desirable in principle to improve this, because
 PCL's are non-unique by design.  If you want a mathematically well-defined
 notion of equality (that is preserved under future extension of the
 lattices), you have to stick to (non-pseudo) Conway polynomials or use
 other canonical lattices of finite fields.

--
Ticket URL: <http://trac.sagemath.org/ticket/14990#comment:72>
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