Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to simplify some expressions using assumptions and got an inconsistent behavior of Mathematica 9 when working with indexed variables. Consider

Assuming[Subscript[x,_] ∈ Reals, Refine[Im[Subscript[x, 10]]]]


Assuming[Subscript[x,_] ∈ Reals && Subscript[x,_] > 0, Refine[Sign[Subscript[x,10]]]]
Sign[Subscript[x, 10]]
Assuming[Subscript[x,10] > 0, Refine[Sign[Subscript[x,10]]]]


It appears that assumptions about an indexed variable being real work, but assumptions about the positivity of an indexed variable seem not to work.

share|improve this question
Have you tried Assuming[x \[Element] Reals, Refine[Im[x]]] Assuming[x \[Element] Reals && x > 0, Refine[Sign[x]]] Assuming[x > 0, Refine[Sign[x]]]? – Dr. belisarius Sep 11 '13 at 16:36
This works as expected. My problem is that assumptions on patterns can only work for domains. – yarchik Sep 12 '13 at 8:41

It is not Assuming that supports general patterns, but Element. This explains why

Assuming[x > 0, Refine@Sign[x]]

gives 1, while

Assuming[x[_] > 0, Refine@Sign[ x[1] ]]

does not.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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