# Simplify Map on a list of lists

I have the following example list of matrices:

a = {p Table[RandomComplex[], {2}, {2}], q Table[RandomComplex[], {2}, {2}]}


where p and q are real variables. I would like to take the ConjugateTranspose to each element of the list. This can be achieved using the Map function:

Assuming[{p, q} \[Element] Reals, Simplify@ConjugateTranspose /@ hbasisMats]


However, this does not apply the real assumption requirement. How to edit the above to achieve this?

• Ttry: Simplify[ConjugateTranspose /@ a, {p, q} \[Element] Reals] Commented Nov 21, 2022 at 15:29
• @DanielHuber, that appears to work as expected. Is it since the assumption is incorporated in the Simplify? Is this the preferred approach to specify Assumptions?
– Sid
Commented Nov 21, 2022 at 15:36
• Look up Simplify in the help. Simplify takes assumptions from its second argument and not from \$Assumptions. Commented Nov 21, 2022 at 17:00

You are mistaken the precedence of the operators. See here.

The way you are writing your expression is not what you expect. You are asking Mathematica to Simplify the function ConjugateTranspose, not your expression.

Assuming[
Element[
Alternatives[p, q]
, Reals
],
Map[
Simplify[ConjugateTranspose]
, a
]
]


Probably you mean this

Assuming[{p, q} ∈ Reals, Simplify[ConjugateTranspose /@ a]]


or

Assuming[{p, q} ∈ Reals, Simplify@Map[ConjugateTranspose, a]]


or

Assuming[{p, q} ∈ Reals, Simplify@*ConjugateTranspose /@ a]