code: def _check_kraus_ops(n, kraus_ops):
      
      for k in kraus_ops:
          if not np.shape(k) == (2 ** n, 2 ** n):
              raise ValueError(
                  "Kraus operators for {0} qubits must have shape {1}x{1}: {2}".format(n, 2 ** n, k))
  
      kdk_sum = sum(np.transpose(k).conjugate().dot(k) for k in kraus_ops)
      if not np.allclose(kdk_sum, np.eye(2 ** n), atol=1e-3):
          raise ValueError(
              "Kraus operator not correctly normalized: sum_j K_j^*K_j == {}".format(kdk_sum))
docs: Verify that the Kraus operators are of the correct shape and satisfy the correct normalization.
  
      :param int n: Number of qubits
      :param list|tuple kraus_ops: The Kraus operators as numpy.ndarrays.