1
$\begingroup$

Consider the following code:

Simplify[Conjugate[Inactive[cn][n, nAvg]], 
 Assumptions -> Inactive[cn][__] > 0]

If you run it, it will not simplify, i.e recognize that because Inactive[cn][n,nAvg] is supposed to be positive there is no need to put the conjugate. However, running this script returns:

Conjugate[Inactive[cn][n, nAvg]]
  • Why isn't it working ?
  • How can I make it work ?
$\endgroup$
3
  • 1
    $\begingroup$ @CarlWoll To be honest, I don't know. The answer is way too high level for my knowledge of mathematica. $\endgroup$
    – StarBucK
    Commented May 10, 2021 at 18:15
  • $\begingroup$ The problem is not Inactive, but the use of a pattern. If you used f instead of Inactive[cn], the same thing would happen. It is a common misconception that patterns may be used in Assumptions, but this is not the case. Assumptions -> f[_] > 0 does not in fact tell Mathematica that f is positive for any argument. However, patterns can be used in Element. The following works: Simplify[Conjugate[f[x]], Assumptions -> Element[f[_], Reals]]. Note that this is a feature of Element, not of Assumptions. $\endgroup$
    – Szabolcs
    Commented May 17, 2021 at 9:30
  • $\begingroup$ You can use this approach if it is sufficient for your application to say that something is real instead of saying that it is positive. I hope this helps. $\endgroup$
    – Szabolcs
    Commented May 17, 2021 at 9:30

1 Answer 1

0
$\begingroup$

You may try instead to use a Rule such as

Conjugate[Inactive[cn][n, nAvg]] /. 
   Conjugate[Inactive[cn][x__]] -> Inactive[cn][x]

and then Simplify.

$\endgroup$

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