Проверить собственное состояние через диагностику симулятора
Входы:
1. Однокубитная унитарная операция $U$.
2. Однокубитное состояние $|\psi\rangle$, заданное унитарной операцией подготовки $P$: $P|0\rangle=|\psi\rangle$. Для $P$ доступен обратный вариант Adjoint.
Напишите операцию на языке Q#, возвращающую true, если $|\psi\rangle$ — собственное состояние $U$, и false иначе.
Подсказка источника: библиотечная диагностическая операция CheckZero из Std.Diagnostics проверяет, находится ли кубит в $|0\rangle$.
Заготовка Q#:
namespace Kata {
import Std.Diagnostics.CheckZero;
operation IsEigenvector(U : Qubit => Unit, P : Qubit => Unit is Adj) : Bool {
// Implement your solution here...
return false;
}
}