I've submitted the proposals(PSF and NumFOCUS). Please confirm if it's visible to you.
Title: "SymPy: Improving assumptions in SymPy" Sudhanshu Mishra On Thu, Mar 26, 2015 at 4:28 AM, Sudhanshu Mishra <mrsu...@gmail.com> wrote: > Yeah. I'll submit them right now. I'll keep editing later. > I'm submitting my proposal to PSF and NumFOCUS only as it is related to > SymPy only. > > Sudhanshu Mishra > > On Thu, Mar 26, 2015 at 4:23 AM, Aaron Meurer <asmeu...@gmail.com> wrote: > >> Don't forget to submit your proposal in Melange. I don't see it there yet. >> >> Aaron Meurer >> >> On Wed, Mar 25, 2015 at 1:28 PM, Sudhanshu Mishra <mrsu...@gmail.com> >> wrote: >> > Thanks for pointing these out. I'm a bit slow here because of exams. >> > >> > >> >> >> >> You should also mention my approach from >> >> https://github.com/sympy/sympy/pull/7925 to make the new assumptions >> >> read the old assumptions (add handlers). Also, technically, >> >> >> >> >> https://github.com/sympy/sympy/pull/2508/files#diff-e0f95401c86d07d90903363122990de0R227 >> >> is a way of doing this as well. I'm undecided on which of these >> >> (including adding to global assumptions) is the best. If you have a >> >> preference, you should argue in the application why you think it's the >> >> best one. >> > >> > >> > Seems like a good plan. I've to say that, I also like this( >> > https://github.com/sympy/sympy/pull/7926 >> > ) >> > approach. >> > But it has a blocking issue of weakref issue in the cache. >> > I'm adding my views on these in my proposal. >> > >> >> In the execution >> >> section, can you give your impression of how >> >> long/hard each item would be (or maybe the timeline is the appropriate >> >> place to do this). >> > >> > >> > I though of discussing this with you before writing it. Anyway, I'll >> write >> > it according to me. We can always alter it later. >> > >> >> What is the difference between "Making API of old assumptions call new >> >> assumptions internally. The target would be to achieve minimum ripple >> >> effect throughout the codebase as the changes are made." and "Once the >> >> new assumption is ready to handle things, start modifying the codebase >> >> so that expr.is_* syntax calls the new assumptions."? >> > >> > >> > As I've been maintaining two copies of my proposal, this one got >> duplicated >> > while syncing. Sorry about that. I'll remove one of them. >> > >> >> Regarding the last bullet point, what exactly would the find and >> replace >> >> be? >> > >> > >> > Replacing the use of old assumptions with the new one. >> > >> > >> > Sudhanshu Mishra >> > >> > On Tue, Mar 24, 2015 at 9:43 PM, Aaron Meurer <asmeu...@gmail.com> >> wrote: >> >> >> >> You should also mention my approach from >> >> https://github.com/sympy/sympy/pull/7925 to make the new assumptions >> >> read the old assumptions (add handlers). Also, technically, >> >> >> >> >> https://github.com/sympy/sympy/pull/2508/files#diff-e0f95401c86d07d90903363122990de0R227 >> >> is a way of doing this as well. I'm undecided on which of these >> >> (including adding to global assumptions) is the best. If you have a >> >> preference, you should argue in the application why you think it's the >> >> best one. >> >> >> >> In the execution section, can you give your impression of how >> >> long/hard each item would be (or maybe the timeline is the appropriate >> >> place to do this). >> >> >> >> What is the difference between "Making API of old assumptions call new >> >> assumptions internally. The target would be to achieve minimum ripple >> >> effect throughout the codebase as the changes are made." and "Once the >> >> new assumption is ready to handle things, start modifying the codebase >> >> so that expr.is_* syntax calls the new assumptions."? >> >> >> >> Regarding the last bullet point, what exactly would the find and >> replace >> >> be? >> >> >> >> Aaron Meurer >> >> >> >> >> >> On Mon, Mar 23, 2015 at 7:52 PM, Sudhanshu Mishra <mrsu...@gmail.com> >> >> wrote: >> >> > I've updated the wiki. (Still far from complete) >> >> > >> >> > Please provide feedback on the matter so far. >> >> > >> >> > Places to look at: >> >> > >> >> > * The Project >> >> > * Execution >> >> > >> >> > >> >> > Sudhanshu Mishra >> >> > >> >> > On Sun, Mar 22, 2015 at 3:10 PM, Joachim Durchholz <j...@durchholz.org >> > >> >> > wrote: >> >> >> >> >> >> Am 22.03.2015 um 01:04 schrieb Aaron Meurer: >> >> >>> >> >> >>> On Sat, Mar 21, 2015 at 2:57 PM, Joachim Durchholz < >> j...@durchholz.org> >> >> >>> wrote: >> >> >>>> >> >> >>>> Am 21.03.2015 um 19:54 schrieb Aaron Meurer: >> >> >>>>>> >> >> >>>>>> >> >> >>>>>> I do not think the new assumptions should call the old >> assumptions. >> >> >>>>>> The >> >> >>>>>> new >> >> >>>>>> assumptions work by manipulating data structures, not by >> executing >> >> >>>>>> code. >> >> >>>>> >> >> >>>>> >> >> >>>>> They do execute code. See sympy.assumptions.handlers. >> >> >>>> >> >> >>>> >> >> >>>> >> >> >>>> Oh. I've been thinking that that was part of the old assumptions >> >> >>>> system. >> >> >>>> But what data is the SAT solver working with, then? >> >> >>> >> >> >>> >> >> >>> Currently, the known_facts >> >> >>> >> >> >>> >> >> >>> ( >> https://github.com/sympy/sympy/blob/5507c86e70f816f95f87b868615502a44cac5853/sympy/assumptions/ask.py#L329-L377 >> ). >> >> >>> In my branch, everything in that file. The known_facts are what I >> >> >>> like to call the "free" facts, in that they can be written down >> >> >>> completely free of the expression they apply to. For instance, >> >> >>> Implies(Q.positive, Q.real). Facts that depend on the kind of >> >> >>> expression they apply to (like, if all terms in an Add are >> positive, >> >> >>> then the whole expression is positive), aren't expressible >> >> >>> symbolically in the current new assumptions (but they are in 2508). >> >> >> >> >> >> >> >> >> Oh, I see. >> >> >> >> >> >> I'd want go full length towards making all rules into data >> structures, >> >> >> no >> >> >> code execution at all (except for generic code to apply rules, >> >> >> obviously). >> >> >> I can't even give a hard reason for that, except that I know from >> >> >> experience that data is far easier to analyze and do something new >> and >> >> >> initially unexpected than code where this is essentially impossible. >> >> >> Also, >> >> >> all solvers that I know work that way. >> >> >> >> >> >> I don't know whether that would be a wise approach for SymPy, or the >> >> >> right >> >> >> thing to do right now. >> >> >> I'm slightly worried that we might want to go full length to >> data-based >> >> >> solving after we get the SAT solver, and then have *three* solvers >> to >> >> >> deal >> >> >> with (because the old assumptions system won't die that quickly), >> so I >> >> >> still >> >> >> see a small advantage to going that direction right now. >> >> >> Downside of "right now" would be "who's going to do it" and "that's >> >> >> going >> >> >> to be even more work"... so I don't know enough to have a real >> position >> >> >> about what's the best way forward. >> >> >> >> >> >> -- >> >> >> You received this message because you are subscribed to the Google >> >> >> Groups >> >> >> "sympy" group. >> >> >> To unsubscribe from this group and stop receiving emails from it, >> send >> >> >> an >> >> >> email to sympy+unsubscr...@googlegroups.com. >> >> >> To post to this group, send email to sympy@googlegroups.com. >> >> >> Visit this group at http://groups.google.com/group/sympy. >> >> >> To view this discussion on the web visit >> >> >> >> >> >> >> https://groups.google.com/d/msgid/sympy/550E8E1E.3060701%40durchholz.org. >> >> >> >> >> >> For more options, visit https://groups.google.com/d/optout. >> >> > >> >> > >> >> > -- >> >> > You received this message because you are subscribed to the Google >> >> > Groups >> >> > "sympy" group. >> >> > To unsubscribe from this group and stop receiving emails from it, >> send >> >> > an >> >> > email to sympy+unsubscr...@googlegroups.com. >> >> > To post to this group, send email to sympy@googlegroups.com. >> >> > Visit this group at http://groups.google.com/group/sympy. >> >> > To view this discussion on the web visit >> >> > >> >> > >> https://groups.google.com/d/msgid/sympy/CAFW_KCS-B%3D2_bs%2BKJakG3fBucmPVB%2BsFfyYffF8G-RfWvndy%2Bg%40mail.gmail.com >> . >> >> > >> >> > For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> >> You received this message because you are subscribed to the Google >> Groups >> >> "sympy" group. >> >> To unsubscribe from this group and stop receiving emails from it, send >> an >> >> email to sympy+unsubscr...@googlegroups.com. >> >> To post to this group, send email to sympy@googlegroups.com. >> >> Visit this group at http://groups.google.com/group/sympy. >> >> To view this discussion on the web visit >> >> >> https://groups.google.com/d/msgid/sympy/CAKgW%3D6LRH3j2ofpbg_PvH0Qf0qoRKJdebk2mL0%2BXEjj5x5vMfg%40mail.gmail.com >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > >> > >> > -- >> > You received this message because you are subscribed to the Google >> Groups >> > "sympy" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an >> > email to sympy+unsubscr...@googlegroups.com. >> > To post to this group, send email to sympy@googlegroups.com. >> > Visit this group at http://groups.google.com/group/sympy. >> > To view this discussion on the web visit >> > >> https://groups.google.com/d/msgid/sympy/CAFW_KCRYCx379a3YW82QyJF8gEMnKgfABSVEuiGi3izj%3Dx9ELQ%40mail.gmail.com >> . >> > >> > For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sympy+unsubscr...@googlegroups.com. >> To post to this group, send email to sympy@googlegroups.com. >> Visit this group at http://groups.google.com/group/sympy. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/sympy/CAKgW%3D6%2Br6CtjEQ7j59%3D5d_TiaQ7Q_%2BOn%3DwFpGX6WE4SSg8AdaQ%40mail.gmail.com >> . >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAFW_KCQaURSuFkheAySeqUrhw%3DRdy6Uqtr%3DVvY45zq%2B0PbzRmw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.