Am 15.03.2015 um 15:56 schrieb Aaditya Nair:
> I have updated my proposal
> <
https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fsympy%2Fsympy%2Fwiki%2FGSoC-2015-Application-Aaditya-M-Nair-%253A-Improve-the-assumptions-system.&sa=D&sntz=1&usg=AFQjCNGfaK8fPWMa5ZDncLWmQ4CxMPOJhg> and
> added a timeline for the project.
> Can you please review it ?
> 1. Remove incompatibilities between the old and new assumptions.
> [...] This project aims to correct that by adding a compatibility
> layer between the old and the new assumptions.
Is such a compatibility layer needed?
From previous discussion, I have been under the impression that it is
not, but then I haven't followed it very closely.
> 2. Since we ultimately want to shift to the new assumptions system.
> Make a few core components ( symbol, Add, Mul, etc ) use the new
> assumptions system and expand gradually.
Sounds like a good plan to me.
BTW I think this alone could well be enough work for a full GSoC. Making
changes of this kind involves not just review, but also writing
documentation and unit tests. These can easily double or triple the
total amount of work (but are *very* important).
> 3. instead of,
>>> facts = Q.positive(x) & Q.real(x) & Q.commutative(x)
>>> facts &= Q.positive(y) & Q.real(y) & Q.commutative(y)
>>> facts &= Q.positive(z) & Q.real(z) & Q.commutative(z)
> we could do something as
>>> factset = Q.positive & Q.real & Q.commutative
>>> facts=factset.apply(x, y, z)
That's a very cool idea.
If requires some changes to the API of Q, and probably some background
in higher-order functions.
Can you say a bit about how Q's API would look for that? I.e. a list of
functions that need to be made (or modified), and what each would do.
I'm not sure that the new assumptions system is ready for this addition
right now.
> 4. The present assumptions system creates a lot of bugs like #8873
> which are fixed through non-desirable hacks. The new system will
> provide a better and elegant solutions to them.
Move that from "Plan" to "Overview".
It's not something that you do, it's something that will happen.
> 5. (Adding examples to docstrings)
This could well be worth it.
Timeline Week-2
I suspect that making the old system interpret new assumptions isn't
going to work very well.
Logic inference algorithms tend to break down if you work with just a
subset of a body of known facts.
Overall, I suspect you're trying to do too much in too little time.
I may be wrong :-)
Just my thoughts. I bet others will have other things to say.
Regards,
Jo