# Why doesn't a real variable's conjugate evaluate to itself?

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?

• Assuming only alters what Simplify, Reduce et al do. It doesn't affect ordinary evaluation. – Patrick Stevens Dec 19 '15 at 23:07
• 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. – Daniel Lichtblau Dec 20 '15 at 20:50

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

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