Quantum error-correcting codes General and foundational topics mathematics