tr(ab) = tr(ba)?

It is well known that given two Hilbert-Schmidt operators $a$ and $b$ on a Hilbert space $H$, their product is trace class and $tr(ab)=tr(ba)$. A similar result holds for $a$ bounded and $b$ trace class.

The following attractive statement, however, is false:

Non-theorem: Let $a$ and $b$ be bounded operators on $H$. If $ab$ is trace class , then $ba$ is trace class and $tr(ab)=tr(ba)$.

The counterexample is $a=\pmatrix{0&0&0\\0&0&1\\0&0&0}\otimes 1_{\ell^2(\mathbb N)}$, $b=\pmatrix{0&1&0\\0&0&0\\0&0&0}\otimes 1_{\ell^2(\mathbb N)}$.

I'm guessing that the following is also false, but I can't find a counterexample:

Non-theorem?: Let $a$ and $b$ be two bounded operators on $H$. If $ab$ and $ba$ are trace class, then $tr(ab)=tr(ba)$.

-

EDIT: Bill Johnson has pointed out a gap in my initial answer. It seems that bridging this gap is just as difficult as proving that $tr(AB)=tr(BA)$. Below I give two other proofs of this equality. The flawed proof is also reproduced at the end.

Proof 1 (alluded to by Bill in his comment to Gjergji's answer): It's well-known that $AB$ and $BA$ have the same nonzero eigenvalues (with the same multiplicities). Lidskii's trace formula then implies that $tr(AB)=tr(BA)$. QED.

Proof 2: This proof doesn't use Lidskii's formula. It's taken from

Laurie, Nordgren, Radjavi, Rosenthal, On triangularization of algebras of operators. Reine Angew. Math. 327 (1981), 143–155.

We'll need to rely on the fact that $tr(ST)=tr(TS)$ if one of $S$ and $T$ is trace class.

Let $A=UP$ be the polar decomposition of $A$. Then $PB=U^\ast AB$ is trace class. But then one knows that $tr(UPB)=tr(PBU)$. So it suffices to prove that $tr(PBU)=tr(BUP)$. Therefore, we might as well assume that $A$ is positive. In this case we can let $P_n$ denote the spectral projection of $A$ onto $[1/n,\|A\|]$. Then $\lim_{n\to\infty} tr(P_nAB) = tr(AB)$. Now, for $T$ trace class $Q$ a projection we have $tr(QT)=tr(QTQ)=tr(TQ)$, whence $tr(P_n AB) = tr(P_n A P_n B P_n)$ since $P_n$ and $A$ commute. But the contraction $P_n B P_n$ of $B$ is trace class, for $P_n AB$ is trace class and the restriction of $P_n A$ to the range of $P_n$ is invertible. Thus $tr(P_n A P_n B P_n) = tr(P_n B P_n A) = tr(BA P_n)$ and consequently $$tr(AB) = \lim_{n\to\infty} tr(P_n AB) = \lim_{n\to\infty} tr(BAP_n) = tr(BA),$$ as desired.

Finally, here is the flawed proof.

Let $\{e_i\}$ be an orthonormal basis for $H$. Then $$tr(AB) = \sum_i \langle ABe_i, e_i \rangle = \sum_i \langle Be_i, A^\ast e_i \rangle.$$ But $\langle Be_i,A^\ast e_i \rangle = \sum_j \langle Be_i, e_j\rangle \overline{\langle A^\ast e_i, e_j\rangle}$, and therefore \begin{align} tr(AB) &= \sum_i \sum_j \langle Be_i, e_j\rangle \overline{\langle A^\ast e_i, e_j\rangle} \\ &= \sum_i \sum_j \overline{\langle B^\ast e_j, e_i\rangle} \langle A e_j, e_i \rangle \\ &= \sum_j \sum_i \overline{\langle B^\ast e_j, e_i\rangle} \langle A e_j, e_i \rangle \qquad (???) \\ &= \sum_j \langle Ae_j, B^\ast e_j \rangle \\ &= \sum_j \langle BAe_j, e_j \rangle \\ &= tr(BA). \end{align}

-
Why is the change of order of summation OK? –  Bill Johnson Sep 27 '11 at 0:16
@Bill Johnson, that's where Faisal is using that ab and ba are both trace class, I think. –  Gjergji Zaimi Sep 27 '11 at 1:15
I assumed as much, Gjergi, but I don't see a proof, hence my question. –  Bill Johnson Sep 27 '11 at 13:31
Hmmm... Yes, it's not clear why the order of summation is interchangeable. The proof I used to convince myself that the double sum was absolutely convergent is flawed. Thanks for pointing this out, Bill. I'll amend my answer. –  Faisal Sep 27 '11 at 15:32

This follows from proposition 7.3 in "Trace-class operators and commutators" by N.J. Kalton. The theorem actually proves something stronger, that for $AB-BA$, if you arrange the eigenvalues with algebraic multiplicity so that $|\lambda_n|\geq |\lambda_{n+1}|$, then $$\sum_{n=1}^{\infty}\frac{\lambda_1+\cdots+\lambda_{n}}{n}<\infty$$ which implies trace zero, but the converse is false.

-
For a more difficult proof, quote Lidskii's trace formula (the trace of a trace class operator is equal to the sum of its eigenvalues). –  Bill Johnson Sep 26 '11 at 11:54