I was wondering how one might check whether matrix inequalities are true/false the same way it can be done for scalar variables (like in this post).
Say I want to test the obvious inequality
A,B are positive definite dxd matrices. Prove that Tr(A B)>=0
I would do something like
conditions = {A
\!\(\*UnderscriptBox[\(\[VectorGreater]\),
TemplateBox[{"2"},
"SemidefiniteConeList"]]\) 0 , B
\!\(\*UnderscriptBox[\(\[VectorGreater]\),
TemplateBox[{"2"},
"SemidefiniteConeList"]]\) 0 , (A | B) \[Element]
Matrices[{d, d}, Reals, Symmetric[{1, 2}]]}
Simplify[Reduce[
Flatten[{Tr[A.B] >= 0, conditions}], {A, B}], conditions]
But Reduce
doesn't seem able to resolve matrix domains. How can such inequalities be tested?
condition
is just the code needed to impose positive definiteness on the matrices. I know it looks ugly, but it's just a translation of the mathematical problem above. $\endgroup$ – luigi Sep 25 '20 at 22:19