Hi everyone, Since the deadline is approaching, I have submitted the current version of my proposal at *GSoC'*s website.
Please take a look at my proposal at wiki <https://github.com/sympy/sympy/wiki/GSoC-2019-Proposal-Shubham-Kumar-Jha-:-Improving-Assumptions.>. I would be happy to get further suggestions from you so that I can iterate over it. Thanks, Shubham On Fri, Apr 5, 2019 at 3:10 PM <skjha...@gmail.com> wrote: > Hi Aaron, > > I have made updates to the initial draft as suggested. Kindly take a look > at it. > > Thanks, > Shubham > > On Tuesday, April 2, 2019 at 6:13:52 AM UTC+5:30, skjh...@gmail.com wrote: >> >> Hi Aaron, >> >> Thanks for replying. I am still researching on SMT solvers and possible >> approaches of implementing one such solver. I will update my proposal very >> soon. >> >> Shubham >> >> On Tuesday, April 2, 2019 at 1:14:59 AM UTC+5:30, Aaron Meurer wrote: >>> >>> On Thu, Mar 14, 2019 at 9:57 PM <skjh...@gmail.com> wrote: >>> > >>> > >>> > I would like if mentors give suggestions about the course of action I >>> should take and the improvements I should make in the proposal. The project >>> is huge and for the past few days, I have been going to and from between >>> core modules and assumptions module. I have some questions : >>> > >>> > Why do we need to have two different sets of assumptions? >>> > >>> > This is ambiguous. Just Consider >>> > >>> > >>> > >>> > >>> > >>> > >>> oo.is_real >>> > True >>> > >>> ask(Q.real(oo)) >>> > False >>> > >>> >>> > >>> > Also since the new assumptions are sometimes calling the old >>> assumptions, the above can create more difficulties. Isn't the idea for new >>> assumptions has been to scrape off the old assumptions? >>> >>> Yes, the consistency is an issue. I think main problem is whether >>> real/positive/etc. include oo or not. There has been a lot of >>> discussion about this (see https://github.com/sympy/sympy/pull/2538). >>> It will need to be cleaned up before we can truly merge the two. >>> >>> I think the old assumptions syntax should be kept, because it is >>> convenient, and has been around for a long time. But some things are >>> only expressible with the new assumptions. There are also things like >>> the matrix expressions which exclusively use the new assumptions, and >>> they should be kept like that. >>> >>> > >>> > My present plan for my course of actions is: >>> > >>> > Improve SAT solvers speed:- I am currently researching for SAT solving >>> algorithms and since SymPy is a closed system (i.e. the Inference rules >>> would be fixed) we can have a pre-compiled Inference Network ( or such a >>> Data structure) which would provide speed to SymPy's SAT solvers. >>> > Old assumptions would call the new assumptions. >>> >>> I think we need to significantly improve the performance of the new >>> assumptions before this can happen. Right now old assumptions are >>> called all over the place in SymPy, and if they got slower it would >>> affect the performance of virtually every SymPy operation. >>> >>> Regarding your application, I would add more details about how SMT >>> would work, as well as about the relational assumptions, particularly >>> how you would be able to do useful inferences with relational >>> assumptions. >>> >>> Aaron Meurer >>> >>> > >>> > But old and new assumptions differ. Should they be left as they are? >>> Please suggest. >>> > >>> > Thanks. >>> > >>> > On Monday, March 11, 2019 at 11:37:43 AM UTC+5:30, skjh...@gmail.com >>> wrote: >>> >> >>> >> Hello everyone, >>> >> >>> >> I am Shubham Kumar Jha, a pre-final year Undergraduate student in >>> C.S.E. from NIT Agartala (India). I am participating in GSoC 2019 under >>> SymPy. I went through the ideas page of GSoC 2019 and found the Assumptions >>> project to be both appealing and exciting to me. I want to work on it. I >>> have gone through much of the literature on Assumptions and still reading >>> them. The project is huge and I still need to make a clear note of the >>> amount of work done and not done. But following are some tasks I would want >>> to work on: >>> >> >>> >> Add support for Relational expressions: Currently, Assumptions >>> doesn't support relational expressions. I would extend the capabilities of >>> Assumptions. It would also help in other parts of the project. >>> >> Convert handlers to their relational equivalents: While working on >>> some handlers I found handlers in particular are not very powerful or >>> expandable. With added support for Relational expressions, we can convert >>> handlers to their relational equivalents. In this way, we can save much of >>> the predicates since inferences on Relationals would be enough for most of >>> them. Also, it would make them easily expandable. >>> >> Increase the capabilities of SAT solver: Aaron Meurer(@asmeurer) has >>> already done so much work in it (which I still need to go through). I would >>> try to extend its capabilities and speed it up. Currently, I am having >>> Logical Inference as one of my subjects this semester which heavily >>> utilizes CLIPS. I would look into CLIPS or other better alternatives if I >>> can mimic their functionalities. >>> >> Work on global assumptions: As suggested by Sudhanshu >>> Mishra(@debugger22) we can add assumptions into the global scope with their >>> scope numbers and purge them during garbage collection. I support the >>> approach with context manager but I think the addition of this capability >>> will also be good. >>> >> >>> >> I am still going through the works done in Assumptions and would >>> draft a refined proposal over this and the suggestions I receive. Also, I >>> would create the timeline accordingly. I know the project is very huge >>> therefore I would like if some mentors can guide me into specifics that >>> heavily require work now. >>> >> >>> >> I have no commitments for this summer and I am able to devote my full >>> time to SymPy. I have been a part of the community for the past 3-4 months >>> and I understand SymPy's codebase pretty well. Hence, I don't need time to >>> get familiarize with it. Also, before the beginning of the coding period, I >>> would have gone through Assumptions mechanism. I would start working on my >>> project from the very beginning. Since the project is huge my main target >>> would be to bring the assumptions upfront so more work would be done in >>> this field. Also, I won't stop working after GSoC. I will complete whatever >>> I would start. >>> >> >>> >> Thank You, >>> >> Shubham Kumar Jha >>> >> @ShubhamKJha >>> > >>> > -- >>> > 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 sy...@googlegroups.com. >>> > To post to this group, send email to sy...@googlegroups.com. >>> > Visit this group at https://groups.google.com/group/sympy. >>> > To view this discussion on the web visit >>> https://groups.google.com/d/msgid/sympy/176c7a47-b700-480d-b0a5-cf316af7edf7%40googlegroups.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 https://groups.google.com/group/sympy. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/071b2ffb-e216-4bed-8302-5b3b5884f768%40googlegroups.com > <https://groups.google.com/d/msgid/sympy/071b2ffb-e216-4bed-8302-5b3b5884f768%40googlegroups.com?utm_medium=email&utm_source=footer> > . > 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 https://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAE4GFi%3D46VqHt02CRe-VpW-Ss_k5_EjeuCrBaHEZYyHEZ-Z9Jw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.