2

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.

m_goldberg
  • 107,779
  • 16
  • 103
  • 257
yarchik
  • 18,202
  • 2
  • 28
  • 66
  • 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
  • 1
    This works as expected. My problem is that assumptions on patterns can only work for domains. – yarchik Sep 12 '13 at 08:41

1 Answers1

2

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.

Szabolcs
  • 234,956
  • 30
  • 623
  • 1,263
  • 1
    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