openfermion.testing.validate_trotterized_evolution

Checks whether a circuit implements Trotterized evolution

Takes a circuit that is supposed to implement evolution of the form:

$$\prod_j \exp[iO_j]$$

and checks whether the implemented unitary is applied. Ignores any global phases as part of the implementation of the unitary, as these are not kept consistent in cirq (and unphysical).

circuit 'cirq.Circuit' {[type]} -- circuit to be checked ops {List['openfermion.QubitOperator']} -- list of operators $O_j$ in application order (i.e. ops[0] is the first operator to be applied). qubits {List['cirq.Qid']} -- list of qubits in circuit in index order