### Toolkit Application: Interferometer QTM

The Interferometer QTM has been defined and discussed by Benioff [17]. It illustrates that there are dpg step operators, which generate computational graphs having an interferometric structure with different actions on the lattice site qubits in the two interferometric arms.

The step operator is defined as:

The Turing head lives in a nine-dimensional Hilbert space with basis .

The lattice spins are living in a two-dimensional Hilbert space with basis . The basis state serves as a marker state to trigger certain actions while the Turing head is scanning the lattice sites.

The unitary operators are defined as follows.

The initial QTM state is defined to be:

head in state at lattice site position
lattice state
hence: . See Figure 1.

Figure 1.

Next we show the main steps to build this QTM using the QTS toolkit.

Set up the step operator T as a sum of partial step operators.

Do the same for the adjoint step operator.

Now define the basic case structure for calling the appropriate partial step operators with the correct choice.

TS[i_Integer, q_Qtm, n_Integer,w12_,w_,w78_,v_]:=
Which[
i==1,TS1[q,n],
i==2,TS2[q,n,w12],
i==3,TS3[q,n,w,v],
i==4,TS4[q,n,w],
i==5,TS5[q,n,w],
i==6,TS6[q,n,w],
i==7,TS7[q,n,w,v],
i==8,TS8[q,n,w],
i==9,TS9[q,n,w78],
i>9,Print["Error"]
];

Do the same for the adjoint step operator.

Next define the individual partial step operators.

Do the same for the adjoint partial step operators.

#### Prepare the Initial State

qc = InitQTM[2,b,Interval[{0,4}],{{1,b[1]},{3,b[1]}},9,h,-3]

Use the formatting function `FmtState` to produce a textbook format.

FmtState[qc]

#### Run the QTM

Define a shortcut step operator `TC` as

and produce some output for a given iteration count.