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


0

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


1

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

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

• Just a note: seems like Element only supports patterns with domains such as Reals, not regions such as Interval. Not directly relevant to this question, but in case someone finds this later on... – Chris K Apr 11 '19 at 15:43
• @ChrisK That's not obvious at all, but reading under Details on the Element doc page makes it clear why it's so. – Szabolcs Apr 11 '19 at 19:09