Aaron, I've updated(Added more description about execution and added timeline) my proposal <https://github.com/sympy/sympy/wiki/GSoC-2015-Application-Sudhanshu-Mishra:-Assumptions> on wiki as well as on melange. Please have a look and let me know if it looks good.
Sudhanshu Mishra. On Thu, Mar 26, 2015 at 5:12 AM, Aaron Meurer <asmeu...@gmail.com> wrote: > Yep, I see them. You should be able to edit them up to the deadline. > > Aaron Meurer > > On Wed, Mar 25, 2015 at 6:24 PM, Sudhanshu Mishra <mrsu...@gmail.com> > wrote: > > 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. > > -- > 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%3D6KfXFCw22PJfc6RZig5ydr2reTR%2BpweR1MeBEX6SrZs9w%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_KCTc03b0U9Edm%3Dh2qMQUgGu8%2BALMnrwFidn-Fh0PiJUwbw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.