Toda's theorem says that the polynomial time hierarchy is contained in $P^{\#P}$, the class of problems solvable by polynomial time oracle Turing machines with access to an oracle in #P, which is the class of functions that return the number of satisfying assignments of nondeterministic machines clocked in polynomial time.
While I can agree with every step of the proofs I've seen (e.g here or in Arora Barak's Computational Complexity), I'm struggling with keeping in mind everything that goes on. One of the things that sort of bother me is the fact that the proofs resort to the class $\oplus P$, which, from what I've searched, is always how the proof is conducted.
Do you know of a proof that avoids going to $\oplus P$? If not for Toda's complete theorem, at least for some simplified version, like showing that $\Sigma_2^p\subseteq P^{\#P}$? For NP this is easy, since knowing how many accepting configurations there are allows me, in particular, to know if there are accepting configurations. The interesting question I think thus begins in the second level.