I'm trying to understand magic states and how they circumvent the Eastin-Knill theorem. I understand that these magic states are used to implement non-Clifford gates but how are these magic states generated in the first place? From Bravyi and Kitaev's paper, my understanding is that one needs to be able to prepare certain error-prone states that cannot be obtain from just Clifford gates. In papers about magic state gadgets, it's always implied that you can create magic state like $|T\rangle$ for example, but how are these states generated in the first place?
- Do you still need non-Clifford $T$-gates, even if faulty, to create them? Or is there some way to use only Clifford gates to create these magic states?
- If one can generate these states without any non-Clifford gate, how is this possible without violating the Eastin-Knill theorem?
- If this is possible, doesn't that mean that we can efficiently simulate this on classical computers since we only need Clifford gates? Or is the overhead so large that magic states are not efficiently implementable on classical computers?