You'll need to give more details on what your code is doing. The code you posted works as expected. Both x == y and x is y should be False because Symbols compare by name. It is possible the bug is in your own code somewhere, as it would be difficult for y to "become" x exactly, but it is also possible you stumbled on a bug in SymPy itself. Without an example that reproduces the issue, it is impossible to say.
Aaron Meurer On Wed, Jun 3, 2020 at 2:09 PM Jason Moore <moorepa...@gmail.com> wrote: > > Actually, I don't think your code is valid. You create two distinctly > different symbols: > > In [1]: import sympy as sm > > In [2]: x = sm.Symbol('x') > > In [3]: y = sm.Symbol('y') > > In [4]: x == y > Out[4]: False > > In [5]: x is y > Out[5]: False > > In [6]: x + y > Out[6]: x + y > > Jason > moorepants.info > +01 530-601-9791 > > > On Wed, Jun 3, 2020 at 1:06 PM Jason Moore <moorepa...@gmail.com> wrote: >> >> Yes, this is intentional. It is really no different than this: >> >> In [1]: a = 1 >> >> In [2]: b = 1 >> >> In [3]: type(a) >> Out[3]: int >> >> In [4]: type(b) >> Out[4]: int >> >> In [5]: a == b >> Out[5]: True >> >> In [6]: a is b >> Out[6]: True >> >> Jason >> moorepants.info >> +01 530-601-9791 >> >> >> On Wed, Jun 3, 2020 at 12:53 PM James Bateman <james.bate...@gmail.com> >> wrote: >>> >>> I've just discovered a bug in my code which boiled down to the following, >>> where a symbol "y" was given the same SymPy name as an existing symbol. >>> >>> import sympy as sp >>> x = sp.Symbol('x') >>> y = sp.Symbol('y') >>> >>> x == y # True >>> x is y # True; expected False >>> x + y # 2*x; expected x + x (which would have made the bug in my code more >>> apparent) >>> >>> The behaviour here is very surprising to me. I would have expected x and y >>> to be different Python objects with __repr__ methods which just so happen >>> to return the same string. Instead, x and y are apparently different >>> Python names for the same object (x is y). >>> >>> Is this intentional? I think I must misunderstand some deep design choice >>> in SymPy, and I can't express my confusion well enough to Google it. >>> Please help! >>> >>> >>> -- >>> 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 view this discussion on the web visit >>> https://groups.google.com/d/msgid/sympy/f0084d3b-db98-43cb-becd-020a368aec87%40googlegroups.com. > > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/CAP7f1Ag-%3D%2BT2xX1frdphHhe8G6SBcWX1qvje1WVPNDHehU19Eg%40mail.gmail.com. -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAKgW%3D6KXb2DXLga5y6fnMqzTZZcpJHNMMW-dmuariQ7DwJWNnw%40mail.gmail.com.