-
-
Notifications
You must be signed in to change notification settings - Fork 557
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
move crypto.mq.MPolynomialSystem somewhere else #1819
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Author: Martin Albrecht |
This comment has been minimized.
This comment has been minimized.
comment:5
There are a few minor doctest failures:
|
comment:6
The attached patch takes care of those doctest failures (except for the cmdline one which is not due to this patch) |
This comment has been minimized.
This comment has been minimized.
comment:8
Hi, can one of you two take a look at this patch? Cheers. |
comment:9
Btw. patchbot reports "Apply failed" because the patch is for 4.6.2.alpha4 instead of 4.6.1. |
comment:10
The whole rename looks reasonable to me. Having said that, I don't understand why we need both |
comment:11
Replying to @vbraun:
I disagree with merging the two. Ideal are not the same as sequences of polynomials: ideals may be infinite, but our polynomial sequences are always finite. Furthermore, some methods don't make sense on ideals but do make sense for sequences of polynomials such as interreduction and weil restriction. That we have those methods on ideals now is not proper, I'd say. Another example: set operations on ideals are different from set operations on polynomial sequences. |
comment:12
Mathematically, they are of course not the same. But as far as the implementation goes, both are lists of polynomials with some methods attached. I don't understand your comment about finiteness, you can't generate a non-finitely generated ideal in Sage, nor could you construct the requisite infinite polynomial ring to evade Hilberts basis theorem. Moreover, I don't understand your comment about the |
comment:13
Replying to @vbraun:
I meant infinite but finitely generated which is for example relevant for set operations on them. Another example is reduction: reduction modulo the ideal is different from reduction modulo a list of polynomials. The method |
comment:14
In principle, it would be nice if the ideal class could represent some basis-free abstract notion of ideal. In practice, this is not possible as all non-trivial computations are exponential complexity due to the need for Groebner bases. Even worse, the Groebner basis computation often depends on a judiciously chosen term ordering which cannot be automated. This is why all computer algebra programs that I am aware of treat ideals as sequences of polynomials, and not as ideals in the mathematical sense. Barring any breakthrough in algebra it is not feasible to do otherwise. |
comment:15
I should have mentioned that the decision to treat ideals as such abstract basis-free objects was made before I joined the project, probably inherited from Magma. For example, cf. the intro of http://sagemath.org/doc/reference/sage/crypto/mq/mpolynomialsystem.html (which I admit to have written, though). Thus, many methods of the multivariate polynomial ideal class do compute a Gröbner basis behind the scenes. Btw. since ideals know their ring and rings contain the term ordering in Sage, we can compute GBs without any additionally provided information. |
comment:16
I don't see that anywhere in the I am aware that the ideals implicitly contain the term order, though I found that a somewhat mixed blessing in #10708. |
comment:17
Replying to @vbraun:
Yep.
But the GB is cached and used for "interesting" operations.
This was the compromise reached to (a) keep the notion that ideals are different objects than their generators and to (b) still allow to query some information about the basis. We should have separated stuff back then perhaps. In any case, it was this method's name which sparked the debate we're having between William and myself.
I'd say: it attempts to present a view on ideals which abstracts away chosen bases but with varying success.
But e.g.
I wouldn't say this is because of the containment of term orderings but because of lack of care dealing with them? |
comment:18
Replying to @malb: We are having? Where? Or you were having at one point (and if yes, did you decide anything)? |
comment:19
Replying to @vbraun:
Sorry, my English failed me: William and I had a debate about whether ideal class == list of polynomials a few years back (October 2006). It was essentially about the same issue which we are discussion here now (I realised while double checking that it wasn't about Should we move this discussion to [sage-devel]? |
comment:20
Now that I see some of the bigger picture I'm happy with distinguishing ideals and polynomial sequences in the way you are implementing. I don't quite get how the multiple parts of the polynomial sequence are supposed to fit into this. The documentation should either stress that this is optional (and that, by default, there is only a unique part) or separate this functionality into a derived class. Some other suggestions, though that could easily be postponed to followup tickets:
|
comment:21
Replying to @vbraun:
Good idea.
Done.
This is now #10856.
Thinking about it: it's about the variety and thus can stay with the ideals. |
comment:22
The attached updated patch clarifies "parts" and the relation between ideals and polynomial sequences. |
Reviewer: Volker Braun |
comment:23
Ok looks good to me. Applies to Sage-4.6.2.rc1, too. |
comment:24
There is a Sphinx warning:
|
rebased to 4.6.2.alpha4 |
Attachment: trac_1819.patch.gz Attachment: trac_1819.patch.diff.gz diff of this version of the patch and the last version |
comment:25
The updated attached patch fixes the reported issue. However, I'm not setting this to positive review myself since I fixed a few more formating issues wrt to the reference manual. I also a diff between the current and the previous version of the patch for easy reviewing of those changes. |
comment:26
Looks good. Fixes the documentation warning. |
Merged: sage-4.7.alpha1 |
mq.MPolynomialSystem
is more general than its position in the tree suggests. I should be moved tosage.rings.polynomial.multi_polynomial_sequence
and used as a special case ofSequence
if the members are all multivariate polynomials.Depends on #10600
CC: @sagetrac-sbulygin @sagetrac-mhampton
Component: commutative algebra
Author: Martin Albrecht
Reviewer: Volker Braun
Merged: sage-4.7.alpha1
Issue created by migration from https://trac.sagemath.org/ticket/1819
The text was updated successfully, but these errors were encountered: