I am trying to solve a system of four matrix equations using Reduce function. The system arises in Quantum Information. The system is solvable with a solution i.e. phi, but the following code gives false to the presence of solution. Can you suggest where am I going wrong and what is to be done to fix this?
Following is the full code I am using:
H = {{1, 1}, {1, -1}};
H2 = {{1, 1}, {I, -I}};
II = {{1, 0}, {0, 1}};
B1 = KroneckerProduct[II, H];
B2 = KroneckerProduct[II, H2];
B3 = KroneckerProduct[H,II];
B4 = KroneckerProduct[H2,II];
{B1 // MatrixForm, B2 // MatrixForm, B3 // MatrixForm, B4 // MatrixForm}
randomPureState[n_] := RandomComplex[{-1 - I, 1 + I}, n] // Normalize
singleStateDensityMatrix[state_] := Outer[Times, state, Conjugate[state]]
randomPureDensityMatrix[n_] := singleStateDensityMatrix@randomPureState@n
phi = randomPureState[4]
X = singleStateDensityMatrix[phi]
Pr1 = ((ConjugateTranspose[B1]) . X . B1);
{Pr1 // MatrixForm}
Pr2 = ((ConjugateTranspose[B2]) . X . B2);
{Pr2 // MatrixForm}
Pr3 = ((ConjugateTranspose[B3]) . X . B3);
{Pr3 // MatrixForm}
Pr4 = ((ConjugateTranspose[B4]) . X . B4);
{Pr4 // MatrixForm}
diagonalPrB1 = Diagonal[Pr1]
diagonalPrB2 = Diagonal[Pr2]
diagonalPrB3 = Diagonal[Pr3]
diagonalPrB4 = Diagonal[Pr4]
psi = Array[y, {4, 1}];
Reduce[{Abs[(ConjugateTranspose[B1] . psi)]^2 == diagonalPrB1,
Abs[(ConjugateTranspose[B2] . psi)]^2 == diagonalPrB2,
Abs[(ConjugateTranspose[B3] . psi)]^2 == diagonalPrB3,
Abs[(ConjugateTranspose[B4] . psi)]^2 == diagonalPrB4}, Flatten[psi]]