{"action":"opened","issue":{"url":"https://api.github.com/repos/sympy/sympy/issues/10560","repository_url":"https://api.github.com/repos/sympy/sympy","labels_url":"https://api.github.com/repos/sympy/sympy/issues/10560/labels{/name}","comments_url":"https://api.github.com/repos/sympy/sympy/issues/10560/comments","events_url":"https://api.github.com/repos/sympy/sympy/issues/10560/events","html_url":"https://github.com/sympy/sympy/issues/10560","id":132533813,"number":10560,"title":"Is simpify evaluate flag being recursively passed through sympy core functions (Add/Mul/Pow)?","user":{"login":"leerobert","id":6231418,"avatar_url":"https://avatars.githubusercontent.com/u/6231418?v=3","gravatar_id":"","url":"https://api.github.com/users/leerobert","html_url":"https://github.com/leerobert","followers_url":"https://api.github.com/users/leerobert/followers","following_url":"https://api.github.com/users/leerobert/following{/other_user}","gists_url":"https://api.github.com/users/leerobert/gists{/gist_id}","starred_url":"https://api.github.com/users/leerobert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leerobert/subscriptions","organizations_url":"https://api.github.com/users/leerobert/orgs","repos_url":"https://api.github.com/users/leerobert/repos","events_url":"https://api.github.com/users/leerobert/events{/privacy}","received_events_url":"https://api.github.com/users/leerobert/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-02-09T21:03:22Z","updated_at":"2016-02-09T21:03:22Z","closed_at":null,"body":"I have noticed when trying to explicitly write out solution steps sympy attempts to simplify the expression unless the evaluate flag is set to false. I'm fine with that expected behavior. \r\n\r\nI seem to get some weird behavior depending on whether the any terms are negative:\r\n\r\n    >>> sympify('9.2*(4.1+4*3)', evaluate=False)\r\n    9.2*(4.1 + 3*4)\r\n    >>> sympify('9.2*(4.1-4*3)', evaluate=False)\r\n    9.2*(-12 + 4.1)\r\n    >>> sympify('9.2*(4.1+(-4)*3)', evaluate=False)\r\n    9.2*(-12 + 4.1)\r\n    >>> sympify('9.2*(4.1+(-1)*2*3)', evaluate=False)\r\n    9.2*(-2*3 + 4.1)\r\n\r\nExplicitly writing out the Mul core function also seems to give a similar result unless the evaluate flag is also included:\r\n\r\n    >>> sympify('9.2*(4.1-4+Mul(2,3))', evaluate=False)\r\n    9.2*(-4 + 4.1 + 6)\r\n    >>> sympify('9.2*(4.1-4+Mul(2,3, evaluate=False))', evaluate=False)\r\n    9.2*(-4 + 4.1 + 2*3)\r\n"}}