I've been working on a refactoring of the old assumptions. The first part was to replace the ._assumptions dict with a dedicated class (subclassing dict). This brings interesting conceptual clarifications and code simplifications.
In particular, it's now clear to me that "assumptions" are used in two rather different ways. For Symbols, assumptions do actually represent assumptions that are part of the object's definition. For all other objects, "assumptions" are a smart property cache, that allows some properties to be computed lazily and efficiently, and these "assumptions" should therefore never be explicitly set, not even in the constructors. I guess that the next steps are to make the split more explicit and to stop pickling property caches (which would solve http://code.google.com/p/sympy/issues/detail?id=2587 ). My branch is here: https://github.com/rlamy/sympy/tree/new-core and I'd be happy to have some feedback. -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
