4
$\begingroup$

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.

$\endgroup$
2
  • $\begingroup$ @Nasser Why? I plan to use many expression using the same assumptions, so I decided to assume them globally... $\endgroup$
    – altroware
    Aug 2 '13 at 17:02
  • $\begingroup$ 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. $\endgroup$
    – m_goldberg
    Aug 2 '13 at 22:36
4
$\begingroup$

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.

$\endgroup$

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