3
$\begingroup$

I have this code (it's just a snippet to exemplify my issue):

Assuming[Element[a, Reals],Conjugate[a]]

Which results in the output:

Conjugate[a]

Which I find problematic, as the conjugation operation is clearly redundant here in light of the assumption a being real. Is there a way to make this evaluate to simply a?

$\endgroup$
  • 3
    $\begingroup$ Assuming only alters what Simplify, Reduce et al do. It doesn't affect ordinary evaluation. $\endgroup$ – Patrick Stevens Dec 19 '15 at 23:07
  • $\begingroup$ Refine is more or less the basic "evaluate-with-assumptions" function. In[240]:= Assuming[Element[a, Reals], Refine[Conjugate[a]]] Out[240]= a. More generally, only those functions that take an Assumptions argument will react also to an ambient Assuming block. Refine is such a function, whereas Conjugate is not. $\endgroup$ – Daniel Lichtblau Dec 20 '15 at 20:50
3
$\begingroup$

Because Conjugate[a] gives the complex conjugate of the complex number a

Assuming[Element[a, Reals], Conjugate[a]] // ComplexExpand

a

Or

Conjugate[a] // Conjugate

a

Or

 Conjugate[a + 0 I] // Conjugate

a

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ wow, the latter two confuses me slightly $\endgroup$ – Benjamin Márkus Dec 19 '15 at 23:18
  • 1
    $\begingroup$ Read Conjugate[a] as Conjugate[a + 0 I] and it becomes clearer $\endgroup$ – eldo Dec 19 '15 at 23:22
  • 2
    $\begingroup$ The latter two are simply Conjugate[Conjugate[a]] which of course is just a $\endgroup$ – bill s Dec 19 '15 at 23:26

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.