How can one simplify an expression by assuming that one of the variables is equal to zero? For instance, while Simplify[%,a>0] gives the desired output, Simplify[%,a=0] produces the following error:

$Assumptions::bass: 0 is not a well-formed assumption. >>

2 Answers 2


You can use /. (ReplaceAll) :

% /. a->0

Simplify[%,a=0] produces an error ( this expression a = 0 cannot be used as an assumption) because it means just setting the value zero to the variable a, in another form Set[ a, 0], see Set.

In some cases, when there are more variables which depends on another ones you may need the repeated replacement for applying rules repeatedly until the expression no longer changes, then you would rather use ReplaceRepeated, (//.) e.g. :

% //. {a -> b + 1, b -> 2}

In Simplify[%,a>0] the symbol > is a logical operator. In Simplify[%,a=0] the symbol = is not a logical operator. You must use the logical operator Equal, so Simplify[%,a==0] works fine! Example:

(a + b)^2 // Expand

a^2 + 2 a b + b^2

Simplify[%, a == 0] 



the right answer.



  • $\begingroup$ Thanks Orleo, that makes sense. $\endgroup$
    – user001
    Mar 14, 2012 at 16:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.