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

This question already has an answer here:

I don't really understand the behaviour and the usage of $Assumption. For instance, when I set $Assumptions = λ > 0, I expect that

TrueQ[λ > 0]

or at least

 Reduce[ TrueQ[λ > 0]]

return True, but both return False.

Then I was wondering how to make more assumptions:

$Assumptions = λ > 0 && c > 0 && a < 0 && λ ∈ Reals && a ∈ Reals && c ∈ Reals && 
    n ∈ Integers && n > 0 

Now, if I try to Reduce the following,

Reduce[Product[1 + (λ + c)/f[x],x] <= (a ((λ + c)/λ))^n]

The condition (a (c + λ))/λ)^n ∈ Reals is not obvious, and

TrueQ[((a (c + λ))/λ)^n ∈ Reals]
(* False *)

I read the documentation but I don't understand the problem.

share|improve this question

marked as duplicate by Jens, m_goldberg, Michael E2, R. M. Aug 3 '13 at 1:21

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

@Nasser Why? I plan to use many expression using the same assumptions, so I decided to assume them globally... – altroware Aug 2 '13 at 17:02
Only a small number of Mathematica functions make use of assumptions. You need to read this documentation page, which gives the list and will give you a better understanding of when and how Mathematica makes use of assumptions. – m_goldberg Aug 2 '13 at 22:36
up vote 3 down vote accepted

Perhaps you misunderstood the usage of TrueQ. It doesn't make use of assumptions, and neither does Reduce. Replace it by Simplify everywhere to make use of the $Assumptions:

$Assumptions = λ > 0

(* ==> λ > 0 *)

Simplify[λ > 0]

(* ==> True *)

$Assumptions = λ > 0 && c > 0 && 
  a < 0 && λ \[Element] Reals && a \[Element] Reals && 
  c \[Element] Reals && n \[Element] Integers && n > 0;

Simplify[((a (c + λ))/λ)^n \[Element] Reals]

(* ==> True *)

The larger expression

Reduce[Product[1 + (λ + c)/f[x],x] <= (a ((λ + c)/λ))^n]

can't be simplified because neither f[x] nor n on the left-hand side of the equation are defined. n is probably meant to be the number of terms in the product, but you're using Product without limits.

share|improve this answer

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