Complexity Theory - Why can't you use diagonalization to seperate classes A and B when an orcale O exists under which A=B?
In order to explain this, you need to understand what is meant by "diagonalization argument".

In this context, we mean a proof that  only treats Turing machines as black boxes, i.e. only uses the fact that we can encode Turing machines as strings and treat them as inputs to other machines. This gives rise to the possibility of simulation, a machine $M$ can simulate some machine $M'$ without paying too much in space/time.

You can now observe that such proofs immediately generalize to the oracle model (encoding and simulation are possible), so if you could write such a proof for $A\neq B$, it would also work in the oracle model, showing $A^\mathcal{O}\neq B^{\mathcal{O}}$.

For further reading you could go to "Computational Complexity: A Modern Approach", by Arora &amp; Barak. They have a section on limits of diagonalization.