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.

  • $\begingroup$ 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]]]? $\endgroup$ – Dr. belisarius Sep 11 '13 at 16:36
  • 1
    $\begingroup$ This works as expected. My problem is that assumptions on patterns can only work for domains. $\endgroup$ – 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.

|improve this answer|||||
  • 1
    $\begingroup$ 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... $\endgroup$ – Chris K Apr 11 '19 at 15:43
  • $\begingroup$ @ChrisK That's not obvious at all, but reading under Details on the Element doc page makes it clear why it's so. $\endgroup$ – Szabolcs Apr 11 '19 at 19:09

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.