@Joachim, maybe we are just speaking about different things:

## by assumptions I mean: "x=Symbol('x', real=True)" and co

I think it is self-evident that this is necessary for forcing
solve(x**2+1) to return []. If you disagree we can discuss it, but it
is not the subject of this thread.


## by "explicit about this" I mean: see the previous comment.

The user is expected to set real=True for this to worki in this way.


## by ""sympy guessing assumption" I mean:

You said that for a geometer the results should be real (for example).
How will sympy know this, if the assumption is not explicitly inputed
by the user?


## by abuse of notation I mean what mathematicians usually mean:

>From wikipedia: "In mathematics, abuse of notation occurs when an
author uses a mathematical notation in a way that is not formally
correct but that seems likely to simplify the exposition or suggest
the correct intuition".

I said that making the sympy codebase treat sets of one element and
the element itself in the same manner will be an implementation of an
"abuse of notation" that
    - is not that wildly used
    - in no way makes the work *in a CAS* easier, even if on paper it
permits you to skip the step "the solution to be considered is the
single element of the set of all solutions".


## about rigor an my comment about your comparison with Principia Mathematica:

When you teach a human, he is aware of the context of the subject and
some of the assumptions are implicit. We already have many implicit
assumptions in sympy (symbols for example are usually considered to
belong to the extended complex plane).

The way to introduce a computer to the context is to use the
assumption system (values are real/positive etc.). Otherwise you will
have so many implicit assumptions that the scope of the CAS will be
limited.

I considered your comparison with Principia extreme, because you
compared the need for assumptions (x being real, etc.) to the extreme
rigor with which the authors of Principia considered even the most
minute detail. Assuming that x is real or a complex or that a set of
one element is the element itself is on much higher level. This higher
level does not permit us to be implicit about it (by implicit I mean,
do something without being explicitly asked by the user).


## about "the others do it" not being a valid argument

Yes, you are right, it is not a sufficient argument. However it was
not the only argument.


## Final remark

Most of the current discussion is about the input to different sympy
functions (should they treat a single value and a set of one element
in the same manner). As I have already mentioned, this was not my
question. A discussion about this can be found here
http://code.google.com/p/sympy/issues/detail?id=537.

I was asking about a more consistent *output* of certain functions.
Moreover, this change to more consistent output will not be very
disruptive as in most cases the user is expected to check for multiple
types of outputs. After the proposed change only one of his if_else
branches will be executed.

-- 
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.

Reply via email to