diff --git a/benchmarks/CAV23/OEGrover/02/post.lsta b/benchmarks/CAV23/OEGrover/02/post.lsta deleted file mode 100644 index 68d892035..000000000 --- a/benchmarks/CAV23/OEGrover/02/post.lsta +++ /dev/null @@ -1,14 +0,0 @@ -Predicates -p1 := (and (< (* $R $R) (* aR aR)) (= $I 0)) -p2 := (and (= $R 0) (= $I 0)) -p3 := (and (> (* $R $R) (* bR bR)) (= $I 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 6) -> 3 -[3,1](5, 7) -> 4 -[p2,1] -> 5 -[p1,1] -> 6 -[p3,1] -> 7 \ No newline at end of file diff --git a/benchmarks/CAV23/OEGrover/02/pre.lsta b/benchmarks/CAV23/OEGrover/02/pre.lsta deleted file mode 100644 index ce3305824..000000000 --- a/benchmarks/CAV23/OEGrover/02/pre.lsta +++ /dev/null @@ -1,18 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 6) -> 3 -[3,1](5, 7) -> 4 -[c0,1] -> 5 -[a,1] -> 6 -[b,1] -> 7 -Constraints -3 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 \ No newline at end of file diff --git a/benchmarks/CAV23/OEGrover/100/circuit.qasm b/benchmarks/CAV23/OEGrover/100/circuit.qasm index c50626884..1e7b3641f 100644 --- a/benchmarks/CAV23/OEGrover/100/circuit.qasm +++ b/benchmarks/CAV23/OEGrover/100/circuit.qasm @@ -1,254 +1,254 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[200]; +qreg qubits[199]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -x qubits[92]; -x qubits[94]; -x qubits[96]; -x qubits[98]; -ccx qubits[0], qubits[1], qubits[101]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[98], qubits[197], qubits[198]; -cz qubits[198], qubits[99]; -ccx qubits[98], qubits[197], qubits[198]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[0], qubits[1], qubits[101]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +x qubits[183]; +x qubits[187]; +x qubits[191]; +x qubits[195]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[194], qubits[195], qubits[196]; +cz qubits[196], qubits[197]; +ccx qubits[194], qubits[195], qubits[196]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -301,599 +301,599 @@ x qubits[96]; x qubits[98]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; h qubits[97]; -h qubits[98]; h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +h qubits[193]; +h qubits[195]; +h qubits[197]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; x qubits[97]; -x qubits[98]; x qubits[99]; -ccx qubits[0], qubits[1], qubits[101]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[98], qubits[197], qubits[198]; -cz qubits[198], qubits[99]; -ccx qubits[98], qubits[197], qubits[198]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[0], qubits[1], qubits[101]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +x qubits[193]; +x qubits[195]; +x qubits[197]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[194], qubits[195], qubits[196]; +cz qubits[196], qubits[197]; +ccx qubits[194], qubits[195], qubits[196]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; x qubits[97]; -x qubits[98]; x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +x qubits[193]; +x qubits[195]; +x qubits[197]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; h qubits[97]; -h qubits[98]; h qubits[99]; -z qubits[100]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +h qubits[193]; +h qubits[195]; +h qubits[197]; +z qubits[198]; diff --git a/benchmarks/CAV23/OEGrover/100/post.hsl b/benchmarks/CAV23/OEGrover/100/post.hsl index 514d12cfd..07b7179d8 100644 --- a/benchmarks/CAV23/OEGrover/100/post.hsl +++ b/benchmarks/CAV23/OEGrover/100/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 49 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/CAV23/OEGrover/100/post.lsta b/benchmarks/CAV23/OEGrover/100/post.lsta deleted file mode 100644 index 1f1eae473..000000000 --- a/benchmarks/CAV23/OEGrover/100/post.lsta +++ /dev/null @@ -1,507 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 195) -> 193 -[98,1](195, 196) -> 194 -[99,1](197, 197) -> 195 -[99,1](198, 197) -> 196 -[100,1](199, 199) -> 197 -[100,1](199, 200) -> 198 -[101,1](201, 202) -> 199 -[101,1](201, 203) -> 200 -[102,1](204, 204) -> 201 -[102,1](205, 204) -> 202 -[102,1](206, 204) -> 203 -[103,1](207, 207) -> 204 -[103,1](208, 207) -> 205 -[103,1](209, 207) -> 206 -[104,1](210, 210) -> 207 -[104,1](211, 210) -> 208 -[104,1](212, 210) -> 209 -[105,1](213, 213) -> 210 -[105,1](214, 213) -> 211 -[105,1](215, 213) -> 212 -[106,1](216, 216) -> 213 -[106,1](217, 216) -> 214 -[106,1](218, 216) -> 215 -[107,1](219, 219) -> 216 -[107,1](220, 219) -> 217 -[107,1](221, 219) -> 218 -[108,1](222, 222) -> 219 -[108,1](223, 222) -> 220 -[108,1](224, 222) -> 221 -[109,1](225, 225) -> 222 -[109,1](226, 225) -> 223 -[109,1](227, 225) -> 224 -[110,1](228, 228) -> 225 -[110,1](229, 228) -> 226 -[110,1](230, 228) -> 227 -[111,1](231, 231) -> 228 -[111,1](232, 231) -> 229 -[111,1](233, 231) -> 230 -[112,1](234, 234) -> 231 -[112,1](235, 234) -> 232 -[112,1](236, 234) -> 233 -[113,1](237, 237) -> 234 -[113,1](238, 237) -> 235 -[113,1](239, 237) -> 236 -[114,1](240, 240) -> 237 -[114,1](241, 240) -> 238 -[114,1](242, 240) -> 239 -[115,1](243, 243) -> 240 -[115,1](244, 243) -> 241 -[115,1](245, 243) -> 242 -[116,1](246, 246) -> 243 -[116,1](247, 246) -> 244 -[116,1](248, 246) -> 245 -[117,1](249, 249) -> 246 -[117,1](250, 249) -> 247 -[117,1](251, 249) -> 248 -[118,1](252, 252) -> 249 -[118,1](253, 252) -> 250 -[118,1](254, 252) -> 251 -[119,1](255, 255) -> 252 -[119,1](256, 255) -> 253 -[119,1](257, 255) -> 254 -[120,1](258, 258) -> 255 -[120,1](259, 258) -> 256 -[120,1](260, 258) -> 257 -[121,1](261, 261) -> 258 -[121,1](262, 261) -> 259 -[121,1](263, 261) -> 260 -[122,1](264, 264) -> 261 -[122,1](265, 264) -> 262 -[122,1](266, 264) -> 263 -[123,1](267, 267) -> 264 -[123,1](268, 267) -> 265 -[123,1](269, 267) -> 266 -[124,1](270, 270) -> 267 -[124,1](271, 270) -> 268 -[124,1](272, 270) -> 269 -[125,1](273, 273) -> 270 -[125,1](274, 273) -> 271 -[125,1](275, 273) -> 272 -[126,1](276, 276) -> 273 -[126,1](277, 276) -> 274 -[126,1](278, 276) -> 275 -[127,1](279, 279) -> 276 -[127,1](280, 279) -> 277 -[127,1](281, 279) -> 278 -[128,1](282, 282) -> 279 -[128,1](283, 282) -> 280 -[128,1](284, 282) -> 281 -[129,1](285, 285) -> 282 -[129,1](286, 285) -> 283 -[129,1](287, 285) -> 284 -[130,1](288, 288) -> 285 -[130,1](289, 288) -> 286 -[130,1](290, 288) -> 287 -[131,1](291, 291) -> 288 -[131,1](292, 291) -> 289 -[131,1](293, 291) -> 290 -[132,1](294, 294) -> 291 -[132,1](295, 294) -> 292 -[132,1](296, 294) -> 293 -[133,1](297, 297) -> 294 -[133,1](298, 297) -> 295 -[133,1](299, 297) -> 296 -[134,1](300, 300) -> 297 -[134,1](301, 300) -> 298 -[134,1](302, 300) -> 299 -[135,1](303, 303) -> 300 -[135,1](304, 303) -> 301 -[135,1](305, 303) -> 302 -[136,1](306, 306) -> 303 -[136,1](307, 306) -> 304 -[136,1](308, 306) -> 305 -[137,1](309, 309) -> 306 -[137,1](310, 309) -> 307 -[137,1](311, 309) -> 308 -[138,1](312, 312) -> 309 -[138,1](313, 312) -> 310 -[138,1](314, 312) -> 311 -[139,1](315, 315) -> 312 -[139,1](316, 315) -> 313 -[139,1](317, 315) -> 314 -[140,1](318, 318) -> 315 -[140,1](319, 318) -> 316 -[140,1](320, 318) -> 317 -[141,1](321, 321) -> 318 -[141,1](322, 321) -> 319 -[141,1](323, 321) -> 320 -[142,1](324, 324) -> 321 -[142,1](325, 324) -> 322 -[142,1](326, 324) -> 323 -[143,1](327, 327) -> 324 -[143,1](328, 327) -> 325 -[143,1](329, 327) -> 326 -[144,1](330, 330) -> 327 -[144,1](331, 330) -> 328 -[144,1](332, 330) -> 329 -[145,1](333, 333) -> 330 -[145,1](334, 333) -> 331 -[145,1](335, 333) -> 332 -[146,1](336, 336) -> 333 -[146,1](337, 336) -> 334 -[146,1](338, 336) -> 335 -[147,1](339, 339) -> 336 -[147,1](340, 339) -> 337 -[147,1](341, 339) -> 338 -[148,1](342, 342) -> 339 -[148,1](343, 342) -> 340 -[148,1](344, 342) -> 341 -[149,1](345, 345) -> 342 -[149,1](346, 345) -> 343 -[149,1](347, 345) -> 344 -[150,1](348, 348) -> 345 -[150,1](349, 348) -> 346 -[150,1](350, 348) -> 347 -[151,1](351, 351) -> 348 -[151,1](352, 351) -> 349 -[151,1](353, 351) -> 350 -[152,1](354, 354) -> 351 -[152,1](355, 354) -> 352 -[152,1](356, 354) -> 353 -[153,1](357, 357) -> 354 -[153,1](358, 357) -> 355 -[153,1](359, 357) -> 356 -[154,1](360, 360) -> 357 -[154,1](361, 360) -> 358 -[154,1](362, 360) -> 359 -[155,1](363, 363) -> 360 -[155,1](364, 363) -> 361 -[155,1](365, 363) -> 362 -[156,1](366, 366) -> 363 -[156,1](367, 366) -> 364 -[156,1](368, 366) -> 365 -[157,1](369, 369) -> 366 -[157,1](370, 369) -> 367 -[157,1](371, 369) -> 368 -[158,1](372, 372) -> 369 -[158,1](373, 372) -> 370 -[158,1](374, 372) -> 371 -[159,1](375, 375) -> 372 -[159,1](376, 375) -> 373 -[159,1](377, 375) -> 374 -[160,1](378, 378) -> 375 -[160,1](379, 378) -> 376 -[160,1](380, 378) -> 377 -[161,1](381, 381) -> 378 -[161,1](382, 381) -> 379 -[161,1](383, 381) -> 380 -[162,1](384, 384) -> 381 -[162,1](385, 384) -> 382 -[162,1](386, 384) -> 383 -[163,1](387, 387) -> 384 -[163,1](388, 387) -> 385 -[163,1](389, 387) -> 386 -[164,1](390, 390) -> 387 -[164,1](391, 390) -> 388 -[164,1](392, 390) -> 389 -[165,1](393, 393) -> 390 -[165,1](394, 393) -> 391 -[165,1](395, 393) -> 392 -[166,1](396, 396) -> 393 -[166,1](397, 396) -> 394 -[166,1](398, 396) -> 395 -[167,1](399, 399) -> 396 -[167,1](400, 399) -> 397 -[167,1](401, 399) -> 398 -[168,1](402, 402) -> 399 -[168,1](403, 402) -> 400 -[168,1](404, 402) -> 401 -[169,1](405, 405) -> 402 -[169,1](406, 405) -> 403 -[169,1](407, 405) -> 404 -[170,1](408, 408) -> 405 -[170,1](409, 408) -> 406 -[170,1](410, 408) -> 407 -[171,1](411, 411) -> 408 -[171,1](412, 411) -> 409 -[171,1](413, 411) -> 410 -[172,1](414, 414) -> 411 -[172,1](415, 414) -> 412 -[172,1](416, 414) -> 413 -[173,1](417, 417) -> 414 -[173,1](418, 417) -> 415 -[173,1](419, 417) -> 416 -[174,1](420, 420) -> 417 -[174,1](421, 420) -> 418 -[174,1](422, 420) -> 419 -[175,1](423, 423) -> 420 -[175,1](424, 423) -> 421 -[175,1](425, 423) -> 422 -[176,1](426, 426) -> 423 -[176,1](427, 426) -> 424 -[176,1](428, 426) -> 425 -[177,1](429, 429) -> 426 -[177,1](430, 429) -> 427 -[177,1](431, 429) -> 428 -[178,1](432, 432) -> 429 -[178,1](433, 432) -> 430 -[178,1](434, 432) -> 431 -[179,1](435, 435) -> 432 -[179,1](436, 435) -> 433 -[179,1](437, 435) -> 434 -[180,1](438, 438) -> 435 -[180,1](439, 438) -> 436 -[180,1](440, 438) -> 437 -[181,1](441, 441) -> 438 -[181,1](442, 441) -> 439 -[181,1](443, 441) -> 440 -[182,1](444, 444) -> 441 -[182,1](445, 444) -> 442 -[182,1](446, 444) -> 443 -[183,1](447, 447) -> 444 -[183,1](448, 447) -> 445 -[183,1](449, 447) -> 446 -[184,1](450, 450) -> 447 -[184,1](451, 450) -> 448 -[184,1](452, 450) -> 449 -[185,1](453, 453) -> 450 -[185,1](454, 453) -> 451 -[185,1](455, 453) -> 452 -[186,1](456, 456) -> 453 -[186,1](457, 456) -> 454 -[186,1](458, 456) -> 455 -[187,1](459, 459) -> 456 -[187,1](460, 459) -> 457 -[187,1](461, 459) -> 458 -[188,1](462, 462) -> 459 -[188,1](463, 462) -> 460 -[188,1](464, 462) -> 461 -[189,1](465, 465) -> 462 -[189,1](466, 465) -> 463 -[189,1](467, 465) -> 464 -[190,1](468, 468) -> 465 -[190,1](469, 468) -> 466 -[190,1](470, 468) -> 467 -[191,1](471, 471) -> 468 -[191,1](472, 471) -> 469 -[191,1](473, 471) -> 470 -[192,1](474, 474) -> 471 -[192,1](475, 474) -> 472 -[192,1](476, 474) -> 473 -[193,1](477, 477) -> 474 -[193,1](478, 477) -> 475 -[193,1](479, 477) -> 476 -[194,1](480, 480) -> 477 -[194,1](481, 480) -> 478 -[194,1](482, 480) -> 479 -[195,1](483, 483) -> 480 -[195,1](484, 483) -> 481 -[195,1](485, 483) -> 482 -[196,1](486, 486) -> 483 -[196,1](487, 486) -> 484 -[196,1](488, 486) -> 485 -[197,1](489, 489) -> 486 -[197,1](490, 489) -> 487 -[197,1](491, 489) -> 488 -[198,1](492, 492) -> 489 -[198,1](493, 492) -> 490 -[198,1](494, 492) -> 491 -[199,1](495, 495) -> 492 -[199,1](496, 495) -> 493 -[199,1](497, 495) -> 494 -[200,1](498, 498) -> 495 -[200,1](499, 498) -> 496 -[200,1](500, 498) -> 497 -[p1,1] -> 498 -[p2,1] -> 499 -[p3,1] -> 500 \ No newline at end of file diff --git a/benchmarks/CAV23/OEGrover/100/pre.hsl b/benchmarks/CAV23/OEGrover/100/pre.hsl index 37ca0a1bd..15bffa32f 100644 --- a/benchmarks/CAV23/OEGrover/100/pre.hsl +++ b/benchmarks/CAV23/OEGrover/100/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 49 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1267650600228229401496703205375 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/CAV23/OEGrover/100/pre.lsta b/benchmarks/CAV23/OEGrover/100/pre.lsta deleted file mode 100644 index e9e5cf2a7..000000000 --- a/benchmarks/CAV23/OEGrover/100/pre.lsta +++ /dev/null @@ -1,511 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 195) -> 193 -[98,1](195, 196) -> 194 -[99,1](197, 197) -> 195 -[99,1](198, 197) -> 196 -[100,1](199, 199) -> 197 -[100,1](199, 200) -> 198 -[101,1](201, 202) -> 199 -[101,1](201, 203) -> 200 -[102,1](204, 204) -> 201 -[102,1](205, 204) -> 202 -[102,1](206, 204) -> 203 -[103,1](207, 207) -> 204 -[103,1](208, 207) -> 205 -[103,1](209, 207) -> 206 -[104,1](210, 210) -> 207 -[104,1](211, 210) -> 208 -[104,1](212, 210) -> 209 -[105,1](213, 213) -> 210 -[105,1](214, 213) -> 211 -[105,1](215, 213) -> 212 -[106,1](216, 216) -> 213 -[106,1](217, 216) -> 214 -[106,1](218, 216) -> 215 -[107,1](219, 219) -> 216 -[107,1](220, 219) -> 217 -[107,1](221, 219) -> 218 -[108,1](222, 222) -> 219 -[108,1](223, 222) -> 220 -[108,1](224, 222) -> 221 -[109,1](225, 225) -> 222 -[109,1](226, 225) -> 223 -[109,1](227, 225) -> 224 -[110,1](228, 228) -> 225 -[110,1](229, 228) -> 226 -[110,1](230, 228) -> 227 -[111,1](231, 231) -> 228 -[111,1](232, 231) -> 229 -[111,1](233, 231) -> 230 -[112,1](234, 234) -> 231 -[112,1](235, 234) -> 232 -[112,1](236, 234) -> 233 -[113,1](237, 237) -> 234 -[113,1](238, 237) -> 235 -[113,1](239, 237) -> 236 -[114,1](240, 240) -> 237 -[114,1](241, 240) -> 238 -[114,1](242, 240) -> 239 -[115,1](243, 243) -> 240 -[115,1](244, 243) -> 241 -[115,1](245, 243) -> 242 -[116,1](246, 246) -> 243 -[116,1](247, 246) -> 244 -[116,1](248, 246) -> 245 -[117,1](249, 249) -> 246 -[117,1](250, 249) -> 247 -[117,1](251, 249) -> 248 -[118,1](252, 252) -> 249 -[118,1](253, 252) -> 250 -[118,1](254, 252) -> 251 -[119,1](255, 255) -> 252 -[119,1](256, 255) -> 253 -[119,1](257, 255) -> 254 -[120,1](258, 258) -> 255 -[120,1](259, 258) -> 256 -[120,1](260, 258) -> 257 -[121,1](261, 261) -> 258 -[121,1](262, 261) -> 259 -[121,1](263, 261) -> 260 -[122,1](264, 264) -> 261 -[122,1](265, 264) -> 262 -[122,1](266, 264) -> 263 -[123,1](267, 267) -> 264 -[123,1](268, 267) -> 265 -[123,1](269, 267) -> 266 -[124,1](270, 270) -> 267 -[124,1](271, 270) -> 268 -[124,1](272, 270) -> 269 -[125,1](273, 273) -> 270 -[125,1](274, 273) -> 271 -[125,1](275, 273) -> 272 -[126,1](276, 276) -> 273 -[126,1](277, 276) -> 274 -[126,1](278, 276) -> 275 -[127,1](279, 279) -> 276 -[127,1](280, 279) -> 277 -[127,1](281, 279) -> 278 -[128,1](282, 282) -> 279 -[128,1](283, 282) -> 280 -[128,1](284, 282) -> 281 -[129,1](285, 285) -> 282 -[129,1](286, 285) -> 283 -[129,1](287, 285) -> 284 -[130,1](288, 288) -> 285 -[130,1](289, 288) -> 286 -[130,1](290, 288) -> 287 -[131,1](291, 291) -> 288 -[131,1](292, 291) -> 289 -[131,1](293, 291) -> 290 -[132,1](294, 294) -> 291 -[132,1](295, 294) -> 292 -[132,1](296, 294) -> 293 -[133,1](297, 297) -> 294 -[133,1](298, 297) -> 295 -[133,1](299, 297) -> 296 -[134,1](300, 300) -> 297 -[134,1](301, 300) -> 298 -[134,1](302, 300) -> 299 -[135,1](303, 303) -> 300 -[135,1](304, 303) -> 301 -[135,1](305, 303) -> 302 -[136,1](306, 306) -> 303 -[136,1](307, 306) -> 304 -[136,1](308, 306) -> 305 -[137,1](309, 309) -> 306 -[137,1](310, 309) -> 307 -[137,1](311, 309) -> 308 -[138,1](312, 312) -> 309 -[138,1](313, 312) -> 310 -[138,1](314, 312) -> 311 -[139,1](315, 315) -> 312 -[139,1](316, 315) -> 313 -[139,1](317, 315) -> 314 -[140,1](318, 318) -> 315 -[140,1](319, 318) -> 316 -[140,1](320, 318) -> 317 -[141,1](321, 321) -> 318 -[141,1](322, 321) -> 319 -[141,1](323, 321) -> 320 -[142,1](324, 324) -> 321 -[142,1](325, 324) -> 322 -[142,1](326, 324) -> 323 -[143,1](327, 327) -> 324 -[143,1](328, 327) -> 325 -[143,1](329, 327) -> 326 -[144,1](330, 330) -> 327 -[144,1](331, 330) -> 328 -[144,1](332, 330) -> 329 -[145,1](333, 333) -> 330 -[145,1](334, 333) -> 331 -[145,1](335, 333) -> 332 -[146,1](336, 336) -> 333 -[146,1](337, 336) -> 334 -[146,1](338, 336) -> 335 -[147,1](339, 339) -> 336 -[147,1](340, 339) -> 337 -[147,1](341, 339) -> 338 -[148,1](342, 342) -> 339 -[148,1](343, 342) -> 340 -[148,1](344, 342) -> 341 -[149,1](345, 345) -> 342 -[149,1](346, 345) -> 343 -[149,1](347, 345) -> 344 -[150,1](348, 348) -> 345 -[150,1](349, 348) -> 346 -[150,1](350, 348) -> 347 -[151,1](351, 351) -> 348 -[151,1](352, 351) -> 349 -[151,1](353, 351) -> 350 -[152,1](354, 354) -> 351 -[152,1](355, 354) -> 352 -[152,1](356, 354) -> 353 -[153,1](357, 357) -> 354 -[153,1](358, 357) -> 355 -[153,1](359, 357) -> 356 -[154,1](360, 360) -> 357 -[154,1](361, 360) -> 358 -[154,1](362, 360) -> 359 -[155,1](363, 363) -> 360 -[155,1](364, 363) -> 361 -[155,1](365, 363) -> 362 -[156,1](366, 366) -> 363 -[156,1](367, 366) -> 364 -[156,1](368, 366) -> 365 -[157,1](369, 369) -> 366 -[157,1](370, 369) -> 367 -[157,1](371, 369) -> 368 -[158,1](372, 372) -> 369 -[158,1](373, 372) -> 370 -[158,1](374, 372) -> 371 -[159,1](375, 375) -> 372 -[159,1](376, 375) -> 373 -[159,1](377, 375) -> 374 -[160,1](378, 378) -> 375 -[160,1](379, 378) -> 376 -[160,1](380, 378) -> 377 -[161,1](381, 381) -> 378 -[161,1](382, 381) -> 379 -[161,1](383, 381) -> 380 -[162,1](384, 384) -> 381 -[162,1](385, 384) -> 382 -[162,1](386, 384) -> 383 -[163,1](387, 387) -> 384 -[163,1](388, 387) -> 385 -[163,1](389, 387) -> 386 -[164,1](390, 390) -> 387 -[164,1](391, 390) -> 388 -[164,1](392, 390) -> 389 -[165,1](393, 393) -> 390 -[165,1](394, 393) -> 391 -[165,1](395, 393) -> 392 -[166,1](396, 396) -> 393 -[166,1](397, 396) -> 394 -[166,1](398, 396) -> 395 -[167,1](399, 399) -> 396 -[167,1](400, 399) -> 397 -[167,1](401, 399) -> 398 -[168,1](402, 402) -> 399 -[168,1](403, 402) -> 400 -[168,1](404, 402) -> 401 -[169,1](405, 405) -> 402 -[169,1](406, 405) -> 403 -[169,1](407, 405) -> 404 -[170,1](408, 408) -> 405 -[170,1](409, 408) -> 406 -[170,1](410, 408) -> 407 -[171,1](411, 411) -> 408 -[171,1](412, 411) -> 409 -[171,1](413, 411) -> 410 -[172,1](414, 414) -> 411 -[172,1](415, 414) -> 412 -[172,1](416, 414) -> 413 -[173,1](417, 417) -> 414 -[173,1](418, 417) -> 415 -[173,1](419, 417) -> 416 -[174,1](420, 420) -> 417 -[174,1](421, 420) -> 418 -[174,1](422, 420) -> 419 -[175,1](423, 423) -> 420 -[175,1](424, 423) -> 421 -[175,1](425, 423) -> 422 -[176,1](426, 426) -> 423 -[176,1](427, 426) -> 424 -[176,1](428, 426) -> 425 -[177,1](429, 429) -> 426 -[177,1](430, 429) -> 427 -[177,1](431, 429) -> 428 -[178,1](432, 432) -> 429 -[178,1](433, 432) -> 430 -[178,1](434, 432) -> 431 -[179,1](435, 435) -> 432 -[179,1](436, 435) -> 433 -[179,1](437, 435) -> 434 -[180,1](438, 438) -> 435 -[180,1](439, 438) -> 436 -[180,1](440, 438) -> 437 -[181,1](441, 441) -> 438 -[181,1](442, 441) -> 439 -[181,1](443, 441) -> 440 -[182,1](444, 444) -> 441 -[182,1](445, 444) -> 442 -[182,1](446, 444) -> 443 -[183,1](447, 447) -> 444 -[183,1](448, 447) -> 445 -[183,1](449, 447) -> 446 -[184,1](450, 450) -> 447 -[184,1](451, 450) -> 448 -[184,1](452, 450) -> 449 -[185,1](453, 453) -> 450 -[185,1](454, 453) -> 451 -[185,1](455, 453) -> 452 -[186,1](456, 456) -> 453 -[186,1](457, 456) -> 454 -[186,1](458, 456) -> 455 -[187,1](459, 459) -> 456 -[187,1](460, 459) -> 457 -[187,1](461, 459) -> 458 -[188,1](462, 462) -> 459 -[188,1](463, 462) -> 460 -[188,1](464, 462) -> 461 -[189,1](465, 465) -> 462 -[189,1](466, 465) -> 463 -[189,1](467, 465) -> 464 -[190,1](468, 468) -> 465 -[190,1](469, 468) -> 466 -[190,1](470, 468) -> 467 -[191,1](471, 471) -> 468 -[191,1](472, 471) -> 469 -[191,1](473, 471) -> 470 -[192,1](474, 474) -> 471 -[192,1](475, 474) -> 472 -[192,1](476, 474) -> 473 -[193,1](477, 477) -> 474 -[193,1](478, 477) -> 475 -[193,1](479, 477) -> 476 -[194,1](480, 480) -> 477 -[194,1](481, 480) -> 478 -[194,1](482, 480) -> 479 -[195,1](483, 483) -> 480 -[195,1](484, 483) -> 481 -[195,1](485, 483) -> 482 -[196,1](486, 486) -> 483 -[196,1](487, 486) -> 484 -[196,1](488, 486) -> 485 -[197,1](489, 489) -> 486 -[197,1](490, 489) -> 487 -[197,1](491, 489) -> 488 -[198,1](492, 492) -> 489 -[198,1](493, 492) -> 490 -[198,1](494, 492) -> 491 -[199,1](495, 495) -> 492 -[199,1](496, 495) -> 493 -[199,1](497, 495) -> 494 -[200,1](498, 498) -> 495 -[200,1](499, 498) -> 496 -[200,1](500, 498) -> 497 -[c0,1] -> 498 -[a,1] -> 499 -[b,1] -> 500 -Constraints -1267650600228229401496703205375 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/CAV23/OEGrover/18/circuit.qasm b/benchmarks/CAV23/OEGrover/18/circuit.qasm index fd9c44fab..ed31e04c5 100644 --- a/benchmarks/CAV23/OEGrover/18/circuit.qasm +++ b/benchmarks/CAV23/OEGrover/18/circuit.qasm @@ -1,49 +1,49 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[36]; +qreg qubits[35]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -ccx qubits[0], qubits[1], qubits[19]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[16], qubits[33], qubits[34]; -cz qubits[34], qubits[17]; -ccx qubits[16], qubits[33], qubits[34]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[0], qubits[1], qubits[19]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +cz qubits[32], qubits[33]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -55,107 +55,107 @@ x qubits[14]; x qubits[16]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -ccx qubits[0], qubits[1], qubits[19]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[16], qubits[33], qubits[34]; -cz qubits[34], qubits[17]; -ccx qubits[16], qubits[33], qubits[34]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[0], qubits[1], qubits[19]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +cz qubits[32], qubits[33]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -z qubits[18]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +z qubits[34]; diff --git a/benchmarks/CAV23/OEGrover/18/post.hsl b/benchmarks/CAV23/OEGrover/18/post.hsl index 2afb8b0e0..970d318ec 100644 --- a/benchmarks/CAV23/OEGrover/18/post.hsl +++ b/benchmarks/CAV23/OEGrover/18/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101100000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 8 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/CAV23/OEGrover/18/post.lsta b/benchmarks/CAV23/OEGrover/18/post.lsta deleted file mode 100644 index a7330128a..000000000 --- a/benchmarks/CAV23/OEGrover/18/post.lsta +++ /dev/null @@ -1,97 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 38) -> 35 -[19,1](37, 39) -> 36 -[20,1](40, 40) -> 37 -[20,1](41, 40) -> 38 -[20,1](42, 40) -> 39 -[21,1](43, 43) -> 40 -[21,1](44, 43) -> 41 -[21,1](45, 43) -> 42 -[22,1](46, 46) -> 43 -[22,1](47, 46) -> 44 -[22,1](48, 46) -> 45 -[23,1](49, 49) -> 46 -[23,1](50, 49) -> 47 -[23,1](51, 49) -> 48 -[24,1](52, 52) -> 49 -[24,1](53, 52) -> 50 -[24,1](54, 52) -> 51 -[25,1](55, 55) -> 52 -[25,1](56, 55) -> 53 -[25,1](57, 55) -> 54 -[26,1](58, 58) -> 55 -[26,1](59, 58) -> 56 -[26,1](60, 58) -> 57 -[27,1](61, 61) -> 58 -[27,1](62, 61) -> 59 -[27,1](63, 61) -> 60 -[28,1](64, 64) -> 61 -[28,1](65, 64) -> 62 -[28,1](66, 64) -> 63 -[29,1](67, 67) -> 64 -[29,1](68, 67) -> 65 -[29,1](69, 67) -> 66 -[30,1](70, 70) -> 67 -[30,1](71, 70) -> 68 -[30,1](72, 70) -> 69 -[31,1](73, 73) -> 70 -[31,1](74, 73) -> 71 -[31,1](75, 73) -> 72 -[32,1](76, 76) -> 73 -[32,1](77, 76) -> 74 -[32,1](78, 76) -> 75 -[33,1](79, 79) -> 76 -[33,1](80, 79) -> 77 -[33,1](81, 79) -> 78 -[34,1](82, 82) -> 79 -[34,1](83, 82) -> 80 -[34,1](84, 82) -> 81 -[35,1](85, 85) -> 82 -[35,1](86, 85) -> 83 -[35,1](87, 85) -> 84 -[36,1](88, 88) -> 85 -[36,1](89, 88) -> 86 -[36,1](90, 88) -> 87 -[p1,1] -> 88 -[p2,1] -> 89 -[p3,1] -> 90 \ No newline at end of file diff --git a/benchmarks/CAV23/OEGrover/18/pre.hsl b/benchmarks/CAV23/OEGrover/18/pre.hsl index 8cb0530b9..1935766a0 100644 --- a/benchmarks/CAV23/OEGrover/18/pre.hsl +++ b/benchmarks/CAV23/OEGrover/18/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101> + a |*> # |100000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 8 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 262143 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/CAV23/OEGrover/18/pre.lsta b/benchmarks/CAV23/OEGrover/18/pre.lsta deleted file mode 100644 index 15854ae4b..000000000 --- a/benchmarks/CAV23/OEGrover/18/pre.lsta +++ /dev/null @@ -1,101 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 38) -> 35 -[19,1](37, 39) -> 36 -[20,1](40, 40) -> 37 -[20,1](41, 40) -> 38 -[20,1](42, 40) -> 39 -[21,1](43, 43) -> 40 -[21,1](44, 43) -> 41 -[21,1](45, 43) -> 42 -[22,1](46, 46) -> 43 -[22,1](47, 46) -> 44 -[22,1](48, 46) -> 45 -[23,1](49, 49) -> 46 -[23,1](50, 49) -> 47 -[23,1](51, 49) -> 48 -[24,1](52, 52) -> 49 -[24,1](53, 52) -> 50 -[24,1](54, 52) -> 51 -[25,1](55, 55) -> 52 -[25,1](56, 55) -> 53 -[25,1](57, 55) -> 54 -[26,1](58, 58) -> 55 -[26,1](59, 58) -> 56 -[26,1](60, 58) -> 57 -[27,1](61, 61) -> 58 -[27,1](62, 61) -> 59 -[27,1](63, 61) -> 60 -[28,1](64, 64) -> 61 -[28,1](65, 64) -> 62 -[28,1](66, 64) -> 63 -[29,1](67, 67) -> 64 -[29,1](68, 67) -> 65 -[29,1](69, 67) -> 66 -[30,1](70, 70) -> 67 -[30,1](71, 70) -> 68 -[30,1](72, 70) -> 69 -[31,1](73, 73) -> 70 -[31,1](74, 73) -> 71 -[31,1](75, 73) -> 72 -[32,1](76, 76) -> 73 -[32,1](77, 76) -> 74 -[32,1](78, 76) -> 75 -[33,1](79, 79) -> 76 -[33,1](80, 79) -> 77 -[33,1](81, 79) -> 78 -[34,1](82, 82) -> 79 -[34,1](83, 82) -> 80 -[34,1](84, 82) -> 81 -[35,1](85, 85) -> 82 -[35,1](86, 85) -> 83 -[35,1](87, 85) -> 84 -[36,1](88, 88) -> 85 -[36,1](89, 88) -> 86 -[36,1](90, 88) -> 87 -[c0,1] -> 88 -[a,1] -> 89 -[b,1] -> 90 -Constraints -262143 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/CAV23/OEGrover/50/circuit.qasm b/benchmarks/CAV23/OEGrover/50/circuit.qasm index c15a1d8c8..e0927884d 100644 --- a/benchmarks/CAV23/OEGrover/50/circuit.qasm +++ b/benchmarks/CAV23/OEGrover/50/circuit.qasm @@ -1,129 +1,129 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[100]; +qreg qubits[99]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -ccx qubits[0], qubits[1], qubits[51]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[48], qubits[97], qubits[98]; -cz qubits[98], qubits[49]; -ccx qubits[48], qubits[97], qubits[98]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[0], qubits[1], qubits[51]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +cz qubits[96], qubits[97]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -151,299 +151,299 @@ x qubits[46]; x qubits[48]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -ccx qubits[0], qubits[1], qubits[51]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[48], qubits[97], qubits[98]; -cz qubits[98], qubits[49]; -ccx qubits[48], qubits[97], qubits[98]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[0], qubits[1], qubits[51]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +cz qubits[96], qubits[97]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -z qubits[50]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +z qubits[98]; diff --git a/benchmarks/CAV23/OEGrover/50/post.hsl b/benchmarks/CAV23/OEGrover/50/post.hsl index 4250119f4..74c7a84a9 100644 --- a/benchmarks/CAV23/OEGrover/50/post.hsl +++ b/benchmarks/CAV23/OEGrover/50/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 24 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/CAV23/OEGrover/50/post.lsta b/benchmarks/CAV23/OEGrover/50/post.lsta deleted file mode 100644 index 3a7684198..000000000 --- a/benchmarks/CAV23/OEGrover/50/post.lsta +++ /dev/null @@ -1,257 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 102) -> 99 -[51,1](101, 103) -> 100 -[52,1](104, 104) -> 101 -[52,1](105, 104) -> 102 -[52,1](106, 104) -> 103 -[53,1](107, 107) -> 104 -[53,1](108, 107) -> 105 -[53,1](109, 107) -> 106 -[54,1](110, 110) -> 107 -[54,1](111, 110) -> 108 -[54,1](112, 110) -> 109 -[55,1](113, 113) -> 110 -[55,1](114, 113) -> 111 -[55,1](115, 113) -> 112 -[56,1](116, 116) -> 113 -[56,1](117, 116) -> 114 -[56,1](118, 116) -> 115 -[57,1](119, 119) -> 116 -[57,1](120, 119) -> 117 -[57,1](121, 119) -> 118 -[58,1](122, 122) -> 119 -[58,1](123, 122) -> 120 -[58,1](124, 122) -> 121 -[59,1](125, 125) -> 122 -[59,1](126, 125) -> 123 -[59,1](127, 125) -> 124 -[60,1](128, 128) -> 125 -[60,1](129, 128) -> 126 -[60,1](130, 128) -> 127 -[61,1](131, 131) -> 128 -[61,1](132, 131) -> 129 -[61,1](133, 131) -> 130 -[62,1](134, 134) -> 131 -[62,1](135, 134) -> 132 -[62,1](136, 134) -> 133 -[63,1](137, 137) -> 134 -[63,1](138, 137) -> 135 -[63,1](139, 137) -> 136 -[64,1](140, 140) -> 137 -[64,1](141, 140) -> 138 -[64,1](142, 140) -> 139 -[65,1](143, 143) -> 140 -[65,1](144, 143) -> 141 -[65,1](145, 143) -> 142 -[66,1](146, 146) -> 143 -[66,1](147, 146) -> 144 -[66,1](148, 146) -> 145 -[67,1](149, 149) -> 146 -[67,1](150, 149) -> 147 -[67,1](151, 149) -> 148 -[68,1](152, 152) -> 149 -[68,1](153, 152) -> 150 -[68,1](154, 152) -> 151 -[69,1](155, 155) -> 152 -[69,1](156, 155) -> 153 -[69,1](157, 155) -> 154 -[70,1](158, 158) -> 155 -[70,1](159, 158) -> 156 -[70,1](160, 158) -> 157 -[71,1](161, 161) -> 158 -[71,1](162, 161) -> 159 -[71,1](163, 161) -> 160 -[72,1](164, 164) -> 161 -[72,1](165, 164) -> 162 -[72,1](166, 164) -> 163 -[73,1](167, 167) -> 164 -[73,1](168, 167) -> 165 -[73,1](169, 167) -> 166 -[74,1](170, 170) -> 167 -[74,1](171, 170) -> 168 -[74,1](172, 170) -> 169 -[75,1](173, 173) -> 170 -[75,1](174, 173) -> 171 -[75,1](175, 173) -> 172 -[76,1](176, 176) -> 173 -[76,1](177, 176) -> 174 -[76,1](178, 176) -> 175 -[77,1](179, 179) -> 176 -[77,1](180, 179) -> 177 -[77,1](181, 179) -> 178 -[78,1](182, 182) -> 179 -[78,1](183, 182) -> 180 -[78,1](184, 182) -> 181 -[79,1](185, 185) -> 182 -[79,1](186, 185) -> 183 -[79,1](187, 185) -> 184 -[80,1](188, 188) -> 185 -[80,1](189, 188) -> 186 -[80,1](190, 188) -> 187 -[81,1](191, 191) -> 188 -[81,1](192, 191) -> 189 -[81,1](193, 191) -> 190 -[82,1](194, 194) -> 191 -[82,1](195, 194) -> 192 -[82,1](196, 194) -> 193 -[83,1](197, 197) -> 194 -[83,1](198, 197) -> 195 -[83,1](199, 197) -> 196 -[84,1](200, 200) -> 197 -[84,1](201, 200) -> 198 -[84,1](202, 200) -> 199 -[85,1](203, 203) -> 200 -[85,1](204, 203) -> 201 -[85,1](205, 203) -> 202 -[86,1](206, 206) -> 203 -[86,1](207, 206) -> 204 -[86,1](208, 206) -> 205 -[87,1](209, 209) -> 206 -[87,1](210, 209) -> 207 -[87,1](211, 209) -> 208 -[88,1](212, 212) -> 209 -[88,1](213, 212) -> 210 -[88,1](214, 212) -> 211 -[89,1](215, 215) -> 212 -[89,1](216, 215) -> 213 -[89,1](217, 215) -> 214 -[90,1](218, 218) -> 215 -[90,1](219, 218) -> 216 -[90,1](220, 218) -> 217 -[91,1](221, 221) -> 218 -[91,1](222, 221) -> 219 -[91,1](223, 221) -> 220 -[92,1](224, 224) -> 221 -[92,1](225, 224) -> 222 -[92,1](226, 224) -> 223 -[93,1](227, 227) -> 224 -[93,1](228, 227) -> 225 -[93,1](229, 227) -> 226 -[94,1](230, 230) -> 227 -[94,1](231, 230) -> 228 -[94,1](232, 230) -> 229 -[95,1](233, 233) -> 230 -[95,1](234, 233) -> 231 -[95,1](235, 233) -> 232 -[96,1](236, 236) -> 233 -[96,1](237, 236) -> 234 -[96,1](238, 236) -> 235 -[97,1](239, 239) -> 236 -[97,1](240, 239) -> 237 -[97,1](241, 239) -> 238 -[98,1](242, 242) -> 239 -[98,1](243, 242) -> 240 -[98,1](244, 242) -> 241 -[99,1](245, 245) -> 242 -[99,1](246, 245) -> 243 -[99,1](247, 245) -> 244 -[100,1](248, 248) -> 245 -[100,1](249, 248) -> 246 -[100,1](250, 248) -> 247 -[p1,1] -> 248 -[p2,1] -> 249 -[p3,1] -> 250 \ No newline at end of file diff --git a/benchmarks/CAV23/OEGrover/50/pre.hsl b/benchmarks/CAV23/OEGrover/50/pre.hsl index e23bdfd02..643a00949 100644 --- a/benchmarks/CAV23/OEGrover/50/pre.hsl +++ b/benchmarks/CAV23/OEGrover/50/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 24 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1125899906842623 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/CAV23/OEGrover/50/pre.lsta b/benchmarks/CAV23/OEGrover/50/pre.lsta deleted file mode 100644 index d5f93614b..000000000 --- a/benchmarks/CAV23/OEGrover/50/pre.lsta +++ /dev/null @@ -1,261 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 102) -> 99 -[51,1](101, 103) -> 100 -[52,1](104, 104) -> 101 -[52,1](105, 104) -> 102 -[52,1](106, 104) -> 103 -[53,1](107, 107) -> 104 -[53,1](108, 107) -> 105 -[53,1](109, 107) -> 106 -[54,1](110, 110) -> 107 -[54,1](111, 110) -> 108 -[54,1](112, 110) -> 109 -[55,1](113, 113) -> 110 -[55,1](114, 113) -> 111 -[55,1](115, 113) -> 112 -[56,1](116, 116) -> 113 -[56,1](117, 116) -> 114 -[56,1](118, 116) -> 115 -[57,1](119, 119) -> 116 -[57,1](120, 119) -> 117 -[57,1](121, 119) -> 118 -[58,1](122, 122) -> 119 -[58,1](123, 122) -> 120 -[58,1](124, 122) -> 121 -[59,1](125, 125) -> 122 -[59,1](126, 125) -> 123 -[59,1](127, 125) -> 124 -[60,1](128, 128) -> 125 -[60,1](129, 128) -> 126 -[60,1](130, 128) -> 127 -[61,1](131, 131) -> 128 -[61,1](132, 131) -> 129 -[61,1](133, 131) -> 130 -[62,1](134, 134) -> 131 -[62,1](135, 134) -> 132 -[62,1](136, 134) -> 133 -[63,1](137, 137) -> 134 -[63,1](138, 137) -> 135 -[63,1](139, 137) -> 136 -[64,1](140, 140) -> 137 -[64,1](141, 140) -> 138 -[64,1](142, 140) -> 139 -[65,1](143, 143) -> 140 -[65,1](144, 143) -> 141 -[65,1](145, 143) -> 142 -[66,1](146, 146) -> 143 -[66,1](147, 146) -> 144 -[66,1](148, 146) -> 145 -[67,1](149, 149) -> 146 -[67,1](150, 149) -> 147 -[67,1](151, 149) -> 148 -[68,1](152, 152) -> 149 -[68,1](153, 152) -> 150 -[68,1](154, 152) -> 151 -[69,1](155, 155) -> 152 -[69,1](156, 155) -> 153 -[69,1](157, 155) -> 154 -[70,1](158, 158) -> 155 -[70,1](159, 158) -> 156 -[70,1](160, 158) -> 157 -[71,1](161, 161) -> 158 -[71,1](162, 161) -> 159 -[71,1](163, 161) -> 160 -[72,1](164, 164) -> 161 -[72,1](165, 164) -> 162 -[72,1](166, 164) -> 163 -[73,1](167, 167) -> 164 -[73,1](168, 167) -> 165 -[73,1](169, 167) -> 166 -[74,1](170, 170) -> 167 -[74,1](171, 170) -> 168 -[74,1](172, 170) -> 169 -[75,1](173, 173) -> 170 -[75,1](174, 173) -> 171 -[75,1](175, 173) -> 172 -[76,1](176, 176) -> 173 -[76,1](177, 176) -> 174 -[76,1](178, 176) -> 175 -[77,1](179, 179) -> 176 -[77,1](180, 179) -> 177 -[77,1](181, 179) -> 178 -[78,1](182, 182) -> 179 -[78,1](183, 182) -> 180 -[78,1](184, 182) -> 181 -[79,1](185, 185) -> 182 -[79,1](186, 185) -> 183 -[79,1](187, 185) -> 184 -[80,1](188, 188) -> 185 -[80,1](189, 188) -> 186 -[80,1](190, 188) -> 187 -[81,1](191, 191) -> 188 -[81,1](192, 191) -> 189 -[81,1](193, 191) -> 190 -[82,1](194, 194) -> 191 -[82,1](195, 194) -> 192 -[82,1](196, 194) -> 193 -[83,1](197, 197) -> 194 -[83,1](198, 197) -> 195 -[83,1](199, 197) -> 196 -[84,1](200, 200) -> 197 -[84,1](201, 200) -> 198 -[84,1](202, 200) -> 199 -[85,1](203, 203) -> 200 -[85,1](204, 203) -> 201 -[85,1](205, 203) -> 202 -[86,1](206, 206) -> 203 -[86,1](207, 206) -> 204 -[86,1](208, 206) -> 205 -[87,1](209, 209) -> 206 -[87,1](210, 209) -> 207 -[87,1](211, 209) -> 208 -[88,1](212, 212) -> 209 -[88,1](213, 212) -> 210 -[88,1](214, 212) -> 211 -[89,1](215, 215) -> 212 -[89,1](216, 215) -> 213 -[89,1](217, 215) -> 214 -[90,1](218, 218) -> 215 -[90,1](219, 218) -> 216 -[90,1](220, 218) -> 217 -[91,1](221, 221) -> 218 -[91,1](222, 221) -> 219 -[91,1](223, 221) -> 220 -[92,1](224, 224) -> 221 -[92,1](225, 224) -> 222 -[92,1](226, 224) -> 223 -[93,1](227, 227) -> 224 -[93,1](228, 227) -> 225 -[93,1](229, 227) -> 226 -[94,1](230, 230) -> 227 -[94,1](231, 230) -> 228 -[94,1](232, 230) -> 229 -[95,1](233, 233) -> 230 -[95,1](234, 233) -> 231 -[95,1](235, 233) -> 232 -[96,1](236, 236) -> 233 -[96,1](237, 236) -> 234 -[96,1](238, 236) -> 235 -[97,1](239, 239) -> 236 -[97,1](240, 239) -> 237 -[97,1](241, 239) -> 238 -[98,1](242, 242) -> 239 -[98,1](243, 242) -> 240 -[98,1](244, 242) -> 241 -[99,1](245, 245) -> 242 -[99,1](246, 245) -> 243 -[99,1](247, 245) -> 244 -[100,1](248, 248) -> 245 -[100,1](249, 248) -> 246 -[100,1](250, 248) -> 247 -[c0,1] -> 248 -[a,1] -> 249 -[b,1] -> 250 -Constraints -1125899906842623 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/CAV23/OEGrover/75/circuit.qasm b/benchmarks/CAV23/OEGrover/75/circuit.qasm index 929a8450a..d10694f92 100644 --- a/benchmarks/CAV23/OEGrover/75/circuit.qasm +++ b/benchmarks/CAV23/OEGrover/75/circuit.qasm @@ -1,192 +1,192 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[150]; +qreg qubits[149]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -ccx qubits[0], qubits[1], qubits[76]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[73], qubits[147], qubits[148]; -cz qubits[148], qubits[74]; -ccx qubits[73], qubits[147], qubits[148]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[0], qubits[1], qubits[76]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +cz qubits[146], qubits[147]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -227,449 +227,449 @@ x qubits[72]; x qubits[74]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; -ccx qubits[0], qubits[1], qubits[76]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[73], qubits[147], qubits[148]; -cz qubits[148], qubits[74]; -ccx qubits[73], qubits[147], qubits[148]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[0], qubits[1], qubits[76]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +cz qubits[146], qubits[147]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; -z qubits[75]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +z qubits[148]; diff --git a/benchmarks/CAV23/OEGrover/75/post.hsl b/benchmarks/CAV23/OEGrover/75/post.hsl index 9b08e0354..4f416c82a 100644 --- a/benchmarks/CAV23/OEGrover/75/post.hsl +++ b/benchmarks/CAV23/OEGrover/75/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 36 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/CAV23/OEGrover/75/post.lsta b/benchmarks/CAV23/OEGrover/75/post.lsta deleted file mode 100644 index c8598f315..000000000 --- a/benchmarks/CAV23/OEGrover/75/post.lsta +++ /dev/null @@ -1,382 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 152) -> 149 -[76,1](151, 153) -> 150 -[77,1](154, 154) -> 151 -[77,1](155, 154) -> 152 -[77,1](156, 154) -> 153 -[78,1](157, 157) -> 154 -[78,1](158, 157) -> 155 -[78,1](159, 157) -> 156 -[79,1](160, 160) -> 157 -[79,1](161, 160) -> 158 -[79,1](162, 160) -> 159 -[80,1](163, 163) -> 160 -[80,1](164, 163) -> 161 -[80,1](165, 163) -> 162 -[81,1](166, 166) -> 163 -[81,1](167, 166) -> 164 -[81,1](168, 166) -> 165 -[82,1](169, 169) -> 166 -[82,1](170, 169) -> 167 -[82,1](171, 169) -> 168 -[83,1](172, 172) -> 169 -[83,1](173, 172) -> 170 -[83,1](174, 172) -> 171 -[84,1](175, 175) -> 172 -[84,1](176, 175) -> 173 -[84,1](177, 175) -> 174 -[85,1](178, 178) -> 175 -[85,1](179, 178) -> 176 -[85,1](180, 178) -> 177 -[86,1](181, 181) -> 178 -[86,1](182, 181) -> 179 -[86,1](183, 181) -> 180 -[87,1](184, 184) -> 181 -[87,1](185, 184) -> 182 -[87,1](186, 184) -> 183 -[88,1](187, 187) -> 184 -[88,1](188, 187) -> 185 -[88,1](189, 187) -> 186 -[89,1](190, 190) -> 187 -[89,1](191, 190) -> 188 -[89,1](192, 190) -> 189 -[90,1](193, 193) -> 190 -[90,1](194, 193) -> 191 -[90,1](195, 193) -> 192 -[91,1](196, 196) -> 193 -[91,1](197, 196) -> 194 -[91,1](198, 196) -> 195 -[92,1](199, 199) -> 196 -[92,1](200, 199) -> 197 -[92,1](201, 199) -> 198 -[93,1](202, 202) -> 199 -[93,1](203, 202) -> 200 -[93,1](204, 202) -> 201 -[94,1](205, 205) -> 202 -[94,1](206, 205) -> 203 -[94,1](207, 205) -> 204 -[95,1](208, 208) -> 205 -[95,1](209, 208) -> 206 -[95,1](210, 208) -> 207 -[96,1](211, 211) -> 208 -[96,1](212, 211) -> 209 -[96,1](213, 211) -> 210 -[97,1](214, 214) -> 211 -[97,1](215, 214) -> 212 -[97,1](216, 214) -> 213 -[98,1](217, 217) -> 214 -[98,1](218, 217) -> 215 -[98,1](219, 217) -> 216 -[99,1](220, 220) -> 217 -[99,1](221, 220) -> 218 -[99,1](222, 220) -> 219 -[100,1](223, 223) -> 220 -[100,1](224, 223) -> 221 -[100,1](225, 223) -> 222 -[101,1](226, 226) -> 223 -[101,1](227, 226) -> 224 -[101,1](228, 226) -> 225 -[102,1](229, 229) -> 226 -[102,1](230, 229) -> 227 -[102,1](231, 229) -> 228 -[103,1](232, 232) -> 229 -[103,1](233, 232) -> 230 -[103,1](234, 232) -> 231 -[104,1](235, 235) -> 232 -[104,1](236, 235) -> 233 -[104,1](237, 235) -> 234 -[105,1](238, 238) -> 235 -[105,1](239, 238) -> 236 -[105,1](240, 238) -> 237 -[106,1](241, 241) -> 238 -[106,1](242, 241) -> 239 -[106,1](243, 241) -> 240 -[107,1](244, 244) -> 241 -[107,1](245, 244) -> 242 -[107,1](246, 244) -> 243 -[108,1](247, 247) -> 244 -[108,1](248, 247) -> 245 -[108,1](249, 247) -> 246 -[109,1](250, 250) -> 247 -[109,1](251, 250) -> 248 -[109,1](252, 250) -> 249 -[110,1](253, 253) -> 250 -[110,1](254, 253) -> 251 -[110,1](255, 253) -> 252 -[111,1](256, 256) -> 253 -[111,1](257, 256) -> 254 -[111,1](258, 256) -> 255 -[112,1](259, 259) -> 256 -[112,1](260, 259) -> 257 -[112,1](261, 259) -> 258 -[113,1](262, 262) -> 259 -[113,1](263, 262) -> 260 -[113,1](264, 262) -> 261 -[114,1](265, 265) -> 262 -[114,1](266, 265) -> 263 -[114,1](267, 265) -> 264 -[115,1](268, 268) -> 265 -[115,1](269, 268) -> 266 -[115,1](270, 268) -> 267 -[116,1](271, 271) -> 268 -[116,1](272, 271) -> 269 -[116,1](273, 271) -> 270 -[117,1](274, 274) -> 271 -[117,1](275, 274) -> 272 -[117,1](276, 274) -> 273 -[118,1](277, 277) -> 274 -[118,1](278, 277) -> 275 -[118,1](279, 277) -> 276 -[119,1](280, 280) -> 277 -[119,1](281, 280) -> 278 -[119,1](282, 280) -> 279 -[120,1](283, 283) -> 280 -[120,1](284, 283) -> 281 -[120,1](285, 283) -> 282 -[121,1](286, 286) -> 283 -[121,1](287, 286) -> 284 -[121,1](288, 286) -> 285 -[122,1](289, 289) -> 286 -[122,1](290, 289) -> 287 -[122,1](291, 289) -> 288 -[123,1](292, 292) -> 289 -[123,1](293, 292) -> 290 -[123,1](294, 292) -> 291 -[124,1](295, 295) -> 292 -[124,1](296, 295) -> 293 -[124,1](297, 295) -> 294 -[125,1](298, 298) -> 295 -[125,1](299, 298) -> 296 -[125,1](300, 298) -> 297 -[126,1](301, 301) -> 298 -[126,1](302, 301) -> 299 -[126,1](303, 301) -> 300 -[127,1](304, 304) -> 301 -[127,1](305, 304) -> 302 -[127,1](306, 304) -> 303 -[128,1](307, 307) -> 304 -[128,1](308, 307) -> 305 -[128,1](309, 307) -> 306 -[129,1](310, 310) -> 307 -[129,1](311, 310) -> 308 -[129,1](312, 310) -> 309 -[130,1](313, 313) -> 310 -[130,1](314, 313) -> 311 -[130,1](315, 313) -> 312 -[131,1](316, 316) -> 313 -[131,1](317, 316) -> 314 -[131,1](318, 316) -> 315 -[132,1](319, 319) -> 316 -[132,1](320, 319) -> 317 -[132,1](321, 319) -> 318 -[133,1](322, 322) -> 319 -[133,1](323, 322) -> 320 -[133,1](324, 322) -> 321 -[134,1](325, 325) -> 322 -[134,1](326, 325) -> 323 -[134,1](327, 325) -> 324 -[135,1](328, 328) -> 325 -[135,1](329, 328) -> 326 -[135,1](330, 328) -> 327 -[136,1](331, 331) -> 328 -[136,1](332, 331) -> 329 -[136,1](333, 331) -> 330 -[137,1](334, 334) -> 331 -[137,1](335, 334) -> 332 -[137,1](336, 334) -> 333 -[138,1](337, 337) -> 334 -[138,1](338, 337) -> 335 -[138,1](339, 337) -> 336 -[139,1](340, 340) -> 337 -[139,1](341, 340) -> 338 -[139,1](342, 340) -> 339 -[140,1](343, 343) -> 340 -[140,1](344, 343) -> 341 -[140,1](345, 343) -> 342 -[141,1](346, 346) -> 343 -[141,1](347, 346) -> 344 -[141,1](348, 346) -> 345 -[142,1](349, 349) -> 346 -[142,1](350, 349) -> 347 -[142,1](351, 349) -> 348 -[143,1](352, 352) -> 349 -[143,1](353, 352) -> 350 -[143,1](354, 352) -> 351 -[144,1](355, 355) -> 352 -[144,1](356, 355) -> 353 -[144,1](357, 355) -> 354 -[145,1](358, 358) -> 355 -[145,1](359, 358) -> 356 -[145,1](360, 358) -> 357 -[146,1](361, 361) -> 358 -[146,1](362, 361) -> 359 -[146,1](363, 361) -> 360 -[147,1](364, 364) -> 361 -[147,1](365, 364) -> 362 -[147,1](366, 364) -> 363 -[148,1](367, 367) -> 364 -[148,1](368, 367) -> 365 -[148,1](369, 367) -> 366 -[149,1](370, 370) -> 367 -[149,1](371, 370) -> 368 -[149,1](372, 370) -> 369 -[150,1](373, 373) -> 370 -[150,1](374, 373) -> 371 -[150,1](375, 373) -> 372 -[p1,1] -> 373 -[p2,1] -> 374 -[p3,1] -> 375 \ No newline at end of file diff --git a/benchmarks/CAV23/OEGrover/75/pre.hsl b/benchmarks/CAV23/OEGrover/75/pre.hsl index 14b018f8f..9b0db6601 100644 --- a/benchmarks/CAV23/OEGrover/75/pre.hsl +++ b/benchmarks/CAV23/OEGrover/75/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 36 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 37778931862957161709567 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/CAV23/OEGrover/75/pre.lsta b/benchmarks/CAV23/OEGrover/75/pre.lsta deleted file mode 100644 index 7766e40ae..000000000 --- a/benchmarks/CAV23/OEGrover/75/pre.lsta +++ /dev/null @@ -1,386 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 152) -> 149 -[76,1](151, 153) -> 150 -[77,1](154, 154) -> 151 -[77,1](155, 154) -> 152 -[77,1](156, 154) -> 153 -[78,1](157, 157) -> 154 -[78,1](158, 157) -> 155 -[78,1](159, 157) -> 156 -[79,1](160, 160) -> 157 -[79,1](161, 160) -> 158 -[79,1](162, 160) -> 159 -[80,1](163, 163) -> 160 -[80,1](164, 163) -> 161 -[80,1](165, 163) -> 162 -[81,1](166, 166) -> 163 -[81,1](167, 166) -> 164 -[81,1](168, 166) -> 165 -[82,1](169, 169) -> 166 -[82,1](170, 169) -> 167 -[82,1](171, 169) -> 168 -[83,1](172, 172) -> 169 -[83,1](173, 172) -> 170 -[83,1](174, 172) -> 171 -[84,1](175, 175) -> 172 -[84,1](176, 175) -> 173 -[84,1](177, 175) -> 174 -[85,1](178, 178) -> 175 -[85,1](179, 178) -> 176 -[85,1](180, 178) -> 177 -[86,1](181, 181) -> 178 -[86,1](182, 181) -> 179 -[86,1](183, 181) -> 180 -[87,1](184, 184) -> 181 -[87,1](185, 184) -> 182 -[87,1](186, 184) -> 183 -[88,1](187, 187) -> 184 -[88,1](188, 187) -> 185 -[88,1](189, 187) -> 186 -[89,1](190, 190) -> 187 -[89,1](191, 190) -> 188 -[89,1](192, 190) -> 189 -[90,1](193, 193) -> 190 -[90,1](194, 193) -> 191 -[90,1](195, 193) -> 192 -[91,1](196, 196) -> 193 -[91,1](197, 196) -> 194 -[91,1](198, 196) -> 195 -[92,1](199, 199) -> 196 -[92,1](200, 199) -> 197 -[92,1](201, 199) -> 198 -[93,1](202, 202) -> 199 -[93,1](203, 202) -> 200 -[93,1](204, 202) -> 201 -[94,1](205, 205) -> 202 -[94,1](206, 205) -> 203 -[94,1](207, 205) -> 204 -[95,1](208, 208) -> 205 -[95,1](209, 208) -> 206 -[95,1](210, 208) -> 207 -[96,1](211, 211) -> 208 -[96,1](212, 211) -> 209 -[96,1](213, 211) -> 210 -[97,1](214, 214) -> 211 -[97,1](215, 214) -> 212 -[97,1](216, 214) -> 213 -[98,1](217, 217) -> 214 -[98,1](218, 217) -> 215 -[98,1](219, 217) -> 216 -[99,1](220, 220) -> 217 -[99,1](221, 220) -> 218 -[99,1](222, 220) -> 219 -[100,1](223, 223) -> 220 -[100,1](224, 223) -> 221 -[100,1](225, 223) -> 222 -[101,1](226, 226) -> 223 -[101,1](227, 226) -> 224 -[101,1](228, 226) -> 225 -[102,1](229, 229) -> 226 -[102,1](230, 229) -> 227 -[102,1](231, 229) -> 228 -[103,1](232, 232) -> 229 -[103,1](233, 232) -> 230 -[103,1](234, 232) -> 231 -[104,1](235, 235) -> 232 -[104,1](236, 235) -> 233 -[104,1](237, 235) -> 234 -[105,1](238, 238) -> 235 -[105,1](239, 238) -> 236 -[105,1](240, 238) -> 237 -[106,1](241, 241) -> 238 -[106,1](242, 241) -> 239 -[106,1](243, 241) -> 240 -[107,1](244, 244) -> 241 -[107,1](245, 244) -> 242 -[107,1](246, 244) -> 243 -[108,1](247, 247) -> 244 -[108,1](248, 247) -> 245 -[108,1](249, 247) -> 246 -[109,1](250, 250) -> 247 -[109,1](251, 250) -> 248 -[109,1](252, 250) -> 249 -[110,1](253, 253) -> 250 -[110,1](254, 253) -> 251 -[110,1](255, 253) -> 252 -[111,1](256, 256) -> 253 -[111,1](257, 256) -> 254 -[111,1](258, 256) -> 255 -[112,1](259, 259) -> 256 -[112,1](260, 259) -> 257 -[112,1](261, 259) -> 258 -[113,1](262, 262) -> 259 -[113,1](263, 262) -> 260 -[113,1](264, 262) -> 261 -[114,1](265, 265) -> 262 -[114,1](266, 265) -> 263 -[114,1](267, 265) -> 264 -[115,1](268, 268) -> 265 -[115,1](269, 268) -> 266 -[115,1](270, 268) -> 267 -[116,1](271, 271) -> 268 -[116,1](272, 271) -> 269 -[116,1](273, 271) -> 270 -[117,1](274, 274) -> 271 -[117,1](275, 274) -> 272 -[117,1](276, 274) -> 273 -[118,1](277, 277) -> 274 -[118,1](278, 277) -> 275 -[118,1](279, 277) -> 276 -[119,1](280, 280) -> 277 -[119,1](281, 280) -> 278 -[119,1](282, 280) -> 279 -[120,1](283, 283) -> 280 -[120,1](284, 283) -> 281 -[120,1](285, 283) -> 282 -[121,1](286, 286) -> 283 -[121,1](287, 286) -> 284 -[121,1](288, 286) -> 285 -[122,1](289, 289) -> 286 -[122,1](290, 289) -> 287 -[122,1](291, 289) -> 288 -[123,1](292, 292) -> 289 -[123,1](293, 292) -> 290 -[123,1](294, 292) -> 291 -[124,1](295, 295) -> 292 -[124,1](296, 295) -> 293 -[124,1](297, 295) -> 294 -[125,1](298, 298) -> 295 -[125,1](299, 298) -> 296 -[125,1](300, 298) -> 297 -[126,1](301, 301) -> 298 -[126,1](302, 301) -> 299 -[126,1](303, 301) -> 300 -[127,1](304, 304) -> 301 -[127,1](305, 304) -> 302 -[127,1](306, 304) -> 303 -[128,1](307, 307) -> 304 -[128,1](308, 307) -> 305 -[128,1](309, 307) -> 306 -[129,1](310, 310) -> 307 -[129,1](311, 310) -> 308 -[129,1](312, 310) -> 309 -[130,1](313, 313) -> 310 -[130,1](314, 313) -> 311 -[130,1](315, 313) -> 312 -[131,1](316, 316) -> 313 -[131,1](317, 316) -> 314 -[131,1](318, 316) -> 315 -[132,1](319, 319) -> 316 -[132,1](320, 319) -> 317 -[132,1](321, 319) -> 318 -[133,1](322, 322) -> 319 -[133,1](323, 322) -> 320 -[133,1](324, 322) -> 321 -[134,1](325, 325) -> 322 -[134,1](326, 325) -> 323 -[134,1](327, 325) -> 324 -[135,1](328, 328) -> 325 -[135,1](329, 328) -> 326 -[135,1](330, 328) -> 327 -[136,1](331, 331) -> 328 -[136,1](332, 331) -> 329 -[136,1](333, 331) -> 330 -[137,1](334, 334) -> 331 -[137,1](335, 334) -> 332 -[137,1](336, 334) -> 333 -[138,1](337, 337) -> 334 -[138,1](338, 337) -> 335 -[138,1](339, 337) -> 336 -[139,1](340, 340) -> 337 -[139,1](341, 340) -> 338 -[139,1](342, 340) -> 339 -[140,1](343, 343) -> 340 -[140,1](344, 343) -> 341 -[140,1](345, 343) -> 342 -[141,1](346, 346) -> 343 -[141,1](347, 346) -> 344 -[141,1](348, 346) -> 345 -[142,1](349, 349) -> 346 -[142,1](350, 349) -> 347 -[142,1](351, 349) -> 348 -[143,1](352, 352) -> 349 -[143,1](353, 352) -> 350 -[143,1](354, 352) -> 351 -[144,1](355, 355) -> 352 -[144,1](356, 355) -> 353 -[144,1](357, 355) -> 354 -[145,1](358, 358) -> 355 -[145,1](359, 358) -> 356 -[145,1](360, 358) -> 357 -[146,1](361, 361) -> 358 -[146,1](362, 361) -> 359 -[146,1](363, 361) -> 360 -[147,1](364, 364) -> 361 -[147,1](365, 364) -> 362 -[147,1](366, 364) -> 363 -[148,1](367, 367) -> 364 -[148,1](368, 367) -> 365 -[148,1](369, 367) -> 366 -[149,1](370, 370) -> 367 -[149,1](371, 370) -> 368 -[149,1](372, 370) -> 369 -[150,1](373, 373) -> 370 -[150,1](374, 373) -> 371 -[150,1](375, 373) -> 372 -[c0,1] -> 373 -[a,1] -> 374 -[b,1] -> 375 -Constraints -37778931862957161709567 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/LSTA/OEGrover/02/post.lsta b/benchmarks/LSTA/OEGrover/02/post.lsta deleted file mode 100644 index 68d892035..000000000 --- a/benchmarks/LSTA/OEGrover/02/post.lsta +++ /dev/null @@ -1,14 +0,0 @@ -Predicates -p1 := (and (< (* $R $R) (* aR aR)) (= $I 0)) -p2 := (and (= $R 0) (= $I 0)) -p3 := (and (> (* $R $R) (* bR bR)) (= $I 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 6) -> 3 -[3,1](5, 7) -> 4 -[p2,1] -> 5 -[p1,1] -> 6 -[p3,1] -> 7 \ No newline at end of file diff --git a/benchmarks/LSTA/OEGrover/02/pre.lsta b/benchmarks/LSTA/OEGrover/02/pre.lsta deleted file mode 100644 index ce3305824..000000000 --- a/benchmarks/LSTA/OEGrover/02/pre.lsta +++ /dev/null @@ -1,18 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 6) -> 3 -[3,1](5, 7) -> 4 -[c0,1] -> 5 -[a,1] -> 6 -[b,1] -> 7 -Constraints -3 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 \ No newline at end of file diff --git a/benchmarks/LSTA/OEGrover/100/circuit.qasm b/benchmarks/LSTA/OEGrover/100/circuit.qasm index c50626884..1e7b3641f 100644 --- a/benchmarks/LSTA/OEGrover/100/circuit.qasm +++ b/benchmarks/LSTA/OEGrover/100/circuit.qasm @@ -1,254 +1,254 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[200]; +qreg qubits[199]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -x qubits[92]; -x qubits[94]; -x qubits[96]; -x qubits[98]; -ccx qubits[0], qubits[1], qubits[101]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[98], qubits[197], qubits[198]; -cz qubits[198], qubits[99]; -ccx qubits[98], qubits[197], qubits[198]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[0], qubits[1], qubits[101]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +x qubits[183]; +x qubits[187]; +x qubits[191]; +x qubits[195]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[194], qubits[195], qubits[196]; +cz qubits[196], qubits[197]; +ccx qubits[194], qubits[195], qubits[196]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -301,599 +301,599 @@ x qubits[96]; x qubits[98]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; h qubits[97]; -h qubits[98]; h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +h qubits[193]; +h qubits[195]; +h qubits[197]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; x qubits[97]; -x qubits[98]; x qubits[99]; -ccx qubits[0], qubits[1], qubits[101]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[98], qubits[197], qubits[198]; -cz qubits[198], qubits[99]; -ccx qubits[98], qubits[197], qubits[198]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[0], qubits[1], qubits[101]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +x qubits[193]; +x qubits[195]; +x qubits[197]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[194], qubits[195], qubits[196]; +cz qubits[196], qubits[197]; +ccx qubits[194], qubits[195], qubits[196]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; x qubits[97]; -x qubits[98]; x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +x qubits[193]; +x qubits[195]; +x qubits[197]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; h qubits[97]; -h qubits[98]; h qubits[99]; -z qubits[100]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +h qubits[193]; +h qubits[195]; +h qubits[197]; +z qubits[198]; diff --git a/benchmarks/LSTA/OEGrover/100/post.hsl b/benchmarks/LSTA/OEGrover/100/post.hsl index 514d12cfd..07b7179d8 100644 --- a/benchmarks/LSTA/OEGrover/100/post.hsl +++ b/benchmarks/LSTA/OEGrover/100/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 49 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/LSTA/OEGrover/100/post.lsta b/benchmarks/LSTA/OEGrover/100/post.lsta deleted file mode 100644 index 1f1eae473..000000000 --- a/benchmarks/LSTA/OEGrover/100/post.lsta +++ /dev/null @@ -1,507 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 195) -> 193 -[98,1](195, 196) -> 194 -[99,1](197, 197) -> 195 -[99,1](198, 197) -> 196 -[100,1](199, 199) -> 197 -[100,1](199, 200) -> 198 -[101,1](201, 202) -> 199 -[101,1](201, 203) -> 200 -[102,1](204, 204) -> 201 -[102,1](205, 204) -> 202 -[102,1](206, 204) -> 203 -[103,1](207, 207) -> 204 -[103,1](208, 207) -> 205 -[103,1](209, 207) -> 206 -[104,1](210, 210) -> 207 -[104,1](211, 210) -> 208 -[104,1](212, 210) -> 209 -[105,1](213, 213) -> 210 -[105,1](214, 213) -> 211 -[105,1](215, 213) -> 212 -[106,1](216, 216) -> 213 -[106,1](217, 216) -> 214 -[106,1](218, 216) -> 215 -[107,1](219, 219) -> 216 -[107,1](220, 219) -> 217 -[107,1](221, 219) -> 218 -[108,1](222, 222) -> 219 -[108,1](223, 222) -> 220 -[108,1](224, 222) -> 221 -[109,1](225, 225) -> 222 -[109,1](226, 225) -> 223 -[109,1](227, 225) -> 224 -[110,1](228, 228) -> 225 -[110,1](229, 228) -> 226 -[110,1](230, 228) -> 227 -[111,1](231, 231) -> 228 -[111,1](232, 231) -> 229 -[111,1](233, 231) -> 230 -[112,1](234, 234) -> 231 -[112,1](235, 234) -> 232 -[112,1](236, 234) -> 233 -[113,1](237, 237) -> 234 -[113,1](238, 237) -> 235 -[113,1](239, 237) -> 236 -[114,1](240, 240) -> 237 -[114,1](241, 240) -> 238 -[114,1](242, 240) -> 239 -[115,1](243, 243) -> 240 -[115,1](244, 243) -> 241 -[115,1](245, 243) -> 242 -[116,1](246, 246) -> 243 -[116,1](247, 246) -> 244 -[116,1](248, 246) -> 245 -[117,1](249, 249) -> 246 -[117,1](250, 249) -> 247 -[117,1](251, 249) -> 248 -[118,1](252, 252) -> 249 -[118,1](253, 252) -> 250 -[118,1](254, 252) -> 251 -[119,1](255, 255) -> 252 -[119,1](256, 255) -> 253 -[119,1](257, 255) -> 254 -[120,1](258, 258) -> 255 -[120,1](259, 258) -> 256 -[120,1](260, 258) -> 257 -[121,1](261, 261) -> 258 -[121,1](262, 261) -> 259 -[121,1](263, 261) -> 260 -[122,1](264, 264) -> 261 -[122,1](265, 264) -> 262 -[122,1](266, 264) -> 263 -[123,1](267, 267) -> 264 -[123,1](268, 267) -> 265 -[123,1](269, 267) -> 266 -[124,1](270, 270) -> 267 -[124,1](271, 270) -> 268 -[124,1](272, 270) -> 269 -[125,1](273, 273) -> 270 -[125,1](274, 273) -> 271 -[125,1](275, 273) -> 272 -[126,1](276, 276) -> 273 -[126,1](277, 276) -> 274 -[126,1](278, 276) -> 275 -[127,1](279, 279) -> 276 -[127,1](280, 279) -> 277 -[127,1](281, 279) -> 278 -[128,1](282, 282) -> 279 -[128,1](283, 282) -> 280 -[128,1](284, 282) -> 281 -[129,1](285, 285) -> 282 -[129,1](286, 285) -> 283 -[129,1](287, 285) -> 284 -[130,1](288, 288) -> 285 -[130,1](289, 288) -> 286 -[130,1](290, 288) -> 287 -[131,1](291, 291) -> 288 -[131,1](292, 291) -> 289 -[131,1](293, 291) -> 290 -[132,1](294, 294) -> 291 -[132,1](295, 294) -> 292 -[132,1](296, 294) -> 293 -[133,1](297, 297) -> 294 -[133,1](298, 297) -> 295 -[133,1](299, 297) -> 296 -[134,1](300, 300) -> 297 -[134,1](301, 300) -> 298 -[134,1](302, 300) -> 299 -[135,1](303, 303) -> 300 -[135,1](304, 303) -> 301 -[135,1](305, 303) -> 302 -[136,1](306, 306) -> 303 -[136,1](307, 306) -> 304 -[136,1](308, 306) -> 305 -[137,1](309, 309) -> 306 -[137,1](310, 309) -> 307 -[137,1](311, 309) -> 308 -[138,1](312, 312) -> 309 -[138,1](313, 312) -> 310 -[138,1](314, 312) -> 311 -[139,1](315, 315) -> 312 -[139,1](316, 315) -> 313 -[139,1](317, 315) -> 314 -[140,1](318, 318) -> 315 -[140,1](319, 318) -> 316 -[140,1](320, 318) -> 317 -[141,1](321, 321) -> 318 -[141,1](322, 321) -> 319 -[141,1](323, 321) -> 320 -[142,1](324, 324) -> 321 -[142,1](325, 324) -> 322 -[142,1](326, 324) -> 323 -[143,1](327, 327) -> 324 -[143,1](328, 327) -> 325 -[143,1](329, 327) -> 326 -[144,1](330, 330) -> 327 -[144,1](331, 330) -> 328 -[144,1](332, 330) -> 329 -[145,1](333, 333) -> 330 -[145,1](334, 333) -> 331 -[145,1](335, 333) -> 332 -[146,1](336, 336) -> 333 -[146,1](337, 336) -> 334 -[146,1](338, 336) -> 335 -[147,1](339, 339) -> 336 -[147,1](340, 339) -> 337 -[147,1](341, 339) -> 338 -[148,1](342, 342) -> 339 -[148,1](343, 342) -> 340 -[148,1](344, 342) -> 341 -[149,1](345, 345) -> 342 -[149,1](346, 345) -> 343 -[149,1](347, 345) -> 344 -[150,1](348, 348) -> 345 -[150,1](349, 348) -> 346 -[150,1](350, 348) -> 347 -[151,1](351, 351) -> 348 -[151,1](352, 351) -> 349 -[151,1](353, 351) -> 350 -[152,1](354, 354) -> 351 -[152,1](355, 354) -> 352 -[152,1](356, 354) -> 353 -[153,1](357, 357) -> 354 -[153,1](358, 357) -> 355 -[153,1](359, 357) -> 356 -[154,1](360, 360) -> 357 -[154,1](361, 360) -> 358 -[154,1](362, 360) -> 359 -[155,1](363, 363) -> 360 -[155,1](364, 363) -> 361 -[155,1](365, 363) -> 362 -[156,1](366, 366) -> 363 -[156,1](367, 366) -> 364 -[156,1](368, 366) -> 365 -[157,1](369, 369) -> 366 -[157,1](370, 369) -> 367 -[157,1](371, 369) -> 368 -[158,1](372, 372) -> 369 -[158,1](373, 372) -> 370 -[158,1](374, 372) -> 371 -[159,1](375, 375) -> 372 -[159,1](376, 375) -> 373 -[159,1](377, 375) -> 374 -[160,1](378, 378) -> 375 -[160,1](379, 378) -> 376 -[160,1](380, 378) -> 377 -[161,1](381, 381) -> 378 -[161,1](382, 381) -> 379 -[161,1](383, 381) -> 380 -[162,1](384, 384) -> 381 -[162,1](385, 384) -> 382 -[162,1](386, 384) -> 383 -[163,1](387, 387) -> 384 -[163,1](388, 387) -> 385 -[163,1](389, 387) -> 386 -[164,1](390, 390) -> 387 -[164,1](391, 390) -> 388 -[164,1](392, 390) -> 389 -[165,1](393, 393) -> 390 -[165,1](394, 393) -> 391 -[165,1](395, 393) -> 392 -[166,1](396, 396) -> 393 -[166,1](397, 396) -> 394 -[166,1](398, 396) -> 395 -[167,1](399, 399) -> 396 -[167,1](400, 399) -> 397 -[167,1](401, 399) -> 398 -[168,1](402, 402) -> 399 -[168,1](403, 402) -> 400 -[168,1](404, 402) -> 401 -[169,1](405, 405) -> 402 -[169,1](406, 405) -> 403 -[169,1](407, 405) -> 404 -[170,1](408, 408) -> 405 -[170,1](409, 408) -> 406 -[170,1](410, 408) -> 407 -[171,1](411, 411) -> 408 -[171,1](412, 411) -> 409 -[171,1](413, 411) -> 410 -[172,1](414, 414) -> 411 -[172,1](415, 414) -> 412 -[172,1](416, 414) -> 413 -[173,1](417, 417) -> 414 -[173,1](418, 417) -> 415 -[173,1](419, 417) -> 416 -[174,1](420, 420) -> 417 -[174,1](421, 420) -> 418 -[174,1](422, 420) -> 419 -[175,1](423, 423) -> 420 -[175,1](424, 423) -> 421 -[175,1](425, 423) -> 422 -[176,1](426, 426) -> 423 -[176,1](427, 426) -> 424 -[176,1](428, 426) -> 425 -[177,1](429, 429) -> 426 -[177,1](430, 429) -> 427 -[177,1](431, 429) -> 428 -[178,1](432, 432) -> 429 -[178,1](433, 432) -> 430 -[178,1](434, 432) -> 431 -[179,1](435, 435) -> 432 -[179,1](436, 435) -> 433 -[179,1](437, 435) -> 434 -[180,1](438, 438) -> 435 -[180,1](439, 438) -> 436 -[180,1](440, 438) -> 437 -[181,1](441, 441) -> 438 -[181,1](442, 441) -> 439 -[181,1](443, 441) -> 440 -[182,1](444, 444) -> 441 -[182,1](445, 444) -> 442 -[182,1](446, 444) -> 443 -[183,1](447, 447) -> 444 -[183,1](448, 447) -> 445 -[183,1](449, 447) -> 446 -[184,1](450, 450) -> 447 -[184,1](451, 450) -> 448 -[184,1](452, 450) -> 449 -[185,1](453, 453) -> 450 -[185,1](454, 453) -> 451 -[185,1](455, 453) -> 452 -[186,1](456, 456) -> 453 -[186,1](457, 456) -> 454 -[186,1](458, 456) -> 455 -[187,1](459, 459) -> 456 -[187,1](460, 459) -> 457 -[187,1](461, 459) -> 458 -[188,1](462, 462) -> 459 -[188,1](463, 462) -> 460 -[188,1](464, 462) -> 461 -[189,1](465, 465) -> 462 -[189,1](466, 465) -> 463 -[189,1](467, 465) -> 464 -[190,1](468, 468) -> 465 -[190,1](469, 468) -> 466 -[190,1](470, 468) -> 467 -[191,1](471, 471) -> 468 -[191,1](472, 471) -> 469 -[191,1](473, 471) -> 470 -[192,1](474, 474) -> 471 -[192,1](475, 474) -> 472 -[192,1](476, 474) -> 473 -[193,1](477, 477) -> 474 -[193,1](478, 477) -> 475 -[193,1](479, 477) -> 476 -[194,1](480, 480) -> 477 -[194,1](481, 480) -> 478 -[194,1](482, 480) -> 479 -[195,1](483, 483) -> 480 -[195,1](484, 483) -> 481 -[195,1](485, 483) -> 482 -[196,1](486, 486) -> 483 -[196,1](487, 486) -> 484 -[196,1](488, 486) -> 485 -[197,1](489, 489) -> 486 -[197,1](490, 489) -> 487 -[197,1](491, 489) -> 488 -[198,1](492, 492) -> 489 -[198,1](493, 492) -> 490 -[198,1](494, 492) -> 491 -[199,1](495, 495) -> 492 -[199,1](496, 495) -> 493 -[199,1](497, 495) -> 494 -[200,1](498, 498) -> 495 -[200,1](499, 498) -> 496 -[200,1](500, 498) -> 497 -[p1,1] -> 498 -[p2,1] -> 499 -[p3,1] -> 500 \ No newline at end of file diff --git a/benchmarks/LSTA/OEGrover/100/pre.hsl b/benchmarks/LSTA/OEGrover/100/pre.hsl index 37ca0a1bd..15bffa32f 100644 --- a/benchmarks/LSTA/OEGrover/100/pre.hsl +++ b/benchmarks/LSTA/OEGrover/100/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 49 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1267650600228229401496703205375 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/LSTA/OEGrover/100/pre.lsta b/benchmarks/LSTA/OEGrover/100/pre.lsta deleted file mode 100644 index e9e5cf2a7..000000000 --- a/benchmarks/LSTA/OEGrover/100/pre.lsta +++ /dev/null @@ -1,511 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 195) -> 193 -[98,1](195, 196) -> 194 -[99,1](197, 197) -> 195 -[99,1](198, 197) -> 196 -[100,1](199, 199) -> 197 -[100,1](199, 200) -> 198 -[101,1](201, 202) -> 199 -[101,1](201, 203) -> 200 -[102,1](204, 204) -> 201 -[102,1](205, 204) -> 202 -[102,1](206, 204) -> 203 -[103,1](207, 207) -> 204 -[103,1](208, 207) -> 205 -[103,1](209, 207) -> 206 -[104,1](210, 210) -> 207 -[104,1](211, 210) -> 208 -[104,1](212, 210) -> 209 -[105,1](213, 213) -> 210 -[105,1](214, 213) -> 211 -[105,1](215, 213) -> 212 -[106,1](216, 216) -> 213 -[106,1](217, 216) -> 214 -[106,1](218, 216) -> 215 -[107,1](219, 219) -> 216 -[107,1](220, 219) -> 217 -[107,1](221, 219) -> 218 -[108,1](222, 222) -> 219 -[108,1](223, 222) -> 220 -[108,1](224, 222) -> 221 -[109,1](225, 225) -> 222 -[109,1](226, 225) -> 223 -[109,1](227, 225) -> 224 -[110,1](228, 228) -> 225 -[110,1](229, 228) -> 226 -[110,1](230, 228) -> 227 -[111,1](231, 231) -> 228 -[111,1](232, 231) -> 229 -[111,1](233, 231) -> 230 -[112,1](234, 234) -> 231 -[112,1](235, 234) -> 232 -[112,1](236, 234) -> 233 -[113,1](237, 237) -> 234 -[113,1](238, 237) -> 235 -[113,1](239, 237) -> 236 -[114,1](240, 240) -> 237 -[114,1](241, 240) -> 238 -[114,1](242, 240) -> 239 -[115,1](243, 243) -> 240 -[115,1](244, 243) -> 241 -[115,1](245, 243) -> 242 -[116,1](246, 246) -> 243 -[116,1](247, 246) -> 244 -[116,1](248, 246) -> 245 -[117,1](249, 249) -> 246 -[117,1](250, 249) -> 247 -[117,1](251, 249) -> 248 -[118,1](252, 252) -> 249 -[118,1](253, 252) -> 250 -[118,1](254, 252) -> 251 -[119,1](255, 255) -> 252 -[119,1](256, 255) -> 253 -[119,1](257, 255) -> 254 -[120,1](258, 258) -> 255 -[120,1](259, 258) -> 256 -[120,1](260, 258) -> 257 -[121,1](261, 261) -> 258 -[121,1](262, 261) -> 259 -[121,1](263, 261) -> 260 -[122,1](264, 264) -> 261 -[122,1](265, 264) -> 262 -[122,1](266, 264) -> 263 -[123,1](267, 267) -> 264 -[123,1](268, 267) -> 265 -[123,1](269, 267) -> 266 -[124,1](270, 270) -> 267 -[124,1](271, 270) -> 268 -[124,1](272, 270) -> 269 -[125,1](273, 273) -> 270 -[125,1](274, 273) -> 271 -[125,1](275, 273) -> 272 -[126,1](276, 276) -> 273 -[126,1](277, 276) -> 274 -[126,1](278, 276) -> 275 -[127,1](279, 279) -> 276 -[127,1](280, 279) -> 277 -[127,1](281, 279) -> 278 -[128,1](282, 282) -> 279 -[128,1](283, 282) -> 280 -[128,1](284, 282) -> 281 -[129,1](285, 285) -> 282 -[129,1](286, 285) -> 283 -[129,1](287, 285) -> 284 -[130,1](288, 288) -> 285 -[130,1](289, 288) -> 286 -[130,1](290, 288) -> 287 -[131,1](291, 291) -> 288 -[131,1](292, 291) -> 289 -[131,1](293, 291) -> 290 -[132,1](294, 294) -> 291 -[132,1](295, 294) -> 292 -[132,1](296, 294) -> 293 -[133,1](297, 297) -> 294 -[133,1](298, 297) -> 295 -[133,1](299, 297) -> 296 -[134,1](300, 300) -> 297 -[134,1](301, 300) -> 298 -[134,1](302, 300) -> 299 -[135,1](303, 303) -> 300 -[135,1](304, 303) -> 301 -[135,1](305, 303) -> 302 -[136,1](306, 306) -> 303 -[136,1](307, 306) -> 304 -[136,1](308, 306) -> 305 -[137,1](309, 309) -> 306 -[137,1](310, 309) -> 307 -[137,1](311, 309) -> 308 -[138,1](312, 312) -> 309 -[138,1](313, 312) -> 310 -[138,1](314, 312) -> 311 -[139,1](315, 315) -> 312 -[139,1](316, 315) -> 313 -[139,1](317, 315) -> 314 -[140,1](318, 318) -> 315 -[140,1](319, 318) -> 316 -[140,1](320, 318) -> 317 -[141,1](321, 321) -> 318 -[141,1](322, 321) -> 319 -[141,1](323, 321) -> 320 -[142,1](324, 324) -> 321 -[142,1](325, 324) -> 322 -[142,1](326, 324) -> 323 -[143,1](327, 327) -> 324 -[143,1](328, 327) -> 325 -[143,1](329, 327) -> 326 -[144,1](330, 330) -> 327 -[144,1](331, 330) -> 328 -[144,1](332, 330) -> 329 -[145,1](333, 333) -> 330 -[145,1](334, 333) -> 331 -[145,1](335, 333) -> 332 -[146,1](336, 336) -> 333 -[146,1](337, 336) -> 334 -[146,1](338, 336) -> 335 -[147,1](339, 339) -> 336 -[147,1](340, 339) -> 337 -[147,1](341, 339) -> 338 -[148,1](342, 342) -> 339 -[148,1](343, 342) -> 340 -[148,1](344, 342) -> 341 -[149,1](345, 345) -> 342 -[149,1](346, 345) -> 343 -[149,1](347, 345) -> 344 -[150,1](348, 348) -> 345 -[150,1](349, 348) -> 346 -[150,1](350, 348) -> 347 -[151,1](351, 351) -> 348 -[151,1](352, 351) -> 349 -[151,1](353, 351) -> 350 -[152,1](354, 354) -> 351 -[152,1](355, 354) -> 352 -[152,1](356, 354) -> 353 -[153,1](357, 357) -> 354 -[153,1](358, 357) -> 355 -[153,1](359, 357) -> 356 -[154,1](360, 360) -> 357 -[154,1](361, 360) -> 358 -[154,1](362, 360) -> 359 -[155,1](363, 363) -> 360 -[155,1](364, 363) -> 361 -[155,1](365, 363) -> 362 -[156,1](366, 366) -> 363 -[156,1](367, 366) -> 364 -[156,1](368, 366) -> 365 -[157,1](369, 369) -> 366 -[157,1](370, 369) -> 367 -[157,1](371, 369) -> 368 -[158,1](372, 372) -> 369 -[158,1](373, 372) -> 370 -[158,1](374, 372) -> 371 -[159,1](375, 375) -> 372 -[159,1](376, 375) -> 373 -[159,1](377, 375) -> 374 -[160,1](378, 378) -> 375 -[160,1](379, 378) -> 376 -[160,1](380, 378) -> 377 -[161,1](381, 381) -> 378 -[161,1](382, 381) -> 379 -[161,1](383, 381) -> 380 -[162,1](384, 384) -> 381 -[162,1](385, 384) -> 382 -[162,1](386, 384) -> 383 -[163,1](387, 387) -> 384 -[163,1](388, 387) -> 385 -[163,1](389, 387) -> 386 -[164,1](390, 390) -> 387 -[164,1](391, 390) -> 388 -[164,1](392, 390) -> 389 -[165,1](393, 393) -> 390 -[165,1](394, 393) -> 391 -[165,1](395, 393) -> 392 -[166,1](396, 396) -> 393 -[166,1](397, 396) -> 394 -[166,1](398, 396) -> 395 -[167,1](399, 399) -> 396 -[167,1](400, 399) -> 397 -[167,1](401, 399) -> 398 -[168,1](402, 402) -> 399 -[168,1](403, 402) -> 400 -[168,1](404, 402) -> 401 -[169,1](405, 405) -> 402 -[169,1](406, 405) -> 403 -[169,1](407, 405) -> 404 -[170,1](408, 408) -> 405 -[170,1](409, 408) -> 406 -[170,1](410, 408) -> 407 -[171,1](411, 411) -> 408 -[171,1](412, 411) -> 409 -[171,1](413, 411) -> 410 -[172,1](414, 414) -> 411 -[172,1](415, 414) -> 412 -[172,1](416, 414) -> 413 -[173,1](417, 417) -> 414 -[173,1](418, 417) -> 415 -[173,1](419, 417) -> 416 -[174,1](420, 420) -> 417 -[174,1](421, 420) -> 418 -[174,1](422, 420) -> 419 -[175,1](423, 423) -> 420 -[175,1](424, 423) -> 421 -[175,1](425, 423) -> 422 -[176,1](426, 426) -> 423 -[176,1](427, 426) -> 424 -[176,1](428, 426) -> 425 -[177,1](429, 429) -> 426 -[177,1](430, 429) -> 427 -[177,1](431, 429) -> 428 -[178,1](432, 432) -> 429 -[178,1](433, 432) -> 430 -[178,1](434, 432) -> 431 -[179,1](435, 435) -> 432 -[179,1](436, 435) -> 433 -[179,1](437, 435) -> 434 -[180,1](438, 438) -> 435 -[180,1](439, 438) -> 436 -[180,1](440, 438) -> 437 -[181,1](441, 441) -> 438 -[181,1](442, 441) -> 439 -[181,1](443, 441) -> 440 -[182,1](444, 444) -> 441 -[182,1](445, 444) -> 442 -[182,1](446, 444) -> 443 -[183,1](447, 447) -> 444 -[183,1](448, 447) -> 445 -[183,1](449, 447) -> 446 -[184,1](450, 450) -> 447 -[184,1](451, 450) -> 448 -[184,1](452, 450) -> 449 -[185,1](453, 453) -> 450 -[185,1](454, 453) -> 451 -[185,1](455, 453) -> 452 -[186,1](456, 456) -> 453 -[186,1](457, 456) -> 454 -[186,1](458, 456) -> 455 -[187,1](459, 459) -> 456 -[187,1](460, 459) -> 457 -[187,1](461, 459) -> 458 -[188,1](462, 462) -> 459 -[188,1](463, 462) -> 460 -[188,1](464, 462) -> 461 -[189,1](465, 465) -> 462 -[189,1](466, 465) -> 463 -[189,1](467, 465) -> 464 -[190,1](468, 468) -> 465 -[190,1](469, 468) -> 466 -[190,1](470, 468) -> 467 -[191,1](471, 471) -> 468 -[191,1](472, 471) -> 469 -[191,1](473, 471) -> 470 -[192,1](474, 474) -> 471 -[192,1](475, 474) -> 472 -[192,1](476, 474) -> 473 -[193,1](477, 477) -> 474 -[193,1](478, 477) -> 475 -[193,1](479, 477) -> 476 -[194,1](480, 480) -> 477 -[194,1](481, 480) -> 478 -[194,1](482, 480) -> 479 -[195,1](483, 483) -> 480 -[195,1](484, 483) -> 481 -[195,1](485, 483) -> 482 -[196,1](486, 486) -> 483 -[196,1](487, 486) -> 484 -[196,1](488, 486) -> 485 -[197,1](489, 489) -> 486 -[197,1](490, 489) -> 487 -[197,1](491, 489) -> 488 -[198,1](492, 492) -> 489 -[198,1](493, 492) -> 490 -[198,1](494, 492) -> 491 -[199,1](495, 495) -> 492 -[199,1](496, 495) -> 493 -[199,1](497, 495) -> 494 -[200,1](498, 498) -> 495 -[200,1](499, 498) -> 496 -[200,1](500, 498) -> 497 -[c0,1] -> 498 -[a,1] -> 499 -[b,1] -> 500 -Constraints -1267650600228229401496703205375 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/LSTA/OEGrover/18/circuit.qasm b/benchmarks/LSTA/OEGrover/18/circuit.qasm index fd9c44fab..ed31e04c5 100644 --- a/benchmarks/LSTA/OEGrover/18/circuit.qasm +++ b/benchmarks/LSTA/OEGrover/18/circuit.qasm @@ -1,49 +1,49 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[36]; +qreg qubits[35]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -ccx qubits[0], qubits[1], qubits[19]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[16], qubits[33], qubits[34]; -cz qubits[34], qubits[17]; -ccx qubits[16], qubits[33], qubits[34]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[0], qubits[1], qubits[19]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +cz qubits[32], qubits[33]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -55,107 +55,107 @@ x qubits[14]; x qubits[16]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -ccx qubits[0], qubits[1], qubits[19]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[16], qubits[33], qubits[34]; -cz qubits[34], qubits[17]; -ccx qubits[16], qubits[33], qubits[34]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[0], qubits[1], qubits[19]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +cz qubits[32], qubits[33]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -z qubits[18]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +z qubits[34]; diff --git a/benchmarks/LSTA/OEGrover/18/post.hsl b/benchmarks/LSTA/OEGrover/18/post.hsl index 2afb8b0e0..970d318ec 100644 --- a/benchmarks/LSTA/OEGrover/18/post.hsl +++ b/benchmarks/LSTA/OEGrover/18/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101100000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 8 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/LSTA/OEGrover/18/post.lsta b/benchmarks/LSTA/OEGrover/18/post.lsta deleted file mode 100644 index a7330128a..000000000 --- a/benchmarks/LSTA/OEGrover/18/post.lsta +++ /dev/null @@ -1,97 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 38) -> 35 -[19,1](37, 39) -> 36 -[20,1](40, 40) -> 37 -[20,1](41, 40) -> 38 -[20,1](42, 40) -> 39 -[21,1](43, 43) -> 40 -[21,1](44, 43) -> 41 -[21,1](45, 43) -> 42 -[22,1](46, 46) -> 43 -[22,1](47, 46) -> 44 -[22,1](48, 46) -> 45 -[23,1](49, 49) -> 46 -[23,1](50, 49) -> 47 -[23,1](51, 49) -> 48 -[24,1](52, 52) -> 49 -[24,1](53, 52) -> 50 -[24,1](54, 52) -> 51 -[25,1](55, 55) -> 52 -[25,1](56, 55) -> 53 -[25,1](57, 55) -> 54 -[26,1](58, 58) -> 55 -[26,1](59, 58) -> 56 -[26,1](60, 58) -> 57 -[27,1](61, 61) -> 58 -[27,1](62, 61) -> 59 -[27,1](63, 61) -> 60 -[28,1](64, 64) -> 61 -[28,1](65, 64) -> 62 -[28,1](66, 64) -> 63 -[29,1](67, 67) -> 64 -[29,1](68, 67) -> 65 -[29,1](69, 67) -> 66 -[30,1](70, 70) -> 67 -[30,1](71, 70) -> 68 -[30,1](72, 70) -> 69 -[31,1](73, 73) -> 70 -[31,1](74, 73) -> 71 -[31,1](75, 73) -> 72 -[32,1](76, 76) -> 73 -[32,1](77, 76) -> 74 -[32,1](78, 76) -> 75 -[33,1](79, 79) -> 76 -[33,1](80, 79) -> 77 -[33,1](81, 79) -> 78 -[34,1](82, 82) -> 79 -[34,1](83, 82) -> 80 -[34,1](84, 82) -> 81 -[35,1](85, 85) -> 82 -[35,1](86, 85) -> 83 -[35,1](87, 85) -> 84 -[36,1](88, 88) -> 85 -[36,1](89, 88) -> 86 -[36,1](90, 88) -> 87 -[p1,1] -> 88 -[p2,1] -> 89 -[p3,1] -> 90 \ No newline at end of file diff --git a/benchmarks/LSTA/OEGrover/18/pre.hsl b/benchmarks/LSTA/OEGrover/18/pre.hsl index 8cb0530b9..1935766a0 100644 --- a/benchmarks/LSTA/OEGrover/18/pre.hsl +++ b/benchmarks/LSTA/OEGrover/18/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101> + a |*> # |100000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 8 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 262143 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/LSTA/OEGrover/18/pre.lsta b/benchmarks/LSTA/OEGrover/18/pre.lsta deleted file mode 100644 index 15854ae4b..000000000 --- a/benchmarks/LSTA/OEGrover/18/pre.lsta +++ /dev/null @@ -1,101 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 38) -> 35 -[19,1](37, 39) -> 36 -[20,1](40, 40) -> 37 -[20,1](41, 40) -> 38 -[20,1](42, 40) -> 39 -[21,1](43, 43) -> 40 -[21,1](44, 43) -> 41 -[21,1](45, 43) -> 42 -[22,1](46, 46) -> 43 -[22,1](47, 46) -> 44 -[22,1](48, 46) -> 45 -[23,1](49, 49) -> 46 -[23,1](50, 49) -> 47 -[23,1](51, 49) -> 48 -[24,1](52, 52) -> 49 -[24,1](53, 52) -> 50 -[24,1](54, 52) -> 51 -[25,1](55, 55) -> 52 -[25,1](56, 55) -> 53 -[25,1](57, 55) -> 54 -[26,1](58, 58) -> 55 -[26,1](59, 58) -> 56 -[26,1](60, 58) -> 57 -[27,1](61, 61) -> 58 -[27,1](62, 61) -> 59 -[27,1](63, 61) -> 60 -[28,1](64, 64) -> 61 -[28,1](65, 64) -> 62 -[28,1](66, 64) -> 63 -[29,1](67, 67) -> 64 -[29,1](68, 67) -> 65 -[29,1](69, 67) -> 66 -[30,1](70, 70) -> 67 -[30,1](71, 70) -> 68 -[30,1](72, 70) -> 69 -[31,1](73, 73) -> 70 -[31,1](74, 73) -> 71 -[31,1](75, 73) -> 72 -[32,1](76, 76) -> 73 -[32,1](77, 76) -> 74 -[32,1](78, 76) -> 75 -[33,1](79, 79) -> 76 -[33,1](80, 79) -> 77 -[33,1](81, 79) -> 78 -[34,1](82, 82) -> 79 -[34,1](83, 82) -> 80 -[34,1](84, 82) -> 81 -[35,1](85, 85) -> 82 -[35,1](86, 85) -> 83 -[35,1](87, 85) -> 84 -[36,1](88, 88) -> 85 -[36,1](89, 88) -> 86 -[36,1](90, 88) -> 87 -[c0,1] -> 88 -[a,1] -> 89 -[b,1] -> 90 -Constraints -262143 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/LSTA/OEGrover/50/circuit.qasm b/benchmarks/LSTA/OEGrover/50/circuit.qasm index c15a1d8c8..e0927884d 100644 --- a/benchmarks/LSTA/OEGrover/50/circuit.qasm +++ b/benchmarks/LSTA/OEGrover/50/circuit.qasm @@ -1,129 +1,129 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[100]; +qreg qubits[99]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -ccx qubits[0], qubits[1], qubits[51]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[48], qubits[97], qubits[98]; -cz qubits[98], qubits[49]; -ccx qubits[48], qubits[97], qubits[98]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[0], qubits[1], qubits[51]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +cz qubits[96], qubits[97]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -151,299 +151,299 @@ x qubits[46]; x qubits[48]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -ccx qubits[0], qubits[1], qubits[51]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[48], qubits[97], qubits[98]; -cz qubits[98], qubits[49]; -ccx qubits[48], qubits[97], qubits[98]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[0], qubits[1], qubits[51]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +cz qubits[96], qubits[97]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -z qubits[50]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +z qubits[98]; diff --git a/benchmarks/LSTA/OEGrover/50/post.hsl b/benchmarks/LSTA/OEGrover/50/post.hsl index 4250119f4..74c7a84a9 100644 --- a/benchmarks/LSTA/OEGrover/50/post.hsl +++ b/benchmarks/LSTA/OEGrover/50/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 24 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/LSTA/OEGrover/50/post.lsta b/benchmarks/LSTA/OEGrover/50/post.lsta deleted file mode 100644 index 3a7684198..000000000 --- a/benchmarks/LSTA/OEGrover/50/post.lsta +++ /dev/null @@ -1,257 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 102) -> 99 -[51,1](101, 103) -> 100 -[52,1](104, 104) -> 101 -[52,1](105, 104) -> 102 -[52,1](106, 104) -> 103 -[53,1](107, 107) -> 104 -[53,1](108, 107) -> 105 -[53,1](109, 107) -> 106 -[54,1](110, 110) -> 107 -[54,1](111, 110) -> 108 -[54,1](112, 110) -> 109 -[55,1](113, 113) -> 110 -[55,1](114, 113) -> 111 -[55,1](115, 113) -> 112 -[56,1](116, 116) -> 113 -[56,1](117, 116) -> 114 -[56,1](118, 116) -> 115 -[57,1](119, 119) -> 116 -[57,1](120, 119) -> 117 -[57,1](121, 119) -> 118 -[58,1](122, 122) -> 119 -[58,1](123, 122) -> 120 -[58,1](124, 122) -> 121 -[59,1](125, 125) -> 122 -[59,1](126, 125) -> 123 -[59,1](127, 125) -> 124 -[60,1](128, 128) -> 125 -[60,1](129, 128) -> 126 -[60,1](130, 128) -> 127 -[61,1](131, 131) -> 128 -[61,1](132, 131) -> 129 -[61,1](133, 131) -> 130 -[62,1](134, 134) -> 131 -[62,1](135, 134) -> 132 -[62,1](136, 134) -> 133 -[63,1](137, 137) -> 134 -[63,1](138, 137) -> 135 -[63,1](139, 137) -> 136 -[64,1](140, 140) -> 137 -[64,1](141, 140) -> 138 -[64,1](142, 140) -> 139 -[65,1](143, 143) -> 140 -[65,1](144, 143) -> 141 -[65,1](145, 143) -> 142 -[66,1](146, 146) -> 143 -[66,1](147, 146) -> 144 -[66,1](148, 146) -> 145 -[67,1](149, 149) -> 146 -[67,1](150, 149) -> 147 -[67,1](151, 149) -> 148 -[68,1](152, 152) -> 149 -[68,1](153, 152) -> 150 -[68,1](154, 152) -> 151 -[69,1](155, 155) -> 152 -[69,1](156, 155) -> 153 -[69,1](157, 155) -> 154 -[70,1](158, 158) -> 155 -[70,1](159, 158) -> 156 -[70,1](160, 158) -> 157 -[71,1](161, 161) -> 158 -[71,1](162, 161) -> 159 -[71,1](163, 161) -> 160 -[72,1](164, 164) -> 161 -[72,1](165, 164) -> 162 -[72,1](166, 164) -> 163 -[73,1](167, 167) -> 164 -[73,1](168, 167) -> 165 -[73,1](169, 167) -> 166 -[74,1](170, 170) -> 167 -[74,1](171, 170) -> 168 -[74,1](172, 170) -> 169 -[75,1](173, 173) -> 170 -[75,1](174, 173) -> 171 -[75,1](175, 173) -> 172 -[76,1](176, 176) -> 173 -[76,1](177, 176) -> 174 -[76,1](178, 176) -> 175 -[77,1](179, 179) -> 176 -[77,1](180, 179) -> 177 -[77,1](181, 179) -> 178 -[78,1](182, 182) -> 179 -[78,1](183, 182) -> 180 -[78,1](184, 182) -> 181 -[79,1](185, 185) -> 182 -[79,1](186, 185) -> 183 -[79,1](187, 185) -> 184 -[80,1](188, 188) -> 185 -[80,1](189, 188) -> 186 -[80,1](190, 188) -> 187 -[81,1](191, 191) -> 188 -[81,1](192, 191) -> 189 -[81,1](193, 191) -> 190 -[82,1](194, 194) -> 191 -[82,1](195, 194) -> 192 -[82,1](196, 194) -> 193 -[83,1](197, 197) -> 194 -[83,1](198, 197) -> 195 -[83,1](199, 197) -> 196 -[84,1](200, 200) -> 197 -[84,1](201, 200) -> 198 -[84,1](202, 200) -> 199 -[85,1](203, 203) -> 200 -[85,1](204, 203) -> 201 -[85,1](205, 203) -> 202 -[86,1](206, 206) -> 203 -[86,1](207, 206) -> 204 -[86,1](208, 206) -> 205 -[87,1](209, 209) -> 206 -[87,1](210, 209) -> 207 -[87,1](211, 209) -> 208 -[88,1](212, 212) -> 209 -[88,1](213, 212) -> 210 -[88,1](214, 212) -> 211 -[89,1](215, 215) -> 212 -[89,1](216, 215) -> 213 -[89,1](217, 215) -> 214 -[90,1](218, 218) -> 215 -[90,1](219, 218) -> 216 -[90,1](220, 218) -> 217 -[91,1](221, 221) -> 218 -[91,1](222, 221) -> 219 -[91,1](223, 221) -> 220 -[92,1](224, 224) -> 221 -[92,1](225, 224) -> 222 -[92,1](226, 224) -> 223 -[93,1](227, 227) -> 224 -[93,1](228, 227) -> 225 -[93,1](229, 227) -> 226 -[94,1](230, 230) -> 227 -[94,1](231, 230) -> 228 -[94,1](232, 230) -> 229 -[95,1](233, 233) -> 230 -[95,1](234, 233) -> 231 -[95,1](235, 233) -> 232 -[96,1](236, 236) -> 233 -[96,1](237, 236) -> 234 -[96,1](238, 236) -> 235 -[97,1](239, 239) -> 236 -[97,1](240, 239) -> 237 -[97,1](241, 239) -> 238 -[98,1](242, 242) -> 239 -[98,1](243, 242) -> 240 -[98,1](244, 242) -> 241 -[99,1](245, 245) -> 242 -[99,1](246, 245) -> 243 -[99,1](247, 245) -> 244 -[100,1](248, 248) -> 245 -[100,1](249, 248) -> 246 -[100,1](250, 248) -> 247 -[p1,1] -> 248 -[p2,1] -> 249 -[p3,1] -> 250 \ No newline at end of file diff --git a/benchmarks/LSTA/OEGrover/50/pre.hsl b/benchmarks/LSTA/OEGrover/50/pre.hsl index e23bdfd02..643a00949 100644 --- a/benchmarks/LSTA/OEGrover/50/pre.hsl +++ b/benchmarks/LSTA/OEGrover/50/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 24 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1125899906842623 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/LSTA/OEGrover/50/pre.lsta b/benchmarks/LSTA/OEGrover/50/pre.lsta deleted file mode 100644 index d5f93614b..000000000 --- a/benchmarks/LSTA/OEGrover/50/pre.lsta +++ /dev/null @@ -1,261 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 102) -> 99 -[51,1](101, 103) -> 100 -[52,1](104, 104) -> 101 -[52,1](105, 104) -> 102 -[52,1](106, 104) -> 103 -[53,1](107, 107) -> 104 -[53,1](108, 107) -> 105 -[53,1](109, 107) -> 106 -[54,1](110, 110) -> 107 -[54,1](111, 110) -> 108 -[54,1](112, 110) -> 109 -[55,1](113, 113) -> 110 -[55,1](114, 113) -> 111 -[55,1](115, 113) -> 112 -[56,1](116, 116) -> 113 -[56,1](117, 116) -> 114 -[56,1](118, 116) -> 115 -[57,1](119, 119) -> 116 -[57,1](120, 119) -> 117 -[57,1](121, 119) -> 118 -[58,1](122, 122) -> 119 -[58,1](123, 122) -> 120 -[58,1](124, 122) -> 121 -[59,1](125, 125) -> 122 -[59,1](126, 125) -> 123 -[59,1](127, 125) -> 124 -[60,1](128, 128) -> 125 -[60,1](129, 128) -> 126 -[60,1](130, 128) -> 127 -[61,1](131, 131) -> 128 -[61,1](132, 131) -> 129 -[61,1](133, 131) -> 130 -[62,1](134, 134) -> 131 -[62,1](135, 134) -> 132 -[62,1](136, 134) -> 133 -[63,1](137, 137) -> 134 -[63,1](138, 137) -> 135 -[63,1](139, 137) -> 136 -[64,1](140, 140) -> 137 -[64,1](141, 140) -> 138 -[64,1](142, 140) -> 139 -[65,1](143, 143) -> 140 -[65,1](144, 143) -> 141 -[65,1](145, 143) -> 142 -[66,1](146, 146) -> 143 -[66,1](147, 146) -> 144 -[66,1](148, 146) -> 145 -[67,1](149, 149) -> 146 -[67,1](150, 149) -> 147 -[67,1](151, 149) -> 148 -[68,1](152, 152) -> 149 -[68,1](153, 152) -> 150 -[68,1](154, 152) -> 151 -[69,1](155, 155) -> 152 -[69,1](156, 155) -> 153 -[69,1](157, 155) -> 154 -[70,1](158, 158) -> 155 -[70,1](159, 158) -> 156 -[70,1](160, 158) -> 157 -[71,1](161, 161) -> 158 -[71,1](162, 161) -> 159 -[71,1](163, 161) -> 160 -[72,1](164, 164) -> 161 -[72,1](165, 164) -> 162 -[72,1](166, 164) -> 163 -[73,1](167, 167) -> 164 -[73,1](168, 167) -> 165 -[73,1](169, 167) -> 166 -[74,1](170, 170) -> 167 -[74,1](171, 170) -> 168 -[74,1](172, 170) -> 169 -[75,1](173, 173) -> 170 -[75,1](174, 173) -> 171 -[75,1](175, 173) -> 172 -[76,1](176, 176) -> 173 -[76,1](177, 176) -> 174 -[76,1](178, 176) -> 175 -[77,1](179, 179) -> 176 -[77,1](180, 179) -> 177 -[77,1](181, 179) -> 178 -[78,1](182, 182) -> 179 -[78,1](183, 182) -> 180 -[78,1](184, 182) -> 181 -[79,1](185, 185) -> 182 -[79,1](186, 185) -> 183 -[79,1](187, 185) -> 184 -[80,1](188, 188) -> 185 -[80,1](189, 188) -> 186 -[80,1](190, 188) -> 187 -[81,1](191, 191) -> 188 -[81,1](192, 191) -> 189 -[81,1](193, 191) -> 190 -[82,1](194, 194) -> 191 -[82,1](195, 194) -> 192 -[82,1](196, 194) -> 193 -[83,1](197, 197) -> 194 -[83,1](198, 197) -> 195 -[83,1](199, 197) -> 196 -[84,1](200, 200) -> 197 -[84,1](201, 200) -> 198 -[84,1](202, 200) -> 199 -[85,1](203, 203) -> 200 -[85,1](204, 203) -> 201 -[85,1](205, 203) -> 202 -[86,1](206, 206) -> 203 -[86,1](207, 206) -> 204 -[86,1](208, 206) -> 205 -[87,1](209, 209) -> 206 -[87,1](210, 209) -> 207 -[87,1](211, 209) -> 208 -[88,1](212, 212) -> 209 -[88,1](213, 212) -> 210 -[88,1](214, 212) -> 211 -[89,1](215, 215) -> 212 -[89,1](216, 215) -> 213 -[89,1](217, 215) -> 214 -[90,1](218, 218) -> 215 -[90,1](219, 218) -> 216 -[90,1](220, 218) -> 217 -[91,1](221, 221) -> 218 -[91,1](222, 221) -> 219 -[91,1](223, 221) -> 220 -[92,1](224, 224) -> 221 -[92,1](225, 224) -> 222 -[92,1](226, 224) -> 223 -[93,1](227, 227) -> 224 -[93,1](228, 227) -> 225 -[93,1](229, 227) -> 226 -[94,1](230, 230) -> 227 -[94,1](231, 230) -> 228 -[94,1](232, 230) -> 229 -[95,1](233, 233) -> 230 -[95,1](234, 233) -> 231 -[95,1](235, 233) -> 232 -[96,1](236, 236) -> 233 -[96,1](237, 236) -> 234 -[96,1](238, 236) -> 235 -[97,1](239, 239) -> 236 -[97,1](240, 239) -> 237 -[97,1](241, 239) -> 238 -[98,1](242, 242) -> 239 -[98,1](243, 242) -> 240 -[98,1](244, 242) -> 241 -[99,1](245, 245) -> 242 -[99,1](246, 245) -> 243 -[99,1](247, 245) -> 244 -[100,1](248, 248) -> 245 -[100,1](249, 248) -> 246 -[100,1](250, 248) -> 247 -[c0,1] -> 248 -[a,1] -> 249 -[b,1] -> 250 -Constraints -1125899906842623 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/LSTA/OEGrover/75/circuit.qasm b/benchmarks/LSTA/OEGrover/75/circuit.qasm index 929a8450a..d10694f92 100644 --- a/benchmarks/LSTA/OEGrover/75/circuit.qasm +++ b/benchmarks/LSTA/OEGrover/75/circuit.qasm @@ -1,192 +1,192 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[150]; +qreg qubits[149]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -ccx qubits[0], qubits[1], qubits[76]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[73], qubits[147], qubits[148]; -cz qubits[148], qubits[74]; -ccx qubits[73], qubits[147], qubits[148]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[0], qubits[1], qubits[76]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +cz qubits[146], qubits[147]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -227,449 +227,449 @@ x qubits[72]; x qubits[74]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; -ccx qubits[0], qubits[1], qubits[76]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[73], qubits[147], qubits[148]; -cz qubits[148], qubits[74]; -ccx qubits[73], qubits[147], qubits[148]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[0], qubits[1], qubits[76]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +cz qubits[146], qubits[147]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; -z qubits[75]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +z qubits[148]; diff --git a/benchmarks/LSTA/OEGrover/75/post.hsl b/benchmarks/LSTA/OEGrover/75/post.hsl index 9b08e0354..4f416c82a 100644 --- a/benchmarks/LSTA/OEGrover/75/post.hsl +++ b/benchmarks/LSTA/OEGrover/75/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 36 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/LSTA/OEGrover/75/post.lsta b/benchmarks/LSTA/OEGrover/75/post.lsta deleted file mode 100644 index c8598f315..000000000 --- a/benchmarks/LSTA/OEGrover/75/post.lsta +++ /dev/null @@ -1,382 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 152) -> 149 -[76,1](151, 153) -> 150 -[77,1](154, 154) -> 151 -[77,1](155, 154) -> 152 -[77,1](156, 154) -> 153 -[78,1](157, 157) -> 154 -[78,1](158, 157) -> 155 -[78,1](159, 157) -> 156 -[79,1](160, 160) -> 157 -[79,1](161, 160) -> 158 -[79,1](162, 160) -> 159 -[80,1](163, 163) -> 160 -[80,1](164, 163) -> 161 -[80,1](165, 163) -> 162 -[81,1](166, 166) -> 163 -[81,1](167, 166) -> 164 -[81,1](168, 166) -> 165 -[82,1](169, 169) -> 166 -[82,1](170, 169) -> 167 -[82,1](171, 169) -> 168 -[83,1](172, 172) -> 169 -[83,1](173, 172) -> 170 -[83,1](174, 172) -> 171 -[84,1](175, 175) -> 172 -[84,1](176, 175) -> 173 -[84,1](177, 175) -> 174 -[85,1](178, 178) -> 175 -[85,1](179, 178) -> 176 -[85,1](180, 178) -> 177 -[86,1](181, 181) -> 178 -[86,1](182, 181) -> 179 -[86,1](183, 181) -> 180 -[87,1](184, 184) -> 181 -[87,1](185, 184) -> 182 -[87,1](186, 184) -> 183 -[88,1](187, 187) -> 184 -[88,1](188, 187) -> 185 -[88,1](189, 187) -> 186 -[89,1](190, 190) -> 187 -[89,1](191, 190) -> 188 -[89,1](192, 190) -> 189 -[90,1](193, 193) -> 190 -[90,1](194, 193) -> 191 -[90,1](195, 193) -> 192 -[91,1](196, 196) -> 193 -[91,1](197, 196) -> 194 -[91,1](198, 196) -> 195 -[92,1](199, 199) -> 196 -[92,1](200, 199) -> 197 -[92,1](201, 199) -> 198 -[93,1](202, 202) -> 199 -[93,1](203, 202) -> 200 -[93,1](204, 202) -> 201 -[94,1](205, 205) -> 202 -[94,1](206, 205) -> 203 -[94,1](207, 205) -> 204 -[95,1](208, 208) -> 205 -[95,1](209, 208) -> 206 -[95,1](210, 208) -> 207 -[96,1](211, 211) -> 208 -[96,1](212, 211) -> 209 -[96,1](213, 211) -> 210 -[97,1](214, 214) -> 211 -[97,1](215, 214) -> 212 -[97,1](216, 214) -> 213 -[98,1](217, 217) -> 214 -[98,1](218, 217) -> 215 -[98,1](219, 217) -> 216 -[99,1](220, 220) -> 217 -[99,1](221, 220) -> 218 -[99,1](222, 220) -> 219 -[100,1](223, 223) -> 220 -[100,1](224, 223) -> 221 -[100,1](225, 223) -> 222 -[101,1](226, 226) -> 223 -[101,1](227, 226) -> 224 -[101,1](228, 226) -> 225 -[102,1](229, 229) -> 226 -[102,1](230, 229) -> 227 -[102,1](231, 229) -> 228 -[103,1](232, 232) -> 229 -[103,1](233, 232) -> 230 -[103,1](234, 232) -> 231 -[104,1](235, 235) -> 232 -[104,1](236, 235) -> 233 -[104,1](237, 235) -> 234 -[105,1](238, 238) -> 235 -[105,1](239, 238) -> 236 -[105,1](240, 238) -> 237 -[106,1](241, 241) -> 238 -[106,1](242, 241) -> 239 -[106,1](243, 241) -> 240 -[107,1](244, 244) -> 241 -[107,1](245, 244) -> 242 -[107,1](246, 244) -> 243 -[108,1](247, 247) -> 244 -[108,1](248, 247) -> 245 -[108,1](249, 247) -> 246 -[109,1](250, 250) -> 247 -[109,1](251, 250) -> 248 -[109,1](252, 250) -> 249 -[110,1](253, 253) -> 250 -[110,1](254, 253) -> 251 -[110,1](255, 253) -> 252 -[111,1](256, 256) -> 253 -[111,1](257, 256) -> 254 -[111,1](258, 256) -> 255 -[112,1](259, 259) -> 256 -[112,1](260, 259) -> 257 -[112,1](261, 259) -> 258 -[113,1](262, 262) -> 259 -[113,1](263, 262) -> 260 -[113,1](264, 262) -> 261 -[114,1](265, 265) -> 262 -[114,1](266, 265) -> 263 -[114,1](267, 265) -> 264 -[115,1](268, 268) -> 265 -[115,1](269, 268) -> 266 -[115,1](270, 268) -> 267 -[116,1](271, 271) -> 268 -[116,1](272, 271) -> 269 -[116,1](273, 271) -> 270 -[117,1](274, 274) -> 271 -[117,1](275, 274) -> 272 -[117,1](276, 274) -> 273 -[118,1](277, 277) -> 274 -[118,1](278, 277) -> 275 -[118,1](279, 277) -> 276 -[119,1](280, 280) -> 277 -[119,1](281, 280) -> 278 -[119,1](282, 280) -> 279 -[120,1](283, 283) -> 280 -[120,1](284, 283) -> 281 -[120,1](285, 283) -> 282 -[121,1](286, 286) -> 283 -[121,1](287, 286) -> 284 -[121,1](288, 286) -> 285 -[122,1](289, 289) -> 286 -[122,1](290, 289) -> 287 -[122,1](291, 289) -> 288 -[123,1](292, 292) -> 289 -[123,1](293, 292) -> 290 -[123,1](294, 292) -> 291 -[124,1](295, 295) -> 292 -[124,1](296, 295) -> 293 -[124,1](297, 295) -> 294 -[125,1](298, 298) -> 295 -[125,1](299, 298) -> 296 -[125,1](300, 298) -> 297 -[126,1](301, 301) -> 298 -[126,1](302, 301) -> 299 -[126,1](303, 301) -> 300 -[127,1](304, 304) -> 301 -[127,1](305, 304) -> 302 -[127,1](306, 304) -> 303 -[128,1](307, 307) -> 304 -[128,1](308, 307) -> 305 -[128,1](309, 307) -> 306 -[129,1](310, 310) -> 307 -[129,1](311, 310) -> 308 -[129,1](312, 310) -> 309 -[130,1](313, 313) -> 310 -[130,1](314, 313) -> 311 -[130,1](315, 313) -> 312 -[131,1](316, 316) -> 313 -[131,1](317, 316) -> 314 -[131,1](318, 316) -> 315 -[132,1](319, 319) -> 316 -[132,1](320, 319) -> 317 -[132,1](321, 319) -> 318 -[133,1](322, 322) -> 319 -[133,1](323, 322) -> 320 -[133,1](324, 322) -> 321 -[134,1](325, 325) -> 322 -[134,1](326, 325) -> 323 -[134,1](327, 325) -> 324 -[135,1](328, 328) -> 325 -[135,1](329, 328) -> 326 -[135,1](330, 328) -> 327 -[136,1](331, 331) -> 328 -[136,1](332, 331) -> 329 -[136,1](333, 331) -> 330 -[137,1](334, 334) -> 331 -[137,1](335, 334) -> 332 -[137,1](336, 334) -> 333 -[138,1](337, 337) -> 334 -[138,1](338, 337) -> 335 -[138,1](339, 337) -> 336 -[139,1](340, 340) -> 337 -[139,1](341, 340) -> 338 -[139,1](342, 340) -> 339 -[140,1](343, 343) -> 340 -[140,1](344, 343) -> 341 -[140,1](345, 343) -> 342 -[141,1](346, 346) -> 343 -[141,1](347, 346) -> 344 -[141,1](348, 346) -> 345 -[142,1](349, 349) -> 346 -[142,1](350, 349) -> 347 -[142,1](351, 349) -> 348 -[143,1](352, 352) -> 349 -[143,1](353, 352) -> 350 -[143,1](354, 352) -> 351 -[144,1](355, 355) -> 352 -[144,1](356, 355) -> 353 -[144,1](357, 355) -> 354 -[145,1](358, 358) -> 355 -[145,1](359, 358) -> 356 -[145,1](360, 358) -> 357 -[146,1](361, 361) -> 358 -[146,1](362, 361) -> 359 -[146,1](363, 361) -> 360 -[147,1](364, 364) -> 361 -[147,1](365, 364) -> 362 -[147,1](366, 364) -> 363 -[148,1](367, 367) -> 364 -[148,1](368, 367) -> 365 -[148,1](369, 367) -> 366 -[149,1](370, 370) -> 367 -[149,1](371, 370) -> 368 -[149,1](372, 370) -> 369 -[150,1](373, 373) -> 370 -[150,1](374, 373) -> 371 -[150,1](375, 373) -> 372 -[p1,1] -> 373 -[p2,1] -> 374 -[p3,1] -> 375 \ No newline at end of file diff --git a/benchmarks/LSTA/OEGrover/75/pre.hsl b/benchmarks/LSTA/OEGrover/75/pre.hsl index 14b018f8f..9b0db6601 100644 --- a/benchmarks/LSTA/OEGrover/75/pre.hsl +++ b/benchmarks/LSTA/OEGrover/75/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 36 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 37778931862957161709567 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/LSTA/OEGrover/75/pre.lsta b/benchmarks/LSTA/OEGrover/75/pre.lsta deleted file mode 100644 index 7766e40ae..000000000 --- a/benchmarks/LSTA/OEGrover/75/pre.lsta +++ /dev/null @@ -1,386 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 152) -> 149 -[76,1](151, 153) -> 150 -[77,1](154, 154) -> 151 -[77,1](155, 154) -> 152 -[77,1](156, 154) -> 153 -[78,1](157, 157) -> 154 -[78,1](158, 157) -> 155 -[78,1](159, 157) -> 156 -[79,1](160, 160) -> 157 -[79,1](161, 160) -> 158 -[79,1](162, 160) -> 159 -[80,1](163, 163) -> 160 -[80,1](164, 163) -> 161 -[80,1](165, 163) -> 162 -[81,1](166, 166) -> 163 -[81,1](167, 166) -> 164 -[81,1](168, 166) -> 165 -[82,1](169, 169) -> 166 -[82,1](170, 169) -> 167 -[82,1](171, 169) -> 168 -[83,1](172, 172) -> 169 -[83,1](173, 172) -> 170 -[83,1](174, 172) -> 171 -[84,1](175, 175) -> 172 -[84,1](176, 175) -> 173 -[84,1](177, 175) -> 174 -[85,1](178, 178) -> 175 -[85,1](179, 178) -> 176 -[85,1](180, 178) -> 177 -[86,1](181, 181) -> 178 -[86,1](182, 181) -> 179 -[86,1](183, 181) -> 180 -[87,1](184, 184) -> 181 -[87,1](185, 184) -> 182 -[87,1](186, 184) -> 183 -[88,1](187, 187) -> 184 -[88,1](188, 187) -> 185 -[88,1](189, 187) -> 186 -[89,1](190, 190) -> 187 -[89,1](191, 190) -> 188 -[89,1](192, 190) -> 189 -[90,1](193, 193) -> 190 -[90,1](194, 193) -> 191 -[90,1](195, 193) -> 192 -[91,1](196, 196) -> 193 -[91,1](197, 196) -> 194 -[91,1](198, 196) -> 195 -[92,1](199, 199) -> 196 -[92,1](200, 199) -> 197 -[92,1](201, 199) -> 198 -[93,1](202, 202) -> 199 -[93,1](203, 202) -> 200 -[93,1](204, 202) -> 201 -[94,1](205, 205) -> 202 -[94,1](206, 205) -> 203 -[94,1](207, 205) -> 204 -[95,1](208, 208) -> 205 -[95,1](209, 208) -> 206 -[95,1](210, 208) -> 207 -[96,1](211, 211) -> 208 -[96,1](212, 211) -> 209 -[96,1](213, 211) -> 210 -[97,1](214, 214) -> 211 -[97,1](215, 214) -> 212 -[97,1](216, 214) -> 213 -[98,1](217, 217) -> 214 -[98,1](218, 217) -> 215 -[98,1](219, 217) -> 216 -[99,1](220, 220) -> 217 -[99,1](221, 220) -> 218 -[99,1](222, 220) -> 219 -[100,1](223, 223) -> 220 -[100,1](224, 223) -> 221 -[100,1](225, 223) -> 222 -[101,1](226, 226) -> 223 -[101,1](227, 226) -> 224 -[101,1](228, 226) -> 225 -[102,1](229, 229) -> 226 -[102,1](230, 229) -> 227 -[102,1](231, 229) -> 228 -[103,1](232, 232) -> 229 -[103,1](233, 232) -> 230 -[103,1](234, 232) -> 231 -[104,1](235, 235) -> 232 -[104,1](236, 235) -> 233 -[104,1](237, 235) -> 234 -[105,1](238, 238) -> 235 -[105,1](239, 238) -> 236 -[105,1](240, 238) -> 237 -[106,1](241, 241) -> 238 -[106,1](242, 241) -> 239 -[106,1](243, 241) -> 240 -[107,1](244, 244) -> 241 -[107,1](245, 244) -> 242 -[107,1](246, 244) -> 243 -[108,1](247, 247) -> 244 -[108,1](248, 247) -> 245 -[108,1](249, 247) -> 246 -[109,1](250, 250) -> 247 -[109,1](251, 250) -> 248 -[109,1](252, 250) -> 249 -[110,1](253, 253) -> 250 -[110,1](254, 253) -> 251 -[110,1](255, 253) -> 252 -[111,1](256, 256) -> 253 -[111,1](257, 256) -> 254 -[111,1](258, 256) -> 255 -[112,1](259, 259) -> 256 -[112,1](260, 259) -> 257 -[112,1](261, 259) -> 258 -[113,1](262, 262) -> 259 -[113,1](263, 262) -> 260 -[113,1](264, 262) -> 261 -[114,1](265, 265) -> 262 -[114,1](266, 265) -> 263 -[114,1](267, 265) -> 264 -[115,1](268, 268) -> 265 -[115,1](269, 268) -> 266 -[115,1](270, 268) -> 267 -[116,1](271, 271) -> 268 -[116,1](272, 271) -> 269 -[116,1](273, 271) -> 270 -[117,1](274, 274) -> 271 -[117,1](275, 274) -> 272 -[117,1](276, 274) -> 273 -[118,1](277, 277) -> 274 -[118,1](278, 277) -> 275 -[118,1](279, 277) -> 276 -[119,1](280, 280) -> 277 -[119,1](281, 280) -> 278 -[119,1](282, 280) -> 279 -[120,1](283, 283) -> 280 -[120,1](284, 283) -> 281 -[120,1](285, 283) -> 282 -[121,1](286, 286) -> 283 -[121,1](287, 286) -> 284 -[121,1](288, 286) -> 285 -[122,1](289, 289) -> 286 -[122,1](290, 289) -> 287 -[122,1](291, 289) -> 288 -[123,1](292, 292) -> 289 -[123,1](293, 292) -> 290 -[123,1](294, 292) -> 291 -[124,1](295, 295) -> 292 -[124,1](296, 295) -> 293 -[124,1](297, 295) -> 294 -[125,1](298, 298) -> 295 -[125,1](299, 298) -> 296 -[125,1](300, 298) -> 297 -[126,1](301, 301) -> 298 -[126,1](302, 301) -> 299 -[126,1](303, 301) -> 300 -[127,1](304, 304) -> 301 -[127,1](305, 304) -> 302 -[127,1](306, 304) -> 303 -[128,1](307, 307) -> 304 -[128,1](308, 307) -> 305 -[128,1](309, 307) -> 306 -[129,1](310, 310) -> 307 -[129,1](311, 310) -> 308 -[129,1](312, 310) -> 309 -[130,1](313, 313) -> 310 -[130,1](314, 313) -> 311 -[130,1](315, 313) -> 312 -[131,1](316, 316) -> 313 -[131,1](317, 316) -> 314 -[131,1](318, 316) -> 315 -[132,1](319, 319) -> 316 -[132,1](320, 319) -> 317 -[132,1](321, 319) -> 318 -[133,1](322, 322) -> 319 -[133,1](323, 322) -> 320 -[133,1](324, 322) -> 321 -[134,1](325, 325) -> 322 -[134,1](326, 325) -> 323 -[134,1](327, 325) -> 324 -[135,1](328, 328) -> 325 -[135,1](329, 328) -> 326 -[135,1](330, 328) -> 327 -[136,1](331, 331) -> 328 -[136,1](332, 331) -> 329 -[136,1](333, 331) -> 330 -[137,1](334, 334) -> 331 -[137,1](335, 334) -> 332 -[137,1](336, 334) -> 333 -[138,1](337, 337) -> 334 -[138,1](338, 337) -> 335 -[138,1](339, 337) -> 336 -[139,1](340, 340) -> 337 -[139,1](341, 340) -> 338 -[139,1](342, 340) -> 339 -[140,1](343, 343) -> 340 -[140,1](344, 343) -> 341 -[140,1](345, 343) -> 342 -[141,1](346, 346) -> 343 -[141,1](347, 346) -> 344 -[141,1](348, 346) -> 345 -[142,1](349, 349) -> 346 -[142,1](350, 349) -> 347 -[142,1](351, 349) -> 348 -[143,1](352, 352) -> 349 -[143,1](353, 352) -> 350 -[143,1](354, 352) -> 351 -[144,1](355, 355) -> 352 -[144,1](356, 355) -> 353 -[144,1](357, 355) -> 354 -[145,1](358, 358) -> 355 -[145,1](359, 358) -> 356 -[145,1](360, 358) -> 357 -[146,1](361, 361) -> 358 -[146,1](362, 361) -> 359 -[146,1](363, 361) -> 360 -[147,1](364, 364) -> 361 -[147,1](365, 364) -> 362 -[147,1](366, 364) -> 363 -[148,1](367, 367) -> 364 -[148,1](368, 367) -> 365 -[148,1](369, 367) -> 366 -[149,1](370, 370) -> 367 -[149,1](371, 370) -> 368 -[149,1](372, 370) -> 369 -[150,1](373, 373) -> 370 -[150,1](374, 373) -> 371 -[150,1](375, 373) -> 372 -[c0,1] -> 373 -[a,1] -> 374 -[b,1] -> 375 -Constraints -37778931862957161709567 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/02/post.lsta b/benchmarks/all/OEGrover/02/post.lsta deleted file mode 100644 index 68d892035..000000000 --- a/benchmarks/all/OEGrover/02/post.lsta +++ /dev/null @@ -1,14 +0,0 @@ -Predicates -p1 := (and (< (* $R $R) (* aR aR)) (= $I 0)) -p2 := (and (= $R 0) (= $I 0)) -p3 := (and (> (* $R $R) (* bR bR)) (= $I 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 6) -> 3 -[3,1](5, 7) -> 4 -[p2,1] -> 5 -[p1,1] -> 6 -[p3,1] -> 7 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/02/pre.lsta b/benchmarks/all/OEGrover/02/pre.lsta deleted file mode 100644 index ce3305824..000000000 --- a/benchmarks/all/OEGrover/02/pre.lsta +++ /dev/null @@ -1,18 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 6) -> 3 -[3,1](5, 7) -> 4 -[c0,1] -> 5 -[a,1] -> 6 -[b,1] -> 7 -Constraints -3 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/03/circuit.qasm b/benchmarks/all/OEGrover/03/circuit.qasm index af4fd6a4d..8cb7a6813 100644 --- a/benchmarks/all/OEGrover/03/circuit.qasm +++ b/benchmarks/all/OEGrover/03/circuit.qasm @@ -1,27 +1,27 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[6]; +qreg qubits[5]; x qubits[0]; -x qubits[2]; -ccx qubits[0], qubits[1], qubits[4]; -cz qubits[4], qubits[2]; -ccx qubits[0], qubits[1], qubits[4]; +x qubits[3]; +ccx qubits[0], qubits[1], qubits[2]; +cz qubits[2], qubits[3]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; h qubits[0]; h qubits[1]; -h qubits[2]; +h qubits[3]; x qubits[0]; x qubits[1]; -x qubits[2]; -ccx qubits[0], qubits[1], qubits[4]; -cz qubits[4], qubits[2]; -ccx qubits[0], qubits[1], qubits[4]; +x qubits[3]; +ccx qubits[0], qubits[1], qubits[2]; +cz qubits[2], qubits[3]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; +x qubits[3]; h qubits[0]; h qubits[1]; -h qubits[2]; -z qubits[3]; +h qubits[3]; +z qubits[4]; diff --git a/benchmarks/all/OEGrover/03/post.hsl b/benchmarks/all/OEGrover/03/post.hsl index ffa8e67a2..48d3ae713 100644 --- a/benchmarks/all/OEGrover/03/post.hsl +++ b/benchmarks/all/OEGrover/03/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010100> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 0 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/03/post.lsta b/benchmarks/all/OEGrover/03/post.lsta deleted file mode 100644 index ad2a91fc6..000000000 --- a/benchmarks/all/OEGrover/03/post.lsta +++ /dev/null @@ -1,22 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 8) -> 5 -[4,1](7, 9) -> 6 -[5,1](10, 10) -> 7 -[5,1](11, 10) -> 8 -[5,1](12, 10) -> 9 -[6,1](13, 13) -> 10 -[6,1](14, 13) -> 11 -[6,1](15, 13) -> 12 -[p1,1] -> 13 -[p2,1] -> 14 -[p3,1] -> 15 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/03/pre.hsl b/benchmarks/all/OEGrover/03/pre.hsl index a1429a165..32d5d02d8 100644 --- a/benchmarks/all/OEGrover/03/pre.hsl +++ b/benchmarks/all/OEGrover/03/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010> + a |*> # |100> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 0 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 7 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/03/pre.lsta b/benchmarks/all/OEGrover/03/pre.lsta deleted file mode 100644 index 501c4a9fb..000000000 --- a/benchmarks/all/OEGrover/03/pre.lsta +++ /dev/null @@ -1,26 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 8) -> 5 -[4,1](7, 9) -> 6 -[5,1](10, 10) -> 7 -[5,1](11, 10) -> 8 -[5,1](12, 10) -> 9 -[6,1](13, 13) -> 10 -[6,1](14, 13) -> 11 -[6,1](15, 13) -> 12 -[c0,1] -> 13 -[a,1] -> 14 -[b,1] -> 15 -Constraints -7 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/04/circuit.qasm b/benchmarks/all/OEGrover/04/circuit.qasm index bdf7973a8..842889c23 100644 --- a/benchmarks/all/OEGrover/04/circuit.qasm +++ b/benchmarks/all/OEGrover/04/circuit.qasm @@ -1,35 +1,35 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[8]; +qreg qubits[7]; x qubits[0]; -x qubits[2]; -ccx qubits[0], qubits[1], qubits[5]; -ccx qubits[2], qubits[5], qubits[6]; -cz qubits[6], qubits[3]; -ccx qubits[2], qubits[5], qubits[6]; -ccx qubits[0], qubits[1], qubits[5]; +x qubits[3]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +cz qubits[4], qubits[5]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; +h qubits[5]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -ccx qubits[0], qubits[1], qubits[5]; -ccx qubits[2], qubits[5], qubits[6]; -cz qubits[6], qubits[3]; -ccx qubits[2], qubits[5], qubits[6]; -ccx qubits[0], qubits[1], qubits[5]; +x qubits[5]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +cz qubits[4], qubits[5]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; +x qubits[5]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -z qubits[4]; +h qubits[5]; +z qubits[6]; diff --git a/benchmarks/all/OEGrover/04/post.hsl b/benchmarks/all/OEGrover/04/post.hsl index 2001caba1..3a120ad80 100644 --- a/benchmarks/all/OEGrover/04/post.hsl +++ b/benchmarks/all/OEGrover/04/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01011000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 1 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/04/post.lsta b/benchmarks/all/OEGrover/04/post.lsta deleted file mode 100644 index 8a22e4f2e..000000000 --- a/benchmarks/all/OEGrover/04/post.lsta +++ /dev/null @@ -1,27 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 10) -> 7 -[5,1](9, 11) -> 8 -[6,1](12, 12) -> 9 -[6,1](13, 12) -> 10 -[6,1](14, 12) -> 11 -[7,1](15, 15) -> 12 -[7,1](16, 15) -> 13 -[7,1](17, 15) -> 14 -[8,1](18, 18) -> 15 -[8,1](19, 18) -> 16 -[8,1](20, 18) -> 17 -[p1,1] -> 18 -[p2,1] -> 19 -[p3,1] -> 20 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/04/pre.hsl b/benchmarks/all/OEGrover/04/pre.hsl index fae9c88b5..4f08b053f 100644 --- a/benchmarks/all/OEGrover/04/pre.hsl +++ b/benchmarks/all/OEGrover/04/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101> + a |*> # |1000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 1 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 15 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/04/pre.lsta b/benchmarks/all/OEGrover/04/pre.lsta deleted file mode 100644 index 6ded47713..000000000 --- a/benchmarks/all/OEGrover/04/pre.lsta +++ /dev/null @@ -1,31 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 10) -> 7 -[5,1](9, 11) -> 8 -[6,1](12, 12) -> 9 -[6,1](13, 12) -> 10 -[6,1](14, 12) -> 11 -[7,1](15, 15) -> 12 -[7,1](16, 15) -> 13 -[7,1](17, 15) -> 14 -[8,1](18, 18) -> 15 -[8,1](19, 18) -> 16 -[8,1](20, 18) -> 17 -[c0,1] -> 18 -[a,1] -> 19 -[b,1] -> 20 -Constraints -15 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/05/circuit.qasm b/benchmarks/all/OEGrover/05/circuit.qasm index 7face3753..96a312c84 100644 --- a/benchmarks/all/OEGrover/05/circuit.qasm +++ b/benchmarks/all/OEGrover/05/circuit.qasm @@ -1,45 +1,45 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[10]; +qreg qubits[9]; x qubits[0]; -x qubits[2]; -x qubits[4]; -ccx qubits[0], qubits[1], qubits[6]; -ccx qubits[2], qubits[6], qubits[7]; -ccx qubits[3], qubits[7], qubits[8]; -cz qubits[8], qubits[4]; -ccx qubits[3], qubits[7], qubits[8]; -ccx qubits[2], qubits[6], qubits[7]; -ccx qubits[0], qubits[1], qubits[6]; +x qubits[3]; +x qubits[7]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +cz qubits[6], qubits[7]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; +h qubits[5]; +h qubits[7]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; -ccx qubits[0], qubits[1], qubits[6]; -ccx qubits[2], qubits[6], qubits[7]; -ccx qubits[3], qubits[7], qubits[8]; -cz qubits[8], qubits[4]; -ccx qubits[3], qubits[7], qubits[8]; -ccx qubits[2], qubits[6], qubits[7]; -ccx qubits[0], qubits[1], qubits[6]; +x qubits[5]; +x qubits[7]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +cz qubits[6], qubits[7]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; +x qubits[5]; +x qubits[7]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; -z qubits[5]; +h qubits[5]; +h qubits[7]; +z qubits[8]; diff --git a/benchmarks/all/OEGrover/05/post.hsl b/benchmarks/all/OEGrover/05/post.hsl index d2d09cf97..92ef8e3c1 100644 --- a/benchmarks/all/OEGrover/05/post.hsl +++ b/benchmarks/all/OEGrover/05/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 1 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/05/post.lsta b/benchmarks/all/OEGrover/05/post.lsta deleted file mode 100644 index 03e1420fb..000000000 --- a/benchmarks/all/OEGrover/05/post.lsta +++ /dev/null @@ -1,32 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 12) -> 9 -[6,1](11, 13) -> 10 -[7,1](14, 14) -> 11 -[7,1](15, 14) -> 12 -[7,1](16, 14) -> 13 -[8,1](17, 17) -> 14 -[8,1](18, 17) -> 15 -[8,1](19, 17) -> 16 -[9,1](20, 20) -> 17 -[9,1](21, 20) -> 18 -[9,1](22, 20) -> 19 -[10,1](23, 23) -> 20 -[10,1](24, 23) -> 21 -[10,1](25, 23) -> 22 -[p1,1] -> 23 -[p2,1] -> 24 -[p3,1] -> 25 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/05/pre.hsl b/benchmarks/all/OEGrover/05/pre.hsl index 86b28ea2e..efbfeaeee 100644 --- a/benchmarks/all/OEGrover/05/pre.hsl +++ b/benchmarks/all/OEGrover/05/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010> + a |*> # |10000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 1 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 31 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/05/pre.lsta b/benchmarks/all/OEGrover/05/pre.lsta deleted file mode 100644 index 0ac7761f5..000000000 --- a/benchmarks/all/OEGrover/05/pre.lsta +++ /dev/null @@ -1,36 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 12) -> 9 -[6,1](11, 13) -> 10 -[7,1](14, 14) -> 11 -[7,1](15, 14) -> 12 -[7,1](16, 14) -> 13 -[8,1](17, 17) -> 14 -[8,1](18, 17) -> 15 -[8,1](19, 17) -> 16 -[9,1](20, 20) -> 17 -[9,1](21, 20) -> 18 -[9,1](22, 20) -> 19 -[10,1](23, 23) -> 20 -[10,1](24, 23) -> 21 -[10,1](25, 23) -> 22 -[c0,1] -> 23 -[a,1] -> 24 -[b,1] -> 25 -Constraints -31 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/06/circuit.qasm b/benchmarks/all/OEGrover/06/circuit.qasm index e7ffce658..d195ea657 100644 --- a/benchmarks/all/OEGrover/06/circuit.qasm +++ b/benchmarks/all/OEGrover/06/circuit.qasm @@ -1,53 +1,53 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[12]; +qreg qubits[11]; x qubits[0]; -x qubits[2]; -x qubits[4]; -ccx qubits[0], qubits[1], qubits[7]; -ccx qubits[2], qubits[7], qubits[8]; -ccx qubits[3], qubits[8], qubits[9]; -ccx qubits[4], qubits[9], qubits[10]; -cz qubits[10], qubits[5]; -ccx qubits[4], qubits[9], qubits[10]; -ccx qubits[3], qubits[8], qubits[9]; -ccx qubits[2], qubits[7], qubits[8]; -ccx qubits[0], qubits[1], qubits[7]; +x qubits[3]; +x qubits[7]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +cz qubits[8], qubits[9]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; +h qubits[7]; +h qubits[9]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -ccx qubits[0], qubits[1], qubits[7]; -ccx qubits[2], qubits[7], qubits[8]; -ccx qubits[3], qubits[8], qubits[9]; -ccx qubits[4], qubits[9], qubits[10]; -cz qubits[10], qubits[5]; -ccx qubits[4], qubits[9], qubits[10]; -ccx qubits[3], qubits[8], qubits[9]; -ccx qubits[2], qubits[7], qubits[8]; -ccx qubits[0], qubits[1], qubits[7]; +x qubits[7]; +x qubits[9]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +cz qubits[8], qubits[9]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; +x qubits[7]; +x qubits[9]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -z qubits[6]; +h qubits[7]; +h qubits[9]; +z qubits[10]; diff --git a/benchmarks/all/OEGrover/06/post.hsl b/benchmarks/all/OEGrover/06/post.hsl index af8df2f8b..72f32665b 100644 --- a/benchmarks/all/OEGrover/06/post.hsl +++ b/benchmarks/all/OEGrover/06/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101100000> \ No newline at end of file +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 2 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/06/post.lsta b/benchmarks/all/OEGrover/06/post.lsta deleted file mode 100644 index 41c44763f..000000000 --- a/benchmarks/all/OEGrover/06/post.lsta +++ /dev/null @@ -1,37 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 14) -> 11 -[7,1](13, 15) -> 12 -[8,1](16, 16) -> 13 -[8,1](17, 16) -> 14 -[8,1](18, 16) -> 15 -[9,1](19, 19) -> 16 -[9,1](20, 19) -> 17 -[9,1](21, 19) -> 18 -[10,1](22, 22) -> 19 -[10,1](23, 22) -> 20 -[10,1](24, 22) -> 21 -[11,1](25, 25) -> 22 -[11,1](26, 25) -> 23 -[11,1](27, 25) -> 24 -[12,1](28, 28) -> 25 -[12,1](29, 28) -> 26 -[12,1](30, 28) -> 27 -[p1,1] -> 28 -[p2,1] -> 29 -[p3,1] -> 30 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/06/pre.hsl b/benchmarks/all/OEGrover/06/pre.hsl index 475298c8e..ee014fe6f 100644 --- a/benchmarks/all/OEGrover/06/pre.hsl +++ b/benchmarks/all/OEGrover/06/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101> + a |*> # |100000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 2 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 63 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/06/pre.lsta b/benchmarks/all/OEGrover/06/pre.lsta deleted file mode 100644 index 08a4fd61b..000000000 --- a/benchmarks/all/OEGrover/06/pre.lsta +++ /dev/null @@ -1,41 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 14) -> 11 -[7,1](13, 15) -> 12 -[8,1](16, 16) -> 13 -[8,1](17, 16) -> 14 -[8,1](18, 16) -> 15 -[9,1](19, 19) -> 16 -[9,1](20, 19) -> 17 -[9,1](21, 19) -> 18 -[10,1](22, 22) -> 19 -[10,1](23, 22) -> 20 -[10,1](24, 22) -> 21 -[11,1](25, 25) -> 22 -[11,1](26, 25) -> 23 -[11,1](27, 25) -> 24 -[12,1](28, 28) -> 25 -[12,1](29, 28) -> 26 -[12,1](30, 28) -> 27 -[c0,1] -> 28 -[a,1] -> 29 -[b,1] -> 30 -Constraints -63 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/07/circuit.qasm b/benchmarks/all/OEGrover/07/circuit.qasm index c0753f526..765ab3903 100644 --- a/benchmarks/all/OEGrover/07/circuit.qasm +++ b/benchmarks/all/OEGrover/07/circuit.qasm @@ -1,63 +1,63 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[14]; +qreg qubits[13]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -ccx qubits[0], qubits[1], qubits[8]; -ccx qubits[2], qubits[8], qubits[9]; -ccx qubits[3], qubits[9], qubits[10]; -ccx qubits[4], qubits[10], qubits[11]; -ccx qubits[5], qubits[11], qubits[12]; -cz qubits[12], qubits[6]; -ccx qubits[5], qubits[11], qubits[12]; -ccx qubits[4], qubits[10], qubits[11]; -ccx qubits[3], qubits[9], qubits[10]; -ccx qubits[2], qubits[8], qubits[9]; -ccx qubits[0], qubits[1], qubits[8]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +cz qubits[10], qubits[11]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; x qubits[6]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; +h qubits[7]; +h qubits[9]; +h qubits[11]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; -ccx qubits[0], qubits[1], qubits[8]; -ccx qubits[2], qubits[8], qubits[9]; -ccx qubits[3], qubits[9], qubits[10]; -ccx qubits[4], qubits[10], qubits[11]; -ccx qubits[5], qubits[11], qubits[12]; -cz qubits[12], qubits[6]; -ccx qubits[5], qubits[11], qubits[12]; -ccx qubits[4], qubits[10], qubits[11]; -ccx qubits[3], qubits[9], qubits[10]; -ccx qubits[2], qubits[8], qubits[9]; -ccx qubits[0], qubits[1], qubits[8]; +x qubits[7]; +x qubits[9]; +x qubits[11]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +cz qubits[10], qubits[11]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; +x qubits[7]; +x qubits[9]; +x qubits[11]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; -z qubits[7]; +h qubits[7]; +h qubits[9]; +h qubits[11]; +z qubits[12]; diff --git a/benchmarks/all/OEGrover/07/post.hsl b/benchmarks/all/OEGrover/07/post.hsl index 1ad4342a1..6f62a466b 100644 --- a/benchmarks/all/OEGrover/07/post.hsl +++ b/benchmarks/all/OEGrover/07/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 2 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/07/post.lsta b/benchmarks/all/OEGrover/07/post.lsta deleted file mode 100644 index 70d697319..000000000 --- a/benchmarks/all/OEGrover/07/post.lsta +++ /dev/null @@ -1,42 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 16) -> 13 -[8,1](15, 17) -> 14 -[9,1](18, 18) -> 15 -[9,1](19, 18) -> 16 -[9,1](20, 18) -> 17 -[10,1](21, 21) -> 18 -[10,1](22, 21) -> 19 -[10,1](23, 21) -> 20 -[11,1](24, 24) -> 21 -[11,1](25, 24) -> 22 -[11,1](26, 24) -> 23 -[12,1](27, 27) -> 24 -[12,1](28, 27) -> 25 -[12,1](29, 27) -> 26 -[13,1](30, 30) -> 27 -[13,1](31, 30) -> 28 -[13,1](32, 30) -> 29 -[14,1](33, 33) -> 30 -[14,1](34, 33) -> 31 -[14,1](35, 33) -> 32 -[p1,1] -> 33 -[p2,1] -> 34 -[p3,1] -> 35 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/07/pre.hsl b/benchmarks/all/OEGrover/07/pre.hsl index 5eba84ef8..081d72c2f 100644 --- a/benchmarks/all/OEGrover/07/pre.hsl +++ b/benchmarks/all/OEGrover/07/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010> + a |*> # |1000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 2 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 127 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/07/pre.lsta b/benchmarks/all/OEGrover/07/pre.lsta deleted file mode 100644 index 029a3ecaa..000000000 --- a/benchmarks/all/OEGrover/07/pre.lsta +++ /dev/null @@ -1,46 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 16) -> 13 -[8,1](15, 17) -> 14 -[9,1](18, 18) -> 15 -[9,1](19, 18) -> 16 -[9,1](20, 18) -> 17 -[10,1](21, 21) -> 18 -[10,1](22, 21) -> 19 -[10,1](23, 21) -> 20 -[11,1](24, 24) -> 21 -[11,1](25, 24) -> 22 -[11,1](26, 24) -> 23 -[12,1](27, 27) -> 24 -[12,1](28, 27) -> 25 -[12,1](29, 27) -> 26 -[13,1](30, 30) -> 27 -[13,1](31, 30) -> 28 -[13,1](32, 30) -> 29 -[14,1](33, 33) -> 30 -[14,1](34, 33) -> 31 -[14,1](35, 33) -> 32 -[c0,1] -> 33 -[a,1] -> 34 -[b,1] -> 35 -Constraints -127 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/08/circuit.qasm b/benchmarks/all/OEGrover/08/circuit.qasm index f6455caa7..b7ba2d97a 100644 --- a/benchmarks/all/OEGrover/08/circuit.qasm +++ b/benchmarks/all/OEGrover/08/circuit.qasm @@ -1,71 +1,71 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[16]; +qreg qubits[15]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -ccx qubits[0], qubits[1], qubits[9]; -ccx qubits[2], qubits[9], qubits[10]; -ccx qubits[3], qubits[10], qubits[11]; -ccx qubits[4], qubits[11], qubits[12]; -ccx qubits[5], qubits[12], qubits[13]; -ccx qubits[6], qubits[13], qubits[14]; -cz qubits[14], qubits[7]; -ccx qubits[6], qubits[13], qubits[14]; -ccx qubits[5], qubits[12], qubits[13]; -ccx qubits[4], qubits[11], qubits[12]; -ccx qubits[3], qubits[10], qubits[11]; -ccx qubits[2], qubits[9], qubits[10]; -ccx qubits[0], qubits[1], qubits[9]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +cz qubits[12], qubits[13]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; x qubits[6]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; +h qubits[9]; +h qubits[11]; +h qubits[13]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -ccx qubits[0], qubits[1], qubits[9]; -ccx qubits[2], qubits[9], qubits[10]; -ccx qubits[3], qubits[10], qubits[11]; -ccx qubits[4], qubits[11], qubits[12]; -ccx qubits[5], qubits[12], qubits[13]; -ccx qubits[6], qubits[13], qubits[14]; -cz qubits[14], qubits[7]; -ccx qubits[6], qubits[13], qubits[14]; -ccx qubits[5], qubits[12], qubits[13]; -ccx qubits[4], qubits[11], qubits[12]; -ccx qubits[3], qubits[10], qubits[11]; -ccx qubits[2], qubits[9], qubits[10]; -ccx qubits[0], qubits[1], qubits[9]; +x qubits[9]; +x qubits[11]; +x qubits[13]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +cz qubits[12], qubits[13]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; +x qubits[9]; +x qubits[11]; +x qubits[13]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -z qubits[8]; +h qubits[9]; +h qubits[11]; +h qubits[13]; +z qubits[14]; diff --git a/benchmarks/all/OEGrover/08/post.hsl b/benchmarks/all/OEGrover/08/post.hsl index d2b4b2fa4..9481b1185 100644 --- a/benchmarks/all/OEGrover/08/post.hsl +++ b/benchmarks/all/OEGrover/08/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010110000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 3 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/08/post.lsta b/benchmarks/all/OEGrover/08/post.lsta deleted file mode 100644 index 0198c3677..000000000 --- a/benchmarks/all/OEGrover/08/post.lsta +++ /dev/null @@ -1,47 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 18) -> 15 -[9,1](17, 19) -> 16 -[10,1](20, 20) -> 17 -[10,1](21, 20) -> 18 -[10,1](22, 20) -> 19 -[11,1](23, 23) -> 20 -[11,1](24, 23) -> 21 -[11,1](25, 23) -> 22 -[12,1](26, 26) -> 23 -[12,1](27, 26) -> 24 -[12,1](28, 26) -> 25 -[13,1](29, 29) -> 26 -[13,1](30, 29) -> 27 -[13,1](31, 29) -> 28 -[14,1](32, 32) -> 29 -[14,1](33, 32) -> 30 -[14,1](34, 32) -> 31 -[15,1](35, 35) -> 32 -[15,1](36, 35) -> 33 -[15,1](37, 35) -> 34 -[16,1](38, 38) -> 35 -[16,1](39, 38) -> 36 -[16,1](40, 38) -> 37 -[p1,1] -> 38 -[p2,1] -> 39 -[p3,1] -> 40 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/08/pre.hsl b/benchmarks/all/OEGrover/08/pre.hsl index 0182f14f6..34655e047 100644 --- a/benchmarks/all/OEGrover/08/pre.hsl +++ b/benchmarks/all/OEGrover/08/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101> + a |*> # |10000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 3 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 255 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/08/pre.lsta b/benchmarks/all/OEGrover/08/pre.lsta deleted file mode 100644 index 474e2d81f..000000000 --- a/benchmarks/all/OEGrover/08/pre.lsta +++ /dev/null @@ -1,51 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 18) -> 15 -[9,1](17, 19) -> 16 -[10,1](20, 20) -> 17 -[10,1](21, 20) -> 18 -[10,1](22, 20) -> 19 -[11,1](23, 23) -> 20 -[11,1](24, 23) -> 21 -[11,1](25, 23) -> 22 -[12,1](26, 26) -> 23 -[12,1](27, 26) -> 24 -[12,1](28, 26) -> 25 -[13,1](29, 29) -> 26 -[13,1](30, 29) -> 27 -[13,1](31, 29) -> 28 -[14,1](32, 32) -> 29 -[14,1](33, 32) -> 30 -[14,1](34, 32) -> 31 -[15,1](35, 35) -> 32 -[15,1](36, 35) -> 33 -[15,1](37, 35) -> 34 -[16,1](38, 38) -> 35 -[16,1](39, 38) -> 36 -[16,1](40, 38) -> 37 -[c0,1] -> 38 -[a,1] -> 39 -[b,1] -> 40 -Constraints -255 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/09/circuit.qasm b/benchmarks/all/OEGrover/09/circuit.qasm index 8ecca089f..23e2e3b11 100644 --- a/benchmarks/all/OEGrover/09/circuit.qasm +++ b/benchmarks/all/OEGrover/09/circuit.qasm @@ -1,27 +1,27 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[18]; +qreg qubits[17]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -ccx qubits[0], qubits[1], qubits[10]; -ccx qubits[2], qubits[10], qubits[11]; -ccx qubits[3], qubits[11], qubits[12]; -ccx qubits[4], qubits[12], qubits[13]; -ccx qubits[5], qubits[13], qubits[14]; -ccx qubits[6], qubits[14], qubits[15]; -ccx qubits[7], qubits[15], qubits[16]; -cz qubits[16], qubits[8]; -ccx qubits[7], qubits[15], qubits[16]; -ccx qubits[6], qubits[14], qubits[15]; -ccx qubits[5], qubits[13], qubits[14]; -ccx qubits[4], qubits[12], qubits[13]; -ccx qubits[3], qubits[11], qubits[12]; -ccx qubits[2], qubits[10], qubits[11]; -ccx qubits[0], qubits[1], qubits[10]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +cz qubits[14], qubits[15]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -29,53 +29,53 @@ x qubits[6]; x qubits[8]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; +h qubits[9]; +h qubits[11]; +h qubits[13]; +h qubits[15]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; -ccx qubits[0], qubits[1], qubits[10]; -ccx qubits[2], qubits[10], qubits[11]; -ccx qubits[3], qubits[11], qubits[12]; -ccx qubits[4], qubits[12], qubits[13]; -ccx qubits[5], qubits[13], qubits[14]; -ccx qubits[6], qubits[14], qubits[15]; -ccx qubits[7], qubits[15], qubits[16]; -cz qubits[16], qubits[8]; -ccx qubits[7], qubits[15], qubits[16]; -ccx qubits[6], qubits[14], qubits[15]; -ccx qubits[5], qubits[13], qubits[14]; -ccx qubits[4], qubits[12], qubits[13]; -ccx qubits[3], qubits[11], qubits[12]; -ccx qubits[2], qubits[10], qubits[11]; -ccx qubits[0], qubits[1], qubits[10]; +x qubits[9]; +x qubits[11]; +x qubits[13]; +x qubits[15]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +cz qubits[14], qubits[15]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; +x qubits[9]; +x qubits[11]; +x qubits[13]; +x qubits[15]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; -z qubits[9]; +h qubits[9]; +h qubits[11]; +h qubits[13]; +h qubits[15]; +z qubits[16]; diff --git a/benchmarks/all/OEGrover/09/post.hsl b/benchmarks/all/OEGrover/09/post.hsl index 211ace9c3..a767fbec4 100644 --- a/benchmarks/all/OEGrover/09/post.hsl +++ b/benchmarks/all/OEGrover/09/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010100000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 3 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/09/post.lsta b/benchmarks/all/OEGrover/09/post.lsta deleted file mode 100644 index 693fbf8f0..000000000 --- a/benchmarks/all/OEGrover/09/post.lsta +++ /dev/null @@ -1,52 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 20) -> 17 -[10,1](19, 21) -> 18 -[11,1](22, 22) -> 19 -[11,1](23, 22) -> 20 -[11,1](24, 22) -> 21 -[12,1](25, 25) -> 22 -[12,1](26, 25) -> 23 -[12,1](27, 25) -> 24 -[13,1](28, 28) -> 25 -[13,1](29, 28) -> 26 -[13,1](30, 28) -> 27 -[14,1](31, 31) -> 28 -[14,1](32, 31) -> 29 -[14,1](33, 31) -> 30 -[15,1](34, 34) -> 31 -[15,1](35, 34) -> 32 -[15,1](36, 34) -> 33 -[16,1](37, 37) -> 34 -[16,1](38, 37) -> 35 -[16,1](39, 37) -> 36 -[17,1](40, 40) -> 37 -[17,1](41, 40) -> 38 -[17,1](42, 40) -> 39 -[18,1](43, 43) -> 40 -[18,1](44, 43) -> 41 -[18,1](45, 43) -> 42 -[p1,1] -> 43 -[p2,1] -> 44 -[p3,1] -> 45 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/09/pre.hsl b/benchmarks/all/OEGrover/09/pre.hsl index dcf78235c..6b164c197 100644 --- a/benchmarks/all/OEGrover/09/pre.hsl +++ b/benchmarks/all/OEGrover/09/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010> + a |*> # |100000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 3 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 511 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/09/pre.lsta b/benchmarks/all/OEGrover/09/pre.lsta deleted file mode 100644 index 0ca595a3b..000000000 --- a/benchmarks/all/OEGrover/09/pre.lsta +++ /dev/null @@ -1,56 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 20) -> 17 -[10,1](19, 21) -> 18 -[11,1](22, 22) -> 19 -[11,1](23, 22) -> 20 -[11,1](24, 22) -> 21 -[12,1](25, 25) -> 22 -[12,1](26, 25) -> 23 -[12,1](27, 25) -> 24 -[13,1](28, 28) -> 25 -[13,1](29, 28) -> 26 -[13,1](30, 28) -> 27 -[14,1](31, 31) -> 28 -[14,1](32, 31) -> 29 -[14,1](33, 31) -> 30 -[15,1](34, 34) -> 31 -[15,1](35, 34) -> 32 -[15,1](36, 34) -> 33 -[16,1](37, 37) -> 34 -[16,1](38, 37) -> 35 -[16,1](39, 37) -> 36 -[17,1](40, 40) -> 37 -[17,1](41, 40) -> 38 -[17,1](42, 40) -> 39 -[18,1](43, 43) -> 40 -[18,1](44, 43) -> 41 -[18,1](45, 43) -> 42 -[c0,1] -> 43 -[a,1] -> 44 -[b,1] -> 45 -Constraints -511 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/10/circuit.qasm b/benchmarks/all/OEGrover/10/circuit.qasm index 89806240e..b90bfe30e 100644 --- a/benchmarks/all/OEGrover/10/circuit.qasm +++ b/benchmarks/all/OEGrover/10/circuit.qasm @@ -1,29 +1,29 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[20]; +qreg qubits[19]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -ccx qubits[0], qubits[1], qubits[11]; -ccx qubits[2], qubits[11], qubits[12]; -ccx qubits[3], qubits[12], qubits[13]; -ccx qubits[4], qubits[13], qubits[14]; -ccx qubits[5], qubits[14], qubits[15]; -ccx qubits[6], qubits[15], qubits[16]; -ccx qubits[7], qubits[16], qubits[17]; -ccx qubits[8], qubits[17], qubits[18]; -cz qubits[18], qubits[9]; -ccx qubits[8], qubits[17], qubits[18]; -ccx qubits[7], qubits[16], qubits[17]; -ccx qubits[6], qubits[15], qubits[16]; -ccx qubits[5], qubits[14], qubits[15]; -ccx qubits[4], qubits[13], qubits[14]; -ccx qubits[3], qubits[12], qubits[13]; -ccx qubits[2], qubits[11], qubits[12]; -ccx qubits[0], qubits[1], qubits[11]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +cz qubits[16], qubits[17]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -31,59 +31,59 @@ x qubits[6]; x qubits[8]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; +h qubits[11]; +h qubits[13]; +h qubits[15]; +h qubits[17]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -ccx qubits[0], qubits[1], qubits[11]; -ccx qubits[2], qubits[11], qubits[12]; -ccx qubits[3], qubits[12], qubits[13]; -ccx qubits[4], qubits[13], qubits[14]; -ccx qubits[5], qubits[14], qubits[15]; -ccx qubits[6], qubits[15], qubits[16]; -ccx qubits[7], qubits[16], qubits[17]; -ccx qubits[8], qubits[17], qubits[18]; -cz qubits[18], qubits[9]; -ccx qubits[8], qubits[17], qubits[18]; -ccx qubits[7], qubits[16], qubits[17]; -ccx qubits[6], qubits[15], qubits[16]; -ccx qubits[5], qubits[14], qubits[15]; -ccx qubits[4], qubits[13], qubits[14]; -ccx qubits[3], qubits[12], qubits[13]; -ccx qubits[2], qubits[11], qubits[12]; -ccx qubits[0], qubits[1], qubits[11]; +x qubits[11]; +x qubits[13]; +x qubits[15]; +x qubits[17]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +cz qubits[16], qubits[17]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; +x qubits[11]; +x qubits[13]; +x qubits[15]; +x qubits[17]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -z qubits[10]; +h qubits[11]; +h qubits[13]; +h qubits[15]; +h qubits[17]; +z qubits[18]; diff --git a/benchmarks/all/OEGrover/10/post.hsl b/benchmarks/all/OEGrover/10/post.hsl index 35b7b20e1..01ad718b2 100644 --- a/benchmarks/all/OEGrover/10/post.hsl +++ b/benchmarks/all/OEGrover/10/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101011000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 4 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/10/post.lsta b/benchmarks/all/OEGrover/10/post.lsta deleted file mode 100644 index 43bd535dd..000000000 --- a/benchmarks/all/OEGrover/10/post.lsta +++ /dev/null @@ -1,57 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 22) -> 19 -[11,1](21, 23) -> 20 -[12,1](24, 24) -> 21 -[12,1](25, 24) -> 22 -[12,1](26, 24) -> 23 -[13,1](27, 27) -> 24 -[13,1](28, 27) -> 25 -[13,1](29, 27) -> 26 -[14,1](30, 30) -> 27 -[14,1](31, 30) -> 28 -[14,1](32, 30) -> 29 -[15,1](33, 33) -> 30 -[15,1](34, 33) -> 31 -[15,1](35, 33) -> 32 -[16,1](36, 36) -> 33 -[16,1](37, 36) -> 34 -[16,1](38, 36) -> 35 -[17,1](39, 39) -> 36 -[17,1](40, 39) -> 37 -[17,1](41, 39) -> 38 -[18,1](42, 42) -> 39 -[18,1](43, 42) -> 40 -[18,1](44, 42) -> 41 -[19,1](45, 45) -> 42 -[19,1](46, 45) -> 43 -[19,1](47, 45) -> 44 -[20,1](48, 48) -> 45 -[20,1](49, 48) -> 46 -[20,1](50, 48) -> 47 -[p1,1] -> 48 -[p2,1] -> 49 -[p3,1] -> 50 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/10/pre.hsl b/benchmarks/all/OEGrover/10/pre.hsl index 8e4c317f9..5a728a83e 100644 --- a/benchmarks/all/OEGrover/10/pre.hsl +++ b/benchmarks/all/OEGrover/10/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101> + a |*> # |1000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 4 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1023 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/10/pre.lsta b/benchmarks/all/OEGrover/10/pre.lsta deleted file mode 100644 index 307fcb9bb..000000000 --- a/benchmarks/all/OEGrover/10/pre.lsta +++ /dev/null @@ -1,61 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 22) -> 19 -[11,1](21, 23) -> 20 -[12,1](24, 24) -> 21 -[12,1](25, 24) -> 22 -[12,1](26, 24) -> 23 -[13,1](27, 27) -> 24 -[13,1](28, 27) -> 25 -[13,1](29, 27) -> 26 -[14,1](30, 30) -> 27 -[14,1](31, 30) -> 28 -[14,1](32, 30) -> 29 -[15,1](33, 33) -> 30 -[15,1](34, 33) -> 31 -[15,1](35, 33) -> 32 -[16,1](36, 36) -> 33 -[16,1](37, 36) -> 34 -[16,1](38, 36) -> 35 -[17,1](39, 39) -> 36 -[17,1](40, 39) -> 37 -[17,1](41, 39) -> 38 -[18,1](42, 42) -> 39 -[18,1](43, 42) -> 40 -[18,1](44, 42) -> 41 -[19,1](45, 45) -> 42 -[19,1](46, 45) -> 43 -[19,1](47, 45) -> 44 -[20,1](48, 48) -> 45 -[20,1](49, 48) -> 46 -[20,1](50, 48) -> 47 -[c0,1] -> 48 -[a,1] -> 49 -[b,1] -> 50 -Constraints -1023 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/100/circuit.qasm b/benchmarks/all/OEGrover/100/circuit.qasm index c50626884..1e7b3641f 100644 --- a/benchmarks/all/OEGrover/100/circuit.qasm +++ b/benchmarks/all/OEGrover/100/circuit.qasm @@ -1,254 +1,254 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[200]; +qreg qubits[199]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -x qubits[92]; -x qubits[94]; -x qubits[96]; -x qubits[98]; -ccx qubits[0], qubits[1], qubits[101]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[98], qubits[197], qubits[198]; -cz qubits[198], qubits[99]; -ccx qubits[98], qubits[197], qubits[198]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[0], qubits[1], qubits[101]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +x qubits[183]; +x qubits[187]; +x qubits[191]; +x qubits[195]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[194], qubits[195], qubits[196]; +cz qubits[196], qubits[197]; +ccx qubits[194], qubits[195], qubits[196]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -301,599 +301,599 @@ x qubits[96]; x qubits[98]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; h qubits[97]; -h qubits[98]; h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +h qubits[193]; +h qubits[195]; +h qubits[197]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; x qubits[97]; -x qubits[98]; x qubits[99]; -ccx qubits[0], qubits[1], qubits[101]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[98], qubits[197], qubits[198]; -cz qubits[198], qubits[99]; -ccx qubits[98], qubits[197], qubits[198]; -ccx qubits[97], qubits[196], qubits[197]; -ccx qubits[96], qubits[195], qubits[196]; -ccx qubits[95], qubits[194], qubits[195]; -ccx qubits[94], qubits[193], qubits[194]; -ccx qubits[93], qubits[192], qubits[193]; -ccx qubits[92], qubits[191], qubits[192]; -ccx qubits[91], qubits[190], qubits[191]; -ccx qubits[90], qubits[189], qubits[190]; -ccx qubits[89], qubits[188], qubits[189]; -ccx qubits[88], qubits[187], qubits[188]; -ccx qubits[87], qubits[186], qubits[187]; -ccx qubits[86], qubits[185], qubits[186]; -ccx qubits[85], qubits[184], qubits[185]; -ccx qubits[84], qubits[183], qubits[184]; -ccx qubits[83], qubits[182], qubits[183]; -ccx qubits[82], qubits[181], qubits[182]; -ccx qubits[81], qubits[180], qubits[181]; -ccx qubits[80], qubits[179], qubits[180]; -ccx qubits[79], qubits[178], qubits[179]; -ccx qubits[78], qubits[177], qubits[178]; -ccx qubits[77], qubits[176], qubits[177]; -ccx qubits[76], qubits[175], qubits[176]; -ccx qubits[75], qubits[174], qubits[175]; -ccx qubits[74], qubits[173], qubits[174]; -ccx qubits[73], qubits[172], qubits[173]; -ccx qubits[72], qubits[171], qubits[172]; -ccx qubits[71], qubits[170], qubits[171]; -ccx qubits[70], qubits[169], qubits[170]; -ccx qubits[69], qubits[168], qubits[169]; -ccx qubits[68], qubits[167], qubits[168]; -ccx qubits[67], qubits[166], qubits[167]; -ccx qubits[66], qubits[165], qubits[166]; -ccx qubits[65], qubits[164], qubits[165]; -ccx qubits[64], qubits[163], qubits[164]; -ccx qubits[63], qubits[162], qubits[163]; -ccx qubits[62], qubits[161], qubits[162]; -ccx qubits[61], qubits[160], qubits[161]; -ccx qubits[60], qubits[159], qubits[160]; -ccx qubits[59], qubits[158], qubits[159]; -ccx qubits[58], qubits[157], qubits[158]; -ccx qubits[57], qubits[156], qubits[157]; -ccx qubits[56], qubits[155], qubits[156]; -ccx qubits[55], qubits[154], qubits[155]; -ccx qubits[54], qubits[153], qubits[154]; -ccx qubits[53], qubits[152], qubits[153]; -ccx qubits[52], qubits[151], qubits[152]; -ccx qubits[51], qubits[150], qubits[151]; -ccx qubits[50], qubits[149], qubits[150]; -ccx qubits[49], qubits[148], qubits[149]; -ccx qubits[48], qubits[147], qubits[148]; -ccx qubits[47], qubits[146], qubits[147]; -ccx qubits[46], qubits[145], qubits[146]; -ccx qubits[45], qubits[144], qubits[145]; -ccx qubits[44], qubits[143], qubits[144]; -ccx qubits[43], qubits[142], qubits[143]; -ccx qubits[42], qubits[141], qubits[142]; -ccx qubits[41], qubits[140], qubits[141]; -ccx qubits[40], qubits[139], qubits[140]; -ccx qubits[39], qubits[138], qubits[139]; -ccx qubits[38], qubits[137], qubits[138]; -ccx qubits[37], qubits[136], qubits[137]; -ccx qubits[36], qubits[135], qubits[136]; -ccx qubits[35], qubits[134], qubits[135]; -ccx qubits[34], qubits[133], qubits[134]; -ccx qubits[33], qubits[132], qubits[133]; -ccx qubits[32], qubits[131], qubits[132]; -ccx qubits[31], qubits[130], qubits[131]; -ccx qubits[30], qubits[129], qubits[130]; -ccx qubits[29], qubits[128], qubits[129]; -ccx qubits[28], qubits[127], qubits[128]; -ccx qubits[27], qubits[126], qubits[127]; -ccx qubits[26], qubits[125], qubits[126]; -ccx qubits[25], qubits[124], qubits[125]; -ccx qubits[24], qubits[123], qubits[124]; -ccx qubits[23], qubits[122], qubits[123]; -ccx qubits[22], qubits[121], qubits[122]; -ccx qubits[21], qubits[120], qubits[121]; -ccx qubits[20], qubits[119], qubits[120]; -ccx qubits[19], qubits[118], qubits[119]; -ccx qubits[18], qubits[117], qubits[118]; -ccx qubits[17], qubits[116], qubits[117]; -ccx qubits[16], qubits[115], qubits[116]; -ccx qubits[15], qubits[114], qubits[115]; -ccx qubits[14], qubits[113], qubits[114]; -ccx qubits[13], qubits[112], qubits[113]; -ccx qubits[12], qubits[111], qubits[112]; -ccx qubits[11], qubits[110], qubits[111]; -ccx qubits[10], qubits[109], qubits[110]; -ccx qubits[9], qubits[108], qubits[109]; -ccx qubits[8], qubits[107], qubits[108]; -ccx qubits[7], qubits[106], qubits[107]; -ccx qubits[6], qubits[105], qubits[106]; -ccx qubits[5], qubits[104], qubits[105]; -ccx qubits[4], qubits[103], qubits[104]; -ccx qubits[3], qubits[102], qubits[103]; -ccx qubits[2], qubits[101], qubits[102]; -ccx qubits[0], qubits[1], qubits[101]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +x qubits[193]; +x qubits[195]; +x qubits[197]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[194], qubits[195], qubits[196]; +cz qubits[196], qubits[197]; +ccx qubits[194], qubits[195], qubits[196]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; x qubits[97]; -x qubits[98]; x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +x qubits[193]; +x qubits[195]; +x qubits[197]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; h qubits[97]; -h qubits[98]; h qubits[99]; -z qubits[100]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +h qubits[193]; +h qubits[195]; +h qubits[197]; +z qubits[198]; diff --git a/benchmarks/all/OEGrover/100/post.hsl b/benchmarks/all/OEGrover/100/post.hsl index 514d12cfd..07b7179d8 100644 --- a/benchmarks/all/OEGrover/100/post.hsl +++ b/benchmarks/all/OEGrover/100/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 49 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/100/post.lsta b/benchmarks/all/OEGrover/100/post.lsta deleted file mode 100644 index 1f1eae473..000000000 --- a/benchmarks/all/OEGrover/100/post.lsta +++ /dev/null @@ -1,507 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 195) -> 193 -[98,1](195, 196) -> 194 -[99,1](197, 197) -> 195 -[99,1](198, 197) -> 196 -[100,1](199, 199) -> 197 -[100,1](199, 200) -> 198 -[101,1](201, 202) -> 199 -[101,1](201, 203) -> 200 -[102,1](204, 204) -> 201 -[102,1](205, 204) -> 202 -[102,1](206, 204) -> 203 -[103,1](207, 207) -> 204 -[103,1](208, 207) -> 205 -[103,1](209, 207) -> 206 -[104,1](210, 210) -> 207 -[104,1](211, 210) -> 208 -[104,1](212, 210) -> 209 -[105,1](213, 213) -> 210 -[105,1](214, 213) -> 211 -[105,1](215, 213) -> 212 -[106,1](216, 216) -> 213 -[106,1](217, 216) -> 214 -[106,1](218, 216) -> 215 -[107,1](219, 219) -> 216 -[107,1](220, 219) -> 217 -[107,1](221, 219) -> 218 -[108,1](222, 222) -> 219 -[108,1](223, 222) -> 220 -[108,1](224, 222) -> 221 -[109,1](225, 225) -> 222 -[109,1](226, 225) -> 223 -[109,1](227, 225) -> 224 -[110,1](228, 228) -> 225 -[110,1](229, 228) -> 226 -[110,1](230, 228) -> 227 -[111,1](231, 231) -> 228 -[111,1](232, 231) -> 229 -[111,1](233, 231) -> 230 -[112,1](234, 234) -> 231 -[112,1](235, 234) -> 232 -[112,1](236, 234) -> 233 -[113,1](237, 237) -> 234 -[113,1](238, 237) -> 235 -[113,1](239, 237) -> 236 -[114,1](240, 240) -> 237 -[114,1](241, 240) -> 238 -[114,1](242, 240) -> 239 -[115,1](243, 243) -> 240 -[115,1](244, 243) -> 241 -[115,1](245, 243) -> 242 -[116,1](246, 246) -> 243 -[116,1](247, 246) -> 244 -[116,1](248, 246) -> 245 -[117,1](249, 249) -> 246 -[117,1](250, 249) -> 247 -[117,1](251, 249) -> 248 -[118,1](252, 252) -> 249 -[118,1](253, 252) -> 250 -[118,1](254, 252) -> 251 -[119,1](255, 255) -> 252 -[119,1](256, 255) -> 253 -[119,1](257, 255) -> 254 -[120,1](258, 258) -> 255 -[120,1](259, 258) -> 256 -[120,1](260, 258) -> 257 -[121,1](261, 261) -> 258 -[121,1](262, 261) -> 259 -[121,1](263, 261) -> 260 -[122,1](264, 264) -> 261 -[122,1](265, 264) -> 262 -[122,1](266, 264) -> 263 -[123,1](267, 267) -> 264 -[123,1](268, 267) -> 265 -[123,1](269, 267) -> 266 -[124,1](270, 270) -> 267 -[124,1](271, 270) -> 268 -[124,1](272, 270) -> 269 -[125,1](273, 273) -> 270 -[125,1](274, 273) -> 271 -[125,1](275, 273) -> 272 -[126,1](276, 276) -> 273 -[126,1](277, 276) -> 274 -[126,1](278, 276) -> 275 -[127,1](279, 279) -> 276 -[127,1](280, 279) -> 277 -[127,1](281, 279) -> 278 -[128,1](282, 282) -> 279 -[128,1](283, 282) -> 280 -[128,1](284, 282) -> 281 -[129,1](285, 285) -> 282 -[129,1](286, 285) -> 283 -[129,1](287, 285) -> 284 -[130,1](288, 288) -> 285 -[130,1](289, 288) -> 286 -[130,1](290, 288) -> 287 -[131,1](291, 291) -> 288 -[131,1](292, 291) -> 289 -[131,1](293, 291) -> 290 -[132,1](294, 294) -> 291 -[132,1](295, 294) -> 292 -[132,1](296, 294) -> 293 -[133,1](297, 297) -> 294 -[133,1](298, 297) -> 295 -[133,1](299, 297) -> 296 -[134,1](300, 300) -> 297 -[134,1](301, 300) -> 298 -[134,1](302, 300) -> 299 -[135,1](303, 303) -> 300 -[135,1](304, 303) -> 301 -[135,1](305, 303) -> 302 -[136,1](306, 306) -> 303 -[136,1](307, 306) -> 304 -[136,1](308, 306) -> 305 -[137,1](309, 309) -> 306 -[137,1](310, 309) -> 307 -[137,1](311, 309) -> 308 -[138,1](312, 312) -> 309 -[138,1](313, 312) -> 310 -[138,1](314, 312) -> 311 -[139,1](315, 315) -> 312 -[139,1](316, 315) -> 313 -[139,1](317, 315) -> 314 -[140,1](318, 318) -> 315 -[140,1](319, 318) -> 316 -[140,1](320, 318) -> 317 -[141,1](321, 321) -> 318 -[141,1](322, 321) -> 319 -[141,1](323, 321) -> 320 -[142,1](324, 324) -> 321 -[142,1](325, 324) -> 322 -[142,1](326, 324) -> 323 -[143,1](327, 327) -> 324 -[143,1](328, 327) -> 325 -[143,1](329, 327) -> 326 -[144,1](330, 330) -> 327 -[144,1](331, 330) -> 328 -[144,1](332, 330) -> 329 -[145,1](333, 333) -> 330 -[145,1](334, 333) -> 331 -[145,1](335, 333) -> 332 -[146,1](336, 336) -> 333 -[146,1](337, 336) -> 334 -[146,1](338, 336) -> 335 -[147,1](339, 339) -> 336 -[147,1](340, 339) -> 337 -[147,1](341, 339) -> 338 -[148,1](342, 342) -> 339 -[148,1](343, 342) -> 340 -[148,1](344, 342) -> 341 -[149,1](345, 345) -> 342 -[149,1](346, 345) -> 343 -[149,1](347, 345) -> 344 -[150,1](348, 348) -> 345 -[150,1](349, 348) -> 346 -[150,1](350, 348) -> 347 -[151,1](351, 351) -> 348 -[151,1](352, 351) -> 349 -[151,1](353, 351) -> 350 -[152,1](354, 354) -> 351 -[152,1](355, 354) -> 352 -[152,1](356, 354) -> 353 -[153,1](357, 357) -> 354 -[153,1](358, 357) -> 355 -[153,1](359, 357) -> 356 -[154,1](360, 360) -> 357 -[154,1](361, 360) -> 358 -[154,1](362, 360) -> 359 -[155,1](363, 363) -> 360 -[155,1](364, 363) -> 361 -[155,1](365, 363) -> 362 -[156,1](366, 366) -> 363 -[156,1](367, 366) -> 364 -[156,1](368, 366) -> 365 -[157,1](369, 369) -> 366 -[157,1](370, 369) -> 367 -[157,1](371, 369) -> 368 -[158,1](372, 372) -> 369 -[158,1](373, 372) -> 370 -[158,1](374, 372) -> 371 -[159,1](375, 375) -> 372 -[159,1](376, 375) -> 373 -[159,1](377, 375) -> 374 -[160,1](378, 378) -> 375 -[160,1](379, 378) -> 376 -[160,1](380, 378) -> 377 -[161,1](381, 381) -> 378 -[161,1](382, 381) -> 379 -[161,1](383, 381) -> 380 -[162,1](384, 384) -> 381 -[162,1](385, 384) -> 382 -[162,1](386, 384) -> 383 -[163,1](387, 387) -> 384 -[163,1](388, 387) -> 385 -[163,1](389, 387) -> 386 -[164,1](390, 390) -> 387 -[164,1](391, 390) -> 388 -[164,1](392, 390) -> 389 -[165,1](393, 393) -> 390 -[165,1](394, 393) -> 391 -[165,1](395, 393) -> 392 -[166,1](396, 396) -> 393 -[166,1](397, 396) -> 394 -[166,1](398, 396) -> 395 -[167,1](399, 399) -> 396 -[167,1](400, 399) -> 397 -[167,1](401, 399) -> 398 -[168,1](402, 402) -> 399 -[168,1](403, 402) -> 400 -[168,1](404, 402) -> 401 -[169,1](405, 405) -> 402 -[169,1](406, 405) -> 403 -[169,1](407, 405) -> 404 -[170,1](408, 408) -> 405 -[170,1](409, 408) -> 406 -[170,1](410, 408) -> 407 -[171,1](411, 411) -> 408 -[171,1](412, 411) -> 409 -[171,1](413, 411) -> 410 -[172,1](414, 414) -> 411 -[172,1](415, 414) -> 412 -[172,1](416, 414) -> 413 -[173,1](417, 417) -> 414 -[173,1](418, 417) -> 415 -[173,1](419, 417) -> 416 -[174,1](420, 420) -> 417 -[174,1](421, 420) -> 418 -[174,1](422, 420) -> 419 -[175,1](423, 423) -> 420 -[175,1](424, 423) -> 421 -[175,1](425, 423) -> 422 -[176,1](426, 426) -> 423 -[176,1](427, 426) -> 424 -[176,1](428, 426) -> 425 -[177,1](429, 429) -> 426 -[177,1](430, 429) -> 427 -[177,1](431, 429) -> 428 -[178,1](432, 432) -> 429 -[178,1](433, 432) -> 430 -[178,1](434, 432) -> 431 -[179,1](435, 435) -> 432 -[179,1](436, 435) -> 433 -[179,1](437, 435) -> 434 -[180,1](438, 438) -> 435 -[180,1](439, 438) -> 436 -[180,1](440, 438) -> 437 -[181,1](441, 441) -> 438 -[181,1](442, 441) -> 439 -[181,1](443, 441) -> 440 -[182,1](444, 444) -> 441 -[182,1](445, 444) -> 442 -[182,1](446, 444) -> 443 -[183,1](447, 447) -> 444 -[183,1](448, 447) -> 445 -[183,1](449, 447) -> 446 -[184,1](450, 450) -> 447 -[184,1](451, 450) -> 448 -[184,1](452, 450) -> 449 -[185,1](453, 453) -> 450 -[185,1](454, 453) -> 451 -[185,1](455, 453) -> 452 -[186,1](456, 456) -> 453 -[186,1](457, 456) -> 454 -[186,1](458, 456) -> 455 -[187,1](459, 459) -> 456 -[187,1](460, 459) -> 457 -[187,1](461, 459) -> 458 -[188,1](462, 462) -> 459 -[188,1](463, 462) -> 460 -[188,1](464, 462) -> 461 -[189,1](465, 465) -> 462 -[189,1](466, 465) -> 463 -[189,1](467, 465) -> 464 -[190,1](468, 468) -> 465 -[190,1](469, 468) -> 466 -[190,1](470, 468) -> 467 -[191,1](471, 471) -> 468 -[191,1](472, 471) -> 469 -[191,1](473, 471) -> 470 -[192,1](474, 474) -> 471 -[192,1](475, 474) -> 472 -[192,1](476, 474) -> 473 -[193,1](477, 477) -> 474 -[193,1](478, 477) -> 475 -[193,1](479, 477) -> 476 -[194,1](480, 480) -> 477 -[194,1](481, 480) -> 478 -[194,1](482, 480) -> 479 -[195,1](483, 483) -> 480 -[195,1](484, 483) -> 481 -[195,1](485, 483) -> 482 -[196,1](486, 486) -> 483 -[196,1](487, 486) -> 484 -[196,1](488, 486) -> 485 -[197,1](489, 489) -> 486 -[197,1](490, 489) -> 487 -[197,1](491, 489) -> 488 -[198,1](492, 492) -> 489 -[198,1](493, 492) -> 490 -[198,1](494, 492) -> 491 -[199,1](495, 495) -> 492 -[199,1](496, 495) -> 493 -[199,1](497, 495) -> 494 -[200,1](498, 498) -> 495 -[200,1](499, 498) -> 496 -[200,1](500, 498) -> 497 -[p1,1] -> 498 -[p2,1] -> 499 -[p3,1] -> 500 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/100/pre.hsl b/benchmarks/all/OEGrover/100/pre.hsl index 37ca0a1bd..15bffa32f 100644 --- a/benchmarks/all/OEGrover/100/pre.hsl +++ b/benchmarks/all/OEGrover/100/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 49 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1267650600228229401496703205375 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/100/pre.lsta b/benchmarks/all/OEGrover/100/pre.lsta deleted file mode 100644 index e9e5cf2a7..000000000 --- a/benchmarks/all/OEGrover/100/pre.lsta +++ /dev/null @@ -1,511 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 195) -> 193 -[98,1](195, 196) -> 194 -[99,1](197, 197) -> 195 -[99,1](198, 197) -> 196 -[100,1](199, 199) -> 197 -[100,1](199, 200) -> 198 -[101,1](201, 202) -> 199 -[101,1](201, 203) -> 200 -[102,1](204, 204) -> 201 -[102,1](205, 204) -> 202 -[102,1](206, 204) -> 203 -[103,1](207, 207) -> 204 -[103,1](208, 207) -> 205 -[103,1](209, 207) -> 206 -[104,1](210, 210) -> 207 -[104,1](211, 210) -> 208 -[104,1](212, 210) -> 209 -[105,1](213, 213) -> 210 -[105,1](214, 213) -> 211 -[105,1](215, 213) -> 212 -[106,1](216, 216) -> 213 -[106,1](217, 216) -> 214 -[106,1](218, 216) -> 215 -[107,1](219, 219) -> 216 -[107,1](220, 219) -> 217 -[107,1](221, 219) -> 218 -[108,1](222, 222) -> 219 -[108,1](223, 222) -> 220 -[108,1](224, 222) -> 221 -[109,1](225, 225) -> 222 -[109,1](226, 225) -> 223 -[109,1](227, 225) -> 224 -[110,1](228, 228) -> 225 -[110,1](229, 228) -> 226 -[110,1](230, 228) -> 227 -[111,1](231, 231) -> 228 -[111,1](232, 231) -> 229 -[111,1](233, 231) -> 230 -[112,1](234, 234) -> 231 -[112,1](235, 234) -> 232 -[112,1](236, 234) -> 233 -[113,1](237, 237) -> 234 -[113,1](238, 237) -> 235 -[113,1](239, 237) -> 236 -[114,1](240, 240) -> 237 -[114,1](241, 240) -> 238 -[114,1](242, 240) -> 239 -[115,1](243, 243) -> 240 -[115,1](244, 243) -> 241 -[115,1](245, 243) -> 242 -[116,1](246, 246) -> 243 -[116,1](247, 246) -> 244 -[116,1](248, 246) -> 245 -[117,1](249, 249) -> 246 -[117,1](250, 249) -> 247 -[117,1](251, 249) -> 248 -[118,1](252, 252) -> 249 -[118,1](253, 252) -> 250 -[118,1](254, 252) -> 251 -[119,1](255, 255) -> 252 -[119,1](256, 255) -> 253 -[119,1](257, 255) -> 254 -[120,1](258, 258) -> 255 -[120,1](259, 258) -> 256 -[120,1](260, 258) -> 257 -[121,1](261, 261) -> 258 -[121,1](262, 261) -> 259 -[121,1](263, 261) -> 260 -[122,1](264, 264) -> 261 -[122,1](265, 264) -> 262 -[122,1](266, 264) -> 263 -[123,1](267, 267) -> 264 -[123,1](268, 267) -> 265 -[123,1](269, 267) -> 266 -[124,1](270, 270) -> 267 -[124,1](271, 270) -> 268 -[124,1](272, 270) -> 269 -[125,1](273, 273) -> 270 -[125,1](274, 273) -> 271 -[125,1](275, 273) -> 272 -[126,1](276, 276) -> 273 -[126,1](277, 276) -> 274 -[126,1](278, 276) -> 275 -[127,1](279, 279) -> 276 -[127,1](280, 279) -> 277 -[127,1](281, 279) -> 278 -[128,1](282, 282) -> 279 -[128,1](283, 282) -> 280 -[128,1](284, 282) -> 281 -[129,1](285, 285) -> 282 -[129,1](286, 285) -> 283 -[129,1](287, 285) -> 284 -[130,1](288, 288) -> 285 -[130,1](289, 288) -> 286 -[130,1](290, 288) -> 287 -[131,1](291, 291) -> 288 -[131,1](292, 291) -> 289 -[131,1](293, 291) -> 290 -[132,1](294, 294) -> 291 -[132,1](295, 294) -> 292 -[132,1](296, 294) -> 293 -[133,1](297, 297) -> 294 -[133,1](298, 297) -> 295 -[133,1](299, 297) -> 296 -[134,1](300, 300) -> 297 -[134,1](301, 300) -> 298 -[134,1](302, 300) -> 299 -[135,1](303, 303) -> 300 -[135,1](304, 303) -> 301 -[135,1](305, 303) -> 302 -[136,1](306, 306) -> 303 -[136,1](307, 306) -> 304 -[136,1](308, 306) -> 305 -[137,1](309, 309) -> 306 -[137,1](310, 309) -> 307 -[137,1](311, 309) -> 308 -[138,1](312, 312) -> 309 -[138,1](313, 312) -> 310 -[138,1](314, 312) -> 311 -[139,1](315, 315) -> 312 -[139,1](316, 315) -> 313 -[139,1](317, 315) -> 314 -[140,1](318, 318) -> 315 -[140,1](319, 318) -> 316 -[140,1](320, 318) -> 317 -[141,1](321, 321) -> 318 -[141,1](322, 321) -> 319 -[141,1](323, 321) -> 320 -[142,1](324, 324) -> 321 -[142,1](325, 324) -> 322 -[142,1](326, 324) -> 323 -[143,1](327, 327) -> 324 -[143,1](328, 327) -> 325 -[143,1](329, 327) -> 326 -[144,1](330, 330) -> 327 -[144,1](331, 330) -> 328 -[144,1](332, 330) -> 329 -[145,1](333, 333) -> 330 -[145,1](334, 333) -> 331 -[145,1](335, 333) -> 332 -[146,1](336, 336) -> 333 -[146,1](337, 336) -> 334 -[146,1](338, 336) -> 335 -[147,1](339, 339) -> 336 -[147,1](340, 339) -> 337 -[147,1](341, 339) -> 338 -[148,1](342, 342) -> 339 -[148,1](343, 342) -> 340 -[148,1](344, 342) -> 341 -[149,1](345, 345) -> 342 -[149,1](346, 345) -> 343 -[149,1](347, 345) -> 344 -[150,1](348, 348) -> 345 -[150,1](349, 348) -> 346 -[150,1](350, 348) -> 347 -[151,1](351, 351) -> 348 -[151,1](352, 351) -> 349 -[151,1](353, 351) -> 350 -[152,1](354, 354) -> 351 -[152,1](355, 354) -> 352 -[152,1](356, 354) -> 353 -[153,1](357, 357) -> 354 -[153,1](358, 357) -> 355 -[153,1](359, 357) -> 356 -[154,1](360, 360) -> 357 -[154,1](361, 360) -> 358 -[154,1](362, 360) -> 359 -[155,1](363, 363) -> 360 -[155,1](364, 363) -> 361 -[155,1](365, 363) -> 362 -[156,1](366, 366) -> 363 -[156,1](367, 366) -> 364 -[156,1](368, 366) -> 365 -[157,1](369, 369) -> 366 -[157,1](370, 369) -> 367 -[157,1](371, 369) -> 368 -[158,1](372, 372) -> 369 -[158,1](373, 372) -> 370 -[158,1](374, 372) -> 371 -[159,1](375, 375) -> 372 -[159,1](376, 375) -> 373 -[159,1](377, 375) -> 374 -[160,1](378, 378) -> 375 -[160,1](379, 378) -> 376 -[160,1](380, 378) -> 377 -[161,1](381, 381) -> 378 -[161,1](382, 381) -> 379 -[161,1](383, 381) -> 380 -[162,1](384, 384) -> 381 -[162,1](385, 384) -> 382 -[162,1](386, 384) -> 383 -[163,1](387, 387) -> 384 -[163,1](388, 387) -> 385 -[163,1](389, 387) -> 386 -[164,1](390, 390) -> 387 -[164,1](391, 390) -> 388 -[164,1](392, 390) -> 389 -[165,1](393, 393) -> 390 -[165,1](394, 393) -> 391 -[165,1](395, 393) -> 392 -[166,1](396, 396) -> 393 -[166,1](397, 396) -> 394 -[166,1](398, 396) -> 395 -[167,1](399, 399) -> 396 -[167,1](400, 399) -> 397 -[167,1](401, 399) -> 398 -[168,1](402, 402) -> 399 -[168,1](403, 402) -> 400 -[168,1](404, 402) -> 401 -[169,1](405, 405) -> 402 -[169,1](406, 405) -> 403 -[169,1](407, 405) -> 404 -[170,1](408, 408) -> 405 -[170,1](409, 408) -> 406 -[170,1](410, 408) -> 407 -[171,1](411, 411) -> 408 -[171,1](412, 411) -> 409 -[171,1](413, 411) -> 410 -[172,1](414, 414) -> 411 -[172,1](415, 414) -> 412 -[172,1](416, 414) -> 413 -[173,1](417, 417) -> 414 -[173,1](418, 417) -> 415 -[173,1](419, 417) -> 416 -[174,1](420, 420) -> 417 -[174,1](421, 420) -> 418 -[174,1](422, 420) -> 419 -[175,1](423, 423) -> 420 -[175,1](424, 423) -> 421 -[175,1](425, 423) -> 422 -[176,1](426, 426) -> 423 -[176,1](427, 426) -> 424 -[176,1](428, 426) -> 425 -[177,1](429, 429) -> 426 -[177,1](430, 429) -> 427 -[177,1](431, 429) -> 428 -[178,1](432, 432) -> 429 -[178,1](433, 432) -> 430 -[178,1](434, 432) -> 431 -[179,1](435, 435) -> 432 -[179,1](436, 435) -> 433 -[179,1](437, 435) -> 434 -[180,1](438, 438) -> 435 -[180,1](439, 438) -> 436 -[180,1](440, 438) -> 437 -[181,1](441, 441) -> 438 -[181,1](442, 441) -> 439 -[181,1](443, 441) -> 440 -[182,1](444, 444) -> 441 -[182,1](445, 444) -> 442 -[182,1](446, 444) -> 443 -[183,1](447, 447) -> 444 -[183,1](448, 447) -> 445 -[183,1](449, 447) -> 446 -[184,1](450, 450) -> 447 -[184,1](451, 450) -> 448 -[184,1](452, 450) -> 449 -[185,1](453, 453) -> 450 -[185,1](454, 453) -> 451 -[185,1](455, 453) -> 452 -[186,1](456, 456) -> 453 -[186,1](457, 456) -> 454 -[186,1](458, 456) -> 455 -[187,1](459, 459) -> 456 -[187,1](460, 459) -> 457 -[187,1](461, 459) -> 458 -[188,1](462, 462) -> 459 -[188,1](463, 462) -> 460 -[188,1](464, 462) -> 461 -[189,1](465, 465) -> 462 -[189,1](466, 465) -> 463 -[189,1](467, 465) -> 464 -[190,1](468, 468) -> 465 -[190,1](469, 468) -> 466 -[190,1](470, 468) -> 467 -[191,1](471, 471) -> 468 -[191,1](472, 471) -> 469 -[191,1](473, 471) -> 470 -[192,1](474, 474) -> 471 -[192,1](475, 474) -> 472 -[192,1](476, 474) -> 473 -[193,1](477, 477) -> 474 -[193,1](478, 477) -> 475 -[193,1](479, 477) -> 476 -[194,1](480, 480) -> 477 -[194,1](481, 480) -> 478 -[194,1](482, 480) -> 479 -[195,1](483, 483) -> 480 -[195,1](484, 483) -> 481 -[195,1](485, 483) -> 482 -[196,1](486, 486) -> 483 -[196,1](487, 486) -> 484 -[196,1](488, 486) -> 485 -[197,1](489, 489) -> 486 -[197,1](490, 489) -> 487 -[197,1](491, 489) -> 488 -[198,1](492, 492) -> 489 -[198,1](493, 492) -> 490 -[198,1](494, 492) -> 491 -[199,1](495, 495) -> 492 -[199,1](496, 495) -> 493 -[199,1](497, 495) -> 494 -[200,1](498, 498) -> 495 -[200,1](499, 498) -> 496 -[200,1](500, 498) -> 497 -[c0,1] -> 498 -[a,1] -> 499 -[b,1] -> 500 -Constraints -1267650600228229401496703205375 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/11/circuit.qasm b/benchmarks/all/OEGrover/11/circuit.qasm index 72ac467ff..853a8c821 100644 --- a/benchmarks/all/OEGrover/11/circuit.qasm +++ b/benchmarks/all/OEGrover/11/circuit.qasm @@ -1,32 +1,32 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[22]; +qreg qubits[21]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -ccx qubits[0], qubits[1], qubits[12]; -ccx qubits[2], qubits[12], qubits[13]; -ccx qubits[3], qubits[13], qubits[14]; -ccx qubits[4], qubits[14], qubits[15]; -ccx qubits[5], qubits[15], qubits[16]; -ccx qubits[6], qubits[16], qubits[17]; -ccx qubits[7], qubits[17], qubits[18]; -ccx qubits[8], qubits[18], qubits[19]; -ccx qubits[9], qubits[19], qubits[20]; -cz qubits[20], qubits[10]; -ccx qubits[9], qubits[19], qubits[20]; -ccx qubits[8], qubits[18], qubits[19]; -ccx qubits[7], qubits[17], qubits[18]; -ccx qubits[6], qubits[16], qubits[17]; -ccx qubits[5], qubits[15], qubits[16]; -ccx qubits[4], qubits[14], qubits[15]; -ccx qubits[3], qubits[13], qubits[14]; -ccx qubits[2], qubits[12], qubits[13]; -ccx qubits[0], qubits[1], qubits[12]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +cz qubits[18], qubits[19]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -35,65 +35,65 @@ x qubits[8]; x qubits[10]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; +h qubits[11]; +h qubits[13]; +h qubits[15]; +h qubits[17]; +h qubits[19]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; -ccx qubits[0], qubits[1], qubits[12]; -ccx qubits[2], qubits[12], qubits[13]; -ccx qubits[3], qubits[13], qubits[14]; -ccx qubits[4], qubits[14], qubits[15]; -ccx qubits[5], qubits[15], qubits[16]; -ccx qubits[6], qubits[16], qubits[17]; -ccx qubits[7], qubits[17], qubits[18]; -ccx qubits[8], qubits[18], qubits[19]; -ccx qubits[9], qubits[19], qubits[20]; -cz qubits[20], qubits[10]; -ccx qubits[9], qubits[19], qubits[20]; -ccx qubits[8], qubits[18], qubits[19]; -ccx qubits[7], qubits[17], qubits[18]; -ccx qubits[6], qubits[16], qubits[17]; -ccx qubits[5], qubits[15], qubits[16]; -ccx qubits[4], qubits[14], qubits[15]; -ccx qubits[3], qubits[13], qubits[14]; -ccx qubits[2], qubits[12], qubits[13]; -ccx qubits[0], qubits[1], qubits[12]; +x qubits[11]; +x qubits[13]; +x qubits[15]; +x qubits[17]; +x qubits[19]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +cz qubits[18], qubits[19]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; +x qubits[11]; +x qubits[13]; +x qubits[15]; +x qubits[17]; +x qubits[19]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; -z qubits[11]; +h qubits[11]; +h qubits[13]; +h qubits[15]; +h qubits[17]; +h qubits[19]; +z qubits[20]; diff --git a/benchmarks/all/OEGrover/11/post.hsl b/benchmarks/all/OEGrover/11/post.hsl index 3ad7d7dbd..5259bf25c 100644 --- a/benchmarks/all/OEGrover/11/post.hsl +++ b/benchmarks/all/OEGrover/11/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 4 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/11/post.lsta b/benchmarks/all/OEGrover/11/post.lsta deleted file mode 100644 index 7d417a7ea..000000000 --- a/benchmarks/all/OEGrover/11/post.lsta +++ /dev/null @@ -1,62 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 24) -> 21 -[12,1](23, 25) -> 22 -[13,1](26, 26) -> 23 -[13,1](27, 26) -> 24 -[13,1](28, 26) -> 25 -[14,1](29, 29) -> 26 -[14,1](30, 29) -> 27 -[14,1](31, 29) -> 28 -[15,1](32, 32) -> 29 -[15,1](33, 32) -> 30 -[15,1](34, 32) -> 31 -[16,1](35, 35) -> 32 -[16,1](36, 35) -> 33 -[16,1](37, 35) -> 34 -[17,1](38, 38) -> 35 -[17,1](39, 38) -> 36 -[17,1](40, 38) -> 37 -[18,1](41, 41) -> 38 -[18,1](42, 41) -> 39 -[18,1](43, 41) -> 40 -[19,1](44, 44) -> 41 -[19,1](45, 44) -> 42 -[19,1](46, 44) -> 43 -[20,1](47, 47) -> 44 -[20,1](48, 47) -> 45 -[20,1](49, 47) -> 46 -[21,1](50, 50) -> 47 -[21,1](51, 50) -> 48 -[21,1](52, 50) -> 49 -[22,1](53, 53) -> 50 -[22,1](54, 53) -> 51 -[22,1](55, 53) -> 52 -[p1,1] -> 53 -[p2,1] -> 54 -[p3,1] -> 55 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/11/pre.hsl b/benchmarks/all/OEGrover/11/pre.hsl index a6060582a..883052df7 100644 --- a/benchmarks/all/OEGrover/11/pre.hsl +++ b/benchmarks/all/OEGrover/11/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010> + a |*> # |10000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 4 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 2047 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/11/pre.lsta b/benchmarks/all/OEGrover/11/pre.lsta deleted file mode 100644 index ec03b3c85..000000000 --- a/benchmarks/all/OEGrover/11/pre.lsta +++ /dev/null @@ -1,66 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 24) -> 21 -[12,1](23, 25) -> 22 -[13,1](26, 26) -> 23 -[13,1](27, 26) -> 24 -[13,1](28, 26) -> 25 -[14,1](29, 29) -> 26 -[14,1](30, 29) -> 27 -[14,1](31, 29) -> 28 -[15,1](32, 32) -> 29 -[15,1](33, 32) -> 30 -[15,1](34, 32) -> 31 -[16,1](35, 35) -> 32 -[16,1](36, 35) -> 33 -[16,1](37, 35) -> 34 -[17,1](38, 38) -> 35 -[17,1](39, 38) -> 36 -[17,1](40, 38) -> 37 -[18,1](41, 41) -> 38 -[18,1](42, 41) -> 39 -[18,1](43, 41) -> 40 -[19,1](44, 44) -> 41 -[19,1](45, 44) -> 42 -[19,1](46, 44) -> 43 -[20,1](47, 47) -> 44 -[20,1](48, 47) -> 45 -[20,1](49, 47) -> 46 -[21,1](50, 50) -> 47 -[21,1](51, 50) -> 48 -[21,1](52, 50) -> 49 -[22,1](53, 53) -> 50 -[22,1](54, 53) -> 51 -[22,1](55, 53) -> 52 -[c0,1] -> 53 -[a,1] -> 54 -[b,1] -> 55 -Constraints -2047 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/12/circuit.qasm b/benchmarks/all/OEGrover/12/circuit.qasm index e8a26abdf..11550f058 100644 --- a/benchmarks/all/OEGrover/12/circuit.qasm +++ b/benchmarks/all/OEGrover/12/circuit.qasm @@ -1,34 +1,34 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[24]; +qreg qubits[23]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -ccx qubits[0], qubits[1], qubits[13]; -ccx qubits[2], qubits[13], qubits[14]; -ccx qubits[3], qubits[14], qubits[15]; -ccx qubits[4], qubits[15], qubits[16]; -ccx qubits[5], qubits[16], qubits[17]; -ccx qubits[6], qubits[17], qubits[18]; -ccx qubits[7], qubits[18], qubits[19]; -ccx qubits[8], qubits[19], qubits[20]; -ccx qubits[9], qubits[20], qubits[21]; -ccx qubits[10], qubits[21], qubits[22]; -cz qubits[22], qubits[11]; -ccx qubits[10], qubits[21], qubits[22]; -ccx qubits[9], qubits[20], qubits[21]; -ccx qubits[8], qubits[19], qubits[20]; -ccx qubits[7], qubits[18], qubits[19]; -ccx qubits[6], qubits[17], qubits[18]; -ccx qubits[5], qubits[16], qubits[17]; -ccx qubits[4], qubits[15], qubits[16]; -ccx qubits[3], qubits[14], qubits[15]; -ccx qubits[2], qubits[13], qubits[14]; -ccx qubits[0], qubits[1], qubits[13]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +cz qubits[20], qubits[21]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -37,71 +37,71 @@ x qubits[8]; x qubits[10]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; +h qubits[13]; +h qubits[15]; +h qubits[17]; +h qubits[19]; +h qubits[21]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -ccx qubits[0], qubits[1], qubits[13]; -ccx qubits[2], qubits[13], qubits[14]; -ccx qubits[3], qubits[14], qubits[15]; -ccx qubits[4], qubits[15], qubits[16]; -ccx qubits[5], qubits[16], qubits[17]; -ccx qubits[6], qubits[17], qubits[18]; -ccx qubits[7], qubits[18], qubits[19]; -ccx qubits[8], qubits[19], qubits[20]; -ccx qubits[9], qubits[20], qubits[21]; -ccx qubits[10], qubits[21], qubits[22]; -cz qubits[22], qubits[11]; -ccx qubits[10], qubits[21], qubits[22]; -ccx qubits[9], qubits[20], qubits[21]; -ccx qubits[8], qubits[19], qubits[20]; -ccx qubits[7], qubits[18], qubits[19]; -ccx qubits[6], qubits[17], qubits[18]; -ccx qubits[5], qubits[16], qubits[17]; -ccx qubits[4], qubits[15], qubits[16]; -ccx qubits[3], qubits[14], qubits[15]; -ccx qubits[2], qubits[13], qubits[14]; -ccx qubits[0], qubits[1], qubits[13]; +x qubits[13]; +x qubits[15]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +cz qubits[20], qubits[21]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; +x qubits[13]; +x qubits[15]; +x qubits[17]; +x qubits[19]; +x qubits[21]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -z qubits[12]; +h qubits[13]; +h qubits[15]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +z qubits[22]; diff --git a/benchmarks/all/OEGrover/12/post.hsl b/benchmarks/all/OEGrover/12/post.hsl index c11776d93..d3f9861a0 100644 --- a/benchmarks/all/OEGrover/12/post.hsl +++ b/benchmarks/all/OEGrover/12/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101100000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 5 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/12/post.lsta b/benchmarks/all/OEGrover/12/post.lsta deleted file mode 100644 index 3d483a7b2..000000000 --- a/benchmarks/all/OEGrover/12/post.lsta +++ /dev/null @@ -1,67 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 26) -> 23 -[13,1](25, 27) -> 24 -[14,1](28, 28) -> 25 -[14,1](29, 28) -> 26 -[14,1](30, 28) -> 27 -[15,1](31, 31) -> 28 -[15,1](32, 31) -> 29 -[15,1](33, 31) -> 30 -[16,1](34, 34) -> 31 -[16,1](35, 34) -> 32 -[16,1](36, 34) -> 33 -[17,1](37, 37) -> 34 -[17,1](38, 37) -> 35 -[17,1](39, 37) -> 36 -[18,1](40, 40) -> 37 -[18,1](41, 40) -> 38 -[18,1](42, 40) -> 39 -[19,1](43, 43) -> 40 -[19,1](44, 43) -> 41 -[19,1](45, 43) -> 42 -[20,1](46, 46) -> 43 -[20,1](47, 46) -> 44 -[20,1](48, 46) -> 45 -[21,1](49, 49) -> 46 -[21,1](50, 49) -> 47 -[21,1](51, 49) -> 48 -[22,1](52, 52) -> 49 -[22,1](53, 52) -> 50 -[22,1](54, 52) -> 51 -[23,1](55, 55) -> 52 -[23,1](56, 55) -> 53 -[23,1](57, 55) -> 54 -[24,1](58, 58) -> 55 -[24,1](59, 58) -> 56 -[24,1](60, 58) -> 57 -[p1,1] -> 58 -[p2,1] -> 59 -[p3,1] -> 60 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/12/pre.hsl b/benchmarks/all/OEGrover/12/pre.hsl index 63f75341f..a704a3259 100644 --- a/benchmarks/all/OEGrover/12/pre.hsl +++ b/benchmarks/all/OEGrover/12/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101> + a |*> # |100000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 5 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 4095 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/12/pre.lsta b/benchmarks/all/OEGrover/12/pre.lsta deleted file mode 100644 index 642caa3c0..000000000 --- a/benchmarks/all/OEGrover/12/pre.lsta +++ /dev/null @@ -1,71 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 26) -> 23 -[13,1](25, 27) -> 24 -[14,1](28, 28) -> 25 -[14,1](29, 28) -> 26 -[14,1](30, 28) -> 27 -[15,1](31, 31) -> 28 -[15,1](32, 31) -> 29 -[15,1](33, 31) -> 30 -[16,1](34, 34) -> 31 -[16,1](35, 34) -> 32 -[16,1](36, 34) -> 33 -[17,1](37, 37) -> 34 -[17,1](38, 37) -> 35 -[17,1](39, 37) -> 36 -[18,1](40, 40) -> 37 -[18,1](41, 40) -> 38 -[18,1](42, 40) -> 39 -[19,1](43, 43) -> 40 -[19,1](44, 43) -> 41 -[19,1](45, 43) -> 42 -[20,1](46, 46) -> 43 -[20,1](47, 46) -> 44 -[20,1](48, 46) -> 45 -[21,1](49, 49) -> 46 -[21,1](50, 49) -> 47 -[21,1](51, 49) -> 48 -[22,1](52, 52) -> 49 -[22,1](53, 52) -> 50 -[22,1](54, 52) -> 51 -[23,1](55, 55) -> 52 -[23,1](56, 55) -> 53 -[23,1](57, 55) -> 54 -[24,1](58, 58) -> 55 -[24,1](59, 58) -> 56 -[24,1](60, 58) -> 57 -[c0,1] -> 58 -[a,1] -> 59 -[b,1] -> 60 -Constraints -4095 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/13/circuit.qasm b/benchmarks/all/OEGrover/13/circuit.qasm index 8b8cbeb36..b073b20de 100644 --- a/benchmarks/all/OEGrover/13/circuit.qasm +++ b/benchmarks/all/OEGrover/13/circuit.qasm @@ -1,37 +1,37 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[26]; +qreg qubits[25]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -ccx qubits[0], qubits[1], qubits[14]; -ccx qubits[2], qubits[14], qubits[15]; -ccx qubits[3], qubits[15], qubits[16]; -ccx qubits[4], qubits[16], qubits[17]; -ccx qubits[5], qubits[17], qubits[18]; -ccx qubits[6], qubits[18], qubits[19]; -ccx qubits[7], qubits[19], qubits[20]; -ccx qubits[8], qubits[20], qubits[21]; -ccx qubits[9], qubits[21], qubits[22]; -ccx qubits[10], qubits[22], qubits[23]; -ccx qubits[11], qubits[23], qubits[24]; -cz qubits[24], qubits[12]; -ccx qubits[11], qubits[23], qubits[24]; -ccx qubits[10], qubits[22], qubits[23]; -ccx qubits[9], qubits[21], qubits[22]; -ccx qubits[8], qubits[20], qubits[21]; -ccx qubits[7], qubits[19], qubits[20]; -ccx qubits[6], qubits[18], qubits[19]; -ccx qubits[5], qubits[17], qubits[18]; -ccx qubits[4], qubits[16], qubits[17]; -ccx qubits[3], qubits[15], qubits[16]; -ccx qubits[2], qubits[14], qubits[15]; -ccx qubits[0], qubits[1], qubits[14]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +cz qubits[22], qubits[23]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -41,77 +41,77 @@ x qubits[10]; x qubits[12]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; +h qubits[13]; +h qubits[15]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; -ccx qubits[0], qubits[1], qubits[14]; -ccx qubits[2], qubits[14], qubits[15]; -ccx qubits[3], qubits[15], qubits[16]; -ccx qubits[4], qubits[16], qubits[17]; -ccx qubits[5], qubits[17], qubits[18]; -ccx qubits[6], qubits[18], qubits[19]; -ccx qubits[7], qubits[19], qubits[20]; -ccx qubits[8], qubits[20], qubits[21]; -ccx qubits[9], qubits[21], qubits[22]; -ccx qubits[10], qubits[22], qubits[23]; -ccx qubits[11], qubits[23], qubits[24]; -cz qubits[24], qubits[12]; -ccx qubits[11], qubits[23], qubits[24]; -ccx qubits[10], qubits[22], qubits[23]; -ccx qubits[9], qubits[21], qubits[22]; -ccx qubits[8], qubits[20], qubits[21]; -ccx qubits[7], qubits[19], qubits[20]; -ccx qubits[6], qubits[18], qubits[19]; -ccx qubits[5], qubits[17], qubits[18]; -ccx qubits[4], qubits[16], qubits[17]; -ccx qubits[3], qubits[15], qubits[16]; -ccx qubits[2], qubits[14], qubits[15]; -ccx qubits[0], qubits[1], qubits[14]; +x qubits[13]; +x qubits[15]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +cz qubits[22], qubits[23]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; +x qubits[13]; +x qubits[15]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; -z qubits[13]; +h qubits[13]; +h qubits[15]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +z qubits[24]; diff --git a/benchmarks/all/OEGrover/13/post.hsl b/benchmarks/all/OEGrover/13/post.hsl index bf66f4994..69cc30a7b 100644 --- a/benchmarks/all/OEGrover/13/post.hsl +++ b/benchmarks/all/OEGrover/13/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 5 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/13/post.lsta b/benchmarks/all/OEGrover/13/post.lsta deleted file mode 100644 index 1d08c95d6..000000000 --- a/benchmarks/all/OEGrover/13/post.lsta +++ /dev/null @@ -1,72 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 28) -> 25 -[14,1](27, 29) -> 26 -[15,1](30, 30) -> 27 -[15,1](31, 30) -> 28 -[15,1](32, 30) -> 29 -[16,1](33, 33) -> 30 -[16,1](34, 33) -> 31 -[16,1](35, 33) -> 32 -[17,1](36, 36) -> 33 -[17,1](37, 36) -> 34 -[17,1](38, 36) -> 35 -[18,1](39, 39) -> 36 -[18,1](40, 39) -> 37 -[18,1](41, 39) -> 38 -[19,1](42, 42) -> 39 -[19,1](43, 42) -> 40 -[19,1](44, 42) -> 41 -[20,1](45, 45) -> 42 -[20,1](46, 45) -> 43 -[20,1](47, 45) -> 44 -[21,1](48, 48) -> 45 -[21,1](49, 48) -> 46 -[21,1](50, 48) -> 47 -[22,1](51, 51) -> 48 -[22,1](52, 51) -> 49 -[22,1](53, 51) -> 50 -[23,1](54, 54) -> 51 -[23,1](55, 54) -> 52 -[23,1](56, 54) -> 53 -[24,1](57, 57) -> 54 -[24,1](58, 57) -> 55 -[24,1](59, 57) -> 56 -[25,1](60, 60) -> 57 -[25,1](61, 60) -> 58 -[25,1](62, 60) -> 59 -[26,1](63, 63) -> 60 -[26,1](64, 63) -> 61 -[26,1](65, 63) -> 62 -[p1,1] -> 63 -[p2,1] -> 64 -[p3,1] -> 65 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/13/pre.hsl b/benchmarks/all/OEGrover/13/pre.hsl index f10a8f603..a573cd744 100644 --- a/benchmarks/all/OEGrover/13/pre.hsl +++ b/benchmarks/all/OEGrover/13/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010> + a |*> # |1000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 5 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 8191 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/13/pre.lsta b/benchmarks/all/OEGrover/13/pre.lsta deleted file mode 100644 index b8e5175e0..000000000 --- a/benchmarks/all/OEGrover/13/pre.lsta +++ /dev/null @@ -1,76 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 28) -> 25 -[14,1](27, 29) -> 26 -[15,1](30, 30) -> 27 -[15,1](31, 30) -> 28 -[15,1](32, 30) -> 29 -[16,1](33, 33) -> 30 -[16,1](34, 33) -> 31 -[16,1](35, 33) -> 32 -[17,1](36, 36) -> 33 -[17,1](37, 36) -> 34 -[17,1](38, 36) -> 35 -[18,1](39, 39) -> 36 -[18,1](40, 39) -> 37 -[18,1](41, 39) -> 38 -[19,1](42, 42) -> 39 -[19,1](43, 42) -> 40 -[19,1](44, 42) -> 41 -[20,1](45, 45) -> 42 -[20,1](46, 45) -> 43 -[20,1](47, 45) -> 44 -[21,1](48, 48) -> 45 -[21,1](49, 48) -> 46 -[21,1](50, 48) -> 47 -[22,1](51, 51) -> 48 -[22,1](52, 51) -> 49 -[22,1](53, 51) -> 50 -[23,1](54, 54) -> 51 -[23,1](55, 54) -> 52 -[23,1](56, 54) -> 53 -[24,1](57, 57) -> 54 -[24,1](58, 57) -> 55 -[24,1](59, 57) -> 56 -[25,1](60, 60) -> 57 -[25,1](61, 60) -> 58 -[25,1](62, 60) -> 59 -[26,1](63, 63) -> 60 -[26,1](64, 63) -> 61 -[26,1](65, 63) -> 62 -[c0,1] -> 63 -[a,1] -> 64 -[b,1] -> 65 -Constraints -8191 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/14/circuit.qasm b/benchmarks/all/OEGrover/14/circuit.qasm index 569aecd10..2c8bf783f 100644 --- a/benchmarks/all/OEGrover/14/circuit.qasm +++ b/benchmarks/all/OEGrover/14/circuit.qasm @@ -1,39 +1,39 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[28]; +qreg qubits[27]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -ccx qubits[0], qubits[1], qubits[15]; -ccx qubits[2], qubits[15], qubits[16]; -ccx qubits[3], qubits[16], qubits[17]; -ccx qubits[4], qubits[17], qubits[18]; -ccx qubits[5], qubits[18], qubits[19]; -ccx qubits[6], qubits[19], qubits[20]; -ccx qubits[7], qubits[20], qubits[21]; -ccx qubits[8], qubits[21], qubits[22]; -ccx qubits[9], qubits[22], qubits[23]; -ccx qubits[10], qubits[23], qubits[24]; -ccx qubits[11], qubits[24], qubits[25]; -ccx qubits[12], qubits[25], qubits[26]; -cz qubits[26], qubits[13]; -ccx qubits[12], qubits[25], qubits[26]; -ccx qubits[11], qubits[24], qubits[25]; -ccx qubits[10], qubits[23], qubits[24]; -ccx qubits[9], qubits[22], qubits[23]; -ccx qubits[8], qubits[21], qubits[22]; -ccx qubits[7], qubits[20], qubits[21]; -ccx qubits[6], qubits[19], qubits[20]; -ccx qubits[5], qubits[18], qubits[19]; -ccx qubits[4], qubits[17], qubits[18]; -ccx qubits[3], qubits[16], qubits[17]; -ccx qubits[2], qubits[15], qubits[16]; -ccx qubits[0], qubits[1], qubits[15]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +cz qubits[24], qubits[25]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -43,83 +43,83 @@ x qubits[10]; x qubits[12]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; +h qubits[15]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -ccx qubits[0], qubits[1], qubits[15]; -ccx qubits[2], qubits[15], qubits[16]; -ccx qubits[3], qubits[16], qubits[17]; -ccx qubits[4], qubits[17], qubits[18]; -ccx qubits[5], qubits[18], qubits[19]; -ccx qubits[6], qubits[19], qubits[20]; -ccx qubits[7], qubits[20], qubits[21]; -ccx qubits[8], qubits[21], qubits[22]; -ccx qubits[9], qubits[22], qubits[23]; -ccx qubits[10], qubits[23], qubits[24]; -ccx qubits[11], qubits[24], qubits[25]; -ccx qubits[12], qubits[25], qubits[26]; -cz qubits[26], qubits[13]; -ccx qubits[12], qubits[25], qubits[26]; -ccx qubits[11], qubits[24], qubits[25]; -ccx qubits[10], qubits[23], qubits[24]; -ccx qubits[9], qubits[22], qubits[23]; -ccx qubits[8], qubits[21], qubits[22]; -ccx qubits[7], qubits[20], qubits[21]; -ccx qubits[6], qubits[19], qubits[20]; -ccx qubits[5], qubits[18], qubits[19]; -ccx qubits[4], qubits[17], qubits[18]; -ccx qubits[3], qubits[16], qubits[17]; -ccx qubits[2], qubits[15], qubits[16]; -ccx qubits[0], qubits[1], qubits[15]; +x qubits[15]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +cz qubits[24], qubits[25]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; +x qubits[15]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -z qubits[14]; +h qubits[15]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +z qubits[26]; diff --git a/benchmarks/all/OEGrover/14/post.hsl b/benchmarks/all/OEGrover/14/post.hsl index 3fa646cd0..1f063bc90 100644 --- a/benchmarks/all/OEGrover/14/post.hsl +++ b/benchmarks/all/OEGrover/14/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010110000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 6 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/14/post.lsta b/benchmarks/all/OEGrover/14/post.lsta deleted file mode 100644 index 72777a7ee..000000000 --- a/benchmarks/all/OEGrover/14/post.lsta +++ /dev/null @@ -1,77 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 30) -> 27 -[15,1](29, 31) -> 28 -[16,1](32, 32) -> 29 -[16,1](33, 32) -> 30 -[16,1](34, 32) -> 31 -[17,1](35, 35) -> 32 -[17,1](36, 35) -> 33 -[17,1](37, 35) -> 34 -[18,1](38, 38) -> 35 -[18,1](39, 38) -> 36 -[18,1](40, 38) -> 37 -[19,1](41, 41) -> 38 -[19,1](42, 41) -> 39 -[19,1](43, 41) -> 40 -[20,1](44, 44) -> 41 -[20,1](45, 44) -> 42 -[20,1](46, 44) -> 43 -[21,1](47, 47) -> 44 -[21,1](48, 47) -> 45 -[21,1](49, 47) -> 46 -[22,1](50, 50) -> 47 -[22,1](51, 50) -> 48 -[22,1](52, 50) -> 49 -[23,1](53, 53) -> 50 -[23,1](54, 53) -> 51 -[23,1](55, 53) -> 52 -[24,1](56, 56) -> 53 -[24,1](57, 56) -> 54 -[24,1](58, 56) -> 55 -[25,1](59, 59) -> 56 -[25,1](60, 59) -> 57 -[25,1](61, 59) -> 58 -[26,1](62, 62) -> 59 -[26,1](63, 62) -> 60 -[26,1](64, 62) -> 61 -[27,1](65, 65) -> 62 -[27,1](66, 65) -> 63 -[27,1](67, 65) -> 64 -[28,1](68, 68) -> 65 -[28,1](69, 68) -> 66 -[28,1](70, 68) -> 67 -[p1,1] -> 68 -[p2,1] -> 69 -[p3,1] -> 70 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/14/pre.hsl b/benchmarks/all/OEGrover/14/pre.hsl index 8a66938b1..261f9b6b9 100644 --- a/benchmarks/all/OEGrover/14/pre.hsl +++ b/benchmarks/all/OEGrover/14/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101> + a |*> # |10000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 6 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 16383 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/14/pre.lsta b/benchmarks/all/OEGrover/14/pre.lsta deleted file mode 100644 index 9cd79ea50..000000000 --- a/benchmarks/all/OEGrover/14/pre.lsta +++ /dev/null @@ -1,81 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 30) -> 27 -[15,1](29, 31) -> 28 -[16,1](32, 32) -> 29 -[16,1](33, 32) -> 30 -[16,1](34, 32) -> 31 -[17,1](35, 35) -> 32 -[17,1](36, 35) -> 33 -[17,1](37, 35) -> 34 -[18,1](38, 38) -> 35 -[18,1](39, 38) -> 36 -[18,1](40, 38) -> 37 -[19,1](41, 41) -> 38 -[19,1](42, 41) -> 39 -[19,1](43, 41) -> 40 -[20,1](44, 44) -> 41 -[20,1](45, 44) -> 42 -[20,1](46, 44) -> 43 -[21,1](47, 47) -> 44 -[21,1](48, 47) -> 45 -[21,1](49, 47) -> 46 -[22,1](50, 50) -> 47 -[22,1](51, 50) -> 48 -[22,1](52, 50) -> 49 -[23,1](53, 53) -> 50 -[23,1](54, 53) -> 51 -[23,1](55, 53) -> 52 -[24,1](56, 56) -> 53 -[24,1](57, 56) -> 54 -[24,1](58, 56) -> 55 -[25,1](59, 59) -> 56 -[25,1](60, 59) -> 57 -[25,1](61, 59) -> 58 -[26,1](62, 62) -> 59 -[26,1](63, 62) -> 60 -[26,1](64, 62) -> 61 -[27,1](65, 65) -> 62 -[27,1](66, 65) -> 63 -[27,1](67, 65) -> 64 -[28,1](68, 68) -> 65 -[28,1](69, 68) -> 66 -[28,1](70, 68) -> 67 -[c0,1] -> 68 -[a,1] -> 69 -[b,1] -> 70 -Constraints -16383 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/15/circuit.qasm b/benchmarks/all/OEGrover/15/circuit.qasm index fc6d42248..9c3f265b6 100644 --- a/benchmarks/all/OEGrover/15/circuit.qasm +++ b/benchmarks/all/OEGrover/15/circuit.qasm @@ -1,42 +1,42 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[30]; +qreg qubits[29]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -ccx qubits[0], qubits[1], qubits[16]; -ccx qubits[2], qubits[16], qubits[17]; -ccx qubits[3], qubits[17], qubits[18]; -ccx qubits[4], qubits[18], qubits[19]; -ccx qubits[5], qubits[19], qubits[20]; -ccx qubits[6], qubits[20], qubits[21]; -ccx qubits[7], qubits[21], qubits[22]; -ccx qubits[8], qubits[22], qubits[23]; -ccx qubits[9], qubits[23], qubits[24]; -ccx qubits[10], qubits[24], qubits[25]; -ccx qubits[11], qubits[25], qubits[26]; -ccx qubits[12], qubits[26], qubits[27]; -ccx qubits[13], qubits[27], qubits[28]; -cz qubits[28], qubits[14]; -ccx qubits[13], qubits[27], qubits[28]; -ccx qubits[12], qubits[26], qubits[27]; -ccx qubits[11], qubits[25], qubits[26]; -ccx qubits[10], qubits[24], qubits[25]; -ccx qubits[9], qubits[23], qubits[24]; -ccx qubits[8], qubits[22], qubits[23]; -ccx qubits[7], qubits[21], qubits[22]; -ccx qubits[6], qubits[20], qubits[21]; -ccx qubits[5], qubits[19], qubits[20]; -ccx qubits[4], qubits[18], qubits[19]; -ccx qubits[3], qubits[17], qubits[18]; -ccx qubits[2], qubits[16], qubits[17]; -ccx qubits[0], qubits[1], qubits[16]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +cz qubits[26], qubits[27]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -47,89 +47,89 @@ x qubits[12]; x qubits[14]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; +h qubits[15]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; -ccx qubits[0], qubits[1], qubits[16]; -ccx qubits[2], qubits[16], qubits[17]; -ccx qubits[3], qubits[17], qubits[18]; -ccx qubits[4], qubits[18], qubits[19]; -ccx qubits[5], qubits[19], qubits[20]; -ccx qubits[6], qubits[20], qubits[21]; -ccx qubits[7], qubits[21], qubits[22]; -ccx qubits[8], qubits[22], qubits[23]; -ccx qubits[9], qubits[23], qubits[24]; -ccx qubits[10], qubits[24], qubits[25]; -ccx qubits[11], qubits[25], qubits[26]; -ccx qubits[12], qubits[26], qubits[27]; -ccx qubits[13], qubits[27], qubits[28]; -cz qubits[28], qubits[14]; -ccx qubits[13], qubits[27], qubits[28]; -ccx qubits[12], qubits[26], qubits[27]; -ccx qubits[11], qubits[25], qubits[26]; -ccx qubits[10], qubits[24], qubits[25]; -ccx qubits[9], qubits[23], qubits[24]; -ccx qubits[8], qubits[22], qubits[23]; -ccx qubits[7], qubits[21], qubits[22]; -ccx qubits[6], qubits[20], qubits[21]; -ccx qubits[5], qubits[19], qubits[20]; -ccx qubits[4], qubits[18], qubits[19]; -ccx qubits[3], qubits[17], qubits[18]; -ccx qubits[2], qubits[16], qubits[17]; -ccx qubits[0], qubits[1], qubits[16]; +x qubits[15]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +cz qubits[26], qubits[27]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; +x qubits[15]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; -z qubits[15]; +h qubits[15]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +z qubits[28]; diff --git a/benchmarks/all/OEGrover/15/post.hsl b/benchmarks/all/OEGrover/15/post.hsl index 8bcf90452..0f5ecbad9 100644 --- a/benchmarks/all/OEGrover/15/post.hsl +++ b/benchmarks/all/OEGrover/15/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010100000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 6 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/15/post.lsta b/benchmarks/all/OEGrover/15/post.lsta deleted file mode 100644 index 0ae2532c7..000000000 --- a/benchmarks/all/OEGrover/15/post.lsta +++ /dev/null @@ -1,82 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 32) -> 29 -[16,1](31, 33) -> 30 -[17,1](34, 34) -> 31 -[17,1](35, 34) -> 32 -[17,1](36, 34) -> 33 -[18,1](37, 37) -> 34 -[18,1](38, 37) -> 35 -[18,1](39, 37) -> 36 -[19,1](40, 40) -> 37 -[19,1](41, 40) -> 38 -[19,1](42, 40) -> 39 -[20,1](43, 43) -> 40 -[20,1](44, 43) -> 41 -[20,1](45, 43) -> 42 -[21,1](46, 46) -> 43 -[21,1](47, 46) -> 44 -[21,1](48, 46) -> 45 -[22,1](49, 49) -> 46 -[22,1](50, 49) -> 47 -[22,1](51, 49) -> 48 -[23,1](52, 52) -> 49 -[23,1](53, 52) -> 50 -[23,1](54, 52) -> 51 -[24,1](55, 55) -> 52 -[24,1](56, 55) -> 53 -[24,1](57, 55) -> 54 -[25,1](58, 58) -> 55 -[25,1](59, 58) -> 56 -[25,1](60, 58) -> 57 -[26,1](61, 61) -> 58 -[26,1](62, 61) -> 59 -[26,1](63, 61) -> 60 -[27,1](64, 64) -> 61 -[27,1](65, 64) -> 62 -[27,1](66, 64) -> 63 -[28,1](67, 67) -> 64 -[28,1](68, 67) -> 65 -[28,1](69, 67) -> 66 -[29,1](70, 70) -> 67 -[29,1](71, 70) -> 68 -[29,1](72, 70) -> 69 -[30,1](73, 73) -> 70 -[30,1](74, 73) -> 71 -[30,1](75, 73) -> 72 -[p1,1] -> 73 -[p2,1] -> 74 -[p3,1] -> 75 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/15/pre.hsl b/benchmarks/all/OEGrover/15/pre.hsl index 7b9bd58ba..c7515fe48 100644 --- a/benchmarks/all/OEGrover/15/pre.hsl +++ b/benchmarks/all/OEGrover/15/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010> + a |*> # |100000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 6 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 32767 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/15/pre.lsta b/benchmarks/all/OEGrover/15/pre.lsta deleted file mode 100644 index d138c1142..000000000 --- a/benchmarks/all/OEGrover/15/pre.lsta +++ /dev/null @@ -1,86 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 32) -> 29 -[16,1](31, 33) -> 30 -[17,1](34, 34) -> 31 -[17,1](35, 34) -> 32 -[17,1](36, 34) -> 33 -[18,1](37, 37) -> 34 -[18,1](38, 37) -> 35 -[18,1](39, 37) -> 36 -[19,1](40, 40) -> 37 -[19,1](41, 40) -> 38 -[19,1](42, 40) -> 39 -[20,1](43, 43) -> 40 -[20,1](44, 43) -> 41 -[20,1](45, 43) -> 42 -[21,1](46, 46) -> 43 -[21,1](47, 46) -> 44 -[21,1](48, 46) -> 45 -[22,1](49, 49) -> 46 -[22,1](50, 49) -> 47 -[22,1](51, 49) -> 48 -[23,1](52, 52) -> 49 -[23,1](53, 52) -> 50 -[23,1](54, 52) -> 51 -[24,1](55, 55) -> 52 -[24,1](56, 55) -> 53 -[24,1](57, 55) -> 54 -[25,1](58, 58) -> 55 -[25,1](59, 58) -> 56 -[25,1](60, 58) -> 57 -[26,1](61, 61) -> 58 -[26,1](62, 61) -> 59 -[26,1](63, 61) -> 60 -[27,1](64, 64) -> 61 -[27,1](65, 64) -> 62 -[27,1](66, 64) -> 63 -[28,1](67, 67) -> 64 -[28,1](68, 67) -> 65 -[28,1](69, 67) -> 66 -[29,1](70, 70) -> 67 -[29,1](71, 70) -> 68 -[29,1](72, 70) -> 69 -[30,1](73, 73) -> 70 -[30,1](74, 73) -> 71 -[30,1](75, 73) -> 72 -[c0,1] -> 73 -[a,1] -> 74 -[b,1] -> 75 -Constraints -32767 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/16/circuit.qasm b/benchmarks/all/OEGrover/16/circuit.qasm index a9d0bb4f7..6ef66b805 100644 --- a/benchmarks/all/OEGrover/16/circuit.qasm +++ b/benchmarks/all/OEGrover/16/circuit.qasm @@ -1,44 +1,44 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[32]; +qreg qubits[31]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -ccx qubits[0], qubits[1], qubits[17]; -ccx qubits[2], qubits[17], qubits[18]; -ccx qubits[3], qubits[18], qubits[19]; -ccx qubits[4], qubits[19], qubits[20]; -ccx qubits[5], qubits[20], qubits[21]; -ccx qubits[6], qubits[21], qubits[22]; -ccx qubits[7], qubits[22], qubits[23]; -ccx qubits[8], qubits[23], qubits[24]; -ccx qubits[9], qubits[24], qubits[25]; -ccx qubits[10], qubits[25], qubits[26]; -ccx qubits[11], qubits[26], qubits[27]; -ccx qubits[12], qubits[27], qubits[28]; -ccx qubits[13], qubits[28], qubits[29]; -ccx qubits[14], qubits[29], qubits[30]; -cz qubits[30], qubits[15]; -ccx qubits[14], qubits[29], qubits[30]; -ccx qubits[13], qubits[28], qubits[29]; -ccx qubits[12], qubits[27], qubits[28]; -ccx qubits[11], qubits[26], qubits[27]; -ccx qubits[10], qubits[25], qubits[26]; -ccx qubits[9], qubits[24], qubits[25]; -ccx qubits[8], qubits[23], qubits[24]; -ccx qubits[7], qubits[22], qubits[23]; -ccx qubits[6], qubits[21], qubits[22]; -ccx qubits[5], qubits[20], qubits[21]; -ccx qubits[4], qubits[19], qubits[20]; -ccx qubits[3], qubits[18], qubits[19]; -ccx qubits[2], qubits[17], qubits[18]; -ccx qubits[0], qubits[1], qubits[17]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +cz qubits[28], qubits[29]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -49,95 +49,95 @@ x qubits[12]; x qubits[14]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -ccx qubits[0], qubits[1], qubits[17]; -ccx qubits[2], qubits[17], qubits[18]; -ccx qubits[3], qubits[18], qubits[19]; -ccx qubits[4], qubits[19], qubits[20]; -ccx qubits[5], qubits[20], qubits[21]; -ccx qubits[6], qubits[21], qubits[22]; -ccx qubits[7], qubits[22], qubits[23]; -ccx qubits[8], qubits[23], qubits[24]; -ccx qubits[9], qubits[24], qubits[25]; -ccx qubits[10], qubits[25], qubits[26]; -ccx qubits[11], qubits[26], qubits[27]; -ccx qubits[12], qubits[27], qubits[28]; -ccx qubits[13], qubits[28], qubits[29]; -ccx qubits[14], qubits[29], qubits[30]; -cz qubits[30], qubits[15]; -ccx qubits[14], qubits[29], qubits[30]; -ccx qubits[13], qubits[28], qubits[29]; -ccx qubits[12], qubits[27], qubits[28]; -ccx qubits[11], qubits[26], qubits[27]; -ccx qubits[10], qubits[25], qubits[26]; -ccx qubits[9], qubits[24], qubits[25]; -ccx qubits[8], qubits[23], qubits[24]; -ccx qubits[7], qubits[22], qubits[23]; -ccx qubits[6], qubits[21], qubits[22]; -ccx qubits[5], qubits[20], qubits[21]; -ccx qubits[4], qubits[19], qubits[20]; -ccx qubits[3], qubits[18], qubits[19]; -ccx qubits[2], qubits[17], qubits[18]; -ccx qubits[0], qubits[1], qubits[17]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +cz qubits[28], qubits[29]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -z qubits[16]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +z qubits[30]; diff --git a/benchmarks/all/OEGrover/16/post.hsl b/benchmarks/all/OEGrover/16/post.hsl index 086aa9c4b..4dd78978e 100644 --- a/benchmarks/all/OEGrover/16/post.hsl +++ b/benchmarks/all/OEGrover/16/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101011000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 7 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/16/post.lsta b/benchmarks/all/OEGrover/16/post.lsta deleted file mode 100644 index beeeaf1a8..000000000 --- a/benchmarks/all/OEGrover/16/post.lsta +++ /dev/null @@ -1,87 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 34) -> 31 -[17,1](33, 35) -> 32 -[18,1](36, 36) -> 33 -[18,1](37, 36) -> 34 -[18,1](38, 36) -> 35 -[19,1](39, 39) -> 36 -[19,1](40, 39) -> 37 -[19,1](41, 39) -> 38 -[20,1](42, 42) -> 39 -[20,1](43, 42) -> 40 -[20,1](44, 42) -> 41 -[21,1](45, 45) -> 42 -[21,1](46, 45) -> 43 -[21,1](47, 45) -> 44 -[22,1](48, 48) -> 45 -[22,1](49, 48) -> 46 -[22,1](50, 48) -> 47 -[23,1](51, 51) -> 48 -[23,1](52, 51) -> 49 -[23,1](53, 51) -> 50 -[24,1](54, 54) -> 51 -[24,1](55, 54) -> 52 -[24,1](56, 54) -> 53 -[25,1](57, 57) -> 54 -[25,1](58, 57) -> 55 -[25,1](59, 57) -> 56 -[26,1](60, 60) -> 57 -[26,1](61, 60) -> 58 -[26,1](62, 60) -> 59 -[27,1](63, 63) -> 60 -[27,1](64, 63) -> 61 -[27,1](65, 63) -> 62 -[28,1](66, 66) -> 63 -[28,1](67, 66) -> 64 -[28,1](68, 66) -> 65 -[29,1](69, 69) -> 66 -[29,1](70, 69) -> 67 -[29,1](71, 69) -> 68 -[30,1](72, 72) -> 69 -[30,1](73, 72) -> 70 -[30,1](74, 72) -> 71 -[31,1](75, 75) -> 72 -[31,1](76, 75) -> 73 -[31,1](77, 75) -> 74 -[32,1](78, 78) -> 75 -[32,1](79, 78) -> 76 -[32,1](80, 78) -> 77 -[p1,1] -> 78 -[p2,1] -> 79 -[p3,1] -> 80 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/16/pre.hsl b/benchmarks/all/OEGrover/16/pre.hsl index 9237cc27b..854963d95 100644 --- a/benchmarks/all/OEGrover/16/pre.hsl +++ b/benchmarks/all/OEGrover/16/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101> + a |*> # |1000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 7 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 65535 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/16/pre.lsta b/benchmarks/all/OEGrover/16/pre.lsta deleted file mode 100644 index 6e24efaae..000000000 --- a/benchmarks/all/OEGrover/16/pre.lsta +++ /dev/null @@ -1,91 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 34) -> 31 -[17,1](33, 35) -> 32 -[18,1](36, 36) -> 33 -[18,1](37, 36) -> 34 -[18,1](38, 36) -> 35 -[19,1](39, 39) -> 36 -[19,1](40, 39) -> 37 -[19,1](41, 39) -> 38 -[20,1](42, 42) -> 39 -[20,1](43, 42) -> 40 -[20,1](44, 42) -> 41 -[21,1](45, 45) -> 42 -[21,1](46, 45) -> 43 -[21,1](47, 45) -> 44 -[22,1](48, 48) -> 45 -[22,1](49, 48) -> 46 -[22,1](50, 48) -> 47 -[23,1](51, 51) -> 48 -[23,1](52, 51) -> 49 -[23,1](53, 51) -> 50 -[24,1](54, 54) -> 51 -[24,1](55, 54) -> 52 -[24,1](56, 54) -> 53 -[25,1](57, 57) -> 54 -[25,1](58, 57) -> 55 -[25,1](59, 57) -> 56 -[26,1](60, 60) -> 57 -[26,1](61, 60) -> 58 -[26,1](62, 60) -> 59 -[27,1](63, 63) -> 60 -[27,1](64, 63) -> 61 -[27,1](65, 63) -> 62 -[28,1](66, 66) -> 63 -[28,1](67, 66) -> 64 -[28,1](68, 66) -> 65 -[29,1](69, 69) -> 66 -[29,1](70, 69) -> 67 -[29,1](71, 69) -> 68 -[30,1](72, 72) -> 69 -[30,1](73, 72) -> 70 -[30,1](74, 72) -> 71 -[31,1](75, 75) -> 72 -[31,1](76, 75) -> 73 -[31,1](77, 75) -> 74 -[32,1](78, 78) -> 75 -[32,1](79, 78) -> 76 -[32,1](80, 78) -> 77 -[c0,1] -> 78 -[a,1] -> 79 -[b,1] -> 80 -Constraints -65535 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/17/circuit.qasm b/benchmarks/all/OEGrover/17/circuit.qasm index 7e5bd9f4c..3099dd545 100644 --- a/benchmarks/all/OEGrover/17/circuit.qasm +++ b/benchmarks/all/OEGrover/17/circuit.qasm @@ -1,47 +1,47 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[34]; +qreg qubits[33]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -ccx qubits[0], qubits[1], qubits[18]; -ccx qubits[2], qubits[18], qubits[19]; -ccx qubits[3], qubits[19], qubits[20]; -ccx qubits[4], qubits[20], qubits[21]; -ccx qubits[5], qubits[21], qubits[22]; -ccx qubits[6], qubits[22], qubits[23]; -ccx qubits[7], qubits[23], qubits[24]; -ccx qubits[8], qubits[24], qubits[25]; -ccx qubits[9], qubits[25], qubits[26]; -ccx qubits[10], qubits[26], qubits[27]; -ccx qubits[11], qubits[27], qubits[28]; -ccx qubits[12], qubits[28], qubits[29]; -ccx qubits[13], qubits[29], qubits[30]; -ccx qubits[14], qubits[30], qubits[31]; -ccx qubits[15], qubits[31], qubits[32]; -cz qubits[32], qubits[16]; -ccx qubits[15], qubits[31], qubits[32]; -ccx qubits[14], qubits[30], qubits[31]; -ccx qubits[13], qubits[29], qubits[30]; -ccx qubits[12], qubits[28], qubits[29]; -ccx qubits[11], qubits[27], qubits[28]; -ccx qubits[10], qubits[26], qubits[27]; -ccx qubits[9], qubits[25], qubits[26]; -ccx qubits[8], qubits[24], qubits[25]; -ccx qubits[7], qubits[23], qubits[24]; -ccx qubits[6], qubits[22], qubits[23]; -ccx qubits[5], qubits[21], qubits[22]; -ccx qubits[4], qubits[20], qubits[21]; -ccx qubits[3], qubits[19], qubits[20]; -ccx qubits[2], qubits[18], qubits[19]; -ccx qubits[0], qubits[1], qubits[18]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +cz qubits[30], qubits[31]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -53,101 +53,101 @@ x qubits[14]; x qubits[16]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; -ccx qubits[0], qubits[1], qubits[18]; -ccx qubits[2], qubits[18], qubits[19]; -ccx qubits[3], qubits[19], qubits[20]; -ccx qubits[4], qubits[20], qubits[21]; -ccx qubits[5], qubits[21], qubits[22]; -ccx qubits[6], qubits[22], qubits[23]; -ccx qubits[7], qubits[23], qubits[24]; -ccx qubits[8], qubits[24], qubits[25]; -ccx qubits[9], qubits[25], qubits[26]; -ccx qubits[10], qubits[26], qubits[27]; -ccx qubits[11], qubits[27], qubits[28]; -ccx qubits[12], qubits[28], qubits[29]; -ccx qubits[13], qubits[29], qubits[30]; -ccx qubits[14], qubits[30], qubits[31]; -ccx qubits[15], qubits[31], qubits[32]; -cz qubits[32], qubits[16]; -ccx qubits[15], qubits[31], qubits[32]; -ccx qubits[14], qubits[30], qubits[31]; -ccx qubits[13], qubits[29], qubits[30]; -ccx qubits[12], qubits[28], qubits[29]; -ccx qubits[11], qubits[27], qubits[28]; -ccx qubits[10], qubits[26], qubits[27]; -ccx qubits[9], qubits[25], qubits[26]; -ccx qubits[8], qubits[24], qubits[25]; -ccx qubits[7], qubits[23], qubits[24]; -ccx qubits[6], qubits[22], qubits[23]; -ccx qubits[5], qubits[21], qubits[22]; -ccx qubits[4], qubits[20], qubits[21]; -ccx qubits[3], qubits[19], qubits[20]; -ccx qubits[2], qubits[18], qubits[19]; -ccx qubits[0], qubits[1], qubits[18]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +cz qubits[30], qubits[31]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; +x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; -z qubits[17]; +h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +z qubits[32]; diff --git a/benchmarks/all/OEGrover/17/post.hsl b/benchmarks/all/OEGrover/17/post.hsl index a77d127cc..6f3c66793 100644 --- a/benchmarks/all/OEGrover/17/post.hsl +++ b/benchmarks/all/OEGrover/17/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 7 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/17/post.lsta b/benchmarks/all/OEGrover/17/post.lsta deleted file mode 100644 index 9f066e401..000000000 --- a/benchmarks/all/OEGrover/17/post.lsta +++ /dev/null @@ -1,92 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 36) -> 33 -[18,1](35, 37) -> 34 -[19,1](38, 38) -> 35 -[19,1](39, 38) -> 36 -[19,1](40, 38) -> 37 -[20,1](41, 41) -> 38 -[20,1](42, 41) -> 39 -[20,1](43, 41) -> 40 -[21,1](44, 44) -> 41 -[21,1](45, 44) -> 42 -[21,1](46, 44) -> 43 -[22,1](47, 47) -> 44 -[22,1](48, 47) -> 45 -[22,1](49, 47) -> 46 -[23,1](50, 50) -> 47 -[23,1](51, 50) -> 48 -[23,1](52, 50) -> 49 -[24,1](53, 53) -> 50 -[24,1](54, 53) -> 51 -[24,1](55, 53) -> 52 -[25,1](56, 56) -> 53 -[25,1](57, 56) -> 54 -[25,1](58, 56) -> 55 -[26,1](59, 59) -> 56 -[26,1](60, 59) -> 57 -[26,1](61, 59) -> 58 -[27,1](62, 62) -> 59 -[27,1](63, 62) -> 60 -[27,1](64, 62) -> 61 -[28,1](65, 65) -> 62 -[28,1](66, 65) -> 63 -[28,1](67, 65) -> 64 -[29,1](68, 68) -> 65 -[29,1](69, 68) -> 66 -[29,1](70, 68) -> 67 -[30,1](71, 71) -> 68 -[30,1](72, 71) -> 69 -[30,1](73, 71) -> 70 -[31,1](74, 74) -> 71 -[31,1](75, 74) -> 72 -[31,1](76, 74) -> 73 -[32,1](77, 77) -> 74 -[32,1](78, 77) -> 75 -[32,1](79, 77) -> 76 -[33,1](80, 80) -> 77 -[33,1](81, 80) -> 78 -[33,1](82, 80) -> 79 -[34,1](83, 83) -> 80 -[34,1](84, 83) -> 81 -[34,1](85, 83) -> 82 -[p1,1] -> 83 -[p2,1] -> 84 -[p3,1] -> 85 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/17/pre.hsl b/benchmarks/all/OEGrover/17/pre.hsl index b50286a34..19647f034 100644 --- a/benchmarks/all/OEGrover/17/pre.hsl +++ b/benchmarks/all/OEGrover/17/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010> + a |*> # |10000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 7 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 131071 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/17/pre.lsta b/benchmarks/all/OEGrover/17/pre.lsta deleted file mode 100644 index d8b25d493..000000000 --- a/benchmarks/all/OEGrover/17/pre.lsta +++ /dev/null @@ -1,96 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 36) -> 33 -[18,1](35, 37) -> 34 -[19,1](38, 38) -> 35 -[19,1](39, 38) -> 36 -[19,1](40, 38) -> 37 -[20,1](41, 41) -> 38 -[20,1](42, 41) -> 39 -[20,1](43, 41) -> 40 -[21,1](44, 44) -> 41 -[21,1](45, 44) -> 42 -[21,1](46, 44) -> 43 -[22,1](47, 47) -> 44 -[22,1](48, 47) -> 45 -[22,1](49, 47) -> 46 -[23,1](50, 50) -> 47 -[23,1](51, 50) -> 48 -[23,1](52, 50) -> 49 -[24,1](53, 53) -> 50 -[24,1](54, 53) -> 51 -[24,1](55, 53) -> 52 -[25,1](56, 56) -> 53 -[25,1](57, 56) -> 54 -[25,1](58, 56) -> 55 -[26,1](59, 59) -> 56 -[26,1](60, 59) -> 57 -[26,1](61, 59) -> 58 -[27,1](62, 62) -> 59 -[27,1](63, 62) -> 60 -[27,1](64, 62) -> 61 -[28,1](65, 65) -> 62 -[28,1](66, 65) -> 63 -[28,1](67, 65) -> 64 -[29,1](68, 68) -> 65 -[29,1](69, 68) -> 66 -[29,1](70, 68) -> 67 -[30,1](71, 71) -> 68 -[30,1](72, 71) -> 69 -[30,1](73, 71) -> 70 -[31,1](74, 74) -> 71 -[31,1](75, 74) -> 72 -[31,1](76, 74) -> 73 -[32,1](77, 77) -> 74 -[32,1](78, 77) -> 75 -[32,1](79, 77) -> 76 -[33,1](80, 80) -> 77 -[33,1](81, 80) -> 78 -[33,1](82, 80) -> 79 -[34,1](83, 83) -> 80 -[34,1](84, 83) -> 81 -[34,1](85, 83) -> 82 -[c0,1] -> 83 -[a,1] -> 84 -[b,1] -> 85 -Constraints -131071 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/18/circuit.qasm b/benchmarks/all/OEGrover/18/circuit.qasm index fd9c44fab..ed31e04c5 100644 --- a/benchmarks/all/OEGrover/18/circuit.qasm +++ b/benchmarks/all/OEGrover/18/circuit.qasm @@ -1,49 +1,49 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[36]; +qreg qubits[35]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -ccx qubits[0], qubits[1], qubits[19]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[16], qubits[33], qubits[34]; -cz qubits[34], qubits[17]; -ccx qubits[16], qubits[33], qubits[34]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[0], qubits[1], qubits[19]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +cz qubits[32], qubits[33]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -55,107 +55,107 @@ x qubits[14]; x qubits[16]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -ccx qubits[0], qubits[1], qubits[19]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[16], qubits[33], qubits[34]; -cz qubits[34], qubits[17]; -ccx qubits[16], qubits[33], qubits[34]; -ccx qubits[15], qubits[32], qubits[33]; -ccx qubits[14], qubits[31], qubits[32]; -ccx qubits[13], qubits[30], qubits[31]; -ccx qubits[12], qubits[29], qubits[30]; -ccx qubits[11], qubits[28], qubits[29]; -ccx qubits[10], qubits[27], qubits[28]; -ccx qubits[9], qubits[26], qubits[27]; -ccx qubits[8], qubits[25], qubits[26]; -ccx qubits[7], qubits[24], qubits[25]; -ccx qubits[6], qubits[23], qubits[24]; -ccx qubits[5], qubits[22], qubits[23]; -ccx qubits[4], qubits[21], qubits[22]; -ccx qubits[3], qubits[20], qubits[21]; -ccx qubits[2], qubits[19], qubits[20]; -ccx qubits[0], qubits[1], qubits[19]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +cz qubits[32], qubits[33]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -z qubits[18]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +z qubits[34]; diff --git a/benchmarks/all/OEGrover/18/post.hsl b/benchmarks/all/OEGrover/18/post.hsl index 2afb8b0e0..970d318ec 100644 --- a/benchmarks/all/OEGrover/18/post.hsl +++ b/benchmarks/all/OEGrover/18/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101100000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 8 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/18/post.lsta b/benchmarks/all/OEGrover/18/post.lsta deleted file mode 100644 index a7330128a..000000000 --- a/benchmarks/all/OEGrover/18/post.lsta +++ /dev/null @@ -1,97 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 38) -> 35 -[19,1](37, 39) -> 36 -[20,1](40, 40) -> 37 -[20,1](41, 40) -> 38 -[20,1](42, 40) -> 39 -[21,1](43, 43) -> 40 -[21,1](44, 43) -> 41 -[21,1](45, 43) -> 42 -[22,1](46, 46) -> 43 -[22,1](47, 46) -> 44 -[22,1](48, 46) -> 45 -[23,1](49, 49) -> 46 -[23,1](50, 49) -> 47 -[23,1](51, 49) -> 48 -[24,1](52, 52) -> 49 -[24,1](53, 52) -> 50 -[24,1](54, 52) -> 51 -[25,1](55, 55) -> 52 -[25,1](56, 55) -> 53 -[25,1](57, 55) -> 54 -[26,1](58, 58) -> 55 -[26,1](59, 58) -> 56 -[26,1](60, 58) -> 57 -[27,1](61, 61) -> 58 -[27,1](62, 61) -> 59 -[27,1](63, 61) -> 60 -[28,1](64, 64) -> 61 -[28,1](65, 64) -> 62 -[28,1](66, 64) -> 63 -[29,1](67, 67) -> 64 -[29,1](68, 67) -> 65 -[29,1](69, 67) -> 66 -[30,1](70, 70) -> 67 -[30,1](71, 70) -> 68 -[30,1](72, 70) -> 69 -[31,1](73, 73) -> 70 -[31,1](74, 73) -> 71 -[31,1](75, 73) -> 72 -[32,1](76, 76) -> 73 -[32,1](77, 76) -> 74 -[32,1](78, 76) -> 75 -[33,1](79, 79) -> 76 -[33,1](80, 79) -> 77 -[33,1](81, 79) -> 78 -[34,1](82, 82) -> 79 -[34,1](83, 82) -> 80 -[34,1](84, 82) -> 81 -[35,1](85, 85) -> 82 -[35,1](86, 85) -> 83 -[35,1](87, 85) -> 84 -[36,1](88, 88) -> 85 -[36,1](89, 88) -> 86 -[36,1](90, 88) -> 87 -[p1,1] -> 88 -[p2,1] -> 89 -[p3,1] -> 90 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/18/pre.hsl b/benchmarks/all/OEGrover/18/pre.hsl index 8cb0530b9..1935766a0 100644 --- a/benchmarks/all/OEGrover/18/pre.hsl +++ b/benchmarks/all/OEGrover/18/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101> + a |*> # |100000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 8 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 262143 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/18/pre.lsta b/benchmarks/all/OEGrover/18/pre.lsta deleted file mode 100644 index 15854ae4b..000000000 --- a/benchmarks/all/OEGrover/18/pre.lsta +++ /dev/null @@ -1,101 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 38) -> 35 -[19,1](37, 39) -> 36 -[20,1](40, 40) -> 37 -[20,1](41, 40) -> 38 -[20,1](42, 40) -> 39 -[21,1](43, 43) -> 40 -[21,1](44, 43) -> 41 -[21,1](45, 43) -> 42 -[22,1](46, 46) -> 43 -[22,1](47, 46) -> 44 -[22,1](48, 46) -> 45 -[23,1](49, 49) -> 46 -[23,1](50, 49) -> 47 -[23,1](51, 49) -> 48 -[24,1](52, 52) -> 49 -[24,1](53, 52) -> 50 -[24,1](54, 52) -> 51 -[25,1](55, 55) -> 52 -[25,1](56, 55) -> 53 -[25,1](57, 55) -> 54 -[26,1](58, 58) -> 55 -[26,1](59, 58) -> 56 -[26,1](60, 58) -> 57 -[27,1](61, 61) -> 58 -[27,1](62, 61) -> 59 -[27,1](63, 61) -> 60 -[28,1](64, 64) -> 61 -[28,1](65, 64) -> 62 -[28,1](66, 64) -> 63 -[29,1](67, 67) -> 64 -[29,1](68, 67) -> 65 -[29,1](69, 67) -> 66 -[30,1](70, 70) -> 67 -[30,1](71, 70) -> 68 -[30,1](72, 70) -> 69 -[31,1](73, 73) -> 70 -[31,1](74, 73) -> 71 -[31,1](75, 73) -> 72 -[32,1](76, 76) -> 73 -[32,1](77, 76) -> 74 -[32,1](78, 76) -> 75 -[33,1](79, 79) -> 76 -[33,1](80, 79) -> 77 -[33,1](81, 79) -> 78 -[34,1](82, 82) -> 79 -[34,1](83, 82) -> 80 -[34,1](84, 82) -> 81 -[35,1](85, 85) -> 82 -[35,1](86, 85) -> 83 -[35,1](87, 85) -> 84 -[36,1](88, 88) -> 85 -[36,1](89, 88) -> 86 -[36,1](90, 88) -> 87 -[c0,1] -> 88 -[a,1] -> 89 -[b,1] -> 90 -Constraints -262143 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/19/circuit.qasm b/benchmarks/all/OEGrover/19/circuit.qasm index 1f0ddfdea..3aa69f08d 100644 --- a/benchmarks/all/OEGrover/19/circuit.qasm +++ b/benchmarks/all/OEGrover/19/circuit.qasm @@ -1,52 +1,52 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[38]; +qreg qubits[37]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -ccx qubits[0], qubits[1], qubits[20]; -ccx qubits[2], qubits[20], qubits[21]; -ccx qubits[3], qubits[21], qubits[22]; -ccx qubits[4], qubits[22], qubits[23]; -ccx qubits[5], qubits[23], qubits[24]; -ccx qubits[6], qubits[24], qubits[25]; -ccx qubits[7], qubits[25], qubits[26]; -ccx qubits[8], qubits[26], qubits[27]; -ccx qubits[9], qubits[27], qubits[28]; -ccx qubits[10], qubits[28], qubits[29]; -ccx qubits[11], qubits[29], qubits[30]; -ccx qubits[12], qubits[30], qubits[31]; -ccx qubits[13], qubits[31], qubits[32]; -ccx qubits[14], qubits[32], qubits[33]; -ccx qubits[15], qubits[33], qubits[34]; -ccx qubits[16], qubits[34], qubits[35]; -ccx qubits[17], qubits[35], qubits[36]; -cz qubits[36], qubits[18]; -ccx qubits[17], qubits[35], qubits[36]; -ccx qubits[16], qubits[34], qubits[35]; -ccx qubits[15], qubits[33], qubits[34]; -ccx qubits[14], qubits[32], qubits[33]; -ccx qubits[13], qubits[31], qubits[32]; -ccx qubits[12], qubits[30], qubits[31]; -ccx qubits[11], qubits[29], qubits[30]; -ccx qubits[10], qubits[28], qubits[29]; -ccx qubits[9], qubits[27], qubits[28]; -ccx qubits[8], qubits[26], qubits[27]; -ccx qubits[7], qubits[25], qubits[26]; -ccx qubits[6], qubits[24], qubits[25]; -ccx qubits[5], qubits[23], qubits[24]; -ccx qubits[4], qubits[22], qubits[23]; -ccx qubits[3], qubits[21], qubits[22]; -ccx qubits[2], qubits[20], qubits[21]; -ccx qubits[0], qubits[1], qubits[20]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +cz qubits[34], qubits[35]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -59,113 +59,113 @@ x qubits[16]; x qubits[18]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; -ccx qubits[0], qubits[1], qubits[20]; -ccx qubits[2], qubits[20], qubits[21]; -ccx qubits[3], qubits[21], qubits[22]; -ccx qubits[4], qubits[22], qubits[23]; -ccx qubits[5], qubits[23], qubits[24]; -ccx qubits[6], qubits[24], qubits[25]; -ccx qubits[7], qubits[25], qubits[26]; -ccx qubits[8], qubits[26], qubits[27]; -ccx qubits[9], qubits[27], qubits[28]; -ccx qubits[10], qubits[28], qubits[29]; -ccx qubits[11], qubits[29], qubits[30]; -ccx qubits[12], qubits[30], qubits[31]; -ccx qubits[13], qubits[31], qubits[32]; -ccx qubits[14], qubits[32], qubits[33]; -ccx qubits[15], qubits[33], qubits[34]; -ccx qubits[16], qubits[34], qubits[35]; -ccx qubits[17], qubits[35], qubits[36]; -cz qubits[36], qubits[18]; -ccx qubits[17], qubits[35], qubits[36]; -ccx qubits[16], qubits[34], qubits[35]; -ccx qubits[15], qubits[33], qubits[34]; -ccx qubits[14], qubits[32], qubits[33]; -ccx qubits[13], qubits[31], qubits[32]; -ccx qubits[12], qubits[30], qubits[31]; -ccx qubits[11], qubits[29], qubits[30]; -ccx qubits[10], qubits[28], qubits[29]; -ccx qubits[9], qubits[27], qubits[28]; -ccx qubits[8], qubits[26], qubits[27]; -ccx qubits[7], qubits[25], qubits[26]; -ccx qubits[6], qubits[24], qubits[25]; -ccx qubits[5], qubits[23], qubits[24]; -ccx qubits[4], qubits[22], qubits[23]; -ccx qubits[3], qubits[21], qubits[22]; -ccx qubits[2], qubits[20], qubits[21]; -ccx qubits[0], qubits[1], qubits[20]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +cz qubits[34], qubits[35]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; +x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; -z qubits[19]; +h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +z qubits[36]; diff --git a/benchmarks/all/OEGrover/19/post.hsl b/benchmarks/all/OEGrover/19/post.hsl index 563a58a51..acf02af52 100644 --- a/benchmarks/all/OEGrover/19/post.hsl +++ b/benchmarks/all/OEGrover/19/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 8 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/19/post.lsta b/benchmarks/all/OEGrover/19/post.lsta deleted file mode 100644 index 0677ab85f..000000000 --- a/benchmarks/all/OEGrover/19/post.lsta +++ /dev/null @@ -1,102 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 40) -> 37 -[20,1](39, 41) -> 38 -[21,1](42, 42) -> 39 -[21,1](43, 42) -> 40 -[21,1](44, 42) -> 41 -[22,1](45, 45) -> 42 -[22,1](46, 45) -> 43 -[22,1](47, 45) -> 44 -[23,1](48, 48) -> 45 -[23,1](49, 48) -> 46 -[23,1](50, 48) -> 47 -[24,1](51, 51) -> 48 -[24,1](52, 51) -> 49 -[24,1](53, 51) -> 50 -[25,1](54, 54) -> 51 -[25,1](55, 54) -> 52 -[25,1](56, 54) -> 53 -[26,1](57, 57) -> 54 -[26,1](58, 57) -> 55 -[26,1](59, 57) -> 56 -[27,1](60, 60) -> 57 -[27,1](61, 60) -> 58 -[27,1](62, 60) -> 59 -[28,1](63, 63) -> 60 -[28,1](64, 63) -> 61 -[28,1](65, 63) -> 62 -[29,1](66, 66) -> 63 -[29,1](67, 66) -> 64 -[29,1](68, 66) -> 65 -[30,1](69, 69) -> 66 -[30,1](70, 69) -> 67 -[30,1](71, 69) -> 68 -[31,1](72, 72) -> 69 -[31,1](73, 72) -> 70 -[31,1](74, 72) -> 71 -[32,1](75, 75) -> 72 -[32,1](76, 75) -> 73 -[32,1](77, 75) -> 74 -[33,1](78, 78) -> 75 -[33,1](79, 78) -> 76 -[33,1](80, 78) -> 77 -[34,1](81, 81) -> 78 -[34,1](82, 81) -> 79 -[34,1](83, 81) -> 80 -[35,1](84, 84) -> 81 -[35,1](85, 84) -> 82 -[35,1](86, 84) -> 83 -[36,1](87, 87) -> 84 -[36,1](88, 87) -> 85 -[36,1](89, 87) -> 86 -[37,1](90, 90) -> 87 -[37,1](91, 90) -> 88 -[37,1](92, 90) -> 89 -[38,1](93, 93) -> 90 -[38,1](94, 93) -> 91 -[38,1](95, 93) -> 92 -[p1,1] -> 93 -[p2,1] -> 94 -[p3,1] -> 95 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/19/pre.hsl b/benchmarks/all/OEGrover/19/pre.hsl index f240f014b..be2e7b047 100644 --- a/benchmarks/all/OEGrover/19/pre.hsl +++ b/benchmarks/all/OEGrover/19/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010> + a |*> # |1000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 8 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 524287 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/19/pre.lsta b/benchmarks/all/OEGrover/19/pre.lsta deleted file mode 100644 index 937a85650..000000000 --- a/benchmarks/all/OEGrover/19/pre.lsta +++ /dev/null @@ -1,106 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 40) -> 37 -[20,1](39, 41) -> 38 -[21,1](42, 42) -> 39 -[21,1](43, 42) -> 40 -[21,1](44, 42) -> 41 -[22,1](45, 45) -> 42 -[22,1](46, 45) -> 43 -[22,1](47, 45) -> 44 -[23,1](48, 48) -> 45 -[23,1](49, 48) -> 46 -[23,1](50, 48) -> 47 -[24,1](51, 51) -> 48 -[24,1](52, 51) -> 49 -[24,1](53, 51) -> 50 -[25,1](54, 54) -> 51 -[25,1](55, 54) -> 52 -[25,1](56, 54) -> 53 -[26,1](57, 57) -> 54 -[26,1](58, 57) -> 55 -[26,1](59, 57) -> 56 -[27,1](60, 60) -> 57 -[27,1](61, 60) -> 58 -[27,1](62, 60) -> 59 -[28,1](63, 63) -> 60 -[28,1](64, 63) -> 61 -[28,1](65, 63) -> 62 -[29,1](66, 66) -> 63 -[29,1](67, 66) -> 64 -[29,1](68, 66) -> 65 -[30,1](69, 69) -> 66 -[30,1](70, 69) -> 67 -[30,1](71, 69) -> 68 -[31,1](72, 72) -> 69 -[31,1](73, 72) -> 70 -[31,1](74, 72) -> 71 -[32,1](75, 75) -> 72 -[32,1](76, 75) -> 73 -[32,1](77, 75) -> 74 -[33,1](78, 78) -> 75 -[33,1](79, 78) -> 76 -[33,1](80, 78) -> 77 -[34,1](81, 81) -> 78 -[34,1](82, 81) -> 79 -[34,1](83, 81) -> 80 -[35,1](84, 84) -> 81 -[35,1](85, 84) -> 82 -[35,1](86, 84) -> 83 -[36,1](87, 87) -> 84 -[36,1](88, 87) -> 85 -[36,1](89, 87) -> 86 -[37,1](90, 90) -> 87 -[37,1](91, 90) -> 88 -[37,1](92, 90) -> 89 -[38,1](93, 93) -> 90 -[38,1](94, 93) -> 91 -[38,1](95, 93) -> 92 -[c0,1] -> 93 -[a,1] -> 94 -[b,1] -> 95 -Constraints -524287 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/20/circuit.qasm b/benchmarks/all/OEGrover/20/circuit.qasm index 7f27b8756..901b52d75 100644 --- a/benchmarks/all/OEGrover/20/circuit.qasm +++ b/benchmarks/all/OEGrover/20/circuit.qasm @@ -1,54 +1,54 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[40]; +qreg qubits[39]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -ccx qubits[0], qubits[1], qubits[21]; -ccx qubits[2], qubits[21], qubits[22]; -ccx qubits[3], qubits[22], qubits[23]; -ccx qubits[4], qubits[23], qubits[24]; -ccx qubits[5], qubits[24], qubits[25]; -ccx qubits[6], qubits[25], qubits[26]; -ccx qubits[7], qubits[26], qubits[27]; -ccx qubits[8], qubits[27], qubits[28]; -ccx qubits[9], qubits[28], qubits[29]; -ccx qubits[10], qubits[29], qubits[30]; -ccx qubits[11], qubits[30], qubits[31]; -ccx qubits[12], qubits[31], qubits[32]; -ccx qubits[13], qubits[32], qubits[33]; -ccx qubits[14], qubits[33], qubits[34]; -ccx qubits[15], qubits[34], qubits[35]; -ccx qubits[16], qubits[35], qubits[36]; -ccx qubits[17], qubits[36], qubits[37]; -ccx qubits[18], qubits[37], qubits[38]; -cz qubits[38], qubits[19]; -ccx qubits[18], qubits[37], qubits[38]; -ccx qubits[17], qubits[36], qubits[37]; -ccx qubits[16], qubits[35], qubits[36]; -ccx qubits[15], qubits[34], qubits[35]; -ccx qubits[14], qubits[33], qubits[34]; -ccx qubits[13], qubits[32], qubits[33]; -ccx qubits[12], qubits[31], qubits[32]; -ccx qubits[11], qubits[30], qubits[31]; -ccx qubits[10], qubits[29], qubits[30]; -ccx qubits[9], qubits[28], qubits[29]; -ccx qubits[8], qubits[27], qubits[28]; -ccx qubits[7], qubits[26], qubits[27]; -ccx qubits[6], qubits[25], qubits[26]; -ccx qubits[5], qubits[24], qubits[25]; -ccx qubits[4], qubits[23], qubits[24]; -ccx qubits[3], qubits[22], qubits[23]; -ccx qubits[2], qubits[21], qubits[22]; -ccx qubits[0], qubits[1], qubits[21]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +cz qubits[36], qubits[37]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -61,119 +61,119 @@ x qubits[16]; x qubits[18]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -ccx qubits[0], qubits[1], qubits[21]; -ccx qubits[2], qubits[21], qubits[22]; -ccx qubits[3], qubits[22], qubits[23]; -ccx qubits[4], qubits[23], qubits[24]; -ccx qubits[5], qubits[24], qubits[25]; -ccx qubits[6], qubits[25], qubits[26]; -ccx qubits[7], qubits[26], qubits[27]; -ccx qubits[8], qubits[27], qubits[28]; -ccx qubits[9], qubits[28], qubits[29]; -ccx qubits[10], qubits[29], qubits[30]; -ccx qubits[11], qubits[30], qubits[31]; -ccx qubits[12], qubits[31], qubits[32]; -ccx qubits[13], qubits[32], qubits[33]; -ccx qubits[14], qubits[33], qubits[34]; -ccx qubits[15], qubits[34], qubits[35]; -ccx qubits[16], qubits[35], qubits[36]; -ccx qubits[17], qubits[36], qubits[37]; -ccx qubits[18], qubits[37], qubits[38]; -cz qubits[38], qubits[19]; -ccx qubits[18], qubits[37], qubits[38]; -ccx qubits[17], qubits[36], qubits[37]; -ccx qubits[16], qubits[35], qubits[36]; -ccx qubits[15], qubits[34], qubits[35]; -ccx qubits[14], qubits[33], qubits[34]; -ccx qubits[13], qubits[32], qubits[33]; -ccx qubits[12], qubits[31], qubits[32]; -ccx qubits[11], qubits[30], qubits[31]; -ccx qubits[10], qubits[29], qubits[30]; -ccx qubits[9], qubits[28], qubits[29]; -ccx qubits[8], qubits[27], qubits[28]; -ccx qubits[7], qubits[26], qubits[27]; -ccx qubits[6], qubits[25], qubits[26]; -ccx qubits[5], qubits[24], qubits[25]; -ccx qubits[4], qubits[23], qubits[24]; -ccx qubits[3], qubits[22], qubits[23]; -ccx qubits[2], qubits[21], qubits[22]; -ccx qubits[0], qubits[1], qubits[21]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +cz qubits[36], qubits[37]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -z qubits[20]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +z qubits[38]; diff --git a/benchmarks/all/OEGrover/20/post.hsl b/benchmarks/all/OEGrover/20/post.hsl index e3941ad11..9c661f1bd 100644 --- a/benchmarks/all/OEGrover/20/post.hsl +++ b/benchmarks/all/OEGrover/20/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010110000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 9 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/20/post.lsta b/benchmarks/all/OEGrover/20/post.lsta deleted file mode 100644 index 4eebf6f14..000000000 --- a/benchmarks/all/OEGrover/20/post.lsta +++ /dev/null @@ -1,107 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 42) -> 39 -[21,1](41, 43) -> 40 -[22,1](44, 44) -> 41 -[22,1](45, 44) -> 42 -[22,1](46, 44) -> 43 -[23,1](47, 47) -> 44 -[23,1](48, 47) -> 45 -[23,1](49, 47) -> 46 -[24,1](50, 50) -> 47 -[24,1](51, 50) -> 48 -[24,1](52, 50) -> 49 -[25,1](53, 53) -> 50 -[25,1](54, 53) -> 51 -[25,1](55, 53) -> 52 -[26,1](56, 56) -> 53 -[26,1](57, 56) -> 54 -[26,1](58, 56) -> 55 -[27,1](59, 59) -> 56 -[27,1](60, 59) -> 57 -[27,1](61, 59) -> 58 -[28,1](62, 62) -> 59 -[28,1](63, 62) -> 60 -[28,1](64, 62) -> 61 -[29,1](65, 65) -> 62 -[29,1](66, 65) -> 63 -[29,1](67, 65) -> 64 -[30,1](68, 68) -> 65 -[30,1](69, 68) -> 66 -[30,1](70, 68) -> 67 -[31,1](71, 71) -> 68 -[31,1](72, 71) -> 69 -[31,1](73, 71) -> 70 -[32,1](74, 74) -> 71 -[32,1](75, 74) -> 72 -[32,1](76, 74) -> 73 -[33,1](77, 77) -> 74 -[33,1](78, 77) -> 75 -[33,1](79, 77) -> 76 -[34,1](80, 80) -> 77 -[34,1](81, 80) -> 78 -[34,1](82, 80) -> 79 -[35,1](83, 83) -> 80 -[35,1](84, 83) -> 81 -[35,1](85, 83) -> 82 -[36,1](86, 86) -> 83 -[36,1](87, 86) -> 84 -[36,1](88, 86) -> 85 -[37,1](89, 89) -> 86 -[37,1](90, 89) -> 87 -[37,1](91, 89) -> 88 -[38,1](92, 92) -> 89 -[38,1](93, 92) -> 90 -[38,1](94, 92) -> 91 -[39,1](95, 95) -> 92 -[39,1](96, 95) -> 93 -[39,1](97, 95) -> 94 -[40,1](98, 98) -> 95 -[40,1](99, 98) -> 96 -[40,1](100, 98) -> 97 -[p1,1] -> 98 -[p2,1] -> 99 -[p3,1] -> 100 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/20/pre.hsl b/benchmarks/all/OEGrover/20/pre.hsl index 9f9f1be82..2e129fdce 100644 --- a/benchmarks/all/OEGrover/20/pre.hsl +++ b/benchmarks/all/OEGrover/20/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101> + a |*> # |10000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 9 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1048575 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/20/pre.lsta b/benchmarks/all/OEGrover/20/pre.lsta deleted file mode 100644 index 18d46e170..000000000 --- a/benchmarks/all/OEGrover/20/pre.lsta +++ /dev/null @@ -1,111 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 42) -> 39 -[21,1](41, 43) -> 40 -[22,1](44, 44) -> 41 -[22,1](45, 44) -> 42 -[22,1](46, 44) -> 43 -[23,1](47, 47) -> 44 -[23,1](48, 47) -> 45 -[23,1](49, 47) -> 46 -[24,1](50, 50) -> 47 -[24,1](51, 50) -> 48 -[24,1](52, 50) -> 49 -[25,1](53, 53) -> 50 -[25,1](54, 53) -> 51 -[25,1](55, 53) -> 52 -[26,1](56, 56) -> 53 -[26,1](57, 56) -> 54 -[26,1](58, 56) -> 55 -[27,1](59, 59) -> 56 -[27,1](60, 59) -> 57 -[27,1](61, 59) -> 58 -[28,1](62, 62) -> 59 -[28,1](63, 62) -> 60 -[28,1](64, 62) -> 61 -[29,1](65, 65) -> 62 -[29,1](66, 65) -> 63 -[29,1](67, 65) -> 64 -[30,1](68, 68) -> 65 -[30,1](69, 68) -> 66 -[30,1](70, 68) -> 67 -[31,1](71, 71) -> 68 -[31,1](72, 71) -> 69 -[31,1](73, 71) -> 70 -[32,1](74, 74) -> 71 -[32,1](75, 74) -> 72 -[32,1](76, 74) -> 73 -[33,1](77, 77) -> 74 -[33,1](78, 77) -> 75 -[33,1](79, 77) -> 76 -[34,1](80, 80) -> 77 -[34,1](81, 80) -> 78 -[34,1](82, 80) -> 79 -[35,1](83, 83) -> 80 -[35,1](84, 83) -> 81 -[35,1](85, 83) -> 82 -[36,1](86, 86) -> 83 -[36,1](87, 86) -> 84 -[36,1](88, 86) -> 85 -[37,1](89, 89) -> 86 -[37,1](90, 89) -> 87 -[37,1](91, 89) -> 88 -[38,1](92, 92) -> 89 -[38,1](93, 92) -> 90 -[38,1](94, 92) -> 91 -[39,1](95, 95) -> 92 -[39,1](96, 95) -> 93 -[39,1](97, 95) -> 94 -[40,1](98, 98) -> 95 -[40,1](99, 98) -> 96 -[40,1](100, 98) -> 97 -[c0,1] -> 98 -[a,1] -> 99 -[b,1] -> 100 -Constraints -1048575 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/21/circuit.qasm b/benchmarks/all/OEGrover/21/circuit.qasm index bea63241f..e13c58379 100644 --- a/benchmarks/all/OEGrover/21/circuit.qasm +++ b/benchmarks/all/OEGrover/21/circuit.qasm @@ -1,57 +1,57 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[42]; +qreg qubits[41]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -ccx qubits[0], qubits[1], qubits[22]; -ccx qubits[2], qubits[22], qubits[23]; -ccx qubits[3], qubits[23], qubits[24]; -ccx qubits[4], qubits[24], qubits[25]; -ccx qubits[5], qubits[25], qubits[26]; -ccx qubits[6], qubits[26], qubits[27]; -ccx qubits[7], qubits[27], qubits[28]; -ccx qubits[8], qubits[28], qubits[29]; -ccx qubits[9], qubits[29], qubits[30]; -ccx qubits[10], qubits[30], qubits[31]; -ccx qubits[11], qubits[31], qubits[32]; -ccx qubits[12], qubits[32], qubits[33]; -ccx qubits[13], qubits[33], qubits[34]; -ccx qubits[14], qubits[34], qubits[35]; -ccx qubits[15], qubits[35], qubits[36]; -ccx qubits[16], qubits[36], qubits[37]; -ccx qubits[17], qubits[37], qubits[38]; -ccx qubits[18], qubits[38], qubits[39]; -ccx qubits[19], qubits[39], qubits[40]; -cz qubits[40], qubits[20]; -ccx qubits[19], qubits[39], qubits[40]; -ccx qubits[18], qubits[38], qubits[39]; -ccx qubits[17], qubits[37], qubits[38]; -ccx qubits[16], qubits[36], qubits[37]; -ccx qubits[15], qubits[35], qubits[36]; -ccx qubits[14], qubits[34], qubits[35]; -ccx qubits[13], qubits[33], qubits[34]; -ccx qubits[12], qubits[32], qubits[33]; -ccx qubits[11], qubits[31], qubits[32]; -ccx qubits[10], qubits[30], qubits[31]; -ccx qubits[9], qubits[29], qubits[30]; -ccx qubits[8], qubits[28], qubits[29]; -ccx qubits[7], qubits[27], qubits[28]; -ccx qubits[6], qubits[26], qubits[27]; -ccx qubits[5], qubits[25], qubits[26]; -ccx qubits[4], qubits[24], qubits[25]; -ccx qubits[3], qubits[23], qubits[24]; -ccx qubits[2], qubits[22], qubits[23]; -ccx qubits[0], qubits[1], qubits[22]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +cz qubits[38], qubits[39]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -65,125 +65,125 @@ x qubits[18]; x qubits[20]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; -ccx qubits[0], qubits[1], qubits[22]; -ccx qubits[2], qubits[22], qubits[23]; -ccx qubits[3], qubits[23], qubits[24]; -ccx qubits[4], qubits[24], qubits[25]; -ccx qubits[5], qubits[25], qubits[26]; -ccx qubits[6], qubits[26], qubits[27]; -ccx qubits[7], qubits[27], qubits[28]; -ccx qubits[8], qubits[28], qubits[29]; -ccx qubits[9], qubits[29], qubits[30]; -ccx qubits[10], qubits[30], qubits[31]; -ccx qubits[11], qubits[31], qubits[32]; -ccx qubits[12], qubits[32], qubits[33]; -ccx qubits[13], qubits[33], qubits[34]; -ccx qubits[14], qubits[34], qubits[35]; -ccx qubits[15], qubits[35], qubits[36]; -ccx qubits[16], qubits[36], qubits[37]; -ccx qubits[17], qubits[37], qubits[38]; -ccx qubits[18], qubits[38], qubits[39]; -ccx qubits[19], qubits[39], qubits[40]; -cz qubits[40], qubits[20]; -ccx qubits[19], qubits[39], qubits[40]; -ccx qubits[18], qubits[38], qubits[39]; -ccx qubits[17], qubits[37], qubits[38]; -ccx qubits[16], qubits[36], qubits[37]; -ccx qubits[15], qubits[35], qubits[36]; -ccx qubits[14], qubits[34], qubits[35]; -ccx qubits[13], qubits[33], qubits[34]; -ccx qubits[12], qubits[32], qubits[33]; -ccx qubits[11], qubits[31], qubits[32]; -ccx qubits[10], qubits[30], qubits[31]; -ccx qubits[9], qubits[29], qubits[30]; -ccx qubits[8], qubits[28], qubits[29]; -ccx qubits[7], qubits[27], qubits[28]; -ccx qubits[6], qubits[26], qubits[27]; -ccx qubits[5], qubits[25], qubits[26]; -ccx qubits[4], qubits[24], qubits[25]; -ccx qubits[3], qubits[23], qubits[24]; -ccx qubits[2], qubits[22], qubits[23]; -ccx qubits[0], qubits[1], qubits[22]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +cz qubits[38], qubits[39]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; +x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; -z qubits[21]; +h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +z qubits[40]; diff --git a/benchmarks/all/OEGrover/21/post.hsl b/benchmarks/all/OEGrover/21/post.hsl index b8cf6ec39..76c973641 100644 --- a/benchmarks/all/OEGrover/21/post.hsl +++ b/benchmarks/all/OEGrover/21/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010100000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 9 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/21/post.lsta b/benchmarks/all/OEGrover/21/post.lsta deleted file mode 100644 index 09477c98b..000000000 --- a/benchmarks/all/OEGrover/21/post.lsta +++ /dev/null @@ -1,112 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 44) -> 41 -[22,1](43, 45) -> 42 -[23,1](46, 46) -> 43 -[23,1](47, 46) -> 44 -[23,1](48, 46) -> 45 -[24,1](49, 49) -> 46 -[24,1](50, 49) -> 47 -[24,1](51, 49) -> 48 -[25,1](52, 52) -> 49 -[25,1](53, 52) -> 50 -[25,1](54, 52) -> 51 -[26,1](55, 55) -> 52 -[26,1](56, 55) -> 53 -[26,1](57, 55) -> 54 -[27,1](58, 58) -> 55 -[27,1](59, 58) -> 56 -[27,1](60, 58) -> 57 -[28,1](61, 61) -> 58 -[28,1](62, 61) -> 59 -[28,1](63, 61) -> 60 -[29,1](64, 64) -> 61 -[29,1](65, 64) -> 62 -[29,1](66, 64) -> 63 -[30,1](67, 67) -> 64 -[30,1](68, 67) -> 65 -[30,1](69, 67) -> 66 -[31,1](70, 70) -> 67 -[31,1](71, 70) -> 68 -[31,1](72, 70) -> 69 -[32,1](73, 73) -> 70 -[32,1](74, 73) -> 71 -[32,1](75, 73) -> 72 -[33,1](76, 76) -> 73 -[33,1](77, 76) -> 74 -[33,1](78, 76) -> 75 -[34,1](79, 79) -> 76 -[34,1](80, 79) -> 77 -[34,1](81, 79) -> 78 -[35,1](82, 82) -> 79 -[35,1](83, 82) -> 80 -[35,1](84, 82) -> 81 -[36,1](85, 85) -> 82 -[36,1](86, 85) -> 83 -[36,1](87, 85) -> 84 -[37,1](88, 88) -> 85 -[37,1](89, 88) -> 86 -[37,1](90, 88) -> 87 -[38,1](91, 91) -> 88 -[38,1](92, 91) -> 89 -[38,1](93, 91) -> 90 -[39,1](94, 94) -> 91 -[39,1](95, 94) -> 92 -[39,1](96, 94) -> 93 -[40,1](97, 97) -> 94 -[40,1](98, 97) -> 95 -[40,1](99, 97) -> 96 -[41,1](100, 100) -> 97 -[41,1](101, 100) -> 98 -[41,1](102, 100) -> 99 -[42,1](103, 103) -> 100 -[42,1](104, 103) -> 101 -[42,1](105, 103) -> 102 -[p1,1] -> 103 -[p2,1] -> 104 -[p3,1] -> 105 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/21/pre.hsl b/benchmarks/all/OEGrover/21/pre.hsl index 2b7a02db8..f777bcacb 100644 --- a/benchmarks/all/OEGrover/21/pre.hsl +++ b/benchmarks/all/OEGrover/21/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010> + a |*> # |100000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 9 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 2097151 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/21/pre.lsta b/benchmarks/all/OEGrover/21/pre.lsta deleted file mode 100644 index 73b5fc329..000000000 --- a/benchmarks/all/OEGrover/21/pre.lsta +++ /dev/null @@ -1,116 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 44) -> 41 -[22,1](43, 45) -> 42 -[23,1](46, 46) -> 43 -[23,1](47, 46) -> 44 -[23,1](48, 46) -> 45 -[24,1](49, 49) -> 46 -[24,1](50, 49) -> 47 -[24,1](51, 49) -> 48 -[25,1](52, 52) -> 49 -[25,1](53, 52) -> 50 -[25,1](54, 52) -> 51 -[26,1](55, 55) -> 52 -[26,1](56, 55) -> 53 -[26,1](57, 55) -> 54 -[27,1](58, 58) -> 55 -[27,1](59, 58) -> 56 -[27,1](60, 58) -> 57 -[28,1](61, 61) -> 58 -[28,1](62, 61) -> 59 -[28,1](63, 61) -> 60 -[29,1](64, 64) -> 61 -[29,1](65, 64) -> 62 -[29,1](66, 64) -> 63 -[30,1](67, 67) -> 64 -[30,1](68, 67) -> 65 -[30,1](69, 67) -> 66 -[31,1](70, 70) -> 67 -[31,1](71, 70) -> 68 -[31,1](72, 70) -> 69 -[32,1](73, 73) -> 70 -[32,1](74, 73) -> 71 -[32,1](75, 73) -> 72 -[33,1](76, 76) -> 73 -[33,1](77, 76) -> 74 -[33,1](78, 76) -> 75 -[34,1](79, 79) -> 76 -[34,1](80, 79) -> 77 -[34,1](81, 79) -> 78 -[35,1](82, 82) -> 79 -[35,1](83, 82) -> 80 -[35,1](84, 82) -> 81 -[36,1](85, 85) -> 82 -[36,1](86, 85) -> 83 -[36,1](87, 85) -> 84 -[37,1](88, 88) -> 85 -[37,1](89, 88) -> 86 -[37,1](90, 88) -> 87 -[38,1](91, 91) -> 88 -[38,1](92, 91) -> 89 -[38,1](93, 91) -> 90 -[39,1](94, 94) -> 91 -[39,1](95, 94) -> 92 -[39,1](96, 94) -> 93 -[40,1](97, 97) -> 94 -[40,1](98, 97) -> 95 -[40,1](99, 97) -> 96 -[41,1](100, 100) -> 97 -[41,1](101, 100) -> 98 -[41,1](102, 100) -> 99 -[42,1](103, 103) -> 100 -[42,1](104, 103) -> 101 -[42,1](105, 103) -> 102 -[c0,1] -> 103 -[a,1] -> 104 -[b,1] -> 105 -Constraints -2097151 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/22/circuit.qasm b/benchmarks/all/OEGrover/22/circuit.qasm index 1d60f663c..4b48ca656 100644 --- a/benchmarks/all/OEGrover/22/circuit.qasm +++ b/benchmarks/all/OEGrover/22/circuit.qasm @@ -1,59 +1,59 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[44]; +qreg qubits[43]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -ccx qubits[0], qubits[1], qubits[23]; -ccx qubits[2], qubits[23], qubits[24]; -ccx qubits[3], qubits[24], qubits[25]; -ccx qubits[4], qubits[25], qubits[26]; -ccx qubits[5], qubits[26], qubits[27]; -ccx qubits[6], qubits[27], qubits[28]; -ccx qubits[7], qubits[28], qubits[29]; -ccx qubits[8], qubits[29], qubits[30]; -ccx qubits[9], qubits[30], qubits[31]; -ccx qubits[10], qubits[31], qubits[32]; -ccx qubits[11], qubits[32], qubits[33]; -ccx qubits[12], qubits[33], qubits[34]; -ccx qubits[13], qubits[34], qubits[35]; -ccx qubits[14], qubits[35], qubits[36]; -ccx qubits[15], qubits[36], qubits[37]; -ccx qubits[16], qubits[37], qubits[38]; -ccx qubits[17], qubits[38], qubits[39]; -ccx qubits[18], qubits[39], qubits[40]; -ccx qubits[19], qubits[40], qubits[41]; -ccx qubits[20], qubits[41], qubits[42]; -cz qubits[42], qubits[21]; -ccx qubits[20], qubits[41], qubits[42]; -ccx qubits[19], qubits[40], qubits[41]; -ccx qubits[18], qubits[39], qubits[40]; -ccx qubits[17], qubits[38], qubits[39]; -ccx qubits[16], qubits[37], qubits[38]; -ccx qubits[15], qubits[36], qubits[37]; -ccx qubits[14], qubits[35], qubits[36]; -ccx qubits[13], qubits[34], qubits[35]; -ccx qubits[12], qubits[33], qubits[34]; -ccx qubits[11], qubits[32], qubits[33]; -ccx qubits[10], qubits[31], qubits[32]; -ccx qubits[9], qubits[30], qubits[31]; -ccx qubits[8], qubits[29], qubits[30]; -ccx qubits[7], qubits[28], qubits[29]; -ccx qubits[6], qubits[27], qubits[28]; -ccx qubits[5], qubits[26], qubits[27]; -ccx qubits[4], qubits[25], qubits[26]; -ccx qubits[3], qubits[24], qubits[25]; -ccx qubits[2], qubits[23], qubits[24]; -ccx qubits[0], qubits[1], qubits[23]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +cz qubits[40], qubits[41]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -67,131 +67,131 @@ x qubits[18]; x qubits[20]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -ccx qubits[0], qubits[1], qubits[23]; -ccx qubits[2], qubits[23], qubits[24]; -ccx qubits[3], qubits[24], qubits[25]; -ccx qubits[4], qubits[25], qubits[26]; -ccx qubits[5], qubits[26], qubits[27]; -ccx qubits[6], qubits[27], qubits[28]; -ccx qubits[7], qubits[28], qubits[29]; -ccx qubits[8], qubits[29], qubits[30]; -ccx qubits[9], qubits[30], qubits[31]; -ccx qubits[10], qubits[31], qubits[32]; -ccx qubits[11], qubits[32], qubits[33]; -ccx qubits[12], qubits[33], qubits[34]; -ccx qubits[13], qubits[34], qubits[35]; -ccx qubits[14], qubits[35], qubits[36]; -ccx qubits[15], qubits[36], qubits[37]; -ccx qubits[16], qubits[37], qubits[38]; -ccx qubits[17], qubits[38], qubits[39]; -ccx qubits[18], qubits[39], qubits[40]; -ccx qubits[19], qubits[40], qubits[41]; -ccx qubits[20], qubits[41], qubits[42]; -cz qubits[42], qubits[21]; -ccx qubits[20], qubits[41], qubits[42]; -ccx qubits[19], qubits[40], qubits[41]; -ccx qubits[18], qubits[39], qubits[40]; -ccx qubits[17], qubits[38], qubits[39]; -ccx qubits[16], qubits[37], qubits[38]; -ccx qubits[15], qubits[36], qubits[37]; -ccx qubits[14], qubits[35], qubits[36]; -ccx qubits[13], qubits[34], qubits[35]; -ccx qubits[12], qubits[33], qubits[34]; -ccx qubits[11], qubits[32], qubits[33]; -ccx qubits[10], qubits[31], qubits[32]; -ccx qubits[9], qubits[30], qubits[31]; -ccx qubits[8], qubits[29], qubits[30]; -ccx qubits[7], qubits[28], qubits[29]; -ccx qubits[6], qubits[27], qubits[28]; -ccx qubits[5], qubits[26], qubits[27]; -ccx qubits[4], qubits[25], qubits[26]; -ccx qubits[3], qubits[24], qubits[25]; -ccx qubits[2], qubits[23], qubits[24]; -ccx qubits[0], qubits[1], qubits[23]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +cz qubits[40], qubits[41]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -z qubits[22]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +z qubits[42]; diff --git a/benchmarks/all/OEGrover/22/post.hsl b/benchmarks/all/OEGrover/22/post.hsl index c91a2dfcd..9aac7855b 100644 --- a/benchmarks/all/OEGrover/22/post.hsl +++ b/benchmarks/all/OEGrover/22/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101011000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 10 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/22/post.lsta b/benchmarks/all/OEGrover/22/post.lsta deleted file mode 100644 index 89f27ffd1..000000000 --- a/benchmarks/all/OEGrover/22/post.lsta +++ /dev/null @@ -1,117 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 46) -> 43 -[23,1](45, 47) -> 44 -[24,1](48, 48) -> 45 -[24,1](49, 48) -> 46 -[24,1](50, 48) -> 47 -[25,1](51, 51) -> 48 -[25,1](52, 51) -> 49 -[25,1](53, 51) -> 50 -[26,1](54, 54) -> 51 -[26,1](55, 54) -> 52 -[26,1](56, 54) -> 53 -[27,1](57, 57) -> 54 -[27,1](58, 57) -> 55 -[27,1](59, 57) -> 56 -[28,1](60, 60) -> 57 -[28,1](61, 60) -> 58 -[28,1](62, 60) -> 59 -[29,1](63, 63) -> 60 -[29,1](64, 63) -> 61 -[29,1](65, 63) -> 62 -[30,1](66, 66) -> 63 -[30,1](67, 66) -> 64 -[30,1](68, 66) -> 65 -[31,1](69, 69) -> 66 -[31,1](70, 69) -> 67 -[31,1](71, 69) -> 68 -[32,1](72, 72) -> 69 -[32,1](73, 72) -> 70 -[32,1](74, 72) -> 71 -[33,1](75, 75) -> 72 -[33,1](76, 75) -> 73 -[33,1](77, 75) -> 74 -[34,1](78, 78) -> 75 -[34,1](79, 78) -> 76 -[34,1](80, 78) -> 77 -[35,1](81, 81) -> 78 -[35,1](82, 81) -> 79 -[35,1](83, 81) -> 80 -[36,1](84, 84) -> 81 -[36,1](85, 84) -> 82 -[36,1](86, 84) -> 83 -[37,1](87, 87) -> 84 -[37,1](88, 87) -> 85 -[37,1](89, 87) -> 86 -[38,1](90, 90) -> 87 -[38,1](91, 90) -> 88 -[38,1](92, 90) -> 89 -[39,1](93, 93) -> 90 -[39,1](94, 93) -> 91 -[39,1](95, 93) -> 92 -[40,1](96, 96) -> 93 -[40,1](97, 96) -> 94 -[40,1](98, 96) -> 95 -[41,1](99, 99) -> 96 -[41,1](100, 99) -> 97 -[41,1](101, 99) -> 98 -[42,1](102, 102) -> 99 -[42,1](103, 102) -> 100 -[42,1](104, 102) -> 101 -[43,1](105, 105) -> 102 -[43,1](106, 105) -> 103 -[43,1](107, 105) -> 104 -[44,1](108, 108) -> 105 -[44,1](109, 108) -> 106 -[44,1](110, 108) -> 107 -[p1,1] -> 108 -[p2,1] -> 109 -[p3,1] -> 110 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/22/pre.hsl b/benchmarks/all/OEGrover/22/pre.hsl index e5df2d354..00feef7e8 100644 --- a/benchmarks/all/OEGrover/22/pre.hsl +++ b/benchmarks/all/OEGrover/22/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101> + a |*> # |1000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 10 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 4194303 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/22/pre.lsta b/benchmarks/all/OEGrover/22/pre.lsta deleted file mode 100644 index 8177f92ec..000000000 --- a/benchmarks/all/OEGrover/22/pre.lsta +++ /dev/null @@ -1,121 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 46) -> 43 -[23,1](45, 47) -> 44 -[24,1](48, 48) -> 45 -[24,1](49, 48) -> 46 -[24,1](50, 48) -> 47 -[25,1](51, 51) -> 48 -[25,1](52, 51) -> 49 -[25,1](53, 51) -> 50 -[26,1](54, 54) -> 51 -[26,1](55, 54) -> 52 -[26,1](56, 54) -> 53 -[27,1](57, 57) -> 54 -[27,1](58, 57) -> 55 -[27,1](59, 57) -> 56 -[28,1](60, 60) -> 57 -[28,1](61, 60) -> 58 -[28,1](62, 60) -> 59 -[29,1](63, 63) -> 60 -[29,1](64, 63) -> 61 -[29,1](65, 63) -> 62 -[30,1](66, 66) -> 63 -[30,1](67, 66) -> 64 -[30,1](68, 66) -> 65 -[31,1](69, 69) -> 66 -[31,1](70, 69) -> 67 -[31,1](71, 69) -> 68 -[32,1](72, 72) -> 69 -[32,1](73, 72) -> 70 -[32,1](74, 72) -> 71 -[33,1](75, 75) -> 72 -[33,1](76, 75) -> 73 -[33,1](77, 75) -> 74 -[34,1](78, 78) -> 75 -[34,1](79, 78) -> 76 -[34,1](80, 78) -> 77 -[35,1](81, 81) -> 78 -[35,1](82, 81) -> 79 -[35,1](83, 81) -> 80 -[36,1](84, 84) -> 81 -[36,1](85, 84) -> 82 -[36,1](86, 84) -> 83 -[37,1](87, 87) -> 84 -[37,1](88, 87) -> 85 -[37,1](89, 87) -> 86 -[38,1](90, 90) -> 87 -[38,1](91, 90) -> 88 -[38,1](92, 90) -> 89 -[39,1](93, 93) -> 90 -[39,1](94, 93) -> 91 -[39,1](95, 93) -> 92 -[40,1](96, 96) -> 93 -[40,1](97, 96) -> 94 -[40,1](98, 96) -> 95 -[41,1](99, 99) -> 96 -[41,1](100, 99) -> 97 -[41,1](101, 99) -> 98 -[42,1](102, 102) -> 99 -[42,1](103, 102) -> 100 -[42,1](104, 102) -> 101 -[43,1](105, 105) -> 102 -[43,1](106, 105) -> 103 -[43,1](107, 105) -> 104 -[44,1](108, 108) -> 105 -[44,1](109, 108) -> 106 -[44,1](110, 108) -> 107 -[c0,1] -> 108 -[a,1] -> 109 -[b,1] -> 110 -Constraints -4194303 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/23/circuit.qasm b/benchmarks/all/OEGrover/23/circuit.qasm index f51000e8d..345c128e9 100644 --- a/benchmarks/all/OEGrover/23/circuit.qasm +++ b/benchmarks/all/OEGrover/23/circuit.qasm @@ -1,62 +1,62 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[46]; +qreg qubits[45]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -ccx qubits[0], qubits[1], qubits[24]; -ccx qubits[2], qubits[24], qubits[25]; -ccx qubits[3], qubits[25], qubits[26]; -ccx qubits[4], qubits[26], qubits[27]; -ccx qubits[5], qubits[27], qubits[28]; -ccx qubits[6], qubits[28], qubits[29]; -ccx qubits[7], qubits[29], qubits[30]; -ccx qubits[8], qubits[30], qubits[31]; -ccx qubits[9], qubits[31], qubits[32]; -ccx qubits[10], qubits[32], qubits[33]; -ccx qubits[11], qubits[33], qubits[34]; -ccx qubits[12], qubits[34], qubits[35]; -ccx qubits[13], qubits[35], qubits[36]; -ccx qubits[14], qubits[36], qubits[37]; -ccx qubits[15], qubits[37], qubits[38]; -ccx qubits[16], qubits[38], qubits[39]; -ccx qubits[17], qubits[39], qubits[40]; -ccx qubits[18], qubits[40], qubits[41]; -ccx qubits[19], qubits[41], qubits[42]; -ccx qubits[20], qubits[42], qubits[43]; -ccx qubits[21], qubits[43], qubits[44]; -cz qubits[44], qubits[22]; -ccx qubits[21], qubits[43], qubits[44]; -ccx qubits[20], qubits[42], qubits[43]; -ccx qubits[19], qubits[41], qubits[42]; -ccx qubits[18], qubits[40], qubits[41]; -ccx qubits[17], qubits[39], qubits[40]; -ccx qubits[16], qubits[38], qubits[39]; -ccx qubits[15], qubits[37], qubits[38]; -ccx qubits[14], qubits[36], qubits[37]; -ccx qubits[13], qubits[35], qubits[36]; -ccx qubits[12], qubits[34], qubits[35]; -ccx qubits[11], qubits[33], qubits[34]; -ccx qubits[10], qubits[32], qubits[33]; -ccx qubits[9], qubits[31], qubits[32]; -ccx qubits[8], qubits[30], qubits[31]; -ccx qubits[7], qubits[29], qubits[30]; -ccx qubits[6], qubits[28], qubits[29]; -ccx qubits[5], qubits[27], qubits[28]; -ccx qubits[4], qubits[26], qubits[27]; -ccx qubits[3], qubits[25], qubits[26]; -ccx qubits[2], qubits[24], qubits[25]; -ccx qubits[0], qubits[1], qubits[24]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +cz qubits[42], qubits[43]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -71,137 +71,137 @@ x qubits[20]; x qubits[22]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; -ccx qubits[0], qubits[1], qubits[24]; -ccx qubits[2], qubits[24], qubits[25]; -ccx qubits[3], qubits[25], qubits[26]; -ccx qubits[4], qubits[26], qubits[27]; -ccx qubits[5], qubits[27], qubits[28]; -ccx qubits[6], qubits[28], qubits[29]; -ccx qubits[7], qubits[29], qubits[30]; -ccx qubits[8], qubits[30], qubits[31]; -ccx qubits[9], qubits[31], qubits[32]; -ccx qubits[10], qubits[32], qubits[33]; -ccx qubits[11], qubits[33], qubits[34]; -ccx qubits[12], qubits[34], qubits[35]; -ccx qubits[13], qubits[35], qubits[36]; -ccx qubits[14], qubits[36], qubits[37]; -ccx qubits[15], qubits[37], qubits[38]; -ccx qubits[16], qubits[38], qubits[39]; -ccx qubits[17], qubits[39], qubits[40]; -ccx qubits[18], qubits[40], qubits[41]; -ccx qubits[19], qubits[41], qubits[42]; -ccx qubits[20], qubits[42], qubits[43]; -ccx qubits[21], qubits[43], qubits[44]; -cz qubits[44], qubits[22]; -ccx qubits[21], qubits[43], qubits[44]; -ccx qubits[20], qubits[42], qubits[43]; -ccx qubits[19], qubits[41], qubits[42]; -ccx qubits[18], qubits[40], qubits[41]; -ccx qubits[17], qubits[39], qubits[40]; -ccx qubits[16], qubits[38], qubits[39]; -ccx qubits[15], qubits[37], qubits[38]; -ccx qubits[14], qubits[36], qubits[37]; -ccx qubits[13], qubits[35], qubits[36]; -ccx qubits[12], qubits[34], qubits[35]; -ccx qubits[11], qubits[33], qubits[34]; -ccx qubits[10], qubits[32], qubits[33]; -ccx qubits[9], qubits[31], qubits[32]; -ccx qubits[8], qubits[30], qubits[31]; -ccx qubits[7], qubits[29], qubits[30]; -ccx qubits[6], qubits[28], qubits[29]; -ccx qubits[5], qubits[27], qubits[28]; -ccx qubits[4], qubits[26], qubits[27]; -ccx qubits[3], qubits[25], qubits[26]; -ccx qubits[2], qubits[24], qubits[25]; -ccx qubits[0], qubits[1], qubits[24]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +cz qubits[42], qubits[43]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; +x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; -z qubits[23]; +h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +z qubits[44]; diff --git a/benchmarks/all/OEGrover/23/post.hsl b/benchmarks/all/OEGrover/23/post.hsl index 342c95d1b..3d1951b3f 100644 --- a/benchmarks/all/OEGrover/23/post.hsl +++ b/benchmarks/all/OEGrover/23/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 10 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/23/post.lsta b/benchmarks/all/OEGrover/23/post.lsta deleted file mode 100644 index 95e61e068..000000000 --- a/benchmarks/all/OEGrover/23/post.lsta +++ /dev/null @@ -1,122 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 48) -> 45 -[24,1](47, 49) -> 46 -[25,1](50, 50) -> 47 -[25,1](51, 50) -> 48 -[25,1](52, 50) -> 49 -[26,1](53, 53) -> 50 -[26,1](54, 53) -> 51 -[26,1](55, 53) -> 52 -[27,1](56, 56) -> 53 -[27,1](57, 56) -> 54 -[27,1](58, 56) -> 55 -[28,1](59, 59) -> 56 -[28,1](60, 59) -> 57 -[28,1](61, 59) -> 58 -[29,1](62, 62) -> 59 -[29,1](63, 62) -> 60 -[29,1](64, 62) -> 61 -[30,1](65, 65) -> 62 -[30,1](66, 65) -> 63 -[30,1](67, 65) -> 64 -[31,1](68, 68) -> 65 -[31,1](69, 68) -> 66 -[31,1](70, 68) -> 67 -[32,1](71, 71) -> 68 -[32,1](72, 71) -> 69 -[32,1](73, 71) -> 70 -[33,1](74, 74) -> 71 -[33,1](75, 74) -> 72 -[33,1](76, 74) -> 73 -[34,1](77, 77) -> 74 -[34,1](78, 77) -> 75 -[34,1](79, 77) -> 76 -[35,1](80, 80) -> 77 -[35,1](81, 80) -> 78 -[35,1](82, 80) -> 79 -[36,1](83, 83) -> 80 -[36,1](84, 83) -> 81 -[36,1](85, 83) -> 82 -[37,1](86, 86) -> 83 -[37,1](87, 86) -> 84 -[37,1](88, 86) -> 85 -[38,1](89, 89) -> 86 -[38,1](90, 89) -> 87 -[38,1](91, 89) -> 88 -[39,1](92, 92) -> 89 -[39,1](93, 92) -> 90 -[39,1](94, 92) -> 91 -[40,1](95, 95) -> 92 -[40,1](96, 95) -> 93 -[40,1](97, 95) -> 94 -[41,1](98, 98) -> 95 -[41,1](99, 98) -> 96 -[41,1](100, 98) -> 97 -[42,1](101, 101) -> 98 -[42,1](102, 101) -> 99 -[42,1](103, 101) -> 100 -[43,1](104, 104) -> 101 -[43,1](105, 104) -> 102 -[43,1](106, 104) -> 103 -[44,1](107, 107) -> 104 -[44,1](108, 107) -> 105 -[44,1](109, 107) -> 106 -[45,1](110, 110) -> 107 -[45,1](111, 110) -> 108 -[45,1](112, 110) -> 109 -[46,1](113, 113) -> 110 -[46,1](114, 113) -> 111 -[46,1](115, 113) -> 112 -[p1,1] -> 113 -[p2,1] -> 114 -[p3,1] -> 115 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/23/pre.hsl b/benchmarks/all/OEGrover/23/pre.hsl index 8c7c3f621..0fb2d4bcf 100644 --- a/benchmarks/all/OEGrover/23/pre.hsl +++ b/benchmarks/all/OEGrover/23/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010> + a |*> # |10000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 10 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 8388607 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/23/pre.lsta b/benchmarks/all/OEGrover/23/pre.lsta deleted file mode 100644 index 2f777663c..000000000 --- a/benchmarks/all/OEGrover/23/pre.lsta +++ /dev/null @@ -1,126 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 48) -> 45 -[24,1](47, 49) -> 46 -[25,1](50, 50) -> 47 -[25,1](51, 50) -> 48 -[25,1](52, 50) -> 49 -[26,1](53, 53) -> 50 -[26,1](54, 53) -> 51 -[26,1](55, 53) -> 52 -[27,1](56, 56) -> 53 -[27,1](57, 56) -> 54 -[27,1](58, 56) -> 55 -[28,1](59, 59) -> 56 -[28,1](60, 59) -> 57 -[28,1](61, 59) -> 58 -[29,1](62, 62) -> 59 -[29,1](63, 62) -> 60 -[29,1](64, 62) -> 61 -[30,1](65, 65) -> 62 -[30,1](66, 65) -> 63 -[30,1](67, 65) -> 64 -[31,1](68, 68) -> 65 -[31,1](69, 68) -> 66 -[31,1](70, 68) -> 67 -[32,1](71, 71) -> 68 -[32,1](72, 71) -> 69 -[32,1](73, 71) -> 70 -[33,1](74, 74) -> 71 -[33,1](75, 74) -> 72 -[33,1](76, 74) -> 73 -[34,1](77, 77) -> 74 -[34,1](78, 77) -> 75 -[34,1](79, 77) -> 76 -[35,1](80, 80) -> 77 -[35,1](81, 80) -> 78 -[35,1](82, 80) -> 79 -[36,1](83, 83) -> 80 -[36,1](84, 83) -> 81 -[36,1](85, 83) -> 82 -[37,1](86, 86) -> 83 -[37,1](87, 86) -> 84 -[37,1](88, 86) -> 85 -[38,1](89, 89) -> 86 -[38,1](90, 89) -> 87 -[38,1](91, 89) -> 88 -[39,1](92, 92) -> 89 -[39,1](93, 92) -> 90 -[39,1](94, 92) -> 91 -[40,1](95, 95) -> 92 -[40,1](96, 95) -> 93 -[40,1](97, 95) -> 94 -[41,1](98, 98) -> 95 -[41,1](99, 98) -> 96 -[41,1](100, 98) -> 97 -[42,1](101, 101) -> 98 -[42,1](102, 101) -> 99 -[42,1](103, 101) -> 100 -[43,1](104, 104) -> 101 -[43,1](105, 104) -> 102 -[43,1](106, 104) -> 103 -[44,1](107, 107) -> 104 -[44,1](108, 107) -> 105 -[44,1](109, 107) -> 106 -[45,1](110, 110) -> 107 -[45,1](111, 110) -> 108 -[45,1](112, 110) -> 109 -[46,1](113, 113) -> 110 -[46,1](114, 113) -> 111 -[46,1](115, 113) -> 112 -[c0,1] -> 113 -[a,1] -> 114 -[b,1] -> 115 -Constraints -8388607 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/24/circuit.qasm b/benchmarks/all/OEGrover/24/circuit.qasm index e68ebba20..8e0e705bd 100644 --- a/benchmarks/all/OEGrover/24/circuit.qasm +++ b/benchmarks/all/OEGrover/24/circuit.qasm @@ -1,64 +1,64 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[48]; +qreg qubits[47]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -ccx qubits[0], qubits[1], qubits[25]; -ccx qubits[2], qubits[25], qubits[26]; -ccx qubits[3], qubits[26], qubits[27]; -ccx qubits[4], qubits[27], qubits[28]; -ccx qubits[5], qubits[28], qubits[29]; -ccx qubits[6], qubits[29], qubits[30]; -ccx qubits[7], qubits[30], qubits[31]; -ccx qubits[8], qubits[31], qubits[32]; -ccx qubits[9], qubits[32], qubits[33]; -ccx qubits[10], qubits[33], qubits[34]; -ccx qubits[11], qubits[34], qubits[35]; -ccx qubits[12], qubits[35], qubits[36]; -ccx qubits[13], qubits[36], qubits[37]; -ccx qubits[14], qubits[37], qubits[38]; -ccx qubits[15], qubits[38], qubits[39]; -ccx qubits[16], qubits[39], qubits[40]; -ccx qubits[17], qubits[40], qubits[41]; -ccx qubits[18], qubits[41], qubits[42]; -ccx qubits[19], qubits[42], qubits[43]; -ccx qubits[20], qubits[43], qubits[44]; -ccx qubits[21], qubits[44], qubits[45]; -ccx qubits[22], qubits[45], qubits[46]; -cz qubits[46], qubits[23]; -ccx qubits[22], qubits[45], qubits[46]; -ccx qubits[21], qubits[44], qubits[45]; -ccx qubits[20], qubits[43], qubits[44]; -ccx qubits[19], qubits[42], qubits[43]; -ccx qubits[18], qubits[41], qubits[42]; -ccx qubits[17], qubits[40], qubits[41]; -ccx qubits[16], qubits[39], qubits[40]; -ccx qubits[15], qubits[38], qubits[39]; -ccx qubits[14], qubits[37], qubits[38]; -ccx qubits[13], qubits[36], qubits[37]; -ccx qubits[12], qubits[35], qubits[36]; -ccx qubits[11], qubits[34], qubits[35]; -ccx qubits[10], qubits[33], qubits[34]; -ccx qubits[9], qubits[32], qubits[33]; -ccx qubits[8], qubits[31], qubits[32]; -ccx qubits[7], qubits[30], qubits[31]; -ccx qubits[6], qubits[29], qubits[30]; -ccx qubits[5], qubits[28], qubits[29]; -ccx qubits[4], qubits[27], qubits[28]; -ccx qubits[3], qubits[26], qubits[27]; -ccx qubits[2], qubits[25], qubits[26]; -ccx qubits[0], qubits[1], qubits[25]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +cz qubits[44], qubits[45]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -73,143 +73,143 @@ x qubits[20]; x qubits[22]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -ccx qubits[0], qubits[1], qubits[25]; -ccx qubits[2], qubits[25], qubits[26]; -ccx qubits[3], qubits[26], qubits[27]; -ccx qubits[4], qubits[27], qubits[28]; -ccx qubits[5], qubits[28], qubits[29]; -ccx qubits[6], qubits[29], qubits[30]; -ccx qubits[7], qubits[30], qubits[31]; -ccx qubits[8], qubits[31], qubits[32]; -ccx qubits[9], qubits[32], qubits[33]; -ccx qubits[10], qubits[33], qubits[34]; -ccx qubits[11], qubits[34], qubits[35]; -ccx qubits[12], qubits[35], qubits[36]; -ccx qubits[13], qubits[36], qubits[37]; -ccx qubits[14], qubits[37], qubits[38]; -ccx qubits[15], qubits[38], qubits[39]; -ccx qubits[16], qubits[39], qubits[40]; -ccx qubits[17], qubits[40], qubits[41]; -ccx qubits[18], qubits[41], qubits[42]; -ccx qubits[19], qubits[42], qubits[43]; -ccx qubits[20], qubits[43], qubits[44]; -ccx qubits[21], qubits[44], qubits[45]; -ccx qubits[22], qubits[45], qubits[46]; -cz qubits[46], qubits[23]; -ccx qubits[22], qubits[45], qubits[46]; -ccx qubits[21], qubits[44], qubits[45]; -ccx qubits[20], qubits[43], qubits[44]; -ccx qubits[19], qubits[42], qubits[43]; -ccx qubits[18], qubits[41], qubits[42]; -ccx qubits[17], qubits[40], qubits[41]; -ccx qubits[16], qubits[39], qubits[40]; -ccx qubits[15], qubits[38], qubits[39]; -ccx qubits[14], qubits[37], qubits[38]; -ccx qubits[13], qubits[36], qubits[37]; -ccx qubits[12], qubits[35], qubits[36]; -ccx qubits[11], qubits[34], qubits[35]; -ccx qubits[10], qubits[33], qubits[34]; -ccx qubits[9], qubits[32], qubits[33]; -ccx qubits[8], qubits[31], qubits[32]; -ccx qubits[7], qubits[30], qubits[31]; -ccx qubits[6], qubits[29], qubits[30]; -ccx qubits[5], qubits[28], qubits[29]; -ccx qubits[4], qubits[27], qubits[28]; -ccx qubits[3], qubits[26], qubits[27]; -ccx qubits[2], qubits[25], qubits[26]; -ccx qubits[0], qubits[1], qubits[25]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +cz qubits[44], qubits[45]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -z qubits[24]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +z qubits[46]; diff --git a/benchmarks/all/OEGrover/24/post.hsl b/benchmarks/all/OEGrover/24/post.hsl index f1e78106c..9390098ec 100644 --- a/benchmarks/all/OEGrover/24/post.hsl +++ b/benchmarks/all/OEGrover/24/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101100000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 11 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/24/post.lsta b/benchmarks/all/OEGrover/24/post.lsta deleted file mode 100644 index 49c4f5ba3..000000000 --- a/benchmarks/all/OEGrover/24/post.lsta +++ /dev/null @@ -1,127 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 50) -> 47 -[25,1](49, 51) -> 48 -[26,1](52, 52) -> 49 -[26,1](53, 52) -> 50 -[26,1](54, 52) -> 51 -[27,1](55, 55) -> 52 -[27,1](56, 55) -> 53 -[27,1](57, 55) -> 54 -[28,1](58, 58) -> 55 -[28,1](59, 58) -> 56 -[28,1](60, 58) -> 57 -[29,1](61, 61) -> 58 -[29,1](62, 61) -> 59 -[29,1](63, 61) -> 60 -[30,1](64, 64) -> 61 -[30,1](65, 64) -> 62 -[30,1](66, 64) -> 63 -[31,1](67, 67) -> 64 -[31,1](68, 67) -> 65 -[31,1](69, 67) -> 66 -[32,1](70, 70) -> 67 -[32,1](71, 70) -> 68 -[32,1](72, 70) -> 69 -[33,1](73, 73) -> 70 -[33,1](74, 73) -> 71 -[33,1](75, 73) -> 72 -[34,1](76, 76) -> 73 -[34,1](77, 76) -> 74 -[34,1](78, 76) -> 75 -[35,1](79, 79) -> 76 -[35,1](80, 79) -> 77 -[35,1](81, 79) -> 78 -[36,1](82, 82) -> 79 -[36,1](83, 82) -> 80 -[36,1](84, 82) -> 81 -[37,1](85, 85) -> 82 -[37,1](86, 85) -> 83 -[37,1](87, 85) -> 84 -[38,1](88, 88) -> 85 -[38,1](89, 88) -> 86 -[38,1](90, 88) -> 87 -[39,1](91, 91) -> 88 -[39,1](92, 91) -> 89 -[39,1](93, 91) -> 90 -[40,1](94, 94) -> 91 -[40,1](95, 94) -> 92 -[40,1](96, 94) -> 93 -[41,1](97, 97) -> 94 -[41,1](98, 97) -> 95 -[41,1](99, 97) -> 96 -[42,1](100, 100) -> 97 -[42,1](101, 100) -> 98 -[42,1](102, 100) -> 99 -[43,1](103, 103) -> 100 -[43,1](104, 103) -> 101 -[43,1](105, 103) -> 102 -[44,1](106, 106) -> 103 -[44,1](107, 106) -> 104 -[44,1](108, 106) -> 105 -[45,1](109, 109) -> 106 -[45,1](110, 109) -> 107 -[45,1](111, 109) -> 108 -[46,1](112, 112) -> 109 -[46,1](113, 112) -> 110 -[46,1](114, 112) -> 111 -[47,1](115, 115) -> 112 -[47,1](116, 115) -> 113 -[47,1](117, 115) -> 114 -[48,1](118, 118) -> 115 -[48,1](119, 118) -> 116 -[48,1](120, 118) -> 117 -[p1,1] -> 118 -[p2,1] -> 119 -[p3,1] -> 120 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/24/pre.hsl b/benchmarks/all/OEGrover/24/pre.hsl index b3bc00181..de46a266e 100644 --- a/benchmarks/all/OEGrover/24/pre.hsl +++ b/benchmarks/all/OEGrover/24/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101> + a |*> # |100000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 11 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 16777215 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/24/pre.lsta b/benchmarks/all/OEGrover/24/pre.lsta deleted file mode 100644 index bc3f387e8..000000000 --- a/benchmarks/all/OEGrover/24/pre.lsta +++ /dev/null @@ -1,131 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 50) -> 47 -[25,1](49, 51) -> 48 -[26,1](52, 52) -> 49 -[26,1](53, 52) -> 50 -[26,1](54, 52) -> 51 -[27,1](55, 55) -> 52 -[27,1](56, 55) -> 53 -[27,1](57, 55) -> 54 -[28,1](58, 58) -> 55 -[28,1](59, 58) -> 56 -[28,1](60, 58) -> 57 -[29,1](61, 61) -> 58 -[29,1](62, 61) -> 59 -[29,1](63, 61) -> 60 -[30,1](64, 64) -> 61 -[30,1](65, 64) -> 62 -[30,1](66, 64) -> 63 -[31,1](67, 67) -> 64 -[31,1](68, 67) -> 65 -[31,1](69, 67) -> 66 -[32,1](70, 70) -> 67 -[32,1](71, 70) -> 68 -[32,1](72, 70) -> 69 -[33,1](73, 73) -> 70 -[33,1](74, 73) -> 71 -[33,1](75, 73) -> 72 -[34,1](76, 76) -> 73 -[34,1](77, 76) -> 74 -[34,1](78, 76) -> 75 -[35,1](79, 79) -> 76 -[35,1](80, 79) -> 77 -[35,1](81, 79) -> 78 -[36,1](82, 82) -> 79 -[36,1](83, 82) -> 80 -[36,1](84, 82) -> 81 -[37,1](85, 85) -> 82 -[37,1](86, 85) -> 83 -[37,1](87, 85) -> 84 -[38,1](88, 88) -> 85 -[38,1](89, 88) -> 86 -[38,1](90, 88) -> 87 -[39,1](91, 91) -> 88 -[39,1](92, 91) -> 89 -[39,1](93, 91) -> 90 -[40,1](94, 94) -> 91 -[40,1](95, 94) -> 92 -[40,1](96, 94) -> 93 -[41,1](97, 97) -> 94 -[41,1](98, 97) -> 95 -[41,1](99, 97) -> 96 -[42,1](100, 100) -> 97 -[42,1](101, 100) -> 98 -[42,1](102, 100) -> 99 -[43,1](103, 103) -> 100 -[43,1](104, 103) -> 101 -[43,1](105, 103) -> 102 -[44,1](106, 106) -> 103 -[44,1](107, 106) -> 104 -[44,1](108, 106) -> 105 -[45,1](109, 109) -> 106 -[45,1](110, 109) -> 107 -[45,1](111, 109) -> 108 -[46,1](112, 112) -> 109 -[46,1](113, 112) -> 110 -[46,1](114, 112) -> 111 -[47,1](115, 115) -> 112 -[47,1](116, 115) -> 113 -[47,1](117, 115) -> 114 -[48,1](118, 118) -> 115 -[48,1](119, 118) -> 116 -[48,1](120, 118) -> 117 -[c0,1] -> 118 -[a,1] -> 119 -[b,1] -> 120 -Constraints -16777215 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/25/circuit.qasm b/benchmarks/all/OEGrover/25/circuit.qasm index 1c9b0b774..342728357 100644 --- a/benchmarks/all/OEGrover/25/circuit.qasm +++ b/benchmarks/all/OEGrover/25/circuit.qasm @@ -1,67 +1,67 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[50]; +qreg qubits[49]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -ccx qubits[0], qubits[1], qubits[26]; -ccx qubits[2], qubits[26], qubits[27]; -ccx qubits[3], qubits[27], qubits[28]; -ccx qubits[4], qubits[28], qubits[29]; -ccx qubits[5], qubits[29], qubits[30]; -ccx qubits[6], qubits[30], qubits[31]; -ccx qubits[7], qubits[31], qubits[32]; -ccx qubits[8], qubits[32], qubits[33]; -ccx qubits[9], qubits[33], qubits[34]; -ccx qubits[10], qubits[34], qubits[35]; -ccx qubits[11], qubits[35], qubits[36]; -ccx qubits[12], qubits[36], qubits[37]; -ccx qubits[13], qubits[37], qubits[38]; -ccx qubits[14], qubits[38], qubits[39]; -ccx qubits[15], qubits[39], qubits[40]; -ccx qubits[16], qubits[40], qubits[41]; -ccx qubits[17], qubits[41], qubits[42]; -ccx qubits[18], qubits[42], qubits[43]; -ccx qubits[19], qubits[43], qubits[44]; -ccx qubits[20], qubits[44], qubits[45]; -ccx qubits[21], qubits[45], qubits[46]; -ccx qubits[22], qubits[46], qubits[47]; -ccx qubits[23], qubits[47], qubits[48]; -cz qubits[48], qubits[24]; -ccx qubits[23], qubits[47], qubits[48]; -ccx qubits[22], qubits[46], qubits[47]; -ccx qubits[21], qubits[45], qubits[46]; -ccx qubits[20], qubits[44], qubits[45]; -ccx qubits[19], qubits[43], qubits[44]; -ccx qubits[18], qubits[42], qubits[43]; -ccx qubits[17], qubits[41], qubits[42]; -ccx qubits[16], qubits[40], qubits[41]; -ccx qubits[15], qubits[39], qubits[40]; -ccx qubits[14], qubits[38], qubits[39]; -ccx qubits[13], qubits[37], qubits[38]; -ccx qubits[12], qubits[36], qubits[37]; -ccx qubits[11], qubits[35], qubits[36]; -ccx qubits[10], qubits[34], qubits[35]; -ccx qubits[9], qubits[33], qubits[34]; -ccx qubits[8], qubits[32], qubits[33]; -ccx qubits[7], qubits[31], qubits[32]; -ccx qubits[6], qubits[30], qubits[31]; -ccx qubits[5], qubits[29], qubits[30]; -ccx qubits[4], qubits[28], qubits[29]; -ccx qubits[3], qubits[27], qubits[28]; -ccx qubits[2], qubits[26], qubits[27]; -ccx qubits[0], qubits[1], qubits[26]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +cz qubits[46], qubits[47]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -77,149 +77,149 @@ x qubits[22]; x qubits[24]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; -ccx qubits[0], qubits[1], qubits[26]; -ccx qubits[2], qubits[26], qubits[27]; -ccx qubits[3], qubits[27], qubits[28]; -ccx qubits[4], qubits[28], qubits[29]; -ccx qubits[5], qubits[29], qubits[30]; -ccx qubits[6], qubits[30], qubits[31]; -ccx qubits[7], qubits[31], qubits[32]; -ccx qubits[8], qubits[32], qubits[33]; -ccx qubits[9], qubits[33], qubits[34]; -ccx qubits[10], qubits[34], qubits[35]; -ccx qubits[11], qubits[35], qubits[36]; -ccx qubits[12], qubits[36], qubits[37]; -ccx qubits[13], qubits[37], qubits[38]; -ccx qubits[14], qubits[38], qubits[39]; -ccx qubits[15], qubits[39], qubits[40]; -ccx qubits[16], qubits[40], qubits[41]; -ccx qubits[17], qubits[41], qubits[42]; -ccx qubits[18], qubits[42], qubits[43]; -ccx qubits[19], qubits[43], qubits[44]; -ccx qubits[20], qubits[44], qubits[45]; -ccx qubits[21], qubits[45], qubits[46]; -ccx qubits[22], qubits[46], qubits[47]; -ccx qubits[23], qubits[47], qubits[48]; -cz qubits[48], qubits[24]; -ccx qubits[23], qubits[47], qubits[48]; -ccx qubits[22], qubits[46], qubits[47]; -ccx qubits[21], qubits[45], qubits[46]; -ccx qubits[20], qubits[44], qubits[45]; -ccx qubits[19], qubits[43], qubits[44]; -ccx qubits[18], qubits[42], qubits[43]; -ccx qubits[17], qubits[41], qubits[42]; -ccx qubits[16], qubits[40], qubits[41]; -ccx qubits[15], qubits[39], qubits[40]; -ccx qubits[14], qubits[38], qubits[39]; -ccx qubits[13], qubits[37], qubits[38]; -ccx qubits[12], qubits[36], qubits[37]; -ccx qubits[11], qubits[35], qubits[36]; -ccx qubits[10], qubits[34], qubits[35]; -ccx qubits[9], qubits[33], qubits[34]; -ccx qubits[8], qubits[32], qubits[33]; -ccx qubits[7], qubits[31], qubits[32]; -ccx qubits[6], qubits[30], qubits[31]; -ccx qubits[5], qubits[29], qubits[30]; -ccx qubits[4], qubits[28], qubits[29]; -ccx qubits[3], qubits[27], qubits[28]; -ccx qubits[2], qubits[26], qubits[27]; -ccx qubits[0], qubits[1], qubits[26]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +cz qubits[46], qubits[47]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; +x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; -z qubits[25]; +h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +z qubits[48]; diff --git a/benchmarks/all/OEGrover/25/post.hsl b/benchmarks/all/OEGrover/25/post.hsl index ffb8a3da7..e0c8633ea 100644 --- a/benchmarks/all/OEGrover/25/post.hsl +++ b/benchmarks/all/OEGrover/25/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 11 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/25/post.lsta b/benchmarks/all/OEGrover/25/post.lsta deleted file mode 100644 index fa8716aad..000000000 --- a/benchmarks/all/OEGrover/25/post.lsta +++ /dev/null @@ -1,132 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 52) -> 49 -[26,1](51, 53) -> 50 -[27,1](54, 54) -> 51 -[27,1](55, 54) -> 52 -[27,1](56, 54) -> 53 -[28,1](57, 57) -> 54 -[28,1](58, 57) -> 55 -[28,1](59, 57) -> 56 -[29,1](60, 60) -> 57 -[29,1](61, 60) -> 58 -[29,1](62, 60) -> 59 -[30,1](63, 63) -> 60 -[30,1](64, 63) -> 61 -[30,1](65, 63) -> 62 -[31,1](66, 66) -> 63 -[31,1](67, 66) -> 64 -[31,1](68, 66) -> 65 -[32,1](69, 69) -> 66 -[32,1](70, 69) -> 67 -[32,1](71, 69) -> 68 -[33,1](72, 72) -> 69 -[33,1](73, 72) -> 70 -[33,1](74, 72) -> 71 -[34,1](75, 75) -> 72 -[34,1](76, 75) -> 73 -[34,1](77, 75) -> 74 -[35,1](78, 78) -> 75 -[35,1](79, 78) -> 76 -[35,1](80, 78) -> 77 -[36,1](81, 81) -> 78 -[36,1](82, 81) -> 79 -[36,1](83, 81) -> 80 -[37,1](84, 84) -> 81 -[37,1](85, 84) -> 82 -[37,1](86, 84) -> 83 -[38,1](87, 87) -> 84 -[38,1](88, 87) -> 85 -[38,1](89, 87) -> 86 -[39,1](90, 90) -> 87 -[39,1](91, 90) -> 88 -[39,1](92, 90) -> 89 -[40,1](93, 93) -> 90 -[40,1](94, 93) -> 91 -[40,1](95, 93) -> 92 -[41,1](96, 96) -> 93 -[41,1](97, 96) -> 94 -[41,1](98, 96) -> 95 -[42,1](99, 99) -> 96 -[42,1](100, 99) -> 97 -[42,1](101, 99) -> 98 -[43,1](102, 102) -> 99 -[43,1](103, 102) -> 100 -[43,1](104, 102) -> 101 -[44,1](105, 105) -> 102 -[44,1](106, 105) -> 103 -[44,1](107, 105) -> 104 -[45,1](108, 108) -> 105 -[45,1](109, 108) -> 106 -[45,1](110, 108) -> 107 -[46,1](111, 111) -> 108 -[46,1](112, 111) -> 109 -[46,1](113, 111) -> 110 -[47,1](114, 114) -> 111 -[47,1](115, 114) -> 112 -[47,1](116, 114) -> 113 -[48,1](117, 117) -> 114 -[48,1](118, 117) -> 115 -[48,1](119, 117) -> 116 -[49,1](120, 120) -> 117 -[49,1](121, 120) -> 118 -[49,1](122, 120) -> 119 -[50,1](123, 123) -> 120 -[50,1](124, 123) -> 121 -[50,1](125, 123) -> 122 -[p1,1] -> 123 -[p2,1] -> 124 -[p3,1] -> 125 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/25/pre.hsl b/benchmarks/all/OEGrover/25/pre.hsl index 83448efdb..9ae517b8b 100644 --- a/benchmarks/all/OEGrover/25/pre.hsl +++ b/benchmarks/all/OEGrover/25/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010> + a |*> # |1000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 11 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 33554431 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/25/pre.lsta b/benchmarks/all/OEGrover/25/pre.lsta deleted file mode 100644 index e1f8a409d..000000000 --- a/benchmarks/all/OEGrover/25/pre.lsta +++ /dev/null @@ -1,136 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 52) -> 49 -[26,1](51, 53) -> 50 -[27,1](54, 54) -> 51 -[27,1](55, 54) -> 52 -[27,1](56, 54) -> 53 -[28,1](57, 57) -> 54 -[28,1](58, 57) -> 55 -[28,1](59, 57) -> 56 -[29,1](60, 60) -> 57 -[29,1](61, 60) -> 58 -[29,1](62, 60) -> 59 -[30,1](63, 63) -> 60 -[30,1](64, 63) -> 61 -[30,1](65, 63) -> 62 -[31,1](66, 66) -> 63 -[31,1](67, 66) -> 64 -[31,1](68, 66) -> 65 -[32,1](69, 69) -> 66 -[32,1](70, 69) -> 67 -[32,1](71, 69) -> 68 -[33,1](72, 72) -> 69 -[33,1](73, 72) -> 70 -[33,1](74, 72) -> 71 -[34,1](75, 75) -> 72 -[34,1](76, 75) -> 73 -[34,1](77, 75) -> 74 -[35,1](78, 78) -> 75 -[35,1](79, 78) -> 76 -[35,1](80, 78) -> 77 -[36,1](81, 81) -> 78 -[36,1](82, 81) -> 79 -[36,1](83, 81) -> 80 -[37,1](84, 84) -> 81 -[37,1](85, 84) -> 82 -[37,1](86, 84) -> 83 -[38,1](87, 87) -> 84 -[38,1](88, 87) -> 85 -[38,1](89, 87) -> 86 -[39,1](90, 90) -> 87 -[39,1](91, 90) -> 88 -[39,1](92, 90) -> 89 -[40,1](93, 93) -> 90 -[40,1](94, 93) -> 91 -[40,1](95, 93) -> 92 -[41,1](96, 96) -> 93 -[41,1](97, 96) -> 94 -[41,1](98, 96) -> 95 -[42,1](99, 99) -> 96 -[42,1](100, 99) -> 97 -[42,1](101, 99) -> 98 -[43,1](102, 102) -> 99 -[43,1](103, 102) -> 100 -[43,1](104, 102) -> 101 -[44,1](105, 105) -> 102 -[44,1](106, 105) -> 103 -[44,1](107, 105) -> 104 -[45,1](108, 108) -> 105 -[45,1](109, 108) -> 106 -[45,1](110, 108) -> 107 -[46,1](111, 111) -> 108 -[46,1](112, 111) -> 109 -[46,1](113, 111) -> 110 -[47,1](114, 114) -> 111 -[47,1](115, 114) -> 112 -[47,1](116, 114) -> 113 -[48,1](117, 117) -> 114 -[48,1](118, 117) -> 115 -[48,1](119, 117) -> 116 -[49,1](120, 120) -> 117 -[49,1](121, 120) -> 118 -[49,1](122, 120) -> 119 -[50,1](123, 123) -> 120 -[50,1](124, 123) -> 121 -[50,1](125, 123) -> 122 -[c0,1] -> 123 -[a,1] -> 124 -[b,1] -> 125 -Constraints -33554431 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/26/circuit.qasm b/benchmarks/all/OEGrover/26/circuit.qasm index a1e61ec45..4d266bf8a 100644 --- a/benchmarks/all/OEGrover/26/circuit.qasm +++ b/benchmarks/all/OEGrover/26/circuit.qasm @@ -1,69 +1,69 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[52]; +qreg qubits[51]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -ccx qubits[0], qubits[1], qubits[27]; -ccx qubits[2], qubits[27], qubits[28]; -ccx qubits[3], qubits[28], qubits[29]; -ccx qubits[4], qubits[29], qubits[30]; -ccx qubits[5], qubits[30], qubits[31]; -ccx qubits[6], qubits[31], qubits[32]; -ccx qubits[7], qubits[32], qubits[33]; -ccx qubits[8], qubits[33], qubits[34]; -ccx qubits[9], qubits[34], qubits[35]; -ccx qubits[10], qubits[35], qubits[36]; -ccx qubits[11], qubits[36], qubits[37]; -ccx qubits[12], qubits[37], qubits[38]; -ccx qubits[13], qubits[38], qubits[39]; -ccx qubits[14], qubits[39], qubits[40]; -ccx qubits[15], qubits[40], qubits[41]; -ccx qubits[16], qubits[41], qubits[42]; -ccx qubits[17], qubits[42], qubits[43]; -ccx qubits[18], qubits[43], qubits[44]; -ccx qubits[19], qubits[44], qubits[45]; -ccx qubits[20], qubits[45], qubits[46]; -ccx qubits[21], qubits[46], qubits[47]; -ccx qubits[22], qubits[47], qubits[48]; -ccx qubits[23], qubits[48], qubits[49]; -ccx qubits[24], qubits[49], qubits[50]; -cz qubits[50], qubits[25]; -ccx qubits[24], qubits[49], qubits[50]; -ccx qubits[23], qubits[48], qubits[49]; -ccx qubits[22], qubits[47], qubits[48]; -ccx qubits[21], qubits[46], qubits[47]; -ccx qubits[20], qubits[45], qubits[46]; -ccx qubits[19], qubits[44], qubits[45]; -ccx qubits[18], qubits[43], qubits[44]; -ccx qubits[17], qubits[42], qubits[43]; -ccx qubits[16], qubits[41], qubits[42]; -ccx qubits[15], qubits[40], qubits[41]; -ccx qubits[14], qubits[39], qubits[40]; -ccx qubits[13], qubits[38], qubits[39]; -ccx qubits[12], qubits[37], qubits[38]; -ccx qubits[11], qubits[36], qubits[37]; -ccx qubits[10], qubits[35], qubits[36]; -ccx qubits[9], qubits[34], qubits[35]; -ccx qubits[8], qubits[33], qubits[34]; -ccx qubits[7], qubits[32], qubits[33]; -ccx qubits[6], qubits[31], qubits[32]; -ccx qubits[5], qubits[30], qubits[31]; -ccx qubits[4], qubits[29], qubits[30]; -ccx qubits[3], qubits[28], qubits[29]; -ccx qubits[2], qubits[27], qubits[28]; -ccx qubits[0], qubits[1], qubits[27]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +cz qubits[48], qubits[49]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -79,155 +79,155 @@ x qubits[22]; x qubits[24]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -ccx qubits[0], qubits[1], qubits[27]; -ccx qubits[2], qubits[27], qubits[28]; -ccx qubits[3], qubits[28], qubits[29]; -ccx qubits[4], qubits[29], qubits[30]; -ccx qubits[5], qubits[30], qubits[31]; -ccx qubits[6], qubits[31], qubits[32]; -ccx qubits[7], qubits[32], qubits[33]; -ccx qubits[8], qubits[33], qubits[34]; -ccx qubits[9], qubits[34], qubits[35]; -ccx qubits[10], qubits[35], qubits[36]; -ccx qubits[11], qubits[36], qubits[37]; -ccx qubits[12], qubits[37], qubits[38]; -ccx qubits[13], qubits[38], qubits[39]; -ccx qubits[14], qubits[39], qubits[40]; -ccx qubits[15], qubits[40], qubits[41]; -ccx qubits[16], qubits[41], qubits[42]; -ccx qubits[17], qubits[42], qubits[43]; -ccx qubits[18], qubits[43], qubits[44]; -ccx qubits[19], qubits[44], qubits[45]; -ccx qubits[20], qubits[45], qubits[46]; -ccx qubits[21], qubits[46], qubits[47]; -ccx qubits[22], qubits[47], qubits[48]; -ccx qubits[23], qubits[48], qubits[49]; -ccx qubits[24], qubits[49], qubits[50]; -cz qubits[50], qubits[25]; -ccx qubits[24], qubits[49], qubits[50]; -ccx qubits[23], qubits[48], qubits[49]; -ccx qubits[22], qubits[47], qubits[48]; -ccx qubits[21], qubits[46], qubits[47]; -ccx qubits[20], qubits[45], qubits[46]; -ccx qubits[19], qubits[44], qubits[45]; -ccx qubits[18], qubits[43], qubits[44]; -ccx qubits[17], qubits[42], qubits[43]; -ccx qubits[16], qubits[41], qubits[42]; -ccx qubits[15], qubits[40], qubits[41]; -ccx qubits[14], qubits[39], qubits[40]; -ccx qubits[13], qubits[38], qubits[39]; -ccx qubits[12], qubits[37], qubits[38]; -ccx qubits[11], qubits[36], qubits[37]; -ccx qubits[10], qubits[35], qubits[36]; -ccx qubits[9], qubits[34], qubits[35]; -ccx qubits[8], qubits[33], qubits[34]; -ccx qubits[7], qubits[32], qubits[33]; -ccx qubits[6], qubits[31], qubits[32]; -ccx qubits[5], qubits[30], qubits[31]; -ccx qubits[4], qubits[29], qubits[30]; -ccx qubits[3], qubits[28], qubits[29]; -ccx qubits[2], qubits[27], qubits[28]; -ccx qubits[0], qubits[1], qubits[27]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +cz qubits[48], qubits[49]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -z qubits[26]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +z qubits[50]; diff --git a/benchmarks/all/OEGrover/26/post.hsl b/benchmarks/all/OEGrover/26/post.hsl index 37b7e7b05..875398e28 100644 --- a/benchmarks/all/OEGrover/26/post.hsl +++ b/benchmarks/all/OEGrover/26/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010110000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 12 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/26/post.lsta b/benchmarks/all/OEGrover/26/post.lsta deleted file mode 100644 index 5d703aab8..000000000 --- a/benchmarks/all/OEGrover/26/post.lsta +++ /dev/null @@ -1,137 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 54) -> 51 -[27,1](53, 55) -> 52 -[28,1](56, 56) -> 53 -[28,1](57, 56) -> 54 -[28,1](58, 56) -> 55 -[29,1](59, 59) -> 56 -[29,1](60, 59) -> 57 -[29,1](61, 59) -> 58 -[30,1](62, 62) -> 59 -[30,1](63, 62) -> 60 -[30,1](64, 62) -> 61 -[31,1](65, 65) -> 62 -[31,1](66, 65) -> 63 -[31,1](67, 65) -> 64 -[32,1](68, 68) -> 65 -[32,1](69, 68) -> 66 -[32,1](70, 68) -> 67 -[33,1](71, 71) -> 68 -[33,1](72, 71) -> 69 -[33,1](73, 71) -> 70 -[34,1](74, 74) -> 71 -[34,1](75, 74) -> 72 -[34,1](76, 74) -> 73 -[35,1](77, 77) -> 74 -[35,1](78, 77) -> 75 -[35,1](79, 77) -> 76 -[36,1](80, 80) -> 77 -[36,1](81, 80) -> 78 -[36,1](82, 80) -> 79 -[37,1](83, 83) -> 80 -[37,1](84, 83) -> 81 -[37,1](85, 83) -> 82 -[38,1](86, 86) -> 83 -[38,1](87, 86) -> 84 -[38,1](88, 86) -> 85 -[39,1](89, 89) -> 86 -[39,1](90, 89) -> 87 -[39,1](91, 89) -> 88 -[40,1](92, 92) -> 89 -[40,1](93, 92) -> 90 -[40,1](94, 92) -> 91 -[41,1](95, 95) -> 92 -[41,1](96, 95) -> 93 -[41,1](97, 95) -> 94 -[42,1](98, 98) -> 95 -[42,1](99, 98) -> 96 -[42,1](100, 98) -> 97 -[43,1](101, 101) -> 98 -[43,1](102, 101) -> 99 -[43,1](103, 101) -> 100 -[44,1](104, 104) -> 101 -[44,1](105, 104) -> 102 -[44,1](106, 104) -> 103 -[45,1](107, 107) -> 104 -[45,1](108, 107) -> 105 -[45,1](109, 107) -> 106 -[46,1](110, 110) -> 107 -[46,1](111, 110) -> 108 -[46,1](112, 110) -> 109 -[47,1](113, 113) -> 110 -[47,1](114, 113) -> 111 -[47,1](115, 113) -> 112 -[48,1](116, 116) -> 113 -[48,1](117, 116) -> 114 -[48,1](118, 116) -> 115 -[49,1](119, 119) -> 116 -[49,1](120, 119) -> 117 -[49,1](121, 119) -> 118 -[50,1](122, 122) -> 119 -[50,1](123, 122) -> 120 -[50,1](124, 122) -> 121 -[51,1](125, 125) -> 122 -[51,1](126, 125) -> 123 -[51,1](127, 125) -> 124 -[52,1](128, 128) -> 125 -[52,1](129, 128) -> 126 -[52,1](130, 128) -> 127 -[p1,1] -> 128 -[p2,1] -> 129 -[p3,1] -> 130 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/26/pre.hsl b/benchmarks/all/OEGrover/26/pre.hsl index 503c01b6d..4c38130ee 100644 --- a/benchmarks/all/OEGrover/26/pre.hsl +++ b/benchmarks/all/OEGrover/26/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101> + a |*> # |10000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 12 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 67108863 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/26/pre.lsta b/benchmarks/all/OEGrover/26/pre.lsta deleted file mode 100644 index d8a507f67..000000000 --- a/benchmarks/all/OEGrover/26/pre.lsta +++ /dev/null @@ -1,141 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 54) -> 51 -[27,1](53, 55) -> 52 -[28,1](56, 56) -> 53 -[28,1](57, 56) -> 54 -[28,1](58, 56) -> 55 -[29,1](59, 59) -> 56 -[29,1](60, 59) -> 57 -[29,1](61, 59) -> 58 -[30,1](62, 62) -> 59 -[30,1](63, 62) -> 60 -[30,1](64, 62) -> 61 -[31,1](65, 65) -> 62 -[31,1](66, 65) -> 63 -[31,1](67, 65) -> 64 -[32,1](68, 68) -> 65 -[32,1](69, 68) -> 66 -[32,1](70, 68) -> 67 -[33,1](71, 71) -> 68 -[33,1](72, 71) -> 69 -[33,1](73, 71) -> 70 -[34,1](74, 74) -> 71 -[34,1](75, 74) -> 72 -[34,1](76, 74) -> 73 -[35,1](77, 77) -> 74 -[35,1](78, 77) -> 75 -[35,1](79, 77) -> 76 -[36,1](80, 80) -> 77 -[36,1](81, 80) -> 78 -[36,1](82, 80) -> 79 -[37,1](83, 83) -> 80 -[37,1](84, 83) -> 81 -[37,1](85, 83) -> 82 -[38,1](86, 86) -> 83 -[38,1](87, 86) -> 84 -[38,1](88, 86) -> 85 -[39,1](89, 89) -> 86 -[39,1](90, 89) -> 87 -[39,1](91, 89) -> 88 -[40,1](92, 92) -> 89 -[40,1](93, 92) -> 90 -[40,1](94, 92) -> 91 -[41,1](95, 95) -> 92 -[41,1](96, 95) -> 93 -[41,1](97, 95) -> 94 -[42,1](98, 98) -> 95 -[42,1](99, 98) -> 96 -[42,1](100, 98) -> 97 -[43,1](101, 101) -> 98 -[43,1](102, 101) -> 99 -[43,1](103, 101) -> 100 -[44,1](104, 104) -> 101 -[44,1](105, 104) -> 102 -[44,1](106, 104) -> 103 -[45,1](107, 107) -> 104 -[45,1](108, 107) -> 105 -[45,1](109, 107) -> 106 -[46,1](110, 110) -> 107 -[46,1](111, 110) -> 108 -[46,1](112, 110) -> 109 -[47,1](113, 113) -> 110 -[47,1](114, 113) -> 111 -[47,1](115, 113) -> 112 -[48,1](116, 116) -> 113 -[48,1](117, 116) -> 114 -[48,1](118, 116) -> 115 -[49,1](119, 119) -> 116 -[49,1](120, 119) -> 117 -[49,1](121, 119) -> 118 -[50,1](122, 122) -> 119 -[50,1](123, 122) -> 120 -[50,1](124, 122) -> 121 -[51,1](125, 125) -> 122 -[51,1](126, 125) -> 123 -[51,1](127, 125) -> 124 -[52,1](128, 128) -> 125 -[52,1](129, 128) -> 126 -[52,1](130, 128) -> 127 -[c0,1] -> 128 -[a,1] -> 129 -[b,1] -> 130 -Constraints -67108863 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/27/circuit.qasm b/benchmarks/all/OEGrover/27/circuit.qasm index 52f82570b..c30b2f353 100644 --- a/benchmarks/all/OEGrover/27/circuit.qasm +++ b/benchmarks/all/OEGrover/27/circuit.qasm @@ -1,72 +1,72 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[54]; +qreg qubits[53]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -ccx qubits[0], qubits[1], qubits[28]; -ccx qubits[2], qubits[28], qubits[29]; -ccx qubits[3], qubits[29], qubits[30]; -ccx qubits[4], qubits[30], qubits[31]; -ccx qubits[5], qubits[31], qubits[32]; -ccx qubits[6], qubits[32], qubits[33]; -ccx qubits[7], qubits[33], qubits[34]; -ccx qubits[8], qubits[34], qubits[35]; -ccx qubits[9], qubits[35], qubits[36]; -ccx qubits[10], qubits[36], qubits[37]; -ccx qubits[11], qubits[37], qubits[38]; -ccx qubits[12], qubits[38], qubits[39]; -ccx qubits[13], qubits[39], qubits[40]; -ccx qubits[14], qubits[40], qubits[41]; -ccx qubits[15], qubits[41], qubits[42]; -ccx qubits[16], qubits[42], qubits[43]; -ccx qubits[17], qubits[43], qubits[44]; -ccx qubits[18], qubits[44], qubits[45]; -ccx qubits[19], qubits[45], qubits[46]; -ccx qubits[20], qubits[46], qubits[47]; -ccx qubits[21], qubits[47], qubits[48]; -ccx qubits[22], qubits[48], qubits[49]; -ccx qubits[23], qubits[49], qubits[50]; -ccx qubits[24], qubits[50], qubits[51]; -ccx qubits[25], qubits[51], qubits[52]; -cz qubits[52], qubits[26]; -ccx qubits[25], qubits[51], qubits[52]; -ccx qubits[24], qubits[50], qubits[51]; -ccx qubits[23], qubits[49], qubits[50]; -ccx qubits[22], qubits[48], qubits[49]; -ccx qubits[21], qubits[47], qubits[48]; -ccx qubits[20], qubits[46], qubits[47]; -ccx qubits[19], qubits[45], qubits[46]; -ccx qubits[18], qubits[44], qubits[45]; -ccx qubits[17], qubits[43], qubits[44]; -ccx qubits[16], qubits[42], qubits[43]; -ccx qubits[15], qubits[41], qubits[42]; -ccx qubits[14], qubits[40], qubits[41]; -ccx qubits[13], qubits[39], qubits[40]; -ccx qubits[12], qubits[38], qubits[39]; -ccx qubits[11], qubits[37], qubits[38]; -ccx qubits[10], qubits[36], qubits[37]; -ccx qubits[9], qubits[35], qubits[36]; -ccx qubits[8], qubits[34], qubits[35]; -ccx qubits[7], qubits[33], qubits[34]; -ccx qubits[6], qubits[32], qubits[33]; -ccx qubits[5], qubits[31], qubits[32]; -ccx qubits[4], qubits[30], qubits[31]; -ccx qubits[3], qubits[29], qubits[30]; -ccx qubits[2], qubits[28], qubits[29]; -ccx qubits[0], qubits[1], qubits[28]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +cz qubits[50], qubits[51]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -83,161 +83,161 @@ x qubits[24]; x qubits[26]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; -ccx qubits[0], qubits[1], qubits[28]; -ccx qubits[2], qubits[28], qubits[29]; -ccx qubits[3], qubits[29], qubits[30]; -ccx qubits[4], qubits[30], qubits[31]; -ccx qubits[5], qubits[31], qubits[32]; -ccx qubits[6], qubits[32], qubits[33]; -ccx qubits[7], qubits[33], qubits[34]; -ccx qubits[8], qubits[34], qubits[35]; -ccx qubits[9], qubits[35], qubits[36]; -ccx qubits[10], qubits[36], qubits[37]; -ccx qubits[11], qubits[37], qubits[38]; -ccx qubits[12], qubits[38], qubits[39]; -ccx qubits[13], qubits[39], qubits[40]; -ccx qubits[14], qubits[40], qubits[41]; -ccx qubits[15], qubits[41], qubits[42]; -ccx qubits[16], qubits[42], qubits[43]; -ccx qubits[17], qubits[43], qubits[44]; -ccx qubits[18], qubits[44], qubits[45]; -ccx qubits[19], qubits[45], qubits[46]; -ccx qubits[20], qubits[46], qubits[47]; -ccx qubits[21], qubits[47], qubits[48]; -ccx qubits[22], qubits[48], qubits[49]; -ccx qubits[23], qubits[49], qubits[50]; -ccx qubits[24], qubits[50], qubits[51]; -ccx qubits[25], qubits[51], qubits[52]; -cz qubits[52], qubits[26]; -ccx qubits[25], qubits[51], qubits[52]; -ccx qubits[24], qubits[50], qubits[51]; -ccx qubits[23], qubits[49], qubits[50]; -ccx qubits[22], qubits[48], qubits[49]; -ccx qubits[21], qubits[47], qubits[48]; -ccx qubits[20], qubits[46], qubits[47]; -ccx qubits[19], qubits[45], qubits[46]; -ccx qubits[18], qubits[44], qubits[45]; -ccx qubits[17], qubits[43], qubits[44]; -ccx qubits[16], qubits[42], qubits[43]; -ccx qubits[15], qubits[41], qubits[42]; -ccx qubits[14], qubits[40], qubits[41]; -ccx qubits[13], qubits[39], qubits[40]; -ccx qubits[12], qubits[38], qubits[39]; -ccx qubits[11], qubits[37], qubits[38]; -ccx qubits[10], qubits[36], qubits[37]; -ccx qubits[9], qubits[35], qubits[36]; -ccx qubits[8], qubits[34], qubits[35]; -ccx qubits[7], qubits[33], qubits[34]; -ccx qubits[6], qubits[32], qubits[33]; -ccx qubits[5], qubits[31], qubits[32]; -ccx qubits[4], qubits[30], qubits[31]; -ccx qubits[3], qubits[29], qubits[30]; -ccx qubits[2], qubits[28], qubits[29]; -ccx qubits[0], qubits[1], qubits[28]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +cz qubits[50], qubits[51]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; +x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; -z qubits[27]; +h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +z qubits[52]; diff --git a/benchmarks/all/OEGrover/27/post.hsl b/benchmarks/all/OEGrover/27/post.hsl index 1cb6113b0..58b3f9c79 100644 --- a/benchmarks/all/OEGrover/27/post.hsl +++ b/benchmarks/all/OEGrover/27/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010100000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 12 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/27/post.lsta b/benchmarks/all/OEGrover/27/post.lsta deleted file mode 100644 index 1ba247385..000000000 --- a/benchmarks/all/OEGrover/27/post.lsta +++ /dev/null @@ -1,142 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 56) -> 53 -[28,1](55, 57) -> 54 -[29,1](58, 58) -> 55 -[29,1](59, 58) -> 56 -[29,1](60, 58) -> 57 -[30,1](61, 61) -> 58 -[30,1](62, 61) -> 59 -[30,1](63, 61) -> 60 -[31,1](64, 64) -> 61 -[31,1](65, 64) -> 62 -[31,1](66, 64) -> 63 -[32,1](67, 67) -> 64 -[32,1](68, 67) -> 65 -[32,1](69, 67) -> 66 -[33,1](70, 70) -> 67 -[33,1](71, 70) -> 68 -[33,1](72, 70) -> 69 -[34,1](73, 73) -> 70 -[34,1](74, 73) -> 71 -[34,1](75, 73) -> 72 -[35,1](76, 76) -> 73 -[35,1](77, 76) -> 74 -[35,1](78, 76) -> 75 -[36,1](79, 79) -> 76 -[36,1](80, 79) -> 77 -[36,1](81, 79) -> 78 -[37,1](82, 82) -> 79 -[37,1](83, 82) -> 80 -[37,1](84, 82) -> 81 -[38,1](85, 85) -> 82 -[38,1](86, 85) -> 83 -[38,1](87, 85) -> 84 -[39,1](88, 88) -> 85 -[39,1](89, 88) -> 86 -[39,1](90, 88) -> 87 -[40,1](91, 91) -> 88 -[40,1](92, 91) -> 89 -[40,1](93, 91) -> 90 -[41,1](94, 94) -> 91 -[41,1](95, 94) -> 92 -[41,1](96, 94) -> 93 -[42,1](97, 97) -> 94 -[42,1](98, 97) -> 95 -[42,1](99, 97) -> 96 -[43,1](100, 100) -> 97 -[43,1](101, 100) -> 98 -[43,1](102, 100) -> 99 -[44,1](103, 103) -> 100 -[44,1](104, 103) -> 101 -[44,1](105, 103) -> 102 -[45,1](106, 106) -> 103 -[45,1](107, 106) -> 104 -[45,1](108, 106) -> 105 -[46,1](109, 109) -> 106 -[46,1](110, 109) -> 107 -[46,1](111, 109) -> 108 -[47,1](112, 112) -> 109 -[47,1](113, 112) -> 110 -[47,1](114, 112) -> 111 -[48,1](115, 115) -> 112 -[48,1](116, 115) -> 113 -[48,1](117, 115) -> 114 -[49,1](118, 118) -> 115 -[49,1](119, 118) -> 116 -[49,1](120, 118) -> 117 -[50,1](121, 121) -> 118 -[50,1](122, 121) -> 119 -[50,1](123, 121) -> 120 -[51,1](124, 124) -> 121 -[51,1](125, 124) -> 122 -[51,1](126, 124) -> 123 -[52,1](127, 127) -> 124 -[52,1](128, 127) -> 125 -[52,1](129, 127) -> 126 -[53,1](130, 130) -> 127 -[53,1](131, 130) -> 128 -[53,1](132, 130) -> 129 -[54,1](133, 133) -> 130 -[54,1](134, 133) -> 131 -[54,1](135, 133) -> 132 -[p1,1] -> 133 -[p2,1] -> 134 -[p3,1] -> 135 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/27/pre.hsl b/benchmarks/all/OEGrover/27/pre.hsl index cda4c2efc..fac39bb04 100644 --- a/benchmarks/all/OEGrover/27/pre.hsl +++ b/benchmarks/all/OEGrover/27/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010> + a |*> # |100000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 12 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 134217727 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/27/pre.lsta b/benchmarks/all/OEGrover/27/pre.lsta deleted file mode 100644 index 8abf3911c..000000000 --- a/benchmarks/all/OEGrover/27/pre.lsta +++ /dev/null @@ -1,146 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 56) -> 53 -[28,1](55, 57) -> 54 -[29,1](58, 58) -> 55 -[29,1](59, 58) -> 56 -[29,1](60, 58) -> 57 -[30,1](61, 61) -> 58 -[30,1](62, 61) -> 59 -[30,1](63, 61) -> 60 -[31,1](64, 64) -> 61 -[31,1](65, 64) -> 62 -[31,1](66, 64) -> 63 -[32,1](67, 67) -> 64 -[32,1](68, 67) -> 65 -[32,1](69, 67) -> 66 -[33,1](70, 70) -> 67 -[33,1](71, 70) -> 68 -[33,1](72, 70) -> 69 -[34,1](73, 73) -> 70 -[34,1](74, 73) -> 71 -[34,1](75, 73) -> 72 -[35,1](76, 76) -> 73 -[35,1](77, 76) -> 74 -[35,1](78, 76) -> 75 -[36,1](79, 79) -> 76 -[36,1](80, 79) -> 77 -[36,1](81, 79) -> 78 -[37,1](82, 82) -> 79 -[37,1](83, 82) -> 80 -[37,1](84, 82) -> 81 -[38,1](85, 85) -> 82 -[38,1](86, 85) -> 83 -[38,1](87, 85) -> 84 -[39,1](88, 88) -> 85 -[39,1](89, 88) -> 86 -[39,1](90, 88) -> 87 -[40,1](91, 91) -> 88 -[40,1](92, 91) -> 89 -[40,1](93, 91) -> 90 -[41,1](94, 94) -> 91 -[41,1](95, 94) -> 92 -[41,1](96, 94) -> 93 -[42,1](97, 97) -> 94 -[42,1](98, 97) -> 95 -[42,1](99, 97) -> 96 -[43,1](100, 100) -> 97 -[43,1](101, 100) -> 98 -[43,1](102, 100) -> 99 -[44,1](103, 103) -> 100 -[44,1](104, 103) -> 101 -[44,1](105, 103) -> 102 -[45,1](106, 106) -> 103 -[45,1](107, 106) -> 104 -[45,1](108, 106) -> 105 -[46,1](109, 109) -> 106 -[46,1](110, 109) -> 107 -[46,1](111, 109) -> 108 -[47,1](112, 112) -> 109 -[47,1](113, 112) -> 110 -[47,1](114, 112) -> 111 -[48,1](115, 115) -> 112 -[48,1](116, 115) -> 113 -[48,1](117, 115) -> 114 -[49,1](118, 118) -> 115 -[49,1](119, 118) -> 116 -[49,1](120, 118) -> 117 -[50,1](121, 121) -> 118 -[50,1](122, 121) -> 119 -[50,1](123, 121) -> 120 -[51,1](124, 124) -> 121 -[51,1](125, 124) -> 122 -[51,1](126, 124) -> 123 -[52,1](127, 127) -> 124 -[52,1](128, 127) -> 125 -[52,1](129, 127) -> 126 -[53,1](130, 130) -> 127 -[53,1](131, 130) -> 128 -[53,1](132, 130) -> 129 -[54,1](133, 133) -> 130 -[54,1](134, 133) -> 131 -[54,1](135, 133) -> 132 -[c0,1] -> 133 -[a,1] -> 134 -[b,1] -> 135 -Constraints -134217727 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/28/circuit.qasm b/benchmarks/all/OEGrover/28/circuit.qasm index 8cfc5b619..3d870fefd 100644 --- a/benchmarks/all/OEGrover/28/circuit.qasm +++ b/benchmarks/all/OEGrover/28/circuit.qasm @@ -1,74 +1,74 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[56]; +qreg qubits[55]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -ccx qubits[0], qubits[1], qubits[29]; -ccx qubits[2], qubits[29], qubits[30]; -ccx qubits[3], qubits[30], qubits[31]; -ccx qubits[4], qubits[31], qubits[32]; -ccx qubits[5], qubits[32], qubits[33]; -ccx qubits[6], qubits[33], qubits[34]; -ccx qubits[7], qubits[34], qubits[35]; -ccx qubits[8], qubits[35], qubits[36]; -ccx qubits[9], qubits[36], qubits[37]; -ccx qubits[10], qubits[37], qubits[38]; -ccx qubits[11], qubits[38], qubits[39]; -ccx qubits[12], qubits[39], qubits[40]; -ccx qubits[13], qubits[40], qubits[41]; -ccx qubits[14], qubits[41], qubits[42]; -ccx qubits[15], qubits[42], qubits[43]; -ccx qubits[16], qubits[43], qubits[44]; -ccx qubits[17], qubits[44], qubits[45]; -ccx qubits[18], qubits[45], qubits[46]; -ccx qubits[19], qubits[46], qubits[47]; -ccx qubits[20], qubits[47], qubits[48]; -ccx qubits[21], qubits[48], qubits[49]; -ccx qubits[22], qubits[49], qubits[50]; -ccx qubits[23], qubits[50], qubits[51]; -ccx qubits[24], qubits[51], qubits[52]; -ccx qubits[25], qubits[52], qubits[53]; -ccx qubits[26], qubits[53], qubits[54]; -cz qubits[54], qubits[27]; -ccx qubits[26], qubits[53], qubits[54]; -ccx qubits[25], qubits[52], qubits[53]; -ccx qubits[24], qubits[51], qubits[52]; -ccx qubits[23], qubits[50], qubits[51]; -ccx qubits[22], qubits[49], qubits[50]; -ccx qubits[21], qubits[48], qubits[49]; -ccx qubits[20], qubits[47], qubits[48]; -ccx qubits[19], qubits[46], qubits[47]; -ccx qubits[18], qubits[45], qubits[46]; -ccx qubits[17], qubits[44], qubits[45]; -ccx qubits[16], qubits[43], qubits[44]; -ccx qubits[15], qubits[42], qubits[43]; -ccx qubits[14], qubits[41], qubits[42]; -ccx qubits[13], qubits[40], qubits[41]; -ccx qubits[12], qubits[39], qubits[40]; -ccx qubits[11], qubits[38], qubits[39]; -ccx qubits[10], qubits[37], qubits[38]; -ccx qubits[9], qubits[36], qubits[37]; -ccx qubits[8], qubits[35], qubits[36]; -ccx qubits[7], qubits[34], qubits[35]; -ccx qubits[6], qubits[33], qubits[34]; -ccx qubits[5], qubits[32], qubits[33]; -ccx qubits[4], qubits[31], qubits[32]; -ccx qubits[3], qubits[30], qubits[31]; -ccx qubits[2], qubits[29], qubits[30]; -ccx qubits[0], qubits[1], qubits[29]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +cz qubits[52], qubits[53]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -85,167 +85,167 @@ x qubits[24]; x qubits[26]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -ccx qubits[0], qubits[1], qubits[29]; -ccx qubits[2], qubits[29], qubits[30]; -ccx qubits[3], qubits[30], qubits[31]; -ccx qubits[4], qubits[31], qubits[32]; -ccx qubits[5], qubits[32], qubits[33]; -ccx qubits[6], qubits[33], qubits[34]; -ccx qubits[7], qubits[34], qubits[35]; -ccx qubits[8], qubits[35], qubits[36]; -ccx qubits[9], qubits[36], qubits[37]; -ccx qubits[10], qubits[37], qubits[38]; -ccx qubits[11], qubits[38], qubits[39]; -ccx qubits[12], qubits[39], qubits[40]; -ccx qubits[13], qubits[40], qubits[41]; -ccx qubits[14], qubits[41], qubits[42]; -ccx qubits[15], qubits[42], qubits[43]; -ccx qubits[16], qubits[43], qubits[44]; -ccx qubits[17], qubits[44], qubits[45]; -ccx qubits[18], qubits[45], qubits[46]; -ccx qubits[19], qubits[46], qubits[47]; -ccx qubits[20], qubits[47], qubits[48]; -ccx qubits[21], qubits[48], qubits[49]; -ccx qubits[22], qubits[49], qubits[50]; -ccx qubits[23], qubits[50], qubits[51]; -ccx qubits[24], qubits[51], qubits[52]; -ccx qubits[25], qubits[52], qubits[53]; -ccx qubits[26], qubits[53], qubits[54]; -cz qubits[54], qubits[27]; -ccx qubits[26], qubits[53], qubits[54]; -ccx qubits[25], qubits[52], qubits[53]; -ccx qubits[24], qubits[51], qubits[52]; -ccx qubits[23], qubits[50], qubits[51]; -ccx qubits[22], qubits[49], qubits[50]; -ccx qubits[21], qubits[48], qubits[49]; -ccx qubits[20], qubits[47], qubits[48]; -ccx qubits[19], qubits[46], qubits[47]; -ccx qubits[18], qubits[45], qubits[46]; -ccx qubits[17], qubits[44], qubits[45]; -ccx qubits[16], qubits[43], qubits[44]; -ccx qubits[15], qubits[42], qubits[43]; -ccx qubits[14], qubits[41], qubits[42]; -ccx qubits[13], qubits[40], qubits[41]; -ccx qubits[12], qubits[39], qubits[40]; -ccx qubits[11], qubits[38], qubits[39]; -ccx qubits[10], qubits[37], qubits[38]; -ccx qubits[9], qubits[36], qubits[37]; -ccx qubits[8], qubits[35], qubits[36]; -ccx qubits[7], qubits[34], qubits[35]; -ccx qubits[6], qubits[33], qubits[34]; -ccx qubits[5], qubits[32], qubits[33]; -ccx qubits[4], qubits[31], qubits[32]; -ccx qubits[3], qubits[30], qubits[31]; -ccx qubits[2], qubits[29], qubits[30]; -ccx qubits[0], qubits[1], qubits[29]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +cz qubits[52], qubits[53]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -z qubits[28]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +z qubits[54]; diff --git a/benchmarks/all/OEGrover/28/post.hsl b/benchmarks/all/OEGrover/28/post.hsl index 64c47133a..7d7449bd4 100644 --- a/benchmarks/all/OEGrover/28/post.hsl +++ b/benchmarks/all/OEGrover/28/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101011000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 13 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/28/post.lsta b/benchmarks/all/OEGrover/28/post.lsta deleted file mode 100644 index c5c367f31..000000000 --- a/benchmarks/all/OEGrover/28/post.lsta +++ /dev/null @@ -1,147 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 58) -> 55 -[29,1](57, 59) -> 56 -[30,1](60, 60) -> 57 -[30,1](61, 60) -> 58 -[30,1](62, 60) -> 59 -[31,1](63, 63) -> 60 -[31,1](64, 63) -> 61 -[31,1](65, 63) -> 62 -[32,1](66, 66) -> 63 -[32,1](67, 66) -> 64 -[32,1](68, 66) -> 65 -[33,1](69, 69) -> 66 -[33,1](70, 69) -> 67 -[33,1](71, 69) -> 68 -[34,1](72, 72) -> 69 -[34,1](73, 72) -> 70 -[34,1](74, 72) -> 71 -[35,1](75, 75) -> 72 -[35,1](76, 75) -> 73 -[35,1](77, 75) -> 74 -[36,1](78, 78) -> 75 -[36,1](79, 78) -> 76 -[36,1](80, 78) -> 77 -[37,1](81, 81) -> 78 -[37,1](82, 81) -> 79 -[37,1](83, 81) -> 80 -[38,1](84, 84) -> 81 -[38,1](85, 84) -> 82 -[38,1](86, 84) -> 83 -[39,1](87, 87) -> 84 -[39,1](88, 87) -> 85 -[39,1](89, 87) -> 86 -[40,1](90, 90) -> 87 -[40,1](91, 90) -> 88 -[40,1](92, 90) -> 89 -[41,1](93, 93) -> 90 -[41,1](94, 93) -> 91 -[41,1](95, 93) -> 92 -[42,1](96, 96) -> 93 -[42,1](97, 96) -> 94 -[42,1](98, 96) -> 95 -[43,1](99, 99) -> 96 -[43,1](100, 99) -> 97 -[43,1](101, 99) -> 98 -[44,1](102, 102) -> 99 -[44,1](103, 102) -> 100 -[44,1](104, 102) -> 101 -[45,1](105, 105) -> 102 -[45,1](106, 105) -> 103 -[45,1](107, 105) -> 104 -[46,1](108, 108) -> 105 -[46,1](109, 108) -> 106 -[46,1](110, 108) -> 107 -[47,1](111, 111) -> 108 -[47,1](112, 111) -> 109 -[47,1](113, 111) -> 110 -[48,1](114, 114) -> 111 -[48,1](115, 114) -> 112 -[48,1](116, 114) -> 113 -[49,1](117, 117) -> 114 -[49,1](118, 117) -> 115 -[49,1](119, 117) -> 116 -[50,1](120, 120) -> 117 -[50,1](121, 120) -> 118 -[50,1](122, 120) -> 119 -[51,1](123, 123) -> 120 -[51,1](124, 123) -> 121 -[51,1](125, 123) -> 122 -[52,1](126, 126) -> 123 -[52,1](127, 126) -> 124 -[52,1](128, 126) -> 125 -[53,1](129, 129) -> 126 -[53,1](130, 129) -> 127 -[53,1](131, 129) -> 128 -[54,1](132, 132) -> 129 -[54,1](133, 132) -> 130 -[54,1](134, 132) -> 131 -[55,1](135, 135) -> 132 -[55,1](136, 135) -> 133 -[55,1](137, 135) -> 134 -[56,1](138, 138) -> 135 -[56,1](139, 138) -> 136 -[56,1](140, 138) -> 137 -[p1,1] -> 138 -[p2,1] -> 139 -[p3,1] -> 140 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/28/pre.hsl b/benchmarks/all/OEGrover/28/pre.hsl index 0ca1d7c74..a5f2afd55 100644 --- a/benchmarks/all/OEGrover/28/pre.hsl +++ b/benchmarks/all/OEGrover/28/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101> + a |*> # |1000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 13 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 268435455 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/28/pre.lsta b/benchmarks/all/OEGrover/28/pre.lsta deleted file mode 100644 index 77ca12baf..000000000 --- a/benchmarks/all/OEGrover/28/pre.lsta +++ /dev/null @@ -1,151 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 58) -> 55 -[29,1](57, 59) -> 56 -[30,1](60, 60) -> 57 -[30,1](61, 60) -> 58 -[30,1](62, 60) -> 59 -[31,1](63, 63) -> 60 -[31,1](64, 63) -> 61 -[31,1](65, 63) -> 62 -[32,1](66, 66) -> 63 -[32,1](67, 66) -> 64 -[32,1](68, 66) -> 65 -[33,1](69, 69) -> 66 -[33,1](70, 69) -> 67 -[33,1](71, 69) -> 68 -[34,1](72, 72) -> 69 -[34,1](73, 72) -> 70 -[34,1](74, 72) -> 71 -[35,1](75, 75) -> 72 -[35,1](76, 75) -> 73 -[35,1](77, 75) -> 74 -[36,1](78, 78) -> 75 -[36,1](79, 78) -> 76 -[36,1](80, 78) -> 77 -[37,1](81, 81) -> 78 -[37,1](82, 81) -> 79 -[37,1](83, 81) -> 80 -[38,1](84, 84) -> 81 -[38,1](85, 84) -> 82 -[38,1](86, 84) -> 83 -[39,1](87, 87) -> 84 -[39,1](88, 87) -> 85 -[39,1](89, 87) -> 86 -[40,1](90, 90) -> 87 -[40,1](91, 90) -> 88 -[40,1](92, 90) -> 89 -[41,1](93, 93) -> 90 -[41,1](94, 93) -> 91 -[41,1](95, 93) -> 92 -[42,1](96, 96) -> 93 -[42,1](97, 96) -> 94 -[42,1](98, 96) -> 95 -[43,1](99, 99) -> 96 -[43,1](100, 99) -> 97 -[43,1](101, 99) -> 98 -[44,1](102, 102) -> 99 -[44,1](103, 102) -> 100 -[44,1](104, 102) -> 101 -[45,1](105, 105) -> 102 -[45,1](106, 105) -> 103 -[45,1](107, 105) -> 104 -[46,1](108, 108) -> 105 -[46,1](109, 108) -> 106 -[46,1](110, 108) -> 107 -[47,1](111, 111) -> 108 -[47,1](112, 111) -> 109 -[47,1](113, 111) -> 110 -[48,1](114, 114) -> 111 -[48,1](115, 114) -> 112 -[48,1](116, 114) -> 113 -[49,1](117, 117) -> 114 -[49,1](118, 117) -> 115 -[49,1](119, 117) -> 116 -[50,1](120, 120) -> 117 -[50,1](121, 120) -> 118 -[50,1](122, 120) -> 119 -[51,1](123, 123) -> 120 -[51,1](124, 123) -> 121 -[51,1](125, 123) -> 122 -[52,1](126, 126) -> 123 -[52,1](127, 126) -> 124 -[52,1](128, 126) -> 125 -[53,1](129, 129) -> 126 -[53,1](130, 129) -> 127 -[53,1](131, 129) -> 128 -[54,1](132, 132) -> 129 -[54,1](133, 132) -> 130 -[54,1](134, 132) -> 131 -[55,1](135, 135) -> 132 -[55,1](136, 135) -> 133 -[55,1](137, 135) -> 134 -[56,1](138, 138) -> 135 -[56,1](139, 138) -> 136 -[56,1](140, 138) -> 137 -[c0,1] -> 138 -[a,1] -> 139 -[b,1] -> 140 -Constraints -268435455 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/29/circuit.qasm b/benchmarks/all/OEGrover/29/circuit.qasm index 128d7f482..972672bb7 100644 --- a/benchmarks/all/OEGrover/29/circuit.qasm +++ b/benchmarks/all/OEGrover/29/circuit.qasm @@ -1,77 +1,77 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[58]; +qreg qubits[57]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -ccx qubits[0], qubits[1], qubits[30]; -ccx qubits[2], qubits[30], qubits[31]; -ccx qubits[3], qubits[31], qubits[32]; -ccx qubits[4], qubits[32], qubits[33]; -ccx qubits[5], qubits[33], qubits[34]; -ccx qubits[6], qubits[34], qubits[35]; -ccx qubits[7], qubits[35], qubits[36]; -ccx qubits[8], qubits[36], qubits[37]; -ccx qubits[9], qubits[37], qubits[38]; -ccx qubits[10], qubits[38], qubits[39]; -ccx qubits[11], qubits[39], qubits[40]; -ccx qubits[12], qubits[40], qubits[41]; -ccx qubits[13], qubits[41], qubits[42]; -ccx qubits[14], qubits[42], qubits[43]; -ccx qubits[15], qubits[43], qubits[44]; -ccx qubits[16], qubits[44], qubits[45]; -ccx qubits[17], qubits[45], qubits[46]; -ccx qubits[18], qubits[46], qubits[47]; -ccx qubits[19], qubits[47], qubits[48]; -ccx qubits[20], qubits[48], qubits[49]; -ccx qubits[21], qubits[49], qubits[50]; -ccx qubits[22], qubits[50], qubits[51]; -ccx qubits[23], qubits[51], qubits[52]; -ccx qubits[24], qubits[52], qubits[53]; -ccx qubits[25], qubits[53], qubits[54]; -ccx qubits[26], qubits[54], qubits[55]; -ccx qubits[27], qubits[55], qubits[56]; -cz qubits[56], qubits[28]; -ccx qubits[27], qubits[55], qubits[56]; -ccx qubits[26], qubits[54], qubits[55]; -ccx qubits[25], qubits[53], qubits[54]; -ccx qubits[24], qubits[52], qubits[53]; -ccx qubits[23], qubits[51], qubits[52]; -ccx qubits[22], qubits[50], qubits[51]; -ccx qubits[21], qubits[49], qubits[50]; -ccx qubits[20], qubits[48], qubits[49]; -ccx qubits[19], qubits[47], qubits[48]; -ccx qubits[18], qubits[46], qubits[47]; -ccx qubits[17], qubits[45], qubits[46]; -ccx qubits[16], qubits[44], qubits[45]; -ccx qubits[15], qubits[43], qubits[44]; -ccx qubits[14], qubits[42], qubits[43]; -ccx qubits[13], qubits[41], qubits[42]; -ccx qubits[12], qubits[40], qubits[41]; -ccx qubits[11], qubits[39], qubits[40]; -ccx qubits[10], qubits[38], qubits[39]; -ccx qubits[9], qubits[37], qubits[38]; -ccx qubits[8], qubits[36], qubits[37]; -ccx qubits[7], qubits[35], qubits[36]; -ccx qubits[6], qubits[34], qubits[35]; -ccx qubits[5], qubits[33], qubits[34]; -ccx qubits[4], qubits[32], qubits[33]; -ccx qubits[3], qubits[31], qubits[32]; -ccx qubits[2], qubits[30], qubits[31]; -ccx qubits[0], qubits[1], qubits[30]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +cz qubits[54], qubits[55]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -89,173 +89,173 @@ x qubits[26]; x qubits[28]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; -ccx qubits[0], qubits[1], qubits[30]; -ccx qubits[2], qubits[30], qubits[31]; -ccx qubits[3], qubits[31], qubits[32]; -ccx qubits[4], qubits[32], qubits[33]; -ccx qubits[5], qubits[33], qubits[34]; -ccx qubits[6], qubits[34], qubits[35]; -ccx qubits[7], qubits[35], qubits[36]; -ccx qubits[8], qubits[36], qubits[37]; -ccx qubits[9], qubits[37], qubits[38]; -ccx qubits[10], qubits[38], qubits[39]; -ccx qubits[11], qubits[39], qubits[40]; -ccx qubits[12], qubits[40], qubits[41]; -ccx qubits[13], qubits[41], qubits[42]; -ccx qubits[14], qubits[42], qubits[43]; -ccx qubits[15], qubits[43], qubits[44]; -ccx qubits[16], qubits[44], qubits[45]; -ccx qubits[17], qubits[45], qubits[46]; -ccx qubits[18], qubits[46], qubits[47]; -ccx qubits[19], qubits[47], qubits[48]; -ccx qubits[20], qubits[48], qubits[49]; -ccx qubits[21], qubits[49], qubits[50]; -ccx qubits[22], qubits[50], qubits[51]; -ccx qubits[23], qubits[51], qubits[52]; -ccx qubits[24], qubits[52], qubits[53]; -ccx qubits[25], qubits[53], qubits[54]; -ccx qubits[26], qubits[54], qubits[55]; -ccx qubits[27], qubits[55], qubits[56]; -cz qubits[56], qubits[28]; -ccx qubits[27], qubits[55], qubits[56]; -ccx qubits[26], qubits[54], qubits[55]; -ccx qubits[25], qubits[53], qubits[54]; -ccx qubits[24], qubits[52], qubits[53]; -ccx qubits[23], qubits[51], qubits[52]; -ccx qubits[22], qubits[50], qubits[51]; -ccx qubits[21], qubits[49], qubits[50]; -ccx qubits[20], qubits[48], qubits[49]; -ccx qubits[19], qubits[47], qubits[48]; -ccx qubits[18], qubits[46], qubits[47]; -ccx qubits[17], qubits[45], qubits[46]; -ccx qubits[16], qubits[44], qubits[45]; -ccx qubits[15], qubits[43], qubits[44]; -ccx qubits[14], qubits[42], qubits[43]; -ccx qubits[13], qubits[41], qubits[42]; -ccx qubits[12], qubits[40], qubits[41]; -ccx qubits[11], qubits[39], qubits[40]; -ccx qubits[10], qubits[38], qubits[39]; -ccx qubits[9], qubits[37], qubits[38]; -ccx qubits[8], qubits[36], qubits[37]; -ccx qubits[7], qubits[35], qubits[36]; -ccx qubits[6], qubits[34], qubits[35]; -ccx qubits[5], qubits[33], qubits[34]; -ccx qubits[4], qubits[32], qubits[33]; -ccx qubits[3], qubits[31], qubits[32]; -ccx qubits[2], qubits[30], qubits[31]; -ccx qubits[0], qubits[1], qubits[30]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +cz qubits[54], qubits[55]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; +x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; -z qubits[29]; +h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +z qubits[56]; diff --git a/benchmarks/all/OEGrover/29/post.hsl b/benchmarks/all/OEGrover/29/post.hsl index 92042d316..90dfcbcb5 100644 --- a/benchmarks/all/OEGrover/29/post.hsl +++ b/benchmarks/all/OEGrover/29/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 13 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/29/post.lsta b/benchmarks/all/OEGrover/29/post.lsta deleted file mode 100644 index 40bd61072..000000000 --- a/benchmarks/all/OEGrover/29/post.lsta +++ /dev/null @@ -1,152 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 60) -> 57 -[30,1](59, 61) -> 58 -[31,1](62, 62) -> 59 -[31,1](63, 62) -> 60 -[31,1](64, 62) -> 61 -[32,1](65, 65) -> 62 -[32,1](66, 65) -> 63 -[32,1](67, 65) -> 64 -[33,1](68, 68) -> 65 -[33,1](69, 68) -> 66 -[33,1](70, 68) -> 67 -[34,1](71, 71) -> 68 -[34,1](72, 71) -> 69 -[34,1](73, 71) -> 70 -[35,1](74, 74) -> 71 -[35,1](75, 74) -> 72 -[35,1](76, 74) -> 73 -[36,1](77, 77) -> 74 -[36,1](78, 77) -> 75 -[36,1](79, 77) -> 76 -[37,1](80, 80) -> 77 -[37,1](81, 80) -> 78 -[37,1](82, 80) -> 79 -[38,1](83, 83) -> 80 -[38,1](84, 83) -> 81 -[38,1](85, 83) -> 82 -[39,1](86, 86) -> 83 -[39,1](87, 86) -> 84 -[39,1](88, 86) -> 85 -[40,1](89, 89) -> 86 -[40,1](90, 89) -> 87 -[40,1](91, 89) -> 88 -[41,1](92, 92) -> 89 -[41,1](93, 92) -> 90 -[41,1](94, 92) -> 91 -[42,1](95, 95) -> 92 -[42,1](96, 95) -> 93 -[42,1](97, 95) -> 94 -[43,1](98, 98) -> 95 -[43,1](99, 98) -> 96 -[43,1](100, 98) -> 97 -[44,1](101, 101) -> 98 -[44,1](102, 101) -> 99 -[44,1](103, 101) -> 100 -[45,1](104, 104) -> 101 -[45,1](105, 104) -> 102 -[45,1](106, 104) -> 103 -[46,1](107, 107) -> 104 -[46,1](108, 107) -> 105 -[46,1](109, 107) -> 106 -[47,1](110, 110) -> 107 -[47,1](111, 110) -> 108 -[47,1](112, 110) -> 109 -[48,1](113, 113) -> 110 -[48,1](114, 113) -> 111 -[48,1](115, 113) -> 112 -[49,1](116, 116) -> 113 -[49,1](117, 116) -> 114 -[49,1](118, 116) -> 115 -[50,1](119, 119) -> 116 -[50,1](120, 119) -> 117 -[50,1](121, 119) -> 118 -[51,1](122, 122) -> 119 -[51,1](123, 122) -> 120 -[51,1](124, 122) -> 121 -[52,1](125, 125) -> 122 -[52,1](126, 125) -> 123 -[52,1](127, 125) -> 124 -[53,1](128, 128) -> 125 -[53,1](129, 128) -> 126 -[53,1](130, 128) -> 127 -[54,1](131, 131) -> 128 -[54,1](132, 131) -> 129 -[54,1](133, 131) -> 130 -[55,1](134, 134) -> 131 -[55,1](135, 134) -> 132 -[55,1](136, 134) -> 133 -[56,1](137, 137) -> 134 -[56,1](138, 137) -> 135 -[56,1](139, 137) -> 136 -[57,1](140, 140) -> 137 -[57,1](141, 140) -> 138 -[57,1](142, 140) -> 139 -[58,1](143, 143) -> 140 -[58,1](144, 143) -> 141 -[58,1](145, 143) -> 142 -[p1,1] -> 143 -[p2,1] -> 144 -[p3,1] -> 145 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/29/pre.hsl b/benchmarks/all/OEGrover/29/pre.hsl index 229959412..88d071e3b 100644 --- a/benchmarks/all/OEGrover/29/pre.hsl +++ b/benchmarks/all/OEGrover/29/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010> + a |*> # |10000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 13 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 536870911 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/29/pre.lsta b/benchmarks/all/OEGrover/29/pre.lsta deleted file mode 100644 index 5c90f96f5..000000000 --- a/benchmarks/all/OEGrover/29/pre.lsta +++ /dev/null @@ -1,156 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 60) -> 57 -[30,1](59, 61) -> 58 -[31,1](62, 62) -> 59 -[31,1](63, 62) -> 60 -[31,1](64, 62) -> 61 -[32,1](65, 65) -> 62 -[32,1](66, 65) -> 63 -[32,1](67, 65) -> 64 -[33,1](68, 68) -> 65 -[33,1](69, 68) -> 66 -[33,1](70, 68) -> 67 -[34,1](71, 71) -> 68 -[34,1](72, 71) -> 69 -[34,1](73, 71) -> 70 -[35,1](74, 74) -> 71 -[35,1](75, 74) -> 72 -[35,1](76, 74) -> 73 -[36,1](77, 77) -> 74 -[36,1](78, 77) -> 75 -[36,1](79, 77) -> 76 -[37,1](80, 80) -> 77 -[37,1](81, 80) -> 78 -[37,1](82, 80) -> 79 -[38,1](83, 83) -> 80 -[38,1](84, 83) -> 81 -[38,1](85, 83) -> 82 -[39,1](86, 86) -> 83 -[39,1](87, 86) -> 84 -[39,1](88, 86) -> 85 -[40,1](89, 89) -> 86 -[40,1](90, 89) -> 87 -[40,1](91, 89) -> 88 -[41,1](92, 92) -> 89 -[41,1](93, 92) -> 90 -[41,1](94, 92) -> 91 -[42,1](95, 95) -> 92 -[42,1](96, 95) -> 93 -[42,1](97, 95) -> 94 -[43,1](98, 98) -> 95 -[43,1](99, 98) -> 96 -[43,1](100, 98) -> 97 -[44,1](101, 101) -> 98 -[44,1](102, 101) -> 99 -[44,1](103, 101) -> 100 -[45,1](104, 104) -> 101 -[45,1](105, 104) -> 102 -[45,1](106, 104) -> 103 -[46,1](107, 107) -> 104 -[46,1](108, 107) -> 105 -[46,1](109, 107) -> 106 -[47,1](110, 110) -> 107 -[47,1](111, 110) -> 108 -[47,1](112, 110) -> 109 -[48,1](113, 113) -> 110 -[48,1](114, 113) -> 111 -[48,1](115, 113) -> 112 -[49,1](116, 116) -> 113 -[49,1](117, 116) -> 114 -[49,1](118, 116) -> 115 -[50,1](119, 119) -> 116 -[50,1](120, 119) -> 117 -[50,1](121, 119) -> 118 -[51,1](122, 122) -> 119 -[51,1](123, 122) -> 120 -[51,1](124, 122) -> 121 -[52,1](125, 125) -> 122 -[52,1](126, 125) -> 123 -[52,1](127, 125) -> 124 -[53,1](128, 128) -> 125 -[53,1](129, 128) -> 126 -[53,1](130, 128) -> 127 -[54,1](131, 131) -> 128 -[54,1](132, 131) -> 129 -[54,1](133, 131) -> 130 -[55,1](134, 134) -> 131 -[55,1](135, 134) -> 132 -[55,1](136, 134) -> 133 -[56,1](137, 137) -> 134 -[56,1](138, 137) -> 135 -[56,1](139, 137) -> 136 -[57,1](140, 140) -> 137 -[57,1](141, 140) -> 138 -[57,1](142, 140) -> 139 -[58,1](143, 143) -> 140 -[58,1](144, 143) -> 141 -[58,1](145, 143) -> 142 -[c0,1] -> 143 -[a,1] -> 144 -[b,1] -> 145 -Constraints -536870911 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/30/circuit.qasm b/benchmarks/all/OEGrover/30/circuit.qasm index e05ee6142..7ab98f40b 100644 --- a/benchmarks/all/OEGrover/30/circuit.qasm +++ b/benchmarks/all/OEGrover/30/circuit.qasm @@ -1,79 +1,79 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[60]; +qreg qubits[59]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -ccx qubits[0], qubits[1], qubits[31]; -ccx qubits[2], qubits[31], qubits[32]; -ccx qubits[3], qubits[32], qubits[33]; -ccx qubits[4], qubits[33], qubits[34]; -ccx qubits[5], qubits[34], qubits[35]; -ccx qubits[6], qubits[35], qubits[36]; -ccx qubits[7], qubits[36], qubits[37]; -ccx qubits[8], qubits[37], qubits[38]; -ccx qubits[9], qubits[38], qubits[39]; -ccx qubits[10], qubits[39], qubits[40]; -ccx qubits[11], qubits[40], qubits[41]; -ccx qubits[12], qubits[41], qubits[42]; -ccx qubits[13], qubits[42], qubits[43]; -ccx qubits[14], qubits[43], qubits[44]; -ccx qubits[15], qubits[44], qubits[45]; -ccx qubits[16], qubits[45], qubits[46]; -ccx qubits[17], qubits[46], qubits[47]; -ccx qubits[18], qubits[47], qubits[48]; -ccx qubits[19], qubits[48], qubits[49]; -ccx qubits[20], qubits[49], qubits[50]; -ccx qubits[21], qubits[50], qubits[51]; -ccx qubits[22], qubits[51], qubits[52]; -ccx qubits[23], qubits[52], qubits[53]; -ccx qubits[24], qubits[53], qubits[54]; -ccx qubits[25], qubits[54], qubits[55]; -ccx qubits[26], qubits[55], qubits[56]; -ccx qubits[27], qubits[56], qubits[57]; -ccx qubits[28], qubits[57], qubits[58]; -cz qubits[58], qubits[29]; -ccx qubits[28], qubits[57], qubits[58]; -ccx qubits[27], qubits[56], qubits[57]; -ccx qubits[26], qubits[55], qubits[56]; -ccx qubits[25], qubits[54], qubits[55]; -ccx qubits[24], qubits[53], qubits[54]; -ccx qubits[23], qubits[52], qubits[53]; -ccx qubits[22], qubits[51], qubits[52]; -ccx qubits[21], qubits[50], qubits[51]; -ccx qubits[20], qubits[49], qubits[50]; -ccx qubits[19], qubits[48], qubits[49]; -ccx qubits[18], qubits[47], qubits[48]; -ccx qubits[17], qubits[46], qubits[47]; -ccx qubits[16], qubits[45], qubits[46]; -ccx qubits[15], qubits[44], qubits[45]; -ccx qubits[14], qubits[43], qubits[44]; -ccx qubits[13], qubits[42], qubits[43]; -ccx qubits[12], qubits[41], qubits[42]; -ccx qubits[11], qubits[40], qubits[41]; -ccx qubits[10], qubits[39], qubits[40]; -ccx qubits[9], qubits[38], qubits[39]; -ccx qubits[8], qubits[37], qubits[38]; -ccx qubits[7], qubits[36], qubits[37]; -ccx qubits[6], qubits[35], qubits[36]; -ccx qubits[5], qubits[34], qubits[35]; -ccx qubits[4], qubits[33], qubits[34]; -ccx qubits[3], qubits[32], qubits[33]; -ccx qubits[2], qubits[31], qubits[32]; -ccx qubits[0], qubits[1], qubits[31]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +cz qubits[56], qubits[57]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -91,179 +91,179 @@ x qubits[26]; x qubits[28]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -ccx qubits[0], qubits[1], qubits[31]; -ccx qubits[2], qubits[31], qubits[32]; -ccx qubits[3], qubits[32], qubits[33]; -ccx qubits[4], qubits[33], qubits[34]; -ccx qubits[5], qubits[34], qubits[35]; -ccx qubits[6], qubits[35], qubits[36]; -ccx qubits[7], qubits[36], qubits[37]; -ccx qubits[8], qubits[37], qubits[38]; -ccx qubits[9], qubits[38], qubits[39]; -ccx qubits[10], qubits[39], qubits[40]; -ccx qubits[11], qubits[40], qubits[41]; -ccx qubits[12], qubits[41], qubits[42]; -ccx qubits[13], qubits[42], qubits[43]; -ccx qubits[14], qubits[43], qubits[44]; -ccx qubits[15], qubits[44], qubits[45]; -ccx qubits[16], qubits[45], qubits[46]; -ccx qubits[17], qubits[46], qubits[47]; -ccx qubits[18], qubits[47], qubits[48]; -ccx qubits[19], qubits[48], qubits[49]; -ccx qubits[20], qubits[49], qubits[50]; -ccx qubits[21], qubits[50], qubits[51]; -ccx qubits[22], qubits[51], qubits[52]; -ccx qubits[23], qubits[52], qubits[53]; -ccx qubits[24], qubits[53], qubits[54]; -ccx qubits[25], qubits[54], qubits[55]; -ccx qubits[26], qubits[55], qubits[56]; -ccx qubits[27], qubits[56], qubits[57]; -ccx qubits[28], qubits[57], qubits[58]; -cz qubits[58], qubits[29]; -ccx qubits[28], qubits[57], qubits[58]; -ccx qubits[27], qubits[56], qubits[57]; -ccx qubits[26], qubits[55], qubits[56]; -ccx qubits[25], qubits[54], qubits[55]; -ccx qubits[24], qubits[53], qubits[54]; -ccx qubits[23], qubits[52], qubits[53]; -ccx qubits[22], qubits[51], qubits[52]; -ccx qubits[21], qubits[50], qubits[51]; -ccx qubits[20], qubits[49], qubits[50]; -ccx qubits[19], qubits[48], qubits[49]; -ccx qubits[18], qubits[47], qubits[48]; -ccx qubits[17], qubits[46], qubits[47]; -ccx qubits[16], qubits[45], qubits[46]; -ccx qubits[15], qubits[44], qubits[45]; -ccx qubits[14], qubits[43], qubits[44]; -ccx qubits[13], qubits[42], qubits[43]; -ccx qubits[12], qubits[41], qubits[42]; -ccx qubits[11], qubits[40], qubits[41]; -ccx qubits[10], qubits[39], qubits[40]; -ccx qubits[9], qubits[38], qubits[39]; -ccx qubits[8], qubits[37], qubits[38]; -ccx qubits[7], qubits[36], qubits[37]; -ccx qubits[6], qubits[35], qubits[36]; -ccx qubits[5], qubits[34], qubits[35]; -ccx qubits[4], qubits[33], qubits[34]; -ccx qubits[3], qubits[32], qubits[33]; -ccx qubits[2], qubits[31], qubits[32]; -ccx qubits[0], qubits[1], qubits[31]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +cz qubits[56], qubits[57]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -z qubits[30]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +z qubits[58]; diff --git a/benchmarks/all/OEGrover/30/post.hsl b/benchmarks/all/OEGrover/30/post.hsl index aabf6d10c..402e699de 100644 --- a/benchmarks/all/OEGrover/30/post.hsl +++ b/benchmarks/all/OEGrover/30/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101100000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 14 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/30/post.lsta b/benchmarks/all/OEGrover/30/post.lsta deleted file mode 100644 index 833b5fe22..000000000 --- a/benchmarks/all/OEGrover/30/post.lsta +++ /dev/null @@ -1,157 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 62) -> 59 -[31,1](61, 63) -> 60 -[32,1](64, 64) -> 61 -[32,1](65, 64) -> 62 -[32,1](66, 64) -> 63 -[33,1](67, 67) -> 64 -[33,1](68, 67) -> 65 -[33,1](69, 67) -> 66 -[34,1](70, 70) -> 67 -[34,1](71, 70) -> 68 -[34,1](72, 70) -> 69 -[35,1](73, 73) -> 70 -[35,1](74, 73) -> 71 -[35,1](75, 73) -> 72 -[36,1](76, 76) -> 73 -[36,1](77, 76) -> 74 -[36,1](78, 76) -> 75 -[37,1](79, 79) -> 76 -[37,1](80, 79) -> 77 -[37,1](81, 79) -> 78 -[38,1](82, 82) -> 79 -[38,1](83, 82) -> 80 -[38,1](84, 82) -> 81 -[39,1](85, 85) -> 82 -[39,1](86, 85) -> 83 -[39,1](87, 85) -> 84 -[40,1](88, 88) -> 85 -[40,1](89, 88) -> 86 -[40,1](90, 88) -> 87 -[41,1](91, 91) -> 88 -[41,1](92, 91) -> 89 -[41,1](93, 91) -> 90 -[42,1](94, 94) -> 91 -[42,1](95, 94) -> 92 -[42,1](96, 94) -> 93 -[43,1](97, 97) -> 94 -[43,1](98, 97) -> 95 -[43,1](99, 97) -> 96 -[44,1](100, 100) -> 97 -[44,1](101, 100) -> 98 -[44,1](102, 100) -> 99 -[45,1](103, 103) -> 100 -[45,1](104, 103) -> 101 -[45,1](105, 103) -> 102 -[46,1](106, 106) -> 103 -[46,1](107, 106) -> 104 -[46,1](108, 106) -> 105 -[47,1](109, 109) -> 106 -[47,1](110, 109) -> 107 -[47,1](111, 109) -> 108 -[48,1](112, 112) -> 109 -[48,1](113, 112) -> 110 -[48,1](114, 112) -> 111 -[49,1](115, 115) -> 112 -[49,1](116, 115) -> 113 -[49,1](117, 115) -> 114 -[50,1](118, 118) -> 115 -[50,1](119, 118) -> 116 -[50,1](120, 118) -> 117 -[51,1](121, 121) -> 118 -[51,1](122, 121) -> 119 -[51,1](123, 121) -> 120 -[52,1](124, 124) -> 121 -[52,1](125, 124) -> 122 -[52,1](126, 124) -> 123 -[53,1](127, 127) -> 124 -[53,1](128, 127) -> 125 -[53,1](129, 127) -> 126 -[54,1](130, 130) -> 127 -[54,1](131, 130) -> 128 -[54,1](132, 130) -> 129 -[55,1](133, 133) -> 130 -[55,1](134, 133) -> 131 -[55,1](135, 133) -> 132 -[56,1](136, 136) -> 133 -[56,1](137, 136) -> 134 -[56,1](138, 136) -> 135 -[57,1](139, 139) -> 136 -[57,1](140, 139) -> 137 -[57,1](141, 139) -> 138 -[58,1](142, 142) -> 139 -[58,1](143, 142) -> 140 -[58,1](144, 142) -> 141 -[59,1](145, 145) -> 142 -[59,1](146, 145) -> 143 -[59,1](147, 145) -> 144 -[60,1](148, 148) -> 145 -[60,1](149, 148) -> 146 -[60,1](150, 148) -> 147 -[p1,1] -> 148 -[p2,1] -> 149 -[p3,1] -> 150 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/30/pre.hsl b/benchmarks/all/OEGrover/30/pre.hsl index 184fb914e..64fb98556 100644 --- a/benchmarks/all/OEGrover/30/pre.hsl +++ b/benchmarks/all/OEGrover/30/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101> + a |*> # |100000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 14 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1073741823 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/30/pre.lsta b/benchmarks/all/OEGrover/30/pre.lsta deleted file mode 100644 index d8153669d..000000000 --- a/benchmarks/all/OEGrover/30/pre.lsta +++ /dev/null @@ -1,161 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 62) -> 59 -[31,1](61, 63) -> 60 -[32,1](64, 64) -> 61 -[32,1](65, 64) -> 62 -[32,1](66, 64) -> 63 -[33,1](67, 67) -> 64 -[33,1](68, 67) -> 65 -[33,1](69, 67) -> 66 -[34,1](70, 70) -> 67 -[34,1](71, 70) -> 68 -[34,1](72, 70) -> 69 -[35,1](73, 73) -> 70 -[35,1](74, 73) -> 71 -[35,1](75, 73) -> 72 -[36,1](76, 76) -> 73 -[36,1](77, 76) -> 74 -[36,1](78, 76) -> 75 -[37,1](79, 79) -> 76 -[37,1](80, 79) -> 77 -[37,1](81, 79) -> 78 -[38,1](82, 82) -> 79 -[38,1](83, 82) -> 80 -[38,1](84, 82) -> 81 -[39,1](85, 85) -> 82 -[39,1](86, 85) -> 83 -[39,1](87, 85) -> 84 -[40,1](88, 88) -> 85 -[40,1](89, 88) -> 86 -[40,1](90, 88) -> 87 -[41,1](91, 91) -> 88 -[41,1](92, 91) -> 89 -[41,1](93, 91) -> 90 -[42,1](94, 94) -> 91 -[42,1](95, 94) -> 92 -[42,1](96, 94) -> 93 -[43,1](97, 97) -> 94 -[43,1](98, 97) -> 95 -[43,1](99, 97) -> 96 -[44,1](100, 100) -> 97 -[44,1](101, 100) -> 98 -[44,1](102, 100) -> 99 -[45,1](103, 103) -> 100 -[45,1](104, 103) -> 101 -[45,1](105, 103) -> 102 -[46,1](106, 106) -> 103 -[46,1](107, 106) -> 104 -[46,1](108, 106) -> 105 -[47,1](109, 109) -> 106 -[47,1](110, 109) -> 107 -[47,1](111, 109) -> 108 -[48,1](112, 112) -> 109 -[48,1](113, 112) -> 110 -[48,1](114, 112) -> 111 -[49,1](115, 115) -> 112 -[49,1](116, 115) -> 113 -[49,1](117, 115) -> 114 -[50,1](118, 118) -> 115 -[50,1](119, 118) -> 116 -[50,1](120, 118) -> 117 -[51,1](121, 121) -> 118 -[51,1](122, 121) -> 119 -[51,1](123, 121) -> 120 -[52,1](124, 124) -> 121 -[52,1](125, 124) -> 122 -[52,1](126, 124) -> 123 -[53,1](127, 127) -> 124 -[53,1](128, 127) -> 125 -[53,1](129, 127) -> 126 -[54,1](130, 130) -> 127 -[54,1](131, 130) -> 128 -[54,1](132, 130) -> 129 -[55,1](133, 133) -> 130 -[55,1](134, 133) -> 131 -[55,1](135, 133) -> 132 -[56,1](136, 136) -> 133 -[56,1](137, 136) -> 134 -[56,1](138, 136) -> 135 -[57,1](139, 139) -> 136 -[57,1](140, 139) -> 137 -[57,1](141, 139) -> 138 -[58,1](142, 142) -> 139 -[58,1](143, 142) -> 140 -[58,1](144, 142) -> 141 -[59,1](145, 145) -> 142 -[59,1](146, 145) -> 143 -[59,1](147, 145) -> 144 -[60,1](148, 148) -> 145 -[60,1](149, 148) -> 146 -[60,1](150, 148) -> 147 -[c0,1] -> 148 -[a,1] -> 149 -[b,1] -> 150 -Constraints -1073741823 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/31/circuit.qasm b/benchmarks/all/OEGrover/31/circuit.qasm index e41c5594f..3cb65d4c7 100644 --- a/benchmarks/all/OEGrover/31/circuit.qasm +++ b/benchmarks/all/OEGrover/31/circuit.qasm @@ -1,82 +1,82 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[62]; +qreg qubits[61]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -ccx qubits[0], qubits[1], qubits[32]; -ccx qubits[2], qubits[32], qubits[33]; -ccx qubits[3], qubits[33], qubits[34]; -ccx qubits[4], qubits[34], qubits[35]; -ccx qubits[5], qubits[35], qubits[36]; -ccx qubits[6], qubits[36], qubits[37]; -ccx qubits[7], qubits[37], qubits[38]; -ccx qubits[8], qubits[38], qubits[39]; -ccx qubits[9], qubits[39], qubits[40]; -ccx qubits[10], qubits[40], qubits[41]; -ccx qubits[11], qubits[41], qubits[42]; -ccx qubits[12], qubits[42], qubits[43]; -ccx qubits[13], qubits[43], qubits[44]; -ccx qubits[14], qubits[44], qubits[45]; -ccx qubits[15], qubits[45], qubits[46]; -ccx qubits[16], qubits[46], qubits[47]; -ccx qubits[17], qubits[47], qubits[48]; -ccx qubits[18], qubits[48], qubits[49]; -ccx qubits[19], qubits[49], qubits[50]; -ccx qubits[20], qubits[50], qubits[51]; -ccx qubits[21], qubits[51], qubits[52]; -ccx qubits[22], qubits[52], qubits[53]; -ccx qubits[23], qubits[53], qubits[54]; -ccx qubits[24], qubits[54], qubits[55]; -ccx qubits[25], qubits[55], qubits[56]; -ccx qubits[26], qubits[56], qubits[57]; -ccx qubits[27], qubits[57], qubits[58]; -ccx qubits[28], qubits[58], qubits[59]; -ccx qubits[29], qubits[59], qubits[60]; -cz qubits[60], qubits[30]; -ccx qubits[29], qubits[59], qubits[60]; -ccx qubits[28], qubits[58], qubits[59]; -ccx qubits[27], qubits[57], qubits[58]; -ccx qubits[26], qubits[56], qubits[57]; -ccx qubits[25], qubits[55], qubits[56]; -ccx qubits[24], qubits[54], qubits[55]; -ccx qubits[23], qubits[53], qubits[54]; -ccx qubits[22], qubits[52], qubits[53]; -ccx qubits[21], qubits[51], qubits[52]; -ccx qubits[20], qubits[50], qubits[51]; -ccx qubits[19], qubits[49], qubits[50]; -ccx qubits[18], qubits[48], qubits[49]; -ccx qubits[17], qubits[47], qubits[48]; -ccx qubits[16], qubits[46], qubits[47]; -ccx qubits[15], qubits[45], qubits[46]; -ccx qubits[14], qubits[44], qubits[45]; -ccx qubits[13], qubits[43], qubits[44]; -ccx qubits[12], qubits[42], qubits[43]; -ccx qubits[11], qubits[41], qubits[42]; -ccx qubits[10], qubits[40], qubits[41]; -ccx qubits[9], qubits[39], qubits[40]; -ccx qubits[8], qubits[38], qubits[39]; -ccx qubits[7], qubits[37], qubits[38]; -ccx qubits[6], qubits[36], qubits[37]; -ccx qubits[5], qubits[35], qubits[36]; -ccx qubits[4], qubits[34], qubits[35]; -ccx qubits[3], qubits[33], qubits[34]; -ccx qubits[2], qubits[32], qubits[33]; -ccx qubits[0], qubits[1], qubits[32]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +cz qubits[58], qubits[59]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -95,185 +95,185 @@ x qubits[28]; x qubits[30]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; -ccx qubits[0], qubits[1], qubits[32]; -ccx qubits[2], qubits[32], qubits[33]; -ccx qubits[3], qubits[33], qubits[34]; -ccx qubits[4], qubits[34], qubits[35]; -ccx qubits[5], qubits[35], qubits[36]; -ccx qubits[6], qubits[36], qubits[37]; -ccx qubits[7], qubits[37], qubits[38]; -ccx qubits[8], qubits[38], qubits[39]; -ccx qubits[9], qubits[39], qubits[40]; -ccx qubits[10], qubits[40], qubits[41]; -ccx qubits[11], qubits[41], qubits[42]; -ccx qubits[12], qubits[42], qubits[43]; -ccx qubits[13], qubits[43], qubits[44]; -ccx qubits[14], qubits[44], qubits[45]; -ccx qubits[15], qubits[45], qubits[46]; -ccx qubits[16], qubits[46], qubits[47]; -ccx qubits[17], qubits[47], qubits[48]; -ccx qubits[18], qubits[48], qubits[49]; -ccx qubits[19], qubits[49], qubits[50]; -ccx qubits[20], qubits[50], qubits[51]; -ccx qubits[21], qubits[51], qubits[52]; -ccx qubits[22], qubits[52], qubits[53]; -ccx qubits[23], qubits[53], qubits[54]; -ccx qubits[24], qubits[54], qubits[55]; -ccx qubits[25], qubits[55], qubits[56]; -ccx qubits[26], qubits[56], qubits[57]; -ccx qubits[27], qubits[57], qubits[58]; -ccx qubits[28], qubits[58], qubits[59]; -ccx qubits[29], qubits[59], qubits[60]; -cz qubits[60], qubits[30]; -ccx qubits[29], qubits[59], qubits[60]; -ccx qubits[28], qubits[58], qubits[59]; -ccx qubits[27], qubits[57], qubits[58]; -ccx qubits[26], qubits[56], qubits[57]; -ccx qubits[25], qubits[55], qubits[56]; -ccx qubits[24], qubits[54], qubits[55]; -ccx qubits[23], qubits[53], qubits[54]; -ccx qubits[22], qubits[52], qubits[53]; -ccx qubits[21], qubits[51], qubits[52]; -ccx qubits[20], qubits[50], qubits[51]; -ccx qubits[19], qubits[49], qubits[50]; -ccx qubits[18], qubits[48], qubits[49]; -ccx qubits[17], qubits[47], qubits[48]; -ccx qubits[16], qubits[46], qubits[47]; -ccx qubits[15], qubits[45], qubits[46]; -ccx qubits[14], qubits[44], qubits[45]; -ccx qubits[13], qubits[43], qubits[44]; -ccx qubits[12], qubits[42], qubits[43]; -ccx qubits[11], qubits[41], qubits[42]; -ccx qubits[10], qubits[40], qubits[41]; -ccx qubits[9], qubits[39], qubits[40]; -ccx qubits[8], qubits[38], qubits[39]; -ccx qubits[7], qubits[37], qubits[38]; -ccx qubits[6], qubits[36], qubits[37]; -ccx qubits[5], qubits[35], qubits[36]; -ccx qubits[4], qubits[34], qubits[35]; -ccx qubits[3], qubits[33], qubits[34]; -ccx qubits[2], qubits[32], qubits[33]; -ccx qubits[0], qubits[1], qubits[32]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +cz qubits[58], qubits[59]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; +x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; -z qubits[31]; +h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +z qubits[60]; diff --git a/benchmarks/all/OEGrover/31/post.hsl b/benchmarks/all/OEGrover/31/post.hsl index 39a1151d9..715e18996 100644 --- a/benchmarks/all/OEGrover/31/post.hsl +++ b/benchmarks/all/OEGrover/31/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 14 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/31/post.lsta b/benchmarks/all/OEGrover/31/post.lsta deleted file mode 100644 index b0c3ea667..000000000 --- a/benchmarks/all/OEGrover/31/post.lsta +++ /dev/null @@ -1,162 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 64) -> 61 -[32,1](63, 65) -> 62 -[33,1](66, 66) -> 63 -[33,1](67, 66) -> 64 -[33,1](68, 66) -> 65 -[34,1](69, 69) -> 66 -[34,1](70, 69) -> 67 -[34,1](71, 69) -> 68 -[35,1](72, 72) -> 69 -[35,1](73, 72) -> 70 -[35,1](74, 72) -> 71 -[36,1](75, 75) -> 72 -[36,1](76, 75) -> 73 -[36,1](77, 75) -> 74 -[37,1](78, 78) -> 75 -[37,1](79, 78) -> 76 -[37,1](80, 78) -> 77 -[38,1](81, 81) -> 78 -[38,1](82, 81) -> 79 -[38,1](83, 81) -> 80 -[39,1](84, 84) -> 81 -[39,1](85, 84) -> 82 -[39,1](86, 84) -> 83 -[40,1](87, 87) -> 84 -[40,1](88, 87) -> 85 -[40,1](89, 87) -> 86 -[41,1](90, 90) -> 87 -[41,1](91, 90) -> 88 -[41,1](92, 90) -> 89 -[42,1](93, 93) -> 90 -[42,1](94, 93) -> 91 -[42,1](95, 93) -> 92 -[43,1](96, 96) -> 93 -[43,1](97, 96) -> 94 -[43,1](98, 96) -> 95 -[44,1](99, 99) -> 96 -[44,1](100, 99) -> 97 -[44,1](101, 99) -> 98 -[45,1](102, 102) -> 99 -[45,1](103, 102) -> 100 -[45,1](104, 102) -> 101 -[46,1](105, 105) -> 102 -[46,1](106, 105) -> 103 -[46,1](107, 105) -> 104 -[47,1](108, 108) -> 105 -[47,1](109, 108) -> 106 -[47,1](110, 108) -> 107 -[48,1](111, 111) -> 108 -[48,1](112, 111) -> 109 -[48,1](113, 111) -> 110 -[49,1](114, 114) -> 111 -[49,1](115, 114) -> 112 -[49,1](116, 114) -> 113 -[50,1](117, 117) -> 114 -[50,1](118, 117) -> 115 -[50,1](119, 117) -> 116 -[51,1](120, 120) -> 117 -[51,1](121, 120) -> 118 -[51,1](122, 120) -> 119 -[52,1](123, 123) -> 120 -[52,1](124, 123) -> 121 -[52,1](125, 123) -> 122 -[53,1](126, 126) -> 123 -[53,1](127, 126) -> 124 -[53,1](128, 126) -> 125 -[54,1](129, 129) -> 126 -[54,1](130, 129) -> 127 -[54,1](131, 129) -> 128 -[55,1](132, 132) -> 129 -[55,1](133, 132) -> 130 -[55,1](134, 132) -> 131 -[56,1](135, 135) -> 132 -[56,1](136, 135) -> 133 -[56,1](137, 135) -> 134 -[57,1](138, 138) -> 135 -[57,1](139, 138) -> 136 -[57,1](140, 138) -> 137 -[58,1](141, 141) -> 138 -[58,1](142, 141) -> 139 -[58,1](143, 141) -> 140 -[59,1](144, 144) -> 141 -[59,1](145, 144) -> 142 -[59,1](146, 144) -> 143 -[60,1](147, 147) -> 144 -[60,1](148, 147) -> 145 -[60,1](149, 147) -> 146 -[61,1](150, 150) -> 147 -[61,1](151, 150) -> 148 -[61,1](152, 150) -> 149 -[62,1](153, 153) -> 150 -[62,1](154, 153) -> 151 -[62,1](155, 153) -> 152 -[p1,1] -> 153 -[p2,1] -> 154 -[p3,1] -> 155 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/31/pre.hsl b/benchmarks/all/OEGrover/31/pre.hsl index eaf6b821f..f7d495fec 100644 --- a/benchmarks/all/OEGrover/31/pre.hsl +++ b/benchmarks/all/OEGrover/31/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010> + a |*> # |1000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 14 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 2147483647 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/31/pre.lsta b/benchmarks/all/OEGrover/31/pre.lsta deleted file mode 100644 index 405855c70..000000000 --- a/benchmarks/all/OEGrover/31/pre.lsta +++ /dev/null @@ -1,166 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 64) -> 61 -[32,1](63, 65) -> 62 -[33,1](66, 66) -> 63 -[33,1](67, 66) -> 64 -[33,1](68, 66) -> 65 -[34,1](69, 69) -> 66 -[34,1](70, 69) -> 67 -[34,1](71, 69) -> 68 -[35,1](72, 72) -> 69 -[35,1](73, 72) -> 70 -[35,1](74, 72) -> 71 -[36,1](75, 75) -> 72 -[36,1](76, 75) -> 73 -[36,1](77, 75) -> 74 -[37,1](78, 78) -> 75 -[37,1](79, 78) -> 76 -[37,1](80, 78) -> 77 -[38,1](81, 81) -> 78 -[38,1](82, 81) -> 79 -[38,1](83, 81) -> 80 -[39,1](84, 84) -> 81 -[39,1](85, 84) -> 82 -[39,1](86, 84) -> 83 -[40,1](87, 87) -> 84 -[40,1](88, 87) -> 85 -[40,1](89, 87) -> 86 -[41,1](90, 90) -> 87 -[41,1](91, 90) -> 88 -[41,1](92, 90) -> 89 -[42,1](93, 93) -> 90 -[42,1](94, 93) -> 91 -[42,1](95, 93) -> 92 -[43,1](96, 96) -> 93 -[43,1](97, 96) -> 94 -[43,1](98, 96) -> 95 -[44,1](99, 99) -> 96 -[44,1](100, 99) -> 97 -[44,1](101, 99) -> 98 -[45,1](102, 102) -> 99 -[45,1](103, 102) -> 100 -[45,1](104, 102) -> 101 -[46,1](105, 105) -> 102 -[46,1](106, 105) -> 103 -[46,1](107, 105) -> 104 -[47,1](108, 108) -> 105 -[47,1](109, 108) -> 106 -[47,1](110, 108) -> 107 -[48,1](111, 111) -> 108 -[48,1](112, 111) -> 109 -[48,1](113, 111) -> 110 -[49,1](114, 114) -> 111 -[49,1](115, 114) -> 112 -[49,1](116, 114) -> 113 -[50,1](117, 117) -> 114 -[50,1](118, 117) -> 115 -[50,1](119, 117) -> 116 -[51,1](120, 120) -> 117 -[51,1](121, 120) -> 118 -[51,1](122, 120) -> 119 -[52,1](123, 123) -> 120 -[52,1](124, 123) -> 121 -[52,1](125, 123) -> 122 -[53,1](126, 126) -> 123 -[53,1](127, 126) -> 124 -[53,1](128, 126) -> 125 -[54,1](129, 129) -> 126 -[54,1](130, 129) -> 127 -[54,1](131, 129) -> 128 -[55,1](132, 132) -> 129 -[55,1](133, 132) -> 130 -[55,1](134, 132) -> 131 -[56,1](135, 135) -> 132 -[56,1](136, 135) -> 133 -[56,1](137, 135) -> 134 -[57,1](138, 138) -> 135 -[57,1](139, 138) -> 136 -[57,1](140, 138) -> 137 -[58,1](141, 141) -> 138 -[58,1](142, 141) -> 139 -[58,1](143, 141) -> 140 -[59,1](144, 144) -> 141 -[59,1](145, 144) -> 142 -[59,1](146, 144) -> 143 -[60,1](147, 147) -> 144 -[60,1](148, 147) -> 145 -[60,1](149, 147) -> 146 -[61,1](150, 150) -> 147 -[61,1](151, 150) -> 148 -[61,1](152, 150) -> 149 -[62,1](153, 153) -> 150 -[62,1](154, 153) -> 151 -[62,1](155, 153) -> 152 -[c0,1] -> 153 -[a,1] -> 154 -[b,1] -> 155 -Constraints -2147483647 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/32/circuit.qasm b/benchmarks/all/OEGrover/32/circuit.qasm index 4d684dd5a..b9dea8afc 100644 --- a/benchmarks/all/OEGrover/32/circuit.qasm +++ b/benchmarks/all/OEGrover/32/circuit.qasm @@ -1,84 +1,84 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[64]; +qreg qubits[63]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -ccx qubits[0], qubits[1], qubits[33]; -ccx qubits[2], qubits[33], qubits[34]; -ccx qubits[3], qubits[34], qubits[35]; -ccx qubits[4], qubits[35], qubits[36]; -ccx qubits[5], qubits[36], qubits[37]; -ccx qubits[6], qubits[37], qubits[38]; -ccx qubits[7], qubits[38], qubits[39]; -ccx qubits[8], qubits[39], qubits[40]; -ccx qubits[9], qubits[40], qubits[41]; -ccx qubits[10], qubits[41], qubits[42]; -ccx qubits[11], qubits[42], qubits[43]; -ccx qubits[12], qubits[43], qubits[44]; -ccx qubits[13], qubits[44], qubits[45]; -ccx qubits[14], qubits[45], qubits[46]; -ccx qubits[15], qubits[46], qubits[47]; -ccx qubits[16], qubits[47], qubits[48]; -ccx qubits[17], qubits[48], qubits[49]; -ccx qubits[18], qubits[49], qubits[50]; -ccx qubits[19], qubits[50], qubits[51]; -ccx qubits[20], qubits[51], qubits[52]; -ccx qubits[21], qubits[52], qubits[53]; -ccx qubits[22], qubits[53], qubits[54]; -ccx qubits[23], qubits[54], qubits[55]; -ccx qubits[24], qubits[55], qubits[56]; -ccx qubits[25], qubits[56], qubits[57]; -ccx qubits[26], qubits[57], qubits[58]; -ccx qubits[27], qubits[58], qubits[59]; -ccx qubits[28], qubits[59], qubits[60]; -ccx qubits[29], qubits[60], qubits[61]; -ccx qubits[30], qubits[61], qubits[62]; -cz qubits[62], qubits[31]; -ccx qubits[30], qubits[61], qubits[62]; -ccx qubits[29], qubits[60], qubits[61]; -ccx qubits[28], qubits[59], qubits[60]; -ccx qubits[27], qubits[58], qubits[59]; -ccx qubits[26], qubits[57], qubits[58]; -ccx qubits[25], qubits[56], qubits[57]; -ccx qubits[24], qubits[55], qubits[56]; -ccx qubits[23], qubits[54], qubits[55]; -ccx qubits[22], qubits[53], qubits[54]; -ccx qubits[21], qubits[52], qubits[53]; -ccx qubits[20], qubits[51], qubits[52]; -ccx qubits[19], qubits[50], qubits[51]; -ccx qubits[18], qubits[49], qubits[50]; -ccx qubits[17], qubits[48], qubits[49]; -ccx qubits[16], qubits[47], qubits[48]; -ccx qubits[15], qubits[46], qubits[47]; -ccx qubits[14], qubits[45], qubits[46]; -ccx qubits[13], qubits[44], qubits[45]; -ccx qubits[12], qubits[43], qubits[44]; -ccx qubits[11], qubits[42], qubits[43]; -ccx qubits[10], qubits[41], qubits[42]; -ccx qubits[9], qubits[40], qubits[41]; -ccx qubits[8], qubits[39], qubits[40]; -ccx qubits[7], qubits[38], qubits[39]; -ccx qubits[6], qubits[37], qubits[38]; -ccx qubits[5], qubits[36], qubits[37]; -ccx qubits[4], qubits[35], qubits[36]; -ccx qubits[3], qubits[34], qubits[35]; -ccx qubits[2], qubits[33], qubits[34]; -ccx qubits[0], qubits[1], qubits[33]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +cz qubits[60], qubits[61]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -97,191 +97,191 @@ x qubits[28]; x qubits[30]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -ccx qubits[0], qubits[1], qubits[33]; -ccx qubits[2], qubits[33], qubits[34]; -ccx qubits[3], qubits[34], qubits[35]; -ccx qubits[4], qubits[35], qubits[36]; -ccx qubits[5], qubits[36], qubits[37]; -ccx qubits[6], qubits[37], qubits[38]; -ccx qubits[7], qubits[38], qubits[39]; -ccx qubits[8], qubits[39], qubits[40]; -ccx qubits[9], qubits[40], qubits[41]; -ccx qubits[10], qubits[41], qubits[42]; -ccx qubits[11], qubits[42], qubits[43]; -ccx qubits[12], qubits[43], qubits[44]; -ccx qubits[13], qubits[44], qubits[45]; -ccx qubits[14], qubits[45], qubits[46]; -ccx qubits[15], qubits[46], qubits[47]; -ccx qubits[16], qubits[47], qubits[48]; -ccx qubits[17], qubits[48], qubits[49]; -ccx qubits[18], qubits[49], qubits[50]; -ccx qubits[19], qubits[50], qubits[51]; -ccx qubits[20], qubits[51], qubits[52]; -ccx qubits[21], qubits[52], qubits[53]; -ccx qubits[22], qubits[53], qubits[54]; -ccx qubits[23], qubits[54], qubits[55]; -ccx qubits[24], qubits[55], qubits[56]; -ccx qubits[25], qubits[56], qubits[57]; -ccx qubits[26], qubits[57], qubits[58]; -ccx qubits[27], qubits[58], qubits[59]; -ccx qubits[28], qubits[59], qubits[60]; -ccx qubits[29], qubits[60], qubits[61]; -ccx qubits[30], qubits[61], qubits[62]; -cz qubits[62], qubits[31]; -ccx qubits[30], qubits[61], qubits[62]; -ccx qubits[29], qubits[60], qubits[61]; -ccx qubits[28], qubits[59], qubits[60]; -ccx qubits[27], qubits[58], qubits[59]; -ccx qubits[26], qubits[57], qubits[58]; -ccx qubits[25], qubits[56], qubits[57]; -ccx qubits[24], qubits[55], qubits[56]; -ccx qubits[23], qubits[54], qubits[55]; -ccx qubits[22], qubits[53], qubits[54]; -ccx qubits[21], qubits[52], qubits[53]; -ccx qubits[20], qubits[51], qubits[52]; -ccx qubits[19], qubits[50], qubits[51]; -ccx qubits[18], qubits[49], qubits[50]; -ccx qubits[17], qubits[48], qubits[49]; -ccx qubits[16], qubits[47], qubits[48]; -ccx qubits[15], qubits[46], qubits[47]; -ccx qubits[14], qubits[45], qubits[46]; -ccx qubits[13], qubits[44], qubits[45]; -ccx qubits[12], qubits[43], qubits[44]; -ccx qubits[11], qubits[42], qubits[43]; -ccx qubits[10], qubits[41], qubits[42]; -ccx qubits[9], qubits[40], qubits[41]; -ccx qubits[8], qubits[39], qubits[40]; -ccx qubits[7], qubits[38], qubits[39]; -ccx qubits[6], qubits[37], qubits[38]; -ccx qubits[5], qubits[36], qubits[37]; -ccx qubits[4], qubits[35], qubits[36]; -ccx qubits[3], qubits[34], qubits[35]; -ccx qubits[2], qubits[33], qubits[34]; -ccx qubits[0], qubits[1], qubits[33]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +cz qubits[60], qubits[61]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -z qubits[32]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +z qubits[62]; diff --git a/benchmarks/all/OEGrover/32/post.hsl b/benchmarks/all/OEGrover/32/post.hsl index 84e54fcb6..77d7d0d31 100644 --- a/benchmarks/all/OEGrover/32/post.hsl +++ b/benchmarks/all/OEGrover/32/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010110000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 15 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/32/post.lsta b/benchmarks/all/OEGrover/32/post.lsta deleted file mode 100644 index ae62e7a87..000000000 --- a/benchmarks/all/OEGrover/32/post.lsta +++ /dev/null @@ -1,167 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 66) -> 63 -[33,1](65, 67) -> 64 -[34,1](68, 68) -> 65 -[34,1](69, 68) -> 66 -[34,1](70, 68) -> 67 -[35,1](71, 71) -> 68 -[35,1](72, 71) -> 69 -[35,1](73, 71) -> 70 -[36,1](74, 74) -> 71 -[36,1](75, 74) -> 72 -[36,1](76, 74) -> 73 -[37,1](77, 77) -> 74 -[37,1](78, 77) -> 75 -[37,1](79, 77) -> 76 -[38,1](80, 80) -> 77 -[38,1](81, 80) -> 78 -[38,1](82, 80) -> 79 -[39,1](83, 83) -> 80 -[39,1](84, 83) -> 81 -[39,1](85, 83) -> 82 -[40,1](86, 86) -> 83 -[40,1](87, 86) -> 84 -[40,1](88, 86) -> 85 -[41,1](89, 89) -> 86 -[41,1](90, 89) -> 87 -[41,1](91, 89) -> 88 -[42,1](92, 92) -> 89 -[42,1](93, 92) -> 90 -[42,1](94, 92) -> 91 -[43,1](95, 95) -> 92 -[43,1](96, 95) -> 93 -[43,1](97, 95) -> 94 -[44,1](98, 98) -> 95 -[44,1](99, 98) -> 96 -[44,1](100, 98) -> 97 -[45,1](101, 101) -> 98 -[45,1](102, 101) -> 99 -[45,1](103, 101) -> 100 -[46,1](104, 104) -> 101 -[46,1](105, 104) -> 102 -[46,1](106, 104) -> 103 -[47,1](107, 107) -> 104 -[47,1](108, 107) -> 105 -[47,1](109, 107) -> 106 -[48,1](110, 110) -> 107 -[48,1](111, 110) -> 108 -[48,1](112, 110) -> 109 -[49,1](113, 113) -> 110 -[49,1](114, 113) -> 111 -[49,1](115, 113) -> 112 -[50,1](116, 116) -> 113 -[50,1](117, 116) -> 114 -[50,1](118, 116) -> 115 -[51,1](119, 119) -> 116 -[51,1](120, 119) -> 117 -[51,1](121, 119) -> 118 -[52,1](122, 122) -> 119 -[52,1](123, 122) -> 120 -[52,1](124, 122) -> 121 -[53,1](125, 125) -> 122 -[53,1](126, 125) -> 123 -[53,1](127, 125) -> 124 -[54,1](128, 128) -> 125 -[54,1](129, 128) -> 126 -[54,1](130, 128) -> 127 -[55,1](131, 131) -> 128 -[55,1](132, 131) -> 129 -[55,1](133, 131) -> 130 -[56,1](134, 134) -> 131 -[56,1](135, 134) -> 132 -[56,1](136, 134) -> 133 -[57,1](137, 137) -> 134 -[57,1](138, 137) -> 135 -[57,1](139, 137) -> 136 -[58,1](140, 140) -> 137 -[58,1](141, 140) -> 138 -[58,1](142, 140) -> 139 -[59,1](143, 143) -> 140 -[59,1](144, 143) -> 141 -[59,1](145, 143) -> 142 -[60,1](146, 146) -> 143 -[60,1](147, 146) -> 144 -[60,1](148, 146) -> 145 -[61,1](149, 149) -> 146 -[61,1](150, 149) -> 147 -[61,1](151, 149) -> 148 -[62,1](152, 152) -> 149 -[62,1](153, 152) -> 150 -[62,1](154, 152) -> 151 -[63,1](155, 155) -> 152 -[63,1](156, 155) -> 153 -[63,1](157, 155) -> 154 -[64,1](158, 158) -> 155 -[64,1](159, 158) -> 156 -[64,1](160, 158) -> 157 -[p1,1] -> 158 -[p2,1] -> 159 -[p3,1] -> 160 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/32/pre.hsl b/benchmarks/all/OEGrover/32/pre.hsl index a8370414d..bdd948515 100644 --- a/benchmarks/all/OEGrover/32/pre.hsl +++ b/benchmarks/all/OEGrover/32/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101> + a |*> # |10000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 15 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 4294967295 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/32/pre.lsta b/benchmarks/all/OEGrover/32/pre.lsta deleted file mode 100644 index d71a8635c..000000000 --- a/benchmarks/all/OEGrover/32/pre.lsta +++ /dev/null @@ -1,171 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 66) -> 63 -[33,1](65, 67) -> 64 -[34,1](68, 68) -> 65 -[34,1](69, 68) -> 66 -[34,1](70, 68) -> 67 -[35,1](71, 71) -> 68 -[35,1](72, 71) -> 69 -[35,1](73, 71) -> 70 -[36,1](74, 74) -> 71 -[36,1](75, 74) -> 72 -[36,1](76, 74) -> 73 -[37,1](77, 77) -> 74 -[37,1](78, 77) -> 75 -[37,1](79, 77) -> 76 -[38,1](80, 80) -> 77 -[38,1](81, 80) -> 78 -[38,1](82, 80) -> 79 -[39,1](83, 83) -> 80 -[39,1](84, 83) -> 81 -[39,1](85, 83) -> 82 -[40,1](86, 86) -> 83 -[40,1](87, 86) -> 84 -[40,1](88, 86) -> 85 -[41,1](89, 89) -> 86 -[41,1](90, 89) -> 87 -[41,1](91, 89) -> 88 -[42,1](92, 92) -> 89 -[42,1](93, 92) -> 90 -[42,1](94, 92) -> 91 -[43,1](95, 95) -> 92 -[43,1](96, 95) -> 93 -[43,1](97, 95) -> 94 -[44,1](98, 98) -> 95 -[44,1](99, 98) -> 96 -[44,1](100, 98) -> 97 -[45,1](101, 101) -> 98 -[45,1](102, 101) -> 99 -[45,1](103, 101) -> 100 -[46,1](104, 104) -> 101 -[46,1](105, 104) -> 102 -[46,1](106, 104) -> 103 -[47,1](107, 107) -> 104 -[47,1](108, 107) -> 105 -[47,1](109, 107) -> 106 -[48,1](110, 110) -> 107 -[48,1](111, 110) -> 108 -[48,1](112, 110) -> 109 -[49,1](113, 113) -> 110 -[49,1](114, 113) -> 111 -[49,1](115, 113) -> 112 -[50,1](116, 116) -> 113 -[50,1](117, 116) -> 114 -[50,1](118, 116) -> 115 -[51,1](119, 119) -> 116 -[51,1](120, 119) -> 117 -[51,1](121, 119) -> 118 -[52,1](122, 122) -> 119 -[52,1](123, 122) -> 120 -[52,1](124, 122) -> 121 -[53,1](125, 125) -> 122 -[53,1](126, 125) -> 123 -[53,1](127, 125) -> 124 -[54,1](128, 128) -> 125 -[54,1](129, 128) -> 126 -[54,1](130, 128) -> 127 -[55,1](131, 131) -> 128 -[55,1](132, 131) -> 129 -[55,1](133, 131) -> 130 -[56,1](134, 134) -> 131 -[56,1](135, 134) -> 132 -[56,1](136, 134) -> 133 -[57,1](137, 137) -> 134 -[57,1](138, 137) -> 135 -[57,1](139, 137) -> 136 -[58,1](140, 140) -> 137 -[58,1](141, 140) -> 138 -[58,1](142, 140) -> 139 -[59,1](143, 143) -> 140 -[59,1](144, 143) -> 141 -[59,1](145, 143) -> 142 -[60,1](146, 146) -> 143 -[60,1](147, 146) -> 144 -[60,1](148, 146) -> 145 -[61,1](149, 149) -> 146 -[61,1](150, 149) -> 147 -[61,1](151, 149) -> 148 -[62,1](152, 152) -> 149 -[62,1](153, 152) -> 150 -[62,1](154, 152) -> 151 -[63,1](155, 155) -> 152 -[63,1](156, 155) -> 153 -[63,1](157, 155) -> 154 -[64,1](158, 158) -> 155 -[64,1](159, 158) -> 156 -[64,1](160, 158) -> 157 -[c0,1] -> 158 -[a,1] -> 159 -[b,1] -> 160 -Constraints -4294967295 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/33/circuit.qasm b/benchmarks/all/OEGrover/33/circuit.qasm index cc2146e42..5893fce85 100644 --- a/benchmarks/all/OEGrover/33/circuit.qasm +++ b/benchmarks/all/OEGrover/33/circuit.qasm @@ -1,87 +1,87 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[66]; +qreg qubits[65]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -ccx qubits[0], qubits[1], qubits[34]; -ccx qubits[2], qubits[34], qubits[35]; -ccx qubits[3], qubits[35], qubits[36]; -ccx qubits[4], qubits[36], qubits[37]; -ccx qubits[5], qubits[37], qubits[38]; -ccx qubits[6], qubits[38], qubits[39]; -ccx qubits[7], qubits[39], qubits[40]; -ccx qubits[8], qubits[40], qubits[41]; -ccx qubits[9], qubits[41], qubits[42]; -ccx qubits[10], qubits[42], qubits[43]; -ccx qubits[11], qubits[43], qubits[44]; -ccx qubits[12], qubits[44], qubits[45]; -ccx qubits[13], qubits[45], qubits[46]; -ccx qubits[14], qubits[46], qubits[47]; -ccx qubits[15], qubits[47], qubits[48]; -ccx qubits[16], qubits[48], qubits[49]; -ccx qubits[17], qubits[49], qubits[50]; -ccx qubits[18], qubits[50], qubits[51]; -ccx qubits[19], qubits[51], qubits[52]; -ccx qubits[20], qubits[52], qubits[53]; -ccx qubits[21], qubits[53], qubits[54]; -ccx qubits[22], qubits[54], qubits[55]; -ccx qubits[23], qubits[55], qubits[56]; -ccx qubits[24], qubits[56], qubits[57]; -ccx qubits[25], qubits[57], qubits[58]; -ccx qubits[26], qubits[58], qubits[59]; -ccx qubits[27], qubits[59], qubits[60]; -ccx qubits[28], qubits[60], qubits[61]; -ccx qubits[29], qubits[61], qubits[62]; -ccx qubits[30], qubits[62], qubits[63]; -ccx qubits[31], qubits[63], qubits[64]; -cz qubits[64], qubits[32]; -ccx qubits[31], qubits[63], qubits[64]; -ccx qubits[30], qubits[62], qubits[63]; -ccx qubits[29], qubits[61], qubits[62]; -ccx qubits[28], qubits[60], qubits[61]; -ccx qubits[27], qubits[59], qubits[60]; -ccx qubits[26], qubits[58], qubits[59]; -ccx qubits[25], qubits[57], qubits[58]; -ccx qubits[24], qubits[56], qubits[57]; -ccx qubits[23], qubits[55], qubits[56]; -ccx qubits[22], qubits[54], qubits[55]; -ccx qubits[21], qubits[53], qubits[54]; -ccx qubits[20], qubits[52], qubits[53]; -ccx qubits[19], qubits[51], qubits[52]; -ccx qubits[18], qubits[50], qubits[51]; -ccx qubits[17], qubits[49], qubits[50]; -ccx qubits[16], qubits[48], qubits[49]; -ccx qubits[15], qubits[47], qubits[48]; -ccx qubits[14], qubits[46], qubits[47]; -ccx qubits[13], qubits[45], qubits[46]; -ccx qubits[12], qubits[44], qubits[45]; -ccx qubits[11], qubits[43], qubits[44]; -ccx qubits[10], qubits[42], qubits[43]; -ccx qubits[9], qubits[41], qubits[42]; -ccx qubits[8], qubits[40], qubits[41]; -ccx qubits[7], qubits[39], qubits[40]; -ccx qubits[6], qubits[38], qubits[39]; -ccx qubits[5], qubits[37], qubits[38]; -ccx qubits[4], qubits[36], qubits[37]; -ccx qubits[3], qubits[35], qubits[36]; -ccx qubits[2], qubits[34], qubits[35]; -ccx qubits[0], qubits[1], qubits[34]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +cz qubits[62], qubits[63]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -101,197 +101,197 @@ x qubits[30]; x qubits[32]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; -ccx qubits[0], qubits[1], qubits[34]; -ccx qubits[2], qubits[34], qubits[35]; -ccx qubits[3], qubits[35], qubits[36]; -ccx qubits[4], qubits[36], qubits[37]; -ccx qubits[5], qubits[37], qubits[38]; -ccx qubits[6], qubits[38], qubits[39]; -ccx qubits[7], qubits[39], qubits[40]; -ccx qubits[8], qubits[40], qubits[41]; -ccx qubits[9], qubits[41], qubits[42]; -ccx qubits[10], qubits[42], qubits[43]; -ccx qubits[11], qubits[43], qubits[44]; -ccx qubits[12], qubits[44], qubits[45]; -ccx qubits[13], qubits[45], qubits[46]; -ccx qubits[14], qubits[46], qubits[47]; -ccx qubits[15], qubits[47], qubits[48]; -ccx qubits[16], qubits[48], qubits[49]; -ccx qubits[17], qubits[49], qubits[50]; -ccx qubits[18], qubits[50], qubits[51]; -ccx qubits[19], qubits[51], qubits[52]; -ccx qubits[20], qubits[52], qubits[53]; -ccx qubits[21], qubits[53], qubits[54]; -ccx qubits[22], qubits[54], qubits[55]; -ccx qubits[23], qubits[55], qubits[56]; -ccx qubits[24], qubits[56], qubits[57]; -ccx qubits[25], qubits[57], qubits[58]; -ccx qubits[26], qubits[58], qubits[59]; -ccx qubits[27], qubits[59], qubits[60]; -ccx qubits[28], qubits[60], qubits[61]; -ccx qubits[29], qubits[61], qubits[62]; -ccx qubits[30], qubits[62], qubits[63]; -ccx qubits[31], qubits[63], qubits[64]; -cz qubits[64], qubits[32]; -ccx qubits[31], qubits[63], qubits[64]; -ccx qubits[30], qubits[62], qubits[63]; -ccx qubits[29], qubits[61], qubits[62]; -ccx qubits[28], qubits[60], qubits[61]; -ccx qubits[27], qubits[59], qubits[60]; -ccx qubits[26], qubits[58], qubits[59]; -ccx qubits[25], qubits[57], qubits[58]; -ccx qubits[24], qubits[56], qubits[57]; -ccx qubits[23], qubits[55], qubits[56]; -ccx qubits[22], qubits[54], qubits[55]; -ccx qubits[21], qubits[53], qubits[54]; -ccx qubits[20], qubits[52], qubits[53]; -ccx qubits[19], qubits[51], qubits[52]; -ccx qubits[18], qubits[50], qubits[51]; -ccx qubits[17], qubits[49], qubits[50]; -ccx qubits[16], qubits[48], qubits[49]; -ccx qubits[15], qubits[47], qubits[48]; -ccx qubits[14], qubits[46], qubits[47]; -ccx qubits[13], qubits[45], qubits[46]; -ccx qubits[12], qubits[44], qubits[45]; -ccx qubits[11], qubits[43], qubits[44]; -ccx qubits[10], qubits[42], qubits[43]; -ccx qubits[9], qubits[41], qubits[42]; -ccx qubits[8], qubits[40], qubits[41]; -ccx qubits[7], qubits[39], qubits[40]; -ccx qubits[6], qubits[38], qubits[39]; -ccx qubits[5], qubits[37], qubits[38]; -ccx qubits[4], qubits[36], qubits[37]; -ccx qubits[3], qubits[35], qubits[36]; -ccx qubits[2], qubits[34], qubits[35]; -ccx qubits[0], qubits[1], qubits[34]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +cz qubits[62], qubits[63]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; +x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; -z qubits[33]; +h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +z qubits[64]; diff --git a/benchmarks/all/OEGrover/33/post.hsl b/benchmarks/all/OEGrover/33/post.hsl index f8ea7de43..1f38d0883 100644 --- a/benchmarks/all/OEGrover/33/post.hsl +++ b/benchmarks/all/OEGrover/33/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010100000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 15 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/33/post.lsta b/benchmarks/all/OEGrover/33/post.lsta deleted file mode 100644 index ef0e69c7a..000000000 --- a/benchmarks/all/OEGrover/33/post.lsta +++ /dev/null @@ -1,172 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 68) -> 65 -[34,1](67, 69) -> 66 -[35,1](70, 70) -> 67 -[35,1](71, 70) -> 68 -[35,1](72, 70) -> 69 -[36,1](73, 73) -> 70 -[36,1](74, 73) -> 71 -[36,1](75, 73) -> 72 -[37,1](76, 76) -> 73 -[37,1](77, 76) -> 74 -[37,1](78, 76) -> 75 -[38,1](79, 79) -> 76 -[38,1](80, 79) -> 77 -[38,1](81, 79) -> 78 -[39,1](82, 82) -> 79 -[39,1](83, 82) -> 80 -[39,1](84, 82) -> 81 -[40,1](85, 85) -> 82 -[40,1](86, 85) -> 83 -[40,1](87, 85) -> 84 -[41,1](88, 88) -> 85 -[41,1](89, 88) -> 86 -[41,1](90, 88) -> 87 -[42,1](91, 91) -> 88 -[42,1](92, 91) -> 89 -[42,1](93, 91) -> 90 -[43,1](94, 94) -> 91 -[43,1](95, 94) -> 92 -[43,1](96, 94) -> 93 -[44,1](97, 97) -> 94 -[44,1](98, 97) -> 95 -[44,1](99, 97) -> 96 -[45,1](100, 100) -> 97 -[45,1](101, 100) -> 98 -[45,1](102, 100) -> 99 -[46,1](103, 103) -> 100 -[46,1](104, 103) -> 101 -[46,1](105, 103) -> 102 -[47,1](106, 106) -> 103 -[47,1](107, 106) -> 104 -[47,1](108, 106) -> 105 -[48,1](109, 109) -> 106 -[48,1](110, 109) -> 107 -[48,1](111, 109) -> 108 -[49,1](112, 112) -> 109 -[49,1](113, 112) -> 110 -[49,1](114, 112) -> 111 -[50,1](115, 115) -> 112 -[50,1](116, 115) -> 113 -[50,1](117, 115) -> 114 -[51,1](118, 118) -> 115 -[51,1](119, 118) -> 116 -[51,1](120, 118) -> 117 -[52,1](121, 121) -> 118 -[52,1](122, 121) -> 119 -[52,1](123, 121) -> 120 -[53,1](124, 124) -> 121 -[53,1](125, 124) -> 122 -[53,1](126, 124) -> 123 -[54,1](127, 127) -> 124 -[54,1](128, 127) -> 125 -[54,1](129, 127) -> 126 -[55,1](130, 130) -> 127 -[55,1](131, 130) -> 128 -[55,1](132, 130) -> 129 -[56,1](133, 133) -> 130 -[56,1](134, 133) -> 131 -[56,1](135, 133) -> 132 -[57,1](136, 136) -> 133 -[57,1](137, 136) -> 134 -[57,1](138, 136) -> 135 -[58,1](139, 139) -> 136 -[58,1](140, 139) -> 137 -[58,1](141, 139) -> 138 -[59,1](142, 142) -> 139 -[59,1](143, 142) -> 140 -[59,1](144, 142) -> 141 -[60,1](145, 145) -> 142 -[60,1](146, 145) -> 143 -[60,1](147, 145) -> 144 -[61,1](148, 148) -> 145 -[61,1](149, 148) -> 146 -[61,1](150, 148) -> 147 -[62,1](151, 151) -> 148 -[62,1](152, 151) -> 149 -[62,1](153, 151) -> 150 -[63,1](154, 154) -> 151 -[63,1](155, 154) -> 152 -[63,1](156, 154) -> 153 -[64,1](157, 157) -> 154 -[64,1](158, 157) -> 155 -[64,1](159, 157) -> 156 -[65,1](160, 160) -> 157 -[65,1](161, 160) -> 158 -[65,1](162, 160) -> 159 -[66,1](163, 163) -> 160 -[66,1](164, 163) -> 161 -[66,1](165, 163) -> 162 -[p1,1] -> 163 -[p2,1] -> 164 -[p3,1] -> 165 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/33/pre.hsl b/benchmarks/all/OEGrover/33/pre.hsl index bb1768f11..630974eff 100644 --- a/benchmarks/all/OEGrover/33/pre.hsl +++ b/benchmarks/all/OEGrover/33/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 15 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 8589934591 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/33/pre.lsta b/benchmarks/all/OEGrover/33/pre.lsta deleted file mode 100644 index a5609c8e4..000000000 --- a/benchmarks/all/OEGrover/33/pre.lsta +++ /dev/null @@ -1,176 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 68) -> 65 -[34,1](67, 69) -> 66 -[35,1](70, 70) -> 67 -[35,1](71, 70) -> 68 -[35,1](72, 70) -> 69 -[36,1](73, 73) -> 70 -[36,1](74, 73) -> 71 -[36,1](75, 73) -> 72 -[37,1](76, 76) -> 73 -[37,1](77, 76) -> 74 -[37,1](78, 76) -> 75 -[38,1](79, 79) -> 76 -[38,1](80, 79) -> 77 -[38,1](81, 79) -> 78 -[39,1](82, 82) -> 79 -[39,1](83, 82) -> 80 -[39,1](84, 82) -> 81 -[40,1](85, 85) -> 82 -[40,1](86, 85) -> 83 -[40,1](87, 85) -> 84 -[41,1](88, 88) -> 85 -[41,1](89, 88) -> 86 -[41,1](90, 88) -> 87 -[42,1](91, 91) -> 88 -[42,1](92, 91) -> 89 -[42,1](93, 91) -> 90 -[43,1](94, 94) -> 91 -[43,1](95, 94) -> 92 -[43,1](96, 94) -> 93 -[44,1](97, 97) -> 94 -[44,1](98, 97) -> 95 -[44,1](99, 97) -> 96 -[45,1](100, 100) -> 97 -[45,1](101, 100) -> 98 -[45,1](102, 100) -> 99 -[46,1](103, 103) -> 100 -[46,1](104, 103) -> 101 -[46,1](105, 103) -> 102 -[47,1](106, 106) -> 103 -[47,1](107, 106) -> 104 -[47,1](108, 106) -> 105 -[48,1](109, 109) -> 106 -[48,1](110, 109) -> 107 -[48,1](111, 109) -> 108 -[49,1](112, 112) -> 109 -[49,1](113, 112) -> 110 -[49,1](114, 112) -> 111 -[50,1](115, 115) -> 112 -[50,1](116, 115) -> 113 -[50,1](117, 115) -> 114 -[51,1](118, 118) -> 115 -[51,1](119, 118) -> 116 -[51,1](120, 118) -> 117 -[52,1](121, 121) -> 118 -[52,1](122, 121) -> 119 -[52,1](123, 121) -> 120 -[53,1](124, 124) -> 121 -[53,1](125, 124) -> 122 -[53,1](126, 124) -> 123 -[54,1](127, 127) -> 124 -[54,1](128, 127) -> 125 -[54,1](129, 127) -> 126 -[55,1](130, 130) -> 127 -[55,1](131, 130) -> 128 -[55,1](132, 130) -> 129 -[56,1](133, 133) -> 130 -[56,1](134, 133) -> 131 -[56,1](135, 133) -> 132 -[57,1](136, 136) -> 133 -[57,1](137, 136) -> 134 -[57,1](138, 136) -> 135 -[58,1](139, 139) -> 136 -[58,1](140, 139) -> 137 -[58,1](141, 139) -> 138 -[59,1](142, 142) -> 139 -[59,1](143, 142) -> 140 -[59,1](144, 142) -> 141 -[60,1](145, 145) -> 142 -[60,1](146, 145) -> 143 -[60,1](147, 145) -> 144 -[61,1](148, 148) -> 145 -[61,1](149, 148) -> 146 -[61,1](150, 148) -> 147 -[62,1](151, 151) -> 148 -[62,1](152, 151) -> 149 -[62,1](153, 151) -> 150 -[63,1](154, 154) -> 151 -[63,1](155, 154) -> 152 -[63,1](156, 154) -> 153 -[64,1](157, 157) -> 154 -[64,1](158, 157) -> 155 -[64,1](159, 157) -> 156 -[65,1](160, 160) -> 157 -[65,1](161, 160) -> 158 -[65,1](162, 160) -> 159 -[66,1](163, 163) -> 160 -[66,1](164, 163) -> 161 -[66,1](165, 163) -> 162 -[c0,1] -> 163 -[a,1] -> 164 -[b,1] -> 165 -Constraints -8589934591 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/34/circuit.qasm b/benchmarks/all/OEGrover/34/circuit.qasm index 738a7af14..de7e2402b 100644 --- a/benchmarks/all/OEGrover/34/circuit.qasm +++ b/benchmarks/all/OEGrover/34/circuit.qasm @@ -1,89 +1,89 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[68]; +qreg qubits[67]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -ccx qubits[0], qubits[1], qubits[35]; -ccx qubits[2], qubits[35], qubits[36]; -ccx qubits[3], qubits[36], qubits[37]; -ccx qubits[4], qubits[37], qubits[38]; -ccx qubits[5], qubits[38], qubits[39]; -ccx qubits[6], qubits[39], qubits[40]; -ccx qubits[7], qubits[40], qubits[41]; -ccx qubits[8], qubits[41], qubits[42]; -ccx qubits[9], qubits[42], qubits[43]; -ccx qubits[10], qubits[43], qubits[44]; -ccx qubits[11], qubits[44], qubits[45]; -ccx qubits[12], qubits[45], qubits[46]; -ccx qubits[13], qubits[46], qubits[47]; -ccx qubits[14], qubits[47], qubits[48]; -ccx qubits[15], qubits[48], qubits[49]; -ccx qubits[16], qubits[49], qubits[50]; -ccx qubits[17], qubits[50], qubits[51]; -ccx qubits[18], qubits[51], qubits[52]; -ccx qubits[19], qubits[52], qubits[53]; -ccx qubits[20], qubits[53], qubits[54]; -ccx qubits[21], qubits[54], qubits[55]; -ccx qubits[22], qubits[55], qubits[56]; -ccx qubits[23], qubits[56], qubits[57]; -ccx qubits[24], qubits[57], qubits[58]; -ccx qubits[25], qubits[58], qubits[59]; -ccx qubits[26], qubits[59], qubits[60]; -ccx qubits[27], qubits[60], qubits[61]; -ccx qubits[28], qubits[61], qubits[62]; -ccx qubits[29], qubits[62], qubits[63]; -ccx qubits[30], qubits[63], qubits[64]; -ccx qubits[31], qubits[64], qubits[65]; -ccx qubits[32], qubits[65], qubits[66]; -cz qubits[66], qubits[33]; -ccx qubits[32], qubits[65], qubits[66]; -ccx qubits[31], qubits[64], qubits[65]; -ccx qubits[30], qubits[63], qubits[64]; -ccx qubits[29], qubits[62], qubits[63]; -ccx qubits[28], qubits[61], qubits[62]; -ccx qubits[27], qubits[60], qubits[61]; -ccx qubits[26], qubits[59], qubits[60]; -ccx qubits[25], qubits[58], qubits[59]; -ccx qubits[24], qubits[57], qubits[58]; -ccx qubits[23], qubits[56], qubits[57]; -ccx qubits[22], qubits[55], qubits[56]; -ccx qubits[21], qubits[54], qubits[55]; -ccx qubits[20], qubits[53], qubits[54]; -ccx qubits[19], qubits[52], qubits[53]; -ccx qubits[18], qubits[51], qubits[52]; -ccx qubits[17], qubits[50], qubits[51]; -ccx qubits[16], qubits[49], qubits[50]; -ccx qubits[15], qubits[48], qubits[49]; -ccx qubits[14], qubits[47], qubits[48]; -ccx qubits[13], qubits[46], qubits[47]; -ccx qubits[12], qubits[45], qubits[46]; -ccx qubits[11], qubits[44], qubits[45]; -ccx qubits[10], qubits[43], qubits[44]; -ccx qubits[9], qubits[42], qubits[43]; -ccx qubits[8], qubits[41], qubits[42]; -ccx qubits[7], qubits[40], qubits[41]; -ccx qubits[6], qubits[39], qubits[40]; -ccx qubits[5], qubits[38], qubits[39]; -ccx qubits[4], qubits[37], qubits[38]; -ccx qubits[3], qubits[36], qubits[37]; -ccx qubits[2], qubits[35], qubits[36]; -ccx qubits[0], qubits[1], qubits[35]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +cz qubits[64], qubits[65]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -103,203 +103,203 @@ x qubits[30]; x qubits[32]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -ccx qubits[0], qubits[1], qubits[35]; -ccx qubits[2], qubits[35], qubits[36]; -ccx qubits[3], qubits[36], qubits[37]; -ccx qubits[4], qubits[37], qubits[38]; -ccx qubits[5], qubits[38], qubits[39]; -ccx qubits[6], qubits[39], qubits[40]; -ccx qubits[7], qubits[40], qubits[41]; -ccx qubits[8], qubits[41], qubits[42]; -ccx qubits[9], qubits[42], qubits[43]; -ccx qubits[10], qubits[43], qubits[44]; -ccx qubits[11], qubits[44], qubits[45]; -ccx qubits[12], qubits[45], qubits[46]; -ccx qubits[13], qubits[46], qubits[47]; -ccx qubits[14], qubits[47], qubits[48]; -ccx qubits[15], qubits[48], qubits[49]; -ccx qubits[16], qubits[49], qubits[50]; -ccx qubits[17], qubits[50], qubits[51]; -ccx qubits[18], qubits[51], qubits[52]; -ccx qubits[19], qubits[52], qubits[53]; -ccx qubits[20], qubits[53], qubits[54]; -ccx qubits[21], qubits[54], qubits[55]; -ccx qubits[22], qubits[55], qubits[56]; -ccx qubits[23], qubits[56], qubits[57]; -ccx qubits[24], qubits[57], qubits[58]; -ccx qubits[25], qubits[58], qubits[59]; -ccx qubits[26], qubits[59], qubits[60]; -ccx qubits[27], qubits[60], qubits[61]; -ccx qubits[28], qubits[61], qubits[62]; -ccx qubits[29], qubits[62], qubits[63]; -ccx qubits[30], qubits[63], qubits[64]; -ccx qubits[31], qubits[64], qubits[65]; -ccx qubits[32], qubits[65], qubits[66]; -cz qubits[66], qubits[33]; -ccx qubits[32], qubits[65], qubits[66]; -ccx qubits[31], qubits[64], qubits[65]; -ccx qubits[30], qubits[63], qubits[64]; -ccx qubits[29], qubits[62], qubits[63]; -ccx qubits[28], qubits[61], qubits[62]; -ccx qubits[27], qubits[60], qubits[61]; -ccx qubits[26], qubits[59], qubits[60]; -ccx qubits[25], qubits[58], qubits[59]; -ccx qubits[24], qubits[57], qubits[58]; -ccx qubits[23], qubits[56], qubits[57]; -ccx qubits[22], qubits[55], qubits[56]; -ccx qubits[21], qubits[54], qubits[55]; -ccx qubits[20], qubits[53], qubits[54]; -ccx qubits[19], qubits[52], qubits[53]; -ccx qubits[18], qubits[51], qubits[52]; -ccx qubits[17], qubits[50], qubits[51]; -ccx qubits[16], qubits[49], qubits[50]; -ccx qubits[15], qubits[48], qubits[49]; -ccx qubits[14], qubits[47], qubits[48]; -ccx qubits[13], qubits[46], qubits[47]; -ccx qubits[12], qubits[45], qubits[46]; -ccx qubits[11], qubits[44], qubits[45]; -ccx qubits[10], qubits[43], qubits[44]; -ccx qubits[9], qubits[42], qubits[43]; -ccx qubits[8], qubits[41], qubits[42]; -ccx qubits[7], qubits[40], qubits[41]; -ccx qubits[6], qubits[39], qubits[40]; -ccx qubits[5], qubits[38], qubits[39]; -ccx qubits[4], qubits[37], qubits[38]; -ccx qubits[3], qubits[36], qubits[37]; -ccx qubits[2], qubits[35], qubits[36]; -ccx qubits[0], qubits[1], qubits[35]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +cz qubits[64], qubits[65]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -z qubits[34]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +z qubits[66]; diff --git a/benchmarks/all/OEGrover/34/post.hsl b/benchmarks/all/OEGrover/34/post.hsl index 84c7b2021..93444acf0 100644 --- a/benchmarks/all/OEGrover/34/post.hsl +++ b/benchmarks/all/OEGrover/34/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101011000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 16 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/34/post.lsta b/benchmarks/all/OEGrover/34/post.lsta deleted file mode 100644 index 7911b21ed..000000000 --- a/benchmarks/all/OEGrover/34/post.lsta +++ /dev/null @@ -1,177 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 70) -> 67 -[35,1](69, 71) -> 68 -[36,1](72, 72) -> 69 -[36,1](73, 72) -> 70 -[36,1](74, 72) -> 71 -[37,1](75, 75) -> 72 -[37,1](76, 75) -> 73 -[37,1](77, 75) -> 74 -[38,1](78, 78) -> 75 -[38,1](79, 78) -> 76 -[38,1](80, 78) -> 77 -[39,1](81, 81) -> 78 -[39,1](82, 81) -> 79 -[39,1](83, 81) -> 80 -[40,1](84, 84) -> 81 -[40,1](85, 84) -> 82 -[40,1](86, 84) -> 83 -[41,1](87, 87) -> 84 -[41,1](88, 87) -> 85 -[41,1](89, 87) -> 86 -[42,1](90, 90) -> 87 -[42,1](91, 90) -> 88 -[42,1](92, 90) -> 89 -[43,1](93, 93) -> 90 -[43,1](94, 93) -> 91 -[43,1](95, 93) -> 92 -[44,1](96, 96) -> 93 -[44,1](97, 96) -> 94 -[44,1](98, 96) -> 95 -[45,1](99, 99) -> 96 -[45,1](100, 99) -> 97 -[45,1](101, 99) -> 98 -[46,1](102, 102) -> 99 -[46,1](103, 102) -> 100 -[46,1](104, 102) -> 101 -[47,1](105, 105) -> 102 -[47,1](106, 105) -> 103 -[47,1](107, 105) -> 104 -[48,1](108, 108) -> 105 -[48,1](109, 108) -> 106 -[48,1](110, 108) -> 107 -[49,1](111, 111) -> 108 -[49,1](112, 111) -> 109 -[49,1](113, 111) -> 110 -[50,1](114, 114) -> 111 -[50,1](115, 114) -> 112 -[50,1](116, 114) -> 113 -[51,1](117, 117) -> 114 -[51,1](118, 117) -> 115 -[51,1](119, 117) -> 116 -[52,1](120, 120) -> 117 -[52,1](121, 120) -> 118 -[52,1](122, 120) -> 119 -[53,1](123, 123) -> 120 -[53,1](124, 123) -> 121 -[53,1](125, 123) -> 122 -[54,1](126, 126) -> 123 -[54,1](127, 126) -> 124 -[54,1](128, 126) -> 125 -[55,1](129, 129) -> 126 -[55,1](130, 129) -> 127 -[55,1](131, 129) -> 128 -[56,1](132, 132) -> 129 -[56,1](133, 132) -> 130 -[56,1](134, 132) -> 131 -[57,1](135, 135) -> 132 -[57,1](136, 135) -> 133 -[57,1](137, 135) -> 134 -[58,1](138, 138) -> 135 -[58,1](139, 138) -> 136 -[58,1](140, 138) -> 137 -[59,1](141, 141) -> 138 -[59,1](142, 141) -> 139 -[59,1](143, 141) -> 140 -[60,1](144, 144) -> 141 -[60,1](145, 144) -> 142 -[60,1](146, 144) -> 143 -[61,1](147, 147) -> 144 -[61,1](148, 147) -> 145 -[61,1](149, 147) -> 146 -[62,1](150, 150) -> 147 -[62,1](151, 150) -> 148 -[62,1](152, 150) -> 149 -[63,1](153, 153) -> 150 -[63,1](154, 153) -> 151 -[63,1](155, 153) -> 152 -[64,1](156, 156) -> 153 -[64,1](157, 156) -> 154 -[64,1](158, 156) -> 155 -[65,1](159, 159) -> 156 -[65,1](160, 159) -> 157 -[65,1](161, 159) -> 158 -[66,1](162, 162) -> 159 -[66,1](163, 162) -> 160 -[66,1](164, 162) -> 161 -[67,1](165, 165) -> 162 -[67,1](166, 165) -> 163 -[67,1](167, 165) -> 164 -[68,1](168, 168) -> 165 -[68,1](169, 168) -> 166 -[68,1](170, 168) -> 167 -[p1,1] -> 168 -[p2,1] -> 169 -[p3,1] -> 170 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/34/pre.hsl b/benchmarks/all/OEGrover/34/pre.hsl index fdd0febc8..0fa1e07da 100644 --- a/benchmarks/all/OEGrover/34/pre.hsl +++ b/benchmarks/all/OEGrover/34/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 16 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 17179869183 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/34/pre.lsta b/benchmarks/all/OEGrover/34/pre.lsta deleted file mode 100644 index 8ba509ed4..000000000 --- a/benchmarks/all/OEGrover/34/pre.lsta +++ /dev/null @@ -1,181 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 70) -> 67 -[35,1](69, 71) -> 68 -[36,1](72, 72) -> 69 -[36,1](73, 72) -> 70 -[36,1](74, 72) -> 71 -[37,1](75, 75) -> 72 -[37,1](76, 75) -> 73 -[37,1](77, 75) -> 74 -[38,1](78, 78) -> 75 -[38,1](79, 78) -> 76 -[38,1](80, 78) -> 77 -[39,1](81, 81) -> 78 -[39,1](82, 81) -> 79 -[39,1](83, 81) -> 80 -[40,1](84, 84) -> 81 -[40,1](85, 84) -> 82 -[40,1](86, 84) -> 83 -[41,1](87, 87) -> 84 -[41,1](88, 87) -> 85 -[41,1](89, 87) -> 86 -[42,1](90, 90) -> 87 -[42,1](91, 90) -> 88 -[42,1](92, 90) -> 89 -[43,1](93, 93) -> 90 -[43,1](94, 93) -> 91 -[43,1](95, 93) -> 92 -[44,1](96, 96) -> 93 -[44,1](97, 96) -> 94 -[44,1](98, 96) -> 95 -[45,1](99, 99) -> 96 -[45,1](100, 99) -> 97 -[45,1](101, 99) -> 98 -[46,1](102, 102) -> 99 -[46,1](103, 102) -> 100 -[46,1](104, 102) -> 101 -[47,1](105, 105) -> 102 -[47,1](106, 105) -> 103 -[47,1](107, 105) -> 104 -[48,1](108, 108) -> 105 -[48,1](109, 108) -> 106 -[48,1](110, 108) -> 107 -[49,1](111, 111) -> 108 -[49,1](112, 111) -> 109 -[49,1](113, 111) -> 110 -[50,1](114, 114) -> 111 -[50,1](115, 114) -> 112 -[50,1](116, 114) -> 113 -[51,1](117, 117) -> 114 -[51,1](118, 117) -> 115 -[51,1](119, 117) -> 116 -[52,1](120, 120) -> 117 -[52,1](121, 120) -> 118 -[52,1](122, 120) -> 119 -[53,1](123, 123) -> 120 -[53,1](124, 123) -> 121 -[53,1](125, 123) -> 122 -[54,1](126, 126) -> 123 -[54,1](127, 126) -> 124 -[54,1](128, 126) -> 125 -[55,1](129, 129) -> 126 -[55,1](130, 129) -> 127 -[55,1](131, 129) -> 128 -[56,1](132, 132) -> 129 -[56,1](133, 132) -> 130 -[56,1](134, 132) -> 131 -[57,1](135, 135) -> 132 -[57,1](136, 135) -> 133 -[57,1](137, 135) -> 134 -[58,1](138, 138) -> 135 -[58,1](139, 138) -> 136 -[58,1](140, 138) -> 137 -[59,1](141, 141) -> 138 -[59,1](142, 141) -> 139 -[59,1](143, 141) -> 140 -[60,1](144, 144) -> 141 -[60,1](145, 144) -> 142 -[60,1](146, 144) -> 143 -[61,1](147, 147) -> 144 -[61,1](148, 147) -> 145 -[61,1](149, 147) -> 146 -[62,1](150, 150) -> 147 -[62,1](151, 150) -> 148 -[62,1](152, 150) -> 149 -[63,1](153, 153) -> 150 -[63,1](154, 153) -> 151 -[63,1](155, 153) -> 152 -[64,1](156, 156) -> 153 -[64,1](157, 156) -> 154 -[64,1](158, 156) -> 155 -[65,1](159, 159) -> 156 -[65,1](160, 159) -> 157 -[65,1](161, 159) -> 158 -[66,1](162, 162) -> 159 -[66,1](163, 162) -> 160 -[66,1](164, 162) -> 161 -[67,1](165, 165) -> 162 -[67,1](166, 165) -> 163 -[67,1](167, 165) -> 164 -[68,1](168, 168) -> 165 -[68,1](169, 168) -> 166 -[68,1](170, 168) -> 167 -[c0,1] -> 168 -[a,1] -> 169 -[b,1] -> 170 -Constraints -17179869183 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/35/circuit.qasm b/benchmarks/all/OEGrover/35/circuit.qasm index e5820184c..3fda20566 100644 --- a/benchmarks/all/OEGrover/35/circuit.qasm +++ b/benchmarks/all/OEGrover/35/circuit.qasm @@ -1,92 +1,92 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[70]; +qreg qubits[69]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -ccx qubits[0], qubits[1], qubits[36]; -ccx qubits[2], qubits[36], qubits[37]; -ccx qubits[3], qubits[37], qubits[38]; -ccx qubits[4], qubits[38], qubits[39]; -ccx qubits[5], qubits[39], qubits[40]; -ccx qubits[6], qubits[40], qubits[41]; -ccx qubits[7], qubits[41], qubits[42]; -ccx qubits[8], qubits[42], qubits[43]; -ccx qubits[9], qubits[43], qubits[44]; -ccx qubits[10], qubits[44], qubits[45]; -ccx qubits[11], qubits[45], qubits[46]; -ccx qubits[12], qubits[46], qubits[47]; -ccx qubits[13], qubits[47], qubits[48]; -ccx qubits[14], qubits[48], qubits[49]; -ccx qubits[15], qubits[49], qubits[50]; -ccx qubits[16], qubits[50], qubits[51]; -ccx qubits[17], qubits[51], qubits[52]; -ccx qubits[18], qubits[52], qubits[53]; -ccx qubits[19], qubits[53], qubits[54]; -ccx qubits[20], qubits[54], qubits[55]; -ccx qubits[21], qubits[55], qubits[56]; -ccx qubits[22], qubits[56], qubits[57]; -ccx qubits[23], qubits[57], qubits[58]; -ccx qubits[24], qubits[58], qubits[59]; -ccx qubits[25], qubits[59], qubits[60]; -ccx qubits[26], qubits[60], qubits[61]; -ccx qubits[27], qubits[61], qubits[62]; -ccx qubits[28], qubits[62], qubits[63]; -ccx qubits[29], qubits[63], qubits[64]; -ccx qubits[30], qubits[64], qubits[65]; -ccx qubits[31], qubits[65], qubits[66]; -ccx qubits[32], qubits[66], qubits[67]; -ccx qubits[33], qubits[67], qubits[68]; -cz qubits[68], qubits[34]; -ccx qubits[33], qubits[67], qubits[68]; -ccx qubits[32], qubits[66], qubits[67]; -ccx qubits[31], qubits[65], qubits[66]; -ccx qubits[30], qubits[64], qubits[65]; -ccx qubits[29], qubits[63], qubits[64]; -ccx qubits[28], qubits[62], qubits[63]; -ccx qubits[27], qubits[61], qubits[62]; -ccx qubits[26], qubits[60], qubits[61]; -ccx qubits[25], qubits[59], qubits[60]; -ccx qubits[24], qubits[58], qubits[59]; -ccx qubits[23], qubits[57], qubits[58]; -ccx qubits[22], qubits[56], qubits[57]; -ccx qubits[21], qubits[55], qubits[56]; -ccx qubits[20], qubits[54], qubits[55]; -ccx qubits[19], qubits[53], qubits[54]; -ccx qubits[18], qubits[52], qubits[53]; -ccx qubits[17], qubits[51], qubits[52]; -ccx qubits[16], qubits[50], qubits[51]; -ccx qubits[15], qubits[49], qubits[50]; -ccx qubits[14], qubits[48], qubits[49]; -ccx qubits[13], qubits[47], qubits[48]; -ccx qubits[12], qubits[46], qubits[47]; -ccx qubits[11], qubits[45], qubits[46]; -ccx qubits[10], qubits[44], qubits[45]; -ccx qubits[9], qubits[43], qubits[44]; -ccx qubits[8], qubits[42], qubits[43]; -ccx qubits[7], qubits[41], qubits[42]; -ccx qubits[6], qubits[40], qubits[41]; -ccx qubits[5], qubits[39], qubits[40]; -ccx qubits[4], qubits[38], qubits[39]; -ccx qubits[3], qubits[37], qubits[38]; -ccx qubits[2], qubits[36], qubits[37]; -ccx qubits[0], qubits[1], qubits[36]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +cz qubits[66], qubits[67]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -107,209 +107,209 @@ x qubits[32]; x qubits[34]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; -ccx qubits[0], qubits[1], qubits[36]; -ccx qubits[2], qubits[36], qubits[37]; -ccx qubits[3], qubits[37], qubits[38]; -ccx qubits[4], qubits[38], qubits[39]; -ccx qubits[5], qubits[39], qubits[40]; -ccx qubits[6], qubits[40], qubits[41]; -ccx qubits[7], qubits[41], qubits[42]; -ccx qubits[8], qubits[42], qubits[43]; -ccx qubits[9], qubits[43], qubits[44]; -ccx qubits[10], qubits[44], qubits[45]; -ccx qubits[11], qubits[45], qubits[46]; -ccx qubits[12], qubits[46], qubits[47]; -ccx qubits[13], qubits[47], qubits[48]; -ccx qubits[14], qubits[48], qubits[49]; -ccx qubits[15], qubits[49], qubits[50]; -ccx qubits[16], qubits[50], qubits[51]; -ccx qubits[17], qubits[51], qubits[52]; -ccx qubits[18], qubits[52], qubits[53]; -ccx qubits[19], qubits[53], qubits[54]; -ccx qubits[20], qubits[54], qubits[55]; -ccx qubits[21], qubits[55], qubits[56]; -ccx qubits[22], qubits[56], qubits[57]; -ccx qubits[23], qubits[57], qubits[58]; -ccx qubits[24], qubits[58], qubits[59]; -ccx qubits[25], qubits[59], qubits[60]; -ccx qubits[26], qubits[60], qubits[61]; -ccx qubits[27], qubits[61], qubits[62]; -ccx qubits[28], qubits[62], qubits[63]; -ccx qubits[29], qubits[63], qubits[64]; -ccx qubits[30], qubits[64], qubits[65]; -ccx qubits[31], qubits[65], qubits[66]; -ccx qubits[32], qubits[66], qubits[67]; -ccx qubits[33], qubits[67], qubits[68]; -cz qubits[68], qubits[34]; -ccx qubits[33], qubits[67], qubits[68]; -ccx qubits[32], qubits[66], qubits[67]; -ccx qubits[31], qubits[65], qubits[66]; -ccx qubits[30], qubits[64], qubits[65]; -ccx qubits[29], qubits[63], qubits[64]; -ccx qubits[28], qubits[62], qubits[63]; -ccx qubits[27], qubits[61], qubits[62]; -ccx qubits[26], qubits[60], qubits[61]; -ccx qubits[25], qubits[59], qubits[60]; -ccx qubits[24], qubits[58], qubits[59]; -ccx qubits[23], qubits[57], qubits[58]; -ccx qubits[22], qubits[56], qubits[57]; -ccx qubits[21], qubits[55], qubits[56]; -ccx qubits[20], qubits[54], qubits[55]; -ccx qubits[19], qubits[53], qubits[54]; -ccx qubits[18], qubits[52], qubits[53]; -ccx qubits[17], qubits[51], qubits[52]; -ccx qubits[16], qubits[50], qubits[51]; -ccx qubits[15], qubits[49], qubits[50]; -ccx qubits[14], qubits[48], qubits[49]; -ccx qubits[13], qubits[47], qubits[48]; -ccx qubits[12], qubits[46], qubits[47]; -ccx qubits[11], qubits[45], qubits[46]; -ccx qubits[10], qubits[44], qubits[45]; -ccx qubits[9], qubits[43], qubits[44]; -ccx qubits[8], qubits[42], qubits[43]; -ccx qubits[7], qubits[41], qubits[42]; -ccx qubits[6], qubits[40], qubits[41]; -ccx qubits[5], qubits[39], qubits[40]; -ccx qubits[4], qubits[38], qubits[39]; -ccx qubits[3], qubits[37], qubits[38]; -ccx qubits[2], qubits[36], qubits[37]; -ccx qubits[0], qubits[1], qubits[36]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +cz qubits[66], qubits[67]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; +x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; -z qubits[35]; +h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +z qubits[68]; diff --git a/benchmarks/all/OEGrover/35/post.hsl b/benchmarks/all/OEGrover/35/post.hsl index 38f44429c..dd7c7d6b3 100644 --- a/benchmarks/all/OEGrover/35/post.hsl +++ b/benchmarks/all/OEGrover/35/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 16 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/35/post.lsta b/benchmarks/all/OEGrover/35/post.lsta deleted file mode 100644 index 9af1d2fcf..000000000 --- a/benchmarks/all/OEGrover/35/post.lsta +++ /dev/null @@ -1,182 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 72) -> 69 -[36,1](71, 73) -> 70 -[37,1](74, 74) -> 71 -[37,1](75, 74) -> 72 -[37,1](76, 74) -> 73 -[38,1](77, 77) -> 74 -[38,1](78, 77) -> 75 -[38,1](79, 77) -> 76 -[39,1](80, 80) -> 77 -[39,1](81, 80) -> 78 -[39,1](82, 80) -> 79 -[40,1](83, 83) -> 80 -[40,1](84, 83) -> 81 -[40,1](85, 83) -> 82 -[41,1](86, 86) -> 83 -[41,1](87, 86) -> 84 -[41,1](88, 86) -> 85 -[42,1](89, 89) -> 86 -[42,1](90, 89) -> 87 -[42,1](91, 89) -> 88 -[43,1](92, 92) -> 89 -[43,1](93, 92) -> 90 -[43,1](94, 92) -> 91 -[44,1](95, 95) -> 92 -[44,1](96, 95) -> 93 -[44,1](97, 95) -> 94 -[45,1](98, 98) -> 95 -[45,1](99, 98) -> 96 -[45,1](100, 98) -> 97 -[46,1](101, 101) -> 98 -[46,1](102, 101) -> 99 -[46,1](103, 101) -> 100 -[47,1](104, 104) -> 101 -[47,1](105, 104) -> 102 -[47,1](106, 104) -> 103 -[48,1](107, 107) -> 104 -[48,1](108, 107) -> 105 -[48,1](109, 107) -> 106 -[49,1](110, 110) -> 107 -[49,1](111, 110) -> 108 -[49,1](112, 110) -> 109 -[50,1](113, 113) -> 110 -[50,1](114, 113) -> 111 -[50,1](115, 113) -> 112 -[51,1](116, 116) -> 113 -[51,1](117, 116) -> 114 -[51,1](118, 116) -> 115 -[52,1](119, 119) -> 116 -[52,1](120, 119) -> 117 -[52,1](121, 119) -> 118 -[53,1](122, 122) -> 119 -[53,1](123, 122) -> 120 -[53,1](124, 122) -> 121 -[54,1](125, 125) -> 122 -[54,1](126, 125) -> 123 -[54,1](127, 125) -> 124 -[55,1](128, 128) -> 125 -[55,1](129, 128) -> 126 -[55,1](130, 128) -> 127 -[56,1](131, 131) -> 128 -[56,1](132, 131) -> 129 -[56,1](133, 131) -> 130 -[57,1](134, 134) -> 131 -[57,1](135, 134) -> 132 -[57,1](136, 134) -> 133 -[58,1](137, 137) -> 134 -[58,1](138, 137) -> 135 -[58,1](139, 137) -> 136 -[59,1](140, 140) -> 137 -[59,1](141, 140) -> 138 -[59,1](142, 140) -> 139 -[60,1](143, 143) -> 140 -[60,1](144, 143) -> 141 -[60,1](145, 143) -> 142 -[61,1](146, 146) -> 143 -[61,1](147, 146) -> 144 -[61,1](148, 146) -> 145 -[62,1](149, 149) -> 146 -[62,1](150, 149) -> 147 -[62,1](151, 149) -> 148 -[63,1](152, 152) -> 149 -[63,1](153, 152) -> 150 -[63,1](154, 152) -> 151 -[64,1](155, 155) -> 152 -[64,1](156, 155) -> 153 -[64,1](157, 155) -> 154 -[65,1](158, 158) -> 155 -[65,1](159, 158) -> 156 -[65,1](160, 158) -> 157 -[66,1](161, 161) -> 158 -[66,1](162, 161) -> 159 -[66,1](163, 161) -> 160 -[67,1](164, 164) -> 161 -[67,1](165, 164) -> 162 -[67,1](166, 164) -> 163 -[68,1](167, 167) -> 164 -[68,1](168, 167) -> 165 -[68,1](169, 167) -> 166 -[69,1](170, 170) -> 167 -[69,1](171, 170) -> 168 -[69,1](172, 170) -> 169 -[70,1](173, 173) -> 170 -[70,1](174, 173) -> 171 -[70,1](175, 173) -> 172 -[p1,1] -> 173 -[p2,1] -> 174 -[p3,1] -> 175 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/35/pre.hsl b/benchmarks/all/OEGrover/35/pre.hsl index 4fe512690..988cbf8d2 100644 --- a/benchmarks/all/OEGrover/35/pre.hsl +++ b/benchmarks/all/OEGrover/35/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 16 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 34359738367 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/35/pre.lsta b/benchmarks/all/OEGrover/35/pre.lsta deleted file mode 100644 index 3fd3df6d8..000000000 --- a/benchmarks/all/OEGrover/35/pre.lsta +++ /dev/null @@ -1,186 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 72) -> 69 -[36,1](71, 73) -> 70 -[37,1](74, 74) -> 71 -[37,1](75, 74) -> 72 -[37,1](76, 74) -> 73 -[38,1](77, 77) -> 74 -[38,1](78, 77) -> 75 -[38,1](79, 77) -> 76 -[39,1](80, 80) -> 77 -[39,1](81, 80) -> 78 -[39,1](82, 80) -> 79 -[40,1](83, 83) -> 80 -[40,1](84, 83) -> 81 -[40,1](85, 83) -> 82 -[41,1](86, 86) -> 83 -[41,1](87, 86) -> 84 -[41,1](88, 86) -> 85 -[42,1](89, 89) -> 86 -[42,1](90, 89) -> 87 -[42,1](91, 89) -> 88 -[43,1](92, 92) -> 89 -[43,1](93, 92) -> 90 -[43,1](94, 92) -> 91 -[44,1](95, 95) -> 92 -[44,1](96, 95) -> 93 -[44,1](97, 95) -> 94 -[45,1](98, 98) -> 95 -[45,1](99, 98) -> 96 -[45,1](100, 98) -> 97 -[46,1](101, 101) -> 98 -[46,1](102, 101) -> 99 -[46,1](103, 101) -> 100 -[47,1](104, 104) -> 101 -[47,1](105, 104) -> 102 -[47,1](106, 104) -> 103 -[48,1](107, 107) -> 104 -[48,1](108, 107) -> 105 -[48,1](109, 107) -> 106 -[49,1](110, 110) -> 107 -[49,1](111, 110) -> 108 -[49,1](112, 110) -> 109 -[50,1](113, 113) -> 110 -[50,1](114, 113) -> 111 -[50,1](115, 113) -> 112 -[51,1](116, 116) -> 113 -[51,1](117, 116) -> 114 -[51,1](118, 116) -> 115 -[52,1](119, 119) -> 116 -[52,1](120, 119) -> 117 -[52,1](121, 119) -> 118 -[53,1](122, 122) -> 119 -[53,1](123, 122) -> 120 -[53,1](124, 122) -> 121 -[54,1](125, 125) -> 122 -[54,1](126, 125) -> 123 -[54,1](127, 125) -> 124 -[55,1](128, 128) -> 125 -[55,1](129, 128) -> 126 -[55,1](130, 128) -> 127 -[56,1](131, 131) -> 128 -[56,1](132, 131) -> 129 -[56,1](133, 131) -> 130 -[57,1](134, 134) -> 131 -[57,1](135, 134) -> 132 -[57,1](136, 134) -> 133 -[58,1](137, 137) -> 134 -[58,1](138, 137) -> 135 -[58,1](139, 137) -> 136 -[59,1](140, 140) -> 137 -[59,1](141, 140) -> 138 -[59,1](142, 140) -> 139 -[60,1](143, 143) -> 140 -[60,1](144, 143) -> 141 -[60,1](145, 143) -> 142 -[61,1](146, 146) -> 143 -[61,1](147, 146) -> 144 -[61,1](148, 146) -> 145 -[62,1](149, 149) -> 146 -[62,1](150, 149) -> 147 -[62,1](151, 149) -> 148 -[63,1](152, 152) -> 149 -[63,1](153, 152) -> 150 -[63,1](154, 152) -> 151 -[64,1](155, 155) -> 152 -[64,1](156, 155) -> 153 -[64,1](157, 155) -> 154 -[65,1](158, 158) -> 155 -[65,1](159, 158) -> 156 -[65,1](160, 158) -> 157 -[66,1](161, 161) -> 158 -[66,1](162, 161) -> 159 -[66,1](163, 161) -> 160 -[67,1](164, 164) -> 161 -[67,1](165, 164) -> 162 -[67,1](166, 164) -> 163 -[68,1](167, 167) -> 164 -[68,1](168, 167) -> 165 -[68,1](169, 167) -> 166 -[69,1](170, 170) -> 167 -[69,1](171, 170) -> 168 -[69,1](172, 170) -> 169 -[70,1](173, 173) -> 170 -[70,1](174, 173) -> 171 -[70,1](175, 173) -> 172 -[c0,1] -> 173 -[a,1] -> 174 -[b,1] -> 175 -Constraints -34359738367 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/36/circuit.qasm b/benchmarks/all/OEGrover/36/circuit.qasm index 03c5bd812..804d26af5 100644 --- a/benchmarks/all/OEGrover/36/circuit.qasm +++ b/benchmarks/all/OEGrover/36/circuit.qasm @@ -1,94 +1,94 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[72]; +qreg qubits[71]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -ccx qubits[0], qubits[1], qubits[37]; -ccx qubits[2], qubits[37], qubits[38]; -ccx qubits[3], qubits[38], qubits[39]; -ccx qubits[4], qubits[39], qubits[40]; -ccx qubits[5], qubits[40], qubits[41]; -ccx qubits[6], qubits[41], qubits[42]; -ccx qubits[7], qubits[42], qubits[43]; -ccx qubits[8], qubits[43], qubits[44]; -ccx qubits[9], qubits[44], qubits[45]; -ccx qubits[10], qubits[45], qubits[46]; -ccx qubits[11], qubits[46], qubits[47]; -ccx qubits[12], qubits[47], qubits[48]; -ccx qubits[13], qubits[48], qubits[49]; -ccx qubits[14], qubits[49], qubits[50]; -ccx qubits[15], qubits[50], qubits[51]; -ccx qubits[16], qubits[51], qubits[52]; -ccx qubits[17], qubits[52], qubits[53]; -ccx qubits[18], qubits[53], qubits[54]; -ccx qubits[19], qubits[54], qubits[55]; -ccx qubits[20], qubits[55], qubits[56]; -ccx qubits[21], qubits[56], qubits[57]; -ccx qubits[22], qubits[57], qubits[58]; -ccx qubits[23], qubits[58], qubits[59]; -ccx qubits[24], qubits[59], qubits[60]; -ccx qubits[25], qubits[60], qubits[61]; -ccx qubits[26], qubits[61], qubits[62]; -ccx qubits[27], qubits[62], qubits[63]; -ccx qubits[28], qubits[63], qubits[64]; -ccx qubits[29], qubits[64], qubits[65]; -ccx qubits[30], qubits[65], qubits[66]; -ccx qubits[31], qubits[66], qubits[67]; -ccx qubits[32], qubits[67], qubits[68]; -ccx qubits[33], qubits[68], qubits[69]; -ccx qubits[34], qubits[69], qubits[70]; -cz qubits[70], qubits[35]; -ccx qubits[34], qubits[69], qubits[70]; -ccx qubits[33], qubits[68], qubits[69]; -ccx qubits[32], qubits[67], qubits[68]; -ccx qubits[31], qubits[66], qubits[67]; -ccx qubits[30], qubits[65], qubits[66]; -ccx qubits[29], qubits[64], qubits[65]; -ccx qubits[28], qubits[63], qubits[64]; -ccx qubits[27], qubits[62], qubits[63]; -ccx qubits[26], qubits[61], qubits[62]; -ccx qubits[25], qubits[60], qubits[61]; -ccx qubits[24], qubits[59], qubits[60]; -ccx qubits[23], qubits[58], qubits[59]; -ccx qubits[22], qubits[57], qubits[58]; -ccx qubits[21], qubits[56], qubits[57]; -ccx qubits[20], qubits[55], qubits[56]; -ccx qubits[19], qubits[54], qubits[55]; -ccx qubits[18], qubits[53], qubits[54]; -ccx qubits[17], qubits[52], qubits[53]; -ccx qubits[16], qubits[51], qubits[52]; -ccx qubits[15], qubits[50], qubits[51]; -ccx qubits[14], qubits[49], qubits[50]; -ccx qubits[13], qubits[48], qubits[49]; -ccx qubits[12], qubits[47], qubits[48]; -ccx qubits[11], qubits[46], qubits[47]; -ccx qubits[10], qubits[45], qubits[46]; -ccx qubits[9], qubits[44], qubits[45]; -ccx qubits[8], qubits[43], qubits[44]; -ccx qubits[7], qubits[42], qubits[43]; -ccx qubits[6], qubits[41], qubits[42]; -ccx qubits[5], qubits[40], qubits[41]; -ccx qubits[4], qubits[39], qubits[40]; -ccx qubits[3], qubits[38], qubits[39]; -ccx qubits[2], qubits[37], qubits[38]; -ccx qubits[0], qubits[1], qubits[37]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +cz qubits[68], qubits[69]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -109,215 +109,215 @@ x qubits[32]; x qubits[34]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -ccx qubits[0], qubits[1], qubits[37]; -ccx qubits[2], qubits[37], qubits[38]; -ccx qubits[3], qubits[38], qubits[39]; -ccx qubits[4], qubits[39], qubits[40]; -ccx qubits[5], qubits[40], qubits[41]; -ccx qubits[6], qubits[41], qubits[42]; -ccx qubits[7], qubits[42], qubits[43]; -ccx qubits[8], qubits[43], qubits[44]; -ccx qubits[9], qubits[44], qubits[45]; -ccx qubits[10], qubits[45], qubits[46]; -ccx qubits[11], qubits[46], qubits[47]; -ccx qubits[12], qubits[47], qubits[48]; -ccx qubits[13], qubits[48], qubits[49]; -ccx qubits[14], qubits[49], qubits[50]; -ccx qubits[15], qubits[50], qubits[51]; -ccx qubits[16], qubits[51], qubits[52]; -ccx qubits[17], qubits[52], qubits[53]; -ccx qubits[18], qubits[53], qubits[54]; -ccx qubits[19], qubits[54], qubits[55]; -ccx qubits[20], qubits[55], qubits[56]; -ccx qubits[21], qubits[56], qubits[57]; -ccx qubits[22], qubits[57], qubits[58]; -ccx qubits[23], qubits[58], qubits[59]; -ccx qubits[24], qubits[59], qubits[60]; -ccx qubits[25], qubits[60], qubits[61]; -ccx qubits[26], qubits[61], qubits[62]; -ccx qubits[27], qubits[62], qubits[63]; -ccx qubits[28], qubits[63], qubits[64]; -ccx qubits[29], qubits[64], qubits[65]; -ccx qubits[30], qubits[65], qubits[66]; -ccx qubits[31], qubits[66], qubits[67]; -ccx qubits[32], qubits[67], qubits[68]; -ccx qubits[33], qubits[68], qubits[69]; -ccx qubits[34], qubits[69], qubits[70]; -cz qubits[70], qubits[35]; -ccx qubits[34], qubits[69], qubits[70]; -ccx qubits[33], qubits[68], qubits[69]; -ccx qubits[32], qubits[67], qubits[68]; -ccx qubits[31], qubits[66], qubits[67]; -ccx qubits[30], qubits[65], qubits[66]; -ccx qubits[29], qubits[64], qubits[65]; -ccx qubits[28], qubits[63], qubits[64]; -ccx qubits[27], qubits[62], qubits[63]; -ccx qubits[26], qubits[61], qubits[62]; -ccx qubits[25], qubits[60], qubits[61]; -ccx qubits[24], qubits[59], qubits[60]; -ccx qubits[23], qubits[58], qubits[59]; -ccx qubits[22], qubits[57], qubits[58]; -ccx qubits[21], qubits[56], qubits[57]; -ccx qubits[20], qubits[55], qubits[56]; -ccx qubits[19], qubits[54], qubits[55]; -ccx qubits[18], qubits[53], qubits[54]; -ccx qubits[17], qubits[52], qubits[53]; -ccx qubits[16], qubits[51], qubits[52]; -ccx qubits[15], qubits[50], qubits[51]; -ccx qubits[14], qubits[49], qubits[50]; -ccx qubits[13], qubits[48], qubits[49]; -ccx qubits[12], qubits[47], qubits[48]; -ccx qubits[11], qubits[46], qubits[47]; -ccx qubits[10], qubits[45], qubits[46]; -ccx qubits[9], qubits[44], qubits[45]; -ccx qubits[8], qubits[43], qubits[44]; -ccx qubits[7], qubits[42], qubits[43]; -ccx qubits[6], qubits[41], qubits[42]; -ccx qubits[5], qubits[40], qubits[41]; -ccx qubits[4], qubits[39], qubits[40]; -ccx qubits[3], qubits[38], qubits[39]; -ccx qubits[2], qubits[37], qubits[38]; -ccx qubits[0], qubits[1], qubits[37]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +cz qubits[68], qubits[69]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -z qubits[36]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +z qubits[70]; diff --git a/benchmarks/all/OEGrover/36/post.hsl b/benchmarks/all/OEGrover/36/post.hsl index 31602d53b..ab992cffb 100644 --- a/benchmarks/all/OEGrover/36/post.hsl +++ b/benchmarks/all/OEGrover/36/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101100000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 17 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/36/post.lsta b/benchmarks/all/OEGrover/36/post.lsta deleted file mode 100644 index 17b347009..000000000 --- a/benchmarks/all/OEGrover/36/post.lsta +++ /dev/null @@ -1,187 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 74) -> 71 -[37,1](73, 75) -> 72 -[38,1](76, 76) -> 73 -[38,1](77, 76) -> 74 -[38,1](78, 76) -> 75 -[39,1](79, 79) -> 76 -[39,1](80, 79) -> 77 -[39,1](81, 79) -> 78 -[40,1](82, 82) -> 79 -[40,1](83, 82) -> 80 -[40,1](84, 82) -> 81 -[41,1](85, 85) -> 82 -[41,1](86, 85) -> 83 -[41,1](87, 85) -> 84 -[42,1](88, 88) -> 85 -[42,1](89, 88) -> 86 -[42,1](90, 88) -> 87 -[43,1](91, 91) -> 88 -[43,1](92, 91) -> 89 -[43,1](93, 91) -> 90 -[44,1](94, 94) -> 91 -[44,1](95, 94) -> 92 -[44,1](96, 94) -> 93 -[45,1](97, 97) -> 94 -[45,1](98, 97) -> 95 -[45,1](99, 97) -> 96 -[46,1](100, 100) -> 97 -[46,1](101, 100) -> 98 -[46,1](102, 100) -> 99 -[47,1](103, 103) -> 100 -[47,1](104, 103) -> 101 -[47,1](105, 103) -> 102 -[48,1](106, 106) -> 103 -[48,1](107, 106) -> 104 -[48,1](108, 106) -> 105 -[49,1](109, 109) -> 106 -[49,1](110, 109) -> 107 -[49,1](111, 109) -> 108 -[50,1](112, 112) -> 109 -[50,1](113, 112) -> 110 -[50,1](114, 112) -> 111 -[51,1](115, 115) -> 112 -[51,1](116, 115) -> 113 -[51,1](117, 115) -> 114 -[52,1](118, 118) -> 115 -[52,1](119, 118) -> 116 -[52,1](120, 118) -> 117 -[53,1](121, 121) -> 118 -[53,1](122, 121) -> 119 -[53,1](123, 121) -> 120 -[54,1](124, 124) -> 121 -[54,1](125, 124) -> 122 -[54,1](126, 124) -> 123 -[55,1](127, 127) -> 124 -[55,1](128, 127) -> 125 -[55,1](129, 127) -> 126 -[56,1](130, 130) -> 127 -[56,1](131, 130) -> 128 -[56,1](132, 130) -> 129 -[57,1](133, 133) -> 130 -[57,1](134, 133) -> 131 -[57,1](135, 133) -> 132 -[58,1](136, 136) -> 133 -[58,1](137, 136) -> 134 -[58,1](138, 136) -> 135 -[59,1](139, 139) -> 136 -[59,1](140, 139) -> 137 -[59,1](141, 139) -> 138 -[60,1](142, 142) -> 139 -[60,1](143, 142) -> 140 -[60,1](144, 142) -> 141 -[61,1](145, 145) -> 142 -[61,1](146, 145) -> 143 -[61,1](147, 145) -> 144 -[62,1](148, 148) -> 145 -[62,1](149, 148) -> 146 -[62,1](150, 148) -> 147 -[63,1](151, 151) -> 148 -[63,1](152, 151) -> 149 -[63,1](153, 151) -> 150 -[64,1](154, 154) -> 151 -[64,1](155, 154) -> 152 -[64,1](156, 154) -> 153 -[65,1](157, 157) -> 154 -[65,1](158, 157) -> 155 -[65,1](159, 157) -> 156 -[66,1](160, 160) -> 157 -[66,1](161, 160) -> 158 -[66,1](162, 160) -> 159 -[67,1](163, 163) -> 160 -[67,1](164, 163) -> 161 -[67,1](165, 163) -> 162 -[68,1](166, 166) -> 163 -[68,1](167, 166) -> 164 -[68,1](168, 166) -> 165 -[69,1](169, 169) -> 166 -[69,1](170, 169) -> 167 -[69,1](171, 169) -> 168 -[70,1](172, 172) -> 169 -[70,1](173, 172) -> 170 -[70,1](174, 172) -> 171 -[71,1](175, 175) -> 172 -[71,1](176, 175) -> 173 -[71,1](177, 175) -> 174 -[72,1](178, 178) -> 175 -[72,1](179, 178) -> 176 -[72,1](180, 178) -> 177 -[p1,1] -> 178 -[p2,1] -> 179 -[p3,1] -> 180 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/36/pre.hsl b/benchmarks/all/OEGrover/36/pre.hsl index 9e3aba244..4279c70f2 100644 --- a/benchmarks/all/OEGrover/36/pre.hsl +++ b/benchmarks/all/OEGrover/36/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 17 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 68719476735 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/36/pre.lsta b/benchmarks/all/OEGrover/36/pre.lsta deleted file mode 100644 index 54a80b793..000000000 --- a/benchmarks/all/OEGrover/36/pre.lsta +++ /dev/null @@ -1,191 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 74) -> 71 -[37,1](73, 75) -> 72 -[38,1](76, 76) -> 73 -[38,1](77, 76) -> 74 -[38,1](78, 76) -> 75 -[39,1](79, 79) -> 76 -[39,1](80, 79) -> 77 -[39,1](81, 79) -> 78 -[40,1](82, 82) -> 79 -[40,1](83, 82) -> 80 -[40,1](84, 82) -> 81 -[41,1](85, 85) -> 82 -[41,1](86, 85) -> 83 -[41,1](87, 85) -> 84 -[42,1](88, 88) -> 85 -[42,1](89, 88) -> 86 -[42,1](90, 88) -> 87 -[43,1](91, 91) -> 88 -[43,1](92, 91) -> 89 -[43,1](93, 91) -> 90 -[44,1](94, 94) -> 91 -[44,1](95, 94) -> 92 -[44,1](96, 94) -> 93 -[45,1](97, 97) -> 94 -[45,1](98, 97) -> 95 -[45,1](99, 97) -> 96 -[46,1](100, 100) -> 97 -[46,1](101, 100) -> 98 -[46,1](102, 100) -> 99 -[47,1](103, 103) -> 100 -[47,1](104, 103) -> 101 -[47,1](105, 103) -> 102 -[48,1](106, 106) -> 103 -[48,1](107, 106) -> 104 -[48,1](108, 106) -> 105 -[49,1](109, 109) -> 106 -[49,1](110, 109) -> 107 -[49,1](111, 109) -> 108 -[50,1](112, 112) -> 109 -[50,1](113, 112) -> 110 -[50,1](114, 112) -> 111 -[51,1](115, 115) -> 112 -[51,1](116, 115) -> 113 -[51,1](117, 115) -> 114 -[52,1](118, 118) -> 115 -[52,1](119, 118) -> 116 -[52,1](120, 118) -> 117 -[53,1](121, 121) -> 118 -[53,1](122, 121) -> 119 -[53,1](123, 121) -> 120 -[54,1](124, 124) -> 121 -[54,1](125, 124) -> 122 -[54,1](126, 124) -> 123 -[55,1](127, 127) -> 124 -[55,1](128, 127) -> 125 -[55,1](129, 127) -> 126 -[56,1](130, 130) -> 127 -[56,1](131, 130) -> 128 -[56,1](132, 130) -> 129 -[57,1](133, 133) -> 130 -[57,1](134, 133) -> 131 -[57,1](135, 133) -> 132 -[58,1](136, 136) -> 133 -[58,1](137, 136) -> 134 -[58,1](138, 136) -> 135 -[59,1](139, 139) -> 136 -[59,1](140, 139) -> 137 -[59,1](141, 139) -> 138 -[60,1](142, 142) -> 139 -[60,1](143, 142) -> 140 -[60,1](144, 142) -> 141 -[61,1](145, 145) -> 142 -[61,1](146, 145) -> 143 -[61,1](147, 145) -> 144 -[62,1](148, 148) -> 145 -[62,1](149, 148) -> 146 -[62,1](150, 148) -> 147 -[63,1](151, 151) -> 148 -[63,1](152, 151) -> 149 -[63,1](153, 151) -> 150 -[64,1](154, 154) -> 151 -[64,1](155, 154) -> 152 -[64,1](156, 154) -> 153 -[65,1](157, 157) -> 154 -[65,1](158, 157) -> 155 -[65,1](159, 157) -> 156 -[66,1](160, 160) -> 157 -[66,1](161, 160) -> 158 -[66,1](162, 160) -> 159 -[67,1](163, 163) -> 160 -[67,1](164, 163) -> 161 -[67,1](165, 163) -> 162 -[68,1](166, 166) -> 163 -[68,1](167, 166) -> 164 -[68,1](168, 166) -> 165 -[69,1](169, 169) -> 166 -[69,1](170, 169) -> 167 -[69,1](171, 169) -> 168 -[70,1](172, 172) -> 169 -[70,1](173, 172) -> 170 -[70,1](174, 172) -> 171 -[71,1](175, 175) -> 172 -[71,1](176, 175) -> 173 -[71,1](177, 175) -> 174 -[72,1](178, 178) -> 175 -[72,1](179, 178) -> 176 -[72,1](180, 178) -> 177 -[c0,1] -> 178 -[a,1] -> 179 -[b,1] -> 180 -Constraints -68719476735 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/37/circuit.qasm b/benchmarks/all/OEGrover/37/circuit.qasm index c18357b5b..2292a7e56 100644 --- a/benchmarks/all/OEGrover/37/circuit.qasm +++ b/benchmarks/all/OEGrover/37/circuit.qasm @@ -1,97 +1,97 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[74]; +qreg qubits[73]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -ccx qubits[0], qubits[1], qubits[38]; -ccx qubits[2], qubits[38], qubits[39]; -ccx qubits[3], qubits[39], qubits[40]; -ccx qubits[4], qubits[40], qubits[41]; -ccx qubits[5], qubits[41], qubits[42]; -ccx qubits[6], qubits[42], qubits[43]; -ccx qubits[7], qubits[43], qubits[44]; -ccx qubits[8], qubits[44], qubits[45]; -ccx qubits[9], qubits[45], qubits[46]; -ccx qubits[10], qubits[46], qubits[47]; -ccx qubits[11], qubits[47], qubits[48]; -ccx qubits[12], qubits[48], qubits[49]; -ccx qubits[13], qubits[49], qubits[50]; -ccx qubits[14], qubits[50], qubits[51]; -ccx qubits[15], qubits[51], qubits[52]; -ccx qubits[16], qubits[52], qubits[53]; -ccx qubits[17], qubits[53], qubits[54]; -ccx qubits[18], qubits[54], qubits[55]; -ccx qubits[19], qubits[55], qubits[56]; -ccx qubits[20], qubits[56], qubits[57]; -ccx qubits[21], qubits[57], qubits[58]; -ccx qubits[22], qubits[58], qubits[59]; -ccx qubits[23], qubits[59], qubits[60]; -ccx qubits[24], qubits[60], qubits[61]; -ccx qubits[25], qubits[61], qubits[62]; -ccx qubits[26], qubits[62], qubits[63]; -ccx qubits[27], qubits[63], qubits[64]; -ccx qubits[28], qubits[64], qubits[65]; -ccx qubits[29], qubits[65], qubits[66]; -ccx qubits[30], qubits[66], qubits[67]; -ccx qubits[31], qubits[67], qubits[68]; -ccx qubits[32], qubits[68], qubits[69]; -ccx qubits[33], qubits[69], qubits[70]; -ccx qubits[34], qubits[70], qubits[71]; -ccx qubits[35], qubits[71], qubits[72]; -cz qubits[72], qubits[36]; -ccx qubits[35], qubits[71], qubits[72]; -ccx qubits[34], qubits[70], qubits[71]; -ccx qubits[33], qubits[69], qubits[70]; -ccx qubits[32], qubits[68], qubits[69]; -ccx qubits[31], qubits[67], qubits[68]; -ccx qubits[30], qubits[66], qubits[67]; -ccx qubits[29], qubits[65], qubits[66]; -ccx qubits[28], qubits[64], qubits[65]; -ccx qubits[27], qubits[63], qubits[64]; -ccx qubits[26], qubits[62], qubits[63]; -ccx qubits[25], qubits[61], qubits[62]; -ccx qubits[24], qubits[60], qubits[61]; -ccx qubits[23], qubits[59], qubits[60]; -ccx qubits[22], qubits[58], qubits[59]; -ccx qubits[21], qubits[57], qubits[58]; -ccx qubits[20], qubits[56], qubits[57]; -ccx qubits[19], qubits[55], qubits[56]; -ccx qubits[18], qubits[54], qubits[55]; -ccx qubits[17], qubits[53], qubits[54]; -ccx qubits[16], qubits[52], qubits[53]; -ccx qubits[15], qubits[51], qubits[52]; -ccx qubits[14], qubits[50], qubits[51]; -ccx qubits[13], qubits[49], qubits[50]; -ccx qubits[12], qubits[48], qubits[49]; -ccx qubits[11], qubits[47], qubits[48]; -ccx qubits[10], qubits[46], qubits[47]; -ccx qubits[9], qubits[45], qubits[46]; -ccx qubits[8], qubits[44], qubits[45]; -ccx qubits[7], qubits[43], qubits[44]; -ccx qubits[6], qubits[42], qubits[43]; -ccx qubits[5], qubits[41], qubits[42]; -ccx qubits[4], qubits[40], qubits[41]; -ccx qubits[3], qubits[39], qubits[40]; -ccx qubits[2], qubits[38], qubits[39]; -ccx qubits[0], qubits[1], qubits[38]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +cz qubits[70], qubits[71]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -113,221 +113,221 @@ x qubits[34]; x qubits[36]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; -ccx qubits[0], qubits[1], qubits[38]; -ccx qubits[2], qubits[38], qubits[39]; -ccx qubits[3], qubits[39], qubits[40]; -ccx qubits[4], qubits[40], qubits[41]; -ccx qubits[5], qubits[41], qubits[42]; -ccx qubits[6], qubits[42], qubits[43]; -ccx qubits[7], qubits[43], qubits[44]; -ccx qubits[8], qubits[44], qubits[45]; -ccx qubits[9], qubits[45], qubits[46]; -ccx qubits[10], qubits[46], qubits[47]; -ccx qubits[11], qubits[47], qubits[48]; -ccx qubits[12], qubits[48], qubits[49]; -ccx qubits[13], qubits[49], qubits[50]; -ccx qubits[14], qubits[50], qubits[51]; -ccx qubits[15], qubits[51], qubits[52]; -ccx qubits[16], qubits[52], qubits[53]; -ccx qubits[17], qubits[53], qubits[54]; -ccx qubits[18], qubits[54], qubits[55]; -ccx qubits[19], qubits[55], qubits[56]; -ccx qubits[20], qubits[56], qubits[57]; -ccx qubits[21], qubits[57], qubits[58]; -ccx qubits[22], qubits[58], qubits[59]; -ccx qubits[23], qubits[59], qubits[60]; -ccx qubits[24], qubits[60], qubits[61]; -ccx qubits[25], qubits[61], qubits[62]; -ccx qubits[26], qubits[62], qubits[63]; -ccx qubits[27], qubits[63], qubits[64]; -ccx qubits[28], qubits[64], qubits[65]; -ccx qubits[29], qubits[65], qubits[66]; -ccx qubits[30], qubits[66], qubits[67]; -ccx qubits[31], qubits[67], qubits[68]; -ccx qubits[32], qubits[68], qubits[69]; -ccx qubits[33], qubits[69], qubits[70]; -ccx qubits[34], qubits[70], qubits[71]; -ccx qubits[35], qubits[71], qubits[72]; -cz qubits[72], qubits[36]; -ccx qubits[35], qubits[71], qubits[72]; -ccx qubits[34], qubits[70], qubits[71]; -ccx qubits[33], qubits[69], qubits[70]; -ccx qubits[32], qubits[68], qubits[69]; -ccx qubits[31], qubits[67], qubits[68]; -ccx qubits[30], qubits[66], qubits[67]; -ccx qubits[29], qubits[65], qubits[66]; -ccx qubits[28], qubits[64], qubits[65]; -ccx qubits[27], qubits[63], qubits[64]; -ccx qubits[26], qubits[62], qubits[63]; -ccx qubits[25], qubits[61], qubits[62]; -ccx qubits[24], qubits[60], qubits[61]; -ccx qubits[23], qubits[59], qubits[60]; -ccx qubits[22], qubits[58], qubits[59]; -ccx qubits[21], qubits[57], qubits[58]; -ccx qubits[20], qubits[56], qubits[57]; -ccx qubits[19], qubits[55], qubits[56]; -ccx qubits[18], qubits[54], qubits[55]; -ccx qubits[17], qubits[53], qubits[54]; -ccx qubits[16], qubits[52], qubits[53]; -ccx qubits[15], qubits[51], qubits[52]; -ccx qubits[14], qubits[50], qubits[51]; -ccx qubits[13], qubits[49], qubits[50]; -ccx qubits[12], qubits[48], qubits[49]; -ccx qubits[11], qubits[47], qubits[48]; -ccx qubits[10], qubits[46], qubits[47]; -ccx qubits[9], qubits[45], qubits[46]; -ccx qubits[8], qubits[44], qubits[45]; -ccx qubits[7], qubits[43], qubits[44]; -ccx qubits[6], qubits[42], qubits[43]; -ccx qubits[5], qubits[41], qubits[42]; -ccx qubits[4], qubits[40], qubits[41]; -ccx qubits[3], qubits[39], qubits[40]; -ccx qubits[2], qubits[38], qubits[39]; -ccx qubits[0], qubits[1], qubits[38]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +cz qubits[70], qubits[71]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; +x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; -z qubits[37]; +h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +z qubits[72]; diff --git a/benchmarks/all/OEGrover/37/post.hsl b/benchmarks/all/OEGrover/37/post.hsl index 6d96eee6f..7f40ceec5 100644 --- a/benchmarks/all/OEGrover/37/post.hsl +++ b/benchmarks/all/OEGrover/37/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 17 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/37/post.lsta b/benchmarks/all/OEGrover/37/post.lsta deleted file mode 100644 index acf50ddad..000000000 --- a/benchmarks/all/OEGrover/37/post.lsta +++ /dev/null @@ -1,192 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 76) -> 73 -[38,1](75, 77) -> 74 -[39,1](78, 78) -> 75 -[39,1](79, 78) -> 76 -[39,1](80, 78) -> 77 -[40,1](81, 81) -> 78 -[40,1](82, 81) -> 79 -[40,1](83, 81) -> 80 -[41,1](84, 84) -> 81 -[41,1](85, 84) -> 82 -[41,1](86, 84) -> 83 -[42,1](87, 87) -> 84 -[42,1](88, 87) -> 85 -[42,1](89, 87) -> 86 -[43,1](90, 90) -> 87 -[43,1](91, 90) -> 88 -[43,1](92, 90) -> 89 -[44,1](93, 93) -> 90 -[44,1](94, 93) -> 91 -[44,1](95, 93) -> 92 -[45,1](96, 96) -> 93 -[45,1](97, 96) -> 94 -[45,1](98, 96) -> 95 -[46,1](99, 99) -> 96 -[46,1](100, 99) -> 97 -[46,1](101, 99) -> 98 -[47,1](102, 102) -> 99 -[47,1](103, 102) -> 100 -[47,1](104, 102) -> 101 -[48,1](105, 105) -> 102 -[48,1](106, 105) -> 103 -[48,1](107, 105) -> 104 -[49,1](108, 108) -> 105 -[49,1](109, 108) -> 106 -[49,1](110, 108) -> 107 -[50,1](111, 111) -> 108 -[50,1](112, 111) -> 109 -[50,1](113, 111) -> 110 -[51,1](114, 114) -> 111 -[51,1](115, 114) -> 112 -[51,1](116, 114) -> 113 -[52,1](117, 117) -> 114 -[52,1](118, 117) -> 115 -[52,1](119, 117) -> 116 -[53,1](120, 120) -> 117 -[53,1](121, 120) -> 118 -[53,1](122, 120) -> 119 -[54,1](123, 123) -> 120 -[54,1](124, 123) -> 121 -[54,1](125, 123) -> 122 -[55,1](126, 126) -> 123 -[55,1](127, 126) -> 124 -[55,1](128, 126) -> 125 -[56,1](129, 129) -> 126 -[56,1](130, 129) -> 127 -[56,1](131, 129) -> 128 -[57,1](132, 132) -> 129 -[57,1](133, 132) -> 130 -[57,1](134, 132) -> 131 -[58,1](135, 135) -> 132 -[58,1](136, 135) -> 133 -[58,1](137, 135) -> 134 -[59,1](138, 138) -> 135 -[59,1](139, 138) -> 136 -[59,1](140, 138) -> 137 -[60,1](141, 141) -> 138 -[60,1](142, 141) -> 139 -[60,1](143, 141) -> 140 -[61,1](144, 144) -> 141 -[61,1](145, 144) -> 142 -[61,1](146, 144) -> 143 -[62,1](147, 147) -> 144 -[62,1](148, 147) -> 145 -[62,1](149, 147) -> 146 -[63,1](150, 150) -> 147 -[63,1](151, 150) -> 148 -[63,1](152, 150) -> 149 -[64,1](153, 153) -> 150 -[64,1](154, 153) -> 151 -[64,1](155, 153) -> 152 -[65,1](156, 156) -> 153 -[65,1](157, 156) -> 154 -[65,1](158, 156) -> 155 -[66,1](159, 159) -> 156 -[66,1](160, 159) -> 157 -[66,1](161, 159) -> 158 -[67,1](162, 162) -> 159 -[67,1](163, 162) -> 160 -[67,1](164, 162) -> 161 -[68,1](165, 165) -> 162 -[68,1](166, 165) -> 163 -[68,1](167, 165) -> 164 -[69,1](168, 168) -> 165 -[69,1](169, 168) -> 166 -[69,1](170, 168) -> 167 -[70,1](171, 171) -> 168 -[70,1](172, 171) -> 169 -[70,1](173, 171) -> 170 -[71,1](174, 174) -> 171 -[71,1](175, 174) -> 172 -[71,1](176, 174) -> 173 -[72,1](177, 177) -> 174 -[72,1](178, 177) -> 175 -[72,1](179, 177) -> 176 -[73,1](180, 180) -> 177 -[73,1](181, 180) -> 178 -[73,1](182, 180) -> 179 -[74,1](183, 183) -> 180 -[74,1](184, 183) -> 181 -[74,1](185, 183) -> 182 -[p1,1] -> 183 -[p2,1] -> 184 -[p3,1] -> 185 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/37/pre.hsl b/benchmarks/all/OEGrover/37/pre.hsl index a1db3b484..3e8af2b63 100644 --- a/benchmarks/all/OEGrover/37/pre.hsl +++ b/benchmarks/all/OEGrover/37/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 17 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 137438953471 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/37/pre.lsta b/benchmarks/all/OEGrover/37/pre.lsta deleted file mode 100644 index 2b6702827..000000000 --- a/benchmarks/all/OEGrover/37/pre.lsta +++ /dev/null @@ -1,196 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 76) -> 73 -[38,1](75, 77) -> 74 -[39,1](78, 78) -> 75 -[39,1](79, 78) -> 76 -[39,1](80, 78) -> 77 -[40,1](81, 81) -> 78 -[40,1](82, 81) -> 79 -[40,1](83, 81) -> 80 -[41,1](84, 84) -> 81 -[41,1](85, 84) -> 82 -[41,1](86, 84) -> 83 -[42,1](87, 87) -> 84 -[42,1](88, 87) -> 85 -[42,1](89, 87) -> 86 -[43,1](90, 90) -> 87 -[43,1](91, 90) -> 88 -[43,1](92, 90) -> 89 -[44,1](93, 93) -> 90 -[44,1](94, 93) -> 91 -[44,1](95, 93) -> 92 -[45,1](96, 96) -> 93 -[45,1](97, 96) -> 94 -[45,1](98, 96) -> 95 -[46,1](99, 99) -> 96 -[46,1](100, 99) -> 97 -[46,1](101, 99) -> 98 -[47,1](102, 102) -> 99 -[47,1](103, 102) -> 100 -[47,1](104, 102) -> 101 -[48,1](105, 105) -> 102 -[48,1](106, 105) -> 103 -[48,1](107, 105) -> 104 -[49,1](108, 108) -> 105 -[49,1](109, 108) -> 106 -[49,1](110, 108) -> 107 -[50,1](111, 111) -> 108 -[50,1](112, 111) -> 109 -[50,1](113, 111) -> 110 -[51,1](114, 114) -> 111 -[51,1](115, 114) -> 112 -[51,1](116, 114) -> 113 -[52,1](117, 117) -> 114 -[52,1](118, 117) -> 115 -[52,1](119, 117) -> 116 -[53,1](120, 120) -> 117 -[53,1](121, 120) -> 118 -[53,1](122, 120) -> 119 -[54,1](123, 123) -> 120 -[54,1](124, 123) -> 121 -[54,1](125, 123) -> 122 -[55,1](126, 126) -> 123 -[55,1](127, 126) -> 124 -[55,1](128, 126) -> 125 -[56,1](129, 129) -> 126 -[56,1](130, 129) -> 127 -[56,1](131, 129) -> 128 -[57,1](132, 132) -> 129 -[57,1](133, 132) -> 130 -[57,1](134, 132) -> 131 -[58,1](135, 135) -> 132 -[58,1](136, 135) -> 133 -[58,1](137, 135) -> 134 -[59,1](138, 138) -> 135 -[59,1](139, 138) -> 136 -[59,1](140, 138) -> 137 -[60,1](141, 141) -> 138 -[60,1](142, 141) -> 139 -[60,1](143, 141) -> 140 -[61,1](144, 144) -> 141 -[61,1](145, 144) -> 142 -[61,1](146, 144) -> 143 -[62,1](147, 147) -> 144 -[62,1](148, 147) -> 145 -[62,1](149, 147) -> 146 -[63,1](150, 150) -> 147 -[63,1](151, 150) -> 148 -[63,1](152, 150) -> 149 -[64,1](153, 153) -> 150 -[64,1](154, 153) -> 151 -[64,1](155, 153) -> 152 -[65,1](156, 156) -> 153 -[65,1](157, 156) -> 154 -[65,1](158, 156) -> 155 -[66,1](159, 159) -> 156 -[66,1](160, 159) -> 157 -[66,1](161, 159) -> 158 -[67,1](162, 162) -> 159 -[67,1](163, 162) -> 160 -[67,1](164, 162) -> 161 -[68,1](165, 165) -> 162 -[68,1](166, 165) -> 163 -[68,1](167, 165) -> 164 -[69,1](168, 168) -> 165 -[69,1](169, 168) -> 166 -[69,1](170, 168) -> 167 -[70,1](171, 171) -> 168 -[70,1](172, 171) -> 169 -[70,1](173, 171) -> 170 -[71,1](174, 174) -> 171 -[71,1](175, 174) -> 172 -[71,1](176, 174) -> 173 -[72,1](177, 177) -> 174 -[72,1](178, 177) -> 175 -[72,1](179, 177) -> 176 -[73,1](180, 180) -> 177 -[73,1](181, 180) -> 178 -[73,1](182, 180) -> 179 -[74,1](183, 183) -> 180 -[74,1](184, 183) -> 181 -[74,1](185, 183) -> 182 -[c0,1] -> 183 -[a,1] -> 184 -[b,1] -> 185 -Constraints -137438953471 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/38/circuit.qasm b/benchmarks/all/OEGrover/38/circuit.qasm index d274fbefb..f22ec53f0 100644 --- a/benchmarks/all/OEGrover/38/circuit.qasm +++ b/benchmarks/all/OEGrover/38/circuit.qasm @@ -1,99 +1,99 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[76]; +qreg qubits[75]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -ccx qubits[0], qubits[1], qubits[39]; -ccx qubits[2], qubits[39], qubits[40]; -ccx qubits[3], qubits[40], qubits[41]; -ccx qubits[4], qubits[41], qubits[42]; -ccx qubits[5], qubits[42], qubits[43]; -ccx qubits[6], qubits[43], qubits[44]; -ccx qubits[7], qubits[44], qubits[45]; -ccx qubits[8], qubits[45], qubits[46]; -ccx qubits[9], qubits[46], qubits[47]; -ccx qubits[10], qubits[47], qubits[48]; -ccx qubits[11], qubits[48], qubits[49]; -ccx qubits[12], qubits[49], qubits[50]; -ccx qubits[13], qubits[50], qubits[51]; -ccx qubits[14], qubits[51], qubits[52]; -ccx qubits[15], qubits[52], qubits[53]; -ccx qubits[16], qubits[53], qubits[54]; -ccx qubits[17], qubits[54], qubits[55]; -ccx qubits[18], qubits[55], qubits[56]; -ccx qubits[19], qubits[56], qubits[57]; -ccx qubits[20], qubits[57], qubits[58]; -ccx qubits[21], qubits[58], qubits[59]; -ccx qubits[22], qubits[59], qubits[60]; -ccx qubits[23], qubits[60], qubits[61]; -ccx qubits[24], qubits[61], qubits[62]; -ccx qubits[25], qubits[62], qubits[63]; -ccx qubits[26], qubits[63], qubits[64]; -ccx qubits[27], qubits[64], qubits[65]; -ccx qubits[28], qubits[65], qubits[66]; -ccx qubits[29], qubits[66], qubits[67]; -ccx qubits[30], qubits[67], qubits[68]; -ccx qubits[31], qubits[68], qubits[69]; -ccx qubits[32], qubits[69], qubits[70]; -ccx qubits[33], qubits[70], qubits[71]; -ccx qubits[34], qubits[71], qubits[72]; -ccx qubits[35], qubits[72], qubits[73]; -ccx qubits[36], qubits[73], qubits[74]; -cz qubits[74], qubits[37]; -ccx qubits[36], qubits[73], qubits[74]; -ccx qubits[35], qubits[72], qubits[73]; -ccx qubits[34], qubits[71], qubits[72]; -ccx qubits[33], qubits[70], qubits[71]; -ccx qubits[32], qubits[69], qubits[70]; -ccx qubits[31], qubits[68], qubits[69]; -ccx qubits[30], qubits[67], qubits[68]; -ccx qubits[29], qubits[66], qubits[67]; -ccx qubits[28], qubits[65], qubits[66]; -ccx qubits[27], qubits[64], qubits[65]; -ccx qubits[26], qubits[63], qubits[64]; -ccx qubits[25], qubits[62], qubits[63]; -ccx qubits[24], qubits[61], qubits[62]; -ccx qubits[23], qubits[60], qubits[61]; -ccx qubits[22], qubits[59], qubits[60]; -ccx qubits[21], qubits[58], qubits[59]; -ccx qubits[20], qubits[57], qubits[58]; -ccx qubits[19], qubits[56], qubits[57]; -ccx qubits[18], qubits[55], qubits[56]; -ccx qubits[17], qubits[54], qubits[55]; -ccx qubits[16], qubits[53], qubits[54]; -ccx qubits[15], qubits[52], qubits[53]; -ccx qubits[14], qubits[51], qubits[52]; -ccx qubits[13], qubits[50], qubits[51]; -ccx qubits[12], qubits[49], qubits[50]; -ccx qubits[11], qubits[48], qubits[49]; -ccx qubits[10], qubits[47], qubits[48]; -ccx qubits[9], qubits[46], qubits[47]; -ccx qubits[8], qubits[45], qubits[46]; -ccx qubits[7], qubits[44], qubits[45]; -ccx qubits[6], qubits[43], qubits[44]; -ccx qubits[5], qubits[42], qubits[43]; -ccx qubits[4], qubits[41], qubits[42]; -ccx qubits[3], qubits[40], qubits[41]; -ccx qubits[2], qubits[39], qubits[40]; -ccx qubits[0], qubits[1], qubits[39]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +cz qubits[72], qubits[73]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -115,227 +115,227 @@ x qubits[34]; x qubits[36]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -ccx qubits[0], qubits[1], qubits[39]; -ccx qubits[2], qubits[39], qubits[40]; -ccx qubits[3], qubits[40], qubits[41]; -ccx qubits[4], qubits[41], qubits[42]; -ccx qubits[5], qubits[42], qubits[43]; -ccx qubits[6], qubits[43], qubits[44]; -ccx qubits[7], qubits[44], qubits[45]; -ccx qubits[8], qubits[45], qubits[46]; -ccx qubits[9], qubits[46], qubits[47]; -ccx qubits[10], qubits[47], qubits[48]; -ccx qubits[11], qubits[48], qubits[49]; -ccx qubits[12], qubits[49], qubits[50]; -ccx qubits[13], qubits[50], qubits[51]; -ccx qubits[14], qubits[51], qubits[52]; -ccx qubits[15], qubits[52], qubits[53]; -ccx qubits[16], qubits[53], qubits[54]; -ccx qubits[17], qubits[54], qubits[55]; -ccx qubits[18], qubits[55], qubits[56]; -ccx qubits[19], qubits[56], qubits[57]; -ccx qubits[20], qubits[57], qubits[58]; -ccx qubits[21], qubits[58], qubits[59]; -ccx qubits[22], qubits[59], qubits[60]; -ccx qubits[23], qubits[60], qubits[61]; -ccx qubits[24], qubits[61], qubits[62]; -ccx qubits[25], qubits[62], qubits[63]; -ccx qubits[26], qubits[63], qubits[64]; -ccx qubits[27], qubits[64], qubits[65]; -ccx qubits[28], qubits[65], qubits[66]; -ccx qubits[29], qubits[66], qubits[67]; -ccx qubits[30], qubits[67], qubits[68]; -ccx qubits[31], qubits[68], qubits[69]; -ccx qubits[32], qubits[69], qubits[70]; -ccx qubits[33], qubits[70], qubits[71]; -ccx qubits[34], qubits[71], qubits[72]; -ccx qubits[35], qubits[72], qubits[73]; -ccx qubits[36], qubits[73], qubits[74]; -cz qubits[74], qubits[37]; -ccx qubits[36], qubits[73], qubits[74]; -ccx qubits[35], qubits[72], qubits[73]; -ccx qubits[34], qubits[71], qubits[72]; -ccx qubits[33], qubits[70], qubits[71]; -ccx qubits[32], qubits[69], qubits[70]; -ccx qubits[31], qubits[68], qubits[69]; -ccx qubits[30], qubits[67], qubits[68]; -ccx qubits[29], qubits[66], qubits[67]; -ccx qubits[28], qubits[65], qubits[66]; -ccx qubits[27], qubits[64], qubits[65]; -ccx qubits[26], qubits[63], qubits[64]; -ccx qubits[25], qubits[62], qubits[63]; -ccx qubits[24], qubits[61], qubits[62]; -ccx qubits[23], qubits[60], qubits[61]; -ccx qubits[22], qubits[59], qubits[60]; -ccx qubits[21], qubits[58], qubits[59]; -ccx qubits[20], qubits[57], qubits[58]; -ccx qubits[19], qubits[56], qubits[57]; -ccx qubits[18], qubits[55], qubits[56]; -ccx qubits[17], qubits[54], qubits[55]; -ccx qubits[16], qubits[53], qubits[54]; -ccx qubits[15], qubits[52], qubits[53]; -ccx qubits[14], qubits[51], qubits[52]; -ccx qubits[13], qubits[50], qubits[51]; -ccx qubits[12], qubits[49], qubits[50]; -ccx qubits[11], qubits[48], qubits[49]; -ccx qubits[10], qubits[47], qubits[48]; -ccx qubits[9], qubits[46], qubits[47]; -ccx qubits[8], qubits[45], qubits[46]; -ccx qubits[7], qubits[44], qubits[45]; -ccx qubits[6], qubits[43], qubits[44]; -ccx qubits[5], qubits[42], qubits[43]; -ccx qubits[4], qubits[41], qubits[42]; -ccx qubits[3], qubits[40], qubits[41]; -ccx qubits[2], qubits[39], qubits[40]; -ccx qubits[0], qubits[1], qubits[39]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +cz qubits[72], qubits[73]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -z qubits[38]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +z qubits[74]; diff --git a/benchmarks/all/OEGrover/38/post.hsl b/benchmarks/all/OEGrover/38/post.hsl index 862433488..10606d5d9 100644 --- a/benchmarks/all/OEGrover/38/post.hsl +++ b/benchmarks/all/OEGrover/38/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010110000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 18 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/38/post.lsta b/benchmarks/all/OEGrover/38/post.lsta deleted file mode 100644 index 11e69f87b..000000000 --- a/benchmarks/all/OEGrover/38/post.lsta +++ /dev/null @@ -1,197 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 78) -> 75 -[39,1](77, 79) -> 76 -[40,1](80, 80) -> 77 -[40,1](81, 80) -> 78 -[40,1](82, 80) -> 79 -[41,1](83, 83) -> 80 -[41,1](84, 83) -> 81 -[41,1](85, 83) -> 82 -[42,1](86, 86) -> 83 -[42,1](87, 86) -> 84 -[42,1](88, 86) -> 85 -[43,1](89, 89) -> 86 -[43,1](90, 89) -> 87 -[43,1](91, 89) -> 88 -[44,1](92, 92) -> 89 -[44,1](93, 92) -> 90 -[44,1](94, 92) -> 91 -[45,1](95, 95) -> 92 -[45,1](96, 95) -> 93 -[45,1](97, 95) -> 94 -[46,1](98, 98) -> 95 -[46,1](99, 98) -> 96 -[46,1](100, 98) -> 97 -[47,1](101, 101) -> 98 -[47,1](102, 101) -> 99 -[47,1](103, 101) -> 100 -[48,1](104, 104) -> 101 -[48,1](105, 104) -> 102 -[48,1](106, 104) -> 103 -[49,1](107, 107) -> 104 -[49,1](108, 107) -> 105 -[49,1](109, 107) -> 106 -[50,1](110, 110) -> 107 -[50,1](111, 110) -> 108 -[50,1](112, 110) -> 109 -[51,1](113, 113) -> 110 -[51,1](114, 113) -> 111 -[51,1](115, 113) -> 112 -[52,1](116, 116) -> 113 -[52,1](117, 116) -> 114 -[52,1](118, 116) -> 115 -[53,1](119, 119) -> 116 -[53,1](120, 119) -> 117 -[53,1](121, 119) -> 118 -[54,1](122, 122) -> 119 -[54,1](123, 122) -> 120 -[54,1](124, 122) -> 121 -[55,1](125, 125) -> 122 -[55,1](126, 125) -> 123 -[55,1](127, 125) -> 124 -[56,1](128, 128) -> 125 -[56,1](129, 128) -> 126 -[56,1](130, 128) -> 127 -[57,1](131, 131) -> 128 -[57,1](132, 131) -> 129 -[57,1](133, 131) -> 130 -[58,1](134, 134) -> 131 -[58,1](135, 134) -> 132 -[58,1](136, 134) -> 133 -[59,1](137, 137) -> 134 -[59,1](138, 137) -> 135 -[59,1](139, 137) -> 136 -[60,1](140, 140) -> 137 -[60,1](141, 140) -> 138 -[60,1](142, 140) -> 139 -[61,1](143, 143) -> 140 -[61,1](144, 143) -> 141 -[61,1](145, 143) -> 142 -[62,1](146, 146) -> 143 -[62,1](147, 146) -> 144 -[62,1](148, 146) -> 145 -[63,1](149, 149) -> 146 -[63,1](150, 149) -> 147 -[63,1](151, 149) -> 148 -[64,1](152, 152) -> 149 -[64,1](153, 152) -> 150 -[64,1](154, 152) -> 151 -[65,1](155, 155) -> 152 -[65,1](156, 155) -> 153 -[65,1](157, 155) -> 154 -[66,1](158, 158) -> 155 -[66,1](159, 158) -> 156 -[66,1](160, 158) -> 157 -[67,1](161, 161) -> 158 -[67,1](162, 161) -> 159 -[67,1](163, 161) -> 160 -[68,1](164, 164) -> 161 -[68,1](165, 164) -> 162 -[68,1](166, 164) -> 163 -[69,1](167, 167) -> 164 -[69,1](168, 167) -> 165 -[69,1](169, 167) -> 166 -[70,1](170, 170) -> 167 -[70,1](171, 170) -> 168 -[70,1](172, 170) -> 169 -[71,1](173, 173) -> 170 -[71,1](174, 173) -> 171 -[71,1](175, 173) -> 172 -[72,1](176, 176) -> 173 -[72,1](177, 176) -> 174 -[72,1](178, 176) -> 175 -[73,1](179, 179) -> 176 -[73,1](180, 179) -> 177 -[73,1](181, 179) -> 178 -[74,1](182, 182) -> 179 -[74,1](183, 182) -> 180 -[74,1](184, 182) -> 181 -[75,1](185, 185) -> 182 -[75,1](186, 185) -> 183 -[75,1](187, 185) -> 184 -[76,1](188, 188) -> 185 -[76,1](189, 188) -> 186 -[76,1](190, 188) -> 187 -[p1,1] -> 188 -[p2,1] -> 189 -[p3,1] -> 190 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/38/pre.hsl b/benchmarks/all/OEGrover/38/pre.hsl index 75bdedbf0..8bac0b402 100644 --- a/benchmarks/all/OEGrover/38/pre.hsl +++ b/benchmarks/all/OEGrover/38/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 18 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 274877906943 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/38/pre.lsta b/benchmarks/all/OEGrover/38/pre.lsta deleted file mode 100644 index e281dad30..000000000 --- a/benchmarks/all/OEGrover/38/pre.lsta +++ /dev/null @@ -1,201 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 78) -> 75 -[39,1](77, 79) -> 76 -[40,1](80, 80) -> 77 -[40,1](81, 80) -> 78 -[40,1](82, 80) -> 79 -[41,1](83, 83) -> 80 -[41,1](84, 83) -> 81 -[41,1](85, 83) -> 82 -[42,1](86, 86) -> 83 -[42,1](87, 86) -> 84 -[42,1](88, 86) -> 85 -[43,1](89, 89) -> 86 -[43,1](90, 89) -> 87 -[43,1](91, 89) -> 88 -[44,1](92, 92) -> 89 -[44,1](93, 92) -> 90 -[44,1](94, 92) -> 91 -[45,1](95, 95) -> 92 -[45,1](96, 95) -> 93 -[45,1](97, 95) -> 94 -[46,1](98, 98) -> 95 -[46,1](99, 98) -> 96 -[46,1](100, 98) -> 97 -[47,1](101, 101) -> 98 -[47,1](102, 101) -> 99 -[47,1](103, 101) -> 100 -[48,1](104, 104) -> 101 -[48,1](105, 104) -> 102 -[48,1](106, 104) -> 103 -[49,1](107, 107) -> 104 -[49,1](108, 107) -> 105 -[49,1](109, 107) -> 106 -[50,1](110, 110) -> 107 -[50,1](111, 110) -> 108 -[50,1](112, 110) -> 109 -[51,1](113, 113) -> 110 -[51,1](114, 113) -> 111 -[51,1](115, 113) -> 112 -[52,1](116, 116) -> 113 -[52,1](117, 116) -> 114 -[52,1](118, 116) -> 115 -[53,1](119, 119) -> 116 -[53,1](120, 119) -> 117 -[53,1](121, 119) -> 118 -[54,1](122, 122) -> 119 -[54,1](123, 122) -> 120 -[54,1](124, 122) -> 121 -[55,1](125, 125) -> 122 -[55,1](126, 125) -> 123 -[55,1](127, 125) -> 124 -[56,1](128, 128) -> 125 -[56,1](129, 128) -> 126 -[56,1](130, 128) -> 127 -[57,1](131, 131) -> 128 -[57,1](132, 131) -> 129 -[57,1](133, 131) -> 130 -[58,1](134, 134) -> 131 -[58,1](135, 134) -> 132 -[58,1](136, 134) -> 133 -[59,1](137, 137) -> 134 -[59,1](138, 137) -> 135 -[59,1](139, 137) -> 136 -[60,1](140, 140) -> 137 -[60,1](141, 140) -> 138 -[60,1](142, 140) -> 139 -[61,1](143, 143) -> 140 -[61,1](144, 143) -> 141 -[61,1](145, 143) -> 142 -[62,1](146, 146) -> 143 -[62,1](147, 146) -> 144 -[62,1](148, 146) -> 145 -[63,1](149, 149) -> 146 -[63,1](150, 149) -> 147 -[63,1](151, 149) -> 148 -[64,1](152, 152) -> 149 -[64,1](153, 152) -> 150 -[64,1](154, 152) -> 151 -[65,1](155, 155) -> 152 -[65,1](156, 155) -> 153 -[65,1](157, 155) -> 154 -[66,1](158, 158) -> 155 -[66,1](159, 158) -> 156 -[66,1](160, 158) -> 157 -[67,1](161, 161) -> 158 -[67,1](162, 161) -> 159 -[67,1](163, 161) -> 160 -[68,1](164, 164) -> 161 -[68,1](165, 164) -> 162 -[68,1](166, 164) -> 163 -[69,1](167, 167) -> 164 -[69,1](168, 167) -> 165 -[69,1](169, 167) -> 166 -[70,1](170, 170) -> 167 -[70,1](171, 170) -> 168 -[70,1](172, 170) -> 169 -[71,1](173, 173) -> 170 -[71,1](174, 173) -> 171 -[71,1](175, 173) -> 172 -[72,1](176, 176) -> 173 -[72,1](177, 176) -> 174 -[72,1](178, 176) -> 175 -[73,1](179, 179) -> 176 -[73,1](180, 179) -> 177 -[73,1](181, 179) -> 178 -[74,1](182, 182) -> 179 -[74,1](183, 182) -> 180 -[74,1](184, 182) -> 181 -[75,1](185, 185) -> 182 -[75,1](186, 185) -> 183 -[75,1](187, 185) -> 184 -[76,1](188, 188) -> 185 -[76,1](189, 188) -> 186 -[76,1](190, 188) -> 187 -[c0,1] -> 188 -[a,1] -> 189 -[b,1] -> 190 -Constraints -274877906943 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/39/circuit.qasm b/benchmarks/all/OEGrover/39/circuit.qasm index 8054dcfbc..6743a3429 100644 --- a/benchmarks/all/OEGrover/39/circuit.qasm +++ b/benchmarks/all/OEGrover/39/circuit.qasm @@ -1,102 +1,102 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[78]; +qreg qubits[77]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -ccx qubits[0], qubits[1], qubits[40]; -ccx qubits[2], qubits[40], qubits[41]; -ccx qubits[3], qubits[41], qubits[42]; -ccx qubits[4], qubits[42], qubits[43]; -ccx qubits[5], qubits[43], qubits[44]; -ccx qubits[6], qubits[44], qubits[45]; -ccx qubits[7], qubits[45], qubits[46]; -ccx qubits[8], qubits[46], qubits[47]; -ccx qubits[9], qubits[47], qubits[48]; -ccx qubits[10], qubits[48], qubits[49]; -ccx qubits[11], qubits[49], qubits[50]; -ccx qubits[12], qubits[50], qubits[51]; -ccx qubits[13], qubits[51], qubits[52]; -ccx qubits[14], qubits[52], qubits[53]; -ccx qubits[15], qubits[53], qubits[54]; -ccx qubits[16], qubits[54], qubits[55]; -ccx qubits[17], qubits[55], qubits[56]; -ccx qubits[18], qubits[56], qubits[57]; -ccx qubits[19], qubits[57], qubits[58]; -ccx qubits[20], qubits[58], qubits[59]; -ccx qubits[21], qubits[59], qubits[60]; -ccx qubits[22], qubits[60], qubits[61]; -ccx qubits[23], qubits[61], qubits[62]; -ccx qubits[24], qubits[62], qubits[63]; -ccx qubits[25], qubits[63], qubits[64]; -ccx qubits[26], qubits[64], qubits[65]; -ccx qubits[27], qubits[65], qubits[66]; -ccx qubits[28], qubits[66], qubits[67]; -ccx qubits[29], qubits[67], qubits[68]; -ccx qubits[30], qubits[68], qubits[69]; -ccx qubits[31], qubits[69], qubits[70]; -ccx qubits[32], qubits[70], qubits[71]; -ccx qubits[33], qubits[71], qubits[72]; -ccx qubits[34], qubits[72], qubits[73]; -ccx qubits[35], qubits[73], qubits[74]; -ccx qubits[36], qubits[74], qubits[75]; -ccx qubits[37], qubits[75], qubits[76]; -cz qubits[76], qubits[38]; -ccx qubits[37], qubits[75], qubits[76]; -ccx qubits[36], qubits[74], qubits[75]; -ccx qubits[35], qubits[73], qubits[74]; -ccx qubits[34], qubits[72], qubits[73]; -ccx qubits[33], qubits[71], qubits[72]; -ccx qubits[32], qubits[70], qubits[71]; -ccx qubits[31], qubits[69], qubits[70]; -ccx qubits[30], qubits[68], qubits[69]; -ccx qubits[29], qubits[67], qubits[68]; -ccx qubits[28], qubits[66], qubits[67]; -ccx qubits[27], qubits[65], qubits[66]; -ccx qubits[26], qubits[64], qubits[65]; -ccx qubits[25], qubits[63], qubits[64]; -ccx qubits[24], qubits[62], qubits[63]; -ccx qubits[23], qubits[61], qubits[62]; -ccx qubits[22], qubits[60], qubits[61]; -ccx qubits[21], qubits[59], qubits[60]; -ccx qubits[20], qubits[58], qubits[59]; -ccx qubits[19], qubits[57], qubits[58]; -ccx qubits[18], qubits[56], qubits[57]; -ccx qubits[17], qubits[55], qubits[56]; -ccx qubits[16], qubits[54], qubits[55]; -ccx qubits[15], qubits[53], qubits[54]; -ccx qubits[14], qubits[52], qubits[53]; -ccx qubits[13], qubits[51], qubits[52]; -ccx qubits[12], qubits[50], qubits[51]; -ccx qubits[11], qubits[49], qubits[50]; -ccx qubits[10], qubits[48], qubits[49]; -ccx qubits[9], qubits[47], qubits[48]; -ccx qubits[8], qubits[46], qubits[47]; -ccx qubits[7], qubits[45], qubits[46]; -ccx qubits[6], qubits[44], qubits[45]; -ccx qubits[5], qubits[43], qubits[44]; -ccx qubits[4], qubits[42], qubits[43]; -ccx qubits[3], qubits[41], qubits[42]; -ccx qubits[2], qubits[40], qubits[41]; -ccx qubits[0], qubits[1], qubits[40]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +cz qubits[74], qubits[75]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -119,233 +119,233 @@ x qubits[36]; x qubits[38]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; -ccx qubits[0], qubits[1], qubits[40]; -ccx qubits[2], qubits[40], qubits[41]; -ccx qubits[3], qubits[41], qubits[42]; -ccx qubits[4], qubits[42], qubits[43]; -ccx qubits[5], qubits[43], qubits[44]; -ccx qubits[6], qubits[44], qubits[45]; -ccx qubits[7], qubits[45], qubits[46]; -ccx qubits[8], qubits[46], qubits[47]; -ccx qubits[9], qubits[47], qubits[48]; -ccx qubits[10], qubits[48], qubits[49]; -ccx qubits[11], qubits[49], qubits[50]; -ccx qubits[12], qubits[50], qubits[51]; -ccx qubits[13], qubits[51], qubits[52]; -ccx qubits[14], qubits[52], qubits[53]; -ccx qubits[15], qubits[53], qubits[54]; -ccx qubits[16], qubits[54], qubits[55]; -ccx qubits[17], qubits[55], qubits[56]; -ccx qubits[18], qubits[56], qubits[57]; -ccx qubits[19], qubits[57], qubits[58]; -ccx qubits[20], qubits[58], qubits[59]; -ccx qubits[21], qubits[59], qubits[60]; -ccx qubits[22], qubits[60], qubits[61]; -ccx qubits[23], qubits[61], qubits[62]; -ccx qubits[24], qubits[62], qubits[63]; -ccx qubits[25], qubits[63], qubits[64]; -ccx qubits[26], qubits[64], qubits[65]; -ccx qubits[27], qubits[65], qubits[66]; -ccx qubits[28], qubits[66], qubits[67]; -ccx qubits[29], qubits[67], qubits[68]; -ccx qubits[30], qubits[68], qubits[69]; -ccx qubits[31], qubits[69], qubits[70]; -ccx qubits[32], qubits[70], qubits[71]; -ccx qubits[33], qubits[71], qubits[72]; -ccx qubits[34], qubits[72], qubits[73]; -ccx qubits[35], qubits[73], qubits[74]; -ccx qubits[36], qubits[74], qubits[75]; -ccx qubits[37], qubits[75], qubits[76]; -cz qubits[76], qubits[38]; -ccx qubits[37], qubits[75], qubits[76]; -ccx qubits[36], qubits[74], qubits[75]; -ccx qubits[35], qubits[73], qubits[74]; -ccx qubits[34], qubits[72], qubits[73]; -ccx qubits[33], qubits[71], qubits[72]; -ccx qubits[32], qubits[70], qubits[71]; -ccx qubits[31], qubits[69], qubits[70]; -ccx qubits[30], qubits[68], qubits[69]; -ccx qubits[29], qubits[67], qubits[68]; -ccx qubits[28], qubits[66], qubits[67]; -ccx qubits[27], qubits[65], qubits[66]; -ccx qubits[26], qubits[64], qubits[65]; -ccx qubits[25], qubits[63], qubits[64]; -ccx qubits[24], qubits[62], qubits[63]; -ccx qubits[23], qubits[61], qubits[62]; -ccx qubits[22], qubits[60], qubits[61]; -ccx qubits[21], qubits[59], qubits[60]; -ccx qubits[20], qubits[58], qubits[59]; -ccx qubits[19], qubits[57], qubits[58]; -ccx qubits[18], qubits[56], qubits[57]; -ccx qubits[17], qubits[55], qubits[56]; -ccx qubits[16], qubits[54], qubits[55]; -ccx qubits[15], qubits[53], qubits[54]; -ccx qubits[14], qubits[52], qubits[53]; -ccx qubits[13], qubits[51], qubits[52]; -ccx qubits[12], qubits[50], qubits[51]; -ccx qubits[11], qubits[49], qubits[50]; -ccx qubits[10], qubits[48], qubits[49]; -ccx qubits[9], qubits[47], qubits[48]; -ccx qubits[8], qubits[46], qubits[47]; -ccx qubits[7], qubits[45], qubits[46]; -ccx qubits[6], qubits[44], qubits[45]; -ccx qubits[5], qubits[43], qubits[44]; -ccx qubits[4], qubits[42], qubits[43]; -ccx qubits[3], qubits[41], qubits[42]; -ccx qubits[2], qubits[40], qubits[41]; -ccx qubits[0], qubits[1], qubits[40]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +cz qubits[74], qubits[75]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; +x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; -z qubits[39]; +h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +z qubits[76]; diff --git a/benchmarks/all/OEGrover/39/post.hsl b/benchmarks/all/OEGrover/39/post.hsl index 50d5327d9..97d7cc696 100644 --- a/benchmarks/all/OEGrover/39/post.hsl +++ b/benchmarks/all/OEGrover/39/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010100000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 18 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/39/post.lsta b/benchmarks/all/OEGrover/39/post.lsta deleted file mode 100644 index 905ca956e..000000000 --- a/benchmarks/all/OEGrover/39/post.lsta +++ /dev/null @@ -1,202 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 80) -> 77 -[40,1](79, 81) -> 78 -[41,1](82, 82) -> 79 -[41,1](83, 82) -> 80 -[41,1](84, 82) -> 81 -[42,1](85, 85) -> 82 -[42,1](86, 85) -> 83 -[42,1](87, 85) -> 84 -[43,1](88, 88) -> 85 -[43,1](89, 88) -> 86 -[43,1](90, 88) -> 87 -[44,1](91, 91) -> 88 -[44,1](92, 91) -> 89 -[44,1](93, 91) -> 90 -[45,1](94, 94) -> 91 -[45,1](95, 94) -> 92 -[45,1](96, 94) -> 93 -[46,1](97, 97) -> 94 -[46,1](98, 97) -> 95 -[46,1](99, 97) -> 96 -[47,1](100, 100) -> 97 -[47,1](101, 100) -> 98 -[47,1](102, 100) -> 99 -[48,1](103, 103) -> 100 -[48,1](104, 103) -> 101 -[48,1](105, 103) -> 102 -[49,1](106, 106) -> 103 -[49,1](107, 106) -> 104 -[49,1](108, 106) -> 105 -[50,1](109, 109) -> 106 -[50,1](110, 109) -> 107 -[50,1](111, 109) -> 108 -[51,1](112, 112) -> 109 -[51,1](113, 112) -> 110 -[51,1](114, 112) -> 111 -[52,1](115, 115) -> 112 -[52,1](116, 115) -> 113 -[52,1](117, 115) -> 114 -[53,1](118, 118) -> 115 -[53,1](119, 118) -> 116 -[53,1](120, 118) -> 117 -[54,1](121, 121) -> 118 -[54,1](122, 121) -> 119 -[54,1](123, 121) -> 120 -[55,1](124, 124) -> 121 -[55,1](125, 124) -> 122 -[55,1](126, 124) -> 123 -[56,1](127, 127) -> 124 -[56,1](128, 127) -> 125 -[56,1](129, 127) -> 126 -[57,1](130, 130) -> 127 -[57,1](131, 130) -> 128 -[57,1](132, 130) -> 129 -[58,1](133, 133) -> 130 -[58,1](134, 133) -> 131 -[58,1](135, 133) -> 132 -[59,1](136, 136) -> 133 -[59,1](137, 136) -> 134 -[59,1](138, 136) -> 135 -[60,1](139, 139) -> 136 -[60,1](140, 139) -> 137 -[60,1](141, 139) -> 138 -[61,1](142, 142) -> 139 -[61,1](143, 142) -> 140 -[61,1](144, 142) -> 141 -[62,1](145, 145) -> 142 -[62,1](146, 145) -> 143 -[62,1](147, 145) -> 144 -[63,1](148, 148) -> 145 -[63,1](149, 148) -> 146 -[63,1](150, 148) -> 147 -[64,1](151, 151) -> 148 -[64,1](152, 151) -> 149 -[64,1](153, 151) -> 150 -[65,1](154, 154) -> 151 -[65,1](155, 154) -> 152 -[65,1](156, 154) -> 153 -[66,1](157, 157) -> 154 -[66,1](158, 157) -> 155 -[66,1](159, 157) -> 156 -[67,1](160, 160) -> 157 -[67,1](161, 160) -> 158 -[67,1](162, 160) -> 159 -[68,1](163, 163) -> 160 -[68,1](164, 163) -> 161 -[68,1](165, 163) -> 162 -[69,1](166, 166) -> 163 -[69,1](167, 166) -> 164 -[69,1](168, 166) -> 165 -[70,1](169, 169) -> 166 -[70,1](170, 169) -> 167 -[70,1](171, 169) -> 168 -[71,1](172, 172) -> 169 -[71,1](173, 172) -> 170 -[71,1](174, 172) -> 171 -[72,1](175, 175) -> 172 -[72,1](176, 175) -> 173 -[72,1](177, 175) -> 174 -[73,1](178, 178) -> 175 -[73,1](179, 178) -> 176 -[73,1](180, 178) -> 177 -[74,1](181, 181) -> 178 -[74,1](182, 181) -> 179 -[74,1](183, 181) -> 180 -[75,1](184, 184) -> 181 -[75,1](185, 184) -> 182 -[75,1](186, 184) -> 183 -[76,1](187, 187) -> 184 -[76,1](188, 187) -> 185 -[76,1](189, 187) -> 186 -[77,1](190, 190) -> 187 -[77,1](191, 190) -> 188 -[77,1](192, 190) -> 189 -[78,1](193, 193) -> 190 -[78,1](194, 193) -> 191 -[78,1](195, 193) -> 192 -[p1,1] -> 193 -[p2,1] -> 194 -[p3,1] -> 195 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/39/pre.hsl b/benchmarks/all/OEGrover/39/pre.hsl index 5e522895f..9f3722373 100644 --- a/benchmarks/all/OEGrover/39/pre.hsl +++ b/benchmarks/all/OEGrover/39/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 18 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 549755813887 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/39/pre.lsta b/benchmarks/all/OEGrover/39/pre.lsta deleted file mode 100644 index d0c6bfcd4..000000000 --- a/benchmarks/all/OEGrover/39/pre.lsta +++ /dev/null @@ -1,206 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 80) -> 77 -[40,1](79, 81) -> 78 -[41,1](82, 82) -> 79 -[41,1](83, 82) -> 80 -[41,1](84, 82) -> 81 -[42,1](85, 85) -> 82 -[42,1](86, 85) -> 83 -[42,1](87, 85) -> 84 -[43,1](88, 88) -> 85 -[43,1](89, 88) -> 86 -[43,1](90, 88) -> 87 -[44,1](91, 91) -> 88 -[44,1](92, 91) -> 89 -[44,1](93, 91) -> 90 -[45,1](94, 94) -> 91 -[45,1](95, 94) -> 92 -[45,1](96, 94) -> 93 -[46,1](97, 97) -> 94 -[46,1](98, 97) -> 95 -[46,1](99, 97) -> 96 -[47,1](100, 100) -> 97 -[47,1](101, 100) -> 98 -[47,1](102, 100) -> 99 -[48,1](103, 103) -> 100 -[48,1](104, 103) -> 101 -[48,1](105, 103) -> 102 -[49,1](106, 106) -> 103 -[49,1](107, 106) -> 104 -[49,1](108, 106) -> 105 -[50,1](109, 109) -> 106 -[50,1](110, 109) -> 107 -[50,1](111, 109) -> 108 -[51,1](112, 112) -> 109 -[51,1](113, 112) -> 110 -[51,1](114, 112) -> 111 -[52,1](115, 115) -> 112 -[52,1](116, 115) -> 113 -[52,1](117, 115) -> 114 -[53,1](118, 118) -> 115 -[53,1](119, 118) -> 116 -[53,1](120, 118) -> 117 -[54,1](121, 121) -> 118 -[54,1](122, 121) -> 119 -[54,1](123, 121) -> 120 -[55,1](124, 124) -> 121 -[55,1](125, 124) -> 122 -[55,1](126, 124) -> 123 -[56,1](127, 127) -> 124 -[56,1](128, 127) -> 125 -[56,1](129, 127) -> 126 -[57,1](130, 130) -> 127 -[57,1](131, 130) -> 128 -[57,1](132, 130) -> 129 -[58,1](133, 133) -> 130 -[58,1](134, 133) -> 131 -[58,1](135, 133) -> 132 -[59,1](136, 136) -> 133 -[59,1](137, 136) -> 134 -[59,1](138, 136) -> 135 -[60,1](139, 139) -> 136 -[60,1](140, 139) -> 137 -[60,1](141, 139) -> 138 -[61,1](142, 142) -> 139 -[61,1](143, 142) -> 140 -[61,1](144, 142) -> 141 -[62,1](145, 145) -> 142 -[62,1](146, 145) -> 143 -[62,1](147, 145) -> 144 -[63,1](148, 148) -> 145 -[63,1](149, 148) -> 146 -[63,1](150, 148) -> 147 -[64,1](151, 151) -> 148 -[64,1](152, 151) -> 149 -[64,1](153, 151) -> 150 -[65,1](154, 154) -> 151 -[65,1](155, 154) -> 152 -[65,1](156, 154) -> 153 -[66,1](157, 157) -> 154 -[66,1](158, 157) -> 155 -[66,1](159, 157) -> 156 -[67,1](160, 160) -> 157 -[67,1](161, 160) -> 158 -[67,1](162, 160) -> 159 -[68,1](163, 163) -> 160 -[68,1](164, 163) -> 161 -[68,1](165, 163) -> 162 -[69,1](166, 166) -> 163 -[69,1](167, 166) -> 164 -[69,1](168, 166) -> 165 -[70,1](169, 169) -> 166 -[70,1](170, 169) -> 167 -[70,1](171, 169) -> 168 -[71,1](172, 172) -> 169 -[71,1](173, 172) -> 170 -[71,1](174, 172) -> 171 -[72,1](175, 175) -> 172 -[72,1](176, 175) -> 173 -[72,1](177, 175) -> 174 -[73,1](178, 178) -> 175 -[73,1](179, 178) -> 176 -[73,1](180, 178) -> 177 -[74,1](181, 181) -> 178 -[74,1](182, 181) -> 179 -[74,1](183, 181) -> 180 -[75,1](184, 184) -> 181 -[75,1](185, 184) -> 182 -[75,1](186, 184) -> 183 -[76,1](187, 187) -> 184 -[76,1](188, 187) -> 185 -[76,1](189, 187) -> 186 -[77,1](190, 190) -> 187 -[77,1](191, 190) -> 188 -[77,1](192, 190) -> 189 -[78,1](193, 193) -> 190 -[78,1](194, 193) -> 191 -[78,1](195, 193) -> 192 -[c0,1] -> 193 -[a,1] -> 194 -[b,1] -> 195 -Constraints -549755813887 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/40/circuit.qasm b/benchmarks/all/OEGrover/40/circuit.qasm index edd562a69..3a1c842a5 100644 --- a/benchmarks/all/OEGrover/40/circuit.qasm +++ b/benchmarks/all/OEGrover/40/circuit.qasm @@ -1,104 +1,104 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[80]; +qreg qubits[79]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -ccx qubits[0], qubits[1], qubits[41]; -ccx qubits[2], qubits[41], qubits[42]; -ccx qubits[3], qubits[42], qubits[43]; -ccx qubits[4], qubits[43], qubits[44]; -ccx qubits[5], qubits[44], qubits[45]; -ccx qubits[6], qubits[45], qubits[46]; -ccx qubits[7], qubits[46], qubits[47]; -ccx qubits[8], qubits[47], qubits[48]; -ccx qubits[9], qubits[48], qubits[49]; -ccx qubits[10], qubits[49], qubits[50]; -ccx qubits[11], qubits[50], qubits[51]; -ccx qubits[12], qubits[51], qubits[52]; -ccx qubits[13], qubits[52], qubits[53]; -ccx qubits[14], qubits[53], qubits[54]; -ccx qubits[15], qubits[54], qubits[55]; -ccx qubits[16], qubits[55], qubits[56]; -ccx qubits[17], qubits[56], qubits[57]; -ccx qubits[18], qubits[57], qubits[58]; -ccx qubits[19], qubits[58], qubits[59]; -ccx qubits[20], qubits[59], qubits[60]; -ccx qubits[21], qubits[60], qubits[61]; -ccx qubits[22], qubits[61], qubits[62]; -ccx qubits[23], qubits[62], qubits[63]; -ccx qubits[24], qubits[63], qubits[64]; -ccx qubits[25], qubits[64], qubits[65]; -ccx qubits[26], qubits[65], qubits[66]; -ccx qubits[27], qubits[66], qubits[67]; -ccx qubits[28], qubits[67], qubits[68]; -ccx qubits[29], qubits[68], qubits[69]; -ccx qubits[30], qubits[69], qubits[70]; -ccx qubits[31], qubits[70], qubits[71]; -ccx qubits[32], qubits[71], qubits[72]; -ccx qubits[33], qubits[72], qubits[73]; -ccx qubits[34], qubits[73], qubits[74]; -ccx qubits[35], qubits[74], qubits[75]; -ccx qubits[36], qubits[75], qubits[76]; -ccx qubits[37], qubits[76], qubits[77]; -ccx qubits[38], qubits[77], qubits[78]; -cz qubits[78], qubits[39]; -ccx qubits[38], qubits[77], qubits[78]; -ccx qubits[37], qubits[76], qubits[77]; -ccx qubits[36], qubits[75], qubits[76]; -ccx qubits[35], qubits[74], qubits[75]; -ccx qubits[34], qubits[73], qubits[74]; -ccx qubits[33], qubits[72], qubits[73]; -ccx qubits[32], qubits[71], qubits[72]; -ccx qubits[31], qubits[70], qubits[71]; -ccx qubits[30], qubits[69], qubits[70]; -ccx qubits[29], qubits[68], qubits[69]; -ccx qubits[28], qubits[67], qubits[68]; -ccx qubits[27], qubits[66], qubits[67]; -ccx qubits[26], qubits[65], qubits[66]; -ccx qubits[25], qubits[64], qubits[65]; -ccx qubits[24], qubits[63], qubits[64]; -ccx qubits[23], qubits[62], qubits[63]; -ccx qubits[22], qubits[61], qubits[62]; -ccx qubits[21], qubits[60], qubits[61]; -ccx qubits[20], qubits[59], qubits[60]; -ccx qubits[19], qubits[58], qubits[59]; -ccx qubits[18], qubits[57], qubits[58]; -ccx qubits[17], qubits[56], qubits[57]; -ccx qubits[16], qubits[55], qubits[56]; -ccx qubits[15], qubits[54], qubits[55]; -ccx qubits[14], qubits[53], qubits[54]; -ccx qubits[13], qubits[52], qubits[53]; -ccx qubits[12], qubits[51], qubits[52]; -ccx qubits[11], qubits[50], qubits[51]; -ccx qubits[10], qubits[49], qubits[50]; -ccx qubits[9], qubits[48], qubits[49]; -ccx qubits[8], qubits[47], qubits[48]; -ccx qubits[7], qubits[46], qubits[47]; -ccx qubits[6], qubits[45], qubits[46]; -ccx qubits[5], qubits[44], qubits[45]; -ccx qubits[4], qubits[43], qubits[44]; -ccx qubits[3], qubits[42], qubits[43]; -ccx qubits[2], qubits[41], qubits[42]; -ccx qubits[0], qubits[1], qubits[41]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +cz qubits[76], qubits[77]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -121,239 +121,239 @@ x qubits[36]; x qubits[38]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -ccx qubits[0], qubits[1], qubits[41]; -ccx qubits[2], qubits[41], qubits[42]; -ccx qubits[3], qubits[42], qubits[43]; -ccx qubits[4], qubits[43], qubits[44]; -ccx qubits[5], qubits[44], qubits[45]; -ccx qubits[6], qubits[45], qubits[46]; -ccx qubits[7], qubits[46], qubits[47]; -ccx qubits[8], qubits[47], qubits[48]; -ccx qubits[9], qubits[48], qubits[49]; -ccx qubits[10], qubits[49], qubits[50]; -ccx qubits[11], qubits[50], qubits[51]; -ccx qubits[12], qubits[51], qubits[52]; -ccx qubits[13], qubits[52], qubits[53]; -ccx qubits[14], qubits[53], qubits[54]; -ccx qubits[15], qubits[54], qubits[55]; -ccx qubits[16], qubits[55], qubits[56]; -ccx qubits[17], qubits[56], qubits[57]; -ccx qubits[18], qubits[57], qubits[58]; -ccx qubits[19], qubits[58], qubits[59]; -ccx qubits[20], qubits[59], qubits[60]; -ccx qubits[21], qubits[60], qubits[61]; -ccx qubits[22], qubits[61], qubits[62]; -ccx qubits[23], qubits[62], qubits[63]; -ccx qubits[24], qubits[63], qubits[64]; -ccx qubits[25], qubits[64], qubits[65]; -ccx qubits[26], qubits[65], qubits[66]; -ccx qubits[27], qubits[66], qubits[67]; -ccx qubits[28], qubits[67], qubits[68]; -ccx qubits[29], qubits[68], qubits[69]; -ccx qubits[30], qubits[69], qubits[70]; -ccx qubits[31], qubits[70], qubits[71]; -ccx qubits[32], qubits[71], qubits[72]; -ccx qubits[33], qubits[72], qubits[73]; -ccx qubits[34], qubits[73], qubits[74]; -ccx qubits[35], qubits[74], qubits[75]; -ccx qubits[36], qubits[75], qubits[76]; -ccx qubits[37], qubits[76], qubits[77]; -ccx qubits[38], qubits[77], qubits[78]; -cz qubits[78], qubits[39]; -ccx qubits[38], qubits[77], qubits[78]; -ccx qubits[37], qubits[76], qubits[77]; -ccx qubits[36], qubits[75], qubits[76]; -ccx qubits[35], qubits[74], qubits[75]; -ccx qubits[34], qubits[73], qubits[74]; -ccx qubits[33], qubits[72], qubits[73]; -ccx qubits[32], qubits[71], qubits[72]; -ccx qubits[31], qubits[70], qubits[71]; -ccx qubits[30], qubits[69], qubits[70]; -ccx qubits[29], qubits[68], qubits[69]; -ccx qubits[28], qubits[67], qubits[68]; -ccx qubits[27], qubits[66], qubits[67]; -ccx qubits[26], qubits[65], qubits[66]; -ccx qubits[25], qubits[64], qubits[65]; -ccx qubits[24], qubits[63], qubits[64]; -ccx qubits[23], qubits[62], qubits[63]; -ccx qubits[22], qubits[61], qubits[62]; -ccx qubits[21], qubits[60], qubits[61]; -ccx qubits[20], qubits[59], qubits[60]; -ccx qubits[19], qubits[58], qubits[59]; -ccx qubits[18], qubits[57], qubits[58]; -ccx qubits[17], qubits[56], qubits[57]; -ccx qubits[16], qubits[55], qubits[56]; -ccx qubits[15], qubits[54], qubits[55]; -ccx qubits[14], qubits[53], qubits[54]; -ccx qubits[13], qubits[52], qubits[53]; -ccx qubits[12], qubits[51], qubits[52]; -ccx qubits[11], qubits[50], qubits[51]; -ccx qubits[10], qubits[49], qubits[50]; -ccx qubits[9], qubits[48], qubits[49]; -ccx qubits[8], qubits[47], qubits[48]; -ccx qubits[7], qubits[46], qubits[47]; -ccx qubits[6], qubits[45], qubits[46]; -ccx qubits[5], qubits[44], qubits[45]; -ccx qubits[4], qubits[43], qubits[44]; -ccx qubits[3], qubits[42], qubits[43]; -ccx qubits[2], qubits[41], qubits[42]; -ccx qubits[0], qubits[1], qubits[41]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +cz qubits[76], qubits[77]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -z qubits[40]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +z qubits[78]; diff --git a/benchmarks/all/OEGrover/40/post.hsl b/benchmarks/all/OEGrover/40/post.hsl index 1a48016c0..26d058b47 100644 --- a/benchmarks/all/OEGrover/40/post.hsl +++ b/benchmarks/all/OEGrover/40/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101011000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 19 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/40/post.lsta b/benchmarks/all/OEGrover/40/post.lsta deleted file mode 100644 index b8b9a8406..000000000 --- a/benchmarks/all/OEGrover/40/post.lsta +++ /dev/null @@ -1,207 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 82) -> 79 -[41,1](81, 83) -> 80 -[42,1](84, 84) -> 81 -[42,1](85, 84) -> 82 -[42,1](86, 84) -> 83 -[43,1](87, 87) -> 84 -[43,1](88, 87) -> 85 -[43,1](89, 87) -> 86 -[44,1](90, 90) -> 87 -[44,1](91, 90) -> 88 -[44,1](92, 90) -> 89 -[45,1](93, 93) -> 90 -[45,1](94, 93) -> 91 -[45,1](95, 93) -> 92 -[46,1](96, 96) -> 93 -[46,1](97, 96) -> 94 -[46,1](98, 96) -> 95 -[47,1](99, 99) -> 96 -[47,1](100, 99) -> 97 -[47,1](101, 99) -> 98 -[48,1](102, 102) -> 99 -[48,1](103, 102) -> 100 -[48,1](104, 102) -> 101 -[49,1](105, 105) -> 102 -[49,1](106, 105) -> 103 -[49,1](107, 105) -> 104 -[50,1](108, 108) -> 105 -[50,1](109, 108) -> 106 -[50,1](110, 108) -> 107 -[51,1](111, 111) -> 108 -[51,1](112, 111) -> 109 -[51,1](113, 111) -> 110 -[52,1](114, 114) -> 111 -[52,1](115, 114) -> 112 -[52,1](116, 114) -> 113 -[53,1](117, 117) -> 114 -[53,1](118, 117) -> 115 -[53,1](119, 117) -> 116 -[54,1](120, 120) -> 117 -[54,1](121, 120) -> 118 -[54,1](122, 120) -> 119 -[55,1](123, 123) -> 120 -[55,1](124, 123) -> 121 -[55,1](125, 123) -> 122 -[56,1](126, 126) -> 123 -[56,1](127, 126) -> 124 -[56,1](128, 126) -> 125 -[57,1](129, 129) -> 126 -[57,1](130, 129) -> 127 -[57,1](131, 129) -> 128 -[58,1](132, 132) -> 129 -[58,1](133, 132) -> 130 -[58,1](134, 132) -> 131 -[59,1](135, 135) -> 132 -[59,1](136, 135) -> 133 -[59,1](137, 135) -> 134 -[60,1](138, 138) -> 135 -[60,1](139, 138) -> 136 -[60,1](140, 138) -> 137 -[61,1](141, 141) -> 138 -[61,1](142, 141) -> 139 -[61,1](143, 141) -> 140 -[62,1](144, 144) -> 141 -[62,1](145, 144) -> 142 -[62,1](146, 144) -> 143 -[63,1](147, 147) -> 144 -[63,1](148, 147) -> 145 -[63,1](149, 147) -> 146 -[64,1](150, 150) -> 147 -[64,1](151, 150) -> 148 -[64,1](152, 150) -> 149 -[65,1](153, 153) -> 150 -[65,1](154, 153) -> 151 -[65,1](155, 153) -> 152 -[66,1](156, 156) -> 153 -[66,1](157, 156) -> 154 -[66,1](158, 156) -> 155 -[67,1](159, 159) -> 156 -[67,1](160, 159) -> 157 -[67,1](161, 159) -> 158 -[68,1](162, 162) -> 159 -[68,1](163, 162) -> 160 -[68,1](164, 162) -> 161 -[69,1](165, 165) -> 162 -[69,1](166, 165) -> 163 -[69,1](167, 165) -> 164 -[70,1](168, 168) -> 165 -[70,1](169, 168) -> 166 -[70,1](170, 168) -> 167 -[71,1](171, 171) -> 168 -[71,1](172, 171) -> 169 -[71,1](173, 171) -> 170 -[72,1](174, 174) -> 171 -[72,1](175, 174) -> 172 -[72,1](176, 174) -> 173 -[73,1](177, 177) -> 174 -[73,1](178, 177) -> 175 -[73,1](179, 177) -> 176 -[74,1](180, 180) -> 177 -[74,1](181, 180) -> 178 -[74,1](182, 180) -> 179 -[75,1](183, 183) -> 180 -[75,1](184, 183) -> 181 -[75,1](185, 183) -> 182 -[76,1](186, 186) -> 183 -[76,1](187, 186) -> 184 -[76,1](188, 186) -> 185 -[77,1](189, 189) -> 186 -[77,1](190, 189) -> 187 -[77,1](191, 189) -> 188 -[78,1](192, 192) -> 189 -[78,1](193, 192) -> 190 -[78,1](194, 192) -> 191 -[79,1](195, 195) -> 192 -[79,1](196, 195) -> 193 -[79,1](197, 195) -> 194 -[80,1](198, 198) -> 195 -[80,1](199, 198) -> 196 -[80,1](200, 198) -> 197 -[p1,1] -> 198 -[p2,1] -> 199 -[p3,1] -> 200 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/40/pre.hsl b/benchmarks/all/OEGrover/40/pre.hsl index 4ecc45f1f..d79aaf4d5 100644 --- a/benchmarks/all/OEGrover/40/pre.hsl +++ b/benchmarks/all/OEGrover/40/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 19 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1099511627775 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/40/pre.lsta b/benchmarks/all/OEGrover/40/pre.lsta deleted file mode 100644 index 5d45ea333..000000000 --- a/benchmarks/all/OEGrover/40/pre.lsta +++ /dev/null @@ -1,211 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 82) -> 79 -[41,1](81, 83) -> 80 -[42,1](84, 84) -> 81 -[42,1](85, 84) -> 82 -[42,1](86, 84) -> 83 -[43,1](87, 87) -> 84 -[43,1](88, 87) -> 85 -[43,1](89, 87) -> 86 -[44,1](90, 90) -> 87 -[44,1](91, 90) -> 88 -[44,1](92, 90) -> 89 -[45,1](93, 93) -> 90 -[45,1](94, 93) -> 91 -[45,1](95, 93) -> 92 -[46,1](96, 96) -> 93 -[46,1](97, 96) -> 94 -[46,1](98, 96) -> 95 -[47,1](99, 99) -> 96 -[47,1](100, 99) -> 97 -[47,1](101, 99) -> 98 -[48,1](102, 102) -> 99 -[48,1](103, 102) -> 100 -[48,1](104, 102) -> 101 -[49,1](105, 105) -> 102 -[49,1](106, 105) -> 103 -[49,1](107, 105) -> 104 -[50,1](108, 108) -> 105 -[50,1](109, 108) -> 106 -[50,1](110, 108) -> 107 -[51,1](111, 111) -> 108 -[51,1](112, 111) -> 109 -[51,1](113, 111) -> 110 -[52,1](114, 114) -> 111 -[52,1](115, 114) -> 112 -[52,1](116, 114) -> 113 -[53,1](117, 117) -> 114 -[53,1](118, 117) -> 115 -[53,1](119, 117) -> 116 -[54,1](120, 120) -> 117 -[54,1](121, 120) -> 118 -[54,1](122, 120) -> 119 -[55,1](123, 123) -> 120 -[55,1](124, 123) -> 121 -[55,1](125, 123) -> 122 -[56,1](126, 126) -> 123 -[56,1](127, 126) -> 124 -[56,1](128, 126) -> 125 -[57,1](129, 129) -> 126 -[57,1](130, 129) -> 127 -[57,1](131, 129) -> 128 -[58,1](132, 132) -> 129 -[58,1](133, 132) -> 130 -[58,1](134, 132) -> 131 -[59,1](135, 135) -> 132 -[59,1](136, 135) -> 133 -[59,1](137, 135) -> 134 -[60,1](138, 138) -> 135 -[60,1](139, 138) -> 136 -[60,1](140, 138) -> 137 -[61,1](141, 141) -> 138 -[61,1](142, 141) -> 139 -[61,1](143, 141) -> 140 -[62,1](144, 144) -> 141 -[62,1](145, 144) -> 142 -[62,1](146, 144) -> 143 -[63,1](147, 147) -> 144 -[63,1](148, 147) -> 145 -[63,1](149, 147) -> 146 -[64,1](150, 150) -> 147 -[64,1](151, 150) -> 148 -[64,1](152, 150) -> 149 -[65,1](153, 153) -> 150 -[65,1](154, 153) -> 151 -[65,1](155, 153) -> 152 -[66,1](156, 156) -> 153 -[66,1](157, 156) -> 154 -[66,1](158, 156) -> 155 -[67,1](159, 159) -> 156 -[67,1](160, 159) -> 157 -[67,1](161, 159) -> 158 -[68,1](162, 162) -> 159 -[68,1](163, 162) -> 160 -[68,1](164, 162) -> 161 -[69,1](165, 165) -> 162 -[69,1](166, 165) -> 163 -[69,1](167, 165) -> 164 -[70,1](168, 168) -> 165 -[70,1](169, 168) -> 166 -[70,1](170, 168) -> 167 -[71,1](171, 171) -> 168 -[71,1](172, 171) -> 169 -[71,1](173, 171) -> 170 -[72,1](174, 174) -> 171 -[72,1](175, 174) -> 172 -[72,1](176, 174) -> 173 -[73,1](177, 177) -> 174 -[73,1](178, 177) -> 175 -[73,1](179, 177) -> 176 -[74,1](180, 180) -> 177 -[74,1](181, 180) -> 178 -[74,1](182, 180) -> 179 -[75,1](183, 183) -> 180 -[75,1](184, 183) -> 181 -[75,1](185, 183) -> 182 -[76,1](186, 186) -> 183 -[76,1](187, 186) -> 184 -[76,1](188, 186) -> 185 -[77,1](189, 189) -> 186 -[77,1](190, 189) -> 187 -[77,1](191, 189) -> 188 -[78,1](192, 192) -> 189 -[78,1](193, 192) -> 190 -[78,1](194, 192) -> 191 -[79,1](195, 195) -> 192 -[79,1](196, 195) -> 193 -[79,1](197, 195) -> 194 -[80,1](198, 198) -> 195 -[80,1](199, 198) -> 196 -[80,1](200, 198) -> 197 -[c0,1] -> 198 -[a,1] -> 199 -[b,1] -> 200 -Constraints -1099511627775 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/41/circuit.qasm b/benchmarks/all/OEGrover/41/circuit.qasm index 563cc04da..134147a82 100644 --- a/benchmarks/all/OEGrover/41/circuit.qasm +++ b/benchmarks/all/OEGrover/41/circuit.qasm @@ -1,107 +1,107 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[82]; +qreg qubits[81]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -ccx qubits[0], qubits[1], qubits[42]; -ccx qubits[2], qubits[42], qubits[43]; -ccx qubits[3], qubits[43], qubits[44]; -ccx qubits[4], qubits[44], qubits[45]; -ccx qubits[5], qubits[45], qubits[46]; -ccx qubits[6], qubits[46], qubits[47]; -ccx qubits[7], qubits[47], qubits[48]; -ccx qubits[8], qubits[48], qubits[49]; -ccx qubits[9], qubits[49], qubits[50]; -ccx qubits[10], qubits[50], qubits[51]; -ccx qubits[11], qubits[51], qubits[52]; -ccx qubits[12], qubits[52], qubits[53]; -ccx qubits[13], qubits[53], qubits[54]; -ccx qubits[14], qubits[54], qubits[55]; -ccx qubits[15], qubits[55], qubits[56]; -ccx qubits[16], qubits[56], qubits[57]; -ccx qubits[17], qubits[57], qubits[58]; -ccx qubits[18], qubits[58], qubits[59]; -ccx qubits[19], qubits[59], qubits[60]; -ccx qubits[20], qubits[60], qubits[61]; -ccx qubits[21], qubits[61], qubits[62]; -ccx qubits[22], qubits[62], qubits[63]; -ccx qubits[23], qubits[63], qubits[64]; -ccx qubits[24], qubits[64], qubits[65]; -ccx qubits[25], qubits[65], qubits[66]; -ccx qubits[26], qubits[66], qubits[67]; -ccx qubits[27], qubits[67], qubits[68]; -ccx qubits[28], qubits[68], qubits[69]; -ccx qubits[29], qubits[69], qubits[70]; -ccx qubits[30], qubits[70], qubits[71]; -ccx qubits[31], qubits[71], qubits[72]; -ccx qubits[32], qubits[72], qubits[73]; -ccx qubits[33], qubits[73], qubits[74]; -ccx qubits[34], qubits[74], qubits[75]; -ccx qubits[35], qubits[75], qubits[76]; -ccx qubits[36], qubits[76], qubits[77]; -ccx qubits[37], qubits[77], qubits[78]; -ccx qubits[38], qubits[78], qubits[79]; -ccx qubits[39], qubits[79], qubits[80]; -cz qubits[80], qubits[40]; -ccx qubits[39], qubits[79], qubits[80]; -ccx qubits[38], qubits[78], qubits[79]; -ccx qubits[37], qubits[77], qubits[78]; -ccx qubits[36], qubits[76], qubits[77]; -ccx qubits[35], qubits[75], qubits[76]; -ccx qubits[34], qubits[74], qubits[75]; -ccx qubits[33], qubits[73], qubits[74]; -ccx qubits[32], qubits[72], qubits[73]; -ccx qubits[31], qubits[71], qubits[72]; -ccx qubits[30], qubits[70], qubits[71]; -ccx qubits[29], qubits[69], qubits[70]; -ccx qubits[28], qubits[68], qubits[69]; -ccx qubits[27], qubits[67], qubits[68]; -ccx qubits[26], qubits[66], qubits[67]; -ccx qubits[25], qubits[65], qubits[66]; -ccx qubits[24], qubits[64], qubits[65]; -ccx qubits[23], qubits[63], qubits[64]; -ccx qubits[22], qubits[62], qubits[63]; -ccx qubits[21], qubits[61], qubits[62]; -ccx qubits[20], qubits[60], qubits[61]; -ccx qubits[19], qubits[59], qubits[60]; -ccx qubits[18], qubits[58], qubits[59]; -ccx qubits[17], qubits[57], qubits[58]; -ccx qubits[16], qubits[56], qubits[57]; -ccx qubits[15], qubits[55], qubits[56]; -ccx qubits[14], qubits[54], qubits[55]; -ccx qubits[13], qubits[53], qubits[54]; -ccx qubits[12], qubits[52], qubits[53]; -ccx qubits[11], qubits[51], qubits[52]; -ccx qubits[10], qubits[50], qubits[51]; -ccx qubits[9], qubits[49], qubits[50]; -ccx qubits[8], qubits[48], qubits[49]; -ccx qubits[7], qubits[47], qubits[48]; -ccx qubits[6], qubits[46], qubits[47]; -ccx qubits[5], qubits[45], qubits[46]; -ccx qubits[4], qubits[44], qubits[45]; -ccx qubits[3], qubits[43], qubits[44]; -ccx qubits[2], qubits[42], qubits[43]; -ccx qubits[0], qubits[1], qubits[42]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +cz qubits[78], qubits[79]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -125,245 +125,245 @@ x qubits[38]; x qubits[40]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; -ccx qubits[0], qubits[1], qubits[42]; -ccx qubits[2], qubits[42], qubits[43]; -ccx qubits[3], qubits[43], qubits[44]; -ccx qubits[4], qubits[44], qubits[45]; -ccx qubits[5], qubits[45], qubits[46]; -ccx qubits[6], qubits[46], qubits[47]; -ccx qubits[7], qubits[47], qubits[48]; -ccx qubits[8], qubits[48], qubits[49]; -ccx qubits[9], qubits[49], qubits[50]; -ccx qubits[10], qubits[50], qubits[51]; -ccx qubits[11], qubits[51], qubits[52]; -ccx qubits[12], qubits[52], qubits[53]; -ccx qubits[13], qubits[53], qubits[54]; -ccx qubits[14], qubits[54], qubits[55]; -ccx qubits[15], qubits[55], qubits[56]; -ccx qubits[16], qubits[56], qubits[57]; -ccx qubits[17], qubits[57], qubits[58]; -ccx qubits[18], qubits[58], qubits[59]; -ccx qubits[19], qubits[59], qubits[60]; -ccx qubits[20], qubits[60], qubits[61]; -ccx qubits[21], qubits[61], qubits[62]; -ccx qubits[22], qubits[62], qubits[63]; -ccx qubits[23], qubits[63], qubits[64]; -ccx qubits[24], qubits[64], qubits[65]; -ccx qubits[25], qubits[65], qubits[66]; -ccx qubits[26], qubits[66], qubits[67]; -ccx qubits[27], qubits[67], qubits[68]; -ccx qubits[28], qubits[68], qubits[69]; -ccx qubits[29], qubits[69], qubits[70]; -ccx qubits[30], qubits[70], qubits[71]; -ccx qubits[31], qubits[71], qubits[72]; -ccx qubits[32], qubits[72], qubits[73]; -ccx qubits[33], qubits[73], qubits[74]; -ccx qubits[34], qubits[74], qubits[75]; -ccx qubits[35], qubits[75], qubits[76]; -ccx qubits[36], qubits[76], qubits[77]; -ccx qubits[37], qubits[77], qubits[78]; -ccx qubits[38], qubits[78], qubits[79]; -ccx qubits[39], qubits[79], qubits[80]; -cz qubits[80], qubits[40]; -ccx qubits[39], qubits[79], qubits[80]; -ccx qubits[38], qubits[78], qubits[79]; -ccx qubits[37], qubits[77], qubits[78]; -ccx qubits[36], qubits[76], qubits[77]; -ccx qubits[35], qubits[75], qubits[76]; -ccx qubits[34], qubits[74], qubits[75]; -ccx qubits[33], qubits[73], qubits[74]; -ccx qubits[32], qubits[72], qubits[73]; -ccx qubits[31], qubits[71], qubits[72]; -ccx qubits[30], qubits[70], qubits[71]; -ccx qubits[29], qubits[69], qubits[70]; -ccx qubits[28], qubits[68], qubits[69]; -ccx qubits[27], qubits[67], qubits[68]; -ccx qubits[26], qubits[66], qubits[67]; -ccx qubits[25], qubits[65], qubits[66]; -ccx qubits[24], qubits[64], qubits[65]; -ccx qubits[23], qubits[63], qubits[64]; -ccx qubits[22], qubits[62], qubits[63]; -ccx qubits[21], qubits[61], qubits[62]; -ccx qubits[20], qubits[60], qubits[61]; -ccx qubits[19], qubits[59], qubits[60]; -ccx qubits[18], qubits[58], qubits[59]; -ccx qubits[17], qubits[57], qubits[58]; -ccx qubits[16], qubits[56], qubits[57]; -ccx qubits[15], qubits[55], qubits[56]; -ccx qubits[14], qubits[54], qubits[55]; -ccx qubits[13], qubits[53], qubits[54]; -ccx qubits[12], qubits[52], qubits[53]; -ccx qubits[11], qubits[51], qubits[52]; -ccx qubits[10], qubits[50], qubits[51]; -ccx qubits[9], qubits[49], qubits[50]; -ccx qubits[8], qubits[48], qubits[49]; -ccx qubits[7], qubits[47], qubits[48]; -ccx qubits[6], qubits[46], qubits[47]; -ccx qubits[5], qubits[45], qubits[46]; -ccx qubits[4], qubits[44], qubits[45]; -ccx qubits[3], qubits[43], qubits[44]; -ccx qubits[2], qubits[42], qubits[43]; -ccx qubits[0], qubits[1], qubits[42]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +cz qubits[78], qubits[79]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; +x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; -z qubits[41]; +h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +z qubits[80]; diff --git a/benchmarks/all/OEGrover/41/post.hsl b/benchmarks/all/OEGrover/41/post.hsl index 7368abc2c..1e311628c 100644 --- a/benchmarks/all/OEGrover/41/post.hsl +++ b/benchmarks/all/OEGrover/41/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 19 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/41/post.lsta b/benchmarks/all/OEGrover/41/post.lsta deleted file mode 100644 index c3bacb854..000000000 --- a/benchmarks/all/OEGrover/41/post.lsta +++ /dev/null @@ -1,212 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 84) -> 81 -[42,1](83, 85) -> 82 -[43,1](86, 86) -> 83 -[43,1](87, 86) -> 84 -[43,1](88, 86) -> 85 -[44,1](89, 89) -> 86 -[44,1](90, 89) -> 87 -[44,1](91, 89) -> 88 -[45,1](92, 92) -> 89 -[45,1](93, 92) -> 90 -[45,1](94, 92) -> 91 -[46,1](95, 95) -> 92 -[46,1](96, 95) -> 93 -[46,1](97, 95) -> 94 -[47,1](98, 98) -> 95 -[47,1](99, 98) -> 96 -[47,1](100, 98) -> 97 -[48,1](101, 101) -> 98 -[48,1](102, 101) -> 99 -[48,1](103, 101) -> 100 -[49,1](104, 104) -> 101 -[49,1](105, 104) -> 102 -[49,1](106, 104) -> 103 -[50,1](107, 107) -> 104 -[50,1](108, 107) -> 105 -[50,1](109, 107) -> 106 -[51,1](110, 110) -> 107 -[51,1](111, 110) -> 108 -[51,1](112, 110) -> 109 -[52,1](113, 113) -> 110 -[52,1](114, 113) -> 111 -[52,1](115, 113) -> 112 -[53,1](116, 116) -> 113 -[53,1](117, 116) -> 114 -[53,1](118, 116) -> 115 -[54,1](119, 119) -> 116 -[54,1](120, 119) -> 117 -[54,1](121, 119) -> 118 -[55,1](122, 122) -> 119 -[55,1](123, 122) -> 120 -[55,1](124, 122) -> 121 -[56,1](125, 125) -> 122 -[56,1](126, 125) -> 123 -[56,1](127, 125) -> 124 -[57,1](128, 128) -> 125 -[57,1](129, 128) -> 126 -[57,1](130, 128) -> 127 -[58,1](131, 131) -> 128 -[58,1](132, 131) -> 129 -[58,1](133, 131) -> 130 -[59,1](134, 134) -> 131 -[59,1](135, 134) -> 132 -[59,1](136, 134) -> 133 -[60,1](137, 137) -> 134 -[60,1](138, 137) -> 135 -[60,1](139, 137) -> 136 -[61,1](140, 140) -> 137 -[61,1](141, 140) -> 138 -[61,1](142, 140) -> 139 -[62,1](143, 143) -> 140 -[62,1](144, 143) -> 141 -[62,1](145, 143) -> 142 -[63,1](146, 146) -> 143 -[63,1](147, 146) -> 144 -[63,1](148, 146) -> 145 -[64,1](149, 149) -> 146 -[64,1](150, 149) -> 147 -[64,1](151, 149) -> 148 -[65,1](152, 152) -> 149 -[65,1](153, 152) -> 150 -[65,1](154, 152) -> 151 -[66,1](155, 155) -> 152 -[66,1](156, 155) -> 153 -[66,1](157, 155) -> 154 -[67,1](158, 158) -> 155 -[67,1](159, 158) -> 156 -[67,1](160, 158) -> 157 -[68,1](161, 161) -> 158 -[68,1](162, 161) -> 159 -[68,1](163, 161) -> 160 -[69,1](164, 164) -> 161 -[69,1](165, 164) -> 162 -[69,1](166, 164) -> 163 -[70,1](167, 167) -> 164 -[70,1](168, 167) -> 165 -[70,1](169, 167) -> 166 -[71,1](170, 170) -> 167 -[71,1](171, 170) -> 168 -[71,1](172, 170) -> 169 -[72,1](173, 173) -> 170 -[72,1](174, 173) -> 171 -[72,1](175, 173) -> 172 -[73,1](176, 176) -> 173 -[73,1](177, 176) -> 174 -[73,1](178, 176) -> 175 -[74,1](179, 179) -> 176 -[74,1](180, 179) -> 177 -[74,1](181, 179) -> 178 -[75,1](182, 182) -> 179 -[75,1](183, 182) -> 180 -[75,1](184, 182) -> 181 -[76,1](185, 185) -> 182 -[76,1](186, 185) -> 183 -[76,1](187, 185) -> 184 -[77,1](188, 188) -> 185 -[77,1](189, 188) -> 186 -[77,1](190, 188) -> 187 -[78,1](191, 191) -> 188 -[78,1](192, 191) -> 189 -[78,1](193, 191) -> 190 -[79,1](194, 194) -> 191 -[79,1](195, 194) -> 192 -[79,1](196, 194) -> 193 -[80,1](197, 197) -> 194 -[80,1](198, 197) -> 195 -[80,1](199, 197) -> 196 -[81,1](200, 200) -> 197 -[81,1](201, 200) -> 198 -[81,1](202, 200) -> 199 -[82,1](203, 203) -> 200 -[82,1](204, 203) -> 201 -[82,1](205, 203) -> 202 -[p1,1] -> 203 -[p2,1] -> 204 -[p3,1] -> 205 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/41/pre.hsl b/benchmarks/all/OEGrover/41/pre.hsl index 273d1d14d..0836bda19 100644 --- a/benchmarks/all/OEGrover/41/pre.hsl +++ b/benchmarks/all/OEGrover/41/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 19 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 2199023255551 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/41/pre.lsta b/benchmarks/all/OEGrover/41/pre.lsta deleted file mode 100644 index 8f7984abf..000000000 --- a/benchmarks/all/OEGrover/41/pre.lsta +++ /dev/null @@ -1,216 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 84) -> 81 -[42,1](83, 85) -> 82 -[43,1](86, 86) -> 83 -[43,1](87, 86) -> 84 -[43,1](88, 86) -> 85 -[44,1](89, 89) -> 86 -[44,1](90, 89) -> 87 -[44,1](91, 89) -> 88 -[45,1](92, 92) -> 89 -[45,1](93, 92) -> 90 -[45,1](94, 92) -> 91 -[46,1](95, 95) -> 92 -[46,1](96, 95) -> 93 -[46,1](97, 95) -> 94 -[47,1](98, 98) -> 95 -[47,1](99, 98) -> 96 -[47,1](100, 98) -> 97 -[48,1](101, 101) -> 98 -[48,1](102, 101) -> 99 -[48,1](103, 101) -> 100 -[49,1](104, 104) -> 101 -[49,1](105, 104) -> 102 -[49,1](106, 104) -> 103 -[50,1](107, 107) -> 104 -[50,1](108, 107) -> 105 -[50,1](109, 107) -> 106 -[51,1](110, 110) -> 107 -[51,1](111, 110) -> 108 -[51,1](112, 110) -> 109 -[52,1](113, 113) -> 110 -[52,1](114, 113) -> 111 -[52,1](115, 113) -> 112 -[53,1](116, 116) -> 113 -[53,1](117, 116) -> 114 -[53,1](118, 116) -> 115 -[54,1](119, 119) -> 116 -[54,1](120, 119) -> 117 -[54,1](121, 119) -> 118 -[55,1](122, 122) -> 119 -[55,1](123, 122) -> 120 -[55,1](124, 122) -> 121 -[56,1](125, 125) -> 122 -[56,1](126, 125) -> 123 -[56,1](127, 125) -> 124 -[57,1](128, 128) -> 125 -[57,1](129, 128) -> 126 -[57,1](130, 128) -> 127 -[58,1](131, 131) -> 128 -[58,1](132, 131) -> 129 -[58,1](133, 131) -> 130 -[59,1](134, 134) -> 131 -[59,1](135, 134) -> 132 -[59,1](136, 134) -> 133 -[60,1](137, 137) -> 134 -[60,1](138, 137) -> 135 -[60,1](139, 137) -> 136 -[61,1](140, 140) -> 137 -[61,1](141, 140) -> 138 -[61,1](142, 140) -> 139 -[62,1](143, 143) -> 140 -[62,1](144, 143) -> 141 -[62,1](145, 143) -> 142 -[63,1](146, 146) -> 143 -[63,1](147, 146) -> 144 -[63,1](148, 146) -> 145 -[64,1](149, 149) -> 146 -[64,1](150, 149) -> 147 -[64,1](151, 149) -> 148 -[65,1](152, 152) -> 149 -[65,1](153, 152) -> 150 -[65,1](154, 152) -> 151 -[66,1](155, 155) -> 152 -[66,1](156, 155) -> 153 -[66,1](157, 155) -> 154 -[67,1](158, 158) -> 155 -[67,1](159, 158) -> 156 -[67,1](160, 158) -> 157 -[68,1](161, 161) -> 158 -[68,1](162, 161) -> 159 -[68,1](163, 161) -> 160 -[69,1](164, 164) -> 161 -[69,1](165, 164) -> 162 -[69,1](166, 164) -> 163 -[70,1](167, 167) -> 164 -[70,1](168, 167) -> 165 -[70,1](169, 167) -> 166 -[71,1](170, 170) -> 167 -[71,1](171, 170) -> 168 -[71,1](172, 170) -> 169 -[72,1](173, 173) -> 170 -[72,1](174, 173) -> 171 -[72,1](175, 173) -> 172 -[73,1](176, 176) -> 173 -[73,1](177, 176) -> 174 -[73,1](178, 176) -> 175 -[74,1](179, 179) -> 176 -[74,1](180, 179) -> 177 -[74,1](181, 179) -> 178 -[75,1](182, 182) -> 179 -[75,1](183, 182) -> 180 -[75,1](184, 182) -> 181 -[76,1](185, 185) -> 182 -[76,1](186, 185) -> 183 -[76,1](187, 185) -> 184 -[77,1](188, 188) -> 185 -[77,1](189, 188) -> 186 -[77,1](190, 188) -> 187 -[78,1](191, 191) -> 188 -[78,1](192, 191) -> 189 -[78,1](193, 191) -> 190 -[79,1](194, 194) -> 191 -[79,1](195, 194) -> 192 -[79,1](196, 194) -> 193 -[80,1](197, 197) -> 194 -[80,1](198, 197) -> 195 -[80,1](199, 197) -> 196 -[81,1](200, 200) -> 197 -[81,1](201, 200) -> 198 -[81,1](202, 200) -> 199 -[82,1](203, 203) -> 200 -[82,1](204, 203) -> 201 -[82,1](205, 203) -> 202 -[c0,1] -> 203 -[a,1] -> 204 -[b,1] -> 205 -Constraints -2199023255551 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/42/circuit.qasm b/benchmarks/all/OEGrover/42/circuit.qasm index a2897028a..86f387e3c 100644 --- a/benchmarks/all/OEGrover/42/circuit.qasm +++ b/benchmarks/all/OEGrover/42/circuit.qasm @@ -1,109 +1,109 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[84]; +qreg qubits[83]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -ccx qubits[0], qubits[1], qubits[43]; -ccx qubits[2], qubits[43], qubits[44]; -ccx qubits[3], qubits[44], qubits[45]; -ccx qubits[4], qubits[45], qubits[46]; -ccx qubits[5], qubits[46], qubits[47]; -ccx qubits[6], qubits[47], qubits[48]; -ccx qubits[7], qubits[48], qubits[49]; -ccx qubits[8], qubits[49], qubits[50]; -ccx qubits[9], qubits[50], qubits[51]; -ccx qubits[10], qubits[51], qubits[52]; -ccx qubits[11], qubits[52], qubits[53]; -ccx qubits[12], qubits[53], qubits[54]; -ccx qubits[13], qubits[54], qubits[55]; -ccx qubits[14], qubits[55], qubits[56]; -ccx qubits[15], qubits[56], qubits[57]; -ccx qubits[16], qubits[57], qubits[58]; -ccx qubits[17], qubits[58], qubits[59]; -ccx qubits[18], qubits[59], qubits[60]; -ccx qubits[19], qubits[60], qubits[61]; -ccx qubits[20], qubits[61], qubits[62]; -ccx qubits[21], qubits[62], qubits[63]; -ccx qubits[22], qubits[63], qubits[64]; -ccx qubits[23], qubits[64], qubits[65]; -ccx qubits[24], qubits[65], qubits[66]; -ccx qubits[25], qubits[66], qubits[67]; -ccx qubits[26], qubits[67], qubits[68]; -ccx qubits[27], qubits[68], qubits[69]; -ccx qubits[28], qubits[69], qubits[70]; -ccx qubits[29], qubits[70], qubits[71]; -ccx qubits[30], qubits[71], qubits[72]; -ccx qubits[31], qubits[72], qubits[73]; -ccx qubits[32], qubits[73], qubits[74]; -ccx qubits[33], qubits[74], qubits[75]; -ccx qubits[34], qubits[75], qubits[76]; -ccx qubits[35], qubits[76], qubits[77]; -ccx qubits[36], qubits[77], qubits[78]; -ccx qubits[37], qubits[78], qubits[79]; -ccx qubits[38], qubits[79], qubits[80]; -ccx qubits[39], qubits[80], qubits[81]; -ccx qubits[40], qubits[81], qubits[82]; -cz qubits[82], qubits[41]; -ccx qubits[40], qubits[81], qubits[82]; -ccx qubits[39], qubits[80], qubits[81]; -ccx qubits[38], qubits[79], qubits[80]; -ccx qubits[37], qubits[78], qubits[79]; -ccx qubits[36], qubits[77], qubits[78]; -ccx qubits[35], qubits[76], qubits[77]; -ccx qubits[34], qubits[75], qubits[76]; -ccx qubits[33], qubits[74], qubits[75]; -ccx qubits[32], qubits[73], qubits[74]; -ccx qubits[31], qubits[72], qubits[73]; -ccx qubits[30], qubits[71], qubits[72]; -ccx qubits[29], qubits[70], qubits[71]; -ccx qubits[28], qubits[69], qubits[70]; -ccx qubits[27], qubits[68], qubits[69]; -ccx qubits[26], qubits[67], qubits[68]; -ccx qubits[25], qubits[66], qubits[67]; -ccx qubits[24], qubits[65], qubits[66]; -ccx qubits[23], qubits[64], qubits[65]; -ccx qubits[22], qubits[63], qubits[64]; -ccx qubits[21], qubits[62], qubits[63]; -ccx qubits[20], qubits[61], qubits[62]; -ccx qubits[19], qubits[60], qubits[61]; -ccx qubits[18], qubits[59], qubits[60]; -ccx qubits[17], qubits[58], qubits[59]; -ccx qubits[16], qubits[57], qubits[58]; -ccx qubits[15], qubits[56], qubits[57]; -ccx qubits[14], qubits[55], qubits[56]; -ccx qubits[13], qubits[54], qubits[55]; -ccx qubits[12], qubits[53], qubits[54]; -ccx qubits[11], qubits[52], qubits[53]; -ccx qubits[10], qubits[51], qubits[52]; -ccx qubits[9], qubits[50], qubits[51]; -ccx qubits[8], qubits[49], qubits[50]; -ccx qubits[7], qubits[48], qubits[49]; -ccx qubits[6], qubits[47], qubits[48]; -ccx qubits[5], qubits[46], qubits[47]; -ccx qubits[4], qubits[45], qubits[46]; -ccx qubits[3], qubits[44], qubits[45]; -ccx qubits[2], qubits[43], qubits[44]; -ccx qubits[0], qubits[1], qubits[43]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +cz qubits[80], qubits[81]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -127,251 +127,251 @@ x qubits[38]; x qubits[40]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -ccx qubits[0], qubits[1], qubits[43]; -ccx qubits[2], qubits[43], qubits[44]; -ccx qubits[3], qubits[44], qubits[45]; -ccx qubits[4], qubits[45], qubits[46]; -ccx qubits[5], qubits[46], qubits[47]; -ccx qubits[6], qubits[47], qubits[48]; -ccx qubits[7], qubits[48], qubits[49]; -ccx qubits[8], qubits[49], qubits[50]; -ccx qubits[9], qubits[50], qubits[51]; -ccx qubits[10], qubits[51], qubits[52]; -ccx qubits[11], qubits[52], qubits[53]; -ccx qubits[12], qubits[53], qubits[54]; -ccx qubits[13], qubits[54], qubits[55]; -ccx qubits[14], qubits[55], qubits[56]; -ccx qubits[15], qubits[56], qubits[57]; -ccx qubits[16], qubits[57], qubits[58]; -ccx qubits[17], qubits[58], qubits[59]; -ccx qubits[18], qubits[59], qubits[60]; -ccx qubits[19], qubits[60], qubits[61]; -ccx qubits[20], qubits[61], qubits[62]; -ccx qubits[21], qubits[62], qubits[63]; -ccx qubits[22], qubits[63], qubits[64]; -ccx qubits[23], qubits[64], qubits[65]; -ccx qubits[24], qubits[65], qubits[66]; -ccx qubits[25], qubits[66], qubits[67]; -ccx qubits[26], qubits[67], qubits[68]; -ccx qubits[27], qubits[68], qubits[69]; -ccx qubits[28], qubits[69], qubits[70]; -ccx qubits[29], qubits[70], qubits[71]; -ccx qubits[30], qubits[71], qubits[72]; -ccx qubits[31], qubits[72], qubits[73]; -ccx qubits[32], qubits[73], qubits[74]; -ccx qubits[33], qubits[74], qubits[75]; -ccx qubits[34], qubits[75], qubits[76]; -ccx qubits[35], qubits[76], qubits[77]; -ccx qubits[36], qubits[77], qubits[78]; -ccx qubits[37], qubits[78], qubits[79]; -ccx qubits[38], qubits[79], qubits[80]; -ccx qubits[39], qubits[80], qubits[81]; -ccx qubits[40], qubits[81], qubits[82]; -cz qubits[82], qubits[41]; -ccx qubits[40], qubits[81], qubits[82]; -ccx qubits[39], qubits[80], qubits[81]; -ccx qubits[38], qubits[79], qubits[80]; -ccx qubits[37], qubits[78], qubits[79]; -ccx qubits[36], qubits[77], qubits[78]; -ccx qubits[35], qubits[76], qubits[77]; -ccx qubits[34], qubits[75], qubits[76]; -ccx qubits[33], qubits[74], qubits[75]; -ccx qubits[32], qubits[73], qubits[74]; -ccx qubits[31], qubits[72], qubits[73]; -ccx qubits[30], qubits[71], qubits[72]; -ccx qubits[29], qubits[70], qubits[71]; -ccx qubits[28], qubits[69], qubits[70]; -ccx qubits[27], qubits[68], qubits[69]; -ccx qubits[26], qubits[67], qubits[68]; -ccx qubits[25], qubits[66], qubits[67]; -ccx qubits[24], qubits[65], qubits[66]; -ccx qubits[23], qubits[64], qubits[65]; -ccx qubits[22], qubits[63], qubits[64]; -ccx qubits[21], qubits[62], qubits[63]; -ccx qubits[20], qubits[61], qubits[62]; -ccx qubits[19], qubits[60], qubits[61]; -ccx qubits[18], qubits[59], qubits[60]; -ccx qubits[17], qubits[58], qubits[59]; -ccx qubits[16], qubits[57], qubits[58]; -ccx qubits[15], qubits[56], qubits[57]; -ccx qubits[14], qubits[55], qubits[56]; -ccx qubits[13], qubits[54], qubits[55]; -ccx qubits[12], qubits[53], qubits[54]; -ccx qubits[11], qubits[52], qubits[53]; -ccx qubits[10], qubits[51], qubits[52]; -ccx qubits[9], qubits[50], qubits[51]; -ccx qubits[8], qubits[49], qubits[50]; -ccx qubits[7], qubits[48], qubits[49]; -ccx qubits[6], qubits[47], qubits[48]; -ccx qubits[5], qubits[46], qubits[47]; -ccx qubits[4], qubits[45], qubits[46]; -ccx qubits[3], qubits[44], qubits[45]; -ccx qubits[2], qubits[43], qubits[44]; -ccx qubits[0], qubits[1], qubits[43]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +cz qubits[80], qubits[81]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -z qubits[42]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +z qubits[82]; diff --git a/benchmarks/all/OEGrover/42/post.hsl b/benchmarks/all/OEGrover/42/post.hsl index e91eb1eff..634a7b08f 100644 --- a/benchmarks/all/OEGrover/42/post.hsl +++ b/benchmarks/all/OEGrover/42/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101100000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 20 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/42/post.lsta b/benchmarks/all/OEGrover/42/post.lsta deleted file mode 100644 index 307a96476..000000000 --- a/benchmarks/all/OEGrover/42/post.lsta +++ /dev/null @@ -1,217 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 86) -> 83 -[43,1](85, 87) -> 84 -[44,1](88, 88) -> 85 -[44,1](89, 88) -> 86 -[44,1](90, 88) -> 87 -[45,1](91, 91) -> 88 -[45,1](92, 91) -> 89 -[45,1](93, 91) -> 90 -[46,1](94, 94) -> 91 -[46,1](95, 94) -> 92 -[46,1](96, 94) -> 93 -[47,1](97, 97) -> 94 -[47,1](98, 97) -> 95 -[47,1](99, 97) -> 96 -[48,1](100, 100) -> 97 -[48,1](101, 100) -> 98 -[48,1](102, 100) -> 99 -[49,1](103, 103) -> 100 -[49,1](104, 103) -> 101 -[49,1](105, 103) -> 102 -[50,1](106, 106) -> 103 -[50,1](107, 106) -> 104 -[50,1](108, 106) -> 105 -[51,1](109, 109) -> 106 -[51,1](110, 109) -> 107 -[51,1](111, 109) -> 108 -[52,1](112, 112) -> 109 -[52,1](113, 112) -> 110 -[52,1](114, 112) -> 111 -[53,1](115, 115) -> 112 -[53,1](116, 115) -> 113 -[53,1](117, 115) -> 114 -[54,1](118, 118) -> 115 -[54,1](119, 118) -> 116 -[54,1](120, 118) -> 117 -[55,1](121, 121) -> 118 -[55,1](122, 121) -> 119 -[55,1](123, 121) -> 120 -[56,1](124, 124) -> 121 -[56,1](125, 124) -> 122 -[56,1](126, 124) -> 123 -[57,1](127, 127) -> 124 -[57,1](128, 127) -> 125 -[57,1](129, 127) -> 126 -[58,1](130, 130) -> 127 -[58,1](131, 130) -> 128 -[58,1](132, 130) -> 129 -[59,1](133, 133) -> 130 -[59,1](134, 133) -> 131 -[59,1](135, 133) -> 132 -[60,1](136, 136) -> 133 -[60,1](137, 136) -> 134 -[60,1](138, 136) -> 135 -[61,1](139, 139) -> 136 -[61,1](140, 139) -> 137 -[61,1](141, 139) -> 138 -[62,1](142, 142) -> 139 -[62,1](143, 142) -> 140 -[62,1](144, 142) -> 141 -[63,1](145, 145) -> 142 -[63,1](146, 145) -> 143 -[63,1](147, 145) -> 144 -[64,1](148, 148) -> 145 -[64,1](149, 148) -> 146 -[64,1](150, 148) -> 147 -[65,1](151, 151) -> 148 -[65,1](152, 151) -> 149 -[65,1](153, 151) -> 150 -[66,1](154, 154) -> 151 -[66,1](155, 154) -> 152 -[66,1](156, 154) -> 153 -[67,1](157, 157) -> 154 -[67,1](158, 157) -> 155 -[67,1](159, 157) -> 156 -[68,1](160, 160) -> 157 -[68,1](161, 160) -> 158 -[68,1](162, 160) -> 159 -[69,1](163, 163) -> 160 -[69,1](164, 163) -> 161 -[69,1](165, 163) -> 162 -[70,1](166, 166) -> 163 -[70,1](167, 166) -> 164 -[70,1](168, 166) -> 165 -[71,1](169, 169) -> 166 -[71,1](170, 169) -> 167 -[71,1](171, 169) -> 168 -[72,1](172, 172) -> 169 -[72,1](173, 172) -> 170 -[72,1](174, 172) -> 171 -[73,1](175, 175) -> 172 -[73,1](176, 175) -> 173 -[73,1](177, 175) -> 174 -[74,1](178, 178) -> 175 -[74,1](179, 178) -> 176 -[74,1](180, 178) -> 177 -[75,1](181, 181) -> 178 -[75,1](182, 181) -> 179 -[75,1](183, 181) -> 180 -[76,1](184, 184) -> 181 -[76,1](185, 184) -> 182 -[76,1](186, 184) -> 183 -[77,1](187, 187) -> 184 -[77,1](188, 187) -> 185 -[77,1](189, 187) -> 186 -[78,1](190, 190) -> 187 -[78,1](191, 190) -> 188 -[78,1](192, 190) -> 189 -[79,1](193, 193) -> 190 -[79,1](194, 193) -> 191 -[79,1](195, 193) -> 192 -[80,1](196, 196) -> 193 -[80,1](197, 196) -> 194 -[80,1](198, 196) -> 195 -[81,1](199, 199) -> 196 -[81,1](200, 199) -> 197 -[81,1](201, 199) -> 198 -[82,1](202, 202) -> 199 -[82,1](203, 202) -> 200 -[82,1](204, 202) -> 201 -[83,1](205, 205) -> 202 -[83,1](206, 205) -> 203 -[83,1](207, 205) -> 204 -[84,1](208, 208) -> 205 -[84,1](209, 208) -> 206 -[84,1](210, 208) -> 207 -[p1,1] -> 208 -[p2,1] -> 209 -[p3,1] -> 210 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/42/pre.hsl b/benchmarks/all/OEGrover/42/pre.hsl index c1b43ef6e..7132a562b 100644 --- a/benchmarks/all/OEGrover/42/pre.hsl +++ b/benchmarks/all/OEGrover/42/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 20 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 4398046511103 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/42/pre.lsta b/benchmarks/all/OEGrover/42/pre.lsta deleted file mode 100644 index c1572c75d..000000000 --- a/benchmarks/all/OEGrover/42/pre.lsta +++ /dev/null @@ -1,221 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 86) -> 83 -[43,1](85, 87) -> 84 -[44,1](88, 88) -> 85 -[44,1](89, 88) -> 86 -[44,1](90, 88) -> 87 -[45,1](91, 91) -> 88 -[45,1](92, 91) -> 89 -[45,1](93, 91) -> 90 -[46,1](94, 94) -> 91 -[46,1](95, 94) -> 92 -[46,1](96, 94) -> 93 -[47,1](97, 97) -> 94 -[47,1](98, 97) -> 95 -[47,1](99, 97) -> 96 -[48,1](100, 100) -> 97 -[48,1](101, 100) -> 98 -[48,1](102, 100) -> 99 -[49,1](103, 103) -> 100 -[49,1](104, 103) -> 101 -[49,1](105, 103) -> 102 -[50,1](106, 106) -> 103 -[50,1](107, 106) -> 104 -[50,1](108, 106) -> 105 -[51,1](109, 109) -> 106 -[51,1](110, 109) -> 107 -[51,1](111, 109) -> 108 -[52,1](112, 112) -> 109 -[52,1](113, 112) -> 110 -[52,1](114, 112) -> 111 -[53,1](115, 115) -> 112 -[53,1](116, 115) -> 113 -[53,1](117, 115) -> 114 -[54,1](118, 118) -> 115 -[54,1](119, 118) -> 116 -[54,1](120, 118) -> 117 -[55,1](121, 121) -> 118 -[55,1](122, 121) -> 119 -[55,1](123, 121) -> 120 -[56,1](124, 124) -> 121 -[56,1](125, 124) -> 122 -[56,1](126, 124) -> 123 -[57,1](127, 127) -> 124 -[57,1](128, 127) -> 125 -[57,1](129, 127) -> 126 -[58,1](130, 130) -> 127 -[58,1](131, 130) -> 128 -[58,1](132, 130) -> 129 -[59,1](133, 133) -> 130 -[59,1](134, 133) -> 131 -[59,1](135, 133) -> 132 -[60,1](136, 136) -> 133 -[60,1](137, 136) -> 134 -[60,1](138, 136) -> 135 -[61,1](139, 139) -> 136 -[61,1](140, 139) -> 137 -[61,1](141, 139) -> 138 -[62,1](142, 142) -> 139 -[62,1](143, 142) -> 140 -[62,1](144, 142) -> 141 -[63,1](145, 145) -> 142 -[63,1](146, 145) -> 143 -[63,1](147, 145) -> 144 -[64,1](148, 148) -> 145 -[64,1](149, 148) -> 146 -[64,1](150, 148) -> 147 -[65,1](151, 151) -> 148 -[65,1](152, 151) -> 149 -[65,1](153, 151) -> 150 -[66,1](154, 154) -> 151 -[66,1](155, 154) -> 152 -[66,1](156, 154) -> 153 -[67,1](157, 157) -> 154 -[67,1](158, 157) -> 155 -[67,1](159, 157) -> 156 -[68,1](160, 160) -> 157 -[68,1](161, 160) -> 158 -[68,1](162, 160) -> 159 -[69,1](163, 163) -> 160 -[69,1](164, 163) -> 161 -[69,1](165, 163) -> 162 -[70,1](166, 166) -> 163 -[70,1](167, 166) -> 164 -[70,1](168, 166) -> 165 -[71,1](169, 169) -> 166 -[71,1](170, 169) -> 167 -[71,1](171, 169) -> 168 -[72,1](172, 172) -> 169 -[72,1](173, 172) -> 170 -[72,1](174, 172) -> 171 -[73,1](175, 175) -> 172 -[73,1](176, 175) -> 173 -[73,1](177, 175) -> 174 -[74,1](178, 178) -> 175 -[74,1](179, 178) -> 176 -[74,1](180, 178) -> 177 -[75,1](181, 181) -> 178 -[75,1](182, 181) -> 179 -[75,1](183, 181) -> 180 -[76,1](184, 184) -> 181 -[76,1](185, 184) -> 182 -[76,1](186, 184) -> 183 -[77,1](187, 187) -> 184 -[77,1](188, 187) -> 185 -[77,1](189, 187) -> 186 -[78,1](190, 190) -> 187 -[78,1](191, 190) -> 188 -[78,1](192, 190) -> 189 -[79,1](193, 193) -> 190 -[79,1](194, 193) -> 191 -[79,1](195, 193) -> 192 -[80,1](196, 196) -> 193 -[80,1](197, 196) -> 194 -[80,1](198, 196) -> 195 -[81,1](199, 199) -> 196 -[81,1](200, 199) -> 197 -[81,1](201, 199) -> 198 -[82,1](202, 202) -> 199 -[82,1](203, 202) -> 200 -[82,1](204, 202) -> 201 -[83,1](205, 205) -> 202 -[83,1](206, 205) -> 203 -[83,1](207, 205) -> 204 -[84,1](208, 208) -> 205 -[84,1](209, 208) -> 206 -[84,1](210, 208) -> 207 -[c0,1] -> 208 -[a,1] -> 209 -[b,1] -> 210 -Constraints -4398046511103 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/43/circuit.qasm b/benchmarks/all/OEGrover/43/circuit.qasm index a46a2de12..079a23691 100644 --- a/benchmarks/all/OEGrover/43/circuit.qasm +++ b/benchmarks/all/OEGrover/43/circuit.qasm @@ -1,112 +1,112 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[86]; +qreg qubits[85]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -ccx qubits[0], qubits[1], qubits[44]; -ccx qubits[2], qubits[44], qubits[45]; -ccx qubits[3], qubits[45], qubits[46]; -ccx qubits[4], qubits[46], qubits[47]; -ccx qubits[5], qubits[47], qubits[48]; -ccx qubits[6], qubits[48], qubits[49]; -ccx qubits[7], qubits[49], qubits[50]; -ccx qubits[8], qubits[50], qubits[51]; -ccx qubits[9], qubits[51], qubits[52]; -ccx qubits[10], qubits[52], qubits[53]; -ccx qubits[11], qubits[53], qubits[54]; -ccx qubits[12], qubits[54], qubits[55]; -ccx qubits[13], qubits[55], qubits[56]; -ccx qubits[14], qubits[56], qubits[57]; -ccx qubits[15], qubits[57], qubits[58]; -ccx qubits[16], qubits[58], qubits[59]; -ccx qubits[17], qubits[59], qubits[60]; -ccx qubits[18], qubits[60], qubits[61]; -ccx qubits[19], qubits[61], qubits[62]; -ccx qubits[20], qubits[62], qubits[63]; -ccx qubits[21], qubits[63], qubits[64]; -ccx qubits[22], qubits[64], qubits[65]; -ccx qubits[23], qubits[65], qubits[66]; -ccx qubits[24], qubits[66], qubits[67]; -ccx qubits[25], qubits[67], qubits[68]; -ccx qubits[26], qubits[68], qubits[69]; -ccx qubits[27], qubits[69], qubits[70]; -ccx qubits[28], qubits[70], qubits[71]; -ccx qubits[29], qubits[71], qubits[72]; -ccx qubits[30], qubits[72], qubits[73]; -ccx qubits[31], qubits[73], qubits[74]; -ccx qubits[32], qubits[74], qubits[75]; -ccx qubits[33], qubits[75], qubits[76]; -ccx qubits[34], qubits[76], qubits[77]; -ccx qubits[35], qubits[77], qubits[78]; -ccx qubits[36], qubits[78], qubits[79]; -ccx qubits[37], qubits[79], qubits[80]; -ccx qubits[38], qubits[80], qubits[81]; -ccx qubits[39], qubits[81], qubits[82]; -ccx qubits[40], qubits[82], qubits[83]; -ccx qubits[41], qubits[83], qubits[84]; -cz qubits[84], qubits[42]; -ccx qubits[41], qubits[83], qubits[84]; -ccx qubits[40], qubits[82], qubits[83]; -ccx qubits[39], qubits[81], qubits[82]; -ccx qubits[38], qubits[80], qubits[81]; -ccx qubits[37], qubits[79], qubits[80]; -ccx qubits[36], qubits[78], qubits[79]; -ccx qubits[35], qubits[77], qubits[78]; -ccx qubits[34], qubits[76], qubits[77]; -ccx qubits[33], qubits[75], qubits[76]; -ccx qubits[32], qubits[74], qubits[75]; -ccx qubits[31], qubits[73], qubits[74]; -ccx qubits[30], qubits[72], qubits[73]; -ccx qubits[29], qubits[71], qubits[72]; -ccx qubits[28], qubits[70], qubits[71]; -ccx qubits[27], qubits[69], qubits[70]; -ccx qubits[26], qubits[68], qubits[69]; -ccx qubits[25], qubits[67], qubits[68]; -ccx qubits[24], qubits[66], qubits[67]; -ccx qubits[23], qubits[65], qubits[66]; -ccx qubits[22], qubits[64], qubits[65]; -ccx qubits[21], qubits[63], qubits[64]; -ccx qubits[20], qubits[62], qubits[63]; -ccx qubits[19], qubits[61], qubits[62]; -ccx qubits[18], qubits[60], qubits[61]; -ccx qubits[17], qubits[59], qubits[60]; -ccx qubits[16], qubits[58], qubits[59]; -ccx qubits[15], qubits[57], qubits[58]; -ccx qubits[14], qubits[56], qubits[57]; -ccx qubits[13], qubits[55], qubits[56]; -ccx qubits[12], qubits[54], qubits[55]; -ccx qubits[11], qubits[53], qubits[54]; -ccx qubits[10], qubits[52], qubits[53]; -ccx qubits[9], qubits[51], qubits[52]; -ccx qubits[8], qubits[50], qubits[51]; -ccx qubits[7], qubits[49], qubits[50]; -ccx qubits[6], qubits[48], qubits[49]; -ccx qubits[5], qubits[47], qubits[48]; -ccx qubits[4], qubits[46], qubits[47]; -ccx qubits[3], qubits[45], qubits[46]; -ccx qubits[2], qubits[44], qubits[45]; -ccx qubits[0], qubits[1], qubits[44]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +cz qubits[82], qubits[83]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -131,257 +131,257 @@ x qubits[40]; x qubits[42]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; -ccx qubits[0], qubits[1], qubits[44]; -ccx qubits[2], qubits[44], qubits[45]; -ccx qubits[3], qubits[45], qubits[46]; -ccx qubits[4], qubits[46], qubits[47]; -ccx qubits[5], qubits[47], qubits[48]; -ccx qubits[6], qubits[48], qubits[49]; -ccx qubits[7], qubits[49], qubits[50]; -ccx qubits[8], qubits[50], qubits[51]; -ccx qubits[9], qubits[51], qubits[52]; -ccx qubits[10], qubits[52], qubits[53]; -ccx qubits[11], qubits[53], qubits[54]; -ccx qubits[12], qubits[54], qubits[55]; -ccx qubits[13], qubits[55], qubits[56]; -ccx qubits[14], qubits[56], qubits[57]; -ccx qubits[15], qubits[57], qubits[58]; -ccx qubits[16], qubits[58], qubits[59]; -ccx qubits[17], qubits[59], qubits[60]; -ccx qubits[18], qubits[60], qubits[61]; -ccx qubits[19], qubits[61], qubits[62]; -ccx qubits[20], qubits[62], qubits[63]; -ccx qubits[21], qubits[63], qubits[64]; -ccx qubits[22], qubits[64], qubits[65]; -ccx qubits[23], qubits[65], qubits[66]; -ccx qubits[24], qubits[66], qubits[67]; -ccx qubits[25], qubits[67], qubits[68]; -ccx qubits[26], qubits[68], qubits[69]; -ccx qubits[27], qubits[69], qubits[70]; -ccx qubits[28], qubits[70], qubits[71]; -ccx qubits[29], qubits[71], qubits[72]; -ccx qubits[30], qubits[72], qubits[73]; -ccx qubits[31], qubits[73], qubits[74]; -ccx qubits[32], qubits[74], qubits[75]; -ccx qubits[33], qubits[75], qubits[76]; -ccx qubits[34], qubits[76], qubits[77]; -ccx qubits[35], qubits[77], qubits[78]; -ccx qubits[36], qubits[78], qubits[79]; -ccx qubits[37], qubits[79], qubits[80]; -ccx qubits[38], qubits[80], qubits[81]; -ccx qubits[39], qubits[81], qubits[82]; -ccx qubits[40], qubits[82], qubits[83]; -ccx qubits[41], qubits[83], qubits[84]; -cz qubits[84], qubits[42]; -ccx qubits[41], qubits[83], qubits[84]; -ccx qubits[40], qubits[82], qubits[83]; -ccx qubits[39], qubits[81], qubits[82]; -ccx qubits[38], qubits[80], qubits[81]; -ccx qubits[37], qubits[79], qubits[80]; -ccx qubits[36], qubits[78], qubits[79]; -ccx qubits[35], qubits[77], qubits[78]; -ccx qubits[34], qubits[76], qubits[77]; -ccx qubits[33], qubits[75], qubits[76]; -ccx qubits[32], qubits[74], qubits[75]; -ccx qubits[31], qubits[73], qubits[74]; -ccx qubits[30], qubits[72], qubits[73]; -ccx qubits[29], qubits[71], qubits[72]; -ccx qubits[28], qubits[70], qubits[71]; -ccx qubits[27], qubits[69], qubits[70]; -ccx qubits[26], qubits[68], qubits[69]; -ccx qubits[25], qubits[67], qubits[68]; -ccx qubits[24], qubits[66], qubits[67]; -ccx qubits[23], qubits[65], qubits[66]; -ccx qubits[22], qubits[64], qubits[65]; -ccx qubits[21], qubits[63], qubits[64]; -ccx qubits[20], qubits[62], qubits[63]; -ccx qubits[19], qubits[61], qubits[62]; -ccx qubits[18], qubits[60], qubits[61]; -ccx qubits[17], qubits[59], qubits[60]; -ccx qubits[16], qubits[58], qubits[59]; -ccx qubits[15], qubits[57], qubits[58]; -ccx qubits[14], qubits[56], qubits[57]; -ccx qubits[13], qubits[55], qubits[56]; -ccx qubits[12], qubits[54], qubits[55]; -ccx qubits[11], qubits[53], qubits[54]; -ccx qubits[10], qubits[52], qubits[53]; -ccx qubits[9], qubits[51], qubits[52]; -ccx qubits[8], qubits[50], qubits[51]; -ccx qubits[7], qubits[49], qubits[50]; -ccx qubits[6], qubits[48], qubits[49]; -ccx qubits[5], qubits[47], qubits[48]; -ccx qubits[4], qubits[46], qubits[47]; -ccx qubits[3], qubits[45], qubits[46]; -ccx qubits[2], qubits[44], qubits[45]; -ccx qubits[0], qubits[1], qubits[44]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +cz qubits[82], qubits[83]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; +x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; -z qubits[43]; +h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +z qubits[84]; diff --git a/benchmarks/all/OEGrover/43/post.hsl b/benchmarks/all/OEGrover/43/post.hsl index ecceca5d6..149f28bc5 100644 --- a/benchmarks/all/OEGrover/43/post.hsl +++ b/benchmarks/all/OEGrover/43/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 20 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/43/post.lsta b/benchmarks/all/OEGrover/43/post.lsta deleted file mode 100644 index 3e56b6048..000000000 --- a/benchmarks/all/OEGrover/43/post.lsta +++ /dev/null @@ -1,222 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 88) -> 85 -[44,1](87, 89) -> 86 -[45,1](90, 90) -> 87 -[45,1](91, 90) -> 88 -[45,1](92, 90) -> 89 -[46,1](93, 93) -> 90 -[46,1](94, 93) -> 91 -[46,1](95, 93) -> 92 -[47,1](96, 96) -> 93 -[47,1](97, 96) -> 94 -[47,1](98, 96) -> 95 -[48,1](99, 99) -> 96 -[48,1](100, 99) -> 97 -[48,1](101, 99) -> 98 -[49,1](102, 102) -> 99 -[49,1](103, 102) -> 100 -[49,1](104, 102) -> 101 -[50,1](105, 105) -> 102 -[50,1](106, 105) -> 103 -[50,1](107, 105) -> 104 -[51,1](108, 108) -> 105 -[51,1](109, 108) -> 106 -[51,1](110, 108) -> 107 -[52,1](111, 111) -> 108 -[52,1](112, 111) -> 109 -[52,1](113, 111) -> 110 -[53,1](114, 114) -> 111 -[53,1](115, 114) -> 112 -[53,1](116, 114) -> 113 -[54,1](117, 117) -> 114 -[54,1](118, 117) -> 115 -[54,1](119, 117) -> 116 -[55,1](120, 120) -> 117 -[55,1](121, 120) -> 118 -[55,1](122, 120) -> 119 -[56,1](123, 123) -> 120 -[56,1](124, 123) -> 121 -[56,1](125, 123) -> 122 -[57,1](126, 126) -> 123 -[57,1](127, 126) -> 124 -[57,1](128, 126) -> 125 -[58,1](129, 129) -> 126 -[58,1](130, 129) -> 127 -[58,1](131, 129) -> 128 -[59,1](132, 132) -> 129 -[59,1](133, 132) -> 130 -[59,1](134, 132) -> 131 -[60,1](135, 135) -> 132 -[60,1](136, 135) -> 133 -[60,1](137, 135) -> 134 -[61,1](138, 138) -> 135 -[61,1](139, 138) -> 136 -[61,1](140, 138) -> 137 -[62,1](141, 141) -> 138 -[62,1](142, 141) -> 139 -[62,1](143, 141) -> 140 -[63,1](144, 144) -> 141 -[63,1](145, 144) -> 142 -[63,1](146, 144) -> 143 -[64,1](147, 147) -> 144 -[64,1](148, 147) -> 145 -[64,1](149, 147) -> 146 -[65,1](150, 150) -> 147 -[65,1](151, 150) -> 148 -[65,1](152, 150) -> 149 -[66,1](153, 153) -> 150 -[66,1](154, 153) -> 151 -[66,1](155, 153) -> 152 -[67,1](156, 156) -> 153 -[67,1](157, 156) -> 154 -[67,1](158, 156) -> 155 -[68,1](159, 159) -> 156 -[68,1](160, 159) -> 157 -[68,1](161, 159) -> 158 -[69,1](162, 162) -> 159 -[69,1](163, 162) -> 160 -[69,1](164, 162) -> 161 -[70,1](165, 165) -> 162 -[70,1](166, 165) -> 163 -[70,1](167, 165) -> 164 -[71,1](168, 168) -> 165 -[71,1](169, 168) -> 166 -[71,1](170, 168) -> 167 -[72,1](171, 171) -> 168 -[72,1](172, 171) -> 169 -[72,1](173, 171) -> 170 -[73,1](174, 174) -> 171 -[73,1](175, 174) -> 172 -[73,1](176, 174) -> 173 -[74,1](177, 177) -> 174 -[74,1](178, 177) -> 175 -[74,1](179, 177) -> 176 -[75,1](180, 180) -> 177 -[75,1](181, 180) -> 178 -[75,1](182, 180) -> 179 -[76,1](183, 183) -> 180 -[76,1](184, 183) -> 181 -[76,1](185, 183) -> 182 -[77,1](186, 186) -> 183 -[77,1](187, 186) -> 184 -[77,1](188, 186) -> 185 -[78,1](189, 189) -> 186 -[78,1](190, 189) -> 187 -[78,1](191, 189) -> 188 -[79,1](192, 192) -> 189 -[79,1](193, 192) -> 190 -[79,1](194, 192) -> 191 -[80,1](195, 195) -> 192 -[80,1](196, 195) -> 193 -[80,1](197, 195) -> 194 -[81,1](198, 198) -> 195 -[81,1](199, 198) -> 196 -[81,1](200, 198) -> 197 -[82,1](201, 201) -> 198 -[82,1](202, 201) -> 199 -[82,1](203, 201) -> 200 -[83,1](204, 204) -> 201 -[83,1](205, 204) -> 202 -[83,1](206, 204) -> 203 -[84,1](207, 207) -> 204 -[84,1](208, 207) -> 205 -[84,1](209, 207) -> 206 -[85,1](210, 210) -> 207 -[85,1](211, 210) -> 208 -[85,1](212, 210) -> 209 -[86,1](213, 213) -> 210 -[86,1](214, 213) -> 211 -[86,1](215, 213) -> 212 -[p1,1] -> 213 -[p2,1] -> 214 -[p3,1] -> 215 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/43/pre.hsl b/benchmarks/all/OEGrover/43/pre.hsl index ef2703702..beef81b1d 100644 --- a/benchmarks/all/OEGrover/43/pre.hsl +++ b/benchmarks/all/OEGrover/43/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 20 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 8796093022207 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/43/pre.lsta b/benchmarks/all/OEGrover/43/pre.lsta deleted file mode 100644 index e0ba9e722..000000000 --- a/benchmarks/all/OEGrover/43/pre.lsta +++ /dev/null @@ -1,226 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 88) -> 85 -[44,1](87, 89) -> 86 -[45,1](90, 90) -> 87 -[45,1](91, 90) -> 88 -[45,1](92, 90) -> 89 -[46,1](93, 93) -> 90 -[46,1](94, 93) -> 91 -[46,1](95, 93) -> 92 -[47,1](96, 96) -> 93 -[47,1](97, 96) -> 94 -[47,1](98, 96) -> 95 -[48,1](99, 99) -> 96 -[48,1](100, 99) -> 97 -[48,1](101, 99) -> 98 -[49,1](102, 102) -> 99 -[49,1](103, 102) -> 100 -[49,1](104, 102) -> 101 -[50,1](105, 105) -> 102 -[50,1](106, 105) -> 103 -[50,1](107, 105) -> 104 -[51,1](108, 108) -> 105 -[51,1](109, 108) -> 106 -[51,1](110, 108) -> 107 -[52,1](111, 111) -> 108 -[52,1](112, 111) -> 109 -[52,1](113, 111) -> 110 -[53,1](114, 114) -> 111 -[53,1](115, 114) -> 112 -[53,1](116, 114) -> 113 -[54,1](117, 117) -> 114 -[54,1](118, 117) -> 115 -[54,1](119, 117) -> 116 -[55,1](120, 120) -> 117 -[55,1](121, 120) -> 118 -[55,1](122, 120) -> 119 -[56,1](123, 123) -> 120 -[56,1](124, 123) -> 121 -[56,1](125, 123) -> 122 -[57,1](126, 126) -> 123 -[57,1](127, 126) -> 124 -[57,1](128, 126) -> 125 -[58,1](129, 129) -> 126 -[58,1](130, 129) -> 127 -[58,1](131, 129) -> 128 -[59,1](132, 132) -> 129 -[59,1](133, 132) -> 130 -[59,1](134, 132) -> 131 -[60,1](135, 135) -> 132 -[60,1](136, 135) -> 133 -[60,1](137, 135) -> 134 -[61,1](138, 138) -> 135 -[61,1](139, 138) -> 136 -[61,1](140, 138) -> 137 -[62,1](141, 141) -> 138 -[62,1](142, 141) -> 139 -[62,1](143, 141) -> 140 -[63,1](144, 144) -> 141 -[63,1](145, 144) -> 142 -[63,1](146, 144) -> 143 -[64,1](147, 147) -> 144 -[64,1](148, 147) -> 145 -[64,1](149, 147) -> 146 -[65,1](150, 150) -> 147 -[65,1](151, 150) -> 148 -[65,1](152, 150) -> 149 -[66,1](153, 153) -> 150 -[66,1](154, 153) -> 151 -[66,1](155, 153) -> 152 -[67,1](156, 156) -> 153 -[67,1](157, 156) -> 154 -[67,1](158, 156) -> 155 -[68,1](159, 159) -> 156 -[68,1](160, 159) -> 157 -[68,1](161, 159) -> 158 -[69,1](162, 162) -> 159 -[69,1](163, 162) -> 160 -[69,1](164, 162) -> 161 -[70,1](165, 165) -> 162 -[70,1](166, 165) -> 163 -[70,1](167, 165) -> 164 -[71,1](168, 168) -> 165 -[71,1](169, 168) -> 166 -[71,1](170, 168) -> 167 -[72,1](171, 171) -> 168 -[72,1](172, 171) -> 169 -[72,1](173, 171) -> 170 -[73,1](174, 174) -> 171 -[73,1](175, 174) -> 172 -[73,1](176, 174) -> 173 -[74,1](177, 177) -> 174 -[74,1](178, 177) -> 175 -[74,1](179, 177) -> 176 -[75,1](180, 180) -> 177 -[75,1](181, 180) -> 178 -[75,1](182, 180) -> 179 -[76,1](183, 183) -> 180 -[76,1](184, 183) -> 181 -[76,1](185, 183) -> 182 -[77,1](186, 186) -> 183 -[77,1](187, 186) -> 184 -[77,1](188, 186) -> 185 -[78,1](189, 189) -> 186 -[78,1](190, 189) -> 187 -[78,1](191, 189) -> 188 -[79,1](192, 192) -> 189 -[79,1](193, 192) -> 190 -[79,1](194, 192) -> 191 -[80,1](195, 195) -> 192 -[80,1](196, 195) -> 193 -[80,1](197, 195) -> 194 -[81,1](198, 198) -> 195 -[81,1](199, 198) -> 196 -[81,1](200, 198) -> 197 -[82,1](201, 201) -> 198 -[82,1](202, 201) -> 199 -[82,1](203, 201) -> 200 -[83,1](204, 204) -> 201 -[83,1](205, 204) -> 202 -[83,1](206, 204) -> 203 -[84,1](207, 207) -> 204 -[84,1](208, 207) -> 205 -[84,1](209, 207) -> 206 -[85,1](210, 210) -> 207 -[85,1](211, 210) -> 208 -[85,1](212, 210) -> 209 -[86,1](213, 213) -> 210 -[86,1](214, 213) -> 211 -[86,1](215, 213) -> 212 -[c0,1] -> 213 -[a,1] -> 214 -[b,1] -> 215 -Constraints -8796093022207 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/44/circuit.qasm b/benchmarks/all/OEGrover/44/circuit.qasm index c0c844912..885de3110 100644 --- a/benchmarks/all/OEGrover/44/circuit.qasm +++ b/benchmarks/all/OEGrover/44/circuit.qasm @@ -1,114 +1,114 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[88]; +qreg qubits[87]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -ccx qubits[0], qubits[1], qubits[45]; -ccx qubits[2], qubits[45], qubits[46]; -ccx qubits[3], qubits[46], qubits[47]; -ccx qubits[4], qubits[47], qubits[48]; -ccx qubits[5], qubits[48], qubits[49]; -ccx qubits[6], qubits[49], qubits[50]; -ccx qubits[7], qubits[50], qubits[51]; -ccx qubits[8], qubits[51], qubits[52]; -ccx qubits[9], qubits[52], qubits[53]; -ccx qubits[10], qubits[53], qubits[54]; -ccx qubits[11], qubits[54], qubits[55]; -ccx qubits[12], qubits[55], qubits[56]; -ccx qubits[13], qubits[56], qubits[57]; -ccx qubits[14], qubits[57], qubits[58]; -ccx qubits[15], qubits[58], qubits[59]; -ccx qubits[16], qubits[59], qubits[60]; -ccx qubits[17], qubits[60], qubits[61]; -ccx qubits[18], qubits[61], qubits[62]; -ccx qubits[19], qubits[62], qubits[63]; -ccx qubits[20], qubits[63], qubits[64]; -ccx qubits[21], qubits[64], qubits[65]; -ccx qubits[22], qubits[65], qubits[66]; -ccx qubits[23], qubits[66], qubits[67]; -ccx qubits[24], qubits[67], qubits[68]; -ccx qubits[25], qubits[68], qubits[69]; -ccx qubits[26], qubits[69], qubits[70]; -ccx qubits[27], qubits[70], qubits[71]; -ccx qubits[28], qubits[71], qubits[72]; -ccx qubits[29], qubits[72], qubits[73]; -ccx qubits[30], qubits[73], qubits[74]; -ccx qubits[31], qubits[74], qubits[75]; -ccx qubits[32], qubits[75], qubits[76]; -ccx qubits[33], qubits[76], qubits[77]; -ccx qubits[34], qubits[77], qubits[78]; -ccx qubits[35], qubits[78], qubits[79]; -ccx qubits[36], qubits[79], qubits[80]; -ccx qubits[37], qubits[80], qubits[81]; -ccx qubits[38], qubits[81], qubits[82]; -ccx qubits[39], qubits[82], qubits[83]; -ccx qubits[40], qubits[83], qubits[84]; -ccx qubits[41], qubits[84], qubits[85]; -ccx qubits[42], qubits[85], qubits[86]; -cz qubits[86], qubits[43]; -ccx qubits[42], qubits[85], qubits[86]; -ccx qubits[41], qubits[84], qubits[85]; -ccx qubits[40], qubits[83], qubits[84]; -ccx qubits[39], qubits[82], qubits[83]; -ccx qubits[38], qubits[81], qubits[82]; -ccx qubits[37], qubits[80], qubits[81]; -ccx qubits[36], qubits[79], qubits[80]; -ccx qubits[35], qubits[78], qubits[79]; -ccx qubits[34], qubits[77], qubits[78]; -ccx qubits[33], qubits[76], qubits[77]; -ccx qubits[32], qubits[75], qubits[76]; -ccx qubits[31], qubits[74], qubits[75]; -ccx qubits[30], qubits[73], qubits[74]; -ccx qubits[29], qubits[72], qubits[73]; -ccx qubits[28], qubits[71], qubits[72]; -ccx qubits[27], qubits[70], qubits[71]; -ccx qubits[26], qubits[69], qubits[70]; -ccx qubits[25], qubits[68], qubits[69]; -ccx qubits[24], qubits[67], qubits[68]; -ccx qubits[23], qubits[66], qubits[67]; -ccx qubits[22], qubits[65], qubits[66]; -ccx qubits[21], qubits[64], qubits[65]; -ccx qubits[20], qubits[63], qubits[64]; -ccx qubits[19], qubits[62], qubits[63]; -ccx qubits[18], qubits[61], qubits[62]; -ccx qubits[17], qubits[60], qubits[61]; -ccx qubits[16], qubits[59], qubits[60]; -ccx qubits[15], qubits[58], qubits[59]; -ccx qubits[14], qubits[57], qubits[58]; -ccx qubits[13], qubits[56], qubits[57]; -ccx qubits[12], qubits[55], qubits[56]; -ccx qubits[11], qubits[54], qubits[55]; -ccx qubits[10], qubits[53], qubits[54]; -ccx qubits[9], qubits[52], qubits[53]; -ccx qubits[8], qubits[51], qubits[52]; -ccx qubits[7], qubits[50], qubits[51]; -ccx qubits[6], qubits[49], qubits[50]; -ccx qubits[5], qubits[48], qubits[49]; -ccx qubits[4], qubits[47], qubits[48]; -ccx qubits[3], qubits[46], qubits[47]; -ccx qubits[2], qubits[45], qubits[46]; -ccx qubits[0], qubits[1], qubits[45]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +cz qubits[84], qubits[85]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -133,263 +133,263 @@ x qubits[40]; x qubits[42]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -ccx qubits[0], qubits[1], qubits[45]; -ccx qubits[2], qubits[45], qubits[46]; -ccx qubits[3], qubits[46], qubits[47]; -ccx qubits[4], qubits[47], qubits[48]; -ccx qubits[5], qubits[48], qubits[49]; -ccx qubits[6], qubits[49], qubits[50]; -ccx qubits[7], qubits[50], qubits[51]; -ccx qubits[8], qubits[51], qubits[52]; -ccx qubits[9], qubits[52], qubits[53]; -ccx qubits[10], qubits[53], qubits[54]; -ccx qubits[11], qubits[54], qubits[55]; -ccx qubits[12], qubits[55], qubits[56]; -ccx qubits[13], qubits[56], qubits[57]; -ccx qubits[14], qubits[57], qubits[58]; -ccx qubits[15], qubits[58], qubits[59]; -ccx qubits[16], qubits[59], qubits[60]; -ccx qubits[17], qubits[60], qubits[61]; -ccx qubits[18], qubits[61], qubits[62]; -ccx qubits[19], qubits[62], qubits[63]; -ccx qubits[20], qubits[63], qubits[64]; -ccx qubits[21], qubits[64], qubits[65]; -ccx qubits[22], qubits[65], qubits[66]; -ccx qubits[23], qubits[66], qubits[67]; -ccx qubits[24], qubits[67], qubits[68]; -ccx qubits[25], qubits[68], qubits[69]; -ccx qubits[26], qubits[69], qubits[70]; -ccx qubits[27], qubits[70], qubits[71]; -ccx qubits[28], qubits[71], qubits[72]; -ccx qubits[29], qubits[72], qubits[73]; -ccx qubits[30], qubits[73], qubits[74]; -ccx qubits[31], qubits[74], qubits[75]; -ccx qubits[32], qubits[75], qubits[76]; -ccx qubits[33], qubits[76], qubits[77]; -ccx qubits[34], qubits[77], qubits[78]; -ccx qubits[35], qubits[78], qubits[79]; -ccx qubits[36], qubits[79], qubits[80]; -ccx qubits[37], qubits[80], qubits[81]; -ccx qubits[38], qubits[81], qubits[82]; -ccx qubits[39], qubits[82], qubits[83]; -ccx qubits[40], qubits[83], qubits[84]; -ccx qubits[41], qubits[84], qubits[85]; -ccx qubits[42], qubits[85], qubits[86]; -cz qubits[86], qubits[43]; -ccx qubits[42], qubits[85], qubits[86]; -ccx qubits[41], qubits[84], qubits[85]; -ccx qubits[40], qubits[83], qubits[84]; -ccx qubits[39], qubits[82], qubits[83]; -ccx qubits[38], qubits[81], qubits[82]; -ccx qubits[37], qubits[80], qubits[81]; -ccx qubits[36], qubits[79], qubits[80]; -ccx qubits[35], qubits[78], qubits[79]; -ccx qubits[34], qubits[77], qubits[78]; -ccx qubits[33], qubits[76], qubits[77]; -ccx qubits[32], qubits[75], qubits[76]; -ccx qubits[31], qubits[74], qubits[75]; -ccx qubits[30], qubits[73], qubits[74]; -ccx qubits[29], qubits[72], qubits[73]; -ccx qubits[28], qubits[71], qubits[72]; -ccx qubits[27], qubits[70], qubits[71]; -ccx qubits[26], qubits[69], qubits[70]; -ccx qubits[25], qubits[68], qubits[69]; -ccx qubits[24], qubits[67], qubits[68]; -ccx qubits[23], qubits[66], qubits[67]; -ccx qubits[22], qubits[65], qubits[66]; -ccx qubits[21], qubits[64], qubits[65]; -ccx qubits[20], qubits[63], qubits[64]; -ccx qubits[19], qubits[62], qubits[63]; -ccx qubits[18], qubits[61], qubits[62]; -ccx qubits[17], qubits[60], qubits[61]; -ccx qubits[16], qubits[59], qubits[60]; -ccx qubits[15], qubits[58], qubits[59]; -ccx qubits[14], qubits[57], qubits[58]; -ccx qubits[13], qubits[56], qubits[57]; -ccx qubits[12], qubits[55], qubits[56]; -ccx qubits[11], qubits[54], qubits[55]; -ccx qubits[10], qubits[53], qubits[54]; -ccx qubits[9], qubits[52], qubits[53]; -ccx qubits[8], qubits[51], qubits[52]; -ccx qubits[7], qubits[50], qubits[51]; -ccx qubits[6], qubits[49], qubits[50]; -ccx qubits[5], qubits[48], qubits[49]; -ccx qubits[4], qubits[47], qubits[48]; -ccx qubits[3], qubits[46], qubits[47]; -ccx qubits[2], qubits[45], qubits[46]; -ccx qubits[0], qubits[1], qubits[45]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +cz qubits[84], qubits[85]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -z qubits[44]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +z qubits[86]; diff --git a/benchmarks/all/OEGrover/44/post.hsl b/benchmarks/all/OEGrover/44/post.hsl index ec06341e0..91a8ced66 100644 --- a/benchmarks/all/OEGrover/44/post.hsl +++ b/benchmarks/all/OEGrover/44/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010110000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 21 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/44/post.lsta b/benchmarks/all/OEGrover/44/post.lsta deleted file mode 100644 index a3aa77aa3..000000000 --- a/benchmarks/all/OEGrover/44/post.lsta +++ /dev/null @@ -1,227 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 90) -> 87 -[45,1](89, 91) -> 88 -[46,1](92, 92) -> 89 -[46,1](93, 92) -> 90 -[46,1](94, 92) -> 91 -[47,1](95, 95) -> 92 -[47,1](96, 95) -> 93 -[47,1](97, 95) -> 94 -[48,1](98, 98) -> 95 -[48,1](99, 98) -> 96 -[48,1](100, 98) -> 97 -[49,1](101, 101) -> 98 -[49,1](102, 101) -> 99 -[49,1](103, 101) -> 100 -[50,1](104, 104) -> 101 -[50,1](105, 104) -> 102 -[50,1](106, 104) -> 103 -[51,1](107, 107) -> 104 -[51,1](108, 107) -> 105 -[51,1](109, 107) -> 106 -[52,1](110, 110) -> 107 -[52,1](111, 110) -> 108 -[52,1](112, 110) -> 109 -[53,1](113, 113) -> 110 -[53,1](114, 113) -> 111 -[53,1](115, 113) -> 112 -[54,1](116, 116) -> 113 -[54,1](117, 116) -> 114 -[54,1](118, 116) -> 115 -[55,1](119, 119) -> 116 -[55,1](120, 119) -> 117 -[55,1](121, 119) -> 118 -[56,1](122, 122) -> 119 -[56,1](123, 122) -> 120 -[56,1](124, 122) -> 121 -[57,1](125, 125) -> 122 -[57,1](126, 125) -> 123 -[57,1](127, 125) -> 124 -[58,1](128, 128) -> 125 -[58,1](129, 128) -> 126 -[58,1](130, 128) -> 127 -[59,1](131, 131) -> 128 -[59,1](132, 131) -> 129 -[59,1](133, 131) -> 130 -[60,1](134, 134) -> 131 -[60,1](135, 134) -> 132 -[60,1](136, 134) -> 133 -[61,1](137, 137) -> 134 -[61,1](138, 137) -> 135 -[61,1](139, 137) -> 136 -[62,1](140, 140) -> 137 -[62,1](141, 140) -> 138 -[62,1](142, 140) -> 139 -[63,1](143, 143) -> 140 -[63,1](144, 143) -> 141 -[63,1](145, 143) -> 142 -[64,1](146, 146) -> 143 -[64,1](147, 146) -> 144 -[64,1](148, 146) -> 145 -[65,1](149, 149) -> 146 -[65,1](150, 149) -> 147 -[65,1](151, 149) -> 148 -[66,1](152, 152) -> 149 -[66,1](153, 152) -> 150 -[66,1](154, 152) -> 151 -[67,1](155, 155) -> 152 -[67,1](156, 155) -> 153 -[67,1](157, 155) -> 154 -[68,1](158, 158) -> 155 -[68,1](159, 158) -> 156 -[68,1](160, 158) -> 157 -[69,1](161, 161) -> 158 -[69,1](162, 161) -> 159 -[69,1](163, 161) -> 160 -[70,1](164, 164) -> 161 -[70,1](165, 164) -> 162 -[70,1](166, 164) -> 163 -[71,1](167, 167) -> 164 -[71,1](168, 167) -> 165 -[71,1](169, 167) -> 166 -[72,1](170, 170) -> 167 -[72,1](171, 170) -> 168 -[72,1](172, 170) -> 169 -[73,1](173, 173) -> 170 -[73,1](174, 173) -> 171 -[73,1](175, 173) -> 172 -[74,1](176, 176) -> 173 -[74,1](177, 176) -> 174 -[74,1](178, 176) -> 175 -[75,1](179, 179) -> 176 -[75,1](180, 179) -> 177 -[75,1](181, 179) -> 178 -[76,1](182, 182) -> 179 -[76,1](183, 182) -> 180 -[76,1](184, 182) -> 181 -[77,1](185, 185) -> 182 -[77,1](186, 185) -> 183 -[77,1](187, 185) -> 184 -[78,1](188, 188) -> 185 -[78,1](189, 188) -> 186 -[78,1](190, 188) -> 187 -[79,1](191, 191) -> 188 -[79,1](192, 191) -> 189 -[79,1](193, 191) -> 190 -[80,1](194, 194) -> 191 -[80,1](195, 194) -> 192 -[80,1](196, 194) -> 193 -[81,1](197, 197) -> 194 -[81,1](198, 197) -> 195 -[81,1](199, 197) -> 196 -[82,1](200, 200) -> 197 -[82,1](201, 200) -> 198 -[82,1](202, 200) -> 199 -[83,1](203, 203) -> 200 -[83,1](204, 203) -> 201 -[83,1](205, 203) -> 202 -[84,1](206, 206) -> 203 -[84,1](207, 206) -> 204 -[84,1](208, 206) -> 205 -[85,1](209, 209) -> 206 -[85,1](210, 209) -> 207 -[85,1](211, 209) -> 208 -[86,1](212, 212) -> 209 -[86,1](213, 212) -> 210 -[86,1](214, 212) -> 211 -[87,1](215, 215) -> 212 -[87,1](216, 215) -> 213 -[87,1](217, 215) -> 214 -[88,1](218, 218) -> 215 -[88,1](219, 218) -> 216 -[88,1](220, 218) -> 217 -[p1,1] -> 218 -[p2,1] -> 219 -[p3,1] -> 220 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/44/pre.hsl b/benchmarks/all/OEGrover/44/pre.hsl index b25007049..6312d11a0 100644 --- a/benchmarks/all/OEGrover/44/pre.hsl +++ b/benchmarks/all/OEGrover/44/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 21 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 17592186044415 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/44/pre.lsta b/benchmarks/all/OEGrover/44/pre.lsta deleted file mode 100644 index 9b403089c..000000000 --- a/benchmarks/all/OEGrover/44/pre.lsta +++ /dev/null @@ -1,231 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 90) -> 87 -[45,1](89, 91) -> 88 -[46,1](92, 92) -> 89 -[46,1](93, 92) -> 90 -[46,1](94, 92) -> 91 -[47,1](95, 95) -> 92 -[47,1](96, 95) -> 93 -[47,1](97, 95) -> 94 -[48,1](98, 98) -> 95 -[48,1](99, 98) -> 96 -[48,1](100, 98) -> 97 -[49,1](101, 101) -> 98 -[49,1](102, 101) -> 99 -[49,1](103, 101) -> 100 -[50,1](104, 104) -> 101 -[50,1](105, 104) -> 102 -[50,1](106, 104) -> 103 -[51,1](107, 107) -> 104 -[51,1](108, 107) -> 105 -[51,1](109, 107) -> 106 -[52,1](110, 110) -> 107 -[52,1](111, 110) -> 108 -[52,1](112, 110) -> 109 -[53,1](113, 113) -> 110 -[53,1](114, 113) -> 111 -[53,1](115, 113) -> 112 -[54,1](116, 116) -> 113 -[54,1](117, 116) -> 114 -[54,1](118, 116) -> 115 -[55,1](119, 119) -> 116 -[55,1](120, 119) -> 117 -[55,1](121, 119) -> 118 -[56,1](122, 122) -> 119 -[56,1](123, 122) -> 120 -[56,1](124, 122) -> 121 -[57,1](125, 125) -> 122 -[57,1](126, 125) -> 123 -[57,1](127, 125) -> 124 -[58,1](128, 128) -> 125 -[58,1](129, 128) -> 126 -[58,1](130, 128) -> 127 -[59,1](131, 131) -> 128 -[59,1](132, 131) -> 129 -[59,1](133, 131) -> 130 -[60,1](134, 134) -> 131 -[60,1](135, 134) -> 132 -[60,1](136, 134) -> 133 -[61,1](137, 137) -> 134 -[61,1](138, 137) -> 135 -[61,1](139, 137) -> 136 -[62,1](140, 140) -> 137 -[62,1](141, 140) -> 138 -[62,1](142, 140) -> 139 -[63,1](143, 143) -> 140 -[63,1](144, 143) -> 141 -[63,1](145, 143) -> 142 -[64,1](146, 146) -> 143 -[64,1](147, 146) -> 144 -[64,1](148, 146) -> 145 -[65,1](149, 149) -> 146 -[65,1](150, 149) -> 147 -[65,1](151, 149) -> 148 -[66,1](152, 152) -> 149 -[66,1](153, 152) -> 150 -[66,1](154, 152) -> 151 -[67,1](155, 155) -> 152 -[67,1](156, 155) -> 153 -[67,1](157, 155) -> 154 -[68,1](158, 158) -> 155 -[68,1](159, 158) -> 156 -[68,1](160, 158) -> 157 -[69,1](161, 161) -> 158 -[69,1](162, 161) -> 159 -[69,1](163, 161) -> 160 -[70,1](164, 164) -> 161 -[70,1](165, 164) -> 162 -[70,1](166, 164) -> 163 -[71,1](167, 167) -> 164 -[71,1](168, 167) -> 165 -[71,1](169, 167) -> 166 -[72,1](170, 170) -> 167 -[72,1](171, 170) -> 168 -[72,1](172, 170) -> 169 -[73,1](173, 173) -> 170 -[73,1](174, 173) -> 171 -[73,1](175, 173) -> 172 -[74,1](176, 176) -> 173 -[74,1](177, 176) -> 174 -[74,1](178, 176) -> 175 -[75,1](179, 179) -> 176 -[75,1](180, 179) -> 177 -[75,1](181, 179) -> 178 -[76,1](182, 182) -> 179 -[76,1](183, 182) -> 180 -[76,1](184, 182) -> 181 -[77,1](185, 185) -> 182 -[77,1](186, 185) -> 183 -[77,1](187, 185) -> 184 -[78,1](188, 188) -> 185 -[78,1](189, 188) -> 186 -[78,1](190, 188) -> 187 -[79,1](191, 191) -> 188 -[79,1](192, 191) -> 189 -[79,1](193, 191) -> 190 -[80,1](194, 194) -> 191 -[80,1](195, 194) -> 192 -[80,1](196, 194) -> 193 -[81,1](197, 197) -> 194 -[81,1](198, 197) -> 195 -[81,1](199, 197) -> 196 -[82,1](200, 200) -> 197 -[82,1](201, 200) -> 198 -[82,1](202, 200) -> 199 -[83,1](203, 203) -> 200 -[83,1](204, 203) -> 201 -[83,1](205, 203) -> 202 -[84,1](206, 206) -> 203 -[84,1](207, 206) -> 204 -[84,1](208, 206) -> 205 -[85,1](209, 209) -> 206 -[85,1](210, 209) -> 207 -[85,1](211, 209) -> 208 -[86,1](212, 212) -> 209 -[86,1](213, 212) -> 210 -[86,1](214, 212) -> 211 -[87,1](215, 215) -> 212 -[87,1](216, 215) -> 213 -[87,1](217, 215) -> 214 -[88,1](218, 218) -> 215 -[88,1](219, 218) -> 216 -[88,1](220, 218) -> 217 -[c0,1] -> 218 -[a,1] -> 219 -[b,1] -> 220 -Constraints -17592186044415 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/45/circuit.qasm b/benchmarks/all/OEGrover/45/circuit.qasm index 4daef4926..fc3aedad5 100644 --- a/benchmarks/all/OEGrover/45/circuit.qasm +++ b/benchmarks/all/OEGrover/45/circuit.qasm @@ -1,117 +1,117 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[90]; +qreg qubits[89]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -ccx qubits[0], qubits[1], qubits[46]; -ccx qubits[2], qubits[46], qubits[47]; -ccx qubits[3], qubits[47], qubits[48]; -ccx qubits[4], qubits[48], qubits[49]; -ccx qubits[5], qubits[49], qubits[50]; -ccx qubits[6], qubits[50], qubits[51]; -ccx qubits[7], qubits[51], qubits[52]; -ccx qubits[8], qubits[52], qubits[53]; -ccx qubits[9], qubits[53], qubits[54]; -ccx qubits[10], qubits[54], qubits[55]; -ccx qubits[11], qubits[55], qubits[56]; -ccx qubits[12], qubits[56], qubits[57]; -ccx qubits[13], qubits[57], qubits[58]; -ccx qubits[14], qubits[58], qubits[59]; -ccx qubits[15], qubits[59], qubits[60]; -ccx qubits[16], qubits[60], qubits[61]; -ccx qubits[17], qubits[61], qubits[62]; -ccx qubits[18], qubits[62], qubits[63]; -ccx qubits[19], qubits[63], qubits[64]; -ccx qubits[20], qubits[64], qubits[65]; -ccx qubits[21], qubits[65], qubits[66]; -ccx qubits[22], qubits[66], qubits[67]; -ccx qubits[23], qubits[67], qubits[68]; -ccx qubits[24], qubits[68], qubits[69]; -ccx qubits[25], qubits[69], qubits[70]; -ccx qubits[26], qubits[70], qubits[71]; -ccx qubits[27], qubits[71], qubits[72]; -ccx qubits[28], qubits[72], qubits[73]; -ccx qubits[29], qubits[73], qubits[74]; -ccx qubits[30], qubits[74], qubits[75]; -ccx qubits[31], qubits[75], qubits[76]; -ccx qubits[32], qubits[76], qubits[77]; -ccx qubits[33], qubits[77], qubits[78]; -ccx qubits[34], qubits[78], qubits[79]; -ccx qubits[35], qubits[79], qubits[80]; -ccx qubits[36], qubits[80], qubits[81]; -ccx qubits[37], qubits[81], qubits[82]; -ccx qubits[38], qubits[82], qubits[83]; -ccx qubits[39], qubits[83], qubits[84]; -ccx qubits[40], qubits[84], qubits[85]; -ccx qubits[41], qubits[85], qubits[86]; -ccx qubits[42], qubits[86], qubits[87]; -ccx qubits[43], qubits[87], qubits[88]; -cz qubits[88], qubits[44]; -ccx qubits[43], qubits[87], qubits[88]; -ccx qubits[42], qubits[86], qubits[87]; -ccx qubits[41], qubits[85], qubits[86]; -ccx qubits[40], qubits[84], qubits[85]; -ccx qubits[39], qubits[83], qubits[84]; -ccx qubits[38], qubits[82], qubits[83]; -ccx qubits[37], qubits[81], qubits[82]; -ccx qubits[36], qubits[80], qubits[81]; -ccx qubits[35], qubits[79], qubits[80]; -ccx qubits[34], qubits[78], qubits[79]; -ccx qubits[33], qubits[77], qubits[78]; -ccx qubits[32], qubits[76], qubits[77]; -ccx qubits[31], qubits[75], qubits[76]; -ccx qubits[30], qubits[74], qubits[75]; -ccx qubits[29], qubits[73], qubits[74]; -ccx qubits[28], qubits[72], qubits[73]; -ccx qubits[27], qubits[71], qubits[72]; -ccx qubits[26], qubits[70], qubits[71]; -ccx qubits[25], qubits[69], qubits[70]; -ccx qubits[24], qubits[68], qubits[69]; -ccx qubits[23], qubits[67], qubits[68]; -ccx qubits[22], qubits[66], qubits[67]; -ccx qubits[21], qubits[65], qubits[66]; -ccx qubits[20], qubits[64], qubits[65]; -ccx qubits[19], qubits[63], qubits[64]; -ccx qubits[18], qubits[62], qubits[63]; -ccx qubits[17], qubits[61], qubits[62]; -ccx qubits[16], qubits[60], qubits[61]; -ccx qubits[15], qubits[59], qubits[60]; -ccx qubits[14], qubits[58], qubits[59]; -ccx qubits[13], qubits[57], qubits[58]; -ccx qubits[12], qubits[56], qubits[57]; -ccx qubits[11], qubits[55], qubits[56]; -ccx qubits[10], qubits[54], qubits[55]; -ccx qubits[9], qubits[53], qubits[54]; -ccx qubits[8], qubits[52], qubits[53]; -ccx qubits[7], qubits[51], qubits[52]; -ccx qubits[6], qubits[50], qubits[51]; -ccx qubits[5], qubits[49], qubits[50]; -ccx qubits[4], qubits[48], qubits[49]; -ccx qubits[3], qubits[47], qubits[48]; -ccx qubits[2], qubits[46], qubits[47]; -ccx qubits[0], qubits[1], qubits[46]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +cz qubits[86], qubits[87]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -137,269 +137,269 @@ x qubits[42]; x qubits[44]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; -ccx qubits[0], qubits[1], qubits[46]; -ccx qubits[2], qubits[46], qubits[47]; -ccx qubits[3], qubits[47], qubits[48]; -ccx qubits[4], qubits[48], qubits[49]; -ccx qubits[5], qubits[49], qubits[50]; -ccx qubits[6], qubits[50], qubits[51]; -ccx qubits[7], qubits[51], qubits[52]; -ccx qubits[8], qubits[52], qubits[53]; -ccx qubits[9], qubits[53], qubits[54]; -ccx qubits[10], qubits[54], qubits[55]; -ccx qubits[11], qubits[55], qubits[56]; -ccx qubits[12], qubits[56], qubits[57]; -ccx qubits[13], qubits[57], qubits[58]; -ccx qubits[14], qubits[58], qubits[59]; -ccx qubits[15], qubits[59], qubits[60]; -ccx qubits[16], qubits[60], qubits[61]; -ccx qubits[17], qubits[61], qubits[62]; -ccx qubits[18], qubits[62], qubits[63]; -ccx qubits[19], qubits[63], qubits[64]; -ccx qubits[20], qubits[64], qubits[65]; -ccx qubits[21], qubits[65], qubits[66]; -ccx qubits[22], qubits[66], qubits[67]; -ccx qubits[23], qubits[67], qubits[68]; -ccx qubits[24], qubits[68], qubits[69]; -ccx qubits[25], qubits[69], qubits[70]; -ccx qubits[26], qubits[70], qubits[71]; -ccx qubits[27], qubits[71], qubits[72]; -ccx qubits[28], qubits[72], qubits[73]; -ccx qubits[29], qubits[73], qubits[74]; -ccx qubits[30], qubits[74], qubits[75]; -ccx qubits[31], qubits[75], qubits[76]; -ccx qubits[32], qubits[76], qubits[77]; -ccx qubits[33], qubits[77], qubits[78]; -ccx qubits[34], qubits[78], qubits[79]; -ccx qubits[35], qubits[79], qubits[80]; -ccx qubits[36], qubits[80], qubits[81]; -ccx qubits[37], qubits[81], qubits[82]; -ccx qubits[38], qubits[82], qubits[83]; -ccx qubits[39], qubits[83], qubits[84]; -ccx qubits[40], qubits[84], qubits[85]; -ccx qubits[41], qubits[85], qubits[86]; -ccx qubits[42], qubits[86], qubits[87]; -ccx qubits[43], qubits[87], qubits[88]; -cz qubits[88], qubits[44]; -ccx qubits[43], qubits[87], qubits[88]; -ccx qubits[42], qubits[86], qubits[87]; -ccx qubits[41], qubits[85], qubits[86]; -ccx qubits[40], qubits[84], qubits[85]; -ccx qubits[39], qubits[83], qubits[84]; -ccx qubits[38], qubits[82], qubits[83]; -ccx qubits[37], qubits[81], qubits[82]; -ccx qubits[36], qubits[80], qubits[81]; -ccx qubits[35], qubits[79], qubits[80]; -ccx qubits[34], qubits[78], qubits[79]; -ccx qubits[33], qubits[77], qubits[78]; -ccx qubits[32], qubits[76], qubits[77]; -ccx qubits[31], qubits[75], qubits[76]; -ccx qubits[30], qubits[74], qubits[75]; -ccx qubits[29], qubits[73], qubits[74]; -ccx qubits[28], qubits[72], qubits[73]; -ccx qubits[27], qubits[71], qubits[72]; -ccx qubits[26], qubits[70], qubits[71]; -ccx qubits[25], qubits[69], qubits[70]; -ccx qubits[24], qubits[68], qubits[69]; -ccx qubits[23], qubits[67], qubits[68]; -ccx qubits[22], qubits[66], qubits[67]; -ccx qubits[21], qubits[65], qubits[66]; -ccx qubits[20], qubits[64], qubits[65]; -ccx qubits[19], qubits[63], qubits[64]; -ccx qubits[18], qubits[62], qubits[63]; -ccx qubits[17], qubits[61], qubits[62]; -ccx qubits[16], qubits[60], qubits[61]; -ccx qubits[15], qubits[59], qubits[60]; -ccx qubits[14], qubits[58], qubits[59]; -ccx qubits[13], qubits[57], qubits[58]; -ccx qubits[12], qubits[56], qubits[57]; -ccx qubits[11], qubits[55], qubits[56]; -ccx qubits[10], qubits[54], qubits[55]; -ccx qubits[9], qubits[53], qubits[54]; -ccx qubits[8], qubits[52], qubits[53]; -ccx qubits[7], qubits[51], qubits[52]; -ccx qubits[6], qubits[50], qubits[51]; -ccx qubits[5], qubits[49], qubits[50]; -ccx qubits[4], qubits[48], qubits[49]; -ccx qubits[3], qubits[47], qubits[48]; -ccx qubits[2], qubits[46], qubits[47]; -ccx qubits[0], qubits[1], qubits[46]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +cz qubits[86], qubits[87]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; +x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; -z qubits[45]; +h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +z qubits[88]; diff --git a/benchmarks/all/OEGrover/45/post.hsl b/benchmarks/all/OEGrover/45/post.hsl index ce39e80fb..d1ee3bd60 100644 --- a/benchmarks/all/OEGrover/45/post.hsl +++ b/benchmarks/all/OEGrover/45/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 21 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/45/post.lsta b/benchmarks/all/OEGrover/45/post.lsta deleted file mode 100644 index 8111ec58e..000000000 --- a/benchmarks/all/OEGrover/45/post.lsta +++ /dev/null @@ -1,232 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 92) -> 89 -[46,1](91, 93) -> 90 -[47,1](94, 94) -> 91 -[47,1](95, 94) -> 92 -[47,1](96, 94) -> 93 -[48,1](97, 97) -> 94 -[48,1](98, 97) -> 95 -[48,1](99, 97) -> 96 -[49,1](100, 100) -> 97 -[49,1](101, 100) -> 98 -[49,1](102, 100) -> 99 -[50,1](103, 103) -> 100 -[50,1](104, 103) -> 101 -[50,1](105, 103) -> 102 -[51,1](106, 106) -> 103 -[51,1](107, 106) -> 104 -[51,1](108, 106) -> 105 -[52,1](109, 109) -> 106 -[52,1](110, 109) -> 107 -[52,1](111, 109) -> 108 -[53,1](112, 112) -> 109 -[53,1](113, 112) -> 110 -[53,1](114, 112) -> 111 -[54,1](115, 115) -> 112 -[54,1](116, 115) -> 113 -[54,1](117, 115) -> 114 -[55,1](118, 118) -> 115 -[55,1](119, 118) -> 116 -[55,1](120, 118) -> 117 -[56,1](121, 121) -> 118 -[56,1](122, 121) -> 119 -[56,1](123, 121) -> 120 -[57,1](124, 124) -> 121 -[57,1](125, 124) -> 122 -[57,1](126, 124) -> 123 -[58,1](127, 127) -> 124 -[58,1](128, 127) -> 125 -[58,1](129, 127) -> 126 -[59,1](130, 130) -> 127 -[59,1](131, 130) -> 128 -[59,1](132, 130) -> 129 -[60,1](133, 133) -> 130 -[60,1](134, 133) -> 131 -[60,1](135, 133) -> 132 -[61,1](136, 136) -> 133 -[61,1](137, 136) -> 134 -[61,1](138, 136) -> 135 -[62,1](139, 139) -> 136 -[62,1](140, 139) -> 137 -[62,1](141, 139) -> 138 -[63,1](142, 142) -> 139 -[63,1](143, 142) -> 140 -[63,1](144, 142) -> 141 -[64,1](145, 145) -> 142 -[64,1](146, 145) -> 143 -[64,1](147, 145) -> 144 -[65,1](148, 148) -> 145 -[65,1](149, 148) -> 146 -[65,1](150, 148) -> 147 -[66,1](151, 151) -> 148 -[66,1](152, 151) -> 149 -[66,1](153, 151) -> 150 -[67,1](154, 154) -> 151 -[67,1](155, 154) -> 152 -[67,1](156, 154) -> 153 -[68,1](157, 157) -> 154 -[68,1](158, 157) -> 155 -[68,1](159, 157) -> 156 -[69,1](160, 160) -> 157 -[69,1](161, 160) -> 158 -[69,1](162, 160) -> 159 -[70,1](163, 163) -> 160 -[70,1](164, 163) -> 161 -[70,1](165, 163) -> 162 -[71,1](166, 166) -> 163 -[71,1](167, 166) -> 164 -[71,1](168, 166) -> 165 -[72,1](169, 169) -> 166 -[72,1](170, 169) -> 167 -[72,1](171, 169) -> 168 -[73,1](172, 172) -> 169 -[73,1](173, 172) -> 170 -[73,1](174, 172) -> 171 -[74,1](175, 175) -> 172 -[74,1](176, 175) -> 173 -[74,1](177, 175) -> 174 -[75,1](178, 178) -> 175 -[75,1](179, 178) -> 176 -[75,1](180, 178) -> 177 -[76,1](181, 181) -> 178 -[76,1](182, 181) -> 179 -[76,1](183, 181) -> 180 -[77,1](184, 184) -> 181 -[77,1](185, 184) -> 182 -[77,1](186, 184) -> 183 -[78,1](187, 187) -> 184 -[78,1](188, 187) -> 185 -[78,1](189, 187) -> 186 -[79,1](190, 190) -> 187 -[79,1](191, 190) -> 188 -[79,1](192, 190) -> 189 -[80,1](193, 193) -> 190 -[80,1](194, 193) -> 191 -[80,1](195, 193) -> 192 -[81,1](196, 196) -> 193 -[81,1](197, 196) -> 194 -[81,1](198, 196) -> 195 -[82,1](199, 199) -> 196 -[82,1](200, 199) -> 197 -[82,1](201, 199) -> 198 -[83,1](202, 202) -> 199 -[83,1](203, 202) -> 200 -[83,1](204, 202) -> 201 -[84,1](205, 205) -> 202 -[84,1](206, 205) -> 203 -[84,1](207, 205) -> 204 -[85,1](208, 208) -> 205 -[85,1](209, 208) -> 206 -[85,1](210, 208) -> 207 -[86,1](211, 211) -> 208 -[86,1](212, 211) -> 209 -[86,1](213, 211) -> 210 -[87,1](214, 214) -> 211 -[87,1](215, 214) -> 212 -[87,1](216, 214) -> 213 -[88,1](217, 217) -> 214 -[88,1](218, 217) -> 215 -[88,1](219, 217) -> 216 -[89,1](220, 220) -> 217 -[89,1](221, 220) -> 218 -[89,1](222, 220) -> 219 -[90,1](223, 223) -> 220 -[90,1](224, 223) -> 221 -[90,1](225, 223) -> 222 -[p1,1] -> 223 -[p2,1] -> 224 -[p3,1] -> 225 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/45/pre.hsl b/benchmarks/all/OEGrover/45/pre.hsl index a03e469f7..016c15a84 100644 --- a/benchmarks/all/OEGrover/45/pre.hsl +++ b/benchmarks/all/OEGrover/45/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 21 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 35184372088831 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/45/pre.lsta b/benchmarks/all/OEGrover/45/pre.lsta deleted file mode 100644 index 35331cdd3..000000000 --- a/benchmarks/all/OEGrover/45/pre.lsta +++ /dev/null @@ -1,236 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 92) -> 89 -[46,1](91, 93) -> 90 -[47,1](94, 94) -> 91 -[47,1](95, 94) -> 92 -[47,1](96, 94) -> 93 -[48,1](97, 97) -> 94 -[48,1](98, 97) -> 95 -[48,1](99, 97) -> 96 -[49,1](100, 100) -> 97 -[49,1](101, 100) -> 98 -[49,1](102, 100) -> 99 -[50,1](103, 103) -> 100 -[50,1](104, 103) -> 101 -[50,1](105, 103) -> 102 -[51,1](106, 106) -> 103 -[51,1](107, 106) -> 104 -[51,1](108, 106) -> 105 -[52,1](109, 109) -> 106 -[52,1](110, 109) -> 107 -[52,1](111, 109) -> 108 -[53,1](112, 112) -> 109 -[53,1](113, 112) -> 110 -[53,1](114, 112) -> 111 -[54,1](115, 115) -> 112 -[54,1](116, 115) -> 113 -[54,1](117, 115) -> 114 -[55,1](118, 118) -> 115 -[55,1](119, 118) -> 116 -[55,1](120, 118) -> 117 -[56,1](121, 121) -> 118 -[56,1](122, 121) -> 119 -[56,1](123, 121) -> 120 -[57,1](124, 124) -> 121 -[57,1](125, 124) -> 122 -[57,1](126, 124) -> 123 -[58,1](127, 127) -> 124 -[58,1](128, 127) -> 125 -[58,1](129, 127) -> 126 -[59,1](130, 130) -> 127 -[59,1](131, 130) -> 128 -[59,1](132, 130) -> 129 -[60,1](133, 133) -> 130 -[60,1](134, 133) -> 131 -[60,1](135, 133) -> 132 -[61,1](136, 136) -> 133 -[61,1](137, 136) -> 134 -[61,1](138, 136) -> 135 -[62,1](139, 139) -> 136 -[62,1](140, 139) -> 137 -[62,1](141, 139) -> 138 -[63,1](142, 142) -> 139 -[63,1](143, 142) -> 140 -[63,1](144, 142) -> 141 -[64,1](145, 145) -> 142 -[64,1](146, 145) -> 143 -[64,1](147, 145) -> 144 -[65,1](148, 148) -> 145 -[65,1](149, 148) -> 146 -[65,1](150, 148) -> 147 -[66,1](151, 151) -> 148 -[66,1](152, 151) -> 149 -[66,1](153, 151) -> 150 -[67,1](154, 154) -> 151 -[67,1](155, 154) -> 152 -[67,1](156, 154) -> 153 -[68,1](157, 157) -> 154 -[68,1](158, 157) -> 155 -[68,1](159, 157) -> 156 -[69,1](160, 160) -> 157 -[69,1](161, 160) -> 158 -[69,1](162, 160) -> 159 -[70,1](163, 163) -> 160 -[70,1](164, 163) -> 161 -[70,1](165, 163) -> 162 -[71,1](166, 166) -> 163 -[71,1](167, 166) -> 164 -[71,1](168, 166) -> 165 -[72,1](169, 169) -> 166 -[72,1](170, 169) -> 167 -[72,1](171, 169) -> 168 -[73,1](172, 172) -> 169 -[73,1](173, 172) -> 170 -[73,1](174, 172) -> 171 -[74,1](175, 175) -> 172 -[74,1](176, 175) -> 173 -[74,1](177, 175) -> 174 -[75,1](178, 178) -> 175 -[75,1](179, 178) -> 176 -[75,1](180, 178) -> 177 -[76,1](181, 181) -> 178 -[76,1](182, 181) -> 179 -[76,1](183, 181) -> 180 -[77,1](184, 184) -> 181 -[77,1](185, 184) -> 182 -[77,1](186, 184) -> 183 -[78,1](187, 187) -> 184 -[78,1](188, 187) -> 185 -[78,1](189, 187) -> 186 -[79,1](190, 190) -> 187 -[79,1](191, 190) -> 188 -[79,1](192, 190) -> 189 -[80,1](193, 193) -> 190 -[80,1](194, 193) -> 191 -[80,1](195, 193) -> 192 -[81,1](196, 196) -> 193 -[81,1](197, 196) -> 194 -[81,1](198, 196) -> 195 -[82,1](199, 199) -> 196 -[82,1](200, 199) -> 197 -[82,1](201, 199) -> 198 -[83,1](202, 202) -> 199 -[83,1](203, 202) -> 200 -[83,1](204, 202) -> 201 -[84,1](205, 205) -> 202 -[84,1](206, 205) -> 203 -[84,1](207, 205) -> 204 -[85,1](208, 208) -> 205 -[85,1](209, 208) -> 206 -[85,1](210, 208) -> 207 -[86,1](211, 211) -> 208 -[86,1](212, 211) -> 209 -[86,1](213, 211) -> 210 -[87,1](214, 214) -> 211 -[87,1](215, 214) -> 212 -[87,1](216, 214) -> 213 -[88,1](217, 217) -> 214 -[88,1](218, 217) -> 215 -[88,1](219, 217) -> 216 -[89,1](220, 220) -> 217 -[89,1](221, 220) -> 218 -[89,1](222, 220) -> 219 -[90,1](223, 223) -> 220 -[90,1](224, 223) -> 221 -[90,1](225, 223) -> 222 -[c0,1] -> 223 -[a,1] -> 224 -[b,1] -> 225 -Constraints -35184372088831 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/46/circuit.qasm b/benchmarks/all/OEGrover/46/circuit.qasm index 070c1ee38..4ec025f7c 100644 --- a/benchmarks/all/OEGrover/46/circuit.qasm +++ b/benchmarks/all/OEGrover/46/circuit.qasm @@ -1,119 +1,119 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[92]; +qreg qubits[91]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -ccx qubits[0], qubits[1], qubits[47]; -ccx qubits[2], qubits[47], qubits[48]; -ccx qubits[3], qubits[48], qubits[49]; -ccx qubits[4], qubits[49], qubits[50]; -ccx qubits[5], qubits[50], qubits[51]; -ccx qubits[6], qubits[51], qubits[52]; -ccx qubits[7], qubits[52], qubits[53]; -ccx qubits[8], qubits[53], qubits[54]; -ccx qubits[9], qubits[54], qubits[55]; -ccx qubits[10], qubits[55], qubits[56]; -ccx qubits[11], qubits[56], qubits[57]; -ccx qubits[12], qubits[57], qubits[58]; -ccx qubits[13], qubits[58], qubits[59]; -ccx qubits[14], qubits[59], qubits[60]; -ccx qubits[15], qubits[60], qubits[61]; -ccx qubits[16], qubits[61], qubits[62]; -ccx qubits[17], qubits[62], qubits[63]; -ccx qubits[18], qubits[63], qubits[64]; -ccx qubits[19], qubits[64], qubits[65]; -ccx qubits[20], qubits[65], qubits[66]; -ccx qubits[21], qubits[66], qubits[67]; -ccx qubits[22], qubits[67], qubits[68]; -ccx qubits[23], qubits[68], qubits[69]; -ccx qubits[24], qubits[69], qubits[70]; -ccx qubits[25], qubits[70], qubits[71]; -ccx qubits[26], qubits[71], qubits[72]; -ccx qubits[27], qubits[72], qubits[73]; -ccx qubits[28], qubits[73], qubits[74]; -ccx qubits[29], qubits[74], qubits[75]; -ccx qubits[30], qubits[75], qubits[76]; -ccx qubits[31], qubits[76], qubits[77]; -ccx qubits[32], qubits[77], qubits[78]; -ccx qubits[33], qubits[78], qubits[79]; -ccx qubits[34], qubits[79], qubits[80]; -ccx qubits[35], qubits[80], qubits[81]; -ccx qubits[36], qubits[81], qubits[82]; -ccx qubits[37], qubits[82], qubits[83]; -ccx qubits[38], qubits[83], qubits[84]; -ccx qubits[39], qubits[84], qubits[85]; -ccx qubits[40], qubits[85], qubits[86]; -ccx qubits[41], qubits[86], qubits[87]; -ccx qubits[42], qubits[87], qubits[88]; -ccx qubits[43], qubits[88], qubits[89]; -ccx qubits[44], qubits[89], qubits[90]; -cz qubits[90], qubits[45]; -ccx qubits[44], qubits[89], qubits[90]; -ccx qubits[43], qubits[88], qubits[89]; -ccx qubits[42], qubits[87], qubits[88]; -ccx qubits[41], qubits[86], qubits[87]; -ccx qubits[40], qubits[85], qubits[86]; -ccx qubits[39], qubits[84], qubits[85]; -ccx qubits[38], qubits[83], qubits[84]; -ccx qubits[37], qubits[82], qubits[83]; -ccx qubits[36], qubits[81], qubits[82]; -ccx qubits[35], qubits[80], qubits[81]; -ccx qubits[34], qubits[79], qubits[80]; -ccx qubits[33], qubits[78], qubits[79]; -ccx qubits[32], qubits[77], qubits[78]; -ccx qubits[31], qubits[76], qubits[77]; -ccx qubits[30], qubits[75], qubits[76]; -ccx qubits[29], qubits[74], qubits[75]; -ccx qubits[28], qubits[73], qubits[74]; -ccx qubits[27], qubits[72], qubits[73]; -ccx qubits[26], qubits[71], qubits[72]; -ccx qubits[25], qubits[70], qubits[71]; -ccx qubits[24], qubits[69], qubits[70]; -ccx qubits[23], qubits[68], qubits[69]; -ccx qubits[22], qubits[67], qubits[68]; -ccx qubits[21], qubits[66], qubits[67]; -ccx qubits[20], qubits[65], qubits[66]; -ccx qubits[19], qubits[64], qubits[65]; -ccx qubits[18], qubits[63], qubits[64]; -ccx qubits[17], qubits[62], qubits[63]; -ccx qubits[16], qubits[61], qubits[62]; -ccx qubits[15], qubits[60], qubits[61]; -ccx qubits[14], qubits[59], qubits[60]; -ccx qubits[13], qubits[58], qubits[59]; -ccx qubits[12], qubits[57], qubits[58]; -ccx qubits[11], qubits[56], qubits[57]; -ccx qubits[10], qubits[55], qubits[56]; -ccx qubits[9], qubits[54], qubits[55]; -ccx qubits[8], qubits[53], qubits[54]; -ccx qubits[7], qubits[52], qubits[53]; -ccx qubits[6], qubits[51], qubits[52]; -ccx qubits[5], qubits[50], qubits[51]; -ccx qubits[4], qubits[49], qubits[50]; -ccx qubits[3], qubits[48], qubits[49]; -ccx qubits[2], qubits[47], qubits[48]; -ccx qubits[0], qubits[1], qubits[47]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +cz qubits[88], qubits[89]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -139,275 +139,275 @@ x qubits[42]; x qubits[44]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -ccx qubits[0], qubits[1], qubits[47]; -ccx qubits[2], qubits[47], qubits[48]; -ccx qubits[3], qubits[48], qubits[49]; -ccx qubits[4], qubits[49], qubits[50]; -ccx qubits[5], qubits[50], qubits[51]; -ccx qubits[6], qubits[51], qubits[52]; -ccx qubits[7], qubits[52], qubits[53]; -ccx qubits[8], qubits[53], qubits[54]; -ccx qubits[9], qubits[54], qubits[55]; -ccx qubits[10], qubits[55], qubits[56]; -ccx qubits[11], qubits[56], qubits[57]; -ccx qubits[12], qubits[57], qubits[58]; -ccx qubits[13], qubits[58], qubits[59]; -ccx qubits[14], qubits[59], qubits[60]; -ccx qubits[15], qubits[60], qubits[61]; -ccx qubits[16], qubits[61], qubits[62]; -ccx qubits[17], qubits[62], qubits[63]; -ccx qubits[18], qubits[63], qubits[64]; -ccx qubits[19], qubits[64], qubits[65]; -ccx qubits[20], qubits[65], qubits[66]; -ccx qubits[21], qubits[66], qubits[67]; -ccx qubits[22], qubits[67], qubits[68]; -ccx qubits[23], qubits[68], qubits[69]; -ccx qubits[24], qubits[69], qubits[70]; -ccx qubits[25], qubits[70], qubits[71]; -ccx qubits[26], qubits[71], qubits[72]; -ccx qubits[27], qubits[72], qubits[73]; -ccx qubits[28], qubits[73], qubits[74]; -ccx qubits[29], qubits[74], qubits[75]; -ccx qubits[30], qubits[75], qubits[76]; -ccx qubits[31], qubits[76], qubits[77]; -ccx qubits[32], qubits[77], qubits[78]; -ccx qubits[33], qubits[78], qubits[79]; -ccx qubits[34], qubits[79], qubits[80]; -ccx qubits[35], qubits[80], qubits[81]; -ccx qubits[36], qubits[81], qubits[82]; -ccx qubits[37], qubits[82], qubits[83]; -ccx qubits[38], qubits[83], qubits[84]; -ccx qubits[39], qubits[84], qubits[85]; -ccx qubits[40], qubits[85], qubits[86]; -ccx qubits[41], qubits[86], qubits[87]; -ccx qubits[42], qubits[87], qubits[88]; -ccx qubits[43], qubits[88], qubits[89]; -ccx qubits[44], qubits[89], qubits[90]; -cz qubits[90], qubits[45]; -ccx qubits[44], qubits[89], qubits[90]; -ccx qubits[43], qubits[88], qubits[89]; -ccx qubits[42], qubits[87], qubits[88]; -ccx qubits[41], qubits[86], qubits[87]; -ccx qubits[40], qubits[85], qubits[86]; -ccx qubits[39], qubits[84], qubits[85]; -ccx qubits[38], qubits[83], qubits[84]; -ccx qubits[37], qubits[82], qubits[83]; -ccx qubits[36], qubits[81], qubits[82]; -ccx qubits[35], qubits[80], qubits[81]; -ccx qubits[34], qubits[79], qubits[80]; -ccx qubits[33], qubits[78], qubits[79]; -ccx qubits[32], qubits[77], qubits[78]; -ccx qubits[31], qubits[76], qubits[77]; -ccx qubits[30], qubits[75], qubits[76]; -ccx qubits[29], qubits[74], qubits[75]; -ccx qubits[28], qubits[73], qubits[74]; -ccx qubits[27], qubits[72], qubits[73]; -ccx qubits[26], qubits[71], qubits[72]; -ccx qubits[25], qubits[70], qubits[71]; -ccx qubits[24], qubits[69], qubits[70]; -ccx qubits[23], qubits[68], qubits[69]; -ccx qubits[22], qubits[67], qubits[68]; -ccx qubits[21], qubits[66], qubits[67]; -ccx qubits[20], qubits[65], qubits[66]; -ccx qubits[19], qubits[64], qubits[65]; -ccx qubits[18], qubits[63], qubits[64]; -ccx qubits[17], qubits[62], qubits[63]; -ccx qubits[16], qubits[61], qubits[62]; -ccx qubits[15], qubits[60], qubits[61]; -ccx qubits[14], qubits[59], qubits[60]; -ccx qubits[13], qubits[58], qubits[59]; -ccx qubits[12], qubits[57], qubits[58]; -ccx qubits[11], qubits[56], qubits[57]; -ccx qubits[10], qubits[55], qubits[56]; -ccx qubits[9], qubits[54], qubits[55]; -ccx qubits[8], qubits[53], qubits[54]; -ccx qubits[7], qubits[52], qubits[53]; -ccx qubits[6], qubits[51], qubits[52]; -ccx qubits[5], qubits[50], qubits[51]; -ccx qubits[4], qubits[49], qubits[50]; -ccx qubits[3], qubits[48], qubits[49]; -ccx qubits[2], qubits[47], qubits[48]; -ccx qubits[0], qubits[1], qubits[47]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +cz qubits[88], qubits[89]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -z qubits[46]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +z qubits[90]; diff --git a/benchmarks/all/OEGrover/46/post.hsl b/benchmarks/all/OEGrover/46/post.hsl index ce19baeaa..cb20cebd3 100644 --- a/benchmarks/all/OEGrover/46/post.hsl +++ b/benchmarks/all/OEGrover/46/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 22 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/46/post.lsta b/benchmarks/all/OEGrover/46/post.lsta deleted file mode 100644 index f756385be..000000000 --- a/benchmarks/all/OEGrover/46/post.lsta +++ /dev/null @@ -1,237 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 94) -> 91 -[47,1](93, 95) -> 92 -[48,1](96, 96) -> 93 -[48,1](97, 96) -> 94 -[48,1](98, 96) -> 95 -[49,1](99, 99) -> 96 -[49,1](100, 99) -> 97 -[49,1](101, 99) -> 98 -[50,1](102, 102) -> 99 -[50,1](103, 102) -> 100 -[50,1](104, 102) -> 101 -[51,1](105, 105) -> 102 -[51,1](106, 105) -> 103 -[51,1](107, 105) -> 104 -[52,1](108, 108) -> 105 -[52,1](109, 108) -> 106 -[52,1](110, 108) -> 107 -[53,1](111, 111) -> 108 -[53,1](112, 111) -> 109 -[53,1](113, 111) -> 110 -[54,1](114, 114) -> 111 -[54,1](115, 114) -> 112 -[54,1](116, 114) -> 113 -[55,1](117, 117) -> 114 -[55,1](118, 117) -> 115 -[55,1](119, 117) -> 116 -[56,1](120, 120) -> 117 -[56,1](121, 120) -> 118 -[56,1](122, 120) -> 119 -[57,1](123, 123) -> 120 -[57,1](124, 123) -> 121 -[57,1](125, 123) -> 122 -[58,1](126, 126) -> 123 -[58,1](127, 126) -> 124 -[58,1](128, 126) -> 125 -[59,1](129, 129) -> 126 -[59,1](130, 129) -> 127 -[59,1](131, 129) -> 128 -[60,1](132, 132) -> 129 -[60,1](133, 132) -> 130 -[60,1](134, 132) -> 131 -[61,1](135, 135) -> 132 -[61,1](136, 135) -> 133 -[61,1](137, 135) -> 134 -[62,1](138, 138) -> 135 -[62,1](139, 138) -> 136 -[62,1](140, 138) -> 137 -[63,1](141, 141) -> 138 -[63,1](142, 141) -> 139 -[63,1](143, 141) -> 140 -[64,1](144, 144) -> 141 -[64,1](145, 144) -> 142 -[64,1](146, 144) -> 143 -[65,1](147, 147) -> 144 -[65,1](148, 147) -> 145 -[65,1](149, 147) -> 146 -[66,1](150, 150) -> 147 -[66,1](151, 150) -> 148 -[66,1](152, 150) -> 149 -[67,1](153, 153) -> 150 -[67,1](154, 153) -> 151 -[67,1](155, 153) -> 152 -[68,1](156, 156) -> 153 -[68,1](157, 156) -> 154 -[68,1](158, 156) -> 155 -[69,1](159, 159) -> 156 -[69,1](160, 159) -> 157 -[69,1](161, 159) -> 158 -[70,1](162, 162) -> 159 -[70,1](163, 162) -> 160 -[70,1](164, 162) -> 161 -[71,1](165, 165) -> 162 -[71,1](166, 165) -> 163 -[71,1](167, 165) -> 164 -[72,1](168, 168) -> 165 -[72,1](169, 168) -> 166 -[72,1](170, 168) -> 167 -[73,1](171, 171) -> 168 -[73,1](172, 171) -> 169 -[73,1](173, 171) -> 170 -[74,1](174, 174) -> 171 -[74,1](175, 174) -> 172 -[74,1](176, 174) -> 173 -[75,1](177, 177) -> 174 -[75,1](178, 177) -> 175 -[75,1](179, 177) -> 176 -[76,1](180, 180) -> 177 -[76,1](181, 180) -> 178 -[76,1](182, 180) -> 179 -[77,1](183, 183) -> 180 -[77,1](184, 183) -> 181 -[77,1](185, 183) -> 182 -[78,1](186, 186) -> 183 -[78,1](187, 186) -> 184 -[78,1](188, 186) -> 185 -[79,1](189, 189) -> 186 -[79,1](190, 189) -> 187 -[79,1](191, 189) -> 188 -[80,1](192, 192) -> 189 -[80,1](193, 192) -> 190 -[80,1](194, 192) -> 191 -[81,1](195, 195) -> 192 -[81,1](196, 195) -> 193 -[81,1](197, 195) -> 194 -[82,1](198, 198) -> 195 -[82,1](199, 198) -> 196 -[82,1](200, 198) -> 197 -[83,1](201, 201) -> 198 -[83,1](202, 201) -> 199 -[83,1](203, 201) -> 200 -[84,1](204, 204) -> 201 -[84,1](205, 204) -> 202 -[84,1](206, 204) -> 203 -[85,1](207, 207) -> 204 -[85,1](208, 207) -> 205 -[85,1](209, 207) -> 206 -[86,1](210, 210) -> 207 -[86,1](211, 210) -> 208 -[86,1](212, 210) -> 209 -[87,1](213, 213) -> 210 -[87,1](214, 213) -> 211 -[87,1](215, 213) -> 212 -[88,1](216, 216) -> 213 -[88,1](217, 216) -> 214 -[88,1](218, 216) -> 215 -[89,1](219, 219) -> 216 -[89,1](220, 219) -> 217 -[89,1](221, 219) -> 218 -[90,1](222, 222) -> 219 -[90,1](223, 222) -> 220 -[90,1](224, 222) -> 221 -[91,1](225, 225) -> 222 -[91,1](226, 225) -> 223 -[91,1](227, 225) -> 224 -[92,1](228, 228) -> 225 -[92,1](229, 228) -> 226 -[92,1](230, 228) -> 227 -[p1,1] -> 228 -[p2,1] -> 229 -[p3,1] -> 230 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/46/pre.hsl b/benchmarks/all/OEGrover/46/pre.hsl index 6d547bd99..dfcca3b28 100644 --- a/benchmarks/all/OEGrover/46/pre.hsl +++ b/benchmarks/all/OEGrover/46/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 22 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 70368744177663 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/46/pre.lsta b/benchmarks/all/OEGrover/46/pre.lsta deleted file mode 100644 index 2cbc26f71..000000000 --- a/benchmarks/all/OEGrover/46/pre.lsta +++ /dev/null @@ -1,241 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 94) -> 91 -[47,1](93, 95) -> 92 -[48,1](96, 96) -> 93 -[48,1](97, 96) -> 94 -[48,1](98, 96) -> 95 -[49,1](99, 99) -> 96 -[49,1](100, 99) -> 97 -[49,1](101, 99) -> 98 -[50,1](102, 102) -> 99 -[50,1](103, 102) -> 100 -[50,1](104, 102) -> 101 -[51,1](105, 105) -> 102 -[51,1](106, 105) -> 103 -[51,1](107, 105) -> 104 -[52,1](108, 108) -> 105 -[52,1](109, 108) -> 106 -[52,1](110, 108) -> 107 -[53,1](111, 111) -> 108 -[53,1](112, 111) -> 109 -[53,1](113, 111) -> 110 -[54,1](114, 114) -> 111 -[54,1](115, 114) -> 112 -[54,1](116, 114) -> 113 -[55,1](117, 117) -> 114 -[55,1](118, 117) -> 115 -[55,1](119, 117) -> 116 -[56,1](120, 120) -> 117 -[56,1](121, 120) -> 118 -[56,1](122, 120) -> 119 -[57,1](123, 123) -> 120 -[57,1](124, 123) -> 121 -[57,1](125, 123) -> 122 -[58,1](126, 126) -> 123 -[58,1](127, 126) -> 124 -[58,1](128, 126) -> 125 -[59,1](129, 129) -> 126 -[59,1](130, 129) -> 127 -[59,1](131, 129) -> 128 -[60,1](132, 132) -> 129 -[60,1](133, 132) -> 130 -[60,1](134, 132) -> 131 -[61,1](135, 135) -> 132 -[61,1](136, 135) -> 133 -[61,1](137, 135) -> 134 -[62,1](138, 138) -> 135 -[62,1](139, 138) -> 136 -[62,1](140, 138) -> 137 -[63,1](141, 141) -> 138 -[63,1](142, 141) -> 139 -[63,1](143, 141) -> 140 -[64,1](144, 144) -> 141 -[64,1](145, 144) -> 142 -[64,1](146, 144) -> 143 -[65,1](147, 147) -> 144 -[65,1](148, 147) -> 145 -[65,1](149, 147) -> 146 -[66,1](150, 150) -> 147 -[66,1](151, 150) -> 148 -[66,1](152, 150) -> 149 -[67,1](153, 153) -> 150 -[67,1](154, 153) -> 151 -[67,1](155, 153) -> 152 -[68,1](156, 156) -> 153 -[68,1](157, 156) -> 154 -[68,1](158, 156) -> 155 -[69,1](159, 159) -> 156 -[69,1](160, 159) -> 157 -[69,1](161, 159) -> 158 -[70,1](162, 162) -> 159 -[70,1](163, 162) -> 160 -[70,1](164, 162) -> 161 -[71,1](165, 165) -> 162 -[71,1](166, 165) -> 163 -[71,1](167, 165) -> 164 -[72,1](168, 168) -> 165 -[72,1](169, 168) -> 166 -[72,1](170, 168) -> 167 -[73,1](171, 171) -> 168 -[73,1](172, 171) -> 169 -[73,1](173, 171) -> 170 -[74,1](174, 174) -> 171 -[74,1](175, 174) -> 172 -[74,1](176, 174) -> 173 -[75,1](177, 177) -> 174 -[75,1](178, 177) -> 175 -[75,1](179, 177) -> 176 -[76,1](180, 180) -> 177 -[76,1](181, 180) -> 178 -[76,1](182, 180) -> 179 -[77,1](183, 183) -> 180 -[77,1](184, 183) -> 181 -[77,1](185, 183) -> 182 -[78,1](186, 186) -> 183 -[78,1](187, 186) -> 184 -[78,1](188, 186) -> 185 -[79,1](189, 189) -> 186 -[79,1](190, 189) -> 187 -[79,1](191, 189) -> 188 -[80,1](192, 192) -> 189 -[80,1](193, 192) -> 190 -[80,1](194, 192) -> 191 -[81,1](195, 195) -> 192 -[81,1](196, 195) -> 193 -[81,1](197, 195) -> 194 -[82,1](198, 198) -> 195 -[82,1](199, 198) -> 196 -[82,1](200, 198) -> 197 -[83,1](201, 201) -> 198 -[83,1](202, 201) -> 199 -[83,1](203, 201) -> 200 -[84,1](204, 204) -> 201 -[84,1](205, 204) -> 202 -[84,1](206, 204) -> 203 -[85,1](207, 207) -> 204 -[85,1](208, 207) -> 205 -[85,1](209, 207) -> 206 -[86,1](210, 210) -> 207 -[86,1](211, 210) -> 208 -[86,1](212, 210) -> 209 -[87,1](213, 213) -> 210 -[87,1](214, 213) -> 211 -[87,1](215, 213) -> 212 -[88,1](216, 216) -> 213 -[88,1](217, 216) -> 214 -[88,1](218, 216) -> 215 -[89,1](219, 219) -> 216 -[89,1](220, 219) -> 217 -[89,1](221, 219) -> 218 -[90,1](222, 222) -> 219 -[90,1](223, 222) -> 220 -[90,1](224, 222) -> 221 -[91,1](225, 225) -> 222 -[91,1](226, 225) -> 223 -[91,1](227, 225) -> 224 -[92,1](228, 228) -> 225 -[92,1](229, 228) -> 226 -[92,1](230, 228) -> 227 -[c0,1] -> 228 -[a,1] -> 229 -[b,1] -> 230 -Constraints -70368744177663 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/47/circuit.qasm b/benchmarks/all/OEGrover/47/circuit.qasm index 8e2efa78e..6e9f929aa 100644 --- a/benchmarks/all/OEGrover/47/circuit.qasm +++ b/benchmarks/all/OEGrover/47/circuit.qasm @@ -1,122 +1,122 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[94]; +qreg qubits[93]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -ccx qubits[0], qubits[1], qubits[48]; -ccx qubits[2], qubits[48], qubits[49]; -ccx qubits[3], qubits[49], qubits[50]; -ccx qubits[4], qubits[50], qubits[51]; -ccx qubits[5], qubits[51], qubits[52]; -ccx qubits[6], qubits[52], qubits[53]; -ccx qubits[7], qubits[53], qubits[54]; -ccx qubits[8], qubits[54], qubits[55]; -ccx qubits[9], qubits[55], qubits[56]; -ccx qubits[10], qubits[56], qubits[57]; -ccx qubits[11], qubits[57], qubits[58]; -ccx qubits[12], qubits[58], qubits[59]; -ccx qubits[13], qubits[59], qubits[60]; -ccx qubits[14], qubits[60], qubits[61]; -ccx qubits[15], qubits[61], qubits[62]; -ccx qubits[16], qubits[62], qubits[63]; -ccx qubits[17], qubits[63], qubits[64]; -ccx qubits[18], qubits[64], qubits[65]; -ccx qubits[19], qubits[65], qubits[66]; -ccx qubits[20], qubits[66], qubits[67]; -ccx qubits[21], qubits[67], qubits[68]; -ccx qubits[22], qubits[68], qubits[69]; -ccx qubits[23], qubits[69], qubits[70]; -ccx qubits[24], qubits[70], qubits[71]; -ccx qubits[25], qubits[71], qubits[72]; -ccx qubits[26], qubits[72], qubits[73]; -ccx qubits[27], qubits[73], qubits[74]; -ccx qubits[28], qubits[74], qubits[75]; -ccx qubits[29], qubits[75], qubits[76]; -ccx qubits[30], qubits[76], qubits[77]; -ccx qubits[31], qubits[77], qubits[78]; -ccx qubits[32], qubits[78], qubits[79]; -ccx qubits[33], qubits[79], qubits[80]; -ccx qubits[34], qubits[80], qubits[81]; -ccx qubits[35], qubits[81], qubits[82]; -ccx qubits[36], qubits[82], qubits[83]; -ccx qubits[37], qubits[83], qubits[84]; -ccx qubits[38], qubits[84], qubits[85]; -ccx qubits[39], qubits[85], qubits[86]; -ccx qubits[40], qubits[86], qubits[87]; -ccx qubits[41], qubits[87], qubits[88]; -ccx qubits[42], qubits[88], qubits[89]; -ccx qubits[43], qubits[89], qubits[90]; -ccx qubits[44], qubits[90], qubits[91]; -ccx qubits[45], qubits[91], qubits[92]; -cz qubits[92], qubits[46]; -ccx qubits[45], qubits[91], qubits[92]; -ccx qubits[44], qubits[90], qubits[91]; -ccx qubits[43], qubits[89], qubits[90]; -ccx qubits[42], qubits[88], qubits[89]; -ccx qubits[41], qubits[87], qubits[88]; -ccx qubits[40], qubits[86], qubits[87]; -ccx qubits[39], qubits[85], qubits[86]; -ccx qubits[38], qubits[84], qubits[85]; -ccx qubits[37], qubits[83], qubits[84]; -ccx qubits[36], qubits[82], qubits[83]; -ccx qubits[35], qubits[81], qubits[82]; -ccx qubits[34], qubits[80], qubits[81]; -ccx qubits[33], qubits[79], qubits[80]; -ccx qubits[32], qubits[78], qubits[79]; -ccx qubits[31], qubits[77], qubits[78]; -ccx qubits[30], qubits[76], qubits[77]; -ccx qubits[29], qubits[75], qubits[76]; -ccx qubits[28], qubits[74], qubits[75]; -ccx qubits[27], qubits[73], qubits[74]; -ccx qubits[26], qubits[72], qubits[73]; -ccx qubits[25], qubits[71], qubits[72]; -ccx qubits[24], qubits[70], qubits[71]; -ccx qubits[23], qubits[69], qubits[70]; -ccx qubits[22], qubits[68], qubits[69]; -ccx qubits[21], qubits[67], qubits[68]; -ccx qubits[20], qubits[66], qubits[67]; -ccx qubits[19], qubits[65], qubits[66]; -ccx qubits[18], qubits[64], qubits[65]; -ccx qubits[17], qubits[63], qubits[64]; -ccx qubits[16], qubits[62], qubits[63]; -ccx qubits[15], qubits[61], qubits[62]; -ccx qubits[14], qubits[60], qubits[61]; -ccx qubits[13], qubits[59], qubits[60]; -ccx qubits[12], qubits[58], qubits[59]; -ccx qubits[11], qubits[57], qubits[58]; -ccx qubits[10], qubits[56], qubits[57]; -ccx qubits[9], qubits[55], qubits[56]; -ccx qubits[8], qubits[54], qubits[55]; -ccx qubits[7], qubits[53], qubits[54]; -ccx qubits[6], qubits[52], qubits[53]; -ccx qubits[5], qubits[51], qubits[52]; -ccx qubits[4], qubits[50], qubits[51]; -ccx qubits[3], qubits[49], qubits[50]; -ccx qubits[2], qubits[48], qubits[49]; -ccx qubits[0], qubits[1], qubits[48]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +cz qubits[90], qubits[91]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -143,281 +143,281 @@ x qubits[44]; x qubits[46]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; -ccx qubits[0], qubits[1], qubits[48]; -ccx qubits[2], qubits[48], qubits[49]; -ccx qubits[3], qubits[49], qubits[50]; -ccx qubits[4], qubits[50], qubits[51]; -ccx qubits[5], qubits[51], qubits[52]; -ccx qubits[6], qubits[52], qubits[53]; -ccx qubits[7], qubits[53], qubits[54]; -ccx qubits[8], qubits[54], qubits[55]; -ccx qubits[9], qubits[55], qubits[56]; -ccx qubits[10], qubits[56], qubits[57]; -ccx qubits[11], qubits[57], qubits[58]; -ccx qubits[12], qubits[58], qubits[59]; -ccx qubits[13], qubits[59], qubits[60]; -ccx qubits[14], qubits[60], qubits[61]; -ccx qubits[15], qubits[61], qubits[62]; -ccx qubits[16], qubits[62], qubits[63]; -ccx qubits[17], qubits[63], qubits[64]; -ccx qubits[18], qubits[64], qubits[65]; -ccx qubits[19], qubits[65], qubits[66]; -ccx qubits[20], qubits[66], qubits[67]; -ccx qubits[21], qubits[67], qubits[68]; -ccx qubits[22], qubits[68], qubits[69]; -ccx qubits[23], qubits[69], qubits[70]; -ccx qubits[24], qubits[70], qubits[71]; -ccx qubits[25], qubits[71], qubits[72]; -ccx qubits[26], qubits[72], qubits[73]; -ccx qubits[27], qubits[73], qubits[74]; -ccx qubits[28], qubits[74], qubits[75]; -ccx qubits[29], qubits[75], qubits[76]; -ccx qubits[30], qubits[76], qubits[77]; -ccx qubits[31], qubits[77], qubits[78]; -ccx qubits[32], qubits[78], qubits[79]; -ccx qubits[33], qubits[79], qubits[80]; -ccx qubits[34], qubits[80], qubits[81]; -ccx qubits[35], qubits[81], qubits[82]; -ccx qubits[36], qubits[82], qubits[83]; -ccx qubits[37], qubits[83], qubits[84]; -ccx qubits[38], qubits[84], qubits[85]; -ccx qubits[39], qubits[85], qubits[86]; -ccx qubits[40], qubits[86], qubits[87]; -ccx qubits[41], qubits[87], qubits[88]; -ccx qubits[42], qubits[88], qubits[89]; -ccx qubits[43], qubits[89], qubits[90]; -ccx qubits[44], qubits[90], qubits[91]; -ccx qubits[45], qubits[91], qubits[92]; -cz qubits[92], qubits[46]; -ccx qubits[45], qubits[91], qubits[92]; -ccx qubits[44], qubits[90], qubits[91]; -ccx qubits[43], qubits[89], qubits[90]; -ccx qubits[42], qubits[88], qubits[89]; -ccx qubits[41], qubits[87], qubits[88]; -ccx qubits[40], qubits[86], qubits[87]; -ccx qubits[39], qubits[85], qubits[86]; -ccx qubits[38], qubits[84], qubits[85]; -ccx qubits[37], qubits[83], qubits[84]; -ccx qubits[36], qubits[82], qubits[83]; -ccx qubits[35], qubits[81], qubits[82]; -ccx qubits[34], qubits[80], qubits[81]; -ccx qubits[33], qubits[79], qubits[80]; -ccx qubits[32], qubits[78], qubits[79]; -ccx qubits[31], qubits[77], qubits[78]; -ccx qubits[30], qubits[76], qubits[77]; -ccx qubits[29], qubits[75], qubits[76]; -ccx qubits[28], qubits[74], qubits[75]; -ccx qubits[27], qubits[73], qubits[74]; -ccx qubits[26], qubits[72], qubits[73]; -ccx qubits[25], qubits[71], qubits[72]; -ccx qubits[24], qubits[70], qubits[71]; -ccx qubits[23], qubits[69], qubits[70]; -ccx qubits[22], qubits[68], qubits[69]; -ccx qubits[21], qubits[67], qubits[68]; -ccx qubits[20], qubits[66], qubits[67]; -ccx qubits[19], qubits[65], qubits[66]; -ccx qubits[18], qubits[64], qubits[65]; -ccx qubits[17], qubits[63], qubits[64]; -ccx qubits[16], qubits[62], qubits[63]; -ccx qubits[15], qubits[61], qubits[62]; -ccx qubits[14], qubits[60], qubits[61]; -ccx qubits[13], qubits[59], qubits[60]; -ccx qubits[12], qubits[58], qubits[59]; -ccx qubits[11], qubits[57], qubits[58]; -ccx qubits[10], qubits[56], qubits[57]; -ccx qubits[9], qubits[55], qubits[56]; -ccx qubits[8], qubits[54], qubits[55]; -ccx qubits[7], qubits[53], qubits[54]; -ccx qubits[6], qubits[52], qubits[53]; -ccx qubits[5], qubits[51], qubits[52]; -ccx qubits[4], qubits[50], qubits[51]; -ccx qubits[3], qubits[49], qubits[50]; -ccx qubits[2], qubits[48], qubits[49]; -ccx qubits[0], qubits[1], qubits[48]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +cz qubits[90], qubits[91]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; +x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; -z qubits[47]; +h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +z qubits[92]; diff --git a/benchmarks/all/OEGrover/47/post.hsl b/benchmarks/all/OEGrover/47/post.hsl index 2cb92c5ce..3a9a9aa3e 100644 --- a/benchmarks/all/OEGrover/47/post.hsl +++ b/benchmarks/all/OEGrover/47/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 22 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/47/post.lsta b/benchmarks/all/OEGrover/47/post.lsta deleted file mode 100644 index ffce6afc1..000000000 --- a/benchmarks/all/OEGrover/47/post.lsta +++ /dev/null @@ -1,242 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 96) -> 93 -[48,1](95, 97) -> 94 -[49,1](98, 98) -> 95 -[49,1](99, 98) -> 96 -[49,1](100, 98) -> 97 -[50,1](101, 101) -> 98 -[50,1](102, 101) -> 99 -[50,1](103, 101) -> 100 -[51,1](104, 104) -> 101 -[51,1](105, 104) -> 102 -[51,1](106, 104) -> 103 -[52,1](107, 107) -> 104 -[52,1](108, 107) -> 105 -[52,1](109, 107) -> 106 -[53,1](110, 110) -> 107 -[53,1](111, 110) -> 108 -[53,1](112, 110) -> 109 -[54,1](113, 113) -> 110 -[54,1](114, 113) -> 111 -[54,1](115, 113) -> 112 -[55,1](116, 116) -> 113 -[55,1](117, 116) -> 114 -[55,1](118, 116) -> 115 -[56,1](119, 119) -> 116 -[56,1](120, 119) -> 117 -[56,1](121, 119) -> 118 -[57,1](122, 122) -> 119 -[57,1](123, 122) -> 120 -[57,1](124, 122) -> 121 -[58,1](125, 125) -> 122 -[58,1](126, 125) -> 123 -[58,1](127, 125) -> 124 -[59,1](128, 128) -> 125 -[59,1](129, 128) -> 126 -[59,1](130, 128) -> 127 -[60,1](131, 131) -> 128 -[60,1](132, 131) -> 129 -[60,1](133, 131) -> 130 -[61,1](134, 134) -> 131 -[61,1](135, 134) -> 132 -[61,1](136, 134) -> 133 -[62,1](137, 137) -> 134 -[62,1](138, 137) -> 135 -[62,1](139, 137) -> 136 -[63,1](140, 140) -> 137 -[63,1](141, 140) -> 138 -[63,1](142, 140) -> 139 -[64,1](143, 143) -> 140 -[64,1](144, 143) -> 141 -[64,1](145, 143) -> 142 -[65,1](146, 146) -> 143 -[65,1](147, 146) -> 144 -[65,1](148, 146) -> 145 -[66,1](149, 149) -> 146 -[66,1](150, 149) -> 147 -[66,1](151, 149) -> 148 -[67,1](152, 152) -> 149 -[67,1](153, 152) -> 150 -[67,1](154, 152) -> 151 -[68,1](155, 155) -> 152 -[68,1](156, 155) -> 153 -[68,1](157, 155) -> 154 -[69,1](158, 158) -> 155 -[69,1](159, 158) -> 156 -[69,1](160, 158) -> 157 -[70,1](161, 161) -> 158 -[70,1](162, 161) -> 159 -[70,1](163, 161) -> 160 -[71,1](164, 164) -> 161 -[71,1](165, 164) -> 162 -[71,1](166, 164) -> 163 -[72,1](167, 167) -> 164 -[72,1](168, 167) -> 165 -[72,1](169, 167) -> 166 -[73,1](170, 170) -> 167 -[73,1](171, 170) -> 168 -[73,1](172, 170) -> 169 -[74,1](173, 173) -> 170 -[74,1](174, 173) -> 171 -[74,1](175, 173) -> 172 -[75,1](176, 176) -> 173 -[75,1](177, 176) -> 174 -[75,1](178, 176) -> 175 -[76,1](179, 179) -> 176 -[76,1](180, 179) -> 177 -[76,1](181, 179) -> 178 -[77,1](182, 182) -> 179 -[77,1](183, 182) -> 180 -[77,1](184, 182) -> 181 -[78,1](185, 185) -> 182 -[78,1](186, 185) -> 183 -[78,1](187, 185) -> 184 -[79,1](188, 188) -> 185 -[79,1](189, 188) -> 186 -[79,1](190, 188) -> 187 -[80,1](191, 191) -> 188 -[80,1](192, 191) -> 189 -[80,1](193, 191) -> 190 -[81,1](194, 194) -> 191 -[81,1](195, 194) -> 192 -[81,1](196, 194) -> 193 -[82,1](197, 197) -> 194 -[82,1](198, 197) -> 195 -[82,1](199, 197) -> 196 -[83,1](200, 200) -> 197 -[83,1](201, 200) -> 198 -[83,1](202, 200) -> 199 -[84,1](203, 203) -> 200 -[84,1](204, 203) -> 201 -[84,1](205, 203) -> 202 -[85,1](206, 206) -> 203 -[85,1](207, 206) -> 204 -[85,1](208, 206) -> 205 -[86,1](209, 209) -> 206 -[86,1](210, 209) -> 207 -[86,1](211, 209) -> 208 -[87,1](212, 212) -> 209 -[87,1](213, 212) -> 210 -[87,1](214, 212) -> 211 -[88,1](215, 215) -> 212 -[88,1](216, 215) -> 213 -[88,1](217, 215) -> 214 -[89,1](218, 218) -> 215 -[89,1](219, 218) -> 216 -[89,1](220, 218) -> 217 -[90,1](221, 221) -> 218 -[90,1](222, 221) -> 219 -[90,1](223, 221) -> 220 -[91,1](224, 224) -> 221 -[91,1](225, 224) -> 222 -[91,1](226, 224) -> 223 -[92,1](227, 227) -> 224 -[92,1](228, 227) -> 225 -[92,1](229, 227) -> 226 -[93,1](230, 230) -> 227 -[93,1](231, 230) -> 228 -[93,1](232, 230) -> 229 -[94,1](233, 233) -> 230 -[94,1](234, 233) -> 231 -[94,1](235, 233) -> 232 -[p1,1] -> 233 -[p2,1] -> 234 -[p3,1] -> 235 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/47/pre.hsl b/benchmarks/all/OEGrover/47/pre.hsl index 52c1e039a..42398d6d0 100644 --- a/benchmarks/all/OEGrover/47/pre.hsl +++ b/benchmarks/all/OEGrover/47/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 22 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 140737488355327 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/47/pre.lsta b/benchmarks/all/OEGrover/47/pre.lsta deleted file mode 100644 index 2d9990148..000000000 --- a/benchmarks/all/OEGrover/47/pre.lsta +++ /dev/null @@ -1,246 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 96) -> 93 -[48,1](95, 97) -> 94 -[49,1](98, 98) -> 95 -[49,1](99, 98) -> 96 -[49,1](100, 98) -> 97 -[50,1](101, 101) -> 98 -[50,1](102, 101) -> 99 -[50,1](103, 101) -> 100 -[51,1](104, 104) -> 101 -[51,1](105, 104) -> 102 -[51,1](106, 104) -> 103 -[52,1](107, 107) -> 104 -[52,1](108, 107) -> 105 -[52,1](109, 107) -> 106 -[53,1](110, 110) -> 107 -[53,1](111, 110) -> 108 -[53,1](112, 110) -> 109 -[54,1](113, 113) -> 110 -[54,1](114, 113) -> 111 -[54,1](115, 113) -> 112 -[55,1](116, 116) -> 113 -[55,1](117, 116) -> 114 -[55,1](118, 116) -> 115 -[56,1](119, 119) -> 116 -[56,1](120, 119) -> 117 -[56,1](121, 119) -> 118 -[57,1](122, 122) -> 119 -[57,1](123, 122) -> 120 -[57,1](124, 122) -> 121 -[58,1](125, 125) -> 122 -[58,1](126, 125) -> 123 -[58,1](127, 125) -> 124 -[59,1](128, 128) -> 125 -[59,1](129, 128) -> 126 -[59,1](130, 128) -> 127 -[60,1](131, 131) -> 128 -[60,1](132, 131) -> 129 -[60,1](133, 131) -> 130 -[61,1](134, 134) -> 131 -[61,1](135, 134) -> 132 -[61,1](136, 134) -> 133 -[62,1](137, 137) -> 134 -[62,1](138, 137) -> 135 -[62,1](139, 137) -> 136 -[63,1](140, 140) -> 137 -[63,1](141, 140) -> 138 -[63,1](142, 140) -> 139 -[64,1](143, 143) -> 140 -[64,1](144, 143) -> 141 -[64,1](145, 143) -> 142 -[65,1](146, 146) -> 143 -[65,1](147, 146) -> 144 -[65,1](148, 146) -> 145 -[66,1](149, 149) -> 146 -[66,1](150, 149) -> 147 -[66,1](151, 149) -> 148 -[67,1](152, 152) -> 149 -[67,1](153, 152) -> 150 -[67,1](154, 152) -> 151 -[68,1](155, 155) -> 152 -[68,1](156, 155) -> 153 -[68,1](157, 155) -> 154 -[69,1](158, 158) -> 155 -[69,1](159, 158) -> 156 -[69,1](160, 158) -> 157 -[70,1](161, 161) -> 158 -[70,1](162, 161) -> 159 -[70,1](163, 161) -> 160 -[71,1](164, 164) -> 161 -[71,1](165, 164) -> 162 -[71,1](166, 164) -> 163 -[72,1](167, 167) -> 164 -[72,1](168, 167) -> 165 -[72,1](169, 167) -> 166 -[73,1](170, 170) -> 167 -[73,1](171, 170) -> 168 -[73,1](172, 170) -> 169 -[74,1](173, 173) -> 170 -[74,1](174, 173) -> 171 -[74,1](175, 173) -> 172 -[75,1](176, 176) -> 173 -[75,1](177, 176) -> 174 -[75,1](178, 176) -> 175 -[76,1](179, 179) -> 176 -[76,1](180, 179) -> 177 -[76,1](181, 179) -> 178 -[77,1](182, 182) -> 179 -[77,1](183, 182) -> 180 -[77,1](184, 182) -> 181 -[78,1](185, 185) -> 182 -[78,1](186, 185) -> 183 -[78,1](187, 185) -> 184 -[79,1](188, 188) -> 185 -[79,1](189, 188) -> 186 -[79,1](190, 188) -> 187 -[80,1](191, 191) -> 188 -[80,1](192, 191) -> 189 -[80,1](193, 191) -> 190 -[81,1](194, 194) -> 191 -[81,1](195, 194) -> 192 -[81,1](196, 194) -> 193 -[82,1](197, 197) -> 194 -[82,1](198, 197) -> 195 -[82,1](199, 197) -> 196 -[83,1](200, 200) -> 197 -[83,1](201, 200) -> 198 -[83,1](202, 200) -> 199 -[84,1](203, 203) -> 200 -[84,1](204, 203) -> 201 -[84,1](205, 203) -> 202 -[85,1](206, 206) -> 203 -[85,1](207, 206) -> 204 -[85,1](208, 206) -> 205 -[86,1](209, 209) -> 206 -[86,1](210, 209) -> 207 -[86,1](211, 209) -> 208 -[87,1](212, 212) -> 209 -[87,1](213, 212) -> 210 -[87,1](214, 212) -> 211 -[88,1](215, 215) -> 212 -[88,1](216, 215) -> 213 -[88,1](217, 215) -> 214 -[89,1](218, 218) -> 215 -[89,1](219, 218) -> 216 -[89,1](220, 218) -> 217 -[90,1](221, 221) -> 218 -[90,1](222, 221) -> 219 -[90,1](223, 221) -> 220 -[91,1](224, 224) -> 221 -[91,1](225, 224) -> 222 -[91,1](226, 224) -> 223 -[92,1](227, 227) -> 224 -[92,1](228, 227) -> 225 -[92,1](229, 227) -> 226 -[93,1](230, 230) -> 227 -[93,1](231, 230) -> 228 -[93,1](232, 230) -> 229 -[94,1](233, 233) -> 230 -[94,1](234, 233) -> 231 -[94,1](235, 233) -> 232 -[c0,1] -> 233 -[a,1] -> 234 -[b,1] -> 235 -Constraints -140737488355327 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/48/circuit.qasm b/benchmarks/all/OEGrover/48/circuit.qasm index 8d1503768..719c36c7c 100644 --- a/benchmarks/all/OEGrover/48/circuit.qasm +++ b/benchmarks/all/OEGrover/48/circuit.qasm @@ -1,124 +1,124 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[96]; +qreg qubits[95]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -ccx qubits[0], qubits[1], qubits[49]; -ccx qubits[2], qubits[49], qubits[50]; -ccx qubits[3], qubits[50], qubits[51]; -ccx qubits[4], qubits[51], qubits[52]; -ccx qubits[5], qubits[52], qubits[53]; -ccx qubits[6], qubits[53], qubits[54]; -ccx qubits[7], qubits[54], qubits[55]; -ccx qubits[8], qubits[55], qubits[56]; -ccx qubits[9], qubits[56], qubits[57]; -ccx qubits[10], qubits[57], qubits[58]; -ccx qubits[11], qubits[58], qubits[59]; -ccx qubits[12], qubits[59], qubits[60]; -ccx qubits[13], qubits[60], qubits[61]; -ccx qubits[14], qubits[61], qubits[62]; -ccx qubits[15], qubits[62], qubits[63]; -ccx qubits[16], qubits[63], qubits[64]; -ccx qubits[17], qubits[64], qubits[65]; -ccx qubits[18], qubits[65], qubits[66]; -ccx qubits[19], qubits[66], qubits[67]; -ccx qubits[20], qubits[67], qubits[68]; -ccx qubits[21], qubits[68], qubits[69]; -ccx qubits[22], qubits[69], qubits[70]; -ccx qubits[23], qubits[70], qubits[71]; -ccx qubits[24], qubits[71], qubits[72]; -ccx qubits[25], qubits[72], qubits[73]; -ccx qubits[26], qubits[73], qubits[74]; -ccx qubits[27], qubits[74], qubits[75]; -ccx qubits[28], qubits[75], qubits[76]; -ccx qubits[29], qubits[76], qubits[77]; -ccx qubits[30], qubits[77], qubits[78]; -ccx qubits[31], qubits[78], qubits[79]; -ccx qubits[32], qubits[79], qubits[80]; -ccx qubits[33], qubits[80], qubits[81]; -ccx qubits[34], qubits[81], qubits[82]; -ccx qubits[35], qubits[82], qubits[83]; -ccx qubits[36], qubits[83], qubits[84]; -ccx qubits[37], qubits[84], qubits[85]; -ccx qubits[38], qubits[85], qubits[86]; -ccx qubits[39], qubits[86], qubits[87]; -ccx qubits[40], qubits[87], qubits[88]; -ccx qubits[41], qubits[88], qubits[89]; -ccx qubits[42], qubits[89], qubits[90]; -ccx qubits[43], qubits[90], qubits[91]; -ccx qubits[44], qubits[91], qubits[92]; -ccx qubits[45], qubits[92], qubits[93]; -ccx qubits[46], qubits[93], qubits[94]; -cz qubits[94], qubits[47]; -ccx qubits[46], qubits[93], qubits[94]; -ccx qubits[45], qubits[92], qubits[93]; -ccx qubits[44], qubits[91], qubits[92]; -ccx qubits[43], qubits[90], qubits[91]; -ccx qubits[42], qubits[89], qubits[90]; -ccx qubits[41], qubits[88], qubits[89]; -ccx qubits[40], qubits[87], qubits[88]; -ccx qubits[39], qubits[86], qubits[87]; -ccx qubits[38], qubits[85], qubits[86]; -ccx qubits[37], qubits[84], qubits[85]; -ccx qubits[36], qubits[83], qubits[84]; -ccx qubits[35], qubits[82], qubits[83]; -ccx qubits[34], qubits[81], qubits[82]; -ccx qubits[33], qubits[80], qubits[81]; -ccx qubits[32], qubits[79], qubits[80]; -ccx qubits[31], qubits[78], qubits[79]; -ccx qubits[30], qubits[77], qubits[78]; -ccx qubits[29], qubits[76], qubits[77]; -ccx qubits[28], qubits[75], qubits[76]; -ccx qubits[27], qubits[74], qubits[75]; -ccx qubits[26], qubits[73], qubits[74]; -ccx qubits[25], qubits[72], qubits[73]; -ccx qubits[24], qubits[71], qubits[72]; -ccx qubits[23], qubits[70], qubits[71]; -ccx qubits[22], qubits[69], qubits[70]; -ccx qubits[21], qubits[68], qubits[69]; -ccx qubits[20], qubits[67], qubits[68]; -ccx qubits[19], qubits[66], qubits[67]; -ccx qubits[18], qubits[65], qubits[66]; -ccx qubits[17], qubits[64], qubits[65]; -ccx qubits[16], qubits[63], qubits[64]; -ccx qubits[15], qubits[62], qubits[63]; -ccx qubits[14], qubits[61], qubits[62]; -ccx qubits[13], qubits[60], qubits[61]; -ccx qubits[12], qubits[59], qubits[60]; -ccx qubits[11], qubits[58], qubits[59]; -ccx qubits[10], qubits[57], qubits[58]; -ccx qubits[9], qubits[56], qubits[57]; -ccx qubits[8], qubits[55], qubits[56]; -ccx qubits[7], qubits[54], qubits[55]; -ccx qubits[6], qubits[53], qubits[54]; -ccx qubits[5], qubits[52], qubits[53]; -ccx qubits[4], qubits[51], qubits[52]; -ccx qubits[3], qubits[50], qubits[51]; -ccx qubits[2], qubits[49], qubits[50]; -ccx qubits[0], qubits[1], qubits[49]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +cz qubits[92], qubits[93]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -145,287 +145,287 @@ x qubits[44]; x qubits[46]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -ccx qubits[0], qubits[1], qubits[49]; -ccx qubits[2], qubits[49], qubits[50]; -ccx qubits[3], qubits[50], qubits[51]; -ccx qubits[4], qubits[51], qubits[52]; -ccx qubits[5], qubits[52], qubits[53]; -ccx qubits[6], qubits[53], qubits[54]; -ccx qubits[7], qubits[54], qubits[55]; -ccx qubits[8], qubits[55], qubits[56]; -ccx qubits[9], qubits[56], qubits[57]; -ccx qubits[10], qubits[57], qubits[58]; -ccx qubits[11], qubits[58], qubits[59]; -ccx qubits[12], qubits[59], qubits[60]; -ccx qubits[13], qubits[60], qubits[61]; -ccx qubits[14], qubits[61], qubits[62]; -ccx qubits[15], qubits[62], qubits[63]; -ccx qubits[16], qubits[63], qubits[64]; -ccx qubits[17], qubits[64], qubits[65]; -ccx qubits[18], qubits[65], qubits[66]; -ccx qubits[19], qubits[66], qubits[67]; -ccx qubits[20], qubits[67], qubits[68]; -ccx qubits[21], qubits[68], qubits[69]; -ccx qubits[22], qubits[69], qubits[70]; -ccx qubits[23], qubits[70], qubits[71]; -ccx qubits[24], qubits[71], qubits[72]; -ccx qubits[25], qubits[72], qubits[73]; -ccx qubits[26], qubits[73], qubits[74]; -ccx qubits[27], qubits[74], qubits[75]; -ccx qubits[28], qubits[75], qubits[76]; -ccx qubits[29], qubits[76], qubits[77]; -ccx qubits[30], qubits[77], qubits[78]; -ccx qubits[31], qubits[78], qubits[79]; -ccx qubits[32], qubits[79], qubits[80]; -ccx qubits[33], qubits[80], qubits[81]; -ccx qubits[34], qubits[81], qubits[82]; -ccx qubits[35], qubits[82], qubits[83]; -ccx qubits[36], qubits[83], qubits[84]; -ccx qubits[37], qubits[84], qubits[85]; -ccx qubits[38], qubits[85], qubits[86]; -ccx qubits[39], qubits[86], qubits[87]; -ccx qubits[40], qubits[87], qubits[88]; -ccx qubits[41], qubits[88], qubits[89]; -ccx qubits[42], qubits[89], qubits[90]; -ccx qubits[43], qubits[90], qubits[91]; -ccx qubits[44], qubits[91], qubits[92]; -ccx qubits[45], qubits[92], qubits[93]; -ccx qubits[46], qubits[93], qubits[94]; -cz qubits[94], qubits[47]; -ccx qubits[46], qubits[93], qubits[94]; -ccx qubits[45], qubits[92], qubits[93]; -ccx qubits[44], qubits[91], qubits[92]; -ccx qubits[43], qubits[90], qubits[91]; -ccx qubits[42], qubits[89], qubits[90]; -ccx qubits[41], qubits[88], qubits[89]; -ccx qubits[40], qubits[87], qubits[88]; -ccx qubits[39], qubits[86], qubits[87]; -ccx qubits[38], qubits[85], qubits[86]; -ccx qubits[37], qubits[84], qubits[85]; -ccx qubits[36], qubits[83], qubits[84]; -ccx qubits[35], qubits[82], qubits[83]; -ccx qubits[34], qubits[81], qubits[82]; -ccx qubits[33], qubits[80], qubits[81]; -ccx qubits[32], qubits[79], qubits[80]; -ccx qubits[31], qubits[78], qubits[79]; -ccx qubits[30], qubits[77], qubits[78]; -ccx qubits[29], qubits[76], qubits[77]; -ccx qubits[28], qubits[75], qubits[76]; -ccx qubits[27], qubits[74], qubits[75]; -ccx qubits[26], qubits[73], qubits[74]; -ccx qubits[25], qubits[72], qubits[73]; -ccx qubits[24], qubits[71], qubits[72]; -ccx qubits[23], qubits[70], qubits[71]; -ccx qubits[22], qubits[69], qubits[70]; -ccx qubits[21], qubits[68], qubits[69]; -ccx qubits[20], qubits[67], qubits[68]; -ccx qubits[19], qubits[66], qubits[67]; -ccx qubits[18], qubits[65], qubits[66]; -ccx qubits[17], qubits[64], qubits[65]; -ccx qubits[16], qubits[63], qubits[64]; -ccx qubits[15], qubits[62], qubits[63]; -ccx qubits[14], qubits[61], qubits[62]; -ccx qubits[13], qubits[60], qubits[61]; -ccx qubits[12], qubits[59], qubits[60]; -ccx qubits[11], qubits[58], qubits[59]; -ccx qubits[10], qubits[57], qubits[58]; -ccx qubits[9], qubits[56], qubits[57]; -ccx qubits[8], qubits[55], qubits[56]; -ccx qubits[7], qubits[54], qubits[55]; -ccx qubits[6], qubits[53], qubits[54]; -ccx qubits[5], qubits[52], qubits[53]; -ccx qubits[4], qubits[51], qubits[52]; -ccx qubits[3], qubits[50], qubits[51]; -ccx qubits[2], qubits[49], qubits[50]; -ccx qubits[0], qubits[1], qubits[49]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +cz qubits[92], qubits[93]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -z qubits[48]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +z qubits[94]; diff --git a/benchmarks/all/OEGrover/48/post.hsl b/benchmarks/all/OEGrover/48/post.hsl index ef0c295d3..b778436e9 100644 --- a/benchmarks/all/OEGrover/48/post.hsl +++ b/benchmarks/all/OEGrover/48/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101100000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 23 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/48/post.lsta b/benchmarks/all/OEGrover/48/post.lsta deleted file mode 100644 index d7824fba6..000000000 --- a/benchmarks/all/OEGrover/48/post.lsta +++ /dev/null @@ -1,247 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 98) -> 95 -[49,1](97, 99) -> 96 -[50,1](100, 100) -> 97 -[50,1](101, 100) -> 98 -[50,1](102, 100) -> 99 -[51,1](103, 103) -> 100 -[51,1](104, 103) -> 101 -[51,1](105, 103) -> 102 -[52,1](106, 106) -> 103 -[52,1](107, 106) -> 104 -[52,1](108, 106) -> 105 -[53,1](109, 109) -> 106 -[53,1](110, 109) -> 107 -[53,1](111, 109) -> 108 -[54,1](112, 112) -> 109 -[54,1](113, 112) -> 110 -[54,1](114, 112) -> 111 -[55,1](115, 115) -> 112 -[55,1](116, 115) -> 113 -[55,1](117, 115) -> 114 -[56,1](118, 118) -> 115 -[56,1](119, 118) -> 116 -[56,1](120, 118) -> 117 -[57,1](121, 121) -> 118 -[57,1](122, 121) -> 119 -[57,1](123, 121) -> 120 -[58,1](124, 124) -> 121 -[58,1](125, 124) -> 122 -[58,1](126, 124) -> 123 -[59,1](127, 127) -> 124 -[59,1](128, 127) -> 125 -[59,1](129, 127) -> 126 -[60,1](130, 130) -> 127 -[60,1](131, 130) -> 128 -[60,1](132, 130) -> 129 -[61,1](133, 133) -> 130 -[61,1](134, 133) -> 131 -[61,1](135, 133) -> 132 -[62,1](136, 136) -> 133 -[62,1](137, 136) -> 134 -[62,1](138, 136) -> 135 -[63,1](139, 139) -> 136 -[63,1](140, 139) -> 137 -[63,1](141, 139) -> 138 -[64,1](142, 142) -> 139 -[64,1](143, 142) -> 140 -[64,1](144, 142) -> 141 -[65,1](145, 145) -> 142 -[65,1](146, 145) -> 143 -[65,1](147, 145) -> 144 -[66,1](148, 148) -> 145 -[66,1](149, 148) -> 146 -[66,1](150, 148) -> 147 -[67,1](151, 151) -> 148 -[67,1](152, 151) -> 149 -[67,1](153, 151) -> 150 -[68,1](154, 154) -> 151 -[68,1](155, 154) -> 152 -[68,1](156, 154) -> 153 -[69,1](157, 157) -> 154 -[69,1](158, 157) -> 155 -[69,1](159, 157) -> 156 -[70,1](160, 160) -> 157 -[70,1](161, 160) -> 158 -[70,1](162, 160) -> 159 -[71,1](163, 163) -> 160 -[71,1](164, 163) -> 161 -[71,1](165, 163) -> 162 -[72,1](166, 166) -> 163 -[72,1](167, 166) -> 164 -[72,1](168, 166) -> 165 -[73,1](169, 169) -> 166 -[73,1](170, 169) -> 167 -[73,1](171, 169) -> 168 -[74,1](172, 172) -> 169 -[74,1](173, 172) -> 170 -[74,1](174, 172) -> 171 -[75,1](175, 175) -> 172 -[75,1](176, 175) -> 173 -[75,1](177, 175) -> 174 -[76,1](178, 178) -> 175 -[76,1](179, 178) -> 176 -[76,1](180, 178) -> 177 -[77,1](181, 181) -> 178 -[77,1](182, 181) -> 179 -[77,1](183, 181) -> 180 -[78,1](184, 184) -> 181 -[78,1](185, 184) -> 182 -[78,1](186, 184) -> 183 -[79,1](187, 187) -> 184 -[79,1](188, 187) -> 185 -[79,1](189, 187) -> 186 -[80,1](190, 190) -> 187 -[80,1](191, 190) -> 188 -[80,1](192, 190) -> 189 -[81,1](193, 193) -> 190 -[81,1](194, 193) -> 191 -[81,1](195, 193) -> 192 -[82,1](196, 196) -> 193 -[82,1](197, 196) -> 194 -[82,1](198, 196) -> 195 -[83,1](199, 199) -> 196 -[83,1](200, 199) -> 197 -[83,1](201, 199) -> 198 -[84,1](202, 202) -> 199 -[84,1](203, 202) -> 200 -[84,1](204, 202) -> 201 -[85,1](205, 205) -> 202 -[85,1](206, 205) -> 203 -[85,1](207, 205) -> 204 -[86,1](208, 208) -> 205 -[86,1](209, 208) -> 206 -[86,1](210, 208) -> 207 -[87,1](211, 211) -> 208 -[87,1](212, 211) -> 209 -[87,1](213, 211) -> 210 -[88,1](214, 214) -> 211 -[88,1](215, 214) -> 212 -[88,1](216, 214) -> 213 -[89,1](217, 217) -> 214 -[89,1](218, 217) -> 215 -[89,1](219, 217) -> 216 -[90,1](220, 220) -> 217 -[90,1](221, 220) -> 218 -[90,1](222, 220) -> 219 -[91,1](223, 223) -> 220 -[91,1](224, 223) -> 221 -[91,1](225, 223) -> 222 -[92,1](226, 226) -> 223 -[92,1](227, 226) -> 224 -[92,1](228, 226) -> 225 -[93,1](229, 229) -> 226 -[93,1](230, 229) -> 227 -[93,1](231, 229) -> 228 -[94,1](232, 232) -> 229 -[94,1](233, 232) -> 230 -[94,1](234, 232) -> 231 -[95,1](235, 235) -> 232 -[95,1](236, 235) -> 233 -[95,1](237, 235) -> 234 -[96,1](238, 238) -> 235 -[96,1](239, 238) -> 236 -[96,1](240, 238) -> 237 -[p1,1] -> 238 -[p2,1] -> 239 -[p3,1] -> 240 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/48/pre.hsl b/benchmarks/all/OEGrover/48/pre.hsl index b5d3f7a43..c80aeb854 100644 --- a/benchmarks/all/OEGrover/48/pre.hsl +++ b/benchmarks/all/OEGrover/48/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 23 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 281474976710655 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/48/pre.lsta b/benchmarks/all/OEGrover/48/pre.lsta deleted file mode 100644 index e2855dc10..000000000 --- a/benchmarks/all/OEGrover/48/pre.lsta +++ /dev/null @@ -1,251 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 98) -> 95 -[49,1](97, 99) -> 96 -[50,1](100, 100) -> 97 -[50,1](101, 100) -> 98 -[50,1](102, 100) -> 99 -[51,1](103, 103) -> 100 -[51,1](104, 103) -> 101 -[51,1](105, 103) -> 102 -[52,1](106, 106) -> 103 -[52,1](107, 106) -> 104 -[52,1](108, 106) -> 105 -[53,1](109, 109) -> 106 -[53,1](110, 109) -> 107 -[53,1](111, 109) -> 108 -[54,1](112, 112) -> 109 -[54,1](113, 112) -> 110 -[54,1](114, 112) -> 111 -[55,1](115, 115) -> 112 -[55,1](116, 115) -> 113 -[55,1](117, 115) -> 114 -[56,1](118, 118) -> 115 -[56,1](119, 118) -> 116 -[56,1](120, 118) -> 117 -[57,1](121, 121) -> 118 -[57,1](122, 121) -> 119 -[57,1](123, 121) -> 120 -[58,1](124, 124) -> 121 -[58,1](125, 124) -> 122 -[58,1](126, 124) -> 123 -[59,1](127, 127) -> 124 -[59,1](128, 127) -> 125 -[59,1](129, 127) -> 126 -[60,1](130, 130) -> 127 -[60,1](131, 130) -> 128 -[60,1](132, 130) -> 129 -[61,1](133, 133) -> 130 -[61,1](134, 133) -> 131 -[61,1](135, 133) -> 132 -[62,1](136, 136) -> 133 -[62,1](137, 136) -> 134 -[62,1](138, 136) -> 135 -[63,1](139, 139) -> 136 -[63,1](140, 139) -> 137 -[63,1](141, 139) -> 138 -[64,1](142, 142) -> 139 -[64,1](143, 142) -> 140 -[64,1](144, 142) -> 141 -[65,1](145, 145) -> 142 -[65,1](146, 145) -> 143 -[65,1](147, 145) -> 144 -[66,1](148, 148) -> 145 -[66,1](149, 148) -> 146 -[66,1](150, 148) -> 147 -[67,1](151, 151) -> 148 -[67,1](152, 151) -> 149 -[67,1](153, 151) -> 150 -[68,1](154, 154) -> 151 -[68,1](155, 154) -> 152 -[68,1](156, 154) -> 153 -[69,1](157, 157) -> 154 -[69,1](158, 157) -> 155 -[69,1](159, 157) -> 156 -[70,1](160, 160) -> 157 -[70,1](161, 160) -> 158 -[70,1](162, 160) -> 159 -[71,1](163, 163) -> 160 -[71,1](164, 163) -> 161 -[71,1](165, 163) -> 162 -[72,1](166, 166) -> 163 -[72,1](167, 166) -> 164 -[72,1](168, 166) -> 165 -[73,1](169, 169) -> 166 -[73,1](170, 169) -> 167 -[73,1](171, 169) -> 168 -[74,1](172, 172) -> 169 -[74,1](173, 172) -> 170 -[74,1](174, 172) -> 171 -[75,1](175, 175) -> 172 -[75,1](176, 175) -> 173 -[75,1](177, 175) -> 174 -[76,1](178, 178) -> 175 -[76,1](179, 178) -> 176 -[76,1](180, 178) -> 177 -[77,1](181, 181) -> 178 -[77,1](182, 181) -> 179 -[77,1](183, 181) -> 180 -[78,1](184, 184) -> 181 -[78,1](185, 184) -> 182 -[78,1](186, 184) -> 183 -[79,1](187, 187) -> 184 -[79,1](188, 187) -> 185 -[79,1](189, 187) -> 186 -[80,1](190, 190) -> 187 -[80,1](191, 190) -> 188 -[80,1](192, 190) -> 189 -[81,1](193, 193) -> 190 -[81,1](194, 193) -> 191 -[81,1](195, 193) -> 192 -[82,1](196, 196) -> 193 -[82,1](197, 196) -> 194 -[82,1](198, 196) -> 195 -[83,1](199, 199) -> 196 -[83,1](200, 199) -> 197 -[83,1](201, 199) -> 198 -[84,1](202, 202) -> 199 -[84,1](203, 202) -> 200 -[84,1](204, 202) -> 201 -[85,1](205, 205) -> 202 -[85,1](206, 205) -> 203 -[85,1](207, 205) -> 204 -[86,1](208, 208) -> 205 -[86,1](209, 208) -> 206 -[86,1](210, 208) -> 207 -[87,1](211, 211) -> 208 -[87,1](212, 211) -> 209 -[87,1](213, 211) -> 210 -[88,1](214, 214) -> 211 -[88,1](215, 214) -> 212 -[88,1](216, 214) -> 213 -[89,1](217, 217) -> 214 -[89,1](218, 217) -> 215 -[89,1](219, 217) -> 216 -[90,1](220, 220) -> 217 -[90,1](221, 220) -> 218 -[90,1](222, 220) -> 219 -[91,1](223, 223) -> 220 -[91,1](224, 223) -> 221 -[91,1](225, 223) -> 222 -[92,1](226, 226) -> 223 -[92,1](227, 226) -> 224 -[92,1](228, 226) -> 225 -[93,1](229, 229) -> 226 -[93,1](230, 229) -> 227 -[93,1](231, 229) -> 228 -[94,1](232, 232) -> 229 -[94,1](233, 232) -> 230 -[94,1](234, 232) -> 231 -[95,1](235, 235) -> 232 -[95,1](236, 235) -> 233 -[95,1](237, 235) -> 234 -[96,1](238, 238) -> 235 -[96,1](239, 238) -> 236 -[96,1](240, 238) -> 237 -[c0,1] -> 238 -[a,1] -> 239 -[b,1] -> 240 -Constraints -281474976710655 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/49/circuit.qasm b/benchmarks/all/OEGrover/49/circuit.qasm index 1ef3fa3eb..50e7bd1d1 100644 --- a/benchmarks/all/OEGrover/49/circuit.qasm +++ b/benchmarks/all/OEGrover/49/circuit.qasm @@ -1,127 +1,127 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[98]; +qreg qubits[97]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -ccx qubits[0], qubits[1], qubits[50]; -ccx qubits[2], qubits[50], qubits[51]; -ccx qubits[3], qubits[51], qubits[52]; -ccx qubits[4], qubits[52], qubits[53]; -ccx qubits[5], qubits[53], qubits[54]; -ccx qubits[6], qubits[54], qubits[55]; -ccx qubits[7], qubits[55], qubits[56]; -ccx qubits[8], qubits[56], qubits[57]; -ccx qubits[9], qubits[57], qubits[58]; -ccx qubits[10], qubits[58], qubits[59]; -ccx qubits[11], qubits[59], qubits[60]; -ccx qubits[12], qubits[60], qubits[61]; -ccx qubits[13], qubits[61], qubits[62]; -ccx qubits[14], qubits[62], qubits[63]; -ccx qubits[15], qubits[63], qubits[64]; -ccx qubits[16], qubits[64], qubits[65]; -ccx qubits[17], qubits[65], qubits[66]; -ccx qubits[18], qubits[66], qubits[67]; -ccx qubits[19], qubits[67], qubits[68]; -ccx qubits[20], qubits[68], qubits[69]; -ccx qubits[21], qubits[69], qubits[70]; -ccx qubits[22], qubits[70], qubits[71]; -ccx qubits[23], qubits[71], qubits[72]; -ccx qubits[24], qubits[72], qubits[73]; -ccx qubits[25], qubits[73], qubits[74]; -ccx qubits[26], qubits[74], qubits[75]; -ccx qubits[27], qubits[75], qubits[76]; -ccx qubits[28], qubits[76], qubits[77]; -ccx qubits[29], qubits[77], qubits[78]; -ccx qubits[30], qubits[78], qubits[79]; -ccx qubits[31], qubits[79], qubits[80]; -ccx qubits[32], qubits[80], qubits[81]; -ccx qubits[33], qubits[81], qubits[82]; -ccx qubits[34], qubits[82], qubits[83]; -ccx qubits[35], qubits[83], qubits[84]; -ccx qubits[36], qubits[84], qubits[85]; -ccx qubits[37], qubits[85], qubits[86]; -ccx qubits[38], qubits[86], qubits[87]; -ccx qubits[39], qubits[87], qubits[88]; -ccx qubits[40], qubits[88], qubits[89]; -ccx qubits[41], qubits[89], qubits[90]; -ccx qubits[42], qubits[90], qubits[91]; -ccx qubits[43], qubits[91], qubits[92]; -ccx qubits[44], qubits[92], qubits[93]; -ccx qubits[45], qubits[93], qubits[94]; -ccx qubits[46], qubits[94], qubits[95]; -ccx qubits[47], qubits[95], qubits[96]; -cz qubits[96], qubits[48]; -ccx qubits[47], qubits[95], qubits[96]; -ccx qubits[46], qubits[94], qubits[95]; -ccx qubits[45], qubits[93], qubits[94]; -ccx qubits[44], qubits[92], qubits[93]; -ccx qubits[43], qubits[91], qubits[92]; -ccx qubits[42], qubits[90], qubits[91]; -ccx qubits[41], qubits[89], qubits[90]; -ccx qubits[40], qubits[88], qubits[89]; -ccx qubits[39], qubits[87], qubits[88]; -ccx qubits[38], qubits[86], qubits[87]; -ccx qubits[37], qubits[85], qubits[86]; -ccx qubits[36], qubits[84], qubits[85]; -ccx qubits[35], qubits[83], qubits[84]; -ccx qubits[34], qubits[82], qubits[83]; -ccx qubits[33], qubits[81], qubits[82]; -ccx qubits[32], qubits[80], qubits[81]; -ccx qubits[31], qubits[79], qubits[80]; -ccx qubits[30], qubits[78], qubits[79]; -ccx qubits[29], qubits[77], qubits[78]; -ccx qubits[28], qubits[76], qubits[77]; -ccx qubits[27], qubits[75], qubits[76]; -ccx qubits[26], qubits[74], qubits[75]; -ccx qubits[25], qubits[73], qubits[74]; -ccx qubits[24], qubits[72], qubits[73]; -ccx qubits[23], qubits[71], qubits[72]; -ccx qubits[22], qubits[70], qubits[71]; -ccx qubits[21], qubits[69], qubits[70]; -ccx qubits[20], qubits[68], qubits[69]; -ccx qubits[19], qubits[67], qubits[68]; -ccx qubits[18], qubits[66], qubits[67]; -ccx qubits[17], qubits[65], qubits[66]; -ccx qubits[16], qubits[64], qubits[65]; -ccx qubits[15], qubits[63], qubits[64]; -ccx qubits[14], qubits[62], qubits[63]; -ccx qubits[13], qubits[61], qubits[62]; -ccx qubits[12], qubits[60], qubits[61]; -ccx qubits[11], qubits[59], qubits[60]; -ccx qubits[10], qubits[58], qubits[59]; -ccx qubits[9], qubits[57], qubits[58]; -ccx qubits[8], qubits[56], qubits[57]; -ccx qubits[7], qubits[55], qubits[56]; -ccx qubits[6], qubits[54], qubits[55]; -ccx qubits[5], qubits[53], qubits[54]; -ccx qubits[4], qubits[52], qubits[53]; -ccx qubits[3], qubits[51], qubits[52]; -ccx qubits[2], qubits[50], qubits[51]; -ccx qubits[0], qubits[1], qubits[50]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +cz qubits[94], qubits[95]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -149,293 +149,293 @@ x qubits[46]; x qubits[48]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; -ccx qubits[0], qubits[1], qubits[50]; -ccx qubits[2], qubits[50], qubits[51]; -ccx qubits[3], qubits[51], qubits[52]; -ccx qubits[4], qubits[52], qubits[53]; -ccx qubits[5], qubits[53], qubits[54]; -ccx qubits[6], qubits[54], qubits[55]; -ccx qubits[7], qubits[55], qubits[56]; -ccx qubits[8], qubits[56], qubits[57]; -ccx qubits[9], qubits[57], qubits[58]; -ccx qubits[10], qubits[58], qubits[59]; -ccx qubits[11], qubits[59], qubits[60]; -ccx qubits[12], qubits[60], qubits[61]; -ccx qubits[13], qubits[61], qubits[62]; -ccx qubits[14], qubits[62], qubits[63]; -ccx qubits[15], qubits[63], qubits[64]; -ccx qubits[16], qubits[64], qubits[65]; -ccx qubits[17], qubits[65], qubits[66]; -ccx qubits[18], qubits[66], qubits[67]; -ccx qubits[19], qubits[67], qubits[68]; -ccx qubits[20], qubits[68], qubits[69]; -ccx qubits[21], qubits[69], qubits[70]; -ccx qubits[22], qubits[70], qubits[71]; -ccx qubits[23], qubits[71], qubits[72]; -ccx qubits[24], qubits[72], qubits[73]; -ccx qubits[25], qubits[73], qubits[74]; -ccx qubits[26], qubits[74], qubits[75]; -ccx qubits[27], qubits[75], qubits[76]; -ccx qubits[28], qubits[76], qubits[77]; -ccx qubits[29], qubits[77], qubits[78]; -ccx qubits[30], qubits[78], qubits[79]; -ccx qubits[31], qubits[79], qubits[80]; -ccx qubits[32], qubits[80], qubits[81]; -ccx qubits[33], qubits[81], qubits[82]; -ccx qubits[34], qubits[82], qubits[83]; -ccx qubits[35], qubits[83], qubits[84]; -ccx qubits[36], qubits[84], qubits[85]; -ccx qubits[37], qubits[85], qubits[86]; -ccx qubits[38], qubits[86], qubits[87]; -ccx qubits[39], qubits[87], qubits[88]; -ccx qubits[40], qubits[88], qubits[89]; -ccx qubits[41], qubits[89], qubits[90]; -ccx qubits[42], qubits[90], qubits[91]; -ccx qubits[43], qubits[91], qubits[92]; -ccx qubits[44], qubits[92], qubits[93]; -ccx qubits[45], qubits[93], qubits[94]; -ccx qubits[46], qubits[94], qubits[95]; -ccx qubits[47], qubits[95], qubits[96]; -cz qubits[96], qubits[48]; -ccx qubits[47], qubits[95], qubits[96]; -ccx qubits[46], qubits[94], qubits[95]; -ccx qubits[45], qubits[93], qubits[94]; -ccx qubits[44], qubits[92], qubits[93]; -ccx qubits[43], qubits[91], qubits[92]; -ccx qubits[42], qubits[90], qubits[91]; -ccx qubits[41], qubits[89], qubits[90]; -ccx qubits[40], qubits[88], qubits[89]; -ccx qubits[39], qubits[87], qubits[88]; -ccx qubits[38], qubits[86], qubits[87]; -ccx qubits[37], qubits[85], qubits[86]; -ccx qubits[36], qubits[84], qubits[85]; -ccx qubits[35], qubits[83], qubits[84]; -ccx qubits[34], qubits[82], qubits[83]; -ccx qubits[33], qubits[81], qubits[82]; -ccx qubits[32], qubits[80], qubits[81]; -ccx qubits[31], qubits[79], qubits[80]; -ccx qubits[30], qubits[78], qubits[79]; -ccx qubits[29], qubits[77], qubits[78]; -ccx qubits[28], qubits[76], qubits[77]; -ccx qubits[27], qubits[75], qubits[76]; -ccx qubits[26], qubits[74], qubits[75]; -ccx qubits[25], qubits[73], qubits[74]; -ccx qubits[24], qubits[72], qubits[73]; -ccx qubits[23], qubits[71], qubits[72]; -ccx qubits[22], qubits[70], qubits[71]; -ccx qubits[21], qubits[69], qubits[70]; -ccx qubits[20], qubits[68], qubits[69]; -ccx qubits[19], qubits[67], qubits[68]; -ccx qubits[18], qubits[66], qubits[67]; -ccx qubits[17], qubits[65], qubits[66]; -ccx qubits[16], qubits[64], qubits[65]; -ccx qubits[15], qubits[63], qubits[64]; -ccx qubits[14], qubits[62], qubits[63]; -ccx qubits[13], qubits[61], qubits[62]; -ccx qubits[12], qubits[60], qubits[61]; -ccx qubits[11], qubits[59], qubits[60]; -ccx qubits[10], qubits[58], qubits[59]; -ccx qubits[9], qubits[57], qubits[58]; -ccx qubits[8], qubits[56], qubits[57]; -ccx qubits[7], qubits[55], qubits[56]; -ccx qubits[6], qubits[54], qubits[55]; -ccx qubits[5], qubits[53], qubits[54]; -ccx qubits[4], qubits[52], qubits[53]; -ccx qubits[3], qubits[51], qubits[52]; -ccx qubits[2], qubits[50], qubits[51]; -ccx qubits[0], qubits[1], qubits[50]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +cz qubits[94], qubits[95]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; +x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; -z qubits[49]; +h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +z qubits[96]; diff --git a/benchmarks/all/OEGrover/49/post.hsl b/benchmarks/all/OEGrover/49/post.hsl index fcfcaf8ac..ef9b88e34 100644 --- a/benchmarks/all/OEGrover/49/post.hsl +++ b/benchmarks/all/OEGrover/49/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 23 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/49/post.lsta b/benchmarks/all/OEGrover/49/post.lsta deleted file mode 100644 index 9202616a3..000000000 --- a/benchmarks/all/OEGrover/49/post.lsta +++ /dev/null @@ -1,252 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 100) -> 97 -[50,1](99, 101) -> 98 -[51,1](102, 102) -> 99 -[51,1](103, 102) -> 100 -[51,1](104, 102) -> 101 -[52,1](105, 105) -> 102 -[52,1](106, 105) -> 103 -[52,1](107, 105) -> 104 -[53,1](108, 108) -> 105 -[53,1](109, 108) -> 106 -[53,1](110, 108) -> 107 -[54,1](111, 111) -> 108 -[54,1](112, 111) -> 109 -[54,1](113, 111) -> 110 -[55,1](114, 114) -> 111 -[55,1](115, 114) -> 112 -[55,1](116, 114) -> 113 -[56,1](117, 117) -> 114 -[56,1](118, 117) -> 115 -[56,1](119, 117) -> 116 -[57,1](120, 120) -> 117 -[57,1](121, 120) -> 118 -[57,1](122, 120) -> 119 -[58,1](123, 123) -> 120 -[58,1](124, 123) -> 121 -[58,1](125, 123) -> 122 -[59,1](126, 126) -> 123 -[59,1](127, 126) -> 124 -[59,1](128, 126) -> 125 -[60,1](129, 129) -> 126 -[60,1](130, 129) -> 127 -[60,1](131, 129) -> 128 -[61,1](132, 132) -> 129 -[61,1](133, 132) -> 130 -[61,1](134, 132) -> 131 -[62,1](135, 135) -> 132 -[62,1](136, 135) -> 133 -[62,1](137, 135) -> 134 -[63,1](138, 138) -> 135 -[63,1](139, 138) -> 136 -[63,1](140, 138) -> 137 -[64,1](141, 141) -> 138 -[64,1](142, 141) -> 139 -[64,1](143, 141) -> 140 -[65,1](144, 144) -> 141 -[65,1](145, 144) -> 142 -[65,1](146, 144) -> 143 -[66,1](147, 147) -> 144 -[66,1](148, 147) -> 145 -[66,1](149, 147) -> 146 -[67,1](150, 150) -> 147 -[67,1](151, 150) -> 148 -[67,1](152, 150) -> 149 -[68,1](153, 153) -> 150 -[68,1](154, 153) -> 151 -[68,1](155, 153) -> 152 -[69,1](156, 156) -> 153 -[69,1](157, 156) -> 154 -[69,1](158, 156) -> 155 -[70,1](159, 159) -> 156 -[70,1](160, 159) -> 157 -[70,1](161, 159) -> 158 -[71,1](162, 162) -> 159 -[71,1](163, 162) -> 160 -[71,1](164, 162) -> 161 -[72,1](165, 165) -> 162 -[72,1](166, 165) -> 163 -[72,1](167, 165) -> 164 -[73,1](168, 168) -> 165 -[73,1](169, 168) -> 166 -[73,1](170, 168) -> 167 -[74,1](171, 171) -> 168 -[74,1](172, 171) -> 169 -[74,1](173, 171) -> 170 -[75,1](174, 174) -> 171 -[75,1](175, 174) -> 172 -[75,1](176, 174) -> 173 -[76,1](177, 177) -> 174 -[76,1](178, 177) -> 175 -[76,1](179, 177) -> 176 -[77,1](180, 180) -> 177 -[77,1](181, 180) -> 178 -[77,1](182, 180) -> 179 -[78,1](183, 183) -> 180 -[78,1](184, 183) -> 181 -[78,1](185, 183) -> 182 -[79,1](186, 186) -> 183 -[79,1](187, 186) -> 184 -[79,1](188, 186) -> 185 -[80,1](189, 189) -> 186 -[80,1](190, 189) -> 187 -[80,1](191, 189) -> 188 -[81,1](192, 192) -> 189 -[81,1](193, 192) -> 190 -[81,1](194, 192) -> 191 -[82,1](195, 195) -> 192 -[82,1](196, 195) -> 193 -[82,1](197, 195) -> 194 -[83,1](198, 198) -> 195 -[83,1](199, 198) -> 196 -[83,1](200, 198) -> 197 -[84,1](201, 201) -> 198 -[84,1](202, 201) -> 199 -[84,1](203, 201) -> 200 -[85,1](204, 204) -> 201 -[85,1](205, 204) -> 202 -[85,1](206, 204) -> 203 -[86,1](207, 207) -> 204 -[86,1](208, 207) -> 205 -[86,1](209, 207) -> 206 -[87,1](210, 210) -> 207 -[87,1](211, 210) -> 208 -[87,1](212, 210) -> 209 -[88,1](213, 213) -> 210 -[88,1](214, 213) -> 211 -[88,1](215, 213) -> 212 -[89,1](216, 216) -> 213 -[89,1](217, 216) -> 214 -[89,1](218, 216) -> 215 -[90,1](219, 219) -> 216 -[90,1](220, 219) -> 217 -[90,1](221, 219) -> 218 -[91,1](222, 222) -> 219 -[91,1](223, 222) -> 220 -[91,1](224, 222) -> 221 -[92,1](225, 225) -> 222 -[92,1](226, 225) -> 223 -[92,1](227, 225) -> 224 -[93,1](228, 228) -> 225 -[93,1](229, 228) -> 226 -[93,1](230, 228) -> 227 -[94,1](231, 231) -> 228 -[94,1](232, 231) -> 229 -[94,1](233, 231) -> 230 -[95,1](234, 234) -> 231 -[95,1](235, 234) -> 232 -[95,1](236, 234) -> 233 -[96,1](237, 237) -> 234 -[96,1](238, 237) -> 235 -[96,1](239, 237) -> 236 -[97,1](240, 240) -> 237 -[97,1](241, 240) -> 238 -[97,1](242, 240) -> 239 -[98,1](243, 243) -> 240 -[98,1](244, 243) -> 241 -[98,1](245, 243) -> 242 -[p1,1] -> 243 -[p2,1] -> 244 -[p3,1] -> 245 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/49/pre.hsl b/benchmarks/all/OEGrover/49/pre.hsl index 56ce4379b..90d5886cc 100644 --- a/benchmarks/all/OEGrover/49/pre.hsl +++ b/benchmarks/all/OEGrover/49/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 23 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 562949953421311 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/49/pre.lsta b/benchmarks/all/OEGrover/49/pre.lsta deleted file mode 100644 index ecb993f23..000000000 --- a/benchmarks/all/OEGrover/49/pre.lsta +++ /dev/null @@ -1,256 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 100) -> 97 -[50,1](99, 101) -> 98 -[51,1](102, 102) -> 99 -[51,1](103, 102) -> 100 -[51,1](104, 102) -> 101 -[52,1](105, 105) -> 102 -[52,1](106, 105) -> 103 -[52,1](107, 105) -> 104 -[53,1](108, 108) -> 105 -[53,1](109, 108) -> 106 -[53,1](110, 108) -> 107 -[54,1](111, 111) -> 108 -[54,1](112, 111) -> 109 -[54,1](113, 111) -> 110 -[55,1](114, 114) -> 111 -[55,1](115, 114) -> 112 -[55,1](116, 114) -> 113 -[56,1](117, 117) -> 114 -[56,1](118, 117) -> 115 -[56,1](119, 117) -> 116 -[57,1](120, 120) -> 117 -[57,1](121, 120) -> 118 -[57,1](122, 120) -> 119 -[58,1](123, 123) -> 120 -[58,1](124, 123) -> 121 -[58,1](125, 123) -> 122 -[59,1](126, 126) -> 123 -[59,1](127, 126) -> 124 -[59,1](128, 126) -> 125 -[60,1](129, 129) -> 126 -[60,1](130, 129) -> 127 -[60,1](131, 129) -> 128 -[61,1](132, 132) -> 129 -[61,1](133, 132) -> 130 -[61,1](134, 132) -> 131 -[62,1](135, 135) -> 132 -[62,1](136, 135) -> 133 -[62,1](137, 135) -> 134 -[63,1](138, 138) -> 135 -[63,1](139, 138) -> 136 -[63,1](140, 138) -> 137 -[64,1](141, 141) -> 138 -[64,1](142, 141) -> 139 -[64,1](143, 141) -> 140 -[65,1](144, 144) -> 141 -[65,1](145, 144) -> 142 -[65,1](146, 144) -> 143 -[66,1](147, 147) -> 144 -[66,1](148, 147) -> 145 -[66,1](149, 147) -> 146 -[67,1](150, 150) -> 147 -[67,1](151, 150) -> 148 -[67,1](152, 150) -> 149 -[68,1](153, 153) -> 150 -[68,1](154, 153) -> 151 -[68,1](155, 153) -> 152 -[69,1](156, 156) -> 153 -[69,1](157, 156) -> 154 -[69,1](158, 156) -> 155 -[70,1](159, 159) -> 156 -[70,1](160, 159) -> 157 -[70,1](161, 159) -> 158 -[71,1](162, 162) -> 159 -[71,1](163, 162) -> 160 -[71,1](164, 162) -> 161 -[72,1](165, 165) -> 162 -[72,1](166, 165) -> 163 -[72,1](167, 165) -> 164 -[73,1](168, 168) -> 165 -[73,1](169, 168) -> 166 -[73,1](170, 168) -> 167 -[74,1](171, 171) -> 168 -[74,1](172, 171) -> 169 -[74,1](173, 171) -> 170 -[75,1](174, 174) -> 171 -[75,1](175, 174) -> 172 -[75,1](176, 174) -> 173 -[76,1](177, 177) -> 174 -[76,1](178, 177) -> 175 -[76,1](179, 177) -> 176 -[77,1](180, 180) -> 177 -[77,1](181, 180) -> 178 -[77,1](182, 180) -> 179 -[78,1](183, 183) -> 180 -[78,1](184, 183) -> 181 -[78,1](185, 183) -> 182 -[79,1](186, 186) -> 183 -[79,1](187, 186) -> 184 -[79,1](188, 186) -> 185 -[80,1](189, 189) -> 186 -[80,1](190, 189) -> 187 -[80,1](191, 189) -> 188 -[81,1](192, 192) -> 189 -[81,1](193, 192) -> 190 -[81,1](194, 192) -> 191 -[82,1](195, 195) -> 192 -[82,1](196, 195) -> 193 -[82,1](197, 195) -> 194 -[83,1](198, 198) -> 195 -[83,1](199, 198) -> 196 -[83,1](200, 198) -> 197 -[84,1](201, 201) -> 198 -[84,1](202, 201) -> 199 -[84,1](203, 201) -> 200 -[85,1](204, 204) -> 201 -[85,1](205, 204) -> 202 -[85,1](206, 204) -> 203 -[86,1](207, 207) -> 204 -[86,1](208, 207) -> 205 -[86,1](209, 207) -> 206 -[87,1](210, 210) -> 207 -[87,1](211, 210) -> 208 -[87,1](212, 210) -> 209 -[88,1](213, 213) -> 210 -[88,1](214, 213) -> 211 -[88,1](215, 213) -> 212 -[89,1](216, 216) -> 213 -[89,1](217, 216) -> 214 -[89,1](218, 216) -> 215 -[90,1](219, 219) -> 216 -[90,1](220, 219) -> 217 -[90,1](221, 219) -> 218 -[91,1](222, 222) -> 219 -[91,1](223, 222) -> 220 -[91,1](224, 222) -> 221 -[92,1](225, 225) -> 222 -[92,1](226, 225) -> 223 -[92,1](227, 225) -> 224 -[93,1](228, 228) -> 225 -[93,1](229, 228) -> 226 -[93,1](230, 228) -> 227 -[94,1](231, 231) -> 228 -[94,1](232, 231) -> 229 -[94,1](233, 231) -> 230 -[95,1](234, 234) -> 231 -[95,1](235, 234) -> 232 -[95,1](236, 234) -> 233 -[96,1](237, 237) -> 234 -[96,1](238, 237) -> 235 -[96,1](239, 237) -> 236 -[97,1](240, 240) -> 237 -[97,1](241, 240) -> 238 -[97,1](242, 240) -> 239 -[98,1](243, 243) -> 240 -[98,1](244, 243) -> 241 -[98,1](245, 243) -> 242 -[c0,1] -> 243 -[a,1] -> 244 -[b,1] -> 245 -Constraints -562949953421311 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/50/circuit.qasm b/benchmarks/all/OEGrover/50/circuit.qasm index c15a1d8c8..e0927884d 100644 --- a/benchmarks/all/OEGrover/50/circuit.qasm +++ b/benchmarks/all/OEGrover/50/circuit.qasm @@ -1,129 +1,129 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[100]; +qreg qubits[99]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -ccx qubits[0], qubits[1], qubits[51]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[48], qubits[97], qubits[98]; -cz qubits[98], qubits[49]; -ccx qubits[48], qubits[97], qubits[98]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[0], qubits[1], qubits[51]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +cz qubits[96], qubits[97]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -151,299 +151,299 @@ x qubits[46]; x qubits[48]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -ccx qubits[0], qubits[1], qubits[51]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[48], qubits[97], qubits[98]; -cz qubits[98], qubits[49]; -ccx qubits[48], qubits[97], qubits[98]; -ccx qubits[47], qubits[96], qubits[97]; -ccx qubits[46], qubits[95], qubits[96]; -ccx qubits[45], qubits[94], qubits[95]; -ccx qubits[44], qubits[93], qubits[94]; -ccx qubits[43], qubits[92], qubits[93]; -ccx qubits[42], qubits[91], qubits[92]; -ccx qubits[41], qubits[90], qubits[91]; -ccx qubits[40], qubits[89], qubits[90]; -ccx qubits[39], qubits[88], qubits[89]; -ccx qubits[38], qubits[87], qubits[88]; -ccx qubits[37], qubits[86], qubits[87]; -ccx qubits[36], qubits[85], qubits[86]; -ccx qubits[35], qubits[84], qubits[85]; -ccx qubits[34], qubits[83], qubits[84]; -ccx qubits[33], qubits[82], qubits[83]; -ccx qubits[32], qubits[81], qubits[82]; -ccx qubits[31], qubits[80], qubits[81]; -ccx qubits[30], qubits[79], qubits[80]; -ccx qubits[29], qubits[78], qubits[79]; -ccx qubits[28], qubits[77], qubits[78]; -ccx qubits[27], qubits[76], qubits[77]; -ccx qubits[26], qubits[75], qubits[76]; -ccx qubits[25], qubits[74], qubits[75]; -ccx qubits[24], qubits[73], qubits[74]; -ccx qubits[23], qubits[72], qubits[73]; -ccx qubits[22], qubits[71], qubits[72]; -ccx qubits[21], qubits[70], qubits[71]; -ccx qubits[20], qubits[69], qubits[70]; -ccx qubits[19], qubits[68], qubits[69]; -ccx qubits[18], qubits[67], qubits[68]; -ccx qubits[17], qubits[66], qubits[67]; -ccx qubits[16], qubits[65], qubits[66]; -ccx qubits[15], qubits[64], qubits[65]; -ccx qubits[14], qubits[63], qubits[64]; -ccx qubits[13], qubits[62], qubits[63]; -ccx qubits[12], qubits[61], qubits[62]; -ccx qubits[11], qubits[60], qubits[61]; -ccx qubits[10], qubits[59], qubits[60]; -ccx qubits[9], qubits[58], qubits[59]; -ccx qubits[8], qubits[57], qubits[58]; -ccx qubits[7], qubits[56], qubits[57]; -ccx qubits[6], qubits[55], qubits[56]; -ccx qubits[5], qubits[54], qubits[55]; -ccx qubits[4], qubits[53], qubits[54]; -ccx qubits[3], qubits[52], qubits[53]; -ccx qubits[2], qubits[51], qubits[52]; -ccx qubits[0], qubits[1], qubits[51]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +cz qubits[96], qubits[97]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -z qubits[50]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +z qubits[98]; diff --git a/benchmarks/all/OEGrover/50/post.hsl b/benchmarks/all/OEGrover/50/post.hsl index 4250119f4..74c7a84a9 100644 --- a/benchmarks/all/OEGrover/50/post.hsl +++ b/benchmarks/all/OEGrover/50/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 24 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/50/post.lsta b/benchmarks/all/OEGrover/50/post.lsta deleted file mode 100644 index 3a7684198..000000000 --- a/benchmarks/all/OEGrover/50/post.lsta +++ /dev/null @@ -1,257 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 102) -> 99 -[51,1](101, 103) -> 100 -[52,1](104, 104) -> 101 -[52,1](105, 104) -> 102 -[52,1](106, 104) -> 103 -[53,1](107, 107) -> 104 -[53,1](108, 107) -> 105 -[53,1](109, 107) -> 106 -[54,1](110, 110) -> 107 -[54,1](111, 110) -> 108 -[54,1](112, 110) -> 109 -[55,1](113, 113) -> 110 -[55,1](114, 113) -> 111 -[55,1](115, 113) -> 112 -[56,1](116, 116) -> 113 -[56,1](117, 116) -> 114 -[56,1](118, 116) -> 115 -[57,1](119, 119) -> 116 -[57,1](120, 119) -> 117 -[57,1](121, 119) -> 118 -[58,1](122, 122) -> 119 -[58,1](123, 122) -> 120 -[58,1](124, 122) -> 121 -[59,1](125, 125) -> 122 -[59,1](126, 125) -> 123 -[59,1](127, 125) -> 124 -[60,1](128, 128) -> 125 -[60,1](129, 128) -> 126 -[60,1](130, 128) -> 127 -[61,1](131, 131) -> 128 -[61,1](132, 131) -> 129 -[61,1](133, 131) -> 130 -[62,1](134, 134) -> 131 -[62,1](135, 134) -> 132 -[62,1](136, 134) -> 133 -[63,1](137, 137) -> 134 -[63,1](138, 137) -> 135 -[63,1](139, 137) -> 136 -[64,1](140, 140) -> 137 -[64,1](141, 140) -> 138 -[64,1](142, 140) -> 139 -[65,1](143, 143) -> 140 -[65,1](144, 143) -> 141 -[65,1](145, 143) -> 142 -[66,1](146, 146) -> 143 -[66,1](147, 146) -> 144 -[66,1](148, 146) -> 145 -[67,1](149, 149) -> 146 -[67,1](150, 149) -> 147 -[67,1](151, 149) -> 148 -[68,1](152, 152) -> 149 -[68,1](153, 152) -> 150 -[68,1](154, 152) -> 151 -[69,1](155, 155) -> 152 -[69,1](156, 155) -> 153 -[69,1](157, 155) -> 154 -[70,1](158, 158) -> 155 -[70,1](159, 158) -> 156 -[70,1](160, 158) -> 157 -[71,1](161, 161) -> 158 -[71,1](162, 161) -> 159 -[71,1](163, 161) -> 160 -[72,1](164, 164) -> 161 -[72,1](165, 164) -> 162 -[72,1](166, 164) -> 163 -[73,1](167, 167) -> 164 -[73,1](168, 167) -> 165 -[73,1](169, 167) -> 166 -[74,1](170, 170) -> 167 -[74,1](171, 170) -> 168 -[74,1](172, 170) -> 169 -[75,1](173, 173) -> 170 -[75,1](174, 173) -> 171 -[75,1](175, 173) -> 172 -[76,1](176, 176) -> 173 -[76,1](177, 176) -> 174 -[76,1](178, 176) -> 175 -[77,1](179, 179) -> 176 -[77,1](180, 179) -> 177 -[77,1](181, 179) -> 178 -[78,1](182, 182) -> 179 -[78,1](183, 182) -> 180 -[78,1](184, 182) -> 181 -[79,1](185, 185) -> 182 -[79,1](186, 185) -> 183 -[79,1](187, 185) -> 184 -[80,1](188, 188) -> 185 -[80,1](189, 188) -> 186 -[80,1](190, 188) -> 187 -[81,1](191, 191) -> 188 -[81,1](192, 191) -> 189 -[81,1](193, 191) -> 190 -[82,1](194, 194) -> 191 -[82,1](195, 194) -> 192 -[82,1](196, 194) -> 193 -[83,1](197, 197) -> 194 -[83,1](198, 197) -> 195 -[83,1](199, 197) -> 196 -[84,1](200, 200) -> 197 -[84,1](201, 200) -> 198 -[84,1](202, 200) -> 199 -[85,1](203, 203) -> 200 -[85,1](204, 203) -> 201 -[85,1](205, 203) -> 202 -[86,1](206, 206) -> 203 -[86,1](207, 206) -> 204 -[86,1](208, 206) -> 205 -[87,1](209, 209) -> 206 -[87,1](210, 209) -> 207 -[87,1](211, 209) -> 208 -[88,1](212, 212) -> 209 -[88,1](213, 212) -> 210 -[88,1](214, 212) -> 211 -[89,1](215, 215) -> 212 -[89,1](216, 215) -> 213 -[89,1](217, 215) -> 214 -[90,1](218, 218) -> 215 -[90,1](219, 218) -> 216 -[90,1](220, 218) -> 217 -[91,1](221, 221) -> 218 -[91,1](222, 221) -> 219 -[91,1](223, 221) -> 220 -[92,1](224, 224) -> 221 -[92,1](225, 224) -> 222 -[92,1](226, 224) -> 223 -[93,1](227, 227) -> 224 -[93,1](228, 227) -> 225 -[93,1](229, 227) -> 226 -[94,1](230, 230) -> 227 -[94,1](231, 230) -> 228 -[94,1](232, 230) -> 229 -[95,1](233, 233) -> 230 -[95,1](234, 233) -> 231 -[95,1](235, 233) -> 232 -[96,1](236, 236) -> 233 -[96,1](237, 236) -> 234 -[96,1](238, 236) -> 235 -[97,1](239, 239) -> 236 -[97,1](240, 239) -> 237 -[97,1](241, 239) -> 238 -[98,1](242, 242) -> 239 -[98,1](243, 242) -> 240 -[98,1](244, 242) -> 241 -[99,1](245, 245) -> 242 -[99,1](246, 245) -> 243 -[99,1](247, 245) -> 244 -[100,1](248, 248) -> 245 -[100,1](249, 248) -> 246 -[100,1](250, 248) -> 247 -[p1,1] -> 248 -[p2,1] -> 249 -[p3,1] -> 250 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/50/pre.hsl b/benchmarks/all/OEGrover/50/pre.hsl index e23bdfd02..643a00949 100644 --- a/benchmarks/all/OEGrover/50/pre.hsl +++ b/benchmarks/all/OEGrover/50/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 24 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1125899906842623 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/50/pre.lsta b/benchmarks/all/OEGrover/50/pre.lsta deleted file mode 100644 index d5f93614b..000000000 --- a/benchmarks/all/OEGrover/50/pre.lsta +++ /dev/null @@ -1,261 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 102) -> 99 -[51,1](101, 103) -> 100 -[52,1](104, 104) -> 101 -[52,1](105, 104) -> 102 -[52,1](106, 104) -> 103 -[53,1](107, 107) -> 104 -[53,1](108, 107) -> 105 -[53,1](109, 107) -> 106 -[54,1](110, 110) -> 107 -[54,1](111, 110) -> 108 -[54,1](112, 110) -> 109 -[55,1](113, 113) -> 110 -[55,1](114, 113) -> 111 -[55,1](115, 113) -> 112 -[56,1](116, 116) -> 113 -[56,1](117, 116) -> 114 -[56,1](118, 116) -> 115 -[57,1](119, 119) -> 116 -[57,1](120, 119) -> 117 -[57,1](121, 119) -> 118 -[58,1](122, 122) -> 119 -[58,1](123, 122) -> 120 -[58,1](124, 122) -> 121 -[59,1](125, 125) -> 122 -[59,1](126, 125) -> 123 -[59,1](127, 125) -> 124 -[60,1](128, 128) -> 125 -[60,1](129, 128) -> 126 -[60,1](130, 128) -> 127 -[61,1](131, 131) -> 128 -[61,1](132, 131) -> 129 -[61,1](133, 131) -> 130 -[62,1](134, 134) -> 131 -[62,1](135, 134) -> 132 -[62,1](136, 134) -> 133 -[63,1](137, 137) -> 134 -[63,1](138, 137) -> 135 -[63,1](139, 137) -> 136 -[64,1](140, 140) -> 137 -[64,1](141, 140) -> 138 -[64,1](142, 140) -> 139 -[65,1](143, 143) -> 140 -[65,1](144, 143) -> 141 -[65,1](145, 143) -> 142 -[66,1](146, 146) -> 143 -[66,1](147, 146) -> 144 -[66,1](148, 146) -> 145 -[67,1](149, 149) -> 146 -[67,1](150, 149) -> 147 -[67,1](151, 149) -> 148 -[68,1](152, 152) -> 149 -[68,1](153, 152) -> 150 -[68,1](154, 152) -> 151 -[69,1](155, 155) -> 152 -[69,1](156, 155) -> 153 -[69,1](157, 155) -> 154 -[70,1](158, 158) -> 155 -[70,1](159, 158) -> 156 -[70,1](160, 158) -> 157 -[71,1](161, 161) -> 158 -[71,1](162, 161) -> 159 -[71,1](163, 161) -> 160 -[72,1](164, 164) -> 161 -[72,1](165, 164) -> 162 -[72,1](166, 164) -> 163 -[73,1](167, 167) -> 164 -[73,1](168, 167) -> 165 -[73,1](169, 167) -> 166 -[74,1](170, 170) -> 167 -[74,1](171, 170) -> 168 -[74,1](172, 170) -> 169 -[75,1](173, 173) -> 170 -[75,1](174, 173) -> 171 -[75,1](175, 173) -> 172 -[76,1](176, 176) -> 173 -[76,1](177, 176) -> 174 -[76,1](178, 176) -> 175 -[77,1](179, 179) -> 176 -[77,1](180, 179) -> 177 -[77,1](181, 179) -> 178 -[78,1](182, 182) -> 179 -[78,1](183, 182) -> 180 -[78,1](184, 182) -> 181 -[79,1](185, 185) -> 182 -[79,1](186, 185) -> 183 -[79,1](187, 185) -> 184 -[80,1](188, 188) -> 185 -[80,1](189, 188) -> 186 -[80,1](190, 188) -> 187 -[81,1](191, 191) -> 188 -[81,1](192, 191) -> 189 -[81,1](193, 191) -> 190 -[82,1](194, 194) -> 191 -[82,1](195, 194) -> 192 -[82,1](196, 194) -> 193 -[83,1](197, 197) -> 194 -[83,1](198, 197) -> 195 -[83,1](199, 197) -> 196 -[84,1](200, 200) -> 197 -[84,1](201, 200) -> 198 -[84,1](202, 200) -> 199 -[85,1](203, 203) -> 200 -[85,1](204, 203) -> 201 -[85,1](205, 203) -> 202 -[86,1](206, 206) -> 203 -[86,1](207, 206) -> 204 -[86,1](208, 206) -> 205 -[87,1](209, 209) -> 206 -[87,1](210, 209) -> 207 -[87,1](211, 209) -> 208 -[88,1](212, 212) -> 209 -[88,1](213, 212) -> 210 -[88,1](214, 212) -> 211 -[89,1](215, 215) -> 212 -[89,1](216, 215) -> 213 -[89,1](217, 215) -> 214 -[90,1](218, 218) -> 215 -[90,1](219, 218) -> 216 -[90,1](220, 218) -> 217 -[91,1](221, 221) -> 218 -[91,1](222, 221) -> 219 -[91,1](223, 221) -> 220 -[92,1](224, 224) -> 221 -[92,1](225, 224) -> 222 -[92,1](226, 224) -> 223 -[93,1](227, 227) -> 224 -[93,1](228, 227) -> 225 -[93,1](229, 227) -> 226 -[94,1](230, 230) -> 227 -[94,1](231, 230) -> 228 -[94,1](232, 230) -> 229 -[95,1](233, 233) -> 230 -[95,1](234, 233) -> 231 -[95,1](235, 233) -> 232 -[96,1](236, 236) -> 233 -[96,1](237, 236) -> 234 -[96,1](238, 236) -> 235 -[97,1](239, 239) -> 236 -[97,1](240, 239) -> 237 -[97,1](241, 239) -> 238 -[98,1](242, 242) -> 239 -[98,1](243, 242) -> 240 -[98,1](244, 242) -> 241 -[99,1](245, 245) -> 242 -[99,1](246, 245) -> 243 -[99,1](247, 245) -> 244 -[100,1](248, 248) -> 245 -[100,1](249, 248) -> 246 -[100,1](250, 248) -> 247 -[c0,1] -> 248 -[a,1] -> 249 -[b,1] -> 250 -Constraints -1125899906842623 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/51/circuit.qasm b/benchmarks/all/OEGrover/51/circuit.qasm index d4d39ef9d..60290576c 100644 --- a/benchmarks/all/OEGrover/51/circuit.qasm +++ b/benchmarks/all/OEGrover/51/circuit.qasm @@ -1,132 +1,132 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[102]; +qreg qubits[101]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -ccx qubits[0], qubits[1], qubits[52]; -ccx qubits[2], qubits[52], qubits[53]; -ccx qubits[3], qubits[53], qubits[54]; -ccx qubits[4], qubits[54], qubits[55]; -ccx qubits[5], qubits[55], qubits[56]; -ccx qubits[6], qubits[56], qubits[57]; -ccx qubits[7], qubits[57], qubits[58]; -ccx qubits[8], qubits[58], qubits[59]; -ccx qubits[9], qubits[59], qubits[60]; -ccx qubits[10], qubits[60], qubits[61]; -ccx qubits[11], qubits[61], qubits[62]; -ccx qubits[12], qubits[62], qubits[63]; -ccx qubits[13], qubits[63], qubits[64]; -ccx qubits[14], qubits[64], qubits[65]; -ccx qubits[15], qubits[65], qubits[66]; -ccx qubits[16], qubits[66], qubits[67]; -ccx qubits[17], qubits[67], qubits[68]; -ccx qubits[18], qubits[68], qubits[69]; -ccx qubits[19], qubits[69], qubits[70]; -ccx qubits[20], qubits[70], qubits[71]; -ccx qubits[21], qubits[71], qubits[72]; -ccx qubits[22], qubits[72], qubits[73]; -ccx qubits[23], qubits[73], qubits[74]; -ccx qubits[24], qubits[74], qubits[75]; -ccx qubits[25], qubits[75], qubits[76]; -ccx qubits[26], qubits[76], qubits[77]; -ccx qubits[27], qubits[77], qubits[78]; -ccx qubits[28], qubits[78], qubits[79]; -ccx qubits[29], qubits[79], qubits[80]; -ccx qubits[30], qubits[80], qubits[81]; -ccx qubits[31], qubits[81], qubits[82]; -ccx qubits[32], qubits[82], qubits[83]; -ccx qubits[33], qubits[83], qubits[84]; -ccx qubits[34], qubits[84], qubits[85]; -ccx qubits[35], qubits[85], qubits[86]; -ccx qubits[36], qubits[86], qubits[87]; -ccx qubits[37], qubits[87], qubits[88]; -ccx qubits[38], qubits[88], qubits[89]; -ccx qubits[39], qubits[89], qubits[90]; -ccx qubits[40], qubits[90], qubits[91]; -ccx qubits[41], qubits[91], qubits[92]; -ccx qubits[42], qubits[92], qubits[93]; -ccx qubits[43], qubits[93], qubits[94]; -ccx qubits[44], qubits[94], qubits[95]; -ccx qubits[45], qubits[95], qubits[96]; -ccx qubits[46], qubits[96], qubits[97]; -ccx qubits[47], qubits[97], qubits[98]; -ccx qubits[48], qubits[98], qubits[99]; -ccx qubits[49], qubits[99], qubits[100]; -cz qubits[100], qubits[50]; -ccx qubits[49], qubits[99], qubits[100]; -ccx qubits[48], qubits[98], qubits[99]; -ccx qubits[47], qubits[97], qubits[98]; -ccx qubits[46], qubits[96], qubits[97]; -ccx qubits[45], qubits[95], qubits[96]; -ccx qubits[44], qubits[94], qubits[95]; -ccx qubits[43], qubits[93], qubits[94]; -ccx qubits[42], qubits[92], qubits[93]; -ccx qubits[41], qubits[91], qubits[92]; -ccx qubits[40], qubits[90], qubits[91]; -ccx qubits[39], qubits[89], qubits[90]; -ccx qubits[38], qubits[88], qubits[89]; -ccx qubits[37], qubits[87], qubits[88]; -ccx qubits[36], qubits[86], qubits[87]; -ccx qubits[35], qubits[85], qubits[86]; -ccx qubits[34], qubits[84], qubits[85]; -ccx qubits[33], qubits[83], qubits[84]; -ccx qubits[32], qubits[82], qubits[83]; -ccx qubits[31], qubits[81], qubits[82]; -ccx qubits[30], qubits[80], qubits[81]; -ccx qubits[29], qubits[79], qubits[80]; -ccx qubits[28], qubits[78], qubits[79]; -ccx qubits[27], qubits[77], qubits[78]; -ccx qubits[26], qubits[76], qubits[77]; -ccx qubits[25], qubits[75], qubits[76]; -ccx qubits[24], qubits[74], qubits[75]; -ccx qubits[23], qubits[73], qubits[74]; -ccx qubits[22], qubits[72], qubits[73]; -ccx qubits[21], qubits[71], qubits[72]; -ccx qubits[20], qubits[70], qubits[71]; -ccx qubits[19], qubits[69], qubits[70]; -ccx qubits[18], qubits[68], qubits[69]; -ccx qubits[17], qubits[67], qubits[68]; -ccx qubits[16], qubits[66], qubits[67]; -ccx qubits[15], qubits[65], qubits[66]; -ccx qubits[14], qubits[64], qubits[65]; -ccx qubits[13], qubits[63], qubits[64]; -ccx qubits[12], qubits[62], qubits[63]; -ccx qubits[11], qubits[61], qubits[62]; -ccx qubits[10], qubits[60], qubits[61]; -ccx qubits[9], qubits[59], qubits[60]; -ccx qubits[8], qubits[58], qubits[59]; -ccx qubits[7], qubits[57], qubits[58]; -ccx qubits[6], qubits[56], qubits[57]; -ccx qubits[5], qubits[55], qubits[56]; -ccx qubits[4], qubits[54], qubits[55]; -ccx qubits[3], qubits[53], qubits[54]; -ccx qubits[2], qubits[52], qubits[53]; -ccx qubits[0], qubits[1], qubits[52]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +cz qubits[98], qubits[99]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -155,305 +155,305 @@ x qubits[48]; x qubits[50]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; -ccx qubits[0], qubits[1], qubits[52]; -ccx qubits[2], qubits[52], qubits[53]; -ccx qubits[3], qubits[53], qubits[54]; -ccx qubits[4], qubits[54], qubits[55]; -ccx qubits[5], qubits[55], qubits[56]; -ccx qubits[6], qubits[56], qubits[57]; -ccx qubits[7], qubits[57], qubits[58]; -ccx qubits[8], qubits[58], qubits[59]; -ccx qubits[9], qubits[59], qubits[60]; -ccx qubits[10], qubits[60], qubits[61]; -ccx qubits[11], qubits[61], qubits[62]; -ccx qubits[12], qubits[62], qubits[63]; -ccx qubits[13], qubits[63], qubits[64]; -ccx qubits[14], qubits[64], qubits[65]; -ccx qubits[15], qubits[65], qubits[66]; -ccx qubits[16], qubits[66], qubits[67]; -ccx qubits[17], qubits[67], qubits[68]; -ccx qubits[18], qubits[68], qubits[69]; -ccx qubits[19], qubits[69], qubits[70]; -ccx qubits[20], qubits[70], qubits[71]; -ccx qubits[21], qubits[71], qubits[72]; -ccx qubits[22], qubits[72], qubits[73]; -ccx qubits[23], qubits[73], qubits[74]; -ccx qubits[24], qubits[74], qubits[75]; -ccx qubits[25], qubits[75], qubits[76]; -ccx qubits[26], qubits[76], qubits[77]; -ccx qubits[27], qubits[77], qubits[78]; -ccx qubits[28], qubits[78], qubits[79]; -ccx qubits[29], qubits[79], qubits[80]; -ccx qubits[30], qubits[80], qubits[81]; -ccx qubits[31], qubits[81], qubits[82]; -ccx qubits[32], qubits[82], qubits[83]; -ccx qubits[33], qubits[83], qubits[84]; -ccx qubits[34], qubits[84], qubits[85]; -ccx qubits[35], qubits[85], qubits[86]; -ccx qubits[36], qubits[86], qubits[87]; -ccx qubits[37], qubits[87], qubits[88]; -ccx qubits[38], qubits[88], qubits[89]; -ccx qubits[39], qubits[89], qubits[90]; -ccx qubits[40], qubits[90], qubits[91]; -ccx qubits[41], qubits[91], qubits[92]; -ccx qubits[42], qubits[92], qubits[93]; -ccx qubits[43], qubits[93], qubits[94]; -ccx qubits[44], qubits[94], qubits[95]; -ccx qubits[45], qubits[95], qubits[96]; -ccx qubits[46], qubits[96], qubits[97]; -ccx qubits[47], qubits[97], qubits[98]; -ccx qubits[48], qubits[98], qubits[99]; -ccx qubits[49], qubits[99], qubits[100]; -cz qubits[100], qubits[50]; -ccx qubits[49], qubits[99], qubits[100]; -ccx qubits[48], qubits[98], qubits[99]; -ccx qubits[47], qubits[97], qubits[98]; -ccx qubits[46], qubits[96], qubits[97]; -ccx qubits[45], qubits[95], qubits[96]; -ccx qubits[44], qubits[94], qubits[95]; -ccx qubits[43], qubits[93], qubits[94]; -ccx qubits[42], qubits[92], qubits[93]; -ccx qubits[41], qubits[91], qubits[92]; -ccx qubits[40], qubits[90], qubits[91]; -ccx qubits[39], qubits[89], qubits[90]; -ccx qubits[38], qubits[88], qubits[89]; -ccx qubits[37], qubits[87], qubits[88]; -ccx qubits[36], qubits[86], qubits[87]; -ccx qubits[35], qubits[85], qubits[86]; -ccx qubits[34], qubits[84], qubits[85]; -ccx qubits[33], qubits[83], qubits[84]; -ccx qubits[32], qubits[82], qubits[83]; -ccx qubits[31], qubits[81], qubits[82]; -ccx qubits[30], qubits[80], qubits[81]; -ccx qubits[29], qubits[79], qubits[80]; -ccx qubits[28], qubits[78], qubits[79]; -ccx qubits[27], qubits[77], qubits[78]; -ccx qubits[26], qubits[76], qubits[77]; -ccx qubits[25], qubits[75], qubits[76]; -ccx qubits[24], qubits[74], qubits[75]; -ccx qubits[23], qubits[73], qubits[74]; -ccx qubits[22], qubits[72], qubits[73]; -ccx qubits[21], qubits[71], qubits[72]; -ccx qubits[20], qubits[70], qubits[71]; -ccx qubits[19], qubits[69], qubits[70]; -ccx qubits[18], qubits[68], qubits[69]; -ccx qubits[17], qubits[67], qubits[68]; -ccx qubits[16], qubits[66], qubits[67]; -ccx qubits[15], qubits[65], qubits[66]; -ccx qubits[14], qubits[64], qubits[65]; -ccx qubits[13], qubits[63], qubits[64]; -ccx qubits[12], qubits[62], qubits[63]; -ccx qubits[11], qubits[61], qubits[62]; -ccx qubits[10], qubits[60], qubits[61]; -ccx qubits[9], qubits[59], qubits[60]; -ccx qubits[8], qubits[58], qubits[59]; -ccx qubits[7], qubits[57], qubits[58]; -ccx qubits[6], qubits[56], qubits[57]; -ccx qubits[5], qubits[55], qubits[56]; -ccx qubits[4], qubits[54], qubits[55]; -ccx qubits[3], qubits[53], qubits[54]; -ccx qubits[2], qubits[52], qubits[53]; -ccx qubits[0], qubits[1], qubits[52]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +cz qubits[98], qubits[99]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; +x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; -z qubits[51]; +h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +z qubits[100]; diff --git a/benchmarks/all/OEGrover/51/post.hsl b/benchmarks/all/OEGrover/51/post.hsl index 54f78caf4..4fea39c16 100644 --- a/benchmarks/all/OEGrover/51/post.hsl +++ b/benchmarks/all/OEGrover/51/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 24 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/51/post.lsta b/benchmarks/all/OEGrover/51/post.lsta deleted file mode 100644 index 4f24ccb9f..000000000 --- a/benchmarks/all/OEGrover/51/post.lsta +++ /dev/null @@ -1,262 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 104) -> 101 -[52,1](103, 105) -> 102 -[53,1](106, 106) -> 103 -[53,1](107, 106) -> 104 -[53,1](108, 106) -> 105 -[54,1](109, 109) -> 106 -[54,1](110, 109) -> 107 -[54,1](111, 109) -> 108 -[55,1](112, 112) -> 109 -[55,1](113, 112) -> 110 -[55,1](114, 112) -> 111 -[56,1](115, 115) -> 112 -[56,1](116, 115) -> 113 -[56,1](117, 115) -> 114 -[57,1](118, 118) -> 115 -[57,1](119, 118) -> 116 -[57,1](120, 118) -> 117 -[58,1](121, 121) -> 118 -[58,1](122, 121) -> 119 -[58,1](123, 121) -> 120 -[59,1](124, 124) -> 121 -[59,1](125, 124) -> 122 -[59,1](126, 124) -> 123 -[60,1](127, 127) -> 124 -[60,1](128, 127) -> 125 -[60,1](129, 127) -> 126 -[61,1](130, 130) -> 127 -[61,1](131, 130) -> 128 -[61,1](132, 130) -> 129 -[62,1](133, 133) -> 130 -[62,1](134, 133) -> 131 -[62,1](135, 133) -> 132 -[63,1](136, 136) -> 133 -[63,1](137, 136) -> 134 -[63,1](138, 136) -> 135 -[64,1](139, 139) -> 136 -[64,1](140, 139) -> 137 -[64,1](141, 139) -> 138 -[65,1](142, 142) -> 139 -[65,1](143, 142) -> 140 -[65,1](144, 142) -> 141 -[66,1](145, 145) -> 142 -[66,1](146, 145) -> 143 -[66,1](147, 145) -> 144 -[67,1](148, 148) -> 145 -[67,1](149, 148) -> 146 -[67,1](150, 148) -> 147 -[68,1](151, 151) -> 148 -[68,1](152, 151) -> 149 -[68,1](153, 151) -> 150 -[69,1](154, 154) -> 151 -[69,1](155, 154) -> 152 -[69,1](156, 154) -> 153 -[70,1](157, 157) -> 154 -[70,1](158, 157) -> 155 -[70,1](159, 157) -> 156 -[71,1](160, 160) -> 157 -[71,1](161, 160) -> 158 -[71,1](162, 160) -> 159 -[72,1](163, 163) -> 160 -[72,1](164, 163) -> 161 -[72,1](165, 163) -> 162 -[73,1](166, 166) -> 163 -[73,1](167, 166) -> 164 -[73,1](168, 166) -> 165 -[74,1](169, 169) -> 166 -[74,1](170, 169) -> 167 -[74,1](171, 169) -> 168 -[75,1](172, 172) -> 169 -[75,1](173, 172) -> 170 -[75,1](174, 172) -> 171 -[76,1](175, 175) -> 172 -[76,1](176, 175) -> 173 -[76,1](177, 175) -> 174 -[77,1](178, 178) -> 175 -[77,1](179, 178) -> 176 -[77,1](180, 178) -> 177 -[78,1](181, 181) -> 178 -[78,1](182, 181) -> 179 -[78,1](183, 181) -> 180 -[79,1](184, 184) -> 181 -[79,1](185, 184) -> 182 -[79,1](186, 184) -> 183 -[80,1](187, 187) -> 184 -[80,1](188, 187) -> 185 -[80,1](189, 187) -> 186 -[81,1](190, 190) -> 187 -[81,1](191, 190) -> 188 -[81,1](192, 190) -> 189 -[82,1](193, 193) -> 190 -[82,1](194, 193) -> 191 -[82,1](195, 193) -> 192 -[83,1](196, 196) -> 193 -[83,1](197, 196) -> 194 -[83,1](198, 196) -> 195 -[84,1](199, 199) -> 196 -[84,1](200, 199) -> 197 -[84,1](201, 199) -> 198 -[85,1](202, 202) -> 199 -[85,1](203, 202) -> 200 -[85,1](204, 202) -> 201 -[86,1](205, 205) -> 202 -[86,1](206, 205) -> 203 -[86,1](207, 205) -> 204 -[87,1](208, 208) -> 205 -[87,1](209, 208) -> 206 -[87,1](210, 208) -> 207 -[88,1](211, 211) -> 208 -[88,1](212, 211) -> 209 -[88,1](213, 211) -> 210 -[89,1](214, 214) -> 211 -[89,1](215, 214) -> 212 -[89,1](216, 214) -> 213 -[90,1](217, 217) -> 214 -[90,1](218, 217) -> 215 -[90,1](219, 217) -> 216 -[91,1](220, 220) -> 217 -[91,1](221, 220) -> 218 -[91,1](222, 220) -> 219 -[92,1](223, 223) -> 220 -[92,1](224, 223) -> 221 -[92,1](225, 223) -> 222 -[93,1](226, 226) -> 223 -[93,1](227, 226) -> 224 -[93,1](228, 226) -> 225 -[94,1](229, 229) -> 226 -[94,1](230, 229) -> 227 -[94,1](231, 229) -> 228 -[95,1](232, 232) -> 229 -[95,1](233, 232) -> 230 -[95,1](234, 232) -> 231 -[96,1](235, 235) -> 232 -[96,1](236, 235) -> 233 -[96,1](237, 235) -> 234 -[97,1](238, 238) -> 235 -[97,1](239, 238) -> 236 -[97,1](240, 238) -> 237 -[98,1](241, 241) -> 238 -[98,1](242, 241) -> 239 -[98,1](243, 241) -> 240 -[99,1](244, 244) -> 241 -[99,1](245, 244) -> 242 -[99,1](246, 244) -> 243 -[100,1](247, 247) -> 244 -[100,1](248, 247) -> 245 -[100,1](249, 247) -> 246 -[101,1](250, 250) -> 247 -[101,1](251, 250) -> 248 -[101,1](252, 250) -> 249 -[102,1](253, 253) -> 250 -[102,1](254, 253) -> 251 -[102,1](255, 253) -> 252 -[p1,1] -> 253 -[p2,1] -> 254 -[p3,1] -> 255 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/51/pre.hsl b/benchmarks/all/OEGrover/51/pre.hsl index ccff14105..fa8a86d43 100644 --- a/benchmarks/all/OEGrover/51/pre.hsl +++ b/benchmarks/all/OEGrover/51/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 24 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 2251799813685247 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/51/pre.lsta b/benchmarks/all/OEGrover/51/pre.lsta deleted file mode 100644 index a3ddb8023..000000000 --- a/benchmarks/all/OEGrover/51/pre.lsta +++ /dev/null @@ -1,266 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 104) -> 101 -[52,1](103, 105) -> 102 -[53,1](106, 106) -> 103 -[53,1](107, 106) -> 104 -[53,1](108, 106) -> 105 -[54,1](109, 109) -> 106 -[54,1](110, 109) -> 107 -[54,1](111, 109) -> 108 -[55,1](112, 112) -> 109 -[55,1](113, 112) -> 110 -[55,1](114, 112) -> 111 -[56,1](115, 115) -> 112 -[56,1](116, 115) -> 113 -[56,1](117, 115) -> 114 -[57,1](118, 118) -> 115 -[57,1](119, 118) -> 116 -[57,1](120, 118) -> 117 -[58,1](121, 121) -> 118 -[58,1](122, 121) -> 119 -[58,1](123, 121) -> 120 -[59,1](124, 124) -> 121 -[59,1](125, 124) -> 122 -[59,1](126, 124) -> 123 -[60,1](127, 127) -> 124 -[60,1](128, 127) -> 125 -[60,1](129, 127) -> 126 -[61,1](130, 130) -> 127 -[61,1](131, 130) -> 128 -[61,1](132, 130) -> 129 -[62,1](133, 133) -> 130 -[62,1](134, 133) -> 131 -[62,1](135, 133) -> 132 -[63,1](136, 136) -> 133 -[63,1](137, 136) -> 134 -[63,1](138, 136) -> 135 -[64,1](139, 139) -> 136 -[64,1](140, 139) -> 137 -[64,1](141, 139) -> 138 -[65,1](142, 142) -> 139 -[65,1](143, 142) -> 140 -[65,1](144, 142) -> 141 -[66,1](145, 145) -> 142 -[66,1](146, 145) -> 143 -[66,1](147, 145) -> 144 -[67,1](148, 148) -> 145 -[67,1](149, 148) -> 146 -[67,1](150, 148) -> 147 -[68,1](151, 151) -> 148 -[68,1](152, 151) -> 149 -[68,1](153, 151) -> 150 -[69,1](154, 154) -> 151 -[69,1](155, 154) -> 152 -[69,1](156, 154) -> 153 -[70,1](157, 157) -> 154 -[70,1](158, 157) -> 155 -[70,1](159, 157) -> 156 -[71,1](160, 160) -> 157 -[71,1](161, 160) -> 158 -[71,1](162, 160) -> 159 -[72,1](163, 163) -> 160 -[72,1](164, 163) -> 161 -[72,1](165, 163) -> 162 -[73,1](166, 166) -> 163 -[73,1](167, 166) -> 164 -[73,1](168, 166) -> 165 -[74,1](169, 169) -> 166 -[74,1](170, 169) -> 167 -[74,1](171, 169) -> 168 -[75,1](172, 172) -> 169 -[75,1](173, 172) -> 170 -[75,1](174, 172) -> 171 -[76,1](175, 175) -> 172 -[76,1](176, 175) -> 173 -[76,1](177, 175) -> 174 -[77,1](178, 178) -> 175 -[77,1](179, 178) -> 176 -[77,1](180, 178) -> 177 -[78,1](181, 181) -> 178 -[78,1](182, 181) -> 179 -[78,1](183, 181) -> 180 -[79,1](184, 184) -> 181 -[79,1](185, 184) -> 182 -[79,1](186, 184) -> 183 -[80,1](187, 187) -> 184 -[80,1](188, 187) -> 185 -[80,1](189, 187) -> 186 -[81,1](190, 190) -> 187 -[81,1](191, 190) -> 188 -[81,1](192, 190) -> 189 -[82,1](193, 193) -> 190 -[82,1](194, 193) -> 191 -[82,1](195, 193) -> 192 -[83,1](196, 196) -> 193 -[83,1](197, 196) -> 194 -[83,1](198, 196) -> 195 -[84,1](199, 199) -> 196 -[84,1](200, 199) -> 197 -[84,1](201, 199) -> 198 -[85,1](202, 202) -> 199 -[85,1](203, 202) -> 200 -[85,1](204, 202) -> 201 -[86,1](205, 205) -> 202 -[86,1](206, 205) -> 203 -[86,1](207, 205) -> 204 -[87,1](208, 208) -> 205 -[87,1](209, 208) -> 206 -[87,1](210, 208) -> 207 -[88,1](211, 211) -> 208 -[88,1](212, 211) -> 209 -[88,1](213, 211) -> 210 -[89,1](214, 214) -> 211 -[89,1](215, 214) -> 212 -[89,1](216, 214) -> 213 -[90,1](217, 217) -> 214 -[90,1](218, 217) -> 215 -[90,1](219, 217) -> 216 -[91,1](220, 220) -> 217 -[91,1](221, 220) -> 218 -[91,1](222, 220) -> 219 -[92,1](223, 223) -> 220 -[92,1](224, 223) -> 221 -[92,1](225, 223) -> 222 -[93,1](226, 226) -> 223 -[93,1](227, 226) -> 224 -[93,1](228, 226) -> 225 -[94,1](229, 229) -> 226 -[94,1](230, 229) -> 227 -[94,1](231, 229) -> 228 -[95,1](232, 232) -> 229 -[95,1](233, 232) -> 230 -[95,1](234, 232) -> 231 -[96,1](235, 235) -> 232 -[96,1](236, 235) -> 233 -[96,1](237, 235) -> 234 -[97,1](238, 238) -> 235 -[97,1](239, 238) -> 236 -[97,1](240, 238) -> 237 -[98,1](241, 241) -> 238 -[98,1](242, 241) -> 239 -[98,1](243, 241) -> 240 -[99,1](244, 244) -> 241 -[99,1](245, 244) -> 242 -[99,1](246, 244) -> 243 -[100,1](247, 247) -> 244 -[100,1](248, 247) -> 245 -[100,1](249, 247) -> 246 -[101,1](250, 250) -> 247 -[101,1](251, 250) -> 248 -[101,1](252, 250) -> 249 -[102,1](253, 253) -> 250 -[102,1](254, 253) -> 251 -[102,1](255, 253) -> 252 -[c0,1] -> 253 -[a,1] -> 254 -[b,1] -> 255 -Constraints -2251799813685247 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/52/circuit.qasm b/benchmarks/all/OEGrover/52/circuit.qasm index d675dd362..2efe42a71 100644 --- a/benchmarks/all/OEGrover/52/circuit.qasm +++ b/benchmarks/all/OEGrover/52/circuit.qasm @@ -1,134 +1,134 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[104]; +qreg qubits[103]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -ccx qubits[0], qubits[1], qubits[53]; -ccx qubits[2], qubits[53], qubits[54]; -ccx qubits[3], qubits[54], qubits[55]; -ccx qubits[4], qubits[55], qubits[56]; -ccx qubits[5], qubits[56], qubits[57]; -ccx qubits[6], qubits[57], qubits[58]; -ccx qubits[7], qubits[58], qubits[59]; -ccx qubits[8], qubits[59], qubits[60]; -ccx qubits[9], qubits[60], qubits[61]; -ccx qubits[10], qubits[61], qubits[62]; -ccx qubits[11], qubits[62], qubits[63]; -ccx qubits[12], qubits[63], qubits[64]; -ccx qubits[13], qubits[64], qubits[65]; -ccx qubits[14], qubits[65], qubits[66]; -ccx qubits[15], qubits[66], qubits[67]; -ccx qubits[16], qubits[67], qubits[68]; -ccx qubits[17], qubits[68], qubits[69]; -ccx qubits[18], qubits[69], qubits[70]; -ccx qubits[19], qubits[70], qubits[71]; -ccx qubits[20], qubits[71], qubits[72]; -ccx qubits[21], qubits[72], qubits[73]; -ccx qubits[22], qubits[73], qubits[74]; -ccx qubits[23], qubits[74], qubits[75]; -ccx qubits[24], qubits[75], qubits[76]; -ccx qubits[25], qubits[76], qubits[77]; -ccx qubits[26], qubits[77], qubits[78]; -ccx qubits[27], qubits[78], qubits[79]; -ccx qubits[28], qubits[79], qubits[80]; -ccx qubits[29], qubits[80], qubits[81]; -ccx qubits[30], qubits[81], qubits[82]; -ccx qubits[31], qubits[82], qubits[83]; -ccx qubits[32], qubits[83], qubits[84]; -ccx qubits[33], qubits[84], qubits[85]; -ccx qubits[34], qubits[85], qubits[86]; -ccx qubits[35], qubits[86], qubits[87]; -ccx qubits[36], qubits[87], qubits[88]; -ccx qubits[37], qubits[88], qubits[89]; -ccx qubits[38], qubits[89], qubits[90]; -ccx qubits[39], qubits[90], qubits[91]; -ccx qubits[40], qubits[91], qubits[92]; -ccx qubits[41], qubits[92], qubits[93]; -ccx qubits[42], qubits[93], qubits[94]; -ccx qubits[43], qubits[94], qubits[95]; -ccx qubits[44], qubits[95], qubits[96]; -ccx qubits[45], qubits[96], qubits[97]; -ccx qubits[46], qubits[97], qubits[98]; -ccx qubits[47], qubits[98], qubits[99]; -ccx qubits[48], qubits[99], qubits[100]; -ccx qubits[49], qubits[100], qubits[101]; -ccx qubits[50], qubits[101], qubits[102]; -cz qubits[102], qubits[51]; -ccx qubits[50], qubits[101], qubits[102]; -ccx qubits[49], qubits[100], qubits[101]; -ccx qubits[48], qubits[99], qubits[100]; -ccx qubits[47], qubits[98], qubits[99]; -ccx qubits[46], qubits[97], qubits[98]; -ccx qubits[45], qubits[96], qubits[97]; -ccx qubits[44], qubits[95], qubits[96]; -ccx qubits[43], qubits[94], qubits[95]; -ccx qubits[42], qubits[93], qubits[94]; -ccx qubits[41], qubits[92], qubits[93]; -ccx qubits[40], qubits[91], qubits[92]; -ccx qubits[39], qubits[90], qubits[91]; -ccx qubits[38], qubits[89], qubits[90]; -ccx qubits[37], qubits[88], qubits[89]; -ccx qubits[36], qubits[87], qubits[88]; -ccx qubits[35], qubits[86], qubits[87]; -ccx qubits[34], qubits[85], qubits[86]; -ccx qubits[33], qubits[84], qubits[85]; -ccx qubits[32], qubits[83], qubits[84]; -ccx qubits[31], qubits[82], qubits[83]; -ccx qubits[30], qubits[81], qubits[82]; -ccx qubits[29], qubits[80], qubits[81]; -ccx qubits[28], qubits[79], qubits[80]; -ccx qubits[27], qubits[78], qubits[79]; -ccx qubits[26], qubits[77], qubits[78]; -ccx qubits[25], qubits[76], qubits[77]; -ccx qubits[24], qubits[75], qubits[76]; -ccx qubits[23], qubits[74], qubits[75]; -ccx qubits[22], qubits[73], qubits[74]; -ccx qubits[21], qubits[72], qubits[73]; -ccx qubits[20], qubits[71], qubits[72]; -ccx qubits[19], qubits[70], qubits[71]; -ccx qubits[18], qubits[69], qubits[70]; -ccx qubits[17], qubits[68], qubits[69]; -ccx qubits[16], qubits[67], qubits[68]; -ccx qubits[15], qubits[66], qubits[67]; -ccx qubits[14], qubits[65], qubits[66]; -ccx qubits[13], qubits[64], qubits[65]; -ccx qubits[12], qubits[63], qubits[64]; -ccx qubits[11], qubits[62], qubits[63]; -ccx qubits[10], qubits[61], qubits[62]; -ccx qubits[9], qubits[60], qubits[61]; -ccx qubits[8], qubits[59], qubits[60]; -ccx qubits[7], qubits[58], qubits[59]; -ccx qubits[6], qubits[57], qubits[58]; -ccx qubits[5], qubits[56], qubits[57]; -ccx qubits[4], qubits[55], qubits[56]; -ccx qubits[3], qubits[54], qubits[55]; -ccx qubits[2], qubits[53], qubits[54]; -ccx qubits[0], qubits[1], qubits[53]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +cz qubits[100], qubits[101]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -157,311 +157,311 @@ x qubits[48]; x qubits[50]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -ccx qubits[0], qubits[1], qubits[53]; -ccx qubits[2], qubits[53], qubits[54]; -ccx qubits[3], qubits[54], qubits[55]; -ccx qubits[4], qubits[55], qubits[56]; -ccx qubits[5], qubits[56], qubits[57]; -ccx qubits[6], qubits[57], qubits[58]; -ccx qubits[7], qubits[58], qubits[59]; -ccx qubits[8], qubits[59], qubits[60]; -ccx qubits[9], qubits[60], qubits[61]; -ccx qubits[10], qubits[61], qubits[62]; -ccx qubits[11], qubits[62], qubits[63]; -ccx qubits[12], qubits[63], qubits[64]; -ccx qubits[13], qubits[64], qubits[65]; -ccx qubits[14], qubits[65], qubits[66]; -ccx qubits[15], qubits[66], qubits[67]; -ccx qubits[16], qubits[67], qubits[68]; -ccx qubits[17], qubits[68], qubits[69]; -ccx qubits[18], qubits[69], qubits[70]; -ccx qubits[19], qubits[70], qubits[71]; -ccx qubits[20], qubits[71], qubits[72]; -ccx qubits[21], qubits[72], qubits[73]; -ccx qubits[22], qubits[73], qubits[74]; -ccx qubits[23], qubits[74], qubits[75]; -ccx qubits[24], qubits[75], qubits[76]; -ccx qubits[25], qubits[76], qubits[77]; -ccx qubits[26], qubits[77], qubits[78]; -ccx qubits[27], qubits[78], qubits[79]; -ccx qubits[28], qubits[79], qubits[80]; -ccx qubits[29], qubits[80], qubits[81]; -ccx qubits[30], qubits[81], qubits[82]; -ccx qubits[31], qubits[82], qubits[83]; -ccx qubits[32], qubits[83], qubits[84]; -ccx qubits[33], qubits[84], qubits[85]; -ccx qubits[34], qubits[85], qubits[86]; -ccx qubits[35], qubits[86], qubits[87]; -ccx qubits[36], qubits[87], qubits[88]; -ccx qubits[37], qubits[88], qubits[89]; -ccx qubits[38], qubits[89], qubits[90]; -ccx qubits[39], qubits[90], qubits[91]; -ccx qubits[40], qubits[91], qubits[92]; -ccx qubits[41], qubits[92], qubits[93]; -ccx qubits[42], qubits[93], qubits[94]; -ccx qubits[43], qubits[94], qubits[95]; -ccx qubits[44], qubits[95], qubits[96]; -ccx qubits[45], qubits[96], qubits[97]; -ccx qubits[46], qubits[97], qubits[98]; -ccx qubits[47], qubits[98], qubits[99]; -ccx qubits[48], qubits[99], qubits[100]; -ccx qubits[49], qubits[100], qubits[101]; -ccx qubits[50], qubits[101], qubits[102]; -cz qubits[102], qubits[51]; -ccx qubits[50], qubits[101], qubits[102]; -ccx qubits[49], qubits[100], qubits[101]; -ccx qubits[48], qubits[99], qubits[100]; -ccx qubits[47], qubits[98], qubits[99]; -ccx qubits[46], qubits[97], qubits[98]; -ccx qubits[45], qubits[96], qubits[97]; -ccx qubits[44], qubits[95], qubits[96]; -ccx qubits[43], qubits[94], qubits[95]; -ccx qubits[42], qubits[93], qubits[94]; -ccx qubits[41], qubits[92], qubits[93]; -ccx qubits[40], qubits[91], qubits[92]; -ccx qubits[39], qubits[90], qubits[91]; -ccx qubits[38], qubits[89], qubits[90]; -ccx qubits[37], qubits[88], qubits[89]; -ccx qubits[36], qubits[87], qubits[88]; -ccx qubits[35], qubits[86], qubits[87]; -ccx qubits[34], qubits[85], qubits[86]; -ccx qubits[33], qubits[84], qubits[85]; -ccx qubits[32], qubits[83], qubits[84]; -ccx qubits[31], qubits[82], qubits[83]; -ccx qubits[30], qubits[81], qubits[82]; -ccx qubits[29], qubits[80], qubits[81]; -ccx qubits[28], qubits[79], qubits[80]; -ccx qubits[27], qubits[78], qubits[79]; -ccx qubits[26], qubits[77], qubits[78]; -ccx qubits[25], qubits[76], qubits[77]; -ccx qubits[24], qubits[75], qubits[76]; -ccx qubits[23], qubits[74], qubits[75]; -ccx qubits[22], qubits[73], qubits[74]; -ccx qubits[21], qubits[72], qubits[73]; -ccx qubits[20], qubits[71], qubits[72]; -ccx qubits[19], qubits[70], qubits[71]; -ccx qubits[18], qubits[69], qubits[70]; -ccx qubits[17], qubits[68], qubits[69]; -ccx qubits[16], qubits[67], qubits[68]; -ccx qubits[15], qubits[66], qubits[67]; -ccx qubits[14], qubits[65], qubits[66]; -ccx qubits[13], qubits[64], qubits[65]; -ccx qubits[12], qubits[63], qubits[64]; -ccx qubits[11], qubits[62], qubits[63]; -ccx qubits[10], qubits[61], qubits[62]; -ccx qubits[9], qubits[60], qubits[61]; -ccx qubits[8], qubits[59], qubits[60]; -ccx qubits[7], qubits[58], qubits[59]; -ccx qubits[6], qubits[57], qubits[58]; -ccx qubits[5], qubits[56], qubits[57]; -ccx qubits[4], qubits[55], qubits[56]; -ccx qubits[3], qubits[54], qubits[55]; -ccx qubits[2], qubits[53], qubits[54]; -ccx qubits[0], qubits[1], qubits[53]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +cz qubits[100], qubits[101]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -z qubits[52]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +z qubits[102]; diff --git a/benchmarks/all/OEGrover/52/post.hsl b/benchmarks/all/OEGrover/52/post.hsl index cb237b1f2..e0e2c4a42 100644 --- a/benchmarks/all/OEGrover/52/post.hsl +++ b/benchmarks/all/OEGrover/52/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 25 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/52/post.lsta b/benchmarks/all/OEGrover/52/post.lsta deleted file mode 100644 index 24b4d5683..000000000 --- a/benchmarks/all/OEGrover/52/post.lsta +++ /dev/null @@ -1,267 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 106) -> 103 -[53,1](105, 107) -> 104 -[54,1](108, 108) -> 105 -[54,1](109, 108) -> 106 -[54,1](110, 108) -> 107 -[55,1](111, 111) -> 108 -[55,1](112, 111) -> 109 -[55,1](113, 111) -> 110 -[56,1](114, 114) -> 111 -[56,1](115, 114) -> 112 -[56,1](116, 114) -> 113 -[57,1](117, 117) -> 114 -[57,1](118, 117) -> 115 -[57,1](119, 117) -> 116 -[58,1](120, 120) -> 117 -[58,1](121, 120) -> 118 -[58,1](122, 120) -> 119 -[59,1](123, 123) -> 120 -[59,1](124, 123) -> 121 -[59,1](125, 123) -> 122 -[60,1](126, 126) -> 123 -[60,1](127, 126) -> 124 -[60,1](128, 126) -> 125 -[61,1](129, 129) -> 126 -[61,1](130, 129) -> 127 -[61,1](131, 129) -> 128 -[62,1](132, 132) -> 129 -[62,1](133, 132) -> 130 -[62,1](134, 132) -> 131 -[63,1](135, 135) -> 132 -[63,1](136, 135) -> 133 -[63,1](137, 135) -> 134 -[64,1](138, 138) -> 135 -[64,1](139, 138) -> 136 -[64,1](140, 138) -> 137 -[65,1](141, 141) -> 138 -[65,1](142, 141) -> 139 -[65,1](143, 141) -> 140 -[66,1](144, 144) -> 141 -[66,1](145, 144) -> 142 -[66,1](146, 144) -> 143 -[67,1](147, 147) -> 144 -[67,1](148, 147) -> 145 -[67,1](149, 147) -> 146 -[68,1](150, 150) -> 147 -[68,1](151, 150) -> 148 -[68,1](152, 150) -> 149 -[69,1](153, 153) -> 150 -[69,1](154, 153) -> 151 -[69,1](155, 153) -> 152 -[70,1](156, 156) -> 153 -[70,1](157, 156) -> 154 -[70,1](158, 156) -> 155 -[71,1](159, 159) -> 156 -[71,1](160, 159) -> 157 -[71,1](161, 159) -> 158 -[72,1](162, 162) -> 159 -[72,1](163, 162) -> 160 -[72,1](164, 162) -> 161 -[73,1](165, 165) -> 162 -[73,1](166, 165) -> 163 -[73,1](167, 165) -> 164 -[74,1](168, 168) -> 165 -[74,1](169, 168) -> 166 -[74,1](170, 168) -> 167 -[75,1](171, 171) -> 168 -[75,1](172, 171) -> 169 -[75,1](173, 171) -> 170 -[76,1](174, 174) -> 171 -[76,1](175, 174) -> 172 -[76,1](176, 174) -> 173 -[77,1](177, 177) -> 174 -[77,1](178, 177) -> 175 -[77,1](179, 177) -> 176 -[78,1](180, 180) -> 177 -[78,1](181, 180) -> 178 -[78,1](182, 180) -> 179 -[79,1](183, 183) -> 180 -[79,1](184, 183) -> 181 -[79,1](185, 183) -> 182 -[80,1](186, 186) -> 183 -[80,1](187, 186) -> 184 -[80,1](188, 186) -> 185 -[81,1](189, 189) -> 186 -[81,1](190, 189) -> 187 -[81,1](191, 189) -> 188 -[82,1](192, 192) -> 189 -[82,1](193, 192) -> 190 -[82,1](194, 192) -> 191 -[83,1](195, 195) -> 192 -[83,1](196, 195) -> 193 -[83,1](197, 195) -> 194 -[84,1](198, 198) -> 195 -[84,1](199, 198) -> 196 -[84,1](200, 198) -> 197 -[85,1](201, 201) -> 198 -[85,1](202, 201) -> 199 -[85,1](203, 201) -> 200 -[86,1](204, 204) -> 201 -[86,1](205, 204) -> 202 -[86,1](206, 204) -> 203 -[87,1](207, 207) -> 204 -[87,1](208, 207) -> 205 -[87,1](209, 207) -> 206 -[88,1](210, 210) -> 207 -[88,1](211, 210) -> 208 -[88,1](212, 210) -> 209 -[89,1](213, 213) -> 210 -[89,1](214, 213) -> 211 -[89,1](215, 213) -> 212 -[90,1](216, 216) -> 213 -[90,1](217, 216) -> 214 -[90,1](218, 216) -> 215 -[91,1](219, 219) -> 216 -[91,1](220, 219) -> 217 -[91,1](221, 219) -> 218 -[92,1](222, 222) -> 219 -[92,1](223, 222) -> 220 -[92,1](224, 222) -> 221 -[93,1](225, 225) -> 222 -[93,1](226, 225) -> 223 -[93,1](227, 225) -> 224 -[94,1](228, 228) -> 225 -[94,1](229, 228) -> 226 -[94,1](230, 228) -> 227 -[95,1](231, 231) -> 228 -[95,1](232, 231) -> 229 -[95,1](233, 231) -> 230 -[96,1](234, 234) -> 231 -[96,1](235, 234) -> 232 -[96,1](236, 234) -> 233 -[97,1](237, 237) -> 234 -[97,1](238, 237) -> 235 -[97,1](239, 237) -> 236 -[98,1](240, 240) -> 237 -[98,1](241, 240) -> 238 -[98,1](242, 240) -> 239 -[99,1](243, 243) -> 240 -[99,1](244, 243) -> 241 -[99,1](245, 243) -> 242 -[100,1](246, 246) -> 243 -[100,1](247, 246) -> 244 -[100,1](248, 246) -> 245 -[101,1](249, 249) -> 246 -[101,1](250, 249) -> 247 -[101,1](251, 249) -> 248 -[102,1](252, 252) -> 249 -[102,1](253, 252) -> 250 -[102,1](254, 252) -> 251 -[103,1](255, 255) -> 252 -[103,1](256, 255) -> 253 -[103,1](257, 255) -> 254 -[104,1](258, 258) -> 255 -[104,1](259, 258) -> 256 -[104,1](260, 258) -> 257 -[p1,1] -> 258 -[p2,1] -> 259 -[p3,1] -> 260 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/52/pre.hsl b/benchmarks/all/OEGrover/52/pre.hsl index 033a44aca..086cb2bfd 100644 --- a/benchmarks/all/OEGrover/52/pre.hsl +++ b/benchmarks/all/OEGrover/52/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 25 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 4503599627370495 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/52/pre.lsta b/benchmarks/all/OEGrover/52/pre.lsta deleted file mode 100644 index 62fd53a31..000000000 --- a/benchmarks/all/OEGrover/52/pre.lsta +++ /dev/null @@ -1,271 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 106) -> 103 -[53,1](105, 107) -> 104 -[54,1](108, 108) -> 105 -[54,1](109, 108) -> 106 -[54,1](110, 108) -> 107 -[55,1](111, 111) -> 108 -[55,1](112, 111) -> 109 -[55,1](113, 111) -> 110 -[56,1](114, 114) -> 111 -[56,1](115, 114) -> 112 -[56,1](116, 114) -> 113 -[57,1](117, 117) -> 114 -[57,1](118, 117) -> 115 -[57,1](119, 117) -> 116 -[58,1](120, 120) -> 117 -[58,1](121, 120) -> 118 -[58,1](122, 120) -> 119 -[59,1](123, 123) -> 120 -[59,1](124, 123) -> 121 -[59,1](125, 123) -> 122 -[60,1](126, 126) -> 123 -[60,1](127, 126) -> 124 -[60,1](128, 126) -> 125 -[61,1](129, 129) -> 126 -[61,1](130, 129) -> 127 -[61,1](131, 129) -> 128 -[62,1](132, 132) -> 129 -[62,1](133, 132) -> 130 -[62,1](134, 132) -> 131 -[63,1](135, 135) -> 132 -[63,1](136, 135) -> 133 -[63,1](137, 135) -> 134 -[64,1](138, 138) -> 135 -[64,1](139, 138) -> 136 -[64,1](140, 138) -> 137 -[65,1](141, 141) -> 138 -[65,1](142, 141) -> 139 -[65,1](143, 141) -> 140 -[66,1](144, 144) -> 141 -[66,1](145, 144) -> 142 -[66,1](146, 144) -> 143 -[67,1](147, 147) -> 144 -[67,1](148, 147) -> 145 -[67,1](149, 147) -> 146 -[68,1](150, 150) -> 147 -[68,1](151, 150) -> 148 -[68,1](152, 150) -> 149 -[69,1](153, 153) -> 150 -[69,1](154, 153) -> 151 -[69,1](155, 153) -> 152 -[70,1](156, 156) -> 153 -[70,1](157, 156) -> 154 -[70,1](158, 156) -> 155 -[71,1](159, 159) -> 156 -[71,1](160, 159) -> 157 -[71,1](161, 159) -> 158 -[72,1](162, 162) -> 159 -[72,1](163, 162) -> 160 -[72,1](164, 162) -> 161 -[73,1](165, 165) -> 162 -[73,1](166, 165) -> 163 -[73,1](167, 165) -> 164 -[74,1](168, 168) -> 165 -[74,1](169, 168) -> 166 -[74,1](170, 168) -> 167 -[75,1](171, 171) -> 168 -[75,1](172, 171) -> 169 -[75,1](173, 171) -> 170 -[76,1](174, 174) -> 171 -[76,1](175, 174) -> 172 -[76,1](176, 174) -> 173 -[77,1](177, 177) -> 174 -[77,1](178, 177) -> 175 -[77,1](179, 177) -> 176 -[78,1](180, 180) -> 177 -[78,1](181, 180) -> 178 -[78,1](182, 180) -> 179 -[79,1](183, 183) -> 180 -[79,1](184, 183) -> 181 -[79,1](185, 183) -> 182 -[80,1](186, 186) -> 183 -[80,1](187, 186) -> 184 -[80,1](188, 186) -> 185 -[81,1](189, 189) -> 186 -[81,1](190, 189) -> 187 -[81,1](191, 189) -> 188 -[82,1](192, 192) -> 189 -[82,1](193, 192) -> 190 -[82,1](194, 192) -> 191 -[83,1](195, 195) -> 192 -[83,1](196, 195) -> 193 -[83,1](197, 195) -> 194 -[84,1](198, 198) -> 195 -[84,1](199, 198) -> 196 -[84,1](200, 198) -> 197 -[85,1](201, 201) -> 198 -[85,1](202, 201) -> 199 -[85,1](203, 201) -> 200 -[86,1](204, 204) -> 201 -[86,1](205, 204) -> 202 -[86,1](206, 204) -> 203 -[87,1](207, 207) -> 204 -[87,1](208, 207) -> 205 -[87,1](209, 207) -> 206 -[88,1](210, 210) -> 207 -[88,1](211, 210) -> 208 -[88,1](212, 210) -> 209 -[89,1](213, 213) -> 210 -[89,1](214, 213) -> 211 -[89,1](215, 213) -> 212 -[90,1](216, 216) -> 213 -[90,1](217, 216) -> 214 -[90,1](218, 216) -> 215 -[91,1](219, 219) -> 216 -[91,1](220, 219) -> 217 -[91,1](221, 219) -> 218 -[92,1](222, 222) -> 219 -[92,1](223, 222) -> 220 -[92,1](224, 222) -> 221 -[93,1](225, 225) -> 222 -[93,1](226, 225) -> 223 -[93,1](227, 225) -> 224 -[94,1](228, 228) -> 225 -[94,1](229, 228) -> 226 -[94,1](230, 228) -> 227 -[95,1](231, 231) -> 228 -[95,1](232, 231) -> 229 -[95,1](233, 231) -> 230 -[96,1](234, 234) -> 231 -[96,1](235, 234) -> 232 -[96,1](236, 234) -> 233 -[97,1](237, 237) -> 234 -[97,1](238, 237) -> 235 -[97,1](239, 237) -> 236 -[98,1](240, 240) -> 237 -[98,1](241, 240) -> 238 -[98,1](242, 240) -> 239 -[99,1](243, 243) -> 240 -[99,1](244, 243) -> 241 -[99,1](245, 243) -> 242 -[100,1](246, 246) -> 243 -[100,1](247, 246) -> 244 -[100,1](248, 246) -> 245 -[101,1](249, 249) -> 246 -[101,1](250, 249) -> 247 -[101,1](251, 249) -> 248 -[102,1](252, 252) -> 249 -[102,1](253, 252) -> 250 -[102,1](254, 252) -> 251 -[103,1](255, 255) -> 252 -[103,1](256, 255) -> 253 -[103,1](257, 255) -> 254 -[104,1](258, 258) -> 255 -[104,1](259, 258) -> 256 -[104,1](260, 258) -> 257 -[c0,1] -> 258 -[a,1] -> 259 -[b,1] -> 260 -Constraints -4503599627370495 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/53/circuit.qasm b/benchmarks/all/OEGrover/53/circuit.qasm index 27607ca06..8634a6463 100644 --- a/benchmarks/all/OEGrover/53/circuit.qasm +++ b/benchmarks/all/OEGrover/53/circuit.qasm @@ -1,137 +1,137 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[106]; +qreg qubits[105]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -ccx qubits[0], qubits[1], qubits[54]; -ccx qubits[2], qubits[54], qubits[55]; -ccx qubits[3], qubits[55], qubits[56]; -ccx qubits[4], qubits[56], qubits[57]; -ccx qubits[5], qubits[57], qubits[58]; -ccx qubits[6], qubits[58], qubits[59]; -ccx qubits[7], qubits[59], qubits[60]; -ccx qubits[8], qubits[60], qubits[61]; -ccx qubits[9], qubits[61], qubits[62]; -ccx qubits[10], qubits[62], qubits[63]; -ccx qubits[11], qubits[63], qubits[64]; -ccx qubits[12], qubits[64], qubits[65]; -ccx qubits[13], qubits[65], qubits[66]; -ccx qubits[14], qubits[66], qubits[67]; -ccx qubits[15], qubits[67], qubits[68]; -ccx qubits[16], qubits[68], qubits[69]; -ccx qubits[17], qubits[69], qubits[70]; -ccx qubits[18], qubits[70], qubits[71]; -ccx qubits[19], qubits[71], qubits[72]; -ccx qubits[20], qubits[72], qubits[73]; -ccx qubits[21], qubits[73], qubits[74]; -ccx qubits[22], qubits[74], qubits[75]; -ccx qubits[23], qubits[75], qubits[76]; -ccx qubits[24], qubits[76], qubits[77]; -ccx qubits[25], qubits[77], qubits[78]; -ccx qubits[26], qubits[78], qubits[79]; -ccx qubits[27], qubits[79], qubits[80]; -ccx qubits[28], qubits[80], qubits[81]; -ccx qubits[29], qubits[81], qubits[82]; -ccx qubits[30], qubits[82], qubits[83]; -ccx qubits[31], qubits[83], qubits[84]; -ccx qubits[32], qubits[84], qubits[85]; -ccx qubits[33], qubits[85], qubits[86]; -ccx qubits[34], qubits[86], qubits[87]; -ccx qubits[35], qubits[87], qubits[88]; -ccx qubits[36], qubits[88], qubits[89]; -ccx qubits[37], qubits[89], qubits[90]; -ccx qubits[38], qubits[90], qubits[91]; -ccx qubits[39], qubits[91], qubits[92]; -ccx qubits[40], qubits[92], qubits[93]; -ccx qubits[41], qubits[93], qubits[94]; -ccx qubits[42], qubits[94], qubits[95]; -ccx qubits[43], qubits[95], qubits[96]; -ccx qubits[44], qubits[96], qubits[97]; -ccx qubits[45], qubits[97], qubits[98]; -ccx qubits[46], qubits[98], qubits[99]; -ccx qubits[47], qubits[99], qubits[100]; -ccx qubits[48], qubits[100], qubits[101]; -ccx qubits[49], qubits[101], qubits[102]; -ccx qubits[50], qubits[102], qubits[103]; -ccx qubits[51], qubits[103], qubits[104]; -cz qubits[104], qubits[52]; -ccx qubits[51], qubits[103], qubits[104]; -ccx qubits[50], qubits[102], qubits[103]; -ccx qubits[49], qubits[101], qubits[102]; -ccx qubits[48], qubits[100], qubits[101]; -ccx qubits[47], qubits[99], qubits[100]; -ccx qubits[46], qubits[98], qubits[99]; -ccx qubits[45], qubits[97], qubits[98]; -ccx qubits[44], qubits[96], qubits[97]; -ccx qubits[43], qubits[95], qubits[96]; -ccx qubits[42], qubits[94], qubits[95]; -ccx qubits[41], qubits[93], qubits[94]; -ccx qubits[40], qubits[92], qubits[93]; -ccx qubits[39], qubits[91], qubits[92]; -ccx qubits[38], qubits[90], qubits[91]; -ccx qubits[37], qubits[89], qubits[90]; -ccx qubits[36], qubits[88], qubits[89]; -ccx qubits[35], qubits[87], qubits[88]; -ccx qubits[34], qubits[86], qubits[87]; -ccx qubits[33], qubits[85], qubits[86]; -ccx qubits[32], qubits[84], qubits[85]; -ccx qubits[31], qubits[83], qubits[84]; -ccx qubits[30], qubits[82], qubits[83]; -ccx qubits[29], qubits[81], qubits[82]; -ccx qubits[28], qubits[80], qubits[81]; -ccx qubits[27], qubits[79], qubits[80]; -ccx qubits[26], qubits[78], qubits[79]; -ccx qubits[25], qubits[77], qubits[78]; -ccx qubits[24], qubits[76], qubits[77]; -ccx qubits[23], qubits[75], qubits[76]; -ccx qubits[22], qubits[74], qubits[75]; -ccx qubits[21], qubits[73], qubits[74]; -ccx qubits[20], qubits[72], qubits[73]; -ccx qubits[19], qubits[71], qubits[72]; -ccx qubits[18], qubits[70], qubits[71]; -ccx qubits[17], qubits[69], qubits[70]; -ccx qubits[16], qubits[68], qubits[69]; -ccx qubits[15], qubits[67], qubits[68]; -ccx qubits[14], qubits[66], qubits[67]; -ccx qubits[13], qubits[65], qubits[66]; -ccx qubits[12], qubits[64], qubits[65]; -ccx qubits[11], qubits[63], qubits[64]; -ccx qubits[10], qubits[62], qubits[63]; -ccx qubits[9], qubits[61], qubits[62]; -ccx qubits[8], qubits[60], qubits[61]; -ccx qubits[7], qubits[59], qubits[60]; -ccx qubits[6], qubits[58], qubits[59]; -ccx qubits[5], qubits[57], qubits[58]; -ccx qubits[4], qubits[56], qubits[57]; -ccx qubits[3], qubits[55], qubits[56]; -ccx qubits[2], qubits[54], qubits[55]; -ccx qubits[0], qubits[1], qubits[54]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +cz qubits[102], qubits[103]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -161,317 +161,317 @@ x qubits[50]; x qubits[52]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; -ccx qubits[0], qubits[1], qubits[54]; -ccx qubits[2], qubits[54], qubits[55]; -ccx qubits[3], qubits[55], qubits[56]; -ccx qubits[4], qubits[56], qubits[57]; -ccx qubits[5], qubits[57], qubits[58]; -ccx qubits[6], qubits[58], qubits[59]; -ccx qubits[7], qubits[59], qubits[60]; -ccx qubits[8], qubits[60], qubits[61]; -ccx qubits[9], qubits[61], qubits[62]; -ccx qubits[10], qubits[62], qubits[63]; -ccx qubits[11], qubits[63], qubits[64]; -ccx qubits[12], qubits[64], qubits[65]; -ccx qubits[13], qubits[65], qubits[66]; -ccx qubits[14], qubits[66], qubits[67]; -ccx qubits[15], qubits[67], qubits[68]; -ccx qubits[16], qubits[68], qubits[69]; -ccx qubits[17], qubits[69], qubits[70]; -ccx qubits[18], qubits[70], qubits[71]; -ccx qubits[19], qubits[71], qubits[72]; -ccx qubits[20], qubits[72], qubits[73]; -ccx qubits[21], qubits[73], qubits[74]; -ccx qubits[22], qubits[74], qubits[75]; -ccx qubits[23], qubits[75], qubits[76]; -ccx qubits[24], qubits[76], qubits[77]; -ccx qubits[25], qubits[77], qubits[78]; -ccx qubits[26], qubits[78], qubits[79]; -ccx qubits[27], qubits[79], qubits[80]; -ccx qubits[28], qubits[80], qubits[81]; -ccx qubits[29], qubits[81], qubits[82]; -ccx qubits[30], qubits[82], qubits[83]; -ccx qubits[31], qubits[83], qubits[84]; -ccx qubits[32], qubits[84], qubits[85]; -ccx qubits[33], qubits[85], qubits[86]; -ccx qubits[34], qubits[86], qubits[87]; -ccx qubits[35], qubits[87], qubits[88]; -ccx qubits[36], qubits[88], qubits[89]; -ccx qubits[37], qubits[89], qubits[90]; -ccx qubits[38], qubits[90], qubits[91]; -ccx qubits[39], qubits[91], qubits[92]; -ccx qubits[40], qubits[92], qubits[93]; -ccx qubits[41], qubits[93], qubits[94]; -ccx qubits[42], qubits[94], qubits[95]; -ccx qubits[43], qubits[95], qubits[96]; -ccx qubits[44], qubits[96], qubits[97]; -ccx qubits[45], qubits[97], qubits[98]; -ccx qubits[46], qubits[98], qubits[99]; -ccx qubits[47], qubits[99], qubits[100]; -ccx qubits[48], qubits[100], qubits[101]; -ccx qubits[49], qubits[101], qubits[102]; -ccx qubits[50], qubits[102], qubits[103]; -ccx qubits[51], qubits[103], qubits[104]; -cz qubits[104], qubits[52]; -ccx qubits[51], qubits[103], qubits[104]; -ccx qubits[50], qubits[102], qubits[103]; -ccx qubits[49], qubits[101], qubits[102]; -ccx qubits[48], qubits[100], qubits[101]; -ccx qubits[47], qubits[99], qubits[100]; -ccx qubits[46], qubits[98], qubits[99]; -ccx qubits[45], qubits[97], qubits[98]; -ccx qubits[44], qubits[96], qubits[97]; -ccx qubits[43], qubits[95], qubits[96]; -ccx qubits[42], qubits[94], qubits[95]; -ccx qubits[41], qubits[93], qubits[94]; -ccx qubits[40], qubits[92], qubits[93]; -ccx qubits[39], qubits[91], qubits[92]; -ccx qubits[38], qubits[90], qubits[91]; -ccx qubits[37], qubits[89], qubits[90]; -ccx qubits[36], qubits[88], qubits[89]; -ccx qubits[35], qubits[87], qubits[88]; -ccx qubits[34], qubits[86], qubits[87]; -ccx qubits[33], qubits[85], qubits[86]; -ccx qubits[32], qubits[84], qubits[85]; -ccx qubits[31], qubits[83], qubits[84]; -ccx qubits[30], qubits[82], qubits[83]; -ccx qubits[29], qubits[81], qubits[82]; -ccx qubits[28], qubits[80], qubits[81]; -ccx qubits[27], qubits[79], qubits[80]; -ccx qubits[26], qubits[78], qubits[79]; -ccx qubits[25], qubits[77], qubits[78]; -ccx qubits[24], qubits[76], qubits[77]; -ccx qubits[23], qubits[75], qubits[76]; -ccx qubits[22], qubits[74], qubits[75]; -ccx qubits[21], qubits[73], qubits[74]; -ccx qubits[20], qubits[72], qubits[73]; -ccx qubits[19], qubits[71], qubits[72]; -ccx qubits[18], qubits[70], qubits[71]; -ccx qubits[17], qubits[69], qubits[70]; -ccx qubits[16], qubits[68], qubits[69]; -ccx qubits[15], qubits[67], qubits[68]; -ccx qubits[14], qubits[66], qubits[67]; -ccx qubits[13], qubits[65], qubits[66]; -ccx qubits[12], qubits[64], qubits[65]; -ccx qubits[11], qubits[63], qubits[64]; -ccx qubits[10], qubits[62], qubits[63]; -ccx qubits[9], qubits[61], qubits[62]; -ccx qubits[8], qubits[60], qubits[61]; -ccx qubits[7], qubits[59], qubits[60]; -ccx qubits[6], qubits[58], qubits[59]; -ccx qubits[5], qubits[57], qubits[58]; -ccx qubits[4], qubits[56], qubits[57]; -ccx qubits[3], qubits[55], qubits[56]; -ccx qubits[2], qubits[54], qubits[55]; -ccx qubits[0], qubits[1], qubits[54]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +cz qubits[102], qubits[103]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; +x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; -z qubits[53]; +h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +z qubits[104]; diff --git a/benchmarks/all/OEGrover/53/post.hsl b/benchmarks/all/OEGrover/53/post.hsl index a9d977928..0f8d5fa43 100644 --- a/benchmarks/all/OEGrover/53/post.hsl +++ b/benchmarks/all/OEGrover/53/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 25 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/53/post.lsta b/benchmarks/all/OEGrover/53/post.lsta deleted file mode 100644 index 27ded17b0..000000000 --- a/benchmarks/all/OEGrover/53/post.lsta +++ /dev/null @@ -1,272 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 108) -> 105 -[54,1](107, 109) -> 106 -[55,1](110, 110) -> 107 -[55,1](111, 110) -> 108 -[55,1](112, 110) -> 109 -[56,1](113, 113) -> 110 -[56,1](114, 113) -> 111 -[56,1](115, 113) -> 112 -[57,1](116, 116) -> 113 -[57,1](117, 116) -> 114 -[57,1](118, 116) -> 115 -[58,1](119, 119) -> 116 -[58,1](120, 119) -> 117 -[58,1](121, 119) -> 118 -[59,1](122, 122) -> 119 -[59,1](123, 122) -> 120 -[59,1](124, 122) -> 121 -[60,1](125, 125) -> 122 -[60,1](126, 125) -> 123 -[60,1](127, 125) -> 124 -[61,1](128, 128) -> 125 -[61,1](129, 128) -> 126 -[61,1](130, 128) -> 127 -[62,1](131, 131) -> 128 -[62,1](132, 131) -> 129 -[62,1](133, 131) -> 130 -[63,1](134, 134) -> 131 -[63,1](135, 134) -> 132 -[63,1](136, 134) -> 133 -[64,1](137, 137) -> 134 -[64,1](138, 137) -> 135 -[64,1](139, 137) -> 136 -[65,1](140, 140) -> 137 -[65,1](141, 140) -> 138 -[65,1](142, 140) -> 139 -[66,1](143, 143) -> 140 -[66,1](144, 143) -> 141 -[66,1](145, 143) -> 142 -[67,1](146, 146) -> 143 -[67,1](147, 146) -> 144 -[67,1](148, 146) -> 145 -[68,1](149, 149) -> 146 -[68,1](150, 149) -> 147 -[68,1](151, 149) -> 148 -[69,1](152, 152) -> 149 -[69,1](153, 152) -> 150 -[69,1](154, 152) -> 151 -[70,1](155, 155) -> 152 -[70,1](156, 155) -> 153 -[70,1](157, 155) -> 154 -[71,1](158, 158) -> 155 -[71,1](159, 158) -> 156 -[71,1](160, 158) -> 157 -[72,1](161, 161) -> 158 -[72,1](162, 161) -> 159 -[72,1](163, 161) -> 160 -[73,1](164, 164) -> 161 -[73,1](165, 164) -> 162 -[73,1](166, 164) -> 163 -[74,1](167, 167) -> 164 -[74,1](168, 167) -> 165 -[74,1](169, 167) -> 166 -[75,1](170, 170) -> 167 -[75,1](171, 170) -> 168 -[75,1](172, 170) -> 169 -[76,1](173, 173) -> 170 -[76,1](174, 173) -> 171 -[76,1](175, 173) -> 172 -[77,1](176, 176) -> 173 -[77,1](177, 176) -> 174 -[77,1](178, 176) -> 175 -[78,1](179, 179) -> 176 -[78,1](180, 179) -> 177 -[78,1](181, 179) -> 178 -[79,1](182, 182) -> 179 -[79,1](183, 182) -> 180 -[79,1](184, 182) -> 181 -[80,1](185, 185) -> 182 -[80,1](186, 185) -> 183 -[80,1](187, 185) -> 184 -[81,1](188, 188) -> 185 -[81,1](189, 188) -> 186 -[81,1](190, 188) -> 187 -[82,1](191, 191) -> 188 -[82,1](192, 191) -> 189 -[82,1](193, 191) -> 190 -[83,1](194, 194) -> 191 -[83,1](195, 194) -> 192 -[83,1](196, 194) -> 193 -[84,1](197, 197) -> 194 -[84,1](198, 197) -> 195 -[84,1](199, 197) -> 196 -[85,1](200, 200) -> 197 -[85,1](201, 200) -> 198 -[85,1](202, 200) -> 199 -[86,1](203, 203) -> 200 -[86,1](204, 203) -> 201 -[86,1](205, 203) -> 202 -[87,1](206, 206) -> 203 -[87,1](207, 206) -> 204 -[87,1](208, 206) -> 205 -[88,1](209, 209) -> 206 -[88,1](210, 209) -> 207 -[88,1](211, 209) -> 208 -[89,1](212, 212) -> 209 -[89,1](213, 212) -> 210 -[89,1](214, 212) -> 211 -[90,1](215, 215) -> 212 -[90,1](216, 215) -> 213 -[90,1](217, 215) -> 214 -[91,1](218, 218) -> 215 -[91,1](219, 218) -> 216 -[91,1](220, 218) -> 217 -[92,1](221, 221) -> 218 -[92,1](222, 221) -> 219 -[92,1](223, 221) -> 220 -[93,1](224, 224) -> 221 -[93,1](225, 224) -> 222 -[93,1](226, 224) -> 223 -[94,1](227, 227) -> 224 -[94,1](228, 227) -> 225 -[94,1](229, 227) -> 226 -[95,1](230, 230) -> 227 -[95,1](231, 230) -> 228 -[95,1](232, 230) -> 229 -[96,1](233, 233) -> 230 -[96,1](234, 233) -> 231 -[96,1](235, 233) -> 232 -[97,1](236, 236) -> 233 -[97,1](237, 236) -> 234 -[97,1](238, 236) -> 235 -[98,1](239, 239) -> 236 -[98,1](240, 239) -> 237 -[98,1](241, 239) -> 238 -[99,1](242, 242) -> 239 -[99,1](243, 242) -> 240 -[99,1](244, 242) -> 241 -[100,1](245, 245) -> 242 -[100,1](246, 245) -> 243 -[100,1](247, 245) -> 244 -[101,1](248, 248) -> 245 -[101,1](249, 248) -> 246 -[101,1](250, 248) -> 247 -[102,1](251, 251) -> 248 -[102,1](252, 251) -> 249 -[102,1](253, 251) -> 250 -[103,1](254, 254) -> 251 -[103,1](255, 254) -> 252 -[103,1](256, 254) -> 253 -[104,1](257, 257) -> 254 -[104,1](258, 257) -> 255 -[104,1](259, 257) -> 256 -[105,1](260, 260) -> 257 -[105,1](261, 260) -> 258 -[105,1](262, 260) -> 259 -[106,1](263, 263) -> 260 -[106,1](264, 263) -> 261 -[106,1](265, 263) -> 262 -[p1,1] -> 263 -[p2,1] -> 264 -[p3,1] -> 265 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/53/pre.hsl b/benchmarks/all/OEGrover/53/pre.hsl index 4e045c02d..ac441109f 100644 --- a/benchmarks/all/OEGrover/53/pre.hsl +++ b/benchmarks/all/OEGrover/53/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 25 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 9007199254740991 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/53/pre.lsta b/benchmarks/all/OEGrover/53/pre.lsta deleted file mode 100644 index 3130f1549..000000000 --- a/benchmarks/all/OEGrover/53/pre.lsta +++ /dev/null @@ -1,276 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 108) -> 105 -[54,1](107, 109) -> 106 -[55,1](110, 110) -> 107 -[55,1](111, 110) -> 108 -[55,1](112, 110) -> 109 -[56,1](113, 113) -> 110 -[56,1](114, 113) -> 111 -[56,1](115, 113) -> 112 -[57,1](116, 116) -> 113 -[57,1](117, 116) -> 114 -[57,1](118, 116) -> 115 -[58,1](119, 119) -> 116 -[58,1](120, 119) -> 117 -[58,1](121, 119) -> 118 -[59,1](122, 122) -> 119 -[59,1](123, 122) -> 120 -[59,1](124, 122) -> 121 -[60,1](125, 125) -> 122 -[60,1](126, 125) -> 123 -[60,1](127, 125) -> 124 -[61,1](128, 128) -> 125 -[61,1](129, 128) -> 126 -[61,1](130, 128) -> 127 -[62,1](131, 131) -> 128 -[62,1](132, 131) -> 129 -[62,1](133, 131) -> 130 -[63,1](134, 134) -> 131 -[63,1](135, 134) -> 132 -[63,1](136, 134) -> 133 -[64,1](137, 137) -> 134 -[64,1](138, 137) -> 135 -[64,1](139, 137) -> 136 -[65,1](140, 140) -> 137 -[65,1](141, 140) -> 138 -[65,1](142, 140) -> 139 -[66,1](143, 143) -> 140 -[66,1](144, 143) -> 141 -[66,1](145, 143) -> 142 -[67,1](146, 146) -> 143 -[67,1](147, 146) -> 144 -[67,1](148, 146) -> 145 -[68,1](149, 149) -> 146 -[68,1](150, 149) -> 147 -[68,1](151, 149) -> 148 -[69,1](152, 152) -> 149 -[69,1](153, 152) -> 150 -[69,1](154, 152) -> 151 -[70,1](155, 155) -> 152 -[70,1](156, 155) -> 153 -[70,1](157, 155) -> 154 -[71,1](158, 158) -> 155 -[71,1](159, 158) -> 156 -[71,1](160, 158) -> 157 -[72,1](161, 161) -> 158 -[72,1](162, 161) -> 159 -[72,1](163, 161) -> 160 -[73,1](164, 164) -> 161 -[73,1](165, 164) -> 162 -[73,1](166, 164) -> 163 -[74,1](167, 167) -> 164 -[74,1](168, 167) -> 165 -[74,1](169, 167) -> 166 -[75,1](170, 170) -> 167 -[75,1](171, 170) -> 168 -[75,1](172, 170) -> 169 -[76,1](173, 173) -> 170 -[76,1](174, 173) -> 171 -[76,1](175, 173) -> 172 -[77,1](176, 176) -> 173 -[77,1](177, 176) -> 174 -[77,1](178, 176) -> 175 -[78,1](179, 179) -> 176 -[78,1](180, 179) -> 177 -[78,1](181, 179) -> 178 -[79,1](182, 182) -> 179 -[79,1](183, 182) -> 180 -[79,1](184, 182) -> 181 -[80,1](185, 185) -> 182 -[80,1](186, 185) -> 183 -[80,1](187, 185) -> 184 -[81,1](188, 188) -> 185 -[81,1](189, 188) -> 186 -[81,1](190, 188) -> 187 -[82,1](191, 191) -> 188 -[82,1](192, 191) -> 189 -[82,1](193, 191) -> 190 -[83,1](194, 194) -> 191 -[83,1](195, 194) -> 192 -[83,1](196, 194) -> 193 -[84,1](197, 197) -> 194 -[84,1](198, 197) -> 195 -[84,1](199, 197) -> 196 -[85,1](200, 200) -> 197 -[85,1](201, 200) -> 198 -[85,1](202, 200) -> 199 -[86,1](203, 203) -> 200 -[86,1](204, 203) -> 201 -[86,1](205, 203) -> 202 -[87,1](206, 206) -> 203 -[87,1](207, 206) -> 204 -[87,1](208, 206) -> 205 -[88,1](209, 209) -> 206 -[88,1](210, 209) -> 207 -[88,1](211, 209) -> 208 -[89,1](212, 212) -> 209 -[89,1](213, 212) -> 210 -[89,1](214, 212) -> 211 -[90,1](215, 215) -> 212 -[90,1](216, 215) -> 213 -[90,1](217, 215) -> 214 -[91,1](218, 218) -> 215 -[91,1](219, 218) -> 216 -[91,1](220, 218) -> 217 -[92,1](221, 221) -> 218 -[92,1](222, 221) -> 219 -[92,1](223, 221) -> 220 -[93,1](224, 224) -> 221 -[93,1](225, 224) -> 222 -[93,1](226, 224) -> 223 -[94,1](227, 227) -> 224 -[94,1](228, 227) -> 225 -[94,1](229, 227) -> 226 -[95,1](230, 230) -> 227 -[95,1](231, 230) -> 228 -[95,1](232, 230) -> 229 -[96,1](233, 233) -> 230 -[96,1](234, 233) -> 231 -[96,1](235, 233) -> 232 -[97,1](236, 236) -> 233 -[97,1](237, 236) -> 234 -[97,1](238, 236) -> 235 -[98,1](239, 239) -> 236 -[98,1](240, 239) -> 237 -[98,1](241, 239) -> 238 -[99,1](242, 242) -> 239 -[99,1](243, 242) -> 240 -[99,1](244, 242) -> 241 -[100,1](245, 245) -> 242 -[100,1](246, 245) -> 243 -[100,1](247, 245) -> 244 -[101,1](248, 248) -> 245 -[101,1](249, 248) -> 246 -[101,1](250, 248) -> 247 -[102,1](251, 251) -> 248 -[102,1](252, 251) -> 249 -[102,1](253, 251) -> 250 -[103,1](254, 254) -> 251 -[103,1](255, 254) -> 252 -[103,1](256, 254) -> 253 -[104,1](257, 257) -> 254 -[104,1](258, 257) -> 255 -[104,1](259, 257) -> 256 -[105,1](260, 260) -> 257 -[105,1](261, 260) -> 258 -[105,1](262, 260) -> 259 -[106,1](263, 263) -> 260 -[106,1](264, 263) -> 261 -[106,1](265, 263) -> 262 -[c0,1] -> 263 -[a,1] -> 264 -[b,1] -> 265 -Constraints -9007199254740991 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/54/circuit.qasm b/benchmarks/all/OEGrover/54/circuit.qasm index 9efeb37ca..8b9dd8a2b 100644 --- a/benchmarks/all/OEGrover/54/circuit.qasm +++ b/benchmarks/all/OEGrover/54/circuit.qasm @@ -1,139 +1,139 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[108]; +qreg qubits[107]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -ccx qubits[0], qubits[1], qubits[55]; -ccx qubits[2], qubits[55], qubits[56]; -ccx qubits[3], qubits[56], qubits[57]; -ccx qubits[4], qubits[57], qubits[58]; -ccx qubits[5], qubits[58], qubits[59]; -ccx qubits[6], qubits[59], qubits[60]; -ccx qubits[7], qubits[60], qubits[61]; -ccx qubits[8], qubits[61], qubits[62]; -ccx qubits[9], qubits[62], qubits[63]; -ccx qubits[10], qubits[63], qubits[64]; -ccx qubits[11], qubits[64], qubits[65]; -ccx qubits[12], qubits[65], qubits[66]; -ccx qubits[13], qubits[66], qubits[67]; -ccx qubits[14], qubits[67], qubits[68]; -ccx qubits[15], qubits[68], qubits[69]; -ccx qubits[16], qubits[69], qubits[70]; -ccx qubits[17], qubits[70], qubits[71]; -ccx qubits[18], qubits[71], qubits[72]; -ccx qubits[19], qubits[72], qubits[73]; -ccx qubits[20], qubits[73], qubits[74]; -ccx qubits[21], qubits[74], qubits[75]; -ccx qubits[22], qubits[75], qubits[76]; -ccx qubits[23], qubits[76], qubits[77]; -ccx qubits[24], qubits[77], qubits[78]; -ccx qubits[25], qubits[78], qubits[79]; -ccx qubits[26], qubits[79], qubits[80]; -ccx qubits[27], qubits[80], qubits[81]; -ccx qubits[28], qubits[81], qubits[82]; -ccx qubits[29], qubits[82], qubits[83]; -ccx qubits[30], qubits[83], qubits[84]; -ccx qubits[31], qubits[84], qubits[85]; -ccx qubits[32], qubits[85], qubits[86]; -ccx qubits[33], qubits[86], qubits[87]; -ccx qubits[34], qubits[87], qubits[88]; -ccx qubits[35], qubits[88], qubits[89]; -ccx qubits[36], qubits[89], qubits[90]; -ccx qubits[37], qubits[90], qubits[91]; -ccx qubits[38], qubits[91], qubits[92]; -ccx qubits[39], qubits[92], qubits[93]; -ccx qubits[40], qubits[93], qubits[94]; -ccx qubits[41], qubits[94], qubits[95]; -ccx qubits[42], qubits[95], qubits[96]; -ccx qubits[43], qubits[96], qubits[97]; -ccx qubits[44], qubits[97], qubits[98]; -ccx qubits[45], qubits[98], qubits[99]; -ccx qubits[46], qubits[99], qubits[100]; -ccx qubits[47], qubits[100], qubits[101]; -ccx qubits[48], qubits[101], qubits[102]; -ccx qubits[49], qubits[102], qubits[103]; -ccx qubits[50], qubits[103], qubits[104]; -ccx qubits[51], qubits[104], qubits[105]; -ccx qubits[52], qubits[105], qubits[106]; -cz qubits[106], qubits[53]; -ccx qubits[52], qubits[105], qubits[106]; -ccx qubits[51], qubits[104], qubits[105]; -ccx qubits[50], qubits[103], qubits[104]; -ccx qubits[49], qubits[102], qubits[103]; -ccx qubits[48], qubits[101], qubits[102]; -ccx qubits[47], qubits[100], qubits[101]; -ccx qubits[46], qubits[99], qubits[100]; -ccx qubits[45], qubits[98], qubits[99]; -ccx qubits[44], qubits[97], qubits[98]; -ccx qubits[43], qubits[96], qubits[97]; -ccx qubits[42], qubits[95], qubits[96]; -ccx qubits[41], qubits[94], qubits[95]; -ccx qubits[40], qubits[93], qubits[94]; -ccx qubits[39], qubits[92], qubits[93]; -ccx qubits[38], qubits[91], qubits[92]; -ccx qubits[37], qubits[90], qubits[91]; -ccx qubits[36], qubits[89], qubits[90]; -ccx qubits[35], qubits[88], qubits[89]; -ccx qubits[34], qubits[87], qubits[88]; -ccx qubits[33], qubits[86], qubits[87]; -ccx qubits[32], qubits[85], qubits[86]; -ccx qubits[31], qubits[84], qubits[85]; -ccx qubits[30], qubits[83], qubits[84]; -ccx qubits[29], qubits[82], qubits[83]; -ccx qubits[28], qubits[81], qubits[82]; -ccx qubits[27], qubits[80], qubits[81]; -ccx qubits[26], qubits[79], qubits[80]; -ccx qubits[25], qubits[78], qubits[79]; -ccx qubits[24], qubits[77], qubits[78]; -ccx qubits[23], qubits[76], qubits[77]; -ccx qubits[22], qubits[75], qubits[76]; -ccx qubits[21], qubits[74], qubits[75]; -ccx qubits[20], qubits[73], qubits[74]; -ccx qubits[19], qubits[72], qubits[73]; -ccx qubits[18], qubits[71], qubits[72]; -ccx qubits[17], qubits[70], qubits[71]; -ccx qubits[16], qubits[69], qubits[70]; -ccx qubits[15], qubits[68], qubits[69]; -ccx qubits[14], qubits[67], qubits[68]; -ccx qubits[13], qubits[66], qubits[67]; -ccx qubits[12], qubits[65], qubits[66]; -ccx qubits[11], qubits[64], qubits[65]; -ccx qubits[10], qubits[63], qubits[64]; -ccx qubits[9], qubits[62], qubits[63]; -ccx qubits[8], qubits[61], qubits[62]; -ccx qubits[7], qubits[60], qubits[61]; -ccx qubits[6], qubits[59], qubits[60]; -ccx qubits[5], qubits[58], qubits[59]; -ccx qubits[4], qubits[57], qubits[58]; -ccx qubits[3], qubits[56], qubits[57]; -ccx qubits[2], qubits[55], qubits[56]; -ccx qubits[0], qubits[1], qubits[55]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +cz qubits[104], qubits[105]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -163,323 +163,323 @@ x qubits[50]; x qubits[52]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -ccx qubits[0], qubits[1], qubits[55]; -ccx qubits[2], qubits[55], qubits[56]; -ccx qubits[3], qubits[56], qubits[57]; -ccx qubits[4], qubits[57], qubits[58]; -ccx qubits[5], qubits[58], qubits[59]; -ccx qubits[6], qubits[59], qubits[60]; -ccx qubits[7], qubits[60], qubits[61]; -ccx qubits[8], qubits[61], qubits[62]; -ccx qubits[9], qubits[62], qubits[63]; -ccx qubits[10], qubits[63], qubits[64]; -ccx qubits[11], qubits[64], qubits[65]; -ccx qubits[12], qubits[65], qubits[66]; -ccx qubits[13], qubits[66], qubits[67]; -ccx qubits[14], qubits[67], qubits[68]; -ccx qubits[15], qubits[68], qubits[69]; -ccx qubits[16], qubits[69], qubits[70]; -ccx qubits[17], qubits[70], qubits[71]; -ccx qubits[18], qubits[71], qubits[72]; -ccx qubits[19], qubits[72], qubits[73]; -ccx qubits[20], qubits[73], qubits[74]; -ccx qubits[21], qubits[74], qubits[75]; -ccx qubits[22], qubits[75], qubits[76]; -ccx qubits[23], qubits[76], qubits[77]; -ccx qubits[24], qubits[77], qubits[78]; -ccx qubits[25], qubits[78], qubits[79]; -ccx qubits[26], qubits[79], qubits[80]; -ccx qubits[27], qubits[80], qubits[81]; -ccx qubits[28], qubits[81], qubits[82]; -ccx qubits[29], qubits[82], qubits[83]; -ccx qubits[30], qubits[83], qubits[84]; -ccx qubits[31], qubits[84], qubits[85]; -ccx qubits[32], qubits[85], qubits[86]; -ccx qubits[33], qubits[86], qubits[87]; -ccx qubits[34], qubits[87], qubits[88]; -ccx qubits[35], qubits[88], qubits[89]; -ccx qubits[36], qubits[89], qubits[90]; -ccx qubits[37], qubits[90], qubits[91]; -ccx qubits[38], qubits[91], qubits[92]; -ccx qubits[39], qubits[92], qubits[93]; -ccx qubits[40], qubits[93], qubits[94]; -ccx qubits[41], qubits[94], qubits[95]; -ccx qubits[42], qubits[95], qubits[96]; -ccx qubits[43], qubits[96], qubits[97]; -ccx qubits[44], qubits[97], qubits[98]; -ccx qubits[45], qubits[98], qubits[99]; -ccx qubits[46], qubits[99], qubits[100]; -ccx qubits[47], qubits[100], qubits[101]; -ccx qubits[48], qubits[101], qubits[102]; -ccx qubits[49], qubits[102], qubits[103]; -ccx qubits[50], qubits[103], qubits[104]; -ccx qubits[51], qubits[104], qubits[105]; -ccx qubits[52], qubits[105], qubits[106]; -cz qubits[106], qubits[53]; -ccx qubits[52], qubits[105], qubits[106]; -ccx qubits[51], qubits[104], qubits[105]; -ccx qubits[50], qubits[103], qubits[104]; -ccx qubits[49], qubits[102], qubits[103]; -ccx qubits[48], qubits[101], qubits[102]; -ccx qubits[47], qubits[100], qubits[101]; -ccx qubits[46], qubits[99], qubits[100]; -ccx qubits[45], qubits[98], qubits[99]; -ccx qubits[44], qubits[97], qubits[98]; -ccx qubits[43], qubits[96], qubits[97]; -ccx qubits[42], qubits[95], qubits[96]; -ccx qubits[41], qubits[94], qubits[95]; -ccx qubits[40], qubits[93], qubits[94]; -ccx qubits[39], qubits[92], qubits[93]; -ccx qubits[38], qubits[91], qubits[92]; -ccx qubits[37], qubits[90], qubits[91]; -ccx qubits[36], qubits[89], qubits[90]; -ccx qubits[35], qubits[88], qubits[89]; -ccx qubits[34], qubits[87], qubits[88]; -ccx qubits[33], qubits[86], qubits[87]; -ccx qubits[32], qubits[85], qubits[86]; -ccx qubits[31], qubits[84], qubits[85]; -ccx qubits[30], qubits[83], qubits[84]; -ccx qubits[29], qubits[82], qubits[83]; -ccx qubits[28], qubits[81], qubits[82]; -ccx qubits[27], qubits[80], qubits[81]; -ccx qubits[26], qubits[79], qubits[80]; -ccx qubits[25], qubits[78], qubits[79]; -ccx qubits[24], qubits[77], qubits[78]; -ccx qubits[23], qubits[76], qubits[77]; -ccx qubits[22], qubits[75], qubits[76]; -ccx qubits[21], qubits[74], qubits[75]; -ccx qubits[20], qubits[73], qubits[74]; -ccx qubits[19], qubits[72], qubits[73]; -ccx qubits[18], qubits[71], qubits[72]; -ccx qubits[17], qubits[70], qubits[71]; -ccx qubits[16], qubits[69], qubits[70]; -ccx qubits[15], qubits[68], qubits[69]; -ccx qubits[14], qubits[67], qubits[68]; -ccx qubits[13], qubits[66], qubits[67]; -ccx qubits[12], qubits[65], qubits[66]; -ccx qubits[11], qubits[64], qubits[65]; -ccx qubits[10], qubits[63], qubits[64]; -ccx qubits[9], qubits[62], qubits[63]; -ccx qubits[8], qubits[61], qubits[62]; -ccx qubits[7], qubits[60], qubits[61]; -ccx qubits[6], qubits[59], qubits[60]; -ccx qubits[5], qubits[58], qubits[59]; -ccx qubits[4], qubits[57], qubits[58]; -ccx qubits[3], qubits[56], qubits[57]; -ccx qubits[2], qubits[55], qubits[56]; -ccx qubits[0], qubits[1], qubits[55]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +cz qubits[104], qubits[105]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -z qubits[54]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +z qubits[106]; diff --git a/benchmarks/all/OEGrover/54/post.hsl b/benchmarks/all/OEGrover/54/post.hsl index 000ec5027..1e91412fb 100644 --- a/benchmarks/all/OEGrover/54/post.hsl +++ b/benchmarks/all/OEGrover/54/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101100000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 26 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/54/post.lsta b/benchmarks/all/OEGrover/54/post.lsta deleted file mode 100644 index c0773d46b..000000000 --- a/benchmarks/all/OEGrover/54/post.lsta +++ /dev/null @@ -1,277 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 110) -> 107 -[55,1](109, 111) -> 108 -[56,1](112, 112) -> 109 -[56,1](113, 112) -> 110 -[56,1](114, 112) -> 111 -[57,1](115, 115) -> 112 -[57,1](116, 115) -> 113 -[57,1](117, 115) -> 114 -[58,1](118, 118) -> 115 -[58,1](119, 118) -> 116 -[58,1](120, 118) -> 117 -[59,1](121, 121) -> 118 -[59,1](122, 121) -> 119 -[59,1](123, 121) -> 120 -[60,1](124, 124) -> 121 -[60,1](125, 124) -> 122 -[60,1](126, 124) -> 123 -[61,1](127, 127) -> 124 -[61,1](128, 127) -> 125 -[61,1](129, 127) -> 126 -[62,1](130, 130) -> 127 -[62,1](131, 130) -> 128 -[62,1](132, 130) -> 129 -[63,1](133, 133) -> 130 -[63,1](134, 133) -> 131 -[63,1](135, 133) -> 132 -[64,1](136, 136) -> 133 -[64,1](137, 136) -> 134 -[64,1](138, 136) -> 135 -[65,1](139, 139) -> 136 -[65,1](140, 139) -> 137 -[65,1](141, 139) -> 138 -[66,1](142, 142) -> 139 -[66,1](143, 142) -> 140 -[66,1](144, 142) -> 141 -[67,1](145, 145) -> 142 -[67,1](146, 145) -> 143 -[67,1](147, 145) -> 144 -[68,1](148, 148) -> 145 -[68,1](149, 148) -> 146 -[68,1](150, 148) -> 147 -[69,1](151, 151) -> 148 -[69,1](152, 151) -> 149 -[69,1](153, 151) -> 150 -[70,1](154, 154) -> 151 -[70,1](155, 154) -> 152 -[70,1](156, 154) -> 153 -[71,1](157, 157) -> 154 -[71,1](158, 157) -> 155 -[71,1](159, 157) -> 156 -[72,1](160, 160) -> 157 -[72,1](161, 160) -> 158 -[72,1](162, 160) -> 159 -[73,1](163, 163) -> 160 -[73,1](164, 163) -> 161 -[73,1](165, 163) -> 162 -[74,1](166, 166) -> 163 -[74,1](167, 166) -> 164 -[74,1](168, 166) -> 165 -[75,1](169, 169) -> 166 -[75,1](170, 169) -> 167 -[75,1](171, 169) -> 168 -[76,1](172, 172) -> 169 -[76,1](173, 172) -> 170 -[76,1](174, 172) -> 171 -[77,1](175, 175) -> 172 -[77,1](176, 175) -> 173 -[77,1](177, 175) -> 174 -[78,1](178, 178) -> 175 -[78,1](179, 178) -> 176 -[78,1](180, 178) -> 177 -[79,1](181, 181) -> 178 -[79,1](182, 181) -> 179 -[79,1](183, 181) -> 180 -[80,1](184, 184) -> 181 -[80,1](185, 184) -> 182 -[80,1](186, 184) -> 183 -[81,1](187, 187) -> 184 -[81,1](188, 187) -> 185 -[81,1](189, 187) -> 186 -[82,1](190, 190) -> 187 -[82,1](191, 190) -> 188 -[82,1](192, 190) -> 189 -[83,1](193, 193) -> 190 -[83,1](194, 193) -> 191 -[83,1](195, 193) -> 192 -[84,1](196, 196) -> 193 -[84,1](197, 196) -> 194 -[84,1](198, 196) -> 195 -[85,1](199, 199) -> 196 -[85,1](200, 199) -> 197 -[85,1](201, 199) -> 198 -[86,1](202, 202) -> 199 -[86,1](203, 202) -> 200 -[86,1](204, 202) -> 201 -[87,1](205, 205) -> 202 -[87,1](206, 205) -> 203 -[87,1](207, 205) -> 204 -[88,1](208, 208) -> 205 -[88,1](209, 208) -> 206 -[88,1](210, 208) -> 207 -[89,1](211, 211) -> 208 -[89,1](212, 211) -> 209 -[89,1](213, 211) -> 210 -[90,1](214, 214) -> 211 -[90,1](215, 214) -> 212 -[90,1](216, 214) -> 213 -[91,1](217, 217) -> 214 -[91,1](218, 217) -> 215 -[91,1](219, 217) -> 216 -[92,1](220, 220) -> 217 -[92,1](221, 220) -> 218 -[92,1](222, 220) -> 219 -[93,1](223, 223) -> 220 -[93,1](224, 223) -> 221 -[93,1](225, 223) -> 222 -[94,1](226, 226) -> 223 -[94,1](227, 226) -> 224 -[94,1](228, 226) -> 225 -[95,1](229, 229) -> 226 -[95,1](230, 229) -> 227 -[95,1](231, 229) -> 228 -[96,1](232, 232) -> 229 -[96,1](233, 232) -> 230 -[96,1](234, 232) -> 231 -[97,1](235, 235) -> 232 -[97,1](236, 235) -> 233 -[97,1](237, 235) -> 234 -[98,1](238, 238) -> 235 -[98,1](239, 238) -> 236 -[98,1](240, 238) -> 237 -[99,1](241, 241) -> 238 -[99,1](242, 241) -> 239 -[99,1](243, 241) -> 240 -[100,1](244, 244) -> 241 -[100,1](245, 244) -> 242 -[100,1](246, 244) -> 243 -[101,1](247, 247) -> 244 -[101,1](248, 247) -> 245 -[101,1](249, 247) -> 246 -[102,1](250, 250) -> 247 -[102,1](251, 250) -> 248 -[102,1](252, 250) -> 249 -[103,1](253, 253) -> 250 -[103,1](254, 253) -> 251 -[103,1](255, 253) -> 252 -[104,1](256, 256) -> 253 -[104,1](257, 256) -> 254 -[104,1](258, 256) -> 255 -[105,1](259, 259) -> 256 -[105,1](260, 259) -> 257 -[105,1](261, 259) -> 258 -[106,1](262, 262) -> 259 -[106,1](263, 262) -> 260 -[106,1](264, 262) -> 261 -[107,1](265, 265) -> 262 -[107,1](266, 265) -> 263 -[107,1](267, 265) -> 264 -[108,1](268, 268) -> 265 -[108,1](269, 268) -> 266 -[108,1](270, 268) -> 267 -[p1,1] -> 268 -[p2,1] -> 269 -[p3,1] -> 270 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/54/pre.hsl b/benchmarks/all/OEGrover/54/pre.hsl index 91e16ad70..28cb50886 100644 --- a/benchmarks/all/OEGrover/54/pre.hsl +++ b/benchmarks/all/OEGrover/54/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 26 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 18014398509481983 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/54/pre.lsta b/benchmarks/all/OEGrover/54/pre.lsta deleted file mode 100644 index 29b06cc90..000000000 --- a/benchmarks/all/OEGrover/54/pre.lsta +++ /dev/null @@ -1,281 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 110) -> 107 -[55,1](109, 111) -> 108 -[56,1](112, 112) -> 109 -[56,1](113, 112) -> 110 -[56,1](114, 112) -> 111 -[57,1](115, 115) -> 112 -[57,1](116, 115) -> 113 -[57,1](117, 115) -> 114 -[58,1](118, 118) -> 115 -[58,1](119, 118) -> 116 -[58,1](120, 118) -> 117 -[59,1](121, 121) -> 118 -[59,1](122, 121) -> 119 -[59,1](123, 121) -> 120 -[60,1](124, 124) -> 121 -[60,1](125, 124) -> 122 -[60,1](126, 124) -> 123 -[61,1](127, 127) -> 124 -[61,1](128, 127) -> 125 -[61,1](129, 127) -> 126 -[62,1](130, 130) -> 127 -[62,1](131, 130) -> 128 -[62,1](132, 130) -> 129 -[63,1](133, 133) -> 130 -[63,1](134, 133) -> 131 -[63,1](135, 133) -> 132 -[64,1](136, 136) -> 133 -[64,1](137, 136) -> 134 -[64,1](138, 136) -> 135 -[65,1](139, 139) -> 136 -[65,1](140, 139) -> 137 -[65,1](141, 139) -> 138 -[66,1](142, 142) -> 139 -[66,1](143, 142) -> 140 -[66,1](144, 142) -> 141 -[67,1](145, 145) -> 142 -[67,1](146, 145) -> 143 -[67,1](147, 145) -> 144 -[68,1](148, 148) -> 145 -[68,1](149, 148) -> 146 -[68,1](150, 148) -> 147 -[69,1](151, 151) -> 148 -[69,1](152, 151) -> 149 -[69,1](153, 151) -> 150 -[70,1](154, 154) -> 151 -[70,1](155, 154) -> 152 -[70,1](156, 154) -> 153 -[71,1](157, 157) -> 154 -[71,1](158, 157) -> 155 -[71,1](159, 157) -> 156 -[72,1](160, 160) -> 157 -[72,1](161, 160) -> 158 -[72,1](162, 160) -> 159 -[73,1](163, 163) -> 160 -[73,1](164, 163) -> 161 -[73,1](165, 163) -> 162 -[74,1](166, 166) -> 163 -[74,1](167, 166) -> 164 -[74,1](168, 166) -> 165 -[75,1](169, 169) -> 166 -[75,1](170, 169) -> 167 -[75,1](171, 169) -> 168 -[76,1](172, 172) -> 169 -[76,1](173, 172) -> 170 -[76,1](174, 172) -> 171 -[77,1](175, 175) -> 172 -[77,1](176, 175) -> 173 -[77,1](177, 175) -> 174 -[78,1](178, 178) -> 175 -[78,1](179, 178) -> 176 -[78,1](180, 178) -> 177 -[79,1](181, 181) -> 178 -[79,1](182, 181) -> 179 -[79,1](183, 181) -> 180 -[80,1](184, 184) -> 181 -[80,1](185, 184) -> 182 -[80,1](186, 184) -> 183 -[81,1](187, 187) -> 184 -[81,1](188, 187) -> 185 -[81,1](189, 187) -> 186 -[82,1](190, 190) -> 187 -[82,1](191, 190) -> 188 -[82,1](192, 190) -> 189 -[83,1](193, 193) -> 190 -[83,1](194, 193) -> 191 -[83,1](195, 193) -> 192 -[84,1](196, 196) -> 193 -[84,1](197, 196) -> 194 -[84,1](198, 196) -> 195 -[85,1](199, 199) -> 196 -[85,1](200, 199) -> 197 -[85,1](201, 199) -> 198 -[86,1](202, 202) -> 199 -[86,1](203, 202) -> 200 -[86,1](204, 202) -> 201 -[87,1](205, 205) -> 202 -[87,1](206, 205) -> 203 -[87,1](207, 205) -> 204 -[88,1](208, 208) -> 205 -[88,1](209, 208) -> 206 -[88,1](210, 208) -> 207 -[89,1](211, 211) -> 208 -[89,1](212, 211) -> 209 -[89,1](213, 211) -> 210 -[90,1](214, 214) -> 211 -[90,1](215, 214) -> 212 -[90,1](216, 214) -> 213 -[91,1](217, 217) -> 214 -[91,1](218, 217) -> 215 -[91,1](219, 217) -> 216 -[92,1](220, 220) -> 217 -[92,1](221, 220) -> 218 -[92,1](222, 220) -> 219 -[93,1](223, 223) -> 220 -[93,1](224, 223) -> 221 -[93,1](225, 223) -> 222 -[94,1](226, 226) -> 223 -[94,1](227, 226) -> 224 -[94,1](228, 226) -> 225 -[95,1](229, 229) -> 226 -[95,1](230, 229) -> 227 -[95,1](231, 229) -> 228 -[96,1](232, 232) -> 229 -[96,1](233, 232) -> 230 -[96,1](234, 232) -> 231 -[97,1](235, 235) -> 232 -[97,1](236, 235) -> 233 -[97,1](237, 235) -> 234 -[98,1](238, 238) -> 235 -[98,1](239, 238) -> 236 -[98,1](240, 238) -> 237 -[99,1](241, 241) -> 238 -[99,1](242, 241) -> 239 -[99,1](243, 241) -> 240 -[100,1](244, 244) -> 241 -[100,1](245, 244) -> 242 -[100,1](246, 244) -> 243 -[101,1](247, 247) -> 244 -[101,1](248, 247) -> 245 -[101,1](249, 247) -> 246 -[102,1](250, 250) -> 247 -[102,1](251, 250) -> 248 -[102,1](252, 250) -> 249 -[103,1](253, 253) -> 250 -[103,1](254, 253) -> 251 -[103,1](255, 253) -> 252 -[104,1](256, 256) -> 253 -[104,1](257, 256) -> 254 -[104,1](258, 256) -> 255 -[105,1](259, 259) -> 256 -[105,1](260, 259) -> 257 -[105,1](261, 259) -> 258 -[106,1](262, 262) -> 259 -[106,1](263, 262) -> 260 -[106,1](264, 262) -> 261 -[107,1](265, 265) -> 262 -[107,1](266, 265) -> 263 -[107,1](267, 265) -> 264 -[108,1](268, 268) -> 265 -[108,1](269, 268) -> 266 -[108,1](270, 268) -> 267 -[c0,1] -> 268 -[a,1] -> 269 -[b,1] -> 270 -Constraints -18014398509481983 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/55/circuit.qasm b/benchmarks/all/OEGrover/55/circuit.qasm index 4380fec31..4a7d4291c 100644 --- a/benchmarks/all/OEGrover/55/circuit.qasm +++ b/benchmarks/all/OEGrover/55/circuit.qasm @@ -1,142 +1,142 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[110]; +qreg qubits[109]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -ccx qubits[0], qubits[1], qubits[56]; -ccx qubits[2], qubits[56], qubits[57]; -ccx qubits[3], qubits[57], qubits[58]; -ccx qubits[4], qubits[58], qubits[59]; -ccx qubits[5], qubits[59], qubits[60]; -ccx qubits[6], qubits[60], qubits[61]; -ccx qubits[7], qubits[61], qubits[62]; -ccx qubits[8], qubits[62], qubits[63]; -ccx qubits[9], qubits[63], qubits[64]; -ccx qubits[10], qubits[64], qubits[65]; -ccx qubits[11], qubits[65], qubits[66]; -ccx qubits[12], qubits[66], qubits[67]; -ccx qubits[13], qubits[67], qubits[68]; -ccx qubits[14], qubits[68], qubits[69]; -ccx qubits[15], qubits[69], qubits[70]; -ccx qubits[16], qubits[70], qubits[71]; -ccx qubits[17], qubits[71], qubits[72]; -ccx qubits[18], qubits[72], qubits[73]; -ccx qubits[19], qubits[73], qubits[74]; -ccx qubits[20], qubits[74], qubits[75]; -ccx qubits[21], qubits[75], qubits[76]; -ccx qubits[22], qubits[76], qubits[77]; -ccx qubits[23], qubits[77], qubits[78]; -ccx qubits[24], qubits[78], qubits[79]; -ccx qubits[25], qubits[79], qubits[80]; -ccx qubits[26], qubits[80], qubits[81]; -ccx qubits[27], qubits[81], qubits[82]; -ccx qubits[28], qubits[82], qubits[83]; -ccx qubits[29], qubits[83], qubits[84]; -ccx qubits[30], qubits[84], qubits[85]; -ccx qubits[31], qubits[85], qubits[86]; -ccx qubits[32], qubits[86], qubits[87]; -ccx qubits[33], qubits[87], qubits[88]; -ccx qubits[34], qubits[88], qubits[89]; -ccx qubits[35], qubits[89], qubits[90]; -ccx qubits[36], qubits[90], qubits[91]; -ccx qubits[37], qubits[91], qubits[92]; -ccx qubits[38], qubits[92], qubits[93]; -ccx qubits[39], qubits[93], qubits[94]; -ccx qubits[40], qubits[94], qubits[95]; -ccx qubits[41], qubits[95], qubits[96]; -ccx qubits[42], qubits[96], qubits[97]; -ccx qubits[43], qubits[97], qubits[98]; -ccx qubits[44], qubits[98], qubits[99]; -ccx qubits[45], qubits[99], qubits[100]; -ccx qubits[46], qubits[100], qubits[101]; -ccx qubits[47], qubits[101], qubits[102]; -ccx qubits[48], qubits[102], qubits[103]; -ccx qubits[49], qubits[103], qubits[104]; -ccx qubits[50], qubits[104], qubits[105]; -ccx qubits[51], qubits[105], qubits[106]; -ccx qubits[52], qubits[106], qubits[107]; -ccx qubits[53], qubits[107], qubits[108]; -cz qubits[108], qubits[54]; -ccx qubits[53], qubits[107], qubits[108]; -ccx qubits[52], qubits[106], qubits[107]; -ccx qubits[51], qubits[105], qubits[106]; -ccx qubits[50], qubits[104], qubits[105]; -ccx qubits[49], qubits[103], qubits[104]; -ccx qubits[48], qubits[102], qubits[103]; -ccx qubits[47], qubits[101], qubits[102]; -ccx qubits[46], qubits[100], qubits[101]; -ccx qubits[45], qubits[99], qubits[100]; -ccx qubits[44], qubits[98], qubits[99]; -ccx qubits[43], qubits[97], qubits[98]; -ccx qubits[42], qubits[96], qubits[97]; -ccx qubits[41], qubits[95], qubits[96]; -ccx qubits[40], qubits[94], qubits[95]; -ccx qubits[39], qubits[93], qubits[94]; -ccx qubits[38], qubits[92], qubits[93]; -ccx qubits[37], qubits[91], qubits[92]; -ccx qubits[36], qubits[90], qubits[91]; -ccx qubits[35], qubits[89], qubits[90]; -ccx qubits[34], qubits[88], qubits[89]; -ccx qubits[33], qubits[87], qubits[88]; -ccx qubits[32], qubits[86], qubits[87]; -ccx qubits[31], qubits[85], qubits[86]; -ccx qubits[30], qubits[84], qubits[85]; -ccx qubits[29], qubits[83], qubits[84]; -ccx qubits[28], qubits[82], qubits[83]; -ccx qubits[27], qubits[81], qubits[82]; -ccx qubits[26], qubits[80], qubits[81]; -ccx qubits[25], qubits[79], qubits[80]; -ccx qubits[24], qubits[78], qubits[79]; -ccx qubits[23], qubits[77], qubits[78]; -ccx qubits[22], qubits[76], qubits[77]; -ccx qubits[21], qubits[75], qubits[76]; -ccx qubits[20], qubits[74], qubits[75]; -ccx qubits[19], qubits[73], qubits[74]; -ccx qubits[18], qubits[72], qubits[73]; -ccx qubits[17], qubits[71], qubits[72]; -ccx qubits[16], qubits[70], qubits[71]; -ccx qubits[15], qubits[69], qubits[70]; -ccx qubits[14], qubits[68], qubits[69]; -ccx qubits[13], qubits[67], qubits[68]; -ccx qubits[12], qubits[66], qubits[67]; -ccx qubits[11], qubits[65], qubits[66]; -ccx qubits[10], qubits[64], qubits[65]; -ccx qubits[9], qubits[63], qubits[64]; -ccx qubits[8], qubits[62], qubits[63]; -ccx qubits[7], qubits[61], qubits[62]; -ccx qubits[6], qubits[60], qubits[61]; -ccx qubits[5], qubits[59], qubits[60]; -ccx qubits[4], qubits[58], qubits[59]; -ccx qubits[3], qubits[57], qubits[58]; -ccx qubits[2], qubits[56], qubits[57]; -ccx qubits[0], qubits[1], qubits[56]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +cz qubits[106], qubits[107]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -167,329 +167,329 @@ x qubits[52]; x qubits[54]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; -ccx qubits[0], qubits[1], qubits[56]; -ccx qubits[2], qubits[56], qubits[57]; -ccx qubits[3], qubits[57], qubits[58]; -ccx qubits[4], qubits[58], qubits[59]; -ccx qubits[5], qubits[59], qubits[60]; -ccx qubits[6], qubits[60], qubits[61]; -ccx qubits[7], qubits[61], qubits[62]; -ccx qubits[8], qubits[62], qubits[63]; -ccx qubits[9], qubits[63], qubits[64]; -ccx qubits[10], qubits[64], qubits[65]; -ccx qubits[11], qubits[65], qubits[66]; -ccx qubits[12], qubits[66], qubits[67]; -ccx qubits[13], qubits[67], qubits[68]; -ccx qubits[14], qubits[68], qubits[69]; -ccx qubits[15], qubits[69], qubits[70]; -ccx qubits[16], qubits[70], qubits[71]; -ccx qubits[17], qubits[71], qubits[72]; -ccx qubits[18], qubits[72], qubits[73]; -ccx qubits[19], qubits[73], qubits[74]; -ccx qubits[20], qubits[74], qubits[75]; -ccx qubits[21], qubits[75], qubits[76]; -ccx qubits[22], qubits[76], qubits[77]; -ccx qubits[23], qubits[77], qubits[78]; -ccx qubits[24], qubits[78], qubits[79]; -ccx qubits[25], qubits[79], qubits[80]; -ccx qubits[26], qubits[80], qubits[81]; -ccx qubits[27], qubits[81], qubits[82]; -ccx qubits[28], qubits[82], qubits[83]; -ccx qubits[29], qubits[83], qubits[84]; -ccx qubits[30], qubits[84], qubits[85]; -ccx qubits[31], qubits[85], qubits[86]; -ccx qubits[32], qubits[86], qubits[87]; -ccx qubits[33], qubits[87], qubits[88]; -ccx qubits[34], qubits[88], qubits[89]; -ccx qubits[35], qubits[89], qubits[90]; -ccx qubits[36], qubits[90], qubits[91]; -ccx qubits[37], qubits[91], qubits[92]; -ccx qubits[38], qubits[92], qubits[93]; -ccx qubits[39], qubits[93], qubits[94]; -ccx qubits[40], qubits[94], qubits[95]; -ccx qubits[41], qubits[95], qubits[96]; -ccx qubits[42], qubits[96], qubits[97]; -ccx qubits[43], qubits[97], qubits[98]; -ccx qubits[44], qubits[98], qubits[99]; -ccx qubits[45], qubits[99], qubits[100]; -ccx qubits[46], qubits[100], qubits[101]; -ccx qubits[47], qubits[101], qubits[102]; -ccx qubits[48], qubits[102], qubits[103]; -ccx qubits[49], qubits[103], qubits[104]; -ccx qubits[50], qubits[104], qubits[105]; -ccx qubits[51], qubits[105], qubits[106]; -ccx qubits[52], qubits[106], qubits[107]; -ccx qubits[53], qubits[107], qubits[108]; -cz qubits[108], qubits[54]; -ccx qubits[53], qubits[107], qubits[108]; -ccx qubits[52], qubits[106], qubits[107]; -ccx qubits[51], qubits[105], qubits[106]; -ccx qubits[50], qubits[104], qubits[105]; -ccx qubits[49], qubits[103], qubits[104]; -ccx qubits[48], qubits[102], qubits[103]; -ccx qubits[47], qubits[101], qubits[102]; -ccx qubits[46], qubits[100], qubits[101]; -ccx qubits[45], qubits[99], qubits[100]; -ccx qubits[44], qubits[98], qubits[99]; -ccx qubits[43], qubits[97], qubits[98]; -ccx qubits[42], qubits[96], qubits[97]; -ccx qubits[41], qubits[95], qubits[96]; -ccx qubits[40], qubits[94], qubits[95]; -ccx qubits[39], qubits[93], qubits[94]; -ccx qubits[38], qubits[92], qubits[93]; -ccx qubits[37], qubits[91], qubits[92]; -ccx qubits[36], qubits[90], qubits[91]; -ccx qubits[35], qubits[89], qubits[90]; -ccx qubits[34], qubits[88], qubits[89]; -ccx qubits[33], qubits[87], qubits[88]; -ccx qubits[32], qubits[86], qubits[87]; -ccx qubits[31], qubits[85], qubits[86]; -ccx qubits[30], qubits[84], qubits[85]; -ccx qubits[29], qubits[83], qubits[84]; -ccx qubits[28], qubits[82], qubits[83]; -ccx qubits[27], qubits[81], qubits[82]; -ccx qubits[26], qubits[80], qubits[81]; -ccx qubits[25], qubits[79], qubits[80]; -ccx qubits[24], qubits[78], qubits[79]; -ccx qubits[23], qubits[77], qubits[78]; -ccx qubits[22], qubits[76], qubits[77]; -ccx qubits[21], qubits[75], qubits[76]; -ccx qubits[20], qubits[74], qubits[75]; -ccx qubits[19], qubits[73], qubits[74]; -ccx qubits[18], qubits[72], qubits[73]; -ccx qubits[17], qubits[71], qubits[72]; -ccx qubits[16], qubits[70], qubits[71]; -ccx qubits[15], qubits[69], qubits[70]; -ccx qubits[14], qubits[68], qubits[69]; -ccx qubits[13], qubits[67], qubits[68]; -ccx qubits[12], qubits[66], qubits[67]; -ccx qubits[11], qubits[65], qubits[66]; -ccx qubits[10], qubits[64], qubits[65]; -ccx qubits[9], qubits[63], qubits[64]; -ccx qubits[8], qubits[62], qubits[63]; -ccx qubits[7], qubits[61], qubits[62]; -ccx qubits[6], qubits[60], qubits[61]; -ccx qubits[5], qubits[59], qubits[60]; -ccx qubits[4], qubits[58], qubits[59]; -ccx qubits[3], qubits[57], qubits[58]; -ccx qubits[2], qubits[56], qubits[57]; -ccx qubits[0], qubits[1], qubits[56]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +cz qubits[106], qubits[107]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; +x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; -z qubits[55]; +h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +z qubits[108]; diff --git a/benchmarks/all/OEGrover/55/post.hsl b/benchmarks/all/OEGrover/55/post.hsl index 5221fcb35..47e9f7d5c 100644 --- a/benchmarks/all/OEGrover/55/post.hsl +++ b/benchmarks/all/OEGrover/55/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 26 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/55/post.lsta b/benchmarks/all/OEGrover/55/post.lsta deleted file mode 100644 index d252270f8..000000000 --- a/benchmarks/all/OEGrover/55/post.lsta +++ /dev/null @@ -1,282 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 112) -> 109 -[56,1](111, 113) -> 110 -[57,1](114, 114) -> 111 -[57,1](115, 114) -> 112 -[57,1](116, 114) -> 113 -[58,1](117, 117) -> 114 -[58,1](118, 117) -> 115 -[58,1](119, 117) -> 116 -[59,1](120, 120) -> 117 -[59,1](121, 120) -> 118 -[59,1](122, 120) -> 119 -[60,1](123, 123) -> 120 -[60,1](124, 123) -> 121 -[60,1](125, 123) -> 122 -[61,1](126, 126) -> 123 -[61,1](127, 126) -> 124 -[61,1](128, 126) -> 125 -[62,1](129, 129) -> 126 -[62,1](130, 129) -> 127 -[62,1](131, 129) -> 128 -[63,1](132, 132) -> 129 -[63,1](133, 132) -> 130 -[63,1](134, 132) -> 131 -[64,1](135, 135) -> 132 -[64,1](136, 135) -> 133 -[64,1](137, 135) -> 134 -[65,1](138, 138) -> 135 -[65,1](139, 138) -> 136 -[65,1](140, 138) -> 137 -[66,1](141, 141) -> 138 -[66,1](142, 141) -> 139 -[66,1](143, 141) -> 140 -[67,1](144, 144) -> 141 -[67,1](145, 144) -> 142 -[67,1](146, 144) -> 143 -[68,1](147, 147) -> 144 -[68,1](148, 147) -> 145 -[68,1](149, 147) -> 146 -[69,1](150, 150) -> 147 -[69,1](151, 150) -> 148 -[69,1](152, 150) -> 149 -[70,1](153, 153) -> 150 -[70,1](154, 153) -> 151 -[70,1](155, 153) -> 152 -[71,1](156, 156) -> 153 -[71,1](157, 156) -> 154 -[71,1](158, 156) -> 155 -[72,1](159, 159) -> 156 -[72,1](160, 159) -> 157 -[72,1](161, 159) -> 158 -[73,1](162, 162) -> 159 -[73,1](163, 162) -> 160 -[73,1](164, 162) -> 161 -[74,1](165, 165) -> 162 -[74,1](166, 165) -> 163 -[74,1](167, 165) -> 164 -[75,1](168, 168) -> 165 -[75,1](169, 168) -> 166 -[75,1](170, 168) -> 167 -[76,1](171, 171) -> 168 -[76,1](172, 171) -> 169 -[76,1](173, 171) -> 170 -[77,1](174, 174) -> 171 -[77,1](175, 174) -> 172 -[77,1](176, 174) -> 173 -[78,1](177, 177) -> 174 -[78,1](178, 177) -> 175 -[78,1](179, 177) -> 176 -[79,1](180, 180) -> 177 -[79,1](181, 180) -> 178 -[79,1](182, 180) -> 179 -[80,1](183, 183) -> 180 -[80,1](184, 183) -> 181 -[80,1](185, 183) -> 182 -[81,1](186, 186) -> 183 -[81,1](187, 186) -> 184 -[81,1](188, 186) -> 185 -[82,1](189, 189) -> 186 -[82,1](190, 189) -> 187 -[82,1](191, 189) -> 188 -[83,1](192, 192) -> 189 -[83,1](193, 192) -> 190 -[83,1](194, 192) -> 191 -[84,1](195, 195) -> 192 -[84,1](196, 195) -> 193 -[84,1](197, 195) -> 194 -[85,1](198, 198) -> 195 -[85,1](199, 198) -> 196 -[85,1](200, 198) -> 197 -[86,1](201, 201) -> 198 -[86,1](202, 201) -> 199 -[86,1](203, 201) -> 200 -[87,1](204, 204) -> 201 -[87,1](205, 204) -> 202 -[87,1](206, 204) -> 203 -[88,1](207, 207) -> 204 -[88,1](208, 207) -> 205 -[88,1](209, 207) -> 206 -[89,1](210, 210) -> 207 -[89,1](211, 210) -> 208 -[89,1](212, 210) -> 209 -[90,1](213, 213) -> 210 -[90,1](214, 213) -> 211 -[90,1](215, 213) -> 212 -[91,1](216, 216) -> 213 -[91,1](217, 216) -> 214 -[91,1](218, 216) -> 215 -[92,1](219, 219) -> 216 -[92,1](220, 219) -> 217 -[92,1](221, 219) -> 218 -[93,1](222, 222) -> 219 -[93,1](223, 222) -> 220 -[93,1](224, 222) -> 221 -[94,1](225, 225) -> 222 -[94,1](226, 225) -> 223 -[94,1](227, 225) -> 224 -[95,1](228, 228) -> 225 -[95,1](229, 228) -> 226 -[95,1](230, 228) -> 227 -[96,1](231, 231) -> 228 -[96,1](232, 231) -> 229 -[96,1](233, 231) -> 230 -[97,1](234, 234) -> 231 -[97,1](235, 234) -> 232 -[97,1](236, 234) -> 233 -[98,1](237, 237) -> 234 -[98,1](238, 237) -> 235 -[98,1](239, 237) -> 236 -[99,1](240, 240) -> 237 -[99,1](241, 240) -> 238 -[99,1](242, 240) -> 239 -[100,1](243, 243) -> 240 -[100,1](244, 243) -> 241 -[100,1](245, 243) -> 242 -[101,1](246, 246) -> 243 -[101,1](247, 246) -> 244 -[101,1](248, 246) -> 245 -[102,1](249, 249) -> 246 -[102,1](250, 249) -> 247 -[102,1](251, 249) -> 248 -[103,1](252, 252) -> 249 -[103,1](253, 252) -> 250 -[103,1](254, 252) -> 251 -[104,1](255, 255) -> 252 -[104,1](256, 255) -> 253 -[104,1](257, 255) -> 254 -[105,1](258, 258) -> 255 -[105,1](259, 258) -> 256 -[105,1](260, 258) -> 257 -[106,1](261, 261) -> 258 -[106,1](262, 261) -> 259 -[106,1](263, 261) -> 260 -[107,1](264, 264) -> 261 -[107,1](265, 264) -> 262 -[107,1](266, 264) -> 263 -[108,1](267, 267) -> 264 -[108,1](268, 267) -> 265 -[108,1](269, 267) -> 266 -[109,1](270, 270) -> 267 -[109,1](271, 270) -> 268 -[109,1](272, 270) -> 269 -[110,1](273, 273) -> 270 -[110,1](274, 273) -> 271 -[110,1](275, 273) -> 272 -[p1,1] -> 273 -[p2,1] -> 274 -[p3,1] -> 275 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/55/pre.hsl b/benchmarks/all/OEGrover/55/pre.hsl index 9d72da3d6..dd95bed70 100644 --- a/benchmarks/all/OEGrover/55/pre.hsl +++ b/benchmarks/all/OEGrover/55/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 26 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 36028797018963967 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/55/pre.lsta b/benchmarks/all/OEGrover/55/pre.lsta deleted file mode 100644 index e496a78b2..000000000 --- a/benchmarks/all/OEGrover/55/pre.lsta +++ /dev/null @@ -1,286 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 112) -> 109 -[56,1](111, 113) -> 110 -[57,1](114, 114) -> 111 -[57,1](115, 114) -> 112 -[57,1](116, 114) -> 113 -[58,1](117, 117) -> 114 -[58,1](118, 117) -> 115 -[58,1](119, 117) -> 116 -[59,1](120, 120) -> 117 -[59,1](121, 120) -> 118 -[59,1](122, 120) -> 119 -[60,1](123, 123) -> 120 -[60,1](124, 123) -> 121 -[60,1](125, 123) -> 122 -[61,1](126, 126) -> 123 -[61,1](127, 126) -> 124 -[61,1](128, 126) -> 125 -[62,1](129, 129) -> 126 -[62,1](130, 129) -> 127 -[62,1](131, 129) -> 128 -[63,1](132, 132) -> 129 -[63,1](133, 132) -> 130 -[63,1](134, 132) -> 131 -[64,1](135, 135) -> 132 -[64,1](136, 135) -> 133 -[64,1](137, 135) -> 134 -[65,1](138, 138) -> 135 -[65,1](139, 138) -> 136 -[65,1](140, 138) -> 137 -[66,1](141, 141) -> 138 -[66,1](142, 141) -> 139 -[66,1](143, 141) -> 140 -[67,1](144, 144) -> 141 -[67,1](145, 144) -> 142 -[67,1](146, 144) -> 143 -[68,1](147, 147) -> 144 -[68,1](148, 147) -> 145 -[68,1](149, 147) -> 146 -[69,1](150, 150) -> 147 -[69,1](151, 150) -> 148 -[69,1](152, 150) -> 149 -[70,1](153, 153) -> 150 -[70,1](154, 153) -> 151 -[70,1](155, 153) -> 152 -[71,1](156, 156) -> 153 -[71,1](157, 156) -> 154 -[71,1](158, 156) -> 155 -[72,1](159, 159) -> 156 -[72,1](160, 159) -> 157 -[72,1](161, 159) -> 158 -[73,1](162, 162) -> 159 -[73,1](163, 162) -> 160 -[73,1](164, 162) -> 161 -[74,1](165, 165) -> 162 -[74,1](166, 165) -> 163 -[74,1](167, 165) -> 164 -[75,1](168, 168) -> 165 -[75,1](169, 168) -> 166 -[75,1](170, 168) -> 167 -[76,1](171, 171) -> 168 -[76,1](172, 171) -> 169 -[76,1](173, 171) -> 170 -[77,1](174, 174) -> 171 -[77,1](175, 174) -> 172 -[77,1](176, 174) -> 173 -[78,1](177, 177) -> 174 -[78,1](178, 177) -> 175 -[78,1](179, 177) -> 176 -[79,1](180, 180) -> 177 -[79,1](181, 180) -> 178 -[79,1](182, 180) -> 179 -[80,1](183, 183) -> 180 -[80,1](184, 183) -> 181 -[80,1](185, 183) -> 182 -[81,1](186, 186) -> 183 -[81,1](187, 186) -> 184 -[81,1](188, 186) -> 185 -[82,1](189, 189) -> 186 -[82,1](190, 189) -> 187 -[82,1](191, 189) -> 188 -[83,1](192, 192) -> 189 -[83,1](193, 192) -> 190 -[83,1](194, 192) -> 191 -[84,1](195, 195) -> 192 -[84,1](196, 195) -> 193 -[84,1](197, 195) -> 194 -[85,1](198, 198) -> 195 -[85,1](199, 198) -> 196 -[85,1](200, 198) -> 197 -[86,1](201, 201) -> 198 -[86,1](202, 201) -> 199 -[86,1](203, 201) -> 200 -[87,1](204, 204) -> 201 -[87,1](205, 204) -> 202 -[87,1](206, 204) -> 203 -[88,1](207, 207) -> 204 -[88,1](208, 207) -> 205 -[88,1](209, 207) -> 206 -[89,1](210, 210) -> 207 -[89,1](211, 210) -> 208 -[89,1](212, 210) -> 209 -[90,1](213, 213) -> 210 -[90,1](214, 213) -> 211 -[90,1](215, 213) -> 212 -[91,1](216, 216) -> 213 -[91,1](217, 216) -> 214 -[91,1](218, 216) -> 215 -[92,1](219, 219) -> 216 -[92,1](220, 219) -> 217 -[92,1](221, 219) -> 218 -[93,1](222, 222) -> 219 -[93,1](223, 222) -> 220 -[93,1](224, 222) -> 221 -[94,1](225, 225) -> 222 -[94,1](226, 225) -> 223 -[94,1](227, 225) -> 224 -[95,1](228, 228) -> 225 -[95,1](229, 228) -> 226 -[95,1](230, 228) -> 227 -[96,1](231, 231) -> 228 -[96,1](232, 231) -> 229 -[96,1](233, 231) -> 230 -[97,1](234, 234) -> 231 -[97,1](235, 234) -> 232 -[97,1](236, 234) -> 233 -[98,1](237, 237) -> 234 -[98,1](238, 237) -> 235 -[98,1](239, 237) -> 236 -[99,1](240, 240) -> 237 -[99,1](241, 240) -> 238 -[99,1](242, 240) -> 239 -[100,1](243, 243) -> 240 -[100,1](244, 243) -> 241 -[100,1](245, 243) -> 242 -[101,1](246, 246) -> 243 -[101,1](247, 246) -> 244 -[101,1](248, 246) -> 245 -[102,1](249, 249) -> 246 -[102,1](250, 249) -> 247 -[102,1](251, 249) -> 248 -[103,1](252, 252) -> 249 -[103,1](253, 252) -> 250 -[103,1](254, 252) -> 251 -[104,1](255, 255) -> 252 -[104,1](256, 255) -> 253 -[104,1](257, 255) -> 254 -[105,1](258, 258) -> 255 -[105,1](259, 258) -> 256 -[105,1](260, 258) -> 257 -[106,1](261, 261) -> 258 -[106,1](262, 261) -> 259 -[106,1](263, 261) -> 260 -[107,1](264, 264) -> 261 -[107,1](265, 264) -> 262 -[107,1](266, 264) -> 263 -[108,1](267, 267) -> 264 -[108,1](268, 267) -> 265 -[108,1](269, 267) -> 266 -[109,1](270, 270) -> 267 -[109,1](271, 270) -> 268 -[109,1](272, 270) -> 269 -[110,1](273, 273) -> 270 -[110,1](274, 273) -> 271 -[110,1](275, 273) -> 272 -[c0,1] -> 273 -[a,1] -> 274 -[b,1] -> 275 -Constraints -36028797018963967 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/56/circuit.qasm b/benchmarks/all/OEGrover/56/circuit.qasm index e0f007935..f9c39443b 100644 --- a/benchmarks/all/OEGrover/56/circuit.qasm +++ b/benchmarks/all/OEGrover/56/circuit.qasm @@ -1,144 +1,144 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[112]; +qreg qubits[111]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -ccx qubits[0], qubits[1], qubits[57]; -ccx qubits[2], qubits[57], qubits[58]; -ccx qubits[3], qubits[58], qubits[59]; -ccx qubits[4], qubits[59], qubits[60]; -ccx qubits[5], qubits[60], qubits[61]; -ccx qubits[6], qubits[61], qubits[62]; -ccx qubits[7], qubits[62], qubits[63]; -ccx qubits[8], qubits[63], qubits[64]; -ccx qubits[9], qubits[64], qubits[65]; -ccx qubits[10], qubits[65], qubits[66]; -ccx qubits[11], qubits[66], qubits[67]; -ccx qubits[12], qubits[67], qubits[68]; -ccx qubits[13], qubits[68], qubits[69]; -ccx qubits[14], qubits[69], qubits[70]; -ccx qubits[15], qubits[70], qubits[71]; -ccx qubits[16], qubits[71], qubits[72]; -ccx qubits[17], qubits[72], qubits[73]; -ccx qubits[18], qubits[73], qubits[74]; -ccx qubits[19], qubits[74], qubits[75]; -ccx qubits[20], qubits[75], qubits[76]; -ccx qubits[21], qubits[76], qubits[77]; -ccx qubits[22], qubits[77], qubits[78]; -ccx qubits[23], qubits[78], qubits[79]; -ccx qubits[24], qubits[79], qubits[80]; -ccx qubits[25], qubits[80], qubits[81]; -ccx qubits[26], qubits[81], qubits[82]; -ccx qubits[27], qubits[82], qubits[83]; -ccx qubits[28], qubits[83], qubits[84]; -ccx qubits[29], qubits[84], qubits[85]; -ccx qubits[30], qubits[85], qubits[86]; -ccx qubits[31], qubits[86], qubits[87]; -ccx qubits[32], qubits[87], qubits[88]; -ccx qubits[33], qubits[88], qubits[89]; -ccx qubits[34], qubits[89], qubits[90]; -ccx qubits[35], qubits[90], qubits[91]; -ccx qubits[36], qubits[91], qubits[92]; -ccx qubits[37], qubits[92], qubits[93]; -ccx qubits[38], qubits[93], qubits[94]; -ccx qubits[39], qubits[94], qubits[95]; -ccx qubits[40], qubits[95], qubits[96]; -ccx qubits[41], qubits[96], qubits[97]; -ccx qubits[42], qubits[97], qubits[98]; -ccx qubits[43], qubits[98], qubits[99]; -ccx qubits[44], qubits[99], qubits[100]; -ccx qubits[45], qubits[100], qubits[101]; -ccx qubits[46], qubits[101], qubits[102]; -ccx qubits[47], qubits[102], qubits[103]; -ccx qubits[48], qubits[103], qubits[104]; -ccx qubits[49], qubits[104], qubits[105]; -ccx qubits[50], qubits[105], qubits[106]; -ccx qubits[51], qubits[106], qubits[107]; -ccx qubits[52], qubits[107], qubits[108]; -ccx qubits[53], qubits[108], qubits[109]; -ccx qubits[54], qubits[109], qubits[110]; -cz qubits[110], qubits[55]; -ccx qubits[54], qubits[109], qubits[110]; -ccx qubits[53], qubits[108], qubits[109]; -ccx qubits[52], qubits[107], qubits[108]; -ccx qubits[51], qubits[106], qubits[107]; -ccx qubits[50], qubits[105], qubits[106]; -ccx qubits[49], qubits[104], qubits[105]; -ccx qubits[48], qubits[103], qubits[104]; -ccx qubits[47], qubits[102], qubits[103]; -ccx qubits[46], qubits[101], qubits[102]; -ccx qubits[45], qubits[100], qubits[101]; -ccx qubits[44], qubits[99], qubits[100]; -ccx qubits[43], qubits[98], qubits[99]; -ccx qubits[42], qubits[97], qubits[98]; -ccx qubits[41], qubits[96], qubits[97]; -ccx qubits[40], qubits[95], qubits[96]; -ccx qubits[39], qubits[94], qubits[95]; -ccx qubits[38], qubits[93], qubits[94]; -ccx qubits[37], qubits[92], qubits[93]; -ccx qubits[36], qubits[91], qubits[92]; -ccx qubits[35], qubits[90], qubits[91]; -ccx qubits[34], qubits[89], qubits[90]; -ccx qubits[33], qubits[88], qubits[89]; -ccx qubits[32], qubits[87], qubits[88]; -ccx qubits[31], qubits[86], qubits[87]; -ccx qubits[30], qubits[85], qubits[86]; -ccx qubits[29], qubits[84], qubits[85]; -ccx qubits[28], qubits[83], qubits[84]; -ccx qubits[27], qubits[82], qubits[83]; -ccx qubits[26], qubits[81], qubits[82]; -ccx qubits[25], qubits[80], qubits[81]; -ccx qubits[24], qubits[79], qubits[80]; -ccx qubits[23], qubits[78], qubits[79]; -ccx qubits[22], qubits[77], qubits[78]; -ccx qubits[21], qubits[76], qubits[77]; -ccx qubits[20], qubits[75], qubits[76]; -ccx qubits[19], qubits[74], qubits[75]; -ccx qubits[18], qubits[73], qubits[74]; -ccx qubits[17], qubits[72], qubits[73]; -ccx qubits[16], qubits[71], qubits[72]; -ccx qubits[15], qubits[70], qubits[71]; -ccx qubits[14], qubits[69], qubits[70]; -ccx qubits[13], qubits[68], qubits[69]; -ccx qubits[12], qubits[67], qubits[68]; -ccx qubits[11], qubits[66], qubits[67]; -ccx qubits[10], qubits[65], qubits[66]; -ccx qubits[9], qubits[64], qubits[65]; -ccx qubits[8], qubits[63], qubits[64]; -ccx qubits[7], qubits[62], qubits[63]; -ccx qubits[6], qubits[61], qubits[62]; -ccx qubits[5], qubits[60], qubits[61]; -ccx qubits[4], qubits[59], qubits[60]; -ccx qubits[3], qubits[58], qubits[59]; -ccx qubits[2], qubits[57], qubits[58]; -ccx qubits[0], qubits[1], qubits[57]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +cz qubits[108], qubits[109]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -169,335 +169,335 @@ x qubits[52]; x qubits[54]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -ccx qubits[0], qubits[1], qubits[57]; -ccx qubits[2], qubits[57], qubits[58]; -ccx qubits[3], qubits[58], qubits[59]; -ccx qubits[4], qubits[59], qubits[60]; -ccx qubits[5], qubits[60], qubits[61]; -ccx qubits[6], qubits[61], qubits[62]; -ccx qubits[7], qubits[62], qubits[63]; -ccx qubits[8], qubits[63], qubits[64]; -ccx qubits[9], qubits[64], qubits[65]; -ccx qubits[10], qubits[65], qubits[66]; -ccx qubits[11], qubits[66], qubits[67]; -ccx qubits[12], qubits[67], qubits[68]; -ccx qubits[13], qubits[68], qubits[69]; -ccx qubits[14], qubits[69], qubits[70]; -ccx qubits[15], qubits[70], qubits[71]; -ccx qubits[16], qubits[71], qubits[72]; -ccx qubits[17], qubits[72], qubits[73]; -ccx qubits[18], qubits[73], qubits[74]; -ccx qubits[19], qubits[74], qubits[75]; -ccx qubits[20], qubits[75], qubits[76]; -ccx qubits[21], qubits[76], qubits[77]; -ccx qubits[22], qubits[77], qubits[78]; -ccx qubits[23], qubits[78], qubits[79]; -ccx qubits[24], qubits[79], qubits[80]; -ccx qubits[25], qubits[80], qubits[81]; -ccx qubits[26], qubits[81], qubits[82]; -ccx qubits[27], qubits[82], qubits[83]; -ccx qubits[28], qubits[83], qubits[84]; -ccx qubits[29], qubits[84], qubits[85]; -ccx qubits[30], qubits[85], qubits[86]; -ccx qubits[31], qubits[86], qubits[87]; -ccx qubits[32], qubits[87], qubits[88]; -ccx qubits[33], qubits[88], qubits[89]; -ccx qubits[34], qubits[89], qubits[90]; -ccx qubits[35], qubits[90], qubits[91]; -ccx qubits[36], qubits[91], qubits[92]; -ccx qubits[37], qubits[92], qubits[93]; -ccx qubits[38], qubits[93], qubits[94]; -ccx qubits[39], qubits[94], qubits[95]; -ccx qubits[40], qubits[95], qubits[96]; -ccx qubits[41], qubits[96], qubits[97]; -ccx qubits[42], qubits[97], qubits[98]; -ccx qubits[43], qubits[98], qubits[99]; -ccx qubits[44], qubits[99], qubits[100]; -ccx qubits[45], qubits[100], qubits[101]; -ccx qubits[46], qubits[101], qubits[102]; -ccx qubits[47], qubits[102], qubits[103]; -ccx qubits[48], qubits[103], qubits[104]; -ccx qubits[49], qubits[104], qubits[105]; -ccx qubits[50], qubits[105], qubits[106]; -ccx qubits[51], qubits[106], qubits[107]; -ccx qubits[52], qubits[107], qubits[108]; -ccx qubits[53], qubits[108], qubits[109]; -ccx qubits[54], qubits[109], qubits[110]; -cz qubits[110], qubits[55]; -ccx qubits[54], qubits[109], qubits[110]; -ccx qubits[53], qubits[108], qubits[109]; -ccx qubits[52], qubits[107], qubits[108]; -ccx qubits[51], qubits[106], qubits[107]; -ccx qubits[50], qubits[105], qubits[106]; -ccx qubits[49], qubits[104], qubits[105]; -ccx qubits[48], qubits[103], qubits[104]; -ccx qubits[47], qubits[102], qubits[103]; -ccx qubits[46], qubits[101], qubits[102]; -ccx qubits[45], qubits[100], qubits[101]; -ccx qubits[44], qubits[99], qubits[100]; -ccx qubits[43], qubits[98], qubits[99]; -ccx qubits[42], qubits[97], qubits[98]; -ccx qubits[41], qubits[96], qubits[97]; -ccx qubits[40], qubits[95], qubits[96]; -ccx qubits[39], qubits[94], qubits[95]; -ccx qubits[38], qubits[93], qubits[94]; -ccx qubits[37], qubits[92], qubits[93]; -ccx qubits[36], qubits[91], qubits[92]; -ccx qubits[35], qubits[90], qubits[91]; -ccx qubits[34], qubits[89], qubits[90]; -ccx qubits[33], qubits[88], qubits[89]; -ccx qubits[32], qubits[87], qubits[88]; -ccx qubits[31], qubits[86], qubits[87]; -ccx qubits[30], qubits[85], qubits[86]; -ccx qubits[29], qubits[84], qubits[85]; -ccx qubits[28], qubits[83], qubits[84]; -ccx qubits[27], qubits[82], qubits[83]; -ccx qubits[26], qubits[81], qubits[82]; -ccx qubits[25], qubits[80], qubits[81]; -ccx qubits[24], qubits[79], qubits[80]; -ccx qubits[23], qubits[78], qubits[79]; -ccx qubits[22], qubits[77], qubits[78]; -ccx qubits[21], qubits[76], qubits[77]; -ccx qubits[20], qubits[75], qubits[76]; -ccx qubits[19], qubits[74], qubits[75]; -ccx qubits[18], qubits[73], qubits[74]; -ccx qubits[17], qubits[72], qubits[73]; -ccx qubits[16], qubits[71], qubits[72]; -ccx qubits[15], qubits[70], qubits[71]; -ccx qubits[14], qubits[69], qubits[70]; -ccx qubits[13], qubits[68], qubits[69]; -ccx qubits[12], qubits[67], qubits[68]; -ccx qubits[11], qubits[66], qubits[67]; -ccx qubits[10], qubits[65], qubits[66]; -ccx qubits[9], qubits[64], qubits[65]; -ccx qubits[8], qubits[63], qubits[64]; -ccx qubits[7], qubits[62], qubits[63]; -ccx qubits[6], qubits[61], qubits[62]; -ccx qubits[5], qubits[60], qubits[61]; -ccx qubits[4], qubits[59], qubits[60]; -ccx qubits[3], qubits[58], qubits[59]; -ccx qubits[2], qubits[57], qubits[58]; -ccx qubits[0], qubits[1], qubits[57]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +cz qubits[108], qubits[109]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -z qubits[56]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +z qubits[110]; diff --git a/benchmarks/all/OEGrover/56/post.hsl b/benchmarks/all/OEGrover/56/post.hsl index 958023f9f..551eb8129 100644 --- a/benchmarks/all/OEGrover/56/post.hsl +++ b/benchmarks/all/OEGrover/56/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 27 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/56/post.lsta b/benchmarks/all/OEGrover/56/post.lsta deleted file mode 100644 index dfb89d6be..000000000 --- a/benchmarks/all/OEGrover/56/post.lsta +++ /dev/null @@ -1,287 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 114) -> 111 -[57,1](113, 115) -> 112 -[58,1](116, 116) -> 113 -[58,1](117, 116) -> 114 -[58,1](118, 116) -> 115 -[59,1](119, 119) -> 116 -[59,1](120, 119) -> 117 -[59,1](121, 119) -> 118 -[60,1](122, 122) -> 119 -[60,1](123, 122) -> 120 -[60,1](124, 122) -> 121 -[61,1](125, 125) -> 122 -[61,1](126, 125) -> 123 -[61,1](127, 125) -> 124 -[62,1](128, 128) -> 125 -[62,1](129, 128) -> 126 -[62,1](130, 128) -> 127 -[63,1](131, 131) -> 128 -[63,1](132, 131) -> 129 -[63,1](133, 131) -> 130 -[64,1](134, 134) -> 131 -[64,1](135, 134) -> 132 -[64,1](136, 134) -> 133 -[65,1](137, 137) -> 134 -[65,1](138, 137) -> 135 -[65,1](139, 137) -> 136 -[66,1](140, 140) -> 137 -[66,1](141, 140) -> 138 -[66,1](142, 140) -> 139 -[67,1](143, 143) -> 140 -[67,1](144, 143) -> 141 -[67,1](145, 143) -> 142 -[68,1](146, 146) -> 143 -[68,1](147, 146) -> 144 -[68,1](148, 146) -> 145 -[69,1](149, 149) -> 146 -[69,1](150, 149) -> 147 -[69,1](151, 149) -> 148 -[70,1](152, 152) -> 149 -[70,1](153, 152) -> 150 -[70,1](154, 152) -> 151 -[71,1](155, 155) -> 152 -[71,1](156, 155) -> 153 -[71,1](157, 155) -> 154 -[72,1](158, 158) -> 155 -[72,1](159, 158) -> 156 -[72,1](160, 158) -> 157 -[73,1](161, 161) -> 158 -[73,1](162, 161) -> 159 -[73,1](163, 161) -> 160 -[74,1](164, 164) -> 161 -[74,1](165, 164) -> 162 -[74,1](166, 164) -> 163 -[75,1](167, 167) -> 164 -[75,1](168, 167) -> 165 -[75,1](169, 167) -> 166 -[76,1](170, 170) -> 167 -[76,1](171, 170) -> 168 -[76,1](172, 170) -> 169 -[77,1](173, 173) -> 170 -[77,1](174, 173) -> 171 -[77,1](175, 173) -> 172 -[78,1](176, 176) -> 173 -[78,1](177, 176) -> 174 -[78,1](178, 176) -> 175 -[79,1](179, 179) -> 176 -[79,1](180, 179) -> 177 -[79,1](181, 179) -> 178 -[80,1](182, 182) -> 179 -[80,1](183, 182) -> 180 -[80,1](184, 182) -> 181 -[81,1](185, 185) -> 182 -[81,1](186, 185) -> 183 -[81,1](187, 185) -> 184 -[82,1](188, 188) -> 185 -[82,1](189, 188) -> 186 -[82,1](190, 188) -> 187 -[83,1](191, 191) -> 188 -[83,1](192, 191) -> 189 -[83,1](193, 191) -> 190 -[84,1](194, 194) -> 191 -[84,1](195, 194) -> 192 -[84,1](196, 194) -> 193 -[85,1](197, 197) -> 194 -[85,1](198, 197) -> 195 -[85,1](199, 197) -> 196 -[86,1](200, 200) -> 197 -[86,1](201, 200) -> 198 -[86,1](202, 200) -> 199 -[87,1](203, 203) -> 200 -[87,1](204, 203) -> 201 -[87,1](205, 203) -> 202 -[88,1](206, 206) -> 203 -[88,1](207, 206) -> 204 -[88,1](208, 206) -> 205 -[89,1](209, 209) -> 206 -[89,1](210, 209) -> 207 -[89,1](211, 209) -> 208 -[90,1](212, 212) -> 209 -[90,1](213, 212) -> 210 -[90,1](214, 212) -> 211 -[91,1](215, 215) -> 212 -[91,1](216, 215) -> 213 -[91,1](217, 215) -> 214 -[92,1](218, 218) -> 215 -[92,1](219, 218) -> 216 -[92,1](220, 218) -> 217 -[93,1](221, 221) -> 218 -[93,1](222, 221) -> 219 -[93,1](223, 221) -> 220 -[94,1](224, 224) -> 221 -[94,1](225, 224) -> 222 -[94,1](226, 224) -> 223 -[95,1](227, 227) -> 224 -[95,1](228, 227) -> 225 -[95,1](229, 227) -> 226 -[96,1](230, 230) -> 227 -[96,1](231, 230) -> 228 -[96,1](232, 230) -> 229 -[97,1](233, 233) -> 230 -[97,1](234, 233) -> 231 -[97,1](235, 233) -> 232 -[98,1](236, 236) -> 233 -[98,1](237, 236) -> 234 -[98,1](238, 236) -> 235 -[99,1](239, 239) -> 236 -[99,1](240, 239) -> 237 -[99,1](241, 239) -> 238 -[100,1](242, 242) -> 239 -[100,1](243, 242) -> 240 -[100,1](244, 242) -> 241 -[101,1](245, 245) -> 242 -[101,1](246, 245) -> 243 -[101,1](247, 245) -> 244 -[102,1](248, 248) -> 245 -[102,1](249, 248) -> 246 -[102,1](250, 248) -> 247 -[103,1](251, 251) -> 248 -[103,1](252, 251) -> 249 -[103,1](253, 251) -> 250 -[104,1](254, 254) -> 251 -[104,1](255, 254) -> 252 -[104,1](256, 254) -> 253 -[105,1](257, 257) -> 254 -[105,1](258, 257) -> 255 -[105,1](259, 257) -> 256 -[106,1](260, 260) -> 257 -[106,1](261, 260) -> 258 -[106,1](262, 260) -> 259 -[107,1](263, 263) -> 260 -[107,1](264, 263) -> 261 -[107,1](265, 263) -> 262 -[108,1](266, 266) -> 263 -[108,1](267, 266) -> 264 -[108,1](268, 266) -> 265 -[109,1](269, 269) -> 266 -[109,1](270, 269) -> 267 -[109,1](271, 269) -> 268 -[110,1](272, 272) -> 269 -[110,1](273, 272) -> 270 -[110,1](274, 272) -> 271 -[111,1](275, 275) -> 272 -[111,1](276, 275) -> 273 -[111,1](277, 275) -> 274 -[112,1](278, 278) -> 275 -[112,1](279, 278) -> 276 -[112,1](280, 278) -> 277 -[p1,1] -> 278 -[p2,1] -> 279 -[p3,1] -> 280 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/56/pre.hsl b/benchmarks/all/OEGrover/56/pre.hsl index 371342bf9..83e65f16a 100644 --- a/benchmarks/all/OEGrover/56/pre.hsl +++ b/benchmarks/all/OEGrover/56/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 27 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 72057594037927935 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/56/pre.lsta b/benchmarks/all/OEGrover/56/pre.lsta deleted file mode 100644 index df3ab469c..000000000 --- a/benchmarks/all/OEGrover/56/pre.lsta +++ /dev/null @@ -1,291 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 114) -> 111 -[57,1](113, 115) -> 112 -[58,1](116, 116) -> 113 -[58,1](117, 116) -> 114 -[58,1](118, 116) -> 115 -[59,1](119, 119) -> 116 -[59,1](120, 119) -> 117 -[59,1](121, 119) -> 118 -[60,1](122, 122) -> 119 -[60,1](123, 122) -> 120 -[60,1](124, 122) -> 121 -[61,1](125, 125) -> 122 -[61,1](126, 125) -> 123 -[61,1](127, 125) -> 124 -[62,1](128, 128) -> 125 -[62,1](129, 128) -> 126 -[62,1](130, 128) -> 127 -[63,1](131, 131) -> 128 -[63,1](132, 131) -> 129 -[63,1](133, 131) -> 130 -[64,1](134, 134) -> 131 -[64,1](135, 134) -> 132 -[64,1](136, 134) -> 133 -[65,1](137, 137) -> 134 -[65,1](138, 137) -> 135 -[65,1](139, 137) -> 136 -[66,1](140, 140) -> 137 -[66,1](141, 140) -> 138 -[66,1](142, 140) -> 139 -[67,1](143, 143) -> 140 -[67,1](144, 143) -> 141 -[67,1](145, 143) -> 142 -[68,1](146, 146) -> 143 -[68,1](147, 146) -> 144 -[68,1](148, 146) -> 145 -[69,1](149, 149) -> 146 -[69,1](150, 149) -> 147 -[69,1](151, 149) -> 148 -[70,1](152, 152) -> 149 -[70,1](153, 152) -> 150 -[70,1](154, 152) -> 151 -[71,1](155, 155) -> 152 -[71,1](156, 155) -> 153 -[71,1](157, 155) -> 154 -[72,1](158, 158) -> 155 -[72,1](159, 158) -> 156 -[72,1](160, 158) -> 157 -[73,1](161, 161) -> 158 -[73,1](162, 161) -> 159 -[73,1](163, 161) -> 160 -[74,1](164, 164) -> 161 -[74,1](165, 164) -> 162 -[74,1](166, 164) -> 163 -[75,1](167, 167) -> 164 -[75,1](168, 167) -> 165 -[75,1](169, 167) -> 166 -[76,1](170, 170) -> 167 -[76,1](171, 170) -> 168 -[76,1](172, 170) -> 169 -[77,1](173, 173) -> 170 -[77,1](174, 173) -> 171 -[77,1](175, 173) -> 172 -[78,1](176, 176) -> 173 -[78,1](177, 176) -> 174 -[78,1](178, 176) -> 175 -[79,1](179, 179) -> 176 -[79,1](180, 179) -> 177 -[79,1](181, 179) -> 178 -[80,1](182, 182) -> 179 -[80,1](183, 182) -> 180 -[80,1](184, 182) -> 181 -[81,1](185, 185) -> 182 -[81,1](186, 185) -> 183 -[81,1](187, 185) -> 184 -[82,1](188, 188) -> 185 -[82,1](189, 188) -> 186 -[82,1](190, 188) -> 187 -[83,1](191, 191) -> 188 -[83,1](192, 191) -> 189 -[83,1](193, 191) -> 190 -[84,1](194, 194) -> 191 -[84,1](195, 194) -> 192 -[84,1](196, 194) -> 193 -[85,1](197, 197) -> 194 -[85,1](198, 197) -> 195 -[85,1](199, 197) -> 196 -[86,1](200, 200) -> 197 -[86,1](201, 200) -> 198 -[86,1](202, 200) -> 199 -[87,1](203, 203) -> 200 -[87,1](204, 203) -> 201 -[87,1](205, 203) -> 202 -[88,1](206, 206) -> 203 -[88,1](207, 206) -> 204 -[88,1](208, 206) -> 205 -[89,1](209, 209) -> 206 -[89,1](210, 209) -> 207 -[89,1](211, 209) -> 208 -[90,1](212, 212) -> 209 -[90,1](213, 212) -> 210 -[90,1](214, 212) -> 211 -[91,1](215, 215) -> 212 -[91,1](216, 215) -> 213 -[91,1](217, 215) -> 214 -[92,1](218, 218) -> 215 -[92,1](219, 218) -> 216 -[92,1](220, 218) -> 217 -[93,1](221, 221) -> 218 -[93,1](222, 221) -> 219 -[93,1](223, 221) -> 220 -[94,1](224, 224) -> 221 -[94,1](225, 224) -> 222 -[94,1](226, 224) -> 223 -[95,1](227, 227) -> 224 -[95,1](228, 227) -> 225 -[95,1](229, 227) -> 226 -[96,1](230, 230) -> 227 -[96,1](231, 230) -> 228 -[96,1](232, 230) -> 229 -[97,1](233, 233) -> 230 -[97,1](234, 233) -> 231 -[97,1](235, 233) -> 232 -[98,1](236, 236) -> 233 -[98,1](237, 236) -> 234 -[98,1](238, 236) -> 235 -[99,1](239, 239) -> 236 -[99,1](240, 239) -> 237 -[99,1](241, 239) -> 238 -[100,1](242, 242) -> 239 -[100,1](243, 242) -> 240 -[100,1](244, 242) -> 241 -[101,1](245, 245) -> 242 -[101,1](246, 245) -> 243 -[101,1](247, 245) -> 244 -[102,1](248, 248) -> 245 -[102,1](249, 248) -> 246 -[102,1](250, 248) -> 247 -[103,1](251, 251) -> 248 -[103,1](252, 251) -> 249 -[103,1](253, 251) -> 250 -[104,1](254, 254) -> 251 -[104,1](255, 254) -> 252 -[104,1](256, 254) -> 253 -[105,1](257, 257) -> 254 -[105,1](258, 257) -> 255 -[105,1](259, 257) -> 256 -[106,1](260, 260) -> 257 -[106,1](261, 260) -> 258 -[106,1](262, 260) -> 259 -[107,1](263, 263) -> 260 -[107,1](264, 263) -> 261 -[107,1](265, 263) -> 262 -[108,1](266, 266) -> 263 -[108,1](267, 266) -> 264 -[108,1](268, 266) -> 265 -[109,1](269, 269) -> 266 -[109,1](270, 269) -> 267 -[109,1](271, 269) -> 268 -[110,1](272, 272) -> 269 -[110,1](273, 272) -> 270 -[110,1](274, 272) -> 271 -[111,1](275, 275) -> 272 -[111,1](276, 275) -> 273 -[111,1](277, 275) -> 274 -[112,1](278, 278) -> 275 -[112,1](279, 278) -> 276 -[112,1](280, 278) -> 277 -[c0,1] -> 278 -[a,1] -> 279 -[b,1] -> 280 -Constraints -72057594037927935 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/57/circuit.qasm b/benchmarks/all/OEGrover/57/circuit.qasm index 0a32c03d6..1db3834ec 100644 --- a/benchmarks/all/OEGrover/57/circuit.qasm +++ b/benchmarks/all/OEGrover/57/circuit.qasm @@ -1,147 +1,147 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[114]; +qreg qubits[113]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -ccx qubits[0], qubits[1], qubits[58]; -ccx qubits[2], qubits[58], qubits[59]; -ccx qubits[3], qubits[59], qubits[60]; -ccx qubits[4], qubits[60], qubits[61]; -ccx qubits[5], qubits[61], qubits[62]; -ccx qubits[6], qubits[62], qubits[63]; -ccx qubits[7], qubits[63], qubits[64]; -ccx qubits[8], qubits[64], qubits[65]; -ccx qubits[9], qubits[65], qubits[66]; -ccx qubits[10], qubits[66], qubits[67]; -ccx qubits[11], qubits[67], qubits[68]; -ccx qubits[12], qubits[68], qubits[69]; -ccx qubits[13], qubits[69], qubits[70]; -ccx qubits[14], qubits[70], qubits[71]; -ccx qubits[15], qubits[71], qubits[72]; -ccx qubits[16], qubits[72], qubits[73]; -ccx qubits[17], qubits[73], qubits[74]; -ccx qubits[18], qubits[74], qubits[75]; -ccx qubits[19], qubits[75], qubits[76]; -ccx qubits[20], qubits[76], qubits[77]; -ccx qubits[21], qubits[77], qubits[78]; -ccx qubits[22], qubits[78], qubits[79]; -ccx qubits[23], qubits[79], qubits[80]; -ccx qubits[24], qubits[80], qubits[81]; -ccx qubits[25], qubits[81], qubits[82]; -ccx qubits[26], qubits[82], qubits[83]; -ccx qubits[27], qubits[83], qubits[84]; -ccx qubits[28], qubits[84], qubits[85]; -ccx qubits[29], qubits[85], qubits[86]; -ccx qubits[30], qubits[86], qubits[87]; -ccx qubits[31], qubits[87], qubits[88]; -ccx qubits[32], qubits[88], qubits[89]; -ccx qubits[33], qubits[89], qubits[90]; -ccx qubits[34], qubits[90], qubits[91]; -ccx qubits[35], qubits[91], qubits[92]; -ccx qubits[36], qubits[92], qubits[93]; -ccx qubits[37], qubits[93], qubits[94]; -ccx qubits[38], qubits[94], qubits[95]; -ccx qubits[39], qubits[95], qubits[96]; -ccx qubits[40], qubits[96], qubits[97]; -ccx qubits[41], qubits[97], qubits[98]; -ccx qubits[42], qubits[98], qubits[99]; -ccx qubits[43], qubits[99], qubits[100]; -ccx qubits[44], qubits[100], qubits[101]; -ccx qubits[45], qubits[101], qubits[102]; -ccx qubits[46], qubits[102], qubits[103]; -ccx qubits[47], qubits[103], qubits[104]; -ccx qubits[48], qubits[104], qubits[105]; -ccx qubits[49], qubits[105], qubits[106]; -ccx qubits[50], qubits[106], qubits[107]; -ccx qubits[51], qubits[107], qubits[108]; -ccx qubits[52], qubits[108], qubits[109]; -ccx qubits[53], qubits[109], qubits[110]; -ccx qubits[54], qubits[110], qubits[111]; -ccx qubits[55], qubits[111], qubits[112]; -cz qubits[112], qubits[56]; -ccx qubits[55], qubits[111], qubits[112]; -ccx qubits[54], qubits[110], qubits[111]; -ccx qubits[53], qubits[109], qubits[110]; -ccx qubits[52], qubits[108], qubits[109]; -ccx qubits[51], qubits[107], qubits[108]; -ccx qubits[50], qubits[106], qubits[107]; -ccx qubits[49], qubits[105], qubits[106]; -ccx qubits[48], qubits[104], qubits[105]; -ccx qubits[47], qubits[103], qubits[104]; -ccx qubits[46], qubits[102], qubits[103]; -ccx qubits[45], qubits[101], qubits[102]; -ccx qubits[44], qubits[100], qubits[101]; -ccx qubits[43], qubits[99], qubits[100]; -ccx qubits[42], qubits[98], qubits[99]; -ccx qubits[41], qubits[97], qubits[98]; -ccx qubits[40], qubits[96], qubits[97]; -ccx qubits[39], qubits[95], qubits[96]; -ccx qubits[38], qubits[94], qubits[95]; -ccx qubits[37], qubits[93], qubits[94]; -ccx qubits[36], qubits[92], qubits[93]; -ccx qubits[35], qubits[91], qubits[92]; -ccx qubits[34], qubits[90], qubits[91]; -ccx qubits[33], qubits[89], qubits[90]; -ccx qubits[32], qubits[88], qubits[89]; -ccx qubits[31], qubits[87], qubits[88]; -ccx qubits[30], qubits[86], qubits[87]; -ccx qubits[29], qubits[85], qubits[86]; -ccx qubits[28], qubits[84], qubits[85]; -ccx qubits[27], qubits[83], qubits[84]; -ccx qubits[26], qubits[82], qubits[83]; -ccx qubits[25], qubits[81], qubits[82]; -ccx qubits[24], qubits[80], qubits[81]; -ccx qubits[23], qubits[79], qubits[80]; -ccx qubits[22], qubits[78], qubits[79]; -ccx qubits[21], qubits[77], qubits[78]; -ccx qubits[20], qubits[76], qubits[77]; -ccx qubits[19], qubits[75], qubits[76]; -ccx qubits[18], qubits[74], qubits[75]; -ccx qubits[17], qubits[73], qubits[74]; -ccx qubits[16], qubits[72], qubits[73]; -ccx qubits[15], qubits[71], qubits[72]; -ccx qubits[14], qubits[70], qubits[71]; -ccx qubits[13], qubits[69], qubits[70]; -ccx qubits[12], qubits[68], qubits[69]; -ccx qubits[11], qubits[67], qubits[68]; -ccx qubits[10], qubits[66], qubits[67]; -ccx qubits[9], qubits[65], qubits[66]; -ccx qubits[8], qubits[64], qubits[65]; -ccx qubits[7], qubits[63], qubits[64]; -ccx qubits[6], qubits[62], qubits[63]; -ccx qubits[5], qubits[61], qubits[62]; -ccx qubits[4], qubits[60], qubits[61]; -ccx qubits[3], qubits[59], qubits[60]; -ccx qubits[2], qubits[58], qubits[59]; -ccx qubits[0], qubits[1], qubits[58]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +cz qubits[110], qubits[111]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -173,341 +173,341 @@ x qubits[54]; x qubits[56]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; -ccx qubits[0], qubits[1], qubits[58]; -ccx qubits[2], qubits[58], qubits[59]; -ccx qubits[3], qubits[59], qubits[60]; -ccx qubits[4], qubits[60], qubits[61]; -ccx qubits[5], qubits[61], qubits[62]; -ccx qubits[6], qubits[62], qubits[63]; -ccx qubits[7], qubits[63], qubits[64]; -ccx qubits[8], qubits[64], qubits[65]; -ccx qubits[9], qubits[65], qubits[66]; -ccx qubits[10], qubits[66], qubits[67]; -ccx qubits[11], qubits[67], qubits[68]; -ccx qubits[12], qubits[68], qubits[69]; -ccx qubits[13], qubits[69], qubits[70]; -ccx qubits[14], qubits[70], qubits[71]; -ccx qubits[15], qubits[71], qubits[72]; -ccx qubits[16], qubits[72], qubits[73]; -ccx qubits[17], qubits[73], qubits[74]; -ccx qubits[18], qubits[74], qubits[75]; -ccx qubits[19], qubits[75], qubits[76]; -ccx qubits[20], qubits[76], qubits[77]; -ccx qubits[21], qubits[77], qubits[78]; -ccx qubits[22], qubits[78], qubits[79]; -ccx qubits[23], qubits[79], qubits[80]; -ccx qubits[24], qubits[80], qubits[81]; -ccx qubits[25], qubits[81], qubits[82]; -ccx qubits[26], qubits[82], qubits[83]; -ccx qubits[27], qubits[83], qubits[84]; -ccx qubits[28], qubits[84], qubits[85]; -ccx qubits[29], qubits[85], qubits[86]; -ccx qubits[30], qubits[86], qubits[87]; -ccx qubits[31], qubits[87], qubits[88]; -ccx qubits[32], qubits[88], qubits[89]; -ccx qubits[33], qubits[89], qubits[90]; -ccx qubits[34], qubits[90], qubits[91]; -ccx qubits[35], qubits[91], qubits[92]; -ccx qubits[36], qubits[92], qubits[93]; -ccx qubits[37], qubits[93], qubits[94]; -ccx qubits[38], qubits[94], qubits[95]; -ccx qubits[39], qubits[95], qubits[96]; -ccx qubits[40], qubits[96], qubits[97]; -ccx qubits[41], qubits[97], qubits[98]; -ccx qubits[42], qubits[98], qubits[99]; -ccx qubits[43], qubits[99], qubits[100]; -ccx qubits[44], qubits[100], qubits[101]; -ccx qubits[45], qubits[101], qubits[102]; -ccx qubits[46], qubits[102], qubits[103]; -ccx qubits[47], qubits[103], qubits[104]; -ccx qubits[48], qubits[104], qubits[105]; -ccx qubits[49], qubits[105], qubits[106]; -ccx qubits[50], qubits[106], qubits[107]; -ccx qubits[51], qubits[107], qubits[108]; -ccx qubits[52], qubits[108], qubits[109]; -ccx qubits[53], qubits[109], qubits[110]; -ccx qubits[54], qubits[110], qubits[111]; -ccx qubits[55], qubits[111], qubits[112]; -cz qubits[112], qubits[56]; -ccx qubits[55], qubits[111], qubits[112]; -ccx qubits[54], qubits[110], qubits[111]; -ccx qubits[53], qubits[109], qubits[110]; -ccx qubits[52], qubits[108], qubits[109]; -ccx qubits[51], qubits[107], qubits[108]; -ccx qubits[50], qubits[106], qubits[107]; -ccx qubits[49], qubits[105], qubits[106]; -ccx qubits[48], qubits[104], qubits[105]; -ccx qubits[47], qubits[103], qubits[104]; -ccx qubits[46], qubits[102], qubits[103]; -ccx qubits[45], qubits[101], qubits[102]; -ccx qubits[44], qubits[100], qubits[101]; -ccx qubits[43], qubits[99], qubits[100]; -ccx qubits[42], qubits[98], qubits[99]; -ccx qubits[41], qubits[97], qubits[98]; -ccx qubits[40], qubits[96], qubits[97]; -ccx qubits[39], qubits[95], qubits[96]; -ccx qubits[38], qubits[94], qubits[95]; -ccx qubits[37], qubits[93], qubits[94]; -ccx qubits[36], qubits[92], qubits[93]; -ccx qubits[35], qubits[91], qubits[92]; -ccx qubits[34], qubits[90], qubits[91]; -ccx qubits[33], qubits[89], qubits[90]; -ccx qubits[32], qubits[88], qubits[89]; -ccx qubits[31], qubits[87], qubits[88]; -ccx qubits[30], qubits[86], qubits[87]; -ccx qubits[29], qubits[85], qubits[86]; -ccx qubits[28], qubits[84], qubits[85]; -ccx qubits[27], qubits[83], qubits[84]; -ccx qubits[26], qubits[82], qubits[83]; -ccx qubits[25], qubits[81], qubits[82]; -ccx qubits[24], qubits[80], qubits[81]; -ccx qubits[23], qubits[79], qubits[80]; -ccx qubits[22], qubits[78], qubits[79]; -ccx qubits[21], qubits[77], qubits[78]; -ccx qubits[20], qubits[76], qubits[77]; -ccx qubits[19], qubits[75], qubits[76]; -ccx qubits[18], qubits[74], qubits[75]; -ccx qubits[17], qubits[73], qubits[74]; -ccx qubits[16], qubits[72], qubits[73]; -ccx qubits[15], qubits[71], qubits[72]; -ccx qubits[14], qubits[70], qubits[71]; -ccx qubits[13], qubits[69], qubits[70]; -ccx qubits[12], qubits[68], qubits[69]; -ccx qubits[11], qubits[67], qubits[68]; -ccx qubits[10], qubits[66], qubits[67]; -ccx qubits[9], qubits[65], qubits[66]; -ccx qubits[8], qubits[64], qubits[65]; -ccx qubits[7], qubits[63], qubits[64]; -ccx qubits[6], qubits[62], qubits[63]; -ccx qubits[5], qubits[61], qubits[62]; -ccx qubits[4], qubits[60], qubits[61]; -ccx qubits[3], qubits[59], qubits[60]; -ccx qubits[2], qubits[58], qubits[59]; -ccx qubits[0], qubits[1], qubits[58]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +cz qubits[110], qubits[111]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; +x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; -z qubits[57]; +h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +z qubits[112]; diff --git a/benchmarks/all/OEGrover/57/post.hsl b/benchmarks/all/OEGrover/57/post.hsl index beb93a963..8488b2d8c 100644 --- a/benchmarks/all/OEGrover/57/post.hsl +++ b/benchmarks/all/OEGrover/57/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 27 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/57/post.lsta b/benchmarks/all/OEGrover/57/post.lsta deleted file mode 100644 index f3bb76c1d..000000000 --- a/benchmarks/all/OEGrover/57/post.lsta +++ /dev/null @@ -1,292 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 116) -> 113 -[58,1](115, 117) -> 114 -[59,1](118, 118) -> 115 -[59,1](119, 118) -> 116 -[59,1](120, 118) -> 117 -[60,1](121, 121) -> 118 -[60,1](122, 121) -> 119 -[60,1](123, 121) -> 120 -[61,1](124, 124) -> 121 -[61,1](125, 124) -> 122 -[61,1](126, 124) -> 123 -[62,1](127, 127) -> 124 -[62,1](128, 127) -> 125 -[62,1](129, 127) -> 126 -[63,1](130, 130) -> 127 -[63,1](131, 130) -> 128 -[63,1](132, 130) -> 129 -[64,1](133, 133) -> 130 -[64,1](134, 133) -> 131 -[64,1](135, 133) -> 132 -[65,1](136, 136) -> 133 -[65,1](137, 136) -> 134 -[65,1](138, 136) -> 135 -[66,1](139, 139) -> 136 -[66,1](140, 139) -> 137 -[66,1](141, 139) -> 138 -[67,1](142, 142) -> 139 -[67,1](143, 142) -> 140 -[67,1](144, 142) -> 141 -[68,1](145, 145) -> 142 -[68,1](146, 145) -> 143 -[68,1](147, 145) -> 144 -[69,1](148, 148) -> 145 -[69,1](149, 148) -> 146 -[69,1](150, 148) -> 147 -[70,1](151, 151) -> 148 -[70,1](152, 151) -> 149 -[70,1](153, 151) -> 150 -[71,1](154, 154) -> 151 -[71,1](155, 154) -> 152 -[71,1](156, 154) -> 153 -[72,1](157, 157) -> 154 -[72,1](158, 157) -> 155 -[72,1](159, 157) -> 156 -[73,1](160, 160) -> 157 -[73,1](161, 160) -> 158 -[73,1](162, 160) -> 159 -[74,1](163, 163) -> 160 -[74,1](164, 163) -> 161 -[74,1](165, 163) -> 162 -[75,1](166, 166) -> 163 -[75,1](167, 166) -> 164 -[75,1](168, 166) -> 165 -[76,1](169, 169) -> 166 -[76,1](170, 169) -> 167 -[76,1](171, 169) -> 168 -[77,1](172, 172) -> 169 -[77,1](173, 172) -> 170 -[77,1](174, 172) -> 171 -[78,1](175, 175) -> 172 -[78,1](176, 175) -> 173 -[78,1](177, 175) -> 174 -[79,1](178, 178) -> 175 -[79,1](179, 178) -> 176 -[79,1](180, 178) -> 177 -[80,1](181, 181) -> 178 -[80,1](182, 181) -> 179 -[80,1](183, 181) -> 180 -[81,1](184, 184) -> 181 -[81,1](185, 184) -> 182 -[81,1](186, 184) -> 183 -[82,1](187, 187) -> 184 -[82,1](188, 187) -> 185 -[82,1](189, 187) -> 186 -[83,1](190, 190) -> 187 -[83,1](191, 190) -> 188 -[83,1](192, 190) -> 189 -[84,1](193, 193) -> 190 -[84,1](194, 193) -> 191 -[84,1](195, 193) -> 192 -[85,1](196, 196) -> 193 -[85,1](197, 196) -> 194 -[85,1](198, 196) -> 195 -[86,1](199, 199) -> 196 -[86,1](200, 199) -> 197 -[86,1](201, 199) -> 198 -[87,1](202, 202) -> 199 -[87,1](203, 202) -> 200 -[87,1](204, 202) -> 201 -[88,1](205, 205) -> 202 -[88,1](206, 205) -> 203 -[88,1](207, 205) -> 204 -[89,1](208, 208) -> 205 -[89,1](209, 208) -> 206 -[89,1](210, 208) -> 207 -[90,1](211, 211) -> 208 -[90,1](212, 211) -> 209 -[90,1](213, 211) -> 210 -[91,1](214, 214) -> 211 -[91,1](215, 214) -> 212 -[91,1](216, 214) -> 213 -[92,1](217, 217) -> 214 -[92,1](218, 217) -> 215 -[92,1](219, 217) -> 216 -[93,1](220, 220) -> 217 -[93,1](221, 220) -> 218 -[93,1](222, 220) -> 219 -[94,1](223, 223) -> 220 -[94,1](224, 223) -> 221 -[94,1](225, 223) -> 222 -[95,1](226, 226) -> 223 -[95,1](227, 226) -> 224 -[95,1](228, 226) -> 225 -[96,1](229, 229) -> 226 -[96,1](230, 229) -> 227 -[96,1](231, 229) -> 228 -[97,1](232, 232) -> 229 -[97,1](233, 232) -> 230 -[97,1](234, 232) -> 231 -[98,1](235, 235) -> 232 -[98,1](236, 235) -> 233 -[98,1](237, 235) -> 234 -[99,1](238, 238) -> 235 -[99,1](239, 238) -> 236 -[99,1](240, 238) -> 237 -[100,1](241, 241) -> 238 -[100,1](242, 241) -> 239 -[100,1](243, 241) -> 240 -[101,1](244, 244) -> 241 -[101,1](245, 244) -> 242 -[101,1](246, 244) -> 243 -[102,1](247, 247) -> 244 -[102,1](248, 247) -> 245 -[102,1](249, 247) -> 246 -[103,1](250, 250) -> 247 -[103,1](251, 250) -> 248 -[103,1](252, 250) -> 249 -[104,1](253, 253) -> 250 -[104,1](254, 253) -> 251 -[104,1](255, 253) -> 252 -[105,1](256, 256) -> 253 -[105,1](257, 256) -> 254 -[105,1](258, 256) -> 255 -[106,1](259, 259) -> 256 -[106,1](260, 259) -> 257 -[106,1](261, 259) -> 258 -[107,1](262, 262) -> 259 -[107,1](263, 262) -> 260 -[107,1](264, 262) -> 261 -[108,1](265, 265) -> 262 -[108,1](266, 265) -> 263 -[108,1](267, 265) -> 264 -[109,1](268, 268) -> 265 -[109,1](269, 268) -> 266 -[109,1](270, 268) -> 267 -[110,1](271, 271) -> 268 -[110,1](272, 271) -> 269 -[110,1](273, 271) -> 270 -[111,1](274, 274) -> 271 -[111,1](275, 274) -> 272 -[111,1](276, 274) -> 273 -[112,1](277, 277) -> 274 -[112,1](278, 277) -> 275 -[112,1](279, 277) -> 276 -[113,1](280, 280) -> 277 -[113,1](281, 280) -> 278 -[113,1](282, 280) -> 279 -[114,1](283, 283) -> 280 -[114,1](284, 283) -> 281 -[114,1](285, 283) -> 282 -[p1,1] -> 283 -[p2,1] -> 284 -[p3,1] -> 285 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/57/pre.hsl b/benchmarks/all/OEGrover/57/pre.hsl index c419bda78..77c96e789 100644 --- a/benchmarks/all/OEGrover/57/pre.hsl +++ b/benchmarks/all/OEGrover/57/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 27 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 144115188075855871 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/57/pre.lsta b/benchmarks/all/OEGrover/57/pre.lsta deleted file mode 100644 index 66f254446..000000000 --- a/benchmarks/all/OEGrover/57/pre.lsta +++ /dev/null @@ -1,296 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 116) -> 113 -[58,1](115, 117) -> 114 -[59,1](118, 118) -> 115 -[59,1](119, 118) -> 116 -[59,1](120, 118) -> 117 -[60,1](121, 121) -> 118 -[60,1](122, 121) -> 119 -[60,1](123, 121) -> 120 -[61,1](124, 124) -> 121 -[61,1](125, 124) -> 122 -[61,1](126, 124) -> 123 -[62,1](127, 127) -> 124 -[62,1](128, 127) -> 125 -[62,1](129, 127) -> 126 -[63,1](130, 130) -> 127 -[63,1](131, 130) -> 128 -[63,1](132, 130) -> 129 -[64,1](133, 133) -> 130 -[64,1](134, 133) -> 131 -[64,1](135, 133) -> 132 -[65,1](136, 136) -> 133 -[65,1](137, 136) -> 134 -[65,1](138, 136) -> 135 -[66,1](139, 139) -> 136 -[66,1](140, 139) -> 137 -[66,1](141, 139) -> 138 -[67,1](142, 142) -> 139 -[67,1](143, 142) -> 140 -[67,1](144, 142) -> 141 -[68,1](145, 145) -> 142 -[68,1](146, 145) -> 143 -[68,1](147, 145) -> 144 -[69,1](148, 148) -> 145 -[69,1](149, 148) -> 146 -[69,1](150, 148) -> 147 -[70,1](151, 151) -> 148 -[70,1](152, 151) -> 149 -[70,1](153, 151) -> 150 -[71,1](154, 154) -> 151 -[71,1](155, 154) -> 152 -[71,1](156, 154) -> 153 -[72,1](157, 157) -> 154 -[72,1](158, 157) -> 155 -[72,1](159, 157) -> 156 -[73,1](160, 160) -> 157 -[73,1](161, 160) -> 158 -[73,1](162, 160) -> 159 -[74,1](163, 163) -> 160 -[74,1](164, 163) -> 161 -[74,1](165, 163) -> 162 -[75,1](166, 166) -> 163 -[75,1](167, 166) -> 164 -[75,1](168, 166) -> 165 -[76,1](169, 169) -> 166 -[76,1](170, 169) -> 167 -[76,1](171, 169) -> 168 -[77,1](172, 172) -> 169 -[77,1](173, 172) -> 170 -[77,1](174, 172) -> 171 -[78,1](175, 175) -> 172 -[78,1](176, 175) -> 173 -[78,1](177, 175) -> 174 -[79,1](178, 178) -> 175 -[79,1](179, 178) -> 176 -[79,1](180, 178) -> 177 -[80,1](181, 181) -> 178 -[80,1](182, 181) -> 179 -[80,1](183, 181) -> 180 -[81,1](184, 184) -> 181 -[81,1](185, 184) -> 182 -[81,1](186, 184) -> 183 -[82,1](187, 187) -> 184 -[82,1](188, 187) -> 185 -[82,1](189, 187) -> 186 -[83,1](190, 190) -> 187 -[83,1](191, 190) -> 188 -[83,1](192, 190) -> 189 -[84,1](193, 193) -> 190 -[84,1](194, 193) -> 191 -[84,1](195, 193) -> 192 -[85,1](196, 196) -> 193 -[85,1](197, 196) -> 194 -[85,1](198, 196) -> 195 -[86,1](199, 199) -> 196 -[86,1](200, 199) -> 197 -[86,1](201, 199) -> 198 -[87,1](202, 202) -> 199 -[87,1](203, 202) -> 200 -[87,1](204, 202) -> 201 -[88,1](205, 205) -> 202 -[88,1](206, 205) -> 203 -[88,1](207, 205) -> 204 -[89,1](208, 208) -> 205 -[89,1](209, 208) -> 206 -[89,1](210, 208) -> 207 -[90,1](211, 211) -> 208 -[90,1](212, 211) -> 209 -[90,1](213, 211) -> 210 -[91,1](214, 214) -> 211 -[91,1](215, 214) -> 212 -[91,1](216, 214) -> 213 -[92,1](217, 217) -> 214 -[92,1](218, 217) -> 215 -[92,1](219, 217) -> 216 -[93,1](220, 220) -> 217 -[93,1](221, 220) -> 218 -[93,1](222, 220) -> 219 -[94,1](223, 223) -> 220 -[94,1](224, 223) -> 221 -[94,1](225, 223) -> 222 -[95,1](226, 226) -> 223 -[95,1](227, 226) -> 224 -[95,1](228, 226) -> 225 -[96,1](229, 229) -> 226 -[96,1](230, 229) -> 227 -[96,1](231, 229) -> 228 -[97,1](232, 232) -> 229 -[97,1](233, 232) -> 230 -[97,1](234, 232) -> 231 -[98,1](235, 235) -> 232 -[98,1](236, 235) -> 233 -[98,1](237, 235) -> 234 -[99,1](238, 238) -> 235 -[99,1](239, 238) -> 236 -[99,1](240, 238) -> 237 -[100,1](241, 241) -> 238 -[100,1](242, 241) -> 239 -[100,1](243, 241) -> 240 -[101,1](244, 244) -> 241 -[101,1](245, 244) -> 242 -[101,1](246, 244) -> 243 -[102,1](247, 247) -> 244 -[102,1](248, 247) -> 245 -[102,1](249, 247) -> 246 -[103,1](250, 250) -> 247 -[103,1](251, 250) -> 248 -[103,1](252, 250) -> 249 -[104,1](253, 253) -> 250 -[104,1](254, 253) -> 251 -[104,1](255, 253) -> 252 -[105,1](256, 256) -> 253 -[105,1](257, 256) -> 254 -[105,1](258, 256) -> 255 -[106,1](259, 259) -> 256 -[106,1](260, 259) -> 257 -[106,1](261, 259) -> 258 -[107,1](262, 262) -> 259 -[107,1](263, 262) -> 260 -[107,1](264, 262) -> 261 -[108,1](265, 265) -> 262 -[108,1](266, 265) -> 263 -[108,1](267, 265) -> 264 -[109,1](268, 268) -> 265 -[109,1](269, 268) -> 266 -[109,1](270, 268) -> 267 -[110,1](271, 271) -> 268 -[110,1](272, 271) -> 269 -[110,1](273, 271) -> 270 -[111,1](274, 274) -> 271 -[111,1](275, 274) -> 272 -[111,1](276, 274) -> 273 -[112,1](277, 277) -> 274 -[112,1](278, 277) -> 275 -[112,1](279, 277) -> 276 -[113,1](280, 280) -> 277 -[113,1](281, 280) -> 278 -[113,1](282, 280) -> 279 -[114,1](283, 283) -> 280 -[114,1](284, 283) -> 281 -[114,1](285, 283) -> 282 -[c0,1] -> 283 -[a,1] -> 284 -[b,1] -> 285 -Constraints -144115188075855871 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/58/circuit.qasm b/benchmarks/all/OEGrover/58/circuit.qasm index db7e0c172..3067965bf 100644 --- a/benchmarks/all/OEGrover/58/circuit.qasm +++ b/benchmarks/all/OEGrover/58/circuit.qasm @@ -1,149 +1,149 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[116]; +qreg qubits[115]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -ccx qubits[0], qubits[1], qubits[59]; -ccx qubits[2], qubits[59], qubits[60]; -ccx qubits[3], qubits[60], qubits[61]; -ccx qubits[4], qubits[61], qubits[62]; -ccx qubits[5], qubits[62], qubits[63]; -ccx qubits[6], qubits[63], qubits[64]; -ccx qubits[7], qubits[64], qubits[65]; -ccx qubits[8], qubits[65], qubits[66]; -ccx qubits[9], qubits[66], qubits[67]; -ccx qubits[10], qubits[67], qubits[68]; -ccx qubits[11], qubits[68], qubits[69]; -ccx qubits[12], qubits[69], qubits[70]; -ccx qubits[13], qubits[70], qubits[71]; -ccx qubits[14], qubits[71], qubits[72]; -ccx qubits[15], qubits[72], qubits[73]; -ccx qubits[16], qubits[73], qubits[74]; -ccx qubits[17], qubits[74], qubits[75]; -ccx qubits[18], qubits[75], qubits[76]; -ccx qubits[19], qubits[76], qubits[77]; -ccx qubits[20], qubits[77], qubits[78]; -ccx qubits[21], qubits[78], qubits[79]; -ccx qubits[22], qubits[79], qubits[80]; -ccx qubits[23], qubits[80], qubits[81]; -ccx qubits[24], qubits[81], qubits[82]; -ccx qubits[25], qubits[82], qubits[83]; -ccx qubits[26], qubits[83], qubits[84]; -ccx qubits[27], qubits[84], qubits[85]; -ccx qubits[28], qubits[85], qubits[86]; -ccx qubits[29], qubits[86], qubits[87]; -ccx qubits[30], qubits[87], qubits[88]; -ccx qubits[31], qubits[88], qubits[89]; -ccx qubits[32], qubits[89], qubits[90]; -ccx qubits[33], qubits[90], qubits[91]; -ccx qubits[34], qubits[91], qubits[92]; -ccx qubits[35], qubits[92], qubits[93]; -ccx qubits[36], qubits[93], qubits[94]; -ccx qubits[37], qubits[94], qubits[95]; -ccx qubits[38], qubits[95], qubits[96]; -ccx qubits[39], qubits[96], qubits[97]; -ccx qubits[40], qubits[97], qubits[98]; -ccx qubits[41], qubits[98], qubits[99]; -ccx qubits[42], qubits[99], qubits[100]; -ccx qubits[43], qubits[100], qubits[101]; -ccx qubits[44], qubits[101], qubits[102]; -ccx qubits[45], qubits[102], qubits[103]; -ccx qubits[46], qubits[103], qubits[104]; -ccx qubits[47], qubits[104], qubits[105]; -ccx qubits[48], qubits[105], qubits[106]; -ccx qubits[49], qubits[106], qubits[107]; -ccx qubits[50], qubits[107], qubits[108]; -ccx qubits[51], qubits[108], qubits[109]; -ccx qubits[52], qubits[109], qubits[110]; -ccx qubits[53], qubits[110], qubits[111]; -ccx qubits[54], qubits[111], qubits[112]; -ccx qubits[55], qubits[112], qubits[113]; -ccx qubits[56], qubits[113], qubits[114]; -cz qubits[114], qubits[57]; -ccx qubits[56], qubits[113], qubits[114]; -ccx qubits[55], qubits[112], qubits[113]; -ccx qubits[54], qubits[111], qubits[112]; -ccx qubits[53], qubits[110], qubits[111]; -ccx qubits[52], qubits[109], qubits[110]; -ccx qubits[51], qubits[108], qubits[109]; -ccx qubits[50], qubits[107], qubits[108]; -ccx qubits[49], qubits[106], qubits[107]; -ccx qubits[48], qubits[105], qubits[106]; -ccx qubits[47], qubits[104], qubits[105]; -ccx qubits[46], qubits[103], qubits[104]; -ccx qubits[45], qubits[102], qubits[103]; -ccx qubits[44], qubits[101], qubits[102]; -ccx qubits[43], qubits[100], qubits[101]; -ccx qubits[42], qubits[99], qubits[100]; -ccx qubits[41], qubits[98], qubits[99]; -ccx qubits[40], qubits[97], qubits[98]; -ccx qubits[39], qubits[96], qubits[97]; -ccx qubits[38], qubits[95], qubits[96]; -ccx qubits[37], qubits[94], qubits[95]; -ccx qubits[36], qubits[93], qubits[94]; -ccx qubits[35], qubits[92], qubits[93]; -ccx qubits[34], qubits[91], qubits[92]; -ccx qubits[33], qubits[90], qubits[91]; -ccx qubits[32], qubits[89], qubits[90]; -ccx qubits[31], qubits[88], qubits[89]; -ccx qubits[30], qubits[87], qubits[88]; -ccx qubits[29], qubits[86], qubits[87]; -ccx qubits[28], qubits[85], qubits[86]; -ccx qubits[27], qubits[84], qubits[85]; -ccx qubits[26], qubits[83], qubits[84]; -ccx qubits[25], qubits[82], qubits[83]; -ccx qubits[24], qubits[81], qubits[82]; -ccx qubits[23], qubits[80], qubits[81]; -ccx qubits[22], qubits[79], qubits[80]; -ccx qubits[21], qubits[78], qubits[79]; -ccx qubits[20], qubits[77], qubits[78]; -ccx qubits[19], qubits[76], qubits[77]; -ccx qubits[18], qubits[75], qubits[76]; -ccx qubits[17], qubits[74], qubits[75]; -ccx qubits[16], qubits[73], qubits[74]; -ccx qubits[15], qubits[72], qubits[73]; -ccx qubits[14], qubits[71], qubits[72]; -ccx qubits[13], qubits[70], qubits[71]; -ccx qubits[12], qubits[69], qubits[70]; -ccx qubits[11], qubits[68], qubits[69]; -ccx qubits[10], qubits[67], qubits[68]; -ccx qubits[9], qubits[66], qubits[67]; -ccx qubits[8], qubits[65], qubits[66]; -ccx qubits[7], qubits[64], qubits[65]; -ccx qubits[6], qubits[63], qubits[64]; -ccx qubits[5], qubits[62], qubits[63]; -ccx qubits[4], qubits[61], qubits[62]; -ccx qubits[3], qubits[60], qubits[61]; -ccx qubits[2], qubits[59], qubits[60]; -ccx qubits[0], qubits[1], qubits[59]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +cz qubits[112], qubits[113]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -175,347 +175,347 @@ x qubits[54]; x qubits[56]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -ccx qubits[0], qubits[1], qubits[59]; -ccx qubits[2], qubits[59], qubits[60]; -ccx qubits[3], qubits[60], qubits[61]; -ccx qubits[4], qubits[61], qubits[62]; -ccx qubits[5], qubits[62], qubits[63]; -ccx qubits[6], qubits[63], qubits[64]; -ccx qubits[7], qubits[64], qubits[65]; -ccx qubits[8], qubits[65], qubits[66]; -ccx qubits[9], qubits[66], qubits[67]; -ccx qubits[10], qubits[67], qubits[68]; -ccx qubits[11], qubits[68], qubits[69]; -ccx qubits[12], qubits[69], qubits[70]; -ccx qubits[13], qubits[70], qubits[71]; -ccx qubits[14], qubits[71], qubits[72]; -ccx qubits[15], qubits[72], qubits[73]; -ccx qubits[16], qubits[73], qubits[74]; -ccx qubits[17], qubits[74], qubits[75]; -ccx qubits[18], qubits[75], qubits[76]; -ccx qubits[19], qubits[76], qubits[77]; -ccx qubits[20], qubits[77], qubits[78]; -ccx qubits[21], qubits[78], qubits[79]; -ccx qubits[22], qubits[79], qubits[80]; -ccx qubits[23], qubits[80], qubits[81]; -ccx qubits[24], qubits[81], qubits[82]; -ccx qubits[25], qubits[82], qubits[83]; -ccx qubits[26], qubits[83], qubits[84]; -ccx qubits[27], qubits[84], qubits[85]; -ccx qubits[28], qubits[85], qubits[86]; -ccx qubits[29], qubits[86], qubits[87]; -ccx qubits[30], qubits[87], qubits[88]; -ccx qubits[31], qubits[88], qubits[89]; -ccx qubits[32], qubits[89], qubits[90]; -ccx qubits[33], qubits[90], qubits[91]; -ccx qubits[34], qubits[91], qubits[92]; -ccx qubits[35], qubits[92], qubits[93]; -ccx qubits[36], qubits[93], qubits[94]; -ccx qubits[37], qubits[94], qubits[95]; -ccx qubits[38], qubits[95], qubits[96]; -ccx qubits[39], qubits[96], qubits[97]; -ccx qubits[40], qubits[97], qubits[98]; -ccx qubits[41], qubits[98], qubits[99]; -ccx qubits[42], qubits[99], qubits[100]; -ccx qubits[43], qubits[100], qubits[101]; -ccx qubits[44], qubits[101], qubits[102]; -ccx qubits[45], qubits[102], qubits[103]; -ccx qubits[46], qubits[103], qubits[104]; -ccx qubits[47], qubits[104], qubits[105]; -ccx qubits[48], qubits[105], qubits[106]; -ccx qubits[49], qubits[106], qubits[107]; -ccx qubits[50], qubits[107], qubits[108]; -ccx qubits[51], qubits[108], qubits[109]; -ccx qubits[52], qubits[109], qubits[110]; -ccx qubits[53], qubits[110], qubits[111]; -ccx qubits[54], qubits[111], qubits[112]; -ccx qubits[55], qubits[112], qubits[113]; -ccx qubits[56], qubits[113], qubits[114]; -cz qubits[114], qubits[57]; -ccx qubits[56], qubits[113], qubits[114]; -ccx qubits[55], qubits[112], qubits[113]; -ccx qubits[54], qubits[111], qubits[112]; -ccx qubits[53], qubits[110], qubits[111]; -ccx qubits[52], qubits[109], qubits[110]; -ccx qubits[51], qubits[108], qubits[109]; -ccx qubits[50], qubits[107], qubits[108]; -ccx qubits[49], qubits[106], qubits[107]; -ccx qubits[48], qubits[105], qubits[106]; -ccx qubits[47], qubits[104], qubits[105]; -ccx qubits[46], qubits[103], qubits[104]; -ccx qubits[45], qubits[102], qubits[103]; -ccx qubits[44], qubits[101], qubits[102]; -ccx qubits[43], qubits[100], qubits[101]; -ccx qubits[42], qubits[99], qubits[100]; -ccx qubits[41], qubits[98], qubits[99]; -ccx qubits[40], qubits[97], qubits[98]; -ccx qubits[39], qubits[96], qubits[97]; -ccx qubits[38], qubits[95], qubits[96]; -ccx qubits[37], qubits[94], qubits[95]; -ccx qubits[36], qubits[93], qubits[94]; -ccx qubits[35], qubits[92], qubits[93]; -ccx qubits[34], qubits[91], qubits[92]; -ccx qubits[33], qubits[90], qubits[91]; -ccx qubits[32], qubits[89], qubits[90]; -ccx qubits[31], qubits[88], qubits[89]; -ccx qubits[30], qubits[87], qubits[88]; -ccx qubits[29], qubits[86], qubits[87]; -ccx qubits[28], qubits[85], qubits[86]; -ccx qubits[27], qubits[84], qubits[85]; -ccx qubits[26], qubits[83], qubits[84]; -ccx qubits[25], qubits[82], qubits[83]; -ccx qubits[24], qubits[81], qubits[82]; -ccx qubits[23], qubits[80], qubits[81]; -ccx qubits[22], qubits[79], qubits[80]; -ccx qubits[21], qubits[78], qubits[79]; -ccx qubits[20], qubits[77], qubits[78]; -ccx qubits[19], qubits[76], qubits[77]; -ccx qubits[18], qubits[75], qubits[76]; -ccx qubits[17], qubits[74], qubits[75]; -ccx qubits[16], qubits[73], qubits[74]; -ccx qubits[15], qubits[72], qubits[73]; -ccx qubits[14], qubits[71], qubits[72]; -ccx qubits[13], qubits[70], qubits[71]; -ccx qubits[12], qubits[69], qubits[70]; -ccx qubits[11], qubits[68], qubits[69]; -ccx qubits[10], qubits[67], qubits[68]; -ccx qubits[9], qubits[66], qubits[67]; -ccx qubits[8], qubits[65], qubits[66]; -ccx qubits[7], qubits[64], qubits[65]; -ccx qubits[6], qubits[63], qubits[64]; -ccx qubits[5], qubits[62], qubits[63]; -ccx qubits[4], qubits[61], qubits[62]; -ccx qubits[3], qubits[60], qubits[61]; -ccx qubits[2], qubits[59], qubits[60]; -ccx qubits[0], qubits[1], qubits[59]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +cz qubits[112], qubits[113]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -z qubits[58]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +z qubits[114]; diff --git a/benchmarks/all/OEGrover/58/post.hsl b/benchmarks/all/OEGrover/58/post.hsl index defa7b811..fd93e8caf 100644 --- a/benchmarks/all/OEGrover/58/post.hsl +++ b/benchmarks/all/OEGrover/58/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 28 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/58/post.lsta b/benchmarks/all/OEGrover/58/post.lsta deleted file mode 100644 index b5e9c1b65..000000000 --- a/benchmarks/all/OEGrover/58/post.lsta +++ /dev/null @@ -1,297 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 118) -> 115 -[59,1](117, 119) -> 116 -[60,1](120, 120) -> 117 -[60,1](121, 120) -> 118 -[60,1](122, 120) -> 119 -[61,1](123, 123) -> 120 -[61,1](124, 123) -> 121 -[61,1](125, 123) -> 122 -[62,1](126, 126) -> 123 -[62,1](127, 126) -> 124 -[62,1](128, 126) -> 125 -[63,1](129, 129) -> 126 -[63,1](130, 129) -> 127 -[63,1](131, 129) -> 128 -[64,1](132, 132) -> 129 -[64,1](133, 132) -> 130 -[64,1](134, 132) -> 131 -[65,1](135, 135) -> 132 -[65,1](136, 135) -> 133 -[65,1](137, 135) -> 134 -[66,1](138, 138) -> 135 -[66,1](139, 138) -> 136 -[66,1](140, 138) -> 137 -[67,1](141, 141) -> 138 -[67,1](142, 141) -> 139 -[67,1](143, 141) -> 140 -[68,1](144, 144) -> 141 -[68,1](145, 144) -> 142 -[68,1](146, 144) -> 143 -[69,1](147, 147) -> 144 -[69,1](148, 147) -> 145 -[69,1](149, 147) -> 146 -[70,1](150, 150) -> 147 -[70,1](151, 150) -> 148 -[70,1](152, 150) -> 149 -[71,1](153, 153) -> 150 -[71,1](154, 153) -> 151 -[71,1](155, 153) -> 152 -[72,1](156, 156) -> 153 -[72,1](157, 156) -> 154 -[72,1](158, 156) -> 155 -[73,1](159, 159) -> 156 -[73,1](160, 159) -> 157 -[73,1](161, 159) -> 158 -[74,1](162, 162) -> 159 -[74,1](163, 162) -> 160 -[74,1](164, 162) -> 161 -[75,1](165, 165) -> 162 -[75,1](166, 165) -> 163 -[75,1](167, 165) -> 164 -[76,1](168, 168) -> 165 -[76,1](169, 168) -> 166 -[76,1](170, 168) -> 167 -[77,1](171, 171) -> 168 -[77,1](172, 171) -> 169 -[77,1](173, 171) -> 170 -[78,1](174, 174) -> 171 -[78,1](175, 174) -> 172 -[78,1](176, 174) -> 173 -[79,1](177, 177) -> 174 -[79,1](178, 177) -> 175 -[79,1](179, 177) -> 176 -[80,1](180, 180) -> 177 -[80,1](181, 180) -> 178 -[80,1](182, 180) -> 179 -[81,1](183, 183) -> 180 -[81,1](184, 183) -> 181 -[81,1](185, 183) -> 182 -[82,1](186, 186) -> 183 -[82,1](187, 186) -> 184 -[82,1](188, 186) -> 185 -[83,1](189, 189) -> 186 -[83,1](190, 189) -> 187 -[83,1](191, 189) -> 188 -[84,1](192, 192) -> 189 -[84,1](193, 192) -> 190 -[84,1](194, 192) -> 191 -[85,1](195, 195) -> 192 -[85,1](196, 195) -> 193 -[85,1](197, 195) -> 194 -[86,1](198, 198) -> 195 -[86,1](199, 198) -> 196 -[86,1](200, 198) -> 197 -[87,1](201, 201) -> 198 -[87,1](202, 201) -> 199 -[87,1](203, 201) -> 200 -[88,1](204, 204) -> 201 -[88,1](205, 204) -> 202 -[88,1](206, 204) -> 203 -[89,1](207, 207) -> 204 -[89,1](208, 207) -> 205 -[89,1](209, 207) -> 206 -[90,1](210, 210) -> 207 -[90,1](211, 210) -> 208 -[90,1](212, 210) -> 209 -[91,1](213, 213) -> 210 -[91,1](214, 213) -> 211 -[91,1](215, 213) -> 212 -[92,1](216, 216) -> 213 -[92,1](217, 216) -> 214 -[92,1](218, 216) -> 215 -[93,1](219, 219) -> 216 -[93,1](220, 219) -> 217 -[93,1](221, 219) -> 218 -[94,1](222, 222) -> 219 -[94,1](223, 222) -> 220 -[94,1](224, 222) -> 221 -[95,1](225, 225) -> 222 -[95,1](226, 225) -> 223 -[95,1](227, 225) -> 224 -[96,1](228, 228) -> 225 -[96,1](229, 228) -> 226 -[96,1](230, 228) -> 227 -[97,1](231, 231) -> 228 -[97,1](232, 231) -> 229 -[97,1](233, 231) -> 230 -[98,1](234, 234) -> 231 -[98,1](235, 234) -> 232 -[98,1](236, 234) -> 233 -[99,1](237, 237) -> 234 -[99,1](238, 237) -> 235 -[99,1](239, 237) -> 236 -[100,1](240, 240) -> 237 -[100,1](241, 240) -> 238 -[100,1](242, 240) -> 239 -[101,1](243, 243) -> 240 -[101,1](244, 243) -> 241 -[101,1](245, 243) -> 242 -[102,1](246, 246) -> 243 -[102,1](247, 246) -> 244 -[102,1](248, 246) -> 245 -[103,1](249, 249) -> 246 -[103,1](250, 249) -> 247 -[103,1](251, 249) -> 248 -[104,1](252, 252) -> 249 -[104,1](253, 252) -> 250 -[104,1](254, 252) -> 251 -[105,1](255, 255) -> 252 -[105,1](256, 255) -> 253 -[105,1](257, 255) -> 254 -[106,1](258, 258) -> 255 -[106,1](259, 258) -> 256 -[106,1](260, 258) -> 257 -[107,1](261, 261) -> 258 -[107,1](262, 261) -> 259 -[107,1](263, 261) -> 260 -[108,1](264, 264) -> 261 -[108,1](265, 264) -> 262 -[108,1](266, 264) -> 263 -[109,1](267, 267) -> 264 -[109,1](268, 267) -> 265 -[109,1](269, 267) -> 266 -[110,1](270, 270) -> 267 -[110,1](271, 270) -> 268 -[110,1](272, 270) -> 269 -[111,1](273, 273) -> 270 -[111,1](274, 273) -> 271 -[111,1](275, 273) -> 272 -[112,1](276, 276) -> 273 -[112,1](277, 276) -> 274 -[112,1](278, 276) -> 275 -[113,1](279, 279) -> 276 -[113,1](280, 279) -> 277 -[113,1](281, 279) -> 278 -[114,1](282, 282) -> 279 -[114,1](283, 282) -> 280 -[114,1](284, 282) -> 281 -[115,1](285, 285) -> 282 -[115,1](286, 285) -> 283 -[115,1](287, 285) -> 284 -[116,1](288, 288) -> 285 -[116,1](289, 288) -> 286 -[116,1](290, 288) -> 287 -[p1,1] -> 288 -[p2,1] -> 289 -[p3,1] -> 290 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/58/pre.hsl b/benchmarks/all/OEGrover/58/pre.hsl index 557c9a13b..1a964b339 100644 --- a/benchmarks/all/OEGrover/58/pre.hsl +++ b/benchmarks/all/OEGrover/58/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 28 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 288230376151711743 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/58/pre.lsta b/benchmarks/all/OEGrover/58/pre.lsta deleted file mode 100644 index 2119ecde0..000000000 --- a/benchmarks/all/OEGrover/58/pre.lsta +++ /dev/null @@ -1,301 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 118) -> 115 -[59,1](117, 119) -> 116 -[60,1](120, 120) -> 117 -[60,1](121, 120) -> 118 -[60,1](122, 120) -> 119 -[61,1](123, 123) -> 120 -[61,1](124, 123) -> 121 -[61,1](125, 123) -> 122 -[62,1](126, 126) -> 123 -[62,1](127, 126) -> 124 -[62,1](128, 126) -> 125 -[63,1](129, 129) -> 126 -[63,1](130, 129) -> 127 -[63,1](131, 129) -> 128 -[64,1](132, 132) -> 129 -[64,1](133, 132) -> 130 -[64,1](134, 132) -> 131 -[65,1](135, 135) -> 132 -[65,1](136, 135) -> 133 -[65,1](137, 135) -> 134 -[66,1](138, 138) -> 135 -[66,1](139, 138) -> 136 -[66,1](140, 138) -> 137 -[67,1](141, 141) -> 138 -[67,1](142, 141) -> 139 -[67,1](143, 141) -> 140 -[68,1](144, 144) -> 141 -[68,1](145, 144) -> 142 -[68,1](146, 144) -> 143 -[69,1](147, 147) -> 144 -[69,1](148, 147) -> 145 -[69,1](149, 147) -> 146 -[70,1](150, 150) -> 147 -[70,1](151, 150) -> 148 -[70,1](152, 150) -> 149 -[71,1](153, 153) -> 150 -[71,1](154, 153) -> 151 -[71,1](155, 153) -> 152 -[72,1](156, 156) -> 153 -[72,1](157, 156) -> 154 -[72,1](158, 156) -> 155 -[73,1](159, 159) -> 156 -[73,1](160, 159) -> 157 -[73,1](161, 159) -> 158 -[74,1](162, 162) -> 159 -[74,1](163, 162) -> 160 -[74,1](164, 162) -> 161 -[75,1](165, 165) -> 162 -[75,1](166, 165) -> 163 -[75,1](167, 165) -> 164 -[76,1](168, 168) -> 165 -[76,1](169, 168) -> 166 -[76,1](170, 168) -> 167 -[77,1](171, 171) -> 168 -[77,1](172, 171) -> 169 -[77,1](173, 171) -> 170 -[78,1](174, 174) -> 171 -[78,1](175, 174) -> 172 -[78,1](176, 174) -> 173 -[79,1](177, 177) -> 174 -[79,1](178, 177) -> 175 -[79,1](179, 177) -> 176 -[80,1](180, 180) -> 177 -[80,1](181, 180) -> 178 -[80,1](182, 180) -> 179 -[81,1](183, 183) -> 180 -[81,1](184, 183) -> 181 -[81,1](185, 183) -> 182 -[82,1](186, 186) -> 183 -[82,1](187, 186) -> 184 -[82,1](188, 186) -> 185 -[83,1](189, 189) -> 186 -[83,1](190, 189) -> 187 -[83,1](191, 189) -> 188 -[84,1](192, 192) -> 189 -[84,1](193, 192) -> 190 -[84,1](194, 192) -> 191 -[85,1](195, 195) -> 192 -[85,1](196, 195) -> 193 -[85,1](197, 195) -> 194 -[86,1](198, 198) -> 195 -[86,1](199, 198) -> 196 -[86,1](200, 198) -> 197 -[87,1](201, 201) -> 198 -[87,1](202, 201) -> 199 -[87,1](203, 201) -> 200 -[88,1](204, 204) -> 201 -[88,1](205, 204) -> 202 -[88,1](206, 204) -> 203 -[89,1](207, 207) -> 204 -[89,1](208, 207) -> 205 -[89,1](209, 207) -> 206 -[90,1](210, 210) -> 207 -[90,1](211, 210) -> 208 -[90,1](212, 210) -> 209 -[91,1](213, 213) -> 210 -[91,1](214, 213) -> 211 -[91,1](215, 213) -> 212 -[92,1](216, 216) -> 213 -[92,1](217, 216) -> 214 -[92,1](218, 216) -> 215 -[93,1](219, 219) -> 216 -[93,1](220, 219) -> 217 -[93,1](221, 219) -> 218 -[94,1](222, 222) -> 219 -[94,1](223, 222) -> 220 -[94,1](224, 222) -> 221 -[95,1](225, 225) -> 222 -[95,1](226, 225) -> 223 -[95,1](227, 225) -> 224 -[96,1](228, 228) -> 225 -[96,1](229, 228) -> 226 -[96,1](230, 228) -> 227 -[97,1](231, 231) -> 228 -[97,1](232, 231) -> 229 -[97,1](233, 231) -> 230 -[98,1](234, 234) -> 231 -[98,1](235, 234) -> 232 -[98,1](236, 234) -> 233 -[99,1](237, 237) -> 234 -[99,1](238, 237) -> 235 -[99,1](239, 237) -> 236 -[100,1](240, 240) -> 237 -[100,1](241, 240) -> 238 -[100,1](242, 240) -> 239 -[101,1](243, 243) -> 240 -[101,1](244, 243) -> 241 -[101,1](245, 243) -> 242 -[102,1](246, 246) -> 243 -[102,1](247, 246) -> 244 -[102,1](248, 246) -> 245 -[103,1](249, 249) -> 246 -[103,1](250, 249) -> 247 -[103,1](251, 249) -> 248 -[104,1](252, 252) -> 249 -[104,1](253, 252) -> 250 -[104,1](254, 252) -> 251 -[105,1](255, 255) -> 252 -[105,1](256, 255) -> 253 -[105,1](257, 255) -> 254 -[106,1](258, 258) -> 255 -[106,1](259, 258) -> 256 -[106,1](260, 258) -> 257 -[107,1](261, 261) -> 258 -[107,1](262, 261) -> 259 -[107,1](263, 261) -> 260 -[108,1](264, 264) -> 261 -[108,1](265, 264) -> 262 -[108,1](266, 264) -> 263 -[109,1](267, 267) -> 264 -[109,1](268, 267) -> 265 -[109,1](269, 267) -> 266 -[110,1](270, 270) -> 267 -[110,1](271, 270) -> 268 -[110,1](272, 270) -> 269 -[111,1](273, 273) -> 270 -[111,1](274, 273) -> 271 -[111,1](275, 273) -> 272 -[112,1](276, 276) -> 273 -[112,1](277, 276) -> 274 -[112,1](278, 276) -> 275 -[113,1](279, 279) -> 276 -[113,1](280, 279) -> 277 -[113,1](281, 279) -> 278 -[114,1](282, 282) -> 279 -[114,1](283, 282) -> 280 -[114,1](284, 282) -> 281 -[115,1](285, 285) -> 282 -[115,1](286, 285) -> 283 -[115,1](287, 285) -> 284 -[116,1](288, 288) -> 285 -[116,1](289, 288) -> 286 -[116,1](290, 288) -> 287 -[c0,1] -> 288 -[a,1] -> 289 -[b,1] -> 290 -Constraints -288230376151711743 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/59/circuit.qasm b/benchmarks/all/OEGrover/59/circuit.qasm index 445ae87b6..4fdd544b9 100644 --- a/benchmarks/all/OEGrover/59/circuit.qasm +++ b/benchmarks/all/OEGrover/59/circuit.qasm @@ -1,152 +1,152 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[118]; +qreg qubits[117]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -ccx qubits[0], qubits[1], qubits[60]; -ccx qubits[2], qubits[60], qubits[61]; -ccx qubits[3], qubits[61], qubits[62]; -ccx qubits[4], qubits[62], qubits[63]; -ccx qubits[5], qubits[63], qubits[64]; -ccx qubits[6], qubits[64], qubits[65]; -ccx qubits[7], qubits[65], qubits[66]; -ccx qubits[8], qubits[66], qubits[67]; -ccx qubits[9], qubits[67], qubits[68]; -ccx qubits[10], qubits[68], qubits[69]; -ccx qubits[11], qubits[69], qubits[70]; -ccx qubits[12], qubits[70], qubits[71]; -ccx qubits[13], qubits[71], qubits[72]; -ccx qubits[14], qubits[72], qubits[73]; -ccx qubits[15], qubits[73], qubits[74]; -ccx qubits[16], qubits[74], qubits[75]; -ccx qubits[17], qubits[75], qubits[76]; -ccx qubits[18], qubits[76], qubits[77]; -ccx qubits[19], qubits[77], qubits[78]; -ccx qubits[20], qubits[78], qubits[79]; -ccx qubits[21], qubits[79], qubits[80]; -ccx qubits[22], qubits[80], qubits[81]; -ccx qubits[23], qubits[81], qubits[82]; -ccx qubits[24], qubits[82], qubits[83]; -ccx qubits[25], qubits[83], qubits[84]; -ccx qubits[26], qubits[84], qubits[85]; -ccx qubits[27], qubits[85], qubits[86]; -ccx qubits[28], qubits[86], qubits[87]; -ccx qubits[29], qubits[87], qubits[88]; -ccx qubits[30], qubits[88], qubits[89]; -ccx qubits[31], qubits[89], qubits[90]; -ccx qubits[32], qubits[90], qubits[91]; -ccx qubits[33], qubits[91], qubits[92]; -ccx qubits[34], qubits[92], qubits[93]; -ccx qubits[35], qubits[93], qubits[94]; -ccx qubits[36], qubits[94], qubits[95]; -ccx qubits[37], qubits[95], qubits[96]; -ccx qubits[38], qubits[96], qubits[97]; -ccx qubits[39], qubits[97], qubits[98]; -ccx qubits[40], qubits[98], qubits[99]; -ccx qubits[41], qubits[99], qubits[100]; -ccx qubits[42], qubits[100], qubits[101]; -ccx qubits[43], qubits[101], qubits[102]; -ccx qubits[44], qubits[102], qubits[103]; -ccx qubits[45], qubits[103], qubits[104]; -ccx qubits[46], qubits[104], qubits[105]; -ccx qubits[47], qubits[105], qubits[106]; -ccx qubits[48], qubits[106], qubits[107]; -ccx qubits[49], qubits[107], qubits[108]; -ccx qubits[50], qubits[108], qubits[109]; -ccx qubits[51], qubits[109], qubits[110]; -ccx qubits[52], qubits[110], qubits[111]; -ccx qubits[53], qubits[111], qubits[112]; -ccx qubits[54], qubits[112], qubits[113]; -ccx qubits[55], qubits[113], qubits[114]; -ccx qubits[56], qubits[114], qubits[115]; -ccx qubits[57], qubits[115], qubits[116]; -cz qubits[116], qubits[58]; -ccx qubits[57], qubits[115], qubits[116]; -ccx qubits[56], qubits[114], qubits[115]; -ccx qubits[55], qubits[113], qubits[114]; -ccx qubits[54], qubits[112], qubits[113]; -ccx qubits[53], qubits[111], qubits[112]; -ccx qubits[52], qubits[110], qubits[111]; -ccx qubits[51], qubits[109], qubits[110]; -ccx qubits[50], qubits[108], qubits[109]; -ccx qubits[49], qubits[107], qubits[108]; -ccx qubits[48], qubits[106], qubits[107]; -ccx qubits[47], qubits[105], qubits[106]; -ccx qubits[46], qubits[104], qubits[105]; -ccx qubits[45], qubits[103], qubits[104]; -ccx qubits[44], qubits[102], qubits[103]; -ccx qubits[43], qubits[101], qubits[102]; -ccx qubits[42], qubits[100], qubits[101]; -ccx qubits[41], qubits[99], qubits[100]; -ccx qubits[40], qubits[98], qubits[99]; -ccx qubits[39], qubits[97], qubits[98]; -ccx qubits[38], qubits[96], qubits[97]; -ccx qubits[37], qubits[95], qubits[96]; -ccx qubits[36], qubits[94], qubits[95]; -ccx qubits[35], qubits[93], qubits[94]; -ccx qubits[34], qubits[92], qubits[93]; -ccx qubits[33], qubits[91], qubits[92]; -ccx qubits[32], qubits[90], qubits[91]; -ccx qubits[31], qubits[89], qubits[90]; -ccx qubits[30], qubits[88], qubits[89]; -ccx qubits[29], qubits[87], qubits[88]; -ccx qubits[28], qubits[86], qubits[87]; -ccx qubits[27], qubits[85], qubits[86]; -ccx qubits[26], qubits[84], qubits[85]; -ccx qubits[25], qubits[83], qubits[84]; -ccx qubits[24], qubits[82], qubits[83]; -ccx qubits[23], qubits[81], qubits[82]; -ccx qubits[22], qubits[80], qubits[81]; -ccx qubits[21], qubits[79], qubits[80]; -ccx qubits[20], qubits[78], qubits[79]; -ccx qubits[19], qubits[77], qubits[78]; -ccx qubits[18], qubits[76], qubits[77]; -ccx qubits[17], qubits[75], qubits[76]; -ccx qubits[16], qubits[74], qubits[75]; -ccx qubits[15], qubits[73], qubits[74]; -ccx qubits[14], qubits[72], qubits[73]; -ccx qubits[13], qubits[71], qubits[72]; -ccx qubits[12], qubits[70], qubits[71]; -ccx qubits[11], qubits[69], qubits[70]; -ccx qubits[10], qubits[68], qubits[69]; -ccx qubits[9], qubits[67], qubits[68]; -ccx qubits[8], qubits[66], qubits[67]; -ccx qubits[7], qubits[65], qubits[66]; -ccx qubits[6], qubits[64], qubits[65]; -ccx qubits[5], qubits[63], qubits[64]; -ccx qubits[4], qubits[62], qubits[63]; -ccx qubits[3], qubits[61], qubits[62]; -ccx qubits[2], qubits[60], qubits[61]; -ccx qubits[0], qubits[1], qubits[60]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +cz qubits[114], qubits[115]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -179,353 +179,353 @@ x qubits[56]; x qubits[58]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; -ccx qubits[0], qubits[1], qubits[60]; -ccx qubits[2], qubits[60], qubits[61]; -ccx qubits[3], qubits[61], qubits[62]; -ccx qubits[4], qubits[62], qubits[63]; -ccx qubits[5], qubits[63], qubits[64]; -ccx qubits[6], qubits[64], qubits[65]; -ccx qubits[7], qubits[65], qubits[66]; -ccx qubits[8], qubits[66], qubits[67]; -ccx qubits[9], qubits[67], qubits[68]; -ccx qubits[10], qubits[68], qubits[69]; -ccx qubits[11], qubits[69], qubits[70]; -ccx qubits[12], qubits[70], qubits[71]; -ccx qubits[13], qubits[71], qubits[72]; -ccx qubits[14], qubits[72], qubits[73]; -ccx qubits[15], qubits[73], qubits[74]; -ccx qubits[16], qubits[74], qubits[75]; -ccx qubits[17], qubits[75], qubits[76]; -ccx qubits[18], qubits[76], qubits[77]; -ccx qubits[19], qubits[77], qubits[78]; -ccx qubits[20], qubits[78], qubits[79]; -ccx qubits[21], qubits[79], qubits[80]; -ccx qubits[22], qubits[80], qubits[81]; -ccx qubits[23], qubits[81], qubits[82]; -ccx qubits[24], qubits[82], qubits[83]; -ccx qubits[25], qubits[83], qubits[84]; -ccx qubits[26], qubits[84], qubits[85]; -ccx qubits[27], qubits[85], qubits[86]; -ccx qubits[28], qubits[86], qubits[87]; -ccx qubits[29], qubits[87], qubits[88]; -ccx qubits[30], qubits[88], qubits[89]; -ccx qubits[31], qubits[89], qubits[90]; -ccx qubits[32], qubits[90], qubits[91]; -ccx qubits[33], qubits[91], qubits[92]; -ccx qubits[34], qubits[92], qubits[93]; -ccx qubits[35], qubits[93], qubits[94]; -ccx qubits[36], qubits[94], qubits[95]; -ccx qubits[37], qubits[95], qubits[96]; -ccx qubits[38], qubits[96], qubits[97]; -ccx qubits[39], qubits[97], qubits[98]; -ccx qubits[40], qubits[98], qubits[99]; -ccx qubits[41], qubits[99], qubits[100]; -ccx qubits[42], qubits[100], qubits[101]; -ccx qubits[43], qubits[101], qubits[102]; -ccx qubits[44], qubits[102], qubits[103]; -ccx qubits[45], qubits[103], qubits[104]; -ccx qubits[46], qubits[104], qubits[105]; -ccx qubits[47], qubits[105], qubits[106]; -ccx qubits[48], qubits[106], qubits[107]; -ccx qubits[49], qubits[107], qubits[108]; -ccx qubits[50], qubits[108], qubits[109]; -ccx qubits[51], qubits[109], qubits[110]; -ccx qubits[52], qubits[110], qubits[111]; -ccx qubits[53], qubits[111], qubits[112]; -ccx qubits[54], qubits[112], qubits[113]; -ccx qubits[55], qubits[113], qubits[114]; -ccx qubits[56], qubits[114], qubits[115]; -ccx qubits[57], qubits[115], qubits[116]; -cz qubits[116], qubits[58]; -ccx qubits[57], qubits[115], qubits[116]; -ccx qubits[56], qubits[114], qubits[115]; -ccx qubits[55], qubits[113], qubits[114]; -ccx qubits[54], qubits[112], qubits[113]; -ccx qubits[53], qubits[111], qubits[112]; -ccx qubits[52], qubits[110], qubits[111]; -ccx qubits[51], qubits[109], qubits[110]; -ccx qubits[50], qubits[108], qubits[109]; -ccx qubits[49], qubits[107], qubits[108]; -ccx qubits[48], qubits[106], qubits[107]; -ccx qubits[47], qubits[105], qubits[106]; -ccx qubits[46], qubits[104], qubits[105]; -ccx qubits[45], qubits[103], qubits[104]; -ccx qubits[44], qubits[102], qubits[103]; -ccx qubits[43], qubits[101], qubits[102]; -ccx qubits[42], qubits[100], qubits[101]; -ccx qubits[41], qubits[99], qubits[100]; -ccx qubits[40], qubits[98], qubits[99]; -ccx qubits[39], qubits[97], qubits[98]; -ccx qubits[38], qubits[96], qubits[97]; -ccx qubits[37], qubits[95], qubits[96]; -ccx qubits[36], qubits[94], qubits[95]; -ccx qubits[35], qubits[93], qubits[94]; -ccx qubits[34], qubits[92], qubits[93]; -ccx qubits[33], qubits[91], qubits[92]; -ccx qubits[32], qubits[90], qubits[91]; -ccx qubits[31], qubits[89], qubits[90]; -ccx qubits[30], qubits[88], qubits[89]; -ccx qubits[29], qubits[87], qubits[88]; -ccx qubits[28], qubits[86], qubits[87]; -ccx qubits[27], qubits[85], qubits[86]; -ccx qubits[26], qubits[84], qubits[85]; -ccx qubits[25], qubits[83], qubits[84]; -ccx qubits[24], qubits[82], qubits[83]; -ccx qubits[23], qubits[81], qubits[82]; -ccx qubits[22], qubits[80], qubits[81]; -ccx qubits[21], qubits[79], qubits[80]; -ccx qubits[20], qubits[78], qubits[79]; -ccx qubits[19], qubits[77], qubits[78]; -ccx qubits[18], qubits[76], qubits[77]; -ccx qubits[17], qubits[75], qubits[76]; -ccx qubits[16], qubits[74], qubits[75]; -ccx qubits[15], qubits[73], qubits[74]; -ccx qubits[14], qubits[72], qubits[73]; -ccx qubits[13], qubits[71], qubits[72]; -ccx qubits[12], qubits[70], qubits[71]; -ccx qubits[11], qubits[69], qubits[70]; -ccx qubits[10], qubits[68], qubits[69]; -ccx qubits[9], qubits[67], qubits[68]; -ccx qubits[8], qubits[66], qubits[67]; -ccx qubits[7], qubits[65], qubits[66]; -ccx qubits[6], qubits[64], qubits[65]; -ccx qubits[5], qubits[63], qubits[64]; -ccx qubits[4], qubits[62], qubits[63]; -ccx qubits[3], qubits[61], qubits[62]; -ccx qubits[2], qubits[60], qubits[61]; -ccx qubits[0], qubits[1], qubits[60]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +cz qubits[114], qubits[115]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; +x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; -z qubits[59]; +h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +z qubits[116]; diff --git a/benchmarks/all/OEGrover/59/post.hsl b/benchmarks/all/OEGrover/59/post.hsl index d05f9ad1c..fd46a07e6 100644 --- a/benchmarks/all/OEGrover/59/post.hsl +++ b/benchmarks/all/OEGrover/59/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 28 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/59/post.lsta b/benchmarks/all/OEGrover/59/post.lsta deleted file mode 100644 index cd4baf1ea..000000000 --- a/benchmarks/all/OEGrover/59/post.lsta +++ /dev/null @@ -1,302 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 120) -> 117 -[60,1](119, 121) -> 118 -[61,1](122, 122) -> 119 -[61,1](123, 122) -> 120 -[61,1](124, 122) -> 121 -[62,1](125, 125) -> 122 -[62,1](126, 125) -> 123 -[62,1](127, 125) -> 124 -[63,1](128, 128) -> 125 -[63,1](129, 128) -> 126 -[63,1](130, 128) -> 127 -[64,1](131, 131) -> 128 -[64,1](132, 131) -> 129 -[64,1](133, 131) -> 130 -[65,1](134, 134) -> 131 -[65,1](135, 134) -> 132 -[65,1](136, 134) -> 133 -[66,1](137, 137) -> 134 -[66,1](138, 137) -> 135 -[66,1](139, 137) -> 136 -[67,1](140, 140) -> 137 -[67,1](141, 140) -> 138 -[67,1](142, 140) -> 139 -[68,1](143, 143) -> 140 -[68,1](144, 143) -> 141 -[68,1](145, 143) -> 142 -[69,1](146, 146) -> 143 -[69,1](147, 146) -> 144 -[69,1](148, 146) -> 145 -[70,1](149, 149) -> 146 -[70,1](150, 149) -> 147 -[70,1](151, 149) -> 148 -[71,1](152, 152) -> 149 -[71,1](153, 152) -> 150 -[71,1](154, 152) -> 151 -[72,1](155, 155) -> 152 -[72,1](156, 155) -> 153 -[72,1](157, 155) -> 154 -[73,1](158, 158) -> 155 -[73,1](159, 158) -> 156 -[73,1](160, 158) -> 157 -[74,1](161, 161) -> 158 -[74,1](162, 161) -> 159 -[74,1](163, 161) -> 160 -[75,1](164, 164) -> 161 -[75,1](165, 164) -> 162 -[75,1](166, 164) -> 163 -[76,1](167, 167) -> 164 -[76,1](168, 167) -> 165 -[76,1](169, 167) -> 166 -[77,1](170, 170) -> 167 -[77,1](171, 170) -> 168 -[77,1](172, 170) -> 169 -[78,1](173, 173) -> 170 -[78,1](174, 173) -> 171 -[78,1](175, 173) -> 172 -[79,1](176, 176) -> 173 -[79,1](177, 176) -> 174 -[79,1](178, 176) -> 175 -[80,1](179, 179) -> 176 -[80,1](180, 179) -> 177 -[80,1](181, 179) -> 178 -[81,1](182, 182) -> 179 -[81,1](183, 182) -> 180 -[81,1](184, 182) -> 181 -[82,1](185, 185) -> 182 -[82,1](186, 185) -> 183 -[82,1](187, 185) -> 184 -[83,1](188, 188) -> 185 -[83,1](189, 188) -> 186 -[83,1](190, 188) -> 187 -[84,1](191, 191) -> 188 -[84,1](192, 191) -> 189 -[84,1](193, 191) -> 190 -[85,1](194, 194) -> 191 -[85,1](195, 194) -> 192 -[85,1](196, 194) -> 193 -[86,1](197, 197) -> 194 -[86,1](198, 197) -> 195 -[86,1](199, 197) -> 196 -[87,1](200, 200) -> 197 -[87,1](201, 200) -> 198 -[87,1](202, 200) -> 199 -[88,1](203, 203) -> 200 -[88,1](204, 203) -> 201 -[88,1](205, 203) -> 202 -[89,1](206, 206) -> 203 -[89,1](207, 206) -> 204 -[89,1](208, 206) -> 205 -[90,1](209, 209) -> 206 -[90,1](210, 209) -> 207 -[90,1](211, 209) -> 208 -[91,1](212, 212) -> 209 -[91,1](213, 212) -> 210 -[91,1](214, 212) -> 211 -[92,1](215, 215) -> 212 -[92,1](216, 215) -> 213 -[92,1](217, 215) -> 214 -[93,1](218, 218) -> 215 -[93,1](219, 218) -> 216 -[93,1](220, 218) -> 217 -[94,1](221, 221) -> 218 -[94,1](222, 221) -> 219 -[94,1](223, 221) -> 220 -[95,1](224, 224) -> 221 -[95,1](225, 224) -> 222 -[95,1](226, 224) -> 223 -[96,1](227, 227) -> 224 -[96,1](228, 227) -> 225 -[96,1](229, 227) -> 226 -[97,1](230, 230) -> 227 -[97,1](231, 230) -> 228 -[97,1](232, 230) -> 229 -[98,1](233, 233) -> 230 -[98,1](234, 233) -> 231 -[98,1](235, 233) -> 232 -[99,1](236, 236) -> 233 -[99,1](237, 236) -> 234 -[99,1](238, 236) -> 235 -[100,1](239, 239) -> 236 -[100,1](240, 239) -> 237 -[100,1](241, 239) -> 238 -[101,1](242, 242) -> 239 -[101,1](243, 242) -> 240 -[101,1](244, 242) -> 241 -[102,1](245, 245) -> 242 -[102,1](246, 245) -> 243 -[102,1](247, 245) -> 244 -[103,1](248, 248) -> 245 -[103,1](249, 248) -> 246 -[103,1](250, 248) -> 247 -[104,1](251, 251) -> 248 -[104,1](252, 251) -> 249 -[104,1](253, 251) -> 250 -[105,1](254, 254) -> 251 -[105,1](255, 254) -> 252 -[105,1](256, 254) -> 253 -[106,1](257, 257) -> 254 -[106,1](258, 257) -> 255 -[106,1](259, 257) -> 256 -[107,1](260, 260) -> 257 -[107,1](261, 260) -> 258 -[107,1](262, 260) -> 259 -[108,1](263, 263) -> 260 -[108,1](264, 263) -> 261 -[108,1](265, 263) -> 262 -[109,1](266, 266) -> 263 -[109,1](267, 266) -> 264 -[109,1](268, 266) -> 265 -[110,1](269, 269) -> 266 -[110,1](270, 269) -> 267 -[110,1](271, 269) -> 268 -[111,1](272, 272) -> 269 -[111,1](273, 272) -> 270 -[111,1](274, 272) -> 271 -[112,1](275, 275) -> 272 -[112,1](276, 275) -> 273 -[112,1](277, 275) -> 274 -[113,1](278, 278) -> 275 -[113,1](279, 278) -> 276 -[113,1](280, 278) -> 277 -[114,1](281, 281) -> 278 -[114,1](282, 281) -> 279 -[114,1](283, 281) -> 280 -[115,1](284, 284) -> 281 -[115,1](285, 284) -> 282 -[115,1](286, 284) -> 283 -[116,1](287, 287) -> 284 -[116,1](288, 287) -> 285 -[116,1](289, 287) -> 286 -[117,1](290, 290) -> 287 -[117,1](291, 290) -> 288 -[117,1](292, 290) -> 289 -[118,1](293, 293) -> 290 -[118,1](294, 293) -> 291 -[118,1](295, 293) -> 292 -[p1,1] -> 293 -[p2,1] -> 294 -[p3,1] -> 295 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/59/pre.hsl b/benchmarks/all/OEGrover/59/pre.hsl index e7b892a50..3de613402 100644 --- a/benchmarks/all/OEGrover/59/pre.hsl +++ b/benchmarks/all/OEGrover/59/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 28 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 576460752303423487 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/59/pre.lsta b/benchmarks/all/OEGrover/59/pre.lsta deleted file mode 100644 index 841ea3f04..000000000 --- a/benchmarks/all/OEGrover/59/pre.lsta +++ /dev/null @@ -1,306 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 120) -> 117 -[60,1](119, 121) -> 118 -[61,1](122, 122) -> 119 -[61,1](123, 122) -> 120 -[61,1](124, 122) -> 121 -[62,1](125, 125) -> 122 -[62,1](126, 125) -> 123 -[62,1](127, 125) -> 124 -[63,1](128, 128) -> 125 -[63,1](129, 128) -> 126 -[63,1](130, 128) -> 127 -[64,1](131, 131) -> 128 -[64,1](132, 131) -> 129 -[64,1](133, 131) -> 130 -[65,1](134, 134) -> 131 -[65,1](135, 134) -> 132 -[65,1](136, 134) -> 133 -[66,1](137, 137) -> 134 -[66,1](138, 137) -> 135 -[66,1](139, 137) -> 136 -[67,1](140, 140) -> 137 -[67,1](141, 140) -> 138 -[67,1](142, 140) -> 139 -[68,1](143, 143) -> 140 -[68,1](144, 143) -> 141 -[68,1](145, 143) -> 142 -[69,1](146, 146) -> 143 -[69,1](147, 146) -> 144 -[69,1](148, 146) -> 145 -[70,1](149, 149) -> 146 -[70,1](150, 149) -> 147 -[70,1](151, 149) -> 148 -[71,1](152, 152) -> 149 -[71,1](153, 152) -> 150 -[71,1](154, 152) -> 151 -[72,1](155, 155) -> 152 -[72,1](156, 155) -> 153 -[72,1](157, 155) -> 154 -[73,1](158, 158) -> 155 -[73,1](159, 158) -> 156 -[73,1](160, 158) -> 157 -[74,1](161, 161) -> 158 -[74,1](162, 161) -> 159 -[74,1](163, 161) -> 160 -[75,1](164, 164) -> 161 -[75,1](165, 164) -> 162 -[75,1](166, 164) -> 163 -[76,1](167, 167) -> 164 -[76,1](168, 167) -> 165 -[76,1](169, 167) -> 166 -[77,1](170, 170) -> 167 -[77,1](171, 170) -> 168 -[77,1](172, 170) -> 169 -[78,1](173, 173) -> 170 -[78,1](174, 173) -> 171 -[78,1](175, 173) -> 172 -[79,1](176, 176) -> 173 -[79,1](177, 176) -> 174 -[79,1](178, 176) -> 175 -[80,1](179, 179) -> 176 -[80,1](180, 179) -> 177 -[80,1](181, 179) -> 178 -[81,1](182, 182) -> 179 -[81,1](183, 182) -> 180 -[81,1](184, 182) -> 181 -[82,1](185, 185) -> 182 -[82,1](186, 185) -> 183 -[82,1](187, 185) -> 184 -[83,1](188, 188) -> 185 -[83,1](189, 188) -> 186 -[83,1](190, 188) -> 187 -[84,1](191, 191) -> 188 -[84,1](192, 191) -> 189 -[84,1](193, 191) -> 190 -[85,1](194, 194) -> 191 -[85,1](195, 194) -> 192 -[85,1](196, 194) -> 193 -[86,1](197, 197) -> 194 -[86,1](198, 197) -> 195 -[86,1](199, 197) -> 196 -[87,1](200, 200) -> 197 -[87,1](201, 200) -> 198 -[87,1](202, 200) -> 199 -[88,1](203, 203) -> 200 -[88,1](204, 203) -> 201 -[88,1](205, 203) -> 202 -[89,1](206, 206) -> 203 -[89,1](207, 206) -> 204 -[89,1](208, 206) -> 205 -[90,1](209, 209) -> 206 -[90,1](210, 209) -> 207 -[90,1](211, 209) -> 208 -[91,1](212, 212) -> 209 -[91,1](213, 212) -> 210 -[91,1](214, 212) -> 211 -[92,1](215, 215) -> 212 -[92,1](216, 215) -> 213 -[92,1](217, 215) -> 214 -[93,1](218, 218) -> 215 -[93,1](219, 218) -> 216 -[93,1](220, 218) -> 217 -[94,1](221, 221) -> 218 -[94,1](222, 221) -> 219 -[94,1](223, 221) -> 220 -[95,1](224, 224) -> 221 -[95,1](225, 224) -> 222 -[95,1](226, 224) -> 223 -[96,1](227, 227) -> 224 -[96,1](228, 227) -> 225 -[96,1](229, 227) -> 226 -[97,1](230, 230) -> 227 -[97,1](231, 230) -> 228 -[97,1](232, 230) -> 229 -[98,1](233, 233) -> 230 -[98,1](234, 233) -> 231 -[98,1](235, 233) -> 232 -[99,1](236, 236) -> 233 -[99,1](237, 236) -> 234 -[99,1](238, 236) -> 235 -[100,1](239, 239) -> 236 -[100,1](240, 239) -> 237 -[100,1](241, 239) -> 238 -[101,1](242, 242) -> 239 -[101,1](243, 242) -> 240 -[101,1](244, 242) -> 241 -[102,1](245, 245) -> 242 -[102,1](246, 245) -> 243 -[102,1](247, 245) -> 244 -[103,1](248, 248) -> 245 -[103,1](249, 248) -> 246 -[103,1](250, 248) -> 247 -[104,1](251, 251) -> 248 -[104,1](252, 251) -> 249 -[104,1](253, 251) -> 250 -[105,1](254, 254) -> 251 -[105,1](255, 254) -> 252 -[105,1](256, 254) -> 253 -[106,1](257, 257) -> 254 -[106,1](258, 257) -> 255 -[106,1](259, 257) -> 256 -[107,1](260, 260) -> 257 -[107,1](261, 260) -> 258 -[107,1](262, 260) -> 259 -[108,1](263, 263) -> 260 -[108,1](264, 263) -> 261 -[108,1](265, 263) -> 262 -[109,1](266, 266) -> 263 -[109,1](267, 266) -> 264 -[109,1](268, 266) -> 265 -[110,1](269, 269) -> 266 -[110,1](270, 269) -> 267 -[110,1](271, 269) -> 268 -[111,1](272, 272) -> 269 -[111,1](273, 272) -> 270 -[111,1](274, 272) -> 271 -[112,1](275, 275) -> 272 -[112,1](276, 275) -> 273 -[112,1](277, 275) -> 274 -[113,1](278, 278) -> 275 -[113,1](279, 278) -> 276 -[113,1](280, 278) -> 277 -[114,1](281, 281) -> 278 -[114,1](282, 281) -> 279 -[114,1](283, 281) -> 280 -[115,1](284, 284) -> 281 -[115,1](285, 284) -> 282 -[115,1](286, 284) -> 283 -[116,1](287, 287) -> 284 -[116,1](288, 287) -> 285 -[116,1](289, 287) -> 286 -[117,1](290, 290) -> 287 -[117,1](291, 290) -> 288 -[117,1](292, 290) -> 289 -[118,1](293, 293) -> 290 -[118,1](294, 293) -> 291 -[118,1](295, 293) -> 292 -[c0,1] -> 293 -[a,1] -> 294 -[b,1] -> 295 -Constraints -576460752303423487 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/60/circuit.qasm b/benchmarks/all/OEGrover/60/circuit.qasm index 5980ac542..d5cc45d72 100644 --- a/benchmarks/all/OEGrover/60/circuit.qasm +++ b/benchmarks/all/OEGrover/60/circuit.qasm @@ -1,154 +1,154 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[120]; +qreg qubits[119]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -ccx qubits[0], qubits[1], qubits[61]; -ccx qubits[2], qubits[61], qubits[62]; -ccx qubits[3], qubits[62], qubits[63]; -ccx qubits[4], qubits[63], qubits[64]; -ccx qubits[5], qubits[64], qubits[65]; -ccx qubits[6], qubits[65], qubits[66]; -ccx qubits[7], qubits[66], qubits[67]; -ccx qubits[8], qubits[67], qubits[68]; -ccx qubits[9], qubits[68], qubits[69]; -ccx qubits[10], qubits[69], qubits[70]; -ccx qubits[11], qubits[70], qubits[71]; -ccx qubits[12], qubits[71], qubits[72]; -ccx qubits[13], qubits[72], qubits[73]; -ccx qubits[14], qubits[73], qubits[74]; -ccx qubits[15], qubits[74], qubits[75]; -ccx qubits[16], qubits[75], qubits[76]; -ccx qubits[17], qubits[76], qubits[77]; -ccx qubits[18], qubits[77], qubits[78]; -ccx qubits[19], qubits[78], qubits[79]; -ccx qubits[20], qubits[79], qubits[80]; -ccx qubits[21], qubits[80], qubits[81]; -ccx qubits[22], qubits[81], qubits[82]; -ccx qubits[23], qubits[82], qubits[83]; -ccx qubits[24], qubits[83], qubits[84]; -ccx qubits[25], qubits[84], qubits[85]; -ccx qubits[26], qubits[85], qubits[86]; -ccx qubits[27], qubits[86], qubits[87]; -ccx qubits[28], qubits[87], qubits[88]; -ccx qubits[29], qubits[88], qubits[89]; -ccx qubits[30], qubits[89], qubits[90]; -ccx qubits[31], qubits[90], qubits[91]; -ccx qubits[32], qubits[91], qubits[92]; -ccx qubits[33], qubits[92], qubits[93]; -ccx qubits[34], qubits[93], qubits[94]; -ccx qubits[35], qubits[94], qubits[95]; -ccx qubits[36], qubits[95], qubits[96]; -ccx qubits[37], qubits[96], qubits[97]; -ccx qubits[38], qubits[97], qubits[98]; -ccx qubits[39], qubits[98], qubits[99]; -ccx qubits[40], qubits[99], qubits[100]; -ccx qubits[41], qubits[100], qubits[101]; -ccx qubits[42], qubits[101], qubits[102]; -ccx qubits[43], qubits[102], qubits[103]; -ccx qubits[44], qubits[103], qubits[104]; -ccx qubits[45], qubits[104], qubits[105]; -ccx qubits[46], qubits[105], qubits[106]; -ccx qubits[47], qubits[106], qubits[107]; -ccx qubits[48], qubits[107], qubits[108]; -ccx qubits[49], qubits[108], qubits[109]; -ccx qubits[50], qubits[109], qubits[110]; -ccx qubits[51], qubits[110], qubits[111]; -ccx qubits[52], qubits[111], qubits[112]; -ccx qubits[53], qubits[112], qubits[113]; -ccx qubits[54], qubits[113], qubits[114]; -ccx qubits[55], qubits[114], qubits[115]; -ccx qubits[56], qubits[115], qubits[116]; -ccx qubits[57], qubits[116], qubits[117]; -ccx qubits[58], qubits[117], qubits[118]; -cz qubits[118], qubits[59]; -ccx qubits[58], qubits[117], qubits[118]; -ccx qubits[57], qubits[116], qubits[117]; -ccx qubits[56], qubits[115], qubits[116]; -ccx qubits[55], qubits[114], qubits[115]; -ccx qubits[54], qubits[113], qubits[114]; -ccx qubits[53], qubits[112], qubits[113]; -ccx qubits[52], qubits[111], qubits[112]; -ccx qubits[51], qubits[110], qubits[111]; -ccx qubits[50], qubits[109], qubits[110]; -ccx qubits[49], qubits[108], qubits[109]; -ccx qubits[48], qubits[107], qubits[108]; -ccx qubits[47], qubits[106], qubits[107]; -ccx qubits[46], qubits[105], qubits[106]; -ccx qubits[45], qubits[104], qubits[105]; -ccx qubits[44], qubits[103], qubits[104]; -ccx qubits[43], qubits[102], qubits[103]; -ccx qubits[42], qubits[101], qubits[102]; -ccx qubits[41], qubits[100], qubits[101]; -ccx qubits[40], qubits[99], qubits[100]; -ccx qubits[39], qubits[98], qubits[99]; -ccx qubits[38], qubits[97], qubits[98]; -ccx qubits[37], qubits[96], qubits[97]; -ccx qubits[36], qubits[95], qubits[96]; -ccx qubits[35], qubits[94], qubits[95]; -ccx qubits[34], qubits[93], qubits[94]; -ccx qubits[33], qubits[92], qubits[93]; -ccx qubits[32], qubits[91], qubits[92]; -ccx qubits[31], qubits[90], qubits[91]; -ccx qubits[30], qubits[89], qubits[90]; -ccx qubits[29], qubits[88], qubits[89]; -ccx qubits[28], qubits[87], qubits[88]; -ccx qubits[27], qubits[86], qubits[87]; -ccx qubits[26], qubits[85], qubits[86]; -ccx qubits[25], qubits[84], qubits[85]; -ccx qubits[24], qubits[83], qubits[84]; -ccx qubits[23], qubits[82], qubits[83]; -ccx qubits[22], qubits[81], qubits[82]; -ccx qubits[21], qubits[80], qubits[81]; -ccx qubits[20], qubits[79], qubits[80]; -ccx qubits[19], qubits[78], qubits[79]; -ccx qubits[18], qubits[77], qubits[78]; -ccx qubits[17], qubits[76], qubits[77]; -ccx qubits[16], qubits[75], qubits[76]; -ccx qubits[15], qubits[74], qubits[75]; -ccx qubits[14], qubits[73], qubits[74]; -ccx qubits[13], qubits[72], qubits[73]; -ccx qubits[12], qubits[71], qubits[72]; -ccx qubits[11], qubits[70], qubits[71]; -ccx qubits[10], qubits[69], qubits[70]; -ccx qubits[9], qubits[68], qubits[69]; -ccx qubits[8], qubits[67], qubits[68]; -ccx qubits[7], qubits[66], qubits[67]; -ccx qubits[6], qubits[65], qubits[66]; -ccx qubits[5], qubits[64], qubits[65]; -ccx qubits[4], qubits[63], qubits[64]; -ccx qubits[3], qubits[62], qubits[63]; -ccx qubits[2], qubits[61], qubits[62]; -ccx qubits[0], qubits[1], qubits[61]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +cz qubits[116], qubits[117]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -181,359 +181,359 @@ x qubits[56]; x qubits[58]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -ccx qubits[0], qubits[1], qubits[61]; -ccx qubits[2], qubits[61], qubits[62]; -ccx qubits[3], qubits[62], qubits[63]; -ccx qubits[4], qubits[63], qubits[64]; -ccx qubits[5], qubits[64], qubits[65]; -ccx qubits[6], qubits[65], qubits[66]; -ccx qubits[7], qubits[66], qubits[67]; -ccx qubits[8], qubits[67], qubits[68]; -ccx qubits[9], qubits[68], qubits[69]; -ccx qubits[10], qubits[69], qubits[70]; -ccx qubits[11], qubits[70], qubits[71]; -ccx qubits[12], qubits[71], qubits[72]; -ccx qubits[13], qubits[72], qubits[73]; -ccx qubits[14], qubits[73], qubits[74]; -ccx qubits[15], qubits[74], qubits[75]; -ccx qubits[16], qubits[75], qubits[76]; -ccx qubits[17], qubits[76], qubits[77]; -ccx qubits[18], qubits[77], qubits[78]; -ccx qubits[19], qubits[78], qubits[79]; -ccx qubits[20], qubits[79], qubits[80]; -ccx qubits[21], qubits[80], qubits[81]; -ccx qubits[22], qubits[81], qubits[82]; -ccx qubits[23], qubits[82], qubits[83]; -ccx qubits[24], qubits[83], qubits[84]; -ccx qubits[25], qubits[84], qubits[85]; -ccx qubits[26], qubits[85], qubits[86]; -ccx qubits[27], qubits[86], qubits[87]; -ccx qubits[28], qubits[87], qubits[88]; -ccx qubits[29], qubits[88], qubits[89]; -ccx qubits[30], qubits[89], qubits[90]; -ccx qubits[31], qubits[90], qubits[91]; -ccx qubits[32], qubits[91], qubits[92]; -ccx qubits[33], qubits[92], qubits[93]; -ccx qubits[34], qubits[93], qubits[94]; -ccx qubits[35], qubits[94], qubits[95]; -ccx qubits[36], qubits[95], qubits[96]; -ccx qubits[37], qubits[96], qubits[97]; -ccx qubits[38], qubits[97], qubits[98]; -ccx qubits[39], qubits[98], qubits[99]; -ccx qubits[40], qubits[99], qubits[100]; -ccx qubits[41], qubits[100], qubits[101]; -ccx qubits[42], qubits[101], qubits[102]; -ccx qubits[43], qubits[102], qubits[103]; -ccx qubits[44], qubits[103], qubits[104]; -ccx qubits[45], qubits[104], qubits[105]; -ccx qubits[46], qubits[105], qubits[106]; -ccx qubits[47], qubits[106], qubits[107]; -ccx qubits[48], qubits[107], qubits[108]; -ccx qubits[49], qubits[108], qubits[109]; -ccx qubits[50], qubits[109], qubits[110]; -ccx qubits[51], qubits[110], qubits[111]; -ccx qubits[52], qubits[111], qubits[112]; -ccx qubits[53], qubits[112], qubits[113]; -ccx qubits[54], qubits[113], qubits[114]; -ccx qubits[55], qubits[114], qubits[115]; -ccx qubits[56], qubits[115], qubits[116]; -ccx qubits[57], qubits[116], qubits[117]; -ccx qubits[58], qubits[117], qubits[118]; -cz qubits[118], qubits[59]; -ccx qubits[58], qubits[117], qubits[118]; -ccx qubits[57], qubits[116], qubits[117]; -ccx qubits[56], qubits[115], qubits[116]; -ccx qubits[55], qubits[114], qubits[115]; -ccx qubits[54], qubits[113], qubits[114]; -ccx qubits[53], qubits[112], qubits[113]; -ccx qubits[52], qubits[111], qubits[112]; -ccx qubits[51], qubits[110], qubits[111]; -ccx qubits[50], qubits[109], qubits[110]; -ccx qubits[49], qubits[108], qubits[109]; -ccx qubits[48], qubits[107], qubits[108]; -ccx qubits[47], qubits[106], qubits[107]; -ccx qubits[46], qubits[105], qubits[106]; -ccx qubits[45], qubits[104], qubits[105]; -ccx qubits[44], qubits[103], qubits[104]; -ccx qubits[43], qubits[102], qubits[103]; -ccx qubits[42], qubits[101], qubits[102]; -ccx qubits[41], qubits[100], qubits[101]; -ccx qubits[40], qubits[99], qubits[100]; -ccx qubits[39], qubits[98], qubits[99]; -ccx qubits[38], qubits[97], qubits[98]; -ccx qubits[37], qubits[96], qubits[97]; -ccx qubits[36], qubits[95], qubits[96]; -ccx qubits[35], qubits[94], qubits[95]; -ccx qubits[34], qubits[93], qubits[94]; -ccx qubits[33], qubits[92], qubits[93]; -ccx qubits[32], qubits[91], qubits[92]; -ccx qubits[31], qubits[90], qubits[91]; -ccx qubits[30], qubits[89], qubits[90]; -ccx qubits[29], qubits[88], qubits[89]; -ccx qubits[28], qubits[87], qubits[88]; -ccx qubits[27], qubits[86], qubits[87]; -ccx qubits[26], qubits[85], qubits[86]; -ccx qubits[25], qubits[84], qubits[85]; -ccx qubits[24], qubits[83], qubits[84]; -ccx qubits[23], qubits[82], qubits[83]; -ccx qubits[22], qubits[81], qubits[82]; -ccx qubits[21], qubits[80], qubits[81]; -ccx qubits[20], qubits[79], qubits[80]; -ccx qubits[19], qubits[78], qubits[79]; -ccx qubits[18], qubits[77], qubits[78]; -ccx qubits[17], qubits[76], qubits[77]; -ccx qubits[16], qubits[75], qubits[76]; -ccx qubits[15], qubits[74], qubits[75]; -ccx qubits[14], qubits[73], qubits[74]; -ccx qubits[13], qubits[72], qubits[73]; -ccx qubits[12], qubits[71], qubits[72]; -ccx qubits[11], qubits[70], qubits[71]; -ccx qubits[10], qubits[69], qubits[70]; -ccx qubits[9], qubits[68], qubits[69]; -ccx qubits[8], qubits[67], qubits[68]; -ccx qubits[7], qubits[66], qubits[67]; -ccx qubits[6], qubits[65], qubits[66]; -ccx qubits[5], qubits[64], qubits[65]; -ccx qubits[4], qubits[63], qubits[64]; -ccx qubits[3], qubits[62], qubits[63]; -ccx qubits[2], qubits[61], qubits[62]; -ccx qubits[0], qubits[1], qubits[61]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +cz qubits[116], qubits[117]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -z qubits[60]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +z qubits[118]; diff --git a/benchmarks/all/OEGrover/60/post.hsl b/benchmarks/all/OEGrover/60/post.hsl index f469aa815..3ba23110c 100644 --- a/benchmarks/all/OEGrover/60/post.hsl +++ b/benchmarks/all/OEGrover/60/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101100000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 29 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/60/post.lsta b/benchmarks/all/OEGrover/60/post.lsta deleted file mode 100644 index 54a6dfcb7..000000000 --- a/benchmarks/all/OEGrover/60/post.lsta +++ /dev/null @@ -1,307 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 122) -> 119 -[61,1](121, 123) -> 120 -[62,1](124, 124) -> 121 -[62,1](125, 124) -> 122 -[62,1](126, 124) -> 123 -[63,1](127, 127) -> 124 -[63,1](128, 127) -> 125 -[63,1](129, 127) -> 126 -[64,1](130, 130) -> 127 -[64,1](131, 130) -> 128 -[64,1](132, 130) -> 129 -[65,1](133, 133) -> 130 -[65,1](134, 133) -> 131 -[65,1](135, 133) -> 132 -[66,1](136, 136) -> 133 -[66,1](137, 136) -> 134 -[66,1](138, 136) -> 135 -[67,1](139, 139) -> 136 -[67,1](140, 139) -> 137 -[67,1](141, 139) -> 138 -[68,1](142, 142) -> 139 -[68,1](143, 142) -> 140 -[68,1](144, 142) -> 141 -[69,1](145, 145) -> 142 -[69,1](146, 145) -> 143 -[69,1](147, 145) -> 144 -[70,1](148, 148) -> 145 -[70,1](149, 148) -> 146 -[70,1](150, 148) -> 147 -[71,1](151, 151) -> 148 -[71,1](152, 151) -> 149 -[71,1](153, 151) -> 150 -[72,1](154, 154) -> 151 -[72,1](155, 154) -> 152 -[72,1](156, 154) -> 153 -[73,1](157, 157) -> 154 -[73,1](158, 157) -> 155 -[73,1](159, 157) -> 156 -[74,1](160, 160) -> 157 -[74,1](161, 160) -> 158 -[74,1](162, 160) -> 159 -[75,1](163, 163) -> 160 -[75,1](164, 163) -> 161 -[75,1](165, 163) -> 162 -[76,1](166, 166) -> 163 -[76,1](167, 166) -> 164 -[76,1](168, 166) -> 165 -[77,1](169, 169) -> 166 -[77,1](170, 169) -> 167 -[77,1](171, 169) -> 168 -[78,1](172, 172) -> 169 -[78,1](173, 172) -> 170 -[78,1](174, 172) -> 171 -[79,1](175, 175) -> 172 -[79,1](176, 175) -> 173 -[79,1](177, 175) -> 174 -[80,1](178, 178) -> 175 -[80,1](179, 178) -> 176 -[80,1](180, 178) -> 177 -[81,1](181, 181) -> 178 -[81,1](182, 181) -> 179 -[81,1](183, 181) -> 180 -[82,1](184, 184) -> 181 -[82,1](185, 184) -> 182 -[82,1](186, 184) -> 183 -[83,1](187, 187) -> 184 -[83,1](188, 187) -> 185 -[83,1](189, 187) -> 186 -[84,1](190, 190) -> 187 -[84,1](191, 190) -> 188 -[84,1](192, 190) -> 189 -[85,1](193, 193) -> 190 -[85,1](194, 193) -> 191 -[85,1](195, 193) -> 192 -[86,1](196, 196) -> 193 -[86,1](197, 196) -> 194 -[86,1](198, 196) -> 195 -[87,1](199, 199) -> 196 -[87,1](200, 199) -> 197 -[87,1](201, 199) -> 198 -[88,1](202, 202) -> 199 -[88,1](203, 202) -> 200 -[88,1](204, 202) -> 201 -[89,1](205, 205) -> 202 -[89,1](206, 205) -> 203 -[89,1](207, 205) -> 204 -[90,1](208, 208) -> 205 -[90,1](209, 208) -> 206 -[90,1](210, 208) -> 207 -[91,1](211, 211) -> 208 -[91,1](212, 211) -> 209 -[91,1](213, 211) -> 210 -[92,1](214, 214) -> 211 -[92,1](215, 214) -> 212 -[92,1](216, 214) -> 213 -[93,1](217, 217) -> 214 -[93,1](218, 217) -> 215 -[93,1](219, 217) -> 216 -[94,1](220, 220) -> 217 -[94,1](221, 220) -> 218 -[94,1](222, 220) -> 219 -[95,1](223, 223) -> 220 -[95,1](224, 223) -> 221 -[95,1](225, 223) -> 222 -[96,1](226, 226) -> 223 -[96,1](227, 226) -> 224 -[96,1](228, 226) -> 225 -[97,1](229, 229) -> 226 -[97,1](230, 229) -> 227 -[97,1](231, 229) -> 228 -[98,1](232, 232) -> 229 -[98,1](233, 232) -> 230 -[98,1](234, 232) -> 231 -[99,1](235, 235) -> 232 -[99,1](236, 235) -> 233 -[99,1](237, 235) -> 234 -[100,1](238, 238) -> 235 -[100,1](239, 238) -> 236 -[100,1](240, 238) -> 237 -[101,1](241, 241) -> 238 -[101,1](242, 241) -> 239 -[101,1](243, 241) -> 240 -[102,1](244, 244) -> 241 -[102,1](245, 244) -> 242 -[102,1](246, 244) -> 243 -[103,1](247, 247) -> 244 -[103,1](248, 247) -> 245 -[103,1](249, 247) -> 246 -[104,1](250, 250) -> 247 -[104,1](251, 250) -> 248 -[104,1](252, 250) -> 249 -[105,1](253, 253) -> 250 -[105,1](254, 253) -> 251 -[105,1](255, 253) -> 252 -[106,1](256, 256) -> 253 -[106,1](257, 256) -> 254 -[106,1](258, 256) -> 255 -[107,1](259, 259) -> 256 -[107,1](260, 259) -> 257 -[107,1](261, 259) -> 258 -[108,1](262, 262) -> 259 -[108,1](263, 262) -> 260 -[108,1](264, 262) -> 261 -[109,1](265, 265) -> 262 -[109,1](266, 265) -> 263 -[109,1](267, 265) -> 264 -[110,1](268, 268) -> 265 -[110,1](269, 268) -> 266 -[110,1](270, 268) -> 267 -[111,1](271, 271) -> 268 -[111,1](272, 271) -> 269 -[111,1](273, 271) -> 270 -[112,1](274, 274) -> 271 -[112,1](275, 274) -> 272 -[112,1](276, 274) -> 273 -[113,1](277, 277) -> 274 -[113,1](278, 277) -> 275 -[113,1](279, 277) -> 276 -[114,1](280, 280) -> 277 -[114,1](281, 280) -> 278 -[114,1](282, 280) -> 279 -[115,1](283, 283) -> 280 -[115,1](284, 283) -> 281 -[115,1](285, 283) -> 282 -[116,1](286, 286) -> 283 -[116,1](287, 286) -> 284 -[116,1](288, 286) -> 285 -[117,1](289, 289) -> 286 -[117,1](290, 289) -> 287 -[117,1](291, 289) -> 288 -[118,1](292, 292) -> 289 -[118,1](293, 292) -> 290 -[118,1](294, 292) -> 291 -[119,1](295, 295) -> 292 -[119,1](296, 295) -> 293 -[119,1](297, 295) -> 294 -[120,1](298, 298) -> 295 -[120,1](299, 298) -> 296 -[120,1](300, 298) -> 297 -[p1,1] -> 298 -[p2,1] -> 299 -[p3,1] -> 300 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/60/pre.hsl b/benchmarks/all/OEGrover/60/pre.hsl index 8b1b9a93f..76fbabe49 100644 --- a/benchmarks/all/OEGrover/60/pre.hsl +++ b/benchmarks/all/OEGrover/60/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 29 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1152921504606846975 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/60/pre.lsta b/benchmarks/all/OEGrover/60/pre.lsta deleted file mode 100644 index f259466c8..000000000 --- a/benchmarks/all/OEGrover/60/pre.lsta +++ /dev/null @@ -1,311 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 122) -> 119 -[61,1](121, 123) -> 120 -[62,1](124, 124) -> 121 -[62,1](125, 124) -> 122 -[62,1](126, 124) -> 123 -[63,1](127, 127) -> 124 -[63,1](128, 127) -> 125 -[63,1](129, 127) -> 126 -[64,1](130, 130) -> 127 -[64,1](131, 130) -> 128 -[64,1](132, 130) -> 129 -[65,1](133, 133) -> 130 -[65,1](134, 133) -> 131 -[65,1](135, 133) -> 132 -[66,1](136, 136) -> 133 -[66,1](137, 136) -> 134 -[66,1](138, 136) -> 135 -[67,1](139, 139) -> 136 -[67,1](140, 139) -> 137 -[67,1](141, 139) -> 138 -[68,1](142, 142) -> 139 -[68,1](143, 142) -> 140 -[68,1](144, 142) -> 141 -[69,1](145, 145) -> 142 -[69,1](146, 145) -> 143 -[69,1](147, 145) -> 144 -[70,1](148, 148) -> 145 -[70,1](149, 148) -> 146 -[70,1](150, 148) -> 147 -[71,1](151, 151) -> 148 -[71,1](152, 151) -> 149 -[71,1](153, 151) -> 150 -[72,1](154, 154) -> 151 -[72,1](155, 154) -> 152 -[72,1](156, 154) -> 153 -[73,1](157, 157) -> 154 -[73,1](158, 157) -> 155 -[73,1](159, 157) -> 156 -[74,1](160, 160) -> 157 -[74,1](161, 160) -> 158 -[74,1](162, 160) -> 159 -[75,1](163, 163) -> 160 -[75,1](164, 163) -> 161 -[75,1](165, 163) -> 162 -[76,1](166, 166) -> 163 -[76,1](167, 166) -> 164 -[76,1](168, 166) -> 165 -[77,1](169, 169) -> 166 -[77,1](170, 169) -> 167 -[77,1](171, 169) -> 168 -[78,1](172, 172) -> 169 -[78,1](173, 172) -> 170 -[78,1](174, 172) -> 171 -[79,1](175, 175) -> 172 -[79,1](176, 175) -> 173 -[79,1](177, 175) -> 174 -[80,1](178, 178) -> 175 -[80,1](179, 178) -> 176 -[80,1](180, 178) -> 177 -[81,1](181, 181) -> 178 -[81,1](182, 181) -> 179 -[81,1](183, 181) -> 180 -[82,1](184, 184) -> 181 -[82,1](185, 184) -> 182 -[82,1](186, 184) -> 183 -[83,1](187, 187) -> 184 -[83,1](188, 187) -> 185 -[83,1](189, 187) -> 186 -[84,1](190, 190) -> 187 -[84,1](191, 190) -> 188 -[84,1](192, 190) -> 189 -[85,1](193, 193) -> 190 -[85,1](194, 193) -> 191 -[85,1](195, 193) -> 192 -[86,1](196, 196) -> 193 -[86,1](197, 196) -> 194 -[86,1](198, 196) -> 195 -[87,1](199, 199) -> 196 -[87,1](200, 199) -> 197 -[87,1](201, 199) -> 198 -[88,1](202, 202) -> 199 -[88,1](203, 202) -> 200 -[88,1](204, 202) -> 201 -[89,1](205, 205) -> 202 -[89,1](206, 205) -> 203 -[89,1](207, 205) -> 204 -[90,1](208, 208) -> 205 -[90,1](209, 208) -> 206 -[90,1](210, 208) -> 207 -[91,1](211, 211) -> 208 -[91,1](212, 211) -> 209 -[91,1](213, 211) -> 210 -[92,1](214, 214) -> 211 -[92,1](215, 214) -> 212 -[92,1](216, 214) -> 213 -[93,1](217, 217) -> 214 -[93,1](218, 217) -> 215 -[93,1](219, 217) -> 216 -[94,1](220, 220) -> 217 -[94,1](221, 220) -> 218 -[94,1](222, 220) -> 219 -[95,1](223, 223) -> 220 -[95,1](224, 223) -> 221 -[95,1](225, 223) -> 222 -[96,1](226, 226) -> 223 -[96,1](227, 226) -> 224 -[96,1](228, 226) -> 225 -[97,1](229, 229) -> 226 -[97,1](230, 229) -> 227 -[97,1](231, 229) -> 228 -[98,1](232, 232) -> 229 -[98,1](233, 232) -> 230 -[98,1](234, 232) -> 231 -[99,1](235, 235) -> 232 -[99,1](236, 235) -> 233 -[99,1](237, 235) -> 234 -[100,1](238, 238) -> 235 -[100,1](239, 238) -> 236 -[100,1](240, 238) -> 237 -[101,1](241, 241) -> 238 -[101,1](242, 241) -> 239 -[101,1](243, 241) -> 240 -[102,1](244, 244) -> 241 -[102,1](245, 244) -> 242 -[102,1](246, 244) -> 243 -[103,1](247, 247) -> 244 -[103,1](248, 247) -> 245 -[103,1](249, 247) -> 246 -[104,1](250, 250) -> 247 -[104,1](251, 250) -> 248 -[104,1](252, 250) -> 249 -[105,1](253, 253) -> 250 -[105,1](254, 253) -> 251 -[105,1](255, 253) -> 252 -[106,1](256, 256) -> 253 -[106,1](257, 256) -> 254 -[106,1](258, 256) -> 255 -[107,1](259, 259) -> 256 -[107,1](260, 259) -> 257 -[107,1](261, 259) -> 258 -[108,1](262, 262) -> 259 -[108,1](263, 262) -> 260 -[108,1](264, 262) -> 261 -[109,1](265, 265) -> 262 -[109,1](266, 265) -> 263 -[109,1](267, 265) -> 264 -[110,1](268, 268) -> 265 -[110,1](269, 268) -> 266 -[110,1](270, 268) -> 267 -[111,1](271, 271) -> 268 -[111,1](272, 271) -> 269 -[111,1](273, 271) -> 270 -[112,1](274, 274) -> 271 -[112,1](275, 274) -> 272 -[112,1](276, 274) -> 273 -[113,1](277, 277) -> 274 -[113,1](278, 277) -> 275 -[113,1](279, 277) -> 276 -[114,1](280, 280) -> 277 -[114,1](281, 280) -> 278 -[114,1](282, 280) -> 279 -[115,1](283, 283) -> 280 -[115,1](284, 283) -> 281 -[115,1](285, 283) -> 282 -[116,1](286, 286) -> 283 -[116,1](287, 286) -> 284 -[116,1](288, 286) -> 285 -[117,1](289, 289) -> 286 -[117,1](290, 289) -> 287 -[117,1](291, 289) -> 288 -[118,1](292, 292) -> 289 -[118,1](293, 292) -> 290 -[118,1](294, 292) -> 291 -[119,1](295, 295) -> 292 -[119,1](296, 295) -> 293 -[119,1](297, 295) -> 294 -[120,1](298, 298) -> 295 -[120,1](299, 298) -> 296 -[120,1](300, 298) -> 297 -[c0,1] -> 298 -[a,1] -> 299 -[b,1] -> 300 -Constraints -1152921504606846975 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/61/circuit.qasm b/benchmarks/all/OEGrover/61/circuit.qasm index d47b01be1..ef1a18a13 100644 --- a/benchmarks/all/OEGrover/61/circuit.qasm +++ b/benchmarks/all/OEGrover/61/circuit.qasm @@ -1,157 +1,157 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[122]; +qreg qubits[121]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -ccx qubits[0], qubits[1], qubits[62]; -ccx qubits[2], qubits[62], qubits[63]; -ccx qubits[3], qubits[63], qubits[64]; -ccx qubits[4], qubits[64], qubits[65]; -ccx qubits[5], qubits[65], qubits[66]; -ccx qubits[6], qubits[66], qubits[67]; -ccx qubits[7], qubits[67], qubits[68]; -ccx qubits[8], qubits[68], qubits[69]; -ccx qubits[9], qubits[69], qubits[70]; -ccx qubits[10], qubits[70], qubits[71]; -ccx qubits[11], qubits[71], qubits[72]; -ccx qubits[12], qubits[72], qubits[73]; -ccx qubits[13], qubits[73], qubits[74]; -ccx qubits[14], qubits[74], qubits[75]; -ccx qubits[15], qubits[75], qubits[76]; -ccx qubits[16], qubits[76], qubits[77]; -ccx qubits[17], qubits[77], qubits[78]; -ccx qubits[18], qubits[78], qubits[79]; -ccx qubits[19], qubits[79], qubits[80]; -ccx qubits[20], qubits[80], qubits[81]; -ccx qubits[21], qubits[81], qubits[82]; -ccx qubits[22], qubits[82], qubits[83]; -ccx qubits[23], qubits[83], qubits[84]; -ccx qubits[24], qubits[84], qubits[85]; -ccx qubits[25], qubits[85], qubits[86]; -ccx qubits[26], qubits[86], qubits[87]; -ccx qubits[27], qubits[87], qubits[88]; -ccx qubits[28], qubits[88], qubits[89]; -ccx qubits[29], qubits[89], qubits[90]; -ccx qubits[30], qubits[90], qubits[91]; -ccx qubits[31], qubits[91], qubits[92]; -ccx qubits[32], qubits[92], qubits[93]; -ccx qubits[33], qubits[93], qubits[94]; -ccx qubits[34], qubits[94], qubits[95]; -ccx qubits[35], qubits[95], qubits[96]; -ccx qubits[36], qubits[96], qubits[97]; -ccx qubits[37], qubits[97], qubits[98]; -ccx qubits[38], qubits[98], qubits[99]; -ccx qubits[39], qubits[99], qubits[100]; -ccx qubits[40], qubits[100], qubits[101]; -ccx qubits[41], qubits[101], qubits[102]; -ccx qubits[42], qubits[102], qubits[103]; -ccx qubits[43], qubits[103], qubits[104]; -ccx qubits[44], qubits[104], qubits[105]; -ccx qubits[45], qubits[105], qubits[106]; -ccx qubits[46], qubits[106], qubits[107]; -ccx qubits[47], qubits[107], qubits[108]; -ccx qubits[48], qubits[108], qubits[109]; -ccx qubits[49], qubits[109], qubits[110]; -ccx qubits[50], qubits[110], qubits[111]; -ccx qubits[51], qubits[111], qubits[112]; -ccx qubits[52], qubits[112], qubits[113]; -ccx qubits[53], qubits[113], qubits[114]; -ccx qubits[54], qubits[114], qubits[115]; -ccx qubits[55], qubits[115], qubits[116]; -ccx qubits[56], qubits[116], qubits[117]; -ccx qubits[57], qubits[117], qubits[118]; -ccx qubits[58], qubits[118], qubits[119]; -ccx qubits[59], qubits[119], qubits[120]; -cz qubits[120], qubits[60]; -ccx qubits[59], qubits[119], qubits[120]; -ccx qubits[58], qubits[118], qubits[119]; -ccx qubits[57], qubits[117], qubits[118]; -ccx qubits[56], qubits[116], qubits[117]; -ccx qubits[55], qubits[115], qubits[116]; -ccx qubits[54], qubits[114], qubits[115]; -ccx qubits[53], qubits[113], qubits[114]; -ccx qubits[52], qubits[112], qubits[113]; -ccx qubits[51], qubits[111], qubits[112]; -ccx qubits[50], qubits[110], qubits[111]; -ccx qubits[49], qubits[109], qubits[110]; -ccx qubits[48], qubits[108], qubits[109]; -ccx qubits[47], qubits[107], qubits[108]; -ccx qubits[46], qubits[106], qubits[107]; -ccx qubits[45], qubits[105], qubits[106]; -ccx qubits[44], qubits[104], qubits[105]; -ccx qubits[43], qubits[103], qubits[104]; -ccx qubits[42], qubits[102], qubits[103]; -ccx qubits[41], qubits[101], qubits[102]; -ccx qubits[40], qubits[100], qubits[101]; -ccx qubits[39], qubits[99], qubits[100]; -ccx qubits[38], qubits[98], qubits[99]; -ccx qubits[37], qubits[97], qubits[98]; -ccx qubits[36], qubits[96], qubits[97]; -ccx qubits[35], qubits[95], qubits[96]; -ccx qubits[34], qubits[94], qubits[95]; -ccx qubits[33], qubits[93], qubits[94]; -ccx qubits[32], qubits[92], qubits[93]; -ccx qubits[31], qubits[91], qubits[92]; -ccx qubits[30], qubits[90], qubits[91]; -ccx qubits[29], qubits[89], qubits[90]; -ccx qubits[28], qubits[88], qubits[89]; -ccx qubits[27], qubits[87], qubits[88]; -ccx qubits[26], qubits[86], qubits[87]; -ccx qubits[25], qubits[85], qubits[86]; -ccx qubits[24], qubits[84], qubits[85]; -ccx qubits[23], qubits[83], qubits[84]; -ccx qubits[22], qubits[82], qubits[83]; -ccx qubits[21], qubits[81], qubits[82]; -ccx qubits[20], qubits[80], qubits[81]; -ccx qubits[19], qubits[79], qubits[80]; -ccx qubits[18], qubits[78], qubits[79]; -ccx qubits[17], qubits[77], qubits[78]; -ccx qubits[16], qubits[76], qubits[77]; -ccx qubits[15], qubits[75], qubits[76]; -ccx qubits[14], qubits[74], qubits[75]; -ccx qubits[13], qubits[73], qubits[74]; -ccx qubits[12], qubits[72], qubits[73]; -ccx qubits[11], qubits[71], qubits[72]; -ccx qubits[10], qubits[70], qubits[71]; -ccx qubits[9], qubits[69], qubits[70]; -ccx qubits[8], qubits[68], qubits[69]; -ccx qubits[7], qubits[67], qubits[68]; -ccx qubits[6], qubits[66], qubits[67]; -ccx qubits[5], qubits[65], qubits[66]; -ccx qubits[4], qubits[64], qubits[65]; -ccx qubits[3], qubits[63], qubits[64]; -ccx qubits[2], qubits[62], qubits[63]; -ccx qubits[0], qubits[1], qubits[62]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +cz qubits[118], qubits[119]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -185,365 +185,365 @@ x qubits[58]; x qubits[60]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; -ccx qubits[0], qubits[1], qubits[62]; -ccx qubits[2], qubits[62], qubits[63]; -ccx qubits[3], qubits[63], qubits[64]; -ccx qubits[4], qubits[64], qubits[65]; -ccx qubits[5], qubits[65], qubits[66]; -ccx qubits[6], qubits[66], qubits[67]; -ccx qubits[7], qubits[67], qubits[68]; -ccx qubits[8], qubits[68], qubits[69]; -ccx qubits[9], qubits[69], qubits[70]; -ccx qubits[10], qubits[70], qubits[71]; -ccx qubits[11], qubits[71], qubits[72]; -ccx qubits[12], qubits[72], qubits[73]; -ccx qubits[13], qubits[73], qubits[74]; -ccx qubits[14], qubits[74], qubits[75]; -ccx qubits[15], qubits[75], qubits[76]; -ccx qubits[16], qubits[76], qubits[77]; -ccx qubits[17], qubits[77], qubits[78]; -ccx qubits[18], qubits[78], qubits[79]; -ccx qubits[19], qubits[79], qubits[80]; -ccx qubits[20], qubits[80], qubits[81]; -ccx qubits[21], qubits[81], qubits[82]; -ccx qubits[22], qubits[82], qubits[83]; -ccx qubits[23], qubits[83], qubits[84]; -ccx qubits[24], qubits[84], qubits[85]; -ccx qubits[25], qubits[85], qubits[86]; -ccx qubits[26], qubits[86], qubits[87]; -ccx qubits[27], qubits[87], qubits[88]; -ccx qubits[28], qubits[88], qubits[89]; -ccx qubits[29], qubits[89], qubits[90]; -ccx qubits[30], qubits[90], qubits[91]; -ccx qubits[31], qubits[91], qubits[92]; -ccx qubits[32], qubits[92], qubits[93]; -ccx qubits[33], qubits[93], qubits[94]; -ccx qubits[34], qubits[94], qubits[95]; -ccx qubits[35], qubits[95], qubits[96]; -ccx qubits[36], qubits[96], qubits[97]; -ccx qubits[37], qubits[97], qubits[98]; -ccx qubits[38], qubits[98], qubits[99]; -ccx qubits[39], qubits[99], qubits[100]; -ccx qubits[40], qubits[100], qubits[101]; -ccx qubits[41], qubits[101], qubits[102]; -ccx qubits[42], qubits[102], qubits[103]; -ccx qubits[43], qubits[103], qubits[104]; -ccx qubits[44], qubits[104], qubits[105]; -ccx qubits[45], qubits[105], qubits[106]; -ccx qubits[46], qubits[106], qubits[107]; -ccx qubits[47], qubits[107], qubits[108]; -ccx qubits[48], qubits[108], qubits[109]; -ccx qubits[49], qubits[109], qubits[110]; -ccx qubits[50], qubits[110], qubits[111]; -ccx qubits[51], qubits[111], qubits[112]; -ccx qubits[52], qubits[112], qubits[113]; -ccx qubits[53], qubits[113], qubits[114]; -ccx qubits[54], qubits[114], qubits[115]; -ccx qubits[55], qubits[115], qubits[116]; -ccx qubits[56], qubits[116], qubits[117]; -ccx qubits[57], qubits[117], qubits[118]; -ccx qubits[58], qubits[118], qubits[119]; -ccx qubits[59], qubits[119], qubits[120]; -cz qubits[120], qubits[60]; -ccx qubits[59], qubits[119], qubits[120]; -ccx qubits[58], qubits[118], qubits[119]; -ccx qubits[57], qubits[117], qubits[118]; -ccx qubits[56], qubits[116], qubits[117]; -ccx qubits[55], qubits[115], qubits[116]; -ccx qubits[54], qubits[114], qubits[115]; -ccx qubits[53], qubits[113], qubits[114]; -ccx qubits[52], qubits[112], qubits[113]; -ccx qubits[51], qubits[111], qubits[112]; -ccx qubits[50], qubits[110], qubits[111]; -ccx qubits[49], qubits[109], qubits[110]; -ccx qubits[48], qubits[108], qubits[109]; -ccx qubits[47], qubits[107], qubits[108]; -ccx qubits[46], qubits[106], qubits[107]; -ccx qubits[45], qubits[105], qubits[106]; -ccx qubits[44], qubits[104], qubits[105]; -ccx qubits[43], qubits[103], qubits[104]; -ccx qubits[42], qubits[102], qubits[103]; -ccx qubits[41], qubits[101], qubits[102]; -ccx qubits[40], qubits[100], qubits[101]; -ccx qubits[39], qubits[99], qubits[100]; -ccx qubits[38], qubits[98], qubits[99]; -ccx qubits[37], qubits[97], qubits[98]; -ccx qubits[36], qubits[96], qubits[97]; -ccx qubits[35], qubits[95], qubits[96]; -ccx qubits[34], qubits[94], qubits[95]; -ccx qubits[33], qubits[93], qubits[94]; -ccx qubits[32], qubits[92], qubits[93]; -ccx qubits[31], qubits[91], qubits[92]; -ccx qubits[30], qubits[90], qubits[91]; -ccx qubits[29], qubits[89], qubits[90]; -ccx qubits[28], qubits[88], qubits[89]; -ccx qubits[27], qubits[87], qubits[88]; -ccx qubits[26], qubits[86], qubits[87]; -ccx qubits[25], qubits[85], qubits[86]; -ccx qubits[24], qubits[84], qubits[85]; -ccx qubits[23], qubits[83], qubits[84]; -ccx qubits[22], qubits[82], qubits[83]; -ccx qubits[21], qubits[81], qubits[82]; -ccx qubits[20], qubits[80], qubits[81]; -ccx qubits[19], qubits[79], qubits[80]; -ccx qubits[18], qubits[78], qubits[79]; -ccx qubits[17], qubits[77], qubits[78]; -ccx qubits[16], qubits[76], qubits[77]; -ccx qubits[15], qubits[75], qubits[76]; -ccx qubits[14], qubits[74], qubits[75]; -ccx qubits[13], qubits[73], qubits[74]; -ccx qubits[12], qubits[72], qubits[73]; -ccx qubits[11], qubits[71], qubits[72]; -ccx qubits[10], qubits[70], qubits[71]; -ccx qubits[9], qubits[69], qubits[70]; -ccx qubits[8], qubits[68], qubits[69]; -ccx qubits[7], qubits[67], qubits[68]; -ccx qubits[6], qubits[66], qubits[67]; -ccx qubits[5], qubits[65], qubits[66]; -ccx qubits[4], qubits[64], qubits[65]; -ccx qubits[3], qubits[63], qubits[64]; -ccx qubits[2], qubits[62], qubits[63]; -ccx qubits[0], qubits[1], qubits[62]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +cz qubits[118], qubits[119]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; +x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; -z qubits[61]; +h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +z qubits[120]; diff --git a/benchmarks/all/OEGrover/61/post.hsl b/benchmarks/all/OEGrover/61/post.hsl index 518926c1b..65940d6ca 100644 --- a/benchmarks/all/OEGrover/61/post.hsl +++ b/benchmarks/all/OEGrover/61/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 29 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/61/post.lsta b/benchmarks/all/OEGrover/61/post.lsta deleted file mode 100644 index 1485f7075..000000000 --- a/benchmarks/all/OEGrover/61/post.lsta +++ /dev/null @@ -1,312 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 124) -> 121 -[62,1](123, 125) -> 122 -[63,1](126, 126) -> 123 -[63,1](127, 126) -> 124 -[63,1](128, 126) -> 125 -[64,1](129, 129) -> 126 -[64,1](130, 129) -> 127 -[64,1](131, 129) -> 128 -[65,1](132, 132) -> 129 -[65,1](133, 132) -> 130 -[65,1](134, 132) -> 131 -[66,1](135, 135) -> 132 -[66,1](136, 135) -> 133 -[66,1](137, 135) -> 134 -[67,1](138, 138) -> 135 -[67,1](139, 138) -> 136 -[67,1](140, 138) -> 137 -[68,1](141, 141) -> 138 -[68,1](142, 141) -> 139 -[68,1](143, 141) -> 140 -[69,1](144, 144) -> 141 -[69,1](145, 144) -> 142 -[69,1](146, 144) -> 143 -[70,1](147, 147) -> 144 -[70,1](148, 147) -> 145 -[70,1](149, 147) -> 146 -[71,1](150, 150) -> 147 -[71,1](151, 150) -> 148 -[71,1](152, 150) -> 149 -[72,1](153, 153) -> 150 -[72,1](154, 153) -> 151 -[72,1](155, 153) -> 152 -[73,1](156, 156) -> 153 -[73,1](157, 156) -> 154 -[73,1](158, 156) -> 155 -[74,1](159, 159) -> 156 -[74,1](160, 159) -> 157 -[74,1](161, 159) -> 158 -[75,1](162, 162) -> 159 -[75,1](163, 162) -> 160 -[75,1](164, 162) -> 161 -[76,1](165, 165) -> 162 -[76,1](166, 165) -> 163 -[76,1](167, 165) -> 164 -[77,1](168, 168) -> 165 -[77,1](169, 168) -> 166 -[77,1](170, 168) -> 167 -[78,1](171, 171) -> 168 -[78,1](172, 171) -> 169 -[78,1](173, 171) -> 170 -[79,1](174, 174) -> 171 -[79,1](175, 174) -> 172 -[79,1](176, 174) -> 173 -[80,1](177, 177) -> 174 -[80,1](178, 177) -> 175 -[80,1](179, 177) -> 176 -[81,1](180, 180) -> 177 -[81,1](181, 180) -> 178 -[81,1](182, 180) -> 179 -[82,1](183, 183) -> 180 -[82,1](184, 183) -> 181 -[82,1](185, 183) -> 182 -[83,1](186, 186) -> 183 -[83,1](187, 186) -> 184 -[83,1](188, 186) -> 185 -[84,1](189, 189) -> 186 -[84,1](190, 189) -> 187 -[84,1](191, 189) -> 188 -[85,1](192, 192) -> 189 -[85,1](193, 192) -> 190 -[85,1](194, 192) -> 191 -[86,1](195, 195) -> 192 -[86,1](196, 195) -> 193 -[86,1](197, 195) -> 194 -[87,1](198, 198) -> 195 -[87,1](199, 198) -> 196 -[87,1](200, 198) -> 197 -[88,1](201, 201) -> 198 -[88,1](202, 201) -> 199 -[88,1](203, 201) -> 200 -[89,1](204, 204) -> 201 -[89,1](205, 204) -> 202 -[89,1](206, 204) -> 203 -[90,1](207, 207) -> 204 -[90,1](208, 207) -> 205 -[90,1](209, 207) -> 206 -[91,1](210, 210) -> 207 -[91,1](211, 210) -> 208 -[91,1](212, 210) -> 209 -[92,1](213, 213) -> 210 -[92,1](214, 213) -> 211 -[92,1](215, 213) -> 212 -[93,1](216, 216) -> 213 -[93,1](217, 216) -> 214 -[93,1](218, 216) -> 215 -[94,1](219, 219) -> 216 -[94,1](220, 219) -> 217 -[94,1](221, 219) -> 218 -[95,1](222, 222) -> 219 -[95,1](223, 222) -> 220 -[95,1](224, 222) -> 221 -[96,1](225, 225) -> 222 -[96,1](226, 225) -> 223 -[96,1](227, 225) -> 224 -[97,1](228, 228) -> 225 -[97,1](229, 228) -> 226 -[97,1](230, 228) -> 227 -[98,1](231, 231) -> 228 -[98,1](232, 231) -> 229 -[98,1](233, 231) -> 230 -[99,1](234, 234) -> 231 -[99,1](235, 234) -> 232 -[99,1](236, 234) -> 233 -[100,1](237, 237) -> 234 -[100,1](238, 237) -> 235 -[100,1](239, 237) -> 236 -[101,1](240, 240) -> 237 -[101,1](241, 240) -> 238 -[101,1](242, 240) -> 239 -[102,1](243, 243) -> 240 -[102,1](244, 243) -> 241 -[102,1](245, 243) -> 242 -[103,1](246, 246) -> 243 -[103,1](247, 246) -> 244 -[103,1](248, 246) -> 245 -[104,1](249, 249) -> 246 -[104,1](250, 249) -> 247 -[104,1](251, 249) -> 248 -[105,1](252, 252) -> 249 -[105,1](253, 252) -> 250 -[105,1](254, 252) -> 251 -[106,1](255, 255) -> 252 -[106,1](256, 255) -> 253 -[106,1](257, 255) -> 254 -[107,1](258, 258) -> 255 -[107,1](259, 258) -> 256 -[107,1](260, 258) -> 257 -[108,1](261, 261) -> 258 -[108,1](262, 261) -> 259 -[108,1](263, 261) -> 260 -[109,1](264, 264) -> 261 -[109,1](265, 264) -> 262 -[109,1](266, 264) -> 263 -[110,1](267, 267) -> 264 -[110,1](268, 267) -> 265 -[110,1](269, 267) -> 266 -[111,1](270, 270) -> 267 -[111,1](271, 270) -> 268 -[111,1](272, 270) -> 269 -[112,1](273, 273) -> 270 -[112,1](274, 273) -> 271 -[112,1](275, 273) -> 272 -[113,1](276, 276) -> 273 -[113,1](277, 276) -> 274 -[113,1](278, 276) -> 275 -[114,1](279, 279) -> 276 -[114,1](280, 279) -> 277 -[114,1](281, 279) -> 278 -[115,1](282, 282) -> 279 -[115,1](283, 282) -> 280 -[115,1](284, 282) -> 281 -[116,1](285, 285) -> 282 -[116,1](286, 285) -> 283 -[116,1](287, 285) -> 284 -[117,1](288, 288) -> 285 -[117,1](289, 288) -> 286 -[117,1](290, 288) -> 287 -[118,1](291, 291) -> 288 -[118,1](292, 291) -> 289 -[118,1](293, 291) -> 290 -[119,1](294, 294) -> 291 -[119,1](295, 294) -> 292 -[119,1](296, 294) -> 293 -[120,1](297, 297) -> 294 -[120,1](298, 297) -> 295 -[120,1](299, 297) -> 296 -[121,1](300, 300) -> 297 -[121,1](301, 300) -> 298 -[121,1](302, 300) -> 299 -[122,1](303, 303) -> 300 -[122,1](304, 303) -> 301 -[122,1](305, 303) -> 302 -[p1,1] -> 303 -[p2,1] -> 304 -[p3,1] -> 305 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/61/pre.hsl b/benchmarks/all/OEGrover/61/pre.hsl index e956e8703..1b21f8edd 100644 --- a/benchmarks/all/OEGrover/61/pre.hsl +++ b/benchmarks/all/OEGrover/61/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 29 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 2305843009213693951 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/61/pre.lsta b/benchmarks/all/OEGrover/61/pre.lsta deleted file mode 100644 index 4d63e8744..000000000 --- a/benchmarks/all/OEGrover/61/pre.lsta +++ /dev/null @@ -1,316 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 124) -> 121 -[62,1](123, 125) -> 122 -[63,1](126, 126) -> 123 -[63,1](127, 126) -> 124 -[63,1](128, 126) -> 125 -[64,1](129, 129) -> 126 -[64,1](130, 129) -> 127 -[64,1](131, 129) -> 128 -[65,1](132, 132) -> 129 -[65,1](133, 132) -> 130 -[65,1](134, 132) -> 131 -[66,1](135, 135) -> 132 -[66,1](136, 135) -> 133 -[66,1](137, 135) -> 134 -[67,1](138, 138) -> 135 -[67,1](139, 138) -> 136 -[67,1](140, 138) -> 137 -[68,1](141, 141) -> 138 -[68,1](142, 141) -> 139 -[68,1](143, 141) -> 140 -[69,1](144, 144) -> 141 -[69,1](145, 144) -> 142 -[69,1](146, 144) -> 143 -[70,1](147, 147) -> 144 -[70,1](148, 147) -> 145 -[70,1](149, 147) -> 146 -[71,1](150, 150) -> 147 -[71,1](151, 150) -> 148 -[71,1](152, 150) -> 149 -[72,1](153, 153) -> 150 -[72,1](154, 153) -> 151 -[72,1](155, 153) -> 152 -[73,1](156, 156) -> 153 -[73,1](157, 156) -> 154 -[73,1](158, 156) -> 155 -[74,1](159, 159) -> 156 -[74,1](160, 159) -> 157 -[74,1](161, 159) -> 158 -[75,1](162, 162) -> 159 -[75,1](163, 162) -> 160 -[75,1](164, 162) -> 161 -[76,1](165, 165) -> 162 -[76,1](166, 165) -> 163 -[76,1](167, 165) -> 164 -[77,1](168, 168) -> 165 -[77,1](169, 168) -> 166 -[77,1](170, 168) -> 167 -[78,1](171, 171) -> 168 -[78,1](172, 171) -> 169 -[78,1](173, 171) -> 170 -[79,1](174, 174) -> 171 -[79,1](175, 174) -> 172 -[79,1](176, 174) -> 173 -[80,1](177, 177) -> 174 -[80,1](178, 177) -> 175 -[80,1](179, 177) -> 176 -[81,1](180, 180) -> 177 -[81,1](181, 180) -> 178 -[81,1](182, 180) -> 179 -[82,1](183, 183) -> 180 -[82,1](184, 183) -> 181 -[82,1](185, 183) -> 182 -[83,1](186, 186) -> 183 -[83,1](187, 186) -> 184 -[83,1](188, 186) -> 185 -[84,1](189, 189) -> 186 -[84,1](190, 189) -> 187 -[84,1](191, 189) -> 188 -[85,1](192, 192) -> 189 -[85,1](193, 192) -> 190 -[85,1](194, 192) -> 191 -[86,1](195, 195) -> 192 -[86,1](196, 195) -> 193 -[86,1](197, 195) -> 194 -[87,1](198, 198) -> 195 -[87,1](199, 198) -> 196 -[87,1](200, 198) -> 197 -[88,1](201, 201) -> 198 -[88,1](202, 201) -> 199 -[88,1](203, 201) -> 200 -[89,1](204, 204) -> 201 -[89,1](205, 204) -> 202 -[89,1](206, 204) -> 203 -[90,1](207, 207) -> 204 -[90,1](208, 207) -> 205 -[90,1](209, 207) -> 206 -[91,1](210, 210) -> 207 -[91,1](211, 210) -> 208 -[91,1](212, 210) -> 209 -[92,1](213, 213) -> 210 -[92,1](214, 213) -> 211 -[92,1](215, 213) -> 212 -[93,1](216, 216) -> 213 -[93,1](217, 216) -> 214 -[93,1](218, 216) -> 215 -[94,1](219, 219) -> 216 -[94,1](220, 219) -> 217 -[94,1](221, 219) -> 218 -[95,1](222, 222) -> 219 -[95,1](223, 222) -> 220 -[95,1](224, 222) -> 221 -[96,1](225, 225) -> 222 -[96,1](226, 225) -> 223 -[96,1](227, 225) -> 224 -[97,1](228, 228) -> 225 -[97,1](229, 228) -> 226 -[97,1](230, 228) -> 227 -[98,1](231, 231) -> 228 -[98,1](232, 231) -> 229 -[98,1](233, 231) -> 230 -[99,1](234, 234) -> 231 -[99,1](235, 234) -> 232 -[99,1](236, 234) -> 233 -[100,1](237, 237) -> 234 -[100,1](238, 237) -> 235 -[100,1](239, 237) -> 236 -[101,1](240, 240) -> 237 -[101,1](241, 240) -> 238 -[101,1](242, 240) -> 239 -[102,1](243, 243) -> 240 -[102,1](244, 243) -> 241 -[102,1](245, 243) -> 242 -[103,1](246, 246) -> 243 -[103,1](247, 246) -> 244 -[103,1](248, 246) -> 245 -[104,1](249, 249) -> 246 -[104,1](250, 249) -> 247 -[104,1](251, 249) -> 248 -[105,1](252, 252) -> 249 -[105,1](253, 252) -> 250 -[105,1](254, 252) -> 251 -[106,1](255, 255) -> 252 -[106,1](256, 255) -> 253 -[106,1](257, 255) -> 254 -[107,1](258, 258) -> 255 -[107,1](259, 258) -> 256 -[107,1](260, 258) -> 257 -[108,1](261, 261) -> 258 -[108,1](262, 261) -> 259 -[108,1](263, 261) -> 260 -[109,1](264, 264) -> 261 -[109,1](265, 264) -> 262 -[109,1](266, 264) -> 263 -[110,1](267, 267) -> 264 -[110,1](268, 267) -> 265 -[110,1](269, 267) -> 266 -[111,1](270, 270) -> 267 -[111,1](271, 270) -> 268 -[111,1](272, 270) -> 269 -[112,1](273, 273) -> 270 -[112,1](274, 273) -> 271 -[112,1](275, 273) -> 272 -[113,1](276, 276) -> 273 -[113,1](277, 276) -> 274 -[113,1](278, 276) -> 275 -[114,1](279, 279) -> 276 -[114,1](280, 279) -> 277 -[114,1](281, 279) -> 278 -[115,1](282, 282) -> 279 -[115,1](283, 282) -> 280 -[115,1](284, 282) -> 281 -[116,1](285, 285) -> 282 -[116,1](286, 285) -> 283 -[116,1](287, 285) -> 284 -[117,1](288, 288) -> 285 -[117,1](289, 288) -> 286 -[117,1](290, 288) -> 287 -[118,1](291, 291) -> 288 -[118,1](292, 291) -> 289 -[118,1](293, 291) -> 290 -[119,1](294, 294) -> 291 -[119,1](295, 294) -> 292 -[119,1](296, 294) -> 293 -[120,1](297, 297) -> 294 -[120,1](298, 297) -> 295 -[120,1](299, 297) -> 296 -[121,1](300, 300) -> 297 -[121,1](301, 300) -> 298 -[121,1](302, 300) -> 299 -[122,1](303, 303) -> 300 -[122,1](304, 303) -> 301 -[122,1](305, 303) -> 302 -[c0,1] -> 303 -[a,1] -> 304 -[b,1] -> 305 -Constraints -2305843009213693951 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/62/circuit.qasm b/benchmarks/all/OEGrover/62/circuit.qasm index 706bd5f7e..81b059555 100644 --- a/benchmarks/all/OEGrover/62/circuit.qasm +++ b/benchmarks/all/OEGrover/62/circuit.qasm @@ -1,159 +1,159 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[124]; +qreg qubits[123]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -ccx qubits[0], qubits[1], qubits[63]; -ccx qubits[2], qubits[63], qubits[64]; -ccx qubits[3], qubits[64], qubits[65]; -ccx qubits[4], qubits[65], qubits[66]; -ccx qubits[5], qubits[66], qubits[67]; -ccx qubits[6], qubits[67], qubits[68]; -ccx qubits[7], qubits[68], qubits[69]; -ccx qubits[8], qubits[69], qubits[70]; -ccx qubits[9], qubits[70], qubits[71]; -ccx qubits[10], qubits[71], qubits[72]; -ccx qubits[11], qubits[72], qubits[73]; -ccx qubits[12], qubits[73], qubits[74]; -ccx qubits[13], qubits[74], qubits[75]; -ccx qubits[14], qubits[75], qubits[76]; -ccx qubits[15], qubits[76], qubits[77]; -ccx qubits[16], qubits[77], qubits[78]; -ccx qubits[17], qubits[78], qubits[79]; -ccx qubits[18], qubits[79], qubits[80]; -ccx qubits[19], qubits[80], qubits[81]; -ccx qubits[20], qubits[81], qubits[82]; -ccx qubits[21], qubits[82], qubits[83]; -ccx qubits[22], qubits[83], qubits[84]; -ccx qubits[23], qubits[84], qubits[85]; -ccx qubits[24], qubits[85], qubits[86]; -ccx qubits[25], qubits[86], qubits[87]; -ccx qubits[26], qubits[87], qubits[88]; -ccx qubits[27], qubits[88], qubits[89]; -ccx qubits[28], qubits[89], qubits[90]; -ccx qubits[29], qubits[90], qubits[91]; -ccx qubits[30], qubits[91], qubits[92]; -ccx qubits[31], qubits[92], qubits[93]; -ccx qubits[32], qubits[93], qubits[94]; -ccx qubits[33], qubits[94], qubits[95]; -ccx qubits[34], qubits[95], qubits[96]; -ccx qubits[35], qubits[96], qubits[97]; -ccx qubits[36], qubits[97], qubits[98]; -ccx qubits[37], qubits[98], qubits[99]; -ccx qubits[38], qubits[99], qubits[100]; -ccx qubits[39], qubits[100], qubits[101]; -ccx qubits[40], qubits[101], qubits[102]; -ccx qubits[41], qubits[102], qubits[103]; -ccx qubits[42], qubits[103], qubits[104]; -ccx qubits[43], qubits[104], qubits[105]; -ccx qubits[44], qubits[105], qubits[106]; -ccx qubits[45], qubits[106], qubits[107]; -ccx qubits[46], qubits[107], qubits[108]; -ccx qubits[47], qubits[108], qubits[109]; -ccx qubits[48], qubits[109], qubits[110]; -ccx qubits[49], qubits[110], qubits[111]; -ccx qubits[50], qubits[111], qubits[112]; -ccx qubits[51], qubits[112], qubits[113]; -ccx qubits[52], qubits[113], qubits[114]; -ccx qubits[53], qubits[114], qubits[115]; -ccx qubits[54], qubits[115], qubits[116]; -ccx qubits[55], qubits[116], qubits[117]; -ccx qubits[56], qubits[117], qubits[118]; -ccx qubits[57], qubits[118], qubits[119]; -ccx qubits[58], qubits[119], qubits[120]; -ccx qubits[59], qubits[120], qubits[121]; -ccx qubits[60], qubits[121], qubits[122]; -cz qubits[122], qubits[61]; -ccx qubits[60], qubits[121], qubits[122]; -ccx qubits[59], qubits[120], qubits[121]; -ccx qubits[58], qubits[119], qubits[120]; -ccx qubits[57], qubits[118], qubits[119]; -ccx qubits[56], qubits[117], qubits[118]; -ccx qubits[55], qubits[116], qubits[117]; -ccx qubits[54], qubits[115], qubits[116]; -ccx qubits[53], qubits[114], qubits[115]; -ccx qubits[52], qubits[113], qubits[114]; -ccx qubits[51], qubits[112], qubits[113]; -ccx qubits[50], qubits[111], qubits[112]; -ccx qubits[49], qubits[110], qubits[111]; -ccx qubits[48], qubits[109], qubits[110]; -ccx qubits[47], qubits[108], qubits[109]; -ccx qubits[46], qubits[107], qubits[108]; -ccx qubits[45], qubits[106], qubits[107]; -ccx qubits[44], qubits[105], qubits[106]; -ccx qubits[43], qubits[104], qubits[105]; -ccx qubits[42], qubits[103], qubits[104]; -ccx qubits[41], qubits[102], qubits[103]; -ccx qubits[40], qubits[101], qubits[102]; -ccx qubits[39], qubits[100], qubits[101]; -ccx qubits[38], qubits[99], qubits[100]; -ccx qubits[37], qubits[98], qubits[99]; -ccx qubits[36], qubits[97], qubits[98]; -ccx qubits[35], qubits[96], qubits[97]; -ccx qubits[34], qubits[95], qubits[96]; -ccx qubits[33], qubits[94], qubits[95]; -ccx qubits[32], qubits[93], qubits[94]; -ccx qubits[31], qubits[92], qubits[93]; -ccx qubits[30], qubits[91], qubits[92]; -ccx qubits[29], qubits[90], qubits[91]; -ccx qubits[28], qubits[89], qubits[90]; -ccx qubits[27], qubits[88], qubits[89]; -ccx qubits[26], qubits[87], qubits[88]; -ccx qubits[25], qubits[86], qubits[87]; -ccx qubits[24], qubits[85], qubits[86]; -ccx qubits[23], qubits[84], qubits[85]; -ccx qubits[22], qubits[83], qubits[84]; -ccx qubits[21], qubits[82], qubits[83]; -ccx qubits[20], qubits[81], qubits[82]; -ccx qubits[19], qubits[80], qubits[81]; -ccx qubits[18], qubits[79], qubits[80]; -ccx qubits[17], qubits[78], qubits[79]; -ccx qubits[16], qubits[77], qubits[78]; -ccx qubits[15], qubits[76], qubits[77]; -ccx qubits[14], qubits[75], qubits[76]; -ccx qubits[13], qubits[74], qubits[75]; -ccx qubits[12], qubits[73], qubits[74]; -ccx qubits[11], qubits[72], qubits[73]; -ccx qubits[10], qubits[71], qubits[72]; -ccx qubits[9], qubits[70], qubits[71]; -ccx qubits[8], qubits[69], qubits[70]; -ccx qubits[7], qubits[68], qubits[69]; -ccx qubits[6], qubits[67], qubits[68]; -ccx qubits[5], qubits[66], qubits[67]; -ccx qubits[4], qubits[65], qubits[66]; -ccx qubits[3], qubits[64], qubits[65]; -ccx qubits[2], qubits[63], qubits[64]; -ccx qubits[0], qubits[1], qubits[63]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +cz qubits[120], qubits[121]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -187,371 +187,371 @@ x qubits[58]; x qubits[60]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -ccx qubits[0], qubits[1], qubits[63]; -ccx qubits[2], qubits[63], qubits[64]; -ccx qubits[3], qubits[64], qubits[65]; -ccx qubits[4], qubits[65], qubits[66]; -ccx qubits[5], qubits[66], qubits[67]; -ccx qubits[6], qubits[67], qubits[68]; -ccx qubits[7], qubits[68], qubits[69]; -ccx qubits[8], qubits[69], qubits[70]; -ccx qubits[9], qubits[70], qubits[71]; -ccx qubits[10], qubits[71], qubits[72]; -ccx qubits[11], qubits[72], qubits[73]; -ccx qubits[12], qubits[73], qubits[74]; -ccx qubits[13], qubits[74], qubits[75]; -ccx qubits[14], qubits[75], qubits[76]; -ccx qubits[15], qubits[76], qubits[77]; -ccx qubits[16], qubits[77], qubits[78]; -ccx qubits[17], qubits[78], qubits[79]; -ccx qubits[18], qubits[79], qubits[80]; -ccx qubits[19], qubits[80], qubits[81]; -ccx qubits[20], qubits[81], qubits[82]; -ccx qubits[21], qubits[82], qubits[83]; -ccx qubits[22], qubits[83], qubits[84]; -ccx qubits[23], qubits[84], qubits[85]; -ccx qubits[24], qubits[85], qubits[86]; -ccx qubits[25], qubits[86], qubits[87]; -ccx qubits[26], qubits[87], qubits[88]; -ccx qubits[27], qubits[88], qubits[89]; -ccx qubits[28], qubits[89], qubits[90]; -ccx qubits[29], qubits[90], qubits[91]; -ccx qubits[30], qubits[91], qubits[92]; -ccx qubits[31], qubits[92], qubits[93]; -ccx qubits[32], qubits[93], qubits[94]; -ccx qubits[33], qubits[94], qubits[95]; -ccx qubits[34], qubits[95], qubits[96]; -ccx qubits[35], qubits[96], qubits[97]; -ccx qubits[36], qubits[97], qubits[98]; -ccx qubits[37], qubits[98], qubits[99]; -ccx qubits[38], qubits[99], qubits[100]; -ccx qubits[39], qubits[100], qubits[101]; -ccx qubits[40], qubits[101], qubits[102]; -ccx qubits[41], qubits[102], qubits[103]; -ccx qubits[42], qubits[103], qubits[104]; -ccx qubits[43], qubits[104], qubits[105]; -ccx qubits[44], qubits[105], qubits[106]; -ccx qubits[45], qubits[106], qubits[107]; -ccx qubits[46], qubits[107], qubits[108]; -ccx qubits[47], qubits[108], qubits[109]; -ccx qubits[48], qubits[109], qubits[110]; -ccx qubits[49], qubits[110], qubits[111]; -ccx qubits[50], qubits[111], qubits[112]; -ccx qubits[51], qubits[112], qubits[113]; -ccx qubits[52], qubits[113], qubits[114]; -ccx qubits[53], qubits[114], qubits[115]; -ccx qubits[54], qubits[115], qubits[116]; -ccx qubits[55], qubits[116], qubits[117]; -ccx qubits[56], qubits[117], qubits[118]; -ccx qubits[57], qubits[118], qubits[119]; -ccx qubits[58], qubits[119], qubits[120]; -ccx qubits[59], qubits[120], qubits[121]; -ccx qubits[60], qubits[121], qubits[122]; -cz qubits[122], qubits[61]; -ccx qubits[60], qubits[121], qubits[122]; -ccx qubits[59], qubits[120], qubits[121]; -ccx qubits[58], qubits[119], qubits[120]; -ccx qubits[57], qubits[118], qubits[119]; -ccx qubits[56], qubits[117], qubits[118]; -ccx qubits[55], qubits[116], qubits[117]; -ccx qubits[54], qubits[115], qubits[116]; -ccx qubits[53], qubits[114], qubits[115]; -ccx qubits[52], qubits[113], qubits[114]; -ccx qubits[51], qubits[112], qubits[113]; -ccx qubits[50], qubits[111], qubits[112]; -ccx qubits[49], qubits[110], qubits[111]; -ccx qubits[48], qubits[109], qubits[110]; -ccx qubits[47], qubits[108], qubits[109]; -ccx qubits[46], qubits[107], qubits[108]; -ccx qubits[45], qubits[106], qubits[107]; -ccx qubits[44], qubits[105], qubits[106]; -ccx qubits[43], qubits[104], qubits[105]; -ccx qubits[42], qubits[103], qubits[104]; -ccx qubits[41], qubits[102], qubits[103]; -ccx qubits[40], qubits[101], qubits[102]; -ccx qubits[39], qubits[100], qubits[101]; -ccx qubits[38], qubits[99], qubits[100]; -ccx qubits[37], qubits[98], qubits[99]; -ccx qubits[36], qubits[97], qubits[98]; -ccx qubits[35], qubits[96], qubits[97]; -ccx qubits[34], qubits[95], qubits[96]; -ccx qubits[33], qubits[94], qubits[95]; -ccx qubits[32], qubits[93], qubits[94]; -ccx qubits[31], qubits[92], qubits[93]; -ccx qubits[30], qubits[91], qubits[92]; -ccx qubits[29], qubits[90], qubits[91]; -ccx qubits[28], qubits[89], qubits[90]; -ccx qubits[27], qubits[88], qubits[89]; -ccx qubits[26], qubits[87], qubits[88]; -ccx qubits[25], qubits[86], qubits[87]; -ccx qubits[24], qubits[85], qubits[86]; -ccx qubits[23], qubits[84], qubits[85]; -ccx qubits[22], qubits[83], qubits[84]; -ccx qubits[21], qubits[82], qubits[83]; -ccx qubits[20], qubits[81], qubits[82]; -ccx qubits[19], qubits[80], qubits[81]; -ccx qubits[18], qubits[79], qubits[80]; -ccx qubits[17], qubits[78], qubits[79]; -ccx qubits[16], qubits[77], qubits[78]; -ccx qubits[15], qubits[76], qubits[77]; -ccx qubits[14], qubits[75], qubits[76]; -ccx qubits[13], qubits[74], qubits[75]; -ccx qubits[12], qubits[73], qubits[74]; -ccx qubits[11], qubits[72], qubits[73]; -ccx qubits[10], qubits[71], qubits[72]; -ccx qubits[9], qubits[70], qubits[71]; -ccx qubits[8], qubits[69], qubits[70]; -ccx qubits[7], qubits[68], qubits[69]; -ccx qubits[6], qubits[67], qubits[68]; -ccx qubits[5], qubits[66], qubits[67]; -ccx qubits[4], qubits[65], qubits[66]; -ccx qubits[3], qubits[64], qubits[65]; -ccx qubits[2], qubits[63], qubits[64]; -ccx qubits[0], qubits[1], qubits[63]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +cz qubits[120], qubits[121]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -z qubits[62]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +z qubits[122]; diff --git a/benchmarks/all/OEGrover/62/post.hsl b/benchmarks/all/OEGrover/62/post.hsl index cc528d481..08a30a317 100644 --- a/benchmarks/all/OEGrover/62/post.hsl +++ b/benchmarks/all/OEGrover/62/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 30 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/62/post.lsta b/benchmarks/all/OEGrover/62/post.lsta deleted file mode 100644 index 30941c691..000000000 --- a/benchmarks/all/OEGrover/62/post.lsta +++ /dev/null @@ -1,317 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 126) -> 123 -[63,1](125, 127) -> 124 -[64,1](128, 128) -> 125 -[64,1](129, 128) -> 126 -[64,1](130, 128) -> 127 -[65,1](131, 131) -> 128 -[65,1](132, 131) -> 129 -[65,1](133, 131) -> 130 -[66,1](134, 134) -> 131 -[66,1](135, 134) -> 132 -[66,1](136, 134) -> 133 -[67,1](137, 137) -> 134 -[67,1](138, 137) -> 135 -[67,1](139, 137) -> 136 -[68,1](140, 140) -> 137 -[68,1](141, 140) -> 138 -[68,1](142, 140) -> 139 -[69,1](143, 143) -> 140 -[69,1](144, 143) -> 141 -[69,1](145, 143) -> 142 -[70,1](146, 146) -> 143 -[70,1](147, 146) -> 144 -[70,1](148, 146) -> 145 -[71,1](149, 149) -> 146 -[71,1](150, 149) -> 147 -[71,1](151, 149) -> 148 -[72,1](152, 152) -> 149 -[72,1](153, 152) -> 150 -[72,1](154, 152) -> 151 -[73,1](155, 155) -> 152 -[73,1](156, 155) -> 153 -[73,1](157, 155) -> 154 -[74,1](158, 158) -> 155 -[74,1](159, 158) -> 156 -[74,1](160, 158) -> 157 -[75,1](161, 161) -> 158 -[75,1](162, 161) -> 159 -[75,1](163, 161) -> 160 -[76,1](164, 164) -> 161 -[76,1](165, 164) -> 162 -[76,1](166, 164) -> 163 -[77,1](167, 167) -> 164 -[77,1](168, 167) -> 165 -[77,1](169, 167) -> 166 -[78,1](170, 170) -> 167 -[78,1](171, 170) -> 168 -[78,1](172, 170) -> 169 -[79,1](173, 173) -> 170 -[79,1](174, 173) -> 171 -[79,1](175, 173) -> 172 -[80,1](176, 176) -> 173 -[80,1](177, 176) -> 174 -[80,1](178, 176) -> 175 -[81,1](179, 179) -> 176 -[81,1](180, 179) -> 177 -[81,1](181, 179) -> 178 -[82,1](182, 182) -> 179 -[82,1](183, 182) -> 180 -[82,1](184, 182) -> 181 -[83,1](185, 185) -> 182 -[83,1](186, 185) -> 183 -[83,1](187, 185) -> 184 -[84,1](188, 188) -> 185 -[84,1](189, 188) -> 186 -[84,1](190, 188) -> 187 -[85,1](191, 191) -> 188 -[85,1](192, 191) -> 189 -[85,1](193, 191) -> 190 -[86,1](194, 194) -> 191 -[86,1](195, 194) -> 192 -[86,1](196, 194) -> 193 -[87,1](197, 197) -> 194 -[87,1](198, 197) -> 195 -[87,1](199, 197) -> 196 -[88,1](200, 200) -> 197 -[88,1](201, 200) -> 198 -[88,1](202, 200) -> 199 -[89,1](203, 203) -> 200 -[89,1](204, 203) -> 201 -[89,1](205, 203) -> 202 -[90,1](206, 206) -> 203 -[90,1](207, 206) -> 204 -[90,1](208, 206) -> 205 -[91,1](209, 209) -> 206 -[91,1](210, 209) -> 207 -[91,1](211, 209) -> 208 -[92,1](212, 212) -> 209 -[92,1](213, 212) -> 210 -[92,1](214, 212) -> 211 -[93,1](215, 215) -> 212 -[93,1](216, 215) -> 213 -[93,1](217, 215) -> 214 -[94,1](218, 218) -> 215 -[94,1](219, 218) -> 216 -[94,1](220, 218) -> 217 -[95,1](221, 221) -> 218 -[95,1](222, 221) -> 219 -[95,1](223, 221) -> 220 -[96,1](224, 224) -> 221 -[96,1](225, 224) -> 222 -[96,1](226, 224) -> 223 -[97,1](227, 227) -> 224 -[97,1](228, 227) -> 225 -[97,1](229, 227) -> 226 -[98,1](230, 230) -> 227 -[98,1](231, 230) -> 228 -[98,1](232, 230) -> 229 -[99,1](233, 233) -> 230 -[99,1](234, 233) -> 231 -[99,1](235, 233) -> 232 -[100,1](236, 236) -> 233 -[100,1](237, 236) -> 234 -[100,1](238, 236) -> 235 -[101,1](239, 239) -> 236 -[101,1](240, 239) -> 237 -[101,1](241, 239) -> 238 -[102,1](242, 242) -> 239 -[102,1](243, 242) -> 240 -[102,1](244, 242) -> 241 -[103,1](245, 245) -> 242 -[103,1](246, 245) -> 243 -[103,1](247, 245) -> 244 -[104,1](248, 248) -> 245 -[104,1](249, 248) -> 246 -[104,1](250, 248) -> 247 -[105,1](251, 251) -> 248 -[105,1](252, 251) -> 249 -[105,1](253, 251) -> 250 -[106,1](254, 254) -> 251 -[106,1](255, 254) -> 252 -[106,1](256, 254) -> 253 -[107,1](257, 257) -> 254 -[107,1](258, 257) -> 255 -[107,1](259, 257) -> 256 -[108,1](260, 260) -> 257 -[108,1](261, 260) -> 258 -[108,1](262, 260) -> 259 -[109,1](263, 263) -> 260 -[109,1](264, 263) -> 261 -[109,1](265, 263) -> 262 -[110,1](266, 266) -> 263 -[110,1](267, 266) -> 264 -[110,1](268, 266) -> 265 -[111,1](269, 269) -> 266 -[111,1](270, 269) -> 267 -[111,1](271, 269) -> 268 -[112,1](272, 272) -> 269 -[112,1](273, 272) -> 270 -[112,1](274, 272) -> 271 -[113,1](275, 275) -> 272 -[113,1](276, 275) -> 273 -[113,1](277, 275) -> 274 -[114,1](278, 278) -> 275 -[114,1](279, 278) -> 276 -[114,1](280, 278) -> 277 -[115,1](281, 281) -> 278 -[115,1](282, 281) -> 279 -[115,1](283, 281) -> 280 -[116,1](284, 284) -> 281 -[116,1](285, 284) -> 282 -[116,1](286, 284) -> 283 -[117,1](287, 287) -> 284 -[117,1](288, 287) -> 285 -[117,1](289, 287) -> 286 -[118,1](290, 290) -> 287 -[118,1](291, 290) -> 288 -[118,1](292, 290) -> 289 -[119,1](293, 293) -> 290 -[119,1](294, 293) -> 291 -[119,1](295, 293) -> 292 -[120,1](296, 296) -> 293 -[120,1](297, 296) -> 294 -[120,1](298, 296) -> 295 -[121,1](299, 299) -> 296 -[121,1](300, 299) -> 297 -[121,1](301, 299) -> 298 -[122,1](302, 302) -> 299 -[122,1](303, 302) -> 300 -[122,1](304, 302) -> 301 -[123,1](305, 305) -> 302 -[123,1](306, 305) -> 303 -[123,1](307, 305) -> 304 -[124,1](308, 308) -> 305 -[124,1](309, 308) -> 306 -[124,1](310, 308) -> 307 -[p1,1] -> 308 -[p2,1] -> 309 -[p3,1] -> 310 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/62/pre.hsl b/benchmarks/all/OEGrover/62/pre.hsl index cf1b4175b..8a934fd29 100644 --- a/benchmarks/all/OEGrover/62/pre.hsl +++ b/benchmarks/all/OEGrover/62/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 30 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 4611686018427387903 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/62/pre.lsta b/benchmarks/all/OEGrover/62/pre.lsta deleted file mode 100644 index ed2d93f37..000000000 --- a/benchmarks/all/OEGrover/62/pre.lsta +++ /dev/null @@ -1,321 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 126) -> 123 -[63,1](125, 127) -> 124 -[64,1](128, 128) -> 125 -[64,1](129, 128) -> 126 -[64,1](130, 128) -> 127 -[65,1](131, 131) -> 128 -[65,1](132, 131) -> 129 -[65,1](133, 131) -> 130 -[66,1](134, 134) -> 131 -[66,1](135, 134) -> 132 -[66,1](136, 134) -> 133 -[67,1](137, 137) -> 134 -[67,1](138, 137) -> 135 -[67,1](139, 137) -> 136 -[68,1](140, 140) -> 137 -[68,1](141, 140) -> 138 -[68,1](142, 140) -> 139 -[69,1](143, 143) -> 140 -[69,1](144, 143) -> 141 -[69,1](145, 143) -> 142 -[70,1](146, 146) -> 143 -[70,1](147, 146) -> 144 -[70,1](148, 146) -> 145 -[71,1](149, 149) -> 146 -[71,1](150, 149) -> 147 -[71,1](151, 149) -> 148 -[72,1](152, 152) -> 149 -[72,1](153, 152) -> 150 -[72,1](154, 152) -> 151 -[73,1](155, 155) -> 152 -[73,1](156, 155) -> 153 -[73,1](157, 155) -> 154 -[74,1](158, 158) -> 155 -[74,1](159, 158) -> 156 -[74,1](160, 158) -> 157 -[75,1](161, 161) -> 158 -[75,1](162, 161) -> 159 -[75,1](163, 161) -> 160 -[76,1](164, 164) -> 161 -[76,1](165, 164) -> 162 -[76,1](166, 164) -> 163 -[77,1](167, 167) -> 164 -[77,1](168, 167) -> 165 -[77,1](169, 167) -> 166 -[78,1](170, 170) -> 167 -[78,1](171, 170) -> 168 -[78,1](172, 170) -> 169 -[79,1](173, 173) -> 170 -[79,1](174, 173) -> 171 -[79,1](175, 173) -> 172 -[80,1](176, 176) -> 173 -[80,1](177, 176) -> 174 -[80,1](178, 176) -> 175 -[81,1](179, 179) -> 176 -[81,1](180, 179) -> 177 -[81,1](181, 179) -> 178 -[82,1](182, 182) -> 179 -[82,1](183, 182) -> 180 -[82,1](184, 182) -> 181 -[83,1](185, 185) -> 182 -[83,1](186, 185) -> 183 -[83,1](187, 185) -> 184 -[84,1](188, 188) -> 185 -[84,1](189, 188) -> 186 -[84,1](190, 188) -> 187 -[85,1](191, 191) -> 188 -[85,1](192, 191) -> 189 -[85,1](193, 191) -> 190 -[86,1](194, 194) -> 191 -[86,1](195, 194) -> 192 -[86,1](196, 194) -> 193 -[87,1](197, 197) -> 194 -[87,1](198, 197) -> 195 -[87,1](199, 197) -> 196 -[88,1](200, 200) -> 197 -[88,1](201, 200) -> 198 -[88,1](202, 200) -> 199 -[89,1](203, 203) -> 200 -[89,1](204, 203) -> 201 -[89,1](205, 203) -> 202 -[90,1](206, 206) -> 203 -[90,1](207, 206) -> 204 -[90,1](208, 206) -> 205 -[91,1](209, 209) -> 206 -[91,1](210, 209) -> 207 -[91,1](211, 209) -> 208 -[92,1](212, 212) -> 209 -[92,1](213, 212) -> 210 -[92,1](214, 212) -> 211 -[93,1](215, 215) -> 212 -[93,1](216, 215) -> 213 -[93,1](217, 215) -> 214 -[94,1](218, 218) -> 215 -[94,1](219, 218) -> 216 -[94,1](220, 218) -> 217 -[95,1](221, 221) -> 218 -[95,1](222, 221) -> 219 -[95,1](223, 221) -> 220 -[96,1](224, 224) -> 221 -[96,1](225, 224) -> 222 -[96,1](226, 224) -> 223 -[97,1](227, 227) -> 224 -[97,1](228, 227) -> 225 -[97,1](229, 227) -> 226 -[98,1](230, 230) -> 227 -[98,1](231, 230) -> 228 -[98,1](232, 230) -> 229 -[99,1](233, 233) -> 230 -[99,1](234, 233) -> 231 -[99,1](235, 233) -> 232 -[100,1](236, 236) -> 233 -[100,1](237, 236) -> 234 -[100,1](238, 236) -> 235 -[101,1](239, 239) -> 236 -[101,1](240, 239) -> 237 -[101,1](241, 239) -> 238 -[102,1](242, 242) -> 239 -[102,1](243, 242) -> 240 -[102,1](244, 242) -> 241 -[103,1](245, 245) -> 242 -[103,1](246, 245) -> 243 -[103,1](247, 245) -> 244 -[104,1](248, 248) -> 245 -[104,1](249, 248) -> 246 -[104,1](250, 248) -> 247 -[105,1](251, 251) -> 248 -[105,1](252, 251) -> 249 -[105,1](253, 251) -> 250 -[106,1](254, 254) -> 251 -[106,1](255, 254) -> 252 -[106,1](256, 254) -> 253 -[107,1](257, 257) -> 254 -[107,1](258, 257) -> 255 -[107,1](259, 257) -> 256 -[108,1](260, 260) -> 257 -[108,1](261, 260) -> 258 -[108,1](262, 260) -> 259 -[109,1](263, 263) -> 260 -[109,1](264, 263) -> 261 -[109,1](265, 263) -> 262 -[110,1](266, 266) -> 263 -[110,1](267, 266) -> 264 -[110,1](268, 266) -> 265 -[111,1](269, 269) -> 266 -[111,1](270, 269) -> 267 -[111,1](271, 269) -> 268 -[112,1](272, 272) -> 269 -[112,1](273, 272) -> 270 -[112,1](274, 272) -> 271 -[113,1](275, 275) -> 272 -[113,1](276, 275) -> 273 -[113,1](277, 275) -> 274 -[114,1](278, 278) -> 275 -[114,1](279, 278) -> 276 -[114,1](280, 278) -> 277 -[115,1](281, 281) -> 278 -[115,1](282, 281) -> 279 -[115,1](283, 281) -> 280 -[116,1](284, 284) -> 281 -[116,1](285, 284) -> 282 -[116,1](286, 284) -> 283 -[117,1](287, 287) -> 284 -[117,1](288, 287) -> 285 -[117,1](289, 287) -> 286 -[118,1](290, 290) -> 287 -[118,1](291, 290) -> 288 -[118,1](292, 290) -> 289 -[119,1](293, 293) -> 290 -[119,1](294, 293) -> 291 -[119,1](295, 293) -> 292 -[120,1](296, 296) -> 293 -[120,1](297, 296) -> 294 -[120,1](298, 296) -> 295 -[121,1](299, 299) -> 296 -[121,1](300, 299) -> 297 -[121,1](301, 299) -> 298 -[122,1](302, 302) -> 299 -[122,1](303, 302) -> 300 -[122,1](304, 302) -> 301 -[123,1](305, 305) -> 302 -[123,1](306, 305) -> 303 -[123,1](307, 305) -> 304 -[124,1](308, 308) -> 305 -[124,1](309, 308) -> 306 -[124,1](310, 308) -> 307 -[c0,1] -> 308 -[a,1] -> 309 -[b,1] -> 310 -Constraints -4611686018427387903 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/63/circuit.qasm b/benchmarks/all/OEGrover/63/circuit.qasm index 2696cbace..2ef6086e7 100644 --- a/benchmarks/all/OEGrover/63/circuit.qasm +++ b/benchmarks/all/OEGrover/63/circuit.qasm @@ -1,162 +1,162 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[126]; +qreg qubits[125]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -ccx qubits[0], qubits[1], qubits[64]; -ccx qubits[2], qubits[64], qubits[65]; -ccx qubits[3], qubits[65], qubits[66]; -ccx qubits[4], qubits[66], qubits[67]; -ccx qubits[5], qubits[67], qubits[68]; -ccx qubits[6], qubits[68], qubits[69]; -ccx qubits[7], qubits[69], qubits[70]; -ccx qubits[8], qubits[70], qubits[71]; -ccx qubits[9], qubits[71], qubits[72]; -ccx qubits[10], qubits[72], qubits[73]; -ccx qubits[11], qubits[73], qubits[74]; -ccx qubits[12], qubits[74], qubits[75]; -ccx qubits[13], qubits[75], qubits[76]; -ccx qubits[14], qubits[76], qubits[77]; -ccx qubits[15], qubits[77], qubits[78]; -ccx qubits[16], qubits[78], qubits[79]; -ccx qubits[17], qubits[79], qubits[80]; -ccx qubits[18], qubits[80], qubits[81]; -ccx qubits[19], qubits[81], qubits[82]; -ccx qubits[20], qubits[82], qubits[83]; -ccx qubits[21], qubits[83], qubits[84]; -ccx qubits[22], qubits[84], qubits[85]; -ccx qubits[23], qubits[85], qubits[86]; -ccx qubits[24], qubits[86], qubits[87]; -ccx qubits[25], qubits[87], qubits[88]; -ccx qubits[26], qubits[88], qubits[89]; -ccx qubits[27], qubits[89], qubits[90]; -ccx qubits[28], qubits[90], qubits[91]; -ccx qubits[29], qubits[91], qubits[92]; -ccx qubits[30], qubits[92], qubits[93]; -ccx qubits[31], qubits[93], qubits[94]; -ccx qubits[32], qubits[94], qubits[95]; -ccx qubits[33], qubits[95], qubits[96]; -ccx qubits[34], qubits[96], qubits[97]; -ccx qubits[35], qubits[97], qubits[98]; -ccx qubits[36], qubits[98], qubits[99]; -ccx qubits[37], qubits[99], qubits[100]; -ccx qubits[38], qubits[100], qubits[101]; -ccx qubits[39], qubits[101], qubits[102]; -ccx qubits[40], qubits[102], qubits[103]; -ccx qubits[41], qubits[103], qubits[104]; -ccx qubits[42], qubits[104], qubits[105]; -ccx qubits[43], qubits[105], qubits[106]; -ccx qubits[44], qubits[106], qubits[107]; -ccx qubits[45], qubits[107], qubits[108]; -ccx qubits[46], qubits[108], qubits[109]; -ccx qubits[47], qubits[109], qubits[110]; -ccx qubits[48], qubits[110], qubits[111]; -ccx qubits[49], qubits[111], qubits[112]; -ccx qubits[50], qubits[112], qubits[113]; -ccx qubits[51], qubits[113], qubits[114]; -ccx qubits[52], qubits[114], qubits[115]; -ccx qubits[53], qubits[115], qubits[116]; -ccx qubits[54], qubits[116], qubits[117]; -ccx qubits[55], qubits[117], qubits[118]; -ccx qubits[56], qubits[118], qubits[119]; -ccx qubits[57], qubits[119], qubits[120]; -ccx qubits[58], qubits[120], qubits[121]; -ccx qubits[59], qubits[121], qubits[122]; -ccx qubits[60], qubits[122], qubits[123]; -ccx qubits[61], qubits[123], qubits[124]; -cz qubits[124], qubits[62]; -ccx qubits[61], qubits[123], qubits[124]; -ccx qubits[60], qubits[122], qubits[123]; -ccx qubits[59], qubits[121], qubits[122]; -ccx qubits[58], qubits[120], qubits[121]; -ccx qubits[57], qubits[119], qubits[120]; -ccx qubits[56], qubits[118], qubits[119]; -ccx qubits[55], qubits[117], qubits[118]; -ccx qubits[54], qubits[116], qubits[117]; -ccx qubits[53], qubits[115], qubits[116]; -ccx qubits[52], qubits[114], qubits[115]; -ccx qubits[51], qubits[113], qubits[114]; -ccx qubits[50], qubits[112], qubits[113]; -ccx qubits[49], qubits[111], qubits[112]; -ccx qubits[48], qubits[110], qubits[111]; -ccx qubits[47], qubits[109], qubits[110]; -ccx qubits[46], qubits[108], qubits[109]; -ccx qubits[45], qubits[107], qubits[108]; -ccx qubits[44], qubits[106], qubits[107]; -ccx qubits[43], qubits[105], qubits[106]; -ccx qubits[42], qubits[104], qubits[105]; -ccx qubits[41], qubits[103], qubits[104]; -ccx qubits[40], qubits[102], qubits[103]; -ccx qubits[39], qubits[101], qubits[102]; -ccx qubits[38], qubits[100], qubits[101]; -ccx qubits[37], qubits[99], qubits[100]; -ccx qubits[36], qubits[98], qubits[99]; -ccx qubits[35], qubits[97], qubits[98]; -ccx qubits[34], qubits[96], qubits[97]; -ccx qubits[33], qubits[95], qubits[96]; -ccx qubits[32], qubits[94], qubits[95]; -ccx qubits[31], qubits[93], qubits[94]; -ccx qubits[30], qubits[92], qubits[93]; -ccx qubits[29], qubits[91], qubits[92]; -ccx qubits[28], qubits[90], qubits[91]; -ccx qubits[27], qubits[89], qubits[90]; -ccx qubits[26], qubits[88], qubits[89]; -ccx qubits[25], qubits[87], qubits[88]; -ccx qubits[24], qubits[86], qubits[87]; -ccx qubits[23], qubits[85], qubits[86]; -ccx qubits[22], qubits[84], qubits[85]; -ccx qubits[21], qubits[83], qubits[84]; -ccx qubits[20], qubits[82], qubits[83]; -ccx qubits[19], qubits[81], qubits[82]; -ccx qubits[18], qubits[80], qubits[81]; -ccx qubits[17], qubits[79], qubits[80]; -ccx qubits[16], qubits[78], qubits[79]; -ccx qubits[15], qubits[77], qubits[78]; -ccx qubits[14], qubits[76], qubits[77]; -ccx qubits[13], qubits[75], qubits[76]; -ccx qubits[12], qubits[74], qubits[75]; -ccx qubits[11], qubits[73], qubits[74]; -ccx qubits[10], qubits[72], qubits[73]; -ccx qubits[9], qubits[71], qubits[72]; -ccx qubits[8], qubits[70], qubits[71]; -ccx qubits[7], qubits[69], qubits[70]; -ccx qubits[6], qubits[68], qubits[69]; -ccx qubits[5], qubits[67], qubits[68]; -ccx qubits[4], qubits[66], qubits[67]; -ccx qubits[3], qubits[65], qubits[66]; -ccx qubits[2], qubits[64], qubits[65]; -ccx qubits[0], qubits[1], qubits[64]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +cz qubits[122], qubits[123]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -191,377 +191,377 @@ x qubits[60]; x qubits[62]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; -ccx qubits[0], qubits[1], qubits[64]; -ccx qubits[2], qubits[64], qubits[65]; -ccx qubits[3], qubits[65], qubits[66]; -ccx qubits[4], qubits[66], qubits[67]; -ccx qubits[5], qubits[67], qubits[68]; -ccx qubits[6], qubits[68], qubits[69]; -ccx qubits[7], qubits[69], qubits[70]; -ccx qubits[8], qubits[70], qubits[71]; -ccx qubits[9], qubits[71], qubits[72]; -ccx qubits[10], qubits[72], qubits[73]; -ccx qubits[11], qubits[73], qubits[74]; -ccx qubits[12], qubits[74], qubits[75]; -ccx qubits[13], qubits[75], qubits[76]; -ccx qubits[14], qubits[76], qubits[77]; -ccx qubits[15], qubits[77], qubits[78]; -ccx qubits[16], qubits[78], qubits[79]; -ccx qubits[17], qubits[79], qubits[80]; -ccx qubits[18], qubits[80], qubits[81]; -ccx qubits[19], qubits[81], qubits[82]; -ccx qubits[20], qubits[82], qubits[83]; -ccx qubits[21], qubits[83], qubits[84]; -ccx qubits[22], qubits[84], qubits[85]; -ccx qubits[23], qubits[85], qubits[86]; -ccx qubits[24], qubits[86], qubits[87]; -ccx qubits[25], qubits[87], qubits[88]; -ccx qubits[26], qubits[88], qubits[89]; -ccx qubits[27], qubits[89], qubits[90]; -ccx qubits[28], qubits[90], qubits[91]; -ccx qubits[29], qubits[91], qubits[92]; -ccx qubits[30], qubits[92], qubits[93]; -ccx qubits[31], qubits[93], qubits[94]; -ccx qubits[32], qubits[94], qubits[95]; -ccx qubits[33], qubits[95], qubits[96]; -ccx qubits[34], qubits[96], qubits[97]; -ccx qubits[35], qubits[97], qubits[98]; -ccx qubits[36], qubits[98], qubits[99]; -ccx qubits[37], qubits[99], qubits[100]; -ccx qubits[38], qubits[100], qubits[101]; -ccx qubits[39], qubits[101], qubits[102]; -ccx qubits[40], qubits[102], qubits[103]; -ccx qubits[41], qubits[103], qubits[104]; -ccx qubits[42], qubits[104], qubits[105]; -ccx qubits[43], qubits[105], qubits[106]; -ccx qubits[44], qubits[106], qubits[107]; -ccx qubits[45], qubits[107], qubits[108]; -ccx qubits[46], qubits[108], qubits[109]; -ccx qubits[47], qubits[109], qubits[110]; -ccx qubits[48], qubits[110], qubits[111]; -ccx qubits[49], qubits[111], qubits[112]; -ccx qubits[50], qubits[112], qubits[113]; -ccx qubits[51], qubits[113], qubits[114]; -ccx qubits[52], qubits[114], qubits[115]; -ccx qubits[53], qubits[115], qubits[116]; -ccx qubits[54], qubits[116], qubits[117]; -ccx qubits[55], qubits[117], qubits[118]; -ccx qubits[56], qubits[118], qubits[119]; -ccx qubits[57], qubits[119], qubits[120]; -ccx qubits[58], qubits[120], qubits[121]; -ccx qubits[59], qubits[121], qubits[122]; -ccx qubits[60], qubits[122], qubits[123]; -ccx qubits[61], qubits[123], qubits[124]; -cz qubits[124], qubits[62]; -ccx qubits[61], qubits[123], qubits[124]; -ccx qubits[60], qubits[122], qubits[123]; -ccx qubits[59], qubits[121], qubits[122]; -ccx qubits[58], qubits[120], qubits[121]; -ccx qubits[57], qubits[119], qubits[120]; -ccx qubits[56], qubits[118], qubits[119]; -ccx qubits[55], qubits[117], qubits[118]; -ccx qubits[54], qubits[116], qubits[117]; -ccx qubits[53], qubits[115], qubits[116]; -ccx qubits[52], qubits[114], qubits[115]; -ccx qubits[51], qubits[113], qubits[114]; -ccx qubits[50], qubits[112], qubits[113]; -ccx qubits[49], qubits[111], qubits[112]; -ccx qubits[48], qubits[110], qubits[111]; -ccx qubits[47], qubits[109], qubits[110]; -ccx qubits[46], qubits[108], qubits[109]; -ccx qubits[45], qubits[107], qubits[108]; -ccx qubits[44], qubits[106], qubits[107]; -ccx qubits[43], qubits[105], qubits[106]; -ccx qubits[42], qubits[104], qubits[105]; -ccx qubits[41], qubits[103], qubits[104]; -ccx qubits[40], qubits[102], qubits[103]; -ccx qubits[39], qubits[101], qubits[102]; -ccx qubits[38], qubits[100], qubits[101]; -ccx qubits[37], qubits[99], qubits[100]; -ccx qubits[36], qubits[98], qubits[99]; -ccx qubits[35], qubits[97], qubits[98]; -ccx qubits[34], qubits[96], qubits[97]; -ccx qubits[33], qubits[95], qubits[96]; -ccx qubits[32], qubits[94], qubits[95]; -ccx qubits[31], qubits[93], qubits[94]; -ccx qubits[30], qubits[92], qubits[93]; -ccx qubits[29], qubits[91], qubits[92]; -ccx qubits[28], qubits[90], qubits[91]; -ccx qubits[27], qubits[89], qubits[90]; -ccx qubits[26], qubits[88], qubits[89]; -ccx qubits[25], qubits[87], qubits[88]; -ccx qubits[24], qubits[86], qubits[87]; -ccx qubits[23], qubits[85], qubits[86]; -ccx qubits[22], qubits[84], qubits[85]; -ccx qubits[21], qubits[83], qubits[84]; -ccx qubits[20], qubits[82], qubits[83]; -ccx qubits[19], qubits[81], qubits[82]; -ccx qubits[18], qubits[80], qubits[81]; -ccx qubits[17], qubits[79], qubits[80]; -ccx qubits[16], qubits[78], qubits[79]; -ccx qubits[15], qubits[77], qubits[78]; -ccx qubits[14], qubits[76], qubits[77]; -ccx qubits[13], qubits[75], qubits[76]; -ccx qubits[12], qubits[74], qubits[75]; -ccx qubits[11], qubits[73], qubits[74]; -ccx qubits[10], qubits[72], qubits[73]; -ccx qubits[9], qubits[71], qubits[72]; -ccx qubits[8], qubits[70], qubits[71]; -ccx qubits[7], qubits[69], qubits[70]; -ccx qubits[6], qubits[68], qubits[69]; -ccx qubits[5], qubits[67], qubits[68]; -ccx qubits[4], qubits[66], qubits[67]; -ccx qubits[3], qubits[65], qubits[66]; -ccx qubits[2], qubits[64], qubits[65]; -ccx qubits[0], qubits[1], qubits[64]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +cz qubits[122], qubits[123]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; +x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; -z qubits[63]; +h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +z qubits[124]; diff --git a/benchmarks/all/OEGrover/63/post.hsl b/benchmarks/all/OEGrover/63/post.hsl index 1a6c82c47..6b5477426 100644 --- a/benchmarks/all/OEGrover/63/post.hsl +++ b/benchmarks/all/OEGrover/63/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 30 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/63/post.lsta b/benchmarks/all/OEGrover/63/post.lsta deleted file mode 100644 index b651d615e..000000000 --- a/benchmarks/all/OEGrover/63/post.lsta +++ /dev/null @@ -1,322 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 128) -> 125 -[64,1](127, 129) -> 126 -[65,1](130, 130) -> 127 -[65,1](131, 130) -> 128 -[65,1](132, 130) -> 129 -[66,1](133, 133) -> 130 -[66,1](134, 133) -> 131 -[66,1](135, 133) -> 132 -[67,1](136, 136) -> 133 -[67,1](137, 136) -> 134 -[67,1](138, 136) -> 135 -[68,1](139, 139) -> 136 -[68,1](140, 139) -> 137 -[68,1](141, 139) -> 138 -[69,1](142, 142) -> 139 -[69,1](143, 142) -> 140 -[69,1](144, 142) -> 141 -[70,1](145, 145) -> 142 -[70,1](146, 145) -> 143 -[70,1](147, 145) -> 144 -[71,1](148, 148) -> 145 -[71,1](149, 148) -> 146 -[71,1](150, 148) -> 147 -[72,1](151, 151) -> 148 -[72,1](152, 151) -> 149 -[72,1](153, 151) -> 150 -[73,1](154, 154) -> 151 -[73,1](155, 154) -> 152 -[73,1](156, 154) -> 153 -[74,1](157, 157) -> 154 -[74,1](158, 157) -> 155 -[74,1](159, 157) -> 156 -[75,1](160, 160) -> 157 -[75,1](161, 160) -> 158 -[75,1](162, 160) -> 159 -[76,1](163, 163) -> 160 -[76,1](164, 163) -> 161 -[76,1](165, 163) -> 162 -[77,1](166, 166) -> 163 -[77,1](167, 166) -> 164 -[77,1](168, 166) -> 165 -[78,1](169, 169) -> 166 -[78,1](170, 169) -> 167 -[78,1](171, 169) -> 168 -[79,1](172, 172) -> 169 -[79,1](173, 172) -> 170 -[79,1](174, 172) -> 171 -[80,1](175, 175) -> 172 -[80,1](176, 175) -> 173 -[80,1](177, 175) -> 174 -[81,1](178, 178) -> 175 -[81,1](179, 178) -> 176 -[81,1](180, 178) -> 177 -[82,1](181, 181) -> 178 -[82,1](182, 181) -> 179 -[82,1](183, 181) -> 180 -[83,1](184, 184) -> 181 -[83,1](185, 184) -> 182 -[83,1](186, 184) -> 183 -[84,1](187, 187) -> 184 -[84,1](188, 187) -> 185 -[84,1](189, 187) -> 186 -[85,1](190, 190) -> 187 -[85,1](191, 190) -> 188 -[85,1](192, 190) -> 189 -[86,1](193, 193) -> 190 -[86,1](194, 193) -> 191 -[86,1](195, 193) -> 192 -[87,1](196, 196) -> 193 -[87,1](197, 196) -> 194 -[87,1](198, 196) -> 195 -[88,1](199, 199) -> 196 -[88,1](200, 199) -> 197 -[88,1](201, 199) -> 198 -[89,1](202, 202) -> 199 -[89,1](203, 202) -> 200 -[89,1](204, 202) -> 201 -[90,1](205, 205) -> 202 -[90,1](206, 205) -> 203 -[90,1](207, 205) -> 204 -[91,1](208, 208) -> 205 -[91,1](209, 208) -> 206 -[91,1](210, 208) -> 207 -[92,1](211, 211) -> 208 -[92,1](212, 211) -> 209 -[92,1](213, 211) -> 210 -[93,1](214, 214) -> 211 -[93,1](215, 214) -> 212 -[93,1](216, 214) -> 213 -[94,1](217, 217) -> 214 -[94,1](218, 217) -> 215 -[94,1](219, 217) -> 216 -[95,1](220, 220) -> 217 -[95,1](221, 220) -> 218 -[95,1](222, 220) -> 219 -[96,1](223, 223) -> 220 -[96,1](224, 223) -> 221 -[96,1](225, 223) -> 222 -[97,1](226, 226) -> 223 -[97,1](227, 226) -> 224 -[97,1](228, 226) -> 225 -[98,1](229, 229) -> 226 -[98,1](230, 229) -> 227 -[98,1](231, 229) -> 228 -[99,1](232, 232) -> 229 -[99,1](233, 232) -> 230 -[99,1](234, 232) -> 231 -[100,1](235, 235) -> 232 -[100,1](236, 235) -> 233 -[100,1](237, 235) -> 234 -[101,1](238, 238) -> 235 -[101,1](239, 238) -> 236 -[101,1](240, 238) -> 237 -[102,1](241, 241) -> 238 -[102,1](242, 241) -> 239 -[102,1](243, 241) -> 240 -[103,1](244, 244) -> 241 -[103,1](245, 244) -> 242 -[103,1](246, 244) -> 243 -[104,1](247, 247) -> 244 -[104,1](248, 247) -> 245 -[104,1](249, 247) -> 246 -[105,1](250, 250) -> 247 -[105,1](251, 250) -> 248 -[105,1](252, 250) -> 249 -[106,1](253, 253) -> 250 -[106,1](254, 253) -> 251 -[106,1](255, 253) -> 252 -[107,1](256, 256) -> 253 -[107,1](257, 256) -> 254 -[107,1](258, 256) -> 255 -[108,1](259, 259) -> 256 -[108,1](260, 259) -> 257 -[108,1](261, 259) -> 258 -[109,1](262, 262) -> 259 -[109,1](263, 262) -> 260 -[109,1](264, 262) -> 261 -[110,1](265, 265) -> 262 -[110,1](266, 265) -> 263 -[110,1](267, 265) -> 264 -[111,1](268, 268) -> 265 -[111,1](269, 268) -> 266 -[111,1](270, 268) -> 267 -[112,1](271, 271) -> 268 -[112,1](272, 271) -> 269 -[112,1](273, 271) -> 270 -[113,1](274, 274) -> 271 -[113,1](275, 274) -> 272 -[113,1](276, 274) -> 273 -[114,1](277, 277) -> 274 -[114,1](278, 277) -> 275 -[114,1](279, 277) -> 276 -[115,1](280, 280) -> 277 -[115,1](281, 280) -> 278 -[115,1](282, 280) -> 279 -[116,1](283, 283) -> 280 -[116,1](284, 283) -> 281 -[116,1](285, 283) -> 282 -[117,1](286, 286) -> 283 -[117,1](287, 286) -> 284 -[117,1](288, 286) -> 285 -[118,1](289, 289) -> 286 -[118,1](290, 289) -> 287 -[118,1](291, 289) -> 288 -[119,1](292, 292) -> 289 -[119,1](293, 292) -> 290 -[119,1](294, 292) -> 291 -[120,1](295, 295) -> 292 -[120,1](296, 295) -> 293 -[120,1](297, 295) -> 294 -[121,1](298, 298) -> 295 -[121,1](299, 298) -> 296 -[121,1](300, 298) -> 297 -[122,1](301, 301) -> 298 -[122,1](302, 301) -> 299 -[122,1](303, 301) -> 300 -[123,1](304, 304) -> 301 -[123,1](305, 304) -> 302 -[123,1](306, 304) -> 303 -[124,1](307, 307) -> 304 -[124,1](308, 307) -> 305 -[124,1](309, 307) -> 306 -[125,1](310, 310) -> 307 -[125,1](311, 310) -> 308 -[125,1](312, 310) -> 309 -[126,1](313, 313) -> 310 -[126,1](314, 313) -> 311 -[126,1](315, 313) -> 312 -[p1,1] -> 313 -[p2,1] -> 314 -[p3,1] -> 315 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/63/pre.hsl b/benchmarks/all/OEGrover/63/pre.hsl index 08f821d62..d85261d98 100644 --- a/benchmarks/all/OEGrover/63/pre.hsl +++ b/benchmarks/all/OEGrover/63/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 30 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 9223372036854775807 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/63/pre.lsta b/benchmarks/all/OEGrover/63/pre.lsta deleted file mode 100644 index 10a6c9eb6..000000000 --- a/benchmarks/all/OEGrover/63/pre.lsta +++ /dev/null @@ -1,326 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 128) -> 125 -[64,1](127, 129) -> 126 -[65,1](130, 130) -> 127 -[65,1](131, 130) -> 128 -[65,1](132, 130) -> 129 -[66,1](133, 133) -> 130 -[66,1](134, 133) -> 131 -[66,1](135, 133) -> 132 -[67,1](136, 136) -> 133 -[67,1](137, 136) -> 134 -[67,1](138, 136) -> 135 -[68,1](139, 139) -> 136 -[68,1](140, 139) -> 137 -[68,1](141, 139) -> 138 -[69,1](142, 142) -> 139 -[69,1](143, 142) -> 140 -[69,1](144, 142) -> 141 -[70,1](145, 145) -> 142 -[70,1](146, 145) -> 143 -[70,1](147, 145) -> 144 -[71,1](148, 148) -> 145 -[71,1](149, 148) -> 146 -[71,1](150, 148) -> 147 -[72,1](151, 151) -> 148 -[72,1](152, 151) -> 149 -[72,1](153, 151) -> 150 -[73,1](154, 154) -> 151 -[73,1](155, 154) -> 152 -[73,1](156, 154) -> 153 -[74,1](157, 157) -> 154 -[74,1](158, 157) -> 155 -[74,1](159, 157) -> 156 -[75,1](160, 160) -> 157 -[75,1](161, 160) -> 158 -[75,1](162, 160) -> 159 -[76,1](163, 163) -> 160 -[76,1](164, 163) -> 161 -[76,1](165, 163) -> 162 -[77,1](166, 166) -> 163 -[77,1](167, 166) -> 164 -[77,1](168, 166) -> 165 -[78,1](169, 169) -> 166 -[78,1](170, 169) -> 167 -[78,1](171, 169) -> 168 -[79,1](172, 172) -> 169 -[79,1](173, 172) -> 170 -[79,1](174, 172) -> 171 -[80,1](175, 175) -> 172 -[80,1](176, 175) -> 173 -[80,1](177, 175) -> 174 -[81,1](178, 178) -> 175 -[81,1](179, 178) -> 176 -[81,1](180, 178) -> 177 -[82,1](181, 181) -> 178 -[82,1](182, 181) -> 179 -[82,1](183, 181) -> 180 -[83,1](184, 184) -> 181 -[83,1](185, 184) -> 182 -[83,1](186, 184) -> 183 -[84,1](187, 187) -> 184 -[84,1](188, 187) -> 185 -[84,1](189, 187) -> 186 -[85,1](190, 190) -> 187 -[85,1](191, 190) -> 188 -[85,1](192, 190) -> 189 -[86,1](193, 193) -> 190 -[86,1](194, 193) -> 191 -[86,1](195, 193) -> 192 -[87,1](196, 196) -> 193 -[87,1](197, 196) -> 194 -[87,1](198, 196) -> 195 -[88,1](199, 199) -> 196 -[88,1](200, 199) -> 197 -[88,1](201, 199) -> 198 -[89,1](202, 202) -> 199 -[89,1](203, 202) -> 200 -[89,1](204, 202) -> 201 -[90,1](205, 205) -> 202 -[90,1](206, 205) -> 203 -[90,1](207, 205) -> 204 -[91,1](208, 208) -> 205 -[91,1](209, 208) -> 206 -[91,1](210, 208) -> 207 -[92,1](211, 211) -> 208 -[92,1](212, 211) -> 209 -[92,1](213, 211) -> 210 -[93,1](214, 214) -> 211 -[93,1](215, 214) -> 212 -[93,1](216, 214) -> 213 -[94,1](217, 217) -> 214 -[94,1](218, 217) -> 215 -[94,1](219, 217) -> 216 -[95,1](220, 220) -> 217 -[95,1](221, 220) -> 218 -[95,1](222, 220) -> 219 -[96,1](223, 223) -> 220 -[96,1](224, 223) -> 221 -[96,1](225, 223) -> 222 -[97,1](226, 226) -> 223 -[97,1](227, 226) -> 224 -[97,1](228, 226) -> 225 -[98,1](229, 229) -> 226 -[98,1](230, 229) -> 227 -[98,1](231, 229) -> 228 -[99,1](232, 232) -> 229 -[99,1](233, 232) -> 230 -[99,1](234, 232) -> 231 -[100,1](235, 235) -> 232 -[100,1](236, 235) -> 233 -[100,1](237, 235) -> 234 -[101,1](238, 238) -> 235 -[101,1](239, 238) -> 236 -[101,1](240, 238) -> 237 -[102,1](241, 241) -> 238 -[102,1](242, 241) -> 239 -[102,1](243, 241) -> 240 -[103,1](244, 244) -> 241 -[103,1](245, 244) -> 242 -[103,1](246, 244) -> 243 -[104,1](247, 247) -> 244 -[104,1](248, 247) -> 245 -[104,1](249, 247) -> 246 -[105,1](250, 250) -> 247 -[105,1](251, 250) -> 248 -[105,1](252, 250) -> 249 -[106,1](253, 253) -> 250 -[106,1](254, 253) -> 251 -[106,1](255, 253) -> 252 -[107,1](256, 256) -> 253 -[107,1](257, 256) -> 254 -[107,1](258, 256) -> 255 -[108,1](259, 259) -> 256 -[108,1](260, 259) -> 257 -[108,1](261, 259) -> 258 -[109,1](262, 262) -> 259 -[109,1](263, 262) -> 260 -[109,1](264, 262) -> 261 -[110,1](265, 265) -> 262 -[110,1](266, 265) -> 263 -[110,1](267, 265) -> 264 -[111,1](268, 268) -> 265 -[111,1](269, 268) -> 266 -[111,1](270, 268) -> 267 -[112,1](271, 271) -> 268 -[112,1](272, 271) -> 269 -[112,1](273, 271) -> 270 -[113,1](274, 274) -> 271 -[113,1](275, 274) -> 272 -[113,1](276, 274) -> 273 -[114,1](277, 277) -> 274 -[114,1](278, 277) -> 275 -[114,1](279, 277) -> 276 -[115,1](280, 280) -> 277 -[115,1](281, 280) -> 278 -[115,1](282, 280) -> 279 -[116,1](283, 283) -> 280 -[116,1](284, 283) -> 281 -[116,1](285, 283) -> 282 -[117,1](286, 286) -> 283 -[117,1](287, 286) -> 284 -[117,1](288, 286) -> 285 -[118,1](289, 289) -> 286 -[118,1](290, 289) -> 287 -[118,1](291, 289) -> 288 -[119,1](292, 292) -> 289 -[119,1](293, 292) -> 290 -[119,1](294, 292) -> 291 -[120,1](295, 295) -> 292 -[120,1](296, 295) -> 293 -[120,1](297, 295) -> 294 -[121,1](298, 298) -> 295 -[121,1](299, 298) -> 296 -[121,1](300, 298) -> 297 -[122,1](301, 301) -> 298 -[122,1](302, 301) -> 299 -[122,1](303, 301) -> 300 -[123,1](304, 304) -> 301 -[123,1](305, 304) -> 302 -[123,1](306, 304) -> 303 -[124,1](307, 307) -> 304 -[124,1](308, 307) -> 305 -[124,1](309, 307) -> 306 -[125,1](310, 310) -> 307 -[125,1](311, 310) -> 308 -[125,1](312, 310) -> 309 -[126,1](313, 313) -> 310 -[126,1](314, 313) -> 311 -[126,1](315, 313) -> 312 -[c0,1] -> 313 -[a,1] -> 314 -[b,1] -> 315 -Constraints -9223372036854775807 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/64/circuit.qasm b/benchmarks/all/OEGrover/64/circuit.qasm index ca989fe67..d534fbbaa 100644 --- a/benchmarks/all/OEGrover/64/circuit.qasm +++ b/benchmarks/all/OEGrover/64/circuit.qasm @@ -1,164 +1,164 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[128]; +qreg qubits[127]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -ccx qubits[0], qubits[1], qubits[65]; -ccx qubits[2], qubits[65], qubits[66]; -ccx qubits[3], qubits[66], qubits[67]; -ccx qubits[4], qubits[67], qubits[68]; -ccx qubits[5], qubits[68], qubits[69]; -ccx qubits[6], qubits[69], qubits[70]; -ccx qubits[7], qubits[70], qubits[71]; -ccx qubits[8], qubits[71], qubits[72]; -ccx qubits[9], qubits[72], qubits[73]; -ccx qubits[10], qubits[73], qubits[74]; -ccx qubits[11], qubits[74], qubits[75]; -ccx qubits[12], qubits[75], qubits[76]; -ccx qubits[13], qubits[76], qubits[77]; -ccx qubits[14], qubits[77], qubits[78]; -ccx qubits[15], qubits[78], qubits[79]; -ccx qubits[16], qubits[79], qubits[80]; -ccx qubits[17], qubits[80], qubits[81]; -ccx qubits[18], qubits[81], qubits[82]; -ccx qubits[19], qubits[82], qubits[83]; -ccx qubits[20], qubits[83], qubits[84]; -ccx qubits[21], qubits[84], qubits[85]; -ccx qubits[22], qubits[85], qubits[86]; -ccx qubits[23], qubits[86], qubits[87]; -ccx qubits[24], qubits[87], qubits[88]; -ccx qubits[25], qubits[88], qubits[89]; -ccx qubits[26], qubits[89], qubits[90]; -ccx qubits[27], qubits[90], qubits[91]; -ccx qubits[28], qubits[91], qubits[92]; -ccx qubits[29], qubits[92], qubits[93]; -ccx qubits[30], qubits[93], qubits[94]; -ccx qubits[31], qubits[94], qubits[95]; -ccx qubits[32], qubits[95], qubits[96]; -ccx qubits[33], qubits[96], qubits[97]; -ccx qubits[34], qubits[97], qubits[98]; -ccx qubits[35], qubits[98], qubits[99]; -ccx qubits[36], qubits[99], qubits[100]; -ccx qubits[37], qubits[100], qubits[101]; -ccx qubits[38], qubits[101], qubits[102]; -ccx qubits[39], qubits[102], qubits[103]; -ccx qubits[40], qubits[103], qubits[104]; -ccx qubits[41], qubits[104], qubits[105]; -ccx qubits[42], qubits[105], qubits[106]; -ccx qubits[43], qubits[106], qubits[107]; -ccx qubits[44], qubits[107], qubits[108]; -ccx qubits[45], qubits[108], qubits[109]; -ccx qubits[46], qubits[109], qubits[110]; -ccx qubits[47], qubits[110], qubits[111]; -ccx qubits[48], qubits[111], qubits[112]; -ccx qubits[49], qubits[112], qubits[113]; -ccx qubits[50], qubits[113], qubits[114]; -ccx qubits[51], qubits[114], qubits[115]; -ccx qubits[52], qubits[115], qubits[116]; -ccx qubits[53], qubits[116], qubits[117]; -ccx qubits[54], qubits[117], qubits[118]; -ccx qubits[55], qubits[118], qubits[119]; -ccx qubits[56], qubits[119], qubits[120]; -ccx qubits[57], qubits[120], qubits[121]; -ccx qubits[58], qubits[121], qubits[122]; -ccx qubits[59], qubits[122], qubits[123]; -ccx qubits[60], qubits[123], qubits[124]; -ccx qubits[61], qubits[124], qubits[125]; -ccx qubits[62], qubits[125], qubits[126]; -cz qubits[126], qubits[63]; -ccx qubits[62], qubits[125], qubits[126]; -ccx qubits[61], qubits[124], qubits[125]; -ccx qubits[60], qubits[123], qubits[124]; -ccx qubits[59], qubits[122], qubits[123]; -ccx qubits[58], qubits[121], qubits[122]; -ccx qubits[57], qubits[120], qubits[121]; -ccx qubits[56], qubits[119], qubits[120]; -ccx qubits[55], qubits[118], qubits[119]; -ccx qubits[54], qubits[117], qubits[118]; -ccx qubits[53], qubits[116], qubits[117]; -ccx qubits[52], qubits[115], qubits[116]; -ccx qubits[51], qubits[114], qubits[115]; -ccx qubits[50], qubits[113], qubits[114]; -ccx qubits[49], qubits[112], qubits[113]; -ccx qubits[48], qubits[111], qubits[112]; -ccx qubits[47], qubits[110], qubits[111]; -ccx qubits[46], qubits[109], qubits[110]; -ccx qubits[45], qubits[108], qubits[109]; -ccx qubits[44], qubits[107], qubits[108]; -ccx qubits[43], qubits[106], qubits[107]; -ccx qubits[42], qubits[105], qubits[106]; -ccx qubits[41], qubits[104], qubits[105]; -ccx qubits[40], qubits[103], qubits[104]; -ccx qubits[39], qubits[102], qubits[103]; -ccx qubits[38], qubits[101], qubits[102]; -ccx qubits[37], qubits[100], qubits[101]; -ccx qubits[36], qubits[99], qubits[100]; -ccx qubits[35], qubits[98], qubits[99]; -ccx qubits[34], qubits[97], qubits[98]; -ccx qubits[33], qubits[96], qubits[97]; -ccx qubits[32], qubits[95], qubits[96]; -ccx qubits[31], qubits[94], qubits[95]; -ccx qubits[30], qubits[93], qubits[94]; -ccx qubits[29], qubits[92], qubits[93]; -ccx qubits[28], qubits[91], qubits[92]; -ccx qubits[27], qubits[90], qubits[91]; -ccx qubits[26], qubits[89], qubits[90]; -ccx qubits[25], qubits[88], qubits[89]; -ccx qubits[24], qubits[87], qubits[88]; -ccx qubits[23], qubits[86], qubits[87]; -ccx qubits[22], qubits[85], qubits[86]; -ccx qubits[21], qubits[84], qubits[85]; -ccx qubits[20], qubits[83], qubits[84]; -ccx qubits[19], qubits[82], qubits[83]; -ccx qubits[18], qubits[81], qubits[82]; -ccx qubits[17], qubits[80], qubits[81]; -ccx qubits[16], qubits[79], qubits[80]; -ccx qubits[15], qubits[78], qubits[79]; -ccx qubits[14], qubits[77], qubits[78]; -ccx qubits[13], qubits[76], qubits[77]; -ccx qubits[12], qubits[75], qubits[76]; -ccx qubits[11], qubits[74], qubits[75]; -ccx qubits[10], qubits[73], qubits[74]; -ccx qubits[9], qubits[72], qubits[73]; -ccx qubits[8], qubits[71], qubits[72]; -ccx qubits[7], qubits[70], qubits[71]; -ccx qubits[6], qubits[69], qubits[70]; -ccx qubits[5], qubits[68], qubits[69]; -ccx qubits[4], qubits[67], qubits[68]; -ccx qubits[3], qubits[66], qubits[67]; -ccx qubits[2], qubits[65], qubits[66]; -ccx qubits[0], qubits[1], qubits[65]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +cz qubits[124], qubits[125]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -193,383 +193,383 @@ x qubits[60]; x qubits[62]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -ccx qubits[0], qubits[1], qubits[65]; -ccx qubits[2], qubits[65], qubits[66]; -ccx qubits[3], qubits[66], qubits[67]; -ccx qubits[4], qubits[67], qubits[68]; -ccx qubits[5], qubits[68], qubits[69]; -ccx qubits[6], qubits[69], qubits[70]; -ccx qubits[7], qubits[70], qubits[71]; -ccx qubits[8], qubits[71], qubits[72]; -ccx qubits[9], qubits[72], qubits[73]; -ccx qubits[10], qubits[73], qubits[74]; -ccx qubits[11], qubits[74], qubits[75]; -ccx qubits[12], qubits[75], qubits[76]; -ccx qubits[13], qubits[76], qubits[77]; -ccx qubits[14], qubits[77], qubits[78]; -ccx qubits[15], qubits[78], qubits[79]; -ccx qubits[16], qubits[79], qubits[80]; -ccx qubits[17], qubits[80], qubits[81]; -ccx qubits[18], qubits[81], qubits[82]; -ccx qubits[19], qubits[82], qubits[83]; -ccx qubits[20], qubits[83], qubits[84]; -ccx qubits[21], qubits[84], qubits[85]; -ccx qubits[22], qubits[85], qubits[86]; -ccx qubits[23], qubits[86], qubits[87]; -ccx qubits[24], qubits[87], qubits[88]; -ccx qubits[25], qubits[88], qubits[89]; -ccx qubits[26], qubits[89], qubits[90]; -ccx qubits[27], qubits[90], qubits[91]; -ccx qubits[28], qubits[91], qubits[92]; -ccx qubits[29], qubits[92], qubits[93]; -ccx qubits[30], qubits[93], qubits[94]; -ccx qubits[31], qubits[94], qubits[95]; -ccx qubits[32], qubits[95], qubits[96]; -ccx qubits[33], qubits[96], qubits[97]; -ccx qubits[34], qubits[97], qubits[98]; -ccx qubits[35], qubits[98], qubits[99]; -ccx qubits[36], qubits[99], qubits[100]; -ccx qubits[37], qubits[100], qubits[101]; -ccx qubits[38], qubits[101], qubits[102]; -ccx qubits[39], qubits[102], qubits[103]; -ccx qubits[40], qubits[103], qubits[104]; -ccx qubits[41], qubits[104], qubits[105]; -ccx qubits[42], qubits[105], qubits[106]; -ccx qubits[43], qubits[106], qubits[107]; -ccx qubits[44], qubits[107], qubits[108]; -ccx qubits[45], qubits[108], qubits[109]; -ccx qubits[46], qubits[109], qubits[110]; -ccx qubits[47], qubits[110], qubits[111]; -ccx qubits[48], qubits[111], qubits[112]; -ccx qubits[49], qubits[112], qubits[113]; -ccx qubits[50], qubits[113], qubits[114]; -ccx qubits[51], qubits[114], qubits[115]; -ccx qubits[52], qubits[115], qubits[116]; -ccx qubits[53], qubits[116], qubits[117]; -ccx qubits[54], qubits[117], qubits[118]; -ccx qubits[55], qubits[118], qubits[119]; -ccx qubits[56], qubits[119], qubits[120]; -ccx qubits[57], qubits[120], qubits[121]; -ccx qubits[58], qubits[121], qubits[122]; -ccx qubits[59], qubits[122], qubits[123]; -ccx qubits[60], qubits[123], qubits[124]; -ccx qubits[61], qubits[124], qubits[125]; -ccx qubits[62], qubits[125], qubits[126]; -cz qubits[126], qubits[63]; -ccx qubits[62], qubits[125], qubits[126]; -ccx qubits[61], qubits[124], qubits[125]; -ccx qubits[60], qubits[123], qubits[124]; -ccx qubits[59], qubits[122], qubits[123]; -ccx qubits[58], qubits[121], qubits[122]; -ccx qubits[57], qubits[120], qubits[121]; -ccx qubits[56], qubits[119], qubits[120]; -ccx qubits[55], qubits[118], qubits[119]; -ccx qubits[54], qubits[117], qubits[118]; -ccx qubits[53], qubits[116], qubits[117]; -ccx qubits[52], qubits[115], qubits[116]; -ccx qubits[51], qubits[114], qubits[115]; -ccx qubits[50], qubits[113], qubits[114]; -ccx qubits[49], qubits[112], qubits[113]; -ccx qubits[48], qubits[111], qubits[112]; -ccx qubits[47], qubits[110], qubits[111]; -ccx qubits[46], qubits[109], qubits[110]; -ccx qubits[45], qubits[108], qubits[109]; -ccx qubits[44], qubits[107], qubits[108]; -ccx qubits[43], qubits[106], qubits[107]; -ccx qubits[42], qubits[105], qubits[106]; -ccx qubits[41], qubits[104], qubits[105]; -ccx qubits[40], qubits[103], qubits[104]; -ccx qubits[39], qubits[102], qubits[103]; -ccx qubits[38], qubits[101], qubits[102]; -ccx qubits[37], qubits[100], qubits[101]; -ccx qubits[36], qubits[99], qubits[100]; -ccx qubits[35], qubits[98], qubits[99]; -ccx qubits[34], qubits[97], qubits[98]; -ccx qubits[33], qubits[96], qubits[97]; -ccx qubits[32], qubits[95], qubits[96]; -ccx qubits[31], qubits[94], qubits[95]; -ccx qubits[30], qubits[93], qubits[94]; -ccx qubits[29], qubits[92], qubits[93]; -ccx qubits[28], qubits[91], qubits[92]; -ccx qubits[27], qubits[90], qubits[91]; -ccx qubits[26], qubits[89], qubits[90]; -ccx qubits[25], qubits[88], qubits[89]; -ccx qubits[24], qubits[87], qubits[88]; -ccx qubits[23], qubits[86], qubits[87]; -ccx qubits[22], qubits[85], qubits[86]; -ccx qubits[21], qubits[84], qubits[85]; -ccx qubits[20], qubits[83], qubits[84]; -ccx qubits[19], qubits[82], qubits[83]; -ccx qubits[18], qubits[81], qubits[82]; -ccx qubits[17], qubits[80], qubits[81]; -ccx qubits[16], qubits[79], qubits[80]; -ccx qubits[15], qubits[78], qubits[79]; -ccx qubits[14], qubits[77], qubits[78]; -ccx qubits[13], qubits[76], qubits[77]; -ccx qubits[12], qubits[75], qubits[76]; -ccx qubits[11], qubits[74], qubits[75]; -ccx qubits[10], qubits[73], qubits[74]; -ccx qubits[9], qubits[72], qubits[73]; -ccx qubits[8], qubits[71], qubits[72]; -ccx qubits[7], qubits[70], qubits[71]; -ccx qubits[6], qubits[69], qubits[70]; -ccx qubits[5], qubits[68], qubits[69]; -ccx qubits[4], qubits[67], qubits[68]; -ccx qubits[3], qubits[66], qubits[67]; -ccx qubits[2], qubits[65], qubits[66]; -ccx qubits[0], qubits[1], qubits[65]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +cz qubits[124], qubits[125]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -z qubits[64]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +z qubits[126]; diff --git a/benchmarks/all/OEGrover/64/post.hsl b/benchmarks/all/OEGrover/64/post.hsl index 8e3657d93..c50d46951 100644 --- a/benchmarks/all/OEGrover/64/post.hsl +++ b/benchmarks/all/OEGrover/64/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 31 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/64/post.lsta b/benchmarks/all/OEGrover/64/post.lsta deleted file mode 100644 index 8a8d90233..000000000 --- a/benchmarks/all/OEGrover/64/post.lsta +++ /dev/null @@ -1,327 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 130) -> 127 -[65,1](129, 131) -> 128 -[66,1](132, 132) -> 129 -[66,1](133, 132) -> 130 -[66,1](134, 132) -> 131 -[67,1](135, 135) -> 132 -[67,1](136, 135) -> 133 -[67,1](137, 135) -> 134 -[68,1](138, 138) -> 135 -[68,1](139, 138) -> 136 -[68,1](140, 138) -> 137 -[69,1](141, 141) -> 138 -[69,1](142, 141) -> 139 -[69,1](143, 141) -> 140 -[70,1](144, 144) -> 141 -[70,1](145, 144) -> 142 -[70,1](146, 144) -> 143 -[71,1](147, 147) -> 144 -[71,1](148, 147) -> 145 -[71,1](149, 147) -> 146 -[72,1](150, 150) -> 147 -[72,1](151, 150) -> 148 -[72,1](152, 150) -> 149 -[73,1](153, 153) -> 150 -[73,1](154, 153) -> 151 -[73,1](155, 153) -> 152 -[74,1](156, 156) -> 153 -[74,1](157, 156) -> 154 -[74,1](158, 156) -> 155 -[75,1](159, 159) -> 156 -[75,1](160, 159) -> 157 -[75,1](161, 159) -> 158 -[76,1](162, 162) -> 159 -[76,1](163, 162) -> 160 -[76,1](164, 162) -> 161 -[77,1](165, 165) -> 162 -[77,1](166, 165) -> 163 -[77,1](167, 165) -> 164 -[78,1](168, 168) -> 165 -[78,1](169, 168) -> 166 -[78,1](170, 168) -> 167 -[79,1](171, 171) -> 168 -[79,1](172, 171) -> 169 -[79,1](173, 171) -> 170 -[80,1](174, 174) -> 171 -[80,1](175, 174) -> 172 -[80,1](176, 174) -> 173 -[81,1](177, 177) -> 174 -[81,1](178, 177) -> 175 -[81,1](179, 177) -> 176 -[82,1](180, 180) -> 177 -[82,1](181, 180) -> 178 -[82,1](182, 180) -> 179 -[83,1](183, 183) -> 180 -[83,1](184, 183) -> 181 -[83,1](185, 183) -> 182 -[84,1](186, 186) -> 183 -[84,1](187, 186) -> 184 -[84,1](188, 186) -> 185 -[85,1](189, 189) -> 186 -[85,1](190, 189) -> 187 -[85,1](191, 189) -> 188 -[86,1](192, 192) -> 189 -[86,1](193, 192) -> 190 -[86,1](194, 192) -> 191 -[87,1](195, 195) -> 192 -[87,1](196, 195) -> 193 -[87,1](197, 195) -> 194 -[88,1](198, 198) -> 195 -[88,1](199, 198) -> 196 -[88,1](200, 198) -> 197 -[89,1](201, 201) -> 198 -[89,1](202, 201) -> 199 -[89,1](203, 201) -> 200 -[90,1](204, 204) -> 201 -[90,1](205, 204) -> 202 -[90,1](206, 204) -> 203 -[91,1](207, 207) -> 204 -[91,1](208, 207) -> 205 -[91,1](209, 207) -> 206 -[92,1](210, 210) -> 207 -[92,1](211, 210) -> 208 -[92,1](212, 210) -> 209 -[93,1](213, 213) -> 210 -[93,1](214, 213) -> 211 -[93,1](215, 213) -> 212 -[94,1](216, 216) -> 213 -[94,1](217, 216) -> 214 -[94,1](218, 216) -> 215 -[95,1](219, 219) -> 216 -[95,1](220, 219) -> 217 -[95,1](221, 219) -> 218 -[96,1](222, 222) -> 219 -[96,1](223, 222) -> 220 -[96,1](224, 222) -> 221 -[97,1](225, 225) -> 222 -[97,1](226, 225) -> 223 -[97,1](227, 225) -> 224 -[98,1](228, 228) -> 225 -[98,1](229, 228) -> 226 -[98,1](230, 228) -> 227 -[99,1](231, 231) -> 228 -[99,1](232, 231) -> 229 -[99,1](233, 231) -> 230 -[100,1](234, 234) -> 231 -[100,1](235, 234) -> 232 -[100,1](236, 234) -> 233 -[101,1](237, 237) -> 234 -[101,1](238, 237) -> 235 -[101,1](239, 237) -> 236 -[102,1](240, 240) -> 237 -[102,1](241, 240) -> 238 -[102,1](242, 240) -> 239 -[103,1](243, 243) -> 240 -[103,1](244, 243) -> 241 -[103,1](245, 243) -> 242 -[104,1](246, 246) -> 243 -[104,1](247, 246) -> 244 -[104,1](248, 246) -> 245 -[105,1](249, 249) -> 246 -[105,1](250, 249) -> 247 -[105,1](251, 249) -> 248 -[106,1](252, 252) -> 249 -[106,1](253, 252) -> 250 -[106,1](254, 252) -> 251 -[107,1](255, 255) -> 252 -[107,1](256, 255) -> 253 -[107,1](257, 255) -> 254 -[108,1](258, 258) -> 255 -[108,1](259, 258) -> 256 -[108,1](260, 258) -> 257 -[109,1](261, 261) -> 258 -[109,1](262, 261) -> 259 -[109,1](263, 261) -> 260 -[110,1](264, 264) -> 261 -[110,1](265, 264) -> 262 -[110,1](266, 264) -> 263 -[111,1](267, 267) -> 264 -[111,1](268, 267) -> 265 -[111,1](269, 267) -> 266 -[112,1](270, 270) -> 267 -[112,1](271, 270) -> 268 -[112,1](272, 270) -> 269 -[113,1](273, 273) -> 270 -[113,1](274, 273) -> 271 -[113,1](275, 273) -> 272 -[114,1](276, 276) -> 273 -[114,1](277, 276) -> 274 -[114,1](278, 276) -> 275 -[115,1](279, 279) -> 276 -[115,1](280, 279) -> 277 -[115,1](281, 279) -> 278 -[116,1](282, 282) -> 279 -[116,1](283, 282) -> 280 -[116,1](284, 282) -> 281 -[117,1](285, 285) -> 282 -[117,1](286, 285) -> 283 -[117,1](287, 285) -> 284 -[118,1](288, 288) -> 285 -[118,1](289, 288) -> 286 -[118,1](290, 288) -> 287 -[119,1](291, 291) -> 288 -[119,1](292, 291) -> 289 -[119,1](293, 291) -> 290 -[120,1](294, 294) -> 291 -[120,1](295, 294) -> 292 -[120,1](296, 294) -> 293 -[121,1](297, 297) -> 294 -[121,1](298, 297) -> 295 -[121,1](299, 297) -> 296 -[122,1](300, 300) -> 297 -[122,1](301, 300) -> 298 -[122,1](302, 300) -> 299 -[123,1](303, 303) -> 300 -[123,1](304, 303) -> 301 -[123,1](305, 303) -> 302 -[124,1](306, 306) -> 303 -[124,1](307, 306) -> 304 -[124,1](308, 306) -> 305 -[125,1](309, 309) -> 306 -[125,1](310, 309) -> 307 -[125,1](311, 309) -> 308 -[126,1](312, 312) -> 309 -[126,1](313, 312) -> 310 -[126,1](314, 312) -> 311 -[127,1](315, 315) -> 312 -[127,1](316, 315) -> 313 -[127,1](317, 315) -> 314 -[128,1](318, 318) -> 315 -[128,1](319, 318) -> 316 -[128,1](320, 318) -> 317 -[p1,1] -> 318 -[p2,1] -> 319 -[p3,1] -> 320 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/64/pre.hsl b/benchmarks/all/OEGrover/64/pre.hsl index 46899cad1..88fcdadfd 100644 --- a/benchmarks/all/OEGrover/64/pre.hsl +++ b/benchmarks/all/OEGrover/64/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 31 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 18446744073709551615 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/64/pre.lsta b/benchmarks/all/OEGrover/64/pre.lsta deleted file mode 100644 index 157fc5257..000000000 --- a/benchmarks/all/OEGrover/64/pre.lsta +++ /dev/null @@ -1,331 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 130) -> 127 -[65,1](129, 131) -> 128 -[66,1](132, 132) -> 129 -[66,1](133, 132) -> 130 -[66,1](134, 132) -> 131 -[67,1](135, 135) -> 132 -[67,1](136, 135) -> 133 -[67,1](137, 135) -> 134 -[68,1](138, 138) -> 135 -[68,1](139, 138) -> 136 -[68,1](140, 138) -> 137 -[69,1](141, 141) -> 138 -[69,1](142, 141) -> 139 -[69,1](143, 141) -> 140 -[70,1](144, 144) -> 141 -[70,1](145, 144) -> 142 -[70,1](146, 144) -> 143 -[71,1](147, 147) -> 144 -[71,1](148, 147) -> 145 -[71,1](149, 147) -> 146 -[72,1](150, 150) -> 147 -[72,1](151, 150) -> 148 -[72,1](152, 150) -> 149 -[73,1](153, 153) -> 150 -[73,1](154, 153) -> 151 -[73,1](155, 153) -> 152 -[74,1](156, 156) -> 153 -[74,1](157, 156) -> 154 -[74,1](158, 156) -> 155 -[75,1](159, 159) -> 156 -[75,1](160, 159) -> 157 -[75,1](161, 159) -> 158 -[76,1](162, 162) -> 159 -[76,1](163, 162) -> 160 -[76,1](164, 162) -> 161 -[77,1](165, 165) -> 162 -[77,1](166, 165) -> 163 -[77,1](167, 165) -> 164 -[78,1](168, 168) -> 165 -[78,1](169, 168) -> 166 -[78,1](170, 168) -> 167 -[79,1](171, 171) -> 168 -[79,1](172, 171) -> 169 -[79,1](173, 171) -> 170 -[80,1](174, 174) -> 171 -[80,1](175, 174) -> 172 -[80,1](176, 174) -> 173 -[81,1](177, 177) -> 174 -[81,1](178, 177) -> 175 -[81,1](179, 177) -> 176 -[82,1](180, 180) -> 177 -[82,1](181, 180) -> 178 -[82,1](182, 180) -> 179 -[83,1](183, 183) -> 180 -[83,1](184, 183) -> 181 -[83,1](185, 183) -> 182 -[84,1](186, 186) -> 183 -[84,1](187, 186) -> 184 -[84,1](188, 186) -> 185 -[85,1](189, 189) -> 186 -[85,1](190, 189) -> 187 -[85,1](191, 189) -> 188 -[86,1](192, 192) -> 189 -[86,1](193, 192) -> 190 -[86,1](194, 192) -> 191 -[87,1](195, 195) -> 192 -[87,1](196, 195) -> 193 -[87,1](197, 195) -> 194 -[88,1](198, 198) -> 195 -[88,1](199, 198) -> 196 -[88,1](200, 198) -> 197 -[89,1](201, 201) -> 198 -[89,1](202, 201) -> 199 -[89,1](203, 201) -> 200 -[90,1](204, 204) -> 201 -[90,1](205, 204) -> 202 -[90,1](206, 204) -> 203 -[91,1](207, 207) -> 204 -[91,1](208, 207) -> 205 -[91,1](209, 207) -> 206 -[92,1](210, 210) -> 207 -[92,1](211, 210) -> 208 -[92,1](212, 210) -> 209 -[93,1](213, 213) -> 210 -[93,1](214, 213) -> 211 -[93,1](215, 213) -> 212 -[94,1](216, 216) -> 213 -[94,1](217, 216) -> 214 -[94,1](218, 216) -> 215 -[95,1](219, 219) -> 216 -[95,1](220, 219) -> 217 -[95,1](221, 219) -> 218 -[96,1](222, 222) -> 219 -[96,1](223, 222) -> 220 -[96,1](224, 222) -> 221 -[97,1](225, 225) -> 222 -[97,1](226, 225) -> 223 -[97,1](227, 225) -> 224 -[98,1](228, 228) -> 225 -[98,1](229, 228) -> 226 -[98,1](230, 228) -> 227 -[99,1](231, 231) -> 228 -[99,1](232, 231) -> 229 -[99,1](233, 231) -> 230 -[100,1](234, 234) -> 231 -[100,1](235, 234) -> 232 -[100,1](236, 234) -> 233 -[101,1](237, 237) -> 234 -[101,1](238, 237) -> 235 -[101,1](239, 237) -> 236 -[102,1](240, 240) -> 237 -[102,1](241, 240) -> 238 -[102,1](242, 240) -> 239 -[103,1](243, 243) -> 240 -[103,1](244, 243) -> 241 -[103,1](245, 243) -> 242 -[104,1](246, 246) -> 243 -[104,1](247, 246) -> 244 -[104,1](248, 246) -> 245 -[105,1](249, 249) -> 246 -[105,1](250, 249) -> 247 -[105,1](251, 249) -> 248 -[106,1](252, 252) -> 249 -[106,1](253, 252) -> 250 -[106,1](254, 252) -> 251 -[107,1](255, 255) -> 252 -[107,1](256, 255) -> 253 -[107,1](257, 255) -> 254 -[108,1](258, 258) -> 255 -[108,1](259, 258) -> 256 -[108,1](260, 258) -> 257 -[109,1](261, 261) -> 258 -[109,1](262, 261) -> 259 -[109,1](263, 261) -> 260 -[110,1](264, 264) -> 261 -[110,1](265, 264) -> 262 -[110,1](266, 264) -> 263 -[111,1](267, 267) -> 264 -[111,1](268, 267) -> 265 -[111,1](269, 267) -> 266 -[112,1](270, 270) -> 267 -[112,1](271, 270) -> 268 -[112,1](272, 270) -> 269 -[113,1](273, 273) -> 270 -[113,1](274, 273) -> 271 -[113,1](275, 273) -> 272 -[114,1](276, 276) -> 273 -[114,1](277, 276) -> 274 -[114,1](278, 276) -> 275 -[115,1](279, 279) -> 276 -[115,1](280, 279) -> 277 -[115,1](281, 279) -> 278 -[116,1](282, 282) -> 279 -[116,1](283, 282) -> 280 -[116,1](284, 282) -> 281 -[117,1](285, 285) -> 282 -[117,1](286, 285) -> 283 -[117,1](287, 285) -> 284 -[118,1](288, 288) -> 285 -[118,1](289, 288) -> 286 -[118,1](290, 288) -> 287 -[119,1](291, 291) -> 288 -[119,1](292, 291) -> 289 -[119,1](293, 291) -> 290 -[120,1](294, 294) -> 291 -[120,1](295, 294) -> 292 -[120,1](296, 294) -> 293 -[121,1](297, 297) -> 294 -[121,1](298, 297) -> 295 -[121,1](299, 297) -> 296 -[122,1](300, 300) -> 297 -[122,1](301, 300) -> 298 -[122,1](302, 300) -> 299 -[123,1](303, 303) -> 300 -[123,1](304, 303) -> 301 -[123,1](305, 303) -> 302 -[124,1](306, 306) -> 303 -[124,1](307, 306) -> 304 -[124,1](308, 306) -> 305 -[125,1](309, 309) -> 306 -[125,1](310, 309) -> 307 -[125,1](311, 309) -> 308 -[126,1](312, 312) -> 309 -[126,1](313, 312) -> 310 -[126,1](314, 312) -> 311 -[127,1](315, 315) -> 312 -[127,1](316, 315) -> 313 -[127,1](317, 315) -> 314 -[128,1](318, 318) -> 315 -[128,1](319, 318) -> 316 -[128,1](320, 318) -> 317 -[c0,1] -> 318 -[a,1] -> 319 -[b,1] -> 320 -Constraints -18446744073709551615 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/65/circuit.qasm b/benchmarks/all/OEGrover/65/circuit.qasm index 85ac22f63..ba0f3846d 100644 --- a/benchmarks/all/OEGrover/65/circuit.qasm +++ b/benchmarks/all/OEGrover/65/circuit.qasm @@ -1,167 +1,167 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[130]; +qreg qubits[129]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -ccx qubits[0], qubits[1], qubits[66]; -ccx qubits[2], qubits[66], qubits[67]; -ccx qubits[3], qubits[67], qubits[68]; -ccx qubits[4], qubits[68], qubits[69]; -ccx qubits[5], qubits[69], qubits[70]; -ccx qubits[6], qubits[70], qubits[71]; -ccx qubits[7], qubits[71], qubits[72]; -ccx qubits[8], qubits[72], qubits[73]; -ccx qubits[9], qubits[73], qubits[74]; -ccx qubits[10], qubits[74], qubits[75]; -ccx qubits[11], qubits[75], qubits[76]; -ccx qubits[12], qubits[76], qubits[77]; -ccx qubits[13], qubits[77], qubits[78]; -ccx qubits[14], qubits[78], qubits[79]; -ccx qubits[15], qubits[79], qubits[80]; -ccx qubits[16], qubits[80], qubits[81]; -ccx qubits[17], qubits[81], qubits[82]; -ccx qubits[18], qubits[82], qubits[83]; -ccx qubits[19], qubits[83], qubits[84]; -ccx qubits[20], qubits[84], qubits[85]; -ccx qubits[21], qubits[85], qubits[86]; -ccx qubits[22], qubits[86], qubits[87]; -ccx qubits[23], qubits[87], qubits[88]; -ccx qubits[24], qubits[88], qubits[89]; -ccx qubits[25], qubits[89], qubits[90]; -ccx qubits[26], qubits[90], qubits[91]; -ccx qubits[27], qubits[91], qubits[92]; -ccx qubits[28], qubits[92], qubits[93]; -ccx qubits[29], qubits[93], qubits[94]; -ccx qubits[30], qubits[94], qubits[95]; -ccx qubits[31], qubits[95], qubits[96]; -ccx qubits[32], qubits[96], qubits[97]; -ccx qubits[33], qubits[97], qubits[98]; -ccx qubits[34], qubits[98], qubits[99]; -ccx qubits[35], qubits[99], qubits[100]; -ccx qubits[36], qubits[100], qubits[101]; -ccx qubits[37], qubits[101], qubits[102]; -ccx qubits[38], qubits[102], qubits[103]; -ccx qubits[39], qubits[103], qubits[104]; -ccx qubits[40], qubits[104], qubits[105]; -ccx qubits[41], qubits[105], qubits[106]; -ccx qubits[42], qubits[106], qubits[107]; -ccx qubits[43], qubits[107], qubits[108]; -ccx qubits[44], qubits[108], qubits[109]; -ccx qubits[45], qubits[109], qubits[110]; -ccx qubits[46], qubits[110], qubits[111]; -ccx qubits[47], qubits[111], qubits[112]; -ccx qubits[48], qubits[112], qubits[113]; -ccx qubits[49], qubits[113], qubits[114]; -ccx qubits[50], qubits[114], qubits[115]; -ccx qubits[51], qubits[115], qubits[116]; -ccx qubits[52], qubits[116], qubits[117]; -ccx qubits[53], qubits[117], qubits[118]; -ccx qubits[54], qubits[118], qubits[119]; -ccx qubits[55], qubits[119], qubits[120]; -ccx qubits[56], qubits[120], qubits[121]; -ccx qubits[57], qubits[121], qubits[122]; -ccx qubits[58], qubits[122], qubits[123]; -ccx qubits[59], qubits[123], qubits[124]; -ccx qubits[60], qubits[124], qubits[125]; -ccx qubits[61], qubits[125], qubits[126]; -ccx qubits[62], qubits[126], qubits[127]; -ccx qubits[63], qubits[127], qubits[128]; -cz qubits[128], qubits[64]; -ccx qubits[63], qubits[127], qubits[128]; -ccx qubits[62], qubits[126], qubits[127]; -ccx qubits[61], qubits[125], qubits[126]; -ccx qubits[60], qubits[124], qubits[125]; -ccx qubits[59], qubits[123], qubits[124]; -ccx qubits[58], qubits[122], qubits[123]; -ccx qubits[57], qubits[121], qubits[122]; -ccx qubits[56], qubits[120], qubits[121]; -ccx qubits[55], qubits[119], qubits[120]; -ccx qubits[54], qubits[118], qubits[119]; -ccx qubits[53], qubits[117], qubits[118]; -ccx qubits[52], qubits[116], qubits[117]; -ccx qubits[51], qubits[115], qubits[116]; -ccx qubits[50], qubits[114], qubits[115]; -ccx qubits[49], qubits[113], qubits[114]; -ccx qubits[48], qubits[112], qubits[113]; -ccx qubits[47], qubits[111], qubits[112]; -ccx qubits[46], qubits[110], qubits[111]; -ccx qubits[45], qubits[109], qubits[110]; -ccx qubits[44], qubits[108], qubits[109]; -ccx qubits[43], qubits[107], qubits[108]; -ccx qubits[42], qubits[106], qubits[107]; -ccx qubits[41], qubits[105], qubits[106]; -ccx qubits[40], qubits[104], qubits[105]; -ccx qubits[39], qubits[103], qubits[104]; -ccx qubits[38], qubits[102], qubits[103]; -ccx qubits[37], qubits[101], qubits[102]; -ccx qubits[36], qubits[100], qubits[101]; -ccx qubits[35], qubits[99], qubits[100]; -ccx qubits[34], qubits[98], qubits[99]; -ccx qubits[33], qubits[97], qubits[98]; -ccx qubits[32], qubits[96], qubits[97]; -ccx qubits[31], qubits[95], qubits[96]; -ccx qubits[30], qubits[94], qubits[95]; -ccx qubits[29], qubits[93], qubits[94]; -ccx qubits[28], qubits[92], qubits[93]; -ccx qubits[27], qubits[91], qubits[92]; -ccx qubits[26], qubits[90], qubits[91]; -ccx qubits[25], qubits[89], qubits[90]; -ccx qubits[24], qubits[88], qubits[89]; -ccx qubits[23], qubits[87], qubits[88]; -ccx qubits[22], qubits[86], qubits[87]; -ccx qubits[21], qubits[85], qubits[86]; -ccx qubits[20], qubits[84], qubits[85]; -ccx qubits[19], qubits[83], qubits[84]; -ccx qubits[18], qubits[82], qubits[83]; -ccx qubits[17], qubits[81], qubits[82]; -ccx qubits[16], qubits[80], qubits[81]; -ccx qubits[15], qubits[79], qubits[80]; -ccx qubits[14], qubits[78], qubits[79]; -ccx qubits[13], qubits[77], qubits[78]; -ccx qubits[12], qubits[76], qubits[77]; -ccx qubits[11], qubits[75], qubits[76]; -ccx qubits[10], qubits[74], qubits[75]; -ccx qubits[9], qubits[73], qubits[74]; -ccx qubits[8], qubits[72], qubits[73]; -ccx qubits[7], qubits[71], qubits[72]; -ccx qubits[6], qubits[70], qubits[71]; -ccx qubits[5], qubits[69], qubits[70]; -ccx qubits[4], qubits[68], qubits[69]; -ccx qubits[3], qubits[67], qubits[68]; -ccx qubits[2], qubits[66], qubits[67]; -ccx qubits[0], qubits[1], qubits[66]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +cz qubits[126], qubits[127]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -197,389 +197,389 @@ x qubits[62]; x qubits[64]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; -ccx qubits[0], qubits[1], qubits[66]; -ccx qubits[2], qubits[66], qubits[67]; -ccx qubits[3], qubits[67], qubits[68]; -ccx qubits[4], qubits[68], qubits[69]; -ccx qubits[5], qubits[69], qubits[70]; -ccx qubits[6], qubits[70], qubits[71]; -ccx qubits[7], qubits[71], qubits[72]; -ccx qubits[8], qubits[72], qubits[73]; -ccx qubits[9], qubits[73], qubits[74]; -ccx qubits[10], qubits[74], qubits[75]; -ccx qubits[11], qubits[75], qubits[76]; -ccx qubits[12], qubits[76], qubits[77]; -ccx qubits[13], qubits[77], qubits[78]; -ccx qubits[14], qubits[78], qubits[79]; -ccx qubits[15], qubits[79], qubits[80]; -ccx qubits[16], qubits[80], qubits[81]; -ccx qubits[17], qubits[81], qubits[82]; -ccx qubits[18], qubits[82], qubits[83]; -ccx qubits[19], qubits[83], qubits[84]; -ccx qubits[20], qubits[84], qubits[85]; -ccx qubits[21], qubits[85], qubits[86]; -ccx qubits[22], qubits[86], qubits[87]; -ccx qubits[23], qubits[87], qubits[88]; -ccx qubits[24], qubits[88], qubits[89]; -ccx qubits[25], qubits[89], qubits[90]; -ccx qubits[26], qubits[90], qubits[91]; -ccx qubits[27], qubits[91], qubits[92]; -ccx qubits[28], qubits[92], qubits[93]; -ccx qubits[29], qubits[93], qubits[94]; -ccx qubits[30], qubits[94], qubits[95]; -ccx qubits[31], qubits[95], qubits[96]; -ccx qubits[32], qubits[96], qubits[97]; -ccx qubits[33], qubits[97], qubits[98]; -ccx qubits[34], qubits[98], qubits[99]; -ccx qubits[35], qubits[99], qubits[100]; -ccx qubits[36], qubits[100], qubits[101]; -ccx qubits[37], qubits[101], qubits[102]; -ccx qubits[38], qubits[102], qubits[103]; -ccx qubits[39], qubits[103], qubits[104]; -ccx qubits[40], qubits[104], qubits[105]; -ccx qubits[41], qubits[105], qubits[106]; -ccx qubits[42], qubits[106], qubits[107]; -ccx qubits[43], qubits[107], qubits[108]; -ccx qubits[44], qubits[108], qubits[109]; -ccx qubits[45], qubits[109], qubits[110]; -ccx qubits[46], qubits[110], qubits[111]; -ccx qubits[47], qubits[111], qubits[112]; -ccx qubits[48], qubits[112], qubits[113]; -ccx qubits[49], qubits[113], qubits[114]; -ccx qubits[50], qubits[114], qubits[115]; -ccx qubits[51], qubits[115], qubits[116]; -ccx qubits[52], qubits[116], qubits[117]; -ccx qubits[53], qubits[117], qubits[118]; -ccx qubits[54], qubits[118], qubits[119]; -ccx qubits[55], qubits[119], qubits[120]; -ccx qubits[56], qubits[120], qubits[121]; -ccx qubits[57], qubits[121], qubits[122]; -ccx qubits[58], qubits[122], qubits[123]; -ccx qubits[59], qubits[123], qubits[124]; -ccx qubits[60], qubits[124], qubits[125]; -ccx qubits[61], qubits[125], qubits[126]; -ccx qubits[62], qubits[126], qubits[127]; -ccx qubits[63], qubits[127], qubits[128]; -cz qubits[128], qubits[64]; -ccx qubits[63], qubits[127], qubits[128]; -ccx qubits[62], qubits[126], qubits[127]; -ccx qubits[61], qubits[125], qubits[126]; -ccx qubits[60], qubits[124], qubits[125]; -ccx qubits[59], qubits[123], qubits[124]; -ccx qubits[58], qubits[122], qubits[123]; -ccx qubits[57], qubits[121], qubits[122]; -ccx qubits[56], qubits[120], qubits[121]; -ccx qubits[55], qubits[119], qubits[120]; -ccx qubits[54], qubits[118], qubits[119]; -ccx qubits[53], qubits[117], qubits[118]; -ccx qubits[52], qubits[116], qubits[117]; -ccx qubits[51], qubits[115], qubits[116]; -ccx qubits[50], qubits[114], qubits[115]; -ccx qubits[49], qubits[113], qubits[114]; -ccx qubits[48], qubits[112], qubits[113]; -ccx qubits[47], qubits[111], qubits[112]; -ccx qubits[46], qubits[110], qubits[111]; -ccx qubits[45], qubits[109], qubits[110]; -ccx qubits[44], qubits[108], qubits[109]; -ccx qubits[43], qubits[107], qubits[108]; -ccx qubits[42], qubits[106], qubits[107]; -ccx qubits[41], qubits[105], qubits[106]; -ccx qubits[40], qubits[104], qubits[105]; -ccx qubits[39], qubits[103], qubits[104]; -ccx qubits[38], qubits[102], qubits[103]; -ccx qubits[37], qubits[101], qubits[102]; -ccx qubits[36], qubits[100], qubits[101]; -ccx qubits[35], qubits[99], qubits[100]; -ccx qubits[34], qubits[98], qubits[99]; -ccx qubits[33], qubits[97], qubits[98]; -ccx qubits[32], qubits[96], qubits[97]; -ccx qubits[31], qubits[95], qubits[96]; -ccx qubits[30], qubits[94], qubits[95]; -ccx qubits[29], qubits[93], qubits[94]; -ccx qubits[28], qubits[92], qubits[93]; -ccx qubits[27], qubits[91], qubits[92]; -ccx qubits[26], qubits[90], qubits[91]; -ccx qubits[25], qubits[89], qubits[90]; -ccx qubits[24], qubits[88], qubits[89]; -ccx qubits[23], qubits[87], qubits[88]; -ccx qubits[22], qubits[86], qubits[87]; -ccx qubits[21], qubits[85], qubits[86]; -ccx qubits[20], qubits[84], qubits[85]; -ccx qubits[19], qubits[83], qubits[84]; -ccx qubits[18], qubits[82], qubits[83]; -ccx qubits[17], qubits[81], qubits[82]; -ccx qubits[16], qubits[80], qubits[81]; -ccx qubits[15], qubits[79], qubits[80]; -ccx qubits[14], qubits[78], qubits[79]; -ccx qubits[13], qubits[77], qubits[78]; -ccx qubits[12], qubits[76], qubits[77]; -ccx qubits[11], qubits[75], qubits[76]; -ccx qubits[10], qubits[74], qubits[75]; -ccx qubits[9], qubits[73], qubits[74]; -ccx qubits[8], qubits[72], qubits[73]; -ccx qubits[7], qubits[71], qubits[72]; -ccx qubits[6], qubits[70], qubits[71]; -ccx qubits[5], qubits[69], qubits[70]; -ccx qubits[4], qubits[68], qubits[69]; -ccx qubits[3], qubits[67], qubits[68]; -ccx qubits[2], qubits[66], qubits[67]; -ccx qubits[0], qubits[1], qubits[66]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +cz qubits[126], qubits[127]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; +x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; -z qubits[65]; +h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +z qubits[128]; diff --git a/benchmarks/all/OEGrover/65/post.hsl b/benchmarks/all/OEGrover/65/post.hsl index 8f0a7ecb6..10ae789cf 100644 --- a/benchmarks/all/OEGrover/65/post.hsl +++ b/benchmarks/all/OEGrover/65/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 31 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/65/post.lsta b/benchmarks/all/OEGrover/65/post.lsta deleted file mode 100644 index cd9b26607..000000000 --- a/benchmarks/all/OEGrover/65/post.lsta +++ /dev/null @@ -1,332 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 132) -> 129 -[66,1](131, 133) -> 130 -[67,1](134, 134) -> 131 -[67,1](135, 134) -> 132 -[67,1](136, 134) -> 133 -[68,1](137, 137) -> 134 -[68,1](138, 137) -> 135 -[68,1](139, 137) -> 136 -[69,1](140, 140) -> 137 -[69,1](141, 140) -> 138 -[69,1](142, 140) -> 139 -[70,1](143, 143) -> 140 -[70,1](144, 143) -> 141 -[70,1](145, 143) -> 142 -[71,1](146, 146) -> 143 -[71,1](147, 146) -> 144 -[71,1](148, 146) -> 145 -[72,1](149, 149) -> 146 -[72,1](150, 149) -> 147 -[72,1](151, 149) -> 148 -[73,1](152, 152) -> 149 -[73,1](153, 152) -> 150 -[73,1](154, 152) -> 151 -[74,1](155, 155) -> 152 -[74,1](156, 155) -> 153 -[74,1](157, 155) -> 154 -[75,1](158, 158) -> 155 -[75,1](159, 158) -> 156 -[75,1](160, 158) -> 157 -[76,1](161, 161) -> 158 -[76,1](162, 161) -> 159 -[76,1](163, 161) -> 160 -[77,1](164, 164) -> 161 -[77,1](165, 164) -> 162 -[77,1](166, 164) -> 163 -[78,1](167, 167) -> 164 -[78,1](168, 167) -> 165 -[78,1](169, 167) -> 166 -[79,1](170, 170) -> 167 -[79,1](171, 170) -> 168 -[79,1](172, 170) -> 169 -[80,1](173, 173) -> 170 -[80,1](174, 173) -> 171 -[80,1](175, 173) -> 172 -[81,1](176, 176) -> 173 -[81,1](177, 176) -> 174 -[81,1](178, 176) -> 175 -[82,1](179, 179) -> 176 -[82,1](180, 179) -> 177 -[82,1](181, 179) -> 178 -[83,1](182, 182) -> 179 -[83,1](183, 182) -> 180 -[83,1](184, 182) -> 181 -[84,1](185, 185) -> 182 -[84,1](186, 185) -> 183 -[84,1](187, 185) -> 184 -[85,1](188, 188) -> 185 -[85,1](189, 188) -> 186 -[85,1](190, 188) -> 187 -[86,1](191, 191) -> 188 -[86,1](192, 191) -> 189 -[86,1](193, 191) -> 190 -[87,1](194, 194) -> 191 -[87,1](195, 194) -> 192 -[87,1](196, 194) -> 193 -[88,1](197, 197) -> 194 -[88,1](198, 197) -> 195 -[88,1](199, 197) -> 196 -[89,1](200, 200) -> 197 -[89,1](201, 200) -> 198 -[89,1](202, 200) -> 199 -[90,1](203, 203) -> 200 -[90,1](204, 203) -> 201 -[90,1](205, 203) -> 202 -[91,1](206, 206) -> 203 -[91,1](207, 206) -> 204 -[91,1](208, 206) -> 205 -[92,1](209, 209) -> 206 -[92,1](210, 209) -> 207 -[92,1](211, 209) -> 208 -[93,1](212, 212) -> 209 -[93,1](213, 212) -> 210 -[93,1](214, 212) -> 211 -[94,1](215, 215) -> 212 -[94,1](216, 215) -> 213 -[94,1](217, 215) -> 214 -[95,1](218, 218) -> 215 -[95,1](219, 218) -> 216 -[95,1](220, 218) -> 217 -[96,1](221, 221) -> 218 -[96,1](222, 221) -> 219 -[96,1](223, 221) -> 220 -[97,1](224, 224) -> 221 -[97,1](225, 224) -> 222 -[97,1](226, 224) -> 223 -[98,1](227, 227) -> 224 -[98,1](228, 227) -> 225 -[98,1](229, 227) -> 226 -[99,1](230, 230) -> 227 -[99,1](231, 230) -> 228 -[99,1](232, 230) -> 229 -[100,1](233, 233) -> 230 -[100,1](234, 233) -> 231 -[100,1](235, 233) -> 232 -[101,1](236, 236) -> 233 -[101,1](237, 236) -> 234 -[101,1](238, 236) -> 235 -[102,1](239, 239) -> 236 -[102,1](240, 239) -> 237 -[102,1](241, 239) -> 238 -[103,1](242, 242) -> 239 -[103,1](243, 242) -> 240 -[103,1](244, 242) -> 241 -[104,1](245, 245) -> 242 -[104,1](246, 245) -> 243 -[104,1](247, 245) -> 244 -[105,1](248, 248) -> 245 -[105,1](249, 248) -> 246 -[105,1](250, 248) -> 247 -[106,1](251, 251) -> 248 -[106,1](252, 251) -> 249 -[106,1](253, 251) -> 250 -[107,1](254, 254) -> 251 -[107,1](255, 254) -> 252 -[107,1](256, 254) -> 253 -[108,1](257, 257) -> 254 -[108,1](258, 257) -> 255 -[108,1](259, 257) -> 256 -[109,1](260, 260) -> 257 -[109,1](261, 260) -> 258 -[109,1](262, 260) -> 259 -[110,1](263, 263) -> 260 -[110,1](264, 263) -> 261 -[110,1](265, 263) -> 262 -[111,1](266, 266) -> 263 -[111,1](267, 266) -> 264 -[111,1](268, 266) -> 265 -[112,1](269, 269) -> 266 -[112,1](270, 269) -> 267 -[112,1](271, 269) -> 268 -[113,1](272, 272) -> 269 -[113,1](273, 272) -> 270 -[113,1](274, 272) -> 271 -[114,1](275, 275) -> 272 -[114,1](276, 275) -> 273 -[114,1](277, 275) -> 274 -[115,1](278, 278) -> 275 -[115,1](279, 278) -> 276 -[115,1](280, 278) -> 277 -[116,1](281, 281) -> 278 -[116,1](282, 281) -> 279 -[116,1](283, 281) -> 280 -[117,1](284, 284) -> 281 -[117,1](285, 284) -> 282 -[117,1](286, 284) -> 283 -[118,1](287, 287) -> 284 -[118,1](288, 287) -> 285 -[118,1](289, 287) -> 286 -[119,1](290, 290) -> 287 -[119,1](291, 290) -> 288 -[119,1](292, 290) -> 289 -[120,1](293, 293) -> 290 -[120,1](294, 293) -> 291 -[120,1](295, 293) -> 292 -[121,1](296, 296) -> 293 -[121,1](297, 296) -> 294 -[121,1](298, 296) -> 295 -[122,1](299, 299) -> 296 -[122,1](300, 299) -> 297 -[122,1](301, 299) -> 298 -[123,1](302, 302) -> 299 -[123,1](303, 302) -> 300 -[123,1](304, 302) -> 301 -[124,1](305, 305) -> 302 -[124,1](306, 305) -> 303 -[124,1](307, 305) -> 304 -[125,1](308, 308) -> 305 -[125,1](309, 308) -> 306 -[125,1](310, 308) -> 307 -[126,1](311, 311) -> 308 -[126,1](312, 311) -> 309 -[126,1](313, 311) -> 310 -[127,1](314, 314) -> 311 -[127,1](315, 314) -> 312 -[127,1](316, 314) -> 313 -[128,1](317, 317) -> 314 -[128,1](318, 317) -> 315 -[128,1](319, 317) -> 316 -[129,1](320, 320) -> 317 -[129,1](321, 320) -> 318 -[129,1](322, 320) -> 319 -[130,1](323, 323) -> 320 -[130,1](324, 323) -> 321 -[130,1](325, 323) -> 322 -[p1,1] -> 323 -[p2,1] -> 324 -[p3,1] -> 325 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/65/pre.hsl b/benchmarks/all/OEGrover/65/pre.hsl index a9d1fa59f..c9a3d0158 100644 --- a/benchmarks/all/OEGrover/65/pre.hsl +++ b/benchmarks/all/OEGrover/65/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 31 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 36893488147419103231 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/65/pre.lsta b/benchmarks/all/OEGrover/65/pre.lsta deleted file mode 100644 index 5d5f969a9..000000000 --- a/benchmarks/all/OEGrover/65/pre.lsta +++ /dev/null @@ -1,336 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 132) -> 129 -[66,1](131, 133) -> 130 -[67,1](134, 134) -> 131 -[67,1](135, 134) -> 132 -[67,1](136, 134) -> 133 -[68,1](137, 137) -> 134 -[68,1](138, 137) -> 135 -[68,1](139, 137) -> 136 -[69,1](140, 140) -> 137 -[69,1](141, 140) -> 138 -[69,1](142, 140) -> 139 -[70,1](143, 143) -> 140 -[70,1](144, 143) -> 141 -[70,1](145, 143) -> 142 -[71,1](146, 146) -> 143 -[71,1](147, 146) -> 144 -[71,1](148, 146) -> 145 -[72,1](149, 149) -> 146 -[72,1](150, 149) -> 147 -[72,1](151, 149) -> 148 -[73,1](152, 152) -> 149 -[73,1](153, 152) -> 150 -[73,1](154, 152) -> 151 -[74,1](155, 155) -> 152 -[74,1](156, 155) -> 153 -[74,1](157, 155) -> 154 -[75,1](158, 158) -> 155 -[75,1](159, 158) -> 156 -[75,1](160, 158) -> 157 -[76,1](161, 161) -> 158 -[76,1](162, 161) -> 159 -[76,1](163, 161) -> 160 -[77,1](164, 164) -> 161 -[77,1](165, 164) -> 162 -[77,1](166, 164) -> 163 -[78,1](167, 167) -> 164 -[78,1](168, 167) -> 165 -[78,1](169, 167) -> 166 -[79,1](170, 170) -> 167 -[79,1](171, 170) -> 168 -[79,1](172, 170) -> 169 -[80,1](173, 173) -> 170 -[80,1](174, 173) -> 171 -[80,1](175, 173) -> 172 -[81,1](176, 176) -> 173 -[81,1](177, 176) -> 174 -[81,1](178, 176) -> 175 -[82,1](179, 179) -> 176 -[82,1](180, 179) -> 177 -[82,1](181, 179) -> 178 -[83,1](182, 182) -> 179 -[83,1](183, 182) -> 180 -[83,1](184, 182) -> 181 -[84,1](185, 185) -> 182 -[84,1](186, 185) -> 183 -[84,1](187, 185) -> 184 -[85,1](188, 188) -> 185 -[85,1](189, 188) -> 186 -[85,1](190, 188) -> 187 -[86,1](191, 191) -> 188 -[86,1](192, 191) -> 189 -[86,1](193, 191) -> 190 -[87,1](194, 194) -> 191 -[87,1](195, 194) -> 192 -[87,1](196, 194) -> 193 -[88,1](197, 197) -> 194 -[88,1](198, 197) -> 195 -[88,1](199, 197) -> 196 -[89,1](200, 200) -> 197 -[89,1](201, 200) -> 198 -[89,1](202, 200) -> 199 -[90,1](203, 203) -> 200 -[90,1](204, 203) -> 201 -[90,1](205, 203) -> 202 -[91,1](206, 206) -> 203 -[91,1](207, 206) -> 204 -[91,1](208, 206) -> 205 -[92,1](209, 209) -> 206 -[92,1](210, 209) -> 207 -[92,1](211, 209) -> 208 -[93,1](212, 212) -> 209 -[93,1](213, 212) -> 210 -[93,1](214, 212) -> 211 -[94,1](215, 215) -> 212 -[94,1](216, 215) -> 213 -[94,1](217, 215) -> 214 -[95,1](218, 218) -> 215 -[95,1](219, 218) -> 216 -[95,1](220, 218) -> 217 -[96,1](221, 221) -> 218 -[96,1](222, 221) -> 219 -[96,1](223, 221) -> 220 -[97,1](224, 224) -> 221 -[97,1](225, 224) -> 222 -[97,1](226, 224) -> 223 -[98,1](227, 227) -> 224 -[98,1](228, 227) -> 225 -[98,1](229, 227) -> 226 -[99,1](230, 230) -> 227 -[99,1](231, 230) -> 228 -[99,1](232, 230) -> 229 -[100,1](233, 233) -> 230 -[100,1](234, 233) -> 231 -[100,1](235, 233) -> 232 -[101,1](236, 236) -> 233 -[101,1](237, 236) -> 234 -[101,1](238, 236) -> 235 -[102,1](239, 239) -> 236 -[102,1](240, 239) -> 237 -[102,1](241, 239) -> 238 -[103,1](242, 242) -> 239 -[103,1](243, 242) -> 240 -[103,1](244, 242) -> 241 -[104,1](245, 245) -> 242 -[104,1](246, 245) -> 243 -[104,1](247, 245) -> 244 -[105,1](248, 248) -> 245 -[105,1](249, 248) -> 246 -[105,1](250, 248) -> 247 -[106,1](251, 251) -> 248 -[106,1](252, 251) -> 249 -[106,1](253, 251) -> 250 -[107,1](254, 254) -> 251 -[107,1](255, 254) -> 252 -[107,1](256, 254) -> 253 -[108,1](257, 257) -> 254 -[108,1](258, 257) -> 255 -[108,1](259, 257) -> 256 -[109,1](260, 260) -> 257 -[109,1](261, 260) -> 258 -[109,1](262, 260) -> 259 -[110,1](263, 263) -> 260 -[110,1](264, 263) -> 261 -[110,1](265, 263) -> 262 -[111,1](266, 266) -> 263 -[111,1](267, 266) -> 264 -[111,1](268, 266) -> 265 -[112,1](269, 269) -> 266 -[112,1](270, 269) -> 267 -[112,1](271, 269) -> 268 -[113,1](272, 272) -> 269 -[113,1](273, 272) -> 270 -[113,1](274, 272) -> 271 -[114,1](275, 275) -> 272 -[114,1](276, 275) -> 273 -[114,1](277, 275) -> 274 -[115,1](278, 278) -> 275 -[115,1](279, 278) -> 276 -[115,1](280, 278) -> 277 -[116,1](281, 281) -> 278 -[116,1](282, 281) -> 279 -[116,1](283, 281) -> 280 -[117,1](284, 284) -> 281 -[117,1](285, 284) -> 282 -[117,1](286, 284) -> 283 -[118,1](287, 287) -> 284 -[118,1](288, 287) -> 285 -[118,1](289, 287) -> 286 -[119,1](290, 290) -> 287 -[119,1](291, 290) -> 288 -[119,1](292, 290) -> 289 -[120,1](293, 293) -> 290 -[120,1](294, 293) -> 291 -[120,1](295, 293) -> 292 -[121,1](296, 296) -> 293 -[121,1](297, 296) -> 294 -[121,1](298, 296) -> 295 -[122,1](299, 299) -> 296 -[122,1](300, 299) -> 297 -[122,1](301, 299) -> 298 -[123,1](302, 302) -> 299 -[123,1](303, 302) -> 300 -[123,1](304, 302) -> 301 -[124,1](305, 305) -> 302 -[124,1](306, 305) -> 303 -[124,1](307, 305) -> 304 -[125,1](308, 308) -> 305 -[125,1](309, 308) -> 306 -[125,1](310, 308) -> 307 -[126,1](311, 311) -> 308 -[126,1](312, 311) -> 309 -[126,1](313, 311) -> 310 -[127,1](314, 314) -> 311 -[127,1](315, 314) -> 312 -[127,1](316, 314) -> 313 -[128,1](317, 317) -> 314 -[128,1](318, 317) -> 315 -[128,1](319, 317) -> 316 -[129,1](320, 320) -> 317 -[129,1](321, 320) -> 318 -[129,1](322, 320) -> 319 -[130,1](323, 323) -> 320 -[130,1](324, 323) -> 321 -[130,1](325, 323) -> 322 -[c0,1] -> 323 -[a,1] -> 324 -[b,1] -> 325 -Constraints -36893488147419103231 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/66/circuit.qasm b/benchmarks/all/OEGrover/66/circuit.qasm index da30e884e..ecea4fd7e 100644 --- a/benchmarks/all/OEGrover/66/circuit.qasm +++ b/benchmarks/all/OEGrover/66/circuit.qasm @@ -1,169 +1,169 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[132]; +qreg qubits[131]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -ccx qubits[0], qubits[1], qubits[67]; -ccx qubits[2], qubits[67], qubits[68]; -ccx qubits[3], qubits[68], qubits[69]; -ccx qubits[4], qubits[69], qubits[70]; -ccx qubits[5], qubits[70], qubits[71]; -ccx qubits[6], qubits[71], qubits[72]; -ccx qubits[7], qubits[72], qubits[73]; -ccx qubits[8], qubits[73], qubits[74]; -ccx qubits[9], qubits[74], qubits[75]; -ccx qubits[10], qubits[75], qubits[76]; -ccx qubits[11], qubits[76], qubits[77]; -ccx qubits[12], qubits[77], qubits[78]; -ccx qubits[13], qubits[78], qubits[79]; -ccx qubits[14], qubits[79], qubits[80]; -ccx qubits[15], qubits[80], qubits[81]; -ccx qubits[16], qubits[81], qubits[82]; -ccx qubits[17], qubits[82], qubits[83]; -ccx qubits[18], qubits[83], qubits[84]; -ccx qubits[19], qubits[84], qubits[85]; -ccx qubits[20], qubits[85], qubits[86]; -ccx qubits[21], qubits[86], qubits[87]; -ccx qubits[22], qubits[87], qubits[88]; -ccx qubits[23], qubits[88], qubits[89]; -ccx qubits[24], qubits[89], qubits[90]; -ccx qubits[25], qubits[90], qubits[91]; -ccx qubits[26], qubits[91], qubits[92]; -ccx qubits[27], qubits[92], qubits[93]; -ccx qubits[28], qubits[93], qubits[94]; -ccx qubits[29], qubits[94], qubits[95]; -ccx qubits[30], qubits[95], qubits[96]; -ccx qubits[31], qubits[96], qubits[97]; -ccx qubits[32], qubits[97], qubits[98]; -ccx qubits[33], qubits[98], qubits[99]; -ccx qubits[34], qubits[99], qubits[100]; -ccx qubits[35], qubits[100], qubits[101]; -ccx qubits[36], qubits[101], qubits[102]; -ccx qubits[37], qubits[102], qubits[103]; -ccx qubits[38], qubits[103], qubits[104]; -ccx qubits[39], qubits[104], qubits[105]; -ccx qubits[40], qubits[105], qubits[106]; -ccx qubits[41], qubits[106], qubits[107]; -ccx qubits[42], qubits[107], qubits[108]; -ccx qubits[43], qubits[108], qubits[109]; -ccx qubits[44], qubits[109], qubits[110]; -ccx qubits[45], qubits[110], qubits[111]; -ccx qubits[46], qubits[111], qubits[112]; -ccx qubits[47], qubits[112], qubits[113]; -ccx qubits[48], qubits[113], qubits[114]; -ccx qubits[49], qubits[114], qubits[115]; -ccx qubits[50], qubits[115], qubits[116]; -ccx qubits[51], qubits[116], qubits[117]; -ccx qubits[52], qubits[117], qubits[118]; -ccx qubits[53], qubits[118], qubits[119]; -ccx qubits[54], qubits[119], qubits[120]; -ccx qubits[55], qubits[120], qubits[121]; -ccx qubits[56], qubits[121], qubits[122]; -ccx qubits[57], qubits[122], qubits[123]; -ccx qubits[58], qubits[123], qubits[124]; -ccx qubits[59], qubits[124], qubits[125]; -ccx qubits[60], qubits[125], qubits[126]; -ccx qubits[61], qubits[126], qubits[127]; -ccx qubits[62], qubits[127], qubits[128]; -ccx qubits[63], qubits[128], qubits[129]; -ccx qubits[64], qubits[129], qubits[130]; -cz qubits[130], qubits[65]; -ccx qubits[64], qubits[129], qubits[130]; -ccx qubits[63], qubits[128], qubits[129]; -ccx qubits[62], qubits[127], qubits[128]; -ccx qubits[61], qubits[126], qubits[127]; -ccx qubits[60], qubits[125], qubits[126]; -ccx qubits[59], qubits[124], qubits[125]; -ccx qubits[58], qubits[123], qubits[124]; -ccx qubits[57], qubits[122], qubits[123]; -ccx qubits[56], qubits[121], qubits[122]; -ccx qubits[55], qubits[120], qubits[121]; -ccx qubits[54], qubits[119], qubits[120]; -ccx qubits[53], qubits[118], qubits[119]; -ccx qubits[52], qubits[117], qubits[118]; -ccx qubits[51], qubits[116], qubits[117]; -ccx qubits[50], qubits[115], qubits[116]; -ccx qubits[49], qubits[114], qubits[115]; -ccx qubits[48], qubits[113], qubits[114]; -ccx qubits[47], qubits[112], qubits[113]; -ccx qubits[46], qubits[111], qubits[112]; -ccx qubits[45], qubits[110], qubits[111]; -ccx qubits[44], qubits[109], qubits[110]; -ccx qubits[43], qubits[108], qubits[109]; -ccx qubits[42], qubits[107], qubits[108]; -ccx qubits[41], qubits[106], qubits[107]; -ccx qubits[40], qubits[105], qubits[106]; -ccx qubits[39], qubits[104], qubits[105]; -ccx qubits[38], qubits[103], qubits[104]; -ccx qubits[37], qubits[102], qubits[103]; -ccx qubits[36], qubits[101], qubits[102]; -ccx qubits[35], qubits[100], qubits[101]; -ccx qubits[34], qubits[99], qubits[100]; -ccx qubits[33], qubits[98], qubits[99]; -ccx qubits[32], qubits[97], qubits[98]; -ccx qubits[31], qubits[96], qubits[97]; -ccx qubits[30], qubits[95], qubits[96]; -ccx qubits[29], qubits[94], qubits[95]; -ccx qubits[28], qubits[93], qubits[94]; -ccx qubits[27], qubits[92], qubits[93]; -ccx qubits[26], qubits[91], qubits[92]; -ccx qubits[25], qubits[90], qubits[91]; -ccx qubits[24], qubits[89], qubits[90]; -ccx qubits[23], qubits[88], qubits[89]; -ccx qubits[22], qubits[87], qubits[88]; -ccx qubits[21], qubits[86], qubits[87]; -ccx qubits[20], qubits[85], qubits[86]; -ccx qubits[19], qubits[84], qubits[85]; -ccx qubits[18], qubits[83], qubits[84]; -ccx qubits[17], qubits[82], qubits[83]; -ccx qubits[16], qubits[81], qubits[82]; -ccx qubits[15], qubits[80], qubits[81]; -ccx qubits[14], qubits[79], qubits[80]; -ccx qubits[13], qubits[78], qubits[79]; -ccx qubits[12], qubits[77], qubits[78]; -ccx qubits[11], qubits[76], qubits[77]; -ccx qubits[10], qubits[75], qubits[76]; -ccx qubits[9], qubits[74], qubits[75]; -ccx qubits[8], qubits[73], qubits[74]; -ccx qubits[7], qubits[72], qubits[73]; -ccx qubits[6], qubits[71], qubits[72]; -ccx qubits[5], qubits[70], qubits[71]; -ccx qubits[4], qubits[69], qubits[70]; -ccx qubits[3], qubits[68], qubits[69]; -ccx qubits[2], qubits[67], qubits[68]; -ccx qubits[0], qubits[1], qubits[67]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +cz qubits[128], qubits[129]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -199,395 +199,395 @@ x qubits[62]; x qubits[64]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -ccx qubits[0], qubits[1], qubits[67]; -ccx qubits[2], qubits[67], qubits[68]; -ccx qubits[3], qubits[68], qubits[69]; -ccx qubits[4], qubits[69], qubits[70]; -ccx qubits[5], qubits[70], qubits[71]; -ccx qubits[6], qubits[71], qubits[72]; -ccx qubits[7], qubits[72], qubits[73]; -ccx qubits[8], qubits[73], qubits[74]; -ccx qubits[9], qubits[74], qubits[75]; -ccx qubits[10], qubits[75], qubits[76]; -ccx qubits[11], qubits[76], qubits[77]; -ccx qubits[12], qubits[77], qubits[78]; -ccx qubits[13], qubits[78], qubits[79]; -ccx qubits[14], qubits[79], qubits[80]; -ccx qubits[15], qubits[80], qubits[81]; -ccx qubits[16], qubits[81], qubits[82]; -ccx qubits[17], qubits[82], qubits[83]; -ccx qubits[18], qubits[83], qubits[84]; -ccx qubits[19], qubits[84], qubits[85]; -ccx qubits[20], qubits[85], qubits[86]; -ccx qubits[21], qubits[86], qubits[87]; -ccx qubits[22], qubits[87], qubits[88]; -ccx qubits[23], qubits[88], qubits[89]; -ccx qubits[24], qubits[89], qubits[90]; -ccx qubits[25], qubits[90], qubits[91]; -ccx qubits[26], qubits[91], qubits[92]; -ccx qubits[27], qubits[92], qubits[93]; -ccx qubits[28], qubits[93], qubits[94]; -ccx qubits[29], qubits[94], qubits[95]; -ccx qubits[30], qubits[95], qubits[96]; -ccx qubits[31], qubits[96], qubits[97]; -ccx qubits[32], qubits[97], qubits[98]; -ccx qubits[33], qubits[98], qubits[99]; -ccx qubits[34], qubits[99], qubits[100]; -ccx qubits[35], qubits[100], qubits[101]; -ccx qubits[36], qubits[101], qubits[102]; -ccx qubits[37], qubits[102], qubits[103]; -ccx qubits[38], qubits[103], qubits[104]; -ccx qubits[39], qubits[104], qubits[105]; -ccx qubits[40], qubits[105], qubits[106]; -ccx qubits[41], qubits[106], qubits[107]; -ccx qubits[42], qubits[107], qubits[108]; -ccx qubits[43], qubits[108], qubits[109]; -ccx qubits[44], qubits[109], qubits[110]; -ccx qubits[45], qubits[110], qubits[111]; -ccx qubits[46], qubits[111], qubits[112]; -ccx qubits[47], qubits[112], qubits[113]; -ccx qubits[48], qubits[113], qubits[114]; -ccx qubits[49], qubits[114], qubits[115]; -ccx qubits[50], qubits[115], qubits[116]; -ccx qubits[51], qubits[116], qubits[117]; -ccx qubits[52], qubits[117], qubits[118]; -ccx qubits[53], qubits[118], qubits[119]; -ccx qubits[54], qubits[119], qubits[120]; -ccx qubits[55], qubits[120], qubits[121]; -ccx qubits[56], qubits[121], qubits[122]; -ccx qubits[57], qubits[122], qubits[123]; -ccx qubits[58], qubits[123], qubits[124]; -ccx qubits[59], qubits[124], qubits[125]; -ccx qubits[60], qubits[125], qubits[126]; -ccx qubits[61], qubits[126], qubits[127]; -ccx qubits[62], qubits[127], qubits[128]; -ccx qubits[63], qubits[128], qubits[129]; -ccx qubits[64], qubits[129], qubits[130]; -cz qubits[130], qubits[65]; -ccx qubits[64], qubits[129], qubits[130]; -ccx qubits[63], qubits[128], qubits[129]; -ccx qubits[62], qubits[127], qubits[128]; -ccx qubits[61], qubits[126], qubits[127]; -ccx qubits[60], qubits[125], qubits[126]; -ccx qubits[59], qubits[124], qubits[125]; -ccx qubits[58], qubits[123], qubits[124]; -ccx qubits[57], qubits[122], qubits[123]; -ccx qubits[56], qubits[121], qubits[122]; -ccx qubits[55], qubits[120], qubits[121]; -ccx qubits[54], qubits[119], qubits[120]; -ccx qubits[53], qubits[118], qubits[119]; -ccx qubits[52], qubits[117], qubits[118]; -ccx qubits[51], qubits[116], qubits[117]; -ccx qubits[50], qubits[115], qubits[116]; -ccx qubits[49], qubits[114], qubits[115]; -ccx qubits[48], qubits[113], qubits[114]; -ccx qubits[47], qubits[112], qubits[113]; -ccx qubits[46], qubits[111], qubits[112]; -ccx qubits[45], qubits[110], qubits[111]; -ccx qubits[44], qubits[109], qubits[110]; -ccx qubits[43], qubits[108], qubits[109]; -ccx qubits[42], qubits[107], qubits[108]; -ccx qubits[41], qubits[106], qubits[107]; -ccx qubits[40], qubits[105], qubits[106]; -ccx qubits[39], qubits[104], qubits[105]; -ccx qubits[38], qubits[103], qubits[104]; -ccx qubits[37], qubits[102], qubits[103]; -ccx qubits[36], qubits[101], qubits[102]; -ccx qubits[35], qubits[100], qubits[101]; -ccx qubits[34], qubits[99], qubits[100]; -ccx qubits[33], qubits[98], qubits[99]; -ccx qubits[32], qubits[97], qubits[98]; -ccx qubits[31], qubits[96], qubits[97]; -ccx qubits[30], qubits[95], qubits[96]; -ccx qubits[29], qubits[94], qubits[95]; -ccx qubits[28], qubits[93], qubits[94]; -ccx qubits[27], qubits[92], qubits[93]; -ccx qubits[26], qubits[91], qubits[92]; -ccx qubits[25], qubits[90], qubits[91]; -ccx qubits[24], qubits[89], qubits[90]; -ccx qubits[23], qubits[88], qubits[89]; -ccx qubits[22], qubits[87], qubits[88]; -ccx qubits[21], qubits[86], qubits[87]; -ccx qubits[20], qubits[85], qubits[86]; -ccx qubits[19], qubits[84], qubits[85]; -ccx qubits[18], qubits[83], qubits[84]; -ccx qubits[17], qubits[82], qubits[83]; -ccx qubits[16], qubits[81], qubits[82]; -ccx qubits[15], qubits[80], qubits[81]; -ccx qubits[14], qubits[79], qubits[80]; -ccx qubits[13], qubits[78], qubits[79]; -ccx qubits[12], qubits[77], qubits[78]; -ccx qubits[11], qubits[76], qubits[77]; -ccx qubits[10], qubits[75], qubits[76]; -ccx qubits[9], qubits[74], qubits[75]; -ccx qubits[8], qubits[73], qubits[74]; -ccx qubits[7], qubits[72], qubits[73]; -ccx qubits[6], qubits[71], qubits[72]; -ccx qubits[5], qubits[70], qubits[71]; -ccx qubits[4], qubits[69], qubits[70]; -ccx qubits[3], qubits[68], qubits[69]; -ccx qubits[2], qubits[67], qubits[68]; -ccx qubits[0], qubits[1], qubits[67]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +cz qubits[128], qubits[129]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -z qubits[66]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +z qubits[130]; diff --git a/benchmarks/all/OEGrover/66/post.hsl b/benchmarks/all/OEGrover/66/post.hsl index 4ec050d78..e5dda25b4 100644 --- a/benchmarks/all/OEGrover/66/post.hsl +++ b/benchmarks/all/OEGrover/66/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101100000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 32 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/66/post.lsta b/benchmarks/all/OEGrover/66/post.lsta deleted file mode 100644 index 2239b14a6..000000000 --- a/benchmarks/all/OEGrover/66/post.lsta +++ /dev/null @@ -1,337 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 134) -> 131 -[67,1](133, 135) -> 132 -[68,1](136, 136) -> 133 -[68,1](137, 136) -> 134 -[68,1](138, 136) -> 135 -[69,1](139, 139) -> 136 -[69,1](140, 139) -> 137 -[69,1](141, 139) -> 138 -[70,1](142, 142) -> 139 -[70,1](143, 142) -> 140 -[70,1](144, 142) -> 141 -[71,1](145, 145) -> 142 -[71,1](146, 145) -> 143 -[71,1](147, 145) -> 144 -[72,1](148, 148) -> 145 -[72,1](149, 148) -> 146 -[72,1](150, 148) -> 147 -[73,1](151, 151) -> 148 -[73,1](152, 151) -> 149 -[73,1](153, 151) -> 150 -[74,1](154, 154) -> 151 -[74,1](155, 154) -> 152 -[74,1](156, 154) -> 153 -[75,1](157, 157) -> 154 -[75,1](158, 157) -> 155 -[75,1](159, 157) -> 156 -[76,1](160, 160) -> 157 -[76,1](161, 160) -> 158 -[76,1](162, 160) -> 159 -[77,1](163, 163) -> 160 -[77,1](164, 163) -> 161 -[77,1](165, 163) -> 162 -[78,1](166, 166) -> 163 -[78,1](167, 166) -> 164 -[78,1](168, 166) -> 165 -[79,1](169, 169) -> 166 -[79,1](170, 169) -> 167 -[79,1](171, 169) -> 168 -[80,1](172, 172) -> 169 -[80,1](173, 172) -> 170 -[80,1](174, 172) -> 171 -[81,1](175, 175) -> 172 -[81,1](176, 175) -> 173 -[81,1](177, 175) -> 174 -[82,1](178, 178) -> 175 -[82,1](179, 178) -> 176 -[82,1](180, 178) -> 177 -[83,1](181, 181) -> 178 -[83,1](182, 181) -> 179 -[83,1](183, 181) -> 180 -[84,1](184, 184) -> 181 -[84,1](185, 184) -> 182 -[84,1](186, 184) -> 183 -[85,1](187, 187) -> 184 -[85,1](188, 187) -> 185 -[85,1](189, 187) -> 186 -[86,1](190, 190) -> 187 -[86,1](191, 190) -> 188 -[86,1](192, 190) -> 189 -[87,1](193, 193) -> 190 -[87,1](194, 193) -> 191 -[87,1](195, 193) -> 192 -[88,1](196, 196) -> 193 -[88,1](197, 196) -> 194 -[88,1](198, 196) -> 195 -[89,1](199, 199) -> 196 -[89,1](200, 199) -> 197 -[89,1](201, 199) -> 198 -[90,1](202, 202) -> 199 -[90,1](203, 202) -> 200 -[90,1](204, 202) -> 201 -[91,1](205, 205) -> 202 -[91,1](206, 205) -> 203 -[91,1](207, 205) -> 204 -[92,1](208, 208) -> 205 -[92,1](209, 208) -> 206 -[92,1](210, 208) -> 207 -[93,1](211, 211) -> 208 -[93,1](212, 211) -> 209 -[93,1](213, 211) -> 210 -[94,1](214, 214) -> 211 -[94,1](215, 214) -> 212 -[94,1](216, 214) -> 213 -[95,1](217, 217) -> 214 -[95,1](218, 217) -> 215 -[95,1](219, 217) -> 216 -[96,1](220, 220) -> 217 -[96,1](221, 220) -> 218 -[96,1](222, 220) -> 219 -[97,1](223, 223) -> 220 -[97,1](224, 223) -> 221 -[97,1](225, 223) -> 222 -[98,1](226, 226) -> 223 -[98,1](227, 226) -> 224 -[98,1](228, 226) -> 225 -[99,1](229, 229) -> 226 -[99,1](230, 229) -> 227 -[99,1](231, 229) -> 228 -[100,1](232, 232) -> 229 -[100,1](233, 232) -> 230 -[100,1](234, 232) -> 231 -[101,1](235, 235) -> 232 -[101,1](236, 235) -> 233 -[101,1](237, 235) -> 234 -[102,1](238, 238) -> 235 -[102,1](239, 238) -> 236 -[102,1](240, 238) -> 237 -[103,1](241, 241) -> 238 -[103,1](242, 241) -> 239 -[103,1](243, 241) -> 240 -[104,1](244, 244) -> 241 -[104,1](245, 244) -> 242 -[104,1](246, 244) -> 243 -[105,1](247, 247) -> 244 -[105,1](248, 247) -> 245 -[105,1](249, 247) -> 246 -[106,1](250, 250) -> 247 -[106,1](251, 250) -> 248 -[106,1](252, 250) -> 249 -[107,1](253, 253) -> 250 -[107,1](254, 253) -> 251 -[107,1](255, 253) -> 252 -[108,1](256, 256) -> 253 -[108,1](257, 256) -> 254 -[108,1](258, 256) -> 255 -[109,1](259, 259) -> 256 -[109,1](260, 259) -> 257 -[109,1](261, 259) -> 258 -[110,1](262, 262) -> 259 -[110,1](263, 262) -> 260 -[110,1](264, 262) -> 261 -[111,1](265, 265) -> 262 -[111,1](266, 265) -> 263 -[111,1](267, 265) -> 264 -[112,1](268, 268) -> 265 -[112,1](269, 268) -> 266 -[112,1](270, 268) -> 267 -[113,1](271, 271) -> 268 -[113,1](272, 271) -> 269 -[113,1](273, 271) -> 270 -[114,1](274, 274) -> 271 -[114,1](275, 274) -> 272 -[114,1](276, 274) -> 273 -[115,1](277, 277) -> 274 -[115,1](278, 277) -> 275 -[115,1](279, 277) -> 276 -[116,1](280, 280) -> 277 -[116,1](281, 280) -> 278 -[116,1](282, 280) -> 279 -[117,1](283, 283) -> 280 -[117,1](284, 283) -> 281 -[117,1](285, 283) -> 282 -[118,1](286, 286) -> 283 -[118,1](287, 286) -> 284 -[118,1](288, 286) -> 285 -[119,1](289, 289) -> 286 -[119,1](290, 289) -> 287 -[119,1](291, 289) -> 288 -[120,1](292, 292) -> 289 -[120,1](293, 292) -> 290 -[120,1](294, 292) -> 291 -[121,1](295, 295) -> 292 -[121,1](296, 295) -> 293 -[121,1](297, 295) -> 294 -[122,1](298, 298) -> 295 -[122,1](299, 298) -> 296 -[122,1](300, 298) -> 297 -[123,1](301, 301) -> 298 -[123,1](302, 301) -> 299 -[123,1](303, 301) -> 300 -[124,1](304, 304) -> 301 -[124,1](305, 304) -> 302 -[124,1](306, 304) -> 303 -[125,1](307, 307) -> 304 -[125,1](308, 307) -> 305 -[125,1](309, 307) -> 306 -[126,1](310, 310) -> 307 -[126,1](311, 310) -> 308 -[126,1](312, 310) -> 309 -[127,1](313, 313) -> 310 -[127,1](314, 313) -> 311 -[127,1](315, 313) -> 312 -[128,1](316, 316) -> 313 -[128,1](317, 316) -> 314 -[128,1](318, 316) -> 315 -[129,1](319, 319) -> 316 -[129,1](320, 319) -> 317 -[129,1](321, 319) -> 318 -[130,1](322, 322) -> 319 -[130,1](323, 322) -> 320 -[130,1](324, 322) -> 321 -[131,1](325, 325) -> 322 -[131,1](326, 325) -> 323 -[131,1](327, 325) -> 324 -[132,1](328, 328) -> 325 -[132,1](329, 328) -> 326 -[132,1](330, 328) -> 327 -[p1,1] -> 328 -[p2,1] -> 329 -[p3,1] -> 330 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/66/pre.hsl b/benchmarks/all/OEGrover/66/pre.hsl index 13dba1d73..1c22bf04c 100644 --- a/benchmarks/all/OEGrover/66/pre.hsl +++ b/benchmarks/all/OEGrover/66/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 32 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 73786976294838206463 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/66/pre.lsta b/benchmarks/all/OEGrover/66/pre.lsta deleted file mode 100644 index e7d1795be..000000000 --- a/benchmarks/all/OEGrover/66/pre.lsta +++ /dev/null @@ -1,341 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 134) -> 131 -[67,1](133, 135) -> 132 -[68,1](136, 136) -> 133 -[68,1](137, 136) -> 134 -[68,1](138, 136) -> 135 -[69,1](139, 139) -> 136 -[69,1](140, 139) -> 137 -[69,1](141, 139) -> 138 -[70,1](142, 142) -> 139 -[70,1](143, 142) -> 140 -[70,1](144, 142) -> 141 -[71,1](145, 145) -> 142 -[71,1](146, 145) -> 143 -[71,1](147, 145) -> 144 -[72,1](148, 148) -> 145 -[72,1](149, 148) -> 146 -[72,1](150, 148) -> 147 -[73,1](151, 151) -> 148 -[73,1](152, 151) -> 149 -[73,1](153, 151) -> 150 -[74,1](154, 154) -> 151 -[74,1](155, 154) -> 152 -[74,1](156, 154) -> 153 -[75,1](157, 157) -> 154 -[75,1](158, 157) -> 155 -[75,1](159, 157) -> 156 -[76,1](160, 160) -> 157 -[76,1](161, 160) -> 158 -[76,1](162, 160) -> 159 -[77,1](163, 163) -> 160 -[77,1](164, 163) -> 161 -[77,1](165, 163) -> 162 -[78,1](166, 166) -> 163 -[78,1](167, 166) -> 164 -[78,1](168, 166) -> 165 -[79,1](169, 169) -> 166 -[79,1](170, 169) -> 167 -[79,1](171, 169) -> 168 -[80,1](172, 172) -> 169 -[80,1](173, 172) -> 170 -[80,1](174, 172) -> 171 -[81,1](175, 175) -> 172 -[81,1](176, 175) -> 173 -[81,1](177, 175) -> 174 -[82,1](178, 178) -> 175 -[82,1](179, 178) -> 176 -[82,1](180, 178) -> 177 -[83,1](181, 181) -> 178 -[83,1](182, 181) -> 179 -[83,1](183, 181) -> 180 -[84,1](184, 184) -> 181 -[84,1](185, 184) -> 182 -[84,1](186, 184) -> 183 -[85,1](187, 187) -> 184 -[85,1](188, 187) -> 185 -[85,1](189, 187) -> 186 -[86,1](190, 190) -> 187 -[86,1](191, 190) -> 188 -[86,1](192, 190) -> 189 -[87,1](193, 193) -> 190 -[87,1](194, 193) -> 191 -[87,1](195, 193) -> 192 -[88,1](196, 196) -> 193 -[88,1](197, 196) -> 194 -[88,1](198, 196) -> 195 -[89,1](199, 199) -> 196 -[89,1](200, 199) -> 197 -[89,1](201, 199) -> 198 -[90,1](202, 202) -> 199 -[90,1](203, 202) -> 200 -[90,1](204, 202) -> 201 -[91,1](205, 205) -> 202 -[91,1](206, 205) -> 203 -[91,1](207, 205) -> 204 -[92,1](208, 208) -> 205 -[92,1](209, 208) -> 206 -[92,1](210, 208) -> 207 -[93,1](211, 211) -> 208 -[93,1](212, 211) -> 209 -[93,1](213, 211) -> 210 -[94,1](214, 214) -> 211 -[94,1](215, 214) -> 212 -[94,1](216, 214) -> 213 -[95,1](217, 217) -> 214 -[95,1](218, 217) -> 215 -[95,1](219, 217) -> 216 -[96,1](220, 220) -> 217 -[96,1](221, 220) -> 218 -[96,1](222, 220) -> 219 -[97,1](223, 223) -> 220 -[97,1](224, 223) -> 221 -[97,1](225, 223) -> 222 -[98,1](226, 226) -> 223 -[98,1](227, 226) -> 224 -[98,1](228, 226) -> 225 -[99,1](229, 229) -> 226 -[99,1](230, 229) -> 227 -[99,1](231, 229) -> 228 -[100,1](232, 232) -> 229 -[100,1](233, 232) -> 230 -[100,1](234, 232) -> 231 -[101,1](235, 235) -> 232 -[101,1](236, 235) -> 233 -[101,1](237, 235) -> 234 -[102,1](238, 238) -> 235 -[102,1](239, 238) -> 236 -[102,1](240, 238) -> 237 -[103,1](241, 241) -> 238 -[103,1](242, 241) -> 239 -[103,1](243, 241) -> 240 -[104,1](244, 244) -> 241 -[104,1](245, 244) -> 242 -[104,1](246, 244) -> 243 -[105,1](247, 247) -> 244 -[105,1](248, 247) -> 245 -[105,1](249, 247) -> 246 -[106,1](250, 250) -> 247 -[106,1](251, 250) -> 248 -[106,1](252, 250) -> 249 -[107,1](253, 253) -> 250 -[107,1](254, 253) -> 251 -[107,1](255, 253) -> 252 -[108,1](256, 256) -> 253 -[108,1](257, 256) -> 254 -[108,1](258, 256) -> 255 -[109,1](259, 259) -> 256 -[109,1](260, 259) -> 257 -[109,1](261, 259) -> 258 -[110,1](262, 262) -> 259 -[110,1](263, 262) -> 260 -[110,1](264, 262) -> 261 -[111,1](265, 265) -> 262 -[111,1](266, 265) -> 263 -[111,1](267, 265) -> 264 -[112,1](268, 268) -> 265 -[112,1](269, 268) -> 266 -[112,1](270, 268) -> 267 -[113,1](271, 271) -> 268 -[113,1](272, 271) -> 269 -[113,1](273, 271) -> 270 -[114,1](274, 274) -> 271 -[114,1](275, 274) -> 272 -[114,1](276, 274) -> 273 -[115,1](277, 277) -> 274 -[115,1](278, 277) -> 275 -[115,1](279, 277) -> 276 -[116,1](280, 280) -> 277 -[116,1](281, 280) -> 278 -[116,1](282, 280) -> 279 -[117,1](283, 283) -> 280 -[117,1](284, 283) -> 281 -[117,1](285, 283) -> 282 -[118,1](286, 286) -> 283 -[118,1](287, 286) -> 284 -[118,1](288, 286) -> 285 -[119,1](289, 289) -> 286 -[119,1](290, 289) -> 287 -[119,1](291, 289) -> 288 -[120,1](292, 292) -> 289 -[120,1](293, 292) -> 290 -[120,1](294, 292) -> 291 -[121,1](295, 295) -> 292 -[121,1](296, 295) -> 293 -[121,1](297, 295) -> 294 -[122,1](298, 298) -> 295 -[122,1](299, 298) -> 296 -[122,1](300, 298) -> 297 -[123,1](301, 301) -> 298 -[123,1](302, 301) -> 299 -[123,1](303, 301) -> 300 -[124,1](304, 304) -> 301 -[124,1](305, 304) -> 302 -[124,1](306, 304) -> 303 -[125,1](307, 307) -> 304 -[125,1](308, 307) -> 305 -[125,1](309, 307) -> 306 -[126,1](310, 310) -> 307 -[126,1](311, 310) -> 308 -[126,1](312, 310) -> 309 -[127,1](313, 313) -> 310 -[127,1](314, 313) -> 311 -[127,1](315, 313) -> 312 -[128,1](316, 316) -> 313 -[128,1](317, 316) -> 314 -[128,1](318, 316) -> 315 -[129,1](319, 319) -> 316 -[129,1](320, 319) -> 317 -[129,1](321, 319) -> 318 -[130,1](322, 322) -> 319 -[130,1](323, 322) -> 320 -[130,1](324, 322) -> 321 -[131,1](325, 325) -> 322 -[131,1](326, 325) -> 323 -[131,1](327, 325) -> 324 -[132,1](328, 328) -> 325 -[132,1](329, 328) -> 326 -[132,1](330, 328) -> 327 -[c0,1] -> 328 -[a,1] -> 329 -[b,1] -> 330 -Constraints -73786976294838206463 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/67/circuit.qasm b/benchmarks/all/OEGrover/67/circuit.qasm index 942f4f268..6dc68a222 100644 --- a/benchmarks/all/OEGrover/67/circuit.qasm +++ b/benchmarks/all/OEGrover/67/circuit.qasm @@ -1,172 +1,172 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[134]; +qreg qubits[133]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -ccx qubits[0], qubits[1], qubits[68]; -ccx qubits[2], qubits[68], qubits[69]; -ccx qubits[3], qubits[69], qubits[70]; -ccx qubits[4], qubits[70], qubits[71]; -ccx qubits[5], qubits[71], qubits[72]; -ccx qubits[6], qubits[72], qubits[73]; -ccx qubits[7], qubits[73], qubits[74]; -ccx qubits[8], qubits[74], qubits[75]; -ccx qubits[9], qubits[75], qubits[76]; -ccx qubits[10], qubits[76], qubits[77]; -ccx qubits[11], qubits[77], qubits[78]; -ccx qubits[12], qubits[78], qubits[79]; -ccx qubits[13], qubits[79], qubits[80]; -ccx qubits[14], qubits[80], qubits[81]; -ccx qubits[15], qubits[81], qubits[82]; -ccx qubits[16], qubits[82], qubits[83]; -ccx qubits[17], qubits[83], qubits[84]; -ccx qubits[18], qubits[84], qubits[85]; -ccx qubits[19], qubits[85], qubits[86]; -ccx qubits[20], qubits[86], qubits[87]; -ccx qubits[21], qubits[87], qubits[88]; -ccx qubits[22], qubits[88], qubits[89]; -ccx qubits[23], qubits[89], qubits[90]; -ccx qubits[24], qubits[90], qubits[91]; -ccx qubits[25], qubits[91], qubits[92]; -ccx qubits[26], qubits[92], qubits[93]; -ccx qubits[27], qubits[93], qubits[94]; -ccx qubits[28], qubits[94], qubits[95]; -ccx qubits[29], qubits[95], qubits[96]; -ccx qubits[30], qubits[96], qubits[97]; -ccx qubits[31], qubits[97], qubits[98]; -ccx qubits[32], qubits[98], qubits[99]; -ccx qubits[33], qubits[99], qubits[100]; -ccx qubits[34], qubits[100], qubits[101]; -ccx qubits[35], qubits[101], qubits[102]; -ccx qubits[36], qubits[102], qubits[103]; -ccx qubits[37], qubits[103], qubits[104]; -ccx qubits[38], qubits[104], qubits[105]; -ccx qubits[39], qubits[105], qubits[106]; -ccx qubits[40], qubits[106], qubits[107]; -ccx qubits[41], qubits[107], qubits[108]; -ccx qubits[42], qubits[108], qubits[109]; -ccx qubits[43], qubits[109], qubits[110]; -ccx qubits[44], qubits[110], qubits[111]; -ccx qubits[45], qubits[111], qubits[112]; -ccx qubits[46], qubits[112], qubits[113]; -ccx qubits[47], qubits[113], qubits[114]; -ccx qubits[48], qubits[114], qubits[115]; -ccx qubits[49], qubits[115], qubits[116]; -ccx qubits[50], qubits[116], qubits[117]; -ccx qubits[51], qubits[117], qubits[118]; -ccx qubits[52], qubits[118], qubits[119]; -ccx qubits[53], qubits[119], qubits[120]; -ccx qubits[54], qubits[120], qubits[121]; -ccx qubits[55], qubits[121], qubits[122]; -ccx qubits[56], qubits[122], qubits[123]; -ccx qubits[57], qubits[123], qubits[124]; -ccx qubits[58], qubits[124], qubits[125]; -ccx qubits[59], qubits[125], qubits[126]; -ccx qubits[60], qubits[126], qubits[127]; -ccx qubits[61], qubits[127], qubits[128]; -ccx qubits[62], qubits[128], qubits[129]; -ccx qubits[63], qubits[129], qubits[130]; -ccx qubits[64], qubits[130], qubits[131]; -ccx qubits[65], qubits[131], qubits[132]; -cz qubits[132], qubits[66]; -ccx qubits[65], qubits[131], qubits[132]; -ccx qubits[64], qubits[130], qubits[131]; -ccx qubits[63], qubits[129], qubits[130]; -ccx qubits[62], qubits[128], qubits[129]; -ccx qubits[61], qubits[127], qubits[128]; -ccx qubits[60], qubits[126], qubits[127]; -ccx qubits[59], qubits[125], qubits[126]; -ccx qubits[58], qubits[124], qubits[125]; -ccx qubits[57], qubits[123], qubits[124]; -ccx qubits[56], qubits[122], qubits[123]; -ccx qubits[55], qubits[121], qubits[122]; -ccx qubits[54], qubits[120], qubits[121]; -ccx qubits[53], qubits[119], qubits[120]; -ccx qubits[52], qubits[118], qubits[119]; -ccx qubits[51], qubits[117], qubits[118]; -ccx qubits[50], qubits[116], qubits[117]; -ccx qubits[49], qubits[115], qubits[116]; -ccx qubits[48], qubits[114], qubits[115]; -ccx qubits[47], qubits[113], qubits[114]; -ccx qubits[46], qubits[112], qubits[113]; -ccx qubits[45], qubits[111], qubits[112]; -ccx qubits[44], qubits[110], qubits[111]; -ccx qubits[43], qubits[109], qubits[110]; -ccx qubits[42], qubits[108], qubits[109]; -ccx qubits[41], qubits[107], qubits[108]; -ccx qubits[40], qubits[106], qubits[107]; -ccx qubits[39], qubits[105], qubits[106]; -ccx qubits[38], qubits[104], qubits[105]; -ccx qubits[37], qubits[103], qubits[104]; -ccx qubits[36], qubits[102], qubits[103]; -ccx qubits[35], qubits[101], qubits[102]; -ccx qubits[34], qubits[100], qubits[101]; -ccx qubits[33], qubits[99], qubits[100]; -ccx qubits[32], qubits[98], qubits[99]; -ccx qubits[31], qubits[97], qubits[98]; -ccx qubits[30], qubits[96], qubits[97]; -ccx qubits[29], qubits[95], qubits[96]; -ccx qubits[28], qubits[94], qubits[95]; -ccx qubits[27], qubits[93], qubits[94]; -ccx qubits[26], qubits[92], qubits[93]; -ccx qubits[25], qubits[91], qubits[92]; -ccx qubits[24], qubits[90], qubits[91]; -ccx qubits[23], qubits[89], qubits[90]; -ccx qubits[22], qubits[88], qubits[89]; -ccx qubits[21], qubits[87], qubits[88]; -ccx qubits[20], qubits[86], qubits[87]; -ccx qubits[19], qubits[85], qubits[86]; -ccx qubits[18], qubits[84], qubits[85]; -ccx qubits[17], qubits[83], qubits[84]; -ccx qubits[16], qubits[82], qubits[83]; -ccx qubits[15], qubits[81], qubits[82]; -ccx qubits[14], qubits[80], qubits[81]; -ccx qubits[13], qubits[79], qubits[80]; -ccx qubits[12], qubits[78], qubits[79]; -ccx qubits[11], qubits[77], qubits[78]; -ccx qubits[10], qubits[76], qubits[77]; -ccx qubits[9], qubits[75], qubits[76]; -ccx qubits[8], qubits[74], qubits[75]; -ccx qubits[7], qubits[73], qubits[74]; -ccx qubits[6], qubits[72], qubits[73]; -ccx qubits[5], qubits[71], qubits[72]; -ccx qubits[4], qubits[70], qubits[71]; -ccx qubits[3], qubits[69], qubits[70]; -ccx qubits[2], qubits[68], qubits[69]; -ccx qubits[0], qubits[1], qubits[68]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +cz qubits[130], qubits[131]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -203,401 +203,401 @@ x qubits[64]; x qubits[66]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; -ccx qubits[0], qubits[1], qubits[68]; -ccx qubits[2], qubits[68], qubits[69]; -ccx qubits[3], qubits[69], qubits[70]; -ccx qubits[4], qubits[70], qubits[71]; -ccx qubits[5], qubits[71], qubits[72]; -ccx qubits[6], qubits[72], qubits[73]; -ccx qubits[7], qubits[73], qubits[74]; -ccx qubits[8], qubits[74], qubits[75]; -ccx qubits[9], qubits[75], qubits[76]; -ccx qubits[10], qubits[76], qubits[77]; -ccx qubits[11], qubits[77], qubits[78]; -ccx qubits[12], qubits[78], qubits[79]; -ccx qubits[13], qubits[79], qubits[80]; -ccx qubits[14], qubits[80], qubits[81]; -ccx qubits[15], qubits[81], qubits[82]; -ccx qubits[16], qubits[82], qubits[83]; -ccx qubits[17], qubits[83], qubits[84]; -ccx qubits[18], qubits[84], qubits[85]; -ccx qubits[19], qubits[85], qubits[86]; -ccx qubits[20], qubits[86], qubits[87]; -ccx qubits[21], qubits[87], qubits[88]; -ccx qubits[22], qubits[88], qubits[89]; -ccx qubits[23], qubits[89], qubits[90]; -ccx qubits[24], qubits[90], qubits[91]; -ccx qubits[25], qubits[91], qubits[92]; -ccx qubits[26], qubits[92], qubits[93]; -ccx qubits[27], qubits[93], qubits[94]; -ccx qubits[28], qubits[94], qubits[95]; -ccx qubits[29], qubits[95], qubits[96]; -ccx qubits[30], qubits[96], qubits[97]; -ccx qubits[31], qubits[97], qubits[98]; -ccx qubits[32], qubits[98], qubits[99]; -ccx qubits[33], qubits[99], qubits[100]; -ccx qubits[34], qubits[100], qubits[101]; -ccx qubits[35], qubits[101], qubits[102]; -ccx qubits[36], qubits[102], qubits[103]; -ccx qubits[37], qubits[103], qubits[104]; -ccx qubits[38], qubits[104], qubits[105]; -ccx qubits[39], qubits[105], qubits[106]; -ccx qubits[40], qubits[106], qubits[107]; -ccx qubits[41], qubits[107], qubits[108]; -ccx qubits[42], qubits[108], qubits[109]; -ccx qubits[43], qubits[109], qubits[110]; -ccx qubits[44], qubits[110], qubits[111]; -ccx qubits[45], qubits[111], qubits[112]; -ccx qubits[46], qubits[112], qubits[113]; -ccx qubits[47], qubits[113], qubits[114]; -ccx qubits[48], qubits[114], qubits[115]; -ccx qubits[49], qubits[115], qubits[116]; -ccx qubits[50], qubits[116], qubits[117]; -ccx qubits[51], qubits[117], qubits[118]; -ccx qubits[52], qubits[118], qubits[119]; -ccx qubits[53], qubits[119], qubits[120]; -ccx qubits[54], qubits[120], qubits[121]; -ccx qubits[55], qubits[121], qubits[122]; -ccx qubits[56], qubits[122], qubits[123]; -ccx qubits[57], qubits[123], qubits[124]; -ccx qubits[58], qubits[124], qubits[125]; -ccx qubits[59], qubits[125], qubits[126]; -ccx qubits[60], qubits[126], qubits[127]; -ccx qubits[61], qubits[127], qubits[128]; -ccx qubits[62], qubits[128], qubits[129]; -ccx qubits[63], qubits[129], qubits[130]; -ccx qubits[64], qubits[130], qubits[131]; -ccx qubits[65], qubits[131], qubits[132]; -cz qubits[132], qubits[66]; -ccx qubits[65], qubits[131], qubits[132]; -ccx qubits[64], qubits[130], qubits[131]; -ccx qubits[63], qubits[129], qubits[130]; -ccx qubits[62], qubits[128], qubits[129]; -ccx qubits[61], qubits[127], qubits[128]; -ccx qubits[60], qubits[126], qubits[127]; -ccx qubits[59], qubits[125], qubits[126]; -ccx qubits[58], qubits[124], qubits[125]; -ccx qubits[57], qubits[123], qubits[124]; -ccx qubits[56], qubits[122], qubits[123]; -ccx qubits[55], qubits[121], qubits[122]; -ccx qubits[54], qubits[120], qubits[121]; -ccx qubits[53], qubits[119], qubits[120]; -ccx qubits[52], qubits[118], qubits[119]; -ccx qubits[51], qubits[117], qubits[118]; -ccx qubits[50], qubits[116], qubits[117]; -ccx qubits[49], qubits[115], qubits[116]; -ccx qubits[48], qubits[114], qubits[115]; -ccx qubits[47], qubits[113], qubits[114]; -ccx qubits[46], qubits[112], qubits[113]; -ccx qubits[45], qubits[111], qubits[112]; -ccx qubits[44], qubits[110], qubits[111]; -ccx qubits[43], qubits[109], qubits[110]; -ccx qubits[42], qubits[108], qubits[109]; -ccx qubits[41], qubits[107], qubits[108]; -ccx qubits[40], qubits[106], qubits[107]; -ccx qubits[39], qubits[105], qubits[106]; -ccx qubits[38], qubits[104], qubits[105]; -ccx qubits[37], qubits[103], qubits[104]; -ccx qubits[36], qubits[102], qubits[103]; -ccx qubits[35], qubits[101], qubits[102]; -ccx qubits[34], qubits[100], qubits[101]; -ccx qubits[33], qubits[99], qubits[100]; -ccx qubits[32], qubits[98], qubits[99]; -ccx qubits[31], qubits[97], qubits[98]; -ccx qubits[30], qubits[96], qubits[97]; -ccx qubits[29], qubits[95], qubits[96]; -ccx qubits[28], qubits[94], qubits[95]; -ccx qubits[27], qubits[93], qubits[94]; -ccx qubits[26], qubits[92], qubits[93]; -ccx qubits[25], qubits[91], qubits[92]; -ccx qubits[24], qubits[90], qubits[91]; -ccx qubits[23], qubits[89], qubits[90]; -ccx qubits[22], qubits[88], qubits[89]; -ccx qubits[21], qubits[87], qubits[88]; -ccx qubits[20], qubits[86], qubits[87]; -ccx qubits[19], qubits[85], qubits[86]; -ccx qubits[18], qubits[84], qubits[85]; -ccx qubits[17], qubits[83], qubits[84]; -ccx qubits[16], qubits[82], qubits[83]; -ccx qubits[15], qubits[81], qubits[82]; -ccx qubits[14], qubits[80], qubits[81]; -ccx qubits[13], qubits[79], qubits[80]; -ccx qubits[12], qubits[78], qubits[79]; -ccx qubits[11], qubits[77], qubits[78]; -ccx qubits[10], qubits[76], qubits[77]; -ccx qubits[9], qubits[75], qubits[76]; -ccx qubits[8], qubits[74], qubits[75]; -ccx qubits[7], qubits[73], qubits[74]; -ccx qubits[6], qubits[72], qubits[73]; -ccx qubits[5], qubits[71], qubits[72]; -ccx qubits[4], qubits[70], qubits[71]; -ccx qubits[3], qubits[69], qubits[70]; -ccx qubits[2], qubits[68], qubits[69]; -ccx qubits[0], qubits[1], qubits[68]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +cz qubits[130], qubits[131]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; +x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; -z qubits[67]; +h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +z qubits[132]; diff --git a/benchmarks/all/OEGrover/67/post.hsl b/benchmarks/all/OEGrover/67/post.hsl index 0eb848497..e82b05e5d 100644 --- a/benchmarks/all/OEGrover/67/post.hsl +++ b/benchmarks/all/OEGrover/67/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 32 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/67/post.lsta b/benchmarks/all/OEGrover/67/post.lsta deleted file mode 100644 index 96b7f32a7..000000000 --- a/benchmarks/all/OEGrover/67/post.lsta +++ /dev/null @@ -1,342 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 136) -> 133 -[68,1](135, 137) -> 134 -[69,1](138, 138) -> 135 -[69,1](139, 138) -> 136 -[69,1](140, 138) -> 137 -[70,1](141, 141) -> 138 -[70,1](142, 141) -> 139 -[70,1](143, 141) -> 140 -[71,1](144, 144) -> 141 -[71,1](145, 144) -> 142 -[71,1](146, 144) -> 143 -[72,1](147, 147) -> 144 -[72,1](148, 147) -> 145 -[72,1](149, 147) -> 146 -[73,1](150, 150) -> 147 -[73,1](151, 150) -> 148 -[73,1](152, 150) -> 149 -[74,1](153, 153) -> 150 -[74,1](154, 153) -> 151 -[74,1](155, 153) -> 152 -[75,1](156, 156) -> 153 -[75,1](157, 156) -> 154 -[75,1](158, 156) -> 155 -[76,1](159, 159) -> 156 -[76,1](160, 159) -> 157 -[76,1](161, 159) -> 158 -[77,1](162, 162) -> 159 -[77,1](163, 162) -> 160 -[77,1](164, 162) -> 161 -[78,1](165, 165) -> 162 -[78,1](166, 165) -> 163 -[78,1](167, 165) -> 164 -[79,1](168, 168) -> 165 -[79,1](169, 168) -> 166 -[79,1](170, 168) -> 167 -[80,1](171, 171) -> 168 -[80,1](172, 171) -> 169 -[80,1](173, 171) -> 170 -[81,1](174, 174) -> 171 -[81,1](175, 174) -> 172 -[81,1](176, 174) -> 173 -[82,1](177, 177) -> 174 -[82,1](178, 177) -> 175 -[82,1](179, 177) -> 176 -[83,1](180, 180) -> 177 -[83,1](181, 180) -> 178 -[83,1](182, 180) -> 179 -[84,1](183, 183) -> 180 -[84,1](184, 183) -> 181 -[84,1](185, 183) -> 182 -[85,1](186, 186) -> 183 -[85,1](187, 186) -> 184 -[85,1](188, 186) -> 185 -[86,1](189, 189) -> 186 -[86,1](190, 189) -> 187 -[86,1](191, 189) -> 188 -[87,1](192, 192) -> 189 -[87,1](193, 192) -> 190 -[87,1](194, 192) -> 191 -[88,1](195, 195) -> 192 -[88,1](196, 195) -> 193 -[88,1](197, 195) -> 194 -[89,1](198, 198) -> 195 -[89,1](199, 198) -> 196 -[89,1](200, 198) -> 197 -[90,1](201, 201) -> 198 -[90,1](202, 201) -> 199 -[90,1](203, 201) -> 200 -[91,1](204, 204) -> 201 -[91,1](205, 204) -> 202 -[91,1](206, 204) -> 203 -[92,1](207, 207) -> 204 -[92,1](208, 207) -> 205 -[92,1](209, 207) -> 206 -[93,1](210, 210) -> 207 -[93,1](211, 210) -> 208 -[93,1](212, 210) -> 209 -[94,1](213, 213) -> 210 -[94,1](214, 213) -> 211 -[94,1](215, 213) -> 212 -[95,1](216, 216) -> 213 -[95,1](217, 216) -> 214 -[95,1](218, 216) -> 215 -[96,1](219, 219) -> 216 -[96,1](220, 219) -> 217 -[96,1](221, 219) -> 218 -[97,1](222, 222) -> 219 -[97,1](223, 222) -> 220 -[97,1](224, 222) -> 221 -[98,1](225, 225) -> 222 -[98,1](226, 225) -> 223 -[98,1](227, 225) -> 224 -[99,1](228, 228) -> 225 -[99,1](229, 228) -> 226 -[99,1](230, 228) -> 227 -[100,1](231, 231) -> 228 -[100,1](232, 231) -> 229 -[100,1](233, 231) -> 230 -[101,1](234, 234) -> 231 -[101,1](235, 234) -> 232 -[101,1](236, 234) -> 233 -[102,1](237, 237) -> 234 -[102,1](238, 237) -> 235 -[102,1](239, 237) -> 236 -[103,1](240, 240) -> 237 -[103,1](241, 240) -> 238 -[103,1](242, 240) -> 239 -[104,1](243, 243) -> 240 -[104,1](244, 243) -> 241 -[104,1](245, 243) -> 242 -[105,1](246, 246) -> 243 -[105,1](247, 246) -> 244 -[105,1](248, 246) -> 245 -[106,1](249, 249) -> 246 -[106,1](250, 249) -> 247 -[106,1](251, 249) -> 248 -[107,1](252, 252) -> 249 -[107,1](253, 252) -> 250 -[107,1](254, 252) -> 251 -[108,1](255, 255) -> 252 -[108,1](256, 255) -> 253 -[108,1](257, 255) -> 254 -[109,1](258, 258) -> 255 -[109,1](259, 258) -> 256 -[109,1](260, 258) -> 257 -[110,1](261, 261) -> 258 -[110,1](262, 261) -> 259 -[110,1](263, 261) -> 260 -[111,1](264, 264) -> 261 -[111,1](265, 264) -> 262 -[111,1](266, 264) -> 263 -[112,1](267, 267) -> 264 -[112,1](268, 267) -> 265 -[112,1](269, 267) -> 266 -[113,1](270, 270) -> 267 -[113,1](271, 270) -> 268 -[113,1](272, 270) -> 269 -[114,1](273, 273) -> 270 -[114,1](274, 273) -> 271 -[114,1](275, 273) -> 272 -[115,1](276, 276) -> 273 -[115,1](277, 276) -> 274 -[115,1](278, 276) -> 275 -[116,1](279, 279) -> 276 -[116,1](280, 279) -> 277 -[116,1](281, 279) -> 278 -[117,1](282, 282) -> 279 -[117,1](283, 282) -> 280 -[117,1](284, 282) -> 281 -[118,1](285, 285) -> 282 -[118,1](286, 285) -> 283 -[118,1](287, 285) -> 284 -[119,1](288, 288) -> 285 -[119,1](289, 288) -> 286 -[119,1](290, 288) -> 287 -[120,1](291, 291) -> 288 -[120,1](292, 291) -> 289 -[120,1](293, 291) -> 290 -[121,1](294, 294) -> 291 -[121,1](295, 294) -> 292 -[121,1](296, 294) -> 293 -[122,1](297, 297) -> 294 -[122,1](298, 297) -> 295 -[122,1](299, 297) -> 296 -[123,1](300, 300) -> 297 -[123,1](301, 300) -> 298 -[123,1](302, 300) -> 299 -[124,1](303, 303) -> 300 -[124,1](304, 303) -> 301 -[124,1](305, 303) -> 302 -[125,1](306, 306) -> 303 -[125,1](307, 306) -> 304 -[125,1](308, 306) -> 305 -[126,1](309, 309) -> 306 -[126,1](310, 309) -> 307 -[126,1](311, 309) -> 308 -[127,1](312, 312) -> 309 -[127,1](313, 312) -> 310 -[127,1](314, 312) -> 311 -[128,1](315, 315) -> 312 -[128,1](316, 315) -> 313 -[128,1](317, 315) -> 314 -[129,1](318, 318) -> 315 -[129,1](319, 318) -> 316 -[129,1](320, 318) -> 317 -[130,1](321, 321) -> 318 -[130,1](322, 321) -> 319 -[130,1](323, 321) -> 320 -[131,1](324, 324) -> 321 -[131,1](325, 324) -> 322 -[131,1](326, 324) -> 323 -[132,1](327, 327) -> 324 -[132,1](328, 327) -> 325 -[132,1](329, 327) -> 326 -[133,1](330, 330) -> 327 -[133,1](331, 330) -> 328 -[133,1](332, 330) -> 329 -[134,1](333, 333) -> 330 -[134,1](334, 333) -> 331 -[134,1](335, 333) -> 332 -[p1,1] -> 333 -[p2,1] -> 334 -[p3,1] -> 335 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/67/pre.hsl b/benchmarks/all/OEGrover/67/pre.hsl index 9f4651bcf..b4fe6c426 100644 --- a/benchmarks/all/OEGrover/67/pre.hsl +++ b/benchmarks/all/OEGrover/67/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 32 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 147573952589676412927 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/67/pre.lsta b/benchmarks/all/OEGrover/67/pre.lsta deleted file mode 100644 index 558bd83da..000000000 --- a/benchmarks/all/OEGrover/67/pre.lsta +++ /dev/null @@ -1,346 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 136) -> 133 -[68,1](135, 137) -> 134 -[69,1](138, 138) -> 135 -[69,1](139, 138) -> 136 -[69,1](140, 138) -> 137 -[70,1](141, 141) -> 138 -[70,1](142, 141) -> 139 -[70,1](143, 141) -> 140 -[71,1](144, 144) -> 141 -[71,1](145, 144) -> 142 -[71,1](146, 144) -> 143 -[72,1](147, 147) -> 144 -[72,1](148, 147) -> 145 -[72,1](149, 147) -> 146 -[73,1](150, 150) -> 147 -[73,1](151, 150) -> 148 -[73,1](152, 150) -> 149 -[74,1](153, 153) -> 150 -[74,1](154, 153) -> 151 -[74,1](155, 153) -> 152 -[75,1](156, 156) -> 153 -[75,1](157, 156) -> 154 -[75,1](158, 156) -> 155 -[76,1](159, 159) -> 156 -[76,1](160, 159) -> 157 -[76,1](161, 159) -> 158 -[77,1](162, 162) -> 159 -[77,1](163, 162) -> 160 -[77,1](164, 162) -> 161 -[78,1](165, 165) -> 162 -[78,1](166, 165) -> 163 -[78,1](167, 165) -> 164 -[79,1](168, 168) -> 165 -[79,1](169, 168) -> 166 -[79,1](170, 168) -> 167 -[80,1](171, 171) -> 168 -[80,1](172, 171) -> 169 -[80,1](173, 171) -> 170 -[81,1](174, 174) -> 171 -[81,1](175, 174) -> 172 -[81,1](176, 174) -> 173 -[82,1](177, 177) -> 174 -[82,1](178, 177) -> 175 -[82,1](179, 177) -> 176 -[83,1](180, 180) -> 177 -[83,1](181, 180) -> 178 -[83,1](182, 180) -> 179 -[84,1](183, 183) -> 180 -[84,1](184, 183) -> 181 -[84,1](185, 183) -> 182 -[85,1](186, 186) -> 183 -[85,1](187, 186) -> 184 -[85,1](188, 186) -> 185 -[86,1](189, 189) -> 186 -[86,1](190, 189) -> 187 -[86,1](191, 189) -> 188 -[87,1](192, 192) -> 189 -[87,1](193, 192) -> 190 -[87,1](194, 192) -> 191 -[88,1](195, 195) -> 192 -[88,1](196, 195) -> 193 -[88,1](197, 195) -> 194 -[89,1](198, 198) -> 195 -[89,1](199, 198) -> 196 -[89,1](200, 198) -> 197 -[90,1](201, 201) -> 198 -[90,1](202, 201) -> 199 -[90,1](203, 201) -> 200 -[91,1](204, 204) -> 201 -[91,1](205, 204) -> 202 -[91,1](206, 204) -> 203 -[92,1](207, 207) -> 204 -[92,1](208, 207) -> 205 -[92,1](209, 207) -> 206 -[93,1](210, 210) -> 207 -[93,1](211, 210) -> 208 -[93,1](212, 210) -> 209 -[94,1](213, 213) -> 210 -[94,1](214, 213) -> 211 -[94,1](215, 213) -> 212 -[95,1](216, 216) -> 213 -[95,1](217, 216) -> 214 -[95,1](218, 216) -> 215 -[96,1](219, 219) -> 216 -[96,1](220, 219) -> 217 -[96,1](221, 219) -> 218 -[97,1](222, 222) -> 219 -[97,1](223, 222) -> 220 -[97,1](224, 222) -> 221 -[98,1](225, 225) -> 222 -[98,1](226, 225) -> 223 -[98,1](227, 225) -> 224 -[99,1](228, 228) -> 225 -[99,1](229, 228) -> 226 -[99,1](230, 228) -> 227 -[100,1](231, 231) -> 228 -[100,1](232, 231) -> 229 -[100,1](233, 231) -> 230 -[101,1](234, 234) -> 231 -[101,1](235, 234) -> 232 -[101,1](236, 234) -> 233 -[102,1](237, 237) -> 234 -[102,1](238, 237) -> 235 -[102,1](239, 237) -> 236 -[103,1](240, 240) -> 237 -[103,1](241, 240) -> 238 -[103,1](242, 240) -> 239 -[104,1](243, 243) -> 240 -[104,1](244, 243) -> 241 -[104,1](245, 243) -> 242 -[105,1](246, 246) -> 243 -[105,1](247, 246) -> 244 -[105,1](248, 246) -> 245 -[106,1](249, 249) -> 246 -[106,1](250, 249) -> 247 -[106,1](251, 249) -> 248 -[107,1](252, 252) -> 249 -[107,1](253, 252) -> 250 -[107,1](254, 252) -> 251 -[108,1](255, 255) -> 252 -[108,1](256, 255) -> 253 -[108,1](257, 255) -> 254 -[109,1](258, 258) -> 255 -[109,1](259, 258) -> 256 -[109,1](260, 258) -> 257 -[110,1](261, 261) -> 258 -[110,1](262, 261) -> 259 -[110,1](263, 261) -> 260 -[111,1](264, 264) -> 261 -[111,1](265, 264) -> 262 -[111,1](266, 264) -> 263 -[112,1](267, 267) -> 264 -[112,1](268, 267) -> 265 -[112,1](269, 267) -> 266 -[113,1](270, 270) -> 267 -[113,1](271, 270) -> 268 -[113,1](272, 270) -> 269 -[114,1](273, 273) -> 270 -[114,1](274, 273) -> 271 -[114,1](275, 273) -> 272 -[115,1](276, 276) -> 273 -[115,1](277, 276) -> 274 -[115,1](278, 276) -> 275 -[116,1](279, 279) -> 276 -[116,1](280, 279) -> 277 -[116,1](281, 279) -> 278 -[117,1](282, 282) -> 279 -[117,1](283, 282) -> 280 -[117,1](284, 282) -> 281 -[118,1](285, 285) -> 282 -[118,1](286, 285) -> 283 -[118,1](287, 285) -> 284 -[119,1](288, 288) -> 285 -[119,1](289, 288) -> 286 -[119,1](290, 288) -> 287 -[120,1](291, 291) -> 288 -[120,1](292, 291) -> 289 -[120,1](293, 291) -> 290 -[121,1](294, 294) -> 291 -[121,1](295, 294) -> 292 -[121,1](296, 294) -> 293 -[122,1](297, 297) -> 294 -[122,1](298, 297) -> 295 -[122,1](299, 297) -> 296 -[123,1](300, 300) -> 297 -[123,1](301, 300) -> 298 -[123,1](302, 300) -> 299 -[124,1](303, 303) -> 300 -[124,1](304, 303) -> 301 -[124,1](305, 303) -> 302 -[125,1](306, 306) -> 303 -[125,1](307, 306) -> 304 -[125,1](308, 306) -> 305 -[126,1](309, 309) -> 306 -[126,1](310, 309) -> 307 -[126,1](311, 309) -> 308 -[127,1](312, 312) -> 309 -[127,1](313, 312) -> 310 -[127,1](314, 312) -> 311 -[128,1](315, 315) -> 312 -[128,1](316, 315) -> 313 -[128,1](317, 315) -> 314 -[129,1](318, 318) -> 315 -[129,1](319, 318) -> 316 -[129,1](320, 318) -> 317 -[130,1](321, 321) -> 318 -[130,1](322, 321) -> 319 -[130,1](323, 321) -> 320 -[131,1](324, 324) -> 321 -[131,1](325, 324) -> 322 -[131,1](326, 324) -> 323 -[132,1](327, 327) -> 324 -[132,1](328, 327) -> 325 -[132,1](329, 327) -> 326 -[133,1](330, 330) -> 327 -[133,1](331, 330) -> 328 -[133,1](332, 330) -> 329 -[134,1](333, 333) -> 330 -[134,1](334, 333) -> 331 -[134,1](335, 333) -> 332 -[c0,1] -> 333 -[a,1] -> 334 -[b,1] -> 335 -Constraints -147573952589676412927 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/68/circuit.qasm b/benchmarks/all/OEGrover/68/circuit.qasm index 668e9e917..92f77bcfc 100644 --- a/benchmarks/all/OEGrover/68/circuit.qasm +++ b/benchmarks/all/OEGrover/68/circuit.qasm @@ -1,174 +1,174 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[136]; +qreg qubits[135]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -ccx qubits[0], qubits[1], qubits[69]; -ccx qubits[2], qubits[69], qubits[70]; -ccx qubits[3], qubits[70], qubits[71]; -ccx qubits[4], qubits[71], qubits[72]; -ccx qubits[5], qubits[72], qubits[73]; -ccx qubits[6], qubits[73], qubits[74]; -ccx qubits[7], qubits[74], qubits[75]; -ccx qubits[8], qubits[75], qubits[76]; -ccx qubits[9], qubits[76], qubits[77]; -ccx qubits[10], qubits[77], qubits[78]; -ccx qubits[11], qubits[78], qubits[79]; -ccx qubits[12], qubits[79], qubits[80]; -ccx qubits[13], qubits[80], qubits[81]; -ccx qubits[14], qubits[81], qubits[82]; -ccx qubits[15], qubits[82], qubits[83]; -ccx qubits[16], qubits[83], qubits[84]; -ccx qubits[17], qubits[84], qubits[85]; -ccx qubits[18], qubits[85], qubits[86]; -ccx qubits[19], qubits[86], qubits[87]; -ccx qubits[20], qubits[87], qubits[88]; -ccx qubits[21], qubits[88], qubits[89]; -ccx qubits[22], qubits[89], qubits[90]; -ccx qubits[23], qubits[90], qubits[91]; -ccx qubits[24], qubits[91], qubits[92]; -ccx qubits[25], qubits[92], qubits[93]; -ccx qubits[26], qubits[93], qubits[94]; -ccx qubits[27], qubits[94], qubits[95]; -ccx qubits[28], qubits[95], qubits[96]; -ccx qubits[29], qubits[96], qubits[97]; -ccx qubits[30], qubits[97], qubits[98]; -ccx qubits[31], qubits[98], qubits[99]; -ccx qubits[32], qubits[99], qubits[100]; -ccx qubits[33], qubits[100], qubits[101]; -ccx qubits[34], qubits[101], qubits[102]; -ccx qubits[35], qubits[102], qubits[103]; -ccx qubits[36], qubits[103], qubits[104]; -ccx qubits[37], qubits[104], qubits[105]; -ccx qubits[38], qubits[105], qubits[106]; -ccx qubits[39], qubits[106], qubits[107]; -ccx qubits[40], qubits[107], qubits[108]; -ccx qubits[41], qubits[108], qubits[109]; -ccx qubits[42], qubits[109], qubits[110]; -ccx qubits[43], qubits[110], qubits[111]; -ccx qubits[44], qubits[111], qubits[112]; -ccx qubits[45], qubits[112], qubits[113]; -ccx qubits[46], qubits[113], qubits[114]; -ccx qubits[47], qubits[114], qubits[115]; -ccx qubits[48], qubits[115], qubits[116]; -ccx qubits[49], qubits[116], qubits[117]; -ccx qubits[50], qubits[117], qubits[118]; -ccx qubits[51], qubits[118], qubits[119]; -ccx qubits[52], qubits[119], qubits[120]; -ccx qubits[53], qubits[120], qubits[121]; -ccx qubits[54], qubits[121], qubits[122]; -ccx qubits[55], qubits[122], qubits[123]; -ccx qubits[56], qubits[123], qubits[124]; -ccx qubits[57], qubits[124], qubits[125]; -ccx qubits[58], qubits[125], qubits[126]; -ccx qubits[59], qubits[126], qubits[127]; -ccx qubits[60], qubits[127], qubits[128]; -ccx qubits[61], qubits[128], qubits[129]; -ccx qubits[62], qubits[129], qubits[130]; -ccx qubits[63], qubits[130], qubits[131]; -ccx qubits[64], qubits[131], qubits[132]; -ccx qubits[65], qubits[132], qubits[133]; -ccx qubits[66], qubits[133], qubits[134]; -cz qubits[134], qubits[67]; -ccx qubits[66], qubits[133], qubits[134]; -ccx qubits[65], qubits[132], qubits[133]; -ccx qubits[64], qubits[131], qubits[132]; -ccx qubits[63], qubits[130], qubits[131]; -ccx qubits[62], qubits[129], qubits[130]; -ccx qubits[61], qubits[128], qubits[129]; -ccx qubits[60], qubits[127], qubits[128]; -ccx qubits[59], qubits[126], qubits[127]; -ccx qubits[58], qubits[125], qubits[126]; -ccx qubits[57], qubits[124], qubits[125]; -ccx qubits[56], qubits[123], qubits[124]; -ccx qubits[55], qubits[122], qubits[123]; -ccx qubits[54], qubits[121], qubits[122]; -ccx qubits[53], qubits[120], qubits[121]; -ccx qubits[52], qubits[119], qubits[120]; -ccx qubits[51], qubits[118], qubits[119]; -ccx qubits[50], qubits[117], qubits[118]; -ccx qubits[49], qubits[116], qubits[117]; -ccx qubits[48], qubits[115], qubits[116]; -ccx qubits[47], qubits[114], qubits[115]; -ccx qubits[46], qubits[113], qubits[114]; -ccx qubits[45], qubits[112], qubits[113]; -ccx qubits[44], qubits[111], qubits[112]; -ccx qubits[43], qubits[110], qubits[111]; -ccx qubits[42], qubits[109], qubits[110]; -ccx qubits[41], qubits[108], qubits[109]; -ccx qubits[40], qubits[107], qubits[108]; -ccx qubits[39], qubits[106], qubits[107]; -ccx qubits[38], qubits[105], qubits[106]; -ccx qubits[37], qubits[104], qubits[105]; -ccx qubits[36], qubits[103], qubits[104]; -ccx qubits[35], qubits[102], qubits[103]; -ccx qubits[34], qubits[101], qubits[102]; -ccx qubits[33], qubits[100], qubits[101]; -ccx qubits[32], qubits[99], qubits[100]; -ccx qubits[31], qubits[98], qubits[99]; -ccx qubits[30], qubits[97], qubits[98]; -ccx qubits[29], qubits[96], qubits[97]; -ccx qubits[28], qubits[95], qubits[96]; -ccx qubits[27], qubits[94], qubits[95]; -ccx qubits[26], qubits[93], qubits[94]; -ccx qubits[25], qubits[92], qubits[93]; -ccx qubits[24], qubits[91], qubits[92]; -ccx qubits[23], qubits[90], qubits[91]; -ccx qubits[22], qubits[89], qubits[90]; -ccx qubits[21], qubits[88], qubits[89]; -ccx qubits[20], qubits[87], qubits[88]; -ccx qubits[19], qubits[86], qubits[87]; -ccx qubits[18], qubits[85], qubits[86]; -ccx qubits[17], qubits[84], qubits[85]; -ccx qubits[16], qubits[83], qubits[84]; -ccx qubits[15], qubits[82], qubits[83]; -ccx qubits[14], qubits[81], qubits[82]; -ccx qubits[13], qubits[80], qubits[81]; -ccx qubits[12], qubits[79], qubits[80]; -ccx qubits[11], qubits[78], qubits[79]; -ccx qubits[10], qubits[77], qubits[78]; -ccx qubits[9], qubits[76], qubits[77]; -ccx qubits[8], qubits[75], qubits[76]; -ccx qubits[7], qubits[74], qubits[75]; -ccx qubits[6], qubits[73], qubits[74]; -ccx qubits[5], qubits[72], qubits[73]; -ccx qubits[4], qubits[71], qubits[72]; -ccx qubits[3], qubits[70], qubits[71]; -ccx qubits[2], qubits[69], qubits[70]; -ccx qubits[0], qubits[1], qubits[69]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +cz qubits[132], qubits[133]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -205,407 +205,407 @@ x qubits[64]; x qubits[66]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -ccx qubits[0], qubits[1], qubits[69]; -ccx qubits[2], qubits[69], qubits[70]; -ccx qubits[3], qubits[70], qubits[71]; -ccx qubits[4], qubits[71], qubits[72]; -ccx qubits[5], qubits[72], qubits[73]; -ccx qubits[6], qubits[73], qubits[74]; -ccx qubits[7], qubits[74], qubits[75]; -ccx qubits[8], qubits[75], qubits[76]; -ccx qubits[9], qubits[76], qubits[77]; -ccx qubits[10], qubits[77], qubits[78]; -ccx qubits[11], qubits[78], qubits[79]; -ccx qubits[12], qubits[79], qubits[80]; -ccx qubits[13], qubits[80], qubits[81]; -ccx qubits[14], qubits[81], qubits[82]; -ccx qubits[15], qubits[82], qubits[83]; -ccx qubits[16], qubits[83], qubits[84]; -ccx qubits[17], qubits[84], qubits[85]; -ccx qubits[18], qubits[85], qubits[86]; -ccx qubits[19], qubits[86], qubits[87]; -ccx qubits[20], qubits[87], qubits[88]; -ccx qubits[21], qubits[88], qubits[89]; -ccx qubits[22], qubits[89], qubits[90]; -ccx qubits[23], qubits[90], qubits[91]; -ccx qubits[24], qubits[91], qubits[92]; -ccx qubits[25], qubits[92], qubits[93]; -ccx qubits[26], qubits[93], qubits[94]; -ccx qubits[27], qubits[94], qubits[95]; -ccx qubits[28], qubits[95], qubits[96]; -ccx qubits[29], qubits[96], qubits[97]; -ccx qubits[30], qubits[97], qubits[98]; -ccx qubits[31], qubits[98], qubits[99]; -ccx qubits[32], qubits[99], qubits[100]; -ccx qubits[33], qubits[100], qubits[101]; -ccx qubits[34], qubits[101], qubits[102]; -ccx qubits[35], qubits[102], qubits[103]; -ccx qubits[36], qubits[103], qubits[104]; -ccx qubits[37], qubits[104], qubits[105]; -ccx qubits[38], qubits[105], qubits[106]; -ccx qubits[39], qubits[106], qubits[107]; -ccx qubits[40], qubits[107], qubits[108]; -ccx qubits[41], qubits[108], qubits[109]; -ccx qubits[42], qubits[109], qubits[110]; -ccx qubits[43], qubits[110], qubits[111]; -ccx qubits[44], qubits[111], qubits[112]; -ccx qubits[45], qubits[112], qubits[113]; -ccx qubits[46], qubits[113], qubits[114]; -ccx qubits[47], qubits[114], qubits[115]; -ccx qubits[48], qubits[115], qubits[116]; -ccx qubits[49], qubits[116], qubits[117]; -ccx qubits[50], qubits[117], qubits[118]; -ccx qubits[51], qubits[118], qubits[119]; -ccx qubits[52], qubits[119], qubits[120]; -ccx qubits[53], qubits[120], qubits[121]; -ccx qubits[54], qubits[121], qubits[122]; -ccx qubits[55], qubits[122], qubits[123]; -ccx qubits[56], qubits[123], qubits[124]; -ccx qubits[57], qubits[124], qubits[125]; -ccx qubits[58], qubits[125], qubits[126]; -ccx qubits[59], qubits[126], qubits[127]; -ccx qubits[60], qubits[127], qubits[128]; -ccx qubits[61], qubits[128], qubits[129]; -ccx qubits[62], qubits[129], qubits[130]; -ccx qubits[63], qubits[130], qubits[131]; -ccx qubits[64], qubits[131], qubits[132]; -ccx qubits[65], qubits[132], qubits[133]; -ccx qubits[66], qubits[133], qubits[134]; -cz qubits[134], qubits[67]; -ccx qubits[66], qubits[133], qubits[134]; -ccx qubits[65], qubits[132], qubits[133]; -ccx qubits[64], qubits[131], qubits[132]; -ccx qubits[63], qubits[130], qubits[131]; -ccx qubits[62], qubits[129], qubits[130]; -ccx qubits[61], qubits[128], qubits[129]; -ccx qubits[60], qubits[127], qubits[128]; -ccx qubits[59], qubits[126], qubits[127]; -ccx qubits[58], qubits[125], qubits[126]; -ccx qubits[57], qubits[124], qubits[125]; -ccx qubits[56], qubits[123], qubits[124]; -ccx qubits[55], qubits[122], qubits[123]; -ccx qubits[54], qubits[121], qubits[122]; -ccx qubits[53], qubits[120], qubits[121]; -ccx qubits[52], qubits[119], qubits[120]; -ccx qubits[51], qubits[118], qubits[119]; -ccx qubits[50], qubits[117], qubits[118]; -ccx qubits[49], qubits[116], qubits[117]; -ccx qubits[48], qubits[115], qubits[116]; -ccx qubits[47], qubits[114], qubits[115]; -ccx qubits[46], qubits[113], qubits[114]; -ccx qubits[45], qubits[112], qubits[113]; -ccx qubits[44], qubits[111], qubits[112]; -ccx qubits[43], qubits[110], qubits[111]; -ccx qubits[42], qubits[109], qubits[110]; -ccx qubits[41], qubits[108], qubits[109]; -ccx qubits[40], qubits[107], qubits[108]; -ccx qubits[39], qubits[106], qubits[107]; -ccx qubits[38], qubits[105], qubits[106]; -ccx qubits[37], qubits[104], qubits[105]; -ccx qubits[36], qubits[103], qubits[104]; -ccx qubits[35], qubits[102], qubits[103]; -ccx qubits[34], qubits[101], qubits[102]; -ccx qubits[33], qubits[100], qubits[101]; -ccx qubits[32], qubits[99], qubits[100]; -ccx qubits[31], qubits[98], qubits[99]; -ccx qubits[30], qubits[97], qubits[98]; -ccx qubits[29], qubits[96], qubits[97]; -ccx qubits[28], qubits[95], qubits[96]; -ccx qubits[27], qubits[94], qubits[95]; -ccx qubits[26], qubits[93], qubits[94]; -ccx qubits[25], qubits[92], qubits[93]; -ccx qubits[24], qubits[91], qubits[92]; -ccx qubits[23], qubits[90], qubits[91]; -ccx qubits[22], qubits[89], qubits[90]; -ccx qubits[21], qubits[88], qubits[89]; -ccx qubits[20], qubits[87], qubits[88]; -ccx qubits[19], qubits[86], qubits[87]; -ccx qubits[18], qubits[85], qubits[86]; -ccx qubits[17], qubits[84], qubits[85]; -ccx qubits[16], qubits[83], qubits[84]; -ccx qubits[15], qubits[82], qubits[83]; -ccx qubits[14], qubits[81], qubits[82]; -ccx qubits[13], qubits[80], qubits[81]; -ccx qubits[12], qubits[79], qubits[80]; -ccx qubits[11], qubits[78], qubits[79]; -ccx qubits[10], qubits[77], qubits[78]; -ccx qubits[9], qubits[76], qubits[77]; -ccx qubits[8], qubits[75], qubits[76]; -ccx qubits[7], qubits[74], qubits[75]; -ccx qubits[6], qubits[73], qubits[74]; -ccx qubits[5], qubits[72], qubits[73]; -ccx qubits[4], qubits[71], qubits[72]; -ccx qubits[3], qubits[70], qubits[71]; -ccx qubits[2], qubits[69], qubits[70]; -ccx qubits[0], qubits[1], qubits[69]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +cz qubits[132], qubits[133]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -z qubits[68]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +z qubits[134]; diff --git a/benchmarks/all/OEGrover/68/post.hsl b/benchmarks/all/OEGrover/68/post.hsl index ca8b328dc..4face06f2 100644 --- a/benchmarks/all/OEGrover/68/post.hsl +++ b/benchmarks/all/OEGrover/68/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 33 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/68/post.lsta b/benchmarks/all/OEGrover/68/post.lsta deleted file mode 100644 index 5e6df47fb..000000000 --- a/benchmarks/all/OEGrover/68/post.lsta +++ /dev/null @@ -1,347 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 138) -> 135 -[69,1](137, 139) -> 136 -[70,1](140, 140) -> 137 -[70,1](141, 140) -> 138 -[70,1](142, 140) -> 139 -[71,1](143, 143) -> 140 -[71,1](144, 143) -> 141 -[71,1](145, 143) -> 142 -[72,1](146, 146) -> 143 -[72,1](147, 146) -> 144 -[72,1](148, 146) -> 145 -[73,1](149, 149) -> 146 -[73,1](150, 149) -> 147 -[73,1](151, 149) -> 148 -[74,1](152, 152) -> 149 -[74,1](153, 152) -> 150 -[74,1](154, 152) -> 151 -[75,1](155, 155) -> 152 -[75,1](156, 155) -> 153 -[75,1](157, 155) -> 154 -[76,1](158, 158) -> 155 -[76,1](159, 158) -> 156 -[76,1](160, 158) -> 157 -[77,1](161, 161) -> 158 -[77,1](162, 161) -> 159 -[77,1](163, 161) -> 160 -[78,1](164, 164) -> 161 -[78,1](165, 164) -> 162 -[78,1](166, 164) -> 163 -[79,1](167, 167) -> 164 -[79,1](168, 167) -> 165 -[79,1](169, 167) -> 166 -[80,1](170, 170) -> 167 -[80,1](171, 170) -> 168 -[80,1](172, 170) -> 169 -[81,1](173, 173) -> 170 -[81,1](174, 173) -> 171 -[81,1](175, 173) -> 172 -[82,1](176, 176) -> 173 -[82,1](177, 176) -> 174 -[82,1](178, 176) -> 175 -[83,1](179, 179) -> 176 -[83,1](180, 179) -> 177 -[83,1](181, 179) -> 178 -[84,1](182, 182) -> 179 -[84,1](183, 182) -> 180 -[84,1](184, 182) -> 181 -[85,1](185, 185) -> 182 -[85,1](186, 185) -> 183 -[85,1](187, 185) -> 184 -[86,1](188, 188) -> 185 -[86,1](189, 188) -> 186 -[86,1](190, 188) -> 187 -[87,1](191, 191) -> 188 -[87,1](192, 191) -> 189 -[87,1](193, 191) -> 190 -[88,1](194, 194) -> 191 -[88,1](195, 194) -> 192 -[88,1](196, 194) -> 193 -[89,1](197, 197) -> 194 -[89,1](198, 197) -> 195 -[89,1](199, 197) -> 196 -[90,1](200, 200) -> 197 -[90,1](201, 200) -> 198 -[90,1](202, 200) -> 199 -[91,1](203, 203) -> 200 -[91,1](204, 203) -> 201 -[91,1](205, 203) -> 202 -[92,1](206, 206) -> 203 -[92,1](207, 206) -> 204 -[92,1](208, 206) -> 205 -[93,1](209, 209) -> 206 -[93,1](210, 209) -> 207 -[93,1](211, 209) -> 208 -[94,1](212, 212) -> 209 -[94,1](213, 212) -> 210 -[94,1](214, 212) -> 211 -[95,1](215, 215) -> 212 -[95,1](216, 215) -> 213 -[95,1](217, 215) -> 214 -[96,1](218, 218) -> 215 -[96,1](219, 218) -> 216 -[96,1](220, 218) -> 217 -[97,1](221, 221) -> 218 -[97,1](222, 221) -> 219 -[97,1](223, 221) -> 220 -[98,1](224, 224) -> 221 -[98,1](225, 224) -> 222 -[98,1](226, 224) -> 223 -[99,1](227, 227) -> 224 -[99,1](228, 227) -> 225 -[99,1](229, 227) -> 226 -[100,1](230, 230) -> 227 -[100,1](231, 230) -> 228 -[100,1](232, 230) -> 229 -[101,1](233, 233) -> 230 -[101,1](234, 233) -> 231 -[101,1](235, 233) -> 232 -[102,1](236, 236) -> 233 -[102,1](237, 236) -> 234 -[102,1](238, 236) -> 235 -[103,1](239, 239) -> 236 -[103,1](240, 239) -> 237 -[103,1](241, 239) -> 238 -[104,1](242, 242) -> 239 -[104,1](243, 242) -> 240 -[104,1](244, 242) -> 241 -[105,1](245, 245) -> 242 -[105,1](246, 245) -> 243 -[105,1](247, 245) -> 244 -[106,1](248, 248) -> 245 -[106,1](249, 248) -> 246 -[106,1](250, 248) -> 247 -[107,1](251, 251) -> 248 -[107,1](252, 251) -> 249 -[107,1](253, 251) -> 250 -[108,1](254, 254) -> 251 -[108,1](255, 254) -> 252 -[108,1](256, 254) -> 253 -[109,1](257, 257) -> 254 -[109,1](258, 257) -> 255 -[109,1](259, 257) -> 256 -[110,1](260, 260) -> 257 -[110,1](261, 260) -> 258 -[110,1](262, 260) -> 259 -[111,1](263, 263) -> 260 -[111,1](264, 263) -> 261 -[111,1](265, 263) -> 262 -[112,1](266, 266) -> 263 -[112,1](267, 266) -> 264 -[112,1](268, 266) -> 265 -[113,1](269, 269) -> 266 -[113,1](270, 269) -> 267 -[113,1](271, 269) -> 268 -[114,1](272, 272) -> 269 -[114,1](273, 272) -> 270 -[114,1](274, 272) -> 271 -[115,1](275, 275) -> 272 -[115,1](276, 275) -> 273 -[115,1](277, 275) -> 274 -[116,1](278, 278) -> 275 -[116,1](279, 278) -> 276 -[116,1](280, 278) -> 277 -[117,1](281, 281) -> 278 -[117,1](282, 281) -> 279 -[117,1](283, 281) -> 280 -[118,1](284, 284) -> 281 -[118,1](285, 284) -> 282 -[118,1](286, 284) -> 283 -[119,1](287, 287) -> 284 -[119,1](288, 287) -> 285 -[119,1](289, 287) -> 286 -[120,1](290, 290) -> 287 -[120,1](291, 290) -> 288 -[120,1](292, 290) -> 289 -[121,1](293, 293) -> 290 -[121,1](294, 293) -> 291 -[121,1](295, 293) -> 292 -[122,1](296, 296) -> 293 -[122,1](297, 296) -> 294 -[122,1](298, 296) -> 295 -[123,1](299, 299) -> 296 -[123,1](300, 299) -> 297 -[123,1](301, 299) -> 298 -[124,1](302, 302) -> 299 -[124,1](303, 302) -> 300 -[124,1](304, 302) -> 301 -[125,1](305, 305) -> 302 -[125,1](306, 305) -> 303 -[125,1](307, 305) -> 304 -[126,1](308, 308) -> 305 -[126,1](309, 308) -> 306 -[126,1](310, 308) -> 307 -[127,1](311, 311) -> 308 -[127,1](312, 311) -> 309 -[127,1](313, 311) -> 310 -[128,1](314, 314) -> 311 -[128,1](315, 314) -> 312 -[128,1](316, 314) -> 313 -[129,1](317, 317) -> 314 -[129,1](318, 317) -> 315 -[129,1](319, 317) -> 316 -[130,1](320, 320) -> 317 -[130,1](321, 320) -> 318 -[130,1](322, 320) -> 319 -[131,1](323, 323) -> 320 -[131,1](324, 323) -> 321 -[131,1](325, 323) -> 322 -[132,1](326, 326) -> 323 -[132,1](327, 326) -> 324 -[132,1](328, 326) -> 325 -[133,1](329, 329) -> 326 -[133,1](330, 329) -> 327 -[133,1](331, 329) -> 328 -[134,1](332, 332) -> 329 -[134,1](333, 332) -> 330 -[134,1](334, 332) -> 331 -[135,1](335, 335) -> 332 -[135,1](336, 335) -> 333 -[135,1](337, 335) -> 334 -[136,1](338, 338) -> 335 -[136,1](339, 338) -> 336 -[136,1](340, 338) -> 337 -[p1,1] -> 338 -[p2,1] -> 339 -[p3,1] -> 340 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/68/pre.hsl b/benchmarks/all/OEGrover/68/pre.hsl index 1a5e20a15..c7fac3e4e 100644 --- a/benchmarks/all/OEGrover/68/pre.hsl +++ b/benchmarks/all/OEGrover/68/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 33 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 295147905179352825855 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/68/pre.lsta b/benchmarks/all/OEGrover/68/pre.lsta deleted file mode 100644 index 386cf8c8e..000000000 --- a/benchmarks/all/OEGrover/68/pre.lsta +++ /dev/null @@ -1,351 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 138) -> 135 -[69,1](137, 139) -> 136 -[70,1](140, 140) -> 137 -[70,1](141, 140) -> 138 -[70,1](142, 140) -> 139 -[71,1](143, 143) -> 140 -[71,1](144, 143) -> 141 -[71,1](145, 143) -> 142 -[72,1](146, 146) -> 143 -[72,1](147, 146) -> 144 -[72,1](148, 146) -> 145 -[73,1](149, 149) -> 146 -[73,1](150, 149) -> 147 -[73,1](151, 149) -> 148 -[74,1](152, 152) -> 149 -[74,1](153, 152) -> 150 -[74,1](154, 152) -> 151 -[75,1](155, 155) -> 152 -[75,1](156, 155) -> 153 -[75,1](157, 155) -> 154 -[76,1](158, 158) -> 155 -[76,1](159, 158) -> 156 -[76,1](160, 158) -> 157 -[77,1](161, 161) -> 158 -[77,1](162, 161) -> 159 -[77,1](163, 161) -> 160 -[78,1](164, 164) -> 161 -[78,1](165, 164) -> 162 -[78,1](166, 164) -> 163 -[79,1](167, 167) -> 164 -[79,1](168, 167) -> 165 -[79,1](169, 167) -> 166 -[80,1](170, 170) -> 167 -[80,1](171, 170) -> 168 -[80,1](172, 170) -> 169 -[81,1](173, 173) -> 170 -[81,1](174, 173) -> 171 -[81,1](175, 173) -> 172 -[82,1](176, 176) -> 173 -[82,1](177, 176) -> 174 -[82,1](178, 176) -> 175 -[83,1](179, 179) -> 176 -[83,1](180, 179) -> 177 -[83,1](181, 179) -> 178 -[84,1](182, 182) -> 179 -[84,1](183, 182) -> 180 -[84,1](184, 182) -> 181 -[85,1](185, 185) -> 182 -[85,1](186, 185) -> 183 -[85,1](187, 185) -> 184 -[86,1](188, 188) -> 185 -[86,1](189, 188) -> 186 -[86,1](190, 188) -> 187 -[87,1](191, 191) -> 188 -[87,1](192, 191) -> 189 -[87,1](193, 191) -> 190 -[88,1](194, 194) -> 191 -[88,1](195, 194) -> 192 -[88,1](196, 194) -> 193 -[89,1](197, 197) -> 194 -[89,1](198, 197) -> 195 -[89,1](199, 197) -> 196 -[90,1](200, 200) -> 197 -[90,1](201, 200) -> 198 -[90,1](202, 200) -> 199 -[91,1](203, 203) -> 200 -[91,1](204, 203) -> 201 -[91,1](205, 203) -> 202 -[92,1](206, 206) -> 203 -[92,1](207, 206) -> 204 -[92,1](208, 206) -> 205 -[93,1](209, 209) -> 206 -[93,1](210, 209) -> 207 -[93,1](211, 209) -> 208 -[94,1](212, 212) -> 209 -[94,1](213, 212) -> 210 -[94,1](214, 212) -> 211 -[95,1](215, 215) -> 212 -[95,1](216, 215) -> 213 -[95,1](217, 215) -> 214 -[96,1](218, 218) -> 215 -[96,1](219, 218) -> 216 -[96,1](220, 218) -> 217 -[97,1](221, 221) -> 218 -[97,1](222, 221) -> 219 -[97,1](223, 221) -> 220 -[98,1](224, 224) -> 221 -[98,1](225, 224) -> 222 -[98,1](226, 224) -> 223 -[99,1](227, 227) -> 224 -[99,1](228, 227) -> 225 -[99,1](229, 227) -> 226 -[100,1](230, 230) -> 227 -[100,1](231, 230) -> 228 -[100,1](232, 230) -> 229 -[101,1](233, 233) -> 230 -[101,1](234, 233) -> 231 -[101,1](235, 233) -> 232 -[102,1](236, 236) -> 233 -[102,1](237, 236) -> 234 -[102,1](238, 236) -> 235 -[103,1](239, 239) -> 236 -[103,1](240, 239) -> 237 -[103,1](241, 239) -> 238 -[104,1](242, 242) -> 239 -[104,1](243, 242) -> 240 -[104,1](244, 242) -> 241 -[105,1](245, 245) -> 242 -[105,1](246, 245) -> 243 -[105,1](247, 245) -> 244 -[106,1](248, 248) -> 245 -[106,1](249, 248) -> 246 -[106,1](250, 248) -> 247 -[107,1](251, 251) -> 248 -[107,1](252, 251) -> 249 -[107,1](253, 251) -> 250 -[108,1](254, 254) -> 251 -[108,1](255, 254) -> 252 -[108,1](256, 254) -> 253 -[109,1](257, 257) -> 254 -[109,1](258, 257) -> 255 -[109,1](259, 257) -> 256 -[110,1](260, 260) -> 257 -[110,1](261, 260) -> 258 -[110,1](262, 260) -> 259 -[111,1](263, 263) -> 260 -[111,1](264, 263) -> 261 -[111,1](265, 263) -> 262 -[112,1](266, 266) -> 263 -[112,1](267, 266) -> 264 -[112,1](268, 266) -> 265 -[113,1](269, 269) -> 266 -[113,1](270, 269) -> 267 -[113,1](271, 269) -> 268 -[114,1](272, 272) -> 269 -[114,1](273, 272) -> 270 -[114,1](274, 272) -> 271 -[115,1](275, 275) -> 272 -[115,1](276, 275) -> 273 -[115,1](277, 275) -> 274 -[116,1](278, 278) -> 275 -[116,1](279, 278) -> 276 -[116,1](280, 278) -> 277 -[117,1](281, 281) -> 278 -[117,1](282, 281) -> 279 -[117,1](283, 281) -> 280 -[118,1](284, 284) -> 281 -[118,1](285, 284) -> 282 -[118,1](286, 284) -> 283 -[119,1](287, 287) -> 284 -[119,1](288, 287) -> 285 -[119,1](289, 287) -> 286 -[120,1](290, 290) -> 287 -[120,1](291, 290) -> 288 -[120,1](292, 290) -> 289 -[121,1](293, 293) -> 290 -[121,1](294, 293) -> 291 -[121,1](295, 293) -> 292 -[122,1](296, 296) -> 293 -[122,1](297, 296) -> 294 -[122,1](298, 296) -> 295 -[123,1](299, 299) -> 296 -[123,1](300, 299) -> 297 -[123,1](301, 299) -> 298 -[124,1](302, 302) -> 299 -[124,1](303, 302) -> 300 -[124,1](304, 302) -> 301 -[125,1](305, 305) -> 302 -[125,1](306, 305) -> 303 -[125,1](307, 305) -> 304 -[126,1](308, 308) -> 305 -[126,1](309, 308) -> 306 -[126,1](310, 308) -> 307 -[127,1](311, 311) -> 308 -[127,1](312, 311) -> 309 -[127,1](313, 311) -> 310 -[128,1](314, 314) -> 311 -[128,1](315, 314) -> 312 -[128,1](316, 314) -> 313 -[129,1](317, 317) -> 314 -[129,1](318, 317) -> 315 -[129,1](319, 317) -> 316 -[130,1](320, 320) -> 317 -[130,1](321, 320) -> 318 -[130,1](322, 320) -> 319 -[131,1](323, 323) -> 320 -[131,1](324, 323) -> 321 -[131,1](325, 323) -> 322 -[132,1](326, 326) -> 323 -[132,1](327, 326) -> 324 -[132,1](328, 326) -> 325 -[133,1](329, 329) -> 326 -[133,1](330, 329) -> 327 -[133,1](331, 329) -> 328 -[134,1](332, 332) -> 329 -[134,1](333, 332) -> 330 -[134,1](334, 332) -> 331 -[135,1](335, 335) -> 332 -[135,1](336, 335) -> 333 -[135,1](337, 335) -> 334 -[136,1](338, 338) -> 335 -[136,1](339, 338) -> 336 -[136,1](340, 338) -> 337 -[c0,1] -> 338 -[a,1] -> 339 -[b,1] -> 340 -Constraints -295147905179352825855 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/69/circuit.qasm b/benchmarks/all/OEGrover/69/circuit.qasm index 80dba11cc..e3a461ad6 100644 --- a/benchmarks/all/OEGrover/69/circuit.qasm +++ b/benchmarks/all/OEGrover/69/circuit.qasm @@ -1,177 +1,177 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[138]; +qreg qubits[137]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -ccx qubits[0], qubits[1], qubits[70]; -ccx qubits[2], qubits[70], qubits[71]; -ccx qubits[3], qubits[71], qubits[72]; -ccx qubits[4], qubits[72], qubits[73]; -ccx qubits[5], qubits[73], qubits[74]; -ccx qubits[6], qubits[74], qubits[75]; -ccx qubits[7], qubits[75], qubits[76]; -ccx qubits[8], qubits[76], qubits[77]; -ccx qubits[9], qubits[77], qubits[78]; -ccx qubits[10], qubits[78], qubits[79]; -ccx qubits[11], qubits[79], qubits[80]; -ccx qubits[12], qubits[80], qubits[81]; -ccx qubits[13], qubits[81], qubits[82]; -ccx qubits[14], qubits[82], qubits[83]; -ccx qubits[15], qubits[83], qubits[84]; -ccx qubits[16], qubits[84], qubits[85]; -ccx qubits[17], qubits[85], qubits[86]; -ccx qubits[18], qubits[86], qubits[87]; -ccx qubits[19], qubits[87], qubits[88]; -ccx qubits[20], qubits[88], qubits[89]; -ccx qubits[21], qubits[89], qubits[90]; -ccx qubits[22], qubits[90], qubits[91]; -ccx qubits[23], qubits[91], qubits[92]; -ccx qubits[24], qubits[92], qubits[93]; -ccx qubits[25], qubits[93], qubits[94]; -ccx qubits[26], qubits[94], qubits[95]; -ccx qubits[27], qubits[95], qubits[96]; -ccx qubits[28], qubits[96], qubits[97]; -ccx qubits[29], qubits[97], qubits[98]; -ccx qubits[30], qubits[98], qubits[99]; -ccx qubits[31], qubits[99], qubits[100]; -ccx qubits[32], qubits[100], qubits[101]; -ccx qubits[33], qubits[101], qubits[102]; -ccx qubits[34], qubits[102], qubits[103]; -ccx qubits[35], qubits[103], qubits[104]; -ccx qubits[36], qubits[104], qubits[105]; -ccx qubits[37], qubits[105], qubits[106]; -ccx qubits[38], qubits[106], qubits[107]; -ccx qubits[39], qubits[107], qubits[108]; -ccx qubits[40], qubits[108], qubits[109]; -ccx qubits[41], qubits[109], qubits[110]; -ccx qubits[42], qubits[110], qubits[111]; -ccx qubits[43], qubits[111], qubits[112]; -ccx qubits[44], qubits[112], qubits[113]; -ccx qubits[45], qubits[113], qubits[114]; -ccx qubits[46], qubits[114], qubits[115]; -ccx qubits[47], qubits[115], qubits[116]; -ccx qubits[48], qubits[116], qubits[117]; -ccx qubits[49], qubits[117], qubits[118]; -ccx qubits[50], qubits[118], qubits[119]; -ccx qubits[51], qubits[119], qubits[120]; -ccx qubits[52], qubits[120], qubits[121]; -ccx qubits[53], qubits[121], qubits[122]; -ccx qubits[54], qubits[122], qubits[123]; -ccx qubits[55], qubits[123], qubits[124]; -ccx qubits[56], qubits[124], qubits[125]; -ccx qubits[57], qubits[125], qubits[126]; -ccx qubits[58], qubits[126], qubits[127]; -ccx qubits[59], qubits[127], qubits[128]; -ccx qubits[60], qubits[128], qubits[129]; -ccx qubits[61], qubits[129], qubits[130]; -ccx qubits[62], qubits[130], qubits[131]; -ccx qubits[63], qubits[131], qubits[132]; -ccx qubits[64], qubits[132], qubits[133]; -ccx qubits[65], qubits[133], qubits[134]; -ccx qubits[66], qubits[134], qubits[135]; -ccx qubits[67], qubits[135], qubits[136]; -cz qubits[136], qubits[68]; -ccx qubits[67], qubits[135], qubits[136]; -ccx qubits[66], qubits[134], qubits[135]; -ccx qubits[65], qubits[133], qubits[134]; -ccx qubits[64], qubits[132], qubits[133]; -ccx qubits[63], qubits[131], qubits[132]; -ccx qubits[62], qubits[130], qubits[131]; -ccx qubits[61], qubits[129], qubits[130]; -ccx qubits[60], qubits[128], qubits[129]; -ccx qubits[59], qubits[127], qubits[128]; -ccx qubits[58], qubits[126], qubits[127]; -ccx qubits[57], qubits[125], qubits[126]; -ccx qubits[56], qubits[124], qubits[125]; -ccx qubits[55], qubits[123], qubits[124]; -ccx qubits[54], qubits[122], qubits[123]; -ccx qubits[53], qubits[121], qubits[122]; -ccx qubits[52], qubits[120], qubits[121]; -ccx qubits[51], qubits[119], qubits[120]; -ccx qubits[50], qubits[118], qubits[119]; -ccx qubits[49], qubits[117], qubits[118]; -ccx qubits[48], qubits[116], qubits[117]; -ccx qubits[47], qubits[115], qubits[116]; -ccx qubits[46], qubits[114], qubits[115]; -ccx qubits[45], qubits[113], qubits[114]; -ccx qubits[44], qubits[112], qubits[113]; -ccx qubits[43], qubits[111], qubits[112]; -ccx qubits[42], qubits[110], qubits[111]; -ccx qubits[41], qubits[109], qubits[110]; -ccx qubits[40], qubits[108], qubits[109]; -ccx qubits[39], qubits[107], qubits[108]; -ccx qubits[38], qubits[106], qubits[107]; -ccx qubits[37], qubits[105], qubits[106]; -ccx qubits[36], qubits[104], qubits[105]; -ccx qubits[35], qubits[103], qubits[104]; -ccx qubits[34], qubits[102], qubits[103]; -ccx qubits[33], qubits[101], qubits[102]; -ccx qubits[32], qubits[100], qubits[101]; -ccx qubits[31], qubits[99], qubits[100]; -ccx qubits[30], qubits[98], qubits[99]; -ccx qubits[29], qubits[97], qubits[98]; -ccx qubits[28], qubits[96], qubits[97]; -ccx qubits[27], qubits[95], qubits[96]; -ccx qubits[26], qubits[94], qubits[95]; -ccx qubits[25], qubits[93], qubits[94]; -ccx qubits[24], qubits[92], qubits[93]; -ccx qubits[23], qubits[91], qubits[92]; -ccx qubits[22], qubits[90], qubits[91]; -ccx qubits[21], qubits[89], qubits[90]; -ccx qubits[20], qubits[88], qubits[89]; -ccx qubits[19], qubits[87], qubits[88]; -ccx qubits[18], qubits[86], qubits[87]; -ccx qubits[17], qubits[85], qubits[86]; -ccx qubits[16], qubits[84], qubits[85]; -ccx qubits[15], qubits[83], qubits[84]; -ccx qubits[14], qubits[82], qubits[83]; -ccx qubits[13], qubits[81], qubits[82]; -ccx qubits[12], qubits[80], qubits[81]; -ccx qubits[11], qubits[79], qubits[80]; -ccx qubits[10], qubits[78], qubits[79]; -ccx qubits[9], qubits[77], qubits[78]; -ccx qubits[8], qubits[76], qubits[77]; -ccx qubits[7], qubits[75], qubits[76]; -ccx qubits[6], qubits[74], qubits[75]; -ccx qubits[5], qubits[73], qubits[74]; -ccx qubits[4], qubits[72], qubits[73]; -ccx qubits[3], qubits[71], qubits[72]; -ccx qubits[2], qubits[70], qubits[71]; -ccx qubits[0], qubits[1], qubits[70]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +cz qubits[134], qubits[135]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -209,413 +209,413 @@ x qubits[66]; x qubits[68]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; -ccx qubits[0], qubits[1], qubits[70]; -ccx qubits[2], qubits[70], qubits[71]; -ccx qubits[3], qubits[71], qubits[72]; -ccx qubits[4], qubits[72], qubits[73]; -ccx qubits[5], qubits[73], qubits[74]; -ccx qubits[6], qubits[74], qubits[75]; -ccx qubits[7], qubits[75], qubits[76]; -ccx qubits[8], qubits[76], qubits[77]; -ccx qubits[9], qubits[77], qubits[78]; -ccx qubits[10], qubits[78], qubits[79]; -ccx qubits[11], qubits[79], qubits[80]; -ccx qubits[12], qubits[80], qubits[81]; -ccx qubits[13], qubits[81], qubits[82]; -ccx qubits[14], qubits[82], qubits[83]; -ccx qubits[15], qubits[83], qubits[84]; -ccx qubits[16], qubits[84], qubits[85]; -ccx qubits[17], qubits[85], qubits[86]; -ccx qubits[18], qubits[86], qubits[87]; -ccx qubits[19], qubits[87], qubits[88]; -ccx qubits[20], qubits[88], qubits[89]; -ccx qubits[21], qubits[89], qubits[90]; -ccx qubits[22], qubits[90], qubits[91]; -ccx qubits[23], qubits[91], qubits[92]; -ccx qubits[24], qubits[92], qubits[93]; -ccx qubits[25], qubits[93], qubits[94]; -ccx qubits[26], qubits[94], qubits[95]; -ccx qubits[27], qubits[95], qubits[96]; -ccx qubits[28], qubits[96], qubits[97]; -ccx qubits[29], qubits[97], qubits[98]; -ccx qubits[30], qubits[98], qubits[99]; -ccx qubits[31], qubits[99], qubits[100]; -ccx qubits[32], qubits[100], qubits[101]; -ccx qubits[33], qubits[101], qubits[102]; -ccx qubits[34], qubits[102], qubits[103]; -ccx qubits[35], qubits[103], qubits[104]; -ccx qubits[36], qubits[104], qubits[105]; -ccx qubits[37], qubits[105], qubits[106]; -ccx qubits[38], qubits[106], qubits[107]; -ccx qubits[39], qubits[107], qubits[108]; -ccx qubits[40], qubits[108], qubits[109]; -ccx qubits[41], qubits[109], qubits[110]; -ccx qubits[42], qubits[110], qubits[111]; -ccx qubits[43], qubits[111], qubits[112]; -ccx qubits[44], qubits[112], qubits[113]; -ccx qubits[45], qubits[113], qubits[114]; -ccx qubits[46], qubits[114], qubits[115]; -ccx qubits[47], qubits[115], qubits[116]; -ccx qubits[48], qubits[116], qubits[117]; -ccx qubits[49], qubits[117], qubits[118]; -ccx qubits[50], qubits[118], qubits[119]; -ccx qubits[51], qubits[119], qubits[120]; -ccx qubits[52], qubits[120], qubits[121]; -ccx qubits[53], qubits[121], qubits[122]; -ccx qubits[54], qubits[122], qubits[123]; -ccx qubits[55], qubits[123], qubits[124]; -ccx qubits[56], qubits[124], qubits[125]; -ccx qubits[57], qubits[125], qubits[126]; -ccx qubits[58], qubits[126], qubits[127]; -ccx qubits[59], qubits[127], qubits[128]; -ccx qubits[60], qubits[128], qubits[129]; -ccx qubits[61], qubits[129], qubits[130]; -ccx qubits[62], qubits[130], qubits[131]; -ccx qubits[63], qubits[131], qubits[132]; -ccx qubits[64], qubits[132], qubits[133]; -ccx qubits[65], qubits[133], qubits[134]; -ccx qubits[66], qubits[134], qubits[135]; -ccx qubits[67], qubits[135], qubits[136]; -cz qubits[136], qubits[68]; -ccx qubits[67], qubits[135], qubits[136]; -ccx qubits[66], qubits[134], qubits[135]; -ccx qubits[65], qubits[133], qubits[134]; -ccx qubits[64], qubits[132], qubits[133]; -ccx qubits[63], qubits[131], qubits[132]; -ccx qubits[62], qubits[130], qubits[131]; -ccx qubits[61], qubits[129], qubits[130]; -ccx qubits[60], qubits[128], qubits[129]; -ccx qubits[59], qubits[127], qubits[128]; -ccx qubits[58], qubits[126], qubits[127]; -ccx qubits[57], qubits[125], qubits[126]; -ccx qubits[56], qubits[124], qubits[125]; -ccx qubits[55], qubits[123], qubits[124]; -ccx qubits[54], qubits[122], qubits[123]; -ccx qubits[53], qubits[121], qubits[122]; -ccx qubits[52], qubits[120], qubits[121]; -ccx qubits[51], qubits[119], qubits[120]; -ccx qubits[50], qubits[118], qubits[119]; -ccx qubits[49], qubits[117], qubits[118]; -ccx qubits[48], qubits[116], qubits[117]; -ccx qubits[47], qubits[115], qubits[116]; -ccx qubits[46], qubits[114], qubits[115]; -ccx qubits[45], qubits[113], qubits[114]; -ccx qubits[44], qubits[112], qubits[113]; -ccx qubits[43], qubits[111], qubits[112]; -ccx qubits[42], qubits[110], qubits[111]; -ccx qubits[41], qubits[109], qubits[110]; -ccx qubits[40], qubits[108], qubits[109]; -ccx qubits[39], qubits[107], qubits[108]; -ccx qubits[38], qubits[106], qubits[107]; -ccx qubits[37], qubits[105], qubits[106]; -ccx qubits[36], qubits[104], qubits[105]; -ccx qubits[35], qubits[103], qubits[104]; -ccx qubits[34], qubits[102], qubits[103]; -ccx qubits[33], qubits[101], qubits[102]; -ccx qubits[32], qubits[100], qubits[101]; -ccx qubits[31], qubits[99], qubits[100]; -ccx qubits[30], qubits[98], qubits[99]; -ccx qubits[29], qubits[97], qubits[98]; -ccx qubits[28], qubits[96], qubits[97]; -ccx qubits[27], qubits[95], qubits[96]; -ccx qubits[26], qubits[94], qubits[95]; -ccx qubits[25], qubits[93], qubits[94]; -ccx qubits[24], qubits[92], qubits[93]; -ccx qubits[23], qubits[91], qubits[92]; -ccx qubits[22], qubits[90], qubits[91]; -ccx qubits[21], qubits[89], qubits[90]; -ccx qubits[20], qubits[88], qubits[89]; -ccx qubits[19], qubits[87], qubits[88]; -ccx qubits[18], qubits[86], qubits[87]; -ccx qubits[17], qubits[85], qubits[86]; -ccx qubits[16], qubits[84], qubits[85]; -ccx qubits[15], qubits[83], qubits[84]; -ccx qubits[14], qubits[82], qubits[83]; -ccx qubits[13], qubits[81], qubits[82]; -ccx qubits[12], qubits[80], qubits[81]; -ccx qubits[11], qubits[79], qubits[80]; -ccx qubits[10], qubits[78], qubits[79]; -ccx qubits[9], qubits[77], qubits[78]; -ccx qubits[8], qubits[76], qubits[77]; -ccx qubits[7], qubits[75], qubits[76]; -ccx qubits[6], qubits[74], qubits[75]; -ccx qubits[5], qubits[73], qubits[74]; -ccx qubits[4], qubits[72], qubits[73]; -ccx qubits[3], qubits[71], qubits[72]; -ccx qubits[2], qubits[70], qubits[71]; -ccx qubits[0], qubits[1], qubits[70]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +cz qubits[134], qubits[135]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; +x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; -z qubits[69]; +h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +z qubits[136]; diff --git a/benchmarks/all/OEGrover/69/post.hsl b/benchmarks/all/OEGrover/69/post.hsl index a03801f0a..1092b4a55 100644 --- a/benchmarks/all/OEGrover/69/post.hsl +++ b/benchmarks/all/OEGrover/69/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 33 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/69/post.lsta b/benchmarks/all/OEGrover/69/post.lsta deleted file mode 100644 index edcbcc769..000000000 --- a/benchmarks/all/OEGrover/69/post.lsta +++ /dev/null @@ -1,352 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 140) -> 137 -[70,1](139, 141) -> 138 -[71,1](142, 142) -> 139 -[71,1](143, 142) -> 140 -[71,1](144, 142) -> 141 -[72,1](145, 145) -> 142 -[72,1](146, 145) -> 143 -[72,1](147, 145) -> 144 -[73,1](148, 148) -> 145 -[73,1](149, 148) -> 146 -[73,1](150, 148) -> 147 -[74,1](151, 151) -> 148 -[74,1](152, 151) -> 149 -[74,1](153, 151) -> 150 -[75,1](154, 154) -> 151 -[75,1](155, 154) -> 152 -[75,1](156, 154) -> 153 -[76,1](157, 157) -> 154 -[76,1](158, 157) -> 155 -[76,1](159, 157) -> 156 -[77,1](160, 160) -> 157 -[77,1](161, 160) -> 158 -[77,1](162, 160) -> 159 -[78,1](163, 163) -> 160 -[78,1](164, 163) -> 161 -[78,1](165, 163) -> 162 -[79,1](166, 166) -> 163 -[79,1](167, 166) -> 164 -[79,1](168, 166) -> 165 -[80,1](169, 169) -> 166 -[80,1](170, 169) -> 167 -[80,1](171, 169) -> 168 -[81,1](172, 172) -> 169 -[81,1](173, 172) -> 170 -[81,1](174, 172) -> 171 -[82,1](175, 175) -> 172 -[82,1](176, 175) -> 173 -[82,1](177, 175) -> 174 -[83,1](178, 178) -> 175 -[83,1](179, 178) -> 176 -[83,1](180, 178) -> 177 -[84,1](181, 181) -> 178 -[84,1](182, 181) -> 179 -[84,1](183, 181) -> 180 -[85,1](184, 184) -> 181 -[85,1](185, 184) -> 182 -[85,1](186, 184) -> 183 -[86,1](187, 187) -> 184 -[86,1](188, 187) -> 185 -[86,1](189, 187) -> 186 -[87,1](190, 190) -> 187 -[87,1](191, 190) -> 188 -[87,1](192, 190) -> 189 -[88,1](193, 193) -> 190 -[88,1](194, 193) -> 191 -[88,1](195, 193) -> 192 -[89,1](196, 196) -> 193 -[89,1](197, 196) -> 194 -[89,1](198, 196) -> 195 -[90,1](199, 199) -> 196 -[90,1](200, 199) -> 197 -[90,1](201, 199) -> 198 -[91,1](202, 202) -> 199 -[91,1](203, 202) -> 200 -[91,1](204, 202) -> 201 -[92,1](205, 205) -> 202 -[92,1](206, 205) -> 203 -[92,1](207, 205) -> 204 -[93,1](208, 208) -> 205 -[93,1](209, 208) -> 206 -[93,1](210, 208) -> 207 -[94,1](211, 211) -> 208 -[94,1](212, 211) -> 209 -[94,1](213, 211) -> 210 -[95,1](214, 214) -> 211 -[95,1](215, 214) -> 212 -[95,1](216, 214) -> 213 -[96,1](217, 217) -> 214 -[96,1](218, 217) -> 215 -[96,1](219, 217) -> 216 -[97,1](220, 220) -> 217 -[97,1](221, 220) -> 218 -[97,1](222, 220) -> 219 -[98,1](223, 223) -> 220 -[98,1](224, 223) -> 221 -[98,1](225, 223) -> 222 -[99,1](226, 226) -> 223 -[99,1](227, 226) -> 224 -[99,1](228, 226) -> 225 -[100,1](229, 229) -> 226 -[100,1](230, 229) -> 227 -[100,1](231, 229) -> 228 -[101,1](232, 232) -> 229 -[101,1](233, 232) -> 230 -[101,1](234, 232) -> 231 -[102,1](235, 235) -> 232 -[102,1](236, 235) -> 233 -[102,1](237, 235) -> 234 -[103,1](238, 238) -> 235 -[103,1](239, 238) -> 236 -[103,1](240, 238) -> 237 -[104,1](241, 241) -> 238 -[104,1](242, 241) -> 239 -[104,1](243, 241) -> 240 -[105,1](244, 244) -> 241 -[105,1](245, 244) -> 242 -[105,1](246, 244) -> 243 -[106,1](247, 247) -> 244 -[106,1](248, 247) -> 245 -[106,1](249, 247) -> 246 -[107,1](250, 250) -> 247 -[107,1](251, 250) -> 248 -[107,1](252, 250) -> 249 -[108,1](253, 253) -> 250 -[108,1](254, 253) -> 251 -[108,1](255, 253) -> 252 -[109,1](256, 256) -> 253 -[109,1](257, 256) -> 254 -[109,1](258, 256) -> 255 -[110,1](259, 259) -> 256 -[110,1](260, 259) -> 257 -[110,1](261, 259) -> 258 -[111,1](262, 262) -> 259 -[111,1](263, 262) -> 260 -[111,1](264, 262) -> 261 -[112,1](265, 265) -> 262 -[112,1](266, 265) -> 263 -[112,1](267, 265) -> 264 -[113,1](268, 268) -> 265 -[113,1](269, 268) -> 266 -[113,1](270, 268) -> 267 -[114,1](271, 271) -> 268 -[114,1](272, 271) -> 269 -[114,1](273, 271) -> 270 -[115,1](274, 274) -> 271 -[115,1](275, 274) -> 272 -[115,1](276, 274) -> 273 -[116,1](277, 277) -> 274 -[116,1](278, 277) -> 275 -[116,1](279, 277) -> 276 -[117,1](280, 280) -> 277 -[117,1](281, 280) -> 278 -[117,1](282, 280) -> 279 -[118,1](283, 283) -> 280 -[118,1](284, 283) -> 281 -[118,1](285, 283) -> 282 -[119,1](286, 286) -> 283 -[119,1](287, 286) -> 284 -[119,1](288, 286) -> 285 -[120,1](289, 289) -> 286 -[120,1](290, 289) -> 287 -[120,1](291, 289) -> 288 -[121,1](292, 292) -> 289 -[121,1](293, 292) -> 290 -[121,1](294, 292) -> 291 -[122,1](295, 295) -> 292 -[122,1](296, 295) -> 293 -[122,1](297, 295) -> 294 -[123,1](298, 298) -> 295 -[123,1](299, 298) -> 296 -[123,1](300, 298) -> 297 -[124,1](301, 301) -> 298 -[124,1](302, 301) -> 299 -[124,1](303, 301) -> 300 -[125,1](304, 304) -> 301 -[125,1](305, 304) -> 302 -[125,1](306, 304) -> 303 -[126,1](307, 307) -> 304 -[126,1](308, 307) -> 305 -[126,1](309, 307) -> 306 -[127,1](310, 310) -> 307 -[127,1](311, 310) -> 308 -[127,1](312, 310) -> 309 -[128,1](313, 313) -> 310 -[128,1](314, 313) -> 311 -[128,1](315, 313) -> 312 -[129,1](316, 316) -> 313 -[129,1](317, 316) -> 314 -[129,1](318, 316) -> 315 -[130,1](319, 319) -> 316 -[130,1](320, 319) -> 317 -[130,1](321, 319) -> 318 -[131,1](322, 322) -> 319 -[131,1](323, 322) -> 320 -[131,1](324, 322) -> 321 -[132,1](325, 325) -> 322 -[132,1](326, 325) -> 323 -[132,1](327, 325) -> 324 -[133,1](328, 328) -> 325 -[133,1](329, 328) -> 326 -[133,1](330, 328) -> 327 -[134,1](331, 331) -> 328 -[134,1](332, 331) -> 329 -[134,1](333, 331) -> 330 -[135,1](334, 334) -> 331 -[135,1](335, 334) -> 332 -[135,1](336, 334) -> 333 -[136,1](337, 337) -> 334 -[136,1](338, 337) -> 335 -[136,1](339, 337) -> 336 -[137,1](340, 340) -> 337 -[137,1](341, 340) -> 338 -[137,1](342, 340) -> 339 -[138,1](343, 343) -> 340 -[138,1](344, 343) -> 341 -[138,1](345, 343) -> 342 -[p1,1] -> 343 -[p2,1] -> 344 -[p3,1] -> 345 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/69/pre.hsl b/benchmarks/all/OEGrover/69/pre.hsl index bb8a5c42b..180262755 100644 --- a/benchmarks/all/OEGrover/69/pre.hsl +++ b/benchmarks/all/OEGrover/69/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 33 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 590295810358705651711 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/69/pre.lsta b/benchmarks/all/OEGrover/69/pre.lsta deleted file mode 100644 index bd139ce2a..000000000 --- a/benchmarks/all/OEGrover/69/pre.lsta +++ /dev/null @@ -1,356 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 140) -> 137 -[70,1](139, 141) -> 138 -[71,1](142, 142) -> 139 -[71,1](143, 142) -> 140 -[71,1](144, 142) -> 141 -[72,1](145, 145) -> 142 -[72,1](146, 145) -> 143 -[72,1](147, 145) -> 144 -[73,1](148, 148) -> 145 -[73,1](149, 148) -> 146 -[73,1](150, 148) -> 147 -[74,1](151, 151) -> 148 -[74,1](152, 151) -> 149 -[74,1](153, 151) -> 150 -[75,1](154, 154) -> 151 -[75,1](155, 154) -> 152 -[75,1](156, 154) -> 153 -[76,1](157, 157) -> 154 -[76,1](158, 157) -> 155 -[76,1](159, 157) -> 156 -[77,1](160, 160) -> 157 -[77,1](161, 160) -> 158 -[77,1](162, 160) -> 159 -[78,1](163, 163) -> 160 -[78,1](164, 163) -> 161 -[78,1](165, 163) -> 162 -[79,1](166, 166) -> 163 -[79,1](167, 166) -> 164 -[79,1](168, 166) -> 165 -[80,1](169, 169) -> 166 -[80,1](170, 169) -> 167 -[80,1](171, 169) -> 168 -[81,1](172, 172) -> 169 -[81,1](173, 172) -> 170 -[81,1](174, 172) -> 171 -[82,1](175, 175) -> 172 -[82,1](176, 175) -> 173 -[82,1](177, 175) -> 174 -[83,1](178, 178) -> 175 -[83,1](179, 178) -> 176 -[83,1](180, 178) -> 177 -[84,1](181, 181) -> 178 -[84,1](182, 181) -> 179 -[84,1](183, 181) -> 180 -[85,1](184, 184) -> 181 -[85,1](185, 184) -> 182 -[85,1](186, 184) -> 183 -[86,1](187, 187) -> 184 -[86,1](188, 187) -> 185 -[86,1](189, 187) -> 186 -[87,1](190, 190) -> 187 -[87,1](191, 190) -> 188 -[87,1](192, 190) -> 189 -[88,1](193, 193) -> 190 -[88,1](194, 193) -> 191 -[88,1](195, 193) -> 192 -[89,1](196, 196) -> 193 -[89,1](197, 196) -> 194 -[89,1](198, 196) -> 195 -[90,1](199, 199) -> 196 -[90,1](200, 199) -> 197 -[90,1](201, 199) -> 198 -[91,1](202, 202) -> 199 -[91,1](203, 202) -> 200 -[91,1](204, 202) -> 201 -[92,1](205, 205) -> 202 -[92,1](206, 205) -> 203 -[92,1](207, 205) -> 204 -[93,1](208, 208) -> 205 -[93,1](209, 208) -> 206 -[93,1](210, 208) -> 207 -[94,1](211, 211) -> 208 -[94,1](212, 211) -> 209 -[94,1](213, 211) -> 210 -[95,1](214, 214) -> 211 -[95,1](215, 214) -> 212 -[95,1](216, 214) -> 213 -[96,1](217, 217) -> 214 -[96,1](218, 217) -> 215 -[96,1](219, 217) -> 216 -[97,1](220, 220) -> 217 -[97,1](221, 220) -> 218 -[97,1](222, 220) -> 219 -[98,1](223, 223) -> 220 -[98,1](224, 223) -> 221 -[98,1](225, 223) -> 222 -[99,1](226, 226) -> 223 -[99,1](227, 226) -> 224 -[99,1](228, 226) -> 225 -[100,1](229, 229) -> 226 -[100,1](230, 229) -> 227 -[100,1](231, 229) -> 228 -[101,1](232, 232) -> 229 -[101,1](233, 232) -> 230 -[101,1](234, 232) -> 231 -[102,1](235, 235) -> 232 -[102,1](236, 235) -> 233 -[102,1](237, 235) -> 234 -[103,1](238, 238) -> 235 -[103,1](239, 238) -> 236 -[103,1](240, 238) -> 237 -[104,1](241, 241) -> 238 -[104,1](242, 241) -> 239 -[104,1](243, 241) -> 240 -[105,1](244, 244) -> 241 -[105,1](245, 244) -> 242 -[105,1](246, 244) -> 243 -[106,1](247, 247) -> 244 -[106,1](248, 247) -> 245 -[106,1](249, 247) -> 246 -[107,1](250, 250) -> 247 -[107,1](251, 250) -> 248 -[107,1](252, 250) -> 249 -[108,1](253, 253) -> 250 -[108,1](254, 253) -> 251 -[108,1](255, 253) -> 252 -[109,1](256, 256) -> 253 -[109,1](257, 256) -> 254 -[109,1](258, 256) -> 255 -[110,1](259, 259) -> 256 -[110,1](260, 259) -> 257 -[110,1](261, 259) -> 258 -[111,1](262, 262) -> 259 -[111,1](263, 262) -> 260 -[111,1](264, 262) -> 261 -[112,1](265, 265) -> 262 -[112,1](266, 265) -> 263 -[112,1](267, 265) -> 264 -[113,1](268, 268) -> 265 -[113,1](269, 268) -> 266 -[113,1](270, 268) -> 267 -[114,1](271, 271) -> 268 -[114,1](272, 271) -> 269 -[114,1](273, 271) -> 270 -[115,1](274, 274) -> 271 -[115,1](275, 274) -> 272 -[115,1](276, 274) -> 273 -[116,1](277, 277) -> 274 -[116,1](278, 277) -> 275 -[116,1](279, 277) -> 276 -[117,1](280, 280) -> 277 -[117,1](281, 280) -> 278 -[117,1](282, 280) -> 279 -[118,1](283, 283) -> 280 -[118,1](284, 283) -> 281 -[118,1](285, 283) -> 282 -[119,1](286, 286) -> 283 -[119,1](287, 286) -> 284 -[119,1](288, 286) -> 285 -[120,1](289, 289) -> 286 -[120,1](290, 289) -> 287 -[120,1](291, 289) -> 288 -[121,1](292, 292) -> 289 -[121,1](293, 292) -> 290 -[121,1](294, 292) -> 291 -[122,1](295, 295) -> 292 -[122,1](296, 295) -> 293 -[122,1](297, 295) -> 294 -[123,1](298, 298) -> 295 -[123,1](299, 298) -> 296 -[123,1](300, 298) -> 297 -[124,1](301, 301) -> 298 -[124,1](302, 301) -> 299 -[124,1](303, 301) -> 300 -[125,1](304, 304) -> 301 -[125,1](305, 304) -> 302 -[125,1](306, 304) -> 303 -[126,1](307, 307) -> 304 -[126,1](308, 307) -> 305 -[126,1](309, 307) -> 306 -[127,1](310, 310) -> 307 -[127,1](311, 310) -> 308 -[127,1](312, 310) -> 309 -[128,1](313, 313) -> 310 -[128,1](314, 313) -> 311 -[128,1](315, 313) -> 312 -[129,1](316, 316) -> 313 -[129,1](317, 316) -> 314 -[129,1](318, 316) -> 315 -[130,1](319, 319) -> 316 -[130,1](320, 319) -> 317 -[130,1](321, 319) -> 318 -[131,1](322, 322) -> 319 -[131,1](323, 322) -> 320 -[131,1](324, 322) -> 321 -[132,1](325, 325) -> 322 -[132,1](326, 325) -> 323 -[132,1](327, 325) -> 324 -[133,1](328, 328) -> 325 -[133,1](329, 328) -> 326 -[133,1](330, 328) -> 327 -[134,1](331, 331) -> 328 -[134,1](332, 331) -> 329 -[134,1](333, 331) -> 330 -[135,1](334, 334) -> 331 -[135,1](335, 334) -> 332 -[135,1](336, 334) -> 333 -[136,1](337, 337) -> 334 -[136,1](338, 337) -> 335 -[136,1](339, 337) -> 336 -[137,1](340, 340) -> 337 -[137,1](341, 340) -> 338 -[137,1](342, 340) -> 339 -[138,1](343, 343) -> 340 -[138,1](344, 343) -> 341 -[138,1](345, 343) -> 342 -[c0,1] -> 343 -[a,1] -> 344 -[b,1] -> 345 -Constraints -590295810358705651711 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/70/circuit.qasm b/benchmarks/all/OEGrover/70/circuit.qasm index 3a0d86591..a97a82d4b 100644 --- a/benchmarks/all/OEGrover/70/circuit.qasm +++ b/benchmarks/all/OEGrover/70/circuit.qasm @@ -1,179 +1,179 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[140]; +qreg qubits[139]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -ccx qubits[0], qubits[1], qubits[71]; -ccx qubits[2], qubits[71], qubits[72]; -ccx qubits[3], qubits[72], qubits[73]; -ccx qubits[4], qubits[73], qubits[74]; -ccx qubits[5], qubits[74], qubits[75]; -ccx qubits[6], qubits[75], qubits[76]; -ccx qubits[7], qubits[76], qubits[77]; -ccx qubits[8], qubits[77], qubits[78]; -ccx qubits[9], qubits[78], qubits[79]; -ccx qubits[10], qubits[79], qubits[80]; -ccx qubits[11], qubits[80], qubits[81]; -ccx qubits[12], qubits[81], qubits[82]; -ccx qubits[13], qubits[82], qubits[83]; -ccx qubits[14], qubits[83], qubits[84]; -ccx qubits[15], qubits[84], qubits[85]; -ccx qubits[16], qubits[85], qubits[86]; -ccx qubits[17], qubits[86], qubits[87]; -ccx qubits[18], qubits[87], qubits[88]; -ccx qubits[19], qubits[88], qubits[89]; -ccx qubits[20], qubits[89], qubits[90]; -ccx qubits[21], qubits[90], qubits[91]; -ccx qubits[22], qubits[91], qubits[92]; -ccx qubits[23], qubits[92], qubits[93]; -ccx qubits[24], qubits[93], qubits[94]; -ccx qubits[25], qubits[94], qubits[95]; -ccx qubits[26], qubits[95], qubits[96]; -ccx qubits[27], qubits[96], qubits[97]; -ccx qubits[28], qubits[97], qubits[98]; -ccx qubits[29], qubits[98], qubits[99]; -ccx qubits[30], qubits[99], qubits[100]; -ccx qubits[31], qubits[100], qubits[101]; -ccx qubits[32], qubits[101], qubits[102]; -ccx qubits[33], qubits[102], qubits[103]; -ccx qubits[34], qubits[103], qubits[104]; -ccx qubits[35], qubits[104], qubits[105]; -ccx qubits[36], qubits[105], qubits[106]; -ccx qubits[37], qubits[106], qubits[107]; -ccx qubits[38], qubits[107], qubits[108]; -ccx qubits[39], qubits[108], qubits[109]; -ccx qubits[40], qubits[109], qubits[110]; -ccx qubits[41], qubits[110], qubits[111]; -ccx qubits[42], qubits[111], qubits[112]; -ccx qubits[43], qubits[112], qubits[113]; -ccx qubits[44], qubits[113], qubits[114]; -ccx qubits[45], qubits[114], qubits[115]; -ccx qubits[46], qubits[115], qubits[116]; -ccx qubits[47], qubits[116], qubits[117]; -ccx qubits[48], qubits[117], qubits[118]; -ccx qubits[49], qubits[118], qubits[119]; -ccx qubits[50], qubits[119], qubits[120]; -ccx qubits[51], qubits[120], qubits[121]; -ccx qubits[52], qubits[121], qubits[122]; -ccx qubits[53], qubits[122], qubits[123]; -ccx qubits[54], qubits[123], qubits[124]; -ccx qubits[55], qubits[124], qubits[125]; -ccx qubits[56], qubits[125], qubits[126]; -ccx qubits[57], qubits[126], qubits[127]; -ccx qubits[58], qubits[127], qubits[128]; -ccx qubits[59], qubits[128], qubits[129]; -ccx qubits[60], qubits[129], qubits[130]; -ccx qubits[61], qubits[130], qubits[131]; -ccx qubits[62], qubits[131], qubits[132]; -ccx qubits[63], qubits[132], qubits[133]; -ccx qubits[64], qubits[133], qubits[134]; -ccx qubits[65], qubits[134], qubits[135]; -ccx qubits[66], qubits[135], qubits[136]; -ccx qubits[67], qubits[136], qubits[137]; -ccx qubits[68], qubits[137], qubits[138]; -cz qubits[138], qubits[69]; -ccx qubits[68], qubits[137], qubits[138]; -ccx qubits[67], qubits[136], qubits[137]; -ccx qubits[66], qubits[135], qubits[136]; -ccx qubits[65], qubits[134], qubits[135]; -ccx qubits[64], qubits[133], qubits[134]; -ccx qubits[63], qubits[132], qubits[133]; -ccx qubits[62], qubits[131], qubits[132]; -ccx qubits[61], qubits[130], qubits[131]; -ccx qubits[60], qubits[129], qubits[130]; -ccx qubits[59], qubits[128], qubits[129]; -ccx qubits[58], qubits[127], qubits[128]; -ccx qubits[57], qubits[126], qubits[127]; -ccx qubits[56], qubits[125], qubits[126]; -ccx qubits[55], qubits[124], qubits[125]; -ccx qubits[54], qubits[123], qubits[124]; -ccx qubits[53], qubits[122], qubits[123]; -ccx qubits[52], qubits[121], qubits[122]; -ccx qubits[51], qubits[120], qubits[121]; -ccx qubits[50], qubits[119], qubits[120]; -ccx qubits[49], qubits[118], qubits[119]; -ccx qubits[48], qubits[117], qubits[118]; -ccx qubits[47], qubits[116], qubits[117]; -ccx qubits[46], qubits[115], qubits[116]; -ccx qubits[45], qubits[114], qubits[115]; -ccx qubits[44], qubits[113], qubits[114]; -ccx qubits[43], qubits[112], qubits[113]; -ccx qubits[42], qubits[111], qubits[112]; -ccx qubits[41], qubits[110], qubits[111]; -ccx qubits[40], qubits[109], qubits[110]; -ccx qubits[39], qubits[108], qubits[109]; -ccx qubits[38], qubits[107], qubits[108]; -ccx qubits[37], qubits[106], qubits[107]; -ccx qubits[36], qubits[105], qubits[106]; -ccx qubits[35], qubits[104], qubits[105]; -ccx qubits[34], qubits[103], qubits[104]; -ccx qubits[33], qubits[102], qubits[103]; -ccx qubits[32], qubits[101], qubits[102]; -ccx qubits[31], qubits[100], qubits[101]; -ccx qubits[30], qubits[99], qubits[100]; -ccx qubits[29], qubits[98], qubits[99]; -ccx qubits[28], qubits[97], qubits[98]; -ccx qubits[27], qubits[96], qubits[97]; -ccx qubits[26], qubits[95], qubits[96]; -ccx qubits[25], qubits[94], qubits[95]; -ccx qubits[24], qubits[93], qubits[94]; -ccx qubits[23], qubits[92], qubits[93]; -ccx qubits[22], qubits[91], qubits[92]; -ccx qubits[21], qubits[90], qubits[91]; -ccx qubits[20], qubits[89], qubits[90]; -ccx qubits[19], qubits[88], qubits[89]; -ccx qubits[18], qubits[87], qubits[88]; -ccx qubits[17], qubits[86], qubits[87]; -ccx qubits[16], qubits[85], qubits[86]; -ccx qubits[15], qubits[84], qubits[85]; -ccx qubits[14], qubits[83], qubits[84]; -ccx qubits[13], qubits[82], qubits[83]; -ccx qubits[12], qubits[81], qubits[82]; -ccx qubits[11], qubits[80], qubits[81]; -ccx qubits[10], qubits[79], qubits[80]; -ccx qubits[9], qubits[78], qubits[79]; -ccx qubits[8], qubits[77], qubits[78]; -ccx qubits[7], qubits[76], qubits[77]; -ccx qubits[6], qubits[75], qubits[76]; -ccx qubits[5], qubits[74], qubits[75]; -ccx qubits[4], qubits[73], qubits[74]; -ccx qubits[3], qubits[72], qubits[73]; -ccx qubits[2], qubits[71], qubits[72]; -ccx qubits[0], qubits[1], qubits[71]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +cz qubits[136], qubits[137]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -211,419 +211,419 @@ x qubits[66]; x qubits[68]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -ccx qubits[0], qubits[1], qubits[71]; -ccx qubits[2], qubits[71], qubits[72]; -ccx qubits[3], qubits[72], qubits[73]; -ccx qubits[4], qubits[73], qubits[74]; -ccx qubits[5], qubits[74], qubits[75]; -ccx qubits[6], qubits[75], qubits[76]; -ccx qubits[7], qubits[76], qubits[77]; -ccx qubits[8], qubits[77], qubits[78]; -ccx qubits[9], qubits[78], qubits[79]; -ccx qubits[10], qubits[79], qubits[80]; -ccx qubits[11], qubits[80], qubits[81]; -ccx qubits[12], qubits[81], qubits[82]; -ccx qubits[13], qubits[82], qubits[83]; -ccx qubits[14], qubits[83], qubits[84]; -ccx qubits[15], qubits[84], qubits[85]; -ccx qubits[16], qubits[85], qubits[86]; -ccx qubits[17], qubits[86], qubits[87]; -ccx qubits[18], qubits[87], qubits[88]; -ccx qubits[19], qubits[88], qubits[89]; -ccx qubits[20], qubits[89], qubits[90]; -ccx qubits[21], qubits[90], qubits[91]; -ccx qubits[22], qubits[91], qubits[92]; -ccx qubits[23], qubits[92], qubits[93]; -ccx qubits[24], qubits[93], qubits[94]; -ccx qubits[25], qubits[94], qubits[95]; -ccx qubits[26], qubits[95], qubits[96]; -ccx qubits[27], qubits[96], qubits[97]; -ccx qubits[28], qubits[97], qubits[98]; -ccx qubits[29], qubits[98], qubits[99]; -ccx qubits[30], qubits[99], qubits[100]; -ccx qubits[31], qubits[100], qubits[101]; -ccx qubits[32], qubits[101], qubits[102]; -ccx qubits[33], qubits[102], qubits[103]; -ccx qubits[34], qubits[103], qubits[104]; -ccx qubits[35], qubits[104], qubits[105]; -ccx qubits[36], qubits[105], qubits[106]; -ccx qubits[37], qubits[106], qubits[107]; -ccx qubits[38], qubits[107], qubits[108]; -ccx qubits[39], qubits[108], qubits[109]; -ccx qubits[40], qubits[109], qubits[110]; -ccx qubits[41], qubits[110], qubits[111]; -ccx qubits[42], qubits[111], qubits[112]; -ccx qubits[43], qubits[112], qubits[113]; -ccx qubits[44], qubits[113], qubits[114]; -ccx qubits[45], qubits[114], qubits[115]; -ccx qubits[46], qubits[115], qubits[116]; -ccx qubits[47], qubits[116], qubits[117]; -ccx qubits[48], qubits[117], qubits[118]; -ccx qubits[49], qubits[118], qubits[119]; -ccx qubits[50], qubits[119], qubits[120]; -ccx qubits[51], qubits[120], qubits[121]; -ccx qubits[52], qubits[121], qubits[122]; -ccx qubits[53], qubits[122], qubits[123]; -ccx qubits[54], qubits[123], qubits[124]; -ccx qubits[55], qubits[124], qubits[125]; -ccx qubits[56], qubits[125], qubits[126]; -ccx qubits[57], qubits[126], qubits[127]; -ccx qubits[58], qubits[127], qubits[128]; -ccx qubits[59], qubits[128], qubits[129]; -ccx qubits[60], qubits[129], qubits[130]; -ccx qubits[61], qubits[130], qubits[131]; -ccx qubits[62], qubits[131], qubits[132]; -ccx qubits[63], qubits[132], qubits[133]; -ccx qubits[64], qubits[133], qubits[134]; -ccx qubits[65], qubits[134], qubits[135]; -ccx qubits[66], qubits[135], qubits[136]; -ccx qubits[67], qubits[136], qubits[137]; -ccx qubits[68], qubits[137], qubits[138]; -cz qubits[138], qubits[69]; -ccx qubits[68], qubits[137], qubits[138]; -ccx qubits[67], qubits[136], qubits[137]; -ccx qubits[66], qubits[135], qubits[136]; -ccx qubits[65], qubits[134], qubits[135]; -ccx qubits[64], qubits[133], qubits[134]; -ccx qubits[63], qubits[132], qubits[133]; -ccx qubits[62], qubits[131], qubits[132]; -ccx qubits[61], qubits[130], qubits[131]; -ccx qubits[60], qubits[129], qubits[130]; -ccx qubits[59], qubits[128], qubits[129]; -ccx qubits[58], qubits[127], qubits[128]; -ccx qubits[57], qubits[126], qubits[127]; -ccx qubits[56], qubits[125], qubits[126]; -ccx qubits[55], qubits[124], qubits[125]; -ccx qubits[54], qubits[123], qubits[124]; -ccx qubits[53], qubits[122], qubits[123]; -ccx qubits[52], qubits[121], qubits[122]; -ccx qubits[51], qubits[120], qubits[121]; -ccx qubits[50], qubits[119], qubits[120]; -ccx qubits[49], qubits[118], qubits[119]; -ccx qubits[48], qubits[117], qubits[118]; -ccx qubits[47], qubits[116], qubits[117]; -ccx qubits[46], qubits[115], qubits[116]; -ccx qubits[45], qubits[114], qubits[115]; -ccx qubits[44], qubits[113], qubits[114]; -ccx qubits[43], qubits[112], qubits[113]; -ccx qubits[42], qubits[111], qubits[112]; -ccx qubits[41], qubits[110], qubits[111]; -ccx qubits[40], qubits[109], qubits[110]; -ccx qubits[39], qubits[108], qubits[109]; -ccx qubits[38], qubits[107], qubits[108]; -ccx qubits[37], qubits[106], qubits[107]; -ccx qubits[36], qubits[105], qubits[106]; -ccx qubits[35], qubits[104], qubits[105]; -ccx qubits[34], qubits[103], qubits[104]; -ccx qubits[33], qubits[102], qubits[103]; -ccx qubits[32], qubits[101], qubits[102]; -ccx qubits[31], qubits[100], qubits[101]; -ccx qubits[30], qubits[99], qubits[100]; -ccx qubits[29], qubits[98], qubits[99]; -ccx qubits[28], qubits[97], qubits[98]; -ccx qubits[27], qubits[96], qubits[97]; -ccx qubits[26], qubits[95], qubits[96]; -ccx qubits[25], qubits[94], qubits[95]; -ccx qubits[24], qubits[93], qubits[94]; -ccx qubits[23], qubits[92], qubits[93]; -ccx qubits[22], qubits[91], qubits[92]; -ccx qubits[21], qubits[90], qubits[91]; -ccx qubits[20], qubits[89], qubits[90]; -ccx qubits[19], qubits[88], qubits[89]; -ccx qubits[18], qubits[87], qubits[88]; -ccx qubits[17], qubits[86], qubits[87]; -ccx qubits[16], qubits[85], qubits[86]; -ccx qubits[15], qubits[84], qubits[85]; -ccx qubits[14], qubits[83], qubits[84]; -ccx qubits[13], qubits[82], qubits[83]; -ccx qubits[12], qubits[81], qubits[82]; -ccx qubits[11], qubits[80], qubits[81]; -ccx qubits[10], qubits[79], qubits[80]; -ccx qubits[9], qubits[78], qubits[79]; -ccx qubits[8], qubits[77], qubits[78]; -ccx qubits[7], qubits[76], qubits[77]; -ccx qubits[6], qubits[75], qubits[76]; -ccx qubits[5], qubits[74], qubits[75]; -ccx qubits[4], qubits[73], qubits[74]; -ccx qubits[3], qubits[72], qubits[73]; -ccx qubits[2], qubits[71], qubits[72]; -ccx qubits[0], qubits[1], qubits[71]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +cz qubits[136], qubits[137]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -z qubits[70]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +z qubits[138]; diff --git a/benchmarks/all/OEGrover/70/post.hsl b/benchmarks/all/OEGrover/70/post.hsl index 4af034da9..87aeb21a2 100644 --- a/benchmarks/all/OEGrover/70/post.hsl +++ b/benchmarks/all/OEGrover/70/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 34 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/70/post.lsta b/benchmarks/all/OEGrover/70/post.lsta deleted file mode 100644 index a8f12911c..000000000 --- a/benchmarks/all/OEGrover/70/post.lsta +++ /dev/null @@ -1,357 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 142) -> 139 -[71,1](141, 143) -> 140 -[72,1](144, 144) -> 141 -[72,1](145, 144) -> 142 -[72,1](146, 144) -> 143 -[73,1](147, 147) -> 144 -[73,1](148, 147) -> 145 -[73,1](149, 147) -> 146 -[74,1](150, 150) -> 147 -[74,1](151, 150) -> 148 -[74,1](152, 150) -> 149 -[75,1](153, 153) -> 150 -[75,1](154, 153) -> 151 -[75,1](155, 153) -> 152 -[76,1](156, 156) -> 153 -[76,1](157, 156) -> 154 -[76,1](158, 156) -> 155 -[77,1](159, 159) -> 156 -[77,1](160, 159) -> 157 -[77,1](161, 159) -> 158 -[78,1](162, 162) -> 159 -[78,1](163, 162) -> 160 -[78,1](164, 162) -> 161 -[79,1](165, 165) -> 162 -[79,1](166, 165) -> 163 -[79,1](167, 165) -> 164 -[80,1](168, 168) -> 165 -[80,1](169, 168) -> 166 -[80,1](170, 168) -> 167 -[81,1](171, 171) -> 168 -[81,1](172, 171) -> 169 -[81,1](173, 171) -> 170 -[82,1](174, 174) -> 171 -[82,1](175, 174) -> 172 -[82,1](176, 174) -> 173 -[83,1](177, 177) -> 174 -[83,1](178, 177) -> 175 -[83,1](179, 177) -> 176 -[84,1](180, 180) -> 177 -[84,1](181, 180) -> 178 -[84,1](182, 180) -> 179 -[85,1](183, 183) -> 180 -[85,1](184, 183) -> 181 -[85,1](185, 183) -> 182 -[86,1](186, 186) -> 183 -[86,1](187, 186) -> 184 -[86,1](188, 186) -> 185 -[87,1](189, 189) -> 186 -[87,1](190, 189) -> 187 -[87,1](191, 189) -> 188 -[88,1](192, 192) -> 189 -[88,1](193, 192) -> 190 -[88,1](194, 192) -> 191 -[89,1](195, 195) -> 192 -[89,1](196, 195) -> 193 -[89,1](197, 195) -> 194 -[90,1](198, 198) -> 195 -[90,1](199, 198) -> 196 -[90,1](200, 198) -> 197 -[91,1](201, 201) -> 198 -[91,1](202, 201) -> 199 -[91,1](203, 201) -> 200 -[92,1](204, 204) -> 201 -[92,1](205, 204) -> 202 -[92,1](206, 204) -> 203 -[93,1](207, 207) -> 204 -[93,1](208, 207) -> 205 -[93,1](209, 207) -> 206 -[94,1](210, 210) -> 207 -[94,1](211, 210) -> 208 -[94,1](212, 210) -> 209 -[95,1](213, 213) -> 210 -[95,1](214, 213) -> 211 -[95,1](215, 213) -> 212 -[96,1](216, 216) -> 213 -[96,1](217, 216) -> 214 -[96,1](218, 216) -> 215 -[97,1](219, 219) -> 216 -[97,1](220, 219) -> 217 -[97,1](221, 219) -> 218 -[98,1](222, 222) -> 219 -[98,1](223, 222) -> 220 -[98,1](224, 222) -> 221 -[99,1](225, 225) -> 222 -[99,1](226, 225) -> 223 -[99,1](227, 225) -> 224 -[100,1](228, 228) -> 225 -[100,1](229, 228) -> 226 -[100,1](230, 228) -> 227 -[101,1](231, 231) -> 228 -[101,1](232, 231) -> 229 -[101,1](233, 231) -> 230 -[102,1](234, 234) -> 231 -[102,1](235, 234) -> 232 -[102,1](236, 234) -> 233 -[103,1](237, 237) -> 234 -[103,1](238, 237) -> 235 -[103,1](239, 237) -> 236 -[104,1](240, 240) -> 237 -[104,1](241, 240) -> 238 -[104,1](242, 240) -> 239 -[105,1](243, 243) -> 240 -[105,1](244, 243) -> 241 -[105,1](245, 243) -> 242 -[106,1](246, 246) -> 243 -[106,1](247, 246) -> 244 -[106,1](248, 246) -> 245 -[107,1](249, 249) -> 246 -[107,1](250, 249) -> 247 -[107,1](251, 249) -> 248 -[108,1](252, 252) -> 249 -[108,1](253, 252) -> 250 -[108,1](254, 252) -> 251 -[109,1](255, 255) -> 252 -[109,1](256, 255) -> 253 -[109,1](257, 255) -> 254 -[110,1](258, 258) -> 255 -[110,1](259, 258) -> 256 -[110,1](260, 258) -> 257 -[111,1](261, 261) -> 258 -[111,1](262, 261) -> 259 -[111,1](263, 261) -> 260 -[112,1](264, 264) -> 261 -[112,1](265, 264) -> 262 -[112,1](266, 264) -> 263 -[113,1](267, 267) -> 264 -[113,1](268, 267) -> 265 -[113,1](269, 267) -> 266 -[114,1](270, 270) -> 267 -[114,1](271, 270) -> 268 -[114,1](272, 270) -> 269 -[115,1](273, 273) -> 270 -[115,1](274, 273) -> 271 -[115,1](275, 273) -> 272 -[116,1](276, 276) -> 273 -[116,1](277, 276) -> 274 -[116,1](278, 276) -> 275 -[117,1](279, 279) -> 276 -[117,1](280, 279) -> 277 -[117,1](281, 279) -> 278 -[118,1](282, 282) -> 279 -[118,1](283, 282) -> 280 -[118,1](284, 282) -> 281 -[119,1](285, 285) -> 282 -[119,1](286, 285) -> 283 -[119,1](287, 285) -> 284 -[120,1](288, 288) -> 285 -[120,1](289, 288) -> 286 -[120,1](290, 288) -> 287 -[121,1](291, 291) -> 288 -[121,1](292, 291) -> 289 -[121,1](293, 291) -> 290 -[122,1](294, 294) -> 291 -[122,1](295, 294) -> 292 -[122,1](296, 294) -> 293 -[123,1](297, 297) -> 294 -[123,1](298, 297) -> 295 -[123,1](299, 297) -> 296 -[124,1](300, 300) -> 297 -[124,1](301, 300) -> 298 -[124,1](302, 300) -> 299 -[125,1](303, 303) -> 300 -[125,1](304, 303) -> 301 -[125,1](305, 303) -> 302 -[126,1](306, 306) -> 303 -[126,1](307, 306) -> 304 -[126,1](308, 306) -> 305 -[127,1](309, 309) -> 306 -[127,1](310, 309) -> 307 -[127,1](311, 309) -> 308 -[128,1](312, 312) -> 309 -[128,1](313, 312) -> 310 -[128,1](314, 312) -> 311 -[129,1](315, 315) -> 312 -[129,1](316, 315) -> 313 -[129,1](317, 315) -> 314 -[130,1](318, 318) -> 315 -[130,1](319, 318) -> 316 -[130,1](320, 318) -> 317 -[131,1](321, 321) -> 318 -[131,1](322, 321) -> 319 -[131,1](323, 321) -> 320 -[132,1](324, 324) -> 321 -[132,1](325, 324) -> 322 -[132,1](326, 324) -> 323 -[133,1](327, 327) -> 324 -[133,1](328, 327) -> 325 -[133,1](329, 327) -> 326 -[134,1](330, 330) -> 327 -[134,1](331, 330) -> 328 -[134,1](332, 330) -> 329 -[135,1](333, 333) -> 330 -[135,1](334, 333) -> 331 -[135,1](335, 333) -> 332 -[136,1](336, 336) -> 333 -[136,1](337, 336) -> 334 -[136,1](338, 336) -> 335 -[137,1](339, 339) -> 336 -[137,1](340, 339) -> 337 -[137,1](341, 339) -> 338 -[138,1](342, 342) -> 339 -[138,1](343, 342) -> 340 -[138,1](344, 342) -> 341 -[139,1](345, 345) -> 342 -[139,1](346, 345) -> 343 -[139,1](347, 345) -> 344 -[140,1](348, 348) -> 345 -[140,1](349, 348) -> 346 -[140,1](350, 348) -> 347 -[p1,1] -> 348 -[p2,1] -> 349 -[p3,1] -> 350 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/70/pre.hsl b/benchmarks/all/OEGrover/70/pre.hsl index 1409b31a9..1ac0830ef 100644 --- a/benchmarks/all/OEGrover/70/pre.hsl +++ b/benchmarks/all/OEGrover/70/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 34 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1180591620717411303423 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/70/pre.lsta b/benchmarks/all/OEGrover/70/pre.lsta deleted file mode 100644 index 1173e5841..000000000 --- a/benchmarks/all/OEGrover/70/pre.lsta +++ /dev/null @@ -1,361 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 142) -> 139 -[71,1](141, 143) -> 140 -[72,1](144, 144) -> 141 -[72,1](145, 144) -> 142 -[72,1](146, 144) -> 143 -[73,1](147, 147) -> 144 -[73,1](148, 147) -> 145 -[73,1](149, 147) -> 146 -[74,1](150, 150) -> 147 -[74,1](151, 150) -> 148 -[74,1](152, 150) -> 149 -[75,1](153, 153) -> 150 -[75,1](154, 153) -> 151 -[75,1](155, 153) -> 152 -[76,1](156, 156) -> 153 -[76,1](157, 156) -> 154 -[76,1](158, 156) -> 155 -[77,1](159, 159) -> 156 -[77,1](160, 159) -> 157 -[77,1](161, 159) -> 158 -[78,1](162, 162) -> 159 -[78,1](163, 162) -> 160 -[78,1](164, 162) -> 161 -[79,1](165, 165) -> 162 -[79,1](166, 165) -> 163 -[79,1](167, 165) -> 164 -[80,1](168, 168) -> 165 -[80,1](169, 168) -> 166 -[80,1](170, 168) -> 167 -[81,1](171, 171) -> 168 -[81,1](172, 171) -> 169 -[81,1](173, 171) -> 170 -[82,1](174, 174) -> 171 -[82,1](175, 174) -> 172 -[82,1](176, 174) -> 173 -[83,1](177, 177) -> 174 -[83,1](178, 177) -> 175 -[83,1](179, 177) -> 176 -[84,1](180, 180) -> 177 -[84,1](181, 180) -> 178 -[84,1](182, 180) -> 179 -[85,1](183, 183) -> 180 -[85,1](184, 183) -> 181 -[85,1](185, 183) -> 182 -[86,1](186, 186) -> 183 -[86,1](187, 186) -> 184 -[86,1](188, 186) -> 185 -[87,1](189, 189) -> 186 -[87,1](190, 189) -> 187 -[87,1](191, 189) -> 188 -[88,1](192, 192) -> 189 -[88,1](193, 192) -> 190 -[88,1](194, 192) -> 191 -[89,1](195, 195) -> 192 -[89,1](196, 195) -> 193 -[89,1](197, 195) -> 194 -[90,1](198, 198) -> 195 -[90,1](199, 198) -> 196 -[90,1](200, 198) -> 197 -[91,1](201, 201) -> 198 -[91,1](202, 201) -> 199 -[91,1](203, 201) -> 200 -[92,1](204, 204) -> 201 -[92,1](205, 204) -> 202 -[92,1](206, 204) -> 203 -[93,1](207, 207) -> 204 -[93,1](208, 207) -> 205 -[93,1](209, 207) -> 206 -[94,1](210, 210) -> 207 -[94,1](211, 210) -> 208 -[94,1](212, 210) -> 209 -[95,1](213, 213) -> 210 -[95,1](214, 213) -> 211 -[95,1](215, 213) -> 212 -[96,1](216, 216) -> 213 -[96,1](217, 216) -> 214 -[96,1](218, 216) -> 215 -[97,1](219, 219) -> 216 -[97,1](220, 219) -> 217 -[97,1](221, 219) -> 218 -[98,1](222, 222) -> 219 -[98,1](223, 222) -> 220 -[98,1](224, 222) -> 221 -[99,1](225, 225) -> 222 -[99,1](226, 225) -> 223 -[99,1](227, 225) -> 224 -[100,1](228, 228) -> 225 -[100,1](229, 228) -> 226 -[100,1](230, 228) -> 227 -[101,1](231, 231) -> 228 -[101,1](232, 231) -> 229 -[101,1](233, 231) -> 230 -[102,1](234, 234) -> 231 -[102,1](235, 234) -> 232 -[102,1](236, 234) -> 233 -[103,1](237, 237) -> 234 -[103,1](238, 237) -> 235 -[103,1](239, 237) -> 236 -[104,1](240, 240) -> 237 -[104,1](241, 240) -> 238 -[104,1](242, 240) -> 239 -[105,1](243, 243) -> 240 -[105,1](244, 243) -> 241 -[105,1](245, 243) -> 242 -[106,1](246, 246) -> 243 -[106,1](247, 246) -> 244 -[106,1](248, 246) -> 245 -[107,1](249, 249) -> 246 -[107,1](250, 249) -> 247 -[107,1](251, 249) -> 248 -[108,1](252, 252) -> 249 -[108,1](253, 252) -> 250 -[108,1](254, 252) -> 251 -[109,1](255, 255) -> 252 -[109,1](256, 255) -> 253 -[109,1](257, 255) -> 254 -[110,1](258, 258) -> 255 -[110,1](259, 258) -> 256 -[110,1](260, 258) -> 257 -[111,1](261, 261) -> 258 -[111,1](262, 261) -> 259 -[111,1](263, 261) -> 260 -[112,1](264, 264) -> 261 -[112,1](265, 264) -> 262 -[112,1](266, 264) -> 263 -[113,1](267, 267) -> 264 -[113,1](268, 267) -> 265 -[113,1](269, 267) -> 266 -[114,1](270, 270) -> 267 -[114,1](271, 270) -> 268 -[114,1](272, 270) -> 269 -[115,1](273, 273) -> 270 -[115,1](274, 273) -> 271 -[115,1](275, 273) -> 272 -[116,1](276, 276) -> 273 -[116,1](277, 276) -> 274 -[116,1](278, 276) -> 275 -[117,1](279, 279) -> 276 -[117,1](280, 279) -> 277 -[117,1](281, 279) -> 278 -[118,1](282, 282) -> 279 -[118,1](283, 282) -> 280 -[118,1](284, 282) -> 281 -[119,1](285, 285) -> 282 -[119,1](286, 285) -> 283 -[119,1](287, 285) -> 284 -[120,1](288, 288) -> 285 -[120,1](289, 288) -> 286 -[120,1](290, 288) -> 287 -[121,1](291, 291) -> 288 -[121,1](292, 291) -> 289 -[121,1](293, 291) -> 290 -[122,1](294, 294) -> 291 -[122,1](295, 294) -> 292 -[122,1](296, 294) -> 293 -[123,1](297, 297) -> 294 -[123,1](298, 297) -> 295 -[123,1](299, 297) -> 296 -[124,1](300, 300) -> 297 -[124,1](301, 300) -> 298 -[124,1](302, 300) -> 299 -[125,1](303, 303) -> 300 -[125,1](304, 303) -> 301 -[125,1](305, 303) -> 302 -[126,1](306, 306) -> 303 -[126,1](307, 306) -> 304 -[126,1](308, 306) -> 305 -[127,1](309, 309) -> 306 -[127,1](310, 309) -> 307 -[127,1](311, 309) -> 308 -[128,1](312, 312) -> 309 -[128,1](313, 312) -> 310 -[128,1](314, 312) -> 311 -[129,1](315, 315) -> 312 -[129,1](316, 315) -> 313 -[129,1](317, 315) -> 314 -[130,1](318, 318) -> 315 -[130,1](319, 318) -> 316 -[130,1](320, 318) -> 317 -[131,1](321, 321) -> 318 -[131,1](322, 321) -> 319 -[131,1](323, 321) -> 320 -[132,1](324, 324) -> 321 -[132,1](325, 324) -> 322 -[132,1](326, 324) -> 323 -[133,1](327, 327) -> 324 -[133,1](328, 327) -> 325 -[133,1](329, 327) -> 326 -[134,1](330, 330) -> 327 -[134,1](331, 330) -> 328 -[134,1](332, 330) -> 329 -[135,1](333, 333) -> 330 -[135,1](334, 333) -> 331 -[135,1](335, 333) -> 332 -[136,1](336, 336) -> 333 -[136,1](337, 336) -> 334 -[136,1](338, 336) -> 335 -[137,1](339, 339) -> 336 -[137,1](340, 339) -> 337 -[137,1](341, 339) -> 338 -[138,1](342, 342) -> 339 -[138,1](343, 342) -> 340 -[138,1](344, 342) -> 341 -[139,1](345, 345) -> 342 -[139,1](346, 345) -> 343 -[139,1](347, 345) -> 344 -[140,1](348, 348) -> 345 -[140,1](349, 348) -> 346 -[140,1](350, 348) -> 347 -[c0,1] -> 348 -[a,1] -> 349 -[b,1] -> 350 -Constraints -1180591620717411303423 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/71/circuit.qasm b/benchmarks/all/OEGrover/71/circuit.qasm index 839383762..3ebfccfef 100644 --- a/benchmarks/all/OEGrover/71/circuit.qasm +++ b/benchmarks/all/OEGrover/71/circuit.qasm @@ -1,182 +1,182 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[142]; +qreg qubits[141]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -ccx qubits[0], qubits[1], qubits[72]; -ccx qubits[2], qubits[72], qubits[73]; -ccx qubits[3], qubits[73], qubits[74]; -ccx qubits[4], qubits[74], qubits[75]; -ccx qubits[5], qubits[75], qubits[76]; -ccx qubits[6], qubits[76], qubits[77]; -ccx qubits[7], qubits[77], qubits[78]; -ccx qubits[8], qubits[78], qubits[79]; -ccx qubits[9], qubits[79], qubits[80]; -ccx qubits[10], qubits[80], qubits[81]; -ccx qubits[11], qubits[81], qubits[82]; -ccx qubits[12], qubits[82], qubits[83]; -ccx qubits[13], qubits[83], qubits[84]; -ccx qubits[14], qubits[84], qubits[85]; -ccx qubits[15], qubits[85], qubits[86]; -ccx qubits[16], qubits[86], qubits[87]; -ccx qubits[17], qubits[87], qubits[88]; -ccx qubits[18], qubits[88], qubits[89]; -ccx qubits[19], qubits[89], qubits[90]; -ccx qubits[20], qubits[90], qubits[91]; -ccx qubits[21], qubits[91], qubits[92]; -ccx qubits[22], qubits[92], qubits[93]; -ccx qubits[23], qubits[93], qubits[94]; -ccx qubits[24], qubits[94], qubits[95]; -ccx qubits[25], qubits[95], qubits[96]; -ccx qubits[26], qubits[96], qubits[97]; -ccx qubits[27], qubits[97], qubits[98]; -ccx qubits[28], qubits[98], qubits[99]; -ccx qubits[29], qubits[99], qubits[100]; -ccx qubits[30], qubits[100], qubits[101]; -ccx qubits[31], qubits[101], qubits[102]; -ccx qubits[32], qubits[102], qubits[103]; -ccx qubits[33], qubits[103], qubits[104]; -ccx qubits[34], qubits[104], qubits[105]; -ccx qubits[35], qubits[105], qubits[106]; -ccx qubits[36], qubits[106], qubits[107]; -ccx qubits[37], qubits[107], qubits[108]; -ccx qubits[38], qubits[108], qubits[109]; -ccx qubits[39], qubits[109], qubits[110]; -ccx qubits[40], qubits[110], qubits[111]; -ccx qubits[41], qubits[111], qubits[112]; -ccx qubits[42], qubits[112], qubits[113]; -ccx qubits[43], qubits[113], qubits[114]; -ccx qubits[44], qubits[114], qubits[115]; -ccx qubits[45], qubits[115], qubits[116]; -ccx qubits[46], qubits[116], qubits[117]; -ccx qubits[47], qubits[117], qubits[118]; -ccx qubits[48], qubits[118], qubits[119]; -ccx qubits[49], qubits[119], qubits[120]; -ccx qubits[50], qubits[120], qubits[121]; -ccx qubits[51], qubits[121], qubits[122]; -ccx qubits[52], qubits[122], qubits[123]; -ccx qubits[53], qubits[123], qubits[124]; -ccx qubits[54], qubits[124], qubits[125]; -ccx qubits[55], qubits[125], qubits[126]; -ccx qubits[56], qubits[126], qubits[127]; -ccx qubits[57], qubits[127], qubits[128]; -ccx qubits[58], qubits[128], qubits[129]; -ccx qubits[59], qubits[129], qubits[130]; -ccx qubits[60], qubits[130], qubits[131]; -ccx qubits[61], qubits[131], qubits[132]; -ccx qubits[62], qubits[132], qubits[133]; -ccx qubits[63], qubits[133], qubits[134]; -ccx qubits[64], qubits[134], qubits[135]; -ccx qubits[65], qubits[135], qubits[136]; -ccx qubits[66], qubits[136], qubits[137]; -ccx qubits[67], qubits[137], qubits[138]; -ccx qubits[68], qubits[138], qubits[139]; -ccx qubits[69], qubits[139], qubits[140]; -cz qubits[140], qubits[70]; -ccx qubits[69], qubits[139], qubits[140]; -ccx qubits[68], qubits[138], qubits[139]; -ccx qubits[67], qubits[137], qubits[138]; -ccx qubits[66], qubits[136], qubits[137]; -ccx qubits[65], qubits[135], qubits[136]; -ccx qubits[64], qubits[134], qubits[135]; -ccx qubits[63], qubits[133], qubits[134]; -ccx qubits[62], qubits[132], qubits[133]; -ccx qubits[61], qubits[131], qubits[132]; -ccx qubits[60], qubits[130], qubits[131]; -ccx qubits[59], qubits[129], qubits[130]; -ccx qubits[58], qubits[128], qubits[129]; -ccx qubits[57], qubits[127], qubits[128]; -ccx qubits[56], qubits[126], qubits[127]; -ccx qubits[55], qubits[125], qubits[126]; -ccx qubits[54], qubits[124], qubits[125]; -ccx qubits[53], qubits[123], qubits[124]; -ccx qubits[52], qubits[122], qubits[123]; -ccx qubits[51], qubits[121], qubits[122]; -ccx qubits[50], qubits[120], qubits[121]; -ccx qubits[49], qubits[119], qubits[120]; -ccx qubits[48], qubits[118], qubits[119]; -ccx qubits[47], qubits[117], qubits[118]; -ccx qubits[46], qubits[116], qubits[117]; -ccx qubits[45], qubits[115], qubits[116]; -ccx qubits[44], qubits[114], qubits[115]; -ccx qubits[43], qubits[113], qubits[114]; -ccx qubits[42], qubits[112], qubits[113]; -ccx qubits[41], qubits[111], qubits[112]; -ccx qubits[40], qubits[110], qubits[111]; -ccx qubits[39], qubits[109], qubits[110]; -ccx qubits[38], qubits[108], qubits[109]; -ccx qubits[37], qubits[107], qubits[108]; -ccx qubits[36], qubits[106], qubits[107]; -ccx qubits[35], qubits[105], qubits[106]; -ccx qubits[34], qubits[104], qubits[105]; -ccx qubits[33], qubits[103], qubits[104]; -ccx qubits[32], qubits[102], qubits[103]; -ccx qubits[31], qubits[101], qubits[102]; -ccx qubits[30], qubits[100], qubits[101]; -ccx qubits[29], qubits[99], qubits[100]; -ccx qubits[28], qubits[98], qubits[99]; -ccx qubits[27], qubits[97], qubits[98]; -ccx qubits[26], qubits[96], qubits[97]; -ccx qubits[25], qubits[95], qubits[96]; -ccx qubits[24], qubits[94], qubits[95]; -ccx qubits[23], qubits[93], qubits[94]; -ccx qubits[22], qubits[92], qubits[93]; -ccx qubits[21], qubits[91], qubits[92]; -ccx qubits[20], qubits[90], qubits[91]; -ccx qubits[19], qubits[89], qubits[90]; -ccx qubits[18], qubits[88], qubits[89]; -ccx qubits[17], qubits[87], qubits[88]; -ccx qubits[16], qubits[86], qubits[87]; -ccx qubits[15], qubits[85], qubits[86]; -ccx qubits[14], qubits[84], qubits[85]; -ccx qubits[13], qubits[83], qubits[84]; -ccx qubits[12], qubits[82], qubits[83]; -ccx qubits[11], qubits[81], qubits[82]; -ccx qubits[10], qubits[80], qubits[81]; -ccx qubits[9], qubits[79], qubits[80]; -ccx qubits[8], qubits[78], qubits[79]; -ccx qubits[7], qubits[77], qubits[78]; -ccx qubits[6], qubits[76], qubits[77]; -ccx qubits[5], qubits[75], qubits[76]; -ccx qubits[4], qubits[74], qubits[75]; -ccx qubits[3], qubits[73], qubits[74]; -ccx qubits[2], qubits[72], qubits[73]; -ccx qubits[0], qubits[1], qubits[72]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +cz qubits[138], qubits[139]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -215,425 +215,425 @@ x qubits[68]; x qubits[70]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; -ccx qubits[0], qubits[1], qubits[72]; -ccx qubits[2], qubits[72], qubits[73]; -ccx qubits[3], qubits[73], qubits[74]; -ccx qubits[4], qubits[74], qubits[75]; -ccx qubits[5], qubits[75], qubits[76]; -ccx qubits[6], qubits[76], qubits[77]; -ccx qubits[7], qubits[77], qubits[78]; -ccx qubits[8], qubits[78], qubits[79]; -ccx qubits[9], qubits[79], qubits[80]; -ccx qubits[10], qubits[80], qubits[81]; -ccx qubits[11], qubits[81], qubits[82]; -ccx qubits[12], qubits[82], qubits[83]; -ccx qubits[13], qubits[83], qubits[84]; -ccx qubits[14], qubits[84], qubits[85]; -ccx qubits[15], qubits[85], qubits[86]; -ccx qubits[16], qubits[86], qubits[87]; -ccx qubits[17], qubits[87], qubits[88]; -ccx qubits[18], qubits[88], qubits[89]; -ccx qubits[19], qubits[89], qubits[90]; -ccx qubits[20], qubits[90], qubits[91]; -ccx qubits[21], qubits[91], qubits[92]; -ccx qubits[22], qubits[92], qubits[93]; -ccx qubits[23], qubits[93], qubits[94]; -ccx qubits[24], qubits[94], qubits[95]; -ccx qubits[25], qubits[95], qubits[96]; -ccx qubits[26], qubits[96], qubits[97]; -ccx qubits[27], qubits[97], qubits[98]; -ccx qubits[28], qubits[98], qubits[99]; -ccx qubits[29], qubits[99], qubits[100]; -ccx qubits[30], qubits[100], qubits[101]; -ccx qubits[31], qubits[101], qubits[102]; -ccx qubits[32], qubits[102], qubits[103]; -ccx qubits[33], qubits[103], qubits[104]; -ccx qubits[34], qubits[104], qubits[105]; -ccx qubits[35], qubits[105], qubits[106]; -ccx qubits[36], qubits[106], qubits[107]; -ccx qubits[37], qubits[107], qubits[108]; -ccx qubits[38], qubits[108], qubits[109]; -ccx qubits[39], qubits[109], qubits[110]; -ccx qubits[40], qubits[110], qubits[111]; -ccx qubits[41], qubits[111], qubits[112]; -ccx qubits[42], qubits[112], qubits[113]; -ccx qubits[43], qubits[113], qubits[114]; -ccx qubits[44], qubits[114], qubits[115]; -ccx qubits[45], qubits[115], qubits[116]; -ccx qubits[46], qubits[116], qubits[117]; -ccx qubits[47], qubits[117], qubits[118]; -ccx qubits[48], qubits[118], qubits[119]; -ccx qubits[49], qubits[119], qubits[120]; -ccx qubits[50], qubits[120], qubits[121]; -ccx qubits[51], qubits[121], qubits[122]; -ccx qubits[52], qubits[122], qubits[123]; -ccx qubits[53], qubits[123], qubits[124]; -ccx qubits[54], qubits[124], qubits[125]; -ccx qubits[55], qubits[125], qubits[126]; -ccx qubits[56], qubits[126], qubits[127]; -ccx qubits[57], qubits[127], qubits[128]; -ccx qubits[58], qubits[128], qubits[129]; -ccx qubits[59], qubits[129], qubits[130]; -ccx qubits[60], qubits[130], qubits[131]; -ccx qubits[61], qubits[131], qubits[132]; -ccx qubits[62], qubits[132], qubits[133]; -ccx qubits[63], qubits[133], qubits[134]; -ccx qubits[64], qubits[134], qubits[135]; -ccx qubits[65], qubits[135], qubits[136]; -ccx qubits[66], qubits[136], qubits[137]; -ccx qubits[67], qubits[137], qubits[138]; -ccx qubits[68], qubits[138], qubits[139]; -ccx qubits[69], qubits[139], qubits[140]; -cz qubits[140], qubits[70]; -ccx qubits[69], qubits[139], qubits[140]; -ccx qubits[68], qubits[138], qubits[139]; -ccx qubits[67], qubits[137], qubits[138]; -ccx qubits[66], qubits[136], qubits[137]; -ccx qubits[65], qubits[135], qubits[136]; -ccx qubits[64], qubits[134], qubits[135]; -ccx qubits[63], qubits[133], qubits[134]; -ccx qubits[62], qubits[132], qubits[133]; -ccx qubits[61], qubits[131], qubits[132]; -ccx qubits[60], qubits[130], qubits[131]; -ccx qubits[59], qubits[129], qubits[130]; -ccx qubits[58], qubits[128], qubits[129]; -ccx qubits[57], qubits[127], qubits[128]; -ccx qubits[56], qubits[126], qubits[127]; -ccx qubits[55], qubits[125], qubits[126]; -ccx qubits[54], qubits[124], qubits[125]; -ccx qubits[53], qubits[123], qubits[124]; -ccx qubits[52], qubits[122], qubits[123]; -ccx qubits[51], qubits[121], qubits[122]; -ccx qubits[50], qubits[120], qubits[121]; -ccx qubits[49], qubits[119], qubits[120]; -ccx qubits[48], qubits[118], qubits[119]; -ccx qubits[47], qubits[117], qubits[118]; -ccx qubits[46], qubits[116], qubits[117]; -ccx qubits[45], qubits[115], qubits[116]; -ccx qubits[44], qubits[114], qubits[115]; -ccx qubits[43], qubits[113], qubits[114]; -ccx qubits[42], qubits[112], qubits[113]; -ccx qubits[41], qubits[111], qubits[112]; -ccx qubits[40], qubits[110], qubits[111]; -ccx qubits[39], qubits[109], qubits[110]; -ccx qubits[38], qubits[108], qubits[109]; -ccx qubits[37], qubits[107], qubits[108]; -ccx qubits[36], qubits[106], qubits[107]; -ccx qubits[35], qubits[105], qubits[106]; -ccx qubits[34], qubits[104], qubits[105]; -ccx qubits[33], qubits[103], qubits[104]; -ccx qubits[32], qubits[102], qubits[103]; -ccx qubits[31], qubits[101], qubits[102]; -ccx qubits[30], qubits[100], qubits[101]; -ccx qubits[29], qubits[99], qubits[100]; -ccx qubits[28], qubits[98], qubits[99]; -ccx qubits[27], qubits[97], qubits[98]; -ccx qubits[26], qubits[96], qubits[97]; -ccx qubits[25], qubits[95], qubits[96]; -ccx qubits[24], qubits[94], qubits[95]; -ccx qubits[23], qubits[93], qubits[94]; -ccx qubits[22], qubits[92], qubits[93]; -ccx qubits[21], qubits[91], qubits[92]; -ccx qubits[20], qubits[90], qubits[91]; -ccx qubits[19], qubits[89], qubits[90]; -ccx qubits[18], qubits[88], qubits[89]; -ccx qubits[17], qubits[87], qubits[88]; -ccx qubits[16], qubits[86], qubits[87]; -ccx qubits[15], qubits[85], qubits[86]; -ccx qubits[14], qubits[84], qubits[85]; -ccx qubits[13], qubits[83], qubits[84]; -ccx qubits[12], qubits[82], qubits[83]; -ccx qubits[11], qubits[81], qubits[82]; -ccx qubits[10], qubits[80], qubits[81]; -ccx qubits[9], qubits[79], qubits[80]; -ccx qubits[8], qubits[78], qubits[79]; -ccx qubits[7], qubits[77], qubits[78]; -ccx qubits[6], qubits[76], qubits[77]; -ccx qubits[5], qubits[75], qubits[76]; -ccx qubits[4], qubits[74], qubits[75]; -ccx qubits[3], qubits[73], qubits[74]; -ccx qubits[2], qubits[72], qubits[73]; -ccx qubits[0], qubits[1], qubits[72]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +cz qubits[138], qubits[139]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; +x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; -z qubits[71]; +h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +z qubits[140]; diff --git a/benchmarks/all/OEGrover/71/post.hsl b/benchmarks/all/OEGrover/71/post.hsl index 8922c1cd3..a10c4227c 100644 --- a/benchmarks/all/OEGrover/71/post.hsl +++ b/benchmarks/all/OEGrover/71/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 34 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/71/post.lsta b/benchmarks/all/OEGrover/71/post.lsta deleted file mode 100644 index cbaa92a7a..000000000 --- a/benchmarks/all/OEGrover/71/post.lsta +++ /dev/null @@ -1,362 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 144) -> 141 -[72,1](143, 145) -> 142 -[73,1](146, 146) -> 143 -[73,1](147, 146) -> 144 -[73,1](148, 146) -> 145 -[74,1](149, 149) -> 146 -[74,1](150, 149) -> 147 -[74,1](151, 149) -> 148 -[75,1](152, 152) -> 149 -[75,1](153, 152) -> 150 -[75,1](154, 152) -> 151 -[76,1](155, 155) -> 152 -[76,1](156, 155) -> 153 -[76,1](157, 155) -> 154 -[77,1](158, 158) -> 155 -[77,1](159, 158) -> 156 -[77,1](160, 158) -> 157 -[78,1](161, 161) -> 158 -[78,1](162, 161) -> 159 -[78,1](163, 161) -> 160 -[79,1](164, 164) -> 161 -[79,1](165, 164) -> 162 -[79,1](166, 164) -> 163 -[80,1](167, 167) -> 164 -[80,1](168, 167) -> 165 -[80,1](169, 167) -> 166 -[81,1](170, 170) -> 167 -[81,1](171, 170) -> 168 -[81,1](172, 170) -> 169 -[82,1](173, 173) -> 170 -[82,1](174, 173) -> 171 -[82,1](175, 173) -> 172 -[83,1](176, 176) -> 173 -[83,1](177, 176) -> 174 -[83,1](178, 176) -> 175 -[84,1](179, 179) -> 176 -[84,1](180, 179) -> 177 -[84,1](181, 179) -> 178 -[85,1](182, 182) -> 179 -[85,1](183, 182) -> 180 -[85,1](184, 182) -> 181 -[86,1](185, 185) -> 182 -[86,1](186, 185) -> 183 -[86,1](187, 185) -> 184 -[87,1](188, 188) -> 185 -[87,1](189, 188) -> 186 -[87,1](190, 188) -> 187 -[88,1](191, 191) -> 188 -[88,1](192, 191) -> 189 -[88,1](193, 191) -> 190 -[89,1](194, 194) -> 191 -[89,1](195, 194) -> 192 -[89,1](196, 194) -> 193 -[90,1](197, 197) -> 194 -[90,1](198, 197) -> 195 -[90,1](199, 197) -> 196 -[91,1](200, 200) -> 197 -[91,1](201, 200) -> 198 -[91,1](202, 200) -> 199 -[92,1](203, 203) -> 200 -[92,1](204, 203) -> 201 -[92,1](205, 203) -> 202 -[93,1](206, 206) -> 203 -[93,1](207, 206) -> 204 -[93,1](208, 206) -> 205 -[94,1](209, 209) -> 206 -[94,1](210, 209) -> 207 -[94,1](211, 209) -> 208 -[95,1](212, 212) -> 209 -[95,1](213, 212) -> 210 -[95,1](214, 212) -> 211 -[96,1](215, 215) -> 212 -[96,1](216, 215) -> 213 -[96,1](217, 215) -> 214 -[97,1](218, 218) -> 215 -[97,1](219, 218) -> 216 -[97,1](220, 218) -> 217 -[98,1](221, 221) -> 218 -[98,1](222, 221) -> 219 -[98,1](223, 221) -> 220 -[99,1](224, 224) -> 221 -[99,1](225, 224) -> 222 -[99,1](226, 224) -> 223 -[100,1](227, 227) -> 224 -[100,1](228, 227) -> 225 -[100,1](229, 227) -> 226 -[101,1](230, 230) -> 227 -[101,1](231, 230) -> 228 -[101,1](232, 230) -> 229 -[102,1](233, 233) -> 230 -[102,1](234, 233) -> 231 -[102,1](235, 233) -> 232 -[103,1](236, 236) -> 233 -[103,1](237, 236) -> 234 -[103,1](238, 236) -> 235 -[104,1](239, 239) -> 236 -[104,1](240, 239) -> 237 -[104,1](241, 239) -> 238 -[105,1](242, 242) -> 239 -[105,1](243, 242) -> 240 -[105,1](244, 242) -> 241 -[106,1](245, 245) -> 242 -[106,1](246, 245) -> 243 -[106,1](247, 245) -> 244 -[107,1](248, 248) -> 245 -[107,1](249, 248) -> 246 -[107,1](250, 248) -> 247 -[108,1](251, 251) -> 248 -[108,1](252, 251) -> 249 -[108,1](253, 251) -> 250 -[109,1](254, 254) -> 251 -[109,1](255, 254) -> 252 -[109,1](256, 254) -> 253 -[110,1](257, 257) -> 254 -[110,1](258, 257) -> 255 -[110,1](259, 257) -> 256 -[111,1](260, 260) -> 257 -[111,1](261, 260) -> 258 -[111,1](262, 260) -> 259 -[112,1](263, 263) -> 260 -[112,1](264, 263) -> 261 -[112,1](265, 263) -> 262 -[113,1](266, 266) -> 263 -[113,1](267, 266) -> 264 -[113,1](268, 266) -> 265 -[114,1](269, 269) -> 266 -[114,1](270, 269) -> 267 -[114,1](271, 269) -> 268 -[115,1](272, 272) -> 269 -[115,1](273, 272) -> 270 -[115,1](274, 272) -> 271 -[116,1](275, 275) -> 272 -[116,1](276, 275) -> 273 -[116,1](277, 275) -> 274 -[117,1](278, 278) -> 275 -[117,1](279, 278) -> 276 -[117,1](280, 278) -> 277 -[118,1](281, 281) -> 278 -[118,1](282, 281) -> 279 -[118,1](283, 281) -> 280 -[119,1](284, 284) -> 281 -[119,1](285, 284) -> 282 -[119,1](286, 284) -> 283 -[120,1](287, 287) -> 284 -[120,1](288, 287) -> 285 -[120,1](289, 287) -> 286 -[121,1](290, 290) -> 287 -[121,1](291, 290) -> 288 -[121,1](292, 290) -> 289 -[122,1](293, 293) -> 290 -[122,1](294, 293) -> 291 -[122,1](295, 293) -> 292 -[123,1](296, 296) -> 293 -[123,1](297, 296) -> 294 -[123,1](298, 296) -> 295 -[124,1](299, 299) -> 296 -[124,1](300, 299) -> 297 -[124,1](301, 299) -> 298 -[125,1](302, 302) -> 299 -[125,1](303, 302) -> 300 -[125,1](304, 302) -> 301 -[126,1](305, 305) -> 302 -[126,1](306, 305) -> 303 -[126,1](307, 305) -> 304 -[127,1](308, 308) -> 305 -[127,1](309, 308) -> 306 -[127,1](310, 308) -> 307 -[128,1](311, 311) -> 308 -[128,1](312, 311) -> 309 -[128,1](313, 311) -> 310 -[129,1](314, 314) -> 311 -[129,1](315, 314) -> 312 -[129,1](316, 314) -> 313 -[130,1](317, 317) -> 314 -[130,1](318, 317) -> 315 -[130,1](319, 317) -> 316 -[131,1](320, 320) -> 317 -[131,1](321, 320) -> 318 -[131,1](322, 320) -> 319 -[132,1](323, 323) -> 320 -[132,1](324, 323) -> 321 -[132,1](325, 323) -> 322 -[133,1](326, 326) -> 323 -[133,1](327, 326) -> 324 -[133,1](328, 326) -> 325 -[134,1](329, 329) -> 326 -[134,1](330, 329) -> 327 -[134,1](331, 329) -> 328 -[135,1](332, 332) -> 329 -[135,1](333, 332) -> 330 -[135,1](334, 332) -> 331 -[136,1](335, 335) -> 332 -[136,1](336, 335) -> 333 -[136,1](337, 335) -> 334 -[137,1](338, 338) -> 335 -[137,1](339, 338) -> 336 -[137,1](340, 338) -> 337 -[138,1](341, 341) -> 338 -[138,1](342, 341) -> 339 -[138,1](343, 341) -> 340 -[139,1](344, 344) -> 341 -[139,1](345, 344) -> 342 -[139,1](346, 344) -> 343 -[140,1](347, 347) -> 344 -[140,1](348, 347) -> 345 -[140,1](349, 347) -> 346 -[141,1](350, 350) -> 347 -[141,1](351, 350) -> 348 -[141,1](352, 350) -> 349 -[142,1](353, 353) -> 350 -[142,1](354, 353) -> 351 -[142,1](355, 353) -> 352 -[p1,1] -> 353 -[p2,1] -> 354 -[p3,1] -> 355 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/71/pre.hsl b/benchmarks/all/OEGrover/71/pre.hsl index 166ba4f13..e48595727 100644 --- a/benchmarks/all/OEGrover/71/pre.hsl +++ b/benchmarks/all/OEGrover/71/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 34 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 2361183241434822606847 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/71/pre.lsta b/benchmarks/all/OEGrover/71/pre.lsta deleted file mode 100644 index aeacfbf13..000000000 --- a/benchmarks/all/OEGrover/71/pre.lsta +++ /dev/null @@ -1,366 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 144) -> 141 -[72,1](143, 145) -> 142 -[73,1](146, 146) -> 143 -[73,1](147, 146) -> 144 -[73,1](148, 146) -> 145 -[74,1](149, 149) -> 146 -[74,1](150, 149) -> 147 -[74,1](151, 149) -> 148 -[75,1](152, 152) -> 149 -[75,1](153, 152) -> 150 -[75,1](154, 152) -> 151 -[76,1](155, 155) -> 152 -[76,1](156, 155) -> 153 -[76,1](157, 155) -> 154 -[77,1](158, 158) -> 155 -[77,1](159, 158) -> 156 -[77,1](160, 158) -> 157 -[78,1](161, 161) -> 158 -[78,1](162, 161) -> 159 -[78,1](163, 161) -> 160 -[79,1](164, 164) -> 161 -[79,1](165, 164) -> 162 -[79,1](166, 164) -> 163 -[80,1](167, 167) -> 164 -[80,1](168, 167) -> 165 -[80,1](169, 167) -> 166 -[81,1](170, 170) -> 167 -[81,1](171, 170) -> 168 -[81,1](172, 170) -> 169 -[82,1](173, 173) -> 170 -[82,1](174, 173) -> 171 -[82,1](175, 173) -> 172 -[83,1](176, 176) -> 173 -[83,1](177, 176) -> 174 -[83,1](178, 176) -> 175 -[84,1](179, 179) -> 176 -[84,1](180, 179) -> 177 -[84,1](181, 179) -> 178 -[85,1](182, 182) -> 179 -[85,1](183, 182) -> 180 -[85,1](184, 182) -> 181 -[86,1](185, 185) -> 182 -[86,1](186, 185) -> 183 -[86,1](187, 185) -> 184 -[87,1](188, 188) -> 185 -[87,1](189, 188) -> 186 -[87,1](190, 188) -> 187 -[88,1](191, 191) -> 188 -[88,1](192, 191) -> 189 -[88,1](193, 191) -> 190 -[89,1](194, 194) -> 191 -[89,1](195, 194) -> 192 -[89,1](196, 194) -> 193 -[90,1](197, 197) -> 194 -[90,1](198, 197) -> 195 -[90,1](199, 197) -> 196 -[91,1](200, 200) -> 197 -[91,1](201, 200) -> 198 -[91,1](202, 200) -> 199 -[92,1](203, 203) -> 200 -[92,1](204, 203) -> 201 -[92,1](205, 203) -> 202 -[93,1](206, 206) -> 203 -[93,1](207, 206) -> 204 -[93,1](208, 206) -> 205 -[94,1](209, 209) -> 206 -[94,1](210, 209) -> 207 -[94,1](211, 209) -> 208 -[95,1](212, 212) -> 209 -[95,1](213, 212) -> 210 -[95,1](214, 212) -> 211 -[96,1](215, 215) -> 212 -[96,1](216, 215) -> 213 -[96,1](217, 215) -> 214 -[97,1](218, 218) -> 215 -[97,1](219, 218) -> 216 -[97,1](220, 218) -> 217 -[98,1](221, 221) -> 218 -[98,1](222, 221) -> 219 -[98,1](223, 221) -> 220 -[99,1](224, 224) -> 221 -[99,1](225, 224) -> 222 -[99,1](226, 224) -> 223 -[100,1](227, 227) -> 224 -[100,1](228, 227) -> 225 -[100,1](229, 227) -> 226 -[101,1](230, 230) -> 227 -[101,1](231, 230) -> 228 -[101,1](232, 230) -> 229 -[102,1](233, 233) -> 230 -[102,1](234, 233) -> 231 -[102,1](235, 233) -> 232 -[103,1](236, 236) -> 233 -[103,1](237, 236) -> 234 -[103,1](238, 236) -> 235 -[104,1](239, 239) -> 236 -[104,1](240, 239) -> 237 -[104,1](241, 239) -> 238 -[105,1](242, 242) -> 239 -[105,1](243, 242) -> 240 -[105,1](244, 242) -> 241 -[106,1](245, 245) -> 242 -[106,1](246, 245) -> 243 -[106,1](247, 245) -> 244 -[107,1](248, 248) -> 245 -[107,1](249, 248) -> 246 -[107,1](250, 248) -> 247 -[108,1](251, 251) -> 248 -[108,1](252, 251) -> 249 -[108,1](253, 251) -> 250 -[109,1](254, 254) -> 251 -[109,1](255, 254) -> 252 -[109,1](256, 254) -> 253 -[110,1](257, 257) -> 254 -[110,1](258, 257) -> 255 -[110,1](259, 257) -> 256 -[111,1](260, 260) -> 257 -[111,1](261, 260) -> 258 -[111,1](262, 260) -> 259 -[112,1](263, 263) -> 260 -[112,1](264, 263) -> 261 -[112,1](265, 263) -> 262 -[113,1](266, 266) -> 263 -[113,1](267, 266) -> 264 -[113,1](268, 266) -> 265 -[114,1](269, 269) -> 266 -[114,1](270, 269) -> 267 -[114,1](271, 269) -> 268 -[115,1](272, 272) -> 269 -[115,1](273, 272) -> 270 -[115,1](274, 272) -> 271 -[116,1](275, 275) -> 272 -[116,1](276, 275) -> 273 -[116,1](277, 275) -> 274 -[117,1](278, 278) -> 275 -[117,1](279, 278) -> 276 -[117,1](280, 278) -> 277 -[118,1](281, 281) -> 278 -[118,1](282, 281) -> 279 -[118,1](283, 281) -> 280 -[119,1](284, 284) -> 281 -[119,1](285, 284) -> 282 -[119,1](286, 284) -> 283 -[120,1](287, 287) -> 284 -[120,1](288, 287) -> 285 -[120,1](289, 287) -> 286 -[121,1](290, 290) -> 287 -[121,1](291, 290) -> 288 -[121,1](292, 290) -> 289 -[122,1](293, 293) -> 290 -[122,1](294, 293) -> 291 -[122,1](295, 293) -> 292 -[123,1](296, 296) -> 293 -[123,1](297, 296) -> 294 -[123,1](298, 296) -> 295 -[124,1](299, 299) -> 296 -[124,1](300, 299) -> 297 -[124,1](301, 299) -> 298 -[125,1](302, 302) -> 299 -[125,1](303, 302) -> 300 -[125,1](304, 302) -> 301 -[126,1](305, 305) -> 302 -[126,1](306, 305) -> 303 -[126,1](307, 305) -> 304 -[127,1](308, 308) -> 305 -[127,1](309, 308) -> 306 -[127,1](310, 308) -> 307 -[128,1](311, 311) -> 308 -[128,1](312, 311) -> 309 -[128,1](313, 311) -> 310 -[129,1](314, 314) -> 311 -[129,1](315, 314) -> 312 -[129,1](316, 314) -> 313 -[130,1](317, 317) -> 314 -[130,1](318, 317) -> 315 -[130,1](319, 317) -> 316 -[131,1](320, 320) -> 317 -[131,1](321, 320) -> 318 -[131,1](322, 320) -> 319 -[132,1](323, 323) -> 320 -[132,1](324, 323) -> 321 -[132,1](325, 323) -> 322 -[133,1](326, 326) -> 323 -[133,1](327, 326) -> 324 -[133,1](328, 326) -> 325 -[134,1](329, 329) -> 326 -[134,1](330, 329) -> 327 -[134,1](331, 329) -> 328 -[135,1](332, 332) -> 329 -[135,1](333, 332) -> 330 -[135,1](334, 332) -> 331 -[136,1](335, 335) -> 332 -[136,1](336, 335) -> 333 -[136,1](337, 335) -> 334 -[137,1](338, 338) -> 335 -[137,1](339, 338) -> 336 -[137,1](340, 338) -> 337 -[138,1](341, 341) -> 338 -[138,1](342, 341) -> 339 -[138,1](343, 341) -> 340 -[139,1](344, 344) -> 341 -[139,1](345, 344) -> 342 -[139,1](346, 344) -> 343 -[140,1](347, 347) -> 344 -[140,1](348, 347) -> 345 -[140,1](349, 347) -> 346 -[141,1](350, 350) -> 347 -[141,1](351, 350) -> 348 -[141,1](352, 350) -> 349 -[142,1](353, 353) -> 350 -[142,1](354, 353) -> 351 -[142,1](355, 353) -> 352 -[c0,1] -> 353 -[a,1] -> 354 -[b,1] -> 355 -Constraints -2361183241434822606847 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/72/circuit.qasm b/benchmarks/all/OEGrover/72/circuit.qasm index 0b332a747..5a855c59b 100644 --- a/benchmarks/all/OEGrover/72/circuit.qasm +++ b/benchmarks/all/OEGrover/72/circuit.qasm @@ -1,184 +1,184 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[144]; +qreg qubits[143]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -ccx qubits[0], qubits[1], qubits[73]; -ccx qubits[2], qubits[73], qubits[74]; -ccx qubits[3], qubits[74], qubits[75]; -ccx qubits[4], qubits[75], qubits[76]; -ccx qubits[5], qubits[76], qubits[77]; -ccx qubits[6], qubits[77], qubits[78]; -ccx qubits[7], qubits[78], qubits[79]; -ccx qubits[8], qubits[79], qubits[80]; -ccx qubits[9], qubits[80], qubits[81]; -ccx qubits[10], qubits[81], qubits[82]; -ccx qubits[11], qubits[82], qubits[83]; -ccx qubits[12], qubits[83], qubits[84]; -ccx qubits[13], qubits[84], qubits[85]; -ccx qubits[14], qubits[85], qubits[86]; -ccx qubits[15], qubits[86], qubits[87]; -ccx qubits[16], qubits[87], qubits[88]; -ccx qubits[17], qubits[88], qubits[89]; -ccx qubits[18], qubits[89], qubits[90]; -ccx qubits[19], qubits[90], qubits[91]; -ccx qubits[20], qubits[91], qubits[92]; -ccx qubits[21], qubits[92], qubits[93]; -ccx qubits[22], qubits[93], qubits[94]; -ccx qubits[23], qubits[94], qubits[95]; -ccx qubits[24], qubits[95], qubits[96]; -ccx qubits[25], qubits[96], qubits[97]; -ccx qubits[26], qubits[97], qubits[98]; -ccx qubits[27], qubits[98], qubits[99]; -ccx qubits[28], qubits[99], qubits[100]; -ccx qubits[29], qubits[100], qubits[101]; -ccx qubits[30], qubits[101], qubits[102]; -ccx qubits[31], qubits[102], qubits[103]; -ccx qubits[32], qubits[103], qubits[104]; -ccx qubits[33], qubits[104], qubits[105]; -ccx qubits[34], qubits[105], qubits[106]; -ccx qubits[35], qubits[106], qubits[107]; -ccx qubits[36], qubits[107], qubits[108]; -ccx qubits[37], qubits[108], qubits[109]; -ccx qubits[38], qubits[109], qubits[110]; -ccx qubits[39], qubits[110], qubits[111]; -ccx qubits[40], qubits[111], qubits[112]; -ccx qubits[41], qubits[112], qubits[113]; -ccx qubits[42], qubits[113], qubits[114]; -ccx qubits[43], qubits[114], qubits[115]; -ccx qubits[44], qubits[115], qubits[116]; -ccx qubits[45], qubits[116], qubits[117]; -ccx qubits[46], qubits[117], qubits[118]; -ccx qubits[47], qubits[118], qubits[119]; -ccx qubits[48], qubits[119], qubits[120]; -ccx qubits[49], qubits[120], qubits[121]; -ccx qubits[50], qubits[121], qubits[122]; -ccx qubits[51], qubits[122], qubits[123]; -ccx qubits[52], qubits[123], qubits[124]; -ccx qubits[53], qubits[124], qubits[125]; -ccx qubits[54], qubits[125], qubits[126]; -ccx qubits[55], qubits[126], qubits[127]; -ccx qubits[56], qubits[127], qubits[128]; -ccx qubits[57], qubits[128], qubits[129]; -ccx qubits[58], qubits[129], qubits[130]; -ccx qubits[59], qubits[130], qubits[131]; -ccx qubits[60], qubits[131], qubits[132]; -ccx qubits[61], qubits[132], qubits[133]; -ccx qubits[62], qubits[133], qubits[134]; -ccx qubits[63], qubits[134], qubits[135]; -ccx qubits[64], qubits[135], qubits[136]; -ccx qubits[65], qubits[136], qubits[137]; -ccx qubits[66], qubits[137], qubits[138]; -ccx qubits[67], qubits[138], qubits[139]; -ccx qubits[68], qubits[139], qubits[140]; -ccx qubits[69], qubits[140], qubits[141]; -ccx qubits[70], qubits[141], qubits[142]; -cz qubits[142], qubits[71]; -ccx qubits[70], qubits[141], qubits[142]; -ccx qubits[69], qubits[140], qubits[141]; -ccx qubits[68], qubits[139], qubits[140]; -ccx qubits[67], qubits[138], qubits[139]; -ccx qubits[66], qubits[137], qubits[138]; -ccx qubits[65], qubits[136], qubits[137]; -ccx qubits[64], qubits[135], qubits[136]; -ccx qubits[63], qubits[134], qubits[135]; -ccx qubits[62], qubits[133], qubits[134]; -ccx qubits[61], qubits[132], qubits[133]; -ccx qubits[60], qubits[131], qubits[132]; -ccx qubits[59], qubits[130], qubits[131]; -ccx qubits[58], qubits[129], qubits[130]; -ccx qubits[57], qubits[128], qubits[129]; -ccx qubits[56], qubits[127], qubits[128]; -ccx qubits[55], qubits[126], qubits[127]; -ccx qubits[54], qubits[125], qubits[126]; -ccx qubits[53], qubits[124], qubits[125]; -ccx qubits[52], qubits[123], qubits[124]; -ccx qubits[51], qubits[122], qubits[123]; -ccx qubits[50], qubits[121], qubits[122]; -ccx qubits[49], qubits[120], qubits[121]; -ccx qubits[48], qubits[119], qubits[120]; -ccx qubits[47], qubits[118], qubits[119]; -ccx qubits[46], qubits[117], qubits[118]; -ccx qubits[45], qubits[116], qubits[117]; -ccx qubits[44], qubits[115], qubits[116]; -ccx qubits[43], qubits[114], qubits[115]; -ccx qubits[42], qubits[113], qubits[114]; -ccx qubits[41], qubits[112], qubits[113]; -ccx qubits[40], qubits[111], qubits[112]; -ccx qubits[39], qubits[110], qubits[111]; -ccx qubits[38], qubits[109], qubits[110]; -ccx qubits[37], qubits[108], qubits[109]; -ccx qubits[36], qubits[107], qubits[108]; -ccx qubits[35], qubits[106], qubits[107]; -ccx qubits[34], qubits[105], qubits[106]; -ccx qubits[33], qubits[104], qubits[105]; -ccx qubits[32], qubits[103], qubits[104]; -ccx qubits[31], qubits[102], qubits[103]; -ccx qubits[30], qubits[101], qubits[102]; -ccx qubits[29], qubits[100], qubits[101]; -ccx qubits[28], qubits[99], qubits[100]; -ccx qubits[27], qubits[98], qubits[99]; -ccx qubits[26], qubits[97], qubits[98]; -ccx qubits[25], qubits[96], qubits[97]; -ccx qubits[24], qubits[95], qubits[96]; -ccx qubits[23], qubits[94], qubits[95]; -ccx qubits[22], qubits[93], qubits[94]; -ccx qubits[21], qubits[92], qubits[93]; -ccx qubits[20], qubits[91], qubits[92]; -ccx qubits[19], qubits[90], qubits[91]; -ccx qubits[18], qubits[89], qubits[90]; -ccx qubits[17], qubits[88], qubits[89]; -ccx qubits[16], qubits[87], qubits[88]; -ccx qubits[15], qubits[86], qubits[87]; -ccx qubits[14], qubits[85], qubits[86]; -ccx qubits[13], qubits[84], qubits[85]; -ccx qubits[12], qubits[83], qubits[84]; -ccx qubits[11], qubits[82], qubits[83]; -ccx qubits[10], qubits[81], qubits[82]; -ccx qubits[9], qubits[80], qubits[81]; -ccx qubits[8], qubits[79], qubits[80]; -ccx qubits[7], qubits[78], qubits[79]; -ccx qubits[6], qubits[77], qubits[78]; -ccx qubits[5], qubits[76], qubits[77]; -ccx qubits[4], qubits[75], qubits[76]; -ccx qubits[3], qubits[74], qubits[75]; -ccx qubits[2], qubits[73], qubits[74]; -ccx qubits[0], qubits[1], qubits[73]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +cz qubits[140], qubits[141]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -217,431 +217,431 @@ x qubits[68]; x qubits[70]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -ccx qubits[0], qubits[1], qubits[73]; -ccx qubits[2], qubits[73], qubits[74]; -ccx qubits[3], qubits[74], qubits[75]; -ccx qubits[4], qubits[75], qubits[76]; -ccx qubits[5], qubits[76], qubits[77]; -ccx qubits[6], qubits[77], qubits[78]; -ccx qubits[7], qubits[78], qubits[79]; -ccx qubits[8], qubits[79], qubits[80]; -ccx qubits[9], qubits[80], qubits[81]; -ccx qubits[10], qubits[81], qubits[82]; -ccx qubits[11], qubits[82], qubits[83]; -ccx qubits[12], qubits[83], qubits[84]; -ccx qubits[13], qubits[84], qubits[85]; -ccx qubits[14], qubits[85], qubits[86]; -ccx qubits[15], qubits[86], qubits[87]; -ccx qubits[16], qubits[87], qubits[88]; -ccx qubits[17], qubits[88], qubits[89]; -ccx qubits[18], qubits[89], qubits[90]; -ccx qubits[19], qubits[90], qubits[91]; -ccx qubits[20], qubits[91], qubits[92]; -ccx qubits[21], qubits[92], qubits[93]; -ccx qubits[22], qubits[93], qubits[94]; -ccx qubits[23], qubits[94], qubits[95]; -ccx qubits[24], qubits[95], qubits[96]; -ccx qubits[25], qubits[96], qubits[97]; -ccx qubits[26], qubits[97], qubits[98]; -ccx qubits[27], qubits[98], qubits[99]; -ccx qubits[28], qubits[99], qubits[100]; -ccx qubits[29], qubits[100], qubits[101]; -ccx qubits[30], qubits[101], qubits[102]; -ccx qubits[31], qubits[102], qubits[103]; -ccx qubits[32], qubits[103], qubits[104]; -ccx qubits[33], qubits[104], qubits[105]; -ccx qubits[34], qubits[105], qubits[106]; -ccx qubits[35], qubits[106], qubits[107]; -ccx qubits[36], qubits[107], qubits[108]; -ccx qubits[37], qubits[108], qubits[109]; -ccx qubits[38], qubits[109], qubits[110]; -ccx qubits[39], qubits[110], qubits[111]; -ccx qubits[40], qubits[111], qubits[112]; -ccx qubits[41], qubits[112], qubits[113]; -ccx qubits[42], qubits[113], qubits[114]; -ccx qubits[43], qubits[114], qubits[115]; -ccx qubits[44], qubits[115], qubits[116]; -ccx qubits[45], qubits[116], qubits[117]; -ccx qubits[46], qubits[117], qubits[118]; -ccx qubits[47], qubits[118], qubits[119]; -ccx qubits[48], qubits[119], qubits[120]; -ccx qubits[49], qubits[120], qubits[121]; -ccx qubits[50], qubits[121], qubits[122]; -ccx qubits[51], qubits[122], qubits[123]; -ccx qubits[52], qubits[123], qubits[124]; -ccx qubits[53], qubits[124], qubits[125]; -ccx qubits[54], qubits[125], qubits[126]; -ccx qubits[55], qubits[126], qubits[127]; -ccx qubits[56], qubits[127], qubits[128]; -ccx qubits[57], qubits[128], qubits[129]; -ccx qubits[58], qubits[129], qubits[130]; -ccx qubits[59], qubits[130], qubits[131]; -ccx qubits[60], qubits[131], qubits[132]; -ccx qubits[61], qubits[132], qubits[133]; -ccx qubits[62], qubits[133], qubits[134]; -ccx qubits[63], qubits[134], qubits[135]; -ccx qubits[64], qubits[135], qubits[136]; -ccx qubits[65], qubits[136], qubits[137]; -ccx qubits[66], qubits[137], qubits[138]; -ccx qubits[67], qubits[138], qubits[139]; -ccx qubits[68], qubits[139], qubits[140]; -ccx qubits[69], qubits[140], qubits[141]; -ccx qubits[70], qubits[141], qubits[142]; -cz qubits[142], qubits[71]; -ccx qubits[70], qubits[141], qubits[142]; -ccx qubits[69], qubits[140], qubits[141]; -ccx qubits[68], qubits[139], qubits[140]; -ccx qubits[67], qubits[138], qubits[139]; -ccx qubits[66], qubits[137], qubits[138]; -ccx qubits[65], qubits[136], qubits[137]; -ccx qubits[64], qubits[135], qubits[136]; -ccx qubits[63], qubits[134], qubits[135]; -ccx qubits[62], qubits[133], qubits[134]; -ccx qubits[61], qubits[132], qubits[133]; -ccx qubits[60], qubits[131], qubits[132]; -ccx qubits[59], qubits[130], qubits[131]; -ccx qubits[58], qubits[129], qubits[130]; -ccx qubits[57], qubits[128], qubits[129]; -ccx qubits[56], qubits[127], qubits[128]; -ccx qubits[55], qubits[126], qubits[127]; -ccx qubits[54], qubits[125], qubits[126]; -ccx qubits[53], qubits[124], qubits[125]; -ccx qubits[52], qubits[123], qubits[124]; -ccx qubits[51], qubits[122], qubits[123]; -ccx qubits[50], qubits[121], qubits[122]; -ccx qubits[49], qubits[120], qubits[121]; -ccx qubits[48], qubits[119], qubits[120]; -ccx qubits[47], qubits[118], qubits[119]; -ccx qubits[46], qubits[117], qubits[118]; -ccx qubits[45], qubits[116], qubits[117]; -ccx qubits[44], qubits[115], qubits[116]; -ccx qubits[43], qubits[114], qubits[115]; -ccx qubits[42], qubits[113], qubits[114]; -ccx qubits[41], qubits[112], qubits[113]; -ccx qubits[40], qubits[111], qubits[112]; -ccx qubits[39], qubits[110], qubits[111]; -ccx qubits[38], qubits[109], qubits[110]; -ccx qubits[37], qubits[108], qubits[109]; -ccx qubits[36], qubits[107], qubits[108]; -ccx qubits[35], qubits[106], qubits[107]; -ccx qubits[34], qubits[105], qubits[106]; -ccx qubits[33], qubits[104], qubits[105]; -ccx qubits[32], qubits[103], qubits[104]; -ccx qubits[31], qubits[102], qubits[103]; -ccx qubits[30], qubits[101], qubits[102]; -ccx qubits[29], qubits[100], qubits[101]; -ccx qubits[28], qubits[99], qubits[100]; -ccx qubits[27], qubits[98], qubits[99]; -ccx qubits[26], qubits[97], qubits[98]; -ccx qubits[25], qubits[96], qubits[97]; -ccx qubits[24], qubits[95], qubits[96]; -ccx qubits[23], qubits[94], qubits[95]; -ccx qubits[22], qubits[93], qubits[94]; -ccx qubits[21], qubits[92], qubits[93]; -ccx qubits[20], qubits[91], qubits[92]; -ccx qubits[19], qubits[90], qubits[91]; -ccx qubits[18], qubits[89], qubits[90]; -ccx qubits[17], qubits[88], qubits[89]; -ccx qubits[16], qubits[87], qubits[88]; -ccx qubits[15], qubits[86], qubits[87]; -ccx qubits[14], qubits[85], qubits[86]; -ccx qubits[13], qubits[84], qubits[85]; -ccx qubits[12], qubits[83], qubits[84]; -ccx qubits[11], qubits[82], qubits[83]; -ccx qubits[10], qubits[81], qubits[82]; -ccx qubits[9], qubits[80], qubits[81]; -ccx qubits[8], qubits[79], qubits[80]; -ccx qubits[7], qubits[78], qubits[79]; -ccx qubits[6], qubits[77], qubits[78]; -ccx qubits[5], qubits[76], qubits[77]; -ccx qubits[4], qubits[75], qubits[76]; -ccx qubits[3], qubits[74], qubits[75]; -ccx qubits[2], qubits[73], qubits[74]; -ccx qubits[0], qubits[1], qubits[73]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +cz qubits[140], qubits[141]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -z qubits[72]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +z qubits[142]; diff --git a/benchmarks/all/OEGrover/72/post.hsl b/benchmarks/all/OEGrover/72/post.hsl index aa0c539ac..88304b354 100644 --- a/benchmarks/all/OEGrover/72/post.hsl +++ b/benchmarks/all/OEGrover/72/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101100000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 35 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/72/post.lsta b/benchmarks/all/OEGrover/72/post.lsta deleted file mode 100644 index 4b59751ee..000000000 --- a/benchmarks/all/OEGrover/72/post.lsta +++ /dev/null @@ -1,367 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 146) -> 143 -[73,1](145, 147) -> 144 -[74,1](148, 148) -> 145 -[74,1](149, 148) -> 146 -[74,1](150, 148) -> 147 -[75,1](151, 151) -> 148 -[75,1](152, 151) -> 149 -[75,1](153, 151) -> 150 -[76,1](154, 154) -> 151 -[76,1](155, 154) -> 152 -[76,1](156, 154) -> 153 -[77,1](157, 157) -> 154 -[77,1](158, 157) -> 155 -[77,1](159, 157) -> 156 -[78,1](160, 160) -> 157 -[78,1](161, 160) -> 158 -[78,1](162, 160) -> 159 -[79,1](163, 163) -> 160 -[79,1](164, 163) -> 161 -[79,1](165, 163) -> 162 -[80,1](166, 166) -> 163 -[80,1](167, 166) -> 164 -[80,1](168, 166) -> 165 -[81,1](169, 169) -> 166 -[81,1](170, 169) -> 167 -[81,1](171, 169) -> 168 -[82,1](172, 172) -> 169 -[82,1](173, 172) -> 170 -[82,1](174, 172) -> 171 -[83,1](175, 175) -> 172 -[83,1](176, 175) -> 173 -[83,1](177, 175) -> 174 -[84,1](178, 178) -> 175 -[84,1](179, 178) -> 176 -[84,1](180, 178) -> 177 -[85,1](181, 181) -> 178 -[85,1](182, 181) -> 179 -[85,1](183, 181) -> 180 -[86,1](184, 184) -> 181 -[86,1](185, 184) -> 182 -[86,1](186, 184) -> 183 -[87,1](187, 187) -> 184 -[87,1](188, 187) -> 185 -[87,1](189, 187) -> 186 -[88,1](190, 190) -> 187 -[88,1](191, 190) -> 188 -[88,1](192, 190) -> 189 -[89,1](193, 193) -> 190 -[89,1](194, 193) -> 191 -[89,1](195, 193) -> 192 -[90,1](196, 196) -> 193 -[90,1](197, 196) -> 194 -[90,1](198, 196) -> 195 -[91,1](199, 199) -> 196 -[91,1](200, 199) -> 197 -[91,1](201, 199) -> 198 -[92,1](202, 202) -> 199 -[92,1](203, 202) -> 200 -[92,1](204, 202) -> 201 -[93,1](205, 205) -> 202 -[93,1](206, 205) -> 203 -[93,1](207, 205) -> 204 -[94,1](208, 208) -> 205 -[94,1](209, 208) -> 206 -[94,1](210, 208) -> 207 -[95,1](211, 211) -> 208 -[95,1](212, 211) -> 209 -[95,1](213, 211) -> 210 -[96,1](214, 214) -> 211 -[96,1](215, 214) -> 212 -[96,1](216, 214) -> 213 -[97,1](217, 217) -> 214 -[97,1](218, 217) -> 215 -[97,1](219, 217) -> 216 -[98,1](220, 220) -> 217 -[98,1](221, 220) -> 218 -[98,1](222, 220) -> 219 -[99,1](223, 223) -> 220 -[99,1](224, 223) -> 221 -[99,1](225, 223) -> 222 -[100,1](226, 226) -> 223 -[100,1](227, 226) -> 224 -[100,1](228, 226) -> 225 -[101,1](229, 229) -> 226 -[101,1](230, 229) -> 227 -[101,1](231, 229) -> 228 -[102,1](232, 232) -> 229 -[102,1](233, 232) -> 230 -[102,1](234, 232) -> 231 -[103,1](235, 235) -> 232 -[103,1](236, 235) -> 233 -[103,1](237, 235) -> 234 -[104,1](238, 238) -> 235 -[104,1](239, 238) -> 236 -[104,1](240, 238) -> 237 -[105,1](241, 241) -> 238 -[105,1](242, 241) -> 239 -[105,1](243, 241) -> 240 -[106,1](244, 244) -> 241 -[106,1](245, 244) -> 242 -[106,1](246, 244) -> 243 -[107,1](247, 247) -> 244 -[107,1](248, 247) -> 245 -[107,1](249, 247) -> 246 -[108,1](250, 250) -> 247 -[108,1](251, 250) -> 248 -[108,1](252, 250) -> 249 -[109,1](253, 253) -> 250 -[109,1](254, 253) -> 251 -[109,1](255, 253) -> 252 -[110,1](256, 256) -> 253 -[110,1](257, 256) -> 254 -[110,1](258, 256) -> 255 -[111,1](259, 259) -> 256 -[111,1](260, 259) -> 257 -[111,1](261, 259) -> 258 -[112,1](262, 262) -> 259 -[112,1](263, 262) -> 260 -[112,1](264, 262) -> 261 -[113,1](265, 265) -> 262 -[113,1](266, 265) -> 263 -[113,1](267, 265) -> 264 -[114,1](268, 268) -> 265 -[114,1](269, 268) -> 266 -[114,1](270, 268) -> 267 -[115,1](271, 271) -> 268 -[115,1](272, 271) -> 269 -[115,1](273, 271) -> 270 -[116,1](274, 274) -> 271 -[116,1](275, 274) -> 272 -[116,1](276, 274) -> 273 -[117,1](277, 277) -> 274 -[117,1](278, 277) -> 275 -[117,1](279, 277) -> 276 -[118,1](280, 280) -> 277 -[118,1](281, 280) -> 278 -[118,1](282, 280) -> 279 -[119,1](283, 283) -> 280 -[119,1](284, 283) -> 281 -[119,1](285, 283) -> 282 -[120,1](286, 286) -> 283 -[120,1](287, 286) -> 284 -[120,1](288, 286) -> 285 -[121,1](289, 289) -> 286 -[121,1](290, 289) -> 287 -[121,1](291, 289) -> 288 -[122,1](292, 292) -> 289 -[122,1](293, 292) -> 290 -[122,1](294, 292) -> 291 -[123,1](295, 295) -> 292 -[123,1](296, 295) -> 293 -[123,1](297, 295) -> 294 -[124,1](298, 298) -> 295 -[124,1](299, 298) -> 296 -[124,1](300, 298) -> 297 -[125,1](301, 301) -> 298 -[125,1](302, 301) -> 299 -[125,1](303, 301) -> 300 -[126,1](304, 304) -> 301 -[126,1](305, 304) -> 302 -[126,1](306, 304) -> 303 -[127,1](307, 307) -> 304 -[127,1](308, 307) -> 305 -[127,1](309, 307) -> 306 -[128,1](310, 310) -> 307 -[128,1](311, 310) -> 308 -[128,1](312, 310) -> 309 -[129,1](313, 313) -> 310 -[129,1](314, 313) -> 311 -[129,1](315, 313) -> 312 -[130,1](316, 316) -> 313 -[130,1](317, 316) -> 314 -[130,1](318, 316) -> 315 -[131,1](319, 319) -> 316 -[131,1](320, 319) -> 317 -[131,1](321, 319) -> 318 -[132,1](322, 322) -> 319 -[132,1](323, 322) -> 320 -[132,1](324, 322) -> 321 -[133,1](325, 325) -> 322 -[133,1](326, 325) -> 323 -[133,1](327, 325) -> 324 -[134,1](328, 328) -> 325 -[134,1](329, 328) -> 326 -[134,1](330, 328) -> 327 -[135,1](331, 331) -> 328 -[135,1](332, 331) -> 329 -[135,1](333, 331) -> 330 -[136,1](334, 334) -> 331 -[136,1](335, 334) -> 332 -[136,1](336, 334) -> 333 -[137,1](337, 337) -> 334 -[137,1](338, 337) -> 335 -[137,1](339, 337) -> 336 -[138,1](340, 340) -> 337 -[138,1](341, 340) -> 338 -[138,1](342, 340) -> 339 -[139,1](343, 343) -> 340 -[139,1](344, 343) -> 341 -[139,1](345, 343) -> 342 -[140,1](346, 346) -> 343 -[140,1](347, 346) -> 344 -[140,1](348, 346) -> 345 -[141,1](349, 349) -> 346 -[141,1](350, 349) -> 347 -[141,1](351, 349) -> 348 -[142,1](352, 352) -> 349 -[142,1](353, 352) -> 350 -[142,1](354, 352) -> 351 -[143,1](355, 355) -> 352 -[143,1](356, 355) -> 353 -[143,1](357, 355) -> 354 -[144,1](358, 358) -> 355 -[144,1](359, 358) -> 356 -[144,1](360, 358) -> 357 -[p1,1] -> 358 -[p2,1] -> 359 -[p3,1] -> 360 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/72/pre.hsl b/benchmarks/all/OEGrover/72/pre.hsl index acc1be255..c931ffe0d 100644 --- a/benchmarks/all/OEGrover/72/pre.hsl +++ b/benchmarks/all/OEGrover/72/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 35 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 4722366482869645213695 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/72/pre.lsta b/benchmarks/all/OEGrover/72/pre.lsta deleted file mode 100644 index 7e2e08439..000000000 --- a/benchmarks/all/OEGrover/72/pre.lsta +++ /dev/null @@ -1,371 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 146) -> 143 -[73,1](145, 147) -> 144 -[74,1](148, 148) -> 145 -[74,1](149, 148) -> 146 -[74,1](150, 148) -> 147 -[75,1](151, 151) -> 148 -[75,1](152, 151) -> 149 -[75,1](153, 151) -> 150 -[76,1](154, 154) -> 151 -[76,1](155, 154) -> 152 -[76,1](156, 154) -> 153 -[77,1](157, 157) -> 154 -[77,1](158, 157) -> 155 -[77,1](159, 157) -> 156 -[78,1](160, 160) -> 157 -[78,1](161, 160) -> 158 -[78,1](162, 160) -> 159 -[79,1](163, 163) -> 160 -[79,1](164, 163) -> 161 -[79,1](165, 163) -> 162 -[80,1](166, 166) -> 163 -[80,1](167, 166) -> 164 -[80,1](168, 166) -> 165 -[81,1](169, 169) -> 166 -[81,1](170, 169) -> 167 -[81,1](171, 169) -> 168 -[82,1](172, 172) -> 169 -[82,1](173, 172) -> 170 -[82,1](174, 172) -> 171 -[83,1](175, 175) -> 172 -[83,1](176, 175) -> 173 -[83,1](177, 175) -> 174 -[84,1](178, 178) -> 175 -[84,1](179, 178) -> 176 -[84,1](180, 178) -> 177 -[85,1](181, 181) -> 178 -[85,1](182, 181) -> 179 -[85,1](183, 181) -> 180 -[86,1](184, 184) -> 181 -[86,1](185, 184) -> 182 -[86,1](186, 184) -> 183 -[87,1](187, 187) -> 184 -[87,1](188, 187) -> 185 -[87,1](189, 187) -> 186 -[88,1](190, 190) -> 187 -[88,1](191, 190) -> 188 -[88,1](192, 190) -> 189 -[89,1](193, 193) -> 190 -[89,1](194, 193) -> 191 -[89,1](195, 193) -> 192 -[90,1](196, 196) -> 193 -[90,1](197, 196) -> 194 -[90,1](198, 196) -> 195 -[91,1](199, 199) -> 196 -[91,1](200, 199) -> 197 -[91,1](201, 199) -> 198 -[92,1](202, 202) -> 199 -[92,1](203, 202) -> 200 -[92,1](204, 202) -> 201 -[93,1](205, 205) -> 202 -[93,1](206, 205) -> 203 -[93,1](207, 205) -> 204 -[94,1](208, 208) -> 205 -[94,1](209, 208) -> 206 -[94,1](210, 208) -> 207 -[95,1](211, 211) -> 208 -[95,1](212, 211) -> 209 -[95,1](213, 211) -> 210 -[96,1](214, 214) -> 211 -[96,1](215, 214) -> 212 -[96,1](216, 214) -> 213 -[97,1](217, 217) -> 214 -[97,1](218, 217) -> 215 -[97,1](219, 217) -> 216 -[98,1](220, 220) -> 217 -[98,1](221, 220) -> 218 -[98,1](222, 220) -> 219 -[99,1](223, 223) -> 220 -[99,1](224, 223) -> 221 -[99,1](225, 223) -> 222 -[100,1](226, 226) -> 223 -[100,1](227, 226) -> 224 -[100,1](228, 226) -> 225 -[101,1](229, 229) -> 226 -[101,1](230, 229) -> 227 -[101,1](231, 229) -> 228 -[102,1](232, 232) -> 229 -[102,1](233, 232) -> 230 -[102,1](234, 232) -> 231 -[103,1](235, 235) -> 232 -[103,1](236, 235) -> 233 -[103,1](237, 235) -> 234 -[104,1](238, 238) -> 235 -[104,1](239, 238) -> 236 -[104,1](240, 238) -> 237 -[105,1](241, 241) -> 238 -[105,1](242, 241) -> 239 -[105,1](243, 241) -> 240 -[106,1](244, 244) -> 241 -[106,1](245, 244) -> 242 -[106,1](246, 244) -> 243 -[107,1](247, 247) -> 244 -[107,1](248, 247) -> 245 -[107,1](249, 247) -> 246 -[108,1](250, 250) -> 247 -[108,1](251, 250) -> 248 -[108,1](252, 250) -> 249 -[109,1](253, 253) -> 250 -[109,1](254, 253) -> 251 -[109,1](255, 253) -> 252 -[110,1](256, 256) -> 253 -[110,1](257, 256) -> 254 -[110,1](258, 256) -> 255 -[111,1](259, 259) -> 256 -[111,1](260, 259) -> 257 -[111,1](261, 259) -> 258 -[112,1](262, 262) -> 259 -[112,1](263, 262) -> 260 -[112,1](264, 262) -> 261 -[113,1](265, 265) -> 262 -[113,1](266, 265) -> 263 -[113,1](267, 265) -> 264 -[114,1](268, 268) -> 265 -[114,1](269, 268) -> 266 -[114,1](270, 268) -> 267 -[115,1](271, 271) -> 268 -[115,1](272, 271) -> 269 -[115,1](273, 271) -> 270 -[116,1](274, 274) -> 271 -[116,1](275, 274) -> 272 -[116,1](276, 274) -> 273 -[117,1](277, 277) -> 274 -[117,1](278, 277) -> 275 -[117,1](279, 277) -> 276 -[118,1](280, 280) -> 277 -[118,1](281, 280) -> 278 -[118,1](282, 280) -> 279 -[119,1](283, 283) -> 280 -[119,1](284, 283) -> 281 -[119,1](285, 283) -> 282 -[120,1](286, 286) -> 283 -[120,1](287, 286) -> 284 -[120,1](288, 286) -> 285 -[121,1](289, 289) -> 286 -[121,1](290, 289) -> 287 -[121,1](291, 289) -> 288 -[122,1](292, 292) -> 289 -[122,1](293, 292) -> 290 -[122,1](294, 292) -> 291 -[123,1](295, 295) -> 292 -[123,1](296, 295) -> 293 -[123,1](297, 295) -> 294 -[124,1](298, 298) -> 295 -[124,1](299, 298) -> 296 -[124,1](300, 298) -> 297 -[125,1](301, 301) -> 298 -[125,1](302, 301) -> 299 -[125,1](303, 301) -> 300 -[126,1](304, 304) -> 301 -[126,1](305, 304) -> 302 -[126,1](306, 304) -> 303 -[127,1](307, 307) -> 304 -[127,1](308, 307) -> 305 -[127,1](309, 307) -> 306 -[128,1](310, 310) -> 307 -[128,1](311, 310) -> 308 -[128,1](312, 310) -> 309 -[129,1](313, 313) -> 310 -[129,1](314, 313) -> 311 -[129,1](315, 313) -> 312 -[130,1](316, 316) -> 313 -[130,1](317, 316) -> 314 -[130,1](318, 316) -> 315 -[131,1](319, 319) -> 316 -[131,1](320, 319) -> 317 -[131,1](321, 319) -> 318 -[132,1](322, 322) -> 319 -[132,1](323, 322) -> 320 -[132,1](324, 322) -> 321 -[133,1](325, 325) -> 322 -[133,1](326, 325) -> 323 -[133,1](327, 325) -> 324 -[134,1](328, 328) -> 325 -[134,1](329, 328) -> 326 -[134,1](330, 328) -> 327 -[135,1](331, 331) -> 328 -[135,1](332, 331) -> 329 -[135,1](333, 331) -> 330 -[136,1](334, 334) -> 331 -[136,1](335, 334) -> 332 -[136,1](336, 334) -> 333 -[137,1](337, 337) -> 334 -[137,1](338, 337) -> 335 -[137,1](339, 337) -> 336 -[138,1](340, 340) -> 337 -[138,1](341, 340) -> 338 -[138,1](342, 340) -> 339 -[139,1](343, 343) -> 340 -[139,1](344, 343) -> 341 -[139,1](345, 343) -> 342 -[140,1](346, 346) -> 343 -[140,1](347, 346) -> 344 -[140,1](348, 346) -> 345 -[141,1](349, 349) -> 346 -[141,1](350, 349) -> 347 -[141,1](351, 349) -> 348 -[142,1](352, 352) -> 349 -[142,1](353, 352) -> 350 -[142,1](354, 352) -> 351 -[143,1](355, 355) -> 352 -[143,1](356, 355) -> 353 -[143,1](357, 355) -> 354 -[144,1](358, 358) -> 355 -[144,1](359, 358) -> 356 -[144,1](360, 358) -> 357 -[c0,1] -> 358 -[a,1] -> 359 -[b,1] -> 360 -Constraints -4722366482869645213695 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/73/circuit.qasm b/benchmarks/all/OEGrover/73/circuit.qasm index 3810a412c..7bc08aa60 100644 --- a/benchmarks/all/OEGrover/73/circuit.qasm +++ b/benchmarks/all/OEGrover/73/circuit.qasm @@ -1,187 +1,187 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[146]; +qreg qubits[145]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -ccx qubits[0], qubits[1], qubits[74]; -ccx qubits[2], qubits[74], qubits[75]; -ccx qubits[3], qubits[75], qubits[76]; -ccx qubits[4], qubits[76], qubits[77]; -ccx qubits[5], qubits[77], qubits[78]; -ccx qubits[6], qubits[78], qubits[79]; -ccx qubits[7], qubits[79], qubits[80]; -ccx qubits[8], qubits[80], qubits[81]; -ccx qubits[9], qubits[81], qubits[82]; -ccx qubits[10], qubits[82], qubits[83]; -ccx qubits[11], qubits[83], qubits[84]; -ccx qubits[12], qubits[84], qubits[85]; -ccx qubits[13], qubits[85], qubits[86]; -ccx qubits[14], qubits[86], qubits[87]; -ccx qubits[15], qubits[87], qubits[88]; -ccx qubits[16], qubits[88], qubits[89]; -ccx qubits[17], qubits[89], qubits[90]; -ccx qubits[18], qubits[90], qubits[91]; -ccx qubits[19], qubits[91], qubits[92]; -ccx qubits[20], qubits[92], qubits[93]; -ccx qubits[21], qubits[93], qubits[94]; -ccx qubits[22], qubits[94], qubits[95]; -ccx qubits[23], qubits[95], qubits[96]; -ccx qubits[24], qubits[96], qubits[97]; -ccx qubits[25], qubits[97], qubits[98]; -ccx qubits[26], qubits[98], qubits[99]; -ccx qubits[27], qubits[99], qubits[100]; -ccx qubits[28], qubits[100], qubits[101]; -ccx qubits[29], qubits[101], qubits[102]; -ccx qubits[30], qubits[102], qubits[103]; -ccx qubits[31], qubits[103], qubits[104]; -ccx qubits[32], qubits[104], qubits[105]; -ccx qubits[33], qubits[105], qubits[106]; -ccx qubits[34], qubits[106], qubits[107]; -ccx qubits[35], qubits[107], qubits[108]; -ccx qubits[36], qubits[108], qubits[109]; -ccx qubits[37], qubits[109], qubits[110]; -ccx qubits[38], qubits[110], qubits[111]; -ccx qubits[39], qubits[111], qubits[112]; -ccx qubits[40], qubits[112], qubits[113]; -ccx qubits[41], qubits[113], qubits[114]; -ccx qubits[42], qubits[114], qubits[115]; -ccx qubits[43], qubits[115], qubits[116]; -ccx qubits[44], qubits[116], qubits[117]; -ccx qubits[45], qubits[117], qubits[118]; -ccx qubits[46], qubits[118], qubits[119]; -ccx qubits[47], qubits[119], qubits[120]; -ccx qubits[48], qubits[120], qubits[121]; -ccx qubits[49], qubits[121], qubits[122]; -ccx qubits[50], qubits[122], qubits[123]; -ccx qubits[51], qubits[123], qubits[124]; -ccx qubits[52], qubits[124], qubits[125]; -ccx qubits[53], qubits[125], qubits[126]; -ccx qubits[54], qubits[126], qubits[127]; -ccx qubits[55], qubits[127], qubits[128]; -ccx qubits[56], qubits[128], qubits[129]; -ccx qubits[57], qubits[129], qubits[130]; -ccx qubits[58], qubits[130], qubits[131]; -ccx qubits[59], qubits[131], qubits[132]; -ccx qubits[60], qubits[132], qubits[133]; -ccx qubits[61], qubits[133], qubits[134]; -ccx qubits[62], qubits[134], qubits[135]; -ccx qubits[63], qubits[135], qubits[136]; -ccx qubits[64], qubits[136], qubits[137]; -ccx qubits[65], qubits[137], qubits[138]; -ccx qubits[66], qubits[138], qubits[139]; -ccx qubits[67], qubits[139], qubits[140]; -ccx qubits[68], qubits[140], qubits[141]; -ccx qubits[69], qubits[141], qubits[142]; -ccx qubits[70], qubits[142], qubits[143]; -ccx qubits[71], qubits[143], qubits[144]; -cz qubits[144], qubits[72]; -ccx qubits[71], qubits[143], qubits[144]; -ccx qubits[70], qubits[142], qubits[143]; -ccx qubits[69], qubits[141], qubits[142]; -ccx qubits[68], qubits[140], qubits[141]; -ccx qubits[67], qubits[139], qubits[140]; -ccx qubits[66], qubits[138], qubits[139]; -ccx qubits[65], qubits[137], qubits[138]; -ccx qubits[64], qubits[136], qubits[137]; -ccx qubits[63], qubits[135], qubits[136]; -ccx qubits[62], qubits[134], qubits[135]; -ccx qubits[61], qubits[133], qubits[134]; -ccx qubits[60], qubits[132], qubits[133]; -ccx qubits[59], qubits[131], qubits[132]; -ccx qubits[58], qubits[130], qubits[131]; -ccx qubits[57], qubits[129], qubits[130]; -ccx qubits[56], qubits[128], qubits[129]; -ccx qubits[55], qubits[127], qubits[128]; -ccx qubits[54], qubits[126], qubits[127]; -ccx qubits[53], qubits[125], qubits[126]; -ccx qubits[52], qubits[124], qubits[125]; -ccx qubits[51], qubits[123], qubits[124]; -ccx qubits[50], qubits[122], qubits[123]; -ccx qubits[49], qubits[121], qubits[122]; -ccx qubits[48], qubits[120], qubits[121]; -ccx qubits[47], qubits[119], qubits[120]; -ccx qubits[46], qubits[118], qubits[119]; -ccx qubits[45], qubits[117], qubits[118]; -ccx qubits[44], qubits[116], qubits[117]; -ccx qubits[43], qubits[115], qubits[116]; -ccx qubits[42], qubits[114], qubits[115]; -ccx qubits[41], qubits[113], qubits[114]; -ccx qubits[40], qubits[112], qubits[113]; -ccx qubits[39], qubits[111], qubits[112]; -ccx qubits[38], qubits[110], qubits[111]; -ccx qubits[37], qubits[109], qubits[110]; -ccx qubits[36], qubits[108], qubits[109]; -ccx qubits[35], qubits[107], qubits[108]; -ccx qubits[34], qubits[106], qubits[107]; -ccx qubits[33], qubits[105], qubits[106]; -ccx qubits[32], qubits[104], qubits[105]; -ccx qubits[31], qubits[103], qubits[104]; -ccx qubits[30], qubits[102], qubits[103]; -ccx qubits[29], qubits[101], qubits[102]; -ccx qubits[28], qubits[100], qubits[101]; -ccx qubits[27], qubits[99], qubits[100]; -ccx qubits[26], qubits[98], qubits[99]; -ccx qubits[25], qubits[97], qubits[98]; -ccx qubits[24], qubits[96], qubits[97]; -ccx qubits[23], qubits[95], qubits[96]; -ccx qubits[22], qubits[94], qubits[95]; -ccx qubits[21], qubits[93], qubits[94]; -ccx qubits[20], qubits[92], qubits[93]; -ccx qubits[19], qubits[91], qubits[92]; -ccx qubits[18], qubits[90], qubits[91]; -ccx qubits[17], qubits[89], qubits[90]; -ccx qubits[16], qubits[88], qubits[89]; -ccx qubits[15], qubits[87], qubits[88]; -ccx qubits[14], qubits[86], qubits[87]; -ccx qubits[13], qubits[85], qubits[86]; -ccx qubits[12], qubits[84], qubits[85]; -ccx qubits[11], qubits[83], qubits[84]; -ccx qubits[10], qubits[82], qubits[83]; -ccx qubits[9], qubits[81], qubits[82]; -ccx qubits[8], qubits[80], qubits[81]; -ccx qubits[7], qubits[79], qubits[80]; -ccx qubits[6], qubits[78], qubits[79]; -ccx qubits[5], qubits[77], qubits[78]; -ccx qubits[4], qubits[76], qubits[77]; -ccx qubits[3], qubits[75], qubits[76]; -ccx qubits[2], qubits[74], qubits[75]; -ccx qubits[0], qubits[1], qubits[74]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +cz qubits[142], qubits[143]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -221,437 +221,437 @@ x qubits[70]; x qubits[72]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; -ccx qubits[0], qubits[1], qubits[74]; -ccx qubits[2], qubits[74], qubits[75]; -ccx qubits[3], qubits[75], qubits[76]; -ccx qubits[4], qubits[76], qubits[77]; -ccx qubits[5], qubits[77], qubits[78]; -ccx qubits[6], qubits[78], qubits[79]; -ccx qubits[7], qubits[79], qubits[80]; -ccx qubits[8], qubits[80], qubits[81]; -ccx qubits[9], qubits[81], qubits[82]; -ccx qubits[10], qubits[82], qubits[83]; -ccx qubits[11], qubits[83], qubits[84]; -ccx qubits[12], qubits[84], qubits[85]; -ccx qubits[13], qubits[85], qubits[86]; -ccx qubits[14], qubits[86], qubits[87]; -ccx qubits[15], qubits[87], qubits[88]; -ccx qubits[16], qubits[88], qubits[89]; -ccx qubits[17], qubits[89], qubits[90]; -ccx qubits[18], qubits[90], qubits[91]; -ccx qubits[19], qubits[91], qubits[92]; -ccx qubits[20], qubits[92], qubits[93]; -ccx qubits[21], qubits[93], qubits[94]; -ccx qubits[22], qubits[94], qubits[95]; -ccx qubits[23], qubits[95], qubits[96]; -ccx qubits[24], qubits[96], qubits[97]; -ccx qubits[25], qubits[97], qubits[98]; -ccx qubits[26], qubits[98], qubits[99]; -ccx qubits[27], qubits[99], qubits[100]; -ccx qubits[28], qubits[100], qubits[101]; -ccx qubits[29], qubits[101], qubits[102]; -ccx qubits[30], qubits[102], qubits[103]; -ccx qubits[31], qubits[103], qubits[104]; -ccx qubits[32], qubits[104], qubits[105]; -ccx qubits[33], qubits[105], qubits[106]; -ccx qubits[34], qubits[106], qubits[107]; -ccx qubits[35], qubits[107], qubits[108]; -ccx qubits[36], qubits[108], qubits[109]; -ccx qubits[37], qubits[109], qubits[110]; -ccx qubits[38], qubits[110], qubits[111]; -ccx qubits[39], qubits[111], qubits[112]; -ccx qubits[40], qubits[112], qubits[113]; -ccx qubits[41], qubits[113], qubits[114]; -ccx qubits[42], qubits[114], qubits[115]; -ccx qubits[43], qubits[115], qubits[116]; -ccx qubits[44], qubits[116], qubits[117]; -ccx qubits[45], qubits[117], qubits[118]; -ccx qubits[46], qubits[118], qubits[119]; -ccx qubits[47], qubits[119], qubits[120]; -ccx qubits[48], qubits[120], qubits[121]; -ccx qubits[49], qubits[121], qubits[122]; -ccx qubits[50], qubits[122], qubits[123]; -ccx qubits[51], qubits[123], qubits[124]; -ccx qubits[52], qubits[124], qubits[125]; -ccx qubits[53], qubits[125], qubits[126]; -ccx qubits[54], qubits[126], qubits[127]; -ccx qubits[55], qubits[127], qubits[128]; -ccx qubits[56], qubits[128], qubits[129]; -ccx qubits[57], qubits[129], qubits[130]; -ccx qubits[58], qubits[130], qubits[131]; -ccx qubits[59], qubits[131], qubits[132]; -ccx qubits[60], qubits[132], qubits[133]; -ccx qubits[61], qubits[133], qubits[134]; -ccx qubits[62], qubits[134], qubits[135]; -ccx qubits[63], qubits[135], qubits[136]; -ccx qubits[64], qubits[136], qubits[137]; -ccx qubits[65], qubits[137], qubits[138]; -ccx qubits[66], qubits[138], qubits[139]; -ccx qubits[67], qubits[139], qubits[140]; -ccx qubits[68], qubits[140], qubits[141]; -ccx qubits[69], qubits[141], qubits[142]; -ccx qubits[70], qubits[142], qubits[143]; -ccx qubits[71], qubits[143], qubits[144]; -cz qubits[144], qubits[72]; -ccx qubits[71], qubits[143], qubits[144]; -ccx qubits[70], qubits[142], qubits[143]; -ccx qubits[69], qubits[141], qubits[142]; -ccx qubits[68], qubits[140], qubits[141]; -ccx qubits[67], qubits[139], qubits[140]; -ccx qubits[66], qubits[138], qubits[139]; -ccx qubits[65], qubits[137], qubits[138]; -ccx qubits[64], qubits[136], qubits[137]; -ccx qubits[63], qubits[135], qubits[136]; -ccx qubits[62], qubits[134], qubits[135]; -ccx qubits[61], qubits[133], qubits[134]; -ccx qubits[60], qubits[132], qubits[133]; -ccx qubits[59], qubits[131], qubits[132]; -ccx qubits[58], qubits[130], qubits[131]; -ccx qubits[57], qubits[129], qubits[130]; -ccx qubits[56], qubits[128], qubits[129]; -ccx qubits[55], qubits[127], qubits[128]; -ccx qubits[54], qubits[126], qubits[127]; -ccx qubits[53], qubits[125], qubits[126]; -ccx qubits[52], qubits[124], qubits[125]; -ccx qubits[51], qubits[123], qubits[124]; -ccx qubits[50], qubits[122], qubits[123]; -ccx qubits[49], qubits[121], qubits[122]; -ccx qubits[48], qubits[120], qubits[121]; -ccx qubits[47], qubits[119], qubits[120]; -ccx qubits[46], qubits[118], qubits[119]; -ccx qubits[45], qubits[117], qubits[118]; -ccx qubits[44], qubits[116], qubits[117]; -ccx qubits[43], qubits[115], qubits[116]; -ccx qubits[42], qubits[114], qubits[115]; -ccx qubits[41], qubits[113], qubits[114]; -ccx qubits[40], qubits[112], qubits[113]; -ccx qubits[39], qubits[111], qubits[112]; -ccx qubits[38], qubits[110], qubits[111]; -ccx qubits[37], qubits[109], qubits[110]; -ccx qubits[36], qubits[108], qubits[109]; -ccx qubits[35], qubits[107], qubits[108]; -ccx qubits[34], qubits[106], qubits[107]; -ccx qubits[33], qubits[105], qubits[106]; -ccx qubits[32], qubits[104], qubits[105]; -ccx qubits[31], qubits[103], qubits[104]; -ccx qubits[30], qubits[102], qubits[103]; -ccx qubits[29], qubits[101], qubits[102]; -ccx qubits[28], qubits[100], qubits[101]; -ccx qubits[27], qubits[99], qubits[100]; -ccx qubits[26], qubits[98], qubits[99]; -ccx qubits[25], qubits[97], qubits[98]; -ccx qubits[24], qubits[96], qubits[97]; -ccx qubits[23], qubits[95], qubits[96]; -ccx qubits[22], qubits[94], qubits[95]; -ccx qubits[21], qubits[93], qubits[94]; -ccx qubits[20], qubits[92], qubits[93]; -ccx qubits[19], qubits[91], qubits[92]; -ccx qubits[18], qubits[90], qubits[91]; -ccx qubits[17], qubits[89], qubits[90]; -ccx qubits[16], qubits[88], qubits[89]; -ccx qubits[15], qubits[87], qubits[88]; -ccx qubits[14], qubits[86], qubits[87]; -ccx qubits[13], qubits[85], qubits[86]; -ccx qubits[12], qubits[84], qubits[85]; -ccx qubits[11], qubits[83], qubits[84]; -ccx qubits[10], qubits[82], qubits[83]; -ccx qubits[9], qubits[81], qubits[82]; -ccx qubits[8], qubits[80], qubits[81]; -ccx qubits[7], qubits[79], qubits[80]; -ccx qubits[6], qubits[78], qubits[79]; -ccx qubits[5], qubits[77], qubits[78]; -ccx qubits[4], qubits[76], qubits[77]; -ccx qubits[3], qubits[75], qubits[76]; -ccx qubits[2], qubits[74], qubits[75]; -ccx qubits[0], qubits[1], qubits[74]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +cz qubits[142], qubits[143]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; +x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; -z qubits[73]; +h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +z qubits[144]; diff --git a/benchmarks/all/OEGrover/73/post.hsl b/benchmarks/all/OEGrover/73/post.hsl index 53dc38155..8d53600e4 100644 --- a/benchmarks/all/OEGrover/73/post.hsl +++ b/benchmarks/all/OEGrover/73/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 35 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/73/post.lsta b/benchmarks/all/OEGrover/73/post.lsta deleted file mode 100644 index 4e891d9d0..000000000 --- a/benchmarks/all/OEGrover/73/post.lsta +++ /dev/null @@ -1,372 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 148) -> 145 -[74,1](147, 149) -> 146 -[75,1](150, 150) -> 147 -[75,1](151, 150) -> 148 -[75,1](152, 150) -> 149 -[76,1](153, 153) -> 150 -[76,1](154, 153) -> 151 -[76,1](155, 153) -> 152 -[77,1](156, 156) -> 153 -[77,1](157, 156) -> 154 -[77,1](158, 156) -> 155 -[78,1](159, 159) -> 156 -[78,1](160, 159) -> 157 -[78,1](161, 159) -> 158 -[79,1](162, 162) -> 159 -[79,1](163, 162) -> 160 -[79,1](164, 162) -> 161 -[80,1](165, 165) -> 162 -[80,1](166, 165) -> 163 -[80,1](167, 165) -> 164 -[81,1](168, 168) -> 165 -[81,1](169, 168) -> 166 -[81,1](170, 168) -> 167 -[82,1](171, 171) -> 168 -[82,1](172, 171) -> 169 -[82,1](173, 171) -> 170 -[83,1](174, 174) -> 171 -[83,1](175, 174) -> 172 -[83,1](176, 174) -> 173 -[84,1](177, 177) -> 174 -[84,1](178, 177) -> 175 -[84,1](179, 177) -> 176 -[85,1](180, 180) -> 177 -[85,1](181, 180) -> 178 -[85,1](182, 180) -> 179 -[86,1](183, 183) -> 180 -[86,1](184, 183) -> 181 -[86,1](185, 183) -> 182 -[87,1](186, 186) -> 183 -[87,1](187, 186) -> 184 -[87,1](188, 186) -> 185 -[88,1](189, 189) -> 186 -[88,1](190, 189) -> 187 -[88,1](191, 189) -> 188 -[89,1](192, 192) -> 189 -[89,1](193, 192) -> 190 -[89,1](194, 192) -> 191 -[90,1](195, 195) -> 192 -[90,1](196, 195) -> 193 -[90,1](197, 195) -> 194 -[91,1](198, 198) -> 195 -[91,1](199, 198) -> 196 -[91,1](200, 198) -> 197 -[92,1](201, 201) -> 198 -[92,1](202, 201) -> 199 -[92,1](203, 201) -> 200 -[93,1](204, 204) -> 201 -[93,1](205, 204) -> 202 -[93,1](206, 204) -> 203 -[94,1](207, 207) -> 204 -[94,1](208, 207) -> 205 -[94,1](209, 207) -> 206 -[95,1](210, 210) -> 207 -[95,1](211, 210) -> 208 -[95,1](212, 210) -> 209 -[96,1](213, 213) -> 210 -[96,1](214, 213) -> 211 -[96,1](215, 213) -> 212 -[97,1](216, 216) -> 213 -[97,1](217, 216) -> 214 -[97,1](218, 216) -> 215 -[98,1](219, 219) -> 216 -[98,1](220, 219) -> 217 -[98,1](221, 219) -> 218 -[99,1](222, 222) -> 219 -[99,1](223, 222) -> 220 -[99,1](224, 222) -> 221 -[100,1](225, 225) -> 222 -[100,1](226, 225) -> 223 -[100,1](227, 225) -> 224 -[101,1](228, 228) -> 225 -[101,1](229, 228) -> 226 -[101,1](230, 228) -> 227 -[102,1](231, 231) -> 228 -[102,1](232, 231) -> 229 -[102,1](233, 231) -> 230 -[103,1](234, 234) -> 231 -[103,1](235, 234) -> 232 -[103,1](236, 234) -> 233 -[104,1](237, 237) -> 234 -[104,1](238, 237) -> 235 -[104,1](239, 237) -> 236 -[105,1](240, 240) -> 237 -[105,1](241, 240) -> 238 -[105,1](242, 240) -> 239 -[106,1](243, 243) -> 240 -[106,1](244, 243) -> 241 -[106,1](245, 243) -> 242 -[107,1](246, 246) -> 243 -[107,1](247, 246) -> 244 -[107,1](248, 246) -> 245 -[108,1](249, 249) -> 246 -[108,1](250, 249) -> 247 -[108,1](251, 249) -> 248 -[109,1](252, 252) -> 249 -[109,1](253, 252) -> 250 -[109,1](254, 252) -> 251 -[110,1](255, 255) -> 252 -[110,1](256, 255) -> 253 -[110,1](257, 255) -> 254 -[111,1](258, 258) -> 255 -[111,1](259, 258) -> 256 -[111,1](260, 258) -> 257 -[112,1](261, 261) -> 258 -[112,1](262, 261) -> 259 -[112,1](263, 261) -> 260 -[113,1](264, 264) -> 261 -[113,1](265, 264) -> 262 -[113,1](266, 264) -> 263 -[114,1](267, 267) -> 264 -[114,1](268, 267) -> 265 -[114,1](269, 267) -> 266 -[115,1](270, 270) -> 267 -[115,1](271, 270) -> 268 -[115,1](272, 270) -> 269 -[116,1](273, 273) -> 270 -[116,1](274, 273) -> 271 -[116,1](275, 273) -> 272 -[117,1](276, 276) -> 273 -[117,1](277, 276) -> 274 -[117,1](278, 276) -> 275 -[118,1](279, 279) -> 276 -[118,1](280, 279) -> 277 -[118,1](281, 279) -> 278 -[119,1](282, 282) -> 279 -[119,1](283, 282) -> 280 -[119,1](284, 282) -> 281 -[120,1](285, 285) -> 282 -[120,1](286, 285) -> 283 -[120,1](287, 285) -> 284 -[121,1](288, 288) -> 285 -[121,1](289, 288) -> 286 -[121,1](290, 288) -> 287 -[122,1](291, 291) -> 288 -[122,1](292, 291) -> 289 -[122,1](293, 291) -> 290 -[123,1](294, 294) -> 291 -[123,1](295, 294) -> 292 -[123,1](296, 294) -> 293 -[124,1](297, 297) -> 294 -[124,1](298, 297) -> 295 -[124,1](299, 297) -> 296 -[125,1](300, 300) -> 297 -[125,1](301, 300) -> 298 -[125,1](302, 300) -> 299 -[126,1](303, 303) -> 300 -[126,1](304, 303) -> 301 -[126,1](305, 303) -> 302 -[127,1](306, 306) -> 303 -[127,1](307, 306) -> 304 -[127,1](308, 306) -> 305 -[128,1](309, 309) -> 306 -[128,1](310, 309) -> 307 -[128,1](311, 309) -> 308 -[129,1](312, 312) -> 309 -[129,1](313, 312) -> 310 -[129,1](314, 312) -> 311 -[130,1](315, 315) -> 312 -[130,1](316, 315) -> 313 -[130,1](317, 315) -> 314 -[131,1](318, 318) -> 315 -[131,1](319, 318) -> 316 -[131,1](320, 318) -> 317 -[132,1](321, 321) -> 318 -[132,1](322, 321) -> 319 -[132,1](323, 321) -> 320 -[133,1](324, 324) -> 321 -[133,1](325, 324) -> 322 -[133,1](326, 324) -> 323 -[134,1](327, 327) -> 324 -[134,1](328, 327) -> 325 -[134,1](329, 327) -> 326 -[135,1](330, 330) -> 327 -[135,1](331, 330) -> 328 -[135,1](332, 330) -> 329 -[136,1](333, 333) -> 330 -[136,1](334, 333) -> 331 -[136,1](335, 333) -> 332 -[137,1](336, 336) -> 333 -[137,1](337, 336) -> 334 -[137,1](338, 336) -> 335 -[138,1](339, 339) -> 336 -[138,1](340, 339) -> 337 -[138,1](341, 339) -> 338 -[139,1](342, 342) -> 339 -[139,1](343, 342) -> 340 -[139,1](344, 342) -> 341 -[140,1](345, 345) -> 342 -[140,1](346, 345) -> 343 -[140,1](347, 345) -> 344 -[141,1](348, 348) -> 345 -[141,1](349, 348) -> 346 -[141,1](350, 348) -> 347 -[142,1](351, 351) -> 348 -[142,1](352, 351) -> 349 -[142,1](353, 351) -> 350 -[143,1](354, 354) -> 351 -[143,1](355, 354) -> 352 -[143,1](356, 354) -> 353 -[144,1](357, 357) -> 354 -[144,1](358, 357) -> 355 -[144,1](359, 357) -> 356 -[145,1](360, 360) -> 357 -[145,1](361, 360) -> 358 -[145,1](362, 360) -> 359 -[146,1](363, 363) -> 360 -[146,1](364, 363) -> 361 -[146,1](365, 363) -> 362 -[p1,1] -> 363 -[p2,1] -> 364 -[p3,1] -> 365 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/73/pre.hsl b/benchmarks/all/OEGrover/73/pre.hsl index eda4acd38..042f798c9 100644 --- a/benchmarks/all/OEGrover/73/pre.hsl +++ b/benchmarks/all/OEGrover/73/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 35 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 9444732965739290427391 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/73/pre.lsta b/benchmarks/all/OEGrover/73/pre.lsta deleted file mode 100644 index ce90f286b..000000000 --- a/benchmarks/all/OEGrover/73/pre.lsta +++ /dev/null @@ -1,376 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 148) -> 145 -[74,1](147, 149) -> 146 -[75,1](150, 150) -> 147 -[75,1](151, 150) -> 148 -[75,1](152, 150) -> 149 -[76,1](153, 153) -> 150 -[76,1](154, 153) -> 151 -[76,1](155, 153) -> 152 -[77,1](156, 156) -> 153 -[77,1](157, 156) -> 154 -[77,1](158, 156) -> 155 -[78,1](159, 159) -> 156 -[78,1](160, 159) -> 157 -[78,1](161, 159) -> 158 -[79,1](162, 162) -> 159 -[79,1](163, 162) -> 160 -[79,1](164, 162) -> 161 -[80,1](165, 165) -> 162 -[80,1](166, 165) -> 163 -[80,1](167, 165) -> 164 -[81,1](168, 168) -> 165 -[81,1](169, 168) -> 166 -[81,1](170, 168) -> 167 -[82,1](171, 171) -> 168 -[82,1](172, 171) -> 169 -[82,1](173, 171) -> 170 -[83,1](174, 174) -> 171 -[83,1](175, 174) -> 172 -[83,1](176, 174) -> 173 -[84,1](177, 177) -> 174 -[84,1](178, 177) -> 175 -[84,1](179, 177) -> 176 -[85,1](180, 180) -> 177 -[85,1](181, 180) -> 178 -[85,1](182, 180) -> 179 -[86,1](183, 183) -> 180 -[86,1](184, 183) -> 181 -[86,1](185, 183) -> 182 -[87,1](186, 186) -> 183 -[87,1](187, 186) -> 184 -[87,1](188, 186) -> 185 -[88,1](189, 189) -> 186 -[88,1](190, 189) -> 187 -[88,1](191, 189) -> 188 -[89,1](192, 192) -> 189 -[89,1](193, 192) -> 190 -[89,1](194, 192) -> 191 -[90,1](195, 195) -> 192 -[90,1](196, 195) -> 193 -[90,1](197, 195) -> 194 -[91,1](198, 198) -> 195 -[91,1](199, 198) -> 196 -[91,1](200, 198) -> 197 -[92,1](201, 201) -> 198 -[92,1](202, 201) -> 199 -[92,1](203, 201) -> 200 -[93,1](204, 204) -> 201 -[93,1](205, 204) -> 202 -[93,1](206, 204) -> 203 -[94,1](207, 207) -> 204 -[94,1](208, 207) -> 205 -[94,1](209, 207) -> 206 -[95,1](210, 210) -> 207 -[95,1](211, 210) -> 208 -[95,1](212, 210) -> 209 -[96,1](213, 213) -> 210 -[96,1](214, 213) -> 211 -[96,1](215, 213) -> 212 -[97,1](216, 216) -> 213 -[97,1](217, 216) -> 214 -[97,1](218, 216) -> 215 -[98,1](219, 219) -> 216 -[98,1](220, 219) -> 217 -[98,1](221, 219) -> 218 -[99,1](222, 222) -> 219 -[99,1](223, 222) -> 220 -[99,1](224, 222) -> 221 -[100,1](225, 225) -> 222 -[100,1](226, 225) -> 223 -[100,1](227, 225) -> 224 -[101,1](228, 228) -> 225 -[101,1](229, 228) -> 226 -[101,1](230, 228) -> 227 -[102,1](231, 231) -> 228 -[102,1](232, 231) -> 229 -[102,1](233, 231) -> 230 -[103,1](234, 234) -> 231 -[103,1](235, 234) -> 232 -[103,1](236, 234) -> 233 -[104,1](237, 237) -> 234 -[104,1](238, 237) -> 235 -[104,1](239, 237) -> 236 -[105,1](240, 240) -> 237 -[105,1](241, 240) -> 238 -[105,1](242, 240) -> 239 -[106,1](243, 243) -> 240 -[106,1](244, 243) -> 241 -[106,1](245, 243) -> 242 -[107,1](246, 246) -> 243 -[107,1](247, 246) -> 244 -[107,1](248, 246) -> 245 -[108,1](249, 249) -> 246 -[108,1](250, 249) -> 247 -[108,1](251, 249) -> 248 -[109,1](252, 252) -> 249 -[109,1](253, 252) -> 250 -[109,1](254, 252) -> 251 -[110,1](255, 255) -> 252 -[110,1](256, 255) -> 253 -[110,1](257, 255) -> 254 -[111,1](258, 258) -> 255 -[111,1](259, 258) -> 256 -[111,1](260, 258) -> 257 -[112,1](261, 261) -> 258 -[112,1](262, 261) -> 259 -[112,1](263, 261) -> 260 -[113,1](264, 264) -> 261 -[113,1](265, 264) -> 262 -[113,1](266, 264) -> 263 -[114,1](267, 267) -> 264 -[114,1](268, 267) -> 265 -[114,1](269, 267) -> 266 -[115,1](270, 270) -> 267 -[115,1](271, 270) -> 268 -[115,1](272, 270) -> 269 -[116,1](273, 273) -> 270 -[116,1](274, 273) -> 271 -[116,1](275, 273) -> 272 -[117,1](276, 276) -> 273 -[117,1](277, 276) -> 274 -[117,1](278, 276) -> 275 -[118,1](279, 279) -> 276 -[118,1](280, 279) -> 277 -[118,1](281, 279) -> 278 -[119,1](282, 282) -> 279 -[119,1](283, 282) -> 280 -[119,1](284, 282) -> 281 -[120,1](285, 285) -> 282 -[120,1](286, 285) -> 283 -[120,1](287, 285) -> 284 -[121,1](288, 288) -> 285 -[121,1](289, 288) -> 286 -[121,1](290, 288) -> 287 -[122,1](291, 291) -> 288 -[122,1](292, 291) -> 289 -[122,1](293, 291) -> 290 -[123,1](294, 294) -> 291 -[123,1](295, 294) -> 292 -[123,1](296, 294) -> 293 -[124,1](297, 297) -> 294 -[124,1](298, 297) -> 295 -[124,1](299, 297) -> 296 -[125,1](300, 300) -> 297 -[125,1](301, 300) -> 298 -[125,1](302, 300) -> 299 -[126,1](303, 303) -> 300 -[126,1](304, 303) -> 301 -[126,1](305, 303) -> 302 -[127,1](306, 306) -> 303 -[127,1](307, 306) -> 304 -[127,1](308, 306) -> 305 -[128,1](309, 309) -> 306 -[128,1](310, 309) -> 307 -[128,1](311, 309) -> 308 -[129,1](312, 312) -> 309 -[129,1](313, 312) -> 310 -[129,1](314, 312) -> 311 -[130,1](315, 315) -> 312 -[130,1](316, 315) -> 313 -[130,1](317, 315) -> 314 -[131,1](318, 318) -> 315 -[131,1](319, 318) -> 316 -[131,1](320, 318) -> 317 -[132,1](321, 321) -> 318 -[132,1](322, 321) -> 319 -[132,1](323, 321) -> 320 -[133,1](324, 324) -> 321 -[133,1](325, 324) -> 322 -[133,1](326, 324) -> 323 -[134,1](327, 327) -> 324 -[134,1](328, 327) -> 325 -[134,1](329, 327) -> 326 -[135,1](330, 330) -> 327 -[135,1](331, 330) -> 328 -[135,1](332, 330) -> 329 -[136,1](333, 333) -> 330 -[136,1](334, 333) -> 331 -[136,1](335, 333) -> 332 -[137,1](336, 336) -> 333 -[137,1](337, 336) -> 334 -[137,1](338, 336) -> 335 -[138,1](339, 339) -> 336 -[138,1](340, 339) -> 337 -[138,1](341, 339) -> 338 -[139,1](342, 342) -> 339 -[139,1](343, 342) -> 340 -[139,1](344, 342) -> 341 -[140,1](345, 345) -> 342 -[140,1](346, 345) -> 343 -[140,1](347, 345) -> 344 -[141,1](348, 348) -> 345 -[141,1](349, 348) -> 346 -[141,1](350, 348) -> 347 -[142,1](351, 351) -> 348 -[142,1](352, 351) -> 349 -[142,1](353, 351) -> 350 -[143,1](354, 354) -> 351 -[143,1](355, 354) -> 352 -[143,1](356, 354) -> 353 -[144,1](357, 357) -> 354 -[144,1](358, 357) -> 355 -[144,1](359, 357) -> 356 -[145,1](360, 360) -> 357 -[145,1](361, 360) -> 358 -[145,1](362, 360) -> 359 -[146,1](363, 363) -> 360 -[146,1](364, 363) -> 361 -[146,1](365, 363) -> 362 -[c0,1] -> 363 -[a,1] -> 364 -[b,1] -> 365 -Constraints -9444732965739290427391 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/74/circuit.qasm b/benchmarks/all/OEGrover/74/circuit.qasm index 9c7a6d0f8..bb4360466 100644 --- a/benchmarks/all/OEGrover/74/circuit.qasm +++ b/benchmarks/all/OEGrover/74/circuit.qasm @@ -1,189 +1,189 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[148]; +qreg qubits[147]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -ccx qubits[0], qubits[1], qubits[75]; -ccx qubits[2], qubits[75], qubits[76]; -ccx qubits[3], qubits[76], qubits[77]; -ccx qubits[4], qubits[77], qubits[78]; -ccx qubits[5], qubits[78], qubits[79]; -ccx qubits[6], qubits[79], qubits[80]; -ccx qubits[7], qubits[80], qubits[81]; -ccx qubits[8], qubits[81], qubits[82]; -ccx qubits[9], qubits[82], qubits[83]; -ccx qubits[10], qubits[83], qubits[84]; -ccx qubits[11], qubits[84], qubits[85]; -ccx qubits[12], qubits[85], qubits[86]; -ccx qubits[13], qubits[86], qubits[87]; -ccx qubits[14], qubits[87], qubits[88]; -ccx qubits[15], qubits[88], qubits[89]; -ccx qubits[16], qubits[89], qubits[90]; -ccx qubits[17], qubits[90], qubits[91]; -ccx qubits[18], qubits[91], qubits[92]; -ccx qubits[19], qubits[92], qubits[93]; -ccx qubits[20], qubits[93], qubits[94]; -ccx qubits[21], qubits[94], qubits[95]; -ccx qubits[22], qubits[95], qubits[96]; -ccx qubits[23], qubits[96], qubits[97]; -ccx qubits[24], qubits[97], qubits[98]; -ccx qubits[25], qubits[98], qubits[99]; -ccx qubits[26], qubits[99], qubits[100]; -ccx qubits[27], qubits[100], qubits[101]; -ccx qubits[28], qubits[101], qubits[102]; -ccx qubits[29], qubits[102], qubits[103]; -ccx qubits[30], qubits[103], qubits[104]; -ccx qubits[31], qubits[104], qubits[105]; -ccx qubits[32], qubits[105], qubits[106]; -ccx qubits[33], qubits[106], qubits[107]; -ccx qubits[34], qubits[107], qubits[108]; -ccx qubits[35], qubits[108], qubits[109]; -ccx qubits[36], qubits[109], qubits[110]; -ccx qubits[37], qubits[110], qubits[111]; -ccx qubits[38], qubits[111], qubits[112]; -ccx qubits[39], qubits[112], qubits[113]; -ccx qubits[40], qubits[113], qubits[114]; -ccx qubits[41], qubits[114], qubits[115]; -ccx qubits[42], qubits[115], qubits[116]; -ccx qubits[43], qubits[116], qubits[117]; -ccx qubits[44], qubits[117], qubits[118]; -ccx qubits[45], qubits[118], qubits[119]; -ccx qubits[46], qubits[119], qubits[120]; -ccx qubits[47], qubits[120], qubits[121]; -ccx qubits[48], qubits[121], qubits[122]; -ccx qubits[49], qubits[122], qubits[123]; -ccx qubits[50], qubits[123], qubits[124]; -ccx qubits[51], qubits[124], qubits[125]; -ccx qubits[52], qubits[125], qubits[126]; -ccx qubits[53], qubits[126], qubits[127]; -ccx qubits[54], qubits[127], qubits[128]; -ccx qubits[55], qubits[128], qubits[129]; -ccx qubits[56], qubits[129], qubits[130]; -ccx qubits[57], qubits[130], qubits[131]; -ccx qubits[58], qubits[131], qubits[132]; -ccx qubits[59], qubits[132], qubits[133]; -ccx qubits[60], qubits[133], qubits[134]; -ccx qubits[61], qubits[134], qubits[135]; -ccx qubits[62], qubits[135], qubits[136]; -ccx qubits[63], qubits[136], qubits[137]; -ccx qubits[64], qubits[137], qubits[138]; -ccx qubits[65], qubits[138], qubits[139]; -ccx qubits[66], qubits[139], qubits[140]; -ccx qubits[67], qubits[140], qubits[141]; -ccx qubits[68], qubits[141], qubits[142]; -ccx qubits[69], qubits[142], qubits[143]; -ccx qubits[70], qubits[143], qubits[144]; -ccx qubits[71], qubits[144], qubits[145]; -ccx qubits[72], qubits[145], qubits[146]; -cz qubits[146], qubits[73]; -ccx qubits[72], qubits[145], qubits[146]; -ccx qubits[71], qubits[144], qubits[145]; -ccx qubits[70], qubits[143], qubits[144]; -ccx qubits[69], qubits[142], qubits[143]; -ccx qubits[68], qubits[141], qubits[142]; -ccx qubits[67], qubits[140], qubits[141]; -ccx qubits[66], qubits[139], qubits[140]; -ccx qubits[65], qubits[138], qubits[139]; -ccx qubits[64], qubits[137], qubits[138]; -ccx qubits[63], qubits[136], qubits[137]; -ccx qubits[62], qubits[135], qubits[136]; -ccx qubits[61], qubits[134], qubits[135]; -ccx qubits[60], qubits[133], qubits[134]; -ccx qubits[59], qubits[132], qubits[133]; -ccx qubits[58], qubits[131], qubits[132]; -ccx qubits[57], qubits[130], qubits[131]; -ccx qubits[56], qubits[129], qubits[130]; -ccx qubits[55], qubits[128], qubits[129]; -ccx qubits[54], qubits[127], qubits[128]; -ccx qubits[53], qubits[126], qubits[127]; -ccx qubits[52], qubits[125], qubits[126]; -ccx qubits[51], qubits[124], qubits[125]; -ccx qubits[50], qubits[123], qubits[124]; -ccx qubits[49], qubits[122], qubits[123]; -ccx qubits[48], qubits[121], qubits[122]; -ccx qubits[47], qubits[120], qubits[121]; -ccx qubits[46], qubits[119], qubits[120]; -ccx qubits[45], qubits[118], qubits[119]; -ccx qubits[44], qubits[117], qubits[118]; -ccx qubits[43], qubits[116], qubits[117]; -ccx qubits[42], qubits[115], qubits[116]; -ccx qubits[41], qubits[114], qubits[115]; -ccx qubits[40], qubits[113], qubits[114]; -ccx qubits[39], qubits[112], qubits[113]; -ccx qubits[38], qubits[111], qubits[112]; -ccx qubits[37], qubits[110], qubits[111]; -ccx qubits[36], qubits[109], qubits[110]; -ccx qubits[35], qubits[108], qubits[109]; -ccx qubits[34], qubits[107], qubits[108]; -ccx qubits[33], qubits[106], qubits[107]; -ccx qubits[32], qubits[105], qubits[106]; -ccx qubits[31], qubits[104], qubits[105]; -ccx qubits[30], qubits[103], qubits[104]; -ccx qubits[29], qubits[102], qubits[103]; -ccx qubits[28], qubits[101], qubits[102]; -ccx qubits[27], qubits[100], qubits[101]; -ccx qubits[26], qubits[99], qubits[100]; -ccx qubits[25], qubits[98], qubits[99]; -ccx qubits[24], qubits[97], qubits[98]; -ccx qubits[23], qubits[96], qubits[97]; -ccx qubits[22], qubits[95], qubits[96]; -ccx qubits[21], qubits[94], qubits[95]; -ccx qubits[20], qubits[93], qubits[94]; -ccx qubits[19], qubits[92], qubits[93]; -ccx qubits[18], qubits[91], qubits[92]; -ccx qubits[17], qubits[90], qubits[91]; -ccx qubits[16], qubits[89], qubits[90]; -ccx qubits[15], qubits[88], qubits[89]; -ccx qubits[14], qubits[87], qubits[88]; -ccx qubits[13], qubits[86], qubits[87]; -ccx qubits[12], qubits[85], qubits[86]; -ccx qubits[11], qubits[84], qubits[85]; -ccx qubits[10], qubits[83], qubits[84]; -ccx qubits[9], qubits[82], qubits[83]; -ccx qubits[8], qubits[81], qubits[82]; -ccx qubits[7], qubits[80], qubits[81]; -ccx qubits[6], qubits[79], qubits[80]; -ccx qubits[5], qubits[78], qubits[79]; -ccx qubits[4], qubits[77], qubits[78]; -ccx qubits[3], qubits[76], qubits[77]; -ccx qubits[2], qubits[75], qubits[76]; -ccx qubits[0], qubits[1], qubits[75]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +cz qubits[144], qubits[145]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -223,443 +223,443 @@ x qubits[70]; x qubits[72]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -ccx qubits[0], qubits[1], qubits[75]; -ccx qubits[2], qubits[75], qubits[76]; -ccx qubits[3], qubits[76], qubits[77]; -ccx qubits[4], qubits[77], qubits[78]; -ccx qubits[5], qubits[78], qubits[79]; -ccx qubits[6], qubits[79], qubits[80]; -ccx qubits[7], qubits[80], qubits[81]; -ccx qubits[8], qubits[81], qubits[82]; -ccx qubits[9], qubits[82], qubits[83]; -ccx qubits[10], qubits[83], qubits[84]; -ccx qubits[11], qubits[84], qubits[85]; -ccx qubits[12], qubits[85], qubits[86]; -ccx qubits[13], qubits[86], qubits[87]; -ccx qubits[14], qubits[87], qubits[88]; -ccx qubits[15], qubits[88], qubits[89]; -ccx qubits[16], qubits[89], qubits[90]; -ccx qubits[17], qubits[90], qubits[91]; -ccx qubits[18], qubits[91], qubits[92]; -ccx qubits[19], qubits[92], qubits[93]; -ccx qubits[20], qubits[93], qubits[94]; -ccx qubits[21], qubits[94], qubits[95]; -ccx qubits[22], qubits[95], qubits[96]; -ccx qubits[23], qubits[96], qubits[97]; -ccx qubits[24], qubits[97], qubits[98]; -ccx qubits[25], qubits[98], qubits[99]; -ccx qubits[26], qubits[99], qubits[100]; -ccx qubits[27], qubits[100], qubits[101]; -ccx qubits[28], qubits[101], qubits[102]; -ccx qubits[29], qubits[102], qubits[103]; -ccx qubits[30], qubits[103], qubits[104]; -ccx qubits[31], qubits[104], qubits[105]; -ccx qubits[32], qubits[105], qubits[106]; -ccx qubits[33], qubits[106], qubits[107]; -ccx qubits[34], qubits[107], qubits[108]; -ccx qubits[35], qubits[108], qubits[109]; -ccx qubits[36], qubits[109], qubits[110]; -ccx qubits[37], qubits[110], qubits[111]; -ccx qubits[38], qubits[111], qubits[112]; -ccx qubits[39], qubits[112], qubits[113]; -ccx qubits[40], qubits[113], qubits[114]; -ccx qubits[41], qubits[114], qubits[115]; -ccx qubits[42], qubits[115], qubits[116]; -ccx qubits[43], qubits[116], qubits[117]; -ccx qubits[44], qubits[117], qubits[118]; -ccx qubits[45], qubits[118], qubits[119]; -ccx qubits[46], qubits[119], qubits[120]; -ccx qubits[47], qubits[120], qubits[121]; -ccx qubits[48], qubits[121], qubits[122]; -ccx qubits[49], qubits[122], qubits[123]; -ccx qubits[50], qubits[123], qubits[124]; -ccx qubits[51], qubits[124], qubits[125]; -ccx qubits[52], qubits[125], qubits[126]; -ccx qubits[53], qubits[126], qubits[127]; -ccx qubits[54], qubits[127], qubits[128]; -ccx qubits[55], qubits[128], qubits[129]; -ccx qubits[56], qubits[129], qubits[130]; -ccx qubits[57], qubits[130], qubits[131]; -ccx qubits[58], qubits[131], qubits[132]; -ccx qubits[59], qubits[132], qubits[133]; -ccx qubits[60], qubits[133], qubits[134]; -ccx qubits[61], qubits[134], qubits[135]; -ccx qubits[62], qubits[135], qubits[136]; -ccx qubits[63], qubits[136], qubits[137]; -ccx qubits[64], qubits[137], qubits[138]; -ccx qubits[65], qubits[138], qubits[139]; -ccx qubits[66], qubits[139], qubits[140]; -ccx qubits[67], qubits[140], qubits[141]; -ccx qubits[68], qubits[141], qubits[142]; -ccx qubits[69], qubits[142], qubits[143]; -ccx qubits[70], qubits[143], qubits[144]; -ccx qubits[71], qubits[144], qubits[145]; -ccx qubits[72], qubits[145], qubits[146]; -cz qubits[146], qubits[73]; -ccx qubits[72], qubits[145], qubits[146]; -ccx qubits[71], qubits[144], qubits[145]; -ccx qubits[70], qubits[143], qubits[144]; -ccx qubits[69], qubits[142], qubits[143]; -ccx qubits[68], qubits[141], qubits[142]; -ccx qubits[67], qubits[140], qubits[141]; -ccx qubits[66], qubits[139], qubits[140]; -ccx qubits[65], qubits[138], qubits[139]; -ccx qubits[64], qubits[137], qubits[138]; -ccx qubits[63], qubits[136], qubits[137]; -ccx qubits[62], qubits[135], qubits[136]; -ccx qubits[61], qubits[134], qubits[135]; -ccx qubits[60], qubits[133], qubits[134]; -ccx qubits[59], qubits[132], qubits[133]; -ccx qubits[58], qubits[131], qubits[132]; -ccx qubits[57], qubits[130], qubits[131]; -ccx qubits[56], qubits[129], qubits[130]; -ccx qubits[55], qubits[128], qubits[129]; -ccx qubits[54], qubits[127], qubits[128]; -ccx qubits[53], qubits[126], qubits[127]; -ccx qubits[52], qubits[125], qubits[126]; -ccx qubits[51], qubits[124], qubits[125]; -ccx qubits[50], qubits[123], qubits[124]; -ccx qubits[49], qubits[122], qubits[123]; -ccx qubits[48], qubits[121], qubits[122]; -ccx qubits[47], qubits[120], qubits[121]; -ccx qubits[46], qubits[119], qubits[120]; -ccx qubits[45], qubits[118], qubits[119]; -ccx qubits[44], qubits[117], qubits[118]; -ccx qubits[43], qubits[116], qubits[117]; -ccx qubits[42], qubits[115], qubits[116]; -ccx qubits[41], qubits[114], qubits[115]; -ccx qubits[40], qubits[113], qubits[114]; -ccx qubits[39], qubits[112], qubits[113]; -ccx qubits[38], qubits[111], qubits[112]; -ccx qubits[37], qubits[110], qubits[111]; -ccx qubits[36], qubits[109], qubits[110]; -ccx qubits[35], qubits[108], qubits[109]; -ccx qubits[34], qubits[107], qubits[108]; -ccx qubits[33], qubits[106], qubits[107]; -ccx qubits[32], qubits[105], qubits[106]; -ccx qubits[31], qubits[104], qubits[105]; -ccx qubits[30], qubits[103], qubits[104]; -ccx qubits[29], qubits[102], qubits[103]; -ccx qubits[28], qubits[101], qubits[102]; -ccx qubits[27], qubits[100], qubits[101]; -ccx qubits[26], qubits[99], qubits[100]; -ccx qubits[25], qubits[98], qubits[99]; -ccx qubits[24], qubits[97], qubits[98]; -ccx qubits[23], qubits[96], qubits[97]; -ccx qubits[22], qubits[95], qubits[96]; -ccx qubits[21], qubits[94], qubits[95]; -ccx qubits[20], qubits[93], qubits[94]; -ccx qubits[19], qubits[92], qubits[93]; -ccx qubits[18], qubits[91], qubits[92]; -ccx qubits[17], qubits[90], qubits[91]; -ccx qubits[16], qubits[89], qubits[90]; -ccx qubits[15], qubits[88], qubits[89]; -ccx qubits[14], qubits[87], qubits[88]; -ccx qubits[13], qubits[86], qubits[87]; -ccx qubits[12], qubits[85], qubits[86]; -ccx qubits[11], qubits[84], qubits[85]; -ccx qubits[10], qubits[83], qubits[84]; -ccx qubits[9], qubits[82], qubits[83]; -ccx qubits[8], qubits[81], qubits[82]; -ccx qubits[7], qubits[80], qubits[81]; -ccx qubits[6], qubits[79], qubits[80]; -ccx qubits[5], qubits[78], qubits[79]; -ccx qubits[4], qubits[77], qubits[78]; -ccx qubits[3], qubits[76], qubits[77]; -ccx qubits[2], qubits[75], qubits[76]; -ccx qubits[0], qubits[1], qubits[75]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +cz qubits[144], qubits[145]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -z qubits[74]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +z qubits[146]; diff --git a/benchmarks/all/OEGrover/74/post.hsl b/benchmarks/all/OEGrover/74/post.hsl index b296f1da4..88ba55340 100644 --- a/benchmarks/all/OEGrover/74/post.hsl +++ b/benchmarks/all/OEGrover/74/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 36 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/74/post.lsta b/benchmarks/all/OEGrover/74/post.lsta deleted file mode 100644 index 4ff5cffcc..000000000 --- a/benchmarks/all/OEGrover/74/post.lsta +++ /dev/null @@ -1,377 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 150) -> 147 -[75,1](149, 151) -> 148 -[76,1](152, 152) -> 149 -[76,1](153, 152) -> 150 -[76,1](154, 152) -> 151 -[77,1](155, 155) -> 152 -[77,1](156, 155) -> 153 -[77,1](157, 155) -> 154 -[78,1](158, 158) -> 155 -[78,1](159, 158) -> 156 -[78,1](160, 158) -> 157 -[79,1](161, 161) -> 158 -[79,1](162, 161) -> 159 -[79,1](163, 161) -> 160 -[80,1](164, 164) -> 161 -[80,1](165, 164) -> 162 -[80,1](166, 164) -> 163 -[81,1](167, 167) -> 164 -[81,1](168, 167) -> 165 -[81,1](169, 167) -> 166 -[82,1](170, 170) -> 167 -[82,1](171, 170) -> 168 -[82,1](172, 170) -> 169 -[83,1](173, 173) -> 170 -[83,1](174, 173) -> 171 -[83,1](175, 173) -> 172 -[84,1](176, 176) -> 173 -[84,1](177, 176) -> 174 -[84,1](178, 176) -> 175 -[85,1](179, 179) -> 176 -[85,1](180, 179) -> 177 -[85,1](181, 179) -> 178 -[86,1](182, 182) -> 179 -[86,1](183, 182) -> 180 -[86,1](184, 182) -> 181 -[87,1](185, 185) -> 182 -[87,1](186, 185) -> 183 -[87,1](187, 185) -> 184 -[88,1](188, 188) -> 185 -[88,1](189, 188) -> 186 -[88,1](190, 188) -> 187 -[89,1](191, 191) -> 188 -[89,1](192, 191) -> 189 -[89,1](193, 191) -> 190 -[90,1](194, 194) -> 191 -[90,1](195, 194) -> 192 -[90,1](196, 194) -> 193 -[91,1](197, 197) -> 194 -[91,1](198, 197) -> 195 -[91,1](199, 197) -> 196 -[92,1](200, 200) -> 197 -[92,1](201, 200) -> 198 -[92,1](202, 200) -> 199 -[93,1](203, 203) -> 200 -[93,1](204, 203) -> 201 -[93,1](205, 203) -> 202 -[94,1](206, 206) -> 203 -[94,1](207, 206) -> 204 -[94,1](208, 206) -> 205 -[95,1](209, 209) -> 206 -[95,1](210, 209) -> 207 -[95,1](211, 209) -> 208 -[96,1](212, 212) -> 209 -[96,1](213, 212) -> 210 -[96,1](214, 212) -> 211 -[97,1](215, 215) -> 212 -[97,1](216, 215) -> 213 -[97,1](217, 215) -> 214 -[98,1](218, 218) -> 215 -[98,1](219, 218) -> 216 -[98,1](220, 218) -> 217 -[99,1](221, 221) -> 218 -[99,1](222, 221) -> 219 -[99,1](223, 221) -> 220 -[100,1](224, 224) -> 221 -[100,1](225, 224) -> 222 -[100,1](226, 224) -> 223 -[101,1](227, 227) -> 224 -[101,1](228, 227) -> 225 -[101,1](229, 227) -> 226 -[102,1](230, 230) -> 227 -[102,1](231, 230) -> 228 -[102,1](232, 230) -> 229 -[103,1](233, 233) -> 230 -[103,1](234, 233) -> 231 -[103,1](235, 233) -> 232 -[104,1](236, 236) -> 233 -[104,1](237, 236) -> 234 -[104,1](238, 236) -> 235 -[105,1](239, 239) -> 236 -[105,1](240, 239) -> 237 -[105,1](241, 239) -> 238 -[106,1](242, 242) -> 239 -[106,1](243, 242) -> 240 -[106,1](244, 242) -> 241 -[107,1](245, 245) -> 242 -[107,1](246, 245) -> 243 -[107,1](247, 245) -> 244 -[108,1](248, 248) -> 245 -[108,1](249, 248) -> 246 -[108,1](250, 248) -> 247 -[109,1](251, 251) -> 248 -[109,1](252, 251) -> 249 -[109,1](253, 251) -> 250 -[110,1](254, 254) -> 251 -[110,1](255, 254) -> 252 -[110,1](256, 254) -> 253 -[111,1](257, 257) -> 254 -[111,1](258, 257) -> 255 -[111,1](259, 257) -> 256 -[112,1](260, 260) -> 257 -[112,1](261, 260) -> 258 -[112,1](262, 260) -> 259 -[113,1](263, 263) -> 260 -[113,1](264, 263) -> 261 -[113,1](265, 263) -> 262 -[114,1](266, 266) -> 263 -[114,1](267, 266) -> 264 -[114,1](268, 266) -> 265 -[115,1](269, 269) -> 266 -[115,1](270, 269) -> 267 -[115,1](271, 269) -> 268 -[116,1](272, 272) -> 269 -[116,1](273, 272) -> 270 -[116,1](274, 272) -> 271 -[117,1](275, 275) -> 272 -[117,1](276, 275) -> 273 -[117,1](277, 275) -> 274 -[118,1](278, 278) -> 275 -[118,1](279, 278) -> 276 -[118,1](280, 278) -> 277 -[119,1](281, 281) -> 278 -[119,1](282, 281) -> 279 -[119,1](283, 281) -> 280 -[120,1](284, 284) -> 281 -[120,1](285, 284) -> 282 -[120,1](286, 284) -> 283 -[121,1](287, 287) -> 284 -[121,1](288, 287) -> 285 -[121,1](289, 287) -> 286 -[122,1](290, 290) -> 287 -[122,1](291, 290) -> 288 -[122,1](292, 290) -> 289 -[123,1](293, 293) -> 290 -[123,1](294, 293) -> 291 -[123,1](295, 293) -> 292 -[124,1](296, 296) -> 293 -[124,1](297, 296) -> 294 -[124,1](298, 296) -> 295 -[125,1](299, 299) -> 296 -[125,1](300, 299) -> 297 -[125,1](301, 299) -> 298 -[126,1](302, 302) -> 299 -[126,1](303, 302) -> 300 -[126,1](304, 302) -> 301 -[127,1](305, 305) -> 302 -[127,1](306, 305) -> 303 -[127,1](307, 305) -> 304 -[128,1](308, 308) -> 305 -[128,1](309, 308) -> 306 -[128,1](310, 308) -> 307 -[129,1](311, 311) -> 308 -[129,1](312, 311) -> 309 -[129,1](313, 311) -> 310 -[130,1](314, 314) -> 311 -[130,1](315, 314) -> 312 -[130,1](316, 314) -> 313 -[131,1](317, 317) -> 314 -[131,1](318, 317) -> 315 -[131,1](319, 317) -> 316 -[132,1](320, 320) -> 317 -[132,1](321, 320) -> 318 -[132,1](322, 320) -> 319 -[133,1](323, 323) -> 320 -[133,1](324, 323) -> 321 -[133,1](325, 323) -> 322 -[134,1](326, 326) -> 323 -[134,1](327, 326) -> 324 -[134,1](328, 326) -> 325 -[135,1](329, 329) -> 326 -[135,1](330, 329) -> 327 -[135,1](331, 329) -> 328 -[136,1](332, 332) -> 329 -[136,1](333, 332) -> 330 -[136,1](334, 332) -> 331 -[137,1](335, 335) -> 332 -[137,1](336, 335) -> 333 -[137,1](337, 335) -> 334 -[138,1](338, 338) -> 335 -[138,1](339, 338) -> 336 -[138,1](340, 338) -> 337 -[139,1](341, 341) -> 338 -[139,1](342, 341) -> 339 -[139,1](343, 341) -> 340 -[140,1](344, 344) -> 341 -[140,1](345, 344) -> 342 -[140,1](346, 344) -> 343 -[141,1](347, 347) -> 344 -[141,1](348, 347) -> 345 -[141,1](349, 347) -> 346 -[142,1](350, 350) -> 347 -[142,1](351, 350) -> 348 -[142,1](352, 350) -> 349 -[143,1](353, 353) -> 350 -[143,1](354, 353) -> 351 -[143,1](355, 353) -> 352 -[144,1](356, 356) -> 353 -[144,1](357, 356) -> 354 -[144,1](358, 356) -> 355 -[145,1](359, 359) -> 356 -[145,1](360, 359) -> 357 -[145,1](361, 359) -> 358 -[146,1](362, 362) -> 359 -[146,1](363, 362) -> 360 -[146,1](364, 362) -> 361 -[147,1](365, 365) -> 362 -[147,1](366, 365) -> 363 -[147,1](367, 365) -> 364 -[148,1](368, 368) -> 365 -[148,1](369, 368) -> 366 -[148,1](370, 368) -> 367 -[p1,1] -> 368 -[p2,1] -> 369 -[p3,1] -> 370 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/74/pre.hsl b/benchmarks/all/OEGrover/74/pre.hsl index cea24195d..f1845ff27 100644 --- a/benchmarks/all/OEGrover/74/pre.hsl +++ b/benchmarks/all/OEGrover/74/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 36 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 18889465931478580854783 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/74/pre.lsta b/benchmarks/all/OEGrover/74/pre.lsta deleted file mode 100644 index d3ca25096..000000000 --- a/benchmarks/all/OEGrover/74/pre.lsta +++ /dev/null @@ -1,381 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 150) -> 147 -[75,1](149, 151) -> 148 -[76,1](152, 152) -> 149 -[76,1](153, 152) -> 150 -[76,1](154, 152) -> 151 -[77,1](155, 155) -> 152 -[77,1](156, 155) -> 153 -[77,1](157, 155) -> 154 -[78,1](158, 158) -> 155 -[78,1](159, 158) -> 156 -[78,1](160, 158) -> 157 -[79,1](161, 161) -> 158 -[79,1](162, 161) -> 159 -[79,1](163, 161) -> 160 -[80,1](164, 164) -> 161 -[80,1](165, 164) -> 162 -[80,1](166, 164) -> 163 -[81,1](167, 167) -> 164 -[81,1](168, 167) -> 165 -[81,1](169, 167) -> 166 -[82,1](170, 170) -> 167 -[82,1](171, 170) -> 168 -[82,1](172, 170) -> 169 -[83,1](173, 173) -> 170 -[83,1](174, 173) -> 171 -[83,1](175, 173) -> 172 -[84,1](176, 176) -> 173 -[84,1](177, 176) -> 174 -[84,1](178, 176) -> 175 -[85,1](179, 179) -> 176 -[85,1](180, 179) -> 177 -[85,1](181, 179) -> 178 -[86,1](182, 182) -> 179 -[86,1](183, 182) -> 180 -[86,1](184, 182) -> 181 -[87,1](185, 185) -> 182 -[87,1](186, 185) -> 183 -[87,1](187, 185) -> 184 -[88,1](188, 188) -> 185 -[88,1](189, 188) -> 186 -[88,1](190, 188) -> 187 -[89,1](191, 191) -> 188 -[89,1](192, 191) -> 189 -[89,1](193, 191) -> 190 -[90,1](194, 194) -> 191 -[90,1](195, 194) -> 192 -[90,1](196, 194) -> 193 -[91,1](197, 197) -> 194 -[91,1](198, 197) -> 195 -[91,1](199, 197) -> 196 -[92,1](200, 200) -> 197 -[92,1](201, 200) -> 198 -[92,1](202, 200) -> 199 -[93,1](203, 203) -> 200 -[93,1](204, 203) -> 201 -[93,1](205, 203) -> 202 -[94,1](206, 206) -> 203 -[94,1](207, 206) -> 204 -[94,1](208, 206) -> 205 -[95,1](209, 209) -> 206 -[95,1](210, 209) -> 207 -[95,1](211, 209) -> 208 -[96,1](212, 212) -> 209 -[96,1](213, 212) -> 210 -[96,1](214, 212) -> 211 -[97,1](215, 215) -> 212 -[97,1](216, 215) -> 213 -[97,1](217, 215) -> 214 -[98,1](218, 218) -> 215 -[98,1](219, 218) -> 216 -[98,1](220, 218) -> 217 -[99,1](221, 221) -> 218 -[99,1](222, 221) -> 219 -[99,1](223, 221) -> 220 -[100,1](224, 224) -> 221 -[100,1](225, 224) -> 222 -[100,1](226, 224) -> 223 -[101,1](227, 227) -> 224 -[101,1](228, 227) -> 225 -[101,1](229, 227) -> 226 -[102,1](230, 230) -> 227 -[102,1](231, 230) -> 228 -[102,1](232, 230) -> 229 -[103,1](233, 233) -> 230 -[103,1](234, 233) -> 231 -[103,1](235, 233) -> 232 -[104,1](236, 236) -> 233 -[104,1](237, 236) -> 234 -[104,1](238, 236) -> 235 -[105,1](239, 239) -> 236 -[105,1](240, 239) -> 237 -[105,1](241, 239) -> 238 -[106,1](242, 242) -> 239 -[106,1](243, 242) -> 240 -[106,1](244, 242) -> 241 -[107,1](245, 245) -> 242 -[107,1](246, 245) -> 243 -[107,1](247, 245) -> 244 -[108,1](248, 248) -> 245 -[108,1](249, 248) -> 246 -[108,1](250, 248) -> 247 -[109,1](251, 251) -> 248 -[109,1](252, 251) -> 249 -[109,1](253, 251) -> 250 -[110,1](254, 254) -> 251 -[110,1](255, 254) -> 252 -[110,1](256, 254) -> 253 -[111,1](257, 257) -> 254 -[111,1](258, 257) -> 255 -[111,1](259, 257) -> 256 -[112,1](260, 260) -> 257 -[112,1](261, 260) -> 258 -[112,1](262, 260) -> 259 -[113,1](263, 263) -> 260 -[113,1](264, 263) -> 261 -[113,1](265, 263) -> 262 -[114,1](266, 266) -> 263 -[114,1](267, 266) -> 264 -[114,1](268, 266) -> 265 -[115,1](269, 269) -> 266 -[115,1](270, 269) -> 267 -[115,1](271, 269) -> 268 -[116,1](272, 272) -> 269 -[116,1](273, 272) -> 270 -[116,1](274, 272) -> 271 -[117,1](275, 275) -> 272 -[117,1](276, 275) -> 273 -[117,1](277, 275) -> 274 -[118,1](278, 278) -> 275 -[118,1](279, 278) -> 276 -[118,1](280, 278) -> 277 -[119,1](281, 281) -> 278 -[119,1](282, 281) -> 279 -[119,1](283, 281) -> 280 -[120,1](284, 284) -> 281 -[120,1](285, 284) -> 282 -[120,1](286, 284) -> 283 -[121,1](287, 287) -> 284 -[121,1](288, 287) -> 285 -[121,1](289, 287) -> 286 -[122,1](290, 290) -> 287 -[122,1](291, 290) -> 288 -[122,1](292, 290) -> 289 -[123,1](293, 293) -> 290 -[123,1](294, 293) -> 291 -[123,1](295, 293) -> 292 -[124,1](296, 296) -> 293 -[124,1](297, 296) -> 294 -[124,1](298, 296) -> 295 -[125,1](299, 299) -> 296 -[125,1](300, 299) -> 297 -[125,1](301, 299) -> 298 -[126,1](302, 302) -> 299 -[126,1](303, 302) -> 300 -[126,1](304, 302) -> 301 -[127,1](305, 305) -> 302 -[127,1](306, 305) -> 303 -[127,1](307, 305) -> 304 -[128,1](308, 308) -> 305 -[128,1](309, 308) -> 306 -[128,1](310, 308) -> 307 -[129,1](311, 311) -> 308 -[129,1](312, 311) -> 309 -[129,1](313, 311) -> 310 -[130,1](314, 314) -> 311 -[130,1](315, 314) -> 312 -[130,1](316, 314) -> 313 -[131,1](317, 317) -> 314 -[131,1](318, 317) -> 315 -[131,1](319, 317) -> 316 -[132,1](320, 320) -> 317 -[132,1](321, 320) -> 318 -[132,1](322, 320) -> 319 -[133,1](323, 323) -> 320 -[133,1](324, 323) -> 321 -[133,1](325, 323) -> 322 -[134,1](326, 326) -> 323 -[134,1](327, 326) -> 324 -[134,1](328, 326) -> 325 -[135,1](329, 329) -> 326 -[135,1](330, 329) -> 327 -[135,1](331, 329) -> 328 -[136,1](332, 332) -> 329 -[136,1](333, 332) -> 330 -[136,1](334, 332) -> 331 -[137,1](335, 335) -> 332 -[137,1](336, 335) -> 333 -[137,1](337, 335) -> 334 -[138,1](338, 338) -> 335 -[138,1](339, 338) -> 336 -[138,1](340, 338) -> 337 -[139,1](341, 341) -> 338 -[139,1](342, 341) -> 339 -[139,1](343, 341) -> 340 -[140,1](344, 344) -> 341 -[140,1](345, 344) -> 342 -[140,1](346, 344) -> 343 -[141,1](347, 347) -> 344 -[141,1](348, 347) -> 345 -[141,1](349, 347) -> 346 -[142,1](350, 350) -> 347 -[142,1](351, 350) -> 348 -[142,1](352, 350) -> 349 -[143,1](353, 353) -> 350 -[143,1](354, 353) -> 351 -[143,1](355, 353) -> 352 -[144,1](356, 356) -> 353 -[144,1](357, 356) -> 354 -[144,1](358, 356) -> 355 -[145,1](359, 359) -> 356 -[145,1](360, 359) -> 357 -[145,1](361, 359) -> 358 -[146,1](362, 362) -> 359 -[146,1](363, 362) -> 360 -[146,1](364, 362) -> 361 -[147,1](365, 365) -> 362 -[147,1](366, 365) -> 363 -[147,1](367, 365) -> 364 -[148,1](368, 368) -> 365 -[148,1](369, 368) -> 366 -[148,1](370, 368) -> 367 -[c0,1] -> 368 -[a,1] -> 369 -[b,1] -> 370 -Constraints -18889465931478580854783 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/75/circuit.qasm b/benchmarks/all/OEGrover/75/circuit.qasm index 929a8450a..d10694f92 100644 --- a/benchmarks/all/OEGrover/75/circuit.qasm +++ b/benchmarks/all/OEGrover/75/circuit.qasm @@ -1,192 +1,192 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[150]; +qreg qubits[149]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -ccx qubits[0], qubits[1], qubits[76]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[73], qubits[147], qubits[148]; -cz qubits[148], qubits[74]; -ccx qubits[73], qubits[147], qubits[148]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[0], qubits[1], qubits[76]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +cz qubits[146], qubits[147]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -227,449 +227,449 @@ x qubits[72]; x qubits[74]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; -ccx qubits[0], qubits[1], qubits[76]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[73], qubits[147], qubits[148]; -cz qubits[148], qubits[74]; -ccx qubits[73], qubits[147], qubits[148]; -ccx qubits[72], qubits[146], qubits[147]; -ccx qubits[71], qubits[145], qubits[146]; -ccx qubits[70], qubits[144], qubits[145]; -ccx qubits[69], qubits[143], qubits[144]; -ccx qubits[68], qubits[142], qubits[143]; -ccx qubits[67], qubits[141], qubits[142]; -ccx qubits[66], qubits[140], qubits[141]; -ccx qubits[65], qubits[139], qubits[140]; -ccx qubits[64], qubits[138], qubits[139]; -ccx qubits[63], qubits[137], qubits[138]; -ccx qubits[62], qubits[136], qubits[137]; -ccx qubits[61], qubits[135], qubits[136]; -ccx qubits[60], qubits[134], qubits[135]; -ccx qubits[59], qubits[133], qubits[134]; -ccx qubits[58], qubits[132], qubits[133]; -ccx qubits[57], qubits[131], qubits[132]; -ccx qubits[56], qubits[130], qubits[131]; -ccx qubits[55], qubits[129], qubits[130]; -ccx qubits[54], qubits[128], qubits[129]; -ccx qubits[53], qubits[127], qubits[128]; -ccx qubits[52], qubits[126], qubits[127]; -ccx qubits[51], qubits[125], qubits[126]; -ccx qubits[50], qubits[124], qubits[125]; -ccx qubits[49], qubits[123], qubits[124]; -ccx qubits[48], qubits[122], qubits[123]; -ccx qubits[47], qubits[121], qubits[122]; -ccx qubits[46], qubits[120], qubits[121]; -ccx qubits[45], qubits[119], qubits[120]; -ccx qubits[44], qubits[118], qubits[119]; -ccx qubits[43], qubits[117], qubits[118]; -ccx qubits[42], qubits[116], qubits[117]; -ccx qubits[41], qubits[115], qubits[116]; -ccx qubits[40], qubits[114], qubits[115]; -ccx qubits[39], qubits[113], qubits[114]; -ccx qubits[38], qubits[112], qubits[113]; -ccx qubits[37], qubits[111], qubits[112]; -ccx qubits[36], qubits[110], qubits[111]; -ccx qubits[35], qubits[109], qubits[110]; -ccx qubits[34], qubits[108], qubits[109]; -ccx qubits[33], qubits[107], qubits[108]; -ccx qubits[32], qubits[106], qubits[107]; -ccx qubits[31], qubits[105], qubits[106]; -ccx qubits[30], qubits[104], qubits[105]; -ccx qubits[29], qubits[103], qubits[104]; -ccx qubits[28], qubits[102], qubits[103]; -ccx qubits[27], qubits[101], qubits[102]; -ccx qubits[26], qubits[100], qubits[101]; -ccx qubits[25], qubits[99], qubits[100]; -ccx qubits[24], qubits[98], qubits[99]; -ccx qubits[23], qubits[97], qubits[98]; -ccx qubits[22], qubits[96], qubits[97]; -ccx qubits[21], qubits[95], qubits[96]; -ccx qubits[20], qubits[94], qubits[95]; -ccx qubits[19], qubits[93], qubits[94]; -ccx qubits[18], qubits[92], qubits[93]; -ccx qubits[17], qubits[91], qubits[92]; -ccx qubits[16], qubits[90], qubits[91]; -ccx qubits[15], qubits[89], qubits[90]; -ccx qubits[14], qubits[88], qubits[89]; -ccx qubits[13], qubits[87], qubits[88]; -ccx qubits[12], qubits[86], qubits[87]; -ccx qubits[11], qubits[85], qubits[86]; -ccx qubits[10], qubits[84], qubits[85]; -ccx qubits[9], qubits[83], qubits[84]; -ccx qubits[8], qubits[82], qubits[83]; -ccx qubits[7], qubits[81], qubits[82]; -ccx qubits[6], qubits[80], qubits[81]; -ccx qubits[5], qubits[79], qubits[80]; -ccx qubits[4], qubits[78], qubits[79]; -ccx qubits[3], qubits[77], qubits[78]; -ccx qubits[2], qubits[76], qubits[77]; -ccx qubits[0], qubits[1], qubits[76]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +cz qubits[146], qubits[147]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; +x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; -z qubits[75]; +h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +z qubits[148]; diff --git a/benchmarks/all/OEGrover/75/post.hsl b/benchmarks/all/OEGrover/75/post.hsl index 9b08e0354..4f416c82a 100644 --- a/benchmarks/all/OEGrover/75/post.hsl +++ b/benchmarks/all/OEGrover/75/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 36 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/75/post.lsta b/benchmarks/all/OEGrover/75/post.lsta deleted file mode 100644 index c8598f315..000000000 --- a/benchmarks/all/OEGrover/75/post.lsta +++ /dev/null @@ -1,382 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 152) -> 149 -[76,1](151, 153) -> 150 -[77,1](154, 154) -> 151 -[77,1](155, 154) -> 152 -[77,1](156, 154) -> 153 -[78,1](157, 157) -> 154 -[78,1](158, 157) -> 155 -[78,1](159, 157) -> 156 -[79,1](160, 160) -> 157 -[79,1](161, 160) -> 158 -[79,1](162, 160) -> 159 -[80,1](163, 163) -> 160 -[80,1](164, 163) -> 161 -[80,1](165, 163) -> 162 -[81,1](166, 166) -> 163 -[81,1](167, 166) -> 164 -[81,1](168, 166) -> 165 -[82,1](169, 169) -> 166 -[82,1](170, 169) -> 167 -[82,1](171, 169) -> 168 -[83,1](172, 172) -> 169 -[83,1](173, 172) -> 170 -[83,1](174, 172) -> 171 -[84,1](175, 175) -> 172 -[84,1](176, 175) -> 173 -[84,1](177, 175) -> 174 -[85,1](178, 178) -> 175 -[85,1](179, 178) -> 176 -[85,1](180, 178) -> 177 -[86,1](181, 181) -> 178 -[86,1](182, 181) -> 179 -[86,1](183, 181) -> 180 -[87,1](184, 184) -> 181 -[87,1](185, 184) -> 182 -[87,1](186, 184) -> 183 -[88,1](187, 187) -> 184 -[88,1](188, 187) -> 185 -[88,1](189, 187) -> 186 -[89,1](190, 190) -> 187 -[89,1](191, 190) -> 188 -[89,1](192, 190) -> 189 -[90,1](193, 193) -> 190 -[90,1](194, 193) -> 191 -[90,1](195, 193) -> 192 -[91,1](196, 196) -> 193 -[91,1](197, 196) -> 194 -[91,1](198, 196) -> 195 -[92,1](199, 199) -> 196 -[92,1](200, 199) -> 197 -[92,1](201, 199) -> 198 -[93,1](202, 202) -> 199 -[93,1](203, 202) -> 200 -[93,1](204, 202) -> 201 -[94,1](205, 205) -> 202 -[94,1](206, 205) -> 203 -[94,1](207, 205) -> 204 -[95,1](208, 208) -> 205 -[95,1](209, 208) -> 206 -[95,1](210, 208) -> 207 -[96,1](211, 211) -> 208 -[96,1](212, 211) -> 209 -[96,1](213, 211) -> 210 -[97,1](214, 214) -> 211 -[97,1](215, 214) -> 212 -[97,1](216, 214) -> 213 -[98,1](217, 217) -> 214 -[98,1](218, 217) -> 215 -[98,1](219, 217) -> 216 -[99,1](220, 220) -> 217 -[99,1](221, 220) -> 218 -[99,1](222, 220) -> 219 -[100,1](223, 223) -> 220 -[100,1](224, 223) -> 221 -[100,1](225, 223) -> 222 -[101,1](226, 226) -> 223 -[101,1](227, 226) -> 224 -[101,1](228, 226) -> 225 -[102,1](229, 229) -> 226 -[102,1](230, 229) -> 227 -[102,1](231, 229) -> 228 -[103,1](232, 232) -> 229 -[103,1](233, 232) -> 230 -[103,1](234, 232) -> 231 -[104,1](235, 235) -> 232 -[104,1](236, 235) -> 233 -[104,1](237, 235) -> 234 -[105,1](238, 238) -> 235 -[105,1](239, 238) -> 236 -[105,1](240, 238) -> 237 -[106,1](241, 241) -> 238 -[106,1](242, 241) -> 239 -[106,1](243, 241) -> 240 -[107,1](244, 244) -> 241 -[107,1](245, 244) -> 242 -[107,1](246, 244) -> 243 -[108,1](247, 247) -> 244 -[108,1](248, 247) -> 245 -[108,1](249, 247) -> 246 -[109,1](250, 250) -> 247 -[109,1](251, 250) -> 248 -[109,1](252, 250) -> 249 -[110,1](253, 253) -> 250 -[110,1](254, 253) -> 251 -[110,1](255, 253) -> 252 -[111,1](256, 256) -> 253 -[111,1](257, 256) -> 254 -[111,1](258, 256) -> 255 -[112,1](259, 259) -> 256 -[112,1](260, 259) -> 257 -[112,1](261, 259) -> 258 -[113,1](262, 262) -> 259 -[113,1](263, 262) -> 260 -[113,1](264, 262) -> 261 -[114,1](265, 265) -> 262 -[114,1](266, 265) -> 263 -[114,1](267, 265) -> 264 -[115,1](268, 268) -> 265 -[115,1](269, 268) -> 266 -[115,1](270, 268) -> 267 -[116,1](271, 271) -> 268 -[116,1](272, 271) -> 269 -[116,1](273, 271) -> 270 -[117,1](274, 274) -> 271 -[117,1](275, 274) -> 272 -[117,1](276, 274) -> 273 -[118,1](277, 277) -> 274 -[118,1](278, 277) -> 275 -[118,1](279, 277) -> 276 -[119,1](280, 280) -> 277 -[119,1](281, 280) -> 278 -[119,1](282, 280) -> 279 -[120,1](283, 283) -> 280 -[120,1](284, 283) -> 281 -[120,1](285, 283) -> 282 -[121,1](286, 286) -> 283 -[121,1](287, 286) -> 284 -[121,1](288, 286) -> 285 -[122,1](289, 289) -> 286 -[122,1](290, 289) -> 287 -[122,1](291, 289) -> 288 -[123,1](292, 292) -> 289 -[123,1](293, 292) -> 290 -[123,1](294, 292) -> 291 -[124,1](295, 295) -> 292 -[124,1](296, 295) -> 293 -[124,1](297, 295) -> 294 -[125,1](298, 298) -> 295 -[125,1](299, 298) -> 296 -[125,1](300, 298) -> 297 -[126,1](301, 301) -> 298 -[126,1](302, 301) -> 299 -[126,1](303, 301) -> 300 -[127,1](304, 304) -> 301 -[127,1](305, 304) -> 302 -[127,1](306, 304) -> 303 -[128,1](307, 307) -> 304 -[128,1](308, 307) -> 305 -[128,1](309, 307) -> 306 -[129,1](310, 310) -> 307 -[129,1](311, 310) -> 308 -[129,1](312, 310) -> 309 -[130,1](313, 313) -> 310 -[130,1](314, 313) -> 311 -[130,1](315, 313) -> 312 -[131,1](316, 316) -> 313 -[131,1](317, 316) -> 314 -[131,1](318, 316) -> 315 -[132,1](319, 319) -> 316 -[132,1](320, 319) -> 317 -[132,1](321, 319) -> 318 -[133,1](322, 322) -> 319 -[133,1](323, 322) -> 320 -[133,1](324, 322) -> 321 -[134,1](325, 325) -> 322 -[134,1](326, 325) -> 323 -[134,1](327, 325) -> 324 -[135,1](328, 328) -> 325 -[135,1](329, 328) -> 326 -[135,1](330, 328) -> 327 -[136,1](331, 331) -> 328 -[136,1](332, 331) -> 329 -[136,1](333, 331) -> 330 -[137,1](334, 334) -> 331 -[137,1](335, 334) -> 332 -[137,1](336, 334) -> 333 -[138,1](337, 337) -> 334 -[138,1](338, 337) -> 335 -[138,1](339, 337) -> 336 -[139,1](340, 340) -> 337 -[139,1](341, 340) -> 338 -[139,1](342, 340) -> 339 -[140,1](343, 343) -> 340 -[140,1](344, 343) -> 341 -[140,1](345, 343) -> 342 -[141,1](346, 346) -> 343 -[141,1](347, 346) -> 344 -[141,1](348, 346) -> 345 -[142,1](349, 349) -> 346 -[142,1](350, 349) -> 347 -[142,1](351, 349) -> 348 -[143,1](352, 352) -> 349 -[143,1](353, 352) -> 350 -[143,1](354, 352) -> 351 -[144,1](355, 355) -> 352 -[144,1](356, 355) -> 353 -[144,1](357, 355) -> 354 -[145,1](358, 358) -> 355 -[145,1](359, 358) -> 356 -[145,1](360, 358) -> 357 -[146,1](361, 361) -> 358 -[146,1](362, 361) -> 359 -[146,1](363, 361) -> 360 -[147,1](364, 364) -> 361 -[147,1](365, 364) -> 362 -[147,1](366, 364) -> 363 -[148,1](367, 367) -> 364 -[148,1](368, 367) -> 365 -[148,1](369, 367) -> 366 -[149,1](370, 370) -> 367 -[149,1](371, 370) -> 368 -[149,1](372, 370) -> 369 -[150,1](373, 373) -> 370 -[150,1](374, 373) -> 371 -[150,1](375, 373) -> 372 -[p1,1] -> 373 -[p2,1] -> 374 -[p3,1] -> 375 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/75/pre.hsl b/benchmarks/all/OEGrover/75/pre.hsl index 14b018f8f..9b0db6601 100644 --- a/benchmarks/all/OEGrover/75/pre.hsl +++ b/benchmarks/all/OEGrover/75/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 36 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 37778931862957161709567 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/75/pre.lsta b/benchmarks/all/OEGrover/75/pre.lsta deleted file mode 100644 index 7766e40ae..000000000 --- a/benchmarks/all/OEGrover/75/pre.lsta +++ /dev/null @@ -1,386 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 152) -> 149 -[76,1](151, 153) -> 150 -[77,1](154, 154) -> 151 -[77,1](155, 154) -> 152 -[77,1](156, 154) -> 153 -[78,1](157, 157) -> 154 -[78,1](158, 157) -> 155 -[78,1](159, 157) -> 156 -[79,1](160, 160) -> 157 -[79,1](161, 160) -> 158 -[79,1](162, 160) -> 159 -[80,1](163, 163) -> 160 -[80,1](164, 163) -> 161 -[80,1](165, 163) -> 162 -[81,1](166, 166) -> 163 -[81,1](167, 166) -> 164 -[81,1](168, 166) -> 165 -[82,1](169, 169) -> 166 -[82,1](170, 169) -> 167 -[82,1](171, 169) -> 168 -[83,1](172, 172) -> 169 -[83,1](173, 172) -> 170 -[83,1](174, 172) -> 171 -[84,1](175, 175) -> 172 -[84,1](176, 175) -> 173 -[84,1](177, 175) -> 174 -[85,1](178, 178) -> 175 -[85,1](179, 178) -> 176 -[85,1](180, 178) -> 177 -[86,1](181, 181) -> 178 -[86,1](182, 181) -> 179 -[86,1](183, 181) -> 180 -[87,1](184, 184) -> 181 -[87,1](185, 184) -> 182 -[87,1](186, 184) -> 183 -[88,1](187, 187) -> 184 -[88,1](188, 187) -> 185 -[88,1](189, 187) -> 186 -[89,1](190, 190) -> 187 -[89,1](191, 190) -> 188 -[89,1](192, 190) -> 189 -[90,1](193, 193) -> 190 -[90,1](194, 193) -> 191 -[90,1](195, 193) -> 192 -[91,1](196, 196) -> 193 -[91,1](197, 196) -> 194 -[91,1](198, 196) -> 195 -[92,1](199, 199) -> 196 -[92,1](200, 199) -> 197 -[92,1](201, 199) -> 198 -[93,1](202, 202) -> 199 -[93,1](203, 202) -> 200 -[93,1](204, 202) -> 201 -[94,1](205, 205) -> 202 -[94,1](206, 205) -> 203 -[94,1](207, 205) -> 204 -[95,1](208, 208) -> 205 -[95,1](209, 208) -> 206 -[95,1](210, 208) -> 207 -[96,1](211, 211) -> 208 -[96,1](212, 211) -> 209 -[96,1](213, 211) -> 210 -[97,1](214, 214) -> 211 -[97,1](215, 214) -> 212 -[97,1](216, 214) -> 213 -[98,1](217, 217) -> 214 -[98,1](218, 217) -> 215 -[98,1](219, 217) -> 216 -[99,1](220, 220) -> 217 -[99,1](221, 220) -> 218 -[99,1](222, 220) -> 219 -[100,1](223, 223) -> 220 -[100,1](224, 223) -> 221 -[100,1](225, 223) -> 222 -[101,1](226, 226) -> 223 -[101,1](227, 226) -> 224 -[101,1](228, 226) -> 225 -[102,1](229, 229) -> 226 -[102,1](230, 229) -> 227 -[102,1](231, 229) -> 228 -[103,1](232, 232) -> 229 -[103,1](233, 232) -> 230 -[103,1](234, 232) -> 231 -[104,1](235, 235) -> 232 -[104,1](236, 235) -> 233 -[104,1](237, 235) -> 234 -[105,1](238, 238) -> 235 -[105,1](239, 238) -> 236 -[105,1](240, 238) -> 237 -[106,1](241, 241) -> 238 -[106,1](242, 241) -> 239 -[106,1](243, 241) -> 240 -[107,1](244, 244) -> 241 -[107,1](245, 244) -> 242 -[107,1](246, 244) -> 243 -[108,1](247, 247) -> 244 -[108,1](248, 247) -> 245 -[108,1](249, 247) -> 246 -[109,1](250, 250) -> 247 -[109,1](251, 250) -> 248 -[109,1](252, 250) -> 249 -[110,1](253, 253) -> 250 -[110,1](254, 253) -> 251 -[110,1](255, 253) -> 252 -[111,1](256, 256) -> 253 -[111,1](257, 256) -> 254 -[111,1](258, 256) -> 255 -[112,1](259, 259) -> 256 -[112,1](260, 259) -> 257 -[112,1](261, 259) -> 258 -[113,1](262, 262) -> 259 -[113,1](263, 262) -> 260 -[113,1](264, 262) -> 261 -[114,1](265, 265) -> 262 -[114,1](266, 265) -> 263 -[114,1](267, 265) -> 264 -[115,1](268, 268) -> 265 -[115,1](269, 268) -> 266 -[115,1](270, 268) -> 267 -[116,1](271, 271) -> 268 -[116,1](272, 271) -> 269 -[116,1](273, 271) -> 270 -[117,1](274, 274) -> 271 -[117,1](275, 274) -> 272 -[117,1](276, 274) -> 273 -[118,1](277, 277) -> 274 -[118,1](278, 277) -> 275 -[118,1](279, 277) -> 276 -[119,1](280, 280) -> 277 -[119,1](281, 280) -> 278 -[119,1](282, 280) -> 279 -[120,1](283, 283) -> 280 -[120,1](284, 283) -> 281 -[120,1](285, 283) -> 282 -[121,1](286, 286) -> 283 -[121,1](287, 286) -> 284 -[121,1](288, 286) -> 285 -[122,1](289, 289) -> 286 -[122,1](290, 289) -> 287 -[122,1](291, 289) -> 288 -[123,1](292, 292) -> 289 -[123,1](293, 292) -> 290 -[123,1](294, 292) -> 291 -[124,1](295, 295) -> 292 -[124,1](296, 295) -> 293 -[124,1](297, 295) -> 294 -[125,1](298, 298) -> 295 -[125,1](299, 298) -> 296 -[125,1](300, 298) -> 297 -[126,1](301, 301) -> 298 -[126,1](302, 301) -> 299 -[126,1](303, 301) -> 300 -[127,1](304, 304) -> 301 -[127,1](305, 304) -> 302 -[127,1](306, 304) -> 303 -[128,1](307, 307) -> 304 -[128,1](308, 307) -> 305 -[128,1](309, 307) -> 306 -[129,1](310, 310) -> 307 -[129,1](311, 310) -> 308 -[129,1](312, 310) -> 309 -[130,1](313, 313) -> 310 -[130,1](314, 313) -> 311 -[130,1](315, 313) -> 312 -[131,1](316, 316) -> 313 -[131,1](317, 316) -> 314 -[131,1](318, 316) -> 315 -[132,1](319, 319) -> 316 -[132,1](320, 319) -> 317 -[132,1](321, 319) -> 318 -[133,1](322, 322) -> 319 -[133,1](323, 322) -> 320 -[133,1](324, 322) -> 321 -[134,1](325, 325) -> 322 -[134,1](326, 325) -> 323 -[134,1](327, 325) -> 324 -[135,1](328, 328) -> 325 -[135,1](329, 328) -> 326 -[135,1](330, 328) -> 327 -[136,1](331, 331) -> 328 -[136,1](332, 331) -> 329 -[136,1](333, 331) -> 330 -[137,1](334, 334) -> 331 -[137,1](335, 334) -> 332 -[137,1](336, 334) -> 333 -[138,1](337, 337) -> 334 -[138,1](338, 337) -> 335 -[138,1](339, 337) -> 336 -[139,1](340, 340) -> 337 -[139,1](341, 340) -> 338 -[139,1](342, 340) -> 339 -[140,1](343, 343) -> 340 -[140,1](344, 343) -> 341 -[140,1](345, 343) -> 342 -[141,1](346, 346) -> 343 -[141,1](347, 346) -> 344 -[141,1](348, 346) -> 345 -[142,1](349, 349) -> 346 -[142,1](350, 349) -> 347 -[142,1](351, 349) -> 348 -[143,1](352, 352) -> 349 -[143,1](353, 352) -> 350 -[143,1](354, 352) -> 351 -[144,1](355, 355) -> 352 -[144,1](356, 355) -> 353 -[144,1](357, 355) -> 354 -[145,1](358, 358) -> 355 -[145,1](359, 358) -> 356 -[145,1](360, 358) -> 357 -[146,1](361, 361) -> 358 -[146,1](362, 361) -> 359 -[146,1](363, 361) -> 360 -[147,1](364, 364) -> 361 -[147,1](365, 364) -> 362 -[147,1](366, 364) -> 363 -[148,1](367, 367) -> 364 -[148,1](368, 367) -> 365 -[148,1](369, 367) -> 366 -[149,1](370, 370) -> 367 -[149,1](371, 370) -> 368 -[149,1](372, 370) -> 369 -[150,1](373, 373) -> 370 -[150,1](374, 373) -> 371 -[150,1](375, 373) -> 372 -[c0,1] -> 373 -[a,1] -> 374 -[b,1] -> 375 -Constraints -37778931862957161709567 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/76/circuit.qasm b/benchmarks/all/OEGrover/76/circuit.qasm index b68e2a091..b95ce8b2c 100644 --- a/benchmarks/all/OEGrover/76/circuit.qasm +++ b/benchmarks/all/OEGrover/76/circuit.qasm @@ -1,194 +1,194 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[152]; +qreg qubits[151]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -ccx qubits[0], qubits[1], qubits[77]; -ccx qubits[2], qubits[77], qubits[78]; -ccx qubits[3], qubits[78], qubits[79]; -ccx qubits[4], qubits[79], qubits[80]; -ccx qubits[5], qubits[80], qubits[81]; -ccx qubits[6], qubits[81], qubits[82]; -ccx qubits[7], qubits[82], qubits[83]; -ccx qubits[8], qubits[83], qubits[84]; -ccx qubits[9], qubits[84], qubits[85]; -ccx qubits[10], qubits[85], qubits[86]; -ccx qubits[11], qubits[86], qubits[87]; -ccx qubits[12], qubits[87], qubits[88]; -ccx qubits[13], qubits[88], qubits[89]; -ccx qubits[14], qubits[89], qubits[90]; -ccx qubits[15], qubits[90], qubits[91]; -ccx qubits[16], qubits[91], qubits[92]; -ccx qubits[17], qubits[92], qubits[93]; -ccx qubits[18], qubits[93], qubits[94]; -ccx qubits[19], qubits[94], qubits[95]; -ccx qubits[20], qubits[95], qubits[96]; -ccx qubits[21], qubits[96], qubits[97]; -ccx qubits[22], qubits[97], qubits[98]; -ccx qubits[23], qubits[98], qubits[99]; -ccx qubits[24], qubits[99], qubits[100]; -ccx qubits[25], qubits[100], qubits[101]; -ccx qubits[26], qubits[101], qubits[102]; -ccx qubits[27], qubits[102], qubits[103]; -ccx qubits[28], qubits[103], qubits[104]; -ccx qubits[29], qubits[104], qubits[105]; -ccx qubits[30], qubits[105], qubits[106]; -ccx qubits[31], qubits[106], qubits[107]; -ccx qubits[32], qubits[107], qubits[108]; -ccx qubits[33], qubits[108], qubits[109]; -ccx qubits[34], qubits[109], qubits[110]; -ccx qubits[35], qubits[110], qubits[111]; -ccx qubits[36], qubits[111], qubits[112]; -ccx qubits[37], qubits[112], qubits[113]; -ccx qubits[38], qubits[113], qubits[114]; -ccx qubits[39], qubits[114], qubits[115]; -ccx qubits[40], qubits[115], qubits[116]; -ccx qubits[41], qubits[116], qubits[117]; -ccx qubits[42], qubits[117], qubits[118]; -ccx qubits[43], qubits[118], qubits[119]; -ccx qubits[44], qubits[119], qubits[120]; -ccx qubits[45], qubits[120], qubits[121]; -ccx qubits[46], qubits[121], qubits[122]; -ccx qubits[47], qubits[122], qubits[123]; -ccx qubits[48], qubits[123], qubits[124]; -ccx qubits[49], qubits[124], qubits[125]; -ccx qubits[50], qubits[125], qubits[126]; -ccx qubits[51], qubits[126], qubits[127]; -ccx qubits[52], qubits[127], qubits[128]; -ccx qubits[53], qubits[128], qubits[129]; -ccx qubits[54], qubits[129], qubits[130]; -ccx qubits[55], qubits[130], qubits[131]; -ccx qubits[56], qubits[131], qubits[132]; -ccx qubits[57], qubits[132], qubits[133]; -ccx qubits[58], qubits[133], qubits[134]; -ccx qubits[59], qubits[134], qubits[135]; -ccx qubits[60], qubits[135], qubits[136]; -ccx qubits[61], qubits[136], qubits[137]; -ccx qubits[62], qubits[137], qubits[138]; -ccx qubits[63], qubits[138], qubits[139]; -ccx qubits[64], qubits[139], qubits[140]; -ccx qubits[65], qubits[140], qubits[141]; -ccx qubits[66], qubits[141], qubits[142]; -ccx qubits[67], qubits[142], qubits[143]; -ccx qubits[68], qubits[143], qubits[144]; -ccx qubits[69], qubits[144], qubits[145]; -ccx qubits[70], qubits[145], qubits[146]; -ccx qubits[71], qubits[146], qubits[147]; -ccx qubits[72], qubits[147], qubits[148]; -ccx qubits[73], qubits[148], qubits[149]; -ccx qubits[74], qubits[149], qubits[150]; -cz qubits[150], qubits[75]; -ccx qubits[74], qubits[149], qubits[150]; -ccx qubits[73], qubits[148], qubits[149]; -ccx qubits[72], qubits[147], qubits[148]; -ccx qubits[71], qubits[146], qubits[147]; -ccx qubits[70], qubits[145], qubits[146]; -ccx qubits[69], qubits[144], qubits[145]; -ccx qubits[68], qubits[143], qubits[144]; -ccx qubits[67], qubits[142], qubits[143]; -ccx qubits[66], qubits[141], qubits[142]; -ccx qubits[65], qubits[140], qubits[141]; -ccx qubits[64], qubits[139], qubits[140]; -ccx qubits[63], qubits[138], qubits[139]; -ccx qubits[62], qubits[137], qubits[138]; -ccx qubits[61], qubits[136], qubits[137]; -ccx qubits[60], qubits[135], qubits[136]; -ccx qubits[59], qubits[134], qubits[135]; -ccx qubits[58], qubits[133], qubits[134]; -ccx qubits[57], qubits[132], qubits[133]; -ccx qubits[56], qubits[131], qubits[132]; -ccx qubits[55], qubits[130], qubits[131]; -ccx qubits[54], qubits[129], qubits[130]; -ccx qubits[53], qubits[128], qubits[129]; -ccx qubits[52], qubits[127], qubits[128]; -ccx qubits[51], qubits[126], qubits[127]; -ccx qubits[50], qubits[125], qubits[126]; -ccx qubits[49], qubits[124], qubits[125]; -ccx qubits[48], qubits[123], qubits[124]; -ccx qubits[47], qubits[122], qubits[123]; -ccx qubits[46], qubits[121], qubits[122]; -ccx qubits[45], qubits[120], qubits[121]; -ccx qubits[44], qubits[119], qubits[120]; -ccx qubits[43], qubits[118], qubits[119]; -ccx qubits[42], qubits[117], qubits[118]; -ccx qubits[41], qubits[116], qubits[117]; -ccx qubits[40], qubits[115], qubits[116]; -ccx qubits[39], qubits[114], qubits[115]; -ccx qubits[38], qubits[113], qubits[114]; -ccx qubits[37], qubits[112], qubits[113]; -ccx qubits[36], qubits[111], qubits[112]; -ccx qubits[35], qubits[110], qubits[111]; -ccx qubits[34], qubits[109], qubits[110]; -ccx qubits[33], qubits[108], qubits[109]; -ccx qubits[32], qubits[107], qubits[108]; -ccx qubits[31], qubits[106], qubits[107]; -ccx qubits[30], qubits[105], qubits[106]; -ccx qubits[29], qubits[104], qubits[105]; -ccx qubits[28], qubits[103], qubits[104]; -ccx qubits[27], qubits[102], qubits[103]; -ccx qubits[26], qubits[101], qubits[102]; -ccx qubits[25], qubits[100], qubits[101]; -ccx qubits[24], qubits[99], qubits[100]; -ccx qubits[23], qubits[98], qubits[99]; -ccx qubits[22], qubits[97], qubits[98]; -ccx qubits[21], qubits[96], qubits[97]; -ccx qubits[20], qubits[95], qubits[96]; -ccx qubits[19], qubits[94], qubits[95]; -ccx qubits[18], qubits[93], qubits[94]; -ccx qubits[17], qubits[92], qubits[93]; -ccx qubits[16], qubits[91], qubits[92]; -ccx qubits[15], qubits[90], qubits[91]; -ccx qubits[14], qubits[89], qubits[90]; -ccx qubits[13], qubits[88], qubits[89]; -ccx qubits[12], qubits[87], qubits[88]; -ccx qubits[11], qubits[86], qubits[87]; -ccx qubits[10], qubits[85], qubits[86]; -ccx qubits[9], qubits[84], qubits[85]; -ccx qubits[8], qubits[83], qubits[84]; -ccx qubits[7], qubits[82], qubits[83]; -ccx qubits[6], qubits[81], qubits[82]; -ccx qubits[5], qubits[80], qubits[81]; -ccx qubits[4], qubits[79], qubits[80]; -ccx qubits[3], qubits[78], qubits[79]; -ccx qubits[2], qubits[77], qubits[78]; -ccx qubits[0], qubits[1], qubits[77]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +cz qubits[148], qubits[149]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -229,455 +229,455 @@ x qubits[72]; x qubits[74]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -ccx qubits[0], qubits[1], qubits[77]; -ccx qubits[2], qubits[77], qubits[78]; -ccx qubits[3], qubits[78], qubits[79]; -ccx qubits[4], qubits[79], qubits[80]; -ccx qubits[5], qubits[80], qubits[81]; -ccx qubits[6], qubits[81], qubits[82]; -ccx qubits[7], qubits[82], qubits[83]; -ccx qubits[8], qubits[83], qubits[84]; -ccx qubits[9], qubits[84], qubits[85]; -ccx qubits[10], qubits[85], qubits[86]; -ccx qubits[11], qubits[86], qubits[87]; -ccx qubits[12], qubits[87], qubits[88]; -ccx qubits[13], qubits[88], qubits[89]; -ccx qubits[14], qubits[89], qubits[90]; -ccx qubits[15], qubits[90], qubits[91]; -ccx qubits[16], qubits[91], qubits[92]; -ccx qubits[17], qubits[92], qubits[93]; -ccx qubits[18], qubits[93], qubits[94]; -ccx qubits[19], qubits[94], qubits[95]; -ccx qubits[20], qubits[95], qubits[96]; -ccx qubits[21], qubits[96], qubits[97]; -ccx qubits[22], qubits[97], qubits[98]; -ccx qubits[23], qubits[98], qubits[99]; -ccx qubits[24], qubits[99], qubits[100]; -ccx qubits[25], qubits[100], qubits[101]; -ccx qubits[26], qubits[101], qubits[102]; -ccx qubits[27], qubits[102], qubits[103]; -ccx qubits[28], qubits[103], qubits[104]; -ccx qubits[29], qubits[104], qubits[105]; -ccx qubits[30], qubits[105], qubits[106]; -ccx qubits[31], qubits[106], qubits[107]; -ccx qubits[32], qubits[107], qubits[108]; -ccx qubits[33], qubits[108], qubits[109]; -ccx qubits[34], qubits[109], qubits[110]; -ccx qubits[35], qubits[110], qubits[111]; -ccx qubits[36], qubits[111], qubits[112]; -ccx qubits[37], qubits[112], qubits[113]; -ccx qubits[38], qubits[113], qubits[114]; -ccx qubits[39], qubits[114], qubits[115]; -ccx qubits[40], qubits[115], qubits[116]; -ccx qubits[41], qubits[116], qubits[117]; -ccx qubits[42], qubits[117], qubits[118]; -ccx qubits[43], qubits[118], qubits[119]; -ccx qubits[44], qubits[119], qubits[120]; -ccx qubits[45], qubits[120], qubits[121]; -ccx qubits[46], qubits[121], qubits[122]; -ccx qubits[47], qubits[122], qubits[123]; -ccx qubits[48], qubits[123], qubits[124]; -ccx qubits[49], qubits[124], qubits[125]; -ccx qubits[50], qubits[125], qubits[126]; -ccx qubits[51], qubits[126], qubits[127]; -ccx qubits[52], qubits[127], qubits[128]; -ccx qubits[53], qubits[128], qubits[129]; -ccx qubits[54], qubits[129], qubits[130]; -ccx qubits[55], qubits[130], qubits[131]; -ccx qubits[56], qubits[131], qubits[132]; -ccx qubits[57], qubits[132], qubits[133]; -ccx qubits[58], qubits[133], qubits[134]; -ccx qubits[59], qubits[134], qubits[135]; -ccx qubits[60], qubits[135], qubits[136]; -ccx qubits[61], qubits[136], qubits[137]; -ccx qubits[62], qubits[137], qubits[138]; -ccx qubits[63], qubits[138], qubits[139]; -ccx qubits[64], qubits[139], qubits[140]; -ccx qubits[65], qubits[140], qubits[141]; -ccx qubits[66], qubits[141], qubits[142]; -ccx qubits[67], qubits[142], qubits[143]; -ccx qubits[68], qubits[143], qubits[144]; -ccx qubits[69], qubits[144], qubits[145]; -ccx qubits[70], qubits[145], qubits[146]; -ccx qubits[71], qubits[146], qubits[147]; -ccx qubits[72], qubits[147], qubits[148]; -ccx qubits[73], qubits[148], qubits[149]; -ccx qubits[74], qubits[149], qubits[150]; -cz qubits[150], qubits[75]; -ccx qubits[74], qubits[149], qubits[150]; -ccx qubits[73], qubits[148], qubits[149]; -ccx qubits[72], qubits[147], qubits[148]; -ccx qubits[71], qubits[146], qubits[147]; -ccx qubits[70], qubits[145], qubits[146]; -ccx qubits[69], qubits[144], qubits[145]; -ccx qubits[68], qubits[143], qubits[144]; -ccx qubits[67], qubits[142], qubits[143]; -ccx qubits[66], qubits[141], qubits[142]; -ccx qubits[65], qubits[140], qubits[141]; -ccx qubits[64], qubits[139], qubits[140]; -ccx qubits[63], qubits[138], qubits[139]; -ccx qubits[62], qubits[137], qubits[138]; -ccx qubits[61], qubits[136], qubits[137]; -ccx qubits[60], qubits[135], qubits[136]; -ccx qubits[59], qubits[134], qubits[135]; -ccx qubits[58], qubits[133], qubits[134]; -ccx qubits[57], qubits[132], qubits[133]; -ccx qubits[56], qubits[131], qubits[132]; -ccx qubits[55], qubits[130], qubits[131]; -ccx qubits[54], qubits[129], qubits[130]; -ccx qubits[53], qubits[128], qubits[129]; -ccx qubits[52], qubits[127], qubits[128]; -ccx qubits[51], qubits[126], qubits[127]; -ccx qubits[50], qubits[125], qubits[126]; -ccx qubits[49], qubits[124], qubits[125]; -ccx qubits[48], qubits[123], qubits[124]; -ccx qubits[47], qubits[122], qubits[123]; -ccx qubits[46], qubits[121], qubits[122]; -ccx qubits[45], qubits[120], qubits[121]; -ccx qubits[44], qubits[119], qubits[120]; -ccx qubits[43], qubits[118], qubits[119]; -ccx qubits[42], qubits[117], qubits[118]; -ccx qubits[41], qubits[116], qubits[117]; -ccx qubits[40], qubits[115], qubits[116]; -ccx qubits[39], qubits[114], qubits[115]; -ccx qubits[38], qubits[113], qubits[114]; -ccx qubits[37], qubits[112], qubits[113]; -ccx qubits[36], qubits[111], qubits[112]; -ccx qubits[35], qubits[110], qubits[111]; -ccx qubits[34], qubits[109], qubits[110]; -ccx qubits[33], qubits[108], qubits[109]; -ccx qubits[32], qubits[107], qubits[108]; -ccx qubits[31], qubits[106], qubits[107]; -ccx qubits[30], qubits[105], qubits[106]; -ccx qubits[29], qubits[104], qubits[105]; -ccx qubits[28], qubits[103], qubits[104]; -ccx qubits[27], qubits[102], qubits[103]; -ccx qubits[26], qubits[101], qubits[102]; -ccx qubits[25], qubits[100], qubits[101]; -ccx qubits[24], qubits[99], qubits[100]; -ccx qubits[23], qubits[98], qubits[99]; -ccx qubits[22], qubits[97], qubits[98]; -ccx qubits[21], qubits[96], qubits[97]; -ccx qubits[20], qubits[95], qubits[96]; -ccx qubits[19], qubits[94], qubits[95]; -ccx qubits[18], qubits[93], qubits[94]; -ccx qubits[17], qubits[92], qubits[93]; -ccx qubits[16], qubits[91], qubits[92]; -ccx qubits[15], qubits[90], qubits[91]; -ccx qubits[14], qubits[89], qubits[90]; -ccx qubits[13], qubits[88], qubits[89]; -ccx qubits[12], qubits[87], qubits[88]; -ccx qubits[11], qubits[86], qubits[87]; -ccx qubits[10], qubits[85], qubits[86]; -ccx qubits[9], qubits[84], qubits[85]; -ccx qubits[8], qubits[83], qubits[84]; -ccx qubits[7], qubits[82], qubits[83]; -ccx qubits[6], qubits[81], qubits[82]; -ccx qubits[5], qubits[80], qubits[81]; -ccx qubits[4], qubits[79], qubits[80]; -ccx qubits[3], qubits[78], qubits[79]; -ccx qubits[2], qubits[77], qubits[78]; -ccx qubits[0], qubits[1], qubits[77]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +cz qubits[148], qubits[149]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -z qubits[76]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +z qubits[150]; diff --git a/benchmarks/all/OEGrover/76/post.hsl b/benchmarks/all/OEGrover/76/post.hsl index 728f3ebd7..ea782c362 100644 --- a/benchmarks/all/OEGrover/76/post.hsl +++ b/benchmarks/all/OEGrover/76/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 37 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/76/post.lsta b/benchmarks/all/OEGrover/76/post.lsta deleted file mode 100644 index da3729e8c..000000000 --- a/benchmarks/all/OEGrover/76/post.lsta +++ /dev/null @@ -1,387 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 154) -> 151 -[77,1](153, 155) -> 152 -[78,1](156, 156) -> 153 -[78,1](157, 156) -> 154 -[78,1](158, 156) -> 155 -[79,1](159, 159) -> 156 -[79,1](160, 159) -> 157 -[79,1](161, 159) -> 158 -[80,1](162, 162) -> 159 -[80,1](163, 162) -> 160 -[80,1](164, 162) -> 161 -[81,1](165, 165) -> 162 -[81,1](166, 165) -> 163 -[81,1](167, 165) -> 164 -[82,1](168, 168) -> 165 -[82,1](169, 168) -> 166 -[82,1](170, 168) -> 167 -[83,1](171, 171) -> 168 -[83,1](172, 171) -> 169 -[83,1](173, 171) -> 170 -[84,1](174, 174) -> 171 -[84,1](175, 174) -> 172 -[84,1](176, 174) -> 173 -[85,1](177, 177) -> 174 -[85,1](178, 177) -> 175 -[85,1](179, 177) -> 176 -[86,1](180, 180) -> 177 -[86,1](181, 180) -> 178 -[86,1](182, 180) -> 179 -[87,1](183, 183) -> 180 -[87,1](184, 183) -> 181 -[87,1](185, 183) -> 182 -[88,1](186, 186) -> 183 -[88,1](187, 186) -> 184 -[88,1](188, 186) -> 185 -[89,1](189, 189) -> 186 -[89,1](190, 189) -> 187 -[89,1](191, 189) -> 188 -[90,1](192, 192) -> 189 -[90,1](193, 192) -> 190 -[90,1](194, 192) -> 191 -[91,1](195, 195) -> 192 -[91,1](196, 195) -> 193 -[91,1](197, 195) -> 194 -[92,1](198, 198) -> 195 -[92,1](199, 198) -> 196 -[92,1](200, 198) -> 197 -[93,1](201, 201) -> 198 -[93,1](202, 201) -> 199 -[93,1](203, 201) -> 200 -[94,1](204, 204) -> 201 -[94,1](205, 204) -> 202 -[94,1](206, 204) -> 203 -[95,1](207, 207) -> 204 -[95,1](208, 207) -> 205 -[95,1](209, 207) -> 206 -[96,1](210, 210) -> 207 -[96,1](211, 210) -> 208 -[96,1](212, 210) -> 209 -[97,1](213, 213) -> 210 -[97,1](214, 213) -> 211 -[97,1](215, 213) -> 212 -[98,1](216, 216) -> 213 -[98,1](217, 216) -> 214 -[98,1](218, 216) -> 215 -[99,1](219, 219) -> 216 -[99,1](220, 219) -> 217 -[99,1](221, 219) -> 218 -[100,1](222, 222) -> 219 -[100,1](223, 222) -> 220 -[100,1](224, 222) -> 221 -[101,1](225, 225) -> 222 -[101,1](226, 225) -> 223 -[101,1](227, 225) -> 224 -[102,1](228, 228) -> 225 -[102,1](229, 228) -> 226 -[102,1](230, 228) -> 227 -[103,1](231, 231) -> 228 -[103,1](232, 231) -> 229 -[103,1](233, 231) -> 230 -[104,1](234, 234) -> 231 -[104,1](235, 234) -> 232 -[104,1](236, 234) -> 233 -[105,1](237, 237) -> 234 -[105,1](238, 237) -> 235 -[105,1](239, 237) -> 236 -[106,1](240, 240) -> 237 -[106,1](241, 240) -> 238 -[106,1](242, 240) -> 239 -[107,1](243, 243) -> 240 -[107,1](244, 243) -> 241 -[107,1](245, 243) -> 242 -[108,1](246, 246) -> 243 -[108,1](247, 246) -> 244 -[108,1](248, 246) -> 245 -[109,1](249, 249) -> 246 -[109,1](250, 249) -> 247 -[109,1](251, 249) -> 248 -[110,1](252, 252) -> 249 -[110,1](253, 252) -> 250 -[110,1](254, 252) -> 251 -[111,1](255, 255) -> 252 -[111,1](256, 255) -> 253 -[111,1](257, 255) -> 254 -[112,1](258, 258) -> 255 -[112,1](259, 258) -> 256 -[112,1](260, 258) -> 257 -[113,1](261, 261) -> 258 -[113,1](262, 261) -> 259 -[113,1](263, 261) -> 260 -[114,1](264, 264) -> 261 -[114,1](265, 264) -> 262 -[114,1](266, 264) -> 263 -[115,1](267, 267) -> 264 -[115,1](268, 267) -> 265 -[115,1](269, 267) -> 266 -[116,1](270, 270) -> 267 -[116,1](271, 270) -> 268 -[116,1](272, 270) -> 269 -[117,1](273, 273) -> 270 -[117,1](274, 273) -> 271 -[117,1](275, 273) -> 272 -[118,1](276, 276) -> 273 -[118,1](277, 276) -> 274 -[118,1](278, 276) -> 275 -[119,1](279, 279) -> 276 -[119,1](280, 279) -> 277 -[119,1](281, 279) -> 278 -[120,1](282, 282) -> 279 -[120,1](283, 282) -> 280 -[120,1](284, 282) -> 281 -[121,1](285, 285) -> 282 -[121,1](286, 285) -> 283 -[121,1](287, 285) -> 284 -[122,1](288, 288) -> 285 -[122,1](289, 288) -> 286 -[122,1](290, 288) -> 287 -[123,1](291, 291) -> 288 -[123,1](292, 291) -> 289 -[123,1](293, 291) -> 290 -[124,1](294, 294) -> 291 -[124,1](295, 294) -> 292 -[124,1](296, 294) -> 293 -[125,1](297, 297) -> 294 -[125,1](298, 297) -> 295 -[125,1](299, 297) -> 296 -[126,1](300, 300) -> 297 -[126,1](301, 300) -> 298 -[126,1](302, 300) -> 299 -[127,1](303, 303) -> 300 -[127,1](304, 303) -> 301 -[127,1](305, 303) -> 302 -[128,1](306, 306) -> 303 -[128,1](307, 306) -> 304 -[128,1](308, 306) -> 305 -[129,1](309, 309) -> 306 -[129,1](310, 309) -> 307 -[129,1](311, 309) -> 308 -[130,1](312, 312) -> 309 -[130,1](313, 312) -> 310 -[130,1](314, 312) -> 311 -[131,1](315, 315) -> 312 -[131,1](316, 315) -> 313 -[131,1](317, 315) -> 314 -[132,1](318, 318) -> 315 -[132,1](319, 318) -> 316 -[132,1](320, 318) -> 317 -[133,1](321, 321) -> 318 -[133,1](322, 321) -> 319 -[133,1](323, 321) -> 320 -[134,1](324, 324) -> 321 -[134,1](325, 324) -> 322 -[134,1](326, 324) -> 323 -[135,1](327, 327) -> 324 -[135,1](328, 327) -> 325 -[135,1](329, 327) -> 326 -[136,1](330, 330) -> 327 -[136,1](331, 330) -> 328 -[136,1](332, 330) -> 329 -[137,1](333, 333) -> 330 -[137,1](334, 333) -> 331 -[137,1](335, 333) -> 332 -[138,1](336, 336) -> 333 -[138,1](337, 336) -> 334 -[138,1](338, 336) -> 335 -[139,1](339, 339) -> 336 -[139,1](340, 339) -> 337 -[139,1](341, 339) -> 338 -[140,1](342, 342) -> 339 -[140,1](343, 342) -> 340 -[140,1](344, 342) -> 341 -[141,1](345, 345) -> 342 -[141,1](346, 345) -> 343 -[141,1](347, 345) -> 344 -[142,1](348, 348) -> 345 -[142,1](349, 348) -> 346 -[142,1](350, 348) -> 347 -[143,1](351, 351) -> 348 -[143,1](352, 351) -> 349 -[143,1](353, 351) -> 350 -[144,1](354, 354) -> 351 -[144,1](355, 354) -> 352 -[144,1](356, 354) -> 353 -[145,1](357, 357) -> 354 -[145,1](358, 357) -> 355 -[145,1](359, 357) -> 356 -[146,1](360, 360) -> 357 -[146,1](361, 360) -> 358 -[146,1](362, 360) -> 359 -[147,1](363, 363) -> 360 -[147,1](364, 363) -> 361 -[147,1](365, 363) -> 362 -[148,1](366, 366) -> 363 -[148,1](367, 366) -> 364 -[148,1](368, 366) -> 365 -[149,1](369, 369) -> 366 -[149,1](370, 369) -> 367 -[149,1](371, 369) -> 368 -[150,1](372, 372) -> 369 -[150,1](373, 372) -> 370 -[150,1](374, 372) -> 371 -[151,1](375, 375) -> 372 -[151,1](376, 375) -> 373 -[151,1](377, 375) -> 374 -[152,1](378, 378) -> 375 -[152,1](379, 378) -> 376 -[152,1](380, 378) -> 377 -[p1,1] -> 378 -[p2,1] -> 379 -[p3,1] -> 380 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/76/pre.hsl b/benchmarks/all/OEGrover/76/pre.hsl index 60df3729e..3187d7d25 100644 --- a/benchmarks/all/OEGrover/76/pre.hsl +++ b/benchmarks/all/OEGrover/76/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 37 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 75557863725914323419135 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/76/pre.lsta b/benchmarks/all/OEGrover/76/pre.lsta deleted file mode 100644 index cbacab8c3..000000000 --- a/benchmarks/all/OEGrover/76/pre.lsta +++ /dev/null @@ -1,391 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 154) -> 151 -[77,1](153, 155) -> 152 -[78,1](156, 156) -> 153 -[78,1](157, 156) -> 154 -[78,1](158, 156) -> 155 -[79,1](159, 159) -> 156 -[79,1](160, 159) -> 157 -[79,1](161, 159) -> 158 -[80,1](162, 162) -> 159 -[80,1](163, 162) -> 160 -[80,1](164, 162) -> 161 -[81,1](165, 165) -> 162 -[81,1](166, 165) -> 163 -[81,1](167, 165) -> 164 -[82,1](168, 168) -> 165 -[82,1](169, 168) -> 166 -[82,1](170, 168) -> 167 -[83,1](171, 171) -> 168 -[83,1](172, 171) -> 169 -[83,1](173, 171) -> 170 -[84,1](174, 174) -> 171 -[84,1](175, 174) -> 172 -[84,1](176, 174) -> 173 -[85,1](177, 177) -> 174 -[85,1](178, 177) -> 175 -[85,1](179, 177) -> 176 -[86,1](180, 180) -> 177 -[86,1](181, 180) -> 178 -[86,1](182, 180) -> 179 -[87,1](183, 183) -> 180 -[87,1](184, 183) -> 181 -[87,1](185, 183) -> 182 -[88,1](186, 186) -> 183 -[88,1](187, 186) -> 184 -[88,1](188, 186) -> 185 -[89,1](189, 189) -> 186 -[89,1](190, 189) -> 187 -[89,1](191, 189) -> 188 -[90,1](192, 192) -> 189 -[90,1](193, 192) -> 190 -[90,1](194, 192) -> 191 -[91,1](195, 195) -> 192 -[91,1](196, 195) -> 193 -[91,1](197, 195) -> 194 -[92,1](198, 198) -> 195 -[92,1](199, 198) -> 196 -[92,1](200, 198) -> 197 -[93,1](201, 201) -> 198 -[93,1](202, 201) -> 199 -[93,1](203, 201) -> 200 -[94,1](204, 204) -> 201 -[94,1](205, 204) -> 202 -[94,1](206, 204) -> 203 -[95,1](207, 207) -> 204 -[95,1](208, 207) -> 205 -[95,1](209, 207) -> 206 -[96,1](210, 210) -> 207 -[96,1](211, 210) -> 208 -[96,1](212, 210) -> 209 -[97,1](213, 213) -> 210 -[97,1](214, 213) -> 211 -[97,1](215, 213) -> 212 -[98,1](216, 216) -> 213 -[98,1](217, 216) -> 214 -[98,1](218, 216) -> 215 -[99,1](219, 219) -> 216 -[99,1](220, 219) -> 217 -[99,1](221, 219) -> 218 -[100,1](222, 222) -> 219 -[100,1](223, 222) -> 220 -[100,1](224, 222) -> 221 -[101,1](225, 225) -> 222 -[101,1](226, 225) -> 223 -[101,1](227, 225) -> 224 -[102,1](228, 228) -> 225 -[102,1](229, 228) -> 226 -[102,1](230, 228) -> 227 -[103,1](231, 231) -> 228 -[103,1](232, 231) -> 229 -[103,1](233, 231) -> 230 -[104,1](234, 234) -> 231 -[104,1](235, 234) -> 232 -[104,1](236, 234) -> 233 -[105,1](237, 237) -> 234 -[105,1](238, 237) -> 235 -[105,1](239, 237) -> 236 -[106,1](240, 240) -> 237 -[106,1](241, 240) -> 238 -[106,1](242, 240) -> 239 -[107,1](243, 243) -> 240 -[107,1](244, 243) -> 241 -[107,1](245, 243) -> 242 -[108,1](246, 246) -> 243 -[108,1](247, 246) -> 244 -[108,1](248, 246) -> 245 -[109,1](249, 249) -> 246 -[109,1](250, 249) -> 247 -[109,1](251, 249) -> 248 -[110,1](252, 252) -> 249 -[110,1](253, 252) -> 250 -[110,1](254, 252) -> 251 -[111,1](255, 255) -> 252 -[111,1](256, 255) -> 253 -[111,1](257, 255) -> 254 -[112,1](258, 258) -> 255 -[112,1](259, 258) -> 256 -[112,1](260, 258) -> 257 -[113,1](261, 261) -> 258 -[113,1](262, 261) -> 259 -[113,1](263, 261) -> 260 -[114,1](264, 264) -> 261 -[114,1](265, 264) -> 262 -[114,1](266, 264) -> 263 -[115,1](267, 267) -> 264 -[115,1](268, 267) -> 265 -[115,1](269, 267) -> 266 -[116,1](270, 270) -> 267 -[116,1](271, 270) -> 268 -[116,1](272, 270) -> 269 -[117,1](273, 273) -> 270 -[117,1](274, 273) -> 271 -[117,1](275, 273) -> 272 -[118,1](276, 276) -> 273 -[118,1](277, 276) -> 274 -[118,1](278, 276) -> 275 -[119,1](279, 279) -> 276 -[119,1](280, 279) -> 277 -[119,1](281, 279) -> 278 -[120,1](282, 282) -> 279 -[120,1](283, 282) -> 280 -[120,1](284, 282) -> 281 -[121,1](285, 285) -> 282 -[121,1](286, 285) -> 283 -[121,1](287, 285) -> 284 -[122,1](288, 288) -> 285 -[122,1](289, 288) -> 286 -[122,1](290, 288) -> 287 -[123,1](291, 291) -> 288 -[123,1](292, 291) -> 289 -[123,1](293, 291) -> 290 -[124,1](294, 294) -> 291 -[124,1](295, 294) -> 292 -[124,1](296, 294) -> 293 -[125,1](297, 297) -> 294 -[125,1](298, 297) -> 295 -[125,1](299, 297) -> 296 -[126,1](300, 300) -> 297 -[126,1](301, 300) -> 298 -[126,1](302, 300) -> 299 -[127,1](303, 303) -> 300 -[127,1](304, 303) -> 301 -[127,1](305, 303) -> 302 -[128,1](306, 306) -> 303 -[128,1](307, 306) -> 304 -[128,1](308, 306) -> 305 -[129,1](309, 309) -> 306 -[129,1](310, 309) -> 307 -[129,1](311, 309) -> 308 -[130,1](312, 312) -> 309 -[130,1](313, 312) -> 310 -[130,1](314, 312) -> 311 -[131,1](315, 315) -> 312 -[131,1](316, 315) -> 313 -[131,1](317, 315) -> 314 -[132,1](318, 318) -> 315 -[132,1](319, 318) -> 316 -[132,1](320, 318) -> 317 -[133,1](321, 321) -> 318 -[133,1](322, 321) -> 319 -[133,1](323, 321) -> 320 -[134,1](324, 324) -> 321 -[134,1](325, 324) -> 322 -[134,1](326, 324) -> 323 -[135,1](327, 327) -> 324 -[135,1](328, 327) -> 325 -[135,1](329, 327) -> 326 -[136,1](330, 330) -> 327 -[136,1](331, 330) -> 328 -[136,1](332, 330) -> 329 -[137,1](333, 333) -> 330 -[137,1](334, 333) -> 331 -[137,1](335, 333) -> 332 -[138,1](336, 336) -> 333 -[138,1](337, 336) -> 334 -[138,1](338, 336) -> 335 -[139,1](339, 339) -> 336 -[139,1](340, 339) -> 337 -[139,1](341, 339) -> 338 -[140,1](342, 342) -> 339 -[140,1](343, 342) -> 340 -[140,1](344, 342) -> 341 -[141,1](345, 345) -> 342 -[141,1](346, 345) -> 343 -[141,1](347, 345) -> 344 -[142,1](348, 348) -> 345 -[142,1](349, 348) -> 346 -[142,1](350, 348) -> 347 -[143,1](351, 351) -> 348 -[143,1](352, 351) -> 349 -[143,1](353, 351) -> 350 -[144,1](354, 354) -> 351 -[144,1](355, 354) -> 352 -[144,1](356, 354) -> 353 -[145,1](357, 357) -> 354 -[145,1](358, 357) -> 355 -[145,1](359, 357) -> 356 -[146,1](360, 360) -> 357 -[146,1](361, 360) -> 358 -[146,1](362, 360) -> 359 -[147,1](363, 363) -> 360 -[147,1](364, 363) -> 361 -[147,1](365, 363) -> 362 -[148,1](366, 366) -> 363 -[148,1](367, 366) -> 364 -[148,1](368, 366) -> 365 -[149,1](369, 369) -> 366 -[149,1](370, 369) -> 367 -[149,1](371, 369) -> 368 -[150,1](372, 372) -> 369 -[150,1](373, 372) -> 370 -[150,1](374, 372) -> 371 -[151,1](375, 375) -> 372 -[151,1](376, 375) -> 373 -[151,1](377, 375) -> 374 -[152,1](378, 378) -> 375 -[152,1](379, 378) -> 376 -[152,1](380, 378) -> 377 -[c0,1] -> 378 -[a,1] -> 379 -[b,1] -> 380 -Constraints -75557863725914323419135 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/77/circuit.qasm b/benchmarks/all/OEGrover/77/circuit.qasm index 61ebdea26..04f36e2d1 100644 --- a/benchmarks/all/OEGrover/77/circuit.qasm +++ b/benchmarks/all/OEGrover/77/circuit.qasm @@ -1,197 +1,197 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[154]; +qreg qubits[153]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -ccx qubits[0], qubits[1], qubits[78]; -ccx qubits[2], qubits[78], qubits[79]; -ccx qubits[3], qubits[79], qubits[80]; -ccx qubits[4], qubits[80], qubits[81]; -ccx qubits[5], qubits[81], qubits[82]; -ccx qubits[6], qubits[82], qubits[83]; -ccx qubits[7], qubits[83], qubits[84]; -ccx qubits[8], qubits[84], qubits[85]; -ccx qubits[9], qubits[85], qubits[86]; -ccx qubits[10], qubits[86], qubits[87]; -ccx qubits[11], qubits[87], qubits[88]; -ccx qubits[12], qubits[88], qubits[89]; -ccx qubits[13], qubits[89], qubits[90]; -ccx qubits[14], qubits[90], qubits[91]; -ccx qubits[15], qubits[91], qubits[92]; -ccx qubits[16], qubits[92], qubits[93]; -ccx qubits[17], qubits[93], qubits[94]; -ccx qubits[18], qubits[94], qubits[95]; -ccx qubits[19], qubits[95], qubits[96]; -ccx qubits[20], qubits[96], qubits[97]; -ccx qubits[21], qubits[97], qubits[98]; -ccx qubits[22], qubits[98], qubits[99]; -ccx qubits[23], qubits[99], qubits[100]; -ccx qubits[24], qubits[100], qubits[101]; -ccx qubits[25], qubits[101], qubits[102]; -ccx qubits[26], qubits[102], qubits[103]; -ccx qubits[27], qubits[103], qubits[104]; -ccx qubits[28], qubits[104], qubits[105]; -ccx qubits[29], qubits[105], qubits[106]; -ccx qubits[30], qubits[106], qubits[107]; -ccx qubits[31], qubits[107], qubits[108]; -ccx qubits[32], qubits[108], qubits[109]; -ccx qubits[33], qubits[109], qubits[110]; -ccx qubits[34], qubits[110], qubits[111]; -ccx qubits[35], qubits[111], qubits[112]; -ccx qubits[36], qubits[112], qubits[113]; -ccx qubits[37], qubits[113], qubits[114]; -ccx qubits[38], qubits[114], qubits[115]; -ccx qubits[39], qubits[115], qubits[116]; -ccx qubits[40], qubits[116], qubits[117]; -ccx qubits[41], qubits[117], qubits[118]; -ccx qubits[42], qubits[118], qubits[119]; -ccx qubits[43], qubits[119], qubits[120]; -ccx qubits[44], qubits[120], qubits[121]; -ccx qubits[45], qubits[121], qubits[122]; -ccx qubits[46], qubits[122], qubits[123]; -ccx qubits[47], qubits[123], qubits[124]; -ccx qubits[48], qubits[124], qubits[125]; -ccx qubits[49], qubits[125], qubits[126]; -ccx qubits[50], qubits[126], qubits[127]; -ccx qubits[51], qubits[127], qubits[128]; -ccx qubits[52], qubits[128], qubits[129]; -ccx qubits[53], qubits[129], qubits[130]; -ccx qubits[54], qubits[130], qubits[131]; -ccx qubits[55], qubits[131], qubits[132]; -ccx qubits[56], qubits[132], qubits[133]; -ccx qubits[57], qubits[133], qubits[134]; -ccx qubits[58], qubits[134], qubits[135]; -ccx qubits[59], qubits[135], qubits[136]; -ccx qubits[60], qubits[136], qubits[137]; -ccx qubits[61], qubits[137], qubits[138]; -ccx qubits[62], qubits[138], qubits[139]; -ccx qubits[63], qubits[139], qubits[140]; -ccx qubits[64], qubits[140], qubits[141]; -ccx qubits[65], qubits[141], qubits[142]; -ccx qubits[66], qubits[142], qubits[143]; -ccx qubits[67], qubits[143], qubits[144]; -ccx qubits[68], qubits[144], qubits[145]; -ccx qubits[69], qubits[145], qubits[146]; -ccx qubits[70], qubits[146], qubits[147]; -ccx qubits[71], qubits[147], qubits[148]; -ccx qubits[72], qubits[148], qubits[149]; -ccx qubits[73], qubits[149], qubits[150]; -ccx qubits[74], qubits[150], qubits[151]; -ccx qubits[75], qubits[151], qubits[152]; -cz qubits[152], qubits[76]; -ccx qubits[75], qubits[151], qubits[152]; -ccx qubits[74], qubits[150], qubits[151]; -ccx qubits[73], qubits[149], qubits[150]; -ccx qubits[72], qubits[148], qubits[149]; -ccx qubits[71], qubits[147], qubits[148]; -ccx qubits[70], qubits[146], qubits[147]; -ccx qubits[69], qubits[145], qubits[146]; -ccx qubits[68], qubits[144], qubits[145]; -ccx qubits[67], qubits[143], qubits[144]; -ccx qubits[66], qubits[142], qubits[143]; -ccx qubits[65], qubits[141], qubits[142]; -ccx qubits[64], qubits[140], qubits[141]; -ccx qubits[63], qubits[139], qubits[140]; -ccx qubits[62], qubits[138], qubits[139]; -ccx qubits[61], qubits[137], qubits[138]; -ccx qubits[60], qubits[136], qubits[137]; -ccx qubits[59], qubits[135], qubits[136]; -ccx qubits[58], qubits[134], qubits[135]; -ccx qubits[57], qubits[133], qubits[134]; -ccx qubits[56], qubits[132], qubits[133]; -ccx qubits[55], qubits[131], qubits[132]; -ccx qubits[54], qubits[130], qubits[131]; -ccx qubits[53], qubits[129], qubits[130]; -ccx qubits[52], qubits[128], qubits[129]; -ccx qubits[51], qubits[127], qubits[128]; -ccx qubits[50], qubits[126], qubits[127]; -ccx qubits[49], qubits[125], qubits[126]; -ccx qubits[48], qubits[124], qubits[125]; -ccx qubits[47], qubits[123], qubits[124]; -ccx qubits[46], qubits[122], qubits[123]; -ccx qubits[45], qubits[121], qubits[122]; -ccx qubits[44], qubits[120], qubits[121]; -ccx qubits[43], qubits[119], qubits[120]; -ccx qubits[42], qubits[118], qubits[119]; -ccx qubits[41], qubits[117], qubits[118]; -ccx qubits[40], qubits[116], qubits[117]; -ccx qubits[39], qubits[115], qubits[116]; -ccx qubits[38], qubits[114], qubits[115]; -ccx qubits[37], qubits[113], qubits[114]; -ccx qubits[36], qubits[112], qubits[113]; -ccx qubits[35], qubits[111], qubits[112]; -ccx qubits[34], qubits[110], qubits[111]; -ccx qubits[33], qubits[109], qubits[110]; -ccx qubits[32], qubits[108], qubits[109]; -ccx qubits[31], qubits[107], qubits[108]; -ccx qubits[30], qubits[106], qubits[107]; -ccx qubits[29], qubits[105], qubits[106]; -ccx qubits[28], qubits[104], qubits[105]; -ccx qubits[27], qubits[103], qubits[104]; -ccx qubits[26], qubits[102], qubits[103]; -ccx qubits[25], qubits[101], qubits[102]; -ccx qubits[24], qubits[100], qubits[101]; -ccx qubits[23], qubits[99], qubits[100]; -ccx qubits[22], qubits[98], qubits[99]; -ccx qubits[21], qubits[97], qubits[98]; -ccx qubits[20], qubits[96], qubits[97]; -ccx qubits[19], qubits[95], qubits[96]; -ccx qubits[18], qubits[94], qubits[95]; -ccx qubits[17], qubits[93], qubits[94]; -ccx qubits[16], qubits[92], qubits[93]; -ccx qubits[15], qubits[91], qubits[92]; -ccx qubits[14], qubits[90], qubits[91]; -ccx qubits[13], qubits[89], qubits[90]; -ccx qubits[12], qubits[88], qubits[89]; -ccx qubits[11], qubits[87], qubits[88]; -ccx qubits[10], qubits[86], qubits[87]; -ccx qubits[9], qubits[85], qubits[86]; -ccx qubits[8], qubits[84], qubits[85]; -ccx qubits[7], qubits[83], qubits[84]; -ccx qubits[6], qubits[82], qubits[83]; -ccx qubits[5], qubits[81], qubits[82]; -ccx qubits[4], qubits[80], qubits[81]; -ccx qubits[3], qubits[79], qubits[80]; -ccx qubits[2], qubits[78], qubits[79]; -ccx qubits[0], qubits[1], qubits[78]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +cz qubits[150], qubits[151]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -233,461 +233,461 @@ x qubits[74]; x qubits[76]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; -ccx qubits[0], qubits[1], qubits[78]; -ccx qubits[2], qubits[78], qubits[79]; -ccx qubits[3], qubits[79], qubits[80]; -ccx qubits[4], qubits[80], qubits[81]; -ccx qubits[5], qubits[81], qubits[82]; -ccx qubits[6], qubits[82], qubits[83]; -ccx qubits[7], qubits[83], qubits[84]; -ccx qubits[8], qubits[84], qubits[85]; -ccx qubits[9], qubits[85], qubits[86]; -ccx qubits[10], qubits[86], qubits[87]; -ccx qubits[11], qubits[87], qubits[88]; -ccx qubits[12], qubits[88], qubits[89]; -ccx qubits[13], qubits[89], qubits[90]; -ccx qubits[14], qubits[90], qubits[91]; -ccx qubits[15], qubits[91], qubits[92]; -ccx qubits[16], qubits[92], qubits[93]; -ccx qubits[17], qubits[93], qubits[94]; -ccx qubits[18], qubits[94], qubits[95]; -ccx qubits[19], qubits[95], qubits[96]; -ccx qubits[20], qubits[96], qubits[97]; -ccx qubits[21], qubits[97], qubits[98]; -ccx qubits[22], qubits[98], qubits[99]; -ccx qubits[23], qubits[99], qubits[100]; -ccx qubits[24], qubits[100], qubits[101]; -ccx qubits[25], qubits[101], qubits[102]; -ccx qubits[26], qubits[102], qubits[103]; -ccx qubits[27], qubits[103], qubits[104]; -ccx qubits[28], qubits[104], qubits[105]; -ccx qubits[29], qubits[105], qubits[106]; -ccx qubits[30], qubits[106], qubits[107]; -ccx qubits[31], qubits[107], qubits[108]; -ccx qubits[32], qubits[108], qubits[109]; -ccx qubits[33], qubits[109], qubits[110]; -ccx qubits[34], qubits[110], qubits[111]; -ccx qubits[35], qubits[111], qubits[112]; -ccx qubits[36], qubits[112], qubits[113]; -ccx qubits[37], qubits[113], qubits[114]; -ccx qubits[38], qubits[114], qubits[115]; -ccx qubits[39], qubits[115], qubits[116]; -ccx qubits[40], qubits[116], qubits[117]; -ccx qubits[41], qubits[117], qubits[118]; -ccx qubits[42], qubits[118], qubits[119]; -ccx qubits[43], qubits[119], qubits[120]; -ccx qubits[44], qubits[120], qubits[121]; -ccx qubits[45], qubits[121], qubits[122]; -ccx qubits[46], qubits[122], qubits[123]; -ccx qubits[47], qubits[123], qubits[124]; -ccx qubits[48], qubits[124], qubits[125]; -ccx qubits[49], qubits[125], qubits[126]; -ccx qubits[50], qubits[126], qubits[127]; -ccx qubits[51], qubits[127], qubits[128]; -ccx qubits[52], qubits[128], qubits[129]; -ccx qubits[53], qubits[129], qubits[130]; -ccx qubits[54], qubits[130], qubits[131]; -ccx qubits[55], qubits[131], qubits[132]; -ccx qubits[56], qubits[132], qubits[133]; -ccx qubits[57], qubits[133], qubits[134]; -ccx qubits[58], qubits[134], qubits[135]; -ccx qubits[59], qubits[135], qubits[136]; -ccx qubits[60], qubits[136], qubits[137]; -ccx qubits[61], qubits[137], qubits[138]; -ccx qubits[62], qubits[138], qubits[139]; -ccx qubits[63], qubits[139], qubits[140]; -ccx qubits[64], qubits[140], qubits[141]; -ccx qubits[65], qubits[141], qubits[142]; -ccx qubits[66], qubits[142], qubits[143]; -ccx qubits[67], qubits[143], qubits[144]; -ccx qubits[68], qubits[144], qubits[145]; -ccx qubits[69], qubits[145], qubits[146]; -ccx qubits[70], qubits[146], qubits[147]; -ccx qubits[71], qubits[147], qubits[148]; -ccx qubits[72], qubits[148], qubits[149]; -ccx qubits[73], qubits[149], qubits[150]; -ccx qubits[74], qubits[150], qubits[151]; -ccx qubits[75], qubits[151], qubits[152]; -cz qubits[152], qubits[76]; -ccx qubits[75], qubits[151], qubits[152]; -ccx qubits[74], qubits[150], qubits[151]; -ccx qubits[73], qubits[149], qubits[150]; -ccx qubits[72], qubits[148], qubits[149]; -ccx qubits[71], qubits[147], qubits[148]; -ccx qubits[70], qubits[146], qubits[147]; -ccx qubits[69], qubits[145], qubits[146]; -ccx qubits[68], qubits[144], qubits[145]; -ccx qubits[67], qubits[143], qubits[144]; -ccx qubits[66], qubits[142], qubits[143]; -ccx qubits[65], qubits[141], qubits[142]; -ccx qubits[64], qubits[140], qubits[141]; -ccx qubits[63], qubits[139], qubits[140]; -ccx qubits[62], qubits[138], qubits[139]; -ccx qubits[61], qubits[137], qubits[138]; -ccx qubits[60], qubits[136], qubits[137]; -ccx qubits[59], qubits[135], qubits[136]; -ccx qubits[58], qubits[134], qubits[135]; -ccx qubits[57], qubits[133], qubits[134]; -ccx qubits[56], qubits[132], qubits[133]; -ccx qubits[55], qubits[131], qubits[132]; -ccx qubits[54], qubits[130], qubits[131]; -ccx qubits[53], qubits[129], qubits[130]; -ccx qubits[52], qubits[128], qubits[129]; -ccx qubits[51], qubits[127], qubits[128]; -ccx qubits[50], qubits[126], qubits[127]; -ccx qubits[49], qubits[125], qubits[126]; -ccx qubits[48], qubits[124], qubits[125]; -ccx qubits[47], qubits[123], qubits[124]; -ccx qubits[46], qubits[122], qubits[123]; -ccx qubits[45], qubits[121], qubits[122]; -ccx qubits[44], qubits[120], qubits[121]; -ccx qubits[43], qubits[119], qubits[120]; -ccx qubits[42], qubits[118], qubits[119]; -ccx qubits[41], qubits[117], qubits[118]; -ccx qubits[40], qubits[116], qubits[117]; -ccx qubits[39], qubits[115], qubits[116]; -ccx qubits[38], qubits[114], qubits[115]; -ccx qubits[37], qubits[113], qubits[114]; -ccx qubits[36], qubits[112], qubits[113]; -ccx qubits[35], qubits[111], qubits[112]; -ccx qubits[34], qubits[110], qubits[111]; -ccx qubits[33], qubits[109], qubits[110]; -ccx qubits[32], qubits[108], qubits[109]; -ccx qubits[31], qubits[107], qubits[108]; -ccx qubits[30], qubits[106], qubits[107]; -ccx qubits[29], qubits[105], qubits[106]; -ccx qubits[28], qubits[104], qubits[105]; -ccx qubits[27], qubits[103], qubits[104]; -ccx qubits[26], qubits[102], qubits[103]; -ccx qubits[25], qubits[101], qubits[102]; -ccx qubits[24], qubits[100], qubits[101]; -ccx qubits[23], qubits[99], qubits[100]; -ccx qubits[22], qubits[98], qubits[99]; -ccx qubits[21], qubits[97], qubits[98]; -ccx qubits[20], qubits[96], qubits[97]; -ccx qubits[19], qubits[95], qubits[96]; -ccx qubits[18], qubits[94], qubits[95]; -ccx qubits[17], qubits[93], qubits[94]; -ccx qubits[16], qubits[92], qubits[93]; -ccx qubits[15], qubits[91], qubits[92]; -ccx qubits[14], qubits[90], qubits[91]; -ccx qubits[13], qubits[89], qubits[90]; -ccx qubits[12], qubits[88], qubits[89]; -ccx qubits[11], qubits[87], qubits[88]; -ccx qubits[10], qubits[86], qubits[87]; -ccx qubits[9], qubits[85], qubits[86]; -ccx qubits[8], qubits[84], qubits[85]; -ccx qubits[7], qubits[83], qubits[84]; -ccx qubits[6], qubits[82], qubits[83]; -ccx qubits[5], qubits[81], qubits[82]; -ccx qubits[4], qubits[80], qubits[81]; -ccx qubits[3], qubits[79], qubits[80]; -ccx qubits[2], qubits[78], qubits[79]; -ccx qubits[0], qubits[1], qubits[78]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +cz qubits[150], qubits[151]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; +x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; -z qubits[77]; +h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +z qubits[152]; diff --git a/benchmarks/all/OEGrover/77/post.hsl b/benchmarks/all/OEGrover/77/post.hsl index 98d5e9e90..64d10ae34 100644 --- a/benchmarks/all/OEGrover/77/post.hsl +++ b/benchmarks/all/OEGrover/77/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 37 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/77/post.lsta b/benchmarks/all/OEGrover/77/post.lsta deleted file mode 100644 index 3b58f1dff..000000000 --- a/benchmarks/all/OEGrover/77/post.lsta +++ /dev/null @@ -1,392 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 156) -> 153 -[78,1](155, 157) -> 154 -[79,1](158, 158) -> 155 -[79,1](159, 158) -> 156 -[79,1](160, 158) -> 157 -[80,1](161, 161) -> 158 -[80,1](162, 161) -> 159 -[80,1](163, 161) -> 160 -[81,1](164, 164) -> 161 -[81,1](165, 164) -> 162 -[81,1](166, 164) -> 163 -[82,1](167, 167) -> 164 -[82,1](168, 167) -> 165 -[82,1](169, 167) -> 166 -[83,1](170, 170) -> 167 -[83,1](171, 170) -> 168 -[83,1](172, 170) -> 169 -[84,1](173, 173) -> 170 -[84,1](174, 173) -> 171 -[84,1](175, 173) -> 172 -[85,1](176, 176) -> 173 -[85,1](177, 176) -> 174 -[85,1](178, 176) -> 175 -[86,1](179, 179) -> 176 -[86,1](180, 179) -> 177 -[86,1](181, 179) -> 178 -[87,1](182, 182) -> 179 -[87,1](183, 182) -> 180 -[87,1](184, 182) -> 181 -[88,1](185, 185) -> 182 -[88,1](186, 185) -> 183 -[88,1](187, 185) -> 184 -[89,1](188, 188) -> 185 -[89,1](189, 188) -> 186 -[89,1](190, 188) -> 187 -[90,1](191, 191) -> 188 -[90,1](192, 191) -> 189 -[90,1](193, 191) -> 190 -[91,1](194, 194) -> 191 -[91,1](195, 194) -> 192 -[91,1](196, 194) -> 193 -[92,1](197, 197) -> 194 -[92,1](198, 197) -> 195 -[92,1](199, 197) -> 196 -[93,1](200, 200) -> 197 -[93,1](201, 200) -> 198 -[93,1](202, 200) -> 199 -[94,1](203, 203) -> 200 -[94,1](204, 203) -> 201 -[94,1](205, 203) -> 202 -[95,1](206, 206) -> 203 -[95,1](207, 206) -> 204 -[95,1](208, 206) -> 205 -[96,1](209, 209) -> 206 -[96,1](210, 209) -> 207 -[96,1](211, 209) -> 208 -[97,1](212, 212) -> 209 -[97,1](213, 212) -> 210 -[97,1](214, 212) -> 211 -[98,1](215, 215) -> 212 -[98,1](216, 215) -> 213 -[98,1](217, 215) -> 214 -[99,1](218, 218) -> 215 -[99,1](219, 218) -> 216 -[99,1](220, 218) -> 217 -[100,1](221, 221) -> 218 -[100,1](222, 221) -> 219 -[100,1](223, 221) -> 220 -[101,1](224, 224) -> 221 -[101,1](225, 224) -> 222 -[101,1](226, 224) -> 223 -[102,1](227, 227) -> 224 -[102,1](228, 227) -> 225 -[102,1](229, 227) -> 226 -[103,1](230, 230) -> 227 -[103,1](231, 230) -> 228 -[103,1](232, 230) -> 229 -[104,1](233, 233) -> 230 -[104,1](234, 233) -> 231 -[104,1](235, 233) -> 232 -[105,1](236, 236) -> 233 -[105,1](237, 236) -> 234 -[105,1](238, 236) -> 235 -[106,1](239, 239) -> 236 -[106,1](240, 239) -> 237 -[106,1](241, 239) -> 238 -[107,1](242, 242) -> 239 -[107,1](243, 242) -> 240 -[107,1](244, 242) -> 241 -[108,1](245, 245) -> 242 -[108,1](246, 245) -> 243 -[108,1](247, 245) -> 244 -[109,1](248, 248) -> 245 -[109,1](249, 248) -> 246 -[109,1](250, 248) -> 247 -[110,1](251, 251) -> 248 -[110,1](252, 251) -> 249 -[110,1](253, 251) -> 250 -[111,1](254, 254) -> 251 -[111,1](255, 254) -> 252 -[111,1](256, 254) -> 253 -[112,1](257, 257) -> 254 -[112,1](258, 257) -> 255 -[112,1](259, 257) -> 256 -[113,1](260, 260) -> 257 -[113,1](261, 260) -> 258 -[113,1](262, 260) -> 259 -[114,1](263, 263) -> 260 -[114,1](264, 263) -> 261 -[114,1](265, 263) -> 262 -[115,1](266, 266) -> 263 -[115,1](267, 266) -> 264 -[115,1](268, 266) -> 265 -[116,1](269, 269) -> 266 -[116,1](270, 269) -> 267 -[116,1](271, 269) -> 268 -[117,1](272, 272) -> 269 -[117,1](273, 272) -> 270 -[117,1](274, 272) -> 271 -[118,1](275, 275) -> 272 -[118,1](276, 275) -> 273 -[118,1](277, 275) -> 274 -[119,1](278, 278) -> 275 -[119,1](279, 278) -> 276 -[119,1](280, 278) -> 277 -[120,1](281, 281) -> 278 -[120,1](282, 281) -> 279 -[120,1](283, 281) -> 280 -[121,1](284, 284) -> 281 -[121,1](285, 284) -> 282 -[121,1](286, 284) -> 283 -[122,1](287, 287) -> 284 -[122,1](288, 287) -> 285 -[122,1](289, 287) -> 286 -[123,1](290, 290) -> 287 -[123,1](291, 290) -> 288 -[123,1](292, 290) -> 289 -[124,1](293, 293) -> 290 -[124,1](294, 293) -> 291 -[124,1](295, 293) -> 292 -[125,1](296, 296) -> 293 -[125,1](297, 296) -> 294 -[125,1](298, 296) -> 295 -[126,1](299, 299) -> 296 -[126,1](300, 299) -> 297 -[126,1](301, 299) -> 298 -[127,1](302, 302) -> 299 -[127,1](303, 302) -> 300 -[127,1](304, 302) -> 301 -[128,1](305, 305) -> 302 -[128,1](306, 305) -> 303 -[128,1](307, 305) -> 304 -[129,1](308, 308) -> 305 -[129,1](309, 308) -> 306 -[129,1](310, 308) -> 307 -[130,1](311, 311) -> 308 -[130,1](312, 311) -> 309 -[130,1](313, 311) -> 310 -[131,1](314, 314) -> 311 -[131,1](315, 314) -> 312 -[131,1](316, 314) -> 313 -[132,1](317, 317) -> 314 -[132,1](318, 317) -> 315 -[132,1](319, 317) -> 316 -[133,1](320, 320) -> 317 -[133,1](321, 320) -> 318 -[133,1](322, 320) -> 319 -[134,1](323, 323) -> 320 -[134,1](324, 323) -> 321 -[134,1](325, 323) -> 322 -[135,1](326, 326) -> 323 -[135,1](327, 326) -> 324 -[135,1](328, 326) -> 325 -[136,1](329, 329) -> 326 -[136,1](330, 329) -> 327 -[136,1](331, 329) -> 328 -[137,1](332, 332) -> 329 -[137,1](333, 332) -> 330 -[137,1](334, 332) -> 331 -[138,1](335, 335) -> 332 -[138,1](336, 335) -> 333 -[138,1](337, 335) -> 334 -[139,1](338, 338) -> 335 -[139,1](339, 338) -> 336 -[139,1](340, 338) -> 337 -[140,1](341, 341) -> 338 -[140,1](342, 341) -> 339 -[140,1](343, 341) -> 340 -[141,1](344, 344) -> 341 -[141,1](345, 344) -> 342 -[141,1](346, 344) -> 343 -[142,1](347, 347) -> 344 -[142,1](348, 347) -> 345 -[142,1](349, 347) -> 346 -[143,1](350, 350) -> 347 -[143,1](351, 350) -> 348 -[143,1](352, 350) -> 349 -[144,1](353, 353) -> 350 -[144,1](354, 353) -> 351 -[144,1](355, 353) -> 352 -[145,1](356, 356) -> 353 -[145,1](357, 356) -> 354 -[145,1](358, 356) -> 355 -[146,1](359, 359) -> 356 -[146,1](360, 359) -> 357 -[146,1](361, 359) -> 358 -[147,1](362, 362) -> 359 -[147,1](363, 362) -> 360 -[147,1](364, 362) -> 361 -[148,1](365, 365) -> 362 -[148,1](366, 365) -> 363 -[148,1](367, 365) -> 364 -[149,1](368, 368) -> 365 -[149,1](369, 368) -> 366 -[149,1](370, 368) -> 367 -[150,1](371, 371) -> 368 -[150,1](372, 371) -> 369 -[150,1](373, 371) -> 370 -[151,1](374, 374) -> 371 -[151,1](375, 374) -> 372 -[151,1](376, 374) -> 373 -[152,1](377, 377) -> 374 -[152,1](378, 377) -> 375 -[152,1](379, 377) -> 376 -[153,1](380, 380) -> 377 -[153,1](381, 380) -> 378 -[153,1](382, 380) -> 379 -[154,1](383, 383) -> 380 -[154,1](384, 383) -> 381 -[154,1](385, 383) -> 382 -[p1,1] -> 383 -[p2,1] -> 384 -[p3,1] -> 385 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/77/pre.hsl b/benchmarks/all/OEGrover/77/pre.hsl index c7114d7f0..21e1e4e5a 100644 --- a/benchmarks/all/OEGrover/77/pre.hsl +++ b/benchmarks/all/OEGrover/77/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 37 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 151115727451828646838271 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/77/pre.lsta b/benchmarks/all/OEGrover/77/pre.lsta deleted file mode 100644 index 0d1b0309a..000000000 --- a/benchmarks/all/OEGrover/77/pre.lsta +++ /dev/null @@ -1,396 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 156) -> 153 -[78,1](155, 157) -> 154 -[79,1](158, 158) -> 155 -[79,1](159, 158) -> 156 -[79,1](160, 158) -> 157 -[80,1](161, 161) -> 158 -[80,1](162, 161) -> 159 -[80,1](163, 161) -> 160 -[81,1](164, 164) -> 161 -[81,1](165, 164) -> 162 -[81,1](166, 164) -> 163 -[82,1](167, 167) -> 164 -[82,1](168, 167) -> 165 -[82,1](169, 167) -> 166 -[83,1](170, 170) -> 167 -[83,1](171, 170) -> 168 -[83,1](172, 170) -> 169 -[84,1](173, 173) -> 170 -[84,1](174, 173) -> 171 -[84,1](175, 173) -> 172 -[85,1](176, 176) -> 173 -[85,1](177, 176) -> 174 -[85,1](178, 176) -> 175 -[86,1](179, 179) -> 176 -[86,1](180, 179) -> 177 -[86,1](181, 179) -> 178 -[87,1](182, 182) -> 179 -[87,1](183, 182) -> 180 -[87,1](184, 182) -> 181 -[88,1](185, 185) -> 182 -[88,1](186, 185) -> 183 -[88,1](187, 185) -> 184 -[89,1](188, 188) -> 185 -[89,1](189, 188) -> 186 -[89,1](190, 188) -> 187 -[90,1](191, 191) -> 188 -[90,1](192, 191) -> 189 -[90,1](193, 191) -> 190 -[91,1](194, 194) -> 191 -[91,1](195, 194) -> 192 -[91,1](196, 194) -> 193 -[92,1](197, 197) -> 194 -[92,1](198, 197) -> 195 -[92,1](199, 197) -> 196 -[93,1](200, 200) -> 197 -[93,1](201, 200) -> 198 -[93,1](202, 200) -> 199 -[94,1](203, 203) -> 200 -[94,1](204, 203) -> 201 -[94,1](205, 203) -> 202 -[95,1](206, 206) -> 203 -[95,1](207, 206) -> 204 -[95,1](208, 206) -> 205 -[96,1](209, 209) -> 206 -[96,1](210, 209) -> 207 -[96,1](211, 209) -> 208 -[97,1](212, 212) -> 209 -[97,1](213, 212) -> 210 -[97,1](214, 212) -> 211 -[98,1](215, 215) -> 212 -[98,1](216, 215) -> 213 -[98,1](217, 215) -> 214 -[99,1](218, 218) -> 215 -[99,1](219, 218) -> 216 -[99,1](220, 218) -> 217 -[100,1](221, 221) -> 218 -[100,1](222, 221) -> 219 -[100,1](223, 221) -> 220 -[101,1](224, 224) -> 221 -[101,1](225, 224) -> 222 -[101,1](226, 224) -> 223 -[102,1](227, 227) -> 224 -[102,1](228, 227) -> 225 -[102,1](229, 227) -> 226 -[103,1](230, 230) -> 227 -[103,1](231, 230) -> 228 -[103,1](232, 230) -> 229 -[104,1](233, 233) -> 230 -[104,1](234, 233) -> 231 -[104,1](235, 233) -> 232 -[105,1](236, 236) -> 233 -[105,1](237, 236) -> 234 -[105,1](238, 236) -> 235 -[106,1](239, 239) -> 236 -[106,1](240, 239) -> 237 -[106,1](241, 239) -> 238 -[107,1](242, 242) -> 239 -[107,1](243, 242) -> 240 -[107,1](244, 242) -> 241 -[108,1](245, 245) -> 242 -[108,1](246, 245) -> 243 -[108,1](247, 245) -> 244 -[109,1](248, 248) -> 245 -[109,1](249, 248) -> 246 -[109,1](250, 248) -> 247 -[110,1](251, 251) -> 248 -[110,1](252, 251) -> 249 -[110,1](253, 251) -> 250 -[111,1](254, 254) -> 251 -[111,1](255, 254) -> 252 -[111,1](256, 254) -> 253 -[112,1](257, 257) -> 254 -[112,1](258, 257) -> 255 -[112,1](259, 257) -> 256 -[113,1](260, 260) -> 257 -[113,1](261, 260) -> 258 -[113,1](262, 260) -> 259 -[114,1](263, 263) -> 260 -[114,1](264, 263) -> 261 -[114,1](265, 263) -> 262 -[115,1](266, 266) -> 263 -[115,1](267, 266) -> 264 -[115,1](268, 266) -> 265 -[116,1](269, 269) -> 266 -[116,1](270, 269) -> 267 -[116,1](271, 269) -> 268 -[117,1](272, 272) -> 269 -[117,1](273, 272) -> 270 -[117,1](274, 272) -> 271 -[118,1](275, 275) -> 272 -[118,1](276, 275) -> 273 -[118,1](277, 275) -> 274 -[119,1](278, 278) -> 275 -[119,1](279, 278) -> 276 -[119,1](280, 278) -> 277 -[120,1](281, 281) -> 278 -[120,1](282, 281) -> 279 -[120,1](283, 281) -> 280 -[121,1](284, 284) -> 281 -[121,1](285, 284) -> 282 -[121,1](286, 284) -> 283 -[122,1](287, 287) -> 284 -[122,1](288, 287) -> 285 -[122,1](289, 287) -> 286 -[123,1](290, 290) -> 287 -[123,1](291, 290) -> 288 -[123,1](292, 290) -> 289 -[124,1](293, 293) -> 290 -[124,1](294, 293) -> 291 -[124,1](295, 293) -> 292 -[125,1](296, 296) -> 293 -[125,1](297, 296) -> 294 -[125,1](298, 296) -> 295 -[126,1](299, 299) -> 296 -[126,1](300, 299) -> 297 -[126,1](301, 299) -> 298 -[127,1](302, 302) -> 299 -[127,1](303, 302) -> 300 -[127,1](304, 302) -> 301 -[128,1](305, 305) -> 302 -[128,1](306, 305) -> 303 -[128,1](307, 305) -> 304 -[129,1](308, 308) -> 305 -[129,1](309, 308) -> 306 -[129,1](310, 308) -> 307 -[130,1](311, 311) -> 308 -[130,1](312, 311) -> 309 -[130,1](313, 311) -> 310 -[131,1](314, 314) -> 311 -[131,1](315, 314) -> 312 -[131,1](316, 314) -> 313 -[132,1](317, 317) -> 314 -[132,1](318, 317) -> 315 -[132,1](319, 317) -> 316 -[133,1](320, 320) -> 317 -[133,1](321, 320) -> 318 -[133,1](322, 320) -> 319 -[134,1](323, 323) -> 320 -[134,1](324, 323) -> 321 -[134,1](325, 323) -> 322 -[135,1](326, 326) -> 323 -[135,1](327, 326) -> 324 -[135,1](328, 326) -> 325 -[136,1](329, 329) -> 326 -[136,1](330, 329) -> 327 -[136,1](331, 329) -> 328 -[137,1](332, 332) -> 329 -[137,1](333, 332) -> 330 -[137,1](334, 332) -> 331 -[138,1](335, 335) -> 332 -[138,1](336, 335) -> 333 -[138,1](337, 335) -> 334 -[139,1](338, 338) -> 335 -[139,1](339, 338) -> 336 -[139,1](340, 338) -> 337 -[140,1](341, 341) -> 338 -[140,1](342, 341) -> 339 -[140,1](343, 341) -> 340 -[141,1](344, 344) -> 341 -[141,1](345, 344) -> 342 -[141,1](346, 344) -> 343 -[142,1](347, 347) -> 344 -[142,1](348, 347) -> 345 -[142,1](349, 347) -> 346 -[143,1](350, 350) -> 347 -[143,1](351, 350) -> 348 -[143,1](352, 350) -> 349 -[144,1](353, 353) -> 350 -[144,1](354, 353) -> 351 -[144,1](355, 353) -> 352 -[145,1](356, 356) -> 353 -[145,1](357, 356) -> 354 -[145,1](358, 356) -> 355 -[146,1](359, 359) -> 356 -[146,1](360, 359) -> 357 -[146,1](361, 359) -> 358 -[147,1](362, 362) -> 359 -[147,1](363, 362) -> 360 -[147,1](364, 362) -> 361 -[148,1](365, 365) -> 362 -[148,1](366, 365) -> 363 -[148,1](367, 365) -> 364 -[149,1](368, 368) -> 365 -[149,1](369, 368) -> 366 -[149,1](370, 368) -> 367 -[150,1](371, 371) -> 368 -[150,1](372, 371) -> 369 -[150,1](373, 371) -> 370 -[151,1](374, 374) -> 371 -[151,1](375, 374) -> 372 -[151,1](376, 374) -> 373 -[152,1](377, 377) -> 374 -[152,1](378, 377) -> 375 -[152,1](379, 377) -> 376 -[153,1](380, 380) -> 377 -[153,1](381, 380) -> 378 -[153,1](382, 380) -> 379 -[154,1](383, 383) -> 380 -[154,1](384, 383) -> 381 -[154,1](385, 383) -> 382 -[c0,1] -> 383 -[a,1] -> 384 -[b,1] -> 385 -Constraints -151115727451828646838271 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/78/circuit.qasm b/benchmarks/all/OEGrover/78/circuit.qasm index 6495750d1..6af7676b5 100644 --- a/benchmarks/all/OEGrover/78/circuit.qasm +++ b/benchmarks/all/OEGrover/78/circuit.qasm @@ -1,199 +1,199 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[156]; +qreg qubits[155]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -ccx qubits[0], qubits[1], qubits[79]; -ccx qubits[2], qubits[79], qubits[80]; -ccx qubits[3], qubits[80], qubits[81]; -ccx qubits[4], qubits[81], qubits[82]; -ccx qubits[5], qubits[82], qubits[83]; -ccx qubits[6], qubits[83], qubits[84]; -ccx qubits[7], qubits[84], qubits[85]; -ccx qubits[8], qubits[85], qubits[86]; -ccx qubits[9], qubits[86], qubits[87]; -ccx qubits[10], qubits[87], qubits[88]; -ccx qubits[11], qubits[88], qubits[89]; -ccx qubits[12], qubits[89], qubits[90]; -ccx qubits[13], qubits[90], qubits[91]; -ccx qubits[14], qubits[91], qubits[92]; -ccx qubits[15], qubits[92], qubits[93]; -ccx qubits[16], qubits[93], qubits[94]; -ccx qubits[17], qubits[94], qubits[95]; -ccx qubits[18], qubits[95], qubits[96]; -ccx qubits[19], qubits[96], qubits[97]; -ccx qubits[20], qubits[97], qubits[98]; -ccx qubits[21], qubits[98], qubits[99]; -ccx qubits[22], qubits[99], qubits[100]; -ccx qubits[23], qubits[100], qubits[101]; -ccx qubits[24], qubits[101], qubits[102]; -ccx qubits[25], qubits[102], qubits[103]; -ccx qubits[26], qubits[103], qubits[104]; -ccx qubits[27], qubits[104], qubits[105]; -ccx qubits[28], qubits[105], qubits[106]; -ccx qubits[29], qubits[106], qubits[107]; -ccx qubits[30], qubits[107], qubits[108]; -ccx qubits[31], qubits[108], qubits[109]; -ccx qubits[32], qubits[109], qubits[110]; -ccx qubits[33], qubits[110], qubits[111]; -ccx qubits[34], qubits[111], qubits[112]; -ccx qubits[35], qubits[112], qubits[113]; -ccx qubits[36], qubits[113], qubits[114]; -ccx qubits[37], qubits[114], qubits[115]; -ccx qubits[38], qubits[115], qubits[116]; -ccx qubits[39], qubits[116], qubits[117]; -ccx qubits[40], qubits[117], qubits[118]; -ccx qubits[41], qubits[118], qubits[119]; -ccx qubits[42], qubits[119], qubits[120]; -ccx qubits[43], qubits[120], qubits[121]; -ccx qubits[44], qubits[121], qubits[122]; -ccx qubits[45], qubits[122], qubits[123]; -ccx qubits[46], qubits[123], qubits[124]; -ccx qubits[47], qubits[124], qubits[125]; -ccx qubits[48], qubits[125], qubits[126]; -ccx qubits[49], qubits[126], qubits[127]; -ccx qubits[50], qubits[127], qubits[128]; -ccx qubits[51], qubits[128], qubits[129]; -ccx qubits[52], qubits[129], qubits[130]; -ccx qubits[53], qubits[130], qubits[131]; -ccx qubits[54], qubits[131], qubits[132]; -ccx qubits[55], qubits[132], qubits[133]; -ccx qubits[56], qubits[133], qubits[134]; -ccx qubits[57], qubits[134], qubits[135]; -ccx qubits[58], qubits[135], qubits[136]; -ccx qubits[59], qubits[136], qubits[137]; -ccx qubits[60], qubits[137], qubits[138]; -ccx qubits[61], qubits[138], qubits[139]; -ccx qubits[62], qubits[139], qubits[140]; -ccx qubits[63], qubits[140], qubits[141]; -ccx qubits[64], qubits[141], qubits[142]; -ccx qubits[65], qubits[142], qubits[143]; -ccx qubits[66], qubits[143], qubits[144]; -ccx qubits[67], qubits[144], qubits[145]; -ccx qubits[68], qubits[145], qubits[146]; -ccx qubits[69], qubits[146], qubits[147]; -ccx qubits[70], qubits[147], qubits[148]; -ccx qubits[71], qubits[148], qubits[149]; -ccx qubits[72], qubits[149], qubits[150]; -ccx qubits[73], qubits[150], qubits[151]; -ccx qubits[74], qubits[151], qubits[152]; -ccx qubits[75], qubits[152], qubits[153]; -ccx qubits[76], qubits[153], qubits[154]; -cz qubits[154], qubits[77]; -ccx qubits[76], qubits[153], qubits[154]; -ccx qubits[75], qubits[152], qubits[153]; -ccx qubits[74], qubits[151], qubits[152]; -ccx qubits[73], qubits[150], qubits[151]; -ccx qubits[72], qubits[149], qubits[150]; -ccx qubits[71], qubits[148], qubits[149]; -ccx qubits[70], qubits[147], qubits[148]; -ccx qubits[69], qubits[146], qubits[147]; -ccx qubits[68], qubits[145], qubits[146]; -ccx qubits[67], qubits[144], qubits[145]; -ccx qubits[66], qubits[143], qubits[144]; -ccx qubits[65], qubits[142], qubits[143]; -ccx qubits[64], qubits[141], qubits[142]; -ccx qubits[63], qubits[140], qubits[141]; -ccx qubits[62], qubits[139], qubits[140]; -ccx qubits[61], qubits[138], qubits[139]; -ccx qubits[60], qubits[137], qubits[138]; -ccx qubits[59], qubits[136], qubits[137]; -ccx qubits[58], qubits[135], qubits[136]; -ccx qubits[57], qubits[134], qubits[135]; -ccx qubits[56], qubits[133], qubits[134]; -ccx qubits[55], qubits[132], qubits[133]; -ccx qubits[54], qubits[131], qubits[132]; -ccx qubits[53], qubits[130], qubits[131]; -ccx qubits[52], qubits[129], qubits[130]; -ccx qubits[51], qubits[128], qubits[129]; -ccx qubits[50], qubits[127], qubits[128]; -ccx qubits[49], qubits[126], qubits[127]; -ccx qubits[48], qubits[125], qubits[126]; -ccx qubits[47], qubits[124], qubits[125]; -ccx qubits[46], qubits[123], qubits[124]; -ccx qubits[45], qubits[122], qubits[123]; -ccx qubits[44], qubits[121], qubits[122]; -ccx qubits[43], qubits[120], qubits[121]; -ccx qubits[42], qubits[119], qubits[120]; -ccx qubits[41], qubits[118], qubits[119]; -ccx qubits[40], qubits[117], qubits[118]; -ccx qubits[39], qubits[116], qubits[117]; -ccx qubits[38], qubits[115], qubits[116]; -ccx qubits[37], qubits[114], qubits[115]; -ccx qubits[36], qubits[113], qubits[114]; -ccx qubits[35], qubits[112], qubits[113]; -ccx qubits[34], qubits[111], qubits[112]; -ccx qubits[33], qubits[110], qubits[111]; -ccx qubits[32], qubits[109], qubits[110]; -ccx qubits[31], qubits[108], qubits[109]; -ccx qubits[30], qubits[107], qubits[108]; -ccx qubits[29], qubits[106], qubits[107]; -ccx qubits[28], qubits[105], qubits[106]; -ccx qubits[27], qubits[104], qubits[105]; -ccx qubits[26], qubits[103], qubits[104]; -ccx qubits[25], qubits[102], qubits[103]; -ccx qubits[24], qubits[101], qubits[102]; -ccx qubits[23], qubits[100], qubits[101]; -ccx qubits[22], qubits[99], qubits[100]; -ccx qubits[21], qubits[98], qubits[99]; -ccx qubits[20], qubits[97], qubits[98]; -ccx qubits[19], qubits[96], qubits[97]; -ccx qubits[18], qubits[95], qubits[96]; -ccx qubits[17], qubits[94], qubits[95]; -ccx qubits[16], qubits[93], qubits[94]; -ccx qubits[15], qubits[92], qubits[93]; -ccx qubits[14], qubits[91], qubits[92]; -ccx qubits[13], qubits[90], qubits[91]; -ccx qubits[12], qubits[89], qubits[90]; -ccx qubits[11], qubits[88], qubits[89]; -ccx qubits[10], qubits[87], qubits[88]; -ccx qubits[9], qubits[86], qubits[87]; -ccx qubits[8], qubits[85], qubits[86]; -ccx qubits[7], qubits[84], qubits[85]; -ccx qubits[6], qubits[83], qubits[84]; -ccx qubits[5], qubits[82], qubits[83]; -ccx qubits[4], qubits[81], qubits[82]; -ccx qubits[3], qubits[80], qubits[81]; -ccx qubits[2], qubits[79], qubits[80]; -ccx qubits[0], qubits[1], qubits[79]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +cz qubits[152], qubits[153]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -235,467 +235,467 @@ x qubits[74]; x qubits[76]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -ccx qubits[0], qubits[1], qubits[79]; -ccx qubits[2], qubits[79], qubits[80]; -ccx qubits[3], qubits[80], qubits[81]; -ccx qubits[4], qubits[81], qubits[82]; -ccx qubits[5], qubits[82], qubits[83]; -ccx qubits[6], qubits[83], qubits[84]; -ccx qubits[7], qubits[84], qubits[85]; -ccx qubits[8], qubits[85], qubits[86]; -ccx qubits[9], qubits[86], qubits[87]; -ccx qubits[10], qubits[87], qubits[88]; -ccx qubits[11], qubits[88], qubits[89]; -ccx qubits[12], qubits[89], qubits[90]; -ccx qubits[13], qubits[90], qubits[91]; -ccx qubits[14], qubits[91], qubits[92]; -ccx qubits[15], qubits[92], qubits[93]; -ccx qubits[16], qubits[93], qubits[94]; -ccx qubits[17], qubits[94], qubits[95]; -ccx qubits[18], qubits[95], qubits[96]; -ccx qubits[19], qubits[96], qubits[97]; -ccx qubits[20], qubits[97], qubits[98]; -ccx qubits[21], qubits[98], qubits[99]; -ccx qubits[22], qubits[99], qubits[100]; -ccx qubits[23], qubits[100], qubits[101]; -ccx qubits[24], qubits[101], qubits[102]; -ccx qubits[25], qubits[102], qubits[103]; -ccx qubits[26], qubits[103], qubits[104]; -ccx qubits[27], qubits[104], qubits[105]; -ccx qubits[28], qubits[105], qubits[106]; -ccx qubits[29], qubits[106], qubits[107]; -ccx qubits[30], qubits[107], qubits[108]; -ccx qubits[31], qubits[108], qubits[109]; -ccx qubits[32], qubits[109], qubits[110]; -ccx qubits[33], qubits[110], qubits[111]; -ccx qubits[34], qubits[111], qubits[112]; -ccx qubits[35], qubits[112], qubits[113]; -ccx qubits[36], qubits[113], qubits[114]; -ccx qubits[37], qubits[114], qubits[115]; -ccx qubits[38], qubits[115], qubits[116]; -ccx qubits[39], qubits[116], qubits[117]; -ccx qubits[40], qubits[117], qubits[118]; -ccx qubits[41], qubits[118], qubits[119]; -ccx qubits[42], qubits[119], qubits[120]; -ccx qubits[43], qubits[120], qubits[121]; -ccx qubits[44], qubits[121], qubits[122]; -ccx qubits[45], qubits[122], qubits[123]; -ccx qubits[46], qubits[123], qubits[124]; -ccx qubits[47], qubits[124], qubits[125]; -ccx qubits[48], qubits[125], qubits[126]; -ccx qubits[49], qubits[126], qubits[127]; -ccx qubits[50], qubits[127], qubits[128]; -ccx qubits[51], qubits[128], qubits[129]; -ccx qubits[52], qubits[129], qubits[130]; -ccx qubits[53], qubits[130], qubits[131]; -ccx qubits[54], qubits[131], qubits[132]; -ccx qubits[55], qubits[132], qubits[133]; -ccx qubits[56], qubits[133], qubits[134]; -ccx qubits[57], qubits[134], qubits[135]; -ccx qubits[58], qubits[135], qubits[136]; -ccx qubits[59], qubits[136], qubits[137]; -ccx qubits[60], qubits[137], qubits[138]; -ccx qubits[61], qubits[138], qubits[139]; -ccx qubits[62], qubits[139], qubits[140]; -ccx qubits[63], qubits[140], qubits[141]; -ccx qubits[64], qubits[141], qubits[142]; -ccx qubits[65], qubits[142], qubits[143]; -ccx qubits[66], qubits[143], qubits[144]; -ccx qubits[67], qubits[144], qubits[145]; -ccx qubits[68], qubits[145], qubits[146]; -ccx qubits[69], qubits[146], qubits[147]; -ccx qubits[70], qubits[147], qubits[148]; -ccx qubits[71], qubits[148], qubits[149]; -ccx qubits[72], qubits[149], qubits[150]; -ccx qubits[73], qubits[150], qubits[151]; -ccx qubits[74], qubits[151], qubits[152]; -ccx qubits[75], qubits[152], qubits[153]; -ccx qubits[76], qubits[153], qubits[154]; -cz qubits[154], qubits[77]; -ccx qubits[76], qubits[153], qubits[154]; -ccx qubits[75], qubits[152], qubits[153]; -ccx qubits[74], qubits[151], qubits[152]; -ccx qubits[73], qubits[150], qubits[151]; -ccx qubits[72], qubits[149], qubits[150]; -ccx qubits[71], qubits[148], qubits[149]; -ccx qubits[70], qubits[147], qubits[148]; -ccx qubits[69], qubits[146], qubits[147]; -ccx qubits[68], qubits[145], qubits[146]; -ccx qubits[67], qubits[144], qubits[145]; -ccx qubits[66], qubits[143], qubits[144]; -ccx qubits[65], qubits[142], qubits[143]; -ccx qubits[64], qubits[141], qubits[142]; -ccx qubits[63], qubits[140], qubits[141]; -ccx qubits[62], qubits[139], qubits[140]; -ccx qubits[61], qubits[138], qubits[139]; -ccx qubits[60], qubits[137], qubits[138]; -ccx qubits[59], qubits[136], qubits[137]; -ccx qubits[58], qubits[135], qubits[136]; -ccx qubits[57], qubits[134], qubits[135]; -ccx qubits[56], qubits[133], qubits[134]; -ccx qubits[55], qubits[132], qubits[133]; -ccx qubits[54], qubits[131], qubits[132]; -ccx qubits[53], qubits[130], qubits[131]; -ccx qubits[52], qubits[129], qubits[130]; -ccx qubits[51], qubits[128], qubits[129]; -ccx qubits[50], qubits[127], qubits[128]; -ccx qubits[49], qubits[126], qubits[127]; -ccx qubits[48], qubits[125], qubits[126]; -ccx qubits[47], qubits[124], qubits[125]; -ccx qubits[46], qubits[123], qubits[124]; -ccx qubits[45], qubits[122], qubits[123]; -ccx qubits[44], qubits[121], qubits[122]; -ccx qubits[43], qubits[120], qubits[121]; -ccx qubits[42], qubits[119], qubits[120]; -ccx qubits[41], qubits[118], qubits[119]; -ccx qubits[40], qubits[117], qubits[118]; -ccx qubits[39], qubits[116], qubits[117]; -ccx qubits[38], qubits[115], qubits[116]; -ccx qubits[37], qubits[114], qubits[115]; -ccx qubits[36], qubits[113], qubits[114]; -ccx qubits[35], qubits[112], qubits[113]; -ccx qubits[34], qubits[111], qubits[112]; -ccx qubits[33], qubits[110], qubits[111]; -ccx qubits[32], qubits[109], qubits[110]; -ccx qubits[31], qubits[108], qubits[109]; -ccx qubits[30], qubits[107], qubits[108]; -ccx qubits[29], qubits[106], qubits[107]; -ccx qubits[28], qubits[105], qubits[106]; -ccx qubits[27], qubits[104], qubits[105]; -ccx qubits[26], qubits[103], qubits[104]; -ccx qubits[25], qubits[102], qubits[103]; -ccx qubits[24], qubits[101], qubits[102]; -ccx qubits[23], qubits[100], qubits[101]; -ccx qubits[22], qubits[99], qubits[100]; -ccx qubits[21], qubits[98], qubits[99]; -ccx qubits[20], qubits[97], qubits[98]; -ccx qubits[19], qubits[96], qubits[97]; -ccx qubits[18], qubits[95], qubits[96]; -ccx qubits[17], qubits[94], qubits[95]; -ccx qubits[16], qubits[93], qubits[94]; -ccx qubits[15], qubits[92], qubits[93]; -ccx qubits[14], qubits[91], qubits[92]; -ccx qubits[13], qubits[90], qubits[91]; -ccx qubits[12], qubits[89], qubits[90]; -ccx qubits[11], qubits[88], qubits[89]; -ccx qubits[10], qubits[87], qubits[88]; -ccx qubits[9], qubits[86], qubits[87]; -ccx qubits[8], qubits[85], qubits[86]; -ccx qubits[7], qubits[84], qubits[85]; -ccx qubits[6], qubits[83], qubits[84]; -ccx qubits[5], qubits[82], qubits[83]; -ccx qubits[4], qubits[81], qubits[82]; -ccx qubits[3], qubits[80], qubits[81]; -ccx qubits[2], qubits[79], qubits[80]; -ccx qubits[0], qubits[1], qubits[79]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +cz qubits[152], qubits[153]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -z qubits[78]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +z qubits[154]; diff --git a/benchmarks/all/OEGrover/78/post.hsl b/benchmarks/all/OEGrover/78/post.hsl index fd36b1de0..7bb92cc6d 100644 --- a/benchmarks/all/OEGrover/78/post.hsl +++ b/benchmarks/all/OEGrover/78/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010101100000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 38 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/78/post.lsta b/benchmarks/all/OEGrover/78/post.lsta deleted file mode 100644 index bb4887e92..000000000 --- a/benchmarks/all/OEGrover/78/post.lsta +++ /dev/null @@ -1,397 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 158) -> 155 -[79,1](157, 159) -> 156 -[80,1](160, 160) -> 157 -[80,1](161, 160) -> 158 -[80,1](162, 160) -> 159 -[81,1](163, 163) -> 160 -[81,1](164, 163) -> 161 -[81,1](165, 163) -> 162 -[82,1](166, 166) -> 163 -[82,1](167, 166) -> 164 -[82,1](168, 166) -> 165 -[83,1](169, 169) -> 166 -[83,1](170, 169) -> 167 -[83,1](171, 169) -> 168 -[84,1](172, 172) -> 169 -[84,1](173, 172) -> 170 -[84,1](174, 172) -> 171 -[85,1](175, 175) -> 172 -[85,1](176, 175) -> 173 -[85,1](177, 175) -> 174 -[86,1](178, 178) -> 175 -[86,1](179, 178) -> 176 -[86,1](180, 178) -> 177 -[87,1](181, 181) -> 178 -[87,1](182, 181) -> 179 -[87,1](183, 181) -> 180 -[88,1](184, 184) -> 181 -[88,1](185, 184) -> 182 -[88,1](186, 184) -> 183 -[89,1](187, 187) -> 184 -[89,1](188, 187) -> 185 -[89,1](189, 187) -> 186 -[90,1](190, 190) -> 187 -[90,1](191, 190) -> 188 -[90,1](192, 190) -> 189 -[91,1](193, 193) -> 190 -[91,1](194, 193) -> 191 -[91,1](195, 193) -> 192 -[92,1](196, 196) -> 193 -[92,1](197, 196) -> 194 -[92,1](198, 196) -> 195 -[93,1](199, 199) -> 196 -[93,1](200, 199) -> 197 -[93,1](201, 199) -> 198 -[94,1](202, 202) -> 199 -[94,1](203, 202) -> 200 -[94,1](204, 202) -> 201 -[95,1](205, 205) -> 202 -[95,1](206, 205) -> 203 -[95,1](207, 205) -> 204 -[96,1](208, 208) -> 205 -[96,1](209, 208) -> 206 -[96,1](210, 208) -> 207 -[97,1](211, 211) -> 208 -[97,1](212, 211) -> 209 -[97,1](213, 211) -> 210 -[98,1](214, 214) -> 211 -[98,1](215, 214) -> 212 -[98,1](216, 214) -> 213 -[99,1](217, 217) -> 214 -[99,1](218, 217) -> 215 -[99,1](219, 217) -> 216 -[100,1](220, 220) -> 217 -[100,1](221, 220) -> 218 -[100,1](222, 220) -> 219 -[101,1](223, 223) -> 220 -[101,1](224, 223) -> 221 -[101,1](225, 223) -> 222 -[102,1](226, 226) -> 223 -[102,1](227, 226) -> 224 -[102,1](228, 226) -> 225 -[103,1](229, 229) -> 226 -[103,1](230, 229) -> 227 -[103,1](231, 229) -> 228 -[104,1](232, 232) -> 229 -[104,1](233, 232) -> 230 -[104,1](234, 232) -> 231 -[105,1](235, 235) -> 232 -[105,1](236, 235) -> 233 -[105,1](237, 235) -> 234 -[106,1](238, 238) -> 235 -[106,1](239, 238) -> 236 -[106,1](240, 238) -> 237 -[107,1](241, 241) -> 238 -[107,1](242, 241) -> 239 -[107,1](243, 241) -> 240 -[108,1](244, 244) -> 241 -[108,1](245, 244) -> 242 -[108,1](246, 244) -> 243 -[109,1](247, 247) -> 244 -[109,1](248, 247) -> 245 -[109,1](249, 247) -> 246 -[110,1](250, 250) -> 247 -[110,1](251, 250) -> 248 -[110,1](252, 250) -> 249 -[111,1](253, 253) -> 250 -[111,1](254, 253) -> 251 -[111,1](255, 253) -> 252 -[112,1](256, 256) -> 253 -[112,1](257, 256) -> 254 -[112,1](258, 256) -> 255 -[113,1](259, 259) -> 256 -[113,1](260, 259) -> 257 -[113,1](261, 259) -> 258 -[114,1](262, 262) -> 259 -[114,1](263, 262) -> 260 -[114,1](264, 262) -> 261 -[115,1](265, 265) -> 262 -[115,1](266, 265) -> 263 -[115,1](267, 265) -> 264 -[116,1](268, 268) -> 265 -[116,1](269, 268) -> 266 -[116,1](270, 268) -> 267 -[117,1](271, 271) -> 268 -[117,1](272, 271) -> 269 -[117,1](273, 271) -> 270 -[118,1](274, 274) -> 271 -[118,1](275, 274) -> 272 -[118,1](276, 274) -> 273 -[119,1](277, 277) -> 274 -[119,1](278, 277) -> 275 -[119,1](279, 277) -> 276 -[120,1](280, 280) -> 277 -[120,1](281, 280) -> 278 -[120,1](282, 280) -> 279 -[121,1](283, 283) -> 280 -[121,1](284, 283) -> 281 -[121,1](285, 283) -> 282 -[122,1](286, 286) -> 283 -[122,1](287, 286) -> 284 -[122,1](288, 286) -> 285 -[123,1](289, 289) -> 286 -[123,1](290, 289) -> 287 -[123,1](291, 289) -> 288 -[124,1](292, 292) -> 289 -[124,1](293, 292) -> 290 -[124,1](294, 292) -> 291 -[125,1](295, 295) -> 292 -[125,1](296, 295) -> 293 -[125,1](297, 295) -> 294 -[126,1](298, 298) -> 295 -[126,1](299, 298) -> 296 -[126,1](300, 298) -> 297 -[127,1](301, 301) -> 298 -[127,1](302, 301) -> 299 -[127,1](303, 301) -> 300 -[128,1](304, 304) -> 301 -[128,1](305, 304) -> 302 -[128,1](306, 304) -> 303 -[129,1](307, 307) -> 304 -[129,1](308, 307) -> 305 -[129,1](309, 307) -> 306 -[130,1](310, 310) -> 307 -[130,1](311, 310) -> 308 -[130,1](312, 310) -> 309 -[131,1](313, 313) -> 310 -[131,1](314, 313) -> 311 -[131,1](315, 313) -> 312 -[132,1](316, 316) -> 313 -[132,1](317, 316) -> 314 -[132,1](318, 316) -> 315 -[133,1](319, 319) -> 316 -[133,1](320, 319) -> 317 -[133,1](321, 319) -> 318 -[134,1](322, 322) -> 319 -[134,1](323, 322) -> 320 -[134,1](324, 322) -> 321 -[135,1](325, 325) -> 322 -[135,1](326, 325) -> 323 -[135,1](327, 325) -> 324 -[136,1](328, 328) -> 325 -[136,1](329, 328) -> 326 -[136,1](330, 328) -> 327 -[137,1](331, 331) -> 328 -[137,1](332, 331) -> 329 -[137,1](333, 331) -> 330 -[138,1](334, 334) -> 331 -[138,1](335, 334) -> 332 -[138,1](336, 334) -> 333 -[139,1](337, 337) -> 334 -[139,1](338, 337) -> 335 -[139,1](339, 337) -> 336 -[140,1](340, 340) -> 337 -[140,1](341, 340) -> 338 -[140,1](342, 340) -> 339 -[141,1](343, 343) -> 340 -[141,1](344, 343) -> 341 -[141,1](345, 343) -> 342 -[142,1](346, 346) -> 343 -[142,1](347, 346) -> 344 -[142,1](348, 346) -> 345 -[143,1](349, 349) -> 346 -[143,1](350, 349) -> 347 -[143,1](351, 349) -> 348 -[144,1](352, 352) -> 349 -[144,1](353, 352) -> 350 -[144,1](354, 352) -> 351 -[145,1](355, 355) -> 352 -[145,1](356, 355) -> 353 -[145,1](357, 355) -> 354 -[146,1](358, 358) -> 355 -[146,1](359, 358) -> 356 -[146,1](360, 358) -> 357 -[147,1](361, 361) -> 358 -[147,1](362, 361) -> 359 -[147,1](363, 361) -> 360 -[148,1](364, 364) -> 361 -[148,1](365, 364) -> 362 -[148,1](366, 364) -> 363 -[149,1](367, 367) -> 364 -[149,1](368, 367) -> 365 -[149,1](369, 367) -> 366 -[150,1](370, 370) -> 367 -[150,1](371, 370) -> 368 -[150,1](372, 370) -> 369 -[151,1](373, 373) -> 370 -[151,1](374, 373) -> 371 -[151,1](375, 373) -> 372 -[152,1](376, 376) -> 373 -[152,1](377, 376) -> 374 -[152,1](378, 376) -> 375 -[153,1](379, 379) -> 376 -[153,1](380, 379) -> 377 -[153,1](381, 379) -> 378 -[154,1](382, 382) -> 379 -[154,1](383, 382) -> 380 -[154,1](384, 382) -> 381 -[155,1](385, 385) -> 382 -[155,1](386, 385) -> 383 -[155,1](387, 385) -> 384 -[156,1](388, 388) -> 385 -[156,1](389, 388) -> 386 -[156,1](390, 388) -> 387 -[p1,1] -> 388 -[p2,1] -> 389 -[p3,1] -> 390 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/78/pre.hsl b/benchmarks/all/OEGrover/78/pre.hsl index ace36d533..1e964c66d 100644 --- a/benchmarks/all/OEGrover/78/pre.hsl +++ b/benchmarks/all/OEGrover/78/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 38 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 302231454903657293676543 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/78/pre.lsta b/benchmarks/all/OEGrover/78/pre.lsta deleted file mode 100644 index 700777598..000000000 --- a/benchmarks/all/OEGrover/78/pre.lsta +++ /dev/null @@ -1,401 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 158) -> 155 -[79,1](157, 159) -> 156 -[80,1](160, 160) -> 157 -[80,1](161, 160) -> 158 -[80,1](162, 160) -> 159 -[81,1](163, 163) -> 160 -[81,1](164, 163) -> 161 -[81,1](165, 163) -> 162 -[82,1](166, 166) -> 163 -[82,1](167, 166) -> 164 -[82,1](168, 166) -> 165 -[83,1](169, 169) -> 166 -[83,1](170, 169) -> 167 -[83,1](171, 169) -> 168 -[84,1](172, 172) -> 169 -[84,1](173, 172) -> 170 -[84,1](174, 172) -> 171 -[85,1](175, 175) -> 172 -[85,1](176, 175) -> 173 -[85,1](177, 175) -> 174 -[86,1](178, 178) -> 175 -[86,1](179, 178) -> 176 -[86,1](180, 178) -> 177 -[87,1](181, 181) -> 178 -[87,1](182, 181) -> 179 -[87,1](183, 181) -> 180 -[88,1](184, 184) -> 181 -[88,1](185, 184) -> 182 -[88,1](186, 184) -> 183 -[89,1](187, 187) -> 184 -[89,1](188, 187) -> 185 -[89,1](189, 187) -> 186 -[90,1](190, 190) -> 187 -[90,1](191, 190) -> 188 -[90,1](192, 190) -> 189 -[91,1](193, 193) -> 190 -[91,1](194, 193) -> 191 -[91,1](195, 193) -> 192 -[92,1](196, 196) -> 193 -[92,1](197, 196) -> 194 -[92,1](198, 196) -> 195 -[93,1](199, 199) -> 196 -[93,1](200, 199) -> 197 -[93,1](201, 199) -> 198 -[94,1](202, 202) -> 199 -[94,1](203, 202) -> 200 -[94,1](204, 202) -> 201 -[95,1](205, 205) -> 202 -[95,1](206, 205) -> 203 -[95,1](207, 205) -> 204 -[96,1](208, 208) -> 205 -[96,1](209, 208) -> 206 -[96,1](210, 208) -> 207 -[97,1](211, 211) -> 208 -[97,1](212, 211) -> 209 -[97,1](213, 211) -> 210 -[98,1](214, 214) -> 211 -[98,1](215, 214) -> 212 -[98,1](216, 214) -> 213 -[99,1](217, 217) -> 214 -[99,1](218, 217) -> 215 -[99,1](219, 217) -> 216 -[100,1](220, 220) -> 217 -[100,1](221, 220) -> 218 -[100,1](222, 220) -> 219 -[101,1](223, 223) -> 220 -[101,1](224, 223) -> 221 -[101,1](225, 223) -> 222 -[102,1](226, 226) -> 223 -[102,1](227, 226) -> 224 -[102,1](228, 226) -> 225 -[103,1](229, 229) -> 226 -[103,1](230, 229) -> 227 -[103,1](231, 229) -> 228 -[104,1](232, 232) -> 229 -[104,1](233, 232) -> 230 -[104,1](234, 232) -> 231 -[105,1](235, 235) -> 232 -[105,1](236, 235) -> 233 -[105,1](237, 235) -> 234 -[106,1](238, 238) -> 235 -[106,1](239, 238) -> 236 -[106,1](240, 238) -> 237 -[107,1](241, 241) -> 238 -[107,1](242, 241) -> 239 -[107,1](243, 241) -> 240 -[108,1](244, 244) -> 241 -[108,1](245, 244) -> 242 -[108,1](246, 244) -> 243 -[109,1](247, 247) -> 244 -[109,1](248, 247) -> 245 -[109,1](249, 247) -> 246 -[110,1](250, 250) -> 247 -[110,1](251, 250) -> 248 -[110,1](252, 250) -> 249 -[111,1](253, 253) -> 250 -[111,1](254, 253) -> 251 -[111,1](255, 253) -> 252 -[112,1](256, 256) -> 253 -[112,1](257, 256) -> 254 -[112,1](258, 256) -> 255 -[113,1](259, 259) -> 256 -[113,1](260, 259) -> 257 -[113,1](261, 259) -> 258 -[114,1](262, 262) -> 259 -[114,1](263, 262) -> 260 -[114,1](264, 262) -> 261 -[115,1](265, 265) -> 262 -[115,1](266, 265) -> 263 -[115,1](267, 265) -> 264 -[116,1](268, 268) -> 265 -[116,1](269, 268) -> 266 -[116,1](270, 268) -> 267 -[117,1](271, 271) -> 268 -[117,1](272, 271) -> 269 -[117,1](273, 271) -> 270 -[118,1](274, 274) -> 271 -[118,1](275, 274) -> 272 -[118,1](276, 274) -> 273 -[119,1](277, 277) -> 274 -[119,1](278, 277) -> 275 -[119,1](279, 277) -> 276 -[120,1](280, 280) -> 277 -[120,1](281, 280) -> 278 -[120,1](282, 280) -> 279 -[121,1](283, 283) -> 280 -[121,1](284, 283) -> 281 -[121,1](285, 283) -> 282 -[122,1](286, 286) -> 283 -[122,1](287, 286) -> 284 -[122,1](288, 286) -> 285 -[123,1](289, 289) -> 286 -[123,1](290, 289) -> 287 -[123,1](291, 289) -> 288 -[124,1](292, 292) -> 289 -[124,1](293, 292) -> 290 -[124,1](294, 292) -> 291 -[125,1](295, 295) -> 292 -[125,1](296, 295) -> 293 -[125,1](297, 295) -> 294 -[126,1](298, 298) -> 295 -[126,1](299, 298) -> 296 -[126,1](300, 298) -> 297 -[127,1](301, 301) -> 298 -[127,1](302, 301) -> 299 -[127,1](303, 301) -> 300 -[128,1](304, 304) -> 301 -[128,1](305, 304) -> 302 -[128,1](306, 304) -> 303 -[129,1](307, 307) -> 304 -[129,1](308, 307) -> 305 -[129,1](309, 307) -> 306 -[130,1](310, 310) -> 307 -[130,1](311, 310) -> 308 -[130,1](312, 310) -> 309 -[131,1](313, 313) -> 310 -[131,1](314, 313) -> 311 -[131,1](315, 313) -> 312 -[132,1](316, 316) -> 313 -[132,1](317, 316) -> 314 -[132,1](318, 316) -> 315 -[133,1](319, 319) -> 316 -[133,1](320, 319) -> 317 -[133,1](321, 319) -> 318 -[134,1](322, 322) -> 319 -[134,1](323, 322) -> 320 -[134,1](324, 322) -> 321 -[135,1](325, 325) -> 322 -[135,1](326, 325) -> 323 -[135,1](327, 325) -> 324 -[136,1](328, 328) -> 325 -[136,1](329, 328) -> 326 -[136,1](330, 328) -> 327 -[137,1](331, 331) -> 328 -[137,1](332, 331) -> 329 -[137,1](333, 331) -> 330 -[138,1](334, 334) -> 331 -[138,1](335, 334) -> 332 -[138,1](336, 334) -> 333 -[139,1](337, 337) -> 334 -[139,1](338, 337) -> 335 -[139,1](339, 337) -> 336 -[140,1](340, 340) -> 337 -[140,1](341, 340) -> 338 -[140,1](342, 340) -> 339 -[141,1](343, 343) -> 340 -[141,1](344, 343) -> 341 -[141,1](345, 343) -> 342 -[142,1](346, 346) -> 343 -[142,1](347, 346) -> 344 -[142,1](348, 346) -> 345 -[143,1](349, 349) -> 346 -[143,1](350, 349) -> 347 -[143,1](351, 349) -> 348 -[144,1](352, 352) -> 349 -[144,1](353, 352) -> 350 -[144,1](354, 352) -> 351 -[145,1](355, 355) -> 352 -[145,1](356, 355) -> 353 -[145,1](357, 355) -> 354 -[146,1](358, 358) -> 355 -[146,1](359, 358) -> 356 -[146,1](360, 358) -> 357 -[147,1](361, 361) -> 358 -[147,1](362, 361) -> 359 -[147,1](363, 361) -> 360 -[148,1](364, 364) -> 361 -[148,1](365, 364) -> 362 -[148,1](366, 364) -> 363 -[149,1](367, 367) -> 364 -[149,1](368, 367) -> 365 -[149,1](369, 367) -> 366 -[150,1](370, 370) -> 367 -[150,1](371, 370) -> 368 -[150,1](372, 370) -> 369 -[151,1](373, 373) -> 370 -[151,1](374, 373) -> 371 -[151,1](375, 373) -> 372 -[152,1](376, 376) -> 373 -[152,1](377, 376) -> 374 -[152,1](378, 376) -> 375 -[153,1](379, 379) -> 376 -[153,1](380, 379) -> 377 -[153,1](381, 379) -> 378 -[154,1](382, 382) -> 379 -[154,1](383, 382) -> 380 -[154,1](384, 382) -> 381 -[155,1](385, 385) -> 382 -[155,1](386, 385) -> 383 -[155,1](387, 385) -> 384 -[156,1](388, 388) -> 385 -[156,1](389, 388) -> 386 -[156,1](390, 388) -> 387 -[c0,1] -> 388 -[a,1] -> 389 -[b,1] -> 390 -Constraints -302231454903657293676543 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/79/circuit.qasm b/benchmarks/all/OEGrover/79/circuit.qasm index cea96c9bd..fc189d0a4 100644 --- a/benchmarks/all/OEGrover/79/circuit.qasm +++ b/benchmarks/all/OEGrover/79/circuit.qasm @@ -1,202 +1,202 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[158]; +qreg qubits[157]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -ccx qubits[0], qubits[1], qubits[80]; -ccx qubits[2], qubits[80], qubits[81]; -ccx qubits[3], qubits[81], qubits[82]; -ccx qubits[4], qubits[82], qubits[83]; -ccx qubits[5], qubits[83], qubits[84]; -ccx qubits[6], qubits[84], qubits[85]; -ccx qubits[7], qubits[85], qubits[86]; -ccx qubits[8], qubits[86], qubits[87]; -ccx qubits[9], qubits[87], qubits[88]; -ccx qubits[10], qubits[88], qubits[89]; -ccx qubits[11], qubits[89], qubits[90]; -ccx qubits[12], qubits[90], qubits[91]; -ccx qubits[13], qubits[91], qubits[92]; -ccx qubits[14], qubits[92], qubits[93]; -ccx qubits[15], qubits[93], qubits[94]; -ccx qubits[16], qubits[94], qubits[95]; -ccx qubits[17], qubits[95], qubits[96]; -ccx qubits[18], qubits[96], qubits[97]; -ccx qubits[19], qubits[97], qubits[98]; -ccx qubits[20], qubits[98], qubits[99]; -ccx qubits[21], qubits[99], qubits[100]; -ccx qubits[22], qubits[100], qubits[101]; -ccx qubits[23], qubits[101], qubits[102]; -ccx qubits[24], qubits[102], qubits[103]; -ccx qubits[25], qubits[103], qubits[104]; -ccx qubits[26], qubits[104], qubits[105]; -ccx qubits[27], qubits[105], qubits[106]; -ccx qubits[28], qubits[106], qubits[107]; -ccx qubits[29], qubits[107], qubits[108]; -ccx qubits[30], qubits[108], qubits[109]; -ccx qubits[31], qubits[109], qubits[110]; -ccx qubits[32], qubits[110], qubits[111]; -ccx qubits[33], qubits[111], qubits[112]; -ccx qubits[34], qubits[112], qubits[113]; -ccx qubits[35], qubits[113], qubits[114]; -ccx qubits[36], qubits[114], qubits[115]; -ccx qubits[37], qubits[115], qubits[116]; -ccx qubits[38], qubits[116], qubits[117]; -ccx qubits[39], qubits[117], qubits[118]; -ccx qubits[40], qubits[118], qubits[119]; -ccx qubits[41], qubits[119], qubits[120]; -ccx qubits[42], qubits[120], qubits[121]; -ccx qubits[43], qubits[121], qubits[122]; -ccx qubits[44], qubits[122], qubits[123]; -ccx qubits[45], qubits[123], qubits[124]; -ccx qubits[46], qubits[124], qubits[125]; -ccx qubits[47], qubits[125], qubits[126]; -ccx qubits[48], qubits[126], qubits[127]; -ccx qubits[49], qubits[127], qubits[128]; -ccx qubits[50], qubits[128], qubits[129]; -ccx qubits[51], qubits[129], qubits[130]; -ccx qubits[52], qubits[130], qubits[131]; -ccx qubits[53], qubits[131], qubits[132]; -ccx qubits[54], qubits[132], qubits[133]; -ccx qubits[55], qubits[133], qubits[134]; -ccx qubits[56], qubits[134], qubits[135]; -ccx qubits[57], qubits[135], qubits[136]; -ccx qubits[58], qubits[136], qubits[137]; -ccx qubits[59], qubits[137], qubits[138]; -ccx qubits[60], qubits[138], qubits[139]; -ccx qubits[61], qubits[139], qubits[140]; -ccx qubits[62], qubits[140], qubits[141]; -ccx qubits[63], qubits[141], qubits[142]; -ccx qubits[64], qubits[142], qubits[143]; -ccx qubits[65], qubits[143], qubits[144]; -ccx qubits[66], qubits[144], qubits[145]; -ccx qubits[67], qubits[145], qubits[146]; -ccx qubits[68], qubits[146], qubits[147]; -ccx qubits[69], qubits[147], qubits[148]; -ccx qubits[70], qubits[148], qubits[149]; -ccx qubits[71], qubits[149], qubits[150]; -ccx qubits[72], qubits[150], qubits[151]; -ccx qubits[73], qubits[151], qubits[152]; -ccx qubits[74], qubits[152], qubits[153]; -ccx qubits[75], qubits[153], qubits[154]; -ccx qubits[76], qubits[154], qubits[155]; -ccx qubits[77], qubits[155], qubits[156]; -cz qubits[156], qubits[78]; -ccx qubits[77], qubits[155], qubits[156]; -ccx qubits[76], qubits[154], qubits[155]; -ccx qubits[75], qubits[153], qubits[154]; -ccx qubits[74], qubits[152], qubits[153]; -ccx qubits[73], qubits[151], qubits[152]; -ccx qubits[72], qubits[150], qubits[151]; -ccx qubits[71], qubits[149], qubits[150]; -ccx qubits[70], qubits[148], qubits[149]; -ccx qubits[69], qubits[147], qubits[148]; -ccx qubits[68], qubits[146], qubits[147]; -ccx qubits[67], qubits[145], qubits[146]; -ccx qubits[66], qubits[144], qubits[145]; -ccx qubits[65], qubits[143], qubits[144]; -ccx qubits[64], qubits[142], qubits[143]; -ccx qubits[63], qubits[141], qubits[142]; -ccx qubits[62], qubits[140], qubits[141]; -ccx qubits[61], qubits[139], qubits[140]; -ccx qubits[60], qubits[138], qubits[139]; -ccx qubits[59], qubits[137], qubits[138]; -ccx qubits[58], qubits[136], qubits[137]; -ccx qubits[57], qubits[135], qubits[136]; -ccx qubits[56], qubits[134], qubits[135]; -ccx qubits[55], qubits[133], qubits[134]; -ccx qubits[54], qubits[132], qubits[133]; -ccx qubits[53], qubits[131], qubits[132]; -ccx qubits[52], qubits[130], qubits[131]; -ccx qubits[51], qubits[129], qubits[130]; -ccx qubits[50], qubits[128], qubits[129]; -ccx qubits[49], qubits[127], qubits[128]; -ccx qubits[48], qubits[126], qubits[127]; -ccx qubits[47], qubits[125], qubits[126]; -ccx qubits[46], qubits[124], qubits[125]; -ccx qubits[45], qubits[123], qubits[124]; -ccx qubits[44], qubits[122], qubits[123]; -ccx qubits[43], qubits[121], qubits[122]; -ccx qubits[42], qubits[120], qubits[121]; -ccx qubits[41], qubits[119], qubits[120]; -ccx qubits[40], qubits[118], qubits[119]; -ccx qubits[39], qubits[117], qubits[118]; -ccx qubits[38], qubits[116], qubits[117]; -ccx qubits[37], qubits[115], qubits[116]; -ccx qubits[36], qubits[114], qubits[115]; -ccx qubits[35], qubits[113], qubits[114]; -ccx qubits[34], qubits[112], qubits[113]; -ccx qubits[33], qubits[111], qubits[112]; -ccx qubits[32], qubits[110], qubits[111]; -ccx qubits[31], qubits[109], qubits[110]; -ccx qubits[30], qubits[108], qubits[109]; -ccx qubits[29], qubits[107], qubits[108]; -ccx qubits[28], qubits[106], qubits[107]; -ccx qubits[27], qubits[105], qubits[106]; -ccx qubits[26], qubits[104], qubits[105]; -ccx qubits[25], qubits[103], qubits[104]; -ccx qubits[24], qubits[102], qubits[103]; -ccx qubits[23], qubits[101], qubits[102]; -ccx qubits[22], qubits[100], qubits[101]; -ccx qubits[21], qubits[99], qubits[100]; -ccx qubits[20], qubits[98], qubits[99]; -ccx qubits[19], qubits[97], qubits[98]; -ccx qubits[18], qubits[96], qubits[97]; -ccx qubits[17], qubits[95], qubits[96]; -ccx qubits[16], qubits[94], qubits[95]; -ccx qubits[15], qubits[93], qubits[94]; -ccx qubits[14], qubits[92], qubits[93]; -ccx qubits[13], qubits[91], qubits[92]; -ccx qubits[12], qubits[90], qubits[91]; -ccx qubits[11], qubits[89], qubits[90]; -ccx qubits[10], qubits[88], qubits[89]; -ccx qubits[9], qubits[87], qubits[88]; -ccx qubits[8], qubits[86], qubits[87]; -ccx qubits[7], qubits[85], qubits[86]; -ccx qubits[6], qubits[84], qubits[85]; -ccx qubits[5], qubits[83], qubits[84]; -ccx qubits[4], qubits[82], qubits[83]; -ccx qubits[3], qubits[81], qubits[82]; -ccx qubits[2], qubits[80], qubits[81]; -ccx qubits[0], qubits[1], qubits[80]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +cz qubits[154], qubits[155]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -239,473 +239,473 @@ x qubits[76]; x qubits[78]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; -ccx qubits[0], qubits[1], qubits[80]; -ccx qubits[2], qubits[80], qubits[81]; -ccx qubits[3], qubits[81], qubits[82]; -ccx qubits[4], qubits[82], qubits[83]; -ccx qubits[5], qubits[83], qubits[84]; -ccx qubits[6], qubits[84], qubits[85]; -ccx qubits[7], qubits[85], qubits[86]; -ccx qubits[8], qubits[86], qubits[87]; -ccx qubits[9], qubits[87], qubits[88]; -ccx qubits[10], qubits[88], qubits[89]; -ccx qubits[11], qubits[89], qubits[90]; -ccx qubits[12], qubits[90], qubits[91]; -ccx qubits[13], qubits[91], qubits[92]; -ccx qubits[14], qubits[92], qubits[93]; -ccx qubits[15], qubits[93], qubits[94]; -ccx qubits[16], qubits[94], qubits[95]; -ccx qubits[17], qubits[95], qubits[96]; -ccx qubits[18], qubits[96], qubits[97]; -ccx qubits[19], qubits[97], qubits[98]; -ccx qubits[20], qubits[98], qubits[99]; -ccx qubits[21], qubits[99], qubits[100]; -ccx qubits[22], qubits[100], qubits[101]; -ccx qubits[23], qubits[101], qubits[102]; -ccx qubits[24], qubits[102], qubits[103]; -ccx qubits[25], qubits[103], qubits[104]; -ccx qubits[26], qubits[104], qubits[105]; -ccx qubits[27], qubits[105], qubits[106]; -ccx qubits[28], qubits[106], qubits[107]; -ccx qubits[29], qubits[107], qubits[108]; -ccx qubits[30], qubits[108], qubits[109]; -ccx qubits[31], qubits[109], qubits[110]; -ccx qubits[32], qubits[110], qubits[111]; -ccx qubits[33], qubits[111], qubits[112]; -ccx qubits[34], qubits[112], qubits[113]; -ccx qubits[35], qubits[113], qubits[114]; -ccx qubits[36], qubits[114], qubits[115]; -ccx qubits[37], qubits[115], qubits[116]; -ccx qubits[38], qubits[116], qubits[117]; -ccx qubits[39], qubits[117], qubits[118]; -ccx qubits[40], qubits[118], qubits[119]; -ccx qubits[41], qubits[119], qubits[120]; -ccx qubits[42], qubits[120], qubits[121]; -ccx qubits[43], qubits[121], qubits[122]; -ccx qubits[44], qubits[122], qubits[123]; -ccx qubits[45], qubits[123], qubits[124]; -ccx qubits[46], qubits[124], qubits[125]; -ccx qubits[47], qubits[125], qubits[126]; -ccx qubits[48], qubits[126], qubits[127]; -ccx qubits[49], qubits[127], qubits[128]; -ccx qubits[50], qubits[128], qubits[129]; -ccx qubits[51], qubits[129], qubits[130]; -ccx qubits[52], qubits[130], qubits[131]; -ccx qubits[53], qubits[131], qubits[132]; -ccx qubits[54], qubits[132], qubits[133]; -ccx qubits[55], qubits[133], qubits[134]; -ccx qubits[56], qubits[134], qubits[135]; -ccx qubits[57], qubits[135], qubits[136]; -ccx qubits[58], qubits[136], qubits[137]; -ccx qubits[59], qubits[137], qubits[138]; -ccx qubits[60], qubits[138], qubits[139]; -ccx qubits[61], qubits[139], qubits[140]; -ccx qubits[62], qubits[140], qubits[141]; -ccx qubits[63], qubits[141], qubits[142]; -ccx qubits[64], qubits[142], qubits[143]; -ccx qubits[65], qubits[143], qubits[144]; -ccx qubits[66], qubits[144], qubits[145]; -ccx qubits[67], qubits[145], qubits[146]; -ccx qubits[68], qubits[146], qubits[147]; -ccx qubits[69], qubits[147], qubits[148]; -ccx qubits[70], qubits[148], qubits[149]; -ccx qubits[71], qubits[149], qubits[150]; -ccx qubits[72], qubits[150], qubits[151]; -ccx qubits[73], qubits[151], qubits[152]; -ccx qubits[74], qubits[152], qubits[153]; -ccx qubits[75], qubits[153], qubits[154]; -ccx qubits[76], qubits[154], qubits[155]; -ccx qubits[77], qubits[155], qubits[156]; -cz qubits[156], qubits[78]; -ccx qubits[77], qubits[155], qubits[156]; -ccx qubits[76], qubits[154], qubits[155]; -ccx qubits[75], qubits[153], qubits[154]; -ccx qubits[74], qubits[152], qubits[153]; -ccx qubits[73], qubits[151], qubits[152]; -ccx qubits[72], qubits[150], qubits[151]; -ccx qubits[71], qubits[149], qubits[150]; -ccx qubits[70], qubits[148], qubits[149]; -ccx qubits[69], qubits[147], qubits[148]; -ccx qubits[68], qubits[146], qubits[147]; -ccx qubits[67], qubits[145], qubits[146]; -ccx qubits[66], qubits[144], qubits[145]; -ccx qubits[65], qubits[143], qubits[144]; -ccx qubits[64], qubits[142], qubits[143]; -ccx qubits[63], qubits[141], qubits[142]; -ccx qubits[62], qubits[140], qubits[141]; -ccx qubits[61], qubits[139], qubits[140]; -ccx qubits[60], qubits[138], qubits[139]; -ccx qubits[59], qubits[137], qubits[138]; -ccx qubits[58], qubits[136], qubits[137]; -ccx qubits[57], qubits[135], qubits[136]; -ccx qubits[56], qubits[134], qubits[135]; -ccx qubits[55], qubits[133], qubits[134]; -ccx qubits[54], qubits[132], qubits[133]; -ccx qubits[53], qubits[131], qubits[132]; -ccx qubits[52], qubits[130], qubits[131]; -ccx qubits[51], qubits[129], qubits[130]; -ccx qubits[50], qubits[128], qubits[129]; -ccx qubits[49], qubits[127], qubits[128]; -ccx qubits[48], qubits[126], qubits[127]; -ccx qubits[47], qubits[125], qubits[126]; -ccx qubits[46], qubits[124], qubits[125]; -ccx qubits[45], qubits[123], qubits[124]; -ccx qubits[44], qubits[122], qubits[123]; -ccx qubits[43], qubits[121], qubits[122]; -ccx qubits[42], qubits[120], qubits[121]; -ccx qubits[41], qubits[119], qubits[120]; -ccx qubits[40], qubits[118], qubits[119]; -ccx qubits[39], qubits[117], qubits[118]; -ccx qubits[38], qubits[116], qubits[117]; -ccx qubits[37], qubits[115], qubits[116]; -ccx qubits[36], qubits[114], qubits[115]; -ccx qubits[35], qubits[113], qubits[114]; -ccx qubits[34], qubits[112], qubits[113]; -ccx qubits[33], qubits[111], qubits[112]; -ccx qubits[32], qubits[110], qubits[111]; -ccx qubits[31], qubits[109], qubits[110]; -ccx qubits[30], qubits[108], qubits[109]; -ccx qubits[29], qubits[107], qubits[108]; -ccx qubits[28], qubits[106], qubits[107]; -ccx qubits[27], qubits[105], qubits[106]; -ccx qubits[26], qubits[104], qubits[105]; -ccx qubits[25], qubits[103], qubits[104]; -ccx qubits[24], qubits[102], qubits[103]; -ccx qubits[23], qubits[101], qubits[102]; -ccx qubits[22], qubits[100], qubits[101]; -ccx qubits[21], qubits[99], qubits[100]; -ccx qubits[20], qubits[98], qubits[99]; -ccx qubits[19], qubits[97], qubits[98]; -ccx qubits[18], qubits[96], qubits[97]; -ccx qubits[17], qubits[95], qubits[96]; -ccx qubits[16], qubits[94], qubits[95]; -ccx qubits[15], qubits[93], qubits[94]; -ccx qubits[14], qubits[92], qubits[93]; -ccx qubits[13], qubits[91], qubits[92]; -ccx qubits[12], qubits[90], qubits[91]; -ccx qubits[11], qubits[89], qubits[90]; -ccx qubits[10], qubits[88], qubits[89]; -ccx qubits[9], qubits[87], qubits[88]; -ccx qubits[8], qubits[86], qubits[87]; -ccx qubits[7], qubits[85], qubits[86]; -ccx qubits[6], qubits[84], qubits[85]; -ccx qubits[5], qubits[83], qubits[84]; -ccx qubits[4], qubits[82], qubits[83]; -ccx qubits[3], qubits[81], qubits[82]; -ccx qubits[2], qubits[80], qubits[81]; -ccx qubits[0], qubits[1], qubits[80]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +cz qubits[154], qubits[155]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; +x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; -z qubits[79]; +h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +z qubits[156]; diff --git a/benchmarks/all/OEGrover/79/post.hsl b/benchmarks/all/OEGrover/79/post.hsl index 03e058834..8eeff9900 100644 --- a/benchmarks/all/OEGrover/79/post.hsl +++ b/benchmarks/all/OEGrover/79/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 38 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/79/post.lsta b/benchmarks/all/OEGrover/79/post.lsta deleted file mode 100644 index aa5ae53ab..000000000 --- a/benchmarks/all/OEGrover/79/post.lsta +++ /dev/null @@ -1,402 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 160) -> 157 -[80,1](159, 161) -> 158 -[81,1](162, 162) -> 159 -[81,1](163, 162) -> 160 -[81,1](164, 162) -> 161 -[82,1](165, 165) -> 162 -[82,1](166, 165) -> 163 -[82,1](167, 165) -> 164 -[83,1](168, 168) -> 165 -[83,1](169, 168) -> 166 -[83,1](170, 168) -> 167 -[84,1](171, 171) -> 168 -[84,1](172, 171) -> 169 -[84,1](173, 171) -> 170 -[85,1](174, 174) -> 171 -[85,1](175, 174) -> 172 -[85,1](176, 174) -> 173 -[86,1](177, 177) -> 174 -[86,1](178, 177) -> 175 -[86,1](179, 177) -> 176 -[87,1](180, 180) -> 177 -[87,1](181, 180) -> 178 -[87,1](182, 180) -> 179 -[88,1](183, 183) -> 180 -[88,1](184, 183) -> 181 -[88,1](185, 183) -> 182 -[89,1](186, 186) -> 183 -[89,1](187, 186) -> 184 -[89,1](188, 186) -> 185 -[90,1](189, 189) -> 186 -[90,1](190, 189) -> 187 -[90,1](191, 189) -> 188 -[91,1](192, 192) -> 189 -[91,1](193, 192) -> 190 -[91,1](194, 192) -> 191 -[92,1](195, 195) -> 192 -[92,1](196, 195) -> 193 -[92,1](197, 195) -> 194 -[93,1](198, 198) -> 195 -[93,1](199, 198) -> 196 -[93,1](200, 198) -> 197 -[94,1](201, 201) -> 198 -[94,1](202, 201) -> 199 -[94,1](203, 201) -> 200 -[95,1](204, 204) -> 201 -[95,1](205, 204) -> 202 -[95,1](206, 204) -> 203 -[96,1](207, 207) -> 204 -[96,1](208, 207) -> 205 -[96,1](209, 207) -> 206 -[97,1](210, 210) -> 207 -[97,1](211, 210) -> 208 -[97,1](212, 210) -> 209 -[98,1](213, 213) -> 210 -[98,1](214, 213) -> 211 -[98,1](215, 213) -> 212 -[99,1](216, 216) -> 213 -[99,1](217, 216) -> 214 -[99,1](218, 216) -> 215 -[100,1](219, 219) -> 216 -[100,1](220, 219) -> 217 -[100,1](221, 219) -> 218 -[101,1](222, 222) -> 219 -[101,1](223, 222) -> 220 -[101,1](224, 222) -> 221 -[102,1](225, 225) -> 222 -[102,1](226, 225) -> 223 -[102,1](227, 225) -> 224 -[103,1](228, 228) -> 225 -[103,1](229, 228) -> 226 -[103,1](230, 228) -> 227 -[104,1](231, 231) -> 228 -[104,1](232, 231) -> 229 -[104,1](233, 231) -> 230 -[105,1](234, 234) -> 231 -[105,1](235, 234) -> 232 -[105,1](236, 234) -> 233 -[106,1](237, 237) -> 234 -[106,1](238, 237) -> 235 -[106,1](239, 237) -> 236 -[107,1](240, 240) -> 237 -[107,1](241, 240) -> 238 -[107,1](242, 240) -> 239 -[108,1](243, 243) -> 240 -[108,1](244, 243) -> 241 -[108,1](245, 243) -> 242 -[109,1](246, 246) -> 243 -[109,1](247, 246) -> 244 -[109,1](248, 246) -> 245 -[110,1](249, 249) -> 246 -[110,1](250, 249) -> 247 -[110,1](251, 249) -> 248 -[111,1](252, 252) -> 249 -[111,1](253, 252) -> 250 -[111,1](254, 252) -> 251 -[112,1](255, 255) -> 252 -[112,1](256, 255) -> 253 -[112,1](257, 255) -> 254 -[113,1](258, 258) -> 255 -[113,1](259, 258) -> 256 -[113,1](260, 258) -> 257 -[114,1](261, 261) -> 258 -[114,1](262, 261) -> 259 -[114,1](263, 261) -> 260 -[115,1](264, 264) -> 261 -[115,1](265, 264) -> 262 -[115,1](266, 264) -> 263 -[116,1](267, 267) -> 264 -[116,1](268, 267) -> 265 -[116,1](269, 267) -> 266 -[117,1](270, 270) -> 267 -[117,1](271, 270) -> 268 -[117,1](272, 270) -> 269 -[118,1](273, 273) -> 270 -[118,1](274, 273) -> 271 -[118,1](275, 273) -> 272 -[119,1](276, 276) -> 273 -[119,1](277, 276) -> 274 -[119,1](278, 276) -> 275 -[120,1](279, 279) -> 276 -[120,1](280, 279) -> 277 -[120,1](281, 279) -> 278 -[121,1](282, 282) -> 279 -[121,1](283, 282) -> 280 -[121,1](284, 282) -> 281 -[122,1](285, 285) -> 282 -[122,1](286, 285) -> 283 -[122,1](287, 285) -> 284 -[123,1](288, 288) -> 285 -[123,1](289, 288) -> 286 -[123,1](290, 288) -> 287 -[124,1](291, 291) -> 288 -[124,1](292, 291) -> 289 -[124,1](293, 291) -> 290 -[125,1](294, 294) -> 291 -[125,1](295, 294) -> 292 -[125,1](296, 294) -> 293 -[126,1](297, 297) -> 294 -[126,1](298, 297) -> 295 -[126,1](299, 297) -> 296 -[127,1](300, 300) -> 297 -[127,1](301, 300) -> 298 -[127,1](302, 300) -> 299 -[128,1](303, 303) -> 300 -[128,1](304, 303) -> 301 -[128,1](305, 303) -> 302 -[129,1](306, 306) -> 303 -[129,1](307, 306) -> 304 -[129,1](308, 306) -> 305 -[130,1](309, 309) -> 306 -[130,1](310, 309) -> 307 -[130,1](311, 309) -> 308 -[131,1](312, 312) -> 309 -[131,1](313, 312) -> 310 -[131,1](314, 312) -> 311 -[132,1](315, 315) -> 312 -[132,1](316, 315) -> 313 -[132,1](317, 315) -> 314 -[133,1](318, 318) -> 315 -[133,1](319, 318) -> 316 -[133,1](320, 318) -> 317 -[134,1](321, 321) -> 318 -[134,1](322, 321) -> 319 -[134,1](323, 321) -> 320 -[135,1](324, 324) -> 321 -[135,1](325, 324) -> 322 -[135,1](326, 324) -> 323 -[136,1](327, 327) -> 324 -[136,1](328, 327) -> 325 -[136,1](329, 327) -> 326 -[137,1](330, 330) -> 327 -[137,1](331, 330) -> 328 -[137,1](332, 330) -> 329 -[138,1](333, 333) -> 330 -[138,1](334, 333) -> 331 -[138,1](335, 333) -> 332 -[139,1](336, 336) -> 333 -[139,1](337, 336) -> 334 -[139,1](338, 336) -> 335 -[140,1](339, 339) -> 336 -[140,1](340, 339) -> 337 -[140,1](341, 339) -> 338 -[141,1](342, 342) -> 339 -[141,1](343, 342) -> 340 -[141,1](344, 342) -> 341 -[142,1](345, 345) -> 342 -[142,1](346, 345) -> 343 -[142,1](347, 345) -> 344 -[143,1](348, 348) -> 345 -[143,1](349, 348) -> 346 -[143,1](350, 348) -> 347 -[144,1](351, 351) -> 348 -[144,1](352, 351) -> 349 -[144,1](353, 351) -> 350 -[145,1](354, 354) -> 351 -[145,1](355, 354) -> 352 -[145,1](356, 354) -> 353 -[146,1](357, 357) -> 354 -[146,1](358, 357) -> 355 -[146,1](359, 357) -> 356 -[147,1](360, 360) -> 357 -[147,1](361, 360) -> 358 -[147,1](362, 360) -> 359 -[148,1](363, 363) -> 360 -[148,1](364, 363) -> 361 -[148,1](365, 363) -> 362 -[149,1](366, 366) -> 363 -[149,1](367, 366) -> 364 -[149,1](368, 366) -> 365 -[150,1](369, 369) -> 366 -[150,1](370, 369) -> 367 -[150,1](371, 369) -> 368 -[151,1](372, 372) -> 369 -[151,1](373, 372) -> 370 -[151,1](374, 372) -> 371 -[152,1](375, 375) -> 372 -[152,1](376, 375) -> 373 -[152,1](377, 375) -> 374 -[153,1](378, 378) -> 375 -[153,1](379, 378) -> 376 -[153,1](380, 378) -> 377 -[154,1](381, 381) -> 378 -[154,1](382, 381) -> 379 -[154,1](383, 381) -> 380 -[155,1](384, 384) -> 381 -[155,1](385, 384) -> 382 -[155,1](386, 384) -> 383 -[156,1](387, 387) -> 384 -[156,1](388, 387) -> 385 -[156,1](389, 387) -> 386 -[157,1](390, 390) -> 387 -[157,1](391, 390) -> 388 -[157,1](392, 390) -> 389 -[158,1](393, 393) -> 390 -[158,1](394, 393) -> 391 -[158,1](395, 393) -> 392 -[p1,1] -> 393 -[p2,1] -> 394 -[p3,1] -> 395 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/79/pre.hsl b/benchmarks/all/OEGrover/79/pre.hsl index 88a4d0219..0308a5e71 100644 --- a/benchmarks/all/OEGrover/79/pre.hsl +++ b/benchmarks/all/OEGrover/79/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 38 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 604462909807314587353087 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/79/pre.lsta b/benchmarks/all/OEGrover/79/pre.lsta deleted file mode 100644 index 56805bce1..000000000 --- a/benchmarks/all/OEGrover/79/pre.lsta +++ /dev/null @@ -1,406 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 160) -> 157 -[80,1](159, 161) -> 158 -[81,1](162, 162) -> 159 -[81,1](163, 162) -> 160 -[81,1](164, 162) -> 161 -[82,1](165, 165) -> 162 -[82,1](166, 165) -> 163 -[82,1](167, 165) -> 164 -[83,1](168, 168) -> 165 -[83,1](169, 168) -> 166 -[83,1](170, 168) -> 167 -[84,1](171, 171) -> 168 -[84,1](172, 171) -> 169 -[84,1](173, 171) -> 170 -[85,1](174, 174) -> 171 -[85,1](175, 174) -> 172 -[85,1](176, 174) -> 173 -[86,1](177, 177) -> 174 -[86,1](178, 177) -> 175 -[86,1](179, 177) -> 176 -[87,1](180, 180) -> 177 -[87,1](181, 180) -> 178 -[87,1](182, 180) -> 179 -[88,1](183, 183) -> 180 -[88,1](184, 183) -> 181 -[88,1](185, 183) -> 182 -[89,1](186, 186) -> 183 -[89,1](187, 186) -> 184 -[89,1](188, 186) -> 185 -[90,1](189, 189) -> 186 -[90,1](190, 189) -> 187 -[90,1](191, 189) -> 188 -[91,1](192, 192) -> 189 -[91,1](193, 192) -> 190 -[91,1](194, 192) -> 191 -[92,1](195, 195) -> 192 -[92,1](196, 195) -> 193 -[92,1](197, 195) -> 194 -[93,1](198, 198) -> 195 -[93,1](199, 198) -> 196 -[93,1](200, 198) -> 197 -[94,1](201, 201) -> 198 -[94,1](202, 201) -> 199 -[94,1](203, 201) -> 200 -[95,1](204, 204) -> 201 -[95,1](205, 204) -> 202 -[95,1](206, 204) -> 203 -[96,1](207, 207) -> 204 -[96,1](208, 207) -> 205 -[96,1](209, 207) -> 206 -[97,1](210, 210) -> 207 -[97,1](211, 210) -> 208 -[97,1](212, 210) -> 209 -[98,1](213, 213) -> 210 -[98,1](214, 213) -> 211 -[98,1](215, 213) -> 212 -[99,1](216, 216) -> 213 -[99,1](217, 216) -> 214 -[99,1](218, 216) -> 215 -[100,1](219, 219) -> 216 -[100,1](220, 219) -> 217 -[100,1](221, 219) -> 218 -[101,1](222, 222) -> 219 -[101,1](223, 222) -> 220 -[101,1](224, 222) -> 221 -[102,1](225, 225) -> 222 -[102,1](226, 225) -> 223 -[102,1](227, 225) -> 224 -[103,1](228, 228) -> 225 -[103,1](229, 228) -> 226 -[103,1](230, 228) -> 227 -[104,1](231, 231) -> 228 -[104,1](232, 231) -> 229 -[104,1](233, 231) -> 230 -[105,1](234, 234) -> 231 -[105,1](235, 234) -> 232 -[105,1](236, 234) -> 233 -[106,1](237, 237) -> 234 -[106,1](238, 237) -> 235 -[106,1](239, 237) -> 236 -[107,1](240, 240) -> 237 -[107,1](241, 240) -> 238 -[107,1](242, 240) -> 239 -[108,1](243, 243) -> 240 -[108,1](244, 243) -> 241 -[108,1](245, 243) -> 242 -[109,1](246, 246) -> 243 -[109,1](247, 246) -> 244 -[109,1](248, 246) -> 245 -[110,1](249, 249) -> 246 -[110,1](250, 249) -> 247 -[110,1](251, 249) -> 248 -[111,1](252, 252) -> 249 -[111,1](253, 252) -> 250 -[111,1](254, 252) -> 251 -[112,1](255, 255) -> 252 -[112,1](256, 255) -> 253 -[112,1](257, 255) -> 254 -[113,1](258, 258) -> 255 -[113,1](259, 258) -> 256 -[113,1](260, 258) -> 257 -[114,1](261, 261) -> 258 -[114,1](262, 261) -> 259 -[114,1](263, 261) -> 260 -[115,1](264, 264) -> 261 -[115,1](265, 264) -> 262 -[115,1](266, 264) -> 263 -[116,1](267, 267) -> 264 -[116,1](268, 267) -> 265 -[116,1](269, 267) -> 266 -[117,1](270, 270) -> 267 -[117,1](271, 270) -> 268 -[117,1](272, 270) -> 269 -[118,1](273, 273) -> 270 -[118,1](274, 273) -> 271 -[118,1](275, 273) -> 272 -[119,1](276, 276) -> 273 -[119,1](277, 276) -> 274 -[119,1](278, 276) -> 275 -[120,1](279, 279) -> 276 -[120,1](280, 279) -> 277 -[120,1](281, 279) -> 278 -[121,1](282, 282) -> 279 -[121,1](283, 282) -> 280 -[121,1](284, 282) -> 281 -[122,1](285, 285) -> 282 -[122,1](286, 285) -> 283 -[122,1](287, 285) -> 284 -[123,1](288, 288) -> 285 -[123,1](289, 288) -> 286 -[123,1](290, 288) -> 287 -[124,1](291, 291) -> 288 -[124,1](292, 291) -> 289 -[124,1](293, 291) -> 290 -[125,1](294, 294) -> 291 -[125,1](295, 294) -> 292 -[125,1](296, 294) -> 293 -[126,1](297, 297) -> 294 -[126,1](298, 297) -> 295 -[126,1](299, 297) -> 296 -[127,1](300, 300) -> 297 -[127,1](301, 300) -> 298 -[127,1](302, 300) -> 299 -[128,1](303, 303) -> 300 -[128,1](304, 303) -> 301 -[128,1](305, 303) -> 302 -[129,1](306, 306) -> 303 -[129,1](307, 306) -> 304 -[129,1](308, 306) -> 305 -[130,1](309, 309) -> 306 -[130,1](310, 309) -> 307 -[130,1](311, 309) -> 308 -[131,1](312, 312) -> 309 -[131,1](313, 312) -> 310 -[131,1](314, 312) -> 311 -[132,1](315, 315) -> 312 -[132,1](316, 315) -> 313 -[132,1](317, 315) -> 314 -[133,1](318, 318) -> 315 -[133,1](319, 318) -> 316 -[133,1](320, 318) -> 317 -[134,1](321, 321) -> 318 -[134,1](322, 321) -> 319 -[134,1](323, 321) -> 320 -[135,1](324, 324) -> 321 -[135,1](325, 324) -> 322 -[135,1](326, 324) -> 323 -[136,1](327, 327) -> 324 -[136,1](328, 327) -> 325 -[136,1](329, 327) -> 326 -[137,1](330, 330) -> 327 -[137,1](331, 330) -> 328 -[137,1](332, 330) -> 329 -[138,1](333, 333) -> 330 -[138,1](334, 333) -> 331 -[138,1](335, 333) -> 332 -[139,1](336, 336) -> 333 -[139,1](337, 336) -> 334 -[139,1](338, 336) -> 335 -[140,1](339, 339) -> 336 -[140,1](340, 339) -> 337 -[140,1](341, 339) -> 338 -[141,1](342, 342) -> 339 -[141,1](343, 342) -> 340 -[141,1](344, 342) -> 341 -[142,1](345, 345) -> 342 -[142,1](346, 345) -> 343 -[142,1](347, 345) -> 344 -[143,1](348, 348) -> 345 -[143,1](349, 348) -> 346 -[143,1](350, 348) -> 347 -[144,1](351, 351) -> 348 -[144,1](352, 351) -> 349 -[144,1](353, 351) -> 350 -[145,1](354, 354) -> 351 -[145,1](355, 354) -> 352 -[145,1](356, 354) -> 353 -[146,1](357, 357) -> 354 -[146,1](358, 357) -> 355 -[146,1](359, 357) -> 356 -[147,1](360, 360) -> 357 -[147,1](361, 360) -> 358 -[147,1](362, 360) -> 359 -[148,1](363, 363) -> 360 -[148,1](364, 363) -> 361 -[148,1](365, 363) -> 362 -[149,1](366, 366) -> 363 -[149,1](367, 366) -> 364 -[149,1](368, 366) -> 365 -[150,1](369, 369) -> 366 -[150,1](370, 369) -> 367 -[150,1](371, 369) -> 368 -[151,1](372, 372) -> 369 -[151,1](373, 372) -> 370 -[151,1](374, 372) -> 371 -[152,1](375, 375) -> 372 -[152,1](376, 375) -> 373 -[152,1](377, 375) -> 374 -[153,1](378, 378) -> 375 -[153,1](379, 378) -> 376 -[153,1](380, 378) -> 377 -[154,1](381, 381) -> 378 -[154,1](382, 381) -> 379 -[154,1](383, 381) -> 380 -[155,1](384, 384) -> 381 -[155,1](385, 384) -> 382 -[155,1](386, 384) -> 383 -[156,1](387, 387) -> 384 -[156,1](388, 387) -> 385 -[156,1](389, 387) -> 386 -[157,1](390, 390) -> 387 -[157,1](391, 390) -> 388 -[157,1](392, 390) -> 389 -[158,1](393, 393) -> 390 -[158,1](394, 393) -> 391 -[158,1](395, 393) -> 392 -[c0,1] -> 393 -[a,1] -> 394 -[b,1] -> 395 -Constraints -604462909807314587353087 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/80/circuit.qasm b/benchmarks/all/OEGrover/80/circuit.qasm index d70716131..fab60a96a 100644 --- a/benchmarks/all/OEGrover/80/circuit.qasm +++ b/benchmarks/all/OEGrover/80/circuit.qasm @@ -1,204 +1,204 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[160]; +qreg qubits[159]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -ccx qubits[0], qubits[1], qubits[81]; -ccx qubits[2], qubits[81], qubits[82]; -ccx qubits[3], qubits[82], qubits[83]; -ccx qubits[4], qubits[83], qubits[84]; -ccx qubits[5], qubits[84], qubits[85]; -ccx qubits[6], qubits[85], qubits[86]; -ccx qubits[7], qubits[86], qubits[87]; -ccx qubits[8], qubits[87], qubits[88]; -ccx qubits[9], qubits[88], qubits[89]; -ccx qubits[10], qubits[89], qubits[90]; -ccx qubits[11], qubits[90], qubits[91]; -ccx qubits[12], qubits[91], qubits[92]; -ccx qubits[13], qubits[92], qubits[93]; -ccx qubits[14], qubits[93], qubits[94]; -ccx qubits[15], qubits[94], qubits[95]; -ccx qubits[16], qubits[95], qubits[96]; -ccx qubits[17], qubits[96], qubits[97]; -ccx qubits[18], qubits[97], qubits[98]; -ccx qubits[19], qubits[98], qubits[99]; -ccx qubits[20], qubits[99], qubits[100]; -ccx qubits[21], qubits[100], qubits[101]; -ccx qubits[22], qubits[101], qubits[102]; -ccx qubits[23], qubits[102], qubits[103]; -ccx qubits[24], qubits[103], qubits[104]; -ccx qubits[25], qubits[104], qubits[105]; -ccx qubits[26], qubits[105], qubits[106]; -ccx qubits[27], qubits[106], qubits[107]; -ccx qubits[28], qubits[107], qubits[108]; -ccx qubits[29], qubits[108], qubits[109]; -ccx qubits[30], qubits[109], qubits[110]; -ccx qubits[31], qubits[110], qubits[111]; -ccx qubits[32], qubits[111], qubits[112]; -ccx qubits[33], qubits[112], qubits[113]; -ccx qubits[34], qubits[113], qubits[114]; -ccx qubits[35], qubits[114], qubits[115]; -ccx qubits[36], qubits[115], qubits[116]; -ccx qubits[37], qubits[116], qubits[117]; -ccx qubits[38], qubits[117], qubits[118]; -ccx qubits[39], qubits[118], qubits[119]; -ccx qubits[40], qubits[119], qubits[120]; -ccx qubits[41], qubits[120], qubits[121]; -ccx qubits[42], qubits[121], qubits[122]; -ccx qubits[43], qubits[122], qubits[123]; -ccx qubits[44], qubits[123], qubits[124]; -ccx qubits[45], qubits[124], qubits[125]; -ccx qubits[46], qubits[125], qubits[126]; -ccx qubits[47], qubits[126], qubits[127]; -ccx qubits[48], qubits[127], qubits[128]; -ccx qubits[49], qubits[128], qubits[129]; -ccx qubits[50], qubits[129], qubits[130]; -ccx qubits[51], qubits[130], qubits[131]; -ccx qubits[52], qubits[131], qubits[132]; -ccx qubits[53], qubits[132], qubits[133]; -ccx qubits[54], qubits[133], qubits[134]; -ccx qubits[55], qubits[134], qubits[135]; -ccx qubits[56], qubits[135], qubits[136]; -ccx qubits[57], qubits[136], qubits[137]; -ccx qubits[58], qubits[137], qubits[138]; -ccx qubits[59], qubits[138], qubits[139]; -ccx qubits[60], qubits[139], qubits[140]; -ccx qubits[61], qubits[140], qubits[141]; -ccx qubits[62], qubits[141], qubits[142]; -ccx qubits[63], qubits[142], qubits[143]; -ccx qubits[64], qubits[143], qubits[144]; -ccx qubits[65], qubits[144], qubits[145]; -ccx qubits[66], qubits[145], qubits[146]; -ccx qubits[67], qubits[146], qubits[147]; -ccx qubits[68], qubits[147], qubits[148]; -ccx qubits[69], qubits[148], qubits[149]; -ccx qubits[70], qubits[149], qubits[150]; -ccx qubits[71], qubits[150], qubits[151]; -ccx qubits[72], qubits[151], qubits[152]; -ccx qubits[73], qubits[152], qubits[153]; -ccx qubits[74], qubits[153], qubits[154]; -ccx qubits[75], qubits[154], qubits[155]; -ccx qubits[76], qubits[155], qubits[156]; -ccx qubits[77], qubits[156], qubits[157]; -ccx qubits[78], qubits[157], qubits[158]; -cz qubits[158], qubits[79]; -ccx qubits[78], qubits[157], qubits[158]; -ccx qubits[77], qubits[156], qubits[157]; -ccx qubits[76], qubits[155], qubits[156]; -ccx qubits[75], qubits[154], qubits[155]; -ccx qubits[74], qubits[153], qubits[154]; -ccx qubits[73], qubits[152], qubits[153]; -ccx qubits[72], qubits[151], qubits[152]; -ccx qubits[71], qubits[150], qubits[151]; -ccx qubits[70], qubits[149], qubits[150]; -ccx qubits[69], qubits[148], qubits[149]; -ccx qubits[68], qubits[147], qubits[148]; -ccx qubits[67], qubits[146], qubits[147]; -ccx qubits[66], qubits[145], qubits[146]; -ccx qubits[65], qubits[144], qubits[145]; -ccx qubits[64], qubits[143], qubits[144]; -ccx qubits[63], qubits[142], qubits[143]; -ccx qubits[62], qubits[141], qubits[142]; -ccx qubits[61], qubits[140], qubits[141]; -ccx qubits[60], qubits[139], qubits[140]; -ccx qubits[59], qubits[138], qubits[139]; -ccx qubits[58], qubits[137], qubits[138]; -ccx qubits[57], qubits[136], qubits[137]; -ccx qubits[56], qubits[135], qubits[136]; -ccx qubits[55], qubits[134], qubits[135]; -ccx qubits[54], qubits[133], qubits[134]; -ccx qubits[53], qubits[132], qubits[133]; -ccx qubits[52], qubits[131], qubits[132]; -ccx qubits[51], qubits[130], qubits[131]; -ccx qubits[50], qubits[129], qubits[130]; -ccx qubits[49], qubits[128], qubits[129]; -ccx qubits[48], qubits[127], qubits[128]; -ccx qubits[47], qubits[126], qubits[127]; -ccx qubits[46], qubits[125], qubits[126]; -ccx qubits[45], qubits[124], qubits[125]; -ccx qubits[44], qubits[123], qubits[124]; -ccx qubits[43], qubits[122], qubits[123]; -ccx qubits[42], qubits[121], qubits[122]; -ccx qubits[41], qubits[120], qubits[121]; -ccx qubits[40], qubits[119], qubits[120]; -ccx qubits[39], qubits[118], qubits[119]; -ccx qubits[38], qubits[117], qubits[118]; -ccx qubits[37], qubits[116], qubits[117]; -ccx qubits[36], qubits[115], qubits[116]; -ccx qubits[35], qubits[114], qubits[115]; -ccx qubits[34], qubits[113], qubits[114]; -ccx qubits[33], qubits[112], qubits[113]; -ccx qubits[32], qubits[111], qubits[112]; -ccx qubits[31], qubits[110], qubits[111]; -ccx qubits[30], qubits[109], qubits[110]; -ccx qubits[29], qubits[108], qubits[109]; -ccx qubits[28], qubits[107], qubits[108]; -ccx qubits[27], qubits[106], qubits[107]; -ccx qubits[26], qubits[105], qubits[106]; -ccx qubits[25], qubits[104], qubits[105]; -ccx qubits[24], qubits[103], qubits[104]; -ccx qubits[23], qubits[102], qubits[103]; -ccx qubits[22], qubits[101], qubits[102]; -ccx qubits[21], qubits[100], qubits[101]; -ccx qubits[20], qubits[99], qubits[100]; -ccx qubits[19], qubits[98], qubits[99]; -ccx qubits[18], qubits[97], qubits[98]; -ccx qubits[17], qubits[96], qubits[97]; -ccx qubits[16], qubits[95], qubits[96]; -ccx qubits[15], qubits[94], qubits[95]; -ccx qubits[14], qubits[93], qubits[94]; -ccx qubits[13], qubits[92], qubits[93]; -ccx qubits[12], qubits[91], qubits[92]; -ccx qubits[11], qubits[90], qubits[91]; -ccx qubits[10], qubits[89], qubits[90]; -ccx qubits[9], qubits[88], qubits[89]; -ccx qubits[8], qubits[87], qubits[88]; -ccx qubits[7], qubits[86], qubits[87]; -ccx qubits[6], qubits[85], qubits[86]; -ccx qubits[5], qubits[84], qubits[85]; -ccx qubits[4], qubits[83], qubits[84]; -ccx qubits[3], qubits[82], qubits[83]; -ccx qubits[2], qubits[81], qubits[82]; -ccx qubits[0], qubits[1], qubits[81]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +cz qubits[156], qubits[157]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -241,479 +241,479 @@ x qubits[76]; x qubits[78]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -ccx qubits[0], qubits[1], qubits[81]; -ccx qubits[2], qubits[81], qubits[82]; -ccx qubits[3], qubits[82], qubits[83]; -ccx qubits[4], qubits[83], qubits[84]; -ccx qubits[5], qubits[84], qubits[85]; -ccx qubits[6], qubits[85], qubits[86]; -ccx qubits[7], qubits[86], qubits[87]; -ccx qubits[8], qubits[87], qubits[88]; -ccx qubits[9], qubits[88], qubits[89]; -ccx qubits[10], qubits[89], qubits[90]; -ccx qubits[11], qubits[90], qubits[91]; -ccx qubits[12], qubits[91], qubits[92]; -ccx qubits[13], qubits[92], qubits[93]; -ccx qubits[14], qubits[93], qubits[94]; -ccx qubits[15], qubits[94], qubits[95]; -ccx qubits[16], qubits[95], qubits[96]; -ccx qubits[17], qubits[96], qubits[97]; -ccx qubits[18], qubits[97], qubits[98]; -ccx qubits[19], qubits[98], qubits[99]; -ccx qubits[20], qubits[99], qubits[100]; -ccx qubits[21], qubits[100], qubits[101]; -ccx qubits[22], qubits[101], qubits[102]; -ccx qubits[23], qubits[102], qubits[103]; -ccx qubits[24], qubits[103], qubits[104]; -ccx qubits[25], qubits[104], qubits[105]; -ccx qubits[26], qubits[105], qubits[106]; -ccx qubits[27], qubits[106], qubits[107]; -ccx qubits[28], qubits[107], qubits[108]; -ccx qubits[29], qubits[108], qubits[109]; -ccx qubits[30], qubits[109], qubits[110]; -ccx qubits[31], qubits[110], qubits[111]; -ccx qubits[32], qubits[111], qubits[112]; -ccx qubits[33], qubits[112], qubits[113]; -ccx qubits[34], qubits[113], qubits[114]; -ccx qubits[35], qubits[114], qubits[115]; -ccx qubits[36], qubits[115], qubits[116]; -ccx qubits[37], qubits[116], qubits[117]; -ccx qubits[38], qubits[117], qubits[118]; -ccx qubits[39], qubits[118], qubits[119]; -ccx qubits[40], qubits[119], qubits[120]; -ccx qubits[41], qubits[120], qubits[121]; -ccx qubits[42], qubits[121], qubits[122]; -ccx qubits[43], qubits[122], qubits[123]; -ccx qubits[44], qubits[123], qubits[124]; -ccx qubits[45], qubits[124], qubits[125]; -ccx qubits[46], qubits[125], qubits[126]; -ccx qubits[47], qubits[126], qubits[127]; -ccx qubits[48], qubits[127], qubits[128]; -ccx qubits[49], qubits[128], qubits[129]; -ccx qubits[50], qubits[129], qubits[130]; -ccx qubits[51], qubits[130], qubits[131]; -ccx qubits[52], qubits[131], qubits[132]; -ccx qubits[53], qubits[132], qubits[133]; -ccx qubits[54], qubits[133], qubits[134]; -ccx qubits[55], qubits[134], qubits[135]; -ccx qubits[56], qubits[135], qubits[136]; -ccx qubits[57], qubits[136], qubits[137]; -ccx qubits[58], qubits[137], qubits[138]; -ccx qubits[59], qubits[138], qubits[139]; -ccx qubits[60], qubits[139], qubits[140]; -ccx qubits[61], qubits[140], qubits[141]; -ccx qubits[62], qubits[141], qubits[142]; -ccx qubits[63], qubits[142], qubits[143]; -ccx qubits[64], qubits[143], qubits[144]; -ccx qubits[65], qubits[144], qubits[145]; -ccx qubits[66], qubits[145], qubits[146]; -ccx qubits[67], qubits[146], qubits[147]; -ccx qubits[68], qubits[147], qubits[148]; -ccx qubits[69], qubits[148], qubits[149]; -ccx qubits[70], qubits[149], qubits[150]; -ccx qubits[71], qubits[150], qubits[151]; -ccx qubits[72], qubits[151], qubits[152]; -ccx qubits[73], qubits[152], qubits[153]; -ccx qubits[74], qubits[153], qubits[154]; -ccx qubits[75], qubits[154], qubits[155]; -ccx qubits[76], qubits[155], qubits[156]; -ccx qubits[77], qubits[156], qubits[157]; -ccx qubits[78], qubits[157], qubits[158]; -cz qubits[158], qubits[79]; -ccx qubits[78], qubits[157], qubits[158]; -ccx qubits[77], qubits[156], qubits[157]; -ccx qubits[76], qubits[155], qubits[156]; -ccx qubits[75], qubits[154], qubits[155]; -ccx qubits[74], qubits[153], qubits[154]; -ccx qubits[73], qubits[152], qubits[153]; -ccx qubits[72], qubits[151], qubits[152]; -ccx qubits[71], qubits[150], qubits[151]; -ccx qubits[70], qubits[149], qubits[150]; -ccx qubits[69], qubits[148], qubits[149]; -ccx qubits[68], qubits[147], qubits[148]; -ccx qubits[67], qubits[146], qubits[147]; -ccx qubits[66], qubits[145], qubits[146]; -ccx qubits[65], qubits[144], qubits[145]; -ccx qubits[64], qubits[143], qubits[144]; -ccx qubits[63], qubits[142], qubits[143]; -ccx qubits[62], qubits[141], qubits[142]; -ccx qubits[61], qubits[140], qubits[141]; -ccx qubits[60], qubits[139], qubits[140]; -ccx qubits[59], qubits[138], qubits[139]; -ccx qubits[58], qubits[137], qubits[138]; -ccx qubits[57], qubits[136], qubits[137]; -ccx qubits[56], qubits[135], qubits[136]; -ccx qubits[55], qubits[134], qubits[135]; -ccx qubits[54], qubits[133], qubits[134]; -ccx qubits[53], qubits[132], qubits[133]; -ccx qubits[52], qubits[131], qubits[132]; -ccx qubits[51], qubits[130], qubits[131]; -ccx qubits[50], qubits[129], qubits[130]; -ccx qubits[49], qubits[128], qubits[129]; -ccx qubits[48], qubits[127], qubits[128]; -ccx qubits[47], qubits[126], qubits[127]; -ccx qubits[46], qubits[125], qubits[126]; -ccx qubits[45], qubits[124], qubits[125]; -ccx qubits[44], qubits[123], qubits[124]; -ccx qubits[43], qubits[122], qubits[123]; -ccx qubits[42], qubits[121], qubits[122]; -ccx qubits[41], qubits[120], qubits[121]; -ccx qubits[40], qubits[119], qubits[120]; -ccx qubits[39], qubits[118], qubits[119]; -ccx qubits[38], qubits[117], qubits[118]; -ccx qubits[37], qubits[116], qubits[117]; -ccx qubits[36], qubits[115], qubits[116]; -ccx qubits[35], qubits[114], qubits[115]; -ccx qubits[34], qubits[113], qubits[114]; -ccx qubits[33], qubits[112], qubits[113]; -ccx qubits[32], qubits[111], qubits[112]; -ccx qubits[31], qubits[110], qubits[111]; -ccx qubits[30], qubits[109], qubits[110]; -ccx qubits[29], qubits[108], qubits[109]; -ccx qubits[28], qubits[107], qubits[108]; -ccx qubits[27], qubits[106], qubits[107]; -ccx qubits[26], qubits[105], qubits[106]; -ccx qubits[25], qubits[104], qubits[105]; -ccx qubits[24], qubits[103], qubits[104]; -ccx qubits[23], qubits[102], qubits[103]; -ccx qubits[22], qubits[101], qubits[102]; -ccx qubits[21], qubits[100], qubits[101]; -ccx qubits[20], qubits[99], qubits[100]; -ccx qubits[19], qubits[98], qubits[99]; -ccx qubits[18], qubits[97], qubits[98]; -ccx qubits[17], qubits[96], qubits[97]; -ccx qubits[16], qubits[95], qubits[96]; -ccx qubits[15], qubits[94], qubits[95]; -ccx qubits[14], qubits[93], qubits[94]; -ccx qubits[13], qubits[92], qubits[93]; -ccx qubits[12], qubits[91], qubits[92]; -ccx qubits[11], qubits[90], qubits[91]; -ccx qubits[10], qubits[89], qubits[90]; -ccx qubits[9], qubits[88], qubits[89]; -ccx qubits[8], qubits[87], qubits[88]; -ccx qubits[7], qubits[86], qubits[87]; -ccx qubits[6], qubits[85], qubits[86]; -ccx qubits[5], qubits[84], qubits[85]; -ccx qubits[4], qubits[83], qubits[84]; -ccx qubits[3], qubits[82], qubits[83]; -ccx qubits[2], qubits[81], qubits[82]; -ccx qubits[0], qubits[1], qubits[81]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +cz qubits[156], qubits[157]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -z qubits[80]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +z qubits[158]; diff --git a/benchmarks/all/OEGrover/80/post.hsl b/benchmarks/all/OEGrover/80/post.hsl index 01eb6577d..268f83b8a 100644 --- a/benchmarks/all/OEGrover/80/post.hsl +++ b/benchmarks/all/OEGrover/80/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 39 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/80/post.lsta b/benchmarks/all/OEGrover/80/post.lsta deleted file mode 100644 index a9c2318f0..000000000 --- a/benchmarks/all/OEGrover/80/post.lsta +++ /dev/null @@ -1,407 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 162) -> 159 -[81,1](161, 163) -> 160 -[82,1](164, 164) -> 161 -[82,1](165, 164) -> 162 -[82,1](166, 164) -> 163 -[83,1](167, 167) -> 164 -[83,1](168, 167) -> 165 -[83,1](169, 167) -> 166 -[84,1](170, 170) -> 167 -[84,1](171, 170) -> 168 -[84,1](172, 170) -> 169 -[85,1](173, 173) -> 170 -[85,1](174, 173) -> 171 -[85,1](175, 173) -> 172 -[86,1](176, 176) -> 173 -[86,1](177, 176) -> 174 -[86,1](178, 176) -> 175 -[87,1](179, 179) -> 176 -[87,1](180, 179) -> 177 -[87,1](181, 179) -> 178 -[88,1](182, 182) -> 179 -[88,1](183, 182) -> 180 -[88,1](184, 182) -> 181 -[89,1](185, 185) -> 182 -[89,1](186, 185) -> 183 -[89,1](187, 185) -> 184 -[90,1](188, 188) -> 185 -[90,1](189, 188) -> 186 -[90,1](190, 188) -> 187 -[91,1](191, 191) -> 188 -[91,1](192, 191) -> 189 -[91,1](193, 191) -> 190 -[92,1](194, 194) -> 191 -[92,1](195, 194) -> 192 -[92,1](196, 194) -> 193 -[93,1](197, 197) -> 194 -[93,1](198, 197) -> 195 -[93,1](199, 197) -> 196 -[94,1](200, 200) -> 197 -[94,1](201, 200) -> 198 -[94,1](202, 200) -> 199 -[95,1](203, 203) -> 200 -[95,1](204, 203) -> 201 -[95,1](205, 203) -> 202 -[96,1](206, 206) -> 203 -[96,1](207, 206) -> 204 -[96,1](208, 206) -> 205 -[97,1](209, 209) -> 206 -[97,1](210, 209) -> 207 -[97,1](211, 209) -> 208 -[98,1](212, 212) -> 209 -[98,1](213, 212) -> 210 -[98,1](214, 212) -> 211 -[99,1](215, 215) -> 212 -[99,1](216, 215) -> 213 -[99,1](217, 215) -> 214 -[100,1](218, 218) -> 215 -[100,1](219, 218) -> 216 -[100,1](220, 218) -> 217 -[101,1](221, 221) -> 218 -[101,1](222, 221) -> 219 -[101,1](223, 221) -> 220 -[102,1](224, 224) -> 221 -[102,1](225, 224) -> 222 -[102,1](226, 224) -> 223 -[103,1](227, 227) -> 224 -[103,1](228, 227) -> 225 -[103,1](229, 227) -> 226 -[104,1](230, 230) -> 227 -[104,1](231, 230) -> 228 -[104,1](232, 230) -> 229 -[105,1](233, 233) -> 230 -[105,1](234, 233) -> 231 -[105,1](235, 233) -> 232 -[106,1](236, 236) -> 233 -[106,1](237, 236) -> 234 -[106,1](238, 236) -> 235 -[107,1](239, 239) -> 236 -[107,1](240, 239) -> 237 -[107,1](241, 239) -> 238 -[108,1](242, 242) -> 239 -[108,1](243, 242) -> 240 -[108,1](244, 242) -> 241 -[109,1](245, 245) -> 242 -[109,1](246, 245) -> 243 -[109,1](247, 245) -> 244 -[110,1](248, 248) -> 245 -[110,1](249, 248) -> 246 -[110,1](250, 248) -> 247 -[111,1](251, 251) -> 248 -[111,1](252, 251) -> 249 -[111,1](253, 251) -> 250 -[112,1](254, 254) -> 251 -[112,1](255, 254) -> 252 -[112,1](256, 254) -> 253 -[113,1](257, 257) -> 254 -[113,1](258, 257) -> 255 -[113,1](259, 257) -> 256 -[114,1](260, 260) -> 257 -[114,1](261, 260) -> 258 -[114,1](262, 260) -> 259 -[115,1](263, 263) -> 260 -[115,1](264, 263) -> 261 -[115,1](265, 263) -> 262 -[116,1](266, 266) -> 263 -[116,1](267, 266) -> 264 -[116,1](268, 266) -> 265 -[117,1](269, 269) -> 266 -[117,1](270, 269) -> 267 -[117,1](271, 269) -> 268 -[118,1](272, 272) -> 269 -[118,1](273, 272) -> 270 -[118,1](274, 272) -> 271 -[119,1](275, 275) -> 272 -[119,1](276, 275) -> 273 -[119,1](277, 275) -> 274 -[120,1](278, 278) -> 275 -[120,1](279, 278) -> 276 -[120,1](280, 278) -> 277 -[121,1](281, 281) -> 278 -[121,1](282, 281) -> 279 -[121,1](283, 281) -> 280 -[122,1](284, 284) -> 281 -[122,1](285, 284) -> 282 -[122,1](286, 284) -> 283 -[123,1](287, 287) -> 284 -[123,1](288, 287) -> 285 -[123,1](289, 287) -> 286 -[124,1](290, 290) -> 287 -[124,1](291, 290) -> 288 -[124,1](292, 290) -> 289 -[125,1](293, 293) -> 290 -[125,1](294, 293) -> 291 -[125,1](295, 293) -> 292 -[126,1](296, 296) -> 293 -[126,1](297, 296) -> 294 -[126,1](298, 296) -> 295 -[127,1](299, 299) -> 296 -[127,1](300, 299) -> 297 -[127,1](301, 299) -> 298 -[128,1](302, 302) -> 299 -[128,1](303, 302) -> 300 -[128,1](304, 302) -> 301 -[129,1](305, 305) -> 302 -[129,1](306, 305) -> 303 -[129,1](307, 305) -> 304 -[130,1](308, 308) -> 305 -[130,1](309, 308) -> 306 -[130,1](310, 308) -> 307 -[131,1](311, 311) -> 308 -[131,1](312, 311) -> 309 -[131,1](313, 311) -> 310 -[132,1](314, 314) -> 311 -[132,1](315, 314) -> 312 -[132,1](316, 314) -> 313 -[133,1](317, 317) -> 314 -[133,1](318, 317) -> 315 -[133,1](319, 317) -> 316 -[134,1](320, 320) -> 317 -[134,1](321, 320) -> 318 -[134,1](322, 320) -> 319 -[135,1](323, 323) -> 320 -[135,1](324, 323) -> 321 -[135,1](325, 323) -> 322 -[136,1](326, 326) -> 323 -[136,1](327, 326) -> 324 -[136,1](328, 326) -> 325 -[137,1](329, 329) -> 326 -[137,1](330, 329) -> 327 -[137,1](331, 329) -> 328 -[138,1](332, 332) -> 329 -[138,1](333, 332) -> 330 -[138,1](334, 332) -> 331 -[139,1](335, 335) -> 332 -[139,1](336, 335) -> 333 -[139,1](337, 335) -> 334 -[140,1](338, 338) -> 335 -[140,1](339, 338) -> 336 -[140,1](340, 338) -> 337 -[141,1](341, 341) -> 338 -[141,1](342, 341) -> 339 -[141,1](343, 341) -> 340 -[142,1](344, 344) -> 341 -[142,1](345, 344) -> 342 -[142,1](346, 344) -> 343 -[143,1](347, 347) -> 344 -[143,1](348, 347) -> 345 -[143,1](349, 347) -> 346 -[144,1](350, 350) -> 347 -[144,1](351, 350) -> 348 -[144,1](352, 350) -> 349 -[145,1](353, 353) -> 350 -[145,1](354, 353) -> 351 -[145,1](355, 353) -> 352 -[146,1](356, 356) -> 353 -[146,1](357, 356) -> 354 -[146,1](358, 356) -> 355 -[147,1](359, 359) -> 356 -[147,1](360, 359) -> 357 -[147,1](361, 359) -> 358 -[148,1](362, 362) -> 359 -[148,1](363, 362) -> 360 -[148,1](364, 362) -> 361 -[149,1](365, 365) -> 362 -[149,1](366, 365) -> 363 -[149,1](367, 365) -> 364 -[150,1](368, 368) -> 365 -[150,1](369, 368) -> 366 -[150,1](370, 368) -> 367 -[151,1](371, 371) -> 368 -[151,1](372, 371) -> 369 -[151,1](373, 371) -> 370 -[152,1](374, 374) -> 371 -[152,1](375, 374) -> 372 -[152,1](376, 374) -> 373 -[153,1](377, 377) -> 374 -[153,1](378, 377) -> 375 -[153,1](379, 377) -> 376 -[154,1](380, 380) -> 377 -[154,1](381, 380) -> 378 -[154,1](382, 380) -> 379 -[155,1](383, 383) -> 380 -[155,1](384, 383) -> 381 -[155,1](385, 383) -> 382 -[156,1](386, 386) -> 383 -[156,1](387, 386) -> 384 -[156,1](388, 386) -> 385 -[157,1](389, 389) -> 386 -[157,1](390, 389) -> 387 -[157,1](391, 389) -> 388 -[158,1](392, 392) -> 389 -[158,1](393, 392) -> 390 -[158,1](394, 392) -> 391 -[159,1](395, 395) -> 392 -[159,1](396, 395) -> 393 -[159,1](397, 395) -> 394 -[160,1](398, 398) -> 395 -[160,1](399, 398) -> 396 -[160,1](400, 398) -> 397 -[p1,1] -> 398 -[p2,1] -> 399 -[p3,1] -> 400 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/80/pre.hsl b/benchmarks/all/OEGrover/80/pre.hsl index 4eb450630..d186e3d78 100644 --- a/benchmarks/all/OEGrover/80/pre.hsl +++ b/benchmarks/all/OEGrover/80/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 39 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1208925819614629174706175 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/80/pre.lsta b/benchmarks/all/OEGrover/80/pre.lsta deleted file mode 100644 index 3ff5e7ab3..000000000 --- a/benchmarks/all/OEGrover/80/pre.lsta +++ /dev/null @@ -1,411 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 162) -> 159 -[81,1](161, 163) -> 160 -[82,1](164, 164) -> 161 -[82,1](165, 164) -> 162 -[82,1](166, 164) -> 163 -[83,1](167, 167) -> 164 -[83,1](168, 167) -> 165 -[83,1](169, 167) -> 166 -[84,1](170, 170) -> 167 -[84,1](171, 170) -> 168 -[84,1](172, 170) -> 169 -[85,1](173, 173) -> 170 -[85,1](174, 173) -> 171 -[85,1](175, 173) -> 172 -[86,1](176, 176) -> 173 -[86,1](177, 176) -> 174 -[86,1](178, 176) -> 175 -[87,1](179, 179) -> 176 -[87,1](180, 179) -> 177 -[87,1](181, 179) -> 178 -[88,1](182, 182) -> 179 -[88,1](183, 182) -> 180 -[88,1](184, 182) -> 181 -[89,1](185, 185) -> 182 -[89,1](186, 185) -> 183 -[89,1](187, 185) -> 184 -[90,1](188, 188) -> 185 -[90,1](189, 188) -> 186 -[90,1](190, 188) -> 187 -[91,1](191, 191) -> 188 -[91,1](192, 191) -> 189 -[91,1](193, 191) -> 190 -[92,1](194, 194) -> 191 -[92,1](195, 194) -> 192 -[92,1](196, 194) -> 193 -[93,1](197, 197) -> 194 -[93,1](198, 197) -> 195 -[93,1](199, 197) -> 196 -[94,1](200, 200) -> 197 -[94,1](201, 200) -> 198 -[94,1](202, 200) -> 199 -[95,1](203, 203) -> 200 -[95,1](204, 203) -> 201 -[95,1](205, 203) -> 202 -[96,1](206, 206) -> 203 -[96,1](207, 206) -> 204 -[96,1](208, 206) -> 205 -[97,1](209, 209) -> 206 -[97,1](210, 209) -> 207 -[97,1](211, 209) -> 208 -[98,1](212, 212) -> 209 -[98,1](213, 212) -> 210 -[98,1](214, 212) -> 211 -[99,1](215, 215) -> 212 -[99,1](216, 215) -> 213 -[99,1](217, 215) -> 214 -[100,1](218, 218) -> 215 -[100,1](219, 218) -> 216 -[100,1](220, 218) -> 217 -[101,1](221, 221) -> 218 -[101,1](222, 221) -> 219 -[101,1](223, 221) -> 220 -[102,1](224, 224) -> 221 -[102,1](225, 224) -> 222 -[102,1](226, 224) -> 223 -[103,1](227, 227) -> 224 -[103,1](228, 227) -> 225 -[103,1](229, 227) -> 226 -[104,1](230, 230) -> 227 -[104,1](231, 230) -> 228 -[104,1](232, 230) -> 229 -[105,1](233, 233) -> 230 -[105,1](234, 233) -> 231 -[105,1](235, 233) -> 232 -[106,1](236, 236) -> 233 -[106,1](237, 236) -> 234 -[106,1](238, 236) -> 235 -[107,1](239, 239) -> 236 -[107,1](240, 239) -> 237 -[107,1](241, 239) -> 238 -[108,1](242, 242) -> 239 -[108,1](243, 242) -> 240 -[108,1](244, 242) -> 241 -[109,1](245, 245) -> 242 -[109,1](246, 245) -> 243 -[109,1](247, 245) -> 244 -[110,1](248, 248) -> 245 -[110,1](249, 248) -> 246 -[110,1](250, 248) -> 247 -[111,1](251, 251) -> 248 -[111,1](252, 251) -> 249 -[111,1](253, 251) -> 250 -[112,1](254, 254) -> 251 -[112,1](255, 254) -> 252 -[112,1](256, 254) -> 253 -[113,1](257, 257) -> 254 -[113,1](258, 257) -> 255 -[113,1](259, 257) -> 256 -[114,1](260, 260) -> 257 -[114,1](261, 260) -> 258 -[114,1](262, 260) -> 259 -[115,1](263, 263) -> 260 -[115,1](264, 263) -> 261 -[115,1](265, 263) -> 262 -[116,1](266, 266) -> 263 -[116,1](267, 266) -> 264 -[116,1](268, 266) -> 265 -[117,1](269, 269) -> 266 -[117,1](270, 269) -> 267 -[117,1](271, 269) -> 268 -[118,1](272, 272) -> 269 -[118,1](273, 272) -> 270 -[118,1](274, 272) -> 271 -[119,1](275, 275) -> 272 -[119,1](276, 275) -> 273 -[119,1](277, 275) -> 274 -[120,1](278, 278) -> 275 -[120,1](279, 278) -> 276 -[120,1](280, 278) -> 277 -[121,1](281, 281) -> 278 -[121,1](282, 281) -> 279 -[121,1](283, 281) -> 280 -[122,1](284, 284) -> 281 -[122,1](285, 284) -> 282 -[122,1](286, 284) -> 283 -[123,1](287, 287) -> 284 -[123,1](288, 287) -> 285 -[123,1](289, 287) -> 286 -[124,1](290, 290) -> 287 -[124,1](291, 290) -> 288 -[124,1](292, 290) -> 289 -[125,1](293, 293) -> 290 -[125,1](294, 293) -> 291 -[125,1](295, 293) -> 292 -[126,1](296, 296) -> 293 -[126,1](297, 296) -> 294 -[126,1](298, 296) -> 295 -[127,1](299, 299) -> 296 -[127,1](300, 299) -> 297 -[127,1](301, 299) -> 298 -[128,1](302, 302) -> 299 -[128,1](303, 302) -> 300 -[128,1](304, 302) -> 301 -[129,1](305, 305) -> 302 -[129,1](306, 305) -> 303 -[129,1](307, 305) -> 304 -[130,1](308, 308) -> 305 -[130,1](309, 308) -> 306 -[130,1](310, 308) -> 307 -[131,1](311, 311) -> 308 -[131,1](312, 311) -> 309 -[131,1](313, 311) -> 310 -[132,1](314, 314) -> 311 -[132,1](315, 314) -> 312 -[132,1](316, 314) -> 313 -[133,1](317, 317) -> 314 -[133,1](318, 317) -> 315 -[133,1](319, 317) -> 316 -[134,1](320, 320) -> 317 -[134,1](321, 320) -> 318 -[134,1](322, 320) -> 319 -[135,1](323, 323) -> 320 -[135,1](324, 323) -> 321 -[135,1](325, 323) -> 322 -[136,1](326, 326) -> 323 -[136,1](327, 326) -> 324 -[136,1](328, 326) -> 325 -[137,1](329, 329) -> 326 -[137,1](330, 329) -> 327 -[137,1](331, 329) -> 328 -[138,1](332, 332) -> 329 -[138,1](333, 332) -> 330 -[138,1](334, 332) -> 331 -[139,1](335, 335) -> 332 -[139,1](336, 335) -> 333 -[139,1](337, 335) -> 334 -[140,1](338, 338) -> 335 -[140,1](339, 338) -> 336 -[140,1](340, 338) -> 337 -[141,1](341, 341) -> 338 -[141,1](342, 341) -> 339 -[141,1](343, 341) -> 340 -[142,1](344, 344) -> 341 -[142,1](345, 344) -> 342 -[142,1](346, 344) -> 343 -[143,1](347, 347) -> 344 -[143,1](348, 347) -> 345 -[143,1](349, 347) -> 346 -[144,1](350, 350) -> 347 -[144,1](351, 350) -> 348 -[144,1](352, 350) -> 349 -[145,1](353, 353) -> 350 -[145,1](354, 353) -> 351 -[145,1](355, 353) -> 352 -[146,1](356, 356) -> 353 -[146,1](357, 356) -> 354 -[146,1](358, 356) -> 355 -[147,1](359, 359) -> 356 -[147,1](360, 359) -> 357 -[147,1](361, 359) -> 358 -[148,1](362, 362) -> 359 -[148,1](363, 362) -> 360 -[148,1](364, 362) -> 361 -[149,1](365, 365) -> 362 -[149,1](366, 365) -> 363 -[149,1](367, 365) -> 364 -[150,1](368, 368) -> 365 -[150,1](369, 368) -> 366 -[150,1](370, 368) -> 367 -[151,1](371, 371) -> 368 -[151,1](372, 371) -> 369 -[151,1](373, 371) -> 370 -[152,1](374, 374) -> 371 -[152,1](375, 374) -> 372 -[152,1](376, 374) -> 373 -[153,1](377, 377) -> 374 -[153,1](378, 377) -> 375 -[153,1](379, 377) -> 376 -[154,1](380, 380) -> 377 -[154,1](381, 380) -> 378 -[154,1](382, 380) -> 379 -[155,1](383, 383) -> 380 -[155,1](384, 383) -> 381 -[155,1](385, 383) -> 382 -[156,1](386, 386) -> 383 -[156,1](387, 386) -> 384 -[156,1](388, 386) -> 385 -[157,1](389, 389) -> 386 -[157,1](390, 389) -> 387 -[157,1](391, 389) -> 388 -[158,1](392, 392) -> 389 -[158,1](393, 392) -> 390 -[158,1](394, 392) -> 391 -[159,1](395, 395) -> 392 -[159,1](396, 395) -> 393 -[159,1](397, 395) -> 394 -[160,1](398, 398) -> 395 -[160,1](399, 398) -> 396 -[160,1](400, 398) -> 397 -[c0,1] -> 398 -[a,1] -> 399 -[b,1] -> 400 -Constraints -1208925819614629174706175 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/81/circuit.qasm b/benchmarks/all/OEGrover/81/circuit.qasm index 5e68a823b..2d5ea2448 100644 --- a/benchmarks/all/OEGrover/81/circuit.qasm +++ b/benchmarks/all/OEGrover/81/circuit.qasm @@ -1,207 +1,207 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[162]; +qreg qubits[161]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -ccx qubits[0], qubits[1], qubits[82]; -ccx qubits[2], qubits[82], qubits[83]; -ccx qubits[3], qubits[83], qubits[84]; -ccx qubits[4], qubits[84], qubits[85]; -ccx qubits[5], qubits[85], qubits[86]; -ccx qubits[6], qubits[86], qubits[87]; -ccx qubits[7], qubits[87], qubits[88]; -ccx qubits[8], qubits[88], qubits[89]; -ccx qubits[9], qubits[89], qubits[90]; -ccx qubits[10], qubits[90], qubits[91]; -ccx qubits[11], qubits[91], qubits[92]; -ccx qubits[12], qubits[92], qubits[93]; -ccx qubits[13], qubits[93], qubits[94]; -ccx qubits[14], qubits[94], qubits[95]; -ccx qubits[15], qubits[95], qubits[96]; -ccx qubits[16], qubits[96], qubits[97]; -ccx qubits[17], qubits[97], qubits[98]; -ccx qubits[18], qubits[98], qubits[99]; -ccx qubits[19], qubits[99], qubits[100]; -ccx qubits[20], qubits[100], qubits[101]; -ccx qubits[21], qubits[101], qubits[102]; -ccx qubits[22], qubits[102], qubits[103]; -ccx qubits[23], qubits[103], qubits[104]; -ccx qubits[24], qubits[104], qubits[105]; -ccx qubits[25], qubits[105], qubits[106]; -ccx qubits[26], qubits[106], qubits[107]; -ccx qubits[27], qubits[107], qubits[108]; -ccx qubits[28], qubits[108], qubits[109]; -ccx qubits[29], qubits[109], qubits[110]; -ccx qubits[30], qubits[110], qubits[111]; -ccx qubits[31], qubits[111], qubits[112]; -ccx qubits[32], qubits[112], qubits[113]; -ccx qubits[33], qubits[113], qubits[114]; -ccx qubits[34], qubits[114], qubits[115]; -ccx qubits[35], qubits[115], qubits[116]; -ccx qubits[36], qubits[116], qubits[117]; -ccx qubits[37], qubits[117], qubits[118]; -ccx qubits[38], qubits[118], qubits[119]; -ccx qubits[39], qubits[119], qubits[120]; -ccx qubits[40], qubits[120], qubits[121]; -ccx qubits[41], qubits[121], qubits[122]; -ccx qubits[42], qubits[122], qubits[123]; -ccx qubits[43], qubits[123], qubits[124]; -ccx qubits[44], qubits[124], qubits[125]; -ccx qubits[45], qubits[125], qubits[126]; -ccx qubits[46], qubits[126], qubits[127]; -ccx qubits[47], qubits[127], qubits[128]; -ccx qubits[48], qubits[128], qubits[129]; -ccx qubits[49], qubits[129], qubits[130]; -ccx qubits[50], qubits[130], qubits[131]; -ccx qubits[51], qubits[131], qubits[132]; -ccx qubits[52], qubits[132], qubits[133]; -ccx qubits[53], qubits[133], qubits[134]; -ccx qubits[54], qubits[134], qubits[135]; -ccx qubits[55], qubits[135], qubits[136]; -ccx qubits[56], qubits[136], qubits[137]; -ccx qubits[57], qubits[137], qubits[138]; -ccx qubits[58], qubits[138], qubits[139]; -ccx qubits[59], qubits[139], qubits[140]; -ccx qubits[60], qubits[140], qubits[141]; -ccx qubits[61], qubits[141], qubits[142]; -ccx qubits[62], qubits[142], qubits[143]; -ccx qubits[63], qubits[143], qubits[144]; -ccx qubits[64], qubits[144], qubits[145]; -ccx qubits[65], qubits[145], qubits[146]; -ccx qubits[66], qubits[146], qubits[147]; -ccx qubits[67], qubits[147], qubits[148]; -ccx qubits[68], qubits[148], qubits[149]; -ccx qubits[69], qubits[149], qubits[150]; -ccx qubits[70], qubits[150], qubits[151]; -ccx qubits[71], qubits[151], qubits[152]; -ccx qubits[72], qubits[152], qubits[153]; -ccx qubits[73], qubits[153], qubits[154]; -ccx qubits[74], qubits[154], qubits[155]; -ccx qubits[75], qubits[155], qubits[156]; -ccx qubits[76], qubits[156], qubits[157]; -ccx qubits[77], qubits[157], qubits[158]; -ccx qubits[78], qubits[158], qubits[159]; -ccx qubits[79], qubits[159], qubits[160]; -cz qubits[160], qubits[80]; -ccx qubits[79], qubits[159], qubits[160]; -ccx qubits[78], qubits[158], qubits[159]; -ccx qubits[77], qubits[157], qubits[158]; -ccx qubits[76], qubits[156], qubits[157]; -ccx qubits[75], qubits[155], qubits[156]; -ccx qubits[74], qubits[154], qubits[155]; -ccx qubits[73], qubits[153], qubits[154]; -ccx qubits[72], qubits[152], qubits[153]; -ccx qubits[71], qubits[151], qubits[152]; -ccx qubits[70], qubits[150], qubits[151]; -ccx qubits[69], qubits[149], qubits[150]; -ccx qubits[68], qubits[148], qubits[149]; -ccx qubits[67], qubits[147], qubits[148]; -ccx qubits[66], qubits[146], qubits[147]; -ccx qubits[65], qubits[145], qubits[146]; -ccx qubits[64], qubits[144], qubits[145]; -ccx qubits[63], qubits[143], qubits[144]; -ccx qubits[62], qubits[142], qubits[143]; -ccx qubits[61], qubits[141], qubits[142]; -ccx qubits[60], qubits[140], qubits[141]; -ccx qubits[59], qubits[139], qubits[140]; -ccx qubits[58], qubits[138], qubits[139]; -ccx qubits[57], qubits[137], qubits[138]; -ccx qubits[56], qubits[136], qubits[137]; -ccx qubits[55], qubits[135], qubits[136]; -ccx qubits[54], qubits[134], qubits[135]; -ccx qubits[53], qubits[133], qubits[134]; -ccx qubits[52], qubits[132], qubits[133]; -ccx qubits[51], qubits[131], qubits[132]; -ccx qubits[50], qubits[130], qubits[131]; -ccx qubits[49], qubits[129], qubits[130]; -ccx qubits[48], qubits[128], qubits[129]; -ccx qubits[47], qubits[127], qubits[128]; -ccx qubits[46], qubits[126], qubits[127]; -ccx qubits[45], qubits[125], qubits[126]; -ccx qubits[44], qubits[124], qubits[125]; -ccx qubits[43], qubits[123], qubits[124]; -ccx qubits[42], qubits[122], qubits[123]; -ccx qubits[41], qubits[121], qubits[122]; -ccx qubits[40], qubits[120], qubits[121]; -ccx qubits[39], qubits[119], qubits[120]; -ccx qubits[38], qubits[118], qubits[119]; -ccx qubits[37], qubits[117], qubits[118]; -ccx qubits[36], qubits[116], qubits[117]; -ccx qubits[35], qubits[115], qubits[116]; -ccx qubits[34], qubits[114], qubits[115]; -ccx qubits[33], qubits[113], qubits[114]; -ccx qubits[32], qubits[112], qubits[113]; -ccx qubits[31], qubits[111], qubits[112]; -ccx qubits[30], qubits[110], qubits[111]; -ccx qubits[29], qubits[109], qubits[110]; -ccx qubits[28], qubits[108], qubits[109]; -ccx qubits[27], qubits[107], qubits[108]; -ccx qubits[26], qubits[106], qubits[107]; -ccx qubits[25], qubits[105], qubits[106]; -ccx qubits[24], qubits[104], qubits[105]; -ccx qubits[23], qubits[103], qubits[104]; -ccx qubits[22], qubits[102], qubits[103]; -ccx qubits[21], qubits[101], qubits[102]; -ccx qubits[20], qubits[100], qubits[101]; -ccx qubits[19], qubits[99], qubits[100]; -ccx qubits[18], qubits[98], qubits[99]; -ccx qubits[17], qubits[97], qubits[98]; -ccx qubits[16], qubits[96], qubits[97]; -ccx qubits[15], qubits[95], qubits[96]; -ccx qubits[14], qubits[94], qubits[95]; -ccx qubits[13], qubits[93], qubits[94]; -ccx qubits[12], qubits[92], qubits[93]; -ccx qubits[11], qubits[91], qubits[92]; -ccx qubits[10], qubits[90], qubits[91]; -ccx qubits[9], qubits[89], qubits[90]; -ccx qubits[8], qubits[88], qubits[89]; -ccx qubits[7], qubits[87], qubits[88]; -ccx qubits[6], qubits[86], qubits[87]; -ccx qubits[5], qubits[85], qubits[86]; -ccx qubits[4], qubits[84], qubits[85]; -ccx qubits[3], qubits[83], qubits[84]; -ccx qubits[2], qubits[82], qubits[83]; -ccx qubits[0], qubits[1], qubits[82]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +cz qubits[158], qubits[159]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -245,485 +245,485 @@ x qubits[78]; x qubits[80]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; -ccx qubits[0], qubits[1], qubits[82]; -ccx qubits[2], qubits[82], qubits[83]; -ccx qubits[3], qubits[83], qubits[84]; -ccx qubits[4], qubits[84], qubits[85]; -ccx qubits[5], qubits[85], qubits[86]; -ccx qubits[6], qubits[86], qubits[87]; -ccx qubits[7], qubits[87], qubits[88]; -ccx qubits[8], qubits[88], qubits[89]; -ccx qubits[9], qubits[89], qubits[90]; -ccx qubits[10], qubits[90], qubits[91]; -ccx qubits[11], qubits[91], qubits[92]; -ccx qubits[12], qubits[92], qubits[93]; -ccx qubits[13], qubits[93], qubits[94]; -ccx qubits[14], qubits[94], qubits[95]; -ccx qubits[15], qubits[95], qubits[96]; -ccx qubits[16], qubits[96], qubits[97]; -ccx qubits[17], qubits[97], qubits[98]; -ccx qubits[18], qubits[98], qubits[99]; -ccx qubits[19], qubits[99], qubits[100]; -ccx qubits[20], qubits[100], qubits[101]; -ccx qubits[21], qubits[101], qubits[102]; -ccx qubits[22], qubits[102], qubits[103]; -ccx qubits[23], qubits[103], qubits[104]; -ccx qubits[24], qubits[104], qubits[105]; -ccx qubits[25], qubits[105], qubits[106]; -ccx qubits[26], qubits[106], qubits[107]; -ccx qubits[27], qubits[107], qubits[108]; -ccx qubits[28], qubits[108], qubits[109]; -ccx qubits[29], qubits[109], qubits[110]; -ccx qubits[30], qubits[110], qubits[111]; -ccx qubits[31], qubits[111], qubits[112]; -ccx qubits[32], qubits[112], qubits[113]; -ccx qubits[33], qubits[113], qubits[114]; -ccx qubits[34], qubits[114], qubits[115]; -ccx qubits[35], qubits[115], qubits[116]; -ccx qubits[36], qubits[116], qubits[117]; -ccx qubits[37], qubits[117], qubits[118]; -ccx qubits[38], qubits[118], qubits[119]; -ccx qubits[39], qubits[119], qubits[120]; -ccx qubits[40], qubits[120], qubits[121]; -ccx qubits[41], qubits[121], qubits[122]; -ccx qubits[42], qubits[122], qubits[123]; -ccx qubits[43], qubits[123], qubits[124]; -ccx qubits[44], qubits[124], qubits[125]; -ccx qubits[45], qubits[125], qubits[126]; -ccx qubits[46], qubits[126], qubits[127]; -ccx qubits[47], qubits[127], qubits[128]; -ccx qubits[48], qubits[128], qubits[129]; -ccx qubits[49], qubits[129], qubits[130]; -ccx qubits[50], qubits[130], qubits[131]; -ccx qubits[51], qubits[131], qubits[132]; -ccx qubits[52], qubits[132], qubits[133]; -ccx qubits[53], qubits[133], qubits[134]; -ccx qubits[54], qubits[134], qubits[135]; -ccx qubits[55], qubits[135], qubits[136]; -ccx qubits[56], qubits[136], qubits[137]; -ccx qubits[57], qubits[137], qubits[138]; -ccx qubits[58], qubits[138], qubits[139]; -ccx qubits[59], qubits[139], qubits[140]; -ccx qubits[60], qubits[140], qubits[141]; -ccx qubits[61], qubits[141], qubits[142]; -ccx qubits[62], qubits[142], qubits[143]; -ccx qubits[63], qubits[143], qubits[144]; -ccx qubits[64], qubits[144], qubits[145]; -ccx qubits[65], qubits[145], qubits[146]; -ccx qubits[66], qubits[146], qubits[147]; -ccx qubits[67], qubits[147], qubits[148]; -ccx qubits[68], qubits[148], qubits[149]; -ccx qubits[69], qubits[149], qubits[150]; -ccx qubits[70], qubits[150], qubits[151]; -ccx qubits[71], qubits[151], qubits[152]; -ccx qubits[72], qubits[152], qubits[153]; -ccx qubits[73], qubits[153], qubits[154]; -ccx qubits[74], qubits[154], qubits[155]; -ccx qubits[75], qubits[155], qubits[156]; -ccx qubits[76], qubits[156], qubits[157]; -ccx qubits[77], qubits[157], qubits[158]; -ccx qubits[78], qubits[158], qubits[159]; -ccx qubits[79], qubits[159], qubits[160]; -cz qubits[160], qubits[80]; -ccx qubits[79], qubits[159], qubits[160]; -ccx qubits[78], qubits[158], qubits[159]; -ccx qubits[77], qubits[157], qubits[158]; -ccx qubits[76], qubits[156], qubits[157]; -ccx qubits[75], qubits[155], qubits[156]; -ccx qubits[74], qubits[154], qubits[155]; -ccx qubits[73], qubits[153], qubits[154]; -ccx qubits[72], qubits[152], qubits[153]; -ccx qubits[71], qubits[151], qubits[152]; -ccx qubits[70], qubits[150], qubits[151]; -ccx qubits[69], qubits[149], qubits[150]; -ccx qubits[68], qubits[148], qubits[149]; -ccx qubits[67], qubits[147], qubits[148]; -ccx qubits[66], qubits[146], qubits[147]; -ccx qubits[65], qubits[145], qubits[146]; -ccx qubits[64], qubits[144], qubits[145]; -ccx qubits[63], qubits[143], qubits[144]; -ccx qubits[62], qubits[142], qubits[143]; -ccx qubits[61], qubits[141], qubits[142]; -ccx qubits[60], qubits[140], qubits[141]; -ccx qubits[59], qubits[139], qubits[140]; -ccx qubits[58], qubits[138], qubits[139]; -ccx qubits[57], qubits[137], qubits[138]; -ccx qubits[56], qubits[136], qubits[137]; -ccx qubits[55], qubits[135], qubits[136]; -ccx qubits[54], qubits[134], qubits[135]; -ccx qubits[53], qubits[133], qubits[134]; -ccx qubits[52], qubits[132], qubits[133]; -ccx qubits[51], qubits[131], qubits[132]; -ccx qubits[50], qubits[130], qubits[131]; -ccx qubits[49], qubits[129], qubits[130]; -ccx qubits[48], qubits[128], qubits[129]; -ccx qubits[47], qubits[127], qubits[128]; -ccx qubits[46], qubits[126], qubits[127]; -ccx qubits[45], qubits[125], qubits[126]; -ccx qubits[44], qubits[124], qubits[125]; -ccx qubits[43], qubits[123], qubits[124]; -ccx qubits[42], qubits[122], qubits[123]; -ccx qubits[41], qubits[121], qubits[122]; -ccx qubits[40], qubits[120], qubits[121]; -ccx qubits[39], qubits[119], qubits[120]; -ccx qubits[38], qubits[118], qubits[119]; -ccx qubits[37], qubits[117], qubits[118]; -ccx qubits[36], qubits[116], qubits[117]; -ccx qubits[35], qubits[115], qubits[116]; -ccx qubits[34], qubits[114], qubits[115]; -ccx qubits[33], qubits[113], qubits[114]; -ccx qubits[32], qubits[112], qubits[113]; -ccx qubits[31], qubits[111], qubits[112]; -ccx qubits[30], qubits[110], qubits[111]; -ccx qubits[29], qubits[109], qubits[110]; -ccx qubits[28], qubits[108], qubits[109]; -ccx qubits[27], qubits[107], qubits[108]; -ccx qubits[26], qubits[106], qubits[107]; -ccx qubits[25], qubits[105], qubits[106]; -ccx qubits[24], qubits[104], qubits[105]; -ccx qubits[23], qubits[103], qubits[104]; -ccx qubits[22], qubits[102], qubits[103]; -ccx qubits[21], qubits[101], qubits[102]; -ccx qubits[20], qubits[100], qubits[101]; -ccx qubits[19], qubits[99], qubits[100]; -ccx qubits[18], qubits[98], qubits[99]; -ccx qubits[17], qubits[97], qubits[98]; -ccx qubits[16], qubits[96], qubits[97]; -ccx qubits[15], qubits[95], qubits[96]; -ccx qubits[14], qubits[94], qubits[95]; -ccx qubits[13], qubits[93], qubits[94]; -ccx qubits[12], qubits[92], qubits[93]; -ccx qubits[11], qubits[91], qubits[92]; -ccx qubits[10], qubits[90], qubits[91]; -ccx qubits[9], qubits[89], qubits[90]; -ccx qubits[8], qubits[88], qubits[89]; -ccx qubits[7], qubits[87], qubits[88]; -ccx qubits[6], qubits[86], qubits[87]; -ccx qubits[5], qubits[85], qubits[86]; -ccx qubits[4], qubits[84], qubits[85]; -ccx qubits[3], qubits[83], qubits[84]; -ccx qubits[2], qubits[82], qubits[83]; -ccx qubits[0], qubits[1], qubits[82]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +cz qubits[158], qubits[159]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; +x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; -z qubits[81]; +h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +z qubits[160]; diff --git a/benchmarks/all/OEGrover/81/post.hsl b/benchmarks/all/OEGrover/81/post.hsl index 2e50c9e0d..57eee1b22 100644 --- a/benchmarks/all/OEGrover/81/post.hsl +++ b/benchmarks/all/OEGrover/81/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 39 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/81/post.lsta b/benchmarks/all/OEGrover/81/post.lsta deleted file mode 100644 index c3acc2c72..000000000 --- a/benchmarks/all/OEGrover/81/post.lsta +++ /dev/null @@ -1,412 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 164) -> 161 -[82,1](163, 165) -> 162 -[83,1](166, 166) -> 163 -[83,1](167, 166) -> 164 -[83,1](168, 166) -> 165 -[84,1](169, 169) -> 166 -[84,1](170, 169) -> 167 -[84,1](171, 169) -> 168 -[85,1](172, 172) -> 169 -[85,1](173, 172) -> 170 -[85,1](174, 172) -> 171 -[86,1](175, 175) -> 172 -[86,1](176, 175) -> 173 -[86,1](177, 175) -> 174 -[87,1](178, 178) -> 175 -[87,1](179, 178) -> 176 -[87,1](180, 178) -> 177 -[88,1](181, 181) -> 178 -[88,1](182, 181) -> 179 -[88,1](183, 181) -> 180 -[89,1](184, 184) -> 181 -[89,1](185, 184) -> 182 -[89,1](186, 184) -> 183 -[90,1](187, 187) -> 184 -[90,1](188, 187) -> 185 -[90,1](189, 187) -> 186 -[91,1](190, 190) -> 187 -[91,1](191, 190) -> 188 -[91,1](192, 190) -> 189 -[92,1](193, 193) -> 190 -[92,1](194, 193) -> 191 -[92,1](195, 193) -> 192 -[93,1](196, 196) -> 193 -[93,1](197, 196) -> 194 -[93,1](198, 196) -> 195 -[94,1](199, 199) -> 196 -[94,1](200, 199) -> 197 -[94,1](201, 199) -> 198 -[95,1](202, 202) -> 199 -[95,1](203, 202) -> 200 -[95,1](204, 202) -> 201 -[96,1](205, 205) -> 202 -[96,1](206, 205) -> 203 -[96,1](207, 205) -> 204 -[97,1](208, 208) -> 205 -[97,1](209, 208) -> 206 -[97,1](210, 208) -> 207 -[98,1](211, 211) -> 208 -[98,1](212, 211) -> 209 -[98,1](213, 211) -> 210 -[99,1](214, 214) -> 211 -[99,1](215, 214) -> 212 -[99,1](216, 214) -> 213 -[100,1](217, 217) -> 214 -[100,1](218, 217) -> 215 -[100,1](219, 217) -> 216 -[101,1](220, 220) -> 217 -[101,1](221, 220) -> 218 -[101,1](222, 220) -> 219 -[102,1](223, 223) -> 220 -[102,1](224, 223) -> 221 -[102,1](225, 223) -> 222 -[103,1](226, 226) -> 223 -[103,1](227, 226) -> 224 -[103,1](228, 226) -> 225 -[104,1](229, 229) -> 226 -[104,1](230, 229) -> 227 -[104,1](231, 229) -> 228 -[105,1](232, 232) -> 229 -[105,1](233, 232) -> 230 -[105,1](234, 232) -> 231 -[106,1](235, 235) -> 232 -[106,1](236, 235) -> 233 -[106,1](237, 235) -> 234 -[107,1](238, 238) -> 235 -[107,1](239, 238) -> 236 -[107,1](240, 238) -> 237 -[108,1](241, 241) -> 238 -[108,1](242, 241) -> 239 -[108,1](243, 241) -> 240 -[109,1](244, 244) -> 241 -[109,1](245, 244) -> 242 -[109,1](246, 244) -> 243 -[110,1](247, 247) -> 244 -[110,1](248, 247) -> 245 -[110,1](249, 247) -> 246 -[111,1](250, 250) -> 247 -[111,1](251, 250) -> 248 -[111,1](252, 250) -> 249 -[112,1](253, 253) -> 250 -[112,1](254, 253) -> 251 -[112,1](255, 253) -> 252 -[113,1](256, 256) -> 253 -[113,1](257, 256) -> 254 -[113,1](258, 256) -> 255 -[114,1](259, 259) -> 256 -[114,1](260, 259) -> 257 -[114,1](261, 259) -> 258 -[115,1](262, 262) -> 259 -[115,1](263, 262) -> 260 -[115,1](264, 262) -> 261 -[116,1](265, 265) -> 262 -[116,1](266, 265) -> 263 -[116,1](267, 265) -> 264 -[117,1](268, 268) -> 265 -[117,1](269, 268) -> 266 -[117,1](270, 268) -> 267 -[118,1](271, 271) -> 268 -[118,1](272, 271) -> 269 -[118,1](273, 271) -> 270 -[119,1](274, 274) -> 271 -[119,1](275, 274) -> 272 -[119,1](276, 274) -> 273 -[120,1](277, 277) -> 274 -[120,1](278, 277) -> 275 -[120,1](279, 277) -> 276 -[121,1](280, 280) -> 277 -[121,1](281, 280) -> 278 -[121,1](282, 280) -> 279 -[122,1](283, 283) -> 280 -[122,1](284, 283) -> 281 -[122,1](285, 283) -> 282 -[123,1](286, 286) -> 283 -[123,1](287, 286) -> 284 -[123,1](288, 286) -> 285 -[124,1](289, 289) -> 286 -[124,1](290, 289) -> 287 -[124,1](291, 289) -> 288 -[125,1](292, 292) -> 289 -[125,1](293, 292) -> 290 -[125,1](294, 292) -> 291 -[126,1](295, 295) -> 292 -[126,1](296, 295) -> 293 -[126,1](297, 295) -> 294 -[127,1](298, 298) -> 295 -[127,1](299, 298) -> 296 -[127,1](300, 298) -> 297 -[128,1](301, 301) -> 298 -[128,1](302, 301) -> 299 -[128,1](303, 301) -> 300 -[129,1](304, 304) -> 301 -[129,1](305, 304) -> 302 -[129,1](306, 304) -> 303 -[130,1](307, 307) -> 304 -[130,1](308, 307) -> 305 -[130,1](309, 307) -> 306 -[131,1](310, 310) -> 307 -[131,1](311, 310) -> 308 -[131,1](312, 310) -> 309 -[132,1](313, 313) -> 310 -[132,1](314, 313) -> 311 -[132,1](315, 313) -> 312 -[133,1](316, 316) -> 313 -[133,1](317, 316) -> 314 -[133,1](318, 316) -> 315 -[134,1](319, 319) -> 316 -[134,1](320, 319) -> 317 -[134,1](321, 319) -> 318 -[135,1](322, 322) -> 319 -[135,1](323, 322) -> 320 -[135,1](324, 322) -> 321 -[136,1](325, 325) -> 322 -[136,1](326, 325) -> 323 -[136,1](327, 325) -> 324 -[137,1](328, 328) -> 325 -[137,1](329, 328) -> 326 -[137,1](330, 328) -> 327 -[138,1](331, 331) -> 328 -[138,1](332, 331) -> 329 -[138,1](333, 331) -> 330 -[139,1](334, 334) -> 331 -[139,1](335, 334) -> 332 -[139,1](336, 334) -> 333 -[140,1](337, 337) -> 334 -[140,1](338, 337) -> 335 -[140,1](339, 337) -> 336 -[141,1](340, 340) -> 337 -[141,1](341, 340) -> 338 -[141,1](342, 340) -> 339 -[142,1](343, 343) -> 340 -[142,1](344, 343) -> 341 -[142,1](345, 343) -> 342 -[143,1](346, 346) -> 343 -[143,1](347, 346) -> 344 -[143,1](348, 346) -> 345 -[144,1](349, 349) -> 346 -[144,1](350, 349) -> 347 -[144,1](351, 349) -> 348 -[145,1](352, 352) -> 349 -[145,1](353, 352) -> 350 -[145,1](354, 352) -> 351 -[146,1](355, 355) -> 352 -[146,1](356, 355) -> 353 -[146,1](357, 355) -> 354 -[147,1](358, 358) -> 355 -[147,1](359, 358) -> 356 -[147,1](360, 358) -> 357 -[148,1](361, 361) -> 358 -[148,1](362, 361) -> 359 -[148,1](363, 361) -> 360 -[149,1](364, 364) -> 361 -[149,1](365, 364) -> 362 -[149,1](366, 364) -> 363 -[150,1](367, 367) -> 364 -[150,1](368, 367) -> 365 -[150,1](369, 367) -> 366 -[151,1](370, 370) -> 367 -[151,1](371, 370) -> 368 -[151,1](372, 370) -> 369 -[152,1](373, 373) -> 370 -[152,1](374, 373) -> 371 -[152,1](375, 373) -> 372 -[153,1](376, 376) -> 373 -[153,1](377, 376) -> 374 -[153,1](378, 376) -> 375 -[154,1](379, 379) -> 376 -[154,1](380, 379) -> 377 -[154,1](381, 379) -> 378 -[155,1](382, 382) -> 379 -[155,1](383, 382) -> 380 -[155,1](384, 382) -> 381 -[156,1](385, 385) -> 382 -[156,1](386, 385) -> 383 -[156,1](387, 385) -> 384 -[157,1](388, 388) -> 385 -[157,1](389, 388) -> 386 -[157,1](390, 388) -> 387 -[158,1](391, 391) -> 388 -[158,1](392, 391) -> 389 -[158,1](393, 391) -> 390 -[159,1](394, 394) -> 391 -[159,1](395, 394) -> 392 -[159,1](396, 394) -> 393 -[160,1](397, 397) -> 394 -[160,1](398, 397) -> 395 -[160,1](399, 397) -> 396 -[161,1](400, 400) -> 397 -[161,1](401, 400) -> 398 -[161,1](402, 400) -> 399 -[162,1](403, 403) -> 400 -[162,1](404, 403) -> 401 -[162,1](405, 403) -> 402 -[p1,1] -> 403 -[p2,1] -> 404 -[p3,1] -> 405 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/81/pre.hsl b/benchmarks/all/OEGrover/81/pre.hsl index 96668c157..5071c2d26 100644 --- a/benchmarks/all/OEGrover/81/pre.hsl +++ b/benchmarks/all/OEGrover/81/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 39 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 2417851639229258349412351 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/81/pre.lsta b/benchmarks/all/OEGrover/81/pre.lsta deleted file mode 100644 index b77394d20..000000000 --- a/benchmarks/all/OEGrover/81/pre.lsta +++ /dev/null @@ -1,416 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 164) -> 161 -[82,1](163, 165) -> 162 -[83,1](166, 166) -> 163 -[83,1](167, 166) -> 164 -[83,1](168, 166) -> 165 -[84,1](169, 169) -> 166 -[84,1](170, 169) -> 167 -[84,1](171, 169) -> 168 -[85,1](172, 172) -> 169 -[85,1](173, 172) -> 170 -[85,1](174, 172) -> 171 -[86,1](175, 175) -> 172 -[86,1](176, 175) -> 173 -[86,1](177, 175) -> 174 -[87,1](178, 178) -> 175 -[87,1](179, 178) -> 176 -[87,1](180, 178) -> 177 -[88,1](181, 181) -> 178 -[88,1](182, 181) -> 179 -[88,1](183, 181) -> 180 -[89,1](184, 184) -> 181 -[89,1](185, 184) -> 182 -[89,1](186, 184) -> 183 -[90,1](187, 187) -> 184 -[90,1](188, 187) -> 185 -[90,1](189, 187) -> 186 -[91,1](190, 190) -> 187 -[91,1](191, 190) -> 188 -[91,1](192, 190) -> 189 -[92,1](193, 193) -> 190 -[92,1](194, 193) -> 191 -[92,1](195, 193) -> 192 -[93,1](196, 196) -> 193 -[93,1](197, 196) -> 194 -[93,1](198, 196) -> 195 -[94,1](199, 199) -> 196 -[94,1](200, 199) -> 197 -[94,1](201, 199) -> 198 -[95,1](202, 202) -> 199 -[95,1](203, 202) -> 200 -[95,1](204, 202) -> 201 -[96,1](205, 205) -> 202 -[96,1](206, 205) -> 203 -[96,1](207, 205) -> 204 -[97,1](208, 208) -> 205 -[97,1](209, 208) -> 206 -[97,1](210, 208) -> 207 -[98,1](211, 211) -> 208 -[98,1](212, 211) -> 209 -[98,1](213, 211) -> 210 -[99,1](214, 214) -> 211 -[99,1](215, 214) -> 212 -[99,1](216, 214) -> 213 -[100,1](217, 217) -> 214 -[100,1](218, 217) -> 215 -[100,1](219, 217) -> 216 -[101,1](220, 220) -> 217 -[101,1](221, 220) -> 218 -[101,1](222, 220) -> 219 -[102,1](223, 223) -> 220 -[102,1](224, 223) -> 221 -[102,1](225, 223) -> 222 -[103,1](226, 226) -> 223 -[103,1](227, 226) -> 224 -[103,1](228, 226) -> 225 -[104,1](229, 229) -> 226 -[104,1](230, 229) -> 227 -[104,1](231, 229) -> 228 -[105,1](232, 232) -> 229 -[105,1](233, 232) -> 230 -[105,1](234, 232) -> 231 -[106,1](235, 235) -> 232 -[106,1](236, 235) -> 233 -[106,1](237, 235) -> 234 -[107,1](238, 238) -> 235 -[107,1](239, 238) -> 236 -[107,1](240, 238) -> 237 -[108,1](241, 241) -> 238 -[108,1](242, 241) -> 239 -[108,1](243, 241) -> 240 -[109,1](244, 244) -> 241 -[109,1](245, 244) -> 242 -[109,1](246, 244) -> 243 -[110,1](247, 247) -> 244 -[110,1](248, 247) -> 245 -[110,1](249, 247) -> 246 -[111,1](250, 250) -> 247 -[111,1](251, 250) -> 248 -[111,1](252, 250) -> 249 -[112,1](253, 253) -> 250 -[112,1](254, 253) -> 251 -[112,1](255, 253) -> 252 -[113,1](256, 256) -> 253 -[113,1](257, 256) -> 254 -[113,1](258, 256) -> 255 -[114,1](259, 259) -> 256 -[114,1](260, 259) -> 257 -[114,1](261, 259) -> 258 -[115,1](262, 262) -> 259 -[115,1](263, 262) -> 260 -[115,1](264, 262) -> 261 -[116,1](265, 265) -> 262 -[116,1](266, 265) -> 263 -[116,1](267, 265) -> 264 -[117,1](268, 268) -> 265 -[117,1](269, 268) -> 266 -[117,1](270, 268) -> 267 -[118,1](271, 271) -> 268 -[118,1](272, 271) -> 269 -[118,1](273, 271) -> 270 -[119,1](274, 274) -> 271 -[119,1](275, 274) -> 272 -[119,1](276, 274) -> 273 -[120,1](277, 277) -> 274 -[120,1](278, 277) -> 275 -[120,1](279, 277) -> 276 -[121,1](280, 280) -> 277 -[121,1](281, 280) -> 278 -[121,1](282, 280) -> 279 -[122,1](283, 283) -> 280 -[122,1](284, 283) -> 281 -[122,1](285, 283) -> 282 -[123,1](286, 286) -> 283 -[123,1](287, 286) -> 284 -[123,1](288, 286) -> 285 -[124,1](289, 289) -> 286 -[124,1](290, 289) -> 287 -[124,1](291, 289) -> 288 -[125,1](292, 292) -> 289 -[125,1](293, 292) -> 290 -[125,1](294, 292) -> 291 -[126,1](295, 295) -> 292 -[126,1](296, 295) -> 293 -[126,1](297, 295) -> 294 -[127,1](298, 298) -> 295 -[127,1](299, 298) -> 296 -[127,1](300, 298) -> 297 -[128,1](301, 301) -> 298 -[128,1](302, 301) -> 299 -[128,1](303, 301) -> 300 -[129,1](304, 304) -> 301 -[129,1](305, 304) -> 302 -[129,1](306, 304) -> 303 -[130,1](307, 307) -> 304 -[130,1](308, 307) -> 305 -[130,1](309, 307) -> 306 -[131,1](310, 310) -> 307 -[131,1](311, 310) -> 308 -[131,1](312, 310) -> 309 -[132,1](313, 313) -> 310 -[132,1](314, 313) -> 311 -[132,1](315, 313) -> 312 -[133,1](316, 316) -> 313 -[133,1](317, 316) -> 314 -[133,1](318, 316) -> 315 -[134,1](319, 319) -> 316 -[134,1](320, 319) -> 317 -[134,1](321, 319) -> 318 -[135,1](322, 322) -> 319 -[135,1](323, 322) -> 320 -[135,1](324, 322) -> 321 -[136,1](325, 325) -> 322 -[136,1](326, 325) -> 323 -[136,1](327, 325) -> 324 -[137,1](328, 328) -> 325 -[137,1](329, 328) -> 326 -[137,1](330, 328) -> 327 -[138,1](331, 331) -> 328 -[138,1](332, 331) -> 329 -[138,1](333, 331) -> 330 -[139,1](334, 334) -> 331 -[139,1](335, 334) -> 332 -[139,1](336, 334) -> 333 -[140,1](337, 337) -> 334 -[140,1](338, 337) -> 335 -[140,1](339, 337) -> 336 -[141,1](340, 340) -> 337 -[141,1](341, 340) -> 338 -[141,1](342, 340) -> 339 -[142,1](343, 343) -> 340 -[142,1](344, 343) -> 341 -[142,1](345, 343) -> 342 -[143,1](346, 346) -> 343 -[143,1](347, 346) -> 344 -[143,1](348, 346) -> 345 -[144,1](349, 349) -> 346 -[144,1](350, 349) -> 347 -[144,1](351, 349) -> 348 -[145,1](352, 352) -> 349 -[145,1](353, 352) -> 350 -[145,1](354, 352) -> 351 -[146,1](355, 355) -> 352 -[146,1](356, 355) -> 353 -[146,1](357, 355) -> 354 -[147,1](358, 358) -> 355 -[147,1](359, 358) -> 356 -[147,1](360, 358) -> 357 -[148,1](361, 361) -> 358 -[148,1](362, 361) -> 359 -[148,1](363, 361) -> 360 -[149,1](364, 364) -> 361 -[149,1](365, 364) -> 362 -[149,1](366, 364) -> 363 -[150,1](367, 367) -> 364 -[150,1](368, 367) -> 365 -[150,1](369, 367) -> 366 -[151,1](370, 370) -> 367 -[151,1](371, 370) -> 368 -[151,1](372, 370) -> 369 -[152,1](373, 373) -> 370 -[152,1](374, 373) -> 371 -[152,1](375, 373) -> 372 -[153,1](376, 376) -> 373 -[153,1](377, 376) -> 374 -[153,1](378, 376) -> 375 -[154,1](379, 379) -> 376 -[154,1](380, 379) -> 377 -[154,1](381, 379) -> 378 -[155,1](382, 382) -> 379 -[155,1](383, 382) -> 380 -[155,1](384, 382) -> 381 -[156,1](385, 385) -> 382 -[156,1](386, 385) -> 383 -[156,1](387, 385) -> 384 -[157,1](388, 388) -> 385 -[157,1](389, 388) -> 386 -[157,1](390, 388) -> 387 -[158,1](391, 391) -> 388 -[158,1](392, 391) -> 389 -[158,1](393, 391) -> 390 -[159,1](394, 394) -> 391 -[159,1](395, 394) -> 392 -[159,1](396, 394) -> 393 -[160,1](397, 397) -> 394 -[160,1](398, 397) -> 395 -[160,1](399, 397) -> 396 -[161,1](400, 400) -> 397 -[161,1](401, 400) -> 398 -[161,1](402, 400) -> 399 -[162,1](403, 403) -> 400 -[162,1](404, 403) -> 401 -[162,1](405, 403) -> 402 -[c0,1] -> 403 -[a,1] -> 404 -[b,1] -> 405 -Constraints -2417851639229258349412351 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/82/circuit.qasm b/benchmarks/all/OEGrover/82/circuit.qasm index 7c0f2ea93..0772a37ff 100644 --- a/benchmarks/all/OEGrover/82/circuit.qasm +++ b/benchmarks/all/OEGrover/82/circuit.qasm @@ -1,209 +1,209 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[164]; +qreg qubits[163]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -ccx qubits[0], qubits[1], qubits[83]; -ccx qubits[2], qubits[83], qubits[84]; -ccx qubits[3], qubits[84], qubits[85]; -ccx qubits[4], qubits[85], qubits[86]; -ccx qubits[5], qubits[86], qubits[87]; -ccx qubits[6], qubits[87], qubits[88]; -ccx qubits[7], qubits[88], qubits[89]; -ccx qubits[8], qubits[89], qubits[90]; -ccx qubits[9], qubits[90], qubits[91]; -ccx qubits[10], qubits[91], qubits[92]; -ccx qubits[11], qubits[92], qubits[93]; -ccx qubits[12], qubits[93], qubits[94]; -ccx qubits[13], qubits[94], qubits[95]; -ccx qubits[14], qubits[95], qubits[96]; -ccx qubits[15], qubits[96], qubits[97]; -ccx qubits[16], qubits[97], qubits[98]; -ccx qubits[17], qubits[98], qubits[99]; -ccx qubits[18], qubits[99], qubits[100]; -ccx qubits[19], qubits[100], qubits[101]; -ccx qubits[20], qubits[101], qubits[102]; -ccx qubits[21], qubits[102], qubits[103]; -ccx qubits[22], qubits[103], qubits[104]; -ccx qubits[23], qubits[104], qubits[105]; -ccx qubits[24], qubits[105], qubits[106]; -ccx qubits[25], qubits[106], qubits[107]; -ccx qubits[26], qubits[107], qubits[108]; -ccx qubits[27], qubits[108], qubits[109]; -ccx qubits[28], qubits[109], qubits[110]; -ccx qubits[29], qubits[110], qubits[111]; -ccx qubits[30], qubits[111], qubits[112]; -ccx qubits[31], qubits[112], qubits[113]; -ccx qubits[32], qubits[113], qubits[114]; -ccx qubits[33], qubits[114], qubits[115]; -ccx qubits[34], qubits[115], qubits[116]; -ccx qubits[35], qubits[116], qubits[117]; -ccx qubits[36], qubits[117], qubits[118]; -ccx qubits[37], qubits[118], qubits[119]; -ccx qubits[38], qubits[119], qubits[120]; -ccx qubits[39], qubits[120], qubits[121]; -ccx qubits[40], qubits[121], qubits[122]; -ccx qubits[41], qubits[122], qubits[123]; -ccx qubits[42], qubits[123], qubits[124]; -ccx qubits[43], qubits[124], qubits[125]; -ccx qubits[44], qubits[125], qubits[126]; -ccx qubits[45], qubits[126], qubits[127]; -ccx qubits[46], qubits[127], qubits[128]; -ccx qubits[47], qubits[128], qubits[129]; -ccx qubits[48], qubits[129], qubits[130]; -ccx qubits[49], qubits[130], qubits[131]; -ccx qubits[50], qubits[131], qubits[132]; -ccx qubits[51], qubits[132], qubits[133]; -ccx qubits[52], qubits[133], qubits[134]; -ccx qubits[53], qubits[134], qubits[135]; -ccx qubits[54], qubits[135], qubits[136]; -ccx qubits[55], qubits[136], qubits[137]; -ccx qubits[56], qubits[137], qubits[138]; -ccx qubits[57], qubits[138], qubits[139]; -ccx qubits[58], qubits[139], qubits[140]; -ccx qubits[59], qubits[140], qubits[141]; -ccx qubits[60], qubits[141], qubits[142]; -ccx qubits[61], qubits[142], qubits[143]; -ccx qubits[62], qubits[143], qubits[144]; -ccx qubits[63], qubits[144], qubits[145]; -ccx qubits[64], qubits[145], qubits[146]; -ccx qubits[65], qubits[146], qubits[147]; -ccx qubits[66], qubits[147], qubits[148]; -ccx qubits[67], qubits[148], qubits[149]; -ccx qubits[68], qubits[149], qubits[150]; -ccx qubits[69], qubits[150], qubits[151]; -ccx qubits[70], qubits[151], qubits[152]; -ccx qubits[71], qubits[152], qubits[153]; -ccx qubits[72], qubits[153], qubits[154]; -ccx qubits[73], qubits[154], qubits[155]; -ccx qubits[74], qubits[155], qubits[156]; -ccx qubits[75], qubits[156], qubits[157]; -ccx qubits[76], qubits[157], qubits[158]; -ccx qubits[77], qubits[158], qubits[159]; -ccx qubits[78], qubits[159], qubits[160]; -ccx qubits[79], qubits[160], qubits[161]; -ccx qubits[80], qubits[161], qubits[162]; -cz qubits[162], qubits[81]; -ccx qubits[80], qubits[161], qubits[162]; -ccx qubits[79], qubits[160], qubits[161]; -ccx qubits[78], qubits[159], qubits[160]; -ccx qubits[77], qubits[158], qubits[159]; -ccx qubits[76], qubits[157], qubits[158]; -ccx qubits[75], qubits[156], qubits[157]; -ccx qubits[74], qubits[155], qubits[156]; -ccx qubits[73], qubits[154], qubits[155]; -ccx qubits[72], qubits[153], qubits[154]; -ccx qubits[71], qubits[152], qubits[153]; -ccx qubits[70], qubits[151], qubits[152]; -ccx qubits[69], qubits[150], qubits[151]; -ccx qubits[68], qubits[149], qubits[150]; -ccx qubits[67], qubits[148], qubits[149]; -ccx qubits[66], qubits[147], qubits[148]; -ccx qubits[65], qubits[146], qubits[147]; -ccx qubits[64], qubits[145], qubits[146]; -ccx qubits[63], qubits[144], qubits[145]; -ccx qubits[62], qubits[143], qubits[144]; -ccx qubits[61], qubits[142], qubits[143]; -ccx qubits[60], qubits[141], qubits[142]; -ccx qubits[59], qubits[140], qubits[141]; -ccx qubits[58], qubits[139], qubits[140]; -ccx qubits[57], qubits[138], qubits[139]; -ccx qubits[56], qubits[137], qubits[138]; -ccx qubits[55], qubits[136], qubits[137]; -ccx qubits[54], qubits[135], qubits[136]; -ccx qubits[53], qubits[134], qubits[135]; -ccx qubits[52], qubits[133], qubits[134]; -ccx qubits[51], qubits[132], qubits[133]; -ccx qubits[50], qubits[131], qubits[132]; -ccx qubits[49], qubits[130], qubits[131]; -ccx qubits[48], qubits[129], qubits[130]; -ccx qubits[47], qubits[128], qubits[129]; -ccx qubits[46], qubits[127], qubits[128]; -ccx qubits[45], qubits[126], qubits[127]; -ccx qubits[44], qubits[125], qubits[126]; -ccx qubits[43], qubits[124], qubits[125]; -ccx qubits[42], qubits[123], qubits[124]; -ccx qubits[41], qubits[122], qubits[123]; -ccx qubits[40], qubits[121], qubits[122]; -ccx qubits[39], qubits[120], qubits[121]; -ccx qubits[38], qubits[119], qubits[120]; -ccx qubits[37], qubits[118], qubits[119]; -ccx qubits[36], qubits[117], qubits[118]; -ccx qubits[35], qubits[116], qubits[117]; -ccx qubits[34], qubits[115], qubits[116]; -ccx qubits[33], qubits[114], qubits[115]; -ccx qubits[32], qubits[113], qubits[114]; -ccx qubits[31], qubits[112], qubits[113]; -ccx qubits[30], qubits[111], qubits[112]; -ccx qubits[29], qubits[110], qubits[111]; -ccx qubits[28], qubits[109], qubits[110]; -ccx qubits[27], qubits[108], qubits[109]; -ccx qubits[26], qubits[107], qubits[108]; -ccx qubits[25], qubits[106], qubits[107]; -ccx qubits[24], qubits[105], qubits[106]; -ccx qubits[23], qubits[104], qubits[105]; -ccx qubits[22], qubits[103], qubits[104]; -ccx qubits[21], qubits[102], qubits[103]; -ccx qubits[20], qubits[101], qubits[102]; -ccx qubits[19], qubits[100], qubits[101]; -ccx qubits[18], qubits[99], qubits[100]; -ccx qubits[17], qubits[98], qubits[99]; -ccx qubits[16], qubits[97], qubits[98]; -ccx qubits[15], qubits[96], qubits[97]; -ccx qubits[14], qubits[95], qubits[96]; -ccx qubits[13], qubits[94], qubits[95]; -ccx qubits[12], qubits[93], qubits[94]; -ccx qubits[11], qubits[92], qubits[93]; -ccx qubits[10], qubits[91], qubits[92]; -ccx qubits[9], qubits[90], qubits[91]; -ccx qubits[8], qubits[89], qubits[90]; -ccx qubits[7], qubits[88], qubits[89]; -ccx qubits[6], qubits[87], qubits[88]; -ccx qubits[5], qubits[86], qubits[87]; -ccx qubits[4], qubits[85], qubits[86]; -ccx qubits[3], qubits[84], qubits[85]; -ccx qubits[2], qubits[83], qubits[84]; -ccx qubits[0], qubits[1], qubits[83]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +cz qubits[160], qubits[161]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -247,491 +247,491 @@ x qubits[78]; x qubits[80]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -ccx qubits[0], qubits[1], qubits[83]; -ccx qubits[2], qubits[83], qubits[84]; -ccx qubits[3], qubits[84], qubits[85]; -ccx qubits[4], qubits[85], qubits[86]; -ccx qubits[5], qubits[86], qubits[87]; -ccx qubits[6], qubits[87], qubits[88]; -ccx qubits[7], qubits[88], qubits[89]; -ccx qubits[8], qubits[89], qubits[90]; -ccx qubits[9], qubits[90], qubits[91]; -ccx qubits[10], qubits[91], qubits[92]; -ccx qubits[11], qubits[92], qubits[93]; -ccx qubits[12], qubits[93], qubits[94]; -ccx qubits[13], qubits[94], qubits[95]; -ccx qubits[14], qubits[95], qubits[96]; -ccx qubits[15], qubits[96], qubits[97]; -ccx qubits[16], qubits[97], qubits[98]; -ccx qubits[17], qubits[98], qubits[99]; -ccx qubits[18], qubits[99], qubits[100]; -ccx qubits[19], qubits[100], qubits[101]; -ccx qubits[20], qubits[101], qubits[102]; -ccx qubits[21], qubits[102], qubits[103]; -ccx qubits[22], qubits[103], qubits[104]; -ccx qubits[23], qubits[104], qubits[105]; -ccx qubits[24], qubits[105], qubits[106]; -ccx qubits[25], qubits[106], qubits[107]; -ccx qubits[26], qubits[107], qubits[108]; -ccx qubits[27], qubits[108], qubits[109]; -ccx qubits[28], qubits[109], qubits[110]; -ccx qubits[29], qubits[110], qubits[111]; -ccx qubits[30], qubits[111], qubits[112]; -ccx qubits[31], qubits[112], qubits[113]; -ccx qubits[32], qubits[113], qubits[114]; -ccx qubits[33], qubits[114], qubits[115]; -ccx qubits[34], qubits[115], qubits[116]; -ccx qubits[35], qubits[116], qubits[117]; -ccx qubits[36], qubits[117], qubits[118]; -ccx qubits[37], qubits[118], qubits[119]; -ccx qubits[38], qubits[119], qubits[120]; -ccx qubits[39], qubits[120], qubits[121]; -ccx qubits[40], qubits[121], qubits[122]; -ccx qubits[41], qubits[122], qubits[123]; -ccx qubits[42], qubits[123], qubits[124]; -ccx qubits[43], qubits[124], qubits[125]; -ccx qubits[44], qubits[125], qubits[126]; -ccx qubits[45], qubits[126], qubits[127]; -ccx qubits[46], qubits[127], qubits[128]; -ccx qubits[47], qubits[128], qubits[129]; -ccx qubits[48], qubits[129], qubits[130]; -ccx qubits[49], qubits[130], qubits[131]; -ccx qubits[50], qubits[131], qubits[132]; -ccx qubits[51], qubits[132], qubits[133]; -ccx qubits[52], qubits[133], qubits[134]; -ccx qubits[53], qubits[134], qubits[135]; -ccx qubits[54], qubits[135], qubits[136]; -ccx qubits[55], qubits[136], qubits[137]; -ccx qubits[56], qubits[137], qubits[138]; -ccx qubits[57], qubits[138], qubits[139]; -ccx qubits[58], qubits[139], qubits[140]; -ccx qubits[59], qubits[140], qubits[141]; -ccx qubits[60], qubits[141], qubits[142]; -ccx qubits[61], qubits[142], qubits[143]; -ccx qubits[62], qubits[143], qubits[144]; -ccx qubits[63], qubits[144], qubits[145]; -ccx qubits[64], qubits[145], qubits[146]; -ccx qubits[65], qubits[146], qubits[147]; -ccx qubits[66], qubits[147], qubits[148]; -ccx qubits[67], qubits[148], qubits[149]; -ccx qubits[68], qubits[149], qubits[150]; -ccx qubits[69], qubits[150], qubits[151]; -ccx qubits[70], qubits[151], qubits[152]; -ccx qubits[71], qubits[152], qubits[153]; -ccx qubits[72], qubits[153], qubits[154]; -ccx qubits[73], qubits[154], qubits[155]; -ccx qubits[74], qubits[155], qubits[156]; -ccx qubits[75], qubits[156], qubits[157]; -ccx qubits[76], qubits[157], qubits[158]; -ccx qubits[77], qubits[158], qubits[159]; -ccx qubits[78], qubits[159], qubits[160]; -ccx qubits[79], qubits[160], qubits[161]; -ccx qubits[80], qubits[161], qubits[162]; -cz qubits[162], qubits[81]; -ccx qubits[80], qubits[161], qubits[162]; -ccx qubits[79], qubits[160], qubits[161]; -ccx qubits[78], qubits[159], qubits[160]; -ccx qubits[77], qubits[158], qubits[159]; -ccx qubits[76], qubits[157], qubits[158]; -ccx qubits[75], qubits[156], qubits[157]; -ccx qubits[74], qubits[155], qubits[156]; -ccx qubits[73], qubits[154], qubits[155]; -ccx qubits[72], qubits[153], qubits[154]; -ccx qubits[71], qubits[152], qubits[153]; -ccx qubits[70], qubits[151], qubits[152]; -ccx qubits[69], qubits[150], qubits[151]; -ccx qubits[68], qubits[149], qubits[150]; -ccx qubits[67], qubits[148], qubits[149]; -ccx qubits[66], qubits[147], qubits[148]; -ccx qubits[65], qubits[146], qubits[147]; -ccx qubits[64], qubits[145], qubits[146]; -ccx qubits[63], qubits[144], qubits[145]; -ccx qubits[62], qubits[143], qubits[144]; -ccx qubits[61], qubits[142], qubits[143]; -ccx qubits[60], qubits[141], qubits[142]; -ccx qubits[59], qubits[140], qubits[141]; -ccx qubits[58], qubits[139], qubits[140]; -ccx qubits[57], qubits[138], qubits[139]; -ccx qubits[56], qubits[137], qubits[138]; -ccx qubits[55], qubits[136], qubits[137]; -ccx qubits[54], qubits[135], qubits[136]; -ccx qubits[53], qubits[134], qubits[135]; -ccx qubits[52], qubits[133], qubits[134]; -ccx qubits[51], qubits[132], qubits[133]; -ccx qubits[50], qubits[131], qubits[132]; -ccx qubits[49], qubits[130], qubits[131]; -ccx qubits[48], qubits[129], qubits[130]; -ccx qubits[47], qubits[128], qubits[129]; -ccx qubits[46], qubits[127], qubits[128]; -ccx qubits[45], qubits[126], qubits[127]; -ccx qubits[44], qubits[125], qubits[126]; -ccx qubits[43], qubits[124], qubits[125]; -ccx qubits[42], qubits[123], qubits[124]; -ccx qubits[41], qubits[122], qubits[123]; -ccx qubits[40], qubits[121], qubits[122]; -ccx qubits[39], qubits[120], qubits[121]; -ccx qubits[38], qubits[119], qubits[120]; -ccx qubits[37], qubits[118], qubits[119]; -ccx qubits[36], qubits[117], qubits[118]; -ccx qubits[35], qubits[116], qubits[117]; -ccx qubits[34], qubits[115], qubits[116]; -ccx qubits[33], qubits[114], qubits[115]; -ccx qubits[32], qubits[113], qubits[114]; -ccx qubits[31], qubits[112], qubits[113]; -ccx qubits[30], qubits[111], qubits[112]; -ccx qubits[29], qubits[110], qubits[111]; -ccx qubits[28], qubits[109], qubits[110]; -ccx qubits[27], qubits[108], qubits[109]; -ccx qubits[26], qubits[107], qubits[108]; -ccx qubits[25], qubits[106], qubits[107]; -ccx qubits[24], qubits[105], qubits[106]; -ccx qubits[23], qubits[104], qubits[105]; -ccx qubits[22], qubits[103], qubits[104]; -ccx qubits[21], qubits[102], qubits[103]; -ccx qubits[20], qubits[101], qubits[102]; -ccx qubits[19], qubits[100], qubits[101]; -ccx qubits[18], qubits[99], qubits[100]; -ccx qubits[17], qubits[98], qubits[99]; -ccx qubits[16], qubits[97], qubits[98]; -ccx qubits[15], qubits[96], qubits[97]; -ccx qubits[14], qubits[95], qubits[96]; -ccx qubits[13], qubits[94], qubits[95]; -ccx qubits[12], qubits[93], qubits[94]; -ccx qubits[11], qubits[92], qubits[93]; -ccx qubits[10], qubits[91], qubits[92]; -ccx qubits[9], qubits[90], qubits[91]; -ccx qubits[8], qubits[89], qubits[90]; -ccx qubits[7], qubits[88], qubits[89]; -ccx qubits[6], qubits[87], qubits[88]; -ccx qubits[5], qubits[86], qubits[87]; -ccx qubits[4], qubits[85], qubits[86]; -ccx qubits[3], qubits[84], qubits[85]; -ccx qubits[2], qubits[83], qubits[84]; -ccx qubits[0], qubits[1], qubits[83]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +cz qubits[160], qubits[161]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -z qubits[82]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +z qubits[162]; diff --git a/benchmarks/all/OEGrover/82/post.hsl b/benchmarks/all/OEGrover/82/post.hsl index 8edd24ee4..d6d5826bd 100644 --- a/benchmarks/all/OEGrover/82/post.hsl +++ b/benchmarks/all/OEGrover/82/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 40 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/82/post.lsta b/benchmarks/all/OEGrover/82/post.lsta deleted file mode 100644 index 22cdf84e1..000000000 --- a/benchmarks/all/OEGrover/82/post.lsta +++ /dev/null @@ -1,417 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 166) -> 163 -[83,1](165, 167) -> 164 -[84,1](168, 168) -> 165 -[84,1](169, 168) -> 166 -[84,1](170, 168) -> 167 -[85,1](171, 171) -> 168 -[85,1](172, 171) -> 169 -[85,1](173, 171) -> 170 -[86,1](174, 174) -> 171 -[86,1](175, 174) -> 172 -[86,1](176, 174) -> 173 -[87,1](177, 177) -> 174 -[87,1](178, 177) -> 175 -[87,1](179, 177) -> 176 -[88,1](180, 180) -> 177 -[88,1](181, 180) -> 178 -[88,1](182, 180) -> 179 -[89,1](183, 183) -> 180 -[89,1](184, 183) -> 181 -[89,1](185, 183) -> 182 -[90,1](186, 186) -> 183 -[90,1](187, 186) -> 184 -[90,1](188, 186) -> 185 -[91,1](189, 189) -> 186 -[91,1](190, 189) -> 187 -[91,1](191, 189) -> 188 -[92,1](192, 192) -> 189 -[92,1](193, 192) -> 190 -[92,1](194, 192) -> 191 -[93,1](195, 195) -> 192 -[93,1](196, 195) -> 193 -[93,1](197, 195) -> 194 -[94,1](198, 198) -> 195 -[94,1](199, 198) -> 196 -[94,1](200, 198) -> 197 -[95,1](201, 201) -> 198 -[95,1](202, 201) -> 199 -[95,1](203, 201) -> 200 -[96,1](204, 204) -> 201 -[96,1](205, 204) -> 202 -[96,1](206, 204) -> 203 -[97,1](207, 207) -> 204 -[97,1](208, 207) -> 205 -[97,1](209, 207) -> 206 -[98,1](210, 210) -> 207 -[98,1](211, 210) -> 208 -[98,1](212, 210) -> 209 -[99,1](213, 213) -> 210 -[99,1](214, 213) -> 211 -[99,1](215, 213) -> 212 -[100,1](216, 216) -> 213 -[100,1](217, 216) -> 214 -[100,1](218, 216) -> 215 -[101,1](219, 219) -> 216 -[101,1](220, 219) -> 217 -[101,1](221, 219) -> 218 -[102,1](222, 222) -> 219 -[102,1](223, 222) -> 220 -[102,1](224, 222) -> 221 -[103,1](225, 225) -> 222 -[103,1](226, 225) -> 223 -[103,1](227, 225) -> 224 -[104,1](228, 228) -> 225 -[104,1](229, 228) -> 226 -[104,1](230, 228) -> 227 -[105,1](231, 231) -> 228 -[105,1](232, 231) -> 229 -[105,1](233, 231) -> 230 -[106,1](234, 234) -> 231 -[106,1](235, 234) -> 232 -[106,1](236, 234) -> 233 -[107,1](237, 237) -> 234 -[107,1](238, 237) -> 235 -[107,1](239, 237) -> 236 -[108,1](240, 240) -> 237 -[108,1](241, 240) -> 238 -[108,1](242, 240) -> 239 -[109,1](243, 243) -> 240 -[109,1](244, 243) -> 241 -[109,1](245, 243) -> 242 -[110,1](246, 246) -> 243 -[110,1](247, 246) -> 244 -[110,1](248, 246) -> 245 -[111,1](249, 249) -> 246 -[111,1](250, 249) -> 247 -[111,1](251, 249) -> 248 -[112,1](252, 252) -> 249 -[112,1](253, 252) -> 250 -[112,1](254, 252) -> 251 -[113,1](255, 255) -> 252 -[113,1](256, 255) -> 253 -[113,1](257, 255) -> 254 -[114,1](258, 258) -> 255 -[114,1](259, 258) -> 256 -[114,1](260, 258) -> 257 -[115,1](261, 261) -> 258 -[115,1](262, 261) -> 259 -[115,1](263, 261) -> 260 -[116,1](264, 264) -> 261 -[116,1](265, 264) -> 262 -[116,1](266, 264) -> 263 -[117,1](267, 267) -> 264 -[117,1](268, 267) -> 265 -[117,1](269, 267) -> 266 -[118,1](270, 270) -> 267 -[118,1](271, 270) -> 268 -[118,1](272, 270) -> 269 -[119,1](273, 273) -> 270 -[119,1](274, 273) -> 271 -[119,1](275, 273) -> 272 -[120,1](276, 276) -> 273 -[120,1](277, 276) -> 274 -[120,1](278, 276) -> 275 -[121,1](279, 279) -> 276 -[121,1](280, 279) -> 277 -[121,1](281, 279) -> 278 -[122,1](282, 282) -> 279 -[122,1](283, 282) -> 280 -[122,1](284, 282) -> 281 -[123,1](285, 285) -> 282 -[123,1](286, 285) -> 283 -[123,1](287, 285) -> 284 -[124,1](288, 288) -> 285 -[124,1](289, 288) -> 286 -[124,1](290, 288) -> 287 -[125,1](291, 291) -> 288 -[125,1](292, 291) -> 289 -[125,1](293, 291) -> 290 -[126,1](294, 294) -> 291 -[126,1](295, 294) -> 292 -[126,1](296, 294) -> 293 -[127,1](297, 297) -> 294 -[127,1](298, 297) -> 295 -[127,1](299, 297) -> 296 -[128,1](300, 300) -> 297 -[128,1](301, 300) -> 298 -[128,1](302, 300) -> 299 -[129,1](303, 303) -> 300 -[129,1](304, 303) -> 301 -[129,1](305, 303) -> 302 -[130,1](306, 306) -> 303 -[130,1](307, 306) -> 304 -[130,1](308, 306) -> 305 -[131,1](309, 309) -> 306 -[131,1](310, 309) -> 307 -[131,1](311, 309) -> 308 -[132,1](312, 312) -> 309 -[132,1](313, 312) -> 310 -[132,1](314, 312) -> 311 -[133,1](315, 315) -> 312 -[133,1](316, 315) -> 313 -[133,1](317, 315) -> 314 -[134,1](318, 318) -> 315 -[134,1](319, 318) -> 316 -[134,1](320, 318) -> 317 -[135,1](321, 321) -> 318 -[135,1](322, 321) -> 319 -[135,1](323, 321) -> 320 -[136,1](324, 324) -> 321 -[136,1](325, 324) -> 322 -[136,1](326, 324) -> 323 -[137,1](327, 327) -> 324 -[137,1](328, 327) -> 325 -[137,1](329, 327) -> 326 -[138,1](330, 330) -> 327 -[138,1](331, 330) -> 328 -[138,1](332, 330) -> 329 -[139,1](333, 333) -> 330 -[139,1](334, 333) -> 331 -[139,1](335, 333) -> 332 -[140,1](336, 336) -> 333 -[140,1](337, 336) -> 334 -[140,1](338, 336) -> 335 -[141,1](339, 339) -> 336 -[141,1](340, 339) -> 337 -[141,1](341, 339) -> 338 -[142,1](342, 342) -> 339 -[142,1](343, 342) -> 340 -[142,1](344, 342) -> 341 -[143,1](345, 345) -> 342 -[143,1](346, 345) -> 343 -[143,1](347, 345) -> 344 -[144,1](348, 348) -> 345 -[144,1](349, 348) -> 346 -[144,1](350, 348) -> 347 -[145,1](351, 351) -> 348 -[145,1](352, 351) -> 349 -[145,1](353, 351) -> 350 -[146,1](354, 354) -> 351 -[146,1](355, 354) -> 352 -[146,1](356, 354) -> 353 -[147,1](357, 357) -> 354 -[147,1](358, 357) -> 355 -[147,1](359, 357) -> 356 -[148,1](360, 360) -> 357 -[148,1](361, 360) -> 358 -[148,1](362, 360) -> 359 -[149,1](363, 363) -> 360 -[149,1](364, 363) -> 361 -[149,1](365, 363) -> 362 -[150,1](366, 366) -> 363 -[150,1](367, 366) -> 364 -[150,1](368, 366) -> 365 -[151,1](369, 369) -> 366 -[151,1](370, 369) -> 367 -[151,1](371, 369) -> 368 -[152,1](372, 372) -> 369 -[152,1](373, 372) -> 370 -[152,1](374, 372) -> 371 -[153,1](375, 375) -> 372 -[153,1](376, 375) -> 373 -[153,1](377, 375) -> 374 -[154,1](378, 378) -> 375 -[154,1](379, 378) -> 376 -[154,1](380, 378) -> 377 -[155,1](381, 381) -> 378 -[155,1](382, 381) -> 379 -[155,1](383, 381) -> 380 -[156,1](384, 384) -> 381 -[156,1](385, 384) -> 382 -[156,1](386, 384) -> 383 -[157,1](387, 387) -> 384 -[157,1](388, 387) -> 385 -[157,1](389, 387) -> 386 -[158,1](390, 390) -> 387 -[158,1](391, 390) -> 388 -[158,1](392, 390) -> 389 -[159,1](393, 393) -> 390 -[159,1](394, 393) -> 391 -[159,1](395, 393) -> 392 -[160,1](396, 396) -> 393 -[160,1](397, 396) -> 394 -[160,1](398, 396) -> 395 -[161,1](399, 399) -> 396 -[161,1](400, 399) -> 397 -[161,1](401, 399) -> 398 -[162,1](402, 402) -> 399 -[162,1](403, 402) -> 400 -[162,1](404, 402) -> 401 -[163,1](405, 405) -> 402 -[163,1](406, 405) -> 403 -[163,1](407, 405) -> 404 -[164,1](408, 408) -> 405 -[164,1](409, 408) -> 406 -[164,1](410, 408) -> 407 -[p1,1] -> 408 -[p2,1] -> 409 -[p3,1] -> 410 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/82/pre.hsl b/benchmarks/all/OEGrover/82/pre.hsl index 1223ae658..dbae6c835 100644 --- a/benchmarks/all/OEGrover/82/pre.hsl +++ b/benchmarks/all/OEGrover/82/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 40 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 4835703278458516698824703 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/82/pre.lsta b/benchmarks/all/OEGrover/82/pre.lsta deleted file mode 100644 index f8cf9fb83..000000000 --- a/benchmarks/all/OEGrover/82/pre.lsta +++ /dev/null @@ -1,421 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 166) -> 163 -[83,1](165, 167) -> 164 -[84,1](168, 168) -> 165 -[84,1](169, 168) -> 166 -[84,1](170, 168) -> 167 -[85,1](171, 171) -> 168 -[85,1](172, 171) -> 169 -[85,1](173, 171) -> 170 -[86,1](174, 174) -> 171 -[86,1](175, 174) -> 172 -[86,1](176, 174) -> 173 -[87,1](177, 177) -> 174 -[87,1](178, 177) -> 175 -[87,1](179, 177) -> 176 -[88,1](180, 180) -> 177 -[88,1](181, 180) -> 178 -[88,1](182, 180) -> 179 -[89,1](183, 183) -> 180 -[89,1](184, 183) -> 181 -[89,1](185, 183) -> 182 -[90,1](186, 186) -> 183 -[90,1](187, 186) -> 184 -[90,1](188, 186) -> 185 -[91,1](189, 189) -> 186 -[91,1](190, 189) -> 187 -[91,1](191, 189) -> 188 -[92,1](192, 192) -> 189 -[92,1](193, 192) -> 190 -[92,1](194, 192) -> 191 -[93,1](195, 195) -> 192 -[93,1](196, 195) -> 193 -[93,1](197, 195) -> 194 -[94,1](198, 198) -> 195 -[94,1](199, 198) -> 196 -[94,1](200, 198) -> 197 -[95,1](201, 201) -> 198 -[95,1](202, 201) -> 199 -[95,1](203, 201) -> 200 -[96,1](204, 204) -> 201 -[96,1](205, 204) -> 202 -[96,1](206, 204) -> 203 -[97,1](207, 207) -> 204 -[97,1](208, 207) -> 205 -[97,1](209, 207) -> 206 -[98,1](210, 210) -> 207 -[98,1](211, 210) -> 208 -[98,1](212, 210) -> 209 -[99,1](213, 213) -> 210 -[99,1](214, 213) -> 211 -[99,1](215, 213) -> 212 -[100,1](216, 216) -> 213 -[100,1](217, 216) -> 214 -[100,1](218, 216) -> 215 -[101,1](219, 219) -> 216 -[101,1](220, 219) -> 217 -[101,1](221, 219) -> 218 -[102,1](222, 222) -> 219 -[102,1](223, 222) -> 220 -[102,1](224, 222) -> 221 -[103,1](225, 225) -> 222 -[103,1](226, 225) -> 223 -[103,1](227, 225) -> 224 -[104,1](228, 228) -> 225 -[104,1](229, 228) -> 226 -[104,1](230, 228) -> 227 -[105,1](231, 231) -> 228 -[105,1](232, 231) -> 229 -[105,1](233, 231) -> 230 -[106,1](234, 234) -> 231 -[106,1](235, 234) -> 232 -[106,1](236, 234) -> 233 -[107,1](237, 237) -> 234 -[107,1](238, 237) -> 235 -[107,1](239, 237) -> 236 -[108,1](240, 240) -> 237 -[108,1](241, 240) -> 238 -[108,1](242, 240) -> 239 -[109,1](243, 243) -> 240 -[109,1](244, 243) -> 241 -[109,1](245, 243) -> 242 -[110,1](246, 246) -> 243 -[110,1](247, 246) -> 244 -[110,1](248, 246) -> 245 -[111,1](249, 249) -> 246 -[111,1](250, 249) -> 247 -[111,1](251, 249) -> 248 -[112,1](252, 252) -> 249 -[112,1](253, 252) -> 250 -[112,1](254, 252) -> 251 -[113,1](255, 255) -> 252 -[113,1](256, 255) -> 253 -[113,1](257, 255) -> 254 -[114,1](258, 258) -> 255 -[114,1](259, 258) -> 256 -[114,1](260, 258) -> 257 -[115,1](261, 261) -> 258 -[115,1](262, 261) -> 259 -[115,1](263, 261) -> 260 -[116,1](264, 264) -> 261 -[116,1](265, 264) -> 262 -[116,1](266, 264) -> 263 -[117,1](267, 267) -> 264 -[117,1](268, 267) -> 265 -[117,1](269, 267) -> 266 -[118,1](270, 270) -> 267 -[118,1](271, 270) -> 268 -[118,1](272, 270) -> 269 -[119,1](273, 273) -> 270 -[119,1](274, 273) -> 271 -[119,1](275, 273) -> 272 -[120,1](276, 276) -> 273 -[120,1](277, 276) -> 274 -[120,1](278, 276) -> 275 -[121,1](279, 279) -> 276 -[121,1](280, 279) -> 277 -[121,1](281, 279) -> 278 -[122,1](282, 282) -> 279 -[122,1](283, 282) -> 280 -[122,1](284, 282) -> 281 -[123,1](285, 285) -> 282 -[123,1](286, 285) -> 283 -[123,1](287, 285) -> 284 -[124,1](288, 288) -> 285 -[124,1](289, 288) -> 286 -[124,1](290, 288) -> 287 -[125,1](291, 291) -> 288 -[125,1](292, 291) -> 289 -[125,1](293, 291) -> 290 -[126,1](294, 294) -> 291 -[126,1](295, 294) -> 292 -[126,1](296, 294) -> 293 -[127,1](297, 297) -> 294 -[127,1](298, 297) -> 295 -[127,1](299, 297) -> 296 -[128,1](300, 300) -> 297 -[128,1](301, 300) -> 298 -[128,1](302, 300) -> 299 -[129,1](303, 303) -> 300 -[129,1](304, 303) -> 301 -[129,1](305, 303) -> 302 -[130,1](306, 306) -> 303 -[130,1](307, 306) -> 304 -[130,1](308, 306) -> 305 -[131,1](309, 309) -> 306 -[131,1](310, 309) -> 307 -[131,1](311, 309) -> 308 -[132,1](312, 312) -> 309 -[132,1](313, 312) -> 310 -[132,1](314, 312) -> 311 -[133,1](315, 315) -> 312 -[133,1](316, 315) -> 313 -[133,1](317, 315) -> 314 -[134,1](318, 318) -> 315 -[134,1](319, 318) -> 316 -[134,1](320, 318) -> 317 -[135,1](321, 321) -> 318 -[135,1](322, 321) -> 319 -[135,1](323, 321) -> 320 -[136,1](324, 324) -> 321 -[136,1](325, 324) -> 322 -[136,1](326, 324) -> 323 -[137,1](327, 327) -> 324 -[137,1](328, 327) -> 325 -[137,1](329, 327) -> 326 -[138,1](330, 330) -> 327 -[138,1](331, 330) -> 328 -[138,1](332, 330) -> 329 -[139,1](333, 333) -> 330 -[139,1](334, 333) -> 331 -[139,1](335, 333) -> 332 -[140,1](336, 336) -> 333 -[140,1](337, 336) -> 334 -[140,1](338, 336) -> 335 -[141,1](339, 339) -> 336 -[141,1](340, 339) -> 337 -[141,1](341, 339) -> 338 -[142,1](342, 342) -> 339 -[142,1](343, 342) -> 340 -[142,1](344, 342) -> 341 -[143,1](345, 345) -> 342 -[143,1](346, 345) -> 343 -[143,1](347, 345) -> 344 -[144,1](348, 348) -> 345 -[144,1](349, 348) -> 346 -[144,1](350, 348) -> 347 -[145,1](351, 351) -> 348 -[145,1](352, 351) -> 349 -[145,1](353, 351) -> 350 -[146,1](354, 354) -> 351 -[146,1](355, 354) -> 352 -[146,1](356, 354) -> 353 -[147,1](357, 357) -> 354 -[147,1](358, 357) -> 355 -[147,1](359, 357) -> 356 -[148,1](360, 360) -> 357 -[148,1](361, 360) -> 358 -[148,1](362, 360) -> 359 -[149,1](363, 363) -> 360 -[149,1](364, 363) -> 361 -[149,1](365, 363) -> 362 -[150,1](366, 366) -> 363 -[150,1](367, 366) -> 364 -[150,1](368, 366) -> 365 -[151,1](369, 369) -> 366 -[151,1](370, 369) -> 367 -[151,1](371, 369) -> 368 -[152,1](372, 372) -> 369 -[152,1](373, 372) -> 370 -[152,1](374, 372) -> 371 -[153,1](375, 375) -> 372 -[153,1](376, 375) -> 373 -[153,1](377, 375) -> 374 -[154,1](378, 378) -> 375 -[154,1](379, 378) -> 376 -[154,1](380, 378) -> 377 -[155,1](381, 381) -> 378 -[155,1](382, 381) -> 379 -[155,1](383, 381) -> 380 -[156,1](384, 384) -> 381 -[156,1](385, 384) -> 382 -[156,1](386, 384) -> 383 -[157,1](387, 387) -> 384 -[157,1](388, 387) -> 385 -[157,1](389, 387) -> 386 -[158,1](390, 390) -> 387 -[158,1](391, 390) -> 388 -[158,1](392, 390) -> 389 -[159,1](393, 393) -> 390 -[159,1](394, 393) -> 391 -[159,1](395, 393) -> 392 -[160,1](396, 396) -> 393 -[160,1](397, 396) -> 394 -[160,1](398, 396) -> 395 -[161,1](399, 399) -> 396 -[161,1](400, 399) -> 397 -[161,1](401, 399) -> 398 -[162,1](402, 402) -> 399 -[162,1](403, 402) -> 400 -[162,1](404, 402) -> 401 -[163,1](405, 405) -> 402 -[163,1](406, 405) -> 403 -[163,1](407, 405) -> 404 -[164,1](408, 408) -> 405 -[164,1](409, 408) -> 406 -[164,1](410, 408) -> 407 -[c0,1] -> 408 -[a,1] -> 409 -[b,1] -> 410 -Constraints -4835703278458516698824703 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/83/circuit.qasm b/benchmarks/all/OEGrover/83/circuit.qasm index 5b3a81c72..47940652d 100644 --- a/benchmarks/all/OEGrover/83/circuit.qasm +++ b/benchmarks/all/OEGrover/83/circuit.qasm @@ -1,212 +1,212 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[166]; +qreg qubits[165]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -ccx qubits[0], qubits[1], qubits[84]; -ccx qubits[2], qubits[84], qubits[85]; -ccx qubits[3], qubits[85], qubits[86]; -ccx qubits[4], qubits[86], qubits[87]; -ccx qubits[5], qubits[87], qubits[88]; -ccx qubits[6], qubits[88], qubits[89]; -ccx qubits[7], qubits[89], qubits[90]; -ccx qubits[8], qubits[90], qubits[91]; -ccx qubits[9], qubits[91], qubits[92]; -ccx qubits[10], qubits[92], qubits[93]; -ccx qubits[11], qubits[93], qubits[94]; -ccx qubits[12], qubits[94], qubits[95]; -ccx qubits[13], qubits[95], qubits[96]; -ccx qubits[14], qubits[96], qubits[97]; -ccx qubits[15], qubits[97], qubits[98]; -ccx qubits[16], qubits[98], qubits[99]; -ccx qubits[17], qubits[99], qubits[100]; -ccx qubits[18], qubits[100], qubits[101]; -ccx qubits[19], qubits[101], qubits[102]; -ccx qubits[20], qubits[102], qubits[103]; -ccx qubits[21], qubits[103], qubits[104]; -ccx qubits[22], qubits[104], qubits[105]; -ccx qubits[23], qubits[105], qubits[106]; -ccx qubits[24], qubits[106], qubits[107]; -ccx qubits[25], qubits[107], qubits[108]; -ccx qubits[26], qubits[108], qubits[109]; -ccx qubits[27], qubits[109], qubits[110]; -ccx qubits[28], qubits[110], qubits[111]; -ccx qubits[29], qubits[111], qubits[112]; -ccx qubits[30], qubits[112], qubits[113]; -ccx qubits[31], qubits[113], qubits[114]; -ccx qubits[32], qubits[114], qubits[115]; -ccx qubits[33], qubits[115], qubits[116]; -ccx qubits[34], qubits[116], qubits[117]; -ccx qubits[35], qubits[117], qubits[118]; -ccx qubits[36], qubits[118], qubits[119]; -ccx qubits[37], qubits[119], qubits[120]; -ccx qubits[38], qubits[120], qubits[121]; -ccx qubits[39], qubits[121], qubits[122]; -ccx qubits[40], qubits[122], qubits[123]; -ccx qubits[41], qubits[123], qubits[124]; -ccx qubits[42], qubits[124], qubits[125]; -ccx qubits[43], qubits[125], qubits[126]; -ccx qubits[44], qubits[126], qubits[127]; -ccx qubits[45], qubits[127], qubits[128]; -ccx qubits[46], qubits[128], qubits[129]; -ccx qubits[47], qubits[129], qubits[130]; -ccx qubits[48], qubits[130], qubits[131]; -ccx qubits[49], qubits[131], qubits[132]; -ccx qubits[50], qubits[132], qubits[133]; -ccx qubits[51], qubits[133], qubits[134]; -ccx qubits[52], qubits[134], qubits[135]; -ccx qubits[53], qubits[135], qubits[136]; -ccx qubits[54], qubits[136], qubits[137]; -ccx qubits[55], qubits[137], qubits[138]; -ccx qubits[56], qubits[138], qubits[139]; -ccx qubits[57], qubits[139], qubits[140]; -ccx qubits[58], qubits[140], qubits[141]; -ccx qubits[59], qubits[141], qubits[142]; -ccx qubits[60], qubits[142], qubits[143]; -ccx qubits[61], qubits[143], qubits[144]; -ccx qubits[62], qubits[144], qubits[145]; -ccx qubits[63], qubits[145], qubits[146]; -ccx qubits[64], qubits[146], qubits[147]; -ccx qubits[65], qubits[147], qubits[148]; -ccx qubits[66], qubits[148], qubits[149]; -ccx qubits[67], qubits[149], qubits[150]; -ccx qubits[68], qubits[150], qubits[151]; -ccx qubits[69], qubits[151], qubits[152]; -ccx qubits[70], qubits[152], qubits[153]; -ccx qubits[71], qubits[153], qubits[154]; -ccx qubits[72], qubits[154], qubits[155]; -ccx qubits[73], qubits[155], qubits[156]; -ccx qubits[74], qubits[156], qubits[157]; -ccx qubits[75], qubits[157], qubits[158]; -ccx qubits[76], qubits[158], qubits[159]; -ccx qubits[77], qubits[159], qubits[160]; -ccx qubits[78], qubits[160], qubits[161]; -ccx qubits[79], qubits[161], qubits[162]; -ccx qubits[80], qubits[162], qubits[163]; -ccx qubits[81], qubits[163], qubits[164]; -cz qubits[164], qubits[82]; -ccx qubits[81], qubits[163], qubits[164]; -ccx qubits[80], qubits[162], qubits[163]; -ccx qubits[79], qubits[161], qubits[162]; -ccx qubits[78], qubits[160], qubits[161]; -ccx qubits[77], qubits[159], qubits[160]; -ccx qubits[76], qubits[158], qubits[159]; -ccx qubits[75], qubits[157], qubits[158]; -ccx qubits[74], qubits[156], qubits[157]; -ccx qubits[73], qubits[155], qubits[156]; -ccx qubits[72], qubits[154], qubits[155]; -ccx qubits[71], qubits[153], qubits[154]; -ccx qubits[70], qubits[152], qubits[153]; -ccx qubits[69], qubits[151], qubits[152]; -ccx qubits[68], qubits[150], qubits[151]; -ccx qubits[67], qubits[149], qubits[150]; -ccx qubits[66], qubits[148], qubits[149]; -ccx qubits[65], qubits[147], qubits[148]; -ccx qubits[64], qubits[146], qubits[147]; -ccx qubits[63], qubits[145], qubits[146]; -ccx qubits[62], qubits[144], qubits[145]; -ccx qubits[61], qubits[143], qubits[144]; -ccx qubits[60], qubits[142], qubits[143]; -ccx qubits[59], qubits[141], qubits[142]; -ccx qubits[58], qubits[140], qubits[141]; -ccx qubits[57], qubits[139], qubits[140]; -ccx qubits[56], qubits[138], qubits[139]; -ccx qubits[55], qubits[137], qubits[138]; -ccx qubits[54], qubits[136], qubits[137]; -ccx qubits[53], qubits[135], qubits[136]; -ccx qubits[52], qubits[134], qubits[135]; -ccx qubits[51], qubits[133], qubits[134]; -ccx qubits[50], qubits[132], qubits[133]; -ccx qubits[49], qubits[131], qubits[132]; -ccx qubits[48], qubits[130], qubits[131]; -ccx qubits[47], qubits[129], qubits[130]; -ccx qubits[46], qubits[128], qubits[129]; -ccx qubits[45], qubits[127], qubits[128]; -ccx qubits[44], qubits[126], qubits[127]; -ccx qubits[43], qubits[125], qubits[126]; -ccx qubits[42], qubits[124], qubits[125]; -ccx qubits[41], qubits[123], qubits[124]; -ccx qubits[40], qubits[122], qubits[123]; -ccx qubits[39], qubits[121], qubits[122]; -ccx qubits[38], qubits[120], qubits[121]; -ccx qubits[37], qubits[119], qubits[120]; -ccx qubits[36], qubits[118], qubits[119]; -ccx qubits[35], qubits[117], qubits[118]; -ccx qubits[34], qubits[116], qubits[117]; -ccx qubits[33], qubits[115], qubits[116]; -ccx qubits[32], qubits[114], qubits[115]; -ccx qubits[31], qubits[113], qubits[114]; -ccx qubits[30], qubits[112], qubits[113]; -ccx qubits[29], qubits[111], qubits[112]; -ccx qubits[28], qubits[110], qubits[111]; -ccx qubits[27], qubits[109], qubits[110]; -ccx qubits[26], qubits[108], qubits[109]; -ccx qubits[25], qubits[107], qubits[108]; -ccx qubits[24], qubits[106], qubits[107]; -ccx qubits[23], qubits[105], qubits[106]; -ccx qubits[22], qubits[104], qubits[105]; -ccx qubits[21], qubits[103], qubits[104]; -ccx qubits[20], qubits[102], qubits[103]; -ccx qubits[19], qubits[101], qubits[102]; -ccx qubits[18], qubits[100], qubits[101]; -ccx qubits[17], qubits[99], qubits[100]; -ccx qubits[16], qubits[98], qubits[99]; -ccx qubits[15], qubits[97], qubits[98]; -ccx qubits[14], qubits[96], qubits[97]; -ccx qubits[13], qubits[95], qubits[96]; -ccx qubits[12], qubits[94], qubits[95]; -ccx qubits[11], qubits[93], qubits[94]; -ccx qubits[10], qubits[92], qubits[93]; -ccx qubits[9], qubits[91], qubits[92]; -ccx qubits[8], qubits[90], qubits[91]; -ccx qubits[7], qubits[89], qubits[90]; -ccx qubits[6], qubits[88], qubits[89]; -ccx qubits[5], qubits[87], qubits[88]; -ccx qubits[4], qubits[86], qubits[87]; -ccx qubits[3], qubits[85], qubits[86]; -ccx qubits[2], qubits[84], qubits[85]; -ccx qubits[0], qubits[1], qubits[84]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +cz qubits[162], qubits[163]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -251,497 +251,497 @@ x qubits[80]; x qubits[82]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; -ccx qubits[0], qubits[1], qubits[84]; -ccx qubits[2], qubits[84], qubits[85]; -ccx qubits[3], qubits[85], qubits[86]; -ccx qubits[4], qubits[86], qubits[87]; -ccx qubits[5], qubits[87], qubits[88]; -ccx qubits[6], qubits[88], qubits[89]; -ccx qubits[7], qubits[89], qubits[90]; -ccx qubits[8], qubits[90], qubits[91]; -ccx qubits[9], qubits[91], qubits[92]; -ccx qubits[10], qubits[92], qubits[93]; -ccx qubits[11], qubits[93], qubits[94]; -ccx qubits[12], qubits[94], qubits[95]; -ccx qubits[13], qubits[95], qubits[96]; -ccx qubits[14], qubits[96], qubits[97]; -ccx qubits[15], qubits[97], qubits[98]; -ccx qubits[16], qubits[98], qubits[99]; -ccx qubits[17], qubits[99], qubits[100]; -ccx qubits[18], qubits[100], qubits[101]; -ccx qubits[19], qubits[101], qubits[102]; -ccx qubits[20], qubits[102], qubits[103]; -ccx qubits[21], qubits[103], qubits[104]; -ccx qubits[22], qubits[104], qubits[105]; -ccx qubits[23], qubits[105], qubits[106]; -ccx qubits[24], qubits[106], qubits[107]; -ccx qubits[25], qubits[107], qubits[108]; -ccx qubits[26], qubits[108], qubits[109]; -ccx qubits[27], qubits[109], qubits[110]; -ccx qubits[28], qubits[110], qubits[111]; -ccx qubits[29], qubits[111], qubits[112]; -ccx qubits[30], qubits[112], qubits[113]; -ccx qubits[31], qubits[113], qubits[114]; -ccx qubits[32], qubits[114], qubits[115]; -ccx qubits[33], qubits[115], qubits[116]; -ccx qubits[34], qubits[116], qubits[117]; -ccx qubits[35], qubits[117], qubits[118]; -ccx qubits[36], qubits[118], qubits[119]; -ccx qubits[37], qubits[119], qubits[120]; -ccx qubits[38], qubits[120], qubits[121]; -ccx qubits[39], qubits[121], qubits[122]; -ccx qubits[40], qubits[122], qubits[123]; -ccx qubits[41], qubits[123], qubits[124]; -ccx qubits[42], qubits[124], qubits[125]; -ccx qubits[43], qubits[125], qubits[126]; -ccx qubits[44], qubits[126], qubits[127]; -ccx qubits[45], qubits[127], qubits[128]; -ccx qubits[46], qubits[128], qubits[129]; -ccx qubits[47], qubits[129], qubits[130]; -ccx qubits[48], qubits[130], qubits[131]; -ccx qubits[49], qubits[131], qubits[132]; -ccx qubits[50], qubits[132], qubits[133]; -ccx qubits[51], qubits[133], qubits[134]; -ccx qubits[52], qubits[134], qubits[135]; -ccx qubits[53], qubits[135], qubits[136]; -ccx qubits[54], qubits[136], qubits[137]; -ccx qubits[55], qubits[137], qubits[138]; -ccx qubits[56], qubits[138], qubits[139]; -ccx qubits[57], qubits[139], qubits[140]; -ccx qubits[58], qubits[140], qubits[141]; -ccx qubits[59], qubits[141], qubits[142]; -ccx qubits[60], qubits[142], qubits[143]; -ccx qubits[61], qubits[143], qubits[144]; -ccx qubits[62], qubits[144], qubits[145]; -ccx qubits[63], qubits[145], qubits[146]; -ccx qubits[64], qubits[146], qubits[147]; -ccx qubits[65], qubits[147], qubits[148]; -ccx qubits[66], qubits[148], qubits[149]; -ccx qubits[67], qubits[149], qubits[150]; -ccx qubits[68], qubits[150], qubits[151]; -ccx qubits[69], qubits[151], qubits[152]; -ccx qubits[70], qubits[152], qubits[153]; -ccx qubits[71], qubits[153], qubits[154]; -ccx qubits[72], qubits[154], qubits[155]; -ccx qubits[73], qubits[155], qubits[156]; -ccx qubits[74], qubits[156], qubits[157]; -ccx qubits[75], qubits[157], qubits[158]; -ccx qubits[76], qubits[158], qubits[159]; -ccx qubits[77], qubits[159], qubits[160]; -ccx qubits[78], qubits[160], qubits[161]; -ccx qubits[79], qubits[161], qubits[162]; -ccx qubits[80], qubits[162], qubits[163]; -ccx qubits[81], qubits[163], qubits[164]; -cz qubits[164], qubits[82]; -ccx qubits[81], qubits[163], qubits[164]; -ccx qubits[80], qubits[162], qubits[163]; -ccx qubits[79], qubits[161], qubits[162]; -ccx qubits[78], qubits[160], qubits[161]; -ccx qubits[77], qubits[159], qubits[160]; -ccx qubits[76], qubits[158], qubits[159]; -ccx qubits[75], qubits[157], qubits[158]; -ccx qubits[74], qubits[156], qubits[157]; -ccx qubits[73], qubits[155], qubits[156]; -ccx qubits[72], qubits[154], qubits[155]; -ccx qubits[71], qubits[153], qubits[154]; -ccx qubits[70], qubits[152], qubits[153]; -ccx qubits[69], qubits[151], qubits[152]; -ccx qubits[68], qubits[150], qubits[151]; -ccx qubits[67], qubits[149], qubits[150]; -ccx qubits[66], qubits[148], qubits[149]; -ccx qubits[65], qubits[147], qubits[148]; -ccx qubits[64], qubits[146], qubits[147]; -ccx qubits[63], qubits[145], qubits[146]; -ccx qubits[62], qubits[144], qubits[145]; -ccx qubits[61], qubits[143], qubits[144]; -ccx qubits[60], qubits[142], qubits[143]; -ccx qubits[59], qubits[141], qubits[142]; -ccx qubits[58], qubits[140], qubits[141]; -ccx qubits[57], qubits[139], qubits[140]; -ccx qubits[56], qubits[138], qubits[139]; -ccx qubits[55], qubits[137], qubits[138]; -ccx qubits[54], qubits[136], qubits[137]; -ccx qubits[53], qubits[135], qubits[136]; -ccx qubits[52], qubits[134], qubits[135]; -ccx qubits[51], qubits[133], qubits[134]; -ccx qubits[50], qubits[132], qubits[133]; -ccx qubits[49], qubits[131], qubits[132]; -ccx qubits[48], qubits[130], qubits[131]; -ccx qubits[47], qubits[129], qubits[130]; -ccx qubits[46], qubits[128], qubits[129]; -ccx qubits[45], qubits[127], qubits[128]; -ccx qubits[44], qubits[126], qubits[127]; -ccx qubits[43], qubits[125], qubits[126]; -ccx qubits[42], qubits[124], qubits[125]; -ccx qubits[41], qubits[123], qubits[124]; -ccx qubits[40], qubits[122], qubits[123]; -ccx qubits[39], qubits[121], qubits[122]; -ccx qubits[38], qubits[120], qubits[121]; -ccx qubits[37], qubits[119], qubits[120]; -ccx qubits[36], qubits[118], qubits[119]; -ccx qubits[35], qubits[117], qubits[118]; -ccx qubits[34], qubits[116], qubits[117]; -ccx qubits[33], qubits[115], qubits[116]; -ccx qubits[32], qubits[114], qubits[115]; -ccx qubits[31], qubits[113], qubits[114]; -ccx qubits[30], qubits[112], qubits[113]; -ccx qubits[29], qubits[111], qubits[112]; -ccx qubits[28], qubits[110], qubits[111]; -ccx qubits[27], qubits[109], qubits[110]; -ccx qubits[26], qubits[108], qubits[109]; -ccx qubits[25], qubits[107], qubits[108]; -ccx qubits[24], qubits[106], qubits[107]; -ccx qubits[23], qubits[105], qubits[106]; -ccx qubits[22], qubits[104], qubits[105]; -ccx qubits[21], qubits[103], qubits[104]; -ccx qubits[20], qubits[102], qubits[103]; -ccx qubits[19], qubits[101], qubits[102]; -ccx qubits[18], qubits[100], qubits[101]; -ccx qubits[17], qubits[99], qubits[100]; -ccx qubits[16], qubits[98], qubits[99]; -ccx qubits[15], qubits[97], qubits[98]; -ccx qubits[14], qubits[96], qubits[97]; -ccx qubits[13], qubits[95], qubits[96]; -ccx qubits[12], qubits[94], qubits[95]; -ccx qubits[11], qubits[93], qubits[94]; -ccx qubits[10], qubits[92], qubits[93]; -ccx qubits[9], qubits[91], qubits[92]; -ccx qubits[8], qubits[90], qubits[91]; -ccx qubits[7], qubits[89], qubits[90]; -ccx qubits[6], qubits[88], qubits[89]; -ccx qubits[5], qubits[87], qubits[88]; -ccx qubits[4], qubits[86], qubits[87]; -ccx qubits[3], qubits[85], qubits[86]; -ccx qubits[2], qubits[84], qubits[85]; -ccx qubits[0], qubits[1], qubits[84]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +cz qubits[162], qubits[163]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; +x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; -z qubits[83]; +h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +z qubits[164]; diff --git a/benchmarks/all/OEGrover/83/post.hsl b/benchmarks/all/OEGrover/83/post.hsl index 9153e444c..e498638ed 100644 --- a/benchmarks/all/OEGrover/83/post.hsl +++ b/benchmarks/all/OEGrover/83/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 40 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/83/post.lsta b/benchmarks/all/OEGrover/83/post.lsta deleted file mode 100644 index 72c2e0b09..000000000 --- a/benchmarks/all/OEGrover/83/post.lsta +++ /dev/null @@ -1,422 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 168) -> 165 -[84,1](167, 169) -> 166 -[85,1](170, 170) -> 167 -[85,1](171, 170) -> 168 -[85,1](172, 170) -> 169 -[86,1](173, 173) -> 170 -[86,1](174, 173) -> 171 -[86,1](175, 173) -> 172 -[87,1](176, 176) -> 173 -[87,1](177, 176) -> 174 -[87,1](178, 176) -> 175 -[88,1](179, 179) -> 176 -[88,1](180, 179) -> 177 -[88,1](181, 179) -> 178 -[89,1](182, 182) -> 179 -[89,1](183, 182) -> 180 -[89,1](184, 182) -> 181 -[90,1](185, 185) -> 182 -[90,1](186, 185) -> 183 -[90,1](187, 185) -> 184 -[91,1](188, 188) -> 185 -[91,1](189, 188) -> 186 -[91,1](190, 188) -> 187 -[92,1](191, 191) -> 188 -[92,1](192, 191) -> 189 -[92,1](193, 191) -> 190 -[93,1](194, 194) -> 191 -[93,1](195, 194) -> 192 -[93,1](196, 194) -> 193 -[94,1](197, 197) -> 194 -[94,1](198, 197) -> 195 -[94,1](199, 197) -> 196 -[95,1](200, 200) -> 197 -[95,1](201, 200) -> 198 -[95,1](202, 200) -> 199 -[96,1](203, 203) -> 200 -[96,1](204, 203) -> 201 -[96,1](205, 203) -> 202 -[97,1](206, 206) -> 203 -[97,1](207, 206) -> 204 -[97,1](208, 206) -> 205 -[98,1](209, 209) -> 206 -[98,1](210, 209) -> 207 -[98,1](211, 209) -> 208 -[99,1](212, 212) -> 209 -[99,1](213, 212) -> 210 -[99,1](214, 212) -> 211 -[100,1](215, 215) -> 212 -[100,1](216, 215) -> 213 -[100,1](217, 215) -> 214 -[101,1](218, 218) -> 215 -[101,1](219, 218) -> 216 -[101,1](220, 218) -> 217 -[102,1](221, 221) -> 218 -[102,1](222, 221) -> 219 -[102,1](223, 221) -> 220 -[103,1](224, 224) -> 221 -[103,1](225, 224) -> 222 -[103,1](226, 224) -> 223 -[104,1](227, 227) -> 224 -[104,1](228, 227) -> 225 -[104,1](229, 227) -> 226 -[105,1](230, 230) -> 227 -[105,1](231, 230) -> 228 -[105,1](232, 230) -> 229 -[106,1](233, 233) -> 230 -[106,1](234, 233) -> 231 -[106,1](235, 233) -> 232 -[107,1](236, 236) -> 233 -[107,1](237, 236) -> 234 -[107,1](238, 236) -> 235 -[108,1](239, 239) -> 236 -[108,1](240, 239) -> 237 -[108,1](241, 239) -> 238 -[109,1](242, 242) -> 239 -[109,1](243, 242) -> 240 -[109,1](244, 242) -> 241 -[110,1](245, 245) -> 242 -[110,1](246, 245) -> 243 -[110,1](247, 245) -> 244 -[111,1](248, 248) -> 245 -[111,1](249, 248) -> 246 -[111,1](250, 248) -> 247 -[112,1](251, 251) -> 248 -[112,1](252, 251) -> 249 -[112,1](253, 251) -> 250 -[113,1](254, 254) -> 251 -[113,1](255, 254) -> 252 -[113,1](256, 254) -> 253 -[114,1](257, 257) -> 254 -[114,1](258, 257) -> 255 -[114,1](259, 257) -> 256 -[115,1](260, 260) -> 257 -[115,1](261, 260) -> 258 -[115,1](262, 260) -> 259 -[116,1](263, 263) -> 260 -[116,1](264, 263) -> 261 -[116,1](265, 263) -> 262 -[117,1](266, 266) -> 263 -[117,1](267, 266) -> 264 -[117,1](268, 266) -> 265 -[118,1](269, 269) -> 266 -[118,1](270, 269) -> 267 -[118,1](271, 269) -> 268 -[119,1](272, 272) -> 269 -[119,1](273, 272) -> 270 -[119,1](274, 272) -> 271 -[120,1](275, 275) -> 272 -[120,1](276, 275) -> 273 -[120,1](277, 275) -> 274 -[121,1](278, 278) -> 275 -[121,1](279, 278) -> 276 -[121,1](280, 278) -> 277 -[122,1](281, 281) -> 278 -[122,1](282, 281) -> 279 -[122,1](283, 281) -> 280 -[123,1](284, 284) -> 281 -[123,1](285, 284) -> 282 -[123,1](286, 284) -> 283 -[124,1](287, 287) -> 284 -[124,1](288, 287) -> 285 -[124,1](289, 287) -> 286 -[125,1](290, 290) -> 287 -[125,1](291, 290) -> 288 -[125,1](292, 290) -> 289 -[126,1](293, 293) -> 290 -[126,1](294, 293) -> 291 -[126,1](295, 293) -> 292 -[127,1](296, 296) -> 293 -[127,1](297, 296) -> 294 -[127,1](298, 296) -> 295 -[128,1](299, 299) -> 296 -[128,1](300, 299) -> 297 -[128,1](301, 299) -> 298 -[129,1](302, 302) -> 299 -[129,1](303, 302) -> 300 -[129,1](304, 302) -> 301 -[130,1](305, 305) -> 302 -[130,1](306, 305) -> 303 -[130,1](307, 305) -> 304 -[131,1](308, 308) -> 305 -[131,1](309, 308) -> 306 -[131,1](310, 308) -> 307 -[132,1](311, 311) -> 308 -[132,1](312, 311) -> 309 -[132,1](313, 311) -> 310 -[133,1](314, 314) -> 311 -[133,1](315, 314) -> 312 -[133,1](316, 314) -> 313 -[134,1](317, 317) -> 314 -[134,1](318, 317) -> 315 -[134,1](319, 317) -> 316 -[135,1](320, 320) -> 317 -[135,1](321, 320) -> 318 -[135,1](322, 320) -> 319 -[136,1](323, 323) -> 320 -[136,1](324, 323) -> 321 -[136,1](325, 323) -> 322 -[137,1](326, 326) -> 323 -[137,1](327, 326) -> 324 -[137,1](328, 326) -> 325 -[138,1](329, 329) -> 326 -[138,1](330, 329) -> 327 -[138,1](331, 329) -> 328 -[139,1](332, 332) -> 329 -[139,1](333, 332) -> 330 -[139,1](334, 332) -> 331 -[140,1](335, 335) -> 332 -[140,1](336, 335) -> 333 -[140,1](337, 335) -> 334 -[141,1](338, 338) -> 335 -[141,1](339, 338) -> 336 -[141,1](340, 338) -> 337 -[142,1](341, 341) -> 338 -[142,1](342, 341) -> 339 -[142,1](343, 341) -> 340 -[143,1](344, 344) -> 341 -[143,1](345, 344) -> 342 -[143,1](346, 344) -> 343 -[144,1](347, 347) -> 344 -[144,1](348, 347) -> 345 -[144,1](349, 347) -> 346 -[145,1](350, 350) -> 347 -[145,1](351, 350) -> 348 -[145,1](352, 350) -> 349 -[146,1](353, 353) -> 350 -[146,1](354, 353) -> 351 -[146,1](355, 353) -> 352 -[147,1](356, 356) -> 353 -[147,1](357, 356) -> 354 -[147,1](358, 356) -> 355 -[148,1](359, 359) -> 356 -[148,1](360, 359) -> 357 -[148,1](361, 359) -> 358 -[149,1](362, 362) -> 359 -[149,1](363, 362) -> 360 -[149,1](364, 362) -> 361 -[150,1](365, 365) -> 362 -[150,1](366, 365) -> 363 -[150,1](367, 365) -> 364 -[151,1](368, 368) -> 365 -[151,1](369, 368) -> 366 -[151,1](370, 368) -> 367 -[152,1](371, 371) -> 368 -[152,1](372, 371) -> 369 -[152,1](373, 371) -> 370 -[153,1](374, 374) -> 371 -[153,1](375, 374) -> 372 -[153,1](376, 374) -> 373 -[154,1](377, 377) -> 374 -[154,1](378, 377) -> 375 -[154,1](379, 377) -> 376 -[155,1](380, 380) -> 377 -[155,1](381, 380) -> 378 -[155,1](382, 380) -> 379 -[156,1](383, 383) -> 380 -[156,1](384, 383) -> 381 -[156,1](385, 383) -> 382 -[157,1](386, 386) -> 383 -[157,1](387, 386) -> 384 -[157,1](388, 386) -> 385 -[158,1](389, 389) -> 386 -[158,1](390, 389) -> 387 -[158,1](391, 389) -> 388 -[159,1](392, 392) -> 389 -[159,1](393, 392) -> 390 -[159,1](394, 392) -> 391 -[160,1](395, 395) -> 392 -[160,1](396, 395) -> 393 -[160,1](397, 395) -> 394 -[161,1](398, 398) -> 395 -[161,1](399, 398) -> 396 -[161,1](400, 398) -> 397 -[162,1](401, 401) -> 398 -[162,1](402, 401) -> 399 -[162,1](403, 401) -> 400 -[163,1](404, 404) -> 401 -[163,1](405, 404) -> 402 -[163,1](406, 404) -> 403 -[164,1](407, 407) -> 404 -[164,1](408, 407) -> 405 -[164,1](409, 407) -> 406 -[165,1](410, 410) -> 407 -[165,1](411, 410) -> 408 -[165,1](412, 410) -> 409 -[166,1](413, 413) -> 410 -[166,1](414, 413) -> 411 -[166,1](415, 413) -> 412 -[p1,1] -> 413 -[p2,1] -> 414 -[p3,1] -> 415 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/83/pre.hsl b/benchmarks/all/OEGrover/83/pre.hsl index 4573439d9..3de85b963 100644 --- a/benchmarks/all/OEGrover/83/pre.hsl +++ b/benchmarks/all/OEGrover/83/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 40 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 9671406556917033397649407 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/83/pre.lsta b/benchmarks/all/OEGrover/83/pre.lsta deleted file mode 100644 index 1068b8d92..000000000 --- a/benchmarks/all/OEGrover/83/pre.lsta +++ /dev/null @@ -1,426 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 168) -> 165 -[84,1](167, 169) -> 166 -[85,1](170, 170) -> 167 -[85,1](171, 170) -> 168 -[85,1](172, 170) -> 169 -[86,1](173, 173) -> 170 -[86,1](174, 173) -> 171 -[86,1](175, 173) -> 172 -[87,1](176, 176) -> 173 -[87,1](177, 176) -> 174 -[87,1](178, 176) -> 175 -[88,1](179, 179) -> 176 -[88,1](180, 179) -> 177 -[88,1](181, 179) -> 178 -[89,1](182, 182) -> 179 -[89,1](183, 182) -> 180 -[89,1](184, 182) -> 181 -[90,1](185, 185) -> 182 -[90,1](186, 185) -> 183 -[90,1](187, 185) -> 184 -[91,1](188, 188) -> 185 -[91,1](189, 188) -> 186 -[91,1](190, 188) -> 187 -[92,1](191, 191) -> 188 -[92,1](192, 191) -> 189 -[92,1](193, 191) -> 190 -[93,1](194, 194) -> 191 -[93,1](195, 194) -> 192 -[93,1](196, 194) -> 193 -[94,1](197, 197) -> 194 -[94,1](198, 197) -> 195 -[94,1](199, 197) -> 196 -[95,1](200, 200) -> 197 -[95,1](201, 200) -> 198 -[95,1](202, 200) -> 199 -[96,1](203, 203) -> 200 -[96,1](204, 203) -> 201 -[96,1](205, 203) -> 202 -[97,1](206, 206) -> 203 -[97,1](207, 206) -> 204 -[97,1](208, 206) -> 205 -[98,1](209, 209) -> 206 -[98,1](210, 209) -> 207 -[98,1](211, 209) -> 208 -[99,1](212, 212) -> 209 -[99,1](213, 212) -> 210 -[99,1](214, 212) -> 211 -[100,1](215, 215) -> 212 -[100,1](216, 215) -> 213 -[100,1](217, 215) -> 214 -[101,1](218, 218) -> 215 -[101,1](219, 218) -> 216 -[101,1](220, 218) -> 217 -[102,1](221, 221) -> 218 -[102,1](222, 221) -> 219 -[102,1](223, 221) -> 220 -[103,1](224, 224) -> 221 -[103,1](225, 224) -> 222 -[103,1](226, 224) -> 223 -[104,1](227, 227) -> 224 -[104,1](228, 227) -> 225 -[104,1](229, 227) -> 226 -[105,1](230, 230) -> 227 -[105,1](231, 230) -> 228 -[105,1](232, 230) -> 229 -[106,1](233, 233) -> 230 -[106,1](234, 233) -> 231 -[106,1](235, 233) -> 232 -[107,1](236, 236) -> 233 -[107,1](237, 236) -> 234 -[107,1](238, 236) -> 235 -[108,1](239, 239) -> 236 -[108,1](240, 239) -> 237 -[108,1](241, 239) -> 238 -[109,1](242, 242) -> 239 -[109,1](243, 242) -> 240 -[109,1](244, 242) -> 241 -[110,1](245, 245) -> 242 -[110,1](246, 245) -> 243 -[110,1](247, 245) -> 244 -[111,1](248, 248) -> 245 -[111,1](249, 248) -> 246 -[111,1](250, 248) -> 247 -[112,1](251, 251) -> 248 -[112,1](252, 251) -> 249 -[112,1](253, 251) -> 250 -[113,1](254, 254) -> 251 -[113,1](255, 254) -> 252 -[113,1](256, 254) -> 253 -[114,1](257, 257) -> 254 -[114,1](258, 257) -> 255 -[114,1](259, 257) -> 256 -[115,1](260, 260) -> 257 -[115,1](261, 260) -> 258 -[115,1](262, 260) -> 259 -[116,1](263, 263) -> 260 -[116,1](264, 263) -> 261 -[116,1](265, 263) -> 262 -[117,1](266, 266) -> 263 -[117,1](267, 266) -> 264 -[117,1](268, 266) -> 265 -[118,1](269, 269) -> 266 -[118,1](270, 269) -> 267 -[118,1](271, 269) -> 268 -[119,1](272, 272) -> 269 -[119,1](273, 272) -> 270 -[119,1](274, 272) -> 271 -[120,1](275, 275) -> 272 -[120,1](276, 275) -> 273 -[120,1](277, 275) -> 274 -[121,1](278, 278) -> 275 -[121,1](279, 278) -> 276 -[121,1](280, 278) -> 277 -[122,1](281, 281) -> 278 -[122,1](282, 281) -> 279 -[122,1](283, 281) -> 280 -[123,1](284, 284) -> 281 -[123,1](285, 284) -> 282 -[123,1](286, 284) -> 283 -[124,1](287, 287) -> 284 -[124,1](288, 287) -> 285 -[124,1](289, 287) -> 286 -[125,1](290, 290) -> 287 -[125,1](291, 290) -> 288 -[125,1](292, 290) -> 289 -[126,1](293, 293) -> 290 -[126,1](294, 293) -> 291 -[126,1](295, 293) -> 292 -[127,1](296, 296) -> 293 -[127,1](297, 296) -> 294 -[127,1](298, 296) -> 295 -[128,1](299, 299) -> 296 -[128,1](300, 299) -> 297 -[128,1](301, 299) -> 298 -[129,1](302, 302) -> 299 -[129,1](303, 302) -> 300 -[129,1](304, 302) -> 301 -[130,1](305, 305) -> 302 -[130,1](306, 305) -> 303 -[130,1](307, 305) -> 304 -[131,1](308, 308) -> 305 -[131,1](309, 308) -> 306 -[131,1](310, 308) -> 307 -[132,1](311, 311) -> 308 -[132,1](312, 311) -> 309 -[132,1](313, 311) -> 310 -[133,1](314, 314) -> 311 -[133,1](315, 314) -> 312 -[133,1](316, 314) -> 313 -[134,1](317, 317) -> 314 -[134,1](318, 317) -> 315 -[134,1](319, 317) -> 316 -[135,1](320, 320) -> 317 -[135,1](321, 320) -> 318 -[135,1](322, 320) -> 319 -[136,1](323, 323) -> 320 -[136,1](324, 323) -> 321 -[136,1](325, 323) -> 322 -[137,1](326, 326) -> 323 -[137,1](327, 326) -> 324 -[137,1](328, 326) -> 325 -[138,1](329, 329) -> 326 -[138,1](330, 329) -> 327 -[138,1](331, 329) -> 328 -[139,1](332, 332) -> 329 -[139,1](333, 332) -> 330 -[139,1](334, 332) -> 331 -[140,1](335, 335) -> 332 -[140,1](336, 335) -> 333 -[140,1](337, 335) -> 334 -[141,1](338, 338) -> 335 -[141,1](339, 338) -> 336 -[141,1](340, 338) -> 337 -[142,1](341, 341) -> 338 -[142,1](342, 341) -> 339 -[142,1](343, 341) -> 340 -[143,1](344, 344) -> 341 -[143,1](345, 344) -> 342 -[143,1](346, 344) -> 343 -[144,1](347, 347) -> 344 -[144,1](348, 347) -> 345 -[144,1](349, 347) -> 346 -[145,1](350, 350) -> 347 -[145,1](351, 350) -> 348 -[145,1](352, 350) -> 349 -[146,1](353, 353) -> 350 -[146,1](354, 353) -> 351 -[146,1](355, 353) -> 352 -[147,1](356, 356) -> 353 -[147,1](357, 356) -> 354 -[147,1](358, 356) -> 355 -[148,1](359, 359) -> 356 -[148,1](360, 359) -> 357 -[148,1](361, 359) -> 358 -[149,1](362, 362) -> 359 -[149,1](363, 362) -> 360 -[149,1](364, 362) -> 361 -[150,1](365, 365) -> 362 -[150,1](366, 365) -> 363 -[150,1](367, 365) -> 364 -[151,1](368, 368) -> 365 -[151,1](369, 368) -> 366 -[151,1](370, 368) -> 367 -[152,1](371, 371) -> 368 -[152,1](372, 371) -> 369 -[152,1](373, 371) -> 370 -[153,1](374, 374) -> 371 -[153,1](375, 374) -> 372 -[153,1](376, 374) -> 373 -[154,1](377, 377) -> 374 -[154,1](378, 377) -> 375 -[154,1](379, 377) -> 376 -[155,1](380, 380) -> 377 -[155,1](381, 380) -> 378 -[155,1](382, 380) -> 379 -[156,1](383, 383) -> 380 -[156,1](384, 383) -> 381 -[156,1](385, 383) -> 382 -[157,1](386, 386) -> 383 -[157,1](387, 386) -> 384 -[157,1](388, 386) -> 385 -[158,1](389, 389) -> 386 -[158,1](390, 389) -> 387 -[158,1](391, 389) -> 388 -[159,1](392, 392) -> 389 -[159,1](393, 392) -> 390 -[159,1](394, 392) -> 391 -[160,1](395, 395) -> 392 -[160,1](396, 395) -> 393 -[160,1](397, 395) -> 394 -[161,1](398, 398) -> 395 -[161,1](399, 398) -> 396 -[161,1](400, 398) -> 397 -[162,1](401, 401) -> 398 -[162,1](402, 401) -> 399 -[162,1](403, 401) -> 400 -[163,1](404, 404) -> 401 -[163,1](405, 404) -> 402 -[163,1](406, 404) -> 403 -[164,1](407, 407) -> 404 -[164,1](408, 407) -> 405 -[164,1](409, 407) -> 406 -[165,1](410, 410) -> 407 -[165,1](411, 410) -> 408 -[165,1](412, 410) -> 409 -[166,1](413, 413) -> 410 -[166,1](414, 413) -> 411 -[166,1](415, 413) -> 412 -[c0,1] -> 413 -[a,1] -> 414 -[b,1] -> 415 -Constraints -9671406556917033397649407 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/84/circuit.qasm b/benchmarks/all/OEGrover/84/circuit.qasm index fb3fa8c10..ed7db9778 100644 --- a/benchmarks/all/OEGrover/84/circuit.qasm +++ b/benchmarks/all/OEGrover/84/circuit.qasm @@ -1,214 +1,214 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[168]; +qreg qubits[167]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -ccx qubits[0], qubits[1], qubits[85]; -ccx qubits[2], qubits[85], qubits[86]; -ccx qubits[3], qubits[86], qubits[87]; -ccx qubits[4], qubits[87], qubits[88]; -ccx qubits[5], qubits[88], qubits[89]; -ccx qubits[6], qubits[89], qubits[90]; -ccx qubits[7], qubits[90], qubits[91]; -ccx qubits[8], qubits[91], qubits[92]; -ccx qubits[9], qubits[92], qubits[93]; -ccx qubits[10], qubits[93], qubits[94]; -ccx qubits[11], qubits[94], qubits[95]; -ccx qubits[12], qubits[95], qubits[96]; -ccx qubits[13], qubits[96], qubits[97]; -ccx qubits[14], qubits[97], qubits[98]; -ccx qubits[15], qubits[98], qubits[99]; -ccx qubits[16], qubits[99], qubits[100]; -ccx qubits[17], qubits[100], qubits[101]; -ccx qubits[18], qubits[101], qubits[102]; -ccx qubits[19], qubits[102], qubits[103]; -ccx qubits[20], qubits[103], qubits[104]; -ccx qubits[21], qubits[104], qubits[105]; -ccx qubits[22], qubits[105], qubits[106]; -ccx qubits[23], qubits[106], qubits[107]; -ccx qubits[24], qubits[107], qubits[108]; -ccx qubits[25], qubits[108], qubits[109]; -ccx qubits[26], qubits[109], qubits[110]; -ccx qubits[27], qubits[110], qubits[111]; -ccx qubits[28], qubits[111], qubits[112]; -ccx qubits[29], qubits[112], qubits[113]; -ccx qubits[30], qubits[113], qubits[114]; -ccx qubits[31], qubits[114], qubits[115]; -ccx qubits[32], qubits[115], qubits[116]; -ccx qubits[33], qubits[116], qubits[117]; -ccx qubits[34], qubits[117], qubits[118]; -ccx qubits[35], qubits[118], qubits[119]; -ccx qubits[36], qubits[119], qubits[120]; -ccx qubits[37], qubits[120], qubits[121]; -ccx qubits[38], qubits[121], qubits[122]; -ccx qubits[39], qubits[122], qubits[123]; -ccx qubits[40], qubits[123], qubits[124]; -ccx qubits[41], qubits[124], qubits[125]; -ccx qubits[42], qubits[125], qubits[126]; -ccx qubits[43], qubits[126], qubits[127]; -ccx qubits[44], qubits[127], qubits[128]; -ccx qubits[45], qubits[128], qubits[129]; -ccx qubits[46], qubits[129], qubits[130]; -ccx qubits[47], qubits[130], qubits[131]; -ccx qubits[48], qubits[131], qubits[132]; -ccx qubits[49], qubits[132], qubits[133]; -ccx qubits[50], qubits[133], qubits[134]; -ccx qubits[51], qubits[134], qubits[135]; -ccx qubits[52], qubits[135], qubits[136]; -ccx qubits[53], qubits[136], qubits[137]; -ccx qubits[54], qubits[137], qubits[138]; -ccx qubits[55], qubits[138], qubits[139]; -ccx qubits[56], qubits[139], qubits[140]; -ccx qubits[57], qubits[140], qubits[141]; -ccx qubits[58], qubits[141], qubits[142]; -ccx qubits[59], qubits[142], qubits[143]; -ccx qubits[60], qubits[143], qubits[144]; -ccx qubits[61], qubits[144], qubits[145]; -ccx qubits[62], qubits[145], qubits[146]; -ccx qubits[63], qubits[146], qubits[147]; -ccx qubits[64], qubits[147], qubits[148]; -ccx qubits[65], qubits[148], qubits[149]; -ccx qubits[66], qubits[149], qubits[150]; -ccx qubits[67], qubits[150], qubits[151]; -ccx qubits[68], qubits[151], qubits[152]; -ccx qubits[69], qubits[152], qubits[153]; -ccx qubits[70], qubits[153], qubits[154]; -ccx qubits[71], qubits[154], qubits[155]; -ccx qubits[72], qubits[155], qubits[156]; -ccx qubits[73], qubits[156], qubits[157]; -ccx qubits[74], qubits[157], qubits[158]; -ccx qubits[75], qubits[158], qubits[159]; -ccx qubits[76], qubits[159], qubits[160]; -ccx qubits[77], qubits[160], qubits[161]; -ccx qubits[78], qubits[161], qubits[162]; -ccx qubits[79], qubits[162], qubits[163]; -ccx qubits[80], qubits[163], qubits[164]; -ccx qubits[81], qubits[164], qubits[165]; -ccx qubits[82], qubits[165], qubits[166]; -cz qubits[166], qubits[83]; -ccx qubits[82], qubits[165], qubits[166]; -ccx qubits[81], qubits[164], qubits[165]; -ccx qubits[80], qubits[163], qubits[164]; -ccx qubits[79], qubits[162], qubits[163]; -ccx qubits[78], qubits[161], qubits[162]; -ccx qubits[77], qubits[160], qubits[161]; -ccx qubits[76], qubits[159], qubits[160]; -ccx qubits[75], qubits[158], qubits[159]; -ccx qubits[74], qubits[157], qubits[158]; -ccx qubits[73], qubits[156], qubits[157]; -ccx qubits[72], qubits[155], qubits[156]; -ccx qubits[71], qubits[154], qubits[155]; -ccx qubits[70], qubits[153], qubits[154]; -ccx qubits[69], qubits[152], qubits[153]; -ccx qubits[68], qubits[151], qubits[152]; -ccx qubits[67], qubits[150], qubits[151]; -ccx qubits[66], qubits[149], qubits[150]; -ccx qubits[65], qubits[148], qubits[149]; -ccx qubits[64], qubits[147], qubits[148]; -ccx qubits[63], qubits[146], qubits[147]; -ccx qubits[62], qubits[145], qubits[146]; -ccx qubits[61], qubits[144], qubits[145]; -ccx qubits[60], qubits[143], qubits[144]; -ccx qubits[59], qubits[142], qubits[143]; -ccx qubits[58], qubits[141], qubits[142]; -ccx qubits[57], qubits[140], qubits[141]; -ccx qubits[56], qubits[139], qubits[140]; -ccx qubits[55], qubits[138], qubits[139]; -ccx qubits[54], qubits[137], qubits[138]; -ccx qubits[53], qubits[136], qubits[137]; -ccx qubits[52], qubits[135], qubits[136]; -ccx qubits[51], qubits[134], qubits[135]; -ccx qubits[50], qubits[133], qubits[134]; -ccx qubits[49], qubits[132], qubits[133]; -ccx qubits[48], qubits[131], qubits[132]; -ccx qubits[47], qubits[130], qubits[131]; -ccx qubits[46], qubits[129], qubits[130]; -ccx qubits[45], qubits[128], qubits[129]; -ccx qubits[44], qubits[127], qubits[128]; -ccx qubits[43], qubits[126], qubits[127]; -ccx qubits[42], qubits[125], qubits[126]; -ccx qubits[41], qubits[124], qubits[125]; -ccx qubits[40], qubits[123], qubits[124]; -ccx qubits[39], qubits[122], qubits[123]; -ccx qubits[38], qubits[121], qubits[122]; -ccx qubits[37], qubits[120], qubits[121]; -ccx qubits[36], qubits[119], qubits[120]; -ccx qubits[35], qubits[118], qubits[119]; -ccx qubits[34], qubits[117], qubits[118]; -ccx qubits[33], qubits[116], qubits[117]; -ccx qubits[32], qubits[115], qubits[116]; -ccx qubits[31], qubits[114], qubits[115]; -ccx qubits[30], qubits[113], qubits[114]; -ccx qubits[29], qubits[112], qubits[113]; -ccx qubits[28], qubits[111], qubits[112]; -ccx qubits[27], qubits[110], qubits[111]; -ccx qubits[26], qubits[109], qubits[110]; -ccx qubits[25], qubits[108], qubits[109]; -ccx qubits[24], qubits[107], qubits[108]; -ccx qubits[23], qubits[106], qubits[107]; -ccx qubits[22], qubits[105], qubits[106]; -ccx qubits[21], qubits[104], qubits[105]; -ccx qubits[20], qubits[103], qubits[104]; -ccx qubits[19], qubits[102], qubits[103]; -ccx qubits[18], qubits[101], qubits[102]; -ccx qubits[17], qubits[100], qubits[101]; -ccx qubits[16], qubits[99], qubits[100]; -ccx qubits[15], qubits[98], qubits[99]; -ccx qubits[14], qubits[97], qubits[98]; -ccx qubits[13], qubits[96], qubits[97]; -ccx qubits[12], qubits[95], qubits[96]; -ccx qubits[11], qubits[94], qubits[95]; -ccx qubits[10], qubits[93], qubits[94]; -ccx qubits[9], qubits[92], qubits[93]; -ccx qubits[8], qubits[91], qubits[92]; -ccx qubits[7], qubits[90], qubits[91]; -ccx qubits[6], qubits[89], qubits[90]; -ccx qubits[5], qubits[88], qubits[89]; -ccx qubits[4], qubits[87], qubits[88]; -ccx qubits[3], qubits[86], qubits[87]; -ccx qubits[2], qubits[85], qubits[86]; -ccx qubits[0], qubits[1], qubits[85]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +cz qubits[164], qubits[165]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -253,503 +253,503 @@ x qubits[80]; x qubits[82]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -ccx qubits[0], qubits[1], qubits[85]; -ccx qubits[2], qubits[85], qubits[86]; -ccx qubits[3], qubits[86], qubits[87]; -ccx qubits[4], qubits[87], qubits[88]; -ccx qubits[5], qubits[88], qubits[89]; -ccx qubits[6], qubits[89], qubits[90]; -ccx qubits[7], qubits[90], qubits[91]; -ccx qubits[8], qubits[91], qubits[92]; -ccx qubits[9], qubits[92], qubits[93]; -ccx qubits[10], qubits[93], qubits[94]; -ccx qubits[11], qubits[94], qubits[95]; -ccx qubits[12], qubits[95], qubits[96]; -ccx qubits[13], qubits[96], qubits[97]; -ccx qubits[14], qubits[97], qubits[98]; -ccx qubits[15], qubits[98], qubits[99]; -ccx qubits[16], qubits[99], qubits[100]; -ccx qubits[17], qubits[100], qubits[101]; -ccx qubits[18], qubits[101], qubits[102]; -ccx qubits[19], qubits[102], qubits[103]; -ccx qubits[20], qubits[103], qubits[104]; -ccx qubits[21], qubits[104], qubits[105]; -ccx qubits[22], qubits[105], qubits[106]; -ccx qubits[23], qubits[106], qubits[107]; -ccx qubits[24], qubits[107], qubits[108]; -ccx qubits[25], qubits[108], qubits[109]; -ccx qubits[26], qubits[109], qubits[110]; -ccx qubits[27], qubits[110], qubits[111]; -ccx qubits[28], qubits[111], qubits[112]; -ccx qubits[29], qubits[112], qubits[113]; -ccx qubits[30], qubits[113], qubits[114]; -ccx qubits[31], qubits[114], qubits[115]; -ccx qubits[32], qubits[115], qubits[116]; -ccx qubits[33], qubits[116], qubits[117]; -ccx qubits[34], qubits[117], qubits[118]; -ccx qubits[35], qubits[118], qubits[119]; -ccx qubits[36], qubits[119], qubits[120]; -ccx qubits[37], qubits[120], qubits[121]; -ccx qubits[38], qubits[121], qubits[122]; -ccx qubits[39], qubits[122], qubits[123]; -ccx qubits[40], qubits[123], qubits[124]; -ccx qubits[41], qubits[124], qubits[125]; -ccx qubits[42], qubits[125], qubits[126]; -ccx qubits[43], qubits[126], qubits[127]; -ccx qubits[44], qubits[127], qubits[128]; -ccx qubits[45], qubits[128], qubits[129]; -ccx qubits[46], qubits[129], qubits[130]; -ccx qubits[47], qubits[130], qubits[131]; -ccx qubits[48], qubits[131], qubits[132]; -ccx qubits[49], qubits[132], qubits[133]; -ccx qubits[50], qubits[133], qubits[134]; -ccx qubits[51], qubits[134], qubits[135]; -ccx qubits[52], qubits[135], qubits[136]; -ccx qubits[53], qubits[136], qubits[137]; -ccx qubits[54], qubits[137], qubits[138]; -ccx qubits[55], qubits[138], qubits[139]; -ccx qubits[56], qubits[139], qubits[140]; -ccx qubits[57], qubits[140], qubits[141]; -ccx qubits[58], qubits[141], qubits[142]; -ccx qubits[59], qubits[142], qubits[143]; -ccx qubits[60], qubits[143], qubits[144]; -ccx qubits[61], qubits[144], qubits[145]; -ccx qubits[62], qubits[145], qubits[146]; -ccx qubits[63], qubits[146], qubits[147]; -ccx qubits[64], qubits[147], qubits[148]; -ccx qubits[65], qubits[148], qubits[149]; -ccx qubits[66], qubits[149], qubits[150]; -ccx qubits[67], qubits[150], qubits[151]; -ccx qubits[68], qubits[151], qubits[152]; -ccx qubits[69], qubits[152], qubits[153]; -ccx qubits[70], qubits[153], qubits[154]; -ccx qubits[71], qubits[154], qubits[155]; -ccx qubits[72], qubits[155], qubits[156]; -ccx qubits[73], qubits[156], qubits[157]; -ccx qubits[74], qubits[157], qubits[158]; -ccx qubits[75], qubits[158], qubits[159]; -ccx qubits[76], qubits[159], qubits[160]; -ccx qubits[77], qubits[160], qubits[161]; -ccx qubits[78], qubits[161], qubits[162]; -ccx qubits[79], qubits[162], qubits[163]; -ccx qubits[80], qubits[163], qubits[164]; -ccx qubits[81], qubits[164], qubits[165]; -ccx qubits[82], qubits[165], qubits[166]; -cz qubits[166], qubits[83]; -ccx qubits[82], qubits[165], qubits[166]; -ccx qubits[81], qubits[164], qubits[165]; -ccx qubits[80], qubits[163], qubits[164]; -ccx qubits[79], qubits[162], qubits[163]; -ccx qubits[78], qubits[161], qubits[162]; -ccx qubits[77], qubits[160], qubits[161]; -ccx qubits[76], qubits[159], qubits[160]; -ccx qubits[75], qubits[158], qubits[159]; -ccx qubits[74], qubits[157], qubits[158]; -ccx qubits[73], qubits[156], qubits[157]; -ccx qubits[72], qubits[155], qubits[156]; -ccx qubits[71], qubits[154], qubits[155]; -ccx qubits[70], qubits[153], qubits[154]; -ccx qubits[69], qubits[152], qubits[153]; -ccx qubits[68], qubits[151], qubits[152]; -ccx qubits[67], qubits[150], qubits[151]; -ccx qubits[66], qubits[149], qubits[150]; -ccx qubits[65], qubits[148], qubits[149]; -ccx qubits[64], qubits[147], qubits[148]; -ccx qubits[63], qubits[146], qubits[147]; -ccx qubits[62], qubits[145], qubits[146]; -ccx qubits[61], qubits[144], qubits[145]; -ccx qubits[60], qubits[143], qubits[144]; -ccx qubits[59], qubits[142], qubits[143]; -ccx qubits[58], qubits[141], qubits[142]; -ccx qubits[57], qubits[140], qubits[141]; -ccx qubits[56], qubits[139], qubits[140]; -ccx qubits[55], qubits[138], qubits[139]; -ccx qubits[54], qubits[137], qubits[138]; -ccx qubits[53], qubits[136], qubits[137]; -ccx qubits[52], qubits[135], qubits[136]; -ccx qubits[51], qubits[134], qubits[135]; -ccx qubits[50], qubits[133], qubits[134]; -ccx qubits[49], qubits[132], qubits[133]; -ccx qubits[48], qubits[131], qubits[132]; -ccx qubits[47], qubits[130], qubits[131]; -ccx qubits[46], qubits[129], qubits[130]; -ccx qubits[45], qubits[128], qubits[129]; -ccx qubits[44], qubits[127], qubits[128]; -ccx qubits[43], qubits[126], qubits[127]; -ccx qubits[42], qubits[125], qubits[126]; -ccx qubits[41], qubits[124], qubits[125]; -ccx qubits[40], qubits[123], qubits[124]; -ccx qubits[39], qubits[122], qubits[123]; -ccx qubits[38], qubits[121], qubits[122]; -ccx qubits[37], qubits[120], qubits[121]; -ccx qubits[36], qubits[119], qubits[120]; -ccx qubits[35], qubits[118], qubits[119]; -ccx qubits[34], qubits[117], qubits[118]; -ccx qubits[33], qubits[116], qubits[117]; -ccx qubits[32], qubits[115], qubits[116]; -ccx qubits[31], qubits[114], qubits[115]; -ccx qubits[30], qubits[113], qubits[114]; -ccx qubits[29], qubits[112], qubits[113]; -ccx qubits[28], qubits[111], qubits[112]; -ccx qubits[27], qubits[110], qubits[111]; -ccx qubits[26], qubits[109], qubits[110]; -ccx qubits[25], qubits[108], qubits[109]; -ccx qubits[24], qubits[107], qubits[108]; -ccx qubits[23], qubits[106], qubits[107]; -ccx qubits[22], qubits[105], qubits[106]; -ccx qubits[21], qubits[104], qubits[105]; -ccx qubits[20], qubits[103], qubits[104]; -ccx qubits[19], qubits[102], qubits[103]; -ccx qubits[18], qubits[101], qubits[102]; -ccx qubits[17], qubits[100], qubits[101]; -ccx qubits[16], qubits[99], qubits[100]; -ccx qubits[15], qubits[98], qubits[99]; -ccx qubits[14], qubits[97], qubits[98]; -ccx qubits[13], qubits[96], qubits[97]; -ccx qubits[12], qubits[95], qubits[96]; -ccx qubits[11], qubits[94], qubits[95]; -ccx qubits[10], qubits[93], qubits[94]; -ccx qubits[9], qubits[92], qubits[93]; -ccx qubits[8], qubits[91], qubits[92]; -ccx qubits[7], qubits[90], qubits[91]; -ccx qubits[6], qubits[89], qubits[90]; -ccx qubits[5], qubits[88], qubits[89]; -ccx qubits[4], qubits[87], qubits[88]; -ccx qubits[3], qubits[86], qubits[87]; -ccx qubits[2], qubits[85], qubits[86]; -ccx qubits[0], qubits[1], qubits[85]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +cz qubits[164], qubits[165]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -z qubits[84]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +z qubits[166]; diff --git a/benchmarks/all/OEGrover/84/post.hsl b/benchmarks/all/OEGrover/84/post.hsl index 0cfc0bd4f..e3dfabfc0 100644 --- a/benchmarks/all/OEGrover/84/post.hsl +++ b/benchmarks/all/OEGrover/84/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010101010101100000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 41 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/84/post.lsta b/benchmarks/all/OEGrover/84/post.lsta deleted file mode 100644 index 52390423e..000000000 --- a/benchmarks/all/OEGrover/84/post.lsta +++ /dev/null @@ -1,427 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 170) -> 167 -[85,1](169, 171) -> 168 -[86,1](172, 172) -> 169 -[86,1](173, 172) -> 170 -[86,1](174, 172) -> 171 -[87,1](175, 175) -> 172 -[87,1](176, 175) -> 173 -[87,1](177, 175) -> 174 -[88,1](178, 178) -> 175 -[88,1](179, 178) -> 176 -[88,1](180, 178) -> 177 -[89,1](181, 181) -> 178 -[89,1](182, 181) -> 179 -[89,1](183, 181) -> 180 -[90,1](184, 184) -> 181 -[90,1](185, 184) -> 182 -[90,1](186, 184) -> 183 -[91,1](187, 187) -> 184 -[91,1](188, 187) -> 185 -[91,1](189, 187) -> 186 -[92,1](190, 190) -> 187 -[92,1](191, 190) -> 188 -[92,1](192, 190) -> 189 -[93,1](193, 193) -> 190 -[93,1](194, 193) -> 191 -[93,1](195, 193) -> 192 -[94,1](196, 196) -> 193 -[94,1](197, 196) -> 194 -[94,1](198, 196) -> 195 -[95,1](199, 199) -> 196 -[95,1](200, 199) -> 197 -[95,1](201, 199) -> 198 -[96,1](202, 202) -> 199 -[96,1](203, 202) -> 200 -[96,1](204, 202) -> 201 -[97,1](205, 205) -> 202 -[97,1](206, 205) -> 203 -[97,1](207, 205) -> 204 -[98,1](208, 208) -> 205 -[98,1](209, 208) -> 206 -[98,1](210, 208) -> 207 -[99,1](211, 211) -> 208 -[99,1](212, 211) -> 209 -[99,1](213, 211) -> 210 -[100,1](214, 214) -> 211 -[100,1](215, 214) -> 212 -[100,1](216, 214) -> 213 -[101,1](217, 217) -> 214 -[101,1](218, 217) -> 215 -[101,1](219, 217) -> 216 -[102,1](220, 220) -> 217 -[102,1](221, 220) -> 218 -[102,1](222, 220) -> 219 -[103,1](223, 223) -> 220 -[103,1](224, 223) -> 221 -[103,1](225, 223) -> 222 -[104,1](226, 226) -> 223 -[104,1](227, 226) -> 224 -[104,1](228, 226) -> 225 -[105,1](229, 229) -> 226 -[105,1](230, 229) -> 227 -[105,1](231, 229) -> 228 -[106,1](232, 232) -> 229 -[106,1](233, 232) -> 230 -[106,1](234, 232) -> 231 -[107,1](235, 235) -> 232 -[107,1](236, 235) -> 233 -[107,1](237, 235) -> 234 -[108,1](238, 238) -> 235 -[108,1](239, 238) -> 236 -[108,1](240, 238) -> 237 -[109,1](241, 241) -> 238 -[109,1](242, 241) -> 239 -[109,1](243, 241) -> 240 -[110,1](244, 244) -> 241 -[110,1](245, 244) -> 242 -[110,1](246, 244) -> 243 -[111,1](247, 247) -> 244 -[111,1](248, 247) -> 245 -[111,1](249, 247) -> 246 -[112,1](250, 250) -> 247 -[112,1](251, 250) -> 248 -[112,1](252, 250) -> 249 -[113,1](253, 253) -> 250 -[113,1](254, 253) -> 251 -[113,1](255, 253) -> 252 -[114,1](256, 256) -> 253 -[114,1](257, 256) -> 254 -[114,1](258, 256) -> 255 -[115,1](259, 259) -> 256 -[115,1](260, 259) -> 257 -[115,1](261, 259) -> 258 -[116,1](262, 262) -> 259 -[116,1](263, 262) -> 260 -[116,1](264, 262) -> 261 -[117,1](265, 265) -> 262 -[117,1](266, 265) -> 263 -[117,1](267, 265) -> 264 -[118,1](268, 268) -> 265 -[118,1](269, 268) -> 266 -[118,1](270, 268) -> 267 -[119,1](271, 271) -> 268 -[119,1](272, 271) -> 269 -[119,1](273, 271) -> 270 -[120,1](274, 274) -> 271 -[120,1](275, 274) -> 272 -[120,1](276, 274) -> 273 -[121,1](277, 277) -> 274 -[121,1](278, 277) -> 275 -[121,1](279, 277) -> 276 -[122,1](280, 280) -> 277 -[122,1](281, 280) -> 278 -[122,1](282, 280) -> 279 -[123,1](283, 283) -> 280 -[123,1](284, 283) -> 281 -[123,1](285, 283) -> 282 -[124,1](286, 286) -> 283 -[124,1](287, 286) -> 284 -[124,1](288, 286) -> 285 -[125,1](289, 289) -> 286 -[125,1](290, 289) -> 287 -[125,1](291, 289) -> 288 -[126,1](292, 292) -> 289 -[126,1](293, 292) -> 290 -[126,1](294, 292) -> 291 -[127,1](295, 295) -> 292 -[127,1](296, 295) -> 293 -[127,1](297, 295) -> 294 -[128,1](298, 298) -> 295 -[128,1](299, 298) -> 296 -[128,1](300, 298) -> 297 -[129,1](301, 301) -> 298 -[129,1](302, 301) -> 299 -[129,1](303, 301) -> 300 -[130,1](304, 304) -> 301 -[130,1](305, 304) -> 302 -[130,1](306, 304) -> 303 -[131,1](307, 307) -> 304 -[131,1](308, 307) -> 305 -[131,1](309, 307) -> 306 -[132,1](310, 310) -> 307 -[132,1](311, 310) -> 308 -[132,1](312, 310) -> 309 -[133,1](313, 313) -> 310 -[133,1](314, 313) -> 311 -[133,1](315, 313) -> 312 -[134,1](316, 316) -> 313 -[134,1](317, 316) -> 314 -[134,1](318, 316) -> 315 -[135,1](319, 319) -> 316 -[135,1](320, 319) -> 317 -[135,1](321, 319) -> 318 -[136,1](322, 322) -> 319 -[136,1](323, 322) -> 320 -[136,1](324, 322) -> 321 -[137,1](325, 325) -> 322 -[137,1](326, 325) -> 323 -[137,1](327, 325) -> 324 -[138,1](328, 328) -> 325 -[138,1](329, 328) -> 326 -[138,1](330, 328) -> 327 -[139,1](331, 331) -> 328 -[139,1](332, 331) -> 329 -[139,1](333, 331) -> 330 -[140,1](334, 334) -> 331 -[140,1](335, 334) -> 332 -[140,1](336, 334) -> 333 -[141,1](337, 337) -> 334 -[141,1](338, 337) -> 335 -[141,1](339, 337) -> 336 -[142,1](340, 340) -> 337 -[142,1](341, 340) -> 338 -[142,1](342, 340) -> 339 -[143,1](343, 343) -> 340 -[143,1](344, 343) -> 341 -[143,1](345, 343) -> 342 -[144,1](346, 346) -> 343 -[144,1](347, 346) -> 344 -[144,1](348, 346) -> 345 -[145,1](349, 349) -> 346 -[145,1](350, 349) -> 347 -[145,1](351, 349) -> 348 -[146,1](352, 352) -> 349 -[146,1](353, 352) -> 350 -[146,1](354, 352) -> 351 -[147,1](355, 355) -> 352 -[147,1](356, 355) -> 353 -[147,1](357, 355) -> 354 -[148,1](358, 358) -> 355 -[148,1](359, 358) -> 356 -[148,1](360, 358) -> 357 -[149,1](361, 361) -> 358 -[149,1](362, 361) -> 359 -[149,1](363, 361) -> 360 -[150,1](364, 364) -> 361 -[150,1](365, 364) -> 362 -[150,1](366, 364) -> 363 -[151,1](367, 367) -> 364 -[151,1](368, 367) -> 365 -[151,1](369, 367) -> 366 -[152,1](370, 370) -> 367 -[152,1](371, 370) -> 368 -[152,1](372, 370) -> 369 -[153,1](373, 373) -> 370 -[153,1](374, 373) -> 371 -[153,1](375, 373) -> 372 -[154,1](376, 376) -> 373 -[154,1](377, 376) -> 374 -[154,1](378, 376) -> 375 -[155,1](379, 379) -> 376 -[155,1](380, 379) -> 377 -[155,1](381, 379) -> 378 -[156,1](382, 382) -> 379 -[156,1](383, 382) -> 380 -[156,1](384, 382) -> 381 -[157,1](385, 385) -> 382 -[157,1](386, 385) -> 383 -[157,1](387, 385) -> 384 -[158,1](388, 388) -> 385 -[158,1](389, 388) -> 386 -[158,1](390, 388) -> 387 -[159,1](391, 391) -> 388 -[159,1](392, 391) -> 389 -[159,1](393, 391) -> 390 -[160,1](394, 394) -> 391 -[160,1](395, 394) -> 392 -[160,1](396, 394) -> 393 -[161,1](397, 397) -> 394 -[161,1](398, 397) -> 395 -[161,1](399, 397) -> 396 -[162,1](400, 400) -> 397 -[162,1](401, 400) -> 398 -[162,1](402, 400) -> 399 -[163,1](403, 403) -> 400 -[163,1](404, 403) -> 401 -[163,1](405, 403) -> 402 -[164,1](406, 406) -> 403 -[164,1](407, 406) -> 404 -[164,1](408, 406) -> 405 -[165,1](409, 409) -> 406 -[165,1](410, 409) -> 407 -[165,1](411, 409) -> 408 -[166,1](412, 412) -> 409 -[166,1](413, 412) -> 410 -[166,1](414, 412) -> 411 -[167,1](415, 415) -> 412 -[167,1](416, 415) -> 413 -[167,1](417, 415) -> 414 -[168,1](418, 418) -> 415 -[168,1](419, 418) -> 416 -[168,1](420, 418) -> 417 -[p1,1] -> 418 -[p2,1] -> 419 -[p3,1] -> 420 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/84/pre.hsl b/benchmarks/all/OEGrover/84/pre.hsl index e5aa2db74..50a79fdb2 100644 --- a/benchmarks/all/OEGrover/84/pre.hsl +++ b/benchmarks/all/OEGrover/84/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 41 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 19342813113834066795298815 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/84/pre.lsta b/benchmarks/all/OEGrover/84/pre.lsta deleted file mode 100644 index a89d8833a..000000000 --- a/benchmarks/all/OEGrover/84/pre.lsta +++ /dev/null @@ -1,431 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 170) -> 167 -[85,1](169, 171) -> 168 -[86,1](172, 172) -> 169 -[86,1](173, 172) -> 170 -[86,1](174, 172) -> 171 -[87,1](175, 175) -> 172 -[87,1](176, 175) -> 173 -[87,1](177, 175) -> 174 -[88,1](178, 178) -> 175 -[88,1](179, 178) -> 176 -[88,1](180, 178) -> 177 -[89,1](181, 181) -> 178 -[89,1](182, 181) -> 179 -[89,1](183, 181) -> 180 -[90,1](184, 184) -> 181 -[90,1](185, 184) -> 182 -[90,1](186, 184) -> 183 -[91,1](187, 187) -> 184 -[91,1](188, 187) -> 185 -[91,1](189, 187) -> 186 -[92,1](190, 190) -> 187 -[92,1](191, 190) -> 188 -[92,1](192, 190) -> 189 -[93,1](193, 193) -> 190 -[93,1](194, 193) -> 191 -[93,1](195, 193) -> 192 -[94,1](196, 196) -> 193 -[94,1](197, 196) -> 194 -[94,1](198, 196) -> 195 -[95,1](199, 199) -> 196 -[95,1](200, 199) -> 197 -[95,1](201, 199) -> 198 -[96,1](202, 202) -> 199 -[96,1](203, 202) -> 200 -[96,1](204, 202) -> 201 -[97,1](205, 205) -> 202 -[97,1](206, 205) -> 203 -[97,1](207, 205) -> 204 -[98,1](208, 208) -> 205 -[98,1](209, 208) -> 206 -[98,1](210, 208) -> 207 -[99,1](211, 211) -> 208 -[99,1](212, 211) -> 209 -[99,1](213, 211) -> 210 -[100,1](214, 214) -> 211 -[100,1](215, 214) -> 212 -[100,1](216, 214) -> 213 -[101,1](217, 217) -> 214 -[101,1](218, 217) -> 215 -[101,1](219, 217) -> 216 -[102,1](220, 220) -> 217 -[102,1](221, 220) -> 218 -[102,1](222, 220) -> 219 -[103,1](223, 223) -> 220 -[103,1](224, 223) -> 221 -[103,1](225, 223) -> 222 -[104,1](226, 226) -> 223 -[104,1](227, 226) -> 224 -[104,1](228, 226) -> 225 -[105,1](229, 229) -> 226 -[105,1](230, 229) -> 227 -[105,1](231, 229) -> 228 -[106,1](232, 232) -> 229 -[106,1](233, 232) -> 230 -[106,1](234, 232) -> 231 -[107,1](235, 235) -> 232 -[107,1](236, 235) -> 233 -[107,1](237, 235) -> 234 -[108,1](238, 238) -> 235 -[108,1](239, 238) -> 236 -[108,1](240, 238) -> 237 -[109,1](241, 241) -> 238 -[109,1](242, 241) -> 239 -[109,1](243, 241) -> 240 -[110,1](244, 244) -> 241 -[110,1](245, 244) -> 242 -[110,1](246, 244) -> 243 -[111,1](247, 247) -> 244 -[111,1](248, 247) -> 245 -[111,1](249, 247) -> 246 -[112,1](250, 250) -> 247 -[112,1](251, 250) -> 248 -[112,1](252, 250) -> 249 -[113,1](253, 253) -> 250 -[113,1](254, 253) -> 251 -[113,1](255, 253) -> 252 -[114,1](256, 256) -> 253 -[114,1](257, 256) -> 254 -[114,1](258, 256) -> 255 -[115,1](259, 259) -> 256 -[115,1](260, 259) -> 257 -[115,1](261, 259) -> 258 -[116,1](262, 262) -> 259 -[116,1](263, 262) -> 260 -[116,1](264, 262) -> 261 -[117,1](265, 265) -> 262 -[117,1](266, 265) -> 263 -[117,1](267, 265) -> 264 -[118,1](268, 268) -> 265 -[118,1](269, 268) -> 266 -[118,1](270, 268) -> 267 -[119,1](271, 271) -> 268 -[119,1](272, 271) -> 269 -[119,1](273, 271) -> 270 -[120,1](274, 274) -> 271 -[120,1](275, 274) -> 272 -[120,1](276, 274) -> 273 -[121,1](277, 277) -> 274 -[121,1](278, 277) -> 275 -[121,1](279, 277) -> 276 -[122,1](280, 280) -> 277 -[122,1](281, 280) -> 278 -[122,1](282, 280) -> 279 -[123,1](283, 283) -> 280 -[123,1](284, 283) -> 281 -[123,1](285, 283) -> 282 -[124,1](286, 286) -> 283 -[124,1](287, 286) -> 284 -[124,1](288, 286) -> 285 -[125,1](289, 289) -> 286 -[125,1](290, 289) -> 287 -[125,1](291, 289) -> 288 -[126,1](292, 292) -> 289 -[126,1](293, 292) -> 290 -[126,1](294, 292) -> 291 -[127,1](295, 295) -> 292 -[127,1](296, 295) -> 293 -[127,1](297, 295) -> 294 -[128,1](298, 298) -> 295 -[128,1](299, 298) -> 296 -[128,1](300, 298) -> 297 -[129,1](301, 301) -> 298 -[129,1](302, 301) -> 299 -[129,1](303, 301) -> 300 -[130,1](304, 304) -> 301 -[130,1](305, 304) -> 302 -[130,1](306, 304) -> 303 -[131,1](307, 307) -> 304 -[131,1](308, 307) -> 305 -[131,1](309, 307) -> 306 -[132,1](310, 310) -> 307 -[132,1](311, 310) -> 308 -[132,1](312, 310) -> 309 -[133,1](313, 313) -> 310 -[133,1](314, 313) -> 311 -[133,1](315, 313) -> 312 -[134,1](316, 316) -> 313 -[134,1](317, 316) -> 314 -[134,1](318, 316) -> 315 -[135,1](319, 319) -> 316 -[135,1](320, 319) -> 317 -[135,1](321, 319) -> 318 -[136,1](322, 322) -> 319 -[136,1](323, 322) -> 320 -[136,1](324, 322) -> 321 -[137,1](325, 325) -> 322 -[137,1](326, 325) -> 323 -[137,1](327, 325) -> 324 -[138,1](328, 328) -> 325 -[138,1](329, 328) -> 326 -[138,1](330, 328) -> 327 -[139,1](331, 331) -> 328 -[139,1](332, 331) -> 329 -[139,1](333, 331) -> 330 -[140,1](334, 334) -> 331 -[140,1](335, 334) -> 332 -[140,1](336, 334) -> 333 -[141,1](337, 337) -> 334 -[141,1](338, 337) -> 335 -[141,1](339, 337) -> 336 -[142,1](340, 340) -> 337 -[142,1](341, 340) -> 338 -[142,1](342, 340) -> 339 -[143,1](343, 343) -> 340 -[143,1](344, 343) -> 341 -[143,1](345, 343) -> 342 -[144,1](346, 346) -> 343 -[144,1](347, 346) -> 344 -[144,1](348, 346) -> 345 -[145,1](349, 349) -> 346 -[145,1](350, 349) -> 347 -[145,1](351, 349) -> 348 -[146,1](352, 352) -> 349 -[146,1](353, 352) -> 350 -[146,1](354, 352) -> 351 -[147,1](355, 355) -> 352 -[147,1](356, 355) -> 353 -[147,1](357, 355) -> 354 -[148,1](358, 358) -> 355 -[148,1](359, 358) -> 356 -[148,1](360, 358) -> 357 -[149,1](361, 361) -> 358 -[149,1](362, 361) -> 359 -[149,1](363, 361) -> 360 -[150,1](364, 364) -> 361 -[150,1](365, 364) -> 362 -[150,1](366, 364) -> 363 -[151,1](367, 367) -> 364 -[151,1](368, 367) -> 365 -[151,1](369, 367) -> 366 -[152,1](370, 370) -> 367 -[152,1](371, 370) -> 368 -[152,1](372, 370) -> 369 -[153,1](373, 373) -> 370 -[153,1](374, 373) -> 371 -[153,1](375, 373) -> 372 -[154,1](376, 376) -> 373 -[154,1](377, 376) -> 374 -[154,1](378, 376) -> 375 -[155,1](379, 379) -> 376 -[155,1](380, 379) -> 377 -[155,1](381, 379) -> 378 -[156,1](382, 382) -> 379 -[156,1](383, 382) -> 380 -[156,1](384, 382) -> 381 -[157,1](385, 385) -> 382 -[157,1](386, 385) -> 383 -[157,1](387, 385) -> 384 -[158,1](388, 388) -> 385 -[158,1](389, 388) -> 386 -[158,1](390, 388) -> 387 -[159,1](391, 391) -> 388 -[159,1](392, 391) -> 389 -[159,1](393, 391) -> 390 -[160,1](394, 394) -> 391 -[160,1](395, 394) -> 392 -[160,1](396, 394) -> 393 -[161,1](397, 397) -> 394 -[161,1](398, 397) -> 395 -[161,1](399, 397) -> 396 -[162,1](400, 400) -> 397 -[162,1](401, 400) -> 398 -[162,1](402, 400) -> 399 -[163,1](403, 403) -> 400 -[163,1](404, 403) -> 401 -[163,1](405, 403) -> 402 -[164,1](406, 406) -> 403 -[164,1](407, 406) -> 404 -[164,1](408, 406) -> 405 -[165,1](409, 409) -> 406 -[165,1](410, 409) -> 407 -[165,1](411, 409) -> 408 -[166,1](412, 412) -> 409 -[166,1](413, 412) -> 410 -[166,1](414, 412) -> 411 -[167,1](415, 415) -> 412 -[167,1](416, 415) -> 413 -[167,1](417, 415) -> 414 -[168,1](418, 418) -> 415 -[168,1](419, 418) -> 416 -[168,1](420, 418) -> 417 -[c0,1] -> 418 -[a,1] -> 419 -[b,1] -> 420 -Constraints -19342813113834066795298815 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/85/circuit.qasm b/benchmarks/all/OEGrover/85/circuit.qasm index ec058095f..59df87de9 100644 --- a/benchmarks/all/OEGrover/85/circuit.qasm +++ b/benchmarks/all/OEGrover/85/circuit.qasm @@ -1,217 +1,217 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[170]; +qreg qubits[169]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -ccx qubits[0], qubits[1], qubits[86]; -ccx qubits[2], qubits[86], qubits[87]; -ccx qubits[3], qubits[87], qubits[88]; -ccx qubits[4], qubits[88], qubits[89]; -ccx qubits[5], qubits[89], qubits[90]; -ccx qubits[6], qubits[90], qubits[91]; -ccx qubits[7], qubits[91], qubits[92]; -ccx qubits[8], qubits[92], qubits[93]; -ccx qubits[9], qubits[93], qubits[94]; -ccx qubits[10], qubits[94], qubits[95]; -ccx qubits[11], qubits[95], qubits[96]; -ccx qubits[12], qubits[96], qubits[97]; -ccx qubits[13], qubits[97], qubits[98]; -ccx qubits[14], qubits[98], qubits[99]; -ccx qubits[15], qubits[99], qubits[100]; -ccx qubits[16], qubits[100], qubits[101]; -ccx qubits[17], qubits[101], qubits[102]; -ccx qubits[18], qubits[102], qubits[103]; -ccx qubits[19], qubits[103], qubits[104]; -ccx qubits[20], qubits[104], qubits[105]; -ccx qubits[21], qubits[105], qubits[106]; -ccx qubits[22], qubits[106], qubits[107]; -ccx qubits[23], qubits[107], qubits[108]; -ccx qubits[24], qubits[108], qubits[109]; -ccx qubits[25], qubits[109], qubits[110]; -ccx qubits[26], qubits[110], qubits[111]; -ccx qubits[27], qubits[111], qubits[112]; -ccx qubits[28], qubits[112], qubits[113]; -ccx qubits[29], qubits[113], qubits[114]; -ccx qubits[30], qubits[114], qubits[115]; -ccx qubits[31], qubits[115], qubits[116]; -ccx qubits[32], qubits[116], qubits[117]; -ccx qubits[33], qubits[117], qubits[118]; -ccx qubits[34], qubits[118], qubits[119]; -ccx qubits[35], qubits[119], qubits[120]; -ccx qubits[36], qubits[120], qubits[121]; -ccx qubits[37], qubits[121], qubits[122]; -ccx qubits[38], qubits[122], qubits[123]; -ccx qubits[39], qubits[123], qubits[124]; -ccx qubits[40], qubits[124], qubits[125]; -ccx qubits[41], qubits[125], qubits[126]; -ccx qubits[42], qubits[126], qubits[127]; -ccx qubits[43], qubits[127], qubits[128]; -ccx qubits[44], qubits[128], qubits[129]; -ccx qubits[45], qubits[129], qubits[130]; -ccx qubits[46], qubits[130], qubits[131]; -ccx qubits[47], qubits[131], qubits[132]; -ccx qubits[48], qubits[132], qubits[133]; -ccx qubits[49], qubits[133], qubits[134]; -ccx qubits[50], qubits[134], qubits[135]; -ccx qubits[51], qubits[135], qubits[136]; -ccx qubits[52], qubits[136], qubits[137]; -ccx qubits[53], qubits[137], qubits[138]; -ccx qubits[54], qubits[138], qubits[139]; -ccx qubits[55], qubits[139], qubits[140]; -ccx qubits[56], qubits[140], qubits[141]; -ccx qubits[57], qubits[141], qubits[142]; -ccx qubits[58], qubits[142], qubits[143]; -ccx qubits[59], qubits[143], qubits[144]; -ccx qubits[60], qubits[144], qubits[145]; -ccx qubits[61], qubits[145], qubits[146]; -ccx qubits[62], qubits[146], qubits[147]; -ccx qubits[63], qubits[147], qubits[148]; -ccx qubits[64], qubits[148], qubits[149]; -ccx qubits[65], qubits[149], qubits[150]; -ccx qubits[66], qubits[150], qubits[151]; -ccx qubits[67], qubits[151], qubits[152]; -ccx qubits[68], qubits[152], qubits[153]; -ccx qubits[69], qubits[153], qubits[154]; -ccx qubits[70], qubits[154], qubits[155]; -ccx qubits[71], qubits[155], qubits[156]; -ccx qubits[72], qubits[156], qubits[157]; -ccx qubits[73], qubits[157], qubits[158]; -ccx qubits[74], qubits[158], qubits[159]; -ccx qubits[75], qubits[159], qubits[160]; -ccx qubits[76], qubits[160], qubits[161]; -ccx qubits[77], qubits[161], qubits[162]; -ccx qubits[78], qubits[162], qubits[163]; -ccx qubits[79], qubits[163], qubits[164]; -ccx qubits[80], qubits[164], qubits[165]; -ccx qubits[81], qubits[165], qubits[166]; -ccx qubits[82], qubits[166], qubits[167]; -ccx qubits[83], qubits[167], qubits[168]; -cz qubits[168], qubits[84]; -ccx qubits[83], qubits[167], qubits[168]; -ccx qubits[82], qubits[166], qubits[167]; -ccx qubits[81], qubits[165], qubits[166]; -ccx qubits[80], qubits[164], qubits[165]; -ccx qubits[79], qubits[163], qubits[164]; -ccx qubits[78], qubits[162], qubits[163]; -ccx qubits[77], qubits[161], qubits[162]; -ccx qubits[76], qubits[160], qubits[161]; -ccx qubits[75], qubits[159], qubits[160]; -ccx qubits[74], qubits[158], qubits[159]; -ccx qubits[73], qubits[157], qubits[158]; -ccx qubits[72], qubits[156], qubits[157]; -ccx qubits[71], qubits[155], qubits[156]; -ccx qubits[70], qubits[154], qubits[155]; -ccx qubits[69], qubits[153], qubits[154]; -ccx qubits[68], qubits[152], qubits[153]; -ccx qubits[67], qubits[151], qubits[152]; -ccx qubits[66], qubits[150], qubits[151]; -ccx qubits[65], qubits[149], qubits[150]; -ccx qubits[64], qubits[148], qubits[149]; -ccx qubits[63], qubits[147], qubits[148]; -ccx qubits[62], qubits[146], qubits[147]; -ccx qubits[61], qubits[145], qubits[146]; -ccx qubits[60], qubits[144], qubits[145]; -ccx qubits[59], qubits[143], qubits[144]; -ccx qubits[58], qubits[142], qubits[143]; -ccx qubits[57], qubits[141], qubits[142]; -ccx qubits[56], qubits[140], qubits[141]; -ccx qubits[55], qubits[139], qubits[140]; -ccx qubits[54], qubits[138], qubits[139]; -ccx qubits[53], qubits[137], qubits[138]; -ccx qubits[52], qubits[136], qubits[137]; -ccx qubits[51], qubits[135], qubits[136]; -ccx qubits[50], qubits[134], qubits[135]; -ccx qubits[49], qubits[133], qubits[134]; -ccx qubits[48], qubits[132], qubits[133]; -ccx qubits[47], qubits[131], qubits[132]; -ccx qubits[46], qubits[130], qubits[131]; -ccx qubits[45], qubits[129], qubits[130]; -ccx qubits[44], qubits[128], qubits[129]; -ccx qubits[43], qubits[127], qubits[128]; -ccx qubits[42], qubits[126], qubits[127]; -ccx qubits[41], qubits[125], qubits[126]; -ccx qubits[40], qubits[124], qubits[125]; -ccx qubits[39], qubits[123], qubits[124]; -ccx qubits[38], qubits[122], qubits[123]; -ccx qubits[37], qubits[121], qubits[122]; -ccx qubits[36], qubits[120], qubits[121]; -ccx qubits[35], qubits[119], qubits[120]; -ccx qubits[34], qubits[118], qubits[119]; -ccx qubits[33], qubits[117], qubits[118]; -ccx qubits[32], qubits[116], qubits[117]; -ccx qubits[31], qubits[115], qubits[116]; -ccx qubits[30], qubits[114], qubits[115]; -ccx qubits[29], qubits[113], qubits[114]; -ccx qubits[28], qubits[112], qubits[113]; -ccx qubits[27], qubits[111], qubits[112]; -ccx qubits[26], qubits[110], qubits[111]; -ccx qubits[25], qubits[109], qubits[110]; -ccx qubits[24], qubits[108], qubits[109]; -ccx qubits[23], qubits[107], qubits[108]; -ccx qubits[22], qubits[106], qubits[107]; -ccx qubits[21], qubits[105], qubits[106]; -ccx qubits[20], qubits[104], qubits[105]; -ccx qubits[19], qubits[103], qubits[104]; -ccx qubits[18], qubits[102], qubits[103]; -ccx qubits[17], qubits[101], qubits[102]; -ccx qubits[16], qubits[100], qubits[101]; -ccx qubits[15], qubits[99], qubits[100]; -ccx qubits[14], qubits[98], qubits[99]; -ccx qubits[13], qubits[97], qubits[98]; -ccx qubits[12], qubits[96], qubits[97]; -ccx qubits[11], qubits[95], qubits[96]; -ccx qubits[10], qubits[94], qubits[95]; -ccx qubits[9], qubits[93], qubits[94]; -ccx qubits[8], qubits[92], qubits[93]; -ccx qubits[7], qubits[91], qubits[92]; -ccx qubits[6], qubits[90], qubits[91]; -ccx qubits[5], qubits[89], qubits[90]; -ccx qubits[4], qubits[88], qubits[89]; -ccx qubits[3], qubits[87], qubits[88]; -ccx qubits[2], qubits[86], qubits[87]; -ccx qubits[0], qubits[1], qubits[86]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +cz qubits[166], qubits[167]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -257,509 +257,509 @@ x qubits[82]; x qubits[84]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; -ccx qubits[0], qubits[1], qubits[86]; -ccx qubits[2], qubits[86], qubits[87]; -ccx qubits[3], qubits[87], qubits[88]; -ccx qubits[4], qubits[88], qubits[89]; -ccx qubits[5], qubits[89], qubits[90]; -ccx qubits[6], qubits[90], qubits[91]; -ccx qubits[7], qubits[91], qubits[92]; -ccx qubits[8], qubits[92], qubits[93]; -ccx qubits[9], qubits[93], qubits[94]; -ccx qubits[10], qubits[94], qubits[95]; -ccx qubits[11], qubits[95], qubits[96]; -ccx qubits[12], qubits[96], qubits[97]; -ccx qubits[13], qubits[97], qubits[98]; -ccx qubits[14], qubits[98], qubits[99]; -ccx qubits[15], qubits[99], qubits[100]; -ccx qubits[16], qubits[100], qubits[101]; -ccx qubits[17], qubits[101], qubits[102]; -ccx qubits[18], qubits[102], qubits[103]; -ccx qubits[19], qubits[103], qubits[104]; -ccx qubits[20], qubits[104], qubits[105]; -ccx qubits[21], qubits[105], qubits[106]; -ccx qubits[22], qubits[106], qubits[107]; -ccx qubits[23], qubits[107], qubits[108]; -ccx qubits[24], qubits[108], qubits[109]; -ccx qubits[25], qubits[109], qubits[110]; -ccx qubits[26], qubits[110], qubits[111]; -ccx qubits[27], qubits[111], qubits[112]; -ccx qubits[28], qubits[112], qubits[113]; -ccx qubits[29], qubits[113], qubits[114]; -ccx qubits[30], qubits[114], qubits[115]; -ccx qubits[31], qubits[115], qubits[116]; -ccx qubits[32], qubits[116], qubits[117]; -ccx qubits[33], qubits[117], qubits[118]; -ccx qubits[34], qubits[118], qubits[119]; -ccx qubits[35], qubits[119], qubits[120]; -ccx qubits[36], qubits[120], qubits[121]; -ccx qubits[37], qubits[121], qubits[122]; -ccx qubits[38], qubits[122], qubits[123]; -ccx qubits[39], qubits[123], qubits[124]; -ccx qubits[40], qubits[124], qubits[125]; -ccx qubits[41], qubits[125], qubits[126]; -ccx qubits[42], qubits[126], qubits[127]; -ccx qubits[43], qubits[127], qubits[128]; -ccx qubits[44], qubits[128], qubits[129]; -ccx qubits[45], qubits[129], qubits[130]; -ccx qubits[46], qubits[130], qubits[131]; -ccx qubits[47], qubits[131], qubits[132]; -ccx qubits[48], qubits[132], qubits[133]; -ccx qubits[49], qubits[133], qubits[134]; -ccx qubits[50], qubits[134], qubits[135]; -ccx qubits[51], qubits[135], qubits[136]; -ccx qubits[52], qubits[136], qubits[137]; -ccx qubits[53], qubits[137], qubits[138]; -ccx qubits[54], qubits[138], qubits[139]; -ccx qubits[55], qubits[139], qubits[140]; -ccx qubits[56], qubits[140], qubits[141]; -ccx qubits[57], qubits[141], qubits[142]; -ccx qubits[58], qubits[142], qubits[143]; -ccx qubits[59], qubits[143], qubits[144]; -ccx qubits[60], qubits[144], qubits[145]; -ccx qubits[61], qubits[145], qubits[146]; -ccx qubits[62], qubits[146], qubits[147]; -ccx qubits[63], qubits[147], qubits[148]; -ccx qubits[64], qubits[148], qubits[149]; -ccx qubits[65], qubits[149], qubits[150]; -ccx qubits[66], qubits[150], qubits[151]; -ccx qubits[67], qubits[151], qubits[152]; -ccx qubits[68], qubits[152], qubits[153]; -ccx qubits[69], qubits[153], qubits[154]; -ccx qubits[70], qubits[154], qubits[155]; -ccx qubits[71], qubits[155], qubits[156]; -ccx qubits[72], qubits[156], qubits[157]; -ccx qubits[73], qubits[157], qubits[158]; -ccx qubits[74], qubits[158], qubits[159]; -ccx qubits[75], qubits[159], qubits[160]; -ccx qubits[76], qubits[160], qubits[161]; -ccx qubits[77], qubits[161], qubits[162]; -ccx qubits[78], qubits[162], qubits[163]; -ccx qubits[79], qubits[163], qubits[164]; -ccx qubits[80], qubits[164], qubits[165]; -ccx qubits[81], qubits[165], qubits[166]; -ccx qubits[82], qubits[166], qubits[167]; -ccx qubits[83], qubits[167], qubits[168]; -cz qubits[168], qubits[84]; -ccx qubits[83], qubits[167], qubits[168]; -ccx qubits[82], qubits[166], qubits[167]; -ccx qubits[81], qubits[165], qubits[166]; -ccx qubits[80], qubits[164], qubits[165]; -ccx qubits[79], qubits[163], qubits[164]; -ccx qubits[78], qubits[162], qubits[163]; -ccx qubits[77], qubits[161], qubits[162]; -ccx qubits[76], qubits[160], qubits[161]; -ccx qubits[75], qubits[159], qubits[160]; -ccx qubits[74], qubits[158], qubits[159]; -ccx qubits[73], qubits[157], qubits[158]; -ccx qubits[72], qubits[156], qubits[157]; -ccx qubits[71], qubits[155], qubits[156]; -ccx qubits[70], qubits[154], qubits[155]; -ccx qubits[69], qubits[153], qubits[154]; -ccx qubits[68], qubits[152], qubits[153]; -ccx qubits[67], qubits[151], qubits[152]; -ccx qubits[66], qubits[150], qubits[151]; -ccx qubits[65], qubits[149], qubits[150]; -ccx qubits[64], qubits[148], qubits[149]; -ccx qubits[63], qubits[147], qubits[148]; -ccx qubits[62], qubits[146], qubits[147]; -ccx qubits[61], qubits[145], qubits[146]; -ccx qubits[60], qubits[144], qubits[145]; -ccx qubits[59], qubits[143], qubits[144]; -ccx qubits[58], qubits[142], qubits[143]; -ccx qubits[57], qubits[141], qubits[142]; -ccx qubits[56], qubits[140], qubits[141]; -ccx qubits[55], qubits[139], qubits[140]; -ccx qubits[54], qubits[138], qubits[139]; -ccx qubits[53], qubits[137], qubits[138]; -ccx qubits[52], qubits[136], qubits[137]; -ccx qubits[51], qubits[135], qubits[136]; -ccx qubits[50], qubits[134], qubits[135]; -ccx qubits[49], qubits[133], qubits[134]; -ccx qubits[48], qubits[132], qubits[133]; -ccx qubits[47], qubits[131], qubits[132]; -ccx qubits[46], qubits[130], qubits[131]; -ccx qubits[45], qubits[129], qubits[130]; -ccx qubits[44], qubits[128], qubits[129]; -ccx qubits[43], qubits[127], qubits[128]; -ccx qubits[42], qubits[126], qubits[127]; -ccx qubits[41], qubits[125], qubits[126]; -ccx qubits[40], qubits[124], qubits[125]; -ccx qubits[39], qubits[123], qubits[124]; -ccx qubits[38], qubits[122], qubits[123]; -ccx qubits[37], qubits[121], qubits[122]; -ccx qubits[36], qubits[120], qubits[121]; -ccx qubits[35], qubits[119], qubits[120]; -ccx qubits[34], qubits[118], qubits[119]; -ccx qubits[33], qubits[117], qubits[118]; -ccx qubits[32], qubits[116], qubits[117]; -ccx qubits[31], qubits[115], qubits[116]; -ccx qubits[30], qubits[114], qubits[115]; -ccx qubits[29], qubits[113], qubits[114]; -ccx qubits[28], qubits[112], qubits[113]; -ccx qubits[27], qubits[111], qubits[112]; -ccx qubits[26], qubits[110], qubits[111]; -ccx qubits[25], qubits[109], qubits[110]; -ccx qubits[24], qubits[108], qubits[109]; -ccx qubits[23], qubits[107], qubits[108]; -ccx qubits[22], qubits[106], qubits[107]; -ccx qubits[21], qubits[105], qubits[106]; -ccx qubits[20], qubits[104], qubits[105]; -ccx qubits[19], qubits[103], qubits[104]; -ccx qubits[18], qubits[102], qubits[103]; -ccx qubits[17], qubits[101], qubits[102]; -ccx qubits[16], qubits[100], qubits[101]; -ccx qubits[15], qubits[99], qubits[100]; -ccx qubits[14], qubits[98], qubits[99]; -ccx qubits[13], qubits[97], qubits[98]; -ccx qubits[12], qubits[96], qubits[97]; -ccx qubits[11], qubits[95], qubits[96]; -ccx qubits[10], qubits[94], qubits[95]; -ccx qubits[9], qubits[93], qubits[94]; -ccx qubits[8], qubits[92], qubits[93]; -ccx qubits[7], qubits[91], qubits[92]; -ccx qubits[6], qubits[90], qubits[91]; -ccx qubits[5], qubits[89], qubits[90]; -ccx qubits[4], qubits[88], qubits[89]; -ccx qubits[3], qubits[87], qubits[88]; -ccx qubits[2], qubits[86], qubits[87]; -ccx qubits[0], qubits[1], qubits[86]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +cz qubits[166], qubits[167]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; +x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; -z qubits[85]; +h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +z qubits[168]; diff --git a/benchmarks/all/OEGrover/85/post.hsl b/benchmarks/all/OEGrover/85/post.hsl index 7f5cdb454..b5794885e 100644 --- a/benchmarks/all/OEGrover/85/post.hsl +++ b/benchmarks/all/OEGrover/85/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 41 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/85/post.lsta b/benchmarks/all/OEGrover/85/post.lsta deleted file mode 100644 index b12a59a91..000000000 --- a/benchmarks/all/OEGrover/85/post.lsta +++ /dev/null @@ -1,432 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 172) -> 169 -[86,1](171, 173) -> 170 -[87,1](174, 174) -> 171 -[87,1](175, 174) -> 172 -[87,1](176, 174) -> 173 -[88,1](177, 177) -> 174 -[88,1](178, 177) -> 175 -[88,1](179, 177) -> 176 -[89,1](180, 180) -> 177 -[89,1](181, 180) -> 178 -[89,1](182, 180) -> 179 -[90,1](183, 183) -> 180 -[90,1](184, 183) -> 181 -[90,1](185, 183) -> 182 -[91,1](186, 186) -> 183 -[91,1](187, 186) -> 184 -[91,1](188, 186) -> 185 -[92,1](189, 189) -> 186 -[92,1](190, 189) -> 187 -[92,1](191, 189) -> 188 -[93,1](192, 192) -> 189 -[93,1](193, 192) -> 190 -[93,1](194, 192) -> 191 -[94,1](195, 195) -> 192 -[94,1](196, 195) -> 193 -[94,1](197, 195) -> 194 -[95,1](198, 198) -> 195 -[95,1](199, 198) -> 196 -[95,1](200, 198) -> 197 -[96,1](201, 201) -> 198 -[96,1](202, 201) -> 199 -[96,1](203, 201) -> 200 -[97,1](204, 204) -> 201 -[97,1](205, 204) -> 202 -[97,1](206, 204) -> 203 -[98,1](207, 207) -> 204 -[98,1](208, 207) -> 205 -[98,1](209, 207) -> 206 -[99,1](210, 210) -> 207 -[99,1](211, 210) -> 208 -[99,1](212, 210) -> 209 -[100,1](213, 213) -> 210 -[100,1](214, 213) -> 211 -[100,1](215, 213) -> 212 -[101,1](216, 216) -> 213 -[101,1](217, 216) -> 214 -[101,1](218, 216) -> 215 -[102,1](219, 219) -> 216 -[102,1](220, 219) -> 217 -[102,1](221, 219) -> 218 -[103,1](222, 222) -> 219 -[103,1](223, 222) -> 220 -[103,1](224, 222) -> 221 -[104,1](225, 225) -> 222 -[104,1](226, 225) -> 223 -[104,1](227, 225) -> 224 -[105,1](228, 228) -> 225 -[105,1](229, 228) -> 226 -[105,1](230, 228) -> 227 -[106,1](231, 231) -> 228 -[106,1](232, 231) -> 229 -[106,1](233, 231) -> 230 -[107,1](234, 234) -> 231 -[107,1](235, 234) -> 232 -[107,1](236, 234) -> 233 -[108,1](237, 237) -> 234 -[108,1](238, 237) -> 235 -[108,1](239, 237) -> 236 -[109,1](240, 240) -> 237 -[109,1](241, 240) -> 238 -[109,1](242, 240) -> 239 -[110,1](243, 243) -> 240 -[110,1](244, 243) -> 241 -[110,1](245, 243) -> 242 -[111,1](246, 246) -> 243 -[111,1](247, 246) -> 244 -[111,1](248, 246) -> 245 -[112,1](249, 249) -> 246 -[112,1](250, 249) -> 247 -[112,1](251, 249) -> 248 -[113,1](252, 252) -> 249 -[113,1](253, 252) -> 250 -[113,1](254, 252) -> 251 -[114,1](255, 255) -> 252 -[114,1](256, 255) -> 253 -[114,1](257, 255) -> 254 -[115,1](258, 258) -> 255 -[115,1](259, 258) -> 256 -[115,1](260, 258) -> 257 -[116,1](261, 261) -> 258 -[116,1](262, 261) -> 259 -[116,1](263, 261) -> 260 -[117,1](264, 264) -> 261 -[117,1](265, 264) -> 262 -[117,1](266, 264) -> 263 -[118,1](267, 267) -> 264 -[118,1](268, 267) -> 265 -[118,1](269, 267) -> 266 -[119,1](270, 270) -> 267 -[119,1](271, 270) -> 268 -[119,1](272, 270) -> 269 -[120,1](273, 273) -> 270 -[120,1](274, 273) -> 271 -[120,1](275, 273) -> 272 -[121,1](276, 276) -> 273 -[121,1](277, 276) -> 274 -[121,1](278, 276) -> 275 -[122,1](279, 279) -> 276 -[122,1](280, 279) -> 277 -[122,1](281, 279) -> 278 -[123,1](282, 282) -> 279 -[123,1](283, 282) -> 280 -[123,1](284, 282) -> 281 -[124,1](285, 285) -> 282 -[124,1](286, 285) -> 283 -[124,1](287, 285) -> 284 -[125,1](288, 288) -> 285 -[125,1](289, 288) -> 286 -[125,1](290, 288) -> 287 -[126,1](291, 291) -> 288 -[126,1](292, 291) -> 289 -[126,1](293, 291) -> 290 -[127,1](294, 294) -> 291 -[127,1](295, 294) -> 292 -[127,1](296, 294) -> 293 -[128,1](297, 297) -> 294 -[128,1](298, 297) -> 295 -[128,1](299, 297) -> 296 -[129,1](300, 300) -> 297 -[129,1](301, 300) -> 298 -[129,1](302, 300) -> 299 -[130,1](303, 303) -> 300 -[130,1](304, 303) -> 301 -[130,1](305, 303) -> 302 -[131,1](306, 306) -> 303 -[131,1](307, 306) -> 304 -[131,1](308, 306) -> 305 -[132,1](309, 309) -> 306 -[132,1](310, 309) -> 307 -[132,1](311, 309) -> 308 -[133,1](312, 312) -> 309 -[133,1](313, 312) -> 310 -[133,1](314, 312) -> 311 -[134,1](315, 315) -> 312 -[134,1](316, 315) -> 313 -[134,1](317, 315) -> 314 -[135,1](318, 318) -> 315 -[135,1](319, 318) -> 316 -[135,1](320, 318) -> 317 -[136,1](321, 321) -> 318 -[136,1](322, 321) -> 319 -[136,1](323, 321) -> 320 -[137,1](324, 324) -> 321 -[137,1](325, 324) -> 322 -[137,1](326, 324) -> 323 -[138,1](327, 327) -> 324 -[138,1](328, 327) -> 325 -[138,1](329, 327) -> 326 -[139,1](330, 330) -> 327 -[139,1](331, 330) -> 328 -[139,1](332, 330) -> 329 -[140,1](333, 333) -> 330 -[140,1](334, 333) -> 331 -[140,1](335, 333) -> 332 -[141,1](336, 336) -> 333 -[141,1](337, 336) -> 334 -[141,1](338, 336) -> 335 -[142,1](339, 339) -> 336 -[142,1](340, 339) -> 337 -[142,1](341, 339) -> 338 -[143,1](342, 342) -> 339 -[143,1](343, 342) -> 340 -[143,1](344, 342) -> 341 -[144,1](345, 345) -> 342 -[144,1](346, 345) -> 343 -[144,1](347, 345) -> 344 -[145,1](348, 348) -> 345 -[145,1](349, 348) -> 346 -[145,1](350, 348) -> 347 -[146,1](351, 351) -> 348 -[146,1](352, 351) -> 349 -[146,1](353, 351) -> 350 -[147,1](354, 354) -> 351 -[147,1](355, 354) -> 352 -[147,1](356, 354) -> 353 -[148,1](357, 357) -> 354 -[148,1](358, 357) -> 355 -[148,1](359, 357) -> 356 -[149,1](360, 360) -> 357 -[149,1](361, 360) -> 358 -[149,1](362, 360) -> 359 -[150,1](363, 363) -> 360 -[150,1](364, 363) -> 361 -[150,1](365, 363) -> 362 -[151,1](366, 366) -> 363 -[151,1](367, 366) -> 364 -[151,1](368, 366) -> 365 -[152,1](369, 369) -> 366 -[152,1](370, 369) -> 367 -[152,1](371, 369) -> 368 -[153,1](372, 372) -> 369 -[153,1](373, 372) -> 370 -[153,1](374, 372) -> 371 -[154,1](375, 375) -> 372 -[154,1](376, 375) -> 373 -[154,1](377, 375) -> 374 -[155,1](378, 378) -> 375 -[155,1](379, 378) -> 376 -[155,1](380, 378) -> 377 -[156,1](381, 381) -> 378 -[156,1](382, 381) -> 379 -[156,1](383, 381) -> 380 -[157,1](384, 384) -> 381 -[157,1](385, 384) -> 382 -[157,1](386, 384) -> 383 -[158,1](387, 387) -> 384 -[158,1](388, 387) -> 385 -[158,1](389, 387) -> 386 -[159,1](390, 390) -> 387 -[159,1](391, 390) -> 388 -[159,1](392, 390) -> 389 -[160,1](393, 393) -> 390 -[160,1](394, 393) -> 391 -[160,1](395, 393) -> 392 -[161,1](396, 396) -> 393 -[161,1](397, 396) -> 394 -[161,1](398, 396) -> 395 -[162,1](399, 399) -> 396 -[162,1](400, 399) -> 397 -[162,1](401, 399) -> 398 -[163,1](402, 402) -> 399 -[163,1](403, 402) -> 400 -[163,1](404, 402) -> 401 -[164,1](405, 405) -> 402 -[164,1](406, 405) -> 403 -[164,1](407, 405) -> 404 -[165,1](408, 408) -> 405 -[165,1](409, 408) -> 406 -[165,1](410, 408) -> 407 -[166,1](411, 411) -> 408 -[166,1](412, 411) -> 409 -[166,1](413, 411) -> 410 -[167,1](414, 414) -> 411 -[167,1](415, 414) -> 412 -[167,1](416, 414) -> 413 -[168,1](417, 417) -> 414 -[168,1](418, 417) -> 415 -[168,1](419, 417) -> 416 -[169,1](420, 420) -> 417 -[169,1](421, 420) -> 418 -[169,1](422, 420) -> 419 -[170,1](423, 423) -> 420 -[170,1](424, 423) -> 421 -[170,1](425, 423) -> 422 -[p1,1] -> 423 -[p2,1] -> 424 -[p3,1] -> 425 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/85/pre.hsl b/benchmarks/all/OEGrover/85/pre.hsl index abf91d3e7..f7294453a 100644 --- a/benchmarks/all/OEGrover/85/pre.hsl +++ b/benchmarks/all/OEGrover/85/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 41 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 38685626227668133590597631 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/85/pre.lsta b/benchmarks/all/OEGrover/85/pre.lsta deleted file mode 100644 index ea3183687..000000000 --- a/benchmarks/all/OEGrover/85/pre.lsta +++ /dev/null @@ -1,436 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 172) -> 169 -[86,1](171, 173) -> 170 -[87,1](174, 174) -> 171 -[87,1](175, 174) -> 172 -[87,1](176, 174) -> 173 -[88,1](177, 177) -> 174 -[88,1](178, 177) -> 175 -[88,1](179, 177) -> 176 -[89,1](180, 180) -> 177 -[89,1](181, 180) -> 178 -[89,1](182, 180) -> 179 -[90,1](183, 183) -> 180 -[90,1](184, 183) -> 181 -[90,1](185, 183) -> 182 -[91,1](186, 186) -> 183 -[91,1](187, 186) -> 184 -[91,1](188, 186) -> 185 -[92,1](189, 189) -> 186 -[92,1](190, 189) -> 187 -[92,1](191, 189) -> 188 -[93,1](192, 192) -> 189 -[93,1](193, 192) -> 190 -[93,1](194, 192) -> 191 -[94,1](195, 195) -> 192 -[94,1](196, 195) -> 193 -[94,1](197, 195) -> 194 -[95,1](198, 198) -> 195 -[95,1](199, 198) -> 196 -[95,1](200, 198) -> 197 -[96,1](201, 201) -> 198 -[96,1](202, 201) -> 199 -[96,1](203, 201) -> 200 -[97,1](204, 204) -> 201 -[97,1](205, 204) -> 202 -[97,1](206, 204) -> 203 -[98,1](207, 207) -> 204 -[98,1](208, 207) -> 205 -[98,1](209, 207) -> 206 -[99,1](210, 210) -> 207 -[99,1](211, 210) -> 208 -[99,1](212, 210) -> 209 -[100,1](213, 213) -> 210 -[100,1](214, 213) -> 211 -[100,1](215, 213) -> 212 -[101,1](216, 216) -> 213 -[101,1](217, 216) -> 214 -[101,1](218, 216) -> 215 -[102,1](219, 219) -> 216 -[102,1](220, 219) -> 217 -[102,1](221, 219) -> 218 -[103,1](222, 222) -> 219 -[103,1](223, 222) -> 220 -[103,1](224, 222) -> 221 -[104,1](225, 225) -> 222 -[104,1](226, 225) -> 223 -[104,1](227, 225) -> 224 -[105,1](228, 228) -> 225 -[105,1](229, 228) -> 226 -[105,1](230, 228) -> 227 -[106,1](231, 231) -> 228 -[106,1](232, 231) -> 229 -[106,1](233, 231) -> 230 -[107,1](234, 234) -> 231 -[107,1](235, 234) -> 232 -[107,1](236, 234) -> 233 -[108,1](237, 237) -> 234 -[108,1](238, 237) -> 235 -[108,1](239, 237) -> 236 -[109,1](240, 240) -> 237 -[109,1](241, 240) -> 238 -[109,1](242, 240) -> 239 -[110,1](243, 243) -> 240 -[110,1](244, 243) -> 241 -[110,1](245, 243) -> 242 -[111,1](246, 246) -> 243 -[111,1](247, 246) -> 244 -[111,1](248, 246) -> 245 -[112,1](249, 249) -> 246 -[112,1](250, 249) -> 247 -[112,1](251, 249) -> 248 -[113,1](252, 252) -> 249 -[113,1](253, 252) -> 250 -[113,1](254, 252) -> 251 -[114,1](255, 255) -> 252 -[114,1](256, 255) -> 253 -[114,1](257, 255) -> 254 -[115,1](258, 258) -> 255 -[115,1](259, 258) -> 256 -[115,1](260, 258) -> 257 -[116,1](261, 261) -> 258 -[116,1](262, 261) -> 259 -[116,1](263, 261) -> 260 -[117,1](264, 264) -> 261 -[117,1](265, 264) -> 262 -[117,1](266, 264) -> 263 -[118,1](267, 267) -> 264 -[118,1](268, 267) -> 265 -[118,1](269, 267) -> 266 -[119,1](270, 270) -> 267 -[119,1](271, 270) -> 268 -[119,1](272, 270) -> 269 -[120,1](273, 273) -> 270 -[120,1](274, 273) -> 271 -[120,1](275, 273) -> 272 -[121,1](276, 276) -> 273 -[121,1](277, 276) -> 274 -[121,1](278, 276) -> 275 -[122,1](279, 279) -> 276 -[122,1](280, 279) -> 277 -[122,1](281, 279) -> 278 -[123,1](282, 282) -> 279 -[123,1](283, 282) -> 280 -[123,1](284, 282) -> 281 -[124,1](285, 285) -> 282 -[124,1](286, 285) -> 283 -[124,1](287, 285) -> 284 -[125,1](288, 288) -> 285 -[125,1](289, 288) -> 286 -[125,1](290, 288) -> 287 -[126,1](291, 291) -> 288 -[126,1](292, 291) -> 289 -[126,1](293, 291) -> 290 -[127,1](294, 294) -> 291 -[127,1](295, 294) -> 292 -[127,1](296, 294) -> 293 -[128,1](297, 297) -> 294 -[128,1](298, 297) -> 295 -[128,1](299, 297) -> 296 -[129,1](300, 300) -> 297 -[129,1](301, 300) -> 298 -[129,1](302, 300) -> 299 -[130,1](303, 303) -> 300 -[130,1](304, 303) -> 301 -[130,1](305, 303) -> 302 -[131,1](306, 306) -> 303 -[131,1](307, 306) -> 304 -[131,1](308, 306) -> 305 -[132,1](309, 309) -> 306 -[132,1](310, 309) -> 307 -[132,1](311, 309) -> 308 -[133,1](312, 312) -> 309 -[133,1](313, 312) -> 310 -[133,1](314, 312) -> 311 -[134,1](315, 315) -> 312 -[134,1](316, 315) -> 313 -[134,1](317, 315) -> 314 -[135,1](318, 318) -> 315 -[135,1](319, 318) -> 316 -[135,1](320, 318) -> 317 -[136,1](321, 321) -> 318 -[136,1](322, 321) -> 319 -[136,1](323, 321) -> 320 -[137,1](324, 324) -> 321 -[137,1](325, 324) -> 322 -[137,1](326, 324) -> 323 -[138,1](327, 327) -> 324 -[138,1](328, 327) -> 325 -[138,1](329, 327) -> 326 -[139,1](330, 330) -> 327 -[139,1](331, 330) -> 328 -[139,1](332, 330) -> 329 -[140,1](333, 333) -> 330 -[140,1](334, 333) -> 331 -[140,1](335, 333) -> 332 -[141,1](336, 336) -> 333 -[141,1](337, 336) -> 334 -[141,1](338, 336) -> 335 -[142,1](339, 339) -> 336 -[142,1](340, 339) -> 337 -[142,1](341, 339) -> 338 -[143,1](342, 342) -> 339 -[143,1](343, 342) -> 340 -[143,1](344, 342) -> 341 -[144,1](345, 345) -> 342 -[144,1](346, 345) -> 343 -[144,1](347, 345) -> 344 -[145,1](348, 348) -> 345 -[145,1](349, 348) -> 346 -[145,1](350, 348) -> 347 -[146,1](351, 351) -> 348 -[146,1](352, 351) -> 349 -[146,1](353, 351) -> 350 -[147,1](354, 354) -> 351 -[147,1](355, 354) -> 352 -[147,1](356, 354) -> 353 -[148,1](357, 357) -> 354 -[148,1](358, 357) -> 355 -[148,1](359, 357) -> 356 -[149,1](360, 360) -> 357 -[149,1](361, 360) -> 358 -[149,1](362, 360) -> 359 -[150,1](363, 363) -> 360 -[150,1](364, 363) -> 361 -[150,1](365, 363) -> 362 -[151,1](366, 366) -> 363 -[151,1](367, 366) -> 364 -[151,1](368, 366) -> 365 -[152,1](369, 369) -> 366 -[152,1](370, 369) -> 367 -[152,1](371, 369) -> 368 -[153,1](372, 372) -> 369 -[153,1](373, 372) -> 370 -[153,1](374, 372) -> 371 -[154,1](375, 375) -> 372 -[154,1](376, 375) -> 373 -[154,1](377, 375) -> 374 -[155,1](378, 378) -> 375 -[155,1](379, 378) -> 376 -[155,1](380, 378) -> 377 -[156,1](381, 381) -> 378 -[156,1](382, 381) -> 379 -[156,1](383, 381) -> 380 -[157,1](384, 384) -> 381 -[157,1](385, 384) -> 382 -[157,1](386, 384) -> 383 -[158,1](387, 387) -> 384 -[158,1](388, 387) -> 385 -[158,1](389, 387) -> 386 -[159,1](390, 390) -> 387 -[159,1](391, 390) -> 388 -[159,1](392, 390) -> 389 -[160,1](393, 393) -> 390 -[160,1](394, 393) -> 391 -[160,1](395, 393) -> 392 -[161,1](396, 396) -> 393 -[161,1](397, 396) -> 394 -[161,1](398, 396) -> 395 -[162,1](399, 399) -> 396 -[162,1](400, 399) -> 397 -[162,1](401, 399) -> 398 -[163,1](402, 402) -> 399 -[163,1](403, 402) -> 400 -[163,1](404, 402) -> 401 -[164,1](405, 405) -> 402 -[164,1](406, 405) -> 403 -[164,1](407, 405) -> 404 -[165,1](408, 408) -> 405 -[165,1](409, 408) -> 406 -[165,1](410, 408) -> 407 -[166,1](411, 411) -> 408 -[166,1](412, 411) -> 409 -[166,1](413, 411) -> 410 -[167,1](414, 414) -> 411 -[167,1](415, 414) -> 412 -[167,1](416, 414) -> 413 -[168,1](417, 417) -> 414 -[168,1](418, 417) -> 415 -[168,1](419, 417) -> 416 -[169,1](420, 420) -> 417 -[169,1](421, 420) -> 418 -[169,1](422, 420) -> 419 -[170,1](423, 423) -> 420 -[170,1](424, 423) -> 421 -[170,1](425, 423) -> 422 -[c0,1] -> 423 -[a,1] -> 424 -[b,1] -> 425 -Constraints -38685626227668133590597631 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/86/circuit.qasm b/benchmarks/all/OEGrover/86/circuit.qasm index 5b169c4ae..ce0502d77 100644 --- a/benchmarks/all/OEGrover/86/circuit.qasm +++ b/benchmarks/all/OEGrover/86/circuit.qasm @@ -1,219 +1,219 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[172]; +qreg qubits[171]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -ccx qubits[0], qubits[1], qubits[87]; -ccx qubits[2], qubits[87], qubits[88]; -ccx qubits[3], qubits[88], qubits[89]; -ccx qubits[4], qubits[89], qubits[90]; -ccx qubits[5], qubits[90], qubits[91]; -ccx qubits[6], qubits[91], qubits[92]; -ccx qubits[7], qubits[92], qubits[93]; -ccx qubits[8], qubits[93], qubits[94]; -ccx qubits[9], qubits[94], qubits[95]; -ccx qubits[10], qubits[95], qubits[96]; -ccx qubits[11], qubits[96], qubits[97]; -ccx qubits[12], qubits[97], qubits[98]; -ccx qubits[13], qubits[98], qubits[99]; -ccx qubits[14], qubits[99], qubits[100]; -ccx qubits[15], qubits[100], qubits[101]; -ccx qubits[16], qubits[101], qubits[102]; -ccx qubits[17], qubits[102], qubits[103]; -ccx qubits[18], qubits[103], qubits[104]; -ccx qubits[19], qubits[104], qubits[105]; -ccx qubits[20], qubits[105], qubits[106]; -ccx qubits[21], qubits[106], qubits[107]; -ccx qubits[22], qubits[107], qubits[108]; -ccx qubits[23], qubits[108], qubits[109]; -ccx qubits[24], qubits[109], qubits[110]; -ccx qubits[25], qubits[110], qubits[111]; -ccx qubits[26], qubits[111], qubits[112]; -ccx qubits[27], qubits[112], qubits[113]; -ccx qubits[28], qubits[113], qubits[114]; -ccx qubits[29], qubits[114], qubits[115]; -ccx qubits[30], qubits[115], qubits[116]; -ccx qubits[31], qubits[116], qubits[117]; -ccx qubits[32], qubits[117], qubits[118]; -ccx qubits[33], qubits[118], qubits[119]; -ccx qubits[34], qubits[119], qubits[120]; -ccx qubits[35], qubits[120], qubits[121]; -ccx qubits[36], qubits[121], qubits[122]; -ccx qubits[37], qubits[122], qubits[123]; -ccx qubits[38], qubits[123], qubits[124]; -ccx qubits[39], qubits[124], qubits[125]; -ccx qubits[40], qubits[125], qubits[126]; -ccx qubits[41], qubits[126], qubits[127]; -ccx qubits[42], qubits[127], qubits[128]; -ccx qubits[43], qubits[128], qubits[129]; -ccx qubits[44], qubits[129], qubits[130]; -ccx qubits[45], qubits[130], qubits[131]; -ccx qubits[46], qubits[131], qubits[132]; -ccx qubits[47], qubits[132], qubits[133]; -ccx qubits[48], qubits[133], qubits[134]; -ccx qubits[49], qubits[134], qubits[135]; -ccx qubits[50], qubits[135], qubits[136]; -ccx qubits[51], qubits[136], qubits[137]; -ccx qubits[52], qubits[137], qubits[138]; -ccx qubits[53], qubits[138], qubits[139]; -ccx qubits[54], qubits[139], qubits[140]; -ccx qubits[55], qubits[140], qubits[141]; -ccx qubits[56], qubits[141], qubits[142]; -ccx qubits[57], qubits[142], qubits[143]; -ccx qubits[58], qubits[143], qubits[144]; -ccx qubits[59], qubits[144], qubits[145]; -ccx qubits[60], qubits[145], qubits[146]; -ccx qubits[61], qubits[146], qubits[147]; -ccx qubits[62], qubits[147], qubits[148]; -ccx qubits[63], qubits[148], qubits[149]; -ccx qubits[64], qubits[149], qubits[150]; -ccx qubits[65], qubits[150], qubits[151]; -ccx qubits[66], qubits[151], qubits[152]; -ccx qubits[67], qubits[152], qubits[153]; -ccx qubits[68], qubits[153], qubits[154]; -ccx qubits[69], qubits[154], qubits[155]; -ccx qubits[70], qubits[155], qubits[156]; -ccx qubits[71], qubits[156], qubits[157]; -ccx qubits[72], qubits[157], qubits[158]; -ccx qubits[73], qubits[158], qubits[159]; -ccx qubits[74], qubits[159], qubits[160]; -ccx qubits[75], qubits[160], qubits[161]; -ccx qubits[76], qubits[161], qubits[162]; -ccx qubits[77], qubits[162], qubits[163]; -ccx qubits[78], qubits[163], qubits[164]; -ccx qubits[79], qubits[164], qubits[165]; -ccx qubits[80], qubits[165], qubits[166]; -ccx qubits[81], qubits[166], qubits[167]; -ccx qubits[82], qubits[167], qubits[168]; -ccx qubits[83], qubits[168], qubits[169]; -ccx qubits[84], qubits[169], qubits[170]; -cz qubits[170], qubits[85]; -ccx qubits[84], qubits[169], qubits[170]; -ccx qubits[83], qubits[168], qubits[169]; -ccx qubits[82], qubits[167], qubits[168]; -ccx qubits[81], qubits[166], qubits[167]; -ccx qubits[80], qubits[165], qubits[166]; -ccx qubits[79], qubits[164], qubits[165]; -ccx qubits[78], qubits[163], qubits[164]; -ccx qubits[77], qubits[162], qubits[163]; -ccx qubits[76], qubits[161], qubits[162]; -ccx qubits[75], qubits[160], qubits[161]; -ccx qubits[74], qubits[159], qubits[160]; -ccx qubits[73], qubits[158], qubits[159]; -ccx qubits[72], qubits[157], qubits[158]; -ccx qubits[71], qubits[156], qubits[157]; -ccx qubits[70], qubits[155], qubits[156]; -ccx qubits[69], qubits[154], qubits[155]; -ccx qubits[68], qubits[153], qubits[154]; -ccx qubits[67], qubits[152], qubits[153]; -ccx qubits[66], qubits[151], qubits[152]; -ccx qubits[65], qubits[150], qubits[151]; -ccx qubits[64], qubits[149], qubits[150]; -ccx qubits[63], qubits[148], qubits[149]; -ccx qubits[62], qubits[147], qubits[148]; -ccx qubits[61], qubits[146], qubits[147]; -ccx qubits[60], qubits[145], qubits[146]; -ccx qubits[59], qubits[144], qubits[145]; -ccx qubits[58], qubits[143], qubits[144]; -ccx qubits[57], qubits[142], qubits[143]; -ccx qubits[56], qubits[141], qubits[142]; -ccx qubits[55], qubits[140], qubits[141]; -ccx qubits[54], qubits[139], qubits[140]; -ccx qubits[53], qubits[138], qubits[139]; -ccx qubits[52], qubits[137], qubits[138]; -ccx qubits[51], qubits[136], qubits[137]; -ccx qubits[50], qubits[135], qubits[136]; -ccx qubits[49], qubits[134], qubits[135]; -ccx qubits[48], qubits[133], qubits[134]; -ccx qubits[47], qubits[132], qubits[133]; -ccx qubits[46], qubits[131], qubits[132]; -ccx qubits[45], qubits[130], qubits[131]; -ccx qubits[44], qubits[129], qubits[130]; -ccx qubits[43], qubits[128], qubits[129]; -ccx qubits[42], qubits[127], qubits[128]; -ccx qubits[41], qubits[126], qubits[127]; -ccx qubits[40], qubits[125], qubits[126]; -ccx qubits[39], qubits[124], qubits[125]; -ccx qubits[38], qubits[123], qubits[124]; -ccx qubits[37], qubits[122], qubits[123]; -ccx qubits[36], qubits[121], qubits[122]; -ccx qubits[35], qubits[120], qubits[121]; -ccx qubits[34], qubits[119], qubits[120]; -ccx qubits[33], qubits[118], qubits[119]; -ccx qubits[32], qubits[117], qubits[118]; -ccx qubits[31], qubits[116], qubits[117]; -ccx qubits[30], qubits[115], qubits[116]; -ccx qubits[29], qubits[114], qubits[115]; -ccx qubits[28], qubits[113], qubits[114]; -ccx qubits[27], qubits[112], qubits[113]; -ccx qubits[26], qubits[111], qubits[112]; -ccx qubits[25], qubits[110], qubits[111]; -ccx qubits[24], qubits[109], qubits[110]; -ccx qubits[23], qubits[108], qubits[109]; -ccx qubits[22], qubits[107], qubits[108]; -ccx qubits[21], qubits[106], qubits[107]; -ccx qubits[20], qubits[105], qubits[106]; -ccx qubits[19], qubits[104], qubits[105]; -ccx qubits[18], qubits[103], qubits[104]; -ccx qubits[17], qubits[102], qubits[103]; -ccx qubits[16], qubits[101], qubits[102]; -ccx qubits[15], qubits[100], qubits[101]; -ccx qubits[14], qubits[99], qubits[100]; -ccx qubits[13], qubits[98], qubits[99]; -ccx qubits[12], qubits[97], qubits[98]; -ccx qubits[11], qubits[96], qubits[97]; -ccx qubits[10], qubits[95], qubits[96]; -ccx qubits[9], qubits[94], qubits[95]; -ccx qubits[8], qubits[93], qubits[94]; -ccx qubits[7], qubits[92], qubits[93]; -ccx qubits[6], qubits[91], qubits[92]; -ccx qubits[5], qubits[90], qubits[91]; -ccx qubits[4], qubits[89], qubits[90]; -ccx qubits[3], qubits[88], qubits[89]; -ccx qubits[2], qubits[87], qubits[88]; -ccx qubits[0], qubits[1], qubits[87]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +cz qubits[168], qubits[169]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -259,515 +259,515 @@ x qubits[82]; x qubits[84]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -ccx qubits[0], qubits[1], qubits[87]; -ccx qubits[2], qubits[87], qubits[88]; -ccx qubits[3], qubits[88], qubits[89]; -ccx qubits[4], qubits[89], qubits[90]; -ccx qubits[5], qubits[90], qubits[91]; -ccx qubits[6], qubits[91], qubits[92]; -ccx qubits[7], qubits[92], qubits[93]; -ccx qubits[8], qubits[93], qubits[94]; -ccx qubits[9], qubits[94], qubits[95]; -ccx qubits[10], qubits[95], qubits[96]; -ccx qubits[11], qubits[96], qubits[97]; -ccx qubits[12], qubits[97], qubits[98]; -ccx qubits[13], qubits[98], qubits[99]; -ccx qubits[14], qubits[99], qubits[100]; -ccx qubits[15], qubits[100], qubits[101]; -ccx qubits[16], qubits[101], qubits[102]; -ccx qubits[17], qubits[102], qubits[103]; -ccx qubits[18], qubits[103], qubits[104]; -ccx qubits[19], qubits[104], qubits[105]; -ccx qubits[20], qubits[105], qubits[106]; -ccx qubits[21], qubits[106], qubits[107]; -ccx qubits[22], qubits[107], qubits[108]; -ccx qubits[23], qubits[108], qubits[109]; -ccx qubits[24], qubits[109], qubits[110]; -ccx qubits[25], qubits[110], qubits[111]; -ccx qubits[26], qubits[111], qubits[112]; -ccx qubits[27], qubits[112], qubits[113]; -ccx qubits[28], qubits[113], qubits[114]; -ccx qubits[29], qubits[114], qubits[115]; -ccx qubits[30], qubits[115], qubits[116]; -ccx qubits[31], qubits[116], qubits[117]; -ccx qubits[32], qubits[117], qubits[118]; -ccx qubits[33], qubits[118], qubits[119]; -ccx qubits[34], qubits[119], qubits[120]; -ccx qubits[35], qubits[120], qubits[121]; -ccx qubits[36], qubits[121], qubits[122]; -ccx qubits[37], qubits[122], qubits[123]; -ccx qubits[38], qubits[123], qubits[124]; -ccx qubits[39], qubits[124], qubits[125]; -ccx qubits[40], qubits[125], qubits[126]; -ccx qubits[41], qubits[126], qubits[127]; -ccx qubits[42], qubits[127], qubits[128]; -ccx qubits[43], qubits[128], qubits[129]; -ccx qubits[44], qubits[129], qubits[130]; -ccx qubits[45], qubits[130], qubits[131]; -ccx qubits[46], qubits[131], qubits[132]; -ccx qubits[47], qubits[132], qubits[133]; -ccx qubits[48], qubits[133], qubits[134]; -ccx qubits[49], qubits[134], qubits[135]; -ccx qubits[50], qubits[135], qubits[136]; -ccx qubits[51], qubits[136], qubits[137]; -ccx qubits[52], qubits[137], qubits[138]; -ccx qubits[53], qubits[138], qubits[139]; -ccx qubits[54], qubits[139], qubits[140]; -ccx qubits[55], qubits[140], qubits[141]; -ccx qubits[56], qubits[141], qubits[142]; -ccx qubits[57], qubits[142], qubits[143]; -ccx qubits[58], qubits[143], qubits[144]; -ccx qubits[59], qubits[144], qubits[145]; -ccx qubits[60], qubits[145], qubits[146]; -ccx qubits[61], qubits[146], qubits[147]; -ccx qubits[62], qubits[147], qubits[148]; -ccx qubits[63], qubits[148], qubits[149]; -ccx qubits[64], qubits[149], qubits[150]; -ccx qubits[65], qubits[150], qubits[151]; -ccx qubits[66], qubits[151], qubits[152]; -ccx qubits[67], qubits[152], qubits[153]; -ccx qubits[68], qubits[153], qubits[154]; -ccx qubits[69], qubits[154], qubits[155]; -ccx qubits[70], qubits[155], qubits[156]; -ccx qubits[71], qubits[156], qubits[157]; -ccx qubits[72], qubits[157], qubits[158]; -ccx qubits[73], qubits[158], qubits[159]; -ccx qubits[74], qubits[159], qubits[160]; -ccx qubits[75], qubits[160], qubits[161]; -ccx qubits[76], qubits[161], qubits[162]; -ccx qubits[77], qubits[162], qubits[163]; -ccx qubits[78], qubits[163], qubits[164]; -ccx qubits[79], qubits[164], qubits[165]; -ccx qubits[80], qubits[165], qubits[166]; -ccx qubits[81], qubits[166], qubits[167]; -ccx qubits[82], qubits[167], qubits[168]; -ccx qubits[83], qubits[168], qubits[169]; -ccx qubits[84], qubits[169], qubits[170]; -cz qubits[170], qubits[85]; -ccx qubits[84], qubits[169], qubits[170]; -ccx qubits[83], qubits[168], qubits[169]; -ccx qubits[82], qubits[167], qubits[168]; -ccx qubits[81], qubits[166], qubits[167]; -ccx qubits[80], qubits[165], qubits[166]; -ccx qubits[79], qubits[164], qubits[165]; -ccx qubits[78], qubits[163], qubits[164]; -ccx qubits[77], qubits[162], qubits[163]; -ccx qubits[76], qubits[161], qubits[162]; -ccx qubits[75], qubits[160], qubits[161]; -ccx qubits[74], qubits[159], qubits[160]; -ccx qubits[73], qubits[158], qubits[159]; -ccx qubits[72], qubits[157], qubits[158]; -ccx qubits[71], qubits[156], qubits[157]; -ccx qubits[70], qubits[155], qubits[156]; -ccx qubits[69], qubits[154], qubits[155]; -ccx qubits[68], qubits[153], qubits[154]; -ccx qubits[67], qubits[152], qubits[153]; -ccx qubits[66], qubits[151], qubits[152]; -ccx qubits[65], qubits[150], qubits[151]; -ccx qubits[64], qubits[149], qubits[150]; -ccx qubits[63], qubits[148], qubits[149]; -ccx qubits[62], qubits[147], qubits[148]; -ccx qubits[61], qubits[146], qubits[147]; -ccx qubits[60], qubits[145], qubits[146]; -ccx qubits[59], qubits[144], qubits[145]; -ccx qubits[58], qubits[143], qubits[144]; -ccx qubits[57], qubits[142], qubits[143]; -ccx qubits[56], qubits[141], qubits[142]; -ccx qubits[55], qubits[140], qubits[141]; -ccx qubits[54], qubits[139], qubits[140]; -ccx qubits[53], qubits[138], qubits[139]; -ccx qubits[52], qubits[137], qubits[138]; -ccx qubits[51], qubits[136], qubits[137]; -ccx qubits[50], qubits[135], qubits[136]; -ccx qubits[49], qubits[134], qubits[135]; -ccx qubits[48], qubits[133], qubits[134]; -ccx qubits[47], qubits[132], qubits[133]; -ccx qubits[46], qubits[131], qubits[132]; -ccx qubits[45], qubits[130], qubits[131]; -ccx qubits[44], qubits[129], qubits[130]; -ccx qubits[43], qubits[128], qubits[129]; -ccx qubits[42], qubits[127], qubits[128]; -ccx qubits[41], qubits[126], qubits[127]; -ccx qubits[40], qubits[125], qubits[126]; -ccx qubits[39], qubits[124], qubits[125]; -ccx qubits[38], qubits[123], qubits[124]; -ccx qubits[37], qubits[122], qubits[123]; -ccx qubits[36], qubits[121], qubits[122]; -ccx qubits[35], qubits[120], qubits[121]; -ccx qubits[34], qubits[119], qubits[120]; -ccx qubits[33], qubits[118], qubits[119]; -ccx qubits[32], qubits[117], qubits[118]; -ccx qubits[31], qubits[116], qubits[117]; -ccx qubits[30], qubits[115], qubits[116]; -ccx qubits[29], qubits[114], qubits[115]; -ccx qubits[28], qubits[113], qubits[114]; -ccx qubits[27], qubits[112], qubits[113]; -ccx qubits[26], qubits[111], qubits[112]; -ccx qubits[25], qubits[110], qubits[111]; -ccx qubits[24], qubits[109], qubits[110]; -ccx qubits[23], qubits[108], qubits[109]; -ccx qubits[22], qubits[107], qubits[108]; -ccx qubits[21], qubits[106], qubits[107]; -ccx qubits[20], qubits[105], qubits[106]; -ccx qubits[19], qubits[104], qubits[105]; -ccx qubits[18], qubits[103], qubits[104]; -ccx qubits[17], qubits[102], qubits[103]; -ccx qubits[16], qubits[101], qubits[102]; -ccx qubits[15], qubits[100], qubits[101]; -ccx qubits[14], qubits[99], qubits[100]; -ccx qubits[13], qubits[98], qubits[99]; -ccx qubits[12], qubits[97], qubits[98]; -ccx qubits[11], qubits[96], qubits[97]; -ccx qubits[10], qubits[95], qubits[96]; -ccx qubits[9], qubits[94], qubits[95]; -ccx qubits[8], qubits[93], qubits[94]; -ccx qubits[7], qubits[92], qubits[93]; -ccx qubits[6], qubits[91], qubits[92]; -ccx qubits[5], qubits[90], qubits[91]; -ccx qubits[4], qubits[89], qubits[90]; -ccx qubits[3], qubits[88], qubits[89]; -ccx qubits[2], qubits[87], qubits[88]; -ccx qubits[0], qubits[1], qubits[87]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +cz qubits[168], qubits[169]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -z qubits[86]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +z qubits[170]; diff --git a/benchmarks/all/OEGrover/86/post.hsl b/benchmarks/all/OEGrover/86/post.hsl index b2ff0e476..50fb755a0 100644 --- a/benchmarks/all/OEGrover/86/post.hsl +++ b/benchmarks/all/OEGrover/86/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 42 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/86/post.lsta b/benchmarks/all/OEGrover/86/post.lsta deleted file mode 100644 index e88a19cfd..000000000 --- a/benchmarks/all/OEGrover/86/post.lsta +++ /dev/null @@ -1,437 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 174) -> 171 -[87,1](173, 175) -> 172 -[88,1](176, 176) -> 173 -[88,1](177, 176) -> 174 -[88,1](178, 176) -> 175 -[89,1](179, 179) -> 176 -[89,1](180, 179) -> 177 -[89,1](181, 179) -> 178 -[90,1](182, 182) -> 179 -[90,1](183, 182) -> 180 -[90,1](184, 182) -> 181 -[91,1](185, 185) -> 182 -[91,1](186, 185) -> 183 -[91,1](187, 185) -> 184 -[92,1](188, 188) -> 185 -[92,1](189, 188) -> 186 -[92,1](190, 188) -> 187 -[93,1](191, 191) -> 188 -[93,1](192, 191) -> 189 -[93,1](193, 191) -> 190 -[94,1](194, 194) -> 191 -[94,1](195, 194) -> 192 -[94,1](196, 194) -> 193 -[95,1](197, 197) -> 194 -[95,1](198, 197) -> 195 -[95,1](199, 197) -> 196 -[96,1](200, 200) -> 197 -[96,1](201, 200) -> 198 -[96,1](202, 200) -> 199 -[97,1](203, 203) -> 200 -[97,1](204, 203) -> 201 -[97,1](205, 203) -> 202 -[98,1](206, 206) -> 203 -[98,1](207, 206) -> 204 -[98,1](208, 206) -> 205 -[99,1](209, 209) -> 206 -[99,1](210, 209) -> 207 -[99,1](211, 209) -> 208 -[100,1](212, 212) -> 209 -[100,1](213, 212) -> 210 -[100,1](214, 212) -> 211 -[101,1](215, 215) -> 212 -[101,1](216, 215) -> 213 -[101,1](217, 215) -> 214 -[102,1](218, 218) -> 215 -[102,1](219, 218) -> 216 -[102,1](220, 218) -> 217 -[103,1](221, 221) -> 218 -[103,1](222, 221) -> 219 -[103,1](223, 221) -> 220 -[104,1](224, 224) -> 221 -[104,1](225, 224) -> 222 -[104,1](226, 224) -> 223 -[105,1](227, 227) -> 224 -[105,1](228, 227) -> 225 -[105,1](229, 227) -> 226 -[106,1](230, 230) -> 227 -[106,1](231, 230) -> 228 -[106,1](232, 230) -> 229 -[107,1](233, 233) -> 230 -[107,1](234, 233) -> 231 -[107,1](235, 233) -> 232 -[108,1](236, 236) -> 233 -[108,1](237, 236) -> 234 -[108,1](238, 236) -> 235 -[109,1](239, 239) -> 236 -[109,1](240, 239) -> 237 -[109,1](241, 239) -> 238 -[110,1](242, 242) -> 239 -[110,1](243, 242) -> 240 -[110,1](244, 242) -> 241 -[111,1](245, 245) -> 242 -[111,1](246, 245) -> 243 -[111,1](247, 245) -> 244 -[112,1](248, 248) -> 245 -[112,1](249, 248) -> 246 -[112,1](250, 248) -> 247 -[113,1](251, 251) -> 248 -[113,1](252, 251) -> 249 -[113,1](253, 251) -> 250 -[114,1](254, 254) -> 251 -[114,1](255, 254) -> 252 -[114,1](256, 254) -> 253 -[115,1](257, 257) -> 254 -[115,1](258, 257) -> 255 -[115,1](259, 257) -> 256 -[116,1](260, 260) -> 257 -[116,1](261, 260) -> 258 -[116,1](262, 260) -> 259 -[117,1](263, 263) -> 260 -[117,1](264, 263) -> 261 -[117,1](265, 263) -> 262 -[118,1](266, 266) -> 263 -[118,1](267, 266) -> 264 -[118,1](268, 266) -> 265 -[119,1](269, 269) -> 266 -[119,1](270, 269) -> 267 -[119,1](271, 269) -> 268 -[120,1](272, 272) -> 269 -[120,1](273, 272) -> 270 -[120,1](274, 272) -> 271 -[121,1](275, 275) -> 272 -[121,1](276, 275) -> 273 -[121,1](277, 275) -> 274 -[122,1](278, 278) -> 275 -[122,1](279, 278) -> 276 -[122,1](280, 278) -> 277 -[123,1](281, 281) -> 278 -[123,1](282, 281) -> 279 -[123,1](283, 281) -> 280 -[124,1](284, 284) -> 281 -[124,1](285, 284) -> 282 -[124,1](286, 284) -> 283 -[125,1](287, 287) -> 284 -[125,1](288, 287) -> 285 -[125,1](289, 287) -> 286 -[126,1](290, 290) -> 287 -[126,1](291, 290) -> 288 -[126,1](292, 290) -> 289 -[127,1](293, 293) -> 290 -[127,1](294, 293) -> 291 -[127,1](295, 293) -> 292 -[128,1](296, 296) -> 293 -[128,1](297, 296) -> 294 -[128,1](298, 296) -> 295 -[129,1](299, 299) -> 296 -[129,1](300, 299) -> 297 -[129,1](301, 299) -> 298 -[130,1](302, 302) -> 299 -[130,1](303, 302) -> 300 -[130,1](304, 302) -> 301 -[131,1](305, 305) -> 302 -[131,1](306, 305) -> 303 -[131,1](307, 305) -> 304 -[132,1](308, 308) -> 305 -[132,1](309, 308) -> 306 -[132,1](310, 308) -> 307 -[133,1](311, 311) -> 308 -[133,1](312, 311) -> 309 -[133,1](313, 311) -> 310 -[134,1](314, 314) -> 311 -[134,1](315, 314) -> 312 -[134,1](316, 314) -> 313 -[135,1](317, 317) -> 314 -[135,1](318, 317) -> 315 -[135,1](319, 317) -> 316 -[136,1](320, 320) -> 317 -[136,1](321, 320) -> 318 -[136,1](322, 320) -> 319 -[137,1](323, 323) -> 320 -[137,1](324, 323) -> 321 -[137,1](325, 323) -> 322 -[138,1](326, 326) -> 323 -[138,1](327, 326) -> 324 -[138,1](328, 326) -> 325 -[139,1](329, 329) -> 326 -[139,1](330, 329) -> 327 -[139,1](331, 329) -> 328 -[140,1](332, 332) -> 329 -[140,1](333, 332) -> 330 -[140,1](334, 332) -> 331 -[141,1](335, 335) -> 332 -[141,1](336, 335) -> 333 -[141,1](337, 335) -> 334 -[142,1](338, 338) -> 335 -[142,1](339, 338) -> 336 -[142,1](340, 338) -> 337 -[143,1](341, 341) -> 338 -[143,1](342, 341) -> 339 -[143,1](343, 341) -> 340 -[144,1](344, 344) -> 341 -[144,1](345, 344) -> 342 -[144,1](346, 344) -> 343 -[145,1](347, 347) -> 344 -[145,1](348, 347) -> 345 -[145,1](349, 347) -> 346 -[146,1](350, 350) -> 347 -[146,1](351, 350) -> 348 -[146,1](352, 350) -> 349 -[147,1](353, 353) -> 350 -[147,1](354, 353) -> 351 -[147,1](355, 353) -> 352 -[148,1](356, 356) -> 353 -[148,1](357, 356) -> 354 -[148,1](358, 356) -> 355 -[149,1](359, 359) -> 356 -[149,1](360, 359) -> 357 -[149,1](361, 359) -> 358 -[150,1](362, 362) -> 359 -[150,1](363, 362) -> 360 -[150,1](364, 362) -> 361 -[151,1](365, 365) -> 362 -[151,1](366, 365) -> 363 -[151,1](367, 365) -> 364 -[152,1](368, 368) -> 365 -[152,1](369, 368) -> 366 -[152,1](370, 368) -> 367 -[153,1](371, 371) -> 368 -[153,1](372, 371) -> 369 -[153,1](373, 371) -> 370 -[154,1](374, 374) -> 371 -[154,1](375, 374) -> 372 -[154,1](376, 374) -> 373 -[155,1](377, 377) -> 374 -[155,1](378, 377) -> 375 -[155,1](379, 377) -> 376 -[156,1](380, 380) -> 377 -[156,1](381, 380) -> 378 -[156,1](382, 380) -> 379 -[157,1](383, 383) -> 380 -[157,1](384, 383) -> 381 -[157,1](385, 383) -> 382 -[158,1](386, 386) -> 383 -[158,1](387, 386) -> 384 -[158,1](388, 386) -> 385 -[159,1](389, 389) -> 386 -[159,1](390, 389) -> 387 -[159,1](391, 389) -> 388 -[160,1](392, 392) -> 389 -[160,1](393, 392) -> 390 -[160,1](394, 392) -> 391 -[161,1](395, 395) -> 392 -[161,1](396, 395) -> 393 -[161,1](397, 395) -> 394 -[162,1](398, 398) -> 395 -[162,1](399, 398) -> 396 -[162,1](400, 398) -> 397 -[163,1](401, 401) -> 398 -[163,1](402, 401) -> 399 -[163,1](403, 401) -> 400 -[164,1](404, 404) -> 401 -[164,1](405, 404) -> 402 -[164,1](406, 404) -> 403 -[165,1](407, 407) -> 404 -[165,1](408, 407) -> 405 -[165,1](409, 407) -> 406 -[166,1](410, 410) -> 407 -[166,1](411, 410) -> 408 -[166,1](412, 410) -> 409 -[167,1](413, 413) -> 410 -[167,1](414, 413) -> 411 -[167,1](415, 413) -> 412 -[168,1](416, 416) -> 413 -[168,1](417, 416) -> 414 -[168,1](418, 416) -> 415 -[169,1](419, 419) -> 416 -[169,1](420, 419) -> 417 -[169,1](421, 419) -> 418 -[170,1](422, 422) -> 419 -[170,1](423, 422) -> 420 -[170,1](424, 422) -> 421 -[171,1](425, 425) -> 422 -[171,1](426, 425) -> 423 -[171,1](427, 425) -> 424 -[172,1](428, 428) -> 425 -[172,1](429, 428) -> 426 -[172,1](430, 428) -> 427 -[p1,1] -> 428 -[p2,1] -> 429 -[p3,1] -> 430 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/86/pre.hsl b/benchmarks/all/OEGrover/86/pre.hsl index ce9b2dff7..ee78fb094 100644 --- a/benchmarks/all/OEGrover/86/pre.hsl +++ b/benchmarks/all/OEGrover/86/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 42 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 77371252455336267181195263 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/86/pre.lsta b/benchmarks/all/OEGrover/86/pre.lsta deleted file mode 100644 index 2585a162e..000000000 --- a/benchmarks/all/OEGrover/86/pre.lsta +++ /dev/null @@ -1,441 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 174) -> 171 -[87,1](173, 175) -> 172 -[88,1](176, 176) -> 173 -[88,1](177, 176) -> 174 -[88,1](178, 176) -> 175 -[89,1](179, 179) -> 176 -[89,1](180, 179) -> 177 -[89,1](181, 179) -> 178 -[90,1](182, 182) -> 179 -[90,1](183, 182) -> 180 -[90,1](184, 182) -> 181 -[91,1](185, 185) -> 182 -[91,1](186, 185) -> 183 -[91,1](187, 185) -> 184 -[92,1](188, 188) -> 185 -[92,1](189, 188) -> 186 -[92,1](190, 188) -> 187 -[93,1](191, 191) -> 188 -[93,1](192, 191) -> 189 -[93,1](193, 191) -> 190 -[94,1](194, 194) -> 191 -[94,1](195, 194) -> 192 -[94,1](196, 194) -> 193 -[95,1](197, 197) -> 194 -[95,1](198, 197) -> 195 -[95,1](199, 197) -> 196 -[96,1](200, 200) -> 197 -[96,1](201, 200) -> 198 -[96,1](202, 200) -> 199 -[97,1](203, 203) -> 200 -[97,1](204, 203) -> 201 -[97,1](205, 203) -> 202 -[98,1](206, 206) -> 203 -[98,1](207, 206) -> 204 -[98,1](208, 206) -> 205 -[99,1](209, 209) -> 206 -[99,1](210, 209) -> 207 -[99,1](211, 209) -> 208 -[100,1](212, 212) -> 209 -[100,1](213, 212) -> 210 -[100,1](214, 212) -> 211 -[101,1](215, 215) -> 212 -[101,1](216, 215) -> 213 -[101,1](217, 215) -> 214 -[102,1](218, 218) -> 215 -[102,1](219, 218) -> 216 -[102,1](220, 218) -> 217 -[103,1](221, 221) -> 218 -[103,1](222, 221) -> 219 -[103,1](223, 221) -> 220 -[104,1](224, 224) -> 221 -[104,1](225, 224) -> 222 -[104,1](226, 224) -> 223 -[105,1](227, 227) -> 224 -[105,1](228, 227) -> 225 -[105,1](229, 227) -> 226 -[106,1](230, 230) -> 227 -[106,1](231, 230) -> 228 -[106,1](232, 230) -> 229 -[107,1](233, 233) -> 230 -[107,1](234, 233) -> 231 -[107,1](235, 233) -> 232 -[108,1](236, 236) -> 233 -[108,1](237, 236) -> 234 -[108,1](238, 236) -> 235 -[109,1](239, 239) -> 236 -[109,1](240, 239) -> 237 -[109,1](241, 239) -> 238 -[110,1](242, 242) -> 239 -[110,1](243, 242) -> 240 -[110,1](244, 242) -> 241 -[111,1](245, 245) -> 242 -[111,1](246, 245) -> 243 -[111,1](247, 245) -> 244 -[112,1](248, 248) -> 245 -[112,1](249, 248) -> 246 -[112,1](250, 248) -> 247 -[113,1](251, 251) -> 248 -[113,1](252, 251) -> 249 -[113,1](253, 251) -> 250 -[114,1](254, 254) -> 251 -[114,1](255, 254) -> 252 -[114,1](256, 254) -> 253 -[115,1](257, 257) -> 254 -[115,1](258, 257) -> 255 -[115,1](259, 257) -> 256 -[116,1](260, 260) -> 257 -[116,1](261, 260) -> 258 -[116,1](262, 260) -> 259 -[117,1](263, 263) -> 260 -[117,1](264, 263) -> 261 -[117,1](265, 263) -> 262 -[118,1](266, 266) -> 263 -[118,1](267, 266) -> 264 -[118,1](268, 266) -> 265 -[119,1](269, 269) -> 266 -[119,1](270, 269) -> 267 -[119,1](271, 269) -> 268 -[120,1](272, 272) -> 269 -[120,1](273, 272) -> 270 -[120,1](274, 272) -> 271 -[121,1](275, 275) -> 272 -[121,1](276, 275) -> 273 -[121,1](277, 275) -> 274 -[122,1](278, 278) -> 275 -[122,1](279, 278) -> 276 -[122,1](280, 278) -> 277 -[123,1](281, 281) -> 278 -[123,1](282, 281) -> 279 -[123,1](283, 281) -> 280 -[124,1](284, 284) -> 281 -[124,1](285, 284) -> 282 -[124,1](286, 284) -> 283 -[125,1](287, 287) -> 284 -[125,1](288, 287) -> 285 -[125,1](289, 287) -> 286 -[126,1](290, 290) -> 287 -[126,1](291, 290) -> 288 -[126,1](292, 290) -> 289 -[127,1](293, 293) -> 290 -[127,1](294, 293) -> 291 -[127,1](295, 293) -> 292 -[128,1](296, 296) -> 293 -[128,1](297, 296) -> 294 -[128,1](298, 296) -> 295 -[129,1](299, 299) -> 296 -[129,1](300, 299) -> 297 -[129,1](301, 299) -> 298 -[130,1](302, 302) -> 299 -[130,1](303, 302) -> 300 -[130,1](304, 302) -> 301 -[131,1](305, 305) -> 302 -[131,1](306, 305) -> 303 -[131,1](307, 305) -> 304 -[132,1](308, 308) -> 305 -[132,1](309, 308) -> 306 -[132,1](310, 308) -> 307 -[133,1](311, 311) -> 308 -[133,1](312, 311) -> 309 -[133,1](313, 311) -> 310 -[134,1](314, 314) -> 311 -[134,1](315, 314) -> 312 -[134,1](316, 314) -> 313 -[135,1](317, 317) -> 314 -[135,1](318, 317) -> 315 -[135,1](319, 317) -> 316 -[136,1](320, 320) -> 317 -[136,1](321, 320) -> 318 -[136,1](322, 320) -> 319 -[137,1](323, 323) -> 320 -[137,1](324, 323) -> 321 -[137,1](325, 323) -> 322 -[138,1](326, 326) -> 323 -[138,1](327, 326) -> 324 -[138,1](328, 326) -> 325 -[139,1](329, 329) -> 326 -[139,1](330, 329) -> 327 -[139,1](331, 329) -> 328 -[140,1](332, 332) -> 329 -[140,1](333, 332) -> 330 -[140,1](334, 332) -> 331 -[141,1](335, 335) -> 332 -[141,1](336, 335) -> 333 -[141,1](337, 335) -> 334 -[142,1](338, 338) -> 335 -[142,1](339, 338) -> 336 -[142,1](340, 338) -> 337 -[143,1](341, 341) -> 338 -[143,1](342, 341) -> 339 -[143,1](343, 341) -> 340 -[144,1](344, 344) -> 341 -[144,1](345, 344) -> 342 -[144,1](346, 344) -> 343 -[145,1](347, 347) -> 344 -[145,1](348, 347) -> 345 -[145,1](349, 347) -> 346 -[146,1](350, 350) -> 347 -[146,1](351, 350) -> 348 -[146,1](352, 350) -> 349 -[147,1](353, 353) -> 350 -[147,1](354, 353) -> 351 -[147,1](355, 353) -> 352 -[148,1](356, 356) -> 353 -[148,1](357, 356) -> 354 -[148,1](358, 356) -> 355 -[149,1](359, 359) -> 356 -[149,1](360, 359) -> 357 -[149,1](361, 359) -> 358 -[150,1](362, 362) -> 359 -[150,1](363, 362) -> 360 -[150,1](364, 362) -> 361 -[151,1](365, 365) -> 362 -[151,1](366, 365) -> 363 -[151,1](367, 365) -> 364 -[152,1](368, 368) -> 365 -[152,1](369, 368) -> 366 -[152,1](370, 368) -> 367 -[153,1](371, 371) -> 368 -[153,1](372, 371) -> 369 -[153,1](373, 371) -> 370 -[154,1](374, 374) -> 371 -[154,1](375, 374) -> 372 -[154,1](376, 374) -> 373 -[155,1](377, 377) -> 374 -[155,1](378, 377) -> 375 -[155,1](379, 377) -> 376 -[156,1](380, 380) -> 377 -[156,1](381, 380) -> 378 -[156,1](382, 380) -> 379 -[157,1](383, 383) -> 380 -[157,1](384, 383) -> 381 -[157,1](385, 383) -> 382 -[158,1](386, 386) -> 383 -[158,1](387, 386) -> 384 -[158,1](388, 386) -> 385 -[159,1](389, 389) -> 386 -[159,1](390, 389) -> 387 -[159,1](391, 389) -> 388 -[160,1](392, 392) -> 389 -[160,1](393, 392) -> 390 -[160,1](394, 392) -> 391 -[161,1](395, 395) -> 392 -[161,1](396, 395) -> 393 -[161,1](397, 395) -> 394 -[162,1](398, 398) -> 395 -[162,1](399, 398) -> 396 -[162,1](400, 398) -> 397 -[163,1](401, 401) -> 398 -[163,1](402, 401) -> 399 -[163,1](403, 401) -> 400 -[164,1](404, 404) -> 401 -[164,1](405, 404) -> 402 -[164,1](406, 404) -> 403 -[165,1](407, 407) -> 404 -[165,1](408, 407) -> 405 -[165,1](409, 407) -> 406 -[166,1](410, 410) -> 407 -[166,1](411, 410) -> 408 -[166,1](412, 410) -> 409 -[167,1](413, 413) -> 410 -[167,1](414, 413) -> 411 -[167,1](415, 413) -> 412 -[168,1](416, 416) -> 413 -[168,1](417, 416) -> 414 -[168,1](418, 416) -> 415 -[169,1](419, 419) -> 416 -[169,1](420, 419) -> 417 -[169,1](421, 419) -> 418 -[170,1](422, 422) -> 419 -[170,1](423, 422) -> 420 -[170,1](424, 422) -> 421 -[171,1](425, 425) -> 422 -[171,1](426, 425) -> 423 -[171,1](427, 425) -> 424 -[172,1](428, 428) -> 425 -[172,1](429, 428) -> 426 -[172,1](430, 428) -> 427 -[c0,1] -> 428 -[a,1] -> 429 -[b,1] -> 430 -Constraints -77371252455336267181195263 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/87/circuit.qasm b/benchmarks/all/OEGrover/87/circuit.qasm index 831cde552..dcf85fd6d 100644 --- a/benchmarks/all/OEGrover/87/circuit.qasm +++ b/benchmarks/all/OEGrover/87/circuit.qasm @@ -1,222 +1,222 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[174]; +qreg qubits[173]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -ccx qubits[0], qubits[1], qubits[88]; -ccx qubits[2], qubits[88], qubits[89]; -ccx qubits[3], qubits[89], qubits[90]; -ccx qubits[4], qubits[90], qubits[91]; -ccx qubits[5], qubits[91], qubits[92]; -ccx qubits[6], qubits[92], qubits[93]; -ccx qubits[7], qubits[93], qubits[94]; -ccx qubits[8], qubits[94], qubits[95]; -ccx qubits[9], qubits[95], qubits[96]; -ccx qubits[10], qubits[96], qubits[97]; -ccx qubits[11], qubits[97], qubits[98]; -ccx qubits[12], qubits[98], qubits[99]; -ccx qubits[13], qubits[99], qubits[100]; -ccx qubits[14], qubits[100], qubits[101]; -ccx qubits[15], qubits[101], qubits[102]; -ccx qubits[16], qubits[102], qubits[103]; -ccx qubits[17], qubits[103], qubits[104]; -ccx qubits[18], qubits[104], qubits[105]; -ccx qubits[19], qubits[105], qubits[106]; -ccx qubits[20], qubits[106], qubits[107]; -ccx qubits[21], qubits[107], qubits[108]; -ccx qubits[22], qubits[108], qubits[109]; -ccx qubits[23], qubits[109], qubits[110]; -ccx qubits[24], qubits[110], qubits[111]; -ccx qubits[25], qubits[111], qubits[112]; -ccx qubits[26], qubits[112], qubits[113]; -ccx qubits[27], qubits[113], qubits[114]; -ccx qubits[28], qubits[114], qubits[115]; -ccx qubits[29], qubits[115], qubits[116]; -ccx qubits[30], qubits[116], qubits[117]; -ccx qubits[31], qubits[117], qubits[118]; -ccx qubits[32], qubits[118], qubits[119]; -ccx qubits[33], qubits[119], qubits[120]; -ccx qubits[34], qubits[120], qubits[121]; -ccx qubits[35], qubits[121], qubits[122]; -ccx qubits[36], qubits[122], qubits[123]; -ccx qubits[37], qubits[123], qubits[124]; -ccx qubits[38], qubits[124], qubits[125]; -ccx qubits[39], qubits[125], qubits[126]; -ccx qubits[40], qubits[126], qubits[127]; -ccx qubits[41], qubits[127], qubits[128]; -ccx qubits[42], qubits[128], qubits[129]; -ccx qubits[43], qubits[129], qubits[130]; -ccx qubits[44], qubits[130], qubits[131]; -ccx qubits[45], qubits[131], qubits[132]; -ccx qubits[46], qubits[132], qubits[133]; -ccx qubits[47], qubits[133], qubits[134]; -ccx qubits[48], qubits[134], qubits[135]; -ccx qubits[49], qubits[135], qubits[136]; -ccx qubits[50], qubits[136], qubits[137]; -ccx qubits[51], qubits[137], qubits[138]; -ccx qubits[52], qubits[138], qubits[139]; -ccx qubits[53], qubits[139], qubits[140]; -ccx qubits[54], qubits[140], qubits[141]; -ccx qubits[55], qubits[141], qubits[142]; -ccx qubits[56], qubits[142], qubits[143]; -ccx qubits[57], qubits[143], qubits[144]; -ccx qubits[58], qubits[144], qubits[145]; -ccx qubits[59], qubits[145], qubits[146]; -ccx qubits[60], qubits[146], qubits[147]; -ccx qubits[61], qubits[147], qubits[148]; -ccx qubits[62], qubits[148], qubits[149]; -ccx qubits[63], qubits[149], qubits[150]; -ccx qubits[64], qubits[150], qubits[151]; -ccx qubits[65], qubits[151], qubits[152]; -ccx qubits[66], qubits[152], qubits[153]; -ccx qubits[67], qubits[153], qubits[154]; -ccx qubits[68], qubits[154], qubits[155]; -ccx qubits[69], qubits[155], qubits[156]; -ccx qubits[70], qubits[156], qubits[157]; -ccx qubits[71], qubits[157], qubits[158]; -ccx qubits[72], qubits[158], qubits[159]; -ccx qubits[73], qubits[159], qubits[160]; -ccx qubits[74], qubits[160], qubits[161]; -ccx qubits[75], qubits[161], qubits[162]; -ccx qubits[76], qubits[162], qubits[163]; -ccx qubits[77], qubits[163], qubits[164]; -ccx qubits[78], qubits[164], qubits[165]; -ccx qubits[79], qubits[165], qubits[166]; -ccx qubits[80], qubits[166], qubits[167]; -ccx qubits[81], qubits[167], qubits[168]; -ccx qubits[82], qubits[168], qubits[169]; -ccx qubits[83], qubits[169], qubits[170]; -ccx qubits[84], qubits[170], qubits[171]; -ccx qubits[85], qubits[171], qubits[172]; -cz qubits[172], qubits[86]; -ccx qubits[85], qubits[171], qubits[172]; -ccx qubits[84], qubits[170], qubits[171]; -ccx qubits[83], qubits[169], qubits[170]; -ccx qubits[82], qubits[168], qubits[169]; -ccx qubits[81], qubits[167], qubits[168]; -ccx qubits[80], qubits[166], qubits[167]; -ccx qubits[79], qubits[165], qubits[166]; -ccx qubits[78], qubits[164], qubits[165]; -ccx qubits[77], qubits[163], qubits[164]; -ccx qubits[76], qubits[162], qubits[163]; -ccx qubits[75], qubits[161], qubits[162]; -ccx qubits[74], qubits[160], qubits[161]; -ccx qubits[73], qubits[159], qubits[160]; -ccx qubits[72], qubits[158], qubits[159]; -ccx qubits[71], qubits[157], qubits[158]; -ccx qubits[70], qubits[156], qubits[157]; -ccx qubits[69], qubits[155], qubits[156]; -ccx qubits[68], qubits[154], qubits[155]; -ccx qubits[67], qubits[153], qubits[154]; -ccx qubits[66], qubits[152], qubits[153]; -ccx qubits[65], qubits[151], qubits[152]; -ccx qubits[64], qubits[150], qubits[151]; -ccx qubits[63], qubits[149], qubits[150]; -ccx qubits[62], qubits[148], qubits[149]; -ccx qubits[61], qubits[147], qubits[148]; -ccx qubits[60], qubits[146], qubits[147]; -ccx qubits[59], qubits[145], qubits[146]; -ccx qubits[58], qubits[144], qubits[145]; -ccx qubits[57], qubits[143], qubits[144]; -ccx qubits[56], qubits[142], qubits[143]; -ccx qubits[55], qubits[141], qubits[142]; -ccx qubits[54], qubits[140], qubits[141]; -ccx qubits[53], qubits[139], qubits[140]; -ccx qubits[52], qubits[138], qubits[139]; -ccx qubits[51], qubits[137], qubits[138]; -ccx qubits[50], qubits[136], qubits[137]; -ccx qubits[49], qubits[135], qubits[136]; -ccx qubits[48], qubits[134], qubits[135]; -ccx qubits[47], qubits[133], qubits[134]; -ccx qubits[46], qubits[132], qubits[133]; -ccx qubits[45], qubits[131], qubits[132]; -ccx qubits[44], qubits[130], qubits[131]; -ccx qubits[43], qubits[129], qubits[130]; -ccx qubits[42], qubits[128], qubits[129]; -ccx qubits[41], qubits[127], qubits[128]; -ccx qubits[40], qubits[126], qubits[127]; -ccx qubits[39], qubits[125], qubits[126]; -ccx qubits[38], qubits[124], qubits[125]; -ccx qubits[37], qubits[123], qubits[124]; -ccx qubits[36], qubits[122], qubits[123]; -ccx qubits[35], qubits[121], qubits[122]; -ccx qubits[34], qubits[120], qubits[121]; -ccx qubits[33], qubits[119], qubits[120]; -ccx qubits[32], qubits[118], qubits[119]; -ccx qubits[31], qubits[117], qubits[118]; -ccx qubits[30], qubits[116], qubits[117]; -ccx qubits[29], qubits[115], qubits[116]; -ccx qubits[28], qubits[114], qubits[115]; -ccx qubits[27], qubits[113], qubits[114]; -ccx qubits[26], qubits[112], qubits[113]; -ccx qubits[25], qubits[111], qubits[112]; -ccx qubits[24], qubits[110], qubits[111]; -ccx qubits[23], qubits[109], qubits[110]; -ccx qubits[22], qubits[108], qubits[109]; -ccx qubits[21], qubits[107], qubits[108]; -ccx qubits[20], qubits[106], qubits[107]; -ccx qubits[19], qubits[105], qubits[106]; -ccx qubits[18], qubits[104], qubits[105]; -ccx qubits[17], qubits[103], qubits[104]; -ccx qubits[16], qubits[102], qubits[103]; -ccx qubits[15], qubits[101], qubits[102]; -ccx qubits[14], qubits[100], qubits[101]; -ccx qubits[13], qubits[99], qubits[100]; -ccx qubits[12], qubits[98], qubits[99]; -ccx qubits[11], qubits[97], qubits[98]; -ccx qubits[10], qubits[96], qubits[97]; -ccx qubits[9], qubits[95], qubits[96]; -ccx qubits[8], qubits[94], qubits[95]; -ccx qubits[7], qubits[93], qubits[94]; -ccx qubits[6], qubits[92], qubits[93]; -ccx qubits[5], qubits[91], qubits[92]; -ccx qubits[4], qubits[90], qubits[91]; -ccx qubits[3], qubits[89], qubits[90]; -ccx qubits[2], qubits[88], qubits[89]; -ccx qubits[0], qubits[1], qubits[88]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +cz qubits[170], qubits[171]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -263,521 +263,521 @@ x qubits[84]; x qubits[86]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; -ccx qubits[0], qubits[1], qubits[88]; -ccx qubits[2], qubits[88], qubits[89]; -ccx qubits[3], qubits[89], qubits[90]; -ccx qubits[4], qubits[90], qubits[91]; -ccx qubits[5], qubits[91], qubits[92]; -ccx qubits[6], qubits[92], qubits[93]; -ccx qubits[7], qubits[93], qubits[94]; -ccx qubits[8], qubits[94], qubits[95]; -ccx qubits[9], qubits[95], qubits[96]; -ccx qubits[10], qubits[96], qubits[97]; -ccx qubits[11], qubits[97], qubits[98]; -ccx qubits[12], qubits[98], qubits[99]; -ccx qubits[13], qubits[99], qubits[100]; -ccx qubits[14], qubits[100], qubits[101]; -ccx qubits[15], qubits[101], qubits[102]; -ccx qubits[16], qubits[102], qubits[103]; -ccx qubits[17], qubits[103], qubits[104]; -ccx qubits[18], qubits[104], qubits[105]; -ccx qubits[19], qubits[105], qubits[106]; -ccx qubits[20], qubits[106], qubits[107]; -ccx qubits[21], qubits[107], qubits[108]; -ccx qubits[22], qubits[108], qubits[109]; -ccx qubits[23], qubits[109], qubits[110]; -ccx qubits[24], qubits[110], qubits[111]; -ccx qubits[25], qubits[111], qubits[112]; -ccx qubits[26], qubits[112], qubits[113]; -ccx qubits[27], qubits[113], qubits[114]; -ccx qubits[28], qubits[114], qubits[115]; -ccx qubits[29], qubits[115], qubits[116]; -ccx qubits[30], qubits[116], qubits[117]; -ccx qubits[31], qubits[117], qubits[118]; -ccx qubits[32], qubits[118], qubits[119]; -ccx qubits[33], qubits[119], qubits[120]; -ccx qubits[34], qubits[120], qubits[121]; -ccx qubits[35], qubits[121], qubits[122]; -ccx qubits[36], qubits[122], qubits[123]; -ccx qubits[37], qubits[123], qubits[124]; -ccx qubits[38], qubits[124], qubits[125]; -ccx qubits[39], qubits[125], qubits[126]; -ccx qubits[40], qubits[126], qubits[127]; -ccx qubits[41], qubits[127], qubits[128]; -ccx qubits[42], qubits[128], qubits[129]; -ccx qubits[43], qubits[129], qubits[130]; -ccx qubits[44], qubits[130], qubits[131]; -ccx qubits[45], qubits[131], qubits[132]; -ccx qubits[46], qubits[132], qubits[133]; -ccx qubits[47], qubits[133], qubits[134]; -ccx qubits[48], qubits[134], qubits[135]; -ccx qubits[49], qubits[135], qubits[136]; -ccx qubits[50], qubits[136], qubits[137]; -ccx qubits[51], qubits[137], qubits[138]; -ccx qubits[52], qubits[138], qubits[139]; -ccx qubits[53], qubits[139], qubits[140]; -ccx qubits[54], qubits[140], qubits[141]; -ccx qubits[55], qubits[141], qubits[142]; -ccx qubits[56], qubits[142], qubits[143]; -ccx qubits[57], qubits[143], qubits[144]; -ccx qubits[58], qubits[144], qubits[145]; -ccx qubits[59], qubits[145], qubits[146]; -ccx qubits[60], qubits[146], qubits[147]; -ccx qubits[61], qubits[147], qubits[148]; -ccx qubits[62], qubits[148], qubits[149]; -ccx qubits[63], qubits[149], qubits[150]; -ccx qubits[64], qubits[150], qubits[151]; -ccx qubits[65], qubits[151], qubits[152]; -ccx qubits[66], qubits[152], qubits[153]; -ccx qubits[67], qubits[153], qubits[154]; -ccx qubits[68], qubits[154], qubits[155]; -ccx qubits[69], qubits[155], qubits[156]; -ccx qubits[70], qubits[156], qubits[157]; -ccx qubits[71], qubits[157], qubits[158]; -ccx qubits[72], qubits[158], qubits[159]; -ccx qubits[73], qubits[159], qubits[160]; -ccx qubits[74], qubits[160], qubits[161]; -ccx qubits[75], qubits[161], qubits[162]; -ccx qubits[76], qubits[162], qubits[163]; -ccx qubits[77], qubits[163], qubits[164]; -ccx qubits[78], qubits[164], qubits[165]; -ccx qubits[79], qubits[165], qubits[166]; -ccx qubits[80], qubits[166], qubits[167]; -ccx qubits[81], qubits[167], qubits[168]; -ccx qubits[82], qubits[168], qubits[169]; -ccx qubits[83], qubits[169], qubits[170]; -ccx qubits[84], qubits[170], qubits[171]; -ccx qubits[85], qubits[171], qubits[172]; -cz qubits[172], qubits[86]; -ccx qubits[85], qubits[171], qubits[172]; -ccx qubits[84], qubits[170], qubits[171]; -ccx qubits[83], qubits[169], qubits[170]; -ccx qubits[82], qubits[168], qubits[169]; -ccx qubits[81], qubits[167], qubits[168]; -ccx qubits[80], qubits[166], qubits[167]; -ccx qubits[79], qubits[165], qubits[166]; -ccx qubits[78], qubits[164], qubits[165]; -ccx qubits[77], qubits[163], qubits[164]; -ccx qubits[76], qubits[162], qubits[163]; -ccx qubits[75], qubits[161], qubits[162]; -ccx qubits[74], qubits[160], qubits[161]; -ccx qubits[73], qubits[159], qubits[160]; -ccx qubits[72], qubits[158], qubits[159]; -ccx qubits[71], qubits[157], qubits[158]; -ccx qubits[70], qubits[156], qubits[157]; -ccx qubits[69], qubits[155], qubits[156]; -ccx qubits[68], qubits[154], qubits[155]; -ccx qubits[67], qubits[153], qubits[154]; -ccx qubits[66], qubits[152], qubits[153]; -ccx qubits[65], qubits[151], qubits[152]; -ccx qubits[64], qubits[150], qubits[151]; -ccx qubits[63], qubits[149], qubits[150]; -ccx qubits[62], qubits[148], qubits[149]; -ccx qubits[61], qubits[147], qubits[148]; -ccx qubits[60], qubits[146], qubits[147]; -ccx qubits[59], qubits[145], qubits[146]; -ccx qubits[58], qubits[144], qubits[145]; -ccx qubits[57], qubits[143], qubits[144]; -ccx qubits[56], qubits[142], qubits[143]; -ccx qubits[55], qubits[141], qubits[142]; -ccx qubits[54], qubits[140], qubits[141]; -ccx qubits[53], qubits[139], qubits[140]; -ccx qubits[52], qubits[138], qubits[139]; -ccx qubits[51], qubits[137], qubits[138]; -ccx qubits[50], qubits[136], qubits[137]; -ccx qubits[49], qubits[135], qubits[136]; -ccx qubits[48], qubits[134], qubits[135]; -ccx qubits[47], qubits[133], qubits[134]; -ccx qubits[46], qubits[132], qubits[133]; -ccx qubits[45], qubits[131], qubits[132]; -ccx qubits[44], qubits[130], qubits[131]; -ccx qubits[43], qubits[129], qubits[130]; -ccx qubits[42], qubits[128], qubits[129]; -ccx qubits[41], qubits[127], qubits[128]; -ccx qubits[40], qubits[126], qubits[127]; -ccx qubits[39], qubits[125], qubits[126]; -ccx qubits[38], qubits[124], qubits[125]; -ccx qubits[37], qubits[123], qubits[124]; -ccx qubits[36], qubits[122], qubits[123]; -ccx qubits[35], qubits[121], qubits[122]; -ccx qubits[34], qubits[120], qubits[121]; -ccx qubits[33], qubits[119], qubits[120]; -ccx qubits[32], qubits[118], qubits[119]; -ccx qubits[31], qubits[117], qubits[118]; -ccx qubits[30], qubits[116], qubits[117]; -ccx qubits[29], qubits[115], qubits[116]; -ccx qubits[28], qubits[114], qubits[115]; -ccx qubits[27], qubits[113], qubits[114]; -ccx qubits[26], qubits[112], qubits[113]; -ccx qubits[25], qubits[111], qubits[112]; -ccx qubits[24], qubits[110], qubits[111]; -ccx qubits[23], qubits[109], qubits[110]; -ccx qubits[22], qubits[108], qubits[109]; -ccx qubits[21], qubits[107], qubits[108]; -ccx qubits[20], qubits[106], qubits[107]; -ccx qubits[19], qubits[105], qubits[106]; -ccx qubits[18], qubits[104], qubits[105]; -ccx qubits[17], qubits[103], qubits[104]; -ccx qubits[16], qubits[102], qubits[103]; -ccx qubits[15], qubits[101], qubits[102]; -ccx qubits[14], qubits[100], qubits[101]; -ccx qubits[13], qubits[99], qubits[100]; -ccx qubits[12], qubits[98], qubits[99]; -ccx qubits[11], qubits[97], qubits[98]; -ccx qubits[10], qubits[96], qubits[97]; -ccx qubits[9], qubits[95], qubits[96]; -ccx qubits[8], qubits[94], qubits[95]; -ccx qubits[7], qubits[93], qubits[94]; -ccx qubits[6], qubits[92], qubits[93]; -ccx qubits[5], qubits[91], qubits[92]; -ccx qubits[4], qubits[90], qubits[91]; -ccx qubits[3], qubits[89], qubits[90]; -ccx qubits[2], qubits[88], qubits[89]; -ccx qubits[0], qubits[1], qubits[88]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +cz qubits[170], qubits[171]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; +x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; -z qubits[87]; +h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +z qubits[172]; diff --git a/benchmarks/all/OEGrover/87/post.hsl b/benchmarks/all/OEGrover/87/post.hsl index 1f5c85854..d89434c9e 100644 --- a/benchmarks/all/OEGrover/87/post.hsl +++ b/benchmarks/all/OEGrover/87/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 42 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/87/post.lsta b/benchmarks/all/OEGrover/87/post.lsta deleted file mode 100644 index ce6a9de9b..000000000 --- a/benchmarks/all/OEGrover/87/post.lsta +++ /dev/null @@ -1,442 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 176) -> 173 -[88,1](175, 177) -> 174 -[89,1](178, 178) -> 175 -[89,1](179, 178) -> 176 -[89,1](180, 178) -> 177 -[90,1](181, 181) -> 178 -[90,1](182, 181) -> 179 -[90,1](183, 181) -> 180 -[91,1](184, 184) -> 181 -[91,1](185, 184) -> 182 -[91,1](186, 184) -> 183 -[92,1](187, 187) -> 184 -[92,1](188, 187) -> 185 -[92,1](189, 187) -> 186 -[93,1](190, 190) -> 187 -[93,1](191, 190) -> 188 -[93,1](192, 190) -> 189 -[94,1](193, 193) -> 190 -[94,1](194, 193) -> 191 -[94,1](195, 193) -> 192 -[95,1](196, 196) -> 193 -[95,1](197, 196) -> 194 -[95,1](198, 196) -> 195 -[96,1](199, 199) -> 196 -[96,1](200, 199) -> 197 -[96,1](201, 199) -> 198 -[97,1](202, 202) -> 199 -[97,1](203, 202) -> 200 -[97,1](204, 202) -> 201 -[98,1](205, 205) -> 202 -[98,1](206, 205) -> 203 -[98,1](207, 205) -> 204 -[99,1](208, 208) -> 205 -[99,1](209, 208) -> 206 -[99,1](210, 208) -> 207 -[100,1](211, 211) -> 208 -[100,1](212, 211) -> 209 -[100,1](213, 211) -> 210 -[101,1](214, 214) -> 211 -[101,1](215, 214) -> 212 -[101,1](216, 214) -> 213 -[102,1](217, 217) -> 214 -[102,1](218, 217) -> 215 -[102,1](219, 217) -> 216 -[103,1](220, 220) -> 217 -[103,1](221, 220) -> 218 -[103,1](222, 220) -> 219 -[104,1](223, 223) -> 220 -[104,1](224, 223) -> 221 -[104,1](225, 223) -> 222 -[105,1](226, 226) -> 223 -[105,1](227, 226) -> 224 -[105,1](228, 226) -> 225 -[106,1](229, 229) -> 226 -[106,1](230, 229) -> 227 -[106,1](231, 229) -> 228 -[107,1](232, 232) -> 229 -[107,1](233, 232) -> 230 -[107,1](234, 232) -> 231 -[108,1](235, 235) -> 232 -[108,1](236, 235) -> 233 -[108,1](237, 235) -> 234 -[109,1](238, 238) -> 235 -[109,1](239, 238) -> 236 -[109,1](240, 238) -> 237 -[110,1](241, 241) -> 238 -[110,1](242, 241) -> 239 -[110,1](243, 241) -> 240 -[111,1](244, 244) -> 241 -[111,1](245, 244) -> 242 -[111,1](246, 244) -> 243 -[112,1](247, 247) -> 244 -[112,1](248, 247) -> 245 -[112,1](249, 247) -> 246 -[113,1](250, 250) -> 247 -[113,1](251, 250) -> 248 -[113,1](252, 250) -> 249 -[114,1](253, 253) -> 250 -[114,1](254, 253) -> 251 -[114,1](255, 253) -> 252 -[115,1](256, 256) -> 253 -[115,1](257, 256) -> 254 -[115,1](258, 256) -> 255 -[116,1](259, 259) -> 256 -[116,1](260, 259) -> 257 -[116,1](261, 259) -> 258 -[117,1](262, 262) -> 259 -[117,1](263, 262) -> 260 -[117,1](264, 262) -> 261 -[118,1](265, 265) -> 262 -[118,1](266, 265) -> 263 -[118,1](267, 265) -> 264 -[119,1](268, 268) -> 265 -[119,1](269, 268) -> 266 -[119,1](270, 268) -> 267 -[120,1](271, 271) -> 268 -[120,1](272, 271) -> 269 -[120,1](273, 271) -> 270 -[121,1](274, 274) -> 271 -[121,1](275, 274) -> 272 -[121,1](276, 274) -> 273 -[122,1](277, 277) -> 274 -[122,1](278, 277) -> 275 -[122,1](279, 277) -> 276 -[123,1](280, 280) -> 277 -[123,1](281, 280) -> 278 -[123,1](282, 280) -> 279 -[124,1](283, 283) -> 280 -[124,1](284, 283) -> 281 -[124,1](285, 283) -> 282 -[125,1](286, 286) -> 283 -[125,1](287, 286) -> 284 -[125,1](288, 286) -> 285 -[126,1](289, 289) -> 286 -[126,1](290, 289) -> 287 -[126,1](291, 289) -> 288 -[127,1](292, 292) -> 289 -[127,1](293, 292) -> 290 -[127,1](294, 292) -> 291 -[128,1](295, 295) -> 292 -[128,1](296, 295) -> 293 -[128,1](297, 295) -> 294 -[129,1](298, 298) -> 295 -[129,1](299, 298) -> 296 -[129,1](300, 298) -> 297 -[130,1](301, 301) -> 298 -[130,1](302, 301) -> 299 -[130,1](303, 301) -> 300 -[131,1](304, 304) -> 301 -[131,1](305, 304) -> 302 -[131,1](306, 304) -> 303 -[132,1](307, 307) -> 304 -[132,1](308, 307) -> 305 -[132,1](309, 307) -> 306 -[133,1](310, 310) -> 307 -[133,1](311, 310) -> 308 -[133,1](312, 310) -> 309 -[134,1](313, 313) -> 310 -[134,1](314, 313) -> 311 -[134,1](315, 313) -> 312 -[135,1](316, 316) -> 313 -[135,1](317, 316) -> 314 -[135,1](318, 316) -> 315 -[136,1](319, 319) -> 316 -[136,1](320, 319) -> 317 -[136,1](321, 319) -> 318 -[137,1](322, 322) -> 319 -[137,1](323, 322) -> 320 -[137,1](324, 322) -> 321 -[138,1](325, 325) -> 322 -[138,1](326, 325) -> 323 -[138,1](327, 325) -> 324 -[139,1](328, 328) -> 325 -[139,1](329, 328) -> 326 -[139,1](330, 328) -> 327 -[140,1](331, 331) -> 328 -[140,1](332, 331) -> 329 -[140,1](333, 331) -> 330 -[141,1](334, 334) -> 331 -[141,1](335, 334) -> 332 -[141,1](336, 334) -> 333 -[142,1](337, 337) -> 334 -[142,1](338, 337) -> 335 -[142,1](339, 337) -> 336 -[143,1](340, 340) -> 337 -[143,1](341, 340) -> 338 -[143,1](342, 340) -> 339 -[144,1](343, 343) -> 340 -[144,1](344, 343) -> 341 -[144,1](345, 343) -> 342 -[145,1](346, 346) -> 343 -[145,1](347, 346) -> 344 -[145,1](348, 346) -> 345 -[146,1](349, 349) -> 346 -[146,1](350, 349) -> 347 -[146,1](351, 349) -> 348 -[147,1](352, 352) -> 349 -[147,1](353, 352) -> 350 -[147,1](354, 352) -> 351 -[148,1](355, 355) -> 352 -[148,1](356, 355) -> 353 -[148,1](357, 355) -> 354 -[149,1](358, 358) -> 355 -[149,1](359, 358) -> 356 -[149,1](360, 358) -> 357 -[150,1](361, 361) -> 358 -[150,1](362, 361) -> 359 -[150,1](363, 361) -> 360 -[151,1](364, 364) -> 361 -[151,1](365, 364) -> 362 -[151,1](366, 364) -> 363 -[152,1](367, 367) -> 364 -[152,1](368, 367) -> 365 -[152,1](369, 367) -> 366 -[153,1](370, 370) -> 367 -[153,1](371, 370) -> 368 -[153,1](372, 370) -> 369 -[154,1](373, 373) -> 370 -[154,1](374, 373) -> 371 -[154,1](375, 373) -> 372 -[155,1](376, 376) -> 373 -[155,1](377, 376) -> 374 -[155,1](378, 376) -> 375 -[156,1](379, 379) -> 376 -[156,1](380, 379) -> 377 -[156,1](381, 379) -> 378 -[157,1](382, 382) -> 379 -[157,1](383, 382) -> 380 -[157,1](384, 382) -> 381 -[158,1](385, 385) -> 382 -[158,1](386, 385) -> 383 -[158,1](387, 385) -> 384 -[159,1](388, 388) -> 385 -[159,1](389, 388) -> 386 -[159,1](390, 388) -> 387 -[160,1](391, 391) -> 388 -[160,1](392, 391) -> 389 -[160,1](393, 391) -> 390 -[161,1](394, 394) -> 391 -[161,1](395, 394) -> 392 -[161,1](396, 394) -> 393 -[162,1](397, 397) -> 394 -[162,1](398, 397) -> 395 -[162,1](399, 397) -> 396 -[163,1](400, 400) -> 397 -[163,1](401, 400) -> 398 -[163,1](402, 400) -> 399 -[164,1](403, 403) -> 400 -[164,1](404, 403) -> 401 -[164,1](405, 403) -> 402 -[165,1](406, 406) -> 403 -[165,1](407, 406) -> 404 -[165,1](408, 406) -> 405 -[166,1](409, 409) -> 406 -[166,1](410, 409) -> 407 -[166,1](411, 409) -> 408 -[167,1](412, 412) -> 409 -[167,1](413, 412) -> 410 -[167,1](414, 412) -> 411 -[168,1](415, 415) -> 412 -[168,1](416, 415) -> 413 -[168,1](417, 415) -> 414 -[169,1](418, 418) -> 415 -[169,1](419, 418) -> 416 -[169,1](420, 418) -> 417 -[170,1](421, 421) -> 418 -[170,1](422, 421) -> 419 -[170,1](423, 421) -> 420 -[171,1](424, 424) -> 421 -[171,1](425, 424) -> 422 -[171,1](426, 424) -> 423 -[172,1](427, 427) -> 424 -[172,1](428, 427) -> 425 -[172,1](429, 427) -> 426 -[173,1](430, 430) -> 427 -[173,1](431, 430) -> 428 -[173,1](432, 430) -> 429 -[174,1](433, 433) -> 430 -[174,1](434, 433) -> 431 -[174,1](435, 433) -> 432 -[p1,1] -> 433 -[p2,1] -> 434 -[p3,1] -> 435 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/87/pre.hsl b/benchmarks/all/OEGrover/87/pre.hsl index 64d12b1d8..34d18f43e 100644 --- a/benchmarks/all/OEGrover/87/pre.hsl +++ b/benchmarks/all/OEGrover/87/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 42 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 154742504910672534362390527 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/87/pre.lsta b/benchmarks/all/OEGrover/87/pre.lsta deleted file mode 100644 index 2550f370a..000000000 --- a/benchmarks/all/OEGrover/87/pre.lsta +++ /dev/null @@ -1,446 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 176) -> 173 -[88,1](175, 177) -> 174 -[89,1](178, 178) -> 175 -[89,1](179, 178) -> 176 -[89,1](180, 178) -> 177 -[90,1](181, 181) -> 178 -[90,1](182, 181) -> 179 -[90,1](183, 181) -> 180 -[91,1](184, 184) -> 181 -[91,1](185, 184) -> 182 -[91,1](186, 184) -> 183 -[92,1](187, 187) -> 184 -[92,1](188, 187) -> 185 -[92,1](189, 187) -> 186 -[93,1](190, 190) -> 187 -[93,1](191, 190) -> 188 -[93,1](192, 190) -> 189 -[94,1](193, 193) -> 190 -[94,1](194, 193) -> 191 -[94,1](195, 193) -> 192 -[95,1](196, 196) -> 193 -[95,1](197, 196) -> 194 -[95,1](198, 196) -> 195 -[96,1](199, 199) -> 196 -[96,1](200, 199) -> 197 -[96,1](201, 199) -> 198 -[97,1](202, 202) -> 199 -[97,1](203, 202) -> 200 -[97,1](204, 202) -> 201 -[98,1](205, 205) -> 202 -[98,1](206, 205) -> 203 -[98,1](207, 205) -> 204 -[99,1](208, 208) -> 205 -[99,1](209, 208) -> 206 -[99,1](210, 208) -> 207 -[100,1](211, 211) -> 208 -[100,1](212, 211) -> 209 -[100,1](213, 211) -> 210 -[101,1](214, 214) -> 211 -[101,1](215, 214) -> 212 -[101,1](216, 214) -> 213 -[102,1](217, 217) -> 214 -[102,1](218, 217) -> 215 -[102,1](219, 217) -> 216 -[103,1](220, 220) -> 217 -[103,1](221, 220) -> 218 -[103,1](222, 220) -> 219 -[104,1](223, 223) -> 220 -[104,1](224, 223) -> 221 -[104,1](225, 223) -> 222 -[105,1](226, 226) -> 223 -[105,1](227, 226) -> 224 -[105,1](228, 226) -> 225 -[106,1](229, 229) -> 226 -[106,1](230, 229) -> 227 -[106,1](231, 229) -> 228 -[107,1](232, 232) -> 229 -[107,1](233, 232) -> 230 -[107,1](234, 232) -> 231 -[108,1](235, 235) -> 232 -[108,1](236, 235) -> 233 -[108,1](237, 235) -> 234 -[109,1](238, 238) -> 235 -[109,1](239, 238) -> 236 -[109,1](240, 238) -> 237 -[110,1](241, 241) -> 238 -[110,1](242, 241) -> 239 -[110,1](243, 241) -> 240 -[111,1](244, 244) -> 241 -[111,1](245, 244) -> 242 -[111,1](246, 244) -> 243 -[112,1](247, 247) -> 244 -[112,1](248, 247) -> 245 -[112,1](249, 247) -> 246 -[113,1](250, 250) -> 247 -[113,1](251, 250) -> 248 -[113,1](252, 250) -> 249 -[114,1](253, 253) -> 250 -[114,1](254, 253) -> 251 -[114,1](255, 253) -> 252 -[115,1](256, 256) -> 253 -[115,1](257, 256) -> 254 -[115,1](258, 256) -> 255 -[116,1](259, 259) -> 256 -[116,1](260, 259) -> 257 -[116,1](261, 259) -> 258 -[117,1](262, 262) -> 259 -[117,1](263, 262) -> 260 -[117,1](264, 262) -> 261 -[118,1](265, 265) -> 262 -[118,1](266, 265) -> 263 -[118,1](267, 265) -> 264 -[119,1](268, 268) -> 265 -[119,1](269, 268) -> 266 -[119,1](270, 268) -> 267 -[120,1](271, 271) -> 268 -[120,1](272, 271) -> 269 -[120,1](273, 271) -> 270 -[121,1](274, 274) -> 271 -[121,1](275, 274) -> 272 -[121,1](276, 274) -> 273 -[122,1](277, 277) -> 274 -[122,1](278, 277) -> 275 -[122,1](279, 277) -> 276 -[123,1](280, 280) -> 277 -[123,1](281, 280) -> 278 -[123,1](282, 280) -> 279 -[124,1](283, 283) -> 280 -[124,1](284, 283) -> 281 -[124,1](285, 283) -> 282 -[125,1](286, 286) -> 283 -[125,1](287, 286) -> 284 -[125,1](288, 286) -> 285 -[126,1](289, 289) -> 286 -[126,1](290, 289) -> 287 -[126,1](291, 289) -> 288 -[127,1](292, 292) -> 289 -[127,1](293, 292) -> 290 -[127,1](294, 292) -> 291 -[128,1](295, 295) -> 292 -[128,1](296, 295) -> 293 -[128,1](297, 295) -> 294 -[129,1](298, 298) -> 295 -[129,1](299, 298) -> 296 -[129,1](300, 298) -> 297 -[130,1](301, 301) -> 298 -[130,1](302, 301) -> 299 -[130,1](303, 301) -> 300 -[131,1](304, 304) -> 301 -[131,1](305, 304) -> 302 -[131,1](306, 304) -> 303 -[132,1](307, 307) -> 304 -[132,1](308, 307) -> 305 -[132,1](309, 307) -> 306 -[133,1](310, 310) -> 307 -[133,1](311, 310) -> 308 -[133,1](312, 310) -> 309 -[134,1](313, 313) -> 310 -[134,1](314, 313) -> 311 -[134,1](315, 313) -> 312 -[135,1](316, 316) -> 313 -[135,1](317, 316) -> 314 -[135,1](318, 316) -> 315 -[136,1](319, 319) -> 316 -[136,1](320, 319) -> 317 -[136,1](321, 319) -> 318 -[137,1](322, 322) -> 319 -[137,1](323, 322) -> 320 -[137,1](324, 322) -> 321 -[138,1](325, 325) -> 322 -[138,1](326, 325) -> 323 -[138,1](327, 325) -> 324 -[139,1](328, 328) -> 325 -[139,1](329, 328) -> 326 -[139,1](330, 328) -> 327 -[140,1](331, 331) -> 328 -[140,1](332, 331) -> 329 -[140,1](333, 331) -> 330 -[141,1](334, 334) -> 331 -[141,1](335, 334) -> 332 -[141,1](336, 334) -> 333 -[142,1](337, 337) -> 334 -[142,1](338, 337) -> 335 -[142,1](339, 337) -> 336 -[143,1](340, 340) -> 337 -[143,1](341, 340) -> 338 -[143,1](342, 340) -> 339 -[144,1](343, 343) -> 340 -[144,1](344, 343) -> 341 -[144,1](345, 343) -> 342 -[145,1](346, 346) -> 343 -[145,1](347, 346) -> 344 -[145,1](348, 346) -> 345 -[146,1](349, 349) -> 346 -[146,1](350, 349) -> 347 -[146,1](351, 349) -> 348 -[147,1](352, 352) -> 349 -[147,1](353, 352) -> 350 -[147,1](354, 352) -> 351 -[148,1](355, 355) -> 352 -[148,1](356, 355) -> 353 -[148,1](357, 355) -> 354 -[149,1](358, 358) -> 355 -[149,1](359, 358) -> 356 -[149,1](360, 358) -> 357 -[150,1](361, 361) -> 358 -[150,1](362, 361) -> 359 -[150,1](363, 361) -> 360 -[151,1](364, 364) -> 361 -[151,1](365, 364) -> 362 -[151,1](366, 364) -> 363 -[152,1](367, 367) -> 364 -[152,1](368, 367) -> 365 -[152,1](369, 367) -> 366 -[153,1](370, 370) -> 367 -[153,1](371, 370) -> 368 -[153,1](372, 370) -> 369 -[154,1](373, 373) -> 370 -[154,1](374, 373) -> 371 -[154,1](375, 373) -> 372 -[155,1](376, 376) -> 373 -[155,1](377, 376) -> 374 -[155,1](378, 376) -> 375 -[156,1](379, 379) -> 376 -[156,1](380, 379) -> 377 -[156,1](381, 379) -> 378 -[157,1](382, 382) -> 379 -[157,1](383, 382) -> 380 -[157,1](384, 382) -> 381 -[158,1](385, 385) -> 382 -[158,1](386, 385) -> 383 -[158,1](387, 385) -> 384 -[159,1](388, 388) -> 385 -[159,1](389, 388) -> 386 -[159,1](390, 388) -> 387 -[160,1](391, 391) -> 388 -[160,1](392, 391) -> 389 -[160,1](393, 391) -> 390 -[161,1](394, 394) -> 391 -[161,1](395, 394) -> 392 -[161,1](396, 394) -> 393 -[162,1](397, 397) -> 394 -[162,1](398, 397) -> 395 -[162,1](399, 397) -> 396 -[163,1](400, 400) -> 397 -[163,1](401, 400) -> 398 -[163,1](402, 400) -> 399 -[164,1](403, 403) -> 400 -[164,1](404, 403) -> 401 -[164,1](405, 403) -> 402 -[165,1](406, 406) -> 403 -[165,1](407, 406) -> 404 -[165,1](408, 406) -> 405 -[166,1](409, 409) -> 406 -[166,1](410, 409) -> 407 -[166,1](411, 409) -> 408 -[167,1](412, 412) -> 409 -[167,1](413, 412) -> 410 -[167,1](414, 412) -> 411 -[168,1](415, 415) -> 412 -[168,1](416, 415) -> 413 -[168,1](417, 415) -> 414 -[169,1](418, 418) -> 415 -[169,1](419, 418) -> 416 -[169,1](420, 418) -> 417 -[170,1](421, 421) -> 418 -[170,1](422, 421) -> 419 -[170,1](423, 421) -> 420 -[171,1](424, 424) -> 421 -[171,1](425, 424) -> 422 -[171,1](426, 424) -> 423 -[172,1](427, 427) -> 424 -[172,1](428, 427) -> 425 -[172,1](429, 427) -> 426 -[173,1](430, 430) -> 427 -[173,1](431, 430) -> 428 -[173,1](432, 430) -> 429 -[174,1](433, 433) -> 430 -[174,1](434, 433) -> 431 -[174,1](435, 433) -> 432 -[c0,1] -> 433 -[a,1] -> 434 -[b,1] -> 435 -Constraints -154742504910672534362390527 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/88/circuit.qasm b/benchmarks/all/OEGrover/88/circuit.qasm index 31e980627..1480d298e 100644 --- a/benchmarks/all/OEGrover/88/circuit.qasm +++ b/benchmarks/all/OEGrover/88/circuit.qasm @@ -1,224 +1,224 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[176]; +qreg qubits[175]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -ccx qubits[0], qubits[1], qubits[89]; -ccx qubits[2], qubits[89], qubits[90]; -ccx qubits[3], qubits[90], qubits[91]; -ccx qubits[4], qubits[91], qubits[92]; -ccx qubits[5], qubits[92], qubits[93]; -ccx qubits[6], qubits[93], qubits[94]; -ccx qubits[7], qubits[94], qubits[95]; -ccx qubits[8], qubits[95], qubits[96]; -ccx qubits[9], qubits[96], qubits[97]; -ccx qubits[10], qubits[97], qubits[98]; -ccx qubits[11], qubits[98], qubits[99]; -ccx qubits[12], qubits[99], qubits[100]; -ccx qubits[13], qubits[100], qubits[101]; -ccx qubits[14], qubits[101], qubits[102]; -ccx qubits[15], qubits[102], qubits[103]; -ccx qubits[16], qubits[103], qubits[104]; -ccx qubits[17], qubits[104], qubits[105]; -ccx qubits[18], qubits[105], qubits[106]; -ccx qubits[19], qubits[106], qubits[107]; -ccx qubits[20], qubits[107], qubits[108]; -ccx qubits[21], qubits[108], qubits[109]; -ccx qubits[22], qubits[109], qubits[110]; -ccx qubits[23], qubits[110], qubits[111]; -ccx qubits[24], qubits[111], qubits[112]; -ccx qubits[25], qubits[112], qubits[113]; -ccx qubits[26], qubits[113], qubits[114]; -ccx qubits[27], qubits[114], qubits[115]; -ccx qubits[28], qubits[115], qubits[116]; -ccx qubits[29], qubits[116], qubits[117]; -ccx qubits[30], qubits[117], qubits[118]; -ccx qubits[31], qubits[118], qubits[119]; -ccx qubits[32], qubits[119], qubits[120]; -ccx qubits[33], qubits[120], qubits[121]; -ccx qubits[34], qubits[121], qubits[122]; -ccx qubits[35], qubits[122], qubits[123]; -ccx qubits[36], qubits[123], qubits[124]; -ccx qubits[37], qubits[124], qubits[125]; -ccx qubits[38], qubits[125], qubits[126]; -ccx qubits[39], qubits[126], qubits[127]; -ccx qubits[40], qubits[127], qubits[128]; -ccx qubits[41], qubits[128], qubits[129]; -ccx qubits[42], qubits[129], qubits[130]; -ccx qubits[43], qubits[130], qubits[131]; -ccx qubits[44], qubits[131], qubits[132]; -ccx qubits[45], qubits[132], qubits[133]; -ccx qubits[46], qubits[133], qubits[134]; -ccx qubits[47], qubits[134], qubits[135]; -ccx qubits[48], qubits[135], qubits[136]; -ccx qubits[49], qubits[136], qubits[137]; -ccx qubits[50], qubits[137], qubits[138]; -ccx qubits[51], qubits[138], qubits[139]; -ccx qubits[52], qubits[139], qubits[140]; -ccx qubits[53], qubits[140], qubits[141]; -ccx qubits[54], qubits[141], qubits[142]; -ccx qubits[55], qubits[142], qubits[143]; -ccx qubits[56], qubits[143], qubits[144]; -ccx qubits[57], qubits[144], qubits[145]; -ccx qubits[58], qubits[145], qubits[146]; -ccx qubits[59], qubits[146], qubits[147]; -ccx qubits[60], qubits[147], qubits[148]; -ccx qubits[61], qubits[148], qubits[149]; -ccx qubits[62], qubits[149], qubits[150]; -ccx qubits[63], qubits[150], qubits[151]; -ccx qubits[64], qubits[151], qubits[152]; -ccx qubits[65], qubits[152], qubits[153]; -ccx qubits[66], qubits[153], qubits[154]; -ccx qubits[67], qubits[154], qubits[155]; -ccx qubits[68], qubits[155], qubits[156]; -ccx qubits[69], qubits[156], qubits[157]; -ccx qubits[70], qubits[157], qubits[158]; -ccx qubits[71], qubits[158], qubits[159]; -ccx qubits[72], qubits[159], qubits[160]; -ccx qubits[73], qubits[160], qubits[161]; -ccx qubits[74], qubits[161], qubits[162]; -ccx qubits[75], qubits[162], qubits[163]; -ccx qubits[76], qubits[163], qubits[164]; -ccx qubits[77], qubits[164], qubits[165]; -ccx qubits[78], qubits[165], qubits[166]; -ccx qubits[79], qubits[166], qubits[167]; -ccx qubits[80], qubits[167], qubits[168]; -ccx qubits[81], qubits[168], qubits[169]; -ccx qubits[82], qubits[169], qubits[170]; -ccx qubits[83], qubits[170], qubits[171]; -ccx qubits[84], qubits[171], qubits[172]; -ccx qubits[85], qubits[172], qubits[173]; -ccx qubits[86], qubits[173], qubits[174]; -cz qubits[174], qubits[87]; -ccx qubits[86], qubits[173], qubits[174]; -ccx qubits[85], qubits[172], qubits[173]; -ccx qubits[84], qubits[171], qubits[172]; -ccx qubits[83], qubits[170], qubits[171]; -ccx qubits[82], qubits[169], qubits[170]; -ccx qubits[81], qubits[168], qubits[169]; -ccx qubits[80], qubits[167], qubits[168]; -ccx qubits[79], qubits[166], qubits[167]; -ccx qubits[78], qubits[165], qubits[166]; -ccx qubits[77], qubits[164], qubits[165]; -ccx qubits[76], qubits[163], qubits[164]; -ccx qubits[75], qubits[162], qubits[163]; -ccx qubits[74], qubits[161], qubits[162]; -ccx qubits[73], qubits[160], qubits[161]; -ccx qubits[72], qubits[159], qubits[160]; -ccx qubits[71], qubits[158], qubits[159]; -ccx qubits[70], qubits[157], qubits[158]; -ccx qubits[69], qubits[156], qubits[157]; -ccx qubits[68], qubits[155], qubits[156]; -ccx qubits[67], qubits[154], qubits[155]; -ccx qubits[66], qubits[153], qubits[154]; -ccx qubits[65], qubits[152], qubits[153]; -ccx qubits[64], qubits[151], qubits[152]; -ccx qubits[63], qubits[150], qubits[151]; -ccx qubits[62], qubits[149], qubits[150]; -ccx qubits[61], qubits[148], qubits[149]; -ccx qubits[60], qubits[147], qubits[148]; -ccx qubits[59], qubits[146], qubits[147]; -ccx qubits[58], qubits[145], qubits[146]; -ccx qubits[57], qubits[144], qubits[145]; -ccx qubits[56], qubits[143], qubits[144]; -ccx qubits[55], qubits[142], qubits[143]; -ccx qubits[54], qubits[141], qubits[142]; -ccx qubits[53], qubits[140], qubits[141]; -ccx qubits[52], qubits[139], qubits[140]; -ccx qubits[51], qubits[138], qubits[139]; -ccx qubits[50], qubits[137], qubits[138]; -ccx qubits[49], qubits[136], qubits[137]; -ccx qubits[48], qubits[135], qubits[136]; -ccx qubits[47], qubits[134], qubits[135]; -ccx qubits[46], qubits[133], qubits[134]; -ccx qubits[45], qubits[132], qubits[133]; -ccx qubits[44], qubits[131], qubits[132]; -ccx qubits[43], qubits[130], qubits[131]; -ccx qubits[42], qubits[129], qubits[130]; -ccx qubits[41], qubits[128], qubits[129]; -ccx qubits[40], qubits[127], qubits[128]; -ccx qubits[39], qubits[126], qubits[127]; -ccx qubits[38], qubits[125], qubits[126]; -ccx qubits[37], qubits[124], qubits[125]; -ccx qubits[36], qubits[123], qubits[124]; -ccx qubits[35], qubits[122], qubits[123]; -ccx qubits[34], qubits[121], qubits[122]; -ccx qubits[33], qubits[120], qubits[121]; -ccx qubits[32], qubits[119], qubits[120]; -ccx qubits[31], qubits[118], qubits[119]; -ccx qubits[30], qubits[117], qubits[118]; -ccx qubits[29], qubits[116], qubits[117]; -ccx qubits[28], qubits[115], qubits[116]; -ccx qubits[27], qubits[114], qubits[115]; -ccx qubits[26], qubits[113], qubits[114]; -ccx qubits[25], qubits[112], qubits[113]; -ccx qubits[24], qubits[111], qubits[112]; -ccx qubits[23], qubits[110], qubits[111]; -ccx qubits[22], qubits[109], qubits[110]; -ccx qubits[21], qubits[108], qubits[109]; -ccx qubits[20], qubits[107], qubits[108]; -ccx qubits[19], qubits[106], qubits[107]; -ccx qubits[18], qubits[105], qubits[106]; -ccx qubits[17], qubits[104], qubits[105]; -ccx qubits[16], qubits[103], qubits[104]; -ccx qubits[15], qubits[102], qubits[103]; -ccx qubits[14], qubits[101], qubits[102]; -ccx qubits[13], qubits[100], qubits[101]; -ccx qubits[12], qubits[99], qubits[100]; -ccx qubits[11], qubits[98], qubits[99]; -ccx qubits[10], qubits[97], qubits[98]; -ccx qubits[9], qubits[96], qubits[97]; -ccx qubits[8], qubits[95], qubits[96]; -ccx qubits[7], qubits[94], qubits[95]; -ccx qubits[6], qubits[93], qubits[94]; -ccx qubits[5], qubits[92], qubits[93]; -ccx qubits[4], qubits[91], qubits[92]; -ccx qubits[3], qubits[90], qubits[91]; -ccx qubits[2], qubits[89], qubits[90]; -ccx qubits[0], qubits[1], qubits[89]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +cz qubits[172], qubits[173]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -265,527 +265,527 @@ x qubits[84]; x qubits[86]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -ccx qubits[0], qubits[1], qubits[89]; -ccx qubits[2], qubits[89], qubits[90]; -ccx qubits[3], qubits[90], qubits[91]; -ccx qubits[4], qubits[91], qubits[92]; -ccx qubits[5], qubits[92], qubits[93]; -ccx qubits[6], qubits[93], qubits[94]; -ccx qubits[7], qubits[94], qubits[95]; -ccx qubits[8], qubits[95], qubits[96]; -ccx qubits[9], qubits[96], qubits[97]; -ccx qubits[10], qubits[97], qubits[98]; -ccx qubits[11], qubits[98], qubits[99]; -ccx qubits[12], qubits[99], qubits[100]; -ccx qubits[13], qubits[100], qubits[101]; -ccx qubits[14], qubits[101], qubits[102]; -ccx qubits[15], qubits[102], qubits[103]; -ccx qubits[16], qubits[103], qubits[104]; -ccx qubits[17], qubits[104], qubits[105]; -ccx qubits[18], qubits[105], qubits[106]; -ccx qubits[19], qubits[106], qubits[107]; -ccx qubits[20], qubits[107], qubits[108]; -ccx qubits[21], qubits[108], qubits[109]; -ccx qubits[22], qubits[109], qubits[110]; -ccx qubits[23], qubits[110], qubits[111]; -ccx qubits[24], qubits[111], qubits[112]; -ccx qubits[25], qubits[112], qubits[113]; -ccx qubits[26], qubits[113], qubits[114]; -ccx qubits[27], qubits[114], qubits[115]; -ccx qubits[28], qubits[115], qubits[116]; -ccx qubits[29], qubits[116], qubits[117]; -ccx qubits[30], qubits[117], qubits[118]; -ccx qubits[31], qubits[118], qubits[119]; -ccx qubits[32], qubits[119], qubits[120]; -ccx qubits[33], qubits[120], qubits[121]; -ccx qubits[34], qubits[121], qubits[122]; -ccx qubits[35], qubits[122], qubits[123]; -ccx qubits[36], qubits[123], qubits[124]; -ccx qubits[37], qubits[124], qubits[125]; -ccx qubits[38], qubits[125], qubits[126]; -ccx qubits[39], qubits[126], qubits[127]; -ccx qubits[40], qubits[127], qubits[128]; -ccx qubits[41], qubits[128], qubits[129]; -ccx qubits[42], qubits[129], qubits[130]; -ccx qubits[43], qubits[130], qubits[131]; -ccx qubits[44], qubits[131], qubits[132]; -ccx qubits[45], qubits[132], qubits[133]; -ccx qubits[46], qubits[133], qubits[134]; -ccx qubits[47], qubits[134], qubits[135]; -ccx qubits[48], qubits[135], qubits[136]; -ccx qubits[49], qubits[136], qubits[137]; -ccx qubits[50], qubits[137], qubits[138]; -ccx qubits[51], qubits[138], qubits[139]; -ccx qubits[52], qubits[139], qubits[140]; -ccx qubits[53], qubits[140], qubits[141]; -ccx qubits[54], qubits[141], qubits[142]; -ccx qubits[55], qubits[142], qubits[143]; -ccx qubits[56], qubits[143], qubits[144]; -ccx qubits[57], qubits[144], qubits[145]; -ccx qubits[58], qubits[145], qubits[146]; -ccx qubits[59], qubits[146], qubits[147]; -ccx qubits[60], qubits[147], qubits[148]; -ccx qubits[61], qubits[148], qubits[149]; -ccx qubits[62], qubits[149], qubits[150]; -ccx qubits[63], qubits[150], qubits[151]; -ccx qubits[64], qubits[151], qubits[152]; -ccx qubits[65], qubits[152], qubits[153]; -ccx qubits[66], qubits[153], qubits[154]; -ccx qubits[67], qubits[154], qubits[155]; -ccx qubits[68], qubits[155], qubits[156]; -ccx qubits[69], qubits[156], qubits[157]; -ccx qubits[70], qubits[157], qubits[158]; -ccx qubits[71], qubits[158], qubits[159]; -ccx qubits[72], qubits[159], qubits[160]; -ccx qubits[73], qubits[160], qubits[161]; -ccx qubits[74], qubits[161], qubits[162]; -ccx qubits[75], qubits[162], qubits[163]; -ccx qubits[76], qubits[163], qubits[164]; -ccx qubits[77], qubits[164], qubits[165]; -ccx qubits[78], qubits[165], qubits[166]; -ccx qubits[79], qubits[166], qubits[167]; -ccx qubits[80], qubits[167], qubits[168]; -ccx qubits[81], qubits[168], qubits[169]; -ccx qubits[82], qubits[169], qubits[170]; -ccx qubits[83], qubits[170], qubits[171]; -ccx qubits[84], qubits[171], qubits[172]; -ccx qubits[85], qubits[172], qubits[173]; -ccx qubits[86], qubits[173], qubits[174]; -cz qubits[174], qubits[87]; -ccx qubits[86], qubits[173], qubits[174]; -ccx qubits[85], qubits[172], qubits[173]; -ccx qubits[84], qubits[171], qubits[172]; -ccx qubits[83], qubits[170], qubits[171]; -ccx qubits[82], qubits[169], qubits[170]; -ccx qubits[81], qubits[168], qubits[169]; -ccx qubits[80], qubits[167], qubits[168]; -ccx qubits[79], qubits[166], qubits[167]; -ccx qubits[78], qubits[165], qubits[166]; -ccx qubits[77], qubits[164], qubits[165]; -ccx qubits[76], qubits[163], qubits[164]; -ccx qubits[75], qubits[162], qubits[163]; -ccx qubits[74], qubits[161], qubits[162]; -ccx qubits[73], qubits[160], qubits[161]; -ccx qubits[72], qubits[159], qubits[160]; -ccx qubits[71], qubits[158], qubits[159]; -ccx qubits[70], qubits[157], qubits[158]; -ccx qubits[69], qubits[156], qubits[157]; -ccx qubits[68], qubits[155], qubits[156]; -ccx qubits[67], qubits[154], qubits[155]; -ccx qubits[66], qubits[153], qubits[154]; -ccx qubits[65], qubits[152], qubits[153]; -ccx qubits[64], qubits[151], qubits[152]; -ccx qubits[63], qubits[150], qubits[151]; -ccx qubits[62], qubits[149], qubits[150]; -ccx qubits[61], qubits[148], qubits[149]; -ccx qubits[60], qubits[147], qubits[148]; -ccx qubits[59], qubits[146], qubits[147]; -ccx qubits[58], qubits[145], qubits[146]; -ccx qubits[57], qubits[144], qubits[145]; -ccx qubits[56], qubits[143], qubits[144]; -ccx qubits[55], qubits[142], qubits[143]; -ccx qubits[54], qubits[141], qubits[142]; -ccx qubits[53], qubits[140], qubits[141]; -ccx qubits[52], qubits[139], qubits[140]; -ccx qubits[51], qubits[138], qubits[139]; -ccx qubits[50], qubits[137], qubits[138]; -ccx qubits[49], qubits[136], qubits[137]; -ccx qubits[48], qubits[135], qubits[136]; -ccx qubits[47], qubits[134], qubits[135]; -ccx qubits[46], qubits[133], qubits[134]; -ccx qubits[45], qubits[132], qubits[133]; -ccx qubits[44], qubits[131], qubits[132]; -ccx qubits[43], qubits[130], qubits[131]; -ccx qubits[42], qubits[129], qubits[130]; -ccx qubits[41], qubits[128], qubits[129]; -ccx qubits[40], qubits[127], qubits[128]; -ccx qubits[39], qubits[126], qubits[127]; -ccx qubits[38], qubits[125], qubits[126]; -ccx qubits[37], qubits[124], qubits[125]; -ccx qubits[36], qubits[123], qubits[124]; -ccx qubits[35], qubits[122], qubits[123]; -ccx qubits[34], qubits[121], qubits[122]; -ccx qubits[33], qubits[120], qubits[121]; -ccx qubits[32], qubits[119], qubits[120]; -ccx qubits[31], qubits[118], qubits[119]; -ccx qubits[30], qubits[117], qubits[118]; -ccx qubits[29], qubits[116], qubits[117]; -ccx qubits[28], qubits[115], qubits[116]; -ccx qubits[27], qubits[114], qubits[115]; -ccx qubits[26], qubits[113], qubits[114]; -ccx qubits[25], qubits[112], qubits[113]; -ccx qubits[24], qubits[111], qubits[112]; -ccx qubits[23], qubits[110], qubits[111]; -ccx qubits[22], qubits[109], qubits[110]; -ccx qubits[21], qubits[108], qubits[109]; -ccx qubits[20], qubits[107], qubits[108]; -ccx qubits[19], qubits[106], qubits[107]; -ccx qubits[18], qubits[105], qubits[106]; -ccx qubits[17], qubits[104], qubits[105]; -ccx qubits[16], qubits[103], qubits[104]; -ccx qubits[15], qubits[102], qubits[103]; -ccx qubits[14], qubits[101], qubits[102]; -ccx qubits[13], qubits[100], qubits[101]; -ccx qubits[12], qubits[99], qubits[100]; -ccx qubits[11], qubits[98], qubits[99]; -ccx qubits[10], qubits[97], qubits[98]; -ccx qubits[9], qubits[96], qubits[97]; -ccx qubits[8], qubits[95], qubits[96]; -ccx qubits[7], qubits[94], qubits[95]; -ccx qubits[6], qubits[93], qubits[94]; -ccx qubits[5], qubits[92], qubits[93]; -ccx qubits[4], qubits[91], qubits[92]; -ccx qubits[3], qubits[90], qubits[91]; -ccx qubits[2], qubits[89], qubits[90]; -ccx qubits[0], qubits[1], qubits[89]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +cz qubits[172], qubits[173]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -z qubits[88]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +z qubits[174]; diff --git a/benchmarks/all/OEGrover/88/post.hsl b/benchmarks/all/OEGrover/88/post.hsl index 34fe2b2db..3914f4b0f 100644 --- a/benchmarks/all/OEGrover/88/post.hsl +++ b/benchmarks/all/OEGrover/88/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 43 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/88/post.lsta b/benchmarks/all/OEGrover/88/post.lsta deleted file mode 100644 index 3977daffc..000000000 --- a/benchmarks/all/OEGrover/88/post.lsta +++ /dev/null @@ -1,447 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 178) -> 175 -[89,1](177, 179) -> 176 -[90,1](180, 180) -> 177 -[90,1](181, 180) -> 178 -[90,1](182, 180) -> 179 -[91,1](183, 183) -> 180 -[91,1](184, 183) -> 181 -[91,1](185, 183) -> 182 -[92,1](186, 186) -> 183 -[92,1](187, 186) -> 184 -[92,1](188, 186) -> 185 -[93,1](189, 189) -> 186 -[93,1](190, 189) -> 187 -[93,1](191, 189) -> 188 -[94,1](192, 192) -> 189 -[94,1](193, 192) -> 190 -[94,1](194, 192) -> 191 -[95,1](195, 195) -> 192 -[95,1](196, 195) -> 193 -[95,1](197, 195) -> 194 -[96,1](198, 198) -> 195 -[96,1](199, 198) -> 196 -[96,1](200, 198) -> 197 -[97,1](201, 201) -> 198 -[97,1](202, 201) -> 199 -[97,1](203, 201) -> 200 -[98,1](204, 204) -> 201 -[98,1](205, 204) -> 202 -[98,1](206, 204) -> 203 -[99,1](207, 207) -> 204 -[99,1](208, 207) -> 205 -[99,1](209, 207) -> 206 -[100,1](210, 210) -> 207 -[100,1](211, 210) -> 208 -[100,1](212, 210) -> 209 -[101,1](213, 213) -> 210 -[101,1](214, 213) -> 211 -[101,1](215, 213) -> 212 -[102,1](216, 216) -> 213 -[102,1](217, 216) -> 214 -[102,1](218, 216) -> 215 -[103,1](219, 219) -> 216 -[103,1](220, 219) -> 217 -[103,1](221, 219) -> 218 -[104,1](222, 222) -> 219 -[104,1](223, 222) -> 220 -[104,1](224, 222) -> 221 -[105,1](225, 225) -> 222 -[105,1](226, 225) -> 223 -[105,1](227, 225) -> 224 -[106,1](228, 228) -> 225 -[106,1](229, 228) -> 226 -[106,1](230, 228) -> 227 -[107,1](231, 231) -> 228 -[107,1](232, 231) -> 229 -[107,1](233, 231) -> 230 -[108,1](234, 234) -> 231 -[108,1](235, 234) -> 232 -[108,1](236, 234) -> 233 -[109,1](237, 237) -> 234 -[109,1](238, 237) -> 235 -[109,1](239, 237) -> 236 -[110,1](240, 240) -> 237 -[110,1](241, 240) -> 238 -[110,1](242, 240) -> 239 -[111,1](243, 243) -> 240 -[111,1](244, 243) -> 241 -[111,1](245, 243) -> 242 -[112,1](246, 246) -> 243 -[112,1](247, 246) -> 244 -[112,1](248, 246) -> 245 -[113,1](249, 249) -> 246 -[113,1](250, 249) -> 247 -[113,1](251, 249) -> 248 -[114,1](252, 252) -> 249 -[114,1](253, 252) -> 250 -[114,1](254, 252) -> 251 -[115,1](255, 255) -> 252 -[115,1](256, 255) -> 253 -[115,1](257, 255) -> 254 -[116,1](258, 258) -> 255 -[116,1](259, 258) -> 256 -[116,1](260, 258) -> 257 -[117,1](261, 261) -> 258 -[117,1](262, 261) -> 259 -[117,1](263, 261) -> 260 -[118,1](264, 264) -> 261 -[118,1](265, 264) -> 262 -[118,1](266, 264) -> 263 -[119,1](267, 267) -> 264 -[119,1](268, 267) -> 265 -[119,1](269, 267) -> 266 -[120,1](270, 270) -> 267 -[120,1](271, 270) -> 268 -[120,1](272, 270) -> 269 -[121,1](273, 273) -> 270 -[121,1](274, 273) -> 271 -[121,1](275, 273) -> 272 -[122,1](276, 276) -> 273 -[122,1](277, 276) -> 274 -[122,1](278, 276) -> 275 -[123,1](279, 279) -> 276 -[123,1](280, 279) -> 277 -[123,1](281, 279) -> 278 -[124,1](282, 282) -> 279 -[124,1](283, 282) -> 280 -[124,1](284, 282) -> 281 -[125,1](285, 285) -> 282 -[125,1](286, 285) -> 283 -[125,1](287, 285) -> 284 -[126,1](288, 288) -> 285 -[126,1](289, 288) -> 286 -[126,1](290, 288) -> 287 -[127,1](291, 291) -> 288 -[127,1](292, 291) -> 289 -[127,1](293, 291) -> 290 -[128,1](294, 294) -> 291 -[128,1](295, 294) -> 292 -[128,1](296, 294) -> 293 -[129,1](297, 297) -> 294 -[129,1](298, 297) -> 295 -[129,1](299, 297) -> 296 -[130,1](300, 300) -> 297 -[130,1](301, 300) -> 298 -[130,1](302, 300) -> 299 -[131,1](303, 303) -> 300 -[131,1](304, 303) -> 301 -[131,1](305, 303) -> 302 -[132,1](306, 306) -> 303 -[132,1](307, 306) -> 304 -[132,1](308, 306) -> 305 -[133,1](309, 309) -> 306 -[133,1](310, 309) -> 307 -[133,1](311, 309) -> 308 -[134,1](312, 312) -> 309 -[134,1](313, 312) -> 310 -[134,1](314, 312) -> 311 -[135,1](315, 315) -> 312 -[135,1](316, 315) -> 313 -[135,1](317, 315) -> 314 -[136,1](318, 318) -> 315 -[136,1](319, 318) -> 316 -[136,1](320, 318) -> 317 -[137,1](321, 321) -> 318 -[137,1](322, 321) -> 319 -[137,1](323, 321) -> 320 -[138,1](324, 324) -> 321 -[138,1](325, 324) -> 322 -[138,1](326, 324) -> 323 -[139,1](327, 327) -> 324 -[139,1](328, 327) -> 325 -[139,1](329, 327) -> 326 -[140,1](330, 330) -> 327 -[140,1](331, 330) -> 328 -[140,1](332, 330) -> 329 -[141,1](333, 333) -> 330 -[141,1](334, 333) -> 331 -[141,1](335, 333) -> 332 -[142,1](336, 336) -> 333 -[142,1](337, 336) -> 334 -[142,1](338, 336) -> 335 -[143,1](339, 339) -> 336 -[143,1](340, 339) -> 337 -[143,1](341, 339) -> 338 -[144,1](342, 342) -> 339 -[144,1](343, 342) -> 340 -[144,1](344, 342) -> 341 -[145,1](345, 345) -> 342 -[145,1](346, 345) -> 343 -[145,1](347, 345) -> 344 -[146,1](348, 348) -> 345 -[146,1](349, 348) -> 346 -[146,1](350, 348) -> 347 -[147,1](351, 351) -> 348 -[147,1](352, 351) -> 349 -[147,1](353, 351) -> 350 -[148,1](354, 354) -> 351 -[148,1](355, 354) -> 352 -[148,1](356, 354) -> 353 -[149,1](357, 357) -> 354 -[149,1](358, 357) -> 355 -[149,1](359, 357) -> 356 -[150,1](360, 360) -> 357 -[150,1](361, 360) -> 358 -[150,1](362, 360) -> 359 -[151,1](363, 363) -> 360 -[151,1](364, 363) -> 361 -[151,1](365, 363) -> 362 -[152,1](366, 366) -> 363 -[152,1](367, 366) -> 364 -[152,1](368, 366) -> 365 -[153,1](369, 369) -> 366 -[153,1](370, 369) -> 367 -[153,1](371, 369) -> 368 -[154,1](372, 372) -> 369 -[154,1](373, 372) -> 370 -[154,1](374, 372) -> 371 -[155,1](375, 375) -> 372 -[155,1](376, 375) -> 373 -[155,1](377, 375) -> 374 -[156,1](378, 378) -> 375 -[156,1](379, 378) -> 376 -[156,1](380, 378) -> 377 -[157,1](381, 381) -> 378 -[157,1](382, 381) -> 379 -[157,1](383, 381) -> 380 -[158,1](384, 384) -> 381 -[158,1](385, 384) -> 382 -[158,1](386, 384) -> 383 -[159,1](387, 387) -> 384 -[159,1](388, 387) -> 385 -[159,1](389, 387) -> 386 -[160,1](390, 390) -> 387 -[160,1](391, 390) -> 388 -[160,1](392, 390) -> 389 -[161,1](393, 393) -> 390 -[161,1](394, 393) -> 391 -[161,1](395, 393) -> 392 -[162,1](396, 396) -> 393 -[162,1](397, 396) -> 394 -[162,1](398, 396) -> 395 -[163,1](399, 399) -> 396 -[163,1](400, 399) -> 397 -[163,1](401, 399) -> 398 -[164,1](402, 402) -> 399 -[164,1](403, 402) -> 400 -[164,1](404, 402) -> 401 -[165,1](405, 405) -> 402 -[165,1](406, 405) -> 403 -[165,1](407, 405) -> 404 -[166,1](408, 408) -> 405 -[166,1](409, 408) -> 406 -[166,1](410, 408) -> 407 -[167,1](411, 411) -> 408 -[167,1](412, 411) -> 409 -[167,1](413, 411) -> 410 -[168,1](414, 414) -> 411 -[168,1](415, 414) -> 412 -[168,1](416, 414) -> 413 -[169,1](417, 417) -> 414 -[169,1](418, 417) -> 415 -[169,1](419, 417) -> 416 -[170,1](420, 420) -> 417 -[170,1](421, 420) -> 418 -[170,1](422, 420) -> 419 -[171,1](423, 423) -> 420 -[171,1](424, 423) -> 421 -[171,1](425, 423) -> 422 -[172,1](426, 426) -> 423 -[172,1](427, 426) -> 424 -[172,1](428, 426) -> 425 -[173,1](429, 429) -> 426 -[173,1](430, 429) -> 427 -[173,1](431, 429) -> 428 -[174,1](432, 432) -> 429 -[174,1](433, 432) -> 430 -[174,1](434, 432) -> 431 -[175,1](435, 435) -> 432 -[175,1](436, 435) -> 433 -[175,1](437, 435) -> 434 -[176,1](438, 438) -> 435 -[176,1](439, 438) -> 436 -[176,1](440, 438) -> 437 -[p1,1] -> 438 -[p2,1] -> 439 -[p3,1] -> 440 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/88/pre.hsl b/benchmarks/all/OEGrover/88/pre.hsl index d30a58c90..9ace7ffb3 100644 --- a/benchmarks/all/OEGrover/88/pre.hsl +++ b/benchmarks/all/OEGrover/88/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 43 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 309485009821345068724781055 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/88/pre.lsta b/benchmarks/all/OEGrover/88/pre.lsta deleted file mode 100644 index 51b228531..000000000 --- a/benchmarks/all/OEGrover/88/pre.lsta +++ /dev/null @@ -1,451 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 178) -> 175 -[89,1](177, 179) -> 176 -[90,1](180, 180) -> 177 -[90,1](181, 180) -> 178 -[90,1](182, 180) -> 179 -[91,1](183, 183) -> 180 -[91,1](184, 183) -> 181 -[91,1](185, 183) -> 182 -[92,1](186, 186) -> 183 -[92,1](187, 186) -> 184 -[92,1](188, 186) -> 185 -[93,1](189, 189) -> 186 -[93,1](190, 189) -> 187 -[93,1](191, 189) -> 188 -[94,1](192, 192) -> 189 -[94,1](193, 192) -> 190 -[94,1](194, 192) -> 191 -[95,1](195, 195) -> 192 -[95,1](196, 195) -> 193 -[95,1](197, 195) -> 194 -[96,1](198, 198) -> 195 -[96,1](199, 198) -> 196 -[96,1](200, 198) -> 197 -[97,1](201, 201) -> 198 -[97,1](202, 201) -> 199 -[97,1](203, 201) -> 200 -[98,1](204, 204) -> 201 -[98,1](205, 204) -> 202 -[98,1](206, 204) -> 203 -[99,1](207, 207) -> 204 -[99,1](208, 207) -> 205 -[99,1](209, 207) -> 206 -[100,1](210, 210) -> 207 -[100,1](211, 210) -> 208 -[100,1](212, 210) -> 209 -[101,1](213, 213) -> 210 -[101,1](214, 213) -> 211 -[101,1](215, 213) -> 212 -[102,1](216, 216) -> 213 -[102,1](217, 216) -> 214 -[102,1](218, 216) -> 215 -[103,1](219, 219) -> 216 -[103,1](220, 219) -> 217 -[103,1](221, 219) -> 218 -[104,1](222, 222) -> 219 -[104,1](223, 222) -> 220 -[104,1](224, 222) -> 221 -[105,1](225, 225) -> 222 -[105,1](226, 225) -> 223 -[105,1](227, 225) -> 224 -[106,1](228, 228) -> 225 -[106,1](229, 228) -> 226 -[106,1](230, 228) -> 227 -[107,1](231, 231) -> 228 -[107,1](232, 231) -> 229 -[107,1](233, 231) -> 230 -[108,1](234, 234) -> 231 -[108,1](235, 234) -> 232 -[108,1](236, 234) -> 233 -[109,1](237, 237) -> 234 -[109,1](238, 237) -> 235 -[109,1](239, 237) -> 236 -[110,1](240, 240) -> 237 -[110,1](241, 240) -> 238 -[110,1](242, 240) -> 239 -[111,1](243, 243) -> 240 -[111,1](244, 243) -> 241 -[111,1](245, 243) -> 242 -[112,1](246, 246) -> 243 -[112,1](247, 246) -> 244 -[112,1](248, 246) -> 245 -[113,1](249, 249) -> 246 -[113,1](250, 249) -> 247 -[113,1](251, 249) -> 248 -[114,1](252, 252) -> 249 -[114,1](253, 252) -> 250 -[114,1](254, 252) -> 251 -[115,1](255, 255) -> 252 -[115,1](256, 255) -> 253 -[115,1](257, 255) -> 254 -[116,1](258, 258) -> 255 -[116,1](259, 258) -> 256 -[116,1](260, 258) -> 257 -[117,1](261, 261) -> 258 -[117,1](262, 261) -> 259 -[117,1](263, 261) -> 260 -[118,1](264, 264) -> 261 -[118,1](265, 264) -> 262 -[118,1](266, 264) -> 263 -[119,1](267, 267) -> 264 -[119,1](268, 267) -> 265 -[119,1](269, 267) -> 266 -[120,1](270, 270) -> 267 -[120,1](271, 270) -> 268 -[120,1](272, 270) -> 269 -[121,1](273, 273) -> 270 -[121,1](274, 273) -> 271 -[121,1](275, 273) -> 272 -[122,1](276, 276) -> 273 -[122,1](277, 276) -> 274 -[122,1](278, 276) -> 275 -[123,1](279, 279) -> 276 -[123,1](280, 279) -> 277 -[123,1](281, 279) -> 278 -[124,1](282, 282) -> 279 -[124,1](283, 282) -> 280 -[124,1](284, 282) -> 281 -[125,1](285, 285) -> 282 -[125,1](286, 285) -> 283 -[125,1](287, 285) -> 284 -[126,1](288, 288) -> 285 -[126,1](289, 288) -> 286 -[126,1](290, 288) -> 287 -[127,1](291, 291) -> 288 -[127,1](292, 291) -> 289 -[127,1](293, 291) -> 290 -[128,1](294, 294) -> 291 -[128,1](295, 294) -> 292 -[128,1](296, 294) -> 293 -[129,1](297, 297) -> 294 -[129,1](298, 297) -> 295 -[129,1](299, 297) -> 296 -[130,1](300, 300) -> 297 -[130,1](301, 300) -> 298 -[130,1](302, 300) -> 299 -[131,1](303, 303) -> 300 -[131,1](304, 303) -> 301 -[131,1](305, 303) -> 302 -[132,1](306, 306) -> 303 -[132,1](307, 306) -> 304 -[132,1](308, 306) -> 305 -[133,1](309, 309) -> 306 -[133,1](310, 309) -> 307 -[133,1](311, 309) -> 308 -[134,1](312, 312) -> 309 -[134,1](313, 312) -> 310 -[134,1](314, 312) -> 311 -[135,1](315, 315) -> 312 -[135,1](316, 315) -> 313 -[135,1](317, 315) -> 314 -[136,1](318, 318) -> 315 -[136,1](319, 318) -> 316 -[136,1](320, 318) -> 317 -[137,1](321, 321) -> 318 -[137,1](322, 321) -> 319 -[137,1](323, 321) -> 320 -[138,1](324, 324) -> 321 -[138,1](325, 324) -> 322 -[138,1](326, 324) -> 323 -[139,1](327, 327) -> 324 -[139,1](328, 327) -> 325 -[139,1](329, 327) -> 326 -[140,1](330, 330) -> 327 -[140,1](331, 330) -> 328 -[140,1](332, 330) -> 329 -[141,1](333, 333) -> 330 -[141,1](334, 333) -> 331 -[141,1](335, 333) -> 332 -[142,1](336, 336) -> 333 -[142,1](337, 336) -> 334 -[142,1](338, 336) -> 335 -[143,1](339, 339) -> 336 -[143,1](340, 339) -> 337 -[143,1](341, 339) -> 338 -[144,1](342, 342) -> 339 -[144,1](343, 342) -> 340 -[144,1](344, 342) -> 341 -[145,1](345, 345) -> 342 -[145,1](346, 345) -> 343 -[145,1](347, 345) -> 344 -[146,1](348, 348) -> 345 -[146,1](349, 348) -> 346 -[146,1](350, 348) -> 347 -[147,1](351, 351) -> 348 -[147,1](352, 351) -> 349 -[147,1](353, 351) -> 350 -[148,1](354, 354) -> 351 -[148,1](355, 354) -> 352 -[148,1](356, 354) -> 353 -[149,1](357, 357) -> 354 -[149,1](358, 357) -> 355 -[149,1](359, 357) -> 356 -[150,1](360, 360) -> 357 -[150,1](361, 360) -> 358 -[150,1](362, 360) -> 359 -[151,1](363, 363) -> 360 -[151,1](364, 363) -> 361 -[151,1](365, 363) -> 362 -[152,1](366, 366) -> 363 -[152,1](367, 366) -> 364 -[152,1](368, 366) -> 365 -[153,1](369, 369) -> 366 -[153,1](370, 369) -> 367 -[153,1](371, 369) -> 368 -[154,1](372, 372) -> 369 -[154,1](373, 372) -> 370 -[154,1](374, 372) -> 371 -[155,1](375, 375) -> 372 -[155,1](376, 375) -> 373 -[155,1](377, 375) -> 374 -[156,1](378, 378) -> 375 -[156,1](379, 378) -> 376 -[156,1](380, 378) -> 377 -[157,1](381, 381) -> 378 -[157,1](382, 381) -> 379 -[157,1](383, 381) -> 380 -[158,1](384, 384) -> 381 -[158,1](385, 384) -> 382 -[158,1](386, 384) -> 383 -[159,1](387, 387) -> 384 -[159,1](388, 387) -> 385 -[159,1](389, 387) -> 386 -[160,1](390, 390) -> 387 -[160,1](391, 390) -> 388 -[160,1](392, 390) -> 389 -[161,1](393, 393) -> 390 -[161,1](394, 393) -> 391 -[161,1](395, 393) -> 392 -[162,1](396, 396) -> 393 -[162,1](397, 396) -> 394 -[162,1](398, 396) -> 395 -[163,1](399, 399) -> 396 -[163,1](400, 399) -> 397 -[163,1](401, 399) -> 398 -[164,1](402, 402) -> 399 -[164,1](403, 402) -> 400 -[164,1](404, 402) -> 401 -[165,1](405, 405) -> 402 -[165,1](406, 405) -> 403 -[165,1](407, 405) -> 404 -[166,1](408, 408) -> 405 -[166,1](409, 408) -> 406 -[166,1](410, 408) -> 407 -[167,1](411, 411) -> 408 -[167,1](412, 411) -> 409 -[167,1](413, 411) -> 410 -[168,1](414, 414) -> 411 -[168,1](415, 414) -> 412 -[168,1](416, 414) -> 413 -[169,1](417, 417) -> 414 -[169,1](418, 417) -> 415 -[169,1](419, 417) -> 416 -[170,1](420, 420) -> 417 -[170,1](421, 420) -> 418 -[170,1](422, 420) -> 419 -[171,1](423, 423) -> 420 -[171,1](424, 423) -> 421 -[171,1](425, 423) -> 422 -[172,1](426, 426) -> 423 -[172,1](427, 426) -> 424 -[172,1](428, 426) -> 425 -[173,1](429, 429) -> 426 -[173,1](430, 429) -> 427 -[173,1](431, 429) -> 428 -[174,1](432, 432) -> 429 -[174,1](433, 432) -> 430 -[174,1](434, 432) -> 431 -[175,1](435, 435) -> 432 -[175,1](436, 435) -> 433 -[175,1](437, 435) -> 434 -[176,1](438, 438) -> 435 -[176,1](439, 438) -> 436 -[176,1](440, 438) -> 437 -[c0,1] -> 438 -[a,1] -> 439 -[b,1] -> 440 -Constraints -309485009821345068724781055 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/89/circuit.qasm b/benchmarks/all/OEGrover/89/circuit.qasm index 706f6b90c..c844ca5d1 100644 --- a/benchmarks/all/OEGrover/89/circuit.qasm +++ b/benchmarks/all/OEGrover/89/circuit.qasm @@ -1,227 +1,227 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[178]; +qreg qubits[177]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -ccx qubits[0], qubits[1], qubits[90]; -ccx qubits[2], qubits[90], qubits[91]; -ccx qubits[3], qubits[91], qubits[92]; -ccx qubits[4], qubits[92], qubits[93]; -ccx qubits[5], qubits[93], qubits[94]; -ccx qubits[6], qubits[94], qubits[95]; -ccx qubits[7], qubits[95], qubits[96]; -ccx qubits[8], qubits[96], qubits[97]; -ccx qubits[9], qubits[97], qubits[98]; -ccx qubits[10], qubits[98], qubits[99]; -ccx qubits[11], qubits[99], qubits[100]; -ccx qubits[12], qubits[100], qubits[101]; -ccx qubits[13], qubits[101], qubits[102]; -ccx qubits[14], qubits[102], qubits[103]; -ccx qubits[15], qubits[103], qubits[104]; -ccx qubits[16], qubits[104], qubits[105]; -ccx qubits[17], qubits[105], qubits[106]; -ccx qubits[18], qubits[106], qubits[107]; -ccx qubits[19], qubits[107], qubits[108]; -ccx qubits[20], qubits[108], qubits[109]; -ccx qubits[21], qubits[109], qubits[110]; -ccx qubits[22], qubits[110], qubits[111]; -ccx qubits[23], qubits[111], qubits[112]; -ccx qubits[24], qubits[112], qubits[113]; -ccx qubits[25], qubits[113], qubits[114]; -ccx qubits[26], qubits[114], qubits[115]; -ccx qubits[27], qubits[115], qubits[116]; -ccx qubits[28], qubits[116], qubits[117]; -ccx qubits[29], qubits[117], qubits[118]; -ccx qubits[30], qubits[118], qubits[119]; -ccx qubits[31], qubits[119], qubits[120]; -ccx qubits[32], qubits[120], qubits[121]; -ccx qubits[33], qubits[121], qubits[122]; -ccx qubits[34], qubits[122], qubits[123]; -ccx qubits[35], qubits[123], qubits[124]; -ccx qubits[36], qubits[124], qubits[125]; -ccx qubits[37], qubits[125], qubits[126]; -ccx qubits[38], qubits[126], qubits[127]; -ccx qubits[39], qubits[127], qubits[128]; -ccx qubits[40], qubits[128], qubits[129]; -ccx qubits[41], qubits[129], qubits[130]; -ccx qubits[42], qubits[130], qubits[131]; -ccx qubits[43], qubits[131], qubits[132]; -ccx qubits[44], qubits[132], qubits[133]; -ccx qubits[45], qubits[133], qubits[134]; -ccx qubits[46], qubits[134], qubits[135]; -ccx qubits[47], qubits[135], qubits[136]; -ccx qubits[48], qubits[136], qubits[137]; -ccx qubits[49], qubits[137], qubits[138]; -ccx qubits[50], qubits[138], qubits[139]; -ccx qubits[51], qubits[139], qubits[140]; -ccx qubits[52], qubits[140], qubits[141]; -ccx qubits[53], qubits[141], qubits[142]; -ccx qubits[54], qubits[142], qubits[143]; -ccx qubits[55], qubits[143], qubits[144]; -ccx qubits[56], qubits[144], qubits[145]; -ccx qubits[57], qubits[145], qubits[146]; -ccx qubits[58], qubits[146], qubits[147]; -ccx qubits[59], qubits[147], qubits[148]; -ccx qubits[60], qubits[148], qubits[149]; -ccx qubits[61], qubits[149], qubits[150]; -ccx qubits[62], qubits[150], qubits[151]; -ccx qubits[63], qubits[151], qubits[152]; -ccx qubits[64], qubits[152], qubits[153]; -ccx qubits[65], qubits[153], qubits[154]; -ccx qubits[66], qubits[154], qubits[155]; -ccx qubits[67], qubits[155], qubits[156]; -ccx qubits[68], qubits[156], qubits[157]; -ccx qubits[69], qubits[157], qubits[158]; -ccx qubits[70], qubits[158], qubits[159]; -ccx qubits[71], qubits[159], qubits[160]; -ccx qubits[72], qubits[160], qubits[161]; -ccx qubits[73], qubits[161], qubits[162]; -ccx qubits[74], qubits[162], qubits[163]; -ccx qubits[75], qubits[163], qubits[164]; -ccx qubits[76], qubits[164], qubits[165]; -ccx qubits[77], qubits[165], qubits[166]; -ccx qubits[78], qubits[166], qubits[167]; -ccx qubits[79], qubits[167], qubits[168]; -ccx qubits[80], qubits[168], qubits[169]; -ccx qubits[81], qubits[169], qubits[170]; -ccx qubits[82], qubits[170], qubits[171]; -ccx qubits[83], qubits[171], qubits[172]; -ccx qubits[84], qubits[172], qubits[173]; -ccx qubits[85], qubits[173], qubits[174]; -ccx qubits[86], qubits[174], qubits[175]; -ccx qubits[87], qubits[175], qubits[176]; -cz qubits[176], qubits[88]; -ccx qubits[87], qubits[175], qubits[176]; -ccx qubits[86], qubits[174], qubits[175]; -ccx qubits[85], qubits[173], qubits[174]; -ccx qubits[84], qubits[172], qubits[173]; -ccx qubits[83], qubits[171], qubits[172]; -ccx qubits[82], qubits[170], qubits[171]; -ccx qubits[81], qubits[169], qubits[170]; -ccx qubits[80], qubits[168], qubits[169]; -ccx qubits[79], qubits[167], qubits[168]; -ccx qubits[78], qubits[166], qubits[167]; -ccx qubits[77], qubits[165], qubits[166]; -ccx qubits[76], qubits[164], qubits[165]; -ccx qubits[75], qubits[163], qubits[164]; -ccx qubits[74], qubits[162], qubits[163]; -ccx qubits[73], qubits[161], qubits[162]; -ccx qubits[72], qubits[160], qubits[161]; -ccx qubits[71], qubits[159], qubits[160]; -ccx qubits[70], qubits[158], qubits[159]; -ccx qubits[69], qubits[157], qubits[158]; -ccx qubits[68], qubits[156], qubits[157]; -ccx qubits[67], qubits[155], qubits[156]; -ccx qubits[66], qubits[154], qubits[155]; -ccx qubits[65], qubits[153], qubits[154]; -ccx qubits[64], qubits[152], qubits[153]; -ccx qubits[63], qubits[151], qubits[152]; -ccx qubits[62], qubits[150], qubits[151]; -ccx qubits[61], qubits[149], qubits[150]; -ccx qubits[60], qubits[148], qubits[149]; -ccx qubits[59], qubits[147], qubits[148]; -ccx qubits[58], qubits[146], qubits[147]; -ccx qubits[57], qubits[145], qubits[146]; -ccx qubits[56], qubits[144], qubits[145]; -ccx qubits[55], qubits[143], qubits[144]; -ccx qubits[54], qubits[142], qubits[143]; -ccx qubits[53], qubits[141], qubits[142]; -ccx qubits[52], qubits[140], qubits[141]; -ccx qubits[51], qubits[139], qubits[140]; -ccx qubits[50], qubits[138], qubits[139]; -ccx qubits[49], qubits[137], qubits[138]; -ccx qubits[48], qubits[136], qubits[137]; -ccx qubits[47], qubits[135], qubits[136]; -ccx qubits[46], qubits[134], qubits[135]; -ccx qubits[45], qubits[133], qubits[134]; -ccx qubits[44], qubits[132], qubits[133]; -ccx qubits[43], qubits[131], qubits[132]; -ccx qubits[42], qubits[130], qubits[131]; -ccx qubits[41], qubits[129], qubits[130]; -ccx qubits[40], qubits[128], qubits[129]; -ccx qubits[39], qubits[127], qubits[128]; -ccx qubits[38], qubits[126], qubits[127]; -ccx qubits[37], qubits[125], qubits[126]; -ccx qubits[36], qubits[124], qubits[125]; -ccx qubits[35], qubits[123], qubits[124]; -ccx qubits[34], qubits[122], qubits[123]; -ccx qubits[33], qubits[121], qubits[122]; -ccx qubits[32], qubits[120], qubits[121]; -ccx qubits[31], qubits[119], qubits[120]; -ccx qubits[30], qubits[118], qubits[119]; -ccx qubits[29], qubits[117], qubits[118]; -ccx qubits[28], qubits[116], qubits[117]; -ccx qubits[27], qubits[115], qubits[116]; -ccx qubits[26], qubits[114], qubits[115]; -ccx qubits[25], qubits[113], qubits[114]; -ccx qubits[24], qubits[112], qubits[113]; -ccx qubits[23], qubits[111], qubits[112]; -ccx qubits[22], qubits[110], qubits[111]; -ccx qubits[21], qubits[109], qubits[110]; -ccx qubits[20], qubits[108], qubits[109]; -ccx qubits[19], qubits[107], qubits[108]; -ccx qubits[18], qubits[106], qubits[107]; -ccx qubits[17], qubits[105], qubits[106]; -ccx qubits[16], qubits[104], qubits[105]; -ccx qubits[15], qubits[103], qubits[104]; -ccx qubits[14], qubits[102], qubits[103]; -ccx qubits[13], qubits[101], qubits[102]; -ccx qubits[12], qubits[100], qubits[101]; -ccx qubits[11], qubits[99], qubits[100]; -ccx qubits[10], qubits[98], qubits[99]; -ccx qubits[9], qubits[97], qubits[98]; -ccx qubits[8], qubits[96], qubits[97]; -ccx qubits[7], qubits[95], qubits[96]; -ccx qubits[6], qubits[94], qubits[95]; -ccx qubits[5], qubits[93], qubits[94]; -ccx qubits[4], qubits[92], qubits[93]; -ccx qubits[3], qubits[91], qubits[92]; -ccx qubits[2], qubits[90], qubits[91]; -ccx qubits[0], qubits[1], qubits[90]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +cz qubits[174], qubits[175]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -269,533 +269,533 @@ x qubits[86]; x qubits[88]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; -ccx qubits[0], qubits[1], qubits[90]; -ccx qubits[2], qubits[90], qubits[91]; -ccx qubits[3], qubits[91], qubits[92]; -ccx qubits[4], qubits[92], qubits[93]; -ccx qubits[5], qubits[93], qubits[94]; -ccx qubits[6], qubits[94], qubits[95]; -ccx qubits[7], qubits[95], qubits[96]; -ccx qubits[8], qubits[96], qubits[97]; -ccx qubits[9], qubits[97], qubits[98]; -ccx qubits[10], qubits[98], qubits[99]; -ccx qubits[11], qubits[99], qubits[100]; -ccx qubits[12], qubits[100], qubits[101]; -ccx qubits[13], qubits[101], qubits[102]; -ccx qubits[14], qubits[102], qubits[103]; -ccx qubits[15], qubits[103], qubits[104]; -ccx qubits[16], qubits[104], qubits[105]; -ccx qubits[17], qubits[105], qubits[106]; -ccx qubits[18], qubits[106], qubits[107]; -ccx qubits[19], qubits[107], qubits[108]; -ccx qubits[20], qubits[108], qubits[109]; -ccx qubits[21], qubits[109], qubits[110]; -ccx qubits[22], qubits[110], qubits[111]; -ccx qubits[23], qubits[111], qubits[112]; -ccx qubits[24], qubits[112], qubits[113]; -ccx qubits[25], qubits[113], qubits[114]; -ccx qubits[26], qubits[114], qubits[115]; -ccx qubits[27], qubits[115], qubits[116]; -ccx qubits[28], qubits[116], qubits[117]; -ccx qubits[29], qubits[117], qubits[118]; -ccx qubits[30], qubits[118], qubits[119]; -ccx qubits[31], qubits[119], qubits[120]; -ccx qubits[32], qubits[120], qubits[121]; -ccx qubits[33], qubits[121], qubits[122]; -ccx qubits[34], qubits[122], qubits[123]; -ccx qubits[35], qubits[123], qubits[124]; -ccx qubits[36], qubits[124], qubits[125]; -ccx qubits[37], qubits[125], qubits[126]; -ccx qubits[38], qubits[126], qubits[127]; -ccx qubits[39], qubits[127], qubits[128]; -ccx qubits[40], qubits[128], qubits[129]; -ccx qubits[41], qubits[129], qubits[130]; -ccx qubits[42], qubits[130], qubits[131]; -ccx qubits[43], qubits[131], qubits[132]; -ccx qubits[44], qubits[132], qubits[133]; -ccx qubits[45], qubits[133], qubits[134]; -ccx qubits[46], qubits[134], qubits[135]; -ccx qubits[47], qubits[135], qubits[136]; -ccx qubits[48], qubits[136], qubits[137]; -ccx qubits[49], qubits[137], qubits[138]; -ccx qubits[50], qubits[138], qubits[139]; -ccx qubits[51], qubits[139], qubits[140]; -ccx qubits[52], qubits[140], qubits[141]; -ccx qubits[53], qubits[141], qubits[142]; -ccx qubits[54], qubits[142], qubits[143]; -ccx qubits[55], qubits[143], qubits[144]; -ccx qubits[56], qubits[144], qubits[145]; -ccx qubits[57], qubits[145], qubits[146]; -ccx qubits[58], qubits[146], qubits[147]; -ccx qubits[59], qubits[147], qubits[148]; -ccx qubits[60], qubits[148], qubits[149]; -ccx qubits[61], qubits[149], qubits[150]; -ccx qubits[62], qubits[150], qubits[151]; -ccx qubits[63], qubits[151], qubits[152]; -ccx qubits[64], qubits[152], qubits[153]; -ccx qubits[65], qubits[153], qubits[154]; -ccx qubits[66], qubits[154], qubits[155]; -ccx qubits[67], qubits[155], qubits[156]; -ccx qubits[68], qubits[156], qubits[157]; -ccx qubits[69], qubits[157], qubits[158]; -ccx qubits[70], qubits[158], qubits[159]; -ccx qubits[71], qubits[159], qubits[160]; -ccx qubits[72], qubits[160], qubits[161]; -ccx qubits[73], qubits[161], qubits[162]; -ccx qubits[74], qubits[162], qubits[163]; -ccx qubits[75], qubits[163], qubits[164]; -ccx qubits[76], qubits[164], qubits[165]; -ccx qubits[77], qubits[165], qubits[166]; -ccx qubits[78], qubits[166], qubits[167]; -ccx qubits[79], qubits[167], qubits[168]; -ccx qubits[80], qubits[168], qubits[169]; -ccx qubits[81], qubits[169], qubits[170]; -ccx qubits[82], qubits[170], qubits[171]; -ccx qubits[83], qubits[171], qubits[172]; -ccx qubits[84], qubits[172], qubits[173]; -ccx qubits[85], qubits[173], qubits[174]; -ccx qubits[86], qubits[174], qubits[175]; -ccx qubits[87], qubits[175], qubits[176]; -cz qubits[176], qubits[88]; -ccx qubits[87], qubits[175], qubits[176]; -ccx qubits[86], qubits[174], qubits[175]; -ccx qubits[85], qubits[173], qubits[174]; -ccx qubits[84], qubits[172], qubits[173]; -ccx qubits[83], qubits[171], qubits[172]; -ccx qubits[82], qubits[170], qubits[171]; -ccx qubits[81], qubits[169], qubits[170]; -ccx qubits[80], qubits[168], qubits[169]; -ccx qubits[79], qubits[167], qubits[168]; -ccx qubits[78], qubits[166], qubits[167]; -ccx qubits[77], qubits[165], qubits[166]; -ccx qubits[76], qubits[164], qubits[165]; -ccx qubits[75], qubits[163], qubits[164]; -ccx qubits[74], qubits[162], qubits[163]; -ccx qubits[73], qubits[161], qubits[162]; -ccx qubits[72], qubits[160], qubits[161]; -ccx qubits[71], qubits[159], qubits[160]; -ccx qubits[70], qubits[158], qubits[159]; -ccx qubits[69], qubits[157], qubits[158]; -ccx qubits[68], qubits[156], qubits[157]; -ccx qubits[67], qubits[155], qubits[156]; -ccx qubits[66], qubits[154], qubits[155]; -ccx qubits[65], qubits[153], qubits[154]; -ccx qubits[64], qubits[152], qubits[153]; -ccx qubits[63], qubits[151], qubits[152]; -ccx qubits[62], qubits[150], qubits[151]; -ccx qubits[61], qubits[149], qubits[150]; -ccx qubits[60], qubits[148], qubits[149]; -ccx qubits[59], qubits[147], qubits[148]; -ccx qubits[58], qubits[146], qubits[147]; -ccx qubits[57], qubits[145], qubits[146]; -ccx qubits[56], qubits[144], qubits[145]; -ccx qubits[55], qubits[143], qubits[144]; -ccx qubits[54], qubits[142], qubits[143]; -ccx qubits[53], qubits[141], qubits[142]; -ccx qubits[52], qubits[140], qubits[141]; -ccx qubits[51], qubits[139], qubits[140]; -ccx qubits[50], qubits[138], qubits[139]; -ccx qubits[49], qubits[137], qubits[138]; -ccx qubits[48], qubits[136], qubits[137]; -ccx qubits[47], qubits[135], qubits[136]; -ccx qubits[46], qubits[134], qubits[135]; -ccx qubits[45], qubits[133], qubits[134]; -ccx qubits[44], qubits[132], qubits[133]; -ccx qubits[43], qubits[131], qubits[132]; -ccx qubits[42], qubits[130], qubits[131]; -ccx qubits[41], qubits[129], qubits[130]; -ccx qubits[40], qubits[128], qubits[129]; -ccx qubits[39], qubits[127], qubits[128]; -ccx qubits[38], qubits[126], qubits[127]; -ccx qubits[37], qubits[125], qubits[126]; -ccx qubits[36], qubits[124], qubits[125]; -ccx qubits[35], qubits[123], qubits[124]; -ccx qubits[34], qubits[122], qubits[123]; -ccx qubits[33], qubits[121], qubits[122]; -ccx qubits[32], qubits[120], qubits[121]; -ccx qubits[31], qubits[119], qubits[120]; -ccx qubits[30], qubits[118], qubits[119]; -ccx qubits[29], qubits[117], qubits[118]; -ccx qubits[28], qubits[116], qubits[117]; -ccx qubits[27], qubits[115], qubits[116]; -ccx qubits[26], qubits[114], qubits[115]; -ccx qubits[25], qubits[113], qubits[114]; -ccx qubits[24], qubits[112], qubits[113]; -ccx qubits[23], qubits[111], qubits[112]; -ccx qubits[22], qubits[110], qubits[111]; -ccx qubits[21], qubits[109], qubits[110]; -ccx qubits[20], qubits[108], qubits[109]; -ccx qubits[19], qubits[107], qubits[108]; -ccx qubits[18], qubits[106], qubits[107]; -ccx qubits[17], qubits[105], qubits[106]; -ccx qubits[16], qubits[104], qubits[105]; -ccx qubits[15], qubits[103], qubits[104]; -ccx qubits[14], qubits[102], qubits[103]; -ccx qubits[13], qubits[101], qubits[102]; -ccx qubits[12], qubits[100], qubits[101]; -ccx qubits[11], qubits[99], qubits[100]; -ccx qubits[10], qubits[98], qubits[99]; -ccx qubits[9], qubits[97], qubits[98]; -ccx qubits[8], qubits[96], qubits[97]; -ccx qubits[7], qubits[95], qubits[96]; -ccx qubits[6], qubits[94], qubits[95]; -ccx qubits[5], qubits[93], qubits[94]; -ccx qubits[4], qubits[92], qubits[93]; -ccx qubits[3], qubits[91], qubits[92]; -ccx qubits[2], qubits[90], qubits[91]; -ccx qubits[0], qubits[1], qubits[90]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +cz qubits[174], qubits[175]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; +x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; -z qubits[89]; +h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +z qubits[176]; diff --git a/benchmarks/all/OEGrover/89/post.hsl b/benchmarks/all/OEGrover/89/post.hsl index 158b8f532..e9523efcc 100644 --- a/benchmarks/all/OEGrover/89/post.hsl +++ b/benchmarks/all/OEGrover/89/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 43 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/89/post.lsta b/benchmarks/all/OEGrover/89/post.lsta deleted file mode 100644 index 8c5ba7fac..000000000 --- a/benchmarks/all/OEGrover/89/post.lsta +++ /dev/null @@ -1,452 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 180) -> 177 -[90,1](179, 181) -> 178 -[91,1](182, 182) -> 179 -[91,1](183, 182) -> 180 -[91,1](184, 182) -> 181 -[92,1](185, 185) -> 182 -[92,1](186, 185) -> 183 -[92,1](187, 185) -> 184 -[93,1](188, 188) -> 185 -[93,1](189, 188) -> 186 -[93,1](190, 188) -> 187 -[94,1](191, 191) -> 188 -[94,1](192, 191) -> 189 -[94,1](193, 191) -> 190 -[95,1](194, 194) -> 191 -[95,1](195, 194) -> 192 -[95,1](196, 194) -> 193 -[96,1](197, 197) -> 194 -[96,1](198, 197) -> 195 -[96,1](199, 197) -> 196 -[97,1](200, 200) -> 197 -[97,1](201, 200) -> 198 -[97,1](202, 200) -> 199 -[98,1](203, 203) -> 200 -[98,1](204, 203) -> 201 -[98,1](205, 203) -> 202 -[99,1](206, 206) -> 203 -[99,1](207, 206) -> 204 -[99,1](208, 206) -> 205 -[100,1](209, 209) -> 206 -[100,1](210, 209) -> 207 -[100,1](211, 209) -> 208 -[101,1](212, 212) -> 209 -[101,1](213, 212) -> 210 -[101,1](214, 212) -> 211 -[102,1](215, 215) -> 212 -[102,1](216, 215) -> 213 -[102,1](217, 215) -> 214 -[103,1](218, 218) -> 215 -[103,1](219, 218) -> 216 -[103,1](220, 218) -> 217 -[104,1](221, 221) -> 218 -[104,1](222, 221) -> 219 -[104,1](223, 221) -> 220 -[105,1](224, 224) -> 221 -[105,1](225, 224) -> 222 -[105,1](226, 224) -> 223 -[106,1](227, 227) -> 224 -[106,1](228, 227) -> 225 -[106,1](229, 227) -> 226 -[107,1](230, 230) -> 227 -[107,1](231, 230) -> 228 -[107,1](232, 230) -> 229 -[108,1](233, 233) -> 230 -[108,1](234, 233) -> 231 -[108,1](235, 233) -> 232 -[109,1](236, 236) -> 233 -[109,1](237, 236) -> 234 -[109,1](238, 236) -> 235 -[110,1](239, 239) -> 236 -[110,1](240, 239) -> 237 -[110,1](241, 239) -> 238 -[111,1](242, 242) -> 239 -[111,1](243, 242) -> 240 -[111,1](244, 242) -> 241 -[112,1](245, 245) -> 242 -[112,1](246, 245) -> 243 -[112,1](247, 245) -> 244 -[113,1](248, 248) -> 245 -[113,1](249, 248) -> 246 -[113,1](250, 248) -> 247 -[114,1](251, 251) -> 248 -[114,1](252, 251) -> 249 -[114,1](253, 251) -> 250 -[115,1](254, 254) -> 251 -[115,1](255, 254) -> 252 -[115,1](256, 254) -> 253 -[116,1](257, 257) -> 254 -[116,1](258, 257) -> 255 -[116,1](259, 257) -> 256 -[117,1](260, 260) -> 257 -[117,1](261, 260) -> 258 -[117,1](262, 260) -> 259 -[118,1](263, 263) -> 260 -[118,1](264, 263) -> 261 -[118,1](265, 263) -> 262 -[119,1](266, 266) -> 263 -[119,1](267, 266) -> 264 -[119,1](268, 266) -> 265 -[120,1](269, 269) -> 266 -[120,1](270, 269) -> 267 -[120,1](271, 269) -> 268 -[121,1](272, 272) -> 269 -[121,1](273, 272) -> 270 -[121,1](274, 272) -> 271 -[122,1](275, 275) -> 272 -[122,1](276, 275) -> 273 -[122,1](277, 275) -> 274 -[123,1](278, 278) -> 275 -[123,1](279, 278) -> 276 -[123,1](280, 278) -> 277 -[124,1](281, 281) -> 278 -[124,1](282, 281) -> 279 -[124,1](283, 281) -> 280 -[125,1](284, 284) -> 281 -[125,1](285, 284) -> 282 -[125,1](286, 284) -> 283 -[126,1](287, 287) -> 284 -[126,1](288, 287) -> 285 -[126,1](289, 287) -> 286 -[127,1](290, 290) -> 287 -[127,1](291, 290) -> 288 -[127,1](292, 290) -> 289 -[128,1](293, 293) -> 290 -[128,1](294, 293) -> 291 -[128,1](295, 293) -> 292 -[129,1](296, 296) -> 293 -[129,1](297, 296) -> 294 -[129,1](298, 296) -> 295 -[130,1](299, 299) -> 296 -[130,1](300, 299) -> 297 -[130,1](301, 299) -> 298 -[131,1](302, 302) -> 299 -[131,1](303, 302) -> 300 -[131,1](304, 302) -> 301 -[132,1](305, 305) -> 302 -[132,1](306, 305) -> 303 -[132,1](307, 305) -> 304 -[133,1](308, 308) -> 305 -[133,1](309, 308) -> 306 -[133,1](310, 308) -> 307 -[134,1](311, 311) -> 308 -[134,1](312, 311) -> 309 -[134,1](313, 311) -> 310 -[135,1](314, 314) -> 311 -[135,1](315, 314) -> 312 -[135,1](316, 314) -> 313 -[136,1](317, 317) -> 314 -[136,1](318, 317) -> 315 -[136,1](319, 317) -> 316 -[137,1](320, 320) -> 317 -[137,1](321, 320) -> 318 -[137,1](322, 320) -> 319 -[138,1](323, 323) -> 320 -[138,1](324, 323) -> 321 -[138,1](325, 323) -> 322 -[139,1](326, 326) -> 323 -[139,1](327, 326) -> 324 -[139,1](328, 326) -> 325 -[140,1](329, 329) -> 326 -[140,1](330, 329) -> 327 -[140,1](331, 329) -> 328 -[141,1](332, 332) -> 329 -[141,1](333, 332) -> 330 -[141,1](334, 332) -> 331 -[142,1](335, 335) -> 332 -[142,1](336, 335) -> 333 -[142,1](337, 335) -> 334 -[143,1](338, 338) -> 335 -[143,1](339, 338) -> 336 -[143,1](340, 338) -> 337 -[144,1](341, 341) -> 338 -[144,1](342, 341) -> 339 -[144,1](343, 341) -> 340 -[145,1](344, 344) -> 341 -[145,1](345, 344) -> 342 -[145,1](346, 344) -> 343 -[146,1](347, 347) -> 344 -[146,1](348, 347) -> 345 -[146,1](349, 347) -> 346 -[147,1](350, 350) -> 347 -[147,1](351, 350) -> 348 -[147,1](352, 350) -> 349 -[148,1](353, 353) -> 350 -[148,1](354, 353) -> 351 -[148,1](355, 353) -> 352 -[149,1](356, 356) -> 353 -[149,1](357, 356) -> 354 -[149,1](358, 356) -> 355 -[150,1](359, 359) -> 356 -[150,1](360, 359) -> 357 -[150,1](361, 359) -> 358 -[151,1](362, 362) -> 359 -[151,1](363, 362) -> 360 -[151,1](364, 362) -> 361 -[152,1](365, 365) -> 362 -[152,1](366, 365) -> 363 -[152,1](367, 365) -> 364 -[153,1](368, 368) -> 365 -[153,1](369, 368) -> 366 -[153,1](370, 368) -> 367 -[154,1](371, 371) -> 368 -[154,1](372, 371) -> 369 -[154,1](373, 371) -> 370 -[155,1](374, 374) -> 371 -[155,1](375, 374) -> 372 -[155,1](376, 374) -> 373 -[156,1](377, 377) -> 374 -[156,1](378, 377) -> 375 -[156,1](379, 377) -> 376 -[157,1](380, 380) -> 377 -[157,1](381, 380) -> 378 -[157,1](382, 380) -> 379 -[158,1](383, 383) -> 380 -[158,1](384, 383) -> 381 -[158,1](385, 383) -> 382 -[159,1](386, 386) -> 383 -[159,1](387, 386) -> 384 -[159,1](388, 386) -> 385 -[160,1](389, 389) -> 386 -[160,1](390, 389) -> 387 -[160,1](391, 389) -> 388 -[161,1](392, 392) -> 389 -[161,1](393, 392) -> 390 -[161,1](394, 392) -> 391 -[162,1](395, 395) -> 392 -[162,1](396, 395) -> 393 -[162,1](397, 395) -> 394 -[163,1](398, 398) -> 395 -[163,1](399, 398) -> 396 -[163,1](400, 398) -> 397 -[164,1](401, 401) -> 398 -[164,1](402, 401) -> 399 -[164,1](403, 401) -> 400 -[165,1](404, 404) -> 401 -[165,1](405, 404) -> 402 -[165,1](406, 404) -> 403 -[166,1](407, 407) -> 404 -[166,1](408, 407) -> 405 -[166,1](409, 407) -> 406 -[167,1](410, 410) -> 407 -[167,1](411, 410) -> 408 -[167,1](412, 410) -> 409 -[168,1](413, 413) -> 410 -[168,1](414, 413) -> 411 -[168,1](415, 413) -> 412 -[169,1](416, 416) -> 413 -[169,1](417, 416) -> 414 -[169,1](418, 416) -> 415 -[170,1](419, 419) -> 416 -[170,1](420, 419) -> 417 -[170,1](421, 419) -> 418 -[171,1](422, 422) -> 419 -[171,1](423, 422) -> 420 -[171,1](424, 422) -> 421 -[172,1](425, 425) -> 422 -[172,1](426, 425) -> 423 -[172,1](427, 425) -> 424 -[173,1](428, 428) -> 425 -[173,1](429, 428) -> 426 -[173,1](430, 428) -> 427 -[174,1](431, 431) -> 428 -[174,1](432, 431) -> 429 -[174,1](433, 431) -> 430 -[175,1](434, 434) -> 431 -[175,1](435, 434) -> 432 -[175,1](436, 434) -> 433 -[176,1](437, 437) -> 434 -[176,1](438, 437) -> 435 -[176,1](439, 437) -> 436 -[177,1](440, 440) -> 437 -[177,1](441, 440) -> 438 -[177,1](442, 440) -> 439 -[178,1](443, 443) -> 440 -[178,1](444, 443) -> 441 -[178,1](445, 443) -> 442 -[p1,1] -> 443 -[p2,1] -> 444 -[p3,1] -> 445 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/89/pre.hsl b/benchmarks/all/OEGrover/89/pre.hsl index 04aa7ae21..d4c85f7c5 100644 --- a/benchmarks/all/OEGrover/89/pre.hsl +++ b/benchmarks/all/OEGrover/89/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 43 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 618970019642690137449562111 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/89/pre.lsta b/benchmarks/all/OEGrover/89/pre.lsta deleted file mode 100644 index b035f00bb..000000000 --- a/benchmarks/all/OEGrover/89/pre.lsta +++ /dev/null @@ -1,456 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 180) -> 177 -[90,1](179, 181) -> 178 -[91,1](182, 182) -> 179 -[91,1](183, 182) -> 180 -[91,1](184, 182) -> 181 -[92,1](185, 185) -> 182 -[92,1](186, 185) -> 183 -[92,1](187, 185) -> 184 -[93,1](188, 188) -> 185 -[93,1](189, 188) -> 186 -[93,1](190, 188) -> 187 -[94,1](191, 191) -> 188 -[94,1](192, 191) -> 189 -[94,1](193, 191) -> 190 -[95,1](194, 194) -> 191 -[95,1](195, 194) -> 192 -[95,1](196, 194) -> 193 -[96,1](197, 197) -> 194 -[96,1](198, 197) -> 195 -[96,1](199, 197) -> 196 -[97,1](200, 200) -> 197 -[97,1](201, 200) -> 198 -[97,1](202, 200) -> 199 -[98,1](203, 203) -> 200 -[98,1](204, 203) -> 201 -[98,1](205, 203) -> 202 -[99,1](206, 206) -> 203 -[99,1](207, 206) -> 204 -[99,1](208, 206) -> 205 -[100,1](209, 209) -> 206 -[100,1](210, 209) -> 207 -[100,1](211, 209) -> 208 -[101,1](212, 212) -> 209 -[101,1](213, 212) -> 210 -[101,1](214, 212) -> 211 -[102,1](215, 215) -> 212 -[102,1](216, 215) -> 213 -[102,1](217, 215) -> 214 -[103,1](218, 218) -> 215 -[103,1](219, 218) -> 216 -[103,1](220, 218) -> 217 -[104,1](221, 221) -> 218 -[104,1](222, 221) -> 219 -[104,1](223, 221) -> 220 -[105,1](224, 224) -> 221 -[105,1](225, 224) -> 222 -[105,1](226, 224) -> 223 -[106,1](227, 227) -> 224 -[106,1](228, 227) -> 225 -[106,1](229, 227) -> 226 -[107,1](230, 230) -> 227 -[107,1](231, 230) -> 228 -[107,1](232, 230) -> 229 -[108,1](233, 233) -> 230 -[108,1](234, 233) -> 231 -[108,1](235, 233) -> 232 -[109,1](236, 236) -> 233 -[109,1](237, 236) -> 234 -[109,1](238, 236) -> 235 -[110,1](239, 239) -> 236 -[110,1](240, 239) -> 237 -[110,1](241, 239) -> 238 -[111,1](242, 242) -> 239 -[111,1](243, 242) -> 240 -[111,1](244, 242) -> 241 -[112,1](245, 245) -> 242 -[112,1](246, 245) -> 243 -[112,1](247, 245) -> 244 -[113,1](248, 248) -> 245 -[113,1](249, 248) -> 246 -[113,1](250, 248) -> 247 -[114,1](251, 251) -> 248 -[114,1](252, 251) -> 249 -[114,1](253, 251) -> 250 -[115,1](254, 254) -> 251 -[115,1](255, 254) -> 252 -[115,1](256, 254) -> 253 -[116,1](257, 257) -> 254 -[116,1](258, 257) -> 255 -[116,1](259, 257) -> 256 -[117,1](260, 260) -> 257 -[117,1](261, 260) -> 258 -[117,1](262, 260) -> 259 -[118,1](263, 263) -> 260 -[118,1](264, 263) -> 261 -[118,1](265, 263) -> 262 -[119,1](266, 266) -> 263 -[119,1](267, 266) -> 264 -[119,1](268, 266) -> 265 -[120,1](269, 269) -> 266 -[120,1](270, 269) -> 267 -[120,1](271, 269) -> 268 -[121,1](272, 272) -> 269 -[121,1](273, 272) -> 270 -[121,1](274, 272) -> 271 -[122,1](275, 275) -> 272 -[122,1](276, 275) -> 273 -[122,1](277, 275) -> 274 -[123,1](278, 278) -> 275 -[123,1](279, 278) -> 276 -[123,1](280, 278) -> 277 -[124,1](281, 281) -> 278 -[124,1](282, 281) -> 279 -[124,1](283, 281) -> 280 -[125,1](284, 284) -> 281 -[125,1](285, 284) -> 282 -[125,1](286, 284) -> 283 -[126,1](287, 287) -> 284 -[126,1](288, 287) -> 285 -[126,1](289, 287) -> 286 -[127,1](290, 290) -> 287 -[127,1](291, 290) -> 288 -[127,1](292, 290) -> 289 -[128,1](293, 293) -> 290 -[128,1](294, 293) -> 291 -[128,1](295, 293) -> 292 -[129,1](296, 296) -> 293 -[129,1](297, 296) -> 294 -[129,1](298, 296) -> 295 -[130,1](299, 299) -> 296 -[130,1](300, 299) -> 297 -[130,1](301, 299) -> 298 -[131,1](302, 302) -> 299 -[131,1](303, 302) -> 300 -[131,1](304, 302) -> 301 -[132,1](305, 305) -> 302 -[132,1](306, 305) -> 303 -[132,1](307, 305) -> 304 -[133,1](308, 308) -> 305 -[133,1](309, 308) -> 306 -[133,1](310, 308) -> 307 -[134,1](311, 311) -> 308 -[134,1](312, 311) -> 309 -[134,1](313, 311) -> 310 -[135,1](314, 314) -> 311 -[135,1](315, 314) -> 312 -[135,1](316, 314) -> 313 -[136,1](317, 317) -> 314 -[136,1](318, 317) -> 315 -[136,1](319, 317) -> 316 -[137,1](320, 320) -> 317 -[137,1](321, 320) -> 318 -[137,1](322, 320) -> 319 -[138,1](323, 323) -> 320 -[138,1](324, 323) -> 321 -[138,1](325, 323) -> 322 -[139,1](326, 326) -> 323 -[139,1](327, 326) -> 324 -[139,1](328, 326) -> 325 -[140,1](329, 329) -> 326 -[140,1](330, 329) -> 327 -[140,1](331, 329) -> 328 -[141,1](332, 332) -> 329 -[141,1](333, 332) -> 330 -[141,1](334, 332) -> 331 -[142,1](335, 335) -> 332 -[142,1](336, 335) -> 333 -[142,1](337, 335) -> 334 -[143,1](338, 338) -> 335 -[143,1](339, 338) -> 336 -[143,1](340, 338) -> 337 -[144,1](341, 341) -> 338 -[144,1](342, 341) -> 339 -[144,1](343, 341) -> 340 -[145,1](344, 344) -> 341 -[145,1](345, 344) -> 342 -[145,1](346, 344) -> 343 -[146,1](347, 347) -> 344 -[146,1](348, 347) -> 345 -[146,1](349, 347) -> 346 -[147,1](350, 350) -> 347 -[147,1](351, 350) -> 348 -[147,1](352, 350) -> 349 -[148,1](353, 353) -> 350 -[148,1](354, 353) -> 351 -[148,1](355, 353) -> 352 -[149,1](356, 356) -> 353 -[149,1](357, 356) -> 354 -[149,1](358, 356) -> 355 -[150,1](359, 359) -> 356 -[150,1](360, 359) -> 357 -[150,1](361, 359) -> 358 -[151,1](362, 362) -> 359 -[151,1](363, 362) -> 360 -[151,1](364, 362) -> 361 -[152,1](365, 365) -> 362 -[152,1](366, 365) -> 363 -[152,1](367, 365) -> 364 -[153,1](368, 368) -> 365 -[153,1](369, 368) -> 366 -[153,1](370, 368) -> 367 -[154,1](371, 371) -> 368 -[154,1](372, 371) -> 369 -[154,1](373, 371) -> 370 -[155,1](374, 374) -> 371 -[155,1](375, 374) -> 372 -[155,1](376, 374) -> 373 -[156,1](377, 377) -> 374 -[156,1](378, 377) -> 375 -[156,1](379, 377) -> 376 -[157,1](380, 380) -> 377 -[157,1](381, 380) -> 378 -[157,1](382, 380) -> 379 -[158,1](383, 383) -> 380 -[158,1](384, 383) -> 381 -[158,1](385, 383) -> 382 -[159,1](386, 386) -> 383 -[159,1](387, 386) -> 384 -[159,1](388, 386) -> 385 -[160,1](389, 389) -> 386 -[160,1](390, 389) -> 387 -[160,1](391, 389) -> 388 -[161,1](392, 392) -> 389 -[161,1](393, 392) -> 390 -[161,1](394, 392) -> 391 -[162,1](395, 395) -> 392 -[162,1](396, 395) -> 393 -[162,1](397, 395) -> 394 -[163,1](398, 398) -> 395 -[163,1](399, 398) -> 396 -[163,1](400, 398) -> 397 -[164,1](401, 401) -> 398 -[164,1](402, 401) -> 399 -[164,1](403, 401) -> 400 -[165,1](404, 404) -> 401 -[165,1](405, 404) -> 402 -[165,1](406, 404) -> 403 -[166,1](407, 407) -> 404 -[166,1](408, 407) -> 405 -[166,1](409, 407) -> 406 -[167,1](410, 410) -> 407 -[167,1](411, 410) -> 408 -[167,1](412, 410) -> 409 -[168,1](413, 413) -> 410 -[168,1](414, 413) -> 411 -[168,1](415, 413) -> 412 -[169,1](416, 416) -> 413 -[169,1](417, 416) -> 414 -[169,1](418, 416) -> 415 -[170,1](419, 419) -> 416 -[170,1](420, 419) -> 417 -[170,1](421, 419) -> 418 -[171,1](422, 422) -> 419 -[171,1](423, 422) -> 420 -[171,1](424, 422) -> 421 -[172,1](425, 425) -> 422 -[172,1](426, 425) -> 423 -[172,1](427, 425) -> 424 -[173,1](428, 428) -> 425 -[173,1](429, 428) -> 426 -[173,1](430, 428) -> 427 -[174,1](431, 431) -> 428 -[174,1](432, 431) -> 429 -[174,1](433, 431) -> 430 -[175,1](434, 434) -> 431 -[175,1](435, 434) -> 432 -[175,1](436, 434) -> 433 -[176,1](437, 437) -> 434 -[176,1](438, 437) -> 435 -[176,1](439, 437) -> 436 -[177,1](440, 440) -> 437 -[177,1](441, 440) -> 438 -[177,1](442, 440) -> 439 -[178,1](443, 443) -> 440 -[178,1](444, 443) -> 441 -[178,1](445, 443) -> 442 -[c0,1] -> 443 -[a,1] -> 444 -[b,1] -> 445 -Constraints -618970019642690137449562111 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/90/circuit.qasm b/benchmarks/all/OEGrover/90/circuit.qasm index 14ffddd10..a869ba988 100644 --- a/benchmarks/all/OEGrover/90/circuit.qasm +++ b/benchmarks/all/OEGrover/90/circuit.qasm @@ -1,229 +1,229 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[180]; +qreg qubits[179]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -ccx qubits[0], qubits[1], qubits[91]; -ccx qubits[2], qubits[91], qubits[92]; -ccx qubits[3], qubits[92], qubits[93]; -ccx qubits[4], qubits[93], qubits[94]; -ccx qubits[5], qubits[94], qubits[95]; -ccx qubits[6], qubits[95], qubits[96]; -ccx qubits[7], qubits[96], qubits[97]; -ccx qubits[8], qubits[97], qubits[98]; -ccx qubits[9], qubits[98], qubits[99]; -ccx qubits[10], qubits[99], qubits[100]; -ccx qubits[11], qubits[100], qubits[101]; -ccx qubits[12], qubits[101], qubits[102]; -ccx qubits[13], qubits[102], qubits[103]; -ccx qubits[14], qubits[103], qubits[104]; -ccx qubits[15], qubits[104], qubits[105]; -ccx qubits[16], qubits[105], qubits[106]; -ccx qubits[17], qubits[106], qubits[107]; -ccx qubits[18], qubits[107], qubits[108]; -ccx qubits[19], qubits[108], qubits[109]; -ccx qubits[20], qubits[109], qubits[110]; -ccx qubits[21], qubits[110], qubits[111]; -ccx qubits[22], qubits[111], qubits[112]; -ccx qubits[23], qubits[112], qubits[113]; -ccx qubits[24], qubits[113], qubits[114]; -ccx qubits[25], qubits[114], qubits[115]; -ccx qubits[26], qubits[115], qubits[116]; -ccx qubits[27], qubits[116], qubits[117]; -ccx qubits[28], qubits[117], qubits[118]; -ccx qubits[29], qubits[118], qubits[119]; -ccx qubits[30], qubits[119], qubits[120]; -ccx qubits[31], qubits[120], qubits[121]; -ccx qubits[32], qubits[121], qubits[122]; -ccx qubits[33], qubits[122], qubits[123]; -ccx qubits[34], qubits[123], qubits[124]; -ccx qubits[35], qubits[124], qubits[125]; -ccx qubits[36], qubits[125], qubits[126]; -ccx qubits[37], qubits[126], qubits[127]; -ccx qubits[38], qubits[127], qubits[128]; -ccx qubits[39], qubits[128], qubits[129]; -ccx qubits[40], qubits[129], qubits[130]; -ccx qubits[41], qubits[130], qubits[131]; -ccx qubits[42], qubits[131], qubits[132]; -ccx qubits[43], qubits[132], qubits[133]; -ccx qubits[44], qubits[133], qubits[134]; -ccx qubits[45], qubits[134], qubits[135]; -ccx qubits[46], qubits[135], qubits[136]; -ccx qubits[47], qubits[136], qubits[137]; -ccx qubits[48], qubits[137], qubits[138]; -ccx qubits[49], qubits[138], qubits[139]; -ccx qubits[50], qubits[139], qubits[140]; -ccx qubits[51], qubits[140], qubits[141]; -ccx qubits[52], qubits[141], qubits[142]; -ccx qubits[53], qubits[142], qubits[143]; -ccx qubits[54], qubits[143], qubits[144]; -ccx qubits[55], qubits[144], qubits[145]; -ccx qubits[56], qubits[145], qubits[146]; -ccx qubits[57], qubits[146], qubits[147]; -ccx qubits[58], qubits[147], qubits[148]; -ccx qubits[59], qubits[148], qubits[149]; -ccx qubits[60], qubits[149], qubits[150]; -ccx qubits[61], qubits[150], qubits[151]; -ccx qubits[62], qubits[151], qubits[152]; -ccx qubits[63], qubits[152], qubits[153]; -ccx qubits[64], qubits[153], qubits[154]; -ccx qubits[65], qubits[154], qubits[155]; -ccx qubits[66], qubits[155], qubits[156]; -ccx qubits[67], qubits[156], qubits[157]; -ccx qubits[68], qubits[157], qubits[158]; -ccx qubits[69], qubits[158], qubits[159]; -ccx qubits[70], qubits[159], qubits[160]; -ccx qubits[71], qubits[160], qubits[161]; -ccx qubits[72], qubits[161], qubits[162]; -ccx qubits[73], qubits[162], qubits[163]; -ccx qubits[74], qubits[163], qubits[164]; -ccx qubits[75], qubits[164], qubits[165]; -ccx qubits[76], qubits[165], qubits[166]; -ccx qubits[77], qubits[166], qubits[167]; -ccx qubits[78], qubits[167], qubits[168]; -ccx qubits[79], qubits[168], qubits[169]; -ccx qubits[80], qubits[169], qubits[170]; -ccx qubits[81], qubits[170], qubits[171]; -ccx qubits[82], qubits[171], qubits[172]; -ccx qubits[83], qubits[172], qubits[173]; -ccx qubits[84], qubits[173], qubits[174]; -ccx qubits[85], qubits[174], qubits[175]; -ccx qubits[86], qubits[175], qubits[176]; -ccx qubits[87], qubits[176], qubits[177]; -ccx qubits[88], qubits[177], qubits[178]; -cz qubits[178], qubits[89]; -ccx qubits[88], qubits[177], qubits[178]; -ccx qubits[87], qubits[176], qubits[177]; -ccx qubits[86], qubits[175], qubits[176]; -ccx qubits[85], qubits[174], qubits[175]; -ccx qubits[84], qubits[173], qubits[174]; -ccx qubits[83], qubits[172], qubits[173]; -ccx qubits[82], qubits[171], qubits[172]; -ccx qubits[81], qubits[170], qubits[171]; -ccx qubits[80], qubits[169], qubits[170]; -ccx qubits[79], qubits[168], qubits[169]; -ccx qubits[78], qubits[167], qubits[168]; -ccx qubits[77], qubits[166], qubits[167]; -ccx qubits[76], qubits[165], qubits[166]; -ccx qubits[75], qubits[164], qubits[165]; -ccx qubits[74], qubits[163], qubits[164]; -ccx qubits[73], qubits[162], qubits[163]; -ccx qubits[72], qubits[161], qubits[162]; -ccx qubits[71], qubits[160], qubits[161]; -ccx qubits[70], qubits[159], qubits[160]; -ccx qubits[69], qubits[158], qubits[159]; -ccx qubits[68], qubits[157], qubits[158]; -ccx qubits[67], qubits[156], qubits[157]; -ccx qubits[66], qubits[155], qubits[156]; -ccx qubits[65], qubits[154], qubits[155]; -ccx qubits[64], qubits[153], qubits[154]; -ccx qubits[63], qubits[152], qubits[153]; -ccx qubits[62], qubits[151], qubits[152]; -ccx qubits[61], qubits[150], qubits[151]; -ccx qubits[60], qubits[149], qubits[150]; -ccx qubits[59], qubits[148], qubits[149]; -ccx qubits[58], qubits[147], qubits[148]; -ccx qubits[57], qubits[146], qubits[147]; -ccx qubits[56], qubits[145], qubits[146]; -ccx qubits[55], qubits[144], qubits[145]; -ccx qubits[54], qubits[143], qubits[144]; -ccx qubits[53], qubits[142], qubits[143]; -ccx qubits[52], qubits[141], qubits[142]; -ccx qubits[51], qubits[140], qubits[141]; -ccx qubits[50], qubits[139], qubits[140]; -ccx qubits[49], qubits[138], qubits[139]; -ccx qubits[48], qubits[137], qubits[138]; -ccx qubits[47], qubits[136], qubits[137]; -ccx qubits[46], qubits[135], qubits[136]; -ccx qubits[45], qubits[134], qubits[135]; -ccx qubits[44], qubits[133], qubits[134]; -ccx qubits[43], qubits[132], qubits[133]; -ccx qubits[42], qubits[131], qubits[132]; -ccx qubits[41], qubits[130], qubits[131]; -ccx qubits[40], qubits[129], qubits[130]; -ccx qubits[39], qubits[128], qubits[129]; -ccx qubits[38], qubits[127], qubits[128]; -ccx qubits[37], qubits[126], qubits[127]; -ccx qubits[36], qubits[125], qubits[126]; -ccx qubits[35], qubits[124], qubits[125]; -ccx qubits[34], qubits[123], qubits[124]; -ccx qubits[33], qubits[122], qubits[123]; -ccx qubits[32], qubits[121], qubits[122]; -ccx qubits[31], qubits[120], qubits[121]; -ccx qubits[30], qubits[119], qubits[120]; -ccx qubits[29], qubits[118], qubits[119]; -ccx qubits[28], qubits[117], qubits[118]; -ccx qubits[27], qubits[116], qubits[117]; -ccx qubits[26], qubits[115], qubits[116]; -ccx qubits[25], qubits[114], qubits[115]; -ccx qubits[24], qubits[113], qubits[114]; -ccx qubits[23], qubits[112], qubits[113]; -ccx qubits[22], qubits[111], qubits[112]; -ccx qubits[21], qubits[110], qubits[111]; -ccx qubits[20], qubits[109], qubits[110]; -ccx qubits[19], qubits[108], qubits[109]; -ccx qubits[18], qubits[107], qubits[108]; -ccx qubits[17], qubits[106], qubits[107]; -ccx qubits[16], qubits[105], qubits[106]; -ccx qubits[15], qubits[104], qubits[105]; -ccx qubits[14], qubits[103], qubits[104]; -ccx qubits[13], qubits[102], qubits[103]; -ccx qubits[12], qubits[101], qubits[102]; -ccx qubits[11], qubits[100], qubits[101]; -ccx qubits[10], qubits[99], qubits[100]; -ccx qubits[9], qubits[98], qubits[99]; -ccx qubits[8], qubits[97], qubits[98]; -ccx qubits[7], qubits[96], qubits[97]; -ccx qubits[6], qubits[95], qubits[96]; -ccx qubits[5], qubits[94], qubits[95]; -ccx qubits[4], qubits[93], qubits[94]; -ccx qubits[3], qubits[92], qubits[93]; -ccx qubits[2], qubits[91], qubits[92]; -ccx qubits[0], qubits[1], qubits[91]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +cz qubits[176], qubits[177]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -271,539 +271,539 @@ x qubits[86]; x qubits[88]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -ccx qubits[0], qubits[1], qubits[91]; -ccx qubits[2], qubits[91], qubits[92]; -ccx qubits[3], qubits[92], qubits[93]; -ccx qubits[4], qubits[93], qubits[94]; -ccx qubits[5], qubits[94], qubits[95]; -ccx qubits[6], qubits[95], qubits[96]; -ccx qubits[7], qubits[96], qubits[97]; -ccx qubits[8], qubits[97], qubits[98]; -ccx qubits[9], qubits[98], qubits[99]; -ccx qubits[10], qubits[99], qubits[100]; -ccx qubits[11], qubits[100], qubits[101]; -ccx qubits[12], qubits[101], qubits[102]; -ccx qubits[13], qubits[102], qubits[103]; -ccx qubits[14], qubits[103], qubits[104]; -ccx qubits[15], qubits[104], qubits[105]; -ccx qubits[16], qubits[105], qubits[106]; -ccx qubits[17], qubits[106], qubits[107]; -ccx qubits[18], qubits[107], qubits[108]; -ccx qubits[19], qubits[108], qubits[109]; -ccx qubits[20], qubits[109], qubits[110]; -ccx qubits[21], qubits[110], qubits[111]; -ccx qubits[22], qubits[111], qubits[112]; -ccx qubits[23], qubits[112], qubits[113]; -ccx qubits[24], qubits[113], qubits[114]; -ccx qubits[25], qubits[114], qubits[115]; -ccx qubits[26], qubits[115], qubits[116]; -ccx qubits[27], qubits[116], qubits[117]; -ccx qubits[28], qubits[117], qubits[118]; -ccx qubits[29], qubits[118], qubits[119]; -ccx qubits[30], qubits[119], qubits[120]; -ccx qubits[31], qubits[120], qubits[121]; -ccx qubits[32], qubits[121], qubits[122]; -ccx qubits[33], qubits[122], qubits[123]; -ccx qubits[34], qubits[123], qubits[124]; -ccx qubits[35], qubits[124], qubits[125]; -ccx qubits[36], qubits[125], qubits[126]; -ccx qubits[37], qubits[126], qubits[127]; -ccx qubits[38], qubits[127], qubits[128]; -ccx qubits[39], qubits[128], qubits[129]; -ccx qubits[40], qubits[129], qubits[130]; -ccx qubits[41], qubits[130], qubits[131]; -ccx qubits[42], qubits[131], qubits[132]; -ccx qubits[43], qubits[132], qubits[133]; -ccx qubits[44], qubits[133], qubits[134]; -ccx qubits[45], qubits[134], qubits[135]; -ccx qubits[46], qubits[135], qubits[136]; -ccx qubits[47], qubits[136], qubits[137]; -ccx qubits[48], qubits[137], qubits[138]; -ccx qubits[49], qubits[138], qubits[139]; -ccx qubits[50], qubits[139], qubits[140]; -ccx qubits[51], qubits[140], qubits[141]; -ccx qubits[52], qubits[141], qubits[142]; -ccx qubits[53], qubits[142], qubits[143]; -ccx qubits[54], qubits[143], qubits[144]; -ccx qubits[55], qubits[144], qubits[145]; -ccx qubits[56], qubits[145], qubits[146]; -ccx qubits[57], qubits[146], qubits[147]; -ccx qubits[58], qubits[147], qubits[148]; -ccx qubits[59], qubits[148], qubits[149]; -ccx qubits[60], qubits[149], qubits[150]; -ccx qubits[61], qubits[150], qubits[151]; -ccx qubits[62], qubits[151], qubits[152]; -ccx qubits[63], qubits[152], qubits[153]; -ccx qubits[64], qubits[153], qubits[154]; -ccx qubits[65], qubits[154], qubits[155]; -ccx qubits[66], qubits[155], qubits[156]; -ccx qubits[67], qubits[156], qubits[157]; -ccx qubits[68], qubits[157], qubits[158]; -ccx qubits[69], qubits[158], qubits[159]; -ccx qubits[70], qubits[159], qubits[160]; -ccx qubits[71], qubits[160], qubits[161]; -ccx qubits[72], qubits[161], qubits[162]; -ccx qubits[73], qubits[162], qubits[163]; -ccx qubits[74], qubits[163], qubits[164]; -ccx qubits[75], qubits[164], qubits[165]; -ccx qubits[76], qubits[165], qubits[166]; -ccx qubits[77], qubits[166], qubits[167]; -ccx qubits[78], qubits[167], qubits[168]; -ccx qubits[79], qubits[168], qubits[169]; -ccx qubits[80], qubits[169], qubits[170]; -ccx qubits[81], qubits[170], qubits[171]; -ccx qubits[82], qubits[171], qubits[172]; -ccx qubits[83], qubits[172], qubits[173]; -ccx qubits[84], qubits[173], qubits[174]; -ccx qubits[85], qubits[174], qubits[175]; -ccx qubits[86], qubits[175], qubits[176]; -ccx qubits[87], qubits[176], qubits[177]; -ccx qubits[88], qubits[177], qubits[178]; -cz qubits[178], qubits[89]; -ccx qubits[88], qubits[177], qubits[178]; -ccx qubits[87], qubits[176], qubits[177]; -ccx qubits[86], qubits[175], qubits[176]; -ccx qubits[85], qubits[174], qubits[175]; -ccx qubits[84], qubits[173], qubits[174]; -ccx qubits[83], qubits[172], qubits[173]; -ccx qubits[82], qubits[171], qubits[172]; -ccx qubits[81], qubits[170], qubits[171]; -ccx qubits[80], qubits[169], qubits[170]; -ccx qubits[79], qubits[168], qubits[169]; -ccx qubits[78], qubits[167], qubits[168]; -ccx qubits[77], qubits[166], qubits[167]; -ccx qubits[76], qubits[165], qubits[166]; -ccx qubits[75], qubits[164], qubits[165]; -ccx qubits[74], qubits[163], qubits[164]; -ccx qubits[73], qubits[162], qubits[163]; -ccx qubits[72], qubits[161], qubits[162]; -ccx qubits[71], qubits[160], qubits[161]; -ccx qubits[70], qubits[159], qubits[160]; -ccx qubits[69], qubits[158], qubits[159]; -ccx qubits[68], qubits[157], qubits[158]; -ccx qubits[67], qubits[156], qubits[157]; -ccx qubits[66], qubits[155], qubits[156]; -ccx qubits[65], qubits[154], qubits[155]; -ccx qubits[64], qubits[153], qubits[154]; -ccx qubits[63], qubits[152], qubits[153]; -ccx qubits[62], qubits[151], qubits[152]; -ccx qubits[61], qubits[150], qubits[151]; -ccx qubits[60], qubits[149], qubits[150]; -ccx qubits[59], qubits[148], qubits[149]; -ccx qubits[58], qubits[147], qubits[148]; -ccx qubits[57], qubits[146], qubits[147]; -ccx qubits[56], qubits[145], qubits[146]; -ccx qubits[55], qubits[144], qubits[145]; -ccx qubits[54], qubits[143], qubits[144]; -ccx qubits[53], qubits[142], qubits[143]; -ccx qubits[52], qubits[141], qubits[142]; -ccx qubits[51], qubits[140], qubits[141]; -ccx qubits[50], qubits[139], qubits[140]; -ccx qubits[49], qubits[138], qubits[139]; -ccx qubits[48], qubits[137], qubits[138]; -ccx qubits[47], qubits[136], qubits[137]; -ccx qubits[46], qubits[135], qubits[136]; -ccx qubits[45], qubits[134], qubits[135]; -ccx qubits[44], qubits[133], qubits[134]; -ccx qubits[43], qubits[132], qubits[133]; -ccx qubits[42], qubits[131], qubits[132]; -ccx qubits[41], qubits[130], qubits[131]; -ccx qubits[40], qubits[129], qubits[130]; -ccx qubits[39], qubits[128], qubits[129]; -ccx qubits[38], qubits[127], qubits[128]; -ccx qubits[37], qubits[126], qubits[127]; -ccx qubits[36], qubits[125], qubits[126]; -ccx qubits[35], qubits[124], qubits[125]; -ccx qubits[34], qubits[123], qubits[124]; -ccx qubits[33], qubits[122], qubits[123]; -ccx qubits[32], qubits[121], qubits[122]; -ccx qubits[31], qubits[120], qubits[121]; -ccx qubits[30], qubits[119], qubits[120]; -ccx qubits[29], qubits[118], qubits[119]; -ccx qubits[28], qubits[117], qubits[118]; -ccx qubits[27], qubits[116], qubits[117]; -ccx qubits[26], qubits[115], qubits[116]; -ccx qubits[25], qubits[114], qubits[115]; -ccx qubits[24], qubits[113], qubits[114]; -ccx qubits[23], qubits[112], qubits[113]; -ccx qubits[22], qubits[111], qubits[112]; -ccx qubits[21], qubits[110], qubits[111]; -ccx qubits[20], qubits[109], qubits[110]; -ccx qubits[19], qubits[108], qubits[109]; -ccx qubits[18], qubits[107], qubits[108]; -ccx qubits[17], qubits[106], qubits[107]; -ccx qubits[16], qubits[105], qubits[106]; -ccx qubits[15], qubits[104], qubits[105]; -ccx qubits[14], qubits[103], qubits[104]; -ccx qubits[13], qubits[102], qubits[103]; -ccx qubits[12], qubits[101], qubits[102]; -ccx qubits[11], qubits[100], qubits[101]; -ccx qubits[10], qubits[99], qubits[100]; -ccx qubits[9], qubits[98], qubits[99]; -ccx qubits[8], qubits[97], qubits[98]; -ccx qubits[7], qubits[96], qubits[97]; -ccx qubits[6], qubits[95], qubits[96]; -ccx qubits[5], qubits[94], qubits[95]; -ccx qubits[4], qubits[93], qubits[94]; -ccx qubits[3], qubits[92], qubits[93]; -ccx qubits[2], qubits[91], qubits[92]; -ccx qubits[0], qubits[1], qubits[91]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +cz qubits[176], qubits[177]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -z qubits[90]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +z qubits[178]; diff --git a/benchmarks/all/OEGrover/90/post.hsl b/benchmarks/all/OEGrover/90/post.hsl index 6284c6d53..b48381bff 100644 --- a/benchmarks/all/OEGrover/90/post.hsl +++ b/benchmarks/all/OEGrover/90/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 44 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/90/post.lsta b/benchmarks/all/OEGrover/90/post.lsta deleted file mode 100644 index 92dce884f..000000000 --- a/benchmarks/all/OEGrover/90/post.lsta +++ /dev/null @@ -1,457 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 182) -> 179 -[91,1](181, 183) -> 180 -[92,1](184, 184) -> 181 -[92,1](185, 184) -> 182 -[92,1](186, 184) -> 183 -[93,1](187, 187) -> 184 -[93,1](188, 187) -> 185 -[93,1](189, 187) -> 186 -[94,1](190, 190) -> 187 -[94,1](191, 190) -> 188 -[94,1](192, 190) -> 189 -[95,1](193, 193) -> 190 -[95,1](194, 193) -> 191 -[95,1](195, 193) -> 192 -[96,1](196, 196) -> 193 -[96,1](197, 196) -> 194 -[96,1](198, 196) -> 195 -[97,1](199, 199) -> 196 -[97,1](200, 199) -> 197 -[97,1](201, 199) -> 198 -[98,1](202, 202) -> 199 -[98,1](203, 202) -> 200 -[98,1](204, 202) -> 201 -[99,1](205, 205) -> 202 -[99,1](206, 205) -> 203 -[99,1](207, 205) -> 204 -[100,1](208, 208) -> 205 -[100,1](209, 208) -> 206 -[100,1](210, 208) -> 207 -[101,1](211, 211) -> 208 -[101,1](212, 211) -> 209 -[101,1](213, 211) -> 210 -[102,1](214, 214) -> 211 -[102,1](215, 214) -> 212 -[102,1](216, 214) -> 213 -[103,1](217, 217) -> 214 -[103,1](218, 217) -> 215 -[103,1](219, 217) -> 216 -[104,1](220, 220) -> 217 -[104,1](221, 220) -> 218 -[104,1](222, 220) -> 219 -[105,1](223, 223) -> 220 -[105,1](224, 223) -> 221 -[105,1](225, 223) -> 222 -[106,1](226, 226) -> 223 -[106,1](227, 226) -> 224 -[106,1](228, 226) -> 225 -[107,1](229, 229) -> 226 -[107,1](230, 229) -> 227 -[107,1](231, 229) -> 228 -[108,1](232, 232) -> 229 -[108,1](233, 232) -> 230 -[108,1](234, 232) -> 231 -[109,1](235, 235) -> 232 -[109,1](236, 235) -> 233 -[109,1](237, 235) -> 234 -[110,1](238, 238) -> 235 -[110,1](239, 238) -> 236 -[110,1](240, 238) -> 237 -[111,1](241, 241) -> 238 -[111,1](242, 241) -> 239 -[111,1](243, 241) -> 240 -[112,1](244, 244) -> 241 -[112,1](245, 244) -> 242 -[112,1](246, 244) -> 243 -[113,1](247, 247) -> 244 -[113,1](248, 247) -> 245 -[113,1](249, 247) -> 246 -[114,1](250, 250) -> 247 -[114,1](251, 250) -> 248 -[114,1](252, 250) -> 249 -[115,1](253, 253) -> 250 -[115,1](254, 253) -> 251 -[115,1](255, 253) -> 252 -[116,1](256, 256) -> 253 -[116,1](257, 256) -> 254 -[116,1](258, 256) -> 255 -[117,1](259, 259) -> 256 -[117,1](260, 259) -> 257 -[117,1](261, 259) -> 258 -[118,1](262, 262) -> 259 -[118,1](263, 262) -> 260 -[118,1](264, 262) -> 261 -[119,1](265, 265) -> 262 -[119,1](266, 265) -> 263 -[119,1](267, 265) -> 264 -[120,1](268, 268) -> 265 -[120,1](269, 268) -> 266 -[120,1](270, 268) -> 267 -[121,1](271, 271) -> 268 -[121,1](272, 271) -> 269 -[121,1](273, 271) -> 270 -[122,1](274, 274) -> 271 -[122,1](275, 274) -> 272 -[122,1](276, 274) -> 273 -[123,1](277, 277) -> 274 -[123,1](278, 277) -> 275 -[123,1](279, 277) -> 276 -[124,1](280, 280) -> 277 -[124,1](281, 280) -> 278 -[124,1](282, 280) -> 279 -[125,1](283, 283) -> 280 -[125,1](284, 283) -> 281 -[125,1](285, 283) -> 282 -[126,1](286, 286) -> 283 -[126,1](287, 286) -> 284 -[126,1](288, 286) -> 285 -[127,1](289, 289) -> 286 -[127,1](290, 289) -> 287 -[127,1](291, 289) -> 288 -[128,1](292, 292) -> 289 -[128,1](293, 292) -> 290 -[128,1](294, 292) -> 291 -[129,1](295, 295) -> 292 -[129,1](296, 295) -> 293 -[129,1](297, 295) -> 294 -[130,1](298, 298) -> 295 -[130,1](299, 298) -> 296 -[130,1](300, 298) -> 297 -[131,1](301, 301) -> 298 -[131,1](302, 301) -> 299 -[131,1](303, 301) -> 300 -[132,1](304, 304) -> 301 -[132,1](305, 304) -> 302 -[132,1](306, 304) -> 303 -[133,1](307, 307) -> 304 -[133,1](308, 307) -> 305 -[133,1](309, 307) -> 306 -[134,1](310, 310) -> 307 -[134,1](311, 310) -> 308 -[134,1](312, 310) -> 309 -[135,1](313, 313) -> 310 -[135,1](314, 313) -> 311 -[135,1](315, 313) -> 312 -[136,1](316, 316) -> 313 -[136,1](317, 316) -> 314 -[136,1](318, 316) -> 315 -[137,1](319, 319) -> 316 -[137,1](320, 319) -> 317 -[137,1](321, 319) -> 318 -[138,1](322, 322) -> 319 -[138,1](323, 322) -> 320 -[138,1](324, 322) -> 321 -[139,1](325, 325) -> 322 -[139,1](326, 325) -> 323 -[139,1](327, 325) -> 324 -[140,1](328, 328) -> 325 -[140,1](329, 328) -> 326 -[140,1](330, 328) -> 327 -[141,1](331, 331) -> 328 -[141,1](332, 331) -> 329 -[141,1](333, 331) -> 330 -[142,1](334, 334) -> 331 -[142,1](335, 334) -> 332 -[142,1](336, 334) -> 333 -[143,1](337, 337) -> 334 -[143,1](338, 337) -> 335 -[143,1](339, 337) -> 336 -[144,1](340, 340) -> 337 -[144,1](341, 340) -> 338 -[144,1](342, 340) -> 339 -[145,1](343, 343) -> 340 -[145,1](344, 343) -> 341 -[145,1](345, 343) -> 342 -[146,1](346, 346) -> 343 -[146,1](347, 346) -> 344 -[146,1](348, 346) -> 345 -[147,1](349, 349) -> 346 -[147,1](350, 349) -> 347 -[147,1](351, 349) -> 348 -[148,1](352, 352) -> 349 -[148,1](353, 352) -> 350 -[148,1](354, 352) -> 351 -[149,1](355, 355) -> 352 -[149,1](356, 355) -> 353 -[149,1](357, 355) -> 354 -[150,1](358, 358) -> 355 -[150,1](359, 358) -> 356 -[150,1](360, 358) -> 357 -[151,1](361, 361) -> 358 -[151,1](362, 361) -> 359 -[151,1](363, 361) -> 360 -[152,1](364, 364) -> 361 -[152,1](365, 364) -> 362 -[152,1](366, 364) -> 363 -[153,1](367, 367) -> 364 -[153,1](368, 367) -> 365 -[153,1](369, 367) -> 366 -[154,1](370, 370) -> 367 -[154,1](371, 370) -> 368 -[154,1](372, 370) -> 369 -[155,1](373, 373) -> 370 -[155,1](374, 373) -> 371 -[155,1](375, 373) -> 372 -[156,1](376, 376) -> 373 -[156,1](377, 376) -> 374 -[156,1](378, 376) -> 375 -[157,1](379, 379) -> 376 -[157,1](380, 379) -> 377 -[157,1](381, 379) -> 378 -[158,1](382, 382) -> 379 -[158,1](383, 382) -> 380 -[158,1](384, 382) -> 381 -[159,1](385, 385) -> 382 -[159,1](386, 385) -> 383 -[159,1](387, 385) -> 384 -[160,1](388, 388) -> 385 -[160,1](389, 388) -> 386 -[160,1](390, 388) -> 387 -[161,1](391, 391) -> 388 -[161,1](392, 391) -> 389 -[161,1](393, 391) -> 390 -[162,1](394, 394) -> 391 -[162,1](395, 394) -> 392 -[162,1](396, 394) -> 393 -[163,1](397, 397) -> 394 -[163,1](398, 397) -> 395 -[163,1](399, 397) -> 396 -[164,1](400, 400) -> 397 -[164,1](401, 400) -> 398 -[164,1](402, 400) -> 399 -[165,1](403, 403) -> 400 -[165,1](404, 403) -> 401 -[165,1](405, 403) -> 402 -[166,1](406, 406) -> 403 -[166,1](407, 406) -> 404 -[166,1](408, 406) -> 405 -[167,1](409, 409) -> 406 -[167,1](410, 409) -> 407 -[167,1](411, 409) -> 408 -[168,1](412, 412) -> 409 -[168,1](413, 412) -> 410 -[168,1](414, 412) -> 411 -[169,1](415, 415) -> 412 -[169,1](416, 415) -> 413 -[169,1](417, 415) -> 414 -[170,1](418, 418) -> 415 -[170,1](419, 418) -> 416 -[170,1](420, 418) -> 417 -[171,1](421, 421) -> 418 -[171,1](422, 421) -> 419 -[171,1](423, 421) -> 420 -[172,1](424, 424) -> 421 -[172,1](425, 424) -> 422 -[172,1](426, 424) -> 423 -[173,1](427, 427) -> 424 -[173,1](428, 427) -> 425 -[173,1](429, 427) -> 426 -[174,1](430, 430) -> 427 -[174,1](431, 430) -> 428 -[174,1](432, 430) -> 429 -[175,1](433, 433) -> 430 -[175,1](434, 433) -> 431 -[175,1](435, 433) -> 432 -[176,1](436, 436) -> 433 -[176,1](437, 436) -> 434 -[176,1](438, 436) -> 435 -[177,1](439, 439) -> 436 -[177,1](440, 439) -> 437 -[177,1](441, 439) -> 438 -[178,1](442, 442) -> 439 -[178,1](443, 442) -> 440 -[178,1](444, 442) -> 441 -[179,1](445, 445) -> 442 -[179,1](446, 445) -> 443 -[179,1](447, 445) -> 444 -[180,1](448, 448) -> 445 -[180,1](449, 448) -> 446 -[180,1](450, 448) -> 447 -[p1,1] -> 448 -[p2,1] -> 449 -[p3,1] -> 450 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/90/pre.hsl b/benchmarks/all/OEGrover/90/pre.hsl index 84dbde60b..aba0d451c 100644 --- a/benchmarks/all/OEGrover/90/pre.hsl +++ b/benchmarks/all/OEGrover/90/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 44 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 1237940039285380274899124223 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/90/pre.lsta b/benchmarks/all/OEGrover/90/pre.lsta deleted file mode 100644 index 4184dd8da..000000000 --- a/benchmarks/all/OEGrover/90/pre.lsta +++ /dev/null @@ -1,461 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 182) -> 179 -[91,1](181, 183) -> 180 -[92,1](184, 184) -> 181 -[92,1](185, 184) -> 182 -[92,1](186, 184) -> 183 -[93,1](187, 187) -> 184 -[93,1](188, 187) -> 185 -[93,1](189, 187) -> 186 -[94,1](190, 190) -> 187 -[94,1](191, 190) -> 188 -[94,1](192, 190) -> 189 -[95,1](193, 193) -> 190 -[95,1](194, 193) -> 191 -[95,1](195, 193) -> 192 -[96,1](196, 196) -> 193 -[96,1](197, 196) -> 194 -[96,1](198, 196) -> 195 -[97,1](199, 199) -> 196 -[97,1](200, 199) -> 197 -[97,1](201, 199) -> 198 -[98,1](202, 202) -> 199 -[98,1](203, 202) -> 200 -[98,1](204, 202) -> 201 -[99,1](205, 205) -> 202 -[99,1](206, 205) -> 203 -[99,1](207, 205) -> 204 -[100,1](208, 208) -> 205 -[100,1](209, 208) -> 206 -[100,1](210, 208) -> 207 -[101,1](211, 211) -> 208 -[101,1](212, 211) -> 209 -[101,1](213, 211) -> 210 -[102,1](214, 214) -> 211 -[102,1](215, 214) -> 212 -[102,1](216, 214) -> 213 -[103,1](217, 217) -> 214 -[103,1](218, 217) -> 215 -[103,1](219, 217) -> 216 -[104,1](220, 220) -> 217 -[104,1](221, 220) -> 218 -[104,1](222, 220) -> 219 -[105,1](223, 223) -> 220 -[105,1](224, 223) -> 221 -[105,1](225, 223) -> 222 -[106,1](226, 226) -> 223 -[106,1](227, 226) -> 224 -[106,1](228, 226) -> 225 -[107,1](229, 229) -> 226 -[107,1](230, 229) -> 227 -[107,1](231, 229) -> 228 -[108,1](232, 232) -> 229 -[108,1](233, 232) -> 230 -[108,1](234, 232) -> 231 -[109,1](235, 235) -> 232 -[109,1](236, 235) -> 233 -[109,1](237, 235) -> 234 -[110,1](238, 238) -> 235 -[110,1](239, 238) -> 236 -[110,1](240, 238) -> 237 -[111,1](241, 241) -> 238 -[111,1](242, 241) -> 239 -[111,1](243, 241) -> 240 -[112,1](244, 244) -> 241 -[112,1](245, 244) -> 242 -[112,1](246, 244) -> 243 -[113,1](247, 247) -> 244 -[113,1](248, 247) -> 245 -[113,1](249, 247) -> 246 -[114,1](250, 250) -> 247 -[114,1](251, 250) -> 248 -[114,1](252, 250) -> 249 -[115,1](253, 253) -> 250 -[115,1](254, 253) -> 251 -[115,1](255, 253) -> 252 -[116,1](256, 256) -> 253 -[116,1](257, 256) -> 254 -[116,1](258, 256) -> 255 -[117,1](259, 259) -> 256 -[117,1](260, 259) -> 257 -[117,1](261, 259) -> 258 -[118,1](262, 262) -> 259 -[118,1](263, 262) -> 260 -[118,1](264, 262) -> 261 -[119,1](265, 265) -> 262 -[119,1](266, 265) -> 263 -[119,1](267, 265) -> 264 -[120,1](268, 268) -> 265 -[120,1](269, 268) -> 266 -[120,1](270, 268) -> 267 -[121,1](271, 271) -> 268 -[121,1](272, 271) -> 269 -[121,1](273, 271) -> 270 -[122,1](274, 274) -> 271 -[122,1](275, 274) -> 272 -[122,1](276, 274) -> 273 -[123,1](277, 277) -> 274 -[123,1](278, 277) -> 275 -[123,1](279, 277) -> 276 -[124,1](280, 280) -> 277 -[124,1](281, 280) -> 278 -[124,1](282, 280) -> 279 -[125,1](283, 283) -> 280 -[125,1](284, 283) -> 281 -[125,1](285, 283) -> 282 -[126,1](286, 286) -> 283 -[126,1](287, 286) -> 284 -[126,1](288, 286) -> 285 -[127,1](289, 289) -> 286 -[127,1](290, 289) -> 287 -[127,1](291, 289) -> 288 -[128,1](292, 292) -> 289 -[128,1](293, 292) -> 290 -[128,1](294, 292) -> 291 -[129,1](295, 295) -> 292 -[129,1](296, 295) -> 293 -[129,1](297, 295) -> 294 -[130,1](298, 298) -> 295 -[130,1](299, 298) -> 296 -[130,1](300, 298) -> 297 -[131,1](301, 301) -> 298 -[131,1](302, 301) -> 299 -[131,1](303, 301) -> 300 -[132,1](304, 304) -> 301 -[132,1](305, 304) -> 302 -[132,1](306, 304) -> 303 -[133,1](307, 307) -> 304 -[133,1](308, 307) -> 305 -[133,1](309, 307) -> 306 -[134,1](310, 310) -> 307 -[134,1](311, 310) -> 308 -[134,1](312, 310) -> 309 -[135,1](313, 313) -> 310 -[135,1](314, 313) -> 311 -[135,1](315, 313) -> 312 -[136,1](316, 316) -> 313 -[136,1](317, 316) -> 314 -[136,1](318, 316) -> 315 -[137,1](319, 319) -> 316 -[137,1](320, 319) -> 317 -[137,1](321, 319) -> 318 -[138,1](322, 322) -> 319 -[138,1](323, 322) -> 320 -[138,1](324, 322) -> 321 -[139,1](325, 325) -> 322 -[139,1](326, 325) -> 323 -[139,1](327, 325) -> 324 -[140,1](328, 328) -> 325 -[140,1](329, 328) -> 326 -[140,1](330, 328) -> 327 -[141,1](331, 331) -> 328 -[141,1](332, 331) -> 329 -[141,1](333, 331) -> 330 -[142,1](334, 334) -> 331 -[142,1](335, 334) -> 332 -[142,1](336, 334) -> 333 -[143,1](337, 337) -> 334 -[143,1](338, 337) -> 335 -[143,1](339, 337) -> 336 -[144,1](340, 340) -> 337 -[144,1](341, 340) -> 338 -[144,1](342, 340) -> 339 -[145,1](343, 343) -> 340 -[145,1](344, 343) -> 341 -[145,1](345, 343) -> 342 -[146,1](346, 346) -> 343 -[146,1](347, 346) -> 344 -[146,1](348, 346) -> 345 -[147,1](349, 349) -> 346 -[147,1](350, 349) -> 347 -[147,1](351, 349) -> 348 -[148,1](352, 352) -> 349 -[148,1](353, 352) -> 350 -[148,1](354, 352) -> 351 -[149,1](355, 355) -> 352 -[149,1](356, 355) -> 353 -[149,1](357, 355) -> 354 -[150,1](358, 358) -> 355 -[150,1](359, 358) -> 356 -[150,1](360, 358) -> 357 -[151,1](361, 361) -> 358 -[151,1](362, 361) -> 359 -[151,1](363, 361) -> 360 -[152,1](364, 364) -> 361 -[152,1](365, 364) -> 362 -[152,1](366, 364) -> 363 -[153,1](367, 367) -> 364 -[153,1](368, 367) -> 365 -[153,1](369, 367) -> 366 -[154,1](370, 370) -> 367 -[154,1](371, 370) -> 368 -[154,1](372, 370) -> 369 -[155,1](373, 373) -> 370 -[155,1](374, 373) -> 371 -[155,1](375, 373) -> 372 -[156,1](376, 376) -> 373 -[156,1](377, 376) -> 374 -[156,1](378, 376) -> 375 -[157,1](379, 379) -> 376 -[157,1](380, 379) -> 377 -[157,1](381, 379) -> 378 -[158,1](382, 382) -> 379 -[158,1](383, 382) -> 380 -[158,1](384, 382) -> 381 -[159,1](385, 385) -> 382 -[159,1](386, 385) -> 383 -[159,1](387, 385) -> 384 -[160,1](388, 388) -> 385 -[160,1](389, 388) -> 386 -[160,1](390, 388) -> 387 -[161,1](391, 391) -> 388 -[161,1](392, 391) -> 389 -[161,1](393, 391) -> 390 -[162,1](394, 394) -> 391 -[162,1](395, 394) -> 392 -[162,1](396, 394) -> 393 -[163,1](397, 397) -> 394 -[163,1](398, 397) -> 395 -[163,1](399, 397) -> 396 -[164,1](400, 400) -> 397 -[164,1](401, 400) -> 398 -[164,1](402, 400) -> 399 -[165,1](403, 403) -> 400 -[165,1](404, 403) -> 401 -[165,1](405, 403) -> 402 -[166,1](406, 406) -> 403 -[166,1](407, 406) -> 404 -[166,1](408, 406) -> 405 -[167,1](409, 409) -> 406 -[167,1](410, 409) -> 407 -[167,1](411, 409) -> 408 -[168,1](412, 412) -> 409 -[168,1](413, 412) -> 410 -[168,1](414, 412) -> 411 -[169,1](415, 415) -> 412 -[169,1](416, 415) -> 413 -[169,1](417, 415) -> 414 -[170,1](418, 418) -> 415 -[170,1](419, 418) -> 416 -[170,1](420, 418) -> 417 -[171,1](421, 421) -> 418 -[171,1](422, 421) -> 419 -[171,1](423, 421) -> 420 -[172,1](424, 424) -> 421 -[172,1](425, 424) -> 422 -[172,1](426, 424) -> 423 -[173,1](427, 427) -> 424 -[173,1](428, 427) -> 425 -[173,1](429, 427) -> 426 -[174,1](430, 430) -> 427 -[174,1](431, 430) -> 428 -[174,1](432, 430) -> 429 -[175,1](433, 433) -> 430 -[175,1](434, 433) -> 431 -[175,1](435, 433) -> 432 -[176,1](436, 436) -> 433 -[176,1](437, 436) -> 434 -[176,1](438, 436) -> 435 -[177,1](439, 439) -> 436 -[177,1](440, 439) -> 437 -[177,1](441, 439) -> 438 -[178,1](442, 442) -> 439 -[178,1](443, 442) -> 440 -[178,1](444, 442) -> 441 -[179,1](445, 445) -> 442 -[179,1](446, 445) -> 443 -[179,1](447, 445) -> 444 -[180,1](448, 448) -> 445 -[180,1](449, 448) -> 446 -[180,1](450, 448) -> 447 -[c0,1] -> 448 -[a,1] -> 449 -[b,1] -> 450 -Constraints -1237940039285380274899124223 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/91/circuit.qasm b/benchmarks/all/OEGrover/91/circuit.qasm index 5b915c557..f9a6fe960 100644 --- a/benchmarks/all/OEGrover/91/circuit.qasm +++ b/benchmarks/all/OEGrover/91/circuit.qasm @@ -1,232 +1,232 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[182]; +qreg qubits[181]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -ccx qubits[0], qubits[1], qubits[92]; -ccx qubits[2], qubits[92], qubits[93]; -ccx qubits[3], qubits[93], qubits[94]; -ccx qubits[4], qubits[94], qubits[95]; -ccx qubits[5], qubits[95], qubits[96]; -ccx qubits[6], qubits[96], qubits[97]; -ccx qubits[7], qubits[97], qubits[98]; -ccx qubits[8], qubits[98], qubits[99]; -ccx qubits[9], qubits[99], qubits[100]; -ccx qubits[10], qubits[100], qubits[101]; -ccx qubits[11], qubits[101], qubits[102]; -ccx qubits[12], qubits[102], qubits[103]; -ccx qubits[13], qubits[103], qubits[104]; -ccx qubits[14], qubits[104], qubits[105]; -ccx qubits[15], qubits[105], qubits[106]; -ccx qubits[16], qubits[106], qubits[107]; -ccx qubits[17], qubits[107], qubits[108]; -ccx qubits[18], qubits[108], qubits[109]; -ccx qubits[19], qubits[109], qubits[110]; -ccx qubits[20], qubits[110], qubits[111]; -ccx qubits[21], qubits[111], qubits[112]; -ccx qubits[22], qubits[112], qubits[113]; -ccx qubits[23], qubits[113], qubits[114]; -ccx qubits[24], qubits[114], qubits[115]; -ccx qubits[25], qubits[115], qubits[116]; -ccx qubits[26], qubits[116], qubits[117]; -ccx qubits[27], qubits[117], qubits[118]; -ccx qubits[28], qubits[118], qubits[119]; -ccx qubits[29], qubits[119], qubits[120]; -ccx qubits[30], qubits[120], qubits[121]; -ccx qubits[31], qubits[121], qubits[122]; -ccx qubits[32], qubits[122], qubits[123]; -ccx qubits[33], qubits[123], qubits[124]; -ccx qubits[34], qubits[124], qubits[125]; -ccx qubits[35], qubits[125], qubits[126]; -ccx qubits[36], qubits[126], qubits[127]; -ccx qubits[37], qubits[127], qubits[128]; -ccx qubits[38], qubits[128], qubits[129]; -ccx qubits[39], qubits[129], qubits[130]; -ccx qubits[40], qubits[130], qubits[131]; -ccx qubits[41], qubits[131], qubits[132]; -ccx qubits[42], qubits[132], qubits[133]; -ccx qubits[43], qubits[133], qubits[134]; -ccx qubits[44], qubits[134], qubits[135]; -ccx qubits[45], qubits[135], qubits[136]; -ccx qubits[46], qubits[136], qubits[137]; -ccx qubits[47], qubits[137], qubits[138]; -ccx qubits[48], qubits[138], qubits[139]; -ccx qubits[49], qubits[139], qubits[140]; -ccx qubits[50], qubits[140], qubits[141]; -ccx qubits[51], qubits[141], qubits[142]; -ccx qubits[52], qubits[142], qubits[143]; -ccx qubits[53], qubits[143], qubits[144]; -ccx qubits[54], qubits[144], qubits[145]; -ccx qubits[55], qubits[145], qubits[146]; -ccx qubits[56], qubits[146], qubits[147]; -ccx qubits[57], qubits[147], qubits[148]; -ccx qubits[58], qubits[148], qubits[149]; -ccx qubits[59], qubits[149], qubits[150]; -ccx qubits[60], qubits[150], qubits[151]; -ccx qubits[61], qubits[151], qubits[152]; -ccx qubits[62], qubits[152], qubits[153]; -ccx qubits[63], qubits[153], qubits[154]; -ccx qubits[64], qubits[154], qubits[155]; -ccx qubits[65], qubits[155], qubits[156]; -ccx qubits[66], qubits[156], qubits[157]; -ccx qubits[67], qubits[157], qubits[158]; -ccx qubits[68], qubits[158], qubits[159]; -ccx qubits[69], qubits[159], qubits[160]; -ccx qubits[70], qubits[160], qubits[161]; -ccx qubits[71], qubits[161], qubits[162]; -ccx qubits[72], qubits[162], qubits[163]; -ccx qubits[73], qubits[163], qubits[164]; -ccx qubits[74], qubits[164], qubits[165]; -ccx qubits[75], qubits[165], qubits[166]; -ccx qubits[76], qubits[166], qubits[167]; -ccx qubits[77], qubits[167], qubits[168]; -ccx qubits[78], qubits[168], qubits[169]; -ccx qubits[79], qubits[169], qubits[170]; -ccx qubits[80], qubits[170], qubits[171]; -ccx qubits[81], qubits[171], qubits[172]; -ccx qubits[82], qubits[172], qubits[173]; -ccx qubits[83], qubits[173], qubits[174]; -ccx qubits[84], qubits[174], qubits[175]; -ccx qubits[85], qubits[175], qubits[176]; -ccx qubits[86], qubits[176], qubits[177]; -ccx qubits[87], qubits[177], qubits[178]; -ccx qubits[88], qubits[178], qubits[179]; -ccx qubits[89], qubits[179], qubits[180]; -cz qubits[180], qubits[90]; -ccx qubits[89], qubits[179], qubits[180]; -ccx qubits[88], qubits[178], qubits[179]; -ccx qubits[87], qubits[177], qubits[178]; -ccx qubits[86], qubits[176], qubits[177]; -ccx qubits[85], qubits[175], qubits[176]; -ccx qubits[84], qubits[174], qubits[175]; -ccx qubits[83], qubits[173], qubits[174]; -ccx qubits[82], qubits[172], qubits[173]; -ccx qubits[81], qubits[171], qubits[172]; -ccx qubits[80], qubits[170], qubits[171]; -ccx qubits[79], qubits[169], qubits[170]; -ccx qubits[78], qubits[168], qubits[169]; -ccx qubits[77], qubits[167], qubits[168]; -ccx qubits[76], qubits[166], qubits[167]; -ccx qubits[75], qubits[165], qubits[166]; -ccx qubits[74], qubits[164], qubits[165]; -ccx qubits[73], qubits[163], qubits[164]; -ccx qubits[72], qubits[162], qubits[163]; -ccx qubits[71], qubits[161], qubits[162]; -ccx qubits[70], qubits[160], qubits[161]; -ccx qubits[69], qubits[159], qubits[160]; -ccx qubits[68], qubits[158], qubits[159]; -ccx qubits[67], qubits[157], qubits[158]; -ccx qubits[66], qubits[156], qubits[157]; -ccx qubits[65], qubits[155], qubits[156]; -ccx qubits[64], qubits[154], qubits[155]; -ccx qubits[63], qubits[153], qubits[154]; -ccx qubits[62], qubits[152], qubits[153]; -ccx qubits[61], qubits[151], qubits[152]; -ccx qubits[60], qubits[150], qubits[151]; -ccx qubits[59], qubits[149], qubits[150]; -ccx qubits[58], qubits[148], qubits[149]; -ccx qubits[57], qubits[147], qubits[148]; -ccx qubits[56], qubits[146], qubits[147]; -ccx qubits[55], qubits[145], qubits[146]; -ccx qubits[54], qubits[144], qubits[145]; -ccx qubits[53], qubits[143], qubits[144]; -ccx qubits[52], qubits[142], qubits[143]; -ccx qubits[51], qubits[141], qubits[142]; -ccx qubits[50], qubits[140], qubits[141]; -ccx qubits[49], qubits[139], qubits[140]; -ccx qubits[48], qubits[138], qubits[139]; -ccx qubits[47], qubits[137], qubits[138]; -ccx qubits[46], qubits[136], qubits[137]; -ccx qubits[45], qubits[135], qubits[136]; -ccx qubits[44], qubits[134], qubits[135]; -ccx qubits[43], qubits[133], qubits[134]; -ccx qubits[42], qubits[132], qubits[133]; -ccx qubits[41], qubits[131], qubits[132]; -ccx qubits[40], qubits[130], qubits[131]; -ccx qubits[39], qubits[129], qubits[130]; -ccx qubits[38], qubits[128], qubits[129]; -ccx qubits[37], qubits[127], qubits[128]; -ccx qubits[36], qubits[126], qubits[127]; -ccx qubits[35], qubits[125], qubits[126]; -ccx qubits[34], qubits[124], qubits[125]; -ccx qubits[33], qubits[123], qubits[124]; -ccx qubits[32], qubits[122], qubits[123]; -ccx qubits[31], qubits[121], qubits[122]; -ccx qubits[30], qubits[120], qubits[121]; -ccx qubits[29], qubits[119], qubits[120]; -ccx qubits[28], qubits[118], qubits[119]; -ccx qubits[27], qubits[117], qubits[118]; -ccx qubits[26], qubits[116], qubits[117]; -ccx qubits[25], qubits[115], qubits[116]; -ccx qubits[24], qubits[114], qubits[115]; -ccx qubits[23], qubits[113], qubits[114]; -ccx qubits[22], qubits[112], qubits[113]; -ccx qubits[21], qubits[111], qubits[112]; -ccx qubits[20], qubits[110], qubits[111]; -ccx qubits[19], qubits[109], qubits[110]; -ccx qubits[18], qubits[108], qubits[109]; -ccx qubits[17], qubits[107], qubits[108]; -ccx qubits[16], qubits[106], qubits[107]; -ccx qubits[15], qubits[105], qubits[106]; -ccx qubits[14], qubits[104], qubits[105]; -ccx qubits[13], qubits[103], qubits[104]; -ccx qubits[12], qubits[102], qubits[103]; -ccx qubits[11], qubits[101], qubits[102]; -ccx qubits[10], qubits[100], qubits[101]; -ccx qubits[9], qubits[99], qubits[100]; -ccx qubits[8], qubits[98], qubits[99]; -ccx qubits[7], qubits[97], qubits[98]; -ccx qubits[6], qubits[96], qubits[97]; -ccx qubits[5], qubits[95], qubits[96]; -ccx qubits[4], qubits[94], qubits[95]; -ccx qubits[3], qubits[93], qubits[94]; -ccx qubits[2], qubits[92], qubits[93]; -ccx qubits[0], qubits[1], qubits[92]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +cz qubits[178], qubits[179]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -275,545 +275,545 @@ x qubits[88]; x qubits[90]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; -ccx qubits[0], qubits[1], qubits[92]; -ccx qubits[2], qubits[92], qubits[93]; -ccx qubits[3], qubits[93], qubits[94]; -ccx qubits[4], qubits[94], qubits[95]; -ccx qubits[5], qubits[95], qubits[96]; -ccx qubits[6], qubits[96], qubits[97]; -ccx qubits[7], qubits[97], qubits[98]; -ccx qubits[8], qubits[98], qubits[99]; -ccx qubits[9], qubits[99], qubits[100]; -ccx qubits[10], qubits[100], qubits[101]; -ccx qubits[11], qubits[101], qubits[102]; -ccx qubits[12], qubits[102], qubits[103]; -ccx qubits[13], qubits[103], qubits[104]; -ccx qubits[14], qubits[104], qubits[105]; -ccx qubits[15], qubits[105], qubits[106]; -ccx qubits[16], qubits[106], qubits[107]; -ccx qubits[17], qubits[107], qubits[108]; -ccx qubits[18], qubits[108], qubits[109]; -ccx qubits[19], qubits[109], qubits[110]; -ccx qubits[20], qubits[110], qubits[111]; -ccx qubits[21], qubits[111], qubits[112]; -ccx qubits[22], qubits[112], qubits[113]; -ccx qubits[23], qubits[113], qubits[114]; -ccx qubits[24], qubits[114], qubits[115]; -ccx qubits[25], qubits[115], qubits[116]; -ccx qubits[26], qubits[116], qubits[117]; -ccx qubits[27], qubits[117], qubits[118]; -ccx qubits[28], qubits[118], qubits[119]; -ccx qubits[29], qubits[119], qubits[120]; -ccx qubits[30], qubits[120], qubits[121]; -ccx qubits[31], qubits[121], qubits[122]; -ccx qubits[32], qubits[122], qubits[123]; -ccx qubits[33], qubits[123], qubits[124]; -ccx qubits[34], qubits[124], qubits[125]; -ccx qubits[35], qubits[125], qubits[126]; -ccx qubits[36], qubits[126], qubits[127]; -ccx qubits[37], qubits[127], qubits[128]; -ccx qubits[38], qubits[128], qubits[129]; -ccx qubits[39], qubits[129], qubits[130]; -ccx qubits[40], qubits[130], qubits[131]; -ccx qubits[41], qubits[131], qubits[132]; -ccx qubits[42], qubits[132], qubits[133]; -ccx qubits[43], qubits[133], qubits[134]; -ccx qubits[44], qubits[134], qubits[135]; -ccx qubits[45], qubits[135], qubits[136]; -ccx qubits[46], qubits[136], qubits[137]; -ccx qubits[47], qubits[137], qubits[138]; -ccx qubits[48], qubits[138], qubits[139]; -ccx qubits[49], qubits[139], qubits[140]; -ccx qubits[50], qubits[140], qubits[141]; -ccx qubits[51], qubits[141], qubits[142]; -ccx qubits[52], qubits[142], qubits[143]; -ccx qubits[53], qubits[143], qubits[144]; -ccx qubits[54], qubits[144], qubits[145]; -ccx qubits[55], qubits[145], qubits[146]; -ccx qubits[56], qubits[146], qubits[147]; -ccx qubits[57], qubits[147], qubits[148]; -ccx qubits[58], qubits[148], qubits[149]; -ccx qubits[59], qubits[149], qubits[150]; -ccx qubits[60], qubits[150], qubits[151]; -ccx qubits[61], qubits[151], qubits[152]; -ccx qubits[62], qubits[152], qubits[153]; -ccx qubits[63], qubits[153], qubits[154]; -ccx qubits[64], qubits[154], qubits[155]; -ccx qubits[65], qubits[155], qubits[156]; -ccx qubits[66], qubits[156], qubits[157]; -ccx qubits[67], qubits[157], qubits[158]; -ccx qubits[68], qubits[158], qubits[159]; -ccx qubits[69], qubits[159], qubits[160]; -ccx qubits[70], qubits[160], qubits[161]; -ccx qubits[71], qubits[161], qubits[162]; -ccx qubits[72], qubits[162], qubits[163]; -ccx qubits[73], qubits[163], qubits[164]; -ccx qubits[74], qubits[164], qubits[165]; -ccx qubits[75], qubits[165], qubits[166]; -ccx qubits[76], qubits[166], qubits[167]; -ccx qubits[77], qubits[167], qubits[168]; -ccx qubits[78], qubits[168], qubits[169]; -ccx qubits[79], qubits[169], qubits[170]; -ccx qubits[80], qubits[170], qubits[171]; -ccx qubits[81], qubits[171], qubits[172]; -ccx qubits[82], qubits[172], qubits[173]; -ccx qubits[83], qubits[173], qubits[174]; -ccx qubits[84], qubits[174], qubits[175]; -ccx qubits[85], qubits[175], qubits[176]; -ccx qubits[86], qubits[176], qubits[177]; -ccx qubits[87], qubits[177], qubits[178]; -ccx qubits[88], qubits[178], qubits[179]; -ccx qubits[89], qubits[179], qubits[180]; -cz qubits[180], qubits[90]; -ccx qubits[89], qubits[179], qubits[180]; -ccx qubits[88], qubits[178], qubits[179]; -ccx qubits[87], qubits[177], qubits[178]; -ccx qubits[86], qubits[176], qubits[177]; -ccx qubits[85], qubits[175], qubits[176]; -ccx qubits[84], qubits[174], qubits[175]; -ccx qubits[83], qubits[173], qubits[174]; -ccx qubits[82], qubits[172], qubits[173]; -ccx qubits[81], qubits[171], qubits[172]; -ccx qubits[80], qubits[170], qubits[171]; -ccx qubits[79], qubits[169], qubits[170]; -ccx qubits[78], qubits[168], qubits[169]; -ccx qubits[77], qubits[167], qubits[168]; -ccx qubits[76], qubits[166], qubits[167]; -ccx qubits[75], qubits[165], qubits[166]; -ccx qubits[74], qubits[164], qubits[165]; -ccx qubits[73], qubits[163], qubits[164]; -ccx qubits[72], qubits[162], qubits[163]; -ccx qubits[71], qubits[161], qubits[162]; -ccx qubits[70], qubits[160], qubits[161]; -ccx qubits[69], qubits[159], qubits[160]; -ccx qubits[68], qubits[158], qubits[159]; -ccx qubits[67], qubits[157], qubits[158]; -ccx qubits[66], qubits[156], qubits[157]; -ccx qubits[65], qubits[155], qubits[156]; -ccx qubits[64], qubits[154], qubits[155]; -ccx qubits[63], qubits[153], qubits[154]; -ccx qubits[62], qubits[152], qubits[153]; -ccx qubits[61], qubits[151], qubits[152]; -ccx qubits[60], qubits[150], qubits[151]; -ccx qubits[59], qubits[149], qubits[150]; -ccx qubits[58], qubits[148], qubits[149]; -ccx qubits[57], qubits[147], qubits[148]; -ccx qubits[56], qubits[146], qubits[147]; -ccx qubits[55], qubits[145], qubits[146]; -ccx qubits[54], qubits[144], qubits[145]; -ccx qubits[53], qubits[143], qubits[144]; -ccx qubits[52], qubits[142], qubits[143]; -ccx qubits[51], qubits[141], qubits[142]; -ccx qubits[50], qubits[140], qubits[141]; -ccx qubits[49], qubits[139], qubits[140]; -ccx qubits[48], qubits[138], qubits[139]; -ccx qubits[47], qubits[137], qubits[138]; -ccx qubits[46], qubits[136], qubits[137]; -ccx qubits[45], qubits[135], qubits[136]; -ccx qubits[44], qubits[134], qubits[135]; -ccx qubits[43], qubits[133], qubits[134]; -ccx qubits[42], qubits[132], qubits[133]; -ccx qubits[41], qubits[131], qubits[132]; -ccx qubits[40], qubits[130], qubits[131]; -ccx qubits[39], qubits[129], qubits[130]; -ccx qubits[38], qubits[128], qubits[129]; -ccx qubits[37], qubits[127], qubits[128]; -ccx qubits[36], qubits[126], qubits[127]; -ccx qubits[35], qubits[125], qubits[126]; -ccx qubits[34], qubits[124], qubits[125]; -ccx qubits[33], qubits[123], qubits[124]; -ccx qubits[32], qubits[122], qubits[123]; -ccx qubits[31], qubits[121], qubits[122]; -ccx qubits[30], qubits[120], qubits[121]; -ccx qubits[29], qubits[119], qubits[120]; -ccx qubits[28], qubits[118], qubits[119]; -ccx qubits[27], qubits[117], qubits[118]; -ccx qubits[26], qubits[116], qubits[117]; -ccx qubits[25], qubits[115], qubits[116]; -ccx qubits[24], qubits[114], qubits[115]; -ccx qubits[23], qubits[113], qubits[114]; -ccx qubits[22], qubits[112], qubits[113]; -ccx qubits[21], qubits[111], qubits[112]; -ccx qubits[20], qubits[110], qubits[111]; -ccx qubits[19], qubits[109], qubits[110]; -ccx qubits[18], qubits[108], qubits[109]; -ccx qubits[17], qubits[107], qubits[108]; -ccx qubits[16], qubits[106], qubits[107]; -ccx qubits[15], qubits[105], qubits[106]; -ccx qubits[14], qubits[104], qubits[105]; -ccx qubits[13], qubits[103], qubits[104]; -ccx qubits[12], qubits[102], qubits[103]; -ccx qubits[11], qubits[101], qubits[102]; -ccx qubits[10], qubits[100], qubits[101]; -ccx qubits[9], qubits[99], qubits[100]; -ccx qubits[8], qubits[98], qubits[99]; -ccx qubits[7], qubits[97], qubits[98]; -ccx qubits[6], qubits[96], qubits[97]; -ccx qubits[5], qubits[95], qubits[96]; -ccx qubits[4], qubits[94], qubits[95]; -ccx qubits[3], qubits[93], qubits[94]; -ccx qubits[2], qubits[92], qubits[93]; -ccx qubits[0], qubits[1], qubits[92]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +cz qubits[178], qubits[179]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; +x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; -z qubits[91]; +h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +z qubits[180]; diff --git a/benchmarks/all/OEGrover/91/post.hsl b/benchmarks/all/OEGrover/91/post.hsl index 92329ef2b..7f9d93d52 100644 --- a/benchmarks/all/OEGrover/91/post.hsl +++ b/benchmarks/all/OEGrover/91/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 44 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/91/post.lsta b/benchmarks/all/OEGrover/91/post.lsta deleted file mode 100644 index aafad02e7..000000000 --- a/benchmarks/all/OEGrover/91/post.lsta +++ /dev/null @@ -1,462 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 184) -> 181 -[92,1](183, 185) -> 182 -[93,1](186, 186) -> 183 -[93,1](187, 186) -> 184 -[93,1](188, 186) -> 185 -[94,1](189, 189) -> 186 -[94,1](190, 189) -> 187 -[94,1](191, 189) -> 188 -[95,1](192, 192) -> 189 -[95,1](193, 192) -> 190 -[95,1](194, 192) -> 191 -[96,1](195, 195) -> 192 -[96,1](196, 195) -> 193 -[96,1](197, 195) -> 194 -[97,1](198, 198) -> 195 -[97,1](199, 198) -> 196 -[97,1](200, 198) -> 197 -[98,1](201, 201) -> 198 -[98,1](202, 201) -> 199 -[98,1](203, 201) -> 200 -[99,1](204, 204) -> 201 -[99,1](205, 204) -> 202 -[99,1](206, 204) -> 203 -[100,1](207, 207) -> 204 -[100,1](208, 207) -> 205 -[100,1](209, 207) -> 206 -[101,1](210, 210) -> 207 -[101,1](211, 210) -> 208 -[101,1](212, 210) -> 209 -[102,1](213, 213) -> 210 -[102,1](214, 213) -> 211 -[102,1](215, 213) -> 212 -[103,1](216, 216) -> 213 -[103,1](217, 216) -> 214 -[103,1](218, 216) -> 215 -[104,1](219, 219) -> 216 -[104,1](220, 219) -> 217 -[104,1](221, 219) -> 218 -[105,1](222, 222) -> 219 -[105,1](223, 222) -> 220 -[105,1](224, 222) -> 221 -[106,1](225, 225) -> 222 -[106,1](226, 225) -> 223 -[106,1](227, 225) -> 224 -[107,1](228, 228) -> 225 -[107,1](229, 228) -> 226 -[107,1](230, 228) -> 227 -[108,1](231, 231) -> 228 -[108,1](232, 231) -> 229 -[108,1](233, 231) -> 230 -[109,1](234, 234) -> 231 -[109,1](235, 234) -> 232 -[109,1](236, 234) -> 233 -[110,1](237, 237) -> 234 -[110,1](238, 237) -> 235 -[110,1](239, 237) -> 236 -[111,1](240, 240) -> 237 -[111,1](241, 240) -> 238 -[111,1](242, 240) -> 239 -[112,1](243, 243) -> 240 -[112,1](244, 243) -> 241 -[112,1](245, 243) -> 242 -[113,1](246, 246) -> 243 -[113,1](247, 246) -> 244 -[113,1](248, 246) -> 245 -[114,1](249, 249) -> 246 -[114,1](250, 249) -> 247 -[114,1](251, 249) -> 248 -[115,1](252, 252) -> 249 -[115,1](253, 252) -> 250 -[115,1](254, 252) -> 251 -[116,1](255, 255) -> 252 -[116,1](256, 255) -> 253 -[116,1](257, 255) -> 254 -[117,1](258, 258) -> 255 -[117,1](259, 258) -> 256 -[117,1](260, 258) -> 257 -[118,1](261, 261) -> 258 -[118,1](262, 261) -> 259 -[118,1](263, 261) -> 260 -[119,1](264, 264) -> 261 -[119,1](265, 264) -> 262 -[119,1](266, 264) -> 263 -[120,1](267, 267) -> 264 -[120,1](268, 267) -> 265 -[120,1](269, 267) -> 266 -[121,1](270, 270) -> 267 -[121,1](271, 270) -> 268 -[121,1](272, 270) -> 269 -[122,1](273, 273) -> 270 -[122,1](274, 273) -> 271 -[122,1](275, 273) -> 272 -[123,1](276, 276) -> 273 -[123,1](277, 276) -> 274 -[123,1](278, 276) -> 275 -[124,1](279, 279) -> 276 -[124,1](280, 279) -> 277 -[124,1](281, 279) -> 278 -[125,1](282, 282) -> 279 -[125,1](283, 282) -> 280 -[125,1](284, 282) -> 281 -[126,1](285, 285) -> 282 -[126,1](286, 285) -> 283 -[126,1](287, 285) -> 284 -[127,1](288, 288) -> 285 -[127,1](289, 288) -> 286 -[127,1](290, 288) -> 287 -[128,1](291, 291) -> 288 -[128,1](292, 291) -> 289 -[128,1](293, 291) -> 290 -[129,1](294, 294) -> 291 -[129,1](295, 294) -> 292 -[129,1](296, 294) -> 293 -[130,1](297, 297) -> 294 -[130,1](298, 297) -> 295 -[130,1](299, 297) -> 296 -[131,1](300, 300) -> 297 -[131,1](301, 300) -> 298 -[131,1](302, 300) -> 299 -[132,1](303, 303) -> 300 -[132,1](304, 303) -> 301 -[132,1](305, 303) -> 302 -[133,1](306, 306) -> 303 -[133,1](307, 306) -> 304 -[133,1](308, 306) -> 305 -[134,1](309, 309) -> 306 -[134,1](310, 309) -> 307 -[134,1](311, 309) -> 308 -[135,1](312, 312) -> 309 -[135,1](313, 312) -> 310 -[135,1](314, 312) -> 311 -[136,1](315, 315) -> 312 -[136,1](316, 315) -> 313 -[136,1](317, 315) -> 314 -[137,1](318, 318) -> 315 -[137,1](319, 318) -> 316 -[137,1](320, 318) -> 317 -[138,1](321, 321) -> 318 -[138,1](322, 321) -> 319 -[138,1](323, 321) -> 320 -[139,1](324, 324) -> 321 -[139,1](325, 324) -> 322 -[139,1](326, 324) -> 323 -[140,1](327, 327) -> 324 -[140,1](328, 327) -> 325 -[140,1](329, 327) -> 326 -[141,1](330, 330) -> 327 -[141,1](331, 330) -> 328 -[141,1](332, 330) -> 329 -[142,1](333, 333) -> 330 -[142,1](334, 333) -> 331 -[142,1](335, 333) -> 332 -[143,1](336, 336) -> 333 -[143,1](337, 336) -> 334 -[143,1](338, 336) -> 335 -[144,1](339, 339) -> 336 -[144,1](340, 339) -> 337 -[144,1](341, 339) -> 338 -[145,1](342, 342) -> 339 -[145,1](343, 342) -> 340 -[145,1](344, 342) -> 341 -[146,1](345, 345) -> 342 -[146,1](346, 345) -> 343 -[146,1](347, 345) -> 344 -[147,1](348, 348) -> 345 -[147,1](349, 348) -> 346 -[147,1](350, 348) -> 347 -[148,1](351, 351) -> 348 -[148,1](352, 351) -> 349 -[148,1](353, 351) -> 350 -[149,1](354, 354) -> 351 -[149,1](355, 354) -> 352 -[149,1](356, 354) -> 353 -[150,1](357, 357) -> 354 -[150,1](358, 357) -> 355 -[150,1](359, 357) -> 356 -[151,1](360, 360) -> 357 -[151,1](361, 360) -> 358 -[151,1](362, 360) -> 359 -[152,1](363, 363) -> 360 -[152,1](364, 363) -> 361 -[152,1](365, 363) -> 362 -[153,1](366, 366) -> 363 -[153,1](367, 366) -> 364 -[153,1](368, 366) -> 365 -[154,1](369, 369) -> 366 -[154,1](370, 369) -> 367 -[154,1](371, 369) -> 368 -[155,1](372, 372) -> 369 -[155,1](373, 372) -> 370 -[155,1](374, 372) -> 371 -[156,1](375, 375) -> 372 -[156,1](376, 375) -> 373 -[156,1](377, 375) -> 374 -[157,1](378, 378) -> 375 -[157,1](379, 378) -> 376 -[157,1](380, 378) -> 377 -[158,1](381, 381) -> 378 -[158,1](382, 381) -> 379 -[158,1](383, 381) -> 380 -[159,1](384, 384) -> 381 -[159,1](385, 384) -> 382 -[159,1](386, 384) -> 383 -[160,1](387, 387) -> 384 -[160,1](388, 387) -> 385 -[160,1](389, 387) -> 386 -[161,1](390, 390) -> 387 -[161,1](391, 390) -> 388 -[161,1](392, 390) -> 389 -[162,1](393, 393) -> 390 -[162,1](394, 393) -> 391 -[162,1](395, 393) -> 392 -[163,1](396, 396) -> 393 -[163,1](397, 396) -> 394 -[163,1](398, 396) -> 395 -[164,1](399, 399) -> 396 -[164,1](400, 399) -> 397 -[164,1](401, 399) -> 398 -[165,1](402, 402) -> 399 -[165,1](403, 402) -> 400 -[165,1](404, 402) -> 401 -[166,1](405, 405) -> 402 -[166,1](406, 405) -> 403 -[166,1](407, 405) -> 404 -[167,1](408, 408) -> 405 -[167,1](409, 408) -> 406 -[167,1](410, 408) -> 407 -[168,1](411, 411) -> 408 -[168,1](412, 411) -> 409 -[168,1](413, 411) -> 410 -[169,1](414, 414) -> 411 -[169,1](415, 414) -> 412 -[169,1](416, 414) -> 413 -[170,1](417, 417) -> 414 -[170,1](418, 417) -> 415 -[170,1](419, 417) -> 416 -[171,1](420, 420) -> 417 -[171,1](421, 420) -> 418 -[171,1](422, 420) -> 419 -[172,1](423, 423) -> 420 -[172,1](424, 423) -> 421 -[172,1](425, 423) -> 422 -[173,1](426, 426) -> 423 -[173,1](427, 426) -> 424 -[173,1](428, 426) -> 425 -[174,1](429, 429) -> 426 -[174,1](430, 429) -> 427 -[174,1](431, 429) -> 428 -[175,1](432, 432) -> 429 -[175,1](433, 432) -> 430 -[175,1](434, 432) -> 431 -[176,1](435, 435) -> 432 -[176,1](436, 435) -> 433 -[176,1](437, 435) -> 434 -[177,1](438, 438) -> 435 -[177,1](439, 438) -> 436 -[177,1](440, 438) -> 437 -[178,1](441, 441) -> 438 -[178,1](442, 441) -> 439 -[178,1](443, 441) -> 440 -[179,1](444, 444) -> 441 -[179,1](445, 444) -> 442 -[179,1](446, 444) -> 443 -[180,1](447, 447) -> 444 -[180,1](448, 447) -> 445 -[180,1](449, 447) -> 446 -[181,1](450, 450) -> 447 -[181,1](451, 450) -> 448 -[181,1](452, 450) -> 449 -[182,1](453, 453) -> 450 -[182,1](454, 453) -> 451 -[182,1](455, 453) -> 452 -[p1,1] -> 453 -[p2,1] -> 454 -[p3,1] -> 455 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/91/pre.hsl b/benchmarks/all/OEGrover/91/pre.hsl index 1e05e5ed1..cf1955d27 100644 --- a/benchmarks/all/OEGrover/91/pre.hsl +++ b/benchmarks/all/OEGrover/91/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 44 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 2475880078570760549798248447 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/91/pre.lsta b/benchmarks/all/OEGrover/91/pre.lsta deleted file mode 100644 index 3c49254d8..000000000 --- a/benchmarks/all/OEGrover/91/pre.lsta +++ /dev/null @@ -1,466 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 184) -> 181 -[92,1](183, 185) -> 182 -[93,1](186, 186) -> 183 -[93,1](187, 186) -> 184 -[93,1](188, 186) -> 185 -[94,1](189, 189) -> 186 -[94,1](190, 189) -> 187 -[94,1](191, 189) -> 188 -[95,1](192, 192) -> 189 -[95,1](193, 192) -> 190 -[95,1](194, 192) -> 191 -[96,1](195, 195) -> 192 -[96,1](196, 195) -> 193 -[96,1](197, 195) -> 194 -[97,1](198, 198) -> 195 -[97,1](199, 198) -> 196 -[97,1](200, 198) -> 197 -[98,1](201, 201) -> 198 -[98,1](202, 201) -> 199 -[98,1](203, 201) -> 200 -[99,1](204, 204) -> 201 -[99,1](205, 204) -> 202 -[99,1](206, 204) -> 203 -[100,1](207, 207) -> 204 -[100,1](208, 207) -> 205 -[100,1](209, 207) -> 206 -[101,1](210, 210) -> 207 -[101,1](211, 210) -> 208 -[101,1](212, 210) -> 209 -[102,1](213, 213) -> 210 -[102,1](214, 213) -> 211 -[102,1](215, 213) -> 212 -[103,1](216, 216) -> 213 -[103,1](217, 216) -> 214 -[103,1](218, 216) -> 215 -[104,1](219, 219) -> 216 -[104,1](220, 219) -> 217 -[104,1](221, 219) -> 218 -[105,1](222, 222) -> 219 -[105,1](223, 222) -> 220 -[105,1](224, 222) -> 221 -[106,1](225, 225) -> 222 -[106,1](226, 225) -> 223 -[106,1](227, 225) -> 224 -[107,1](228, 228) -> 225 -[107,1](229, 228) -> 226 -[107,1](230, 228) -> 227 -[108,1](231, 231) -> 228 -[108,1](232, 231) -> 229 -[108,1](233, 231) -> 230 -[109,1](234, 234) -> 231 -[109,1](235, 234) -> 232 -[109,1](236, 234) -> 233 -[110,1](237, 237) -> 234 -[110,1](238, 237) -> 235 -[110,1](239, 237) -> 236 -[111,1](240, 240) -> 237 -[111,1](241, 240) -> 238 -[111,1](242, 240) -> 239 -[112,1](243, 243) -> 240 -[112,1](244, 243) -> 241 -[112,1](245, 243) -> 242 -[113,1](246, 246) -> 243 -[113,1](247, 246) -> 244 -[113,1](248, 246) -> 245 -[114,1](249, 249) -> 246 -[114,1](250, 249) -> 247 -[114,1](251, 249) -> 248 -[115,1](252, 252) -> 249 -[115,1](253, 252) -> 250 -[115,1](254, 252) -> 251 -[116,1](255, 255) -> 252 -[116,1](256, 255) -> 253 -[116,1](257, 255) -> 254 -[117,1](258, 258) -> 255 -[117,1](259, 258) -> 256 -[117,1](260, 258) -> 257 -[118,1](261, 261) -> 258 -[118,1](262, 261) -> 259 -[118,1](263, 261) -> 260 -[119,1](264, 264) -> 261 -[119,1](265, 264) -> 262 -[119,1](266, 264) -> 263 -[120,1](267, 267) -> 264 -[120,1](268, 267) -> 265 -[120,1](269, 267) -> 266 -[121,1](270, 270) -> 267 -[121,1](271, 270) -> 268 -[121,1](272, 270) -> 269 -[122,1](273, 273) -> 270 -[122,1](274, 273) -> 271 -[122,1](275, 273) -> 272 -[123,1](276, 276) -> 273 -[123,1](277, 276) -> 274 -[123,1](278, 276) -> 275 -[124,1](279, 279) -> 276 -[124,1](280, 279) -> 277 -[124,1](281, 279) -> 278 -[125,1](282, 282) -> 279 -[125,1](283, 282) -> 280 -[125,1](284, 282) -> 281 -[126,1](285, 285) -> 282 -[126,1](286, 285) -> 283 -[126,1](287, 285) -> 284 -[127,1](288, 288) -> 285 -[127,1](289, 288) -> 286 -[127,1](290, 288) -> 287 -[128,1](291, 291) -> 288 -[128,1](292, 291) -> 289 -[128,1](293, 291) -> 290 -[129,1](294, 294) -> 291 -[129,1](295, 294) -> 292 -[129,1](296, 294) -> 293 -[130,1](297, 297) -> 294 -[130,1](298, 297) -> 295 -[130,1](299, 297) -> 296 -[131,1](300, 300) -> 297 -[131,1](301, 300) -> 298 -[131,1](302, 300) -> 299 -[132,1](303, 303) -> 300 -[132,1](304, 303) -> 301 -[132,1](305, 303) -> 302 -[133,1](306, 306) -> 303 -[133,1](307, 306) -> 304 -[133,1](308, 306) -> 305 -[134,1](309, 309) -> 306 -[134,1](310, 309) -> 307 -[134,1](311, 309) -> 308 -[135,1](312, 312) -> 309 -[135,1](313, 312) -> 310 -[135,1](314, 312) -> 311 -[136,1](315, 315) -> 312 -[136,1](316, 315) -> 313 -[136,1](317, 315) -> 314 -[137,1](318, 318) -> 315 -[137,1](319, 318) -> 316 -[137,1](320, 318) -> 317 -[138,1](321, 321) -> 318 -[138,1](322, 321) -> 319 -[138,1](323, 321) -> 320 -[139,1](324, 324) -> 321 -[139,1](325, 324) -> 322 -[139,1](326, 324) -> 323 -[140,1](327, 327) -> 324 -[140,1](328, 327) -> 325 -[140,1](329, 327) -> 326 -[141,1](330, 330) -> 327 -[141,1](331, 330) -> 328 -[141,1](332, 330) -> 329 -[142,1](333, 333) -> 330 -[142,1](334, 333) -> 331 -[142,1](335, 333) -> 332 -[143,1](336, 336) -> 333 -[143,1](337, 336) -> 334 -[143,1](338, 336) -> 335 -[144,1](339, 339) -> 336 -[144,1](340, 339) -> 337 -[144,1](341, 339) -> 338 -[145,1](342, 342) -> 339 -[145,1](343, 342) -> 340 -[145,1](344, 342) -> 341 -[146,1](345, 345) -> 342 -[146,1](346, 345) -> 343 -[146,1](347, 345) -> 344 -[147,1](348, 348) -> 345 -[147,1](349, 348) -> 346 -[147,1](350, 348) -> 347 -[148,1](351, 351) -> 348 -[148,1](352, 351) -> 349 -[148,1](353, 351) -> 350 -[149,1](354, 354) -> 351 -[149,1](355, 354) -> 352 -[149,1](356, 354) -> 353 -[150,1](357, 357) -> 354 -[150,1](358, 357) -> 355 -[150,1](359, 357) -> 356 -[151,1](360, 360) -> 357 -[151,1](361, 360) -> 358 -[151,1](362, 360) -> 359 -[152,1](363, 363) -> 360 -[152,1](364, 363) -> 361 -[152,1](365, 363) -> 362 -[153,1](366, 366) -> 363 -[153,1](367, 366) -> 364 -[153,1](368, 366) -> 365 -[154,1](369, 369) -> 366 -[154,1](370, 369) -> 367 -[154,1](371, 369) -> 368 -[155,1](372, 372) -> 369 -[155,1](373, 372) -> 370 -[155,1](374, 372) -> 371 -[156,1](375, 375) -> 372 -[156,1](376, 375) -> 373 -[156,1](377, 375) -> 374 -[157,1](378, 378) -> 375 -[157,1](379, 378) -> 376 -[157,1](380, 378) -> 377 -[158,1](381, 381) -> 378 -[158,1](382, 381) -> 379 -[158,1](383, 381) -> 380 -[159,1](384, 384) -> 381 -[159,1](385, 384) -> 382 -[159,1](386, 384) -> 383 -[160,1](387, 387) -> 384 -[160,1](388, 387) -> 385 -[160,1](389, 387) -> 386 -[161,1](390, 390) -> 387 -[161,1](391, 390) -> 388 -[161,1](392, 390) -> 389 -[162,1](393, 393) -> 390 -[162,1](394, 393) -> 391 -[162,1](395, 393) -> 392 -[163,1](396, 396) -> 393 -[163,1](397, 396) -> 394 -[163,1](398, 396) -> 395 -[164,1](399, 399) -> 396 -[164,1](400, 399) -> 397 -[164,1](401, 399) -> 398 -[165,1](402, 402) -> 399 -[165,1](403, 402) -> 400 -[165,1](404, 402) -> 401 -[166,1](405, 405) -> 402 -[166,1](406, 405) -> 403 -[166,1](407, 405) -> 404 -[167,1](408, 408) -> 405 -[167,1](409, 408) -> 406 -[167,1](410, 408) -> 407 -[168,1](411, 411) -> 408 -[168,1](412, 411) -> 409 -[168,1](413, 411) -> 410 -[169,1](414, 414) -> 411 -[169,1](415, 414) -> 412 -[169,1](416, 414) -> 413 -[170,1](417, 417) -> 414 -[170,1](418, 417) -> 415 -[170,1](419, 417) -> 416 -[171,1](420, 420) -> 417 -[171,1](421, 420) -> 418 -[171,1](422, 420) -> 419 -[172,1](423, 423) -> 420 -[172,1](424, 423) -> 421 -[172,1](425, 423) -> 422 -[173,1](426, 426) -> 423 -[173,1](427, 426) -> 424 -[173,1](428, 426) -> 425 -[174,1](429, 429) -> 426 -[174,1](430, 429) -> 427 -[174,1](431, 429) -> 428 -[175,1](432, 432) -> 429 -[175,1](433, 432) -> 430 -[175,1](434, 432) -> 431 -[176,1](435, 435) -> 432 -[176,1](436, 435) -> 433 -[176,1](437, 435) -> 434 -[177,1](438, 438) -> 435 -[177,1](439, 438) -> 436 -[177,1](440, 438) -> 437 -[178,1](441, 441) -> 438 -[178,1](442, 441) -> 439 -[178,1](443, 441) -> 440 -[179,1](444, 444) -> 441 -[179,1](445, 444) -> 442 -[179,1](446, 444) -> 443 -[180,1](447, 447) -> 444 -[180,1](448, 447) -> 445 -[180,1](449, 447) -> 446 -[181,1](450, 450) -> 447 -[181,1](451, 450) -> 448 -[181,1](452, 450) -> 449 -[182,1](453, 453) -> 450 -[182,1](454, 453) -> 451 -[182,1](455, 453) -> 452 -[c0,1] -> 453 -[a,1] -> 454 -[b,1] -> 455 -Constraints -2475880078570760549798248447 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/92/circuit.qasm b/benchmarks/all/OEGrover/92/circuit.qasm index f18fd9d17..6bfd1be3e 100644 --- a/benchmarks/all/OEGrover/92/circuit.qasm +++ b/benchmarks/all/OEGrover/92/circuit.qasm @@ -1,234 +1,234 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[184]; +qreg qubits[183]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -ccx qubits[0], qubits[1], qubits[93]; -ccx qubits[2], qubits[93], qubits[94]; -ccx qubits[3], qubits[94], qubits[95]; -ccx qubits[4], qubits[95], qubits[96]; -ccx qubits[5], qubits[96], qubits[97]; -ccx qubits[6], qubits[97], qubits[98]; -ccx qubits[7], qubits[98], qubits[99]; -ccx qubits[8], qubits[99], qubits[100]; -ccx qubits[9], qubits[100], qubits[101]; -ccx qubits[10], qubits[101], qubits[102]; -ccx qubits[11], qubits[102], qubits[103]; -ccx qubits[12], qubits[103], qubits[104]; -ccx qubits[13], qubits[104], qubits[105]; -ccx qubits[14], qubits[105], qubits[106]; -ccx qubits[15], qubits[106], qubits[107]; -ccx qubits[16], qubits[107], qubits[108]; -ccx qubits[17], qubits[108], qubits[109]; -ccx qubits[18], qubits[109], qubits[110]; -ccx qubits[19], qubits[110], qubits[111]; -ccx qubits[20], qubits[111], qubits[112]; -ccx qubits[21], qubits[112], qubits[113]; -ccx qubits[22], qubits[113], qubits[114]; -ccx qubits[23], qubits[114], qubits[115]; -ccx qubits[24], qubits[115], qubits[116]; -ccx qubits[25], qubits[116], qubits[117]; -ccx qubits[26], qubits[117], qubits[118]; -ccx qubits[27], qubits[118], qubits[119]; -ccx qubits[28], qubits[119], qubits[120]; -ccx qubits[29], qubits[120], qubits[121]; -ccx qubits[30], qubits[121], qubits[122]; -ccx qubits[31], qubits[122], qubits[123]; -ccx qubits[32], qubits[123], qubits[124]; -ccx qubits[33], qubits[124], qubits[125]; -ccx qubits[34], qubits[125], qubits[126]; -ccx qubits[35], qubits[126], qubits[127]; -ccx qubits[36], qubits[127], qubits[128]; -ccx qubits[37], qubits[128], qubits[129]; -ccx qubits[38], qubits[129], qubits[130]; -ccx qubits[39], qubits[130], qubits[131]; -ccx qubits[40], qubits[131], qubits[132]; -ccx qubits[41], qubits[132], qubits[133]; -ccx qubits[42], qubits[133], qubits[134]; -ccx qubits[43], qubits[134], qubits[135]; -ccx qubits[44], qubits[135], qubits[136]; -ccx qubits[45], qubits[136], qubits[137]; -ccx qubits[46], qubits[137], qubits[138]; -ccx qubits[47], qubits[138], qubits[139]; -ccx qubits[48], qubits[139], qubits[140]; -ccx qubits[49], qubits[140], qubits[141]; -ccx qubits[50], qubits[141], qubits[142]; -ccx qubits[51], qubits[142], qubits[143]; -ccx qubits[52], qubits[143], qubits[144]; -ccx qubits[53], qubits[144], qubits[145]; -ccx qubits[54], qubits[145], qubits[146]; -ccx qubits[55], qubits[146], qubits[147]; -ccx qubits[56], qubits[147], qubits[148]; -ccx qubits[57], qubits[148], qubits[149]; -ccx qubits[58], qubits[149], qubits[150]; -ccx qubits[59], qubits[150], qubits[151]; -ccx qubits[60], qubits[151], qubits[152]; -ccx qubits[61], qubits[152], qubits[153]; -ccx qubits[62], qubits[153], qubits[154]; -ccx qubits[63], qubits[154], qubits[155]; -ccx qubits[64], qubits[155], qubits[156]; -ccx qubits[65], qubits[156], qubits[157]; -ccx qubits[66], qubits[157], qubits[158]; -ccx qubits[67], qubits[158], qubits[159]; -ccx qubits[68], qubits[159], qubits[160]; -ccx qubits[69], qubits[160], qubits[161]; -ccx qubits[70], qubits[161], qubits[162]; -ccx qubits[71], qubits[162], qubits[163]; -ccx qubits[72], qubits[163], qubits[164]; -ccx qubits[73], qubits[164], qubits[165]; -ccx qubits[74], qubits[165], qubits[166]; -ccx qubits[75], qubits[166], qubits[167]; -ccx qubits[76], qubits[167], qubits[168]; -ccx qubits[77], qubits[168], qubits[169]; -ccx qubits[78], qubits[169], qubits[170]; -ccx qubits[79], qubits[170], qubits[171]; -ccx qubits[80], qubits[171], qubits[172]; -ccx qubits[81], qubits[172], qubits[173]; -ccx qubits[82], qubits[173], qubits[174]; -ccx qubits[83], qubits[174], qubits[175]; -ccx qubits[84], qubits[175], qubits[176]; -ccx qubits[85], qubits[176], qubits[177]; -ccx qubits[86], qubits[177], qubits[178]; -ccx qubits[87], qubits[178], qubits[179]; -ccx qubits[88], qubits[179], qubits[180]; -ccx qubits[89], qubits[180], qubits[181]; -ccx qubits[90], qubits[181], qubits[182]; -cz qubits[182], qubits[91]; -ccx qubits[90], qubits[181], qubits[182]; -ccx qubits[89], qubits[180], qubits[181]; -ccx qubits[88], qubits[179], qubits[180]; -ccx qubits[87], qubits[178], qubits[179]; -ccx qubits[86], qubits[177], qubits[178]; -ccx qubits[85], qubits[176], qubits[177]; -ccx qubits[84], qubits[175], qubits[176]; -ccx qubits[83], qubits[174], qubits[175]; -ccx qubits[82], qubits[173], qubits[174]; -ccx qubits[81], qubits[172], qubits[173]; -ccx qubits[80], qubits[171], qubits[172]; -ccx qubits[79], qubits[170], qubits[171]; -ccx qubits[78], qubits[169], qubits[170]; -ccx qubits[77], qubits[168], qubits[169]; -ccx qubits[76], qubits[167], qubits[168]; -ccx qubits[75], qubits[166], qubits[167]; -ccx qubits[74], qubits[165], qubits[166]; -ccx qubits[73], qubits[164], qubits[165]; -ccx qubits[72], qubits[163], qubits[164]; -ccx qubits[71], qubits[162], qubits[163]; -ccx qubits[70], qubits[161], qubits[162]; -ccx qubits[69], qubits[160], qubits[161]; -ccx qubits[68], qubits[159], qubits[160]; -ccx qubits[67], qubits[158], qubits[159]; -ccx qubits[66], qubits[157], qubits[158]; -ccx qubits[65], qubits[156], qubits[157]; -ccx qubits[64], qubits[155], qubits[156]; -ccx qubits[63], qubits[154], qubits[155]; -ccx qubits[62], qubits[153], qubits[154]; -ccx qubits[61], qubits[152], qubits[153]; -ccx qubits[60], qubits[151], qubits[152]; -ccx qubits[59], qubits[150], qubits[151]; -ccx qubits[58], qubits[149], qubits[150]; -ccx qubits[57], qubits[148], qubits[149]; -ccx qubits[56], qubits[147], qubits[148]; -ccx qubits[55], qubits[146], qubits[147]; -ccx qubits[54], qubits[145], qubits[146]; -ccx qubits[53], qubits[144], qubits[145]; -ccx qubits[52], qubits[143], qubits[144]; -ccx qubits[51], qubits[142], qubits[143]; -ccx qubits[50], qubits[141], qubits[142]; -ccx qubits[49], qubits[140], qubits[141]; -ccx qubits[48], qubits[139], qubits[140]; -ccx qubits[47], qubits[138], qubits[139]; -ccx qubits[46], qubits[137], qubits[138]; -ccx qubits[45], qubits[136], qubits[137]; -ccx qubits[44], qubits[135], qubits[136]; -ccx qubits[43], qubits[134], qubits[135]; -ccx qubits[42], qubits[133], qubits[134]; -ccx qubits[41], qubits[132], qubits[133]; -ccx qubits[40], qubits[131], qubits[132]; -ccx qubits[39], qubits[130], qubits[131]; -ccx qubits[38], qubits[129], qubits[130]; -ccx qubits[37], qubits[128], qubits[129]; -ccx qubits[36], qubits[127], qubits[128]; -ccx qubits[35], qubits[126], qubits[127]; -ccx qubits[34], qubits[125], qubits[126]; -ccx qubits[33], qubits[124], qubits[125]; -ccx qubits[32], qubits[123], qubits[124]; -ccx qubits[31], qubits[122], qubits[123]; -ccx qubits[30], qubits[121], qubits[122]; -ccx qubits[29], qubits[120], qubits[121]; -ccx qubits[28], qubits[119], qubits[120]; -ccx qubits[27], qubits[118], qubits[119]; -ccx qubits[26], qubits[117], qubits[118]; -ccx qubits[25], qubits[116], qubits[117]; -ccx qubits[24], qubits[115], qubits[116]; -ccx qubits[23], qubits[114], qubits[115]; -ccx qubits[22], qubits[113], qubits[114]; -ccx qubits[21], qubits[112], qubits[113]; -ccx qubits[20], qubits[111], qubits[112]; -ccx qubits[19], qubits[110], qubits[111]; -ccx qubits[18], qubits[109], qubits[110]; -ccx qubits[17], qubits[108], qubits[109]; -ccx qubits[16], qubits[107], qubits[108]; -ccx qubits[15], qubits[106], qubits[107]; -ccx qubits[14], qubits[105], qubits[106]; -ccx qubits[13], qubits[104], qubits[105]; -ccx qubits[12], qubits[103], qubits[104]; -ccx qubits[11], qubits[102], qubits[103]; -ccx qubits[10], qubits[101], qubits[102]; -ccx qubits[9], qubits[100], qubits[101]; -ccx qubits[8], qubits[99], qubits[100]; -ccx qubits[7], qubits[98], qubits[99]; -ccx qubits[6], qubits[97], qubits[98]; -ccx qubits[5], qubits[96], qubits[97]; -ccx qubits[4], qubits[95], qubits[96]; -ccx qubits[3], qubits[94], qubits[95]; -ccx qubits[2], qubits[93], qubits[94]; -ccx qubits[0], qubits[1], qubits[93]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +cz qubits[180], qubits[181]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -277,551 +277,551 @@ x qubits[88]; x qubits[90]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -ccx qubits[0], qubits[1], qubits[93]; -ccx qubits[2], qubits[93], qubits[94]; -ccx qubits[3], qubits[94], qubits[95]; -ccx qubits[4], qubits[95], qubits[96]; -ccx qubits[5], qubits[96], qubits[97]; -ccx qubits[6], qubits[97], qubits[98]; -ccx qubits[7], qubits[98], qubits[99]; -ccx qubits[8], qubits[99], qubits[100]; -ccx qubits[9], qubits[100], qubits[101]; -ccx qubits[10], qubits[101], qubits[102]; -ccx qubits[11], qubits[102], qubits[103]; -ccx qubits[12], qubits[103], qubits[104]; -ccx qubits[13], qubits[104], qubits[105]; -ccx qubits[14], qubits[105], qubits[106]; -ccx qubits[15], qubits[106], qubits[107]; -ccx qubits[16], qubits[107], qubits[108]; -ccx qubits[17], qubits[108], qubits[109]; -ccx qubits[18], qubits[109], qubits[110]; -ccx qubits[19], qubits[110], qubits[111]; -ccx qubits[20], qubits[111], qubits[112]; -ccx qubits[21], qubits[112], qubits[113]; -ccx qubits[22], qubits[113], qubits[114]; -ccx qubits[23], qubits[114], qubits[115]; -ccx qubits[24], qubits[115], qubits[116]; -ccx qubits[25], qubits[116], qubits[117]; -ccx qubits[26], qubits[117], qubits[118]; -ccx qubits[27], qubits[118], qubits[119]; -ccx qubits[28], qubits[119], qubits[120]; -ccx qubits[29], qubits[120], qubits[121]; -ccx qubits[30], qubits[121], qubits[122]; -ccx qubits[31], qubits[122], qubits[123]; -ccx qubits[32], qubits[123], qubits[124]; -ccx qubits[33], qubits[124], qubits[125]; -ccx qubits[34], qubits[125], qubits[126]; -ccx qubits[35], qubits[126], qubits[127]; -ccx qubits[36], qubits[127], qubits[128]; -ccx qubits[37], qubits[128], qubits[129]; -ccx qubits[38], qubits[129], qubits[130]; -ccx qubits[39], qubits[130], qubits[131]; -ccx qubits[40], qubits[131], qubits[132]; -ccx qubits[41], qubits[132], qubits[133]; -ccx qubits[42], qubits[133], qubits[134]; -ccx qubits[43], qubits[134], qubits[135]; -ccx qubits[44], qubits[135], qubits[136]; -ccx qubits[45], qubits[136], qubits[137]; -ccx qubits[46], qubits[137], qubits[138]; -ccx qubits[47], qubits[138], qubits[139]; -ccx qubits[48], qubits[139], qubits[140]; -ccx qubits[49], qubits[140], qubits[141]; -ccx qubits[50], qubits[141], qubits[142]; -ccx qubits[51], qubits[142], qubits[143]; -ccx qubits[52], qubits[143], qubits[144]; -ccx qubits[53], qubits[144], qubits[145]; -ccx qubits[54], qubits[145], qubits[146]; -ccx qubits[55], qubits[146], qubits[147]; -ccx qubits[56], qubits[147], qubits[148]; -ccx qubits[57], qubits[148], qubits[149]; -ccx qubits[58], qubits[149], qubits[150]; -ccx qubits[59], qubits[150], qubits[151]; -ccx qubits[60], qubits[151], qubits[152]; -ccx qubits[61], qubits[152], qubits[153]; -ccx qubits[62], qubits[153], qubits[154]; -ccx qubits[63], qubits[154], qubits[155]; -ccx qubits[64], qubits[155], qubits[156]; -ccx qubits[65], qubits[156], qubits[157]; -ccx qubits[66], qubits[157], qubits[158]; -ccx qubits[67], qubits[158], qubits[159]; -ccx qubits[68], qubits[159], qubits[160]; -ccx qubits[69], qubits[160], qubits[161]; -ccx qubits[70], qubits[161], qubits[162]; -ccx qubits[71], qubits[162], qubits[163]; -ccx qubits[72], qubits[163], qubits[164]; -ccx qubits[73], qubits[164], qubits[165]; -ccx qubits[74], qubits[165], qubits[166]; -ccx qubits[75], qubits[166], qubits[167]; -ccx qubits[76], qubits[167], qubits[168]; -ccx qubits[77], qubits[168], qubits[169]; -ccx qubits[78], qubits[169], qubits[170]; -ccx qubits[79], qubits[170], qubits[171]; -ccx qubits[80], qubits[171], qubits[172]; -ccx qubits[81], qubits[172], qubits[173]; -ccx qubits[82], qubits[173], qubits[174]; -ccx qubits[83], qubits[174], qubits[175]; -ccx qubits[84], qubits[175], qubits[176]; -ccx qubits[85], qubits[176], qubits[177]; -ccx qubits[86], qubits[177], qubits[178]; -ccx qubits[87], qubits[178], qubits[179]; -ccx qubits[88], qubits[179], qubits[180]; -ccx qubits[89], qubits[180], qubits[181]; -ccx qubits[90], qubits[181], qubits[182]; -cz qubits[182], qubits[91]; -ccx qubits[90], qubits[181], qubits[182]; -ccx qubits[89], qubits[180], qubits[181]; -ccx qubits[88], qubits[179], qubits[180]; -ccx qubits[87], qubits[178], qubits[179]; -ccx qubits[86], qubits[177], qubits[178]; -ccx qubits[85], qubits[176], qubits[177]; -ccx qubits[84], qubits[175], qubits[176]; -ccx qubits[83], qubits[174], qubits[175]; -ccx qubits[82], qubits[173], qubits[174]; -ccx qubits[81], qubits[172], qubits[173]; -ccx qubits[80], qubits[171], qubits[172]; -ccx qubits[79], qubits[170], qubits[171]; -ccx qubits[78], qubits[169], qubits[170]; -ccx qubits[77], qubits[168], qubits[169]; -ccx qubits[76], qubits[167], qubits[168]; -ccx qubits[75], qubits[166], qubits[167]; -ccx qubits[74], qubits[165], qubits[166]; -ccx qubits[73], qubits[164], qubits[165]; -ccx qubits[72], qubits[163], qubits[164]; -ccx qubits[71], qubits[162], qubits[163]; -ccx qubits[70], qubits[161], qubits[162]; -ccx qubits[69], qubits[160], qubits[161]; -ccx qubits[68], qubits[159], qubits[160]; -ccx qubits[67], qubits[158], qubits[159]; -ccx qubits[66], qubits[157], qubits[158]; -ccx qubits[65], qubits[156], qubits[157]; -ccx qubits[64], qubits[155], qubits[156]; -ccx qubits[63], qubits[154], qubits[155]; -ccx qubits[62], qubits[153], qubits[154]; -ccx qubits[61], qubits[152], qubits[153]; -ccx qubits[60], qubits[151], qubits[152]; -ccx qubits[59], qubits[150], qubits[151]; -ccx qubits[58], qubits[149], qubits[150]; -ccx qubits[57], qubits[148], qubits[149]; -ccx qubits[56], qubits[147], qubits[148]; -ccx qubits[55], qubits[146], qubits[147]; -ccx qubits[54], qubits[145], qubits[146]; -ccx qubits[53], qubits[144], qubits[145]; -ccx qubits[52], qubits[143], qubits[144]; -ccx qubits[51], qubits[142], qubits[143]; -ccx qubits[50], qubits[141], qubits[142]; -ccx qubits[49], qubits[140], qubits[141]; -ccx qubits[48], qubits[139], qubits[140]; -ccx qubits[47], qubits[138], qubits[139]; -ccx qubits[46], qubits[137], qubits[138]; -ccx qubits[45], qubits[136], qubits[137]; -ccx qubits[44], qubits[135], qubits[136]; -ccx qubits[43], qubits[134], qubits[135]; -ccx qubits[42], qubits[133], qubits[134]; -ccx qubits[41], qubits[132], qubits[133]; -ccx qubits[40], qubits[131], qubits[132]; -ccx qubits[39], qubits[130], qubits[131]; -ccx qubits[38], qubits[129], qubits[130]; -ccx qubits[37], qubits[128], qubits[129]; -ccx qubits[36], qubits[127], qubits[128]; -ccx qubits[35], qubits[126], qubits[127]; -ccx qubits[34], qubits[125], qubits[126]; -ccx qubits[33], qubits[124], qubits[125]; -ccx qubits[32], qubits[123], qubits[124]; -ccx qubits[31], qubits[122], qubits[123]; -ccx qubits[30], qubits[121], qubits[122]; -ccx qubits[29], qubits[120], qubits[121]; -ccx qubits[28], qubits[119], qubits[120]; -ccx qubits[27], qubits[118], qubits[119]; -ccx qubits[26], qubits[117], qubits[118]; -ccx qubits[25], qubits[116], qubits[117]; -ccx qubits[24], qubits[115], qubits[116]; -ccx qubits[23], qubits[114], qubits[115]; -ccx qubits[22], qubits[113], qubits[114]; -ccx qubits[21], qubits[112], qubits[113]; -ccx qubits[20], qubits[111], qubits[112]; -ccx qubits[19], qubits[110], qubits[111]; -ccx qubits[18], qubits[109], qubits[110]; -ccx qubits[17], qubits[108], qubits[109]; -ccx qubits[16], qubits[107], qubits[108]; -ccx qubits[15], qubits[106], qubits[107]; -ccx qubits[14], qubits[105], qubits[106]; -ccx qubits[13], qubits[104], qubits[105]; -ccx qubits[12], qubits[103], qubits[104]; -ccx qubits[11], qubits[102], qubits[103]; -ccx qubits[10], qubits[101], qubits[102]; -ccx qubits[9], qubits[100], qubits[101]; -ccx qubits[8], qubits[99], qubits[100]; -ccx qubits[7], qubits[98], qubits[99]; -ccx qubits[6], qubits[97], qubits[98]; -ccx qubits[5], qubits[96], qubits[97]; -ccx qubits[4], qubits[95], qubits[96]; -ccx qubits[3], qubits[94], qubits[95]; -ccx qubits[2], qubits[93], qubits[94]; -ccx qubits[0], qubits[1], qubits[93]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +cz qubits[180], qubits[181]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -z qubits[92]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +z qubits[182]; diff --git a/benchmarks/all/OEGrover/92/post.hsl b/benchmarks/all/OEGrover/92/post.hsl index 81e1735cc..877399c1e 100644 --- a/benchmarks/all/OEGrover/92/post.hsl +++ b/benchmarks/all/OEGrover/92/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 45 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/92/post.lsta b/benchmarks/all/OEGrover/92/post.lsta deleted file mode 100644 index 106276155..000000000 --- a/benchmarks/all/OEGrover/92/post.lsta +++ /dev/null @@ -1,467 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 186) -> 183 -[93,1](185, 187) -> 184 -[94,1](188, 188) -> 185 -[94,1](189, 188) -> 186 -[94,1](190, 188) -> 187 -[95,1](191, 191) -> 188 -[95,1](192, 191) -> 189 -[95,1](193, 191) -> 190 -[96,1](194, 194) -> 191 -[96,1](195, 194) -> 192 -[96,1](196, 194) -> 193 -[97,1](197, 197) -> 194 -[97,1](198, 197) -> 195 -[97,1](199, 197) -> 196 -[98,1](200, 200) -> 197 -[98,1](201, 200) -> 198 -[98,1](202, 200) -> 199 -[99,1](203, 203) -> 200 -[99,1](204, 203) -> 201 -[99,1](205, 203) -> 202 -[100,1](206, 206) -> 203 -[100,1](207, 206) -> 204 -[100,1](208, 206) -> 205 -[101,1](209, 209) -> 206 -[101,1](210, 209) -> 207 -[101,1](211, 209) -> 208 -[102,1](212, 212) -> 209 -[102,1](213, 212) -> 210 -[102,1](214, 212) -> 211 -[103,1](215, 215) -> 212 -[103,1](216, 215) -> 213 -[103,1](217, 215) -> 214 -[104,1](218, 218) -> 215 -[104,1](219, 218) -> 216 -[104,1](220, 218) -> 217 -[105,1](221, 221) -> 218 -[105,1](222, 221) -> 219 -[105,1](223, 221) -> 220 -[106,1](224, 224) -> 221 -[106,1](225, 224) -> 222 -[106,1](226, 224) -> 223 -[107,1](227, 227) -> 224 -[107,1](228, 227) -> 225 -[107,1](229, 227) -> 226 -[108,1](230, 230) -> 227 -[108,1](231, 230) -> 228 -[108,1](232, 230) -> 229 -[109,1](233, 233) -> 230 -[109,1](234, 233) -> 231 -[109,1](235, 233) -> 232 -[110,1](236, 236) -> 233 -[110,1](237, 236) -> 234 -[110,1](238, 236) -> 235 -[111,1](239, 239) -> 236 -[111,1](240, 239) -> 237 -[111,1](241, 239) -> 238 -[112,1](242, 242) -> 239 -[112,1](243, 242) -> 240 -[112,1](244, 242) -> 241 -[113,1](245, 245) -> 242 -[113,1](246, 245) -> 243 -[113,1](247, 245) -> 244 -[114,1](248, 248) -> 245 -[114,1](249, 248) -> 246 -[114,1](250, 248) -> 247 -[115,1](251, 251) -> 248 -[115,1](252, 251) -> 249 -[115,1](253, 251) -> 250 -[116,1](254, 254) -> 251 -[116,1](255, 254) -> 252 -[116,1](256, 254) -> 253 -[117,1](257, 257) -> 254 -[117,1](258, 257) -> 255 -[117,1](259, 257) -> 256 -[118,1](260, 260) -> 257 -[118,1](261, 260) -> 258 -[118,1](262, 260) -> 259 -[119,1](263, 263) -> 260 -[119,1](264, 263) -> 261 -[119,1](265, 263) -> 262 -[120,1](266, 266) -> 263 -[120,1](267, 266) -> 264 -[120,1](268, 266) -> 265 -[121,1](269, 269) -> 266 -[121,1](270, 269) -> 267 -[121,1](271, 269) -> 268 -[122,1](272, 272) -> 269 -[122,1](273, 272) -> 270 -[122,1](274, 272) -> 271 -[123,1](275, 275) -> 272 -[123,1](276, 275) -> 273 -[123,1](277, 275) -> 274 -[124,1](278, 278) -> 275 -[124,1](279, 278) -> 276 -[124,1](280, 278) -> 277 -[125,1](281, 281) -> 278 -[125,1](282, 281) -> 279 -[125,1](283, 281) -> 280 -[126,1](284, 284) -> 281 -[126,1](285, 284) -> 282 -[126,1](286, 284) -> 283 -[127,1](287, 287) -> 284 -[127,1](288, 287) -> 285 -[127,1](289, 287) -> 286 -[128,1](290, 290) -> 287 -[128,1](291, 290) -> 288 -[128,1](292, 290) -> 289 -[129,1](293, 293) -> 290 -[129,1](294, 293) -> 291 -[129,1](295, 293) -> 292 -[130,1](296, 296) -> 293 -[130,1](297, 296) -> 294 -[130,1](298, 296) -> 295 -[131,1](299, 299) -> 296 -[131,1](300, 299) -> 297 -[131,1](301, 299) -> 298 -[132,1](302, 302) -> 299 -[132,1](303, 302) -> 300 -[132,1](304, 302) -> 301 -[133,1](305, 305) -> 302 -[133,1](306, 305) -> 303 -[133,1](307, 305) -> 304 -[134,1](308, 308) -> 305 -[134,1](309, 308) -> 306 -[134,1](310, 308) -> 307 -[135,1](311, 311) -> 308 -[135,1](312, 311) -> 309 -[135,1](313, 311) -> 310 -[136,1](314, 314) -> 311 -[136,1](315, 314) -> 312 -[136,1](316, 314) -> 313 -[137,1](317, 317) -> 314 -[137,1](318, 317) -> 315 -[137,1](319, 317) -> 316 -[138,1](320, 320) -> 317 -[138,1](321, 320) -> 318 -[138,1](322, 320) -> 319 -[139,1](323, 323) -> 320 -[139,1](324, 323) -> 321 -[139,1](325, 323) -> 322 -[140,1](326, 326) -> 323 -[140,1](327, 326) -> 324 -[140,1](328, 326) -> 325 -[141,1](329, 329) -> 326 -[141,1](330, 329) -> 327 -[141,1](331, 329) -> 328 -[142,1](332, 332) -> 329 -[142,1](333, 332) -> 330 -[142,1](334, 332) -> 331 -[143,1](335, 335) -> 332 -[143,1](336, 335) -> 333 -[143,1](337, 335) -> 334 -[144,1](338, 338) -> 335 -[144,1](339, 338) -> 336 -[144,1](340, 338) -> 337 -[145,1](341, 341) -> 338 -[145,1](342, 341) -> 339 -[145,1](343, 341) -> 340 -[146,1](344, 344) -> 341 -[146,1](345, 344) -> 342 -[146,1](346, 344) -> 343 -[147,1](347, 347) -> 344 -[147,1](348, 347) -> 345 -[147,1](349, 347) -> 346 -[148,1](350, 350) -> 347 -[148,1](351, 350) -> 348 -[148,1](352, 350) -> 349 -[149,1](353, 353) -> 350 -[149,1](354, 353) -> 351 -[149,1](355, 353) -> 352 -[150,1](356, 356) -> 353 -[150,1](357, 356) -> 354 -[150,1](358, 356) -> 355 -[151,1](359, 359) -> 356 -[151,1](360, 359) -> 357 -[151,1](361, 359) -> 358 -[152,1](362, 362) -> 359 -[152,1](363, 362) -> 360 -[152,1](364, 362) -> 361 -[153,1](365, 365) -> 362 -[153,1](366, 365) -> 363 -[153,1](367, 365) -> 364 -[154,1](368, 368) -> 365 -[154,1](369, 368) -> 366 -[154,1](370, 368) -> 367 -[155,1](371, 371) -> 368 -[155,1](372, 371) -> 369 -[155,1](373, 371) -> 370 -[156,1](374, 374) -> 371 -[156,1](375, 374) -> 372 -[156,1](376, 374) -> 373 -[157,1](377, 377) -> 374 -[157,1](378, 377) -> 375 -[157,1](379, 377) -> 376 -[158,1](380, 380) -> 377 -[158,1](381, 380) -> 378 -[158,1](382, 380) -> 379 -[159,1](383, 383) -> 380 -[159,1](384, 383) -> 381 -[159,1](385, 383) -> 382 -[160,1](386, 386) -> 383 -[160,1](387, 386) -> 384 -[160,1](388, 386) -> 385 -[161,1](389, 389) -> 386 -[161,1](390, 389) -> 387 -[161,1](391, 389) -> 388 -[162,1](392, 392) -> 389 -[162,1](393, 392) -> 390 -[162,1](394, 392) -> 391 -[163,1](395, 395) -> 392 -[163,1](396, 395) -> 393 -[163,1](397, 395) -> 394 -[164,1](398, 398) -> 395 -[164,1](399, 398) -> 396 -[164,1](400, 398) -> 397 -[165,1](401, 401) -> 398 -[165,1](402, 401) -> 399 -[165,1](403, 401) -> 400 -[166,1](404, 404) -> 401 -[166,1](405, 404) -> 402 -[166,1](406, 404) -> 403 -[167,1](407, 407) -> 404 -[167,1](408, 407) -> 405 -[167,1](409, 407) -> 406 -[168,1](410, 410) -> 407 -[168,1](411, 410) -> 408 -[168,1](412, 410) -> 409 -[169,1](413, 413) -> 410 -[169,1](414, 413) -> 411 -[169,1](415, 413) -> 412 -[170,1](416, 416) -> 413 -[170,1](417, 416) -> 414 -[170,1](418, 416) -> 415 -[171,1](419, 419) -> 416 -[171,1](420, 419) -> 417 -[171,1](421, 419) -> 418 -[172,1](422, 422) -> 419 -[172,1](423, 422) -> 420 -[172,1](424, 422) -> 421 -[173,1](425, 425) -> 422 -[173,1](426, 425) -> 423 -[173,1](427, 425) -> 424 -[174,1](428, 428) -> 425 -[174,1](429, 428) -> 426 -[174,1](430, 428) -> 427 -[175,1](431, 431) -> 428 -[175,1](432, 431) -> 429 -[175,1](433, 431) -> 430 -[176,1](434, 434) -> 431 -[176,1](435, 434) -> 432 -[176,1](436, 434) -> 433 -[177,1](437, 437) -> 434 -[177,1](438, 437) -> 435 -[177,1](439, 437) -> 436 -[178,1](440, 440) -> 437 -[178,1](441, 440) -> 438 -[178,1](442, 440) -> 439 -[179,1](443, 443) -> 440 -[179,1](444, 443) -> 441 -[179,1](445, 443) -> 442 -[180,1](446, 446) -> 443 -[180,1](447, 446) -> 444 -[180,1](448, 446) -> 445 -[181,1](449, 449) -> 446 -[181,1](450, 449) -> 447 -[181,1](451, 449) -> 448 -[182,1](452, 452) -> 449 -[182,1](453, 452) -> 450 -[182,1](454, 452) -> 451 -[183,1](455, 455) -> 452 -[183,1](456, 455) -> 453 -[183,1](457, 455) -> 454 -[184,1](458, 458) -> 455 -[184,1](459, 458) -> 456 -[184,1](460, 458) -> 457 -[p1,1] -> 458 -[p2,1] -> 459 -[p3,1] -> 460 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/92/pre.hsl b/benchmarks/all/OEGrover/92/pre.hsl index 65209dd40..c266d3960 100644 --- a/benchmarks/all/OEGrover/92/pre.hsl +++ b/benchmarks/all/OEGrover/92/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 45 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 4951760157141521099596496895 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/92/pre.lsta b/benchmarks/all/OEGrover/92/pre.lsta deleted file mode 100644 index c1fc7b65a..000000000 --- a/benchmarks/all/OEGrover/92/pre.lsta +++ /dev/null @@ -1,471 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 186) -> 183 -[93,1](185, 187) -> 184 -[94,1](188, 188) -> 185 -[94,1](189, 188) -> 186 -[94,1](190, 188) -> 187 -[95,1](191, 191) -> 188 -[95,1](192, 191) -> 189 -[95,1](193, 191) -> 190 -[96,1](194, 194) -> 191 -[96,1](195, 194) -> 192 -[96,1](196, 194) -> 193 -[97,1](197, 197) -> 194 -[97,1](198, 197) -> 195 -[97,1](199, 197) -> 196 -[98,1](200, 200) -> 197 -[98,1](201, 200) -> 198 -[98,1](202, 200) -> 199 -[99,1](203, 203) -> 200 -[99,1](204, 203) -> 201 -[99,1](205, 203) -> 202 -[100,1](206, 206) -> 203 -[100,1](207, 206) -> 204 -[100,1](208, 206) -> 205 -[101,1](209, 209) -> 206 -[101,1](210, 209) -> 207 -[101,1](211, 209) -> 208 -[102,1](212, 212) -> 209 -[102,1](213, 212) -> 210 -[102,1](214, 212) -> 211 -[103,1](215, 215) -> 212 -[103,1](216, 215) -> 213 -[103,1](217, 215) -> 214 -[104,1](218, 218) -> 215 -[104,1](219, 218) -> 216 -[104,1](220, 218) -> 217 -[105,1](221, 221) -> 218 -[105,1](222, 221) -> 219 -[105,1](223, 221) -> 220 -[106,1](224, 224) -> 221 -[106,1](225, 224) -> 222 -[106,1](226, 224) -> 223 -[107,1](227, 227) -> 224 -[107,1](228, 227) -> 225 -[107,1](229, 227) -> 226 -[108,1](230, 230) -> 227 -[108,1](231, 230) -> 228 -[108,1](232, 230) -> 229 -[109,1](233, 233) -> 230 -[109,1](234, 233) -> 231 -[109,1](235, 233) -> 232 -[110,1](236, 236) -> 233 -[110,1](237, 236) -> 234 -[110,1](238, 236) -> 235 -[111,1](239, 239) -> 236 -[111,1](240, 239) -> 237 -[111,1](241, 239) -> 238 -[112,1](242, 242) -> 239 -[112,1](243, 242) -> 240 -[112,1](244, 242) -> 241 -[113,1](245, 245) -> 242 -[113,1](246, 245) -> 243 -[113,1](247, 245) -> 244 -[114,1](248, 248) -> 245 -[114,1](249, 248) -> 246 -[114,1](250, 248) -> 247 -[115,1](251, 251) -> 248 -[115,1](252, 251) -> 249 -[115,1](253, 251) -> 250 -[116,1](254, 254) -> 251 -[116,1](255, 254) -> 252 -[116,1](256, 254) -> 253 -[117,1](257, 257) -> 254 -[117,1](258, 257) -> 255 -[117,1](259, 257) -> 256 -[118,1](260, 260) -> 257 -[118,1](261, 260) -> 258 -[118,1](262, 260) -> 259 -[119,1](263, 263) -> 260 -[119,1](264, 263) -> 261 -[119,1](265, 263) -> 262 -[120,1](266, 266) -> 263 -[120,1](267, 266) -> 264 -[120,1](268, 266) -> 265 -[121,1](269, 269) -> 266 -[121,1](270, 269) -> 267 -[121,1](271, 269) -> 268 -[122,1](272, 272) -> 269 -[122,1](273, 272) -> 270 -[122,1](274, 272) -> 271 -[123,1](275, 275) -> 272 -[123,1](276, 275) -> 273 -[123,1](277, 275) -> 274 -[124,1](278, 278) -> 275 -[124,1](279, 278) -> 276 -[124,1](280, 278) -> 277 -[125,1](281, 281) -> 278 -[125,1](282, 281) -> 279 -[125,1](283, 281) -> 280 -[126,1](284, 284) -> 281 -[126,1](285, 284) -> 282 -[126,1](286, 284) -> 283 -[127,1](287, 287) -> 284 -[127,1](288, 287) -> 285 -[127,1](289, 287) -> 286 -[128,1](290, 290) -> 287 -[128,1](291, 290) -> 288 -[128,1](292, 290) -> 289 -[129,1](293, 293) -> 290 -[129,1](294, 293) -> 291 -[129,1](295, 293) -> 292 -[130,1](296, 296) -> 293 -[130,1](297, 296) -> 294 -[130,1](298, 296) -> 295 -[131,1](299, 299) -> 296 -[131,1](300, 299) -> 297 -[131,1](301, 299) -> 298 -[132,1](302, 302) -> 299 -[132,1](303, 302) -> 300 -[132,1](304, 302) -> 301 -[133,1](305, 305) -> 302 -[133,1](306, 305) -> 303 -[133,1](307, 305) -> 304 -[134,1](308, 308) -> 305 -[134,1](309, 308) -> 306 -[134,1](310, 308) -> 307 -[135,1](311, 311) -> 308 -[135,1](312, 311) -> 309 -[135,1](313, 311) -> 310 -[136,1](314, 314) -> 311 -[136,1](315, 314) -> 312 -[136,1](316, 314) -> 313 -[137,1](317, 317) -> 314 -[137,1](318, 317) -> 315 -[137,1](319, 317) -> 316 -[138,1](320, 320) -> 317 -[138,1](321, 320) -> 318 -[138,1](322, 320) -> 319 -[139,1](323, 323) -> 320 -[139,1](324, 323) -> 321 -[139,1](325, 323) -> 322 -[140,1](326, 326) -> 323 -[140,1](327, 326) -> 324 -[140,1](328, 326) -> 325 -[141,1](329, 329) -> 326 -[141,1](330, 329) -> 327 -[141,1](331, 329) -> 328 -[142,1](332, 332) -> 329 -[142,1](333, 332) -> 330 -[142,1](334, 332) -> 331 -[143,1](335, 335) -> 332 -[143,1](336, 335) -> 333 -[143,1](337, 335) -> 334 -[144,1](338, 338) -> 335 -[144,1](339, 338) -> 336 -[144,1](340, 338) -> 337 -[145,1](341, 341) -> 338 -[145,1](342, 341) -> 339 -[145,1](343, 341) -> 340 -[146,1](344, 344) -> 341 -[146,1](345, 344) -> 342 -[146,1](346, 344) -> 343 -[147,1](347, 347) -> 344 -[147,1](348, 347) -> 345 -[147,1](349, 347) -> 346 -[148,1](350, 350) -> 347 -[148,1](351, 350) -> 348 -[148,1](352, 350) -> 349 -[149,1](353, 353) -> 350 -[149,1](354, 353) -> 351 -[149,1](355, 353) -> 352 -[150,1](356, 356) -> 353 -[150,1](357, 356) -> 354 -[150,1](358, 356) -> 355 -[151,1](359, 359) -> 356 -[151,1](360, 359) -> 357 -[151,1](361, 359) -> 358 -[152,1](362, 362) -> 359 -[152,1](363, 362) -> 360 -[152,1](364, 362) -> 361 -[153,1](365, 365) -> 362 -[153,1](366, 365) -> 363 -[153,1](367, 365) -> 364 -[154,1](368, 368) -> 365 -[154,1](369, 368) -> 366 -[154,1](370, 368) -> 367 -[155,1](371, 371) -> 368 -[155,1](372, 371) -> 369 -[155,1](373, 371) -> 370 -[156,1](374, 374) -> 371 -[156,1](375, 374) -> 372 -[156,1](376, 374) -> 373 -[157,1](377, 377) -> 374 -[157,1](378, 377) -> 375 -[157,1](379, 377) -> 376 -[158,1](380, 380) -> 377 -[158,1](381, 380) -> 378 -[158,1](382, 380) -> 379 -[159,1](383, 383) -> 380 -[159,1](384, 383) -> 381 -[159,1](385, 383) -> 382 -[160,1](386, 386) -> 383 -[160,1](387, 386) -> 384 -[160,1](388, 386) -> 385 -[161,1](389, 389) -> 386 -[161,1](390, 389) -> 387 -[161,1](391, 389) -> 388 -[162,1](392, 392) -> 389 -[162,1](393, 392) -> 390 -[162,1](394, 392) -> 391 -[163,1](395, 395) -> 392 -[163,1](396, 395) -> 393 -[163,1](397, 395) -> 394 -[164,1](398, 398) -> 395 -[164,1](399, 398) -> 396 -[164,1](400, 398) -> 397 -[165,1](401, 401) -> 398 -[165,1](402, 401) -> 399 -[165,1](403, 401) -> 400 -[166,1](404, 404) -> 401 -[166,1](405, 404) -> 402 -[166,1](406, 404) -> 403 -[167,1](407, 407) -> 404 -[167,1](408, 407) -> 405 -[167,1](409, 407) -> 406 -[168,1](410, 410) -> 407 -[168,1](411, 410) -> 408 -[168,1](412, 410) -> 409 -[169,1](413, 413) -> 410 -[169,1](414, 413) -> 411 -[169,1](415, 413) -> 412 -[170,1](416, 416) -> 413 -[170,1](417, 416) -> 414 -[170,1](418, 416) -> 415 -[171,1](419, 419) -> 416 -[171,1](420, 419) -> 417 -[171,1](421, 419) -> 418 -[172,1](422, 422) -> 419 -[172,1](423, 422) -> 420 -[172,1](424, 422) -> 421 -[173,1](425, 425) -> 422 -[173,1](426, 425) -> 423 -[173,1](427, 425) -> 424 -[174,1](428, 428) -> 425 -[174,1](429, 428) -> 426 -[174,1](430, 428) -> 427 -[175,1](431, 431) -> 428 -[175,1](432, 431) -> 429 -[175,1](433, 431) -> 430 -[176,1](434, 434) -> 431 -[176,1](435, 434) -> 432 -[176,1](436, 434) -> 433 -[177,1](437, 437) -> 434 -[177,1](438, 437) -> 435 -[177,1](439, 437) -> 436 -[178,1](440, 440) -> 437 -[178,1](441, 440) -> 438 -[178,1](442, 440) -> 439 -[179,1](443, 443) -> 440 -[179,1](444, 443) -> 441 -[179,1](445, 443) -> 442 -[180,1](446, 446) -> 443 -[180,1](447, 446) -> 444 -[180,1](448, 446) -> 445 -[181,1](449, 449) -> 446 -[181,1](450, 449) -> 447 -[181,1](451, 449) -> 448 -[182,1](452, 452) -> 449 -[182,1](453, 452) -> 450 -[182,1](454, 452) -> 451 -[183,1](455, 455) -> 452 -[183,1](456, 455) -> 453 -[183,1](457, 455) -> 454 -[184,1](458, 458) -> 455 -[184,1](459, 458) -> 456 -[184,1](460, 458) -> 457 -[c0,1] -> 458 -[a,1] -> 459 -[b,1] -> 460 -Constraints -4951760157141521099596496895 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/93/circuit.qasm b/benchmarks/all/OEGrover/93/circuit.qasm index 42101dde5..e01c637fa 100644 --- a/benchmarks/all/OEGrover/93/circuit.qasm +++ b/benchmarks/all/OEGrover/93/circuit.qasm @@ -1,237 +1,237 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[186]; +qreg qubits[185]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -x qubits[92]; -ccx qubits[0], qubits[1], qubits[94]; -ccx qubits[2], qubits[94], qubits[95]; -ccx qubits[3], qubits[95], qubits[96]; -ccx qubits[4], qubits[96], qubits[97]; -ccx qubits[5], qubits[97], qubits[98]; -ccx qubits[6], qubits[98], qubits[99]; -ccx qubits[7], qubits[99], qubits[100]; -ccx qubits[8], qubits[100], qubits[101]; -ccx qubits[9], qubits[101], qubits[102]; -ccx qubits[10], qubits[102], qubits[103]; -ccx qubits[11], qubits[103], qubits[104]; -ccx qubits[12], qubits[104], qubits[105]; -ccx qubits[13], qubits[105], qubits[106]; -ccx qubits[14], qubits[106], qubits[107]; -ccx qubits[15], qubits[107], qubits[108]; -ccx qubits[16], qubits[108], qubits[109]; -ccx qubits[17], qubits[109], qubits[110]; -ccx qubits[18], qubits[110], qubits[111]; -ccx qubits[19], qubits[111], qubits[112]; -ccx qubits[20], qubits[112], qubits[113]; -ccx qubits[21], qubits[113], qubits[114]; -ccx qubits[22], qubits[114], qubits[115]; -ccx qubits[23], qubits[115], qubits[116]; -ccx qubits[24], qubits[116], qubits[117]; -ccx qubits[25], qubits[117], qubits[118]; -ccx qubits[26], qubits[118], qubits[119]; -ccx qubits[27], qubits[119], qubits[120]; -ccx qubits[28], qubits[120], qubits[121]; -ccx qubits[29], qubits[121], qubits[122]; -ccx qubits[30], qubits[122], qubits[123]; -ccx qubits[31], qubits[123], qubits[124]; -ccx qubits[32], qubits[124], qubits[125]; -ccx qubits[33], qubits[125], qubits[126]; -ccx qubits[34], qubits[126], qubits[127]; -ccx qubits[35], qubits[127], qubits[128]; -ccx qubits[36], qubits[128], qubits[129]; -ccx qubits[37], qubits[129], qubits[130]; -ccx qubits[38], qubits[130], qubits[131]; -ccx qubits[39], qubits[131], qubits[132]; -ccx qubits[40], qubits[132], qubits[133]; -ccx qubits[41], qubits[133], qubits[134]; -ccx qubits[42], qubits[134], qubits[135]; -ccx qubits[43], qubits[135], qubits[136]; -ccx qubits[44], qubits[136], qubits[137]; -ccx qubits[45], qubits[137], qubits[138]; -ccx qubits[46], qubits[138], qubits[139]; -ccx qubits[47], qubits[139], qubits[140]; -ccx qubits[48], qubits[140], qubits[141]; -ccx qubits[49], qubits[141], qubits[142]; -ccx qubits[50], qubits[142], qubits[143]; -ccx qubits[51], qubits[143], qubits[144]; -ccx qubits[52], qubits[144], qubits[145]; -ccx qubits[53], qubits[145], qubits[146]; -ccx qubits[54], qubits[146], qubits[147]; -ccx qubits[55], qubits[147], qubits[148]; -ccx qubits[56], qubits[148], qubits[149]; -ccx qubits[57], qubits[149], qubits[150]; -ccx qubits[58], qubits[150], qubits[151]; -ccx qubits[59], qubits[151], qubits[152]; -ccx qubits[60], qubits[152], qubits[153]; -ccx qubits[61], qubits[153], qubits[154]; -ccx qubits[62], qubits[154], qubits[155]; -ccx qubits[63], qubits[155], qubits[156]; -ccx qubits[64], qubits[156], qubits[157]; -ccx qubits[65], qubits[157], qubits[158]; -ccx qubits[66], qubits[158], qubits[159]; -ccx qubits[67], qubits[159], qubits[160]; -ccx qubits[68], qubits[160], qubits[161]; -ccx qubits[69], qubits[161], qubits[162]; -ccx qubits[70], qubits[162], qubits[163]; -ccx qubits[71], qubits[163], qubits[164]; -ccx qubits[72], qubits[164], qubits[165]; -ccx qubits[73], qubits[165], qubits[166]; -ccx qubits[74], qubits[166], qubits[167]; -ccx qubits[75], qubits[167], qubits[168]; -ccx qubits[76], qubits[168], qubits[169]; -ccx qubits[77], qubits[169], qubits[170]; -ccx qubits[78], qubits[170], qubits[171]; -ccx qubits[79], qubits[171], qubits[172]; -ccx qubits[80], qubits[172], qubits[173]; -ccx qubits[81], qubits[173], qubits[174]; -ccx qubits[82], qubits[174], qubits[175]; -ccx qubits[83], qubits[175], qubits[176]; -ccx qubits[84], qubits[176], qubits[177]; -ccx qubits[85], qubits[177], qubits[178]; -ccx qubits[86], qubits[178], qubits[179]; -ccx qubits[87], qubits[179], qubits[180]; -ccx qubits[88], qubits[180], qubits[181]; -ccx qubits[89], qubits[181], qubits[182]; -ccx qubits[90], qubits[182], qubits[183]; -ccx qubits[91], qubits[183], qubits[184]; -cz qubits[184], qubits[92]; -ccx qubits[91], qubits[183], qubits[184]; -ccx qubits[90], qubits[182], qubits[183]; -ccx qubits[89], qubits[181], qubits[182]; -ccx qubits[88], qubits[180], qubits[181]; -ccx qubits[87], qubits[179], qubits[180]; -ccx qubits[86], qubits[178], qubits[179]; -ccx qubits[85], qubits[177], qubits[178]; -ccx qubits[84], qubits[176], qubits[177]; -ccx qubits[83], qubits[175], qubits[176]; -ccx qubits[82], qubits[174], qubits[175]; -ccx qubits[81], qubits[173], qubits[174]; -ccx qubits[80], qubits[172], qubits[173]; -ccx qubits[79], qubits[171], qubits[172]; -ccx qubits[78], qubits[170], qubits[171]; -ccx qubits[77], qubits[169], qubits[170]; -ccx qubits[76], qubits[168], qubits[169]; -ccx qubits[75], qubits[167], qubits[168]; -ccx qubits[74], qubits[166], qubits[167]; -ccx qubits[73], qubits[165], qubits[166]; -ccx qubits[72], qubits[164], qubits[165]; -ccx qubits[71], qubits[163], qubits[164]; -ccx qubits[70], qubits[162], qubits[163]; -ccx qubits[69], qubits[161], qubits[162]; -ccx qubits[68], qubits[160], qubits[161]; -ccx qubits[67], qubits[159], qubits[160]; -ccx qubits[66], qubits[158], qubits[159]; -ccx qubits[65], qubits[157], qubits[158]; -ccx qubits[64], qubits[156], qubits[157]; -ccx qubits[63], qubits[155], qubits[156]; -ccx qubits[62], qubits[154], qubits[155]; -ccx qubits[61], qubits[153], qubits[154]; -ccx qubits[60], qubits[152], qubits[153]; -ccx qubits[59], qubits[151], qubits[152]; -ccx qubits[58], qubits[150], qubits[151]; -ccx qubits[57], qubits[149], qubits[150]; -ccx qubits[56], qubits[148], qubits[149]; -ccx qubits[55], qubits[147], qubits[148]; -ccx qubits[54], qubits[146], qubits[147]; -ccx qubits[53], qubits[145], qubits[146]; -ccx qubits[52], qubits[144], qubits[145]; -ccx qubits[51], qubits[143], qubits[144]; -ccx qubits[50], qubits[142], qubits[143]; -ccx qubits[49], qubits[141], qubits[142]; -ccx qubits[48], qubits[140], qubits[141]; -ccx qubits[47], qubits[139], qubits[140]; -ccx qubits[46], qubits[138], qubits[139]; -ccx qubits[45], qubits[137], qubits[138]; -ccx qubits[44], qubits[136], qubits[137]; -ccx qubits[43], qubits[135], qubits[136]; -ccx qubits[42], qubits[134], qubits[135]; -ccx qubits[41], qubits[133], qubits[134]; -ccx qubits[40], qubits[132], qubits[133]; -ccx qubits[39], qubits[131], qubits[132]; -ccx qubits[38], qubits[130], qubits[131]; -ccx qubits[37], qubits[129], qubits[130]; -ccx qubits[36], qubits[128], qubits[129]; -ccx qubits[35], qubits[127], qubits[128]; -ccx qubits[34], qubits[126], qubits[127]; -ccx qubits[33], qubits[125], qubits[126]; -ccx qubits[32], qubits[124], qubits[125]; -ccx qubits[31], qubits[123], qubits[124]; -ccx qubits[30], qubits[122], qubits[123]; -ccx qubits[29], qubits[121], qubits[122]; -ccx qubits[28], qubits[120], qubits[121]; -ccx qubits[27], qubits[119], qubits[120]; -ccx qubits[26], qubits[118], qubits[119]; -ccx qubits[25], qubits[117], qubits[118]; -ccx qubits[24], qubits[116], qubits[117]; -ccx qubits[23], qubits[115], qubits[116]; -ccx qubits[22], qubits[114], qubits[115]; -ccx qubits[21], qubits[113], qubits[114]; -ccx qubits[20], qubits[112], qubits[113]; -ccx qubits[19], qubits[111], qubits[112]; -ccx qubits[18], qubits[110], qubits[111]; -ccx qubits[17], qubits[109], qubits[110]; -ccx qubits[16], qubits[108], qubits[109]; -ccx qubits[15], qubits[107], qubits[108]; -ccx qubits[14], qubits[106], qubits[107]; -ccx qubits[13], qubits[105], qubits[106]; -ccx qubits[12], qubits[104], qubits[105]; -ccx qubits[11], qubits[103], qubits[104]; -ccx qubits[10], qubits[102], qubits[103]; -ccx qubits[9], qubits[101], qubits[102]; -ccx qubits[8], qubits[100], qubits[101]; -ccx qubits[7], qubits[99], qubits[100]; -ccx qubits[6], qubits[98], qubits[99]; -ccx qubits[5], qubits[97], qubits[98]; -ccx qubits[4], qubits[96], qubits[97]; -ccx qubits[3], qubits[95], qubits[96]; -ccx qubits[2], qubits[94], qubits[95]; -ccx qubits[0], qubits[1], qubits[94]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +x qubits[183]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +cz qubits[182], qubits[183]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -281,557 +281,557 @@ x qubits[90]; x qubits[92]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; -ccx qubits[0], qubits[1], qubits[94]; -ccx qubits[2], qubits[94], qubits[95]; -ccx qubits[3], qubits[95], qubits[96]; -ccx qubits[4], qubits[96], qubits[97]; -ccx qubits[5], qubits[97], qubits[98]; -ccx qubits[6], qubits[98], qubits[99]; -ccx qubits[7], qubits[99], qubits[100]; -ccx qubits[8], qubits[100], qubits[101]; -ccx qubits[9], qubits[101], qubits[102]; -ccx qubits[10], qubits[102], qubits[103]; -ccx qubits[11], qubits[103], qubits[104]; -ccx qubits[12], qubits[104], qubits[105]; -ccx qubits[13], qubits[105], qubits[106]; -ccx qubits[14], qubits[106], qubits[107]; -ccx qubits[15], qubits[107], qubits[108]; -ccx qubits[16], qubits[108], qubits[109]; -ccx qubits[17], qubits[109], qubits[110]; -ccx qubits[18], qubits[110], qubits[111]; -ccx qubits[19], qubits[111], qubits[112]; -ccx qubits[20], qubits[112], qubits[113]; -ccx qubits[21], qubits[113], qubits[114]; -ccx qubits[22], qubits[114], qubits[115]; -ccx qubits[23], qubits[115], qubits[116]; -ccx qubits[24], qubits[116], qubits[117]; -ccx qubits[25], qubits[117], qubits[118]; -ccx qubits[26], qubits[118], qubits[119]; -ccx qubits[27], qubits[119], qubits[120]; -ccx qubits[28], qubits[120], qubits[121]; -ccx qubits[29], qubits[121], qubits[122]; -ccx qubits[30], qubits[122], qubits[123]; -ccx qubits[31], qubits[123], qubits[124]; -ccx qubits[32], qubits[124], qubits[125]; -ccx qubits[33], qubits[125], qubits[126]; -ccx qubits[34], qubits[126], qubits[127]; -ccx qubits[35], qubits[127], qubits[128]; -ccx qubits[36], qubits[128], qubits[129]; -ccx qubits[37], qubits[129], qubits[130]; -ccx qubits[38], qubits[130], qubits[131]; -ccx qubits[39], qubits[131], qubits[132]; -ccx qubits[40], qubits[132], qubits[133]; -ccx qubits[41], qubits[133], qubits[134]; -ccx qubits[42], qubits[134], qubits[135]; -ccx qubits[43], qubits[135], qubits[136]; -ccx qubits[44], qubits[136], qubits[137]; -ccx qubits[45], qubits[137], qubits[138]; -ccx qubits[46], qubits[138], qubits[139]; -ccx qubits[47], qubits[139], qubits[140]; -ccx qubits[48], qubits[140], qubits[141]; -ccx qubits[49], qubits[141], qubits[142]; -ccx qubits[50], qubits[142], qubits[143]; -ccx qubits[51], qubits[143], qubits[144]; -ccx qubits[52], qubits[144], qubits[145]; -ccx qubits[53], qubits[145], qubits[146]; -ccx qubits[54], qubits[146], qubits[147]; -ccx qubits[55], qubits[147], qubits[148]; -ccx qubits[56], qubits[148], qubits[149]; -ccx qubits[57], qubits[149], qubits[150]; -ccx qubits[58], qubits[150], qubits[151]; -ccx qubits[59], qubits[151], qubits[152]; -ccx qubits[60], qubits[152], qubits[153]; -ccx qubits[61], qubits[153], qubits[154]; -ccx qubits[62], qubits[154], qubits[155]; -ccx qubits[63], qubits[155], qubits[156]; -ccx qubits[64], qubits[156], qubits[157]; -ccx qubits[65], qubits[157], qubits[158]; -ccx qubits[66], qubits[158], qubits[159]; -ccx qubits[67], qubits[159], qubits[160]; -ccx qubits[68], qubits[160], qubits[161]; -ccx qubits[69], qubits[161], qubits[162]; -ccx qubits[70], qubits[162], qubits[163]; -ccx qubits[71], qubits[163], qubits[164]; -ccx qubits[72], qubits[164], qubits[165]; -ccx qubits[73], qubits[165], qubits[166]; -ccx qubits[74], qubits[166], qubits[167]; -ccx qubits[75], qubits[167], qubits[168]; -ccx qubits[76], qubits[168], qubits[169]; -ccx qubits[77], qubits[169], qubits[170]; -ccx qubits[78], qubits[170], qubits[171]; -ccx qubits[79], qubits[171], qubits[172]; -ccx qubits[80], qubits[172], qubits[173]; -ccx qubits[81], qubits[173], qubits[174]; -ccx qubits[82], qubits[174], qubits[175]; -ccx qubits[83], qubits[175], qubits[176]; -ccx qubits[84], qubits[176], qubits[177]; -ccx qubits[85], qubits[177], qubits[178]; -ccx qubits[86], qubits[178], qubits[179]; -ccx qubits[87], qubits[179], qubits[180]; -ccx qubits[88], qubits[180], qubits[181]; -ccx qubits[89], qubits[181], qubits[182]; -ccx qubits[90], qubits[182], qubits[183]; -ccx qubits[91], qubits[183], qubits[184]; -cz qubits[184], qubits[92]; -ccx qubits[91], qubits[183], qubits[184]; -ccx qubits[90], qubits[182], qubits[183]; -ccx qubits[89], qubits[181], qubits[182]; -ccx qubits[88], qubits[180], qubits[181]; -ccx qubits[87], qubits[179], qubits[180]; -ccx qubits[86], qubits[178], qubits[179]; -ccx qubits[85], qubits[177], qubits[178]; -ccx qubits[84], qubits[176], qubits[177]; -ccx qubits[83], qubits[175], qubits[176]; -ccx qubits[82], qubits[174], qubits[175]; -ccx qubits[81], qubits[173], qubits[174]; -ccx qubits[80], qubits[172], qubits[173]; -ccx qubits[79], qubits[171], qubits[172]; -ccx qubits[78], qubits[170], qubits[171]; -ccx qubits[77], qubits[169], qubits[170]; -ccx qubits[76], qubits[168], qubits[169]; -ccx qubits[75], qubits[167], qubits[168]; -ccx qubits[74], qubits[166], qubits[167]; -ccx qubits[73], qubits[165], qubits[166]; -ccx qubits[72], qubits[164], qubits[165]; -ccx qubits[71], qubits[163], qubits[164]; -ccx qubits[70], qubits[162], qubits[163]; -ccx qubits[69], qubits[161], qubits[162]; -ccx qubits[68], qubits[160], qubits[161]; -ccx qubits[67], qubits[159], qubits[160]; -ccx qubits[66], qubits[158], qubits[159]; -ccx qubits[65], qubits[157], qubits[158]; -ccx qubits[64], qubits[156], qubits[157]; -ccx qubits[63], qubits[155], qubits[156]; -ccx qubits[62], qubits[154], qubits[155]; -ccx qubits[61], qubits[153], qubits[154]; -ccx qubits[60], qubits[152], qubits[153]; -ccx qubits[59], qubits[151], qubits[152]; -ccx qubits[58], qubits[150], qubits[151]; -ccx qubits[57], qubits[149], qubits[150]; -ccx qubits[56], qubits[148], qubits[149]; -ccx qubits[55], qubits[147], qubits[148]; -ccx qubits[54], qubits[146], qubits[147]; -ccx qubits[53], qubits[145], qubits[146]; -ccx qubits[52], qubits[144], qubits[145]; -ccx qubits[51], qubits[143], qubits[144]; -ccx qubits[50], qubits[142], qubits[143]; -ccx qubits[49], qubits[141], qubits[142]; -ccx qubits[48], qubits[140], qubits[141]; -ccx qubits[47], qubits[139], qubits[140]; -ccx qubits[46], qubits[138], qubits[139]; -ccx qubits[45], qubits[137], qubits[138]; -ccx qubits[44], qubits[136], qubits[137]; -ccx qubits[43], qubits[135], qubits[136]; -ccx qubits[42], qubits[134], qubits[135]; -ccx qubits[41], qubits[133], qubits[134]; -ccx qubits[40], qubits[132], qubits[133]; -ccx qubits[39], qubits[131], qubits[132]; -ccx qubits[38], qubits[130], qubits[131]; -ccx qubits[37], qubits[129], qubits[130]; -ccx qubits[36], qubits[128], qubits[129]; -ccx qubits[35], qubits[127], qubits[128]; -ccx qubits[34], qubits[126], qubits[127]; -ccx qubits[33], qubits[125], qubits[126]; -ccx qubits[32], qubits[124], qubits[125]; -ccx qubits[31], qubits[123], qubits[124]; -ccx qubits[30], qubits[122], qubits[123]; -ccx qubits[29], qubits[121], qubits[122]; -ccx qubits[28], qubits[120], qubits[121]; -ccx qubits[27], qubits[119], qubits[120]; -ccx qubits[26], qubits[118], qubits[119]; -ccx qubits[25], qubits[117], qubits[118]; -ccx qubits[24], qubits[116], qubits[117]; -ccx qubits[23], qubits[115], qubits[116]; -ccx qubits[22], qubits[114], qubits[115]; -ccx qubits[21], qubits[113], qubits[114]; -ccx qubits[20], qubits[112], qubits[113]; -ccx qubits[19], qubits[111], qubits[112]; -ccx qubits[18], qubits[110], qubits[111]; -ccx qubits[17], qubits[109], qubits[110]; -ccx qubits[16], qubits[108], qubits[109]; -ccx qubits[15], qubits[107], qubits[108]; -ccx qubits[14], qubits[106], qubits[107]; -ccx qubits[13], qubits[105], qubits[106]; -ccx qubits[12], qubits[104], qubits[105]; -ccx qubits[11], qubits[103], qubits[104]; -ccx qubits[10], qubits[102], qubits[103]; -ccx qubits[9], qubits[101], qubits[102]; -ccx qubits[8], qubits[100], qubits[101]; -ccx qubits[7], qubits[99], qubits[100]; -ccx qubits[6], qubits[98], qubits[99]; -ccx qubits[5], qubits[97], qubits[98]; -ccx qubits[4], qubits[96], qubits[97]; -ccx qubits[3], qubits[95], qubits[96]; -ccx qubits[2], qubits[94], qubits[95]; -ccx qubits[0], qubits[1], qubits[94]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +cz qubits[182], qubits[183]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; +x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; -z qubits[93]; +h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +z qubits[184]; diff --git a/benchmarks/all/OEGrover/93/post.hsl b/benchmarks/all/OEGrover/93/post.hsl index 43c34d575..a1811259f 100644 --- a/benchmarks/all/OEGrover/93/post.hsl +++ b/benchmarks/all/OEGrover/93/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 45 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/93/post.lsta b/benchmarks/all/OEGrover/93/post.lsta deleted file mode 100644 index 551650036..000000000 --- a/benchmarks/all/OEGrover/93/post.lsta +++ /dev/null @@ -1,472 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 188) -> 185 -[94,1](187, 189) -> 186 -[95,1](190, 190) -> 187 -[95,1](191, 190) -> 188 -[95,1](192, 190) -> 189 -[96,1](193, 193) -> 190 -[96,1](194, 193) -> 191 -[96,1](195, 193) -> 192 -[97,1](196, 196) -> 193 -[97,1](197, 196) -> 194 -[97,1](198, 196) -> 195 -[98,1](199, 199) -> 196 -[98,1](200, 199) -> 197 -[98,1](201, 199) -> 198 -[99,1](202, 202) -> 199 -[99,1](203, 202) -> 200 -[99,1](204, 202) -> 201 -[100,1](205, 205) -> 202 -[100,1](206, 205) -> 203 -[100,1](207, 205) -> 204 -[101,1](208, 208) -> 205 -[101,1](209, 208) -> 206 -[101,1](210, 208) -> 207 -[102,1](211, 211) -> 208 -[102,1](212, 211) -> 209 -[102,1](213, 211) -> 210 -[103,1](214, 214) -> 211 -[103,1](215, 214) -> 212 -[103,1](216, 214) -> 213 -[104,1](217, 217) -> 214 -[104,1](218, 217) -> 215 -[104,1](219, 217) -> 216 -[105,1](220, 220) -> 217 -[105,1](221, 220) -> 218 -[105,1](222, 220) -> 219 -[106,1](223, 223) -> 220 -[106,1](224, 223) -> 221 -[106,1](225, 223) -> 222 -[107,1](226, 226) -> 223 -[107,1](227, 226) -> 224 -[107,1](228, 226) -> 225 -[108,1](229, 229) -> 226 -[108,1](230, 229) -> 227 -[108,1](231, 229) -> 228 -[109,1](232, 232) -> 229 -[109,1](233, 232) -> 230 -[109,1](234, 232) -> 231 -[110,1](235, 235) -> 232 -[110,1](236, 235) -> 233 -[110,1](237, 235) -> 234 -[111,1](238, 238) -> 235 -[111,1](239, 238) -> 236 -[111,1](240, 238) -> 237 -[112,1](241, 241) -> 238 -[112,1](242, 241) -> 239 -[112,1](243, 241) -> 240 -[113,1](244, 244) -> 241 -[113,1](245, 244) -> 242 -[113,1](246, 244) -> 243 -[114,1](247, 247) -> 244 -[114,1](248, 247) -> 245 -[114,1](249, 247) -> 246 -[115,1](250, 250) -> 247 -[115,1](251, 250) -> 248 -[115,1](252, 250) -> 249 -[116,1](253, 253) -> 250 -[116,1](254, 253) -> 251 -[116,1](255, 253) -> 252 -[117,1](256, 256) -> 253 -[117,1](257, 256) -> 254 -[117,1](258, 256) -> 255 -[118,1](259, 259) -> 256 -[118,1](260, 259) -> 257 -[118,1](261, 259) -> 258 -[119,1](262, 262) -> 259 -[119,1](263, 262) -> 260 -[119,1](264, 262) -> 261 -[120,1](265, 265) -> 262 -[120,1](266, 265) -> 263 -[120,1](267, 265) -> 264 -[121,1](268, 268) -> 265 -[121,1](269, 268) -> 266 -[121,1](270, 268) -> 267 -[122,1](271, 271) -> 268 -[122,1](272, 271) -> 269 -[122,1](273, 271) -> 270 -[123,1](274, 274) -> 271 -[123,1](275, 274) -> 272 -[123,1](276, 274) -> 273 -[124,1](277, 277) -> 274 -[124,1](278, 277) -> 275 -[124,1](279, 277) -> 276 -[125,1](280, 280) -> 277 -[125,1](281, 280) -> 278 -[125,1](282, 280) -> 279 -[126,1](283, 283) -> 280 -[126,1](284, 283) -> 281 -[126,1](285, 283) -> 282 -[127,1](286, 286) -> 283 -[127,1](287, 286) -> 284 -[127,1](288, 286) -> 285 -[128,1](289, 289) -> 286 -[128,1](290, 289) -> 287 -[128,1](291, 289) -> 288 -[129,1](292, 292) -> 289 -[129,1](293, 292) -> 290 -[129,1](294, 292) -> 291 -[130,1](295, 295) -> 292 -[130,1](296, 295) -> 293 -[130,1](297, 295) -> 294 -[131,1](298, 298) -> 295 -[131,1](299, 298) -> 296 -[131,1](300, 298) -> 297 -[132,1](301, 301) -> 298 -[132,1](302, 301) -> 299 -[132,1](303, 301) -> 300 -[133,1](304, 304) -> 301 -[133,1](305, 304) -> 302 -[133,1](306, 304) -> 303 -[134,1](307, 307) -> 304 -[134,1](308, 307) -> 305 -[134,1](309, 307) -> 306 -[135,1](310, 310) -> 307 -[135,1](311, 310) -> 308 -[135,1](312, 310) -> 309 -[136,1](313, 313) -> 310 -[136,1](314, 313) -> 311 -[136,1](315, 313) -> 312 -[137,1](316, 316) -> 313 -[137,1](317, 316) -> 314 -[137,1](318, 316) -> 315 -[138,1](319, 319) -> 316 -[138,1](320, 319) -> 317 -[138,1](321, 319) -> 318 -[139,1](322, 322) -> 319 -[139,1](323, 322) -> 320 -[139,1](324, 322) -> 321 -[140,1](325, 325) -> 322 -[140,1](326, 325) -> 323 -[140,1](327, 325) -> 324 -[141,1](328, 328) -> 325 -[141,1](329, 328) -> 326 -[141,1](330, 328) -> 327 -[142,1](331, 331) -> 328 -[142,1](332, 331) -> 329 -[142,1](333, 331) -> 330 -[143,1](334, 334) -> 331 -[143,1](335, 334) -> 332 -[143,1](336, 334) -> 333 -[144,1](337, 337) -> 334 -[144,1](338, 337) -> 335 -[144,1](339, 337) -> 336 -[145,1](340, 340) -> 337 -[145,1](341, 340) -> 338 -[145,1](342, 340) -> 339 -[146,1](343, 343) -> 340 -[146,1](344, 343) -> 341 -[146,1](345, 343) -> 342 -[147,1](346, 346) -> 343 -[147,1](347, 346) -> 344 -[147,1](348, 346) -> 345 -[148,1](349, 349) -> 346 -[148,1](350, 349) -> 347 -[148,1](351, 349) -> 348 -[149,1](352, 352) -> 349 -[149,1](353, 352) -> 350 -[149,1](354, 352) -> 351 -[150,1](355, 355) -> 352 -[150,1](356, 355) -> 353 -[150,1](357, 355) -> 354 -[151,1](358, 358) -> 355 -[151,1](359, 358) -> 356 -[151,1](360, 358) -> 357 -[152,1](361, 361) -> 358 -[152,1](362, 361) -> 359 -[152,1](363, 361) -> 360 -[153,1](364, 364) -> 361 -[153,1](365, 364) -> 362 -[153,1](366, 364) -> 363 -[154,1](367, 367) -> 364 -[154,1](368, 367) -> 365 -[154,1](369, 367) -> 366 -[155,1](370, 370) -> 367 -[155,1](371, 370) -> 368 -[155,1](372, 370) -> 369 -[156,1](373, 373) -> 370 -[156,1](374, 373) -> 371 -[156,1](375, 373) -> 372 -[157,1](376, 376) -> 373 -[157,1](377, 376) -> 374 -[157,1](378, 376) -> 375 -[158,1](379, 379) -> 376 -[158,1](380, 379) -> 377 -[158,1](381, 379) -> 378 -[159,1](382, 382) -> 379 -[159,1](383, 382) -> 380 -[159,1](384, 382) -> 381 -[160,1](385, 385) -> 382 -[160,1](386, 385) -> 383 -[160,1](387, 385) -> 384 -[161,1](388, 388) -> 385 -[161,1](389, 388) -> 386 -[161,1](390, 388) -> 387 -[162,1](391, 391) -> 388 -[162,1](392, 391) -> 389 -[162,1](393, 391) -> 390 -[163,1](394, 394) -> 391 -[163,1](395, 394) -> 392 -[163,1](396, 394) -> 393 -[164,1](397, 397) -> 394 -[164,1](398, 397) -> 395 -[164,1](399, 397) -> 396 -[165,1](400, 400) -> 397 -[165,1](401, 400) -> 398 -[165,1](402, 400) -> 399 -[166,1](403, 403) -> 400 -[166,1](404, 403) -> 401 -[166,1](405, 403) -> 402 -[167,1](406, 406) -> 403 -[167,1](407, 406) -> 404 -[167,1](408, 406) -> 405 -[168,1](409, 409) -> 406 -[168,1](410, 409) -> 407 -[168,1](411, 409) -> 408 -[169,1](412, 412) -> 409 -[169,1](413, 412) -> 410 -[169,1](414, 412) -> 411 -[170,1](415, 415) -> 412 -[170,1](416, 415) -> 413 -[170,1](417, 415) -> 414 -[171,1](418, 418) -> 415 -[171,1](419, 418) -> 416 -[171,1](420, 418) -> 417 -[172,1](421, 421) -> 418 -[172,1](422, 421) -> 419 -[172,1](423, 421) -> 420 -[173,1](424, 424) -> 421 -[173,1](425, 424) -> 422 -[173,1](426, 424) -> 423 -[174,1](427, 427) -> 424 -[174,1](428, 427) -> 425 -[174,1](429, 427) -> 426 -[175,1](430, 430) -> 427 -[175,1](431, 430) -> 428 -[175,1](432, 430) -> 429 -[176,1](433, 433) -> 430 -[176,1](434, 433) -> 431 -[176,1](435, 433) -> 432 -[177,1](436, 436) -> 433 -[177,1](437, 436) -> 434 -[177,1](438, 436) -> 435 -[178,1](439, 439) -> 436 -[178,1](440, 439) -> 437 -[178,1](441, 439) -> 438 -[179,1](442, 442) -> 439 -[179,1](443, 442) -> 440 -[179,1](444, 442) -> 441 -[180,1](445, 445) -> 442 -[180,1](446, 445) -> 443 -[180,1](447, 445) -> 444 -[181,1](448, 448) -> 445 -[181,1](449, 448) -> 446 -[181,1](450, 448) -> 447 -[182,1](451, 451) -> 448 -[182,1](452, 451) -> 449 -[182,1](453, 451) -> 450 -[183,1](454, 454) -> 451 -[183,1](455, 454) -> 452 -[183,1](456, 454) -> 453 -[184,1](457, 457) -> 454 -[184,1](458, 457) -> 455 -[184,1](459, 457) -> 456 -[185,1](460, 460) -> 457 -[185,1](461, 460) -> 458 -[185,1](462, 460) -> 459 -[186,1](463, 463) -> 460 -[186,1](464, 463) -> 461 -[186,1](465, 463) -> 462 -[p1,1] -> 463 -[p2,1] -> 464 -[p3,1] -> 465 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/93/pre.hsl b/benchmarks/all/OEGrover/93/pre.hsl index e5731146a..1f40b3ce5 100644 --- a/benchmarks/all/OEGrover/93/pre.hsl +++ b/benchmarks/all/OEGrover/93/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 45 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 9903520314283042199192993791 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/93/pre.lsta b/benchmarks/all/OEGrover/93/pre.lsta deleted file mode 100644 index f3156d029..000000000 --- a/benchmarks/all/OEGrover/93/pre.lsta +++ /dev/null @@ -1,476 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 188) -> 185 -[94,1](187, 189) -> 186 -[95,1](190, 190) -> 187 -[95,1](191, 190) -> 188 -[95,1](192, 190) -> 189 -[96,1](193, 193) -> 190 -[96,1](194, 193) -> 191 -[96,1](195, 193) -> 192 -[97,1](196, 196) -> 193 -[97,1](197, 196) -> 194 -[97,1](198, 196) -> 195 -[98,1](199, 199) -> 196 -[98,1](200, 199) -> 197 -[98,1](201, 199) -> 198 -[99,1](202, 202) -> 199 -[99,1](203, 202) -> 200 -[99,1](204, 202) -> 201 -[100,1](205, 205) -> 202 -[100,1](206, 205) -> 203 -[100,1](207, 205) -> 204 -[101,1](208, 208) -> 205 -[101,1](209, 208) -> 206 -[101,1](210, 208) -> 207 -[102,1](211, 211) -> 208 -[102,1](212, 211) -> 209 -[102,1](213, 211) -> 210 -[103,1](214, 214) -> 211 -[103,1](215, 214) -> 212 -[103,1](216, 214) -> 213 -[104,1](217, 217) -> 214 -[104,1](218, 217) -> 215 -[104,1](219, 217) -> 216 -[105,1](220, 220) -> 217 -[105,1](221, 220) -> 218 -[105,1](222, 220) -> 219 -[106,1](223, 223) -> 220 -[106,1](224, 223) -> 221 -[106,1](225, 223) -> 222 -[107,1](226, 226) -> 223 -[107,1](227, 226) -> 224 -[107,1](228, 226) -> 225 -[108,1](229, 229) -> 226 -[108,1](230, 229) -> 227 -[108,1](231, 229) -> 228 -[109,1](232, 232) -> 229 -[109,1](233, 232) -> 230 -[109,1](234, 232) -> 231 -[110,1](235, 235) -> 232 -[110,1](236, 235) -> 233 -[110,1](237, 235) -> 234 -[111,1](238, 238) -> 235 -[111,1](239, 238) -> 236 -[111,1](240, 238) -> 237 -[112,1](241, 241) -> 238 -[112,1](242, 241) -> 239 -[112,1](243, 241) -> 240 -[113,1](244, 244) -> 241 -[113,1](245, 244) -> 242 -[113,1](246, 244) -> 243 -[114,1](247, 247) -> 244 -[114,1](248, 247) -> 245 -[114,1](249, 247) -> 246 -[115,1](250, 250) -> 247 -[115,1](251, 250) -> 248 -[115,1](252, 250) -> 249 -[116,1](253, 253) -> 250 -[116,1](254, 253) -> 251 -[116,1](255, 253) -> 252 -[117,1](256, 256) -> 253 -[117,1](257, 256) -> 254 -[117,1](258, 256) -> 255 -[118,1](259, 259) -> 256 -[118,1](260, 259) -> 257 -[118,1](261, 259) -> 258 -[119,1](262, 262) -> 259 -[119,1](263, 262) -> 260 -[119,1](264, 262) -> 261 -[120,1](265, 265) -> 262 -[120,1](266, 265) -> 263 -[120,1](267, 265) -> 264 -[121,1](268, 268) -> 265 -[121,1](269, 268) -> 266 -[121,1](270, 268) -> 267 -[122,1](271, 271) -> 268 -[122,1](272, 271) -> 269 -[122,1](273, 271) -> 270 -[123,1](274, 274) -> 271 -[123,1](275, 274) -> 272 -[123,1](276, 274) -> 273 -[124,1](277, 277) -> 274 -[124,1](278, 277) -> 275 -[124,1](279, 277) -> 276 -[125,1](280, 280) -> 277 -[125,1](281, 280) -> 278 -[125,1](282, 280) -> 279 -[126,1](283, 283) -> 280 -[126,1](284, 283) -> 281 -[126,1](285, 283) -> 282 -[127,1](286, 286) -> 283 -[127,1](287, 286) -> 284 -[127,1](288, 286) -> 285 -[128,1](289, 289) -> 286 -[128,1](290, 289) -> 287 -[128,1](291, 289) -> 288 -[129,1](292, 292) -> 289 -[129,1](293, 292) -> 290 -[129,1](294, 292) -> 291 -[130,1](295, 295) -> 292 -[130,1](296, 295) -> 293 -[130,1](297, 295) -> 294 -[131,1](298, 298) -> 295 -[131,1](299, 298) -> 296 -[131,1](300, 298) -> 297 -[132,1](301, 301) -> 298 -[132,1](302, 301) -> 299 -[132,1](303, 301) -> 300 -[133,1](304, 304) -> 301 -[133,1](305, 304) -> 302 -[133,1](306, 304) -> 303 -[134,1](307, 307) -> 304 -[134,1](308, 307) -> 305 -[134,1](309, 307) -> 306 -[135,1](310, 310) -> 307 -[135,1](311, 310) -> 308 -[135,1](312, 310) -> 309 -[136,1](313, 313) -> 310 -[136,1](314, 313) -> 311 -[136,1](315, 313) -> 312 -[137,1](316, 316) -> 313 -[137,1](317, 316) -> 314 -[137,1](318, 316) -> 315 -[138,1](319, 319) -> 316 -[138,1](320, 319) -> 317 -[138,1](321, 319) -> 318 -[139,1](322, 322) -> 319 -[139,1](323, 322) -> 320 -[139,1](324, 322) -> 321 -[140,1](325, 325) -> 322 -[140,1](326, 325) -> 323 -[140,1](327, 325) -> 324 -[141,1](328, 328) -> 325 -[141,1](329, 328) -> 326 -[141,1](330, 328) -> 327 -[142,1](331, 331) -> 328 -[142,1](332, 331) -> 329 -[142,1](333, 331) -> 330 -[143,1](334, 334) -> 331 -[143,1](335, 334) -> 332 -[143,1](336, 334) -> 333 -[144,1](337, 337) -> 334 -[144,1](338, 337) -> 335 -[144,1](339, 337) -> 336 -[145,1](340, 340) -> 337 -[145,1](341, 340) -> 338 -[145,1](342, 340) -> 339 -[146,1](343, 343) -> 340 -[146,1](344, 343) -> 341 -[146,1](345, 343) -> 342 -[147,1](346, 346) -> 343 -[147,1](347, 346) -> 344 -[147,1](348, 346) -> 345 -[148,1](349, 349) -> 346 -[148,1](350, 349) -> 347 -[148,1](351, 349) -> 348 -[149,1](352, 352) -> 349 -[149,1](353, 352) -> 350 -[149,1](354, 352) -> 351 -[150,1](355, 355) -> 352 -[150,1](356, 355) -> 353 -[150,1](357, 355) -> 354 -[151,1](358, 358) -> 355 -[151,1](359, 358) -> 356 -[151,1](360, 358) -> 357 -[152,1](361, 361) -> 358 -[152,1](362, 361) -> 359 -[152,1](363, 361) -> 360 -[153,1](364, 364) -> 361 -[153,1](365, 364) -> 362 -[153,1](366, 364) -> 363 -[154,1](367, 367) -> 364 -[154,1](368, 367) -> 365 -[154,1](369, 367) -> 366 -[155,1](370, 370) -> 367 -[155,1](371, 370) -> 368 -[155,1](372, 370) -> 369 -[156,1](373, 373) -> 370 -[156,1](374, 373) -> 371 -[156,1](375, 373) -> 372 -[157,1](376, 376) -> 373 -[157,1](377, 376) -> 374 -[157,1](378, 376) -> 375 -[158,1](379, 379) -> 376 -[158,1](380, 379) -> 377 -[158,1](381, 379) -> 378 -[159,1](382, 382) -> 379 -[159,1](383, 382) -> 380 -[159,1](384, 382) -> 381 -[160,1](385, 385) -> 382 -[160,1](386, 385) -> 383 -[160,1](387, 385) -> 384 -[161,1](388, 388) -> 385 -[161,1](389, 388) -> 386 -[161,1](390, 388) -> 387 -[162,1](391, 391) -> 388 -[162,1](392, 391) -> 389 -[162,1](393, 391) -> 390 -[163,1](394, 394) -> 391 -[163,1](395, 394) -> 392 -[163,1](396, 394) -> 393 -[164,1](397, 397) -> 394 -[164,1](398, 397) -> 395 -[164,1](399, 397) -> 396 -[165,1](400, 400) -> 397 -[165,1](401, 400) -> 398 -[165,1](402, 400) -> 399 -[166,1](403, 403) -> 400 -[166,1](404, 403) -> 401 -[166,1](405, 403) -> 402 -[167,1](406, 406) -> 403 -[167,1](407, 406) -> 404 -[167,1](408, 406) -> 405 -[168,1](409, 409) -> 406 -[168,1](410, 409) -> 407 -[168,1](411, 409) -> 408 -[169,1](412, 412) -> 409 -[169,1](413, 412) -> 410 -[169,1](414, 412) -> 411 -[170,1](415, 415) -> 412 -[170,1](416, 415) -> 413 -[170,1](417, 415) -> 414 -[171,1](418, 418) -> 415 -[171,1](419, 418) -> 416 -[171,1](420, 418) -> 417 -[172,1](421, 421) -> 418 -[172,1](422, 421) -> 419 -[172,1](423, 421) -> 420 -[173,1](424, 424) -> 421 -[173,1](425, 424) -> 422 -[173,1](426, 424) -> 423 -[174,1](427, 427) -> 424 -[174,1](428, 427) -> 425 -[174,1](429, 427) -> 426 -[175,1](430, 430) -> 427 -[175,1](431, 430) -> 428 -[175,1](432, 430) -> 429 -[176,1](433, 433) -> 430 -[176,1](434, 433) -> 431 -[176,1](435, 433) -> 432 -[177,1](436, 436) -> 433 -[177,1](437, 436) -> 434 -[177,1](438, 436) -> 435 -[178,1](439, 439) -> 436 -[178,1](440, 439) -> 437 -[178,1](441, 439) -> 438 -[179,1](442, 442) -> 439 -[179,1](443, 442) -> 440 -[179,1](444, 442) -> 441 -[180,1](445, 445) -> 442 -[180,1](446, 445) -> 443 -[180,1](447, 445) -> 444 -[181,1](448, 448) -> 445 -[181,1](449, 448) -> 446 -[181,1](450, 448) -> 447 -[182,1](451, 451) -> 448 -[182,1](452, 451) -> 449 -[182,1](453, 451) -> 450 -[183,1](454, 454) -> 451 -[183,1](455, 454) -> 452 -[183,1](456, 454) -> 453 -[184,1](457, 457) -> 454 -[184,1](458, 457) -> 455 -[184,1](459, 457) -> 456 -[185,1](460, 460) -> 457 -[185,1](461, 460) -> 458 -[185,1](462, 460) -> 459 -[186,1](463, 463) -> 460 -[186,1](464, 463) -> 461 -[186,1](465, 463) -> 462 -[c0,1] -> 463 -[a,1] -> 464 -[b,1] -> 465 -Constraints -9903520314283042199192993791 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/94/circuit.qasm b/benchmarks/all/OEGrover/94/circuit.qasm index 443433bac..849870630 100644 --- a/benchmarks/all/OEGrover/94/circuit.qasm +++ b/benchmarks/all/OEGrover/94/circuit.qasm @@ -1,239 +1,239 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[188]; +qreg qubits[187]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -x qubits[92]; -ccx qubits[0], qubits[1], qubits[95]; -ccx qubits[2], qubits[95], qubits[96]; -ccx qubits[3], qubits[96], qubits[97]; -ccx qubits[4], qubits[97], qubits[98]; -ccx qubits[5], qubits[98], qubits[99]; -ccx qubits[6], qubits[99], qubits[100]; -ccx qubits[7], qubits[100], qubits[101]; -ccx qubits[8], qubits[101], qubits[102]; -ccx qubits[9], qubits[102], qubits[103]; -ccx qubits[10], qubits[103], qubits[104]; -ccx qubits[11], qubits[104], qubits[105]; -ccx qubits[12], qubits[105], qubits[106]; -ccx qubits[13], qubits[106], qubits[107]; -ccx qubits[14], qubits[107], qubits[108]; -ccx qubits[15], qubits[108], qubits[109]; -ccx qubits[16], qubits[109], qubits[110]; -ccx qubits[17], qubits[110], qubits[111]; -ccx qubits[18], qubits[111], qubits[112]; -ccx qubits[19], qubits[112], qubits[113]; -ccx qubits[20], qubits[113], qubits[114]; -ccx qubits[21], qubits[114], qubits[115]; -ccx qubits[22], qubits[115], qubits[116]; -ccx qubits[23], qubits[116], qubits[117]; -ccx qubits[24], qubits[117], qubits[118]; -ccx qubits[25], qubits[118], qubits[119]; -ccx qubits[26], qubits[119], qubits[120]; -ccx qubits[27], qubits[120], qubits[121]; -ccx qubits[28], qubits[121], qubits[122]; -ccx qubits[29], qubits[122], qubits[123]; -ccx qubits[30], qubits[123], qubits[124]; -ccx qubits[31], qubits[124], qubits[125]; -ccx qubits[32], qubits[125], qubits[126]; -ccx qubits[33], qubits[126], qubits[127]; -ccx qubits[34], qubits[127], qubits[128]; -ccx qubits[35], qubits[128], qubits[129]; -ccx qubits[36], qubits[129], qubits[130]; -ccx qubits[37], qubits[130], qubits[131]; -ccx qubits[38], qubits[131], qubits[132]; -ccx qubits[39], qubits[132], qubits[133]; -ccx qubits[40], qubits[133], qubits[134]; -ccx qubits[41], qubits[134], qubits[135]; -ccx qubits[42], qubits[135], qubits[136]; -ccx qubits[43], qubits[136], qubits[137]; -ccx qubits[44], qubits[137], qubits[138]; -ccx qubits[45], qubits[138], qubits[139]; -ccx qubits[46], qubits[139], qubits[140]; -ccx qubits[47], qubits[140], qubits[141]; -ccx qubits[48], qubits[141], qubits[142]; -ccx qubits[49], qubits[142], qubits[143]; -ccx qubits[50], qubits[143], qubits[144]; -ccx qubits[51], qubits[144], qubits[145]; -ccx qubits[52], qubits[145], qubits[146]; -ccx qubits[53], qubits[146], qubits[147]; -ccx qubits[54], qubits[147], qubits[148]; -ccx qubits[55], qubits[148], qubits[149]; -ccx qubits[56], qubits[149], qubits[150]; -ccx qubits[57], qubits[150], qubits[151]; -ccx qubits[58], qubits[151], qubits[152]; -ccx qubits[59], qubits[152], qubits[153]; -ccx qubits[60], qubits[153], qubits[154]; -ccx qubits[61], qubits[154], qubits[155]; -ccx qubits[62], qubits[155], qubits[156]; -ccx qubits[63], qubits[156], qubits[157]; -ccx qubits[64], qubits[157], qubits[158]; -ccx qubits[65], qubits[158], qubits[159]; -ccx qubits[66], qubits[159], qubits[160]; -ccx qubits[67], qubits[160], qubits[161]; -ccx qubits[68], qubits[161], qubits[162]; -ccx qubits[69], qubits[162], qubits[163]; -ccx qubits[70], qubits[163], qubits[164]; -ccx qubits[71], qubits[164], qubits[165]; -ccx qubits[72], qubits[165], qubits[166]; -ccx qubits[73], qubits[166], qubits[167]; -ccx qubits[74], qubits[167], qubits[168]; -ccx qubits[75], qubits[168], qubits[169]; -ccx qubits[76], qubits[169], qubits[170]; -ccx qubits[77], qubits[170], qubits[171]; -ccx qubits[78], qubits[171], qubits[172]; -ccx qubits[79], qubits[172], qubits[173]; -ccx qubits[80], qubits[173], qubits[174]; -ccx qubits[81], qubits[174], qubits[175]; -ccx qubits[82], qubits[175], qubits[176]; -ccx qubits[83], qubits[176], qubits[177]; -ccx qubits[84], qubits[177], qubits[178]; -ccx qubits[85], qubits[178], qubits[179]; -ccx qubits[86], qubits[179], qubits[180]; -ccx qubits[87], qubits[180], qubits[181]; -ccx qubits[88], qubits[181], qubits[182]; -ccx qubits[89], qubits[182], qubits[183]; -ccx qubits[90], qubits[183], qubits[184]; -ccx qubits[91], qubits[184], qubits[185]; -ccx qubits[92], qubits[185], qubits[186]; -cz qubits[186], qubits[93]; -ccx qubits[92], qubits[185], qubits[186]; -ccx qubits[91], qubits[184], qubits[185]; -ccx qubits[90], qubits[183], qubits[184]; -ccx qubits[89], qubits[182], qubits[183]; -ccx qubits[88], qubits[181], qubits[182]; -ccx qubits[87], qubits[180], qubits[181]; -ccx qubits[86], qubits[179], qubits[180]; -ccx qubits[85], qubits[178], qubits[179]; -ccx qubits[84], qubits[177], qubits[178]; -ccx qubits[83], qubits[176], qubits[177]; -ccx qubits[82], qubits[175], qubits[176]; -ccx qubits[81], qubits[174], qubits[175]; -ccx qubits[80], qubits[173], qubits[174]; -ccx qubits[79], qubits[172], qubits[173]; -ccx qubits[78], qubits[171], qubits[172]; -ccx qubits[77], qubits[170], qubits[171]; -ccx qubits[76], qubits[169], qubits[170]; -ccx qubits[75], qubits[168], qubits[169]; -ccx qubits[74], qubits[167], qubits[168]; -ccx qubits[73], qubits[166], qubits[167]; -ccx qubits[72], qubits[165], qubits[166]; -ccx qubits[71], qubits[164], qubits[165]; -ccx qubits[70], qubits[163], qubits[164]; -ccx qubits[69], qubits[162], qubits[163]; -ccx qubits[68], qubits[161], qubits[162]; -ccx qubits[67], qubits[160], qubits[161]; -ccx qubits[66], qubits[159], qubits[160]; -ccx qubits[65], qubits[158], qubits[159]; -ccx qubits[64], qubits[157], qubits[158]; -ccx qubits[63], qubits[156], qubits[157]; -ccx qubits[62], qubits[155], qubits[156]; -ccx qubits[61], qubits[154], qubits[155]; -ccx qubits[60], qubits[153], qubits[154]; -ccx qubits[59], qubits[152], qubits[153]; -ccx qubits[58], qubits[151], qubits[152]; -ccx qubits[57], qubits[150], qubits[151]; -ccx qubits[56], qubits[149], qubits[150]; -ccx qubits[55], qubits[148], qubits[149]; -ccx qubits[54], qubits[147], qubits[148]; -ccx qubits[53], qubits[146], qubits[147]; -ccx qubits[52], qubits[145], qubits[146]; -ccx qubits[51], qubits[144], qubits[145]; -ccx qubits[50], qubits[143], qubits[144]; -ccx qubits[49], qubits[142], qubits[143]; -ccx qubits[48], qubits[141], qubits[142]; -ccx qubits[47], qubits[140], qubits[141]; -ccx qubits[46], qubits[139], qubits[140]; -ccx qubits[45], qubits[138], qubits[139]; -ccx qubits[44], qubits[137], qubits[138]; -ccx qubits[43], qubits[136], qubits[137]; -ccx qubits[42], qubits[135], qubits[136]; -ccx qubits[41], qubits[134], qubits[135]; -ccx qubits[40], qubits[133], qubits[134]; -ccx qubits[39], qubits[132], qubits[133]; -ccx qubits[38], qubits[131], qubits[132]; -ccx qubits[37], qubits[130], qubits[131]; -ccx qubits[36], qubits[129], qubits[130]; -ccx qubits[35], qubits[128], qubits[129]; -ccx qubits[34], qubits[127], qubits[128]; -ccx qubits[33], qubits[126], qubits[127]; -ccx qubits[32], qubits[125], qubits[126]; -ccx qubits[31], qubits[124], qubits[125]; -ccx qubits[30], qubits[123], qubits[124]; -ccx qubits[29], qubits[122], qubits[123]; -ccx qubits[28], qubits[121], qubits[122]; -ccx qubits[27], qubits[120], qubits[121]; -ccx qubits[26], qubits[119], qubits[120]; -ccx qubits[25], qubits[118], qubits[119]; -ccx qubits[24], qubits[117], qubits[118]; -ccx qubits[23], qubits[116], qubits[117]; -ccx qubits[22], qubits[115], qubits[116]; -ccx qubits[21], qubits[114], qubits[115]; -ccx qubits[20], qubits[113], qubits[114]; -ccx qubits[19], qubits[112], qubits[113]; -ccx qubits[18], qubits[111], qubits[112]; -ccx qubits[17], qubits[110], qubits[111]; -ccx qubits[16], qubits[109], qubits[110]; -ccx qubits[15], qubits[108], qubits[109]; -ccx qubits[14], qubits[107], qubits[108]; -ccx qubits[13], qubits[106], qubits[107]; -ccx qubits[12], qubits[105], qubits[106]; -ccx qubits[11], qubits[104], qubits[105]; -ccx qubits[10], qubits[103], qubits[104]; -ccx qubits[9], qubits[102], qubits[103]; -ccx qubits[8], qubits[101], qubits[102]; -ccx qubits[7], qubits[100], qubits[101]; -ccx qubits[6], qubits[99], qubits[100]; -ccx qubits[5], qubits[98], qubits[99]; -ccx qubits[4], qubits[97], qubits[98]; -ccx qubits[3], qubits[96], qubits[97]; -ccx qubits[2], qubits[95], qubits[96]; -ccx qubits[0], qubits[1], qubits[95]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +x qubits[183]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +cz qubits[184], qubits[185]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -283,563 +283,563 @@ x qubits[90]; x qubits[92]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -ccx qubits[0], qubits[1], qubits[95]; -ccx qubits[2], qubits[95], qubits[96]; -ccx qubits[3], qubits[96], qubits[97]; -ccx qubits[4], qubits[97], qubits[98]; -ccx qubits[5], qubits[98], qubits[99]; -ccx qubits[6], qubits[99], qubits[100]; -ccx qubits[7], qubits[100], qubits[101]; -ccx qubits[8], qubits[101], qubits[102]; -ccx qubits[9], qubits[102], qubits[103]; -ccx qubits[10], qubits[103], qubits[104]; -ccx qubits[11], qubits[104], qubits[105]; -ccx qubits[12], qubits[105], qubits[106]; -ccx qubits[13], qubits[106], qubits[107]; -ccx qubits[14], qubits[107], qubits[108]; -ccx qubits[15], qubits[108], qubits[109]; -ccx qubits[16], qubits[109], qubits[110]; -ccx qubits[17], qubits[110], qubits[111]; -ccx qubits[18], qubits[111], qubits[112]; -ccx qubits[19], qubits[112], qubits[113]; -ccx qubits[20], qubits[113], qubits[114]; -ccx qubits[21], qubits[114], qubits[115]; -ccx qubits[22], qubits[115], qubits[116]; -ccx qubits[23], qubits[116], qubits[117]; -ccx qubits[24], qubits[117], qubits[118]; -ccx qubits[25], qubits[118], qubits[119]; -ccx qubits[26], qubits[119], qubits[120]; -ccx qubits[27], qubits[120], qubits[121]; -ccx qubits[28], qubits[121], qubits[122]; -ccx qubits[29], qubits[122], qubits[123]; -ccx qubits[30], qubits[123], qubits[124]; -ccx qubits[31], qubits[124], qubits[125]; -ccx qubits[32], qubits[125], qubits[126]; -ccx qubits[33], qubits[126], qubits[127]; -ccx qubits[34], qubits[127], qubits[128]; -ccx qubits[35], qubits[128], qubits[129]; -ccx qubits[36], qubits[129], qubits[130]; -ccx qubits[37], qubits[130], qubits[131]; -ccx qubits[38], qubits[131], qubits[132]; -ccx qubits[39], qubits[132], qubits[133]; -ccx qubits[40], qubits[133], qubits[134]; -ccx qubits[41], qubits[134], qubits[135]; -ccx qubits[42], qubits[135], qubits[136]; -ccx qubits[43], qubits[136], qubits[137]; -ccx qubits[44], qubits[137], qubits[138]; -ccx qubits[45], qubits[138], qubits[139]; -ccx qubits[46], qubits[139], qubits[140]; -ccx qubits[47], qubits[140], qubits[141]; -ccx qubits[48], qubits[141], qubits[142]; -ccx qubits[49], qubits[142], qubits[143]; -ccx qubits[50], qubits[143], qubits[144]; -ccx qubits[51], qubits[144], qubits[145]; -ccx qubits[52], qubits[145], qubits[146]; -ccx qubits[53], qubits[146], qubits[147]; -ccx qubits[54], qubits[147], qubits[148]; -ccx qubits[55], qubits[148], qubits[149]; -ccx qubits[56], qubits[149], qubits[150]; -ccx qubits[57], qubits[150], qubits[151]; -ccx qubits[58], qubits[151], qubits[152]; -ccx qubits[59], qubits[152], qubits[153]; -ccx qubits[60], qubits[153], qubits[154]; -ccx qubits[61], qubits[154], qubits[155]; -ccx qubits[62], qubits[155], qubits[156]; -ccx qubits[63], qubits[156], qubits[157]; -ccx qubits[64], qubits[157], qubits[158]; -ccx qubits[65], qubits[158], qubits[159]; -ccx qubits[66], qubits[159], qubits[160]; -ccx qubits[67], qubits[160], qubits[161]; -ccx qubits[68], qubits[161], qubits[162]; -ccx qubits[69], qubits[162], qubits[163]; -ccx qubits[70], qubits[163], qubits[164]; -ccx qubits[71], qubits[164], qubits[165]; -ccx qubits[72], qubits[165], qubits[166]; -ccx qubits[73], qubits[166], qubits[167]; -ccx qubits[74], qubits[167], qubits[168]; -ccx qubits[75], qubits[168], qubits[169]; -ccx qubits[76], qubits[169], qubits[170]; -ccx qubits[77], qubits[170], qubits[171]; -ccx qubits[78], qubits[171], qubits[172]; -ccx qubits[79], qubits[172], qubits[173]; -ccx qubits[80], qubits[173], qubits[174]; -ccx qubits[81], qubits[174], qubits[175]; -ccx qubits[82], qubits[175], qubits[176]; -ccx qubits[83], qubits[176], qubits[177]; -ccx qubits[84], qubits[177], qubits[178]; -ccx qubits[85], qubits[178], qubits[179]; -ccx qubits[86], qubits[179], qubits[180]; -ccx qubits[87], qubits[180], qubits[181]; -ccx qubits[88], qubits[181], qubits[182]; -ccx qubits[89], qubits[182], qubits[183]; -ccx qubits[90], qubits[183], qubits[184]; -ccx qubits[91], qubits[184], qubits[185]; -ccx qubits[92], qubits[185], qubits[186]; -cz qubits[186], qubits[93]; -ccx qubits[92], qubits[185], qubits[186]; -ccx qubits[91], qubits[184], qubits[185]; -ccx qubits[90], qubits[183], qubits[184]; -ccx qubits[89], qubits[182], qubits[183]; -ccx qubits[88], qubits[181], qubits[182]; -ccx qubits[87], qubits[180], qubits[181]; -ccx qubits[86], qubits[179], qubits[180]; -ccx qubits[85], qubits[178], qubits[179]; -ccx qubits[84], qubits[177], qubits[178]; -ccx qubits[83], qubits[176], qubits[177]; -ccx qubits[82], qubits[175], qubits[176]; -ccx qubits[81], qubits[174], qubits[175]; -ccx qubits[80], qubits[173], qubits[174]; -ccx qubits[79], qubits[172], qubits[173]; -ccx qubits[78], qubits[171], qubits[172]; -ccx qubits[77], qubits[170], qubits[171]; -ccx qubits[76], qubits[169], qubits[170]; -ccx qubits[75], qubits[168], qubits[169]; -ccx qubits[74], qubits[167], qubits[168]; -ccx qubits[73], qubits[166], qubits[167]; -ccx qubits[72], qubits[165], qubits[166]; -ccx qubits[71], qubits[164], qubits[165]; -ccx qubits[70], qubits[163], qubits[164]; -ccx qubits[69], qubits[162], qubits[163]; -ccx qubits[68], qubits[161], qubits[162]; -ccx qubits[67], qubits[160], qubits[161]; -ccx qubits[66], qubits[159], qubits[160]; -ccx qubits[65], qubits[158], qubits[159]; -ccx qubits[64], qubits[157], qubits[158]; -ccx qubits[63], qubits[156], qubits[157]; -ccx qubits[62], qubits[155], qubits[156]; -ccx qubits[61], qubits[154], qubits[155]; -ccx qubits[60], qubits[153], qubits[154]; -ccx qubits[59], qubits[152], qubits[153]; -ccx qubits[58], qubits[151], qubits[152]; -ccx qubits[57], qubits[150], qubits[151]; -ccx qubits[56], qubits[149], qubits[150]; -ccx qubits[55], qubits[148], qubits[149]; -ccx qubits[54], qubits[147], qubits[148]; -ccx qubits[53], qubits[146], qubits[147]; -ccx qubits[52], qubits[145], qubits[146]; -ccx qubits[51], qubits[144], qubits[145]; -ccx qubits[50], qubits[143], qubits[144]; -ccx qubits[49], qubits[142], qubits[143]; -ccx qubits[48], qubits[141], qubits[142]; -ccx qubits[47], qubits[140], qubits[141]; -ccx qubits[46], qubits[139], qubits[140]; -ccx qubits[45], qubits[138], qubits[139]; -ccx qubits[44], qubits[137], qubits[138]; -ccx qubits[43], qubits[136], qubits[137]; -ccx qubits[42], qubits[135], qubits[136]; -ccx qubits[41], qubits[134], qubits[135]; -ccx qubits[40], qubits[133], qubits[134]; -ccx qubits[39], qubits[132], qubits[133]; -ccx qubits[38], qubits[131], qubits[132]; -ccx qubits[37], qubits[130], qubits[131]; -ccx qubits[36], qubits[129], qubits[130]; -ccx qubits[35], qubits[128], qubits[129]; -ccx qubits[34], qubits[127], qubits[128]; -ccx qubits[33], qubits[126], qubits[127]; -ccx qubits[32], qubits[125], qubits[126]; -ccx qubits[31], qubits[124], qubits[125]; -ccx qubits[30], qubits[123], qubits[124]; -ccx qubits[29], qubits[122], qubits[123]; -ccx qubits[28], qubits[121], qubits[122]; -ccx qubits[27], qubits[120], qubits[121]; -ccx qubits[26], qubits[119], qubits[120]; -ccx qubits[25], qubits[118], qubits[119]; -ccx qubits[24], qubits[117], qubits[118]; -ccx qubits[23], qubits[116], qubits[117]; -ccx qubits[22], qubits[115], qubits[116]; -ccx qubits[21], qubits[114], qubits[115]; -ccx qubits[20], qubits[113], qubits[114]; -ccx qubits[19], qubits[112], qubits[113]; -ccx qubits[18], qubits[111], qubits[112]; -ccx qubits[17], qubits[110], qubits[111]; -ccx qubits[16], qubits[109], qubits[110]; -ccx qubits[15], qubits[108], qubits[109]; -ccx qubits[14], qubits[107], qubits[108]; -ccx qubits[13], qubits[106], qubits[107]; -ccx qubits[12], qubits[105], qubits[106]; -ccx qubits[11], qubits[104], qubits[105]; -ccx qubits[10], qubits[103], qubits[104]; -ccx qubits[9], qubits[102], qubits[103]; -ccx qubits[8], qubits[101], qubits[102]; -ccx qubits[7], qubits[100], qubits[101]; -ccx qubits[6], qubits[99], qubits[100]; -ccx qubits[5], qubits[98], qubits[99]; -ccx qubits[4], qubits[97], qubits[98]; -ccx qubits[3], qubits[96], qubits[97]; -ccx qubits[2], qubits[95], qubits[96]; -ccx qubits[0], qubits[1], qubits[95]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +cz qubits[184], qubits[185]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -z qubits[94]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +z qubits[186]; diff --git a/benchmarks/all/OEGrover/94/post.hsl b/benchmarks/all/OEGrover/94/post.hsl index f6ba21f0d..b1bab6bc0 100644 --- a/benchmarks/all/OEGrover/94/post.hsl +++ b/benchmarks/all/OEGrover/94/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 46 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/94/post.lsta b/benchmarks/all/OEGrover/94/post.lsta deleted file mode 100644 index e10a291c8..000000000 --- a/benchmarks/all/OEGrover/94/post.lsta +++ /dev/null @@ -1,477 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 190) -> 187 -[95,1](189, 191) -> 188 -[96,1](192, 192) -> 189 -[96,1](193, 192) -> 190 -[96,1](194, 192) -> 191 -[97,1](195, 195) -> 192 -[97,1](196, 195) -> 193 -[97,1](197, 195) -> 194 -[98,1](198, 198) -> 195 -[98,1](199, 198) -> 196 -[98,1](200, 198) -> 197 -[99,1](201, 201) -> 198 -[99,1](202, 201) -> 199 -[99,1](203, 201) -> 200 -[100,1](204, 204) -> 201 -[100,1](205, 204) -> 202 -[100,1](206, 204) -> 203 -[101,1](207, 207) -> 204 -[101,1](208, 207) -> 205 -[101,1](209, 207) -> 206 -[102,1](210, 210) -> 207 -[102,1](211, 210) -> 208 -[102,1](212, 210) -> 209 -[103,1](213, 213) -> 210 -[103,1](214, 213) -> 211 -[103,1](215, 213) -> 212 -[104,1](216, 216) -> 213 -[104,1](217, 216) -> 214 -[104,1](218, 216) -> 215 -[105,1](219, 219) -> 216 -[105,1](220, 219) -> 217 -[105,1](221, 219) -> 218 -[106,1](222, 222) -> 219 -[106,1](223, 222) -> 220 -[106,1](224, 222) -> 221 -[107,1](225, 225) -> 222 -[107,1](226, 225) -> 223 -[107,1](227, 225) -> 224 -[108,1](228, 228) -> 225 -[108,1](229, 228) -> 226 -[108,1](230, 228) -> 227 -[109,1](231, 231) -> 228 -[109,1](232, 231) -> 229 -[109,1](233, 231) -> 230 -[110,1](234, 234) -> 231 -[110,1](235, 234) -> 232 -[110,1](236, 234) -> 233 -[111,1](237, 237) -> 234 -[111,1](238, 237) -> 235 -[111,1](239, 237) -> 236 -[112,1](240, 240) -> 237 -[112,1](241, 240) -> 238 -[112,1](242, 240) -> 239 -[113,1](243, 243) -> 240 -[113,1](244, 243) -> 241 -[113,1](245, 243) -> 242 -[114,1](246, 246) -> 243 -[114,1](247, 246) -> 244 -[114,1](248, 246) -> 245 -[115,1](249, 249) -> 246 -[115,1](250, 249) -> 247 -[115,1](251, 249) -> 248 -[116,1](252, 252) -> 249 -[116,1](253, 252) -> 250 -[116,1](254, 252) -> 251 -[117,1](255, 255) -> 252 -[117,1](256, 255) -> 253 -[117,1](257, 255) -> 254 -[118,1](258, 258) -> 255 -[118,1](259, 258) -> 256 -[118,1](260, 258) -> 257 -[119,1](261, 261) -> 258 -[119,1](262, 261) -> 259 -[119,1](263, 261) -> 260 -[120,1](264, 264) -> 261 -[120,1](265, 264) -> 262 -[120,1](266, 264) -> 263 -[121,1](267, 267) -> 264 -[121,1](268, 267) -> 265 -[121,1](269, 267) -> 266 -[122,1](270, 270) -> 267 -[122,1](271, 270) -> 268 -[122,1](272, 270) -> 269 -[123,1](273, 273) -> 270 -[123,1](274, 273) -> 271 -[123,1](275, 273) -> 272 -[124,1](276, 276) -> 273 -[124,1](277, 276) -> 274 -[124,1](278, 276) -> 275 -[125,1](279, 279) -> 276 -[125,1](280, 279) -> 277 -[125,1](281, 279) -> 278 -[126,1](282, 282) -> 279 -[126,1](283, 282) -> 280 -[126,1](284, 282) -> 281 -[127,1](285, 285) -> 282 -[127,1](286, 285) -> 283 -[127,1](287, 285) -> 284 -[128,1](288, 288) -> 285 -[128,1](289, 288) -> 286 -[128,1](290, 288) -> 287 -[129,1](291, 291) -> 288 -[129,1](292, 291) -> 289 -[129,1](293, 291) -> 290 -[130,1](294, 294) -> 291 -[130,1](295, 294) -> 292 -[130,1](296, 294) -> 293 -[131,1](297, 297) -> 294 -[131,1](298, 297) -> 295 -[131,1](299, 297) -> 296 -[132,1](300, 300) -> 297 -[132,1](301, 300) -> 298 -[132,1](302, 300) -> 299 -[133,1](303, 303) -> 300 -[133,1](304, 303) -> 301 -[133,1](305, 303) -> 302 -[134,1](306, 306) -> 303 -[134,1](307, 306) -> 304 -[134,1](308, 306) -> 305 -[135,1](309, 309) -> 306 -[135,1](310, 309) -> 307 -[135,1](311, 309) -> 308 -[136,1](312, 312) -> 309 -[136,1](313, 312) -> 310 -[136,1](314, 312) -> 311 -[137,1](315, 315) -> 312 -[137,1](316, 315) -> 313 -[137,1](317, 315) -> 314 -[138,1](318, 318) -> 315 -[138,1](319, 318) -> 316 -[138,1](320, 318) -> 317 -[139,1](321, 321) -> 318 -[139,1](322, 321) -> 319 -[139,1](323, 321) -> 320 -[140,1](324, 324) -> 321 -[140,1](325, 324) -> 322 -[140,1](326, 324) -> 323 -[141,1](327, 327) -> 324 -[141,1](328, 327) -> 325 -[141,1](329, 327) -> 326 -[142,1](330, 330) -> 327 -[142,1](331, 330) -> 328 -[142,1](332, 330) -> 329 -[143,1](333, 333) -> 330 -[143,1](334, 333) -> 331 -[143,1](335, 333) -> 332 -[144,1](336, 336) -> 333 -[144,1](337, 336) -> 334 -[144,1](338, 336) -> 335 -[145,1](339, 339) -> 336 -[145,1](340, 339) -> 337 -[145,1](341, 339) -> 338 -[146,1](342, 342) -> 339 -[146,1](343, 342) -> 340 -[146,1](344, 342) -> 341 -[147,1](345, 345) -> 342 -[147,1](346, 345) -> 343 -[147,1](347, 345) -> 344 -[148,1](348, 348) -> 345 -[148,1](349, 348) -> 346 -[148,1](350, 348) -> 347 -[149,1](351, 351) -> 348 -[149,1](352, 351) -> 349 -[149,1](353, 351) -> 350 -[150,1](354, 354) -> 351 -[150,1](355, 354) -> 352 -[150,1](356, 354) -> 353 -[151,1](357, 357) -> 354 -[151,1](358, 357) -> 355 -[151,1](359, 357) -> 356 -[152,1](360, 360) -> 357 -[152,1](361, 360) -> 358 -[152,1](362, 360) -> 359 -[153,1](363, 363) -> 360 -[153,1](364, 363) -> 361 -[153,1](365, 363) -> 362 -[154,1](366, 366) -> 363 -[154,1](367, 366) -> 364 -[154,1](368, 366) -> 365 -[155,1](369, 369) -> 366 -[155,1](370, 369) -> 367 -[155,1](371, 369) -> 368 -[156,1](372, 372) -> 369 -[156,1](373, 372) -> 370 -[156,1](374, 372) -> 371 -[157,1](375, 375) -> 372 -[157,1](376, 375) -> 373 -[157,1](377, 375) -> 374 -[158,1](378, 378) -> 375 -[158,1](379, 378) -> 376 -[158,1](380, 378) -> 377 -[159,1](381, 381) -> 378 -[159,1](382, 381) -> 379 -[159,1](383, 381) -> 380 -[160,1](384, 384) -> 381 -[160,1](385, 384) -> 382 -[160,1](386, 384) -> 383 -[161,1](387, 387) -> 384 -[161,1](388, 387) -> 385 -[161,1](389, 387) -> 386 -[162,1](390, 390) -> 387 -[162,1](391, 390) -> 388 -[162,1](392, 390) -> 389 -[163,1](393, 393) -> 390 -[163,1](394, 393) -> 391 -[163,1](395, 393) -> 392 -[164,1](396, 396) -> 393 -[164,1](397, 396) -> 394 -[164,1](398, 396) -> 395 -[165,1](399, 399) -> 396 -[165,1](400, 399) -> 397 -[165,1](401, 399) -> 398 -[166,1](402, 402) -> 399 -[166,1](403, 402) -> 400 -[166,1](404, 402) -> 401 -[167,1](405, 405) -> 402 -[167,1](406, 405) -> 403 -[167,1](407, 405) -> 404 -[168,1](408, 408) -> 405 -[168,1](409, 408) -> 406 -[168,1](410, 408) -> 407 -[169,1](411, 411) -> 408 -[169,1](412, 411) -> 409 -[169,1](413, 411) -> 410 -[170,1](414, 414) -> 411 -[170,1](415, 414) -> 412 -[170,1](416, 414) -> 413 -[171,1](417, 417) -> 414 -[171,1](418, 417) -> 415 -[171,1](419, 417) -> 416 -[172,1](420, 420) -> 417 -[172,1](421, 420) -> 418 -[172,1](422, 420) -> 419 -[173,1](423, 423) -> 420 -[173,1](424, 423) -> 421 -[173,1](425, 423) -> 422 -[174,1](426, 426) -> 423 -[174,1](427, 426) -> 424 -[174,1](428, 426) -> 425 -[175,1](429, 429) -> 426 -[175,1](430, 429) -> 427 -[175,1](431, 429) -> 428 -[176,1](432, 432) -> 429 -[176,1](433, 432) -> 430 -[176,1](434, 432) -> 431 -[177,1](435, 435) -> 432 -[177,1](436, 435) -> 433 -[177,1](437, 435) -> 434 -[178,1](438, 438) -> 435 -[178,1](439, 438) -> 436 -[178,1](440, 438) -> 437 -[179,1](441, 441) -> 438 -[179,1](442, 441) -> 439 -[179,1](443, 441) -> 440 -[180,1](444, 444) -> 441 -[180,1](445, 444) -> 442 -[180,1](446, 444) -> 443 -[181,1](447, 447) -> 444 -[181,1](448, 447) -> 445 -[181,1](449, 447) -> 446 -[182,1](450, 450) -> 447 -[182,1](451, 450) -> 448 -[182,1](452, 450) -> 449 -[183,1](453, 453) -> 450 -[183,1](454, 453) -> 451 -[183,1](455, 453) -> 452 -[184,1](456, 456) -> 453 -[184,1](457, 456) -> 454 -[184,1](458, 456) -> 455 -[185,1](459, 459) -> 456 -[185,1](460, 459) -> 457 -[185,1](461, 459) -> 458 -[186,1](462, 462) -> 459 -[186,1](463, 462) -> 460 -[186,1](464, 462) -> 461 -[187,1](465, 465) -> 462 -[187,1](466, 465) -> 463 -[187,1](467, 465) -> 464 -[188,1](468, 468) -> 465 -[188,1](469, 468) -> 466 -[188,1](470, 468) -> 467 -[p1,1] -> 468 -[p2,1] -> 469 -[p3,1] -> 470 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/94/pre.hsl b/benchmarks/all/OEGrover/94/pre.hsl index df0e5e20e..d78ac2e06 100644 --- a/benchmarks/all/OEGrover/94/pre.hsl +++ b/benchmarks/all/OEGrover/94/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 46 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 19807040628566084398385987583 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/94/pre.lsta b/benchmarks/all/OEGrover/94/pre.lsta deleted file mode 100644 index 8731eedeb..000000000 --- a/benchmarks/all/OEGrover/94/pre.lsta +++ /dev/null @@ -1,481 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 190) -> 187 -[95,1](189, 191) -> 188 -[96,1](192, 192) -> 189 -[96,1](193, 192) -> 190 -[96,1](194, 192) -> 191 -[97,1](195, 195) -> 192 -[97,1](196, 195) -> 193 -[97,1](197, 195) -> 194 -[98,1](198, 198) -> 195 -[98,1](199, 198) -> 196 -[98,1](200, 198) -> 197 -[99,1](201, 201) -> 198 -[99,1](202, 201) -> 199 -[99,1](203, 201) -> 200 -[100,1](204, 204) -> 201 -[100,1](205, 204) -> 202 -[100,1](206, 204) -> 203 -[101,1](207, 207) -> 204 -[101,1](208, 207) -> 205 -[101,1](209, 207) -> 206 -[102,1](210, 210) -> 207 -[102,1](211, 210) -> 208 -[102,1](212, 210) -> 209 -[103,1](213, 213) -> 210 -[103,1](214, 213) -> 211 -[103,1](215, 213) -> 212 -[104,1](216, 216) -> 213 -[104,1](217, 216) -> 214 -[104,1](218, 216) -> 215 -[105,1](219, 219) -> 216 -[105,1](220, 219) -> 217 -[105,1](221, 219) -> 218 -[106,1](222, 222) -> 219 -[106,1](223, 222) -> 220 -[106,1](224, 222) -> 221 -[107,1](225, 225) -> 222 -[107,1](226, 225) -> 223 -[107,1](227, 225) -> 224 -[108,1](228, 228) -> 225 -[108,1](229, 228) -> 226 -[108,1](230, 228) -> 227 -[109,1](231, 231) -> 228 -[109,1](232, 231) -> 229 -[109,1](233, 231) -> 230 -[110,1](234, 234) -> 231 -[110,1](235, 234) -> 232 -[110,1](236, 234) -> 233 -[111,1](237, 237) -> 234 -[111,1](238, 237) -> 235 -[111,1](239, 237) -> 236 -[112,1](240, 240) -> 237 -[112,1](241, 240) -> 238 -[112,1](242, 240) -> 239 -[113,1](243, 243) -> 240 -[113,1](244, 243) -> 241 -[113,1](245, 243) -> 242 -[114,1](246, 246) -> 243 -[114,1](247, 246) -> 244 -[114,1](248, 246) -> 245 -[115,1](249, 249) -> 246 -[115,1](250, 249) -> 247 -[115,1](251, 249) -> 248 -[116,1](252, 252) -> 249 -[116,1](253, 252) -> 250 -[116,1](254, 252) -> 251 -[117,1](255, 255) -> 252 -[117,1](256, 255) -> 253 -[117,1](257, 255) -> 254 -[118,1](258, 258) -> 255 -[118,1](259, 258) -> 256 -[118,1](260, 258) -> 257 -[119,1](261, 261) -> 258 -[119,1](262, 261) -> 259 -[119,1](263, 261) -> 260 -[120,1](264, 264) -> 261 -[120,1](265, 264) -> 262 -[120,1](266, 264) -> 263 -[121,1](267, 267) -> 264 -[121,1](268, 267) -> 265 -[121,1](269, 267) -> 266 -[122,1](270, 270) -> 267 -[122,1](271, 270) -> 268 -[122,1](272, 270) -> 269 -[123,1](273, 273) -> 270 -[123,1](274, 273) -> 271 -[123,1](275, 273) -> 272 -[124,1](276, 276) -> 273 -[124,1](277, 276) -> 274 -[124,1](278, 276) -> 275 -[125,1](279, 279) -> 276 -[125,1](280, 279) -> 277 -[125,1](281, 279) -> 278 -[126,1](282, 282) -> 279 -[126,1](283, 282) -> 280 -[126,1](284, 282) -> 281 -[127,1](285, 285) -> 282 -[127,1](286, 285) -> 283 -[127,1](287, 285) -> 284 -[128,1](288, 288) -> 285 -[128,1](289, 288) -> 286 -[128,1](290, 288) -> 287 -[129,1](291, 291) -> 288 -[129,1](292, 291) -> 289 -[129,1](293, 291) -> 290 -[130,1](294, 294) -> 291 -[130,1](295, 294) -> 292 -[130,1](296, 294) -> 293 -[131,1](297, 297) -> 294 -[131,1](298, 297) -> 295 -[131,1](299, 297) -> 296 -[132,1](300, 300) -> 297 -[132,1](301, 300) -> 298 -[132,1](302, 300) -> 299 -[133,1](303, 303) -> 300 -[133,1](304, 303) -> 301 -[133,1](305, 303) -> 302 -[134,1](306, 306) -> 303 -[134,1](307, 306) -> 304 -[134,1](308, 306) -> 305 -[135,1](309, 309) -> 306 -[135,1](310, 309) -> 307 -[135,1](311, 309) -> 308 -[136,1](312, 312) -> 309 -[136,1](313, 312) -> 310 -[136,1](314, 312) -> 311 -[137,1](315, 315) -> 312 -[137,1](316, 315) -> 313 -[137,1](317, 315) -> 314 -[138,1](318, 318) -> 315 -[138,1](319, 318) -> 316 -[138,1](320, 318) -> 317 -[139,1](321, 321) -> 318 -[139,1](322, 321) -> 319 -[139,1](323, 321) -> 320 -[140,1](324, 324) -> 321 -[140,1](325, 324) -> 322 -[140,1](326, 324) -> 323 -[141,1](327, 327) -> 324 -[141,1](328, 327) -> 325 -[141,1](329, 327) -> 326 -[142,1](330, 330) -> 327 -[142,1](331, 330) -> 328 -[142,1](332, 330) -> 329 -[143,1](333, 333) -> 330 -[143,1](334, 333) -> 331 -[143,1](335, 333) -> 332 -[144,1](336, 336) -> 333 -[144,1](337, 336) -> 334 -[144,1](338, 336) -> 335 -[145,1](339, 339) -> 336 -[145,1](340, 339) -> 337 -[145,1](341, 339) -> 338 -[146,1](342, 342) -> 339 -[146,1](343, 342) -> 340 -[146,1](344, 342) -> 341 -[147,1](345, 345) -> 342 -[147,1](346, 345) -> 343 -[147,1](347, 345) -> 344 -[148,1](348, 348) -> 345 -[148,1](349, 348) -> 346 -[148,1](350, 348) -> 347 -[149,1](351, 351) -> 348 -[149,1](352, 351) -> 349 -[149,1](353, 351) -> 350 -[150,1](354, 354) -> 351 -[150,1](355, 354) -> 352 -[150,1](356, 354) -> 353 -[151,1](357, 357) -> 354 -[151,1](358, 357) -> 355 -[151,1](359, 357) -> 356 -[152,1](360, 360) -> 357 -[152,1](361, 360) -> 358 -[152,1](362, 360) -> 359 -[153,1](363, 363) -> 360 -[153,1](364, 363) -> 361 -[153,1](365, 363) -> 362 -[154,1](366, 366) -> 363 -[154,1](367, 366) -> 364 -[154,1](368, 366) -> 365 -[155,1](369, 369) -> 366 -[155,1](370, 369) -> 367 -[155,1](371, 369) -> 368 -[156,1](372, 372) -> 369 -[156,1](373, 372) -> 370 -[156,1](374, 372) -> 371 -[157,1](375, 375) -> 372 -[157,1](376, 375) -> 373 -[157,1](377, 375) -> 374 -[158,1](378, 378) -> 375 -[158,1](379, 378) -> 376 -[158,1](380, 378) -> 377 -[159,1](381, 381) -> 378 -[159,1](382, 381) -> 379 -[159,1](383, 381) -> 380 -[160,1](384, 384) -> 381 -[160,1](385, 384) -> 382 -[160,1](386, 384) -> 383 -[161,1](387, 387) -> 384 -[161,1](388, 387) -> 385 -[161,1](389, 387) -> 386 -[162,1](390, 390) -> 387 -[162,1](391, 390) -> 388 -[162,1](392, 390) -> 389 -[163,1](393, 393) -> 390 -[163,1](394, 393) -> 391 -[163,1](395, 393) -> 392 -[164,1](396, 396) -> 393 -[164,1](397, 396) -> 394 -[164,1](398, 396) -> 395 -[165,1](399, 399) -> 396 -[165,1](400, 399) -> 397 -[165,1](401, 399) -> 398 -[166,1](402, 402) -> 399 -[166,1](403, 402) -> 400 -[166,1](404, 402) -> 401 -[167,1](405, 405) -> 402 -[167,1](406, 405) -> 403 -[167,1](407, 405) -> 404 -[168,1](408, 408) -> 405 -[168,1](409, 408) -> 406 -[168,1](410, 408) -> 407 -[169,1](411, 411) -> 408 -[169,1](412, 411) -> 409 -[169,1](413, 411) -> 410 -[170,1](414, 414) -> 411 -[170,1](415, 414) -> 412 -[170,1](416, 414) -> 413 -[171,1](417, 417) -> 414 -[171,1](418, 417) -> 415 -[171,1](419, 417) -> 416 -[172,1](420, 420) -> 417 -[172,1](421, 420) -> 418 -[172,1](422, 420) -> 419 -[173,1](423, 423) -> 420 -[173,1](424, 423) -> 421 -[173,1](425, 423) -> 422 -[174,1](426, 426) -> 423 -[174,1](427, 426) -> 424 -[174,1](428, 426) -> 425 -[175,1](429, 429) -> 426 -[175,1](430, 429) -> 427 -[175,1](431, 429) -> 428 -[176,1](432, 432) -> 429 -[176,1](433, 432) -> 430 -[176,1](434, 432) -> 431 -[177,1](435, 435) -> 432 -[177,1](436, 435) -> 433 -[177,1](437, 435) -> 434 -[178,1](438, 438) -> 435 -[178,1](439, 438) -> 436 -[178,1](440, 438) -> 437 -[179,1](441, 441) -> 438 -[179,1](442, 441) -> 439 -[179,1](443, 441) -> 440 -[180,1](444, 444) -> 441 -[180,1](445, 444) -> 442 -[180,1](446, 444) -> 443 -[181,1](447, 447) -> 444 -[181,1](448, 447) -> 445 -[181,1](449, 447) -> 446 -[182,1](450, 450) -> 447 -[182,1](451, 450) -> 448 -[182,1](452, 450) -> 449 -[183,1](453, 453) -> 450 -[183,1](454, 453) -> 451 -[183,1](455, 453) -> 452 -[184,1](456, 456) -> 453 -[184,1](457, 456) -> 454 -[184,1](458, 456) -> 455 -[185,1](459, 459) -> 456 -[185,1](460, 459) -> 457 -[185,1](461, 459) -> 458 -[186,1](462, 462) -> 459 -[186,1](463, 462) -> 460 -[186,1](464, 462) -> 461 -[187,1](465, 465) -> 462 -[187,1](466, 465) -> 463 -[187,1](467, 465) -> 464 -[188,1](468, 468) -> 465 -[188,1](469, 468) -> 466 -[188,1](470, 468) -> 467 -[c0,1] -> 468 -[a,1] -> 469 -[b,1] -> 470 -Constraints -19807040628566084398385987583 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/95/circuit.qasm b/benchmarks/all/OEGrover/95/circuit.qasm index e9f8c05f8..020ed35dc 100644 --- a/benchmarks/all/OEGrover/95/circuit.qasm +++ b/benchmarks/all/OEGrover/95/circuit.qasm @@ -1,242 +1,242 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[190]; +qreg qubits[189]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -x qubits[92]; -x qubits[94]; -ccx qubits[0], qubits[1], qubits[96]; -ccx qubits[2], qubits[96], qubits[97]; -ccx qubits[3], qubits[97], qubits[98]; -ccx qubits[4], qubits[98], qubits[99]; -ccx qubits[5], qubits[99], qubits[100]; -ccx qubits[6], qubits[100], qubits[101]; -ccx qubits[7], qubits[101], qubits[102]; -ccx qubits[8], qubits[102], qubits[103]; -ccx qubits[9], qubits[103], qubits[104]; -ccx qubits[10], qubits[104], qubits[105]; -ccx qubits[11], qubits[105], qubits[106]; -ccx qubits[12], qubits[106], qubits[107]; -ccx qubits[13], qubits[107], qubits[108]; -ccx qubits[14], qubits[108], qubits[109]; -ccx qubits[15], qubits[109], qubits[110]; -ccx qubits[16], qubits[110], qubits[111]; -ccx qubits[17], qubits[111], qubits[112]; -ccx qubits[18], qubits[112], qubits[113]; -ccx qubits[19], qubits[113], qubits[114]; -ccx qubits[20], qubits[114], qubits[115]; -ccx qubits[21], qubits[115], qubits[116]; -ccx qubits[22], qubits[116], qubits[117]; -ccx qubits[23], qubits[117], qubits[118]; -ccx qubits[24], qubits[118], qubits[119]; -ccx qubits[25], qubits[119], qubits[120]; -ccx qubits[26], qubits[120], qubits[121]; -ccx qubits[27], qubits[121], qubits[122]; -ccx qubits[28], qubits[122], qubits[123]; -ccx qubits[29], qubits[123], qubits[124]; -ccx qubits[30], qubits[124], qubits[125]; -ccx qubits[31], qubits[125], qubits[126]; -ccx qubits[32], qubits[126], qubits[127]; -ccx qubits[33], qubits[127], qubits[128]; -ccx qubits[34], qubits[128], qubits[129]; -ccx qubits[35], qubits[129], qubits[130]; -ccx qubits[36], qubits[130], qubits[131]; -ccx qubits[37], qubits[131], qubits[132]; -ccx qubits[38], qubits[132], qubits[133]; -ccx qubits[39], qubits[133], qubits[134]; -ccx qubits[40], qubits[134], qubits[135]; -ccx qubits[41], qubits[135], qubits[136]; -ccx qubits[42], qubits[136], qubits[137]; -ccx qubits[43], qubits[137], qubits[138]; -ccx qubits[44], qubits[138], qubits[139]; -ccx qubits[45], qubits[139], qubits[140]; -ccx qubits[46], qubits[140], qubits[141]; -ccx qubits[47], qubits[141], qubits[142]; -ccx qubits[48], qubits[142], qubits[143]; -ccx qubits[49], qubits[143], qubits[144]; -ccx qubits[50], qubits[144], qubits[145]; -ccx qubits[51], qubits[145], qubits[146]; -ccx qubits[52], qubits[146], qubits[147]; -ccx qubits[53], qubits[147], qubits[148]; -ccx qubits[54], qubits[148], qubits[149]; -ccx qubits[55], qubits[149], qubits[150]; -ccx qubits[56], qubits[150], qubits[151]; -ccx qubits[57], qubits[151], qubits[152]; -ccx qubits[58], qubits[152], qubits[153]; -ccx qubits[59], qubits[153], qubits[154]; -ccx qubits[60], qubits[154], qubits[155]; -ccx qubits[61], qubits[155], qubits[156]; -ccx qubits[62], qubits[156], qubits[157]; -ccx qubits[63], qubits[157], qubits[158]; -ccx qubits[64], qubits[158], qubits[159]; -ccx qubits[65], qubits[159], qubits[160]; -ccx qubits[66], qubits[160], qubits[161]; -ccx qubits[67], qubits[161], qubits[162]; -ccx qubits[68], qubits[162], qubits[163]; -ccx qubits[69], qubits[163], qubits[164]; -ccx qubits[70], qubits[164], qubits[165]; -ccx qubits[71], qubits[165], qubits[166]; -ccx qubits[72], qubits[166], qubits[167]; -ccx qubits[73], qubits[167], qubits[168]; -ccx qubits[74], qubits[168], qubits[169]; -ccx qubits[75], qubits[169], qubits[170]; -ccx qubits[76], qubits[170], qubits[171]; -ccx qubits[77], qubits[171], qubits[172]; -ccx qubits[78], qubits[172], qubits[173]; -ccx qubits[79], qubits[173], qubits[174]; -ccx qubits[80], qubits[174], qubits[175]; -ccx qubits[81], qubits[175], qubits[176]; -ccx qubits[82], qubits[176], qubits[177]; -ccx qubits[83], qubits[177], qubits[178]; -ccx qubits[84], qubits[178], qubits[179]; -ccx qubits[85], qubits[179], qubits[180]; -ccx qubits[86], qubits[180], qubits[181]; -ccx qubits[87], qubits[181], qubits[182]; -ccx qubits[88], qubits[182], qubits[183]; -ccx qubits[89], qubits[183], qubits[184]; -ccx qubits[90], qubits[184], qubits[185]; -ccx qubits[91], qubits[185], qubits[186]; -ccx qubits[92], qubits[186], qubits[187]; -ccx qubits[93], qubits[187], qubits[188]; -cz qubits[188], qubits[94]; -ccx qubits[93], qubits[187], qubits[188]; -ccx qubits[92], qubits[186], qubits[187]; -ccx qubits[91], qubits[185], qubits[186]; -ccx qubits[90], qubits[184], qubits[185]; -ccx qubits[89], qubits[183], qubits[184]; -ccx qubits[88], qubits[182], qubits[183]; -ccx qubits[87], qubits[181], qubits[182]; -ccx qubits[86], qubits[180], qubits[181]; -ccx qubits[85], qubits[179], qubits[180]; -ccx qubits[84], qubits[178], qubits[179]; -ccx qubits[83], qubits[177], qubits[178]; -ccx qubits[82], qubits[176], qubits[177]; -ccx qubits[81], qubits[175], qubits[176]; -ccx qubits[80], qubits[174], qubits[175]; -ccx qubits[79], qubits[173], qubits[174]; -ccx qubits[78], qubits[172], qubits[173]; -ccx qubits[77], qubits[171], qubits[172]; -ccx qubits[76], qubits[170], qubits[171]; -ccx qubits[75], qubits[169], qubits[170]; -ccx qubits[74], qubits[168], qubits[169]; -ccx qubits[73], qubits[167], qubits[168]; -ccx qubits[72], qubits[166], qubits[167]; -ccx qubits[71], qubits[165], qubits[166]; -ccx qubits[70], qubits[164], qubits[165]; -ccx qubits[69], qubits[163], qubits[164]; -ccx qubits[68], qubits[162], qubits[163]; -ccx qubits[67], qubits[161], qubits[162]; -ccx qubits[66], qubits[160], qubits[161]; -ccx qubits[65], qubits[159], qubits[160]; -ccx qubits[64], qubits[158], qubits[159]; -ccx qubits[63], qubits[157], qubits[158]; -ccx qubits[62], qubits[156], qubits[157]; -ccx qubits[61], qubits[155], qubits[156]; -ccx qubits[60], qubits[154], qubits[155]; -ccx qubits[59], qubits[153], qubits[154]; -ccx qubits[58], qubits[152], qubits[153]; -ccx qubits[57], qubits[151], qubits[152]; -ccx qubits[56], qubits[150], qubits[151]; -ccx qubits[55], qubits[149], qubits[150]; -ccx qubits[54], qubits[148], qubits[149]; -ccx qubits[53], qubits[147], qubits[148]; -ccx qubits[52], qubits[146], qubits[147]; -ccx qubits[51], qubits[145], qubits[146]; -ccx qubits[50], qubits[144], qubits[145]; -ccx qubits[49], qubits[143], qubits[144]; -ccx qubits[48], qubits[142], qubits[143]; -ccx qubits[47], qubits[141], qubits[142]; -ccx qubits[46], qubits[140], qubits[141]; -ccx qubits[45], qubits[139], qubits[140]; -ccx qubits[44], qubits[138], qubits[139]; -ccx qubits[43], qubits[137], qubits[138]; -ccx qubits[42], qubits[136], qubits[137]; -ccx qubits[41], qubits[135], qubits[136]; -ccx qubits[40], qubits[134], qubits[135]; -ccx qubits[39], qubits[133], qubits[134]; -ccx qubits[38], qubits[132], qubits[133]; -ccx qubits[37], qubits[131], qubits[132]; -ccx qubits[36], qubits[130], qubits[131]; -ccx qubits[35], qubits[129], qubits[130]; -ccx qubits[34], qubits[128], qubits[129]; -ccx qubits[33], qubits[127], qubits[128]; -ccx qubits[32], qubits[126], qubits[127]; -ccx qubits[31], qubits[125], qubits[126]; -ccx qubits[30], qubits[124], qubits[125]; -ccx qubits[29], qubits[123], qubits[124]; -ccx qubits[28], qubits[122], qubits[123]; -ccx qubits[27], qubits[121], qubits[122]; -ccx qubits[26], qubits[120], qubits[121]; -ccx qubits[25], qubits[119], qubits[120]; -ccx qubits[24], qubits[118], qubits[119]; -ccx qubits[23], qubits[117], qubits[118]; -ccx qubits[22], qubits[116], qubits[117]; -ccx qubits[21], qubits[115], qubits[116]; -ccx qubits[20], qubits[114], qubits[115]; -ccx qubits[19], qubits[113], qubits[114]; -ccx qubits[18], qubits[112], qubits[113]; -ccx qubits[17], qubits[111], qubits[112]; -ccx qubits[16], qubits[110], qubits[111]; -ccx qubits[15], qubits[109], qubits[110]; -ccx qubits[14], qubits[108], qubits[109]; -ccx qubits[13], qubits[107], qubits[108]; -ccx qubits[12], qubits[106], qubits[107]; -ccx qubits[11], qubits[105], qubits[106]; -ccx qubits[10], qubits[104], qubits[105]; -ccx qubits[9], qubits[103], qubits[104]; -ccx qubits[8], qubits[102], qubits[103]; -ccx qubits[7], qubits[101], qubits[102]; -ccx qubits[6], qubits[100], qubits[101]; -ccx qubits[5], qubits[99], qubits[100]; -ccx qubits[4], qubits[98], qubits[99]; -ccx qubits[3], qubits[97], qubits[98]; -ccx qubits[2], qubits[96], qubits[97]; -ccx qubits[0], qubits[1], qubits[96]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +x qubits[183]; +x qubits[187]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +cz qubits[186], qubits[187]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -287,569 +287,569 @@ x qubits[92]; x qubits[94]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; -ccx qubits[0], qubits[1], qubits[96]; -ccx qubits[2], qubits[96], qubits[97]; -ccx qubits[3], qubits[97], qubits[98]; -ccx qubits[4], qubits[98], qubits[99]; -ccx qubits[5], qubits[99], qubits[100]; -ccx qubits[6], qubits[100], qubits[101]; -ccx qubits[7], qubits[101], qubits[102]; -ccx qubits[8], qubits[102], qubits[103]; -ccx qubits[9], qubits[103], qubits[104]; -ccx qubits[10], qubits[104], qubits[105]; -ccx qubits[11], qubits[105], qubits[106]; -ccx qubits[12], qubits[106], qubits[107]; -ccx qubits[13], qubits[107], qubits[108]; -ccx qubits[14], qubits[108], qubits[109]; -ccx qubits[15], qubits[109], qubits[110]; -ccx qubits[16], qubits[110], qubits[111]; -ccx qubits[17], qubits[111], qubits[112]; -ccx qubits[18], qubits[112], qubits[113]; -ccx qubits[19], qubits[113], qubits[114]; -ccx qubits[20], qubits[114], qubits[115]; -ccx qubits[21], qubits[115], qubits[116]; -ccx qubits[22], qubits[116], qubits[117]; -ccx qubits[23], qubits[117], qubits[118]; -ccx qubits[24], qubits[118], qubits[119]; -ccx qubits[25], qubits[119], qubits[120]; -ccx qubits[26], qubits[120], qubits[121]; -ccx qubits[27], qubits[121], qubits[122]; -ccx qubits[28], qubits[122], qubits[123]; -ccx qubits[29], qubits[123], qubits[124]; -ccx qubits[30], qubits[124], qubits[125]; -ccx qubits[31], qubits[125], qubits[126]; -ccx qubits[32], qubits[126], qubits[127]; -ccx qubits[33], qubits[127], qubits[128]; -ccx qubits[34], qubits[128], qubits[129]; -ccx qubits[35], qubits[129], qubits[130]; -ccx qubits[36], qubits[130], qubits[131]; -ccx qubits[37], qubits[131], qubits[132]; -ccx qubits[38], qubits[132], qubits[133]; -ccx qubits[39], qubits[133], qubits[134]; -ccx qubits[40], qubits[134], qubits[135]; -ccx qubits[41], qubits[135], qubits[136]; -ccx qubits[42], qubits[136], qubits[137]; -ccx qubits[43], qubits[137], qubits[138]; -ccx qubits[44], qubits[138], qubits[139]; -ccx qubits[45], qubits[139], qubits[140]; -ccx qubits[46], qubits[140], qubits[141]; -ccx qubits[47], qubits[141], qubits[142]; -ccx qubits[48], qubits[142], qubits[143]; -ccx qubits[49], qubits[143], qubits[144]; -ccx qubits[50], qubits[144], qubits[145]; -ccx qubits[51], qubits[145], qubits[146]; -ccx qubits[52], qubits[146], qubits[147]; -ccx qubits[53], qubits[147], qubits[148]; -ccx qubits[54], qubits[148], qubits[149]; -ccx qubits[55], qubits[149], qubits[150]; -ccx qubits[56], qubits[150], qubits[151]; -ccx qubits[57], qubits[151], qubits[152]; -ccx qubits[58], qubits[152], qubits[153]; -ccx qubits[59], qubits[153], qubits[154]; -ccx qubits[60], qubits[154], qubits[155]; -ccx qubits[61], qubits[155], qubits[156]; -ccx qubits[62], qubits[156], qubits[157]; -ccx qubits[63], qubits[157], qubits[158]; -ccx qubits[64], qubits[158], qubits[159]; -ccx qubits[65], qubits[159], qubits[160]; -ccx qubits[66], qubits[160], qubits[161]; -ccx qubits[67], qubits[161], qubits[162]; -ccx qubits[68], qubits[162], qubits[163]; -ccx qubits[69], qubits[163], qubits[164]; -ccx qubits[70], qubits[164], qubits[165]; -ccx qubits[71], qubits[165], qubits[166]; -ccx qubits[72], qubits[166], qubits[167]; -ccx qubits[73], qubits[167], qubits[168]; -ccx qubits[74], qubits[168], qubits[169]; -ccx qubits[75], qubits[169], qubits[170]; -ccx qubits[76], qubits[170], qubits[171]; -ccx qubits[77], qubits[171], qubits[172]; -ccx qubits[78], qubits[172], qubits[173]; -ccx qubits[79], qubits[173], qubits[174]; -ccx qubits[80], qubits[174], qubits[175]; -ccx qubits[81], qubits[175], qubits[176]; -ccx qubits[82], qubits[176], qubits[177]; -ccx qubits[83], qubits[177], qubits[178]; -ccx qubits[84], qubits[178], qubits[179]; -ccx qubits[85], qubits[179], qubits[180]; -ccx qubits[86], qubits[180], qubits[181]; -ccx qubits[87], qubits[181], qubits[182]; -ccx qubits[88], qubits[182], qubits[183]; -ccx qubits[89], qubits[183], qubits[184]; -ccx qubits[90], qubits[184], qubits[185]; -ccx qubits[91], qubits[185], qubits[186]; -ccx qubits[92], qubits[186], qubits[187]; -ccx qubits[93], qubits[187], qubits[188]; -cz qubits[188], qubits[94]; -ccx qubits[93], qubits[187], qubits[188]; -ccx qubits[92], qubits[186], qubits[187]; -ccx qubits[91], qubits[185], qubits[186]; -ccx qubits[90], qubits[184], qubits[185]; -ccx qubits[89], qubits[183], qubits[184]; -ccx qubits[88], qubits[182], qubits[183]; -ccx qubits[87], qubits[181], qubits[182]; -ccx qubits[86], qubits[180], qubits[181]; -ccx qubits[85], qubits[179], qubits[180]; -ccx qubits[84], qubits[178], qubits[179]; -ccx qubits[83], qubits[177], qubits[178]; -ccx qubits[82], qubits[176], qubits[177]; -ccx qubits[81], qubits[175], qubits[176]; -ccx qubits[80], qubits[174], qubits[175]; -ccx qubits[79], qubits[173], qubits[174]; -ccx qubits[78], qubits[172], qubits[173]; -ccx qubits[77], qubits[171], qubits[172]; -ccx qubits[76], qubits[170], qubits[171]; -ccx qubits[75], qubits[169], qubits[170]; -ccx qubits[74], qubits[168], qubits[169]; -ccx qubits[73], qubits[167], qubits[168]; -ccx qubits[72], qubits[166], qubits[167]; -ccx qubits[71], qubits[165], qubits[166]; -ccx qubits[70], qubits[164], qubits[165]; -ccx qubits[69], qubits[163], qubits[164]; -ccx qubits[68], qubits[162], qubits[163]; -ccx qubits[67], qubits[161], qubits[162]; -ccx qubits[66], qubits[160], qubits[161]; -ccx qubits[65], qubits[159], qubits[160]; -ccx qubits[64], qubits[158], qubits[159]; -ccx qubits[63], qubits[157], qubits[158]; -ccx qubits[62], qubits[156], qubits[157]; -ccx qubits[61], qubits[155], qubits[156]; -ccx qubits[60], qubits[154], qubits[155]; -ccx qubits[59], qubits[153], qubits[154]; -ccx qubits[58], qubits[152], qubits[153]; -ccx qubits[57], qubits[151], qubits[152]; -ccx qubits[56], qubits[150], qubits[151]; -ccx qubits[55], qubits[149], qubits[150]; -ccx qubits[54], qubits[148], qubits[149]; -ccx qubits[53], qubits[147], qubits[148]; -ccx qubits[52], qubits[146], qubits[147]; -ccx qubits[51], qubits[145], qubits[146]; -ccx qubits[50], qubits[144], qubits[145]; -ccx qubits[49], qubits[143], qubits[144]; -ccx qubits[48], qubits[142], qubits[143]; -ccx qubits[47], qubits[141], qubits[142]; -ccx qubits[46], qubits[140], qubits[141]; -ccx qubits[45], qubits[139], qubits[140]; -ccx qubits[44], qubits[138], qubits[139]; -ccx qubits[43], qubits[137], qubits[138]; -ccx qubits[42], qubits[136], qubits[137]; -ccx qubits[41], qubits[135], qubits[136]; -ccx qubits[40], qubits[134], qubits[135]; -ccx qubits[39], qubits[133], qubits[134]; -ccx qubits[38], qubits[132], qubits[133]; -ccx qubits[37], qubits[131], qubits[132]; -ccx qubits[36], qubits[130], qubits[131]; -ccx qubits[35], qubits[129], qubits[130]; -ccx qubits[34], qubits[128], qubits[129]; -ccx qubits[33], qubits[127], qubits[128]; -ccx qubits[32], qubits[126], qubits[127]; -ccx qubits[31], qubits[125], qubits[126]; -ccx qubits[30], qubits[124], qubits[125]; -ccx qubits[29], qubits[123], qubits[124]; -ccx qubits[28], qubits[122], qubits[123]; -ccx qubits[27], qubits[121], qubits[122]; -ccx qubits[26], qubits[120], qubits[121]; -ccx qubits[25], qubits[119], qubits[120]; -ccx qubits[24], qubits[118], qubits[119]; -ccx qubits[23], qubits[117], qubits[118]; -ccx qubits[22], qubits[116], qubits[117]; -ccx qubits[21], qubits[115], qubits[116]; -ccx qubits[20], qubits[114], qubits[115]; -ccx qubits[19], qubits[113], qubits[114]; -ccx qubits[18], qubits[112], qubits[113]; -ccx qubits[17], qubits[111], qubits[112]; -ccx qubits[16], qubits[110], qubits[111]; -ccx qubits[15], qubits[109], qubits[110]; -ccx qubits[14], qubits[108], qubits[109]; -ccx qubits[13], qubits[107], qubits[108]; -ccx qubits[12], qubits[106], qubits[107]; -ccx qubits[11], qubits[105], qubits[106]; -ccx qubits[10], qubits[104], qubits[105]; -ccx qubits[9], qubits[103], qubits[104]; -ccx qubits[8], qubits[102], qubits[103]; -ccx qubits[7], qubits[101], qubits[102]; -ccx qubits[6], qubits[100], qubits[101]; -ccx qubits[5], qubits[99], qubits[100]; -ccx qubits[4], qubits[98], qubits[99]; -ccx qubits[3], qubits[97], qubits[98]; -ccx qubits[2], qubits[96], qubits[97]; -ccx qubits[0], qubits[1], qubits[96]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +cz qubits[186], qubits[187]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; +x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; -z qubits[95]; +h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +z qubits[188]; diff --git a/benchmarks/all/OEGrover/95/post.hsl b/benchmarks/all/OEGrover/95/post.hsl index 2777403fc..916e1241a 100644 --- a/benchmarks/all/OEGrover/95/post.hsl +++ b/benchmarks/all/OEGrover/95/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 46 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/95/post.lsta b/benchmarks/all/OEGrover/95/post.lsta deleted file mode 100644 index 326490dd3..000000000 --- a/benchmarks/all/OEGrover/95/post.lsta +++ /dev/null @@ -1,482 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 192) -> 189 -[96,1](191, 193) -> 190 -[97,1](194, 194) -> 191 -[97,1](195, 194) -> 192 -[97,1](196, 194) -> 193 -[98,1](197, 197) -> 194 -[98,1](198, 197) -> 195 -[98,1](199, 197) -> 196 -[99,1](200, 200) -> 197 -[99,1](201, 200) -> 198 -[99,1](202, 200) -> 199 -[100,1](203, 203) -> 200 -[100,1](204, 203) -> 201 -[100,1](205, 203) -> 202 -[101,1](206, 206) -> 203 -[101,1](207, 206) -> 204 -[101,1](208, 206) -> 205 -[102,1](209, 209) -> 206 -[102,1](210, 209) -> 207 -[102,1](211, 209) -> 208 -[103,1](212, 212) -> 209 -[103,1](213, 212) -> 210 -[103,1](214, 212) -> 211 -[104,1](215, 215) -> 212 -[104,1](216, 215) -> 213 -[104,1](217, 215) -> 214 -[105,1](218, 218) -> 215 -[105,1](219, 218) -> 216 -[105,1](220, 218) -> 217 -[106,1](221, 221) -> 218 -[106,1](222, 221) -> 219 -[106,1](223, 221) -> 220 -[107,1](224, 224) -> 221 -[107,1](225, 224) -> 222 -[107,1](226, 224) -> 223 -[108,1](227, 227) -> 224 -[108,1](228, 227) -> 225 -[108,1](229, 227) -> 226 -[109,1](230, 230) -> 227 -[109,1](231, 230) -> 228 -[109,1](232, 230) -> 229 -[110,1](233, 233) -> 230 -[110,1](234, 233) -> 231 -[110,1](235, 233) -> 232 -[111,1](236, 236) -> 233 -[111,1](237, 236) -> 234 -[111,1](238, 236) -> 235 -[112,1](239, 239) -> 236 -[112,1](240, 239) -> 237 -[112,1](241, 239) -> 238 -[113,1](242, 242) -> 239 -[113,1](243, 242) -> 240 -[113,1](244, 242) -> 241 -[114,1](245, 245) -> 242 -[114,1](246, 245) -> 243 -[114,1](247, 245) -> 244 -[115,1](248, 248) -> 245 -[115,1](249, 248) -> 246 -[115,1](250, 248) -> 247 -[116,1](251, 251) -> 248 -[116,1](252, 251) -> 249 -[116,1](253, 251) -> 250 -[117,1](254, 254) -> 251 -[117,1](255, 254) -> 252 -[117,1](256, 254) -> 253 -[118,1](257, 257) -> 254 -[118,1](258, 257) -> 255 -[118,1](259, 257) -> 256 -[119,1](260, 260) -> 257 -[119,1](261, 260) -> 258 -[119,1](262, 260) -> 259 -[120,1](263, 263) -> 260 -[120,1](264, 263) -> 261 -[120,1](265, 263) -> 262 -[121,1](266, 266) -> 263 -[121,1](267, 266) -> 264 -[121,1](268, 266) -> 265 -[122,1](269, 269) -> 266 -[122,1](270, 269) -> 267 -[122,1](271, 269) -> 268 -[123,1](272, 272) -> 269 -[123,1](273, 272) -> 270 -[123,1](274, 272) -> 271 -[124,1](275, 275) -> 272 -[124,1](276, 275) -> 273 -[124,1](277, 275) -> 274 -[125,1](278, 278) -> 275 -[125,1](279, 278) -> 276 -[125,1](280, 278) -> 277 -[126,1](281, 281) -> 278 -[126,1](282, 281) -> 279 -[126,1](283, 281) -> 280 -[127,1](284, 284) -> 281 -[127,1](285, 284) -> 282 -[127,1](286, 284) -> 283 -[128,1](287, 287) -> 284 -[128,1](288, 287) -> 285 -[128,1](289, 287) -> 286 -[129,1](290, 290) -> 287 -[129,1](291, 290) -> 288 -[129,1](292, 290) -> 289 -[130,1](293, 293) -> 290 -[130,1](294, 293) -> 291 -[130,1](295, 293) -> 292 -[131,1](296, 296) -> 293 -[131,1](297, 296) -> 294 -[131,1](298, 296) -> 295 -[132,1](299, 299) -> 296 -[132,1](300, 299) -> 297 -[132,1](301, 299) -> 298 -[133,1](302, 302) -> 299 -[133,1](303, 302) -> 300 -[133,1](304, 302) -> 301 -[134,1](305, 305) -> 302 -[134,1](306, 305) -> 303 -[134,1](307, 305) -> 304 -[135,1](308, 308) -> 305 -[135,1](309, 308) -> 306 -[135,1](310, 308) -> 307 -[136,1](311, 311) -> 308 -[136,1](312, 311) -> 309 -[136,1](313, 311) -> 310 -[137,1](314, 314) -> 311 -[137,1](315, 314) -> 312 -[137,1](316, 314) -> 313 -[138,1](317, 317) -> 314 -[138,1](318, 317) -> 315 -[138,1](319, 317) -> 316 -[139,1](320, 320) -> 317 -[139,1](321, 320) -> 318 -[139,1](322, 320) -> 319 -[140,1](323, 323) -> 320 -[140,1](324, 323) -> 321 -[140,1](325, 323) -> 322 -[141,1](326, 326) -> 323 -[141,1](327, 326) -> 324 -[141,1](328, 326) -> 325 -[142,1](329, 329) -> 326 -[142,1](330, 329) -> 327 -[142,1](331, 329) -> 328 -[143,1](332, 332) -> 329 -[143,1](333, 332) -> 330 -[143,1](334, 332) -> 331 -[144,1](335, 335) -> 332 -[144,1](336, 335) -> 333 -[144,1](337, 335) -> 334 -[145,1](338, 338) -> 335 -[145,1](339, 338) -> 336 -[145,1](340, 338) -> 337 -[146,1](341, 341) -> 338 -[146,1](342, 341) -> 339 -[146,1](343, 341) -> 340 -[147,1](344, 344) -> 341 -[147,1](345, 344) -> 342 -[147,1](346, 344) -> 343 -[148,1](347, 347) -> 344 -[148,1](348, 347) -> 345 -[148,1](349, 347) -> 346 -[149,1](350, 350) -> 347 -[149,1](351, 350) -> 348 -[149,1](352, 350) -> 349 -[150,1](353, 353) -> 350 -[150,1](354, 353) -> 351 -[150,1](355, 353) -> 352 -[151,1](356, 356) -> 353 -[151,1](357, 356) -> 354 -[151,1](358, 356) -> 355 -[152,1](359, 359) -> 356 -[152,1](360, 359) -> 357 -[152,1](361, 359) -> 358 -[153,1](362, 362) -> 359 -[153,1](363, 362) -> 360 -[153,1](364, 362) -> 361 -[154,1](365, 365) -> 362 -[154,1](366, 365) -> 363 -[154,1](367, 365) -> 364 -[155,1](368, 368) -> 365 -[155,1](369, 368) -> 366 -[155,1](370, 368) -> 367 -[156,1](371, 371) -> 368 -[156,1](372, 371) -> 369 -[156,1](373, 371) -> 370 -[157,1](374, 374) -> 371 -[157,1](375, 374) -> 372 -[157,1](376, 374) -> 373 -[158,1](377, 377) -> 374 -[158,1](378, 377) -> 375 -[158,1](379, 377) -> 376 -[159,1](380, 380) -> 377 -[159,1](381, 380) -> 378 -[159,1](382, 380) -> 379 -[160,1](383, 383) -> 380 -[160,1](384, 383) -> 381 -[160,1](385, 383) -> 382 -[161,1](386, 386) -> 383 -[161,1](387, 386) -> 384 -[161,1](388, 386) -> 385 -[162,1](389, 389) -> 386 -[162,1](390, 389) -> 387 -[162,1](391, 389) -> 388 -[163,1](392, 392) -> 389 -[163,1](393, 392) -> 390 -[163,1](394, 392) -> 391 -[164,1](395, 395) -> 392 -[164,1](396, 395) -> 393 -[164,1](397, 395) -> 394 -[165,1](398, 398) -> 395 -[165,1](399, 398) -> 396 -[165,1](400, 398) -> 397 -[166,1](401, 401) -> 398 -[166,1](402, 401) -> 399 -[166,1](403, 401) -> 400 -[167,1](404, 404) -> 401 -[167,1](405, 404) -> 402 -[167,1](406, 404) -> 403 -[168,1](407, 407) -> 404 -[168,1](408, 407) -> 405 -[168,1](409, 407) -> 406 -[169,1](410, 410) -> 407 -[169,1](411, 410) -> 408 -[169,1](412, 410) -> 409 -[170,1](413, 413) -> 410 -[170,1](414, 413) -> 411 -[170,1](415, 413) -> 412 -[171,1](416, 416) -> 413 -[171,1](417, 416) -> 414 -[171,1](418, 416) -> 415 -[172,1](419, 419) -> 416 -[172,1](420, 419) -> 417 -[172,1](421, 419) -> 418 -[173,1](422, 422) -> 419 -[173,1](423, 422) -> 420 -[173,1](424, 422) -> 421 -[174,1](425, 425) -> 422 -[174,1](426, 425) -> 423 -[174,1](427, 425) -> 424 -[175,1](428, 428) -> 425 -[175,1](429, 428) -> 426 -[175,1](430, 428) -> 427 -[176,1](431, 431) -> 428 -[176,1](432, 431) -> 429 -[176,1](433, 431) -> 430 -[177,1](434, 434) -> 431 -[177,1](435, 434) -> 432 -[177,1](436, 434) -> 433 -[178,1](437, 437) -> 434 -[178,1](438, 437) -> 435 -[178,1](439, 437) -> 436 -[179,1](440, 440) -> 437 -[179,1](441, 440) -> 438 -[179,1](442, 440) -> 439 -[180,1](443, 443) -> 440 -[180,1](444, 443) -> 441 -[180,1](445, 443) -> 442 -[181,1](446, 446) -> 443 -[181,1](447, 446) -> 444 -[181,1](448, 446) -> 445 -[182,1](449, 449) -> 446 -[182,1](450, 449) -> 447 -[182,1](451, 449) -> 448 -[183,1](452, 452) -> 449 -[183,1](453, 452) -> 450 -[183,1](454, 452) -> 451 -[184,1](455, 455) -> 452 -[184,1](456, 455) -> 453 -[184,1](457, 455) -> 454 -[185,1](458, 458) -> 455 -[185,1](459, 458) -> 456 -[185,1](460, 458) -> 457 -[186,1](461, 461) -> 458 -[186,1](462, 461) -> 459 -[186,1](463, 461) -> 460 -[187,1](464, 464) -> 461 -[187,1](465, 464) -> 462 -[187,1](466, 464) -> 463 -[188,1](467, 467) -> 464 -[188,1](468, 467) -> 465 -[188,1](469, 467) -> 466 -[189,1](470, 470) -> 467 -[189,1](471, 470) -> 468 -[189,1](472, 470) -> 469 -[190,1](473, 473) -> 470 -[190,1](474, 473) -> 471 -[190,1](475, 473) -> 472 -[p1,1] -> 473 -[p2,1] -> 474 -[p3,1] -> 475 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/95/pre.hsl b/benchmarks/all/OEGrover/95/pre.hsl index 43bbf9a98..9f1375b34 100644 --- a/benchmarks/all/OEGrover/95/pre.hsl +++ b/benchmarks/all/OEGrover/95/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 46 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 39614081257132168796771975167 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/95/pre.lsta b/benchmarks/all/OEGrover/95/pre.lsta deleted file mode 100644 index de0a9e135..000000000 --- a/benchmarks/all/OEGrover/95/pre.lsta +++ /dev/null @@ -1,486 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 192) -> 189 -[96,1](191, 193) -> 190 -[97,1](194, 194) -> 191 -[97,1](195, 194) -> 192 -[97,1](196, 194) -> 193 -[98,1](197, 197) -> 194 -[98,1](198, 197) -> 195 -[98,1](199, 197) -> 196 -[99,1](200, 200) -> 197 -[99,1](201, 200) -> 198 -[99,1](202, 200) -> 199 -[100,1](203, 203) -> 200 -[100,1](204, 203) -> 201 -[100,1](205, 203) -> 202 -[101,1](206, 206) -> 203 -[101,1](207, 206) -> 204 -[101,1](208, 206) -> 205 -[102,1](209, 209) -> 206 -[102,1](210, 209) -> 207 -[102,1](211, 209) -> 208 -[103,1](212, 212) -> 209 -[103,1](213, 212) -> 210 -[103,1](214, 212) -> 211 -[104,1](215, 215) -> 212 -[104,1](216, 215) -> 213 -[104,1](217, 215) -> 214 -[105,1](218, 218) -> 215 -[105,1](219, 218) -> 216 -[105,1](220, 218) -> 217 -[106,1](221, 221) -> 218 -[106,1](222, 221) -> 219 -[106,1](223, 221) -> 220 -[107,1](224, 224) -> 221 -[107,1](225, 224) -> 222 -[107,1](226, 224) -> 223 -[108,1](227, 227) -> 224 -[108,1](228, 227) -> 225 -[108,1](229, 227) -> 226 -[109,1](230, 230) -> 227 -[109,1](231, 230) -> 228 -[109,1](232, 230) -> 229 -[110,1](233, 233) -> 230 -[110,1](234, 233) -> 231 -[110,1](235, 233) -> 232 -[111,1](236, 236) -> 233 -[111,1](237, 236) -> 234 -[111,1](238, 236) -> 235 -[112,1](239, 239) -> 236 -[112,1](240, 239) -> 237 -[112,1](241, 239) -> 238 -[113,1](242, 242) -> 239 -[113,1](243, 242) -> 240 -[113,1](244, 242) -> 241 -[114,1](245, 245) -> 242 -[114,1](246, 245) -> 243 -[114,1](247, 245) -> 244 -[115,1](248, 248) -> 245 -[115,1](249, 248) -> 246 -[115,1](250, 248) -> 247 -[116,1](251, 251) -> 248 -[116,1](252, 251) -> 249 -[116,1](253, 251) -> 250 -[117,1](254, 254) -> 251 -[117,1](255, 254) -> 252 -[117,1](256, 254) -> 253 -[118,1](257, 257) -> 254 -[118,1](258, 257) -> 255 -[118,1](259, 257) -> 256 -[119,1](260, 260) -> 257 -[119,1](261, 260) -> 258 -[119,1](262, 260) -> 259 -[120,1](263, 263) -> 260 -[120,1](264, 263) -> 261 -[120,1](265, 263) -> 262 -[121,1](266, 266) -> 263 -[121,1](267, 266) -> 264 -[121,1](268, 266) -> 265 -[122,1](269, 269) -> 266 -[122,1](270, 269) -> 267 -[122,1](271, 269) -> 268 -[123,1](272, 272) -> 269 -[123,1](273, 272) -> 270 -[123,1](274, 272) -> 271 -[124,1](275, 275) -> 272 -[124,1](276, 275) -> 273 -[124,1](277, 275) -> 274 -[125,1](278, 278) -> 275 -[125,1](279, 278) -> 276 -[125,1](280, 278) -> 277 -[126,1](281, 281) -> 278 -[126,1](282, 281) -> 279 -[126,1](283, 281) -> 280 -[127,1](284, 284) -> 281 -[127,1](285, 284) -> 282 -[127,1](286, 284) -> 283 -[128,1](287, 287) -> 284 -[128,1](288, 287) -> 285 -[128,1](289, 287) -> 286 -[129,1](290, 290) -> 287 -[129,1](291, 290) -> 288 -[129,1](292, 290) -> 289 -[130,1](293, 293) -> 290 -[130,1](294, 293) -> 291 -[130,1](295, 293) -> 292 -[131,1](296, 296) -> 293 -[131,1](297, 296) -> 294 -[131,1](298, 296) -> 295 -[132,1](299, 299) -> 296 -[132,1](300, 299) -> 297 -[132,1](301, 299) -> 298 -[133,1](302, 302) -> 299 -[133,1](303, 302) -> 300 -[133,1](304, 302) -> 301 -[134,1](305, 305) -> 302 -[134,1](306, 305) -> 303 -[134,1](307, 305) -> 304 -[135,1](308, 308) -> 305 -[135,1](309, 308) -> 306 -[135,1](310, 308) -> 307 -[136,1](311, 311) -> 308 -[136,1](312, 311) -> 309 -[136,1](313, 311) -> 310 -[137,1](314, 314) -> 311 -[137,1](315, 314) -> 312 -[137,1](316, 314) -> 313 -[138,1](317, 317) -> 314 -[138,1](318, 317) -> 315 -[138,1](319, 317) -> 316 -[139,1](320, 320) -> 317 -[139,1](321, 320) -> 318 -[139,1](322, 320) -> 319 -[140,1](323, 323) -> 320 -[140,1](324, 323) -> 321 -[140,1](325, 323) -> 322 -[141,1](326, 326) -> 323 -[141,1](327, 326) -> 324 -[141,1](328, 326) -> 325 -[142,1](329, 329) -> 326 -[142,1](330, 329) -> 327 -[142,1](331, 329) -> 328 -[143,1](332, 332) -> 329 -[143,1](333, 332) -> 330 -[143,1](334, 332) -> 331 -[144,1](335, 335) -> 332 -[144,1](336, 335) -> 333 -[144,1](337, 335) -> 334 -[145,1](338, 338) -> 335 -[145,1](339, 338) -> 336 -[145,1](340, 338) -> 337 -[146,1](341, 341) -> 338 -[146,1](342, 341) -> 339 -[146,1](343, 341) -> 340 -[147,1](344, 344) -> 341 -[147,1](345, 344) -> 342 -[147,1](346, 344) -> 343 -[148,1](347, 347) -> 344 -[148,1](348, 347) -> 345 -[148,1](349, 347) -> 346 -[149,1](350, 350) -> 347 -[149,1](351, 350) -> 348 -[149,1](352, 350) -> 349 -[150,1](353, 353) -> 350 -[150,1](354, 353) -> 351 -[150,1](355, 353) -> 352 -[151,1](356, 356) -> 353 -[151,1](357, 356) -> 354 -[151,1](358, 356) -> 355 -[152,1](359, 359) -> 356 -[152,1](360, 359) -> 357 -[152,1](361, 359) -> 358 -[153,1](362, 362) -> 359 -[153,1](363, 362) -> 360 -[153,1](364, 362) -> 361 -[154,1](365, 365) -> 362 -[154,1](366, 365) -> 363 -[154,1](367, 365) -> 364 -[155,1](368, 368) -> 365 -[155,1](369, 368) -> 366 -[155,1](370, 368) -> 367 -[156,1](371, 371) -> 368 -[156,1](372, 371) -> 369 -[156,1](373, 371) -> 370 -[157,1](374, 374) -> 371 -[157,1](375, 374) -> 372 -[157,1](376, 374) -> 373 -[158,1](377, 377) -> 374 -[158,1](378, 377) -> 375 -[158,1](379, 377) -> 376 -[159,1](380, 380) -> 377 -[159,1](381, 380) -> 378 -[159,1](382, 380) -> 379 -[160,1](383, 383) -> 380 -[160,1](384, 383) -> 381 -[160,1](385, 383) -> 382 -[161,1](386, 386) -> 383 -[161,1](387, 386) -> 384 -[161,1](388, 386) -> 385 -[162,1](389, 389) -> 386 -[162,1](390, 389) -> 387 -[162,1](391, 389) -> 388 -[163,1](392, 392) -> 389 -[163,1](393, 392) -> 390 -[163,1](394, 392) -> 391 -[164,1](395, 395) -> 392 -[164,1](396, 395) -> 393 -[164,1](397, 395) -> 394 -[165,1](398, 398) -> 395 -[165,1](399, 398) -> 396 -[165,1](400, 398) -> 397 -[166,1](401, 401) -> 398 -[166,1](402, 401) -> 399 -[166,1](403, 401) -> 400 -[167,1](404, 404) -> 401 -[167,1](405, 404) -> 402 -[167,1](406, 404) -> 403 -[168,1](407, 407) -> 404 -[168,1](408, 407) -> 405 -[168,1](409, 407) -> 406 -[169,1](410, 410) -> 407 -[169,1](411, 410) -> 408 -[169,1](412, 410) -> 409 -[170,1](413, 413) -> 410 -[170,1](414, 413) -> 411 -[170,1](415, 413) -> 412 -[171,1](416, 416) -> 413 -[171,1](417, 416) -> 414 -[171,1](418, 416) -> 415 -[172,1](419, 419) -> 416 -[172,1](420, 419) -> 417 -[172,1](421, 419) -> 418 -[173,1](422, 422) -> 419 -[173,1](423, 422) -> 420 -[173,1](424, 422) -> 421 -[174,1](425, 425) -> 422 -[174,1](426, 425) -> 423 -[174,1](427, 425) -> 424 -[175,1](428, 428) -> 425 -[175,1](429, 428) -> 426 -[175,1](430, 428) -> 427 -[176,1](431, 431) -> 428 -[176,1](432, 431) -> 429 -[176,1](433, 431) -> 430 -[177,1](434, 434) -> 431 -[177,1](435, 434) -> 432 -[177,1](436, 434) -> 433 -[178,1](437, 437) -> 434 -[178,1](438, 437) -> 435 -[178,1](439, 437) -> 436 -[179,1](440, 440) -> 437 -[179,1](441, 440) -> 438 -[179,1](442, 440) -> 439 -[180,1](443, 443) -> 440 -[180,1](444, 443) -> 441 -[180,1](445, 443) -> 442 -[181,1](446, 446) -> 443 -[181,1](447, 446) -> 444 -[181,1](448, 446) -> 445 -[182,1](449, 449) -> 446 -[182,1](450, 449) -> 447 -[182,1](451, 449) -> 448 -[183,1](452, 452) -> 449 -[183,1](453, 452) -> 450 -[183,1](454, 452) -> 451 -[184,1](455, 455) -> 452 -[184,1](456, 455) -> 453 -[184,1](457, 455) -> 454 -[185,1](458, 458) -> 455 -[185,1](459, 458) -> 456 -[185,1](460, 458) -> 457 -[186,1](461, 461) -> 458 -[186,1](462, 461) -> 459 -[186,1](463, 461) -> 460 -[187,1](464, 464) -> 461 -[187,1](465, 464) -> 462 -[187,1](466, 464) -> 463 -[188,1](467, 467) -> 464 -[188,1](468, 467) -> 465 -[188,1](469, 467) -> 466 -[189,1](470, 470) -> 467 -[189,1](471, 470) -> 468 -[189,1](472, 470) -> 469 -[190,1](473, 473) -> 470 -[190,1](474, 473) -> 471 -[190,1](475, 473) -> 472 -[c0,1] -> 473 -[a,1] -> 474 -[b,1] -> 475 -Constraints -39614081257132168796771975167 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/96/circuit.qasm b/benchmarks/all/OEGrover/96/circuit.qasm index b7d2f05da..4cd1fe710 100644 --- a/benchmarks/all/OEGrover/96/circuit.qasm +++ b/benchmarks/all/OEGrover/96/circuit.qasm @@ -1,244 +1,244 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[192]; +qreg qubits[191]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -x qubits[92]; -x qubits[94]; -ccx qubits[0], qubits[1], qubits[97]; -ccx qubits[2], qubits[97], qubits[98]; -ccx qubits[3], qubits[98], qubits[99]; -ccx qubits[4], qubits[99], qubits[100]; -ccx qubits[5], qubits[100], qubits[101]; -ccx qubits[6], qubits[101], qubits[102]; -ccx qubits[7], qubits[102], qubits[103]; -ccx qubits[8], qubits[103], qubits[104]; -ccx qubits[9], qubits[104], qubits[105]; -ccx qubits[10], qubits[105], qubits[106]; -ccx qubits[11], qubits[106], qubits[107]; -ccx qubits[12], qubits[107], qubits[108]; -ccx qubits[13], qubits[108], qubits[109]; -ccx qubits[14], qubits[109], qubits[110]; -ccx qubits[15], qubits[110], qubits[111]; -ccx qubits[16], qubits[111], qubits[112]; -ccx qubits[17], qubits[112], qubits[113]; -ccx qubits[18], qubits[113], qubits[114]; -ccx qubits[19], qubits[114], qubits[115]; -ccx qubits[20], qubits[115], qubits[116]; -ccx qubits[21], qubits[116], qubits[117]; -ccx qubits[22], qubits[117], qubits[118]; -ccx qubits[23], qubits[118], qubits[119]; -ccx qubits[24], qubits[119], qubits[120]; -ccx qubits[25], qubits[120], qubits[121]; -ccx qubits[26], qubits[121], qubits[122]; -ccx qubits[27], qubits[122], qubits[123]; -ccx qubits[28], qubits[123], qubits[124]; -ccx qubits[29], qubits[124], qubits[125]; -ccx qubits[30], qubits[125], qubits[126]; -ccx qubits[31], qubits[126], qubits[127]; -ccx qubits[32], qubits[127], qubits[128]; -ccx qubits[33], qubits[128], qubits[129]; -ccx qubits[34], qubits[129], qubits[130]; -ccx qubits[35], qubits[130], qubits[131]; -ccx qubits[36], qubits[131], qubits[132]; -ccx qubits[37], qubits[132], qubits[133]; -ccx qubits[38], qubits[133], qubits[134]; -ccx qubits[39], qubits[134], qubits[135]; -ccx qubits[40], qubits[135], qubits[136]; -ccx qubits[41], qubits[136], qubits[137]; -ccx qubits[42], qubits[137], qubits[138]; -ccx qubits[43], qubits[138], qubits[139]; -ccx qubits[44], qubits[139], qubits[140]; -ccx qubits[45], qubits[140], qubits[141]; -ccx qubits[46], qubits[141], qubits[142]; -ccx qubits[47], qubits[142], qubits[143]; -ccx qubits[48], qubits[143], qubits[144]; -ccx qubits[49], qubits[144], qubits[145]; -ccx qubits[50], qubits[145], qubits[146]; -ccx qubits[51], qubits[146], qubits[147]; -ccx qubits[52], qubits[147], qubits[148]; -ccx qubits[53], qubits[148], qubits[149]; -ccx qubits[54], qubits[149], qubits[150]; -ccx qubits[55], qubits[150], qubits[151]; -ccx qubits[56], qubits[151], qubits[152]; -ccx qubits[57], qubits[152], qubits[153]; -ccx qubits[58], qubits[153], qubits[154]; -ccx qubits[59], qubits[154], qubits[155]; -ccx qubits[60], qubits[155], qubits[156]; -ccx qubits[61], qubits[156], qubits[157]; -ccx qubits[62], qubits[157], qubits[158]; -ccx qubits[63], qubits[158], qubits[159]; -ccx qubits[64], qubits[159], qubits[160]; -ccx qubits[65], qubits[160], qubits[161]; -ccx qubits[66], qubits[161], qubits[162]; -ccx qubits[67], qubits[162], qubits[163]; -ccx qubits[68], qubits[163], qubits[164]; -ccx qubits[69], qubits[164], qubits[165]; -ccx qubits[70], qubits[165], qubits[166]; -ccx qubits[71], qubits[166], qubits[167]; -ccx qubits[72], qubits[167], qubits[168]; -ccx qubits[73], qubits[168], qubits[169]; -ccx qubits[74], qubits[169], qubits[170]; -ccx qubits[75], qubits[170], qubits[171]; -ccx qubits[76], qubits[171], qubits[172]; -ccx qubits[77], qubits[172], qubits[173]; -ccx qubits[78], qubits[173], qubits[174]; -ccx qubits[79], qubits[174], qubits[175]; -ccx qubits[80], qubits[175], qubits[176]; -ccx qubits[81], qubits[176], qubits[177]; -ccx qubits[82], qubits[177], qubits[178]; -ccx qubits[83], qubits[178], qubits[179]; -ccx qubits[84], qubits[179], qubits[180]; -ccx qubits[85], qubits[180], qubits[181]; -ccx qubits[86], qubits[181], qubits[182]; -ccx qubits[87], qubits[182], qubits[183]; -ccx qubits[88], qubits[183], qubits[184]; -ccx qubits[89], qubits[184], qubits[185]; -ccx qubits[90], qubits[185], qubits[186]; -ccx qubits[91], qubits[186], qubits[187]; -ccx qubits[92], qubits[187], qubits[188]; -ccx qubits[93], qubits[188], qubits[189]; -ccx qubits[94], qubits[189], qubits[190]; -cz qubits[190], qubits[95]; -ccx qubits[94], qubits[189], qubits[190]; -ccx qubits[93], qubits[188], qubits[189]; -ccx qubits[92], qubits[187], qubits[188]; -ccx qubits[91], qubits[186], qubits[187]; -ccx qubits[90], qubits[185], qubits[186]; -ccx qubits[89], qubits[184], qubits[185]; -ccx qubits[88], qubits[183], qubits[184]; -ccx qubits[87], qubits[182], qubits[183]; -ccx qubits[86], qubits[181], qubits[182]; -ccx qubits[85], qubits[180], qubits[181]; -ccx qubits[84], qubits[179], qubits[180]; -ccx qubits[83], qubits[178], qubits[179]; -ccx qubits[82], qubits[177], qubits[178]; -ccx qubits[81], qubits[176], qubits[177]; -ccx qubits[80], qubits[175], qubits[176]; -ccx qubits[79], qubits[174], qubits[175]; -ccx qubits[78], qubits[173], qubits[174]; -ccx qubits[77], qubits[172], qubits[173]; -ccx qubits[76], qubits[171], qubits[172]; -ccx qubits[75], qubits[170], qubits[171]; -ccx qubits[74], qubits[169], qubits[170]; -ccx qubits[73], qubits[168], qubits[169]; -ccx qubits[72], qubits[167], qubits[168]; -ccx qubits[71], qubits[166], qubits[167]; -ccx qubits[70], qubits[165], qubits[166]; -ccx qubits[69], qubits[164], qubits[165]; -ccx qubits[68], qubits[163], qubits[164]; -ccx qubits[67], qubits[162], qubits[163]; -ccx qubits[66], qubits[161], qubits[162]; -ccx qubits[65], qubits[160], qubits[161]; -ccx qubits[64], qubits[159], qubits[160]; -ccx qubits[63], qubits[158], qubits[159]; -ccx qubits[62], qubits[157], qubits[158]; -ccx qubits[61], qubits[156], qubits[157]; -ccx qubits[60], qubits[155], qubits[156]; -ccx qubits[59], qubits[154], qubits[155]; -ccx qubits[58], qubits[153], qubits[154]; -ccx qubits[57], qubits[152], qubits[153]; -ccx qubits[56], qubits[151], qubits[152]; -ccx qubits[55], qubits[150], qubits[151]; -ccx qubits[54], qubits[149], qubits[150]; -ccx qubits[53], qubits[148], qubits[149]; -ccx qubits[52], qubits[147], qubits[148]; -ccx qubits[51], qubits[146], qubits[147]; -ccx qubits[50], qubits[145], qubits[146]; -ccx qubits[49], qubits[144], qubits[145]; -ccx qubits[48], qubits[143], qubits[144]; -ccx qubits[47], qubits[142], qubits[143]; -ccx qubits[46], qubits[141], qubits[142]; -ccx qubits[45], qubits[140], qubits[141]; -ccx qubits[44], qubits[139], qubits[140]; -ccx qubits[43], qubits[138], qubits[139]; -ccx qubits[42], qubits[137], qubits[138]; -ccx qubits[41], qubits[136], qubits[137]; -ccx qubits[40], qubits[135], qubits[136]; -ccx qubits[39], qubits[134], qubits[135]; -ccx qubits[38], qubits[133], qubits[134]; -ccx qubits[37], qubits[132], qubits[133]; -ccx qubits[36], qubits[131], qubits[132]; -ccx qubits[35], qubits[130], qubits[131]; -ccx qubits[34], qubits[129], qubits[130]; -ccx qubits[33], qubits[128], qubits[129]; -ccx qubits[32], qubits[127], qubits[128]; -ccx qubits[31], qubits[126], qubits[127]; -ccx qubits[30], qubits[125], qubits[126]; -ccx qubits[29], qubits[124], qubits[125]; -ccx qubits[28], qubits[123], qubits[124]; -ccx qubits[27], qubits[122], qubits[123]; -ccx qubits[26], qubits[121], qubits[122]; -ccx qubits[25], qubits[120], qubits[121]; -ccx qubits[24], qubits[119], qubits[120]; -ccx qubits[23], qubits[118], qubits[119]; -ccx qubits[22], qubits[117], qubits[118]; -ccx qubits[21], qubits[116], qubits[117]; -ccx qubits[20], qubits[115], qubits[116]; -ccx qubits[19], qubits[114], qubits[115]; -ccx qubits[18], qubits[113], qubits[114]; -ccx qubits[17], qubits[112], qubits[113]; -ccx qubits[16], qubits[111], qubits[112]; -ccx qubits[15], qubits[110], qubits[111]; -ccx qubits[14], qubits[109], qubits[110]; -ccx qubits[13], qubits[108], qubits[109]; -ccx qubits[12], qubits[107], qubits[108]; -ccx qubits[11], qubits[106], qubits[107]; -ccx qubits[10], qubits[105], qubits[106]; -ccx qubits[9], qubits[104], qubits[105]; -ccx qubits[8], qubits[103], qubits[104]; -ccx qubits[7], qubits[102], qubits[103]; -ccx qubits[6], qubits[101], qubits[102]; -ccx qubits[5], qubits[100], qubits[101]; -ccx qubits[4], qubits[99], qubits[100]; -ccx qubits[3], qubits[98], qubits[99]; -ccx qubits[2], qubits[97], qubits[98]; -ccx qubits[0], qubits[1], qubits[97]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +x qubits[183]; +x qubits[187]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +cz qubits[188], qubits[189]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -289,575 +289,575 @@ x qubits[92]; x qubits[94]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -ccx qubits[0], qubits[1], qubits[97]; -ccx qubits[2], qubits[97], qubits[98]; -ccx qubits[3], qubits[98], qubits[99]; -ccx qubits[4], qubits[99], qubits[100]; -ccx qubits[5], qubits[100], qubits[101]; -ccx qubits[6], qubits[101], qubits[102]; -ccx qubits[7], qubits[102], qubits[103]; -ccx qubits[8], qubits[103], qubits[104]; -ccx qubits[9], qubits[104], qubits[105]; -ccx qubits[10], qubits[105], qubits[106]; -ccx qubits[11], qubits[106], qubits[107]; -ccx qubits[12], qubits[107], qubits[108]; -ccx qubits[13], qubits[108], qubits[109]; -ccx qubits[14], qubits[109], qubits[110]; -ccx qubits[15], qubits[110], qubits[111]; -ccx qubits[16], qubits[111], qubits[112]; -ccx qubits[17], qubits[112], qubits[113]; -ccx qubits[18], qubits[113], qubits[114]; -ccx qubits[19], qubits[114], qubits[115]; -ccx qubits[20], qubits[115], qubits[116]; -ccx qubits[21], qubits[116], qubits[117]; -ccx qubits[22], qubits[117], qubits[118]; -ccx qubits[23], qubits[118], qubits[119]; -ccx qubits[24], qubits[119], qubits[120]; -ccx qubits[25], qubits[120], qubits[121]; -ccx qubits[26], qubits[121], qubits[122]; -ccx qubits[27], qubits[122], qubits[123]; -ccx qubits[28], qubits[123], qubits[124]; -ccx qubits[29], qubits[124], qubits[125]; -ccx qubits[30], qubits[125], qubits[126]; -ccx qubits[31], qubits[126], qubits[127]; -ccx qubits[32], qubits[127], qubits[128]; -ccx qubits[33], qubits[128], qubits[129]; -ccx qubits[34], qubits[129], qubits[130]; -ccx qubits[35], qubits[130], qubits[131]; -ccx qubits[36], qubits[131], qubits[132]; -ccx qubits[37], qubits[132], qubits[133]; -ccx qubits[38], qubits[133], qubits[134]; -ccx qubits[39], qubits[134], qubits[135]; -ccx qubits[40], qubits[135], qubits[136]; -ccx qubits[41], qubits[136], qubits[137]; -ccx qubits[42], qubits[137], qubits[138]; -ccx qubits[43], qubits[138], qubits[139]; -ccx qubits[44], qubits[139], qubits[140]; -ccx qubits[45], qubits[140], qubits[141]; -ccx qubits[46], qubits[141], qubits[142]; -ccx qubits[47], qubits[142], qubits[143]; -ccx qubits[48], qubits[143], qubits[144]; -ccx qubits[49], qubits[144], qubits[145]; -ccx qubits[50], qubits[145], qubits[146]; -ccx qubits[51], qubits[146], qubits[147]; -ccx qubits[52], qubits[147], qubits[148]; -ccx qubits[53], qubits[148], qubits[149]; -ccx qubits[54], qubits[149], qubits[150]; -ccx qubits[55], qubits[150], qubits[151]; -ccx qubits[56], qubits[151], qubits[152]; -ccx qubits[57], qubits[152], qubits[153]; -ccx qubits[58], qubits[153], qubits[154]; -ccx qubits[59], qubits[154], qubits[155]; -ccx qubits[60], qubits[155], qubits[156]; -ccx qubits[61], qubits[156], qubits[157]; -ccx qubits[62], qubits[157], qubits[158]; -ccx qubits[63], qubits[158], qubits[159]; -ccx qubits[64], qubits[159], qubits[160]; -ccx qubits[65], qubits[160], qubits[161]; -ccx qubits[66], qubits[161], qubits[162]; -ccx qubits[67], qubits[162], qubits[163]; -ccx qubits[68], qubits[163], qubits[164]; -ccx qubits[69], qubits[164], qubits[165]; -ccx qubits[70], qubits[165], qubits[166]; -ccx qubits[71], qubits[166], qubits[167]; -ccx qubits[72], qubits[167], qubits[168]; -ccx qubits[73], qubits[168], qubits[169]; -ccx qubits[74], qubits[169], qubits[170]; -ccx qubits[75], qubits[170], qubits[171]; -ccx qubits[76], qubits[171], qubits[172]; -ccx qubits[77], qubits[172], qubits[173]; -ccx qubits[78], qubits[173], qubits[174]; -ccx qubits[79], qubits[174], qubits[175]; -ccx qubits[80], qubits[175], qubits[176]; -ccx qubits[81], qubits[176], qubits[177]; -ccx qubits[82], qubits[177], qubits[178]; -ccx qubits[83], qubits[178], qubits[179]; -ccx qubits[84], qubits[179], qubits[180]; -ccx qubits[85], qubits[180], qubits[181]; -ccx qubits[86], qubits[181], qubits[182]; -ccx qubits[87], qubits[182], qubits[183]; -ccx qubits[88], qubits[183], qubits[184]; -ccx qubits[89], qubits[184], qubits[185]; -ccx qubits[90], qubits[185], qubits[186]; -ccx qubits[91], qubits[186], qubits[187]; -ccx qubits[92], qubits[187], qubits[188]; -ccx qubits[93], qubits[188], qubits[189]; -ccx qubits[94], qubits[189], qubits[190]; -cz qubits[190], qubits[95]; -ccx qubits[94], qubits[189], qubits[190]; -ccx qubits[93], qubits[188], qubits[189]; -ccx qubits[92], qubits[187], qubits[188]; -ccx qubits[91], qubits[186], qubits[187]; -ccx qubits[90], qubits[185], qubits[186]; -ccx qubits[89], qubits[184], qubits[185]; -ccx qubits[88], qubits[183], qubits[184]; -ccx qubits[87], qubits[182], qubits[183]; -ccx qubits[86], qubits[181], qubits[182]; -ccx qubits[85], qubits[180], qubits[181]; -ccx qubits[84], qubits[179], qubits[180]; -ccx qubits[83], qubits[178], qubits[179]; -ccx qubits[82], qubits[177], qubits[178]; -ccx qubits[81], qubits[176], qubits[177]; -ccx qubits[80], qubits[175], qubits[176]; -ccx qubits[79], qubits[174], qubits[175]; -ccx qubits[78], qubits[173], qubits[174]; -ccx qubits[77], qubits[172], qubits[173]; -ccx qubits[76], qubits[171], qubits[172]; -ccx qubits[75], qubits[170], qubits[171]; -ccx qubits[74], qubits[169], qubits[170]; -ccx qubits[73], qubits[168], qubits[169]; -ccx qubits[72], qubits[167], qubits[168]; -ccx qubits[71], qubits[166], qubits[167]; -ccx qubits[70], qubits[165], qubits[166]; -ccx qubits[69], qubits[164], qubits[165]; -ccx qubits[68], qubits[163], qubits[164]; -ccx qubits[67], qubits[162], qubits[163]; -ccx qubits[66], qubits[161], qubits[162]; -ccx qubits[65], qubits[160], qubits[161]; -ccx qubits[64], qubits[159], qubits[160]; -ccx qubits[63], qubits[158], qubits[159]; -ccx qubits[62], qubits[157], qubits[158]; -ccx qubits[61], qubits[156], qubits[157]; -ccx qubits[60], qubits[155], qubits[156]; -ccx qubits[59], qubits[154], qubits[155]; -ccx qubits[58], qubits[153], qubits[154]; -ccx qubits[57], qubits[152], qubits[153]; -ccx qubits[56], qubits[151], qubits[152]; -ccx qubits[55], qubits[150], qubits[151]; -ccx qubits[54], qubits[149], qubits[150]; -ccx qubits[53], qubits[148], qubits[149]; -ccx qubits[52], qubits[147], qubits[148]; -ccx qubits[51], qubits[146], qubits[147]; -ccx qubits[50], qubits[145], qubits[146]; -ccx qubits[49], qubits[144], qubits[145]; -ccx qubits[48], qubits[143], qubits[144]; -ccx qubits[47], qubits[142], qubits[143]; -ccx qubits[46], qubits[141], qubits[142]; -ccx qubits[45], qubits[140], qubits[141]; -ccx qubits[44], qubits[139], qubits[140]; -ccx qubits[43], qubits[138], qubits[139]; -ccx qubits[42], qubits[137], qubits[138]; -ccx qubits[41], qubits[136], qubits[137]; -ccx qubits[40], qubits[135], qubits[136]; -ccx qubits[39], qubits[134], qubits[135]; -ccx qubits[38], qubits[133], qubits[134]; -ccx qubits[37], qubits[132], qubits[133]; -ccx qubits[36], qubits[131], qubits[132]; -ccx qubits[35], qubits[130], qubits[131]; -ccx qubits[34], qubits[129], qubits[130]; -ccx qubits[33], qubits[128], qubits[129]; -ccx qubits[32], qubits[127], qubits[128]; -ccx qubits[31], qubits[126], qubits[127]; -ccx qubits[30], qubits[125], qubits[126]; -ccx qubits[29], qubits[124], qubits[125]; -ccx qubits[28], qubits[123], qubits[124]; -ccx qubits[27], qubits[122], qubits[123]; -ccx qubits[26], qubits[121], qubits[122]; -ccx qubits[25], qubits[120], qubits[121]; -ccx qubits[24], qubits[119], qubits[120]; -ccx qubits[23], qubits[118], qubits[119]; -ccx qubits[22], qubits[117], qubits[118]; -ccx qubits[21], qubits[116], qubits[117]; -ccx qubits[20], qubits[115], qubits[116]; -ccx qubits[19], qubits[114], qubits[115]; -ccx qubits[18], qubits[113], qubits[114]; -ccx qubits[17], qubits[112], qubits[113]; -ccx qubits[16], qubits[111], qubits[112]; -ccx qubits[15], qubits[110], qubits[111]; -ccx qubits[14], qubits[109], qubits[110]; -ccx qubits[13], qubits[108], qubits[109]; -ccx qubits[12], qubits[107], qubits[108]; -ccx qubits[11], qubits[106], qubits[107]; -ccx qubits[10], qubits[105], qubits[106]; -ccx qubits[9], qubits[104], qubits[105]; -ccx qubits[8], qubits[103], qubits[104]; -ccx qubits[7], qubits[102], qubits[103]; -ccx qubits[6], qubits[101], qubits[102]; -ccx qubits[5], qubits[100], qubits[101]; -ccx qubits[4], qubits[99], qubits[100]; -ccx qubits[3], qubits[98], qubits[99]; -ccx qubits[2], qubits[97], qubits[98]; -ccx qubits[0], qubits[1], qubits[97]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +cz qubits[188], qubits[189]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -z qubits[96]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +z qubits[190]; diff --git a/benchmarks/all/OEGrover/96/post.hsl b/benchmarks/all/OEGrover/96/post.hsl index feae4279c..1c970506e 100644 --- a/benchmarks/all/OEGrover/96/post.hsl +++ b/benchmarks/all/OEGrover/96/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 47 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/96/post.lsta b/benchmarks/all/OEGrover/96/post.lsta deleted file mode 100644 index 605c5b6ad..000000000 --- a/benchmarks/all/OEGrover/96/post.lsta +++ /dev/null @@ -1,487 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 194) -> 191 -[97,1](193, 195) -> 192 -[98,1](196, 196) -> 193 -[98,1](197, 196) -> 194 -[98,1](198, 196) -> 195 -[99,1](199, 199) -> 196 -[99,1](200, 199) -> 197 -[99,1](201, 199) -> 198 -[100,1](202, 202) -> 199 -[100,1](203, 202) -> 200 -[100,1](204, 202) -> 201 -[101,1](205, 205) -> 202 -[101,1](206, 205) -> 203 -[101,1](207, 205) -> 204 -[102,1](208, 208) -> 205 -[102,1](209, 208) -> 206 -[102,1](210, 208) -> 207 -[103,1](211, 211) -> 208 -[103,1](212, 211) -> 209 -[103,1](213, 211) -> 210 -[104,1](214, 214) -> 211 -[104,1](215, 214) -> 212 -[104,1](216, 214) -> 213 -[105,1](217, 217) -> 214 -[105,1](218, 217) -> 215 -[105,1](219, 217) -> 216 -[106,1](220, 220) -> 217 -[106,1](221, 220) -> 218 -[106,1](222, 220) -> 219 -[107,1](223, 223) -> 220 -[107,1](224, 223) -> 221 -[107,1](225, 223) -> 222 -[108,1](226, 226) -> 223 -[108,1](227, 226) -> 224 -[108,1](228, 226) -> 225 -[109,1](229, 229) -> 226 -[109,1](230, 229) -> 227 -[109,1](231, 229) -> 228 -[110,1](232, 232) -> 229 -[110,1](233, 232) -> 230 -[110,1](234, 232) -> 231 -[111,1](235, 235) -> 232 -[111,1](236, 235) -> 233 -[111,1](237, 235) -> 234 -[112,1](238, 238) -> 235 -[112,1](239, 238) -> 236 -[112,1](240, 238) -> 237 -[113,1](241, 241) -> 238 -[113,1](242, 241) -> 239 -[113,1](243, 241) -> 240 -[114,1](244, 244) -> 241 -[114,1](245, 244) -> 242 -[114,1](246, 244) -> 243 -[115,1](247, 247) -> 244 -[115,1](248, 247) -> 245 -[115,1](249, 247) -> 246 -[116,1](250, 250) -> 247 -[116,1](251, 250) -> 248 -[116,1](252, 250) -> 249 -[117,1](253, 253) -> 250 -[117,1](254, 253) -> 251 -[117,1](255, 253) -> 252 -[118,1](256, 256) -> 253 -[118,1](257, 256) -> 254 -[118,1](258, 256) -> 255 -[119,1](259, 259) -> 256 -[119,1](260, 259) -> 257 -[119,1](261, 259) -> 258 -[120,1](262, 262) -> 259 -[120,1](263, 262) -> 260 -[120,1](264, 262) -> 261 -[121,1](265, 265) -> 262 -[121,1](266, 265) -> 263 -[121,1](267, 265) -> 264 -[122,1](268, 268) -> 265 -[122,1](269, 268) -> 266 -[122,1](270, 268) -> 267 -[123,1](271, 271) -> 268 -[123,1](272, 271) -> 269 -[123,1](273, 271) -> 270 -[124,1](274, 274) -> 271 -[124,1](275, 274) -> 272 -[124,1](276, 274) -> 273 -[125,1](277, 277) -> 274 -[125,1](278, 277) -> 275 -[125,1](279, 277) -> 276 -[126,1](280, 280) -> 277 -[126,1](281, 280) -> 278 -[126,1](282, 280) -> 279 -[127,1](283, 283) -> 280 -[127,1](284, 283) -> 281 -[127,1](285, 283) -> 282 -[128,1](286, 286) -> 283 -[128,1](287, 286) -> 284 -[128,1](288, 286) -> 285 -[129,1](289, 289) -> 286 -[129,1](290, 289) -> 287 -[129,1](291, 289) -> 288 -[130,1](292, 292) -> 289 -[130,1](293, 292) -> 290 -[130,1](294, 292) -> 291 -[131,1](295, 295) -> 292 -[131,1](296, 295) -> 293 -[131,1](297, 295) -> 294 -[132,1](298, 298) -> 295 -[132,1](299, 298) -> 296 -[132,1](300, 298) -> 297 -[133,1](301, 301) -> 298 -[133,1](302, 301) -> 299 -[133,1](303, 301) -> 300 -[134,1](304, 304) -> 301 -[134,1](305, 304) -> 302 -[134,1](306, 304) -> 303 -[135,1](307, 307) -> 304 -[135,1](308, 307) -> 305 -[135,1](309, 307) -> 306 -[136,1](310, 310) -> 307 -[136,1](311, 310) -> 308 -[136,1](312, 310) -> 309 -[137,1](313, 313) -> 310 -[137,1](314, 313) -> 311 -[137,1](315, 313) -> 312 -[138,1](316, 316) -> 313 -[138,1](317, 316) -> 314 -[138,1](318, 316) -> 315 -[139,1](319, 319) -> 316 -[139,1](320, 319) -> 317 -[139,1](321, 319) -> 318 -[140,1](322, 322) -> 319 -[140,1](323, 322) -> 320 -[140,1](324, 322) -> 321 -[141,1](325, 325) -> 322 -[141,1](326, 325) -> 323 -[141,1](327, 325) -> 324 -[142,1](328, 328) -> 325 -[142,1](329, 328) -> 326 -[142,1](330, 328) -> 327 -[143,1](331, 331) -> 328 -[143,1](332, 331) -> 329 -[143,1](333, 331) -> 330 -[144,1](334, 334) -> 331 -[144,1](335, 334) -> 332 -[144,1](336, 334) -> 333 -[145,1](337, 337) -> 334 -[145,1](338, 337) -> 335 -[145,1](339, 337) -> 336 -[146,1](340, 340) -> 337 -[146,1](341, 340) -> 338 -[146,1](342, 340) -> 339 -[147,1](343, 343) -> 340 -[147,1](344, 343) -> 341 -[147,1](345, 343) -> 342 -[148,1](346, 346) -> 343 -[148,1](347, 346) -> 344 -[148,1](348, 346) -> 345 -[149,1](349, 349) -> 346 -[149,1](350, 349) -> 347 -[149,1](351, 349) -> 348 -[150,1](352, 352) -> 349 -[150,1](353, 352) -> 350 -[150,1](354, 352) -> 351 -[151,1](355, 355) -> 352 -[151,1](356, 355) -> 353 -[151,1](357, 355) -> 354 -[152,1](358, 358) -> 355 -[152,1](359, 358) -> 356 -[152,1](360, 358) -> 357 -[153,1](361, 361) -> 358 -[153,1](362, 361) -> 359 -[153,1](363, 361) -> 360 -[154,1](364, 364) -> 361 -[154,1](365, 364) -> 362 -[154,1](366, 364) -> 363 -[155,1](367, 367) -> 364 -[155,1](368, 367) -> 365 -[155,1](369, 367) -> 366 -[156,1](370, 370) -> 367 -[156,1](371, 370) -> 368 -[156,1](372, 370) -> 369 -[157,1](373, 373) -> 370 -[157,1](374, 373) -> 371 -[157,1](375, 373) -> 372 -[158,1](376, 376) -> 373 -[158,1](377, 376) -> 374 -[158,1](378, 376) -> 375 -[159,1](379, 379) -> 376 -[159,1](380, 379) -> 377 -[159,1](381, 379) -> 378 -[160,1](382, 382) -> 379 -[160,1](383, 382) -> 380 -[160,1](384, 382) -> 381 -[161,1](385, 385) -> 382 -[161,1](386, 385) -> 383 -[161,1](387, 385) -> 384 -[162,1](388, 388) -> 385 -[162,1](389, 388) -> 386 -[162,1](390, 388) -> 387 -[163,1](391, 391) -> 388 -[163,1](392, 391) -> 389 -[163,1](393, 391) -> 390 -[164,1](394, 394) -> 391 -[164,1](395, 394) -> 392 -[164,1](396, 394) -> 393 -[165,1](397, 397) -> 394 -[165,1](398, 397) -> 395 -[165,1](399, 397) -> 396 -[166,1](400, 400) -> 397 -[166,1](401, 400) -> 398 -[166,1](402, 400) -> 399 -[167,1](403, 403) -> 400 -[167,1](404, 403) -> 401 -[167,1](405, 403) -> 402 -[168,1](406, 406) -> 403 -[168,1](407, 406) -> 404 -[168,1](408, 406) -> 405 -[169,1](409, 409) -> 406 -[169,1](410, 409) -> 407 -[169,1](411, 409) -> 408 -[170,1](412, 412) -> 409 -[170,1](413, 412) -> 410 -[170,1](414, 412) -> 411 -[171,1](415, 415) -> 412 -[171,1](416, 415) -> 413 -[171,1](417, 415) -> 414 -[172,1](418, 418) -> 415 -[172,1](419, 418) -> 416 -[172,1](420, 418) -> 417 -[173,1](421, 421) -> 418 -[173,1](422, 421) -> 419 -[173,1](423, 421) -> 420 -[174,1](424, 424) -> 421 -[174,1](425, 424) -> 422 -[174,1](426, 424) -> 423 -[175,1](427, 427) -> 424 -[175,1](428, 427) -> 425 -[175,1](429, 427) -> 426 -[176,1](430, 430) -> 427 -[176,1](431, 430) -> 428 -[176,1](432, 430) -> 429 -[177,1](433, 433) -> 430 -[177,1](434, 433) -> 431 -[177,1](435, 433) -> 432 -[178,1](436, 436) -> 433 -[178,1](437, 436) -> 434 -[178,1](438, 436) -> 435 -[179,1](439, 439) -> 436 -[179,1](440, 439) -> 437 -[179,1](441, 439) -> 438 -[180,1](442, 442) -> 439 -[180,1](443, 442) -> 440 -[180,1](444, 442) -> 441 -[181,1](445, 445) -> 442 -[181,1](446, 445) -> 443 -[181,1](447, 445) -> 444 -[182,1](448, 448) -> 445 -[182,1](449, 448) -> 446 -[182,1](450, 448) -> 447 -[183,1](451, 451) -> 448 -[183,1](452, 451) -> 449 -[183,1](453, 451) -> 450 -[184,1](454, 454) -> 451 -[184,1](455, 454) -> 452 -[184,1](456, 454) -> 453 -[185,1](457, 457) -> 454 -[185,1](458, 457) -> 455 -[185,1](459, 457) -> 456 -[186,1](460, 460) -> 457 -[186,1](461, 460) -> 458 -[186,1](462, 460) -> 459 -[187,1](463, 463) -> 460 -[187,1](464, 463) -> 461 -[187,1](465, 463) -> 462 -[188,1](466, 466) -> 463 -[188,1](467, 466) -> 464 -[188,1](468, 466) -> 465 -[189,1](469, 469) -> 466 -[189,1](470, 469) -> 467 -[189,1](471, 469) -> 468 -[190,1](472, 472) -> 469 -[190,1](473, 472) -> 470 -[190,1](474, 472) -> 471 -[191,1](475, 475) -> 472 -[191,1](476, 475) -> 473 -[191,1](477, 475) -> 474 -[192,1](478, 478) -> 475 -[192,1](479, 478) -> 476 -[192,1](480, 478) -> 477 -[p1,1] -> 478 -[p2,1] -> 479 -[p3,1] -> 480 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/96/pre.hsl b/benchmarks/all/OEGrover/96/pre.hsl index fc860b801..0a8f771db 100644 --- a/benchmarks/all/OEGrover/96/pre.hsl +++ b/benchmarks/all/OEGrover/96/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 47 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 79228162514264337593543950335 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/96/pre.lsta b/benchmarks/all/OEGrover/96/pre.lsta deleted file mode 100644 index da86f173e..000000000 --- a/benchmarks/all/OEGrover/96/pre.lsta +++ /dev/null @@ -1,491 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 194) -> 191 -[97,1](193, 195) -> 192 -[98,1](196, 196) -> 193 -[98,1](197, 196) -> 194 -[98,1](198, 196) -> 195 -[99,1](199, 199) -> 196 -[99,1](200, 199) -> 197 -[99,1](201, 199) -> 198 -[100,1](202, 202) -> 199 -[100,1](203, 202) -> 200 -[100,1](204, 202) -> 201 -[101,1](205, 205) -> 202 -[101,1](206, 205) -> 203 -[101,1](207, 205) -> 204 -[102,1](208, 208) -> 205 -[102,1](209, 208) -> 206 -[102,1](210, 208) -> 207 -[103,1](211, 211) -> 208 -[103,1](212, 211) -> 209 -[103,1](213, 211) -> 210 -[104,1](214, 214) -> 211 -[104,1](215, 214) -> 212 -[104,1](216, 214) -> 213 -[105,1](217, 217) -> 214 -[105,1](218, 217) -> 215 -[105,1](219, 217) -> 216 -[106,1](220, 220) -> 217 -[106,1](221, 220) -> 218 -[106,1](222, 220) -> 219 -[107,1](223, 223) -> 220 -[107,1](224, 223) -> 221 -[107,1](225, 223) -> 222 -[108,1](226, 226) -> 223 -[108,1](227, 226) -> 224 -[108,1](228, 226) -> 225 -[109,1](229, 229) -> 226 -[109,1](230, 229) -> 227 -[109,1](231, 229) -> 228 -[110,1](232, 232) -> 229 -[110,1](233, 232) -> 230 -[110,1](234, 232) -> 231 -[111,1](235, 235) -> 232 -[111,1](236, 235) -> 233 -[111,1](237, 235) -> 234 -[112,1](238, 238) -> 235 -[112,1](239, 238) -> 236 -[112,1](240, 238) -> 237 -[113,1](241, 241) -> 238 -[113,1](242, 241) -> 239 -[113,1](243, 241) -> 240 -[114,1](244, 244) -> 241 -[114,1](245, 244) -> 242 -[114,1](246, 244) -> 243 -[115,1](247, 247) -> 244 -[115,1](248, 247) -> 245 -[115,1](249, 247) -> 246 -[116,1](250, 250) -> 247 -[116,1](251, 250) -> 248 -[116,1](252, 250) -> 249 -[117,1](253, 253) -> 250 -[117,1](254, 253) -> 251 -[117,1](255, 253) -> 252 -[118,1](256, 256) -> 253 -[118,1](257, 256) -> 254 -[118,1](258, 256) -> 255 -[119,1](259, 259) -> 256 -[119,1](260, 259) -> 257 -[119,1](261, 259) -> 258 -[120,1](262, 262) -> 259 -[120,1](263, 262) -> 260 -[120,1](264, 262) -> 261 -[121,1](265, 265) -> 262 -[121,1](266, 265) -> 263 -[121,1](267, 265) -> 264 -[122,1](268, 268) -> 265 -[122,1](269, 268) -> 266 -[122,1](270, 268) -> 267 -[123,1](271, 271) -> 268 -[123,1](272, 271) -> 269 -[123,1](273, 271) -> 270 -[124,1](274, 274) -> 271 -[124,1](275, 274) -> 272 -[124,1](276, 274) -> 273 -[125,1](277, 277) -> 274 -[125,1](278, 277) -> 275 -[125,1](279, 277) -> 276 -[126,1](280, 280) -> 277 -[126,1](281, 280) -> 278 -[126,1](282, 280) -> 279 -[127,1](283, 283) -> 280 -[127,1](284, 283) -> 281 -[127,1](285, 283) -> 282 -[128,1](286, 286) -> 283 -[128,1](287, 286) -> 284 -[128,1](288, 286) -> 285 -[129,1](289, 289) -> 286 -[129,1](290, 289) -> 287 -[129,1](291, 289) -> 288 -[130,1](292, 292) -> 289 -[130,1](293, 292) -> 290 -[130,1](294, 292) -> 291 -[131,1](295, 295) -> 292 -[131,1](296, 295) -> 293 -[131,1](297, 295) -> 294 -[132,1](298, 298) -> 295 -[132,1](299, 298) -> 296 -[132,1](300, 298) -> 297 -[133,1](301, 301) -> 298 -[133,1](302, 301) -> 299 -[133,1](303, 301) -> 300 -[134,1](304, 304) -> 301 -[134,1](305, 304) -> 302 -[134,1](306, 304) -> 303 -[135,1](307, 307) -> 304 -[135,1](308, 307) -> 305 -[135,1](309, 307) -> 306 -[136,1](310, 310) -> 307 -[136,1](311, 310) -> 308 -[136,1](312, 310) -> 309 -[137,1](313, 313) -> 310 -[137,1](314, 313) -> 311 -[137,1](315, 313) -> 312 -[138,1](316, 316) -> 313 -[138,1](317, 316) -> 314 -[138,1](318, 316) -> 315 -[139,1](319, 319) -> 316 -[139,1](320, 319) -> 317 -[139,1](321, 319) -> 318 -[140,1](322, 322) -> 319 -[140,1](323, 322) -> 320 -[140,1](324, 322) -> 321 -[141,1](325, 325) -> 322 -[141,1](326, 325) -> 323 -[141,1](327, 325) -> 324 -[142,1](328, 328) -> 325 -[142,1](329, 328) -> 326 -[142,1](330, 328) -> 327 -[143,1](331, 331) -> 328 -[143,1](332, 331) -> 329 -[143,1](333, 331) -> 330 -[144,1](334, 334) -> 331 -[144,1](335, 334) -> 332 -[144,1](336, 334) -> 333 -[145,1](337, 337) -> 334 -[145,1](338, 337) -> 335 -[145,1](339, 337) -> 336 -[146,1](340, 340) -> 337 -[146,1](341, 340) -> 338 -[146,1](342, 340) -> 339 -[147,1](343, 343) -> 340 -[147,1](344, 343) -> 341 -[147,1](345, 343) -> 342 -[148,1](346, 346) -> 343 -[148,1](347, 346) -> 344 -[148,1](348, 346) -> 345 -[149,1](349, 349) -> 346 -[149,1](350, 349) -> 347 -[149,1](351, 349) -> 348 -[150,1](352, 352) -> 349 -[150,1](353, 352) -> 350 -[150,1](354, 352) -> 351 -[151,1](355, 355) -> 352 -[151,1](356, 355) -> 353 -[151,1](357, 355) -> 354 -[152,1](358, 358) -> 355 -[152,1](359, 358) -> 356 -[152,1](360, 358) -> 357 -[153,1](361, 361) -> 358 -[153,1](362, 361) -> 359 -[153,1](363, 361) -> 360 -[154,1](364, 364) -> 361 -[154,1](365, 364) -> 362 -[154,1](366, 364) -> 363 -[155,1](367, 367) -> 364 -[155,1](368, 367) -> 365 -[155,1](369, 367) -> 366 -[156,1](370, 370) -> 367 -[156,1](371, 370) -> 368 -[156,1](372, 370) -> 369 -[157,1](373, 373) -> 370 -[157,1](374, 373) -> 371 -[157,1](375, 373) -> 372 -[158,1](376, 376) -> 373 -[158,1](377, 376) -> 374 -[158,1](378, 376) -> 375 -[159,1](379, 379) -> 376 -[159,1](380, 379) -> 377 -[159,1](381, 379) -> 378 -[160,1](382, 382) -> 379 -[160,1](383, 382) -> 380 -[160,1](384, 382) -> 381 -[161,1](385, 385) -> 382 -[161,1](386, 385) -> 383 -[161,1](387, 385) -> 384 -[162,1](388, 388) -> 385 -[162,1](389, 388) -> 386 -[162,1](390, 388) -> 387 -[163,1](391, 391) -> 388 -[163,1](392, 391) -> 389 -[163,1](393, 391) -> 390 -[164,1](394, 394) -> 391 -[164,1](395, 394) -> 392 -[164,1](396, 394) -> 393 -[165,1](397, 397) -> 394 -[165,1](398, 397) -> 395 -[165,1](399, 397) -> 396 -[166,1](400, 400) -> 397 -[166,1](401, 400) -> 398 -[166,1](402, 400) -> 399 -[167,1](403, 403) -> 400 -[167,1](404, 403) -> 401 -[167,1](405, 403) -> 402 -[168,1](406, 406) -> 403 -[168,1](407, 406) -> 404 -[168,1](408, 406) -> 405 -[169,1](409, 409) -> 406 -[169,1](410, 409) -> 407 -[169,1](411, 409) -> 408 -[170,1](412, 412) -> 409 -[170,1](413, 412) -> 410 -[170,1](414, 412) -> 411 -[171,1](415, 415) -> 412 -[171,1](416, 415) -> 413 -[171,1](417, 415) -> 414 -[172,1](418, 418) -> 415 -[172,1](419, 418) -> 416 -[172,1](420, 418) -> 417 -[173,1](421, 421) -> 418 -[173,1](422, 421) -> 419 -[173,1](423, 421) -> 420 -[174,1](424, 424) -> 421 -[174,1](425, 424) -> 422 -[174,1](426, 424) -> 423 -[175,1](427, 427) -> 424 -[175,1](428, 427) -> 425 -[175,1](429, 427) -> 426 -[176,1](430, 430) -> 427 -[176,1](431, 430) -> 428 -[176,1](432, 430) -> 429 -[177,1](433, 433) -> 430 -[177,1](434, 433) -> 431 -[177,1](435, 433) -> 432 -[178,1](436, 436) -> 433 -[178,1](437, 436) -> 434 -[178,1](438, 436) -> 435 -[179,1](439, 439) -> 436 -[179,1](440, 439) -> 437 -[179,1](441, 439) -> 438 -[180,1](442, 442) -> 439 -[180,1](443, 442) -> 440 -[180,1](444, 442) -> 441 -[181,1](445, 445) -> 442 -[181,1](446, 445) -> 443 -[181,1](447, 445) -> 444 -[182,1](448, 448) -> 445 -[182,1](449, 448) -> 446 -[182,1](450, 448) -> 447 -[183,1](451, 451) -> 448 -[183,1](452, 451) -> 449 -[183,1](453, 451) -> 450 -[184,1](454, 454) -> 451 -[184,1](455, 454) -> 452 -[184,1](456, 454) -> 453 -[185,1](457, 457) -> 454 -[185,1](458, 457) -> 455 -[185,1](459, 457) -> 456 -[186,1](460, 460) -> 457 -[186,1](461, 460) -> 458 -[186,1](462, 460) -> 459 -[187,1](463, 463) -> 460 -[187,1](464, 463) -> 461 -[187,1](465, 463) -> 462 -[188,1](466, 466) -> 463 -[188,1](467, 466) -> 464 -[188,1](468, 466) -> 465 -[189,1](469, 469) -> 466 -[189,1](470, 469) -> 467 -[189,1](471, 469) -> 468 -[190,1](472, 472) -> 469 -[190,1](473, 472) -> 470 -[190,1](474, 472) -> 471 -[191,1](475, 475) -> 472 -[191,1](476, 475) -> 473 -[191,1](477, 475) -> 474 -[192,1](478, 478) -> 475 -[192,1](479, 478) -> 476 -[192,1](480, 478) -> 477 -[c0,1] -> 478 -[a,1] -> 479 -[b,1] -> 480 -Constraints -79228162514264337593543950335 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/97/circuit.qasm b/benchmarks/all/OEGrover/97/circuit.qasm index 828342543..8ec833c74 100644 --- a/benchmarks/all/OEGrover/97/circuit.qasm +++ b/benchmarks/all/OEGrover/97/circuit.qasm @@ -1,247 +1,247 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[194]; +qreg qubits[193]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -x qubits[92]; -x qubits[94]; -x qubits[96]; -ccx qubits[0], qubits[1], qubits[98]; -ccx qubits[2], qubits[98], qubits[99]; -ccx qubits[3], qubits[99], qubits[100]; -ccx qubits[4], qubits[100], qubits[101]; -ccx qubits[5], qubits[101], qubits[102]; -ccx qubits[6], qubits[102], qubits[103]; -ccx qubits[7], qubits[103], qubits[104]; -ccx qubits[8], qubits[104], qubits[105]; -ccx qubits[9], qubits[105], qubits[106]; -ccx qubits[10], qubits[106], qubits[107]; -ccx qubits[11], qubits[107], qubits[108]; -ccx qubits[12], qubits[108], qubits[109]; -ccx qubits[13], qubits[109], qubits[110]; -ccx qubits[14], qubits[110], qubits[111]; -ccx qubits[15], qubits[111], qubits[112]; -ccx qubits[16], qubits[112], qubits[113]; -ccx qubits[17], qubits[113], qubits[114]; -ccx qubits[18], qubits[114], qubits[115]; -ccx qubits[19], qubits[115], qubits[116]; -ccx qubits[20], qubits[116], qubits[117]; -ccx qubits[21], qubits[117], qubits[118]; -ccx qubits[22], qubits[118], qubits[119]; -ccx qubits[23], qubits[119], qubits[120]; -ccx qubits[24], qubits[120], qubits[121]; -ccx qubits[25], qubits[121], qubits[122]; -ccx qubits[26], qubits[122], qubits[123]; -ccx qubits[27], qubits[123], qubits[124]; -ccx qubits[28], qubits[124], qubits[125]; -ccx qubits[29], qubits[125], qubits[126]; -ccx qubits[30], qubits[126], qubits[127]; -ccx qubits[31], qubits[127], qubits[128]; -ccx qubits[32], qubits[128], qubits[129]; -ccx qubits[33], qubits[129], qubits[130]; -ccx qubits[34], qubits[130], qubits[131]; -ccx qubits[35], qubits[131], qubits[132]; -ccx qubits[36], qubits[132], qubits[133]; -ccx qubits[37], qubits[133], qubits[134]; -ccx qubits[38], qubits[134], qubits[135]; -ccx qubits[39], qubits[135], qubits[136]; -ccx qubits[40], qubits[136], qubits[137]; -ccx qubits[41], qubits[137], qubits[138]; -ccx qubits[42], qubits[138], qubits[139]; -ccx qubits[43], qubits[139], qubits[140]; -ccx qubits[44], qubits[140], qubits[141]; -ccx qubits[45], qubits[141], qubits[142]; -ccx qubits[46], qubits[142], qubits[143]; -ccx qubits[47], qubits[143], qubits[144]; -ccx qubits[48], qubits[144], qubits[145]; -ccx qubits[49], qubits[145], qubits[146]; -ccx qubits[50], qubits[146], qubits[147]; -ccx qubits[51], qubits[147], qubits[148]; -ccx qubits[52], qubits[148], qubits[149]; -ccx qubits[53], qubits[149], qubits[150]; -ccx qubits[54], qubits[150], qubits[151]; -ccx qubits[55], qubits[151], qubits[152]; -ccx qubits[56], qubits[152], qubits[153]; -ccx qubits[57], qubits[153], qubits[154]; -ccx qubits[58], qubits[154], qubits[155]; -ccx qubits[59], qubits[155], qubits[156]; -ccx qubits[60], qubits[156], qubits[157]; -ccx qubits[61], qubits[157], qubits[158]; -ccx qubits[62], qubits[158], qubits[159]; -ccx qubits[63], qubits[159], qubits[160]; -ccx qubits[64], qubits[160], qubits[161]; -ccx qubits[65], qubits[161], qubits[162]; -ccx qubits[66], qubits[162], qubits[163]; -ccx qubits[67], qubits[163], qubits[164]; -ccx qubits[68], qubits[164], qubits[165]; -ccx qubits[69], qubits[165], qubits[166]; -ccx qubits[70], qubits[166], qubits[167]; -ccx qubits[71], qubits[167], qubits[168]; -ccx qubits[72], qubits[168], qubits[169]; -ccx qubits[73], qubits[169], qubits[170]; -ccx qubits[74], qubits[170], qubits[171]; -ccx qubits[75], qubits[171], qubits[172]; -ccx qubits[76], qubits[172], qubits[173]; -ccx qubits[77], qubits[173], qubits[174]; -ccx qubits[78], qubits[174], qubits[175]; -ccx qubits[79], qubits[175], qubits[176]; -ccx qubits[80], qubits[176], qubits[177]; -ccx qubits[81], qubits[177], qubits[178]; -ccx qubits[82], qubits[178], qubits[179]; -ccx qubits[83], qubits[179], qubits[180]; -ccx qubits[84], qubits[180], qubits[181]; -ccx qubits[85], qubits[181], qubits[182]; -ccx qubits[86], qubits[182], qubits[183]; -ccx qubits[87], qubits[183], qubits[184]; -ccx qubits[88], qubits[184], qubits[185]; -ccx qubits[89], qubits[185], qubits[186]; -ccx qubits[90], qubits[186], qubits[187]; -ccx qubits[91], qubits[187], qubits[188]; -ccx qubits[92], qubits[188], qubits[189]; -ccx qubits[93], qubits[189], qubits[190]; -ccx qubits[94], qubits[190], qubits[191]; -ccx qubits[95], qubits[191], qubits[192]; -cz qubits[192], qubits[96]; -ccx qubits[95], qubits[191], qubits[192]; -ccx qubits[94], qubits[190], qubits[191]; -ccx qubits[93], qubits[189], qubits[190]; -ccx qubits[92], qubits[188], qubits[189]; -ccx qubits[91], qubits[187], qubits[188]; -ccx qubits[90], qubits[186], qubits[187]; -ccx qubits[89], qubits[185], qubits[186]; -ccx qubits[88], qubits[184], qubits[185]; -ccx qubits[87], qubits[183], qubits[184]; -ccx qubits[86], qubits[182], qubits[183]; -ccx qubits[85], qubits[181], qubits[182]; -ccx qubits[84], qubits[180], qubits[181]; -ccx qubits[83], qubits[179], qubits[180]; -ccx qubits[82], qubits[178], qubits[179]; -ccx qubits[81], qubits[177], qubits[178]; -ccx qubits[80], qubits[176], qubits[177]; -ccx qubits[79], qubits[175], qubits[176]; -ccx qubits[78], qubits[174], qubits[175]; -ccx qubits[77], qubits[173], qubits[174]; -ccx qubits[76], qubits[172], qubits[173]; -ccx qubits[75], qubits[171], qubits[172]; -ccx qubits[74], qubits[170], qubits[171]; -ccx qubits[73], qubits[169], qubits[170]; -ccx qubits[72], qubits[168], qubits[169]; -ccx qubits[71], qubits[167], qubits[168]; -ccx qubits[70], qubits[166], qubits[167]; -ccx qubits[69], qubits[165], qubits[166]; -ccx qubits[68], qubits[164], qubits[165]; -ccx qubits[67], qubits[163], qubits[164]; -ccx qubits[66], qubits[162], qubits[163]; -ccx qubits[65], qubits[161], qubits[162]; -ccx qubits[64], qubits[160], qubits[161]; -ccx qubits[63], qubits[159], qubits[160]; -ccx qubits[62], qubits[158], qubits[159]; -ccx qubits[61], qubits[157], qubits[158]; -ccx qubits[60], qubits[156], qubits[157]; -ccx qubits[59], qubits[155], qubits[156]; -ccx qubits[58], qubits[154], qubits[155]; -ccx qubits[57], qubits[153], qubits[154]; -ccx qubits[56], qubits[152], qubits[153]; -ccx qubits[55], qubits[151], qubits[152]; -ccx qubits[54], qubits[150], qubits[151]; -ccx qubits[53], qubits[149], qubits[150]; -ccx qubits[52], qubits[148], qubits[149]; -ccx qubits[51], qubits[147], qubits[148]; -ccx qubits[50], qubits[146], qubits[147]; -ccx qubits[49], qubits[145], qubits[146]; -ccx qubits[48], qubits[144], qubits[145]; -ccx qubits[47], qubits[143], qubits[144]; -ccx qubits[46], qubits[142], qubits[143]; -ccx qubits[45], qubits[141], qubits[142]; -ccx qubits[44], qubits[140], qubits[141]; -ccx qubits[43], qubits[139], qubits[140]; -ccx qubits[42], qubits[138], qubits[139]; -ccx qubits[41], qubits[137], qubits[138]; -ccx qubits[40], qubits[136], qubits[137]; -ccx qubits[39], qubits[135], qubits[136]; -ccx qubits[38], qubits[134], qubits[135]; -ccx qubits[37], qubits[133], qubits[134]; -ccx qubits[36], qubits[132], qubits[133]; -ccx qubits[35], qubits[131], qubits[132]; -ccx qubits[34], qubits[130], qubits[131]; -ccx qubits[33], qubits[129], qubits[130]; -ccx qubits[32], qubits[128], qubits[129]; -ccx qubits[31], qubits[127], qubits[128]; -ccx qubits[30], qubits[126], qubits[127]; -ccx qubits[29], qubits[125], qubits[126]; -ccx qubits[28], qubits[124], qubits[125]; -ccx qubits[27], qubits[123], qubits[124]; -ccx qubits[26], qubits[122], qubits[123]; -ccx qubits[25], qubits[121], qubits[122]; -ccx qubits[24], qubits[120], qubits[121]; -ccx qubits[23], qubits[119], qubits[120]; -ccx qubits[22], qubits[118], qubits[119]; -ccx qubits[21], qubits[117], qubits[118]; -ccx qubits[20], qubits[116], qubits[117]; -ccx qubits[19], qubits[115], qubits[116]; -ccx qubits[18], qubits[114], qubits[115]; -ccx qubits[17], qubits[113], qubits[114]; -ccx qubits[16], qubits[112], qubits[113]; -ccx qubits[15], qubits[111], qubits[112]; -ccx qubits[14], qubits[110], qubits[111]; -ccx qubits[13], qubits[109], qubits[110]; -ccx qubits[12], qubits[108], qubits[109]; -ccx qubits[11], qubits[107], qubits[108]; -ccx qubits[10], qubits[106], qubits[107]; -ccx qubits[9], qubits[105], qubits[106]; -ccx qubits[8], qubits[104], qubits[105]; -ccx qubits[7], qubits[103], qubits[104]; -ccx qubits[6], qubits[102], qubits[103]; -ccx qubits[5], qubits[101], qubits[102]; -ccx qubits[4], qubits[100], qubits[101]; -ccx qubits[3], qubits[99], qubits[100]; -ccx qubits[2], qubits[98], qubits[99]; -ccx qubits[0], qubits[1], qubits[98]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +x qubits[183]; +x qubits[187]; +x qubits[191]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +cz qubits[190], qubits[191]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -293,581 +293,581 @@ x qubits[94]; x qubits[96]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; -ccx qubits[0], qubits[1], qubits[98]; -ccx qubits[2], qubits[98], qubits[99]; -ccx qubits[3], qubits[99], qubits[100]; -ccx qubits[4], qubits[100], qubits[101]; -ccx qubits[5], qubits[101], qubits[102]; -ccx qubits[6], qubits[102], qubits[103]; -ccx qubits[7], qubits[103], qubits[104]; -ccx qubits[8], qubits[104], qubits[105]; -ccx qubits[9], qubits[105], qubits[106]; -ccx qubits[10], qubits[106], qubits[107]; -ccx qubits[11], qubits[107], qubits[108]; -ccx qubits[12], qubits[108], qubits[109]; -ccx qubits[13], qubits[109], qubits[110]; -ccx qubits[14], qubits[110], qubits[111]; -ccx qubits[15], qubits[111], qubits[112]; -ccx qubits[16], qubits[112], qubits[113]; -ccx qubits[17], qubits[113], qubits[114]; -ccx qubits[18], qubits[114], qubits[115]; -ccx qubits[19], qubits[115], qubits[116]; -ccx qubits[20], qubits[116], qubits[117]; -ccx qubits[21], qubits[117], qubits[118]; -ccx qubits[22], qubits[118], qubits[119]; -ccx qubits[23], qubits[119], qubits[120]; -ccx qubits[24], qubits[120], qubits[121]; -ccx qubits[25], qubits[121], qubits[122]; -ccx qubits[26], qubits[122], qubits[123]; -ccx qubits[27], qubits[123], qubits[124]; -ccx qubits[28], qubits[124], qubits[125]; -ccx qubits[29], qubits[125], qubits[126]; -ccx qubits[30], qubits[126], qubits[127]; -ccx qubits[31], qubits[127], qubits[128]; -ccx qubits[32], qubits[128], qubits[129]; -ccx qubits[33], qubits[129], qubits[130]; -ccx qubits[34], qubits[130], qubits[131]; -ccx qubits[35], qubits[131], qubits[132]; -ccx qubits[36], qubits[132], qubits[133]; -ccx qubits[37], qubits[133], qubits[134]; -ccx qubits[38], qubits[134], qubits[135]; -ccx qubits[39], qubits[135], qubits[136]; -ccx qubits[40], qubits[136], qubits[137]; -ccx qubits[41], qubits[137], qubits[138]; -ccx qubits[42], qubits[138], qubits[139]; -ccx qubits[43], qubits[139], qubits[140]; -ccx qubits[44], qubits[140], qubits[141]; -ccx qubits[45], qubits[141], qubits[142]; -ccx qubits[46], qubits[142], qubits[143]; -ccx qubits[47], qubits[143], qubits[144]; -ccx qubits[48], qubits[144], qubits[145]; -ccx qubits[49], qubits[145], qubits[146]; -ccx qubits[50], qubits[146], qubits[147]; -ccx qubits[51], qubits[147], qubits[148]; -ccx qubits[52], qubits[148], qubits[149]; -ccx qubits[53], qubits[149], qubits[150]; -ccx qubits[54], qubits[150], qubits[151]; -ccx qubits[55], qubits[151], qubits[152]; -ccx qubits[56], qubits[152], qubits[153]; -ccx qubits[57], qubits[153], qubits[154]; -ccx qubits[58], qubits[154], qubits[155]; -ccx qubits[59], qubits[155], qubits[156]; -ccx qubits[60], qubits[156], qubits[157]; -ccx qubits[61], qubits[157], qubits[158]; -ccx qubits[62], qubits[158], qubits[159]; -ccx qubits[63], qubits[159], qubits[160]; -ccx qubits[64], qubits[160], qubits[161]; -ccx qubits[65], qubits[161], qubits[162]; -ccx qubits[66], qubits[162], qubits[163]; -ccx qubits[67], qubits[163], qubits[164]; -ccx qubits[68], qubits[164], qubits[165]; -ccx qubits[69], qubits[165], qubits[166]; -ccx qubits[70], qubits[166], qubits[167]; -ccx qubits[71], qubits[167], qubits[168]; -ccx qubits[72], qubits[168], qubits[169]; -ccx qubits[73], qubits[169], qubits[170]; -ccx qubits[74], qubits[170], qubits[171]; -ccx qubits[75], qubits[171], qubits[172]; -ccx qubits[76], qubits[172], qubits[173]; -ccx qubits[77], qubits[173], qubits[174]; -ccx qubits[78], qubits[174], qubits[175]; -ccx qubits[79], qubits[175], qubits[176]; -ccx qubits[80], qubits[176], qubits[177]; -ccx qubits[81], qubits[177], qubits[178]; -ccx qubits[82], qubits[178], qubits[179]; -ccx qubits[83], qubits[179], qubits[180]; -ccx qubits[84], qubits[180], qubits[181]; -ccx qubits[85], qubits[181], qubits[182]; -ccx qubits[86], qubits[182], qubits[183]; -ccx qubits[87], qubits[183], qubits[184]; -ccx qubits[88], qubits[184], qubits[185]; -ccx qubits[89], qubits[185], qubits[186]; -ccx qubits[90], qubits[186], qubits[187]; -ccx qubits[91], qubits[187], qubits[188]; -ccx qubits[92], qubits[188], qubits[189]; -ccx qubits[93], qubits[189], qubits[190]; -ccx qubits[94], qubits[190], qubits[191]; -ccx qubits[95], qubits[191], qubits[192]; -cz qubits[192], qubits[96]; -ccx qubits[95], qubits[191], qubits[192]; -ccx qubits[94], qubits[190], qubits[191]; -ccx qubits[93], qubits[189], qubits[190]; -ccx qubits[92], qubits[188], qubits[189]; -ccx qubits[91], qubits[187], qubits[188]; -ccx qubits[90], qubits[186], qubits[187]; -ccx qubits[89], qubits[185], qubits[186]; -ccx qubits[88], qubits[184], qubits[185]; -ccx qubits[87], qubits[183], qubits[184]; -ccx qubits[86], qubits[182], qubits[183]; -ccx qubits[85], qubits[181], qubits[182]; -ccx qubits[84], qubits[180], qubits[181]; -ccx qubits[83], qubits[179], qubits[180]; -ccx qubits[82], qubits[178], qubits[179]; -ccx qubits[81], qubits[177], qubits[178]; -ccx qubits[80], qubits[176], qubits[177]; -ccx qubits[79], qubits[175], qubits[176]; -ccx qubits[78], qubits[174], qubits[175]; -ccx qubits[77], qubits[173], qubits[174]; -ccx qubits[76], qubits[172], qubits[173]; -ccx qubits[75], qubits[171], qubits[172]; -ccx qubits[74], qubits[170], qubits[171]; -ccx qubits[73], qubits[169], qubits[170]; -ccx qubits[72], qubits[168], qubits[169]; -ccx qubits[71], qubits[167], qubits[168]; -ccx qubits[70], qubits[166], qubits[167]; -ccx qubits[69], qubits[165], qubits[166]; -ccx qubits[68], qubits[164], qubits[165]; -ccx qubits[67], qubits[163], qubits[164]; -ccx qubits[66], qubits[162], qubits[163]; -ccx qubits[65], qubits[161], qubits[162]; -ccx qubits[64], qubits[160], qubits[161]; -ccx qubits[63], qubits[159], qubits[160]; -ccx qubits[62], qubits[158], qubits[159]; -ccx qubits[61], qubits[157], qubits[158]; -ccx qubits[60], qubits[156], qubits[157]; -ccx qubits[59], qubits[155], qubits[156]; -ccx qubits[58], qubits[154], qubits[155]; -ccx qubits[57], qubits[153], qubits[154]; -ccx qubits[56], qubits[152], qubits[153]; -ccx qubits[55], qubits[151], qubits[152]; -ccx qubits[54], qubits[150], qubits[151]; -ccx qubits[53], qubits[149], qubits[150]; -ccx qubits[52], qubits[148], qubits[149]; -ccx qubits[51], qubits[147], qubits[148]; -ccx qubits[50], qubits[146], qubits[147]; -ccx qubits[49], qubits[145], qubits[146]; -ccx qubits[48], qubits[144], qubits[145]; -ccx qubits[47], qubits[143], qubits[144]; -ccx qubits[46], qubits[142], qubits[143]; -ccx qubits[45], qubits[141], qubits[142]; -ccx qubits[44], qubits[140], qubits[141]; -ccx qubits[43], qubits[139], qubits[140]; -ccx qubits[42], qubits[138], qubits[139]; -ccx qubits[41], qubits[137], qubits[138]; -ccx qubits[40], qubits[136], qubits[137]; -ccx qubits[39], qubits[135], qubits[136]; -ccx qubits[38], qubits[134], qubits[135]; -ccx qubits[37], qubits[133], qubits[134]; -ccx qubits[36], qubits[132], qubits[133]; -ccx qubits[35], qubits[131], qubits[132]; -ccx qubits[34], qubits[130], qubits[131]; -ccx qubits[33], qubits[129], qubits[130]; -ccx qubits[32], qubits[128], qubits[129]; -ccx qubits[31], qubits[127], qubits[128]; -ccx qubits[30], qubits[126], qubits[127]; -ccx qubits[29], qubits[125], qubits[126]; -ccx qubits[28], qubits[124], qubits[125]; -ccx qubits[27], qubits[123], qubits[124]; -ccx qubits[26], qubits[122], qubits[123]; -ccx qubits[25], qubits[121], qubits[122]; -ccx qubits[24], qubits[120], qubits[121]; -ccx qubits[23], qubits[119], qubits[120]; -ccx qubits[22], qubits[118], qubits[119]; -ccx qubits[21], qubits[117], qubits[118]; -ccx qubits[20], qubits[116], qubits[117]; -ccx qubits[19], qubits[115], qubits[116]; -ccx qubits[18], qubits[114], qubits[115]; -ccx qubits[17], qubits[113], qubits[114]; -ccx qubits[16], qubits[112], qubits[113]; -ccx qubits[15], qubits[111], qubits[112]; -ccx qubits[14], qubits[110], qubits[111]; -ccx qubits[13], qubits[109], qubits[110]; -ccx qubits[12], qubits[108], qubits[109]; -ccx qubits[11], qubits[107], qubits[108]; -ccx qubits[10], qubits[106], qubits[107]; -ccx qubits[9], qubits[105], qubits[106]; -ccx qubits[8], qubits[104], qubits[105]; -ccx qubits[7], qubits[103], qubits[104]; -ccx qubits[6], qubits[102], qubits[103]; -ccx qubits[5], qubits[101], qubits[102]; -ccx qubits[4], qubits[100], qubits[101]; -ccx qubits[3], qubits[99], qubits[100]; -ccx qubits[2], qubits[98], qubits[99]; -ccx qubits[0], qubits[1], qubits[98]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +cz qubits[190], qubits[191]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; +x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; -z qubits[97]; +h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +z qubits[192]; diff --git a/benchmarks/all/OEGrover/97/post.hsl b/benchmarks/all/OEGrover/97/post.hsl index 8a8614574..71035e966 100644 --- a/benchmarks/all/OEGrover/97/post.hsl +++ b/benchmarks/all/OEGrover/97/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 47 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/97/post.lsta b/benchmarks/all/OEGrover/97/post.lsta deleted file mode 100644 index 6c3d7c767..000000000 --- a/benchmarks/all/OEGrover/97/post.lsta +++ /dev/null @@ -1,492 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 196) -> 193 -[98,1](195, 197) -> 194 -[99,1](198, 198) -> 195 -[99,1](199, 198) -> 196 -[99,1](200, 198) -> 197 -[100,1](201, 201) -> 198 -[100,1](202, 201) -> 199 -[100,1](203, 201) -> 200 -[101,1](204, 204) -> 201 -[101,1](205, 204) -> 202 -[101,1](206, 204) -> 203 -[102,1](207, 207) -> 204 -[102,1](208, 207) -> 205 -[102,1](209, 207) -> 206 -[103,1](210, 210) -> 207 -[103,1](211, 210) -> 208 -[103,1](212, 210) -> 209 -[104,1](213, 213) -> 210 -[104,1](214, 213) -> 211 -[104,1](215, 213) -> 212 -[105,1](216, 216) -> 213 -[105,1](217, 216) -> 214 -[105,1](218, 216) -> 215 -[106,1](219, 219) -> 216 -[106,1](220, 219) -> 217 -[106,1](221, 219) -> 218 -[107,1](222, 222) -> 219 -[107,1](223, 222) -> 220 -[107,1](224, 222) -> 221 -[108,1](225, 225) -> 222 -[108,1](226, 225) -> 223 -[108,1](227, 225) -> 224 -[109,1](228, 228) -> 225 -[109,1](229, 228) -> 226 -[109,1](230, 228) -> 227 -[110,1](231, 231) -> 228 -[110,1](232, 231) -> 229 -[110,1](233, 231) -> 230 -[111,1](234, 234) -> 231 -[111,1](235, 234) -> 232 -[111,1](236, 234) -> 233 -[112,1](237, 237) -> 234 -[112,1](238, 237) -> 235 -[112,1](239, 237) -> 236 -[113,1](240, 240) -> 237 -[113,1](241, 240) -> 238 -[113,1](242, 240) -> 239 -[114,1](243, 243) -> 240 -[114,1](244, 243) -> 241 -[114,1](245, 243) -> 242 -[115,1](246, 246) -> 243 -[115,1](247, 246) -> 244 -[115,1](248, 246) -> 245 -[116,1](249, 249) -> 246 -[116,1](250, 249) -> 247 -[116,1](251, 249) -> 248 -[117,1](252, 252) -> 249 -[117,1](253, 252) -> 250 -[117,1](254, 252) -> 251 -[118,1](255, 255) -> 252 -[118,1](256, 255) -> 253 -[118,1](257, 255) -> 254 -[119,1](258, 258) -> 255 -[119,1](259, 258) -> 256 -[119,1](260, 258) -> 257 -[120,1](261, 261) -> 258 -[120,1](262, 261) -> 259 -[120,1](263, 261) -> 260 -[121,1](264, 264) -> 261 -[121,1](265, 264) -> 262 -[121,1](266, 264) -> 263 -[122,1](267, 267) -> 264 -[122,1](268, 267) -> 265 -[122,1](269, 267) -> 266 -[123,1](270, 270) -> 267 -[123,1](271, 270) -> 268 -[123,1](272, 270) -> 269 -[124,1](273, 273) -> 270 -[124,1](274, 273) -> 271 -[124,1](275, 273) -> 272 -[125,1](276, 276) -> 273 -[125,1](277, 276) -> 274 -[125,1](278, 276) -> 275 -[126,1](279, 279) -> 276 -[126,1](280, 279) -> 277 -[126,1](281, 279) -> 278 -[127,1](282, 282) -> 279 -[127,1](283, 282) -> 280 -[127,1](284, 282) -> 281 -[128,1](285, 285) -> 282 -[128,1](286, 285) -> 283 -[128,1](287, 285) -> 284 -[129,1](288, 288) -> 285 -[129,1](289, 288) -> 286 -[129,1](290, 288) -> 287 -[130,1](291, 291) -> 288 -[130,1](292, 291) -> 289 -[130,1](293, 291) -> 290 -[131,1](294, 294) -> 291 -[131,1](295, 294) -> 292 -[131,1](296, 294) -> 293 -[132,1](297, 297) -> 294 -[132,1](298, 297) -> 295 -[132,1](299, 297) -> 296 -[133,1](300, 300) -> 297 -[133,1](301, 300) -> 298 -[133,1](302, 300) -> 299 -[134,1](303, 303) -> 300 -[134,1](304, 303) -> 301 -[134,1](305, 303) -> 302 -[135,1](306, 306) -> 303 -[135,1](307, 306) -> 304 -[135,1](308, 306) -> 305 -[136,1](309, 309) -> 306 -[136,1](310, 309) -> 307 -[136,1](311, 309) -> 308 -[137,1](312, 312) -> 309 -[137,1](313, 312) -> 310 -[137,1](314, 312) -> 311 -[138,1](315, 315) -> 312 -[138,1](316, 315) -> 313 -[138,1](317, 315) -> 314 -[139,1](318, 318) -> 315 -[139,1](319, 318) -> 316 -[139,1](320, 318) -> 317 -[140,1](321, 321) -> 318 -[140,1](322, 321) -> 319 -[140,1](323, 321) -> 320 -[141,1](324, 324) -> 321 -[141,1](325, 324) -> 322 -[141,1](326, 324) -> 323 -[142,1](327, 327) -> 324 -[142,1](328, 327) -> 325 -[142,1](329, 327) -> 326 -[143,1](330, 330) -> 327 -[143,1](331, 330) -> 328 -[143,1](332, 330) -> 329 -[144,1](333, 333) -> 330 -[144,1](334, 333) -> 331 -[144,1](335, 333) -> 332 -[145,1](336, 336) -> 333 -[145,1](337, 336) -> 334 -[145,1](338, 336) -> 335 -[146,1](339, 339) -> 336 -[146,1](340, 339) -> 337 -[146,1](341, 339) -> 338 -[147,1](342, 342) -> 339 -[147,1](343, 342) -> 340 -[147,1](344, 342) -> 341 -[148,1](345, 345) -> 342 -[148,1](346, 345) -> 343 -[148,1](347, 345) -> 344 -[149,1](348, 348) -> 345 -[149,1](349, 348) -> 346 -[149,1](350, 348) -> 347 -[150,1](351, 351) -> 348 -[150,1](352, 351) -> 349 -[150,1](353, 351) -> 350 -[151,1](354, 354) -> 351 -[151,1](355, 354) -> 352 -[151,1](356, 354) -> 353 -[152,1](357, 357) -> 354 -[152,1](358, 357) -> 355 -[152,1](359, 357) -> 356 -[153,1](360, 360) -> 357 -[153,1](361, 360) -> 358 -[153,1](362, 360) -> 359 -[154,1](363, 363) -> 360 -[154,1](364, 363) -> 361 -[154,1](365, 363) -> 362 -[155,1](366, 366) -> 363 -[155,1](367, 366) -> 364 -[155,1](368, 366) -> 365 -[156,1](369, 369) -> 366 -[156,1](370, 369) -> 367 -[156,1](371, 369) -> 368 -[157,1](372, 372) -> 369 -[157,1](373, 372) -> 370 -[157,1](374, 372) -> 371 -[158,1](375, 375) -> 372 -[158,1](376, 375) -> 373 -[158,1](377, 375) -> 374 -[159,1](378, 378) -> 375 -[159,1](379, 378) -> 376 -[159,1](380, 378) -> 377 -[160,1](381, 381) -> 378 -[160,1](382, 381) -> 379 -[160,1](383, 381) -> 380 -[161,1](384, 384) -> 381 -[161,1](385, 384) -> 382 -[161,1](386, 384) -> 383 -[162,1](387, 387) -> 384 -[162,1](388, 387) -> 385 -[162,1](389, 387) -> 386 -[163,1](390, 390) -> 387 -[163,1](391, 390) -> 388 -[163,1](392, 390) -> 389 -[164,1](393, 393) -> 390 -[164,1](394, 393) -> 391 -[164,1](395, 393) -> 392 -[165,1](396, 396) -> 393 -[165,1](397, 396) -> 394 -[165,1](398, 396) -> 395 -[166,1](399, 399) -> 396 -[166,1](400, 399) -> 397 -[166,1](401, 399) -> 398 -[167,1](402, 402) -> 399 -[167,1](403, 402) -> 400 -[167,1](404, 402) -> 401 -[168,1](405, 405) -> 402 -[168,1](406, 405) -> 403 -[168,1](407, 405) -> 404 -[169,1](408, 408) -> 405 -[169,1](409, 408) -> 406 -[169,1](410, 408) -> 407 -[170,1](411, 411) -> 408 -[170,1](412, 411) -> 409 -[170,1](413, 411) -> 410 -[171,1](414, 414) -> 411 -[171,1](415, 414) -> 412 -[171,1](416, 414) -> 413 -[172,1](417, 417) -> 414 -[172,1](418, 417) -> 415 -[172,1](419, 417) -> 416 -[173,1](420, 420) -> 417 -[173,1](421, 420) -> 418 -[173,1](422, 420) -> 419 -[174,1](423, 423) -> 420 -[174,1](424, 423) -> 421 -[174,1](425, 423) -> 422 -[175,1](426, 426) -> 423 -[175,1](427, 426) -> 424 -[175,1](428, 426) -> 425 -[176,1](429, 429) -> 426 -[176,1](430, 429) -> 427 -[176,1](431, 429) -> 428 -[177,1](432, 432) -> 429 -[177,1](433, 432) -> 430 -[177,1](434, 432) -> 431 -[178,1](435, 435) -> 432 -[178,1](436, 435) -> 433 -[178,1](437, 435) -> 434 -[179,1](438, 438) -> 435 -[179,1](439, 438) -> 436 -[179,1](440, 438) -> 437 -[180,1](441, 441) -> 438 -[180,1](442, 441) -> 439 -[180,1](443, 441) -> 440 -[181,1](444, 444) -> 441 -[181,1](445, 444) -> 442 -[181,1](446, 444) -> 443 -[182,1](447, 447) -> 444 -[182,1](448, 447) -> 445 -[182,1](449, 447) -> 446 -[183,1](450, 450) -> 447 -[183,1](451, 450) -> 448 -[183,1](452, 450) -> 449 -[184,1](453, 453) -> 450 -[184,1](454, 453) -> 451 -[184,1](455, 453) -> 452 -[185,1](456, 456) -> 453 -[185,1](457, 456) -> 454 -[185,1](458, 456) -> 455 -[186,1](459, 459) -> 456 -[186,1](460, 459) -> 457 -[186,1](461, 459) -> 458 -[187,1](462, 462) -> 459 -[187,1](463, 462) -> 460 -[187,1](464, 462) -> 461 -[188,1](465, 465) -> 462 -[188,1](466, 465) -> 463 -[188,1](467, 465) -> 464 -[189,1](468, 468) -> 465 -[189,1](469, 468) -> 466 -[189,1](470, 468) -> 467 -[190,1](471, 471) -> 468 -[190,1](472, 471) -> 469 -[190,1](473, 471) -> 470 -[191,1](474, 474) -> 471 -[191,1](475, 474) -> 472 -[191,1](476, 474) -> 473 -[192,1](477, 477) -> 474 -[192,1](478, 477) -> 475 -[192,1](479, 477) -> 476 -[193,1](480, 480) -> 477 -[193,1](481, 480) -> 478 -[193,1](482, 480) -> 479 -[194,1](483, 483) -> 480 -[194,1](484, 483) -> 481 -[194,1](485, 483) -> 482 -[p1,1] -> 483 -[p2,1] -> 484 -[p3,1] -> 485 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/97/pre.hsl b/benchmarks/all/OEGrover/97/pre.hsl index 7f8c74017..d5b1861fa 100644 --- a/benchmarks/all/OEGrover/97/pre.hsl +++ b/benchmarks/all/OEGrover/97/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 47 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 158456325028528675187087900671 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/97/pre.lsta b/benchmarks/all/OEGrover/97/pre.lsta deleted file mode 100644 index 041e43a83..000000000 --- a/benchmarks/all/OEGrover/97/pre.lsta +++ /dev/null @@ -1,496 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 196) -> 193 -[98,1](195, 197) -> 194 -[99,1](198, 198) -> 195 -[99,1](199, 198) -> 196 -[99,1](200, 198) -> 197 -[100,1](201, 201) -> 198 -[100,1](202, 201) -> 199 -[100,1](203, 201) -> 200 -[101,1](204, 204) -> 201 -[101,1](205, 204) -> 202 -[101,1](206, 204) -> 203 -[102,1](207, 207) -> 204 -[102,1](208, 207) -> 205 -[102,1](209, 207) -> 206 -[103,1](210, 210) -> 207 -[103,1](211, 210) -> 208 -[103,1](212, 210) -> 209 -[104,1](213, 213) -> 210 -[104,1](214, 213) -> 211 -[104,1](215, 213) -> 212 -[105,1](216, 216) -> 213 -[105,1](217, 216) -> 214 -[105,1](218, 216) -> 215 -[106,1](219, 219) -> 216 -[106,1](220, 219) -> 217 -[106,1](221, 219) -> 218 -[107,1](222, 222) -> 219 -[107,1](223, 222) -> 220 -[107,1](224, 222) -> 221 -[108,1](225, 225) -> 222 -[108,1](226, 225) -> 223 -[108,1](227, 225) -> 224 -[109,1](228, 228) -> 225 -[109,1](229, 228) -> 226 -[109,1](230, 228) -> 227 -[110,1](231, 231) -> 228 -[110,1](232, 231) -> 229 -[110,1](233, 231) -> 230 -[111,1](234, 234) -> 231 -[111,1](235, 234) -> 232 -[111,1](236, 234) -> 233 -[112,1](237, 237) -> 234 -[112,1](238, 237) -> 235 -[112,1](239, 237) -> 236 -[113,1](240, 240) -> 237 -[113,1](241, 240) -> 238 -[113,1](242, 240) -> 239 -[114,1](243, 243) -> 240 -[114,1](244, 243) -> 241 -[114,1](245, 243) -> 242 -[115,1](246, 246) -> 243 -[115,1](247, 246) -> 244 -[115,1](248, 246) -> 245 -[116,1](249, 249) -> 246 -[116,1](250, 249) -> 247 -[116,1](251, 249) -> 248 -[117,1](252, 252) -> 249 -[117,1](253, 252) -> 250 -[117,1](254, 252) -> 251 -[118,1](255, 255) -> 252 -[118,1](256, 255) -> 253 -[118,1](257, 255) -> 254 -[119,1](258, 258) -> 255 -[119,1](259, 258) -> 256 -[119,1](260, 258) -> 257 -[120,1](261, 261) -> 258 -[120,1](262, 261) -> 259 -[120,1](263, 261) -> 260 -[121,1](264, 264) -> 261 -[121,1](265, 264) -> 262 -[121,1](266, 264) -> 263 -[122,1](267, 267) -> 264 -[122,1](268, 267) -> 265 -[122,1](269, 267) -> 266 -[123,1](270, 270) -> 267 -[123,1](271, 270) -> 268 -[123,1](272, 270) -> 269 -[124,1](273, 273) -> 270 -[124,1](274, 273) -> 271 -[124,1](275, 273) -> 272 -[125,1](276, 276) -> 273 -[125,1](277, 276) -> 274 -[125,1](278, 276) -> 275 -[126,1](279, 279) -> 276 -[126,1](280, 279) -> 277 -[126,1](281, 279) -> 278 -[127,1](282, 282) -> 279 -[127,1](283, 282) -> 280 -[127,1](284, 282) -> 281 -[128,1](285, 285) -> 282 -[128,1](286, 285) -> 283 -[128,1](287, 285) -> 284 -[129,1](288, 288) -> 285 -[129,1](289, 288) -> 286 -[129,1](290, 288) -> 287 -[130,1](291, 291) -> 288 -[130,1](292, 291) -> 289 -[130,1](293, 291) -> 290 -[131,1](294, 294) -> 291 -[131,1](295, 294) -> 292 -[131,1](296, 294) -> 293 -[132,1](297, 297) -> 294 -[132,1](298, 297) -> 295 -[132,1](299, 297) -> 296 -[133,1](300, 300) -> 297 -[133,1](301, 300) -> 298 -[133,1](302, 300) -> 299 -[134,1](303, 303) -> 300 -[134,1](304, 303) -> 301 -[134,1](305, 303) -> 302 -[135,1](306, 306) -> 303 -[135,1](307, 306) -> 304 -[135,1](308, 306) -> 305 -[136,1](309, 309) -> 306 -[136,1](310, 309) -> 307 -[136,1](311, 309) -> 308 -[137,1](312, 312) -> 309 -[137,1](313, 312) -> 310 -[137,1](314, 312) -> 311 -[138,1](315, 315) -> 312 -[138,1](316, 315) -> 313 -[138,1](317, 315) -> 314 -[139,1](318, 318) -> 315 -[139,1](319, 318) -> 316 -[139,1](320, 318) -> 317 -[140,1](321, 321) -> 318 -[140,1](322, 321) -> 319 -[140,1](323, 321) -> 320 -[141,1](324, 324) -> 321 -[141,1](325, 324) -> 322 -[141,1](326, 324) -> 323 -[142,1](327, 327) -> 324 -[142,1](328, 327) -> 325 -[142,1](329, 327) -> 326 -[143,1](330, 330) -> 327 -[143,1](331, 330) -> 328 -[143,1](332, 330) -> 329 -[144,1](333, 333) -> 330 -[144,1](334, 333) -> 331 -[144,1](335, 333) -> 332 -[145,1](336, 336) -> 333 -[145,1](337, 336) -> 334 -[145,1](338, 336) -> 335 -[146,1](339, 339) -> 336 -[146,1](340, 339) -> 337 -[146,1](341, 339) -> 338 -[147,1](342, 342) -> 339 -[147,1](343, 342) -> 340 -[147,1](344, 342) -> 341 -[148,1](345, 345) -> 342 -[148,1](346, 345) -> 343 -[148,1](347, 345) -> 344 -[149,1](348, 348) -> 345 -[149,1](349, 348) -> 346 -[149,1](350, 348) -> 347 -[150,1](351, 351) -> 348 -[150,1](352, 351) -> 349 -[150,1](353, 351) -> 350 -[151,1](354, 354) -> 351 -[151,1](355, 354) -> 352 -[151,1](356, 354) -> 353 -[152,1](357, 357) -> 354 -[152,1](358, 357) -> 355 -[152,1](359, 357) -> 356 -[153,1](360, 360) -> 357 -[153,1](361, 360) -> 358 -[153,1](362, 360) -> 359 -[154,1](363, 363) -> 360 -[154,1](364, 363) -> 361 -[154,1](365, 363) -> 362 -[155,1](366, 366) -> 363 -[155,1](367, 366) -> 364 -[155,1](368, 366) -> 365 -[156,1](369, 369) -> 366 -[156,1](370, 369) -> 367 -[156,1](371, 369) -> 368 -[157,1](372, 372) -> 369 -[157,1](373, 372) -> 370 -[157,1](374, 372) -> 371 -[158,1](375, 375) -> 372 -[158,1](376, 375) -> 373 -[158,1](377, 375) -> 374 -[159,1](378, 378) -> 375 -[159,1](379, 378) -> 376 -[159,1](380, 378) -> 377 -[160,1](381, 381) -> 378 -[160,1](382, 381) -> 379 -[160,1](383, 381) -> 380 -[161,1](384, 384) -> 381 -[161,1](385, 384) -> 382 -[161,1](386, 384) -> 383 -[162,1](387, 387) -> 384 -[162,1](388, 387) -> 385 -[162,1](389, 387) -> 386 -[163,1](390, 390) -> 387 -[163,1](391, 390) -> 388 -[163,1](392, 390) -> 389 -[164,1](393, 393) -> 390 -[164,1](394, 393) -> 391 -[164,1](395, 393) -> 392 -[165,1](396, 396) -> 393 -[165,1](397, 396) -> 394 -[165,1](398, 396) -> 395 -[166,1](399, 399) -> 396 -[166,1](400, 399) -> 397 -[166,1](401, 399) -> 398 -[167,1](402, 402) -> 399 -[167,1](403, 402) -> 400 -[167,1](404, 402) -> 401 -[168,1](405, 405) -> 402 -[168,1](406, 405) -> 403 -[168,1](407, 405) -> 404 -[169,1](408, 408) -> 405 -[169,1](409, 408) -> 406 -[169,1](410, 408) -> 407 -[170,1](411, 411) -> 408 -[170,1](412, 411) -> 409 -[170,1](413, 411) -> 410 -[171,1](414, 414) -> 411 -[171,1](415, 414) -> 412 -[171,1](416, 414) -> 413 -[172,1](417, 417) -> 414 -[172,1](418, 417) -> 415 -[172,1](419, 417) -> 416 -[173,1](420, 420) -> 417 -[173,1](421, 420) -> 418 -[173,1](422, 420) -> 419 -[174,1](423, 423) -> 420 -[174,1](424, 423) -> 421 -[174,1](425, 423) -> 422 -[175,1](426, 426) -> 423 -[175,1](427, 426) -> 424 -[175,1](428, 426) -> 425 -[176,1](429, 429) -> 426 -[176,1](430, 429) -> 427 -[176,1](431, 429) -> 428 -[177,1](432, 432) -> 429 -[177,1](433, 432) -> 430 -[177,1](434, 432) -> 431 -[178,1](435, 435) -> 432 -[178,1](436, 435) -> 433 -[178,1](437, 435) -> 434 -[179,1](438, 438) -> 435 -[179,1](439, 438) -> 436 -[179,1](440, 438) -> 437 -[180,1](441, 441) -> 438 -[180,1](442, 441) -> 439 -[180,1](443, 441) -> 440 -[181,1](444, 444) -> 441 -[181,1](445, 444) -> 442 -[181,1](446, 444) -> 443 -[182,1](447, 447) -> 444 -[182,1](448, 447) -> 445 -[182,1](449, 447) -> 446 -[183,1](450, 450) -> 447 -[183,1](451, 450) -> 448 -[183,1](452, 450) -> 449 -[184,1](453, 453) -> 450 -[184,1](454, 453) -> 451 -[184,1](455, 453) -> 452 -[185,1](456, 456) -> 453 -[185,1](457, 456) -> 454 -[185,1](458, 456) -> 455 -[186,1](459, 459) -> 456 -[186,1](460, 459) -> 457 -[186,1](461, 459) -> 458 -[187,1](462, 462) -> 459 -[187,1](463, 462) -> 460 -[187,1](464, 462) -> 461 -[188,1](465, 465) -> 462 -[188,1](466, 465) -> 463 -[188,1](467, 465) -> 464 -[189,1](468, 468) -> 465 -[189,1](469, 468) -> 466 -[189,1](470, 468) -> 467 -[190,1](471, 471) -> 468 -[190,1](472, 471) -> 469 -[190,1](473, 471) -> 470 -[191,1](474, 474) -> 471 -[191,1](475, 474) -> 472 -[191,1](476, 474) -> 473 -[192,1](477, 477) -> 474 -[192,1](478, 477) -> 475 -[192,1](479, 477) -> 476 -[193,1](480, 480) -> 477 -[193,1](481, 480) -> 478 -[193,1](482, 480) -> 479 -[194,1](483, 483) -> 480 -[194,1](484, 483) -> 481 -[194,1](485, 483) -> 482 -[c0,1] -> 483 -[a,1] -> 484 -[b,1] -> 485 -Constraints -158456325028528675187087900671 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/98/circuit.qasm b/benchmarks/all/OEGrover/98/circuit.qasm index 497f9ee2f..e28394b00 100644 --- a/benchmarks/all/OEGrover/98/circuit.qasm +++ b/benchmarks/all/OEGrover/98/circuit.qasm @@ -1,249 +1,249 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[196]; +qreg qubits[195]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -x qubits[92]; -x qubits[94]; -x qubits[96]; -ccx qubits[0], qubits[1], qubits[99]; -ccx qubits[2], qubits[99], qubits[100]; -ccx qubits[3], qubits[100], qubits[101]; -ccx qubits[4], qubits[101], qubits[102]; -ccx qubits[5], qubits[102], qubits[103]; -ccx qubits[6], qubits[103], qubits[104]; -ccx qubits[7], qubits[104], qubits[105]; -ccx qubits[8], qubits[105], qubits[106]; -ccx qubits[9], qubits[106], qubits[107]; -ccx qubits[10], qubits[107], qubits[108]; -ccx qubits[11], qubits[108], qubits[109]; -ccx qubits[12], qubits[109], qubits[110]; -ccx qubits[13], qubits[110], qubits[111]; -ccx qubits[14], qubits[111], qubits[112]; -ccx qubits[15], qubits[112], qubits[113]; -ccx qubits[16], qubits[113], qubits[114]; -ccx qubits[17], qubits[114], qubits[115]; -ccx qubits[18], qubits[115], qubits[116]; -ccx qubits[19], qubits[116], qubits[117]; -ccx qubits[20], qubits[117], qubits[118]; -ccx qubits[21], qubits[118], qubits[119]; -ccx qubits[22], qubits[119], qubits[120]; -ccx qubits[23], qubits[120], qubits[121]; -ccx qubits[24], qubits[121], qubits[122]; -ccx qubits[25], qubits[122], qubits[123]; -ccx qubits[26], qubits[123], qubits[124]; -ccx qubits[27], qubits[124], qubits[125]; -ccx qubits[28], qubits[125], qubits[126]; -ccx qubits[29], qubits[126], qubits[127]; -ccx qubits[30], qubits[127], qubits[128]; -ccx qubits[31], qubits[128], qubits[129]; -ccx qubits[32], qubits[129], qubits[130]; -ccx qubits[33], qubits[130], qubits[131]; -ccx qubits[34], qubits[131], qubits[132]; -ccx qubits[35], qubits[132], qubits[133]; -ccx qubits[36], qubits[133], qubits[134]; -ccx qubits[37], qubits[134], qubits[135]; -ccx qubits[38], qubits[135], qubits[136]; -ccx qubits[39], qubits[136], qubits[137]; -ccx qubits[40], qubits[137], qubits[138]; -ccx qubits[41], qubits[138], qubits[139]; -ccx qubits[42], qubits[139], qubits[140]; -ccx qubits[43], qubits[140], qubits[141]; -ccx qubits[44], qubits[141], qubits[142]; -ccx qubits[45], qubits[142], qubits[143]; -ccx qubits[46], qubits[143], qubits[144]; -ccx qubits[47], qubits[144], qubits[145]; -ccx qubits[48], qubits[145], qubits[146]; -ccx qubits[49], qubits[146], qubits[147]; -ccx qubits[50], qubits[147], qubits[148]; -ccx qubits[51], qubits[148], qubits[149]; -ccx qubits[52], qubits[149], qubits[150]; -ccx qubits[53], qubits[150], qubits[151]; -ccx qubits[54], qubits[151], qubits[152]; -ccx qubits[55], qubits[152], qubits[153]; -ccx qubits[56], qubits[153], qubits[154]; -ccx qubits[57], qubits[154], qubits[155]; -ccx qubits[58], qubits[155], qubits[156]; -ccx qubits[59], qubits[156], qubits[157]; -ccx qubits[60], qubits[157], qubits[158]; -ccx qubits[61], qubits[158], qubits[159]; -ccx qubits[62], qubits[159], qubits[160]; -ccx qubits[63], qubits[160], qubits[161]; -ccx qubits[64], qubits[161], qubits[162]; -ccx qubits[65], qubits[162], qubits[163]; -ccx qubits[66], qubits[163], qubits[164]; -ccx qubits[67], qubits[164], qubits[165]; -ccx qubits[68], qubits[165], qubits[166]; -ccx qubits[69], qubits[166], qubits[167]; -ccx qubits[70], qubits[167], qubits[168]; -ccx qubits[71], qubits[168], qubits[169]; -ccx qubits[72], qubits[169], qubits[170]; -ccx qubits[73], qubits[170], qubits[171]; -ccx qubits[74], qubits[171], qubits[172]; -ccx qubits[75], qubits[172], qubits[173]; -ccx qubits[76], qubits[173], qubits[174]; -ccx qubits[77], qubits[174], qubits[175]; -ccx qubits[78], qubits[175], qubits[176]; -ccx qubits[79], qubits[176], qubits[177]; -ccx qubits[80], qubits[177], qubits[178]; -ccx qubits[81], qubits[178], qubits[179]; -ccx qubits[82], qubits[179], qubits[180]; -ccx qubits[83], qubits[180], qubits[181]; -ccx qubits[84], qubits[181], qubits[182]; -ccx qubits[85], qubits[182], qubits[183]; -ccx qubits[86], qubits[183], qubits[184]; -ccx qubits[87], qubits[184], qubits[185]; -ccx qubits[88], qubits[185], qubits[186]; -ccx qubits[89], qubits[186], qubits[187]; -ccx qubits[90], qubits[187], qubits[188]; -ccx qubits[91], qubits[188], qubits[189]; -ccx qubits[92], qubits[189], qubits[190]; -ccx qubits[93], qubits[190], qubits[191]; -ccx qubits[94], qubits[191], qubits[192]; -ccx qubits[95], qubits[192], qubits[193]; -ccx qubits[96], qubits[193], qubits[194]; -cz qubits[194], qubits[97]; -ccx qubits[96], qubits[193], qubits[194]; -ccx qubits[95], qubits[192], qubits[193]; -ccx qubits[94], qubits[191], qubits[192]; -ccx qubits[93], qubits[190], qubits[191]; -ccx qubits[92], qubits[189], qubits[190]; -ccx qubits[91], qubits[188], qubits[189]; -ccx qubits[90], qubits[187], qubits[188]; -ccx qubits[89], qubits[186], qubits[187]; -ccx qubits[88], qubits[185], qubits[186]; -ccx qubits[87], qubits[184], qubits[185]; -ccx qubits[86], qubits[183], qubits[184]; -ccx qubits[85], qubits[182], qubits[183]; -ccx qubits[84], qubits[181], qubits[182]; -ccx qubits[83], qubits[180], qubits[181]; -ccx qubits[82], qubits[179], qubits[180]; -ccx qubits[81], qubits[178], qubits[179]; -ccx qubits[80], qubits[177], qubits[178]; -ccx qubits[79], qubits[176], qubits[177]; -ccx qubits[78], qubits[175], qubits[176]; -ccx qubits[77], qubits[174], qubits[175]; -ccx qubits[76], qubits[173], qubits[174]; -ccx qubits[75], qubits[172], qubits[173]; -ccx qubits[74], qubits[171], qubits[172]; -ccx qubits[73], qubits[170], qubits[171]; -ccx qubits[72], qubits[169], qubits[170]; -ccx qubits[71], qubits[168], qubits[169]; -ccx qubits[70], qubits[167], qubits[168]; -ccx qubits[69], qubits[166], qubits[167]; -ccx qubits[68], qubits[165], qubits[166]; -ccx qubits[67], qubits[164], qubits[165]; -ccx qubits[66], qubits[163], qubits[164]; -ccx qubits[65], qubits[162], qubits[163]; -ccx qubits[64], qubits[161], qubits[162]; -ccx qubits[63], qubits[160], qubits[161]; -ccx qubits[62], qubits[159], qubits[160]; -ccx qubits[61], qubits[158], qubits[159]; -ccx qubits[60], qubits[157], qubits[158]; -ccx qubits[59], qubits[156], qubits[157]; -ccx qubits[58], qubits[155], qubits[156]; -ccx qubits[57], qubits[154], qubits[155]; -ccx qubits[56], qubits[153], qubits[154]; -ccx qubits[55], qubits[152], qubits[153]; -ccx qubits[54], qubits[151], qubits[152]; -ccx qubits[53], qubits[150], qubits[151]; -ccx qubits[52], qubits[149], qubits[150]; -ccx qubits[51], qubits[148], qubits[149]; -ccx qubits[50], qubits[147], qubits[148]; -ccx qubits[49], qubits[146], qubits[147]; -ccx qubits[48], qubits[145], qubits[146]; -ccx qubits[47], qubits[144], qubits[145]; -ccx qubits[46], qubits[143], qubits[144]; -ccx qubits[45], qubits[142], qubits[143]; -ccx qubits[44], qubits[141], qubits[142]; -ccx qubits[43], qubits[140], qubits[141]; -ccx qubits[42], qubits[139], qubits[140]; -ccx qubits[41], qubits[138], qubits[139]; -ccx qubits[40], qubits[137], qubits[138]; -ccx qubits[39], qubits[136], qubits[137]; -ccx qubits[38], qubits[135], qubits[136]; -ccx qubits[37], qubits[134], qubits[135]; -ccx qubits[36], qubits[133], qubits[134]; -ccx qubits[35], qubits[132], qubits[133]; -ccx qubits[34], qubits[131], qubits[132]; -ccx qubits[33], qubits[130], qubits[131]; -ccx qubits[32], qubits[129], qubits[130]; -ccx qubits[31], qubits[128], qubits[129]; -ccx qubits[30], qubits[127], qubits[128]; -ccx qubits[29], qubits[126], qubits[127]; -ccx qubits[28], qubits[125], qubits[126]; -ccx qubits[27], qubits[124], qubits[125]; -ccx qubits[26], qubits[123], qubits[124]; -ccx qubits[25], qubits[122], qubits[123]; -ccx qubits[24], qubits[121], qubits[122]; -ccx qubits[23], qubits[120], qubits[121]; -ccx qubits[22], qubits[119], qubits[120]; -ccx qubits[21], qubits[118], qubits[119]; -ccx qubits[20], qubits[117], qubits[118]; -ccx qubits[19], qubits[116], qubits[117]; -ccx qubits[18], qubits[115], qubits[116]; -ccx qubits[17], qubits[114], qubits[115]; -ccx qubits[16], qubits[113], qubits[114]; -ccx qubits[15], qubits[112], qubits[113]; -ccx qubits[14], qubits[111], qubits[112]; -ccx qubits[13], qubits[110], qubits[111]; -ccx qubits[12], qubits[109], qubits[110]; -ccx qubits[11], qubits[108], qubits[109]; -ccx qubits[10], qubits[107], qubits[108]; -ccx qubits[9], qubits[106], qubits[107]; -ccx qubits[8], qubits[105], qubits[106]; -ccx qubits[7], qubits[104], qubits[105]; -ccx qubits[6], qubits[103], qubits[104]; -ccx qubits[5], qubits[102], qubits[103]; -ccx qubits[4], qubits[101], qubits[102]; -ccx qubits[3], qubits[100], qubits[101]; -ccx qubits[2], qubits[99], qubits[100]; -ccx qubits[0], qubits[1], qubits[99]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +x qubits[183]; +x qubits[187]; +x qubits[191]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[190], qubits[191], qubits[192]; +cz qubits[192], qubits[193]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -295,587 +295,587 @@ x qubits[94]; x qubits[96]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; h qubits[97]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +h qubits[193]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; x qubits[97]; -ccx qubits[0], qubits[1], qubits[99]; -ccx qubits[2], qubits[99], qubits[100]; -ccx qubits[3], qubits[100], qubits[101]; -ccx qubits[4], qubits[101], qubits[102]; -ccx qubits[5], qubits[102], qubits[103]; -ccx qubits[6], qubits[103], qubits[104]; -ccx qubits[7], qubits[104], qubits[105]; -ccx qubits[8], qubits[105], qubits[106]; -ccx qubits[9], qubits[106], qubits[107]; -ccx qubits[10], qubits[107], qubits[108]; -ccx qubits[11], qubits[108], qubits[109]; -ccx qubits[12], qubits[109], qubits[110]; -ccx qubits[13], qubits[110], qubits[111]; -ccx qubits[14], qubits[111], qubits[112]; -ccx qubits[15], qubits[112], qubits[113]; -ccx qubits[16], qubits[113], qubits[114]; -ccx qubits[17], qubits[114], qubits[115]; -ccx qubits[18], qubits[115], qubits[116]; -ccx qubits[19], qubits[116], qubits[117]; -ccx qubits[20], qubits[117], qubits[118]; -ccx qubits[21], qubits[118], qubits[119]; -ccx qubits[22], qubits[119], qubits[120]; -ccx qubits[23], qubits[120], qubits[121]; -ccx qubits[24], qubits[121], qubits[122]; -ccx qubits[25], qubits[122], qubits[123]; -ccx qubits[26], qubits[123], qubits[124]; -ccx qubits[27], qubits[124], qubits[125]; -ccx qubits[28], qubits[125], qubits[126]; -ccx qubits[29], qubits[126], qubits[127]; -ccx qubits[30], qubits[127], qubits[128]; -ccx qubits[31], qubits[128], qubits[129]; -ccx qubits[32], qubits[129], qubits[130]; -ccx qubits[33], qubits[130], qubits[131]; -ccx qubits[34], qubits[131], qubits[132]; -ccx qubits[35], qubits[132], qubits[133]; -ccx qubits[36], qubits[133], qubits[134]; -ccx qubits[37], qubits[134], qubits[135]; -ccx qubits[38], qubits[135], qubits[136]; -ccx qubits[39], qubits[136], qubits[137]; -ccx qubits[40], qubits[137], qubits[138]; -ccx qubits[41], qubits[138], qubits[139]; -ccx qubits[42], qubits[139], qubits[140]; -ccx qubits[43], qubits[140], qubits[141]; -ccx qubits[44], qubits[141], qubits[142]; -ccx qubits[45], qubits[142], qubits[143]; -ccx qubits[46], qubits[143], qubits[144]; -ccx qubits[47], qubits[144], qubits[145]; -ccx qubits[48], qubits[145], qubits[146]; -ccx qubits[49], qubits[146], qubits[147]; -ccx qubits[50], qubits[147], qubits[148]; -ccx qubits[51], qubits[148], qubits[149]; -ccx qubits[52], qubits[149], qubits[150]; -ccx qubits[53], qubits[150], qubits[151]; -ccx qubits[54], qubits[151], qubits[152]; -ccx qubits[55], qubits[152], qubits[153]; -ccx qubits[56], qubits[153], qubits[154]; -ccx qubits[57], qubits[154], qubits[155]; -ccx qubits[58], qubits[155], qubits[156]; -ccx qubits[59], qubits[156], qubits[157]; -ccx qubits[60], qubits[157], qubits[158]; -ccx qubits[61], qubits[158], qubits[159]; -ccx qubits[62], qubits[159], qubits[160]; -ccx qubits[63], qubits[160], qubits[161]; -ccx qubits[64], qubits[161], qubits[162]; -ccx qubits[65], qubits[162], qubits[163]; -ccx qubits[66], qubits[163], qubits[164]; -ccx qubits[67], qubits[164], qubits[165]; -ccx qubits[68], qubits[165], qubits[166]; -ccx qubits[69], qubits[166], qubits[167]; -ccx qubits[70], qubits[167], qubits[168]; -ccx qubits[71], qubits[168], qubits[169]; -ccx qubits[72], qubits[169], qubits[170]; -ccx qubits[73], qubits[170], qubits[171]; -ccx qubits[74], qubits[171], qubits[172]; -ccx qubits[75], qubits[172], qubits[173]; -ccx qubits[76], qubits[173], qubits[174]; -ccx qubits[77], qubits[174], qubits[175]; -ccx qubits[78], qubits[175], qubits[176]; -ccx qubits[79], qubits[176], qubits[177]; -ccx qubits[80], qubits[177], qubits[178]; -ccx qubits[81], qubits[178], qubits[179]; -ccx qubits[82], qubits[179], qubits[180]; -ccx qubits[83], qubits[180], qubits[181]; -ccx qubits[84], qubits[181], qubits[182]; -ccx qubits[85], qubits[182], qubits[183]; -ccx qubits[86], qubits[183], qubits[184]; -ccx qubits[87], qubits[184], qubits[185]; -ccx qubits[88], qubits[185], qubits[186]; -ccx qubits[89], qubits[186], qubits[187]; -ccx qubits[90], qubits[187], qubits[188]; -ccx qubits[91], qubits[188], qubits[189]; -ccx qubits[92], qubits[189], qubits[190]; -ccx qubits[93], qubits[190], qubits[191]; -ccx qubits[94], qubits[191], qubits[192]; -ccx qubits[95], qubits[192], qubits[193]; -ccx qubits[96], qubits[193], qubits[194]; -cz qubits[194], qubits[97]; -ccx qubits[96], qubits[193], qubits[194]; -ccx qubits[95], qubits[192], qubits[193]; -ccx qubits[94], qubits[191], qubits[192]; -ccx qubits[93], qubits[190], qubits[191]; -ccx qubits[92], qubits[189], qubits[190]; -ccx qubits[91], qubits[188], qubits[189]; -ccx qubits[90], qubits[187], qubits[188]; -ccx qubits[89], qubits[186], qubits[187]; -ccx qubits[88], qubits[185], qubits[186]; -ccx qubits[87], qubits[184], qubits[185]; -ccx qubits[86], qubits[183], qubits[184]; -ccx qubits[85], qubits[182], qubits[183]; -ccx qubits[84], qubits[181], qubits[182]; -ccx qubits[83], qubits[180], qubits[181]; -ccx qubits[82], qubits[179], qubits[180]; -ccx qubits[81], qubits[178], qubits[179]; -ccx qubits[80], qubits[177], qubits[178]; -ccx qubits[79], qubits[176], qubits[177]; -ccx qubits[78], qubits[175], qubits[176]; -ccx qubits[77], qubits[174], qubits[175]; -ccx qubits[76], qubits[173], qubits[174]; -ccx qubits[75], qubits[172], qubits[173]; -ccx qubits[74], qubits[171], qubits[172]; -ccx qubits[73], qubits[170], qubits[171]; -ccx qubits[72], qubits[169], qubits[170]; -ccx qubits[71], qubits[168], qubits[169]; -ccx qubits[70], qubits[167], qubits[168]; -ccx qubits[69], qubits[166], qubits[167]; -ccx qubits[68], qubits[165], qubits[166]; -ccx qubits[67], qubits[164], qubits[165]; -ccx qubits[66], qubits[163], qubits[164]; -ccx qubits[65], qubits[162], qubits[163]; -ccx qubits[64], qubits[161], qubits[162]; -ccx qubits[63], qubits[160], qubits[161]; -ccx qubits[62], qubits[159], qubits[160]; -ccx qubits[61], qubits[158], qubits[159]; -ccx qubits[60], qubits[157], qubits[158]; -ccx qubits[59], qubits[156], qubits[157]; -ccx qubits[58], qubits[155], qubits[156]; -ccx qubits[57], qubits[154], qubits[155]; -ccx qubits[56], qubits[153], qubits[154]; -ccx qubits[55], qubits[152], qubits[153]; -ccx qubits[54], qubits[151], qubits[152]; -ccx qubits[53], qubits[150], qubits[151]; -ccx qubits[52], qubits[149], qubits[150]; -ccx qubits[51], qubits[148], qubits[149]; -ccx qubits[50], qubits[147], qubits[148]; -ccx qubits[49], qubits[146], qubits[147]; -ccx qubits[48], qubits[145], qubits[146]; -ccx qubits[47], qubits[144], qubits[145]; -ccx qubits[46], qubits[143], qubits[144]; -ccx qubits[45], qubits[142], qubits[143]; -ccx qubits[44], qubits[141], qubits[142]; -ccx qubits[43], qubits[140], qubits[141]; -ccx qubits[42], qubits[139], qubits[140]; -ccx qubits[41], qubits[138], qubits[139]; -ccx qubits[40], qubits[137], qubits[138]; -ccx qubits[39], qubits[136], qubits[137]; -ccx qubits[38], qubits[135], qubits[136]; -ccx qubits[37], qubits[134], qubits[135]; -ccx qubits[36], qubits[133], qubits[134]; -ccx qubits[35], qubits[132], qubits[133]; -ccx qubits[34], qubits[131], qubits[132]; -ccx qubits[33], qubits[130], qubits[131]; -ccx qubits[32], qubits[129], qubits[130]; -ccx qubits[31], qubits[128], qubits[129]; -ccx qubits[30], qubits[127], qubits[128]; -ccx qubits[29], qubits[126], qubits[127]; -ccx qubits[28], qubits[125], qubits[126]; -ccx qubits[27], qubits[124], qubits[125]; -ccx qubits[26], qubits[123], qubits[124]; -ccx qubits[25], qubits[122], qubits[123]; -ccx qubits[24], qubits[121], qubits[122]; -ccx qubits[23], qubits[120], qubits[121]; -ccx qubits[22], qubits[119], qubits[120]; -ccx qubits[21], qubits[118], qubits[119]; -ccx qubits[20], qubits[117], qubits[118]; -ccx qubits[19], qubits[116], qubits[117]; -ccx qubits[18], qubits[115], qubits[116]; -ccx qubits[17], qubits[114], qubits[115]; -ccx qubits[16], qubits[113], qubits[114]; -ccx qubits[15], qubits[112], qubits[113]; -ccx qubits[14], qubits[111], qubits[112]; -ccx qubits[13], qubits[110], qubits[111]; -ccx qubits[12], qubits[109], qubits[110]; -ccx qubits[11], qubits[108], qubits[109]; -ccx qubits[10], qubits[107], qubits[108]; -ccx qubits[9], qubits[106], qubits[107]; -ccx qubits[8], qubits[105], qubits[106]; -ccx qubits[7], qubits[104], qubits[105]; -ccx qubits[6], qubits[103], qubits[104]; -ccx qubits[5], qubits[102], qubits[103]; -ccx qubits[4], qubits[101], qubits[102]; -ccx qubits[3], qubits[100], qubits[101]; -ccx qubits[2], qubits[99], qubits[100]; -ccx qubits[0], qubits[1], qubits[99]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +x qubits[193]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[190], qubits[191], qubits[192]; +cz qubits[192], qubits[193]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; x qubits[97]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +x qubits[193]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; h qubits[97]; -z qubits[98]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +h qubits[193]; +z qubits[194]; diff --git a/benchmarks/all/OEGrover/98/post.hsl b/benchmarks/all/OEGrover/98/post.hsl index b13d8ec9b..a94137a60 100644 --- a/benchmarks/all/OEGrover/98/post.hsl +++ b/benchmarks/all/OEGrover/98/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 48 ⊗ {pL |0> + pH |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/98/post.lsta b/benchmarks/all/OEGrover/98/post.lsta deleted file mode 100644 index f1926054b..000000000 --- a/benchmarks/all/OEGrover/98/post.lsta +++ /dev/null @@ -1,497 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 195) -> 193 -[98,1](195, 196) -> 194 -[99,1](197, 198) -> 195 -[99,1](197, 199) -> 196 -[100,1](200, 200) -> 197 -[100,1](201, 200) -> 198 -[100,1](202, 200) -> 199 -[101,1](203, 203) -> 200 -[101,1](204, 203) -> 201 -[101,1](205, 203) -> 202 -[102,1](206, 206) -> 203 -[102,1](207, 206) -> 204 -[102,1](208, 206) -> 205 -[103,1](209, 209) -> 206 -[103,1](210, 209) -> 207 -[103,1](211, 209) -> 208 -[104,1](212, 212) -> 209 -[104,1](213, 212) -> 210 -[104,1](214, 212) -> 211 -[105,1](215, 215) -> 212 -[105,1](216, 215) -> 213 -[105,1](217, 215) -> 214 -[106,1](218, 218) -> 215 -[106,1](219, 218) -> 216 -[106,1](220, 218) -> 217 -[107,1](221, 221) -> 218 -[107,1](222, 221) -> 219 -[107,1](223, 221) -> 220 -[108,1](224, 224) -> 221 -[108,1](225, 224) -> 222 -[108,1](226, 224) -> 223 -[109,1](227, 227) -> 224 -[109,1](228, 227) -> 225 -[109,1](229, 227) -> 226 -[110,1](230, 230) -> 227 -[110,1](231, 230) -> 228 -[110,1](232, 230) -> 229 -[111,1](233, 233) -> 230 -[111,1](234, 233) -> 231 -[111,1](235, 233) -> 232 -[112,1](236, 236) -> 233 -[112,1](237, 236) -> 234 -[112,1](238, 236) -> 235 -[113,1](239, 239) -> 236 -[113,1](240, 239) -> 237 -[113,1](241, 239) -> 238 -[114,1](242, 242) -> 239 -[114,1](243, 242) -> 240 -[114,1](244, 242) -> 241 -[115,1](245, 245) -> 242 -[115,1](246, 245) -> 243 -[115,1](247, 245) -> 244 -[116,1](248, 248) -> 245 -[116,1](249, 248) -> 246 -[116,1](250, 248) -> 247 -[117,1](251, 251) -> 248 -[117,1](252, 251) -> 249 -[117,1](253, 251) -> 250 -[118,1](254, 254) -> 251 -[118,1](255, 254) -> 252 -[118,1](256, 254) -> 253 -[119,1](257, 257) -> 254 -[119,1](258, 257) -> 255 -[119,1](259, 257) -> 256 -[120,1](260, 260) -> 257 -[120,1](261, 260) -> 258 -[120,1](262, 260) -> 259 -[121,1](263, 263) -> 260 -[121,1](264, 263) -> 261 -[121,1](265, 263) -> 262 -[122,1](266, 266) -> 263 -[122,1](267, 266) -> 264 -[122,1](268, 266) -> 265 -[123,1](269, 269) -> 266 -[123,1](270, 269) -> 267 -[123,1](271, 269) -> 268 -[124,1](272, 272) -> 269 -[124,1](273, 272) -> 270 -[124,1](274, 272) -> 271 -[125,1](275, 275) -> 272 -[125,1](276, 275) -> 273 -[125,1](277, 275) -> 274 -[126,1](278, 278) -> 275 -[126,1](279, 278) -> 276 -[126,1](280, 278) -> 277 -[127,1](281, 281) -> 278 -[127,1](282, 281) -> 279 -[127,1](283, 281) -> 280 -[128,1](284, 284) -> 281 -[128,1](285, 284) -> 282 -[128,1](286, 284) -> 283 -[129,1](287, 287) -> 284 -[129,1](288, 287) -> 285 -[129,1](289, 287) -> 286 -[130,1](290, 290) -> 287 -[130,1](291, 290) -> 288 -[130,1](292, 290) -> 289 -[131,1](293, 293) -> 290 -[131,1](294, 293) -> 291 -[131,1](295, 293) -> 292 -[132,1](296, 296) -> 293 -[132,1](297, 296) -> 294 -[132,1](298, 296) -> 295 -[133,1](299, 299) -> 296 -[133,1](300, 299) -> 297 -[133,1](301, 299) -> 298 -[134,1](302, 302) -> 299 -[134,1](303, 302) -> 300 -[134,1](304, 302) -> 301 -[135,1](305, 305) -> 302 -[135,1](306, 305) -> 303 -[135,1](307, 305) -> 304 -[136,1](308, 308) -> 305 -[136,1](309, 308) -> 306 -[136,1](310, 308) -> 307 -[137,1](311, 311) -> 308 -[137,1](312, 311) -> 309 -[137,1](313, 311) -> 310 -[138,1](314, 314) -> 311 -[138,1](315, 314) -> 312 -[138,1](316, 314) -> 313 -[139,1](317, 317) -> 314 -[139,1](318, 317) -> 315 -[139,1](319, 317) -> 316 -[140,1](320, 320) -> 317 -[140,1](321, 320) -> 318 -[140,1](322, 320) -> 319 -[141,1](323, 323) -> 320 -[141,1](324, 323) -> 321 -[141,1](325, 323) -> 322 -[142,1](326, 326) -> 323 -[142,1](327, 326) -> 324 -[142,1](328, 326) -> 325 -[143,1](329, 329) -> 326 -[143,1](330, 329) -> 327 -[143,1](331, 329) -> 328 -[144,1](332, 332) -> 329 -[144,1](333, 332) -> 330 -[144,1](334, 332) -> 331 -[145,1](335, 335) -> 332 -[145,1](336, 335) -> 333 -[145,1](337, 335) -> 334 -[146,1](338, 338) -> 335 -[146,1](339, 338) -> 336 -[146,1](340, 338) -> 337 -[147,1](341, 341) -> 338 -[147,1](342, 341) -> 339 -[147,1](343, 341) -> 340 -[148,1](344, 344) -> 341 -[148,1](345, 344) -> 342 -[148,1](346, 344) -> 343 -[149,1](347, 347) -> 344 -[149,1](348, 347) -> 345 -[149,1](349, 347) -> 346 -[150,1](350, 350) -> 347 -[150,1](351, 350) -> 348 -[150,1](352, 350) -> 349 -[151,1](353, 353) -> 350 -[151,1](354, 353) -> 351 -[151,1](355, 353) -> 352 -[152,1](356, 356) -> 353 -[152,1](357, 356) -> 354 -[152,1](358, 356) -> 355 -[153,1](359, 359) -> 356 -[153,1](360, 359) -> 357 -[153,1](361, 359) -> 358 -[154,1](362, 362) -> 359 -[154,1](363, 362) -> 360 -[154,1](364, 362) -> 361 -[155,1](365, 365) -> 362 -[155,1](366, 365) -> 363 -[155,1](367, 365) -> 364 -[156,1](368, 368) -> 365 -[156,1](369, 368) -> 366 -[156,1](370, 368) -> 367 -[157,1](371, 371) -> 368 -[157,1](372, 371) -> 369 -[157,1](373, 371) -> 370 -[158,1](374, 374) -> 371 -[158,1](375, 374) -> 372 -[158,1](376, 374) -> 373 -[159,1](377, 377) -> 374 -[159,1](378, 377) -> 375 -[159,1](379, 377) -> 376 -[160,1](380, 380) -> 377 -[160,1](381, 380) -> 378 -[160,1](382, 380) -> 379 -[161,1](383, 383) -> 380 -[161,1](384, 383) -> 381 -[161,1](385, 383) -> 382 -[162,1](386, 386) -> 383 -[162,1](387, 386) -> 384 -[162,1](388, 386) -> 385 -[163,1](389, 389) -> 386 -[163,1](390, 389) -> 387 -[163,1](391, 389) -> 388 -[164,1](392, 392) -> 389 -[164,1](393, 392) -> 390 -[164,1](394, 392) -> 391 -[165,1](395, 395) -> 392 -[165,1](396, 395) -> 393 -[165,1](397, 395) -> 394 -[166,1](398, 398) -> 395 -[166,1](399, 398) -> 396 -[166,1](400, 398) -> 397 -[167,1](401, 401) -> 398 -[167,1](402, 401) -> 399 -[167,1](403, 401) -> 400 -[168,1](404, 404) -> 401 -[168,1](405, 404) -> 402 -[168,1](406, 404) -> 403 -[169,1](407, 407) -> 404 -[169,1](408, 407) -> 405 -[169,1](409, 407) -> 406 -[170,1](410, 410) -> 407 -[170,1](411, 410) -> 408 -[170,1](412, 410) -> 409 -[171,1](413, 413) -> 410 -[171,1](414, 413) -> 411 -[171,1](415, 413) -> 412 -[172,1](416, 416) -> 413 -[172,1](417, 416) -> 414 -[172,1](418, 416) -> 415 -[173,1](419, 419) -> 416 -[173,1](420, 419) -> 417 -[173,1](421, 419) -> 418 -[174,1](422, 422) -> 419 -[174,1](423, 422) -> 420 -[174,1](424, 422) -> 421 -[175,1](425, 425) -> 422 -[175,1](426, 425) -> 423 -[175,1](427, 425) -> 424 -[176,1](428, 428) -> 425 -[176,1](429, 428) -> 426 -[176,1](430, 428) -> 427 -[177,1](431, 431) -> 428 -[177,1](432, 431) -> 429 -[177,1](433, 431) -> 430 -[178,1](434, 434) -> 431 -[178,1](435, 434) -> 432 -[178,1](436, 434) -> 433 -[179,1](437, 437) -> 434 -[179,1](438, 437) -> 435 -[179,1](439, 437) -> 436 -[180,1](440, 440) -> 437 -[180,1](441, 440) -> 438 -[180,1](442, 440) -> 439 -[181,1](443, 443) -> 440 -[181,1](444, 443) -> 441 -[181,1](445, 443) -> 442 -[182,1](446, 446) -> 443 -[182,1](447, 446) -> 444 -[182,1](448, 446) -> 445 -[183,1](449, 449) -> 446 -[183,1](450, 449) -> 447 -[183,1](451, 449) -> 448 -[184,1](452, 452) -> 449 -[184,1](453, 452) -> 450 -[184,1](454, 452) -> 451 -[185,1](455, 455) -> 452 -[185,1](456, 455) -> 453 -[185,1](457, 455) -> 454 -[186,1](458, 458) -> 455 -[186,1](459, 458) -> 456 -[186,1](460, 458) -> 457 -[187,1](461, 461) -> 458 -[187,1](462, 461) -> 459 -[187,1](463, 461) -> 460 -[188,1](464, 464) -> 461 -[188,1](465, 464) -> 462 -[188,1](466, 464) -> 463 -[189,1](467, 467) -> 464 -[189,1](468, 467) -> 465 -[189,1](469, 467) -> 466 -[190,1](470, 470) -> 467 -[190,1](471, 470) -> 468 -[190,1](472, 470) -> 469 -[191,1](473, 473) -> 470 -[191,1](474, 473) -> 471 -[191,1](475, 473) -> 472 -[192,1](476, 476) -> 473 -[192,1](477, 476) -> 474 -[192,1](478, 476) -> 475 -[193,1](479, 479) -> 476 -[193,1](480, 479) -> 477 -[193,1](481, 479) -> 478 -[194,1](482, 482) -> 479 -[194,1](483, 482) -> 480 -[194,1](484, 482) -> 481 -[195,1](485, 485) -> 482 -[195,1](486, 485) -> 483 -[195,1](487, 485) -> 484 -[196,1](488, 488) -> 485 -[196,1](489, 488) -> 486 -[196,1](490, 488) -> 487 -[p1,1] -> 488 -[p2,1] -> 489 -[p3,1] -> 490 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/98/pre.hsl b/benchmarks/all/OEGrover/98/pre.hsl index ea62b107f..93d9b2554 100644 --- a/benchmarks/all/OEGrover/98/pre.hsl +++ b/benchmarks/all/OEGrover/98/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101> + a |*> # |10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 48 ⊗ {a |0> + b |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 316912650057057350374175801343 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/98/pre.lsta b/benchmarks/all/OEGrover/98/pre.lsta deleted file mode 100644 index 9af603101..000000000 --- a/benchmarks/all/OEGrover/98/pre.lsta +++ /dev/null @@ -1,501 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 195) -> 193 -[98,1](195, 196) -> 194 -[99,1](197, 198) -> 195 -[99,1](197, 199) -> 196 -[100,1](200, 200) -> 197 -[100,1](201, 200) -> 198 -[100,1](202, 200) -> 199 -[101,1](203, 203) -> 200 -[101,1](204, 203) -> 201 -[101,1](205, 203) -> 202 -[102,1](206, 206) -> 203 -[102,1](207, 206) -> 204 -[102,1](208, 206) -> 205 -[103,1](209, 209) -> 206 -[103,1](210, 209) -> 207 -[103,1](211, 209) -> 208 -[104,1](212, 212) -> 209 -[104,1](213, 212) -> 210 -[104,1](214, 212) -> 211 -[105,1](215, 215) -> 212 -[105,1](216, 215) -> 213 -[105,1](217, 215) -> 214 -[106,1](218, 218) -> 215 -[106,1](219, 218) -> 216 -[106,1](220, 218) -> 217 -[107,1](221, 221) -> 218 -[107,1](222, 221) -> 219 -[107,1](223, 221) -> 220 -[108,1](224, 224) -> 221 -[108,1](225, 224) -> 222 -[108,1](226, 224) -> 223 -[109,1](227, 227) -> 224 -[109,1](228, 227) -> 225 -[109,1](229, 227) -> 226 -[110,1](230, 230) -> 227 -[110,1](231, 230) -> 228 -[110,1](232, 230) -> 229 -[111,1](233, 233) -> 230 -[111,1](234, 233) -> 231 -[111,1](235, 233) -> 232 -[112,1](236, 236) -> 233 -[112,1](237, 236) -> 234 -[112,1](238, 236) -> 235 -[113,1](239, 239) -> 236 -[113,1](240, 239) -> 237 -[113,1](241, 239) -> 238 -[114,1](242, 242) -> 239 -[114,1](243, 242) -> 240 -[114,1](244, 242) -> 241 -[115,1](245, 245) -> 242 -[115,1](246, 245) -> 243 -[115,1](247, 245) -> 244 -[116,1](248, 248) -> 245 -[116,1](249, 248) -> 246 -[116,1](250, 248) -> 247 -[117,1](251, 251) -> 248 -[117,1](252, 251) -> 249 -[117,1](253, 251) -> 250 -[118,1](254, 254) -> 251 -[118,1](255, 254) -> 252 -[118,1](256, 254) -> 253 -[119,1](257, 257) -> 254 -[119,1](258, 257) -> 255 -[119,1](259, 257) -> 256 -[120,1](260, 260) -> 257 -[120,1](261, 260) -> 258 -[120,1](262, 260) -> 259 -[121,1](263, 263) -> 260 -[121,1](264, 263) -> 261 -[121,1](265, 263) -> 262 -[122,1](266, 266) -> 263 -[122,1](267, 266) -> 264 -[122,1](268, 266) -> 265 -[123,1](269, 269) -> 266 -[123,1](270, 269) -> 267 -[123,1](271, 269) -> 268 -[124,1](272, 272) -> 269 -[124,1](273, 272) -> 270 -[124,1](274, 272) -> 271 -[125,1](275, 275) -> 272 -[125,1](276, 275) -> 273 -[125,1](277, 275) -> 274 -[126,1](278, 278) -> 275 -[126,1](279, 278) -> 276 -[126,1](280, 278) -> 277 -[127,1](281, 281) -> 278 -[127,1](282, 281) -> 279 -[127,1](283, 281) -> 280 -[128,1](284, 284) -> 281 -[128,1](285, 284) -> 282 -[128,1](286, 284) -> 283 -[129,1](287, 287) -> 284 -[129,1](288, 287) -> 285 -[129,1](289, 287) -> 286 -[130,1](290, 290) -> 287 -[130,1](291, 290) -> 288 -[130,1](292, 290) -> 289 -[131,1](293, 293) -> 290 -[131,1](294, 293) -> 291 -[131,1](295, 293) -> 292 -[132,1](296, 296) -> 293 -[132,1](297, 296) -> 294 -[132,1](298, 296) -> 295 -[133,1](299, 299) -> 296 -[133,1](300, 299) -> 297 -[133,1](301, 299) -> 298 -[134,1](302, 302) -> 299 -[134,1](303, 302) -> 300 -[134,1](304, 302) -> 301 -[135,1](305, 305) -> 302 -[135,1](306, 305) -> 303 -[135,1](307, 305) -> 304 -[136,1](308, 308) -> 305 -[136,1](309, 308) -> 306 -[136,1](310, 308) -> 307 -[137,1](311, 311) -> 308 -[137,1](312, 311) -> 309 -[137,1](313, 311) -> 310 -[138,1](314, 314) -> 311 -[138,1](315, 314) -> 312 -[138,1](316, 314) -> 313 -[139,1](317, 317) -> 314 -[139,1](318, 317) -> 315 -[139,1](319, 317) -> 316 -[140,1](320, 320) -> 317 -[140,1](321, 320) -> 318 -[140,1](322, 320) -> 319 -[141,1](323, 323) -> 320 -[141,1](324, 323) -> 321 -[141,1](325, 323) -> 322 -[142,1](326, 326) -> 323 -[142,1](327, 326) -> 324 -[142,1](328, 326) -> 325 -[143,1](329, 329) -> 326 -[143,1](330, 329) -> 327 -[143,1](331, 329) -> 328 -[144,1](332, 332) -> 329 -[144,1](333, 332) -> 330 -[144,1](334, 332) -> 331 -[145,1](335, 335) -> 332 -[145,1](336, 335) -> 333 -[145,1](337, 335) -> 334 -[146,1](338, 338) -> 335 -[146,1](339, 338) -> 336 -[146,1](340, 338) -> 337 -[147,1](341, 341) -> 338 -[147,1](342, 341) -> 339 -[147,1](343, 341) -> 340 -[148,1](344, 344) -> 341 -[148,1](345, 344) -> 342 -[148,1](346, 344) -> 343 -[149,1](347, 347) -> 344 -[149,1](348, 347) -> 345 -[149,1](349, 347) -> 346 -[150,1](350, 350) -> 347 -[150,1](351, 350) -> 348 -[150,1](352, 350) -> 349 -[151,1](353, 353) -> 350 -[151,1](354, 353) -> 351 -[151,1](355, 353) -> 352 -[152,1](356, 356) -> 353 -[152,1](357, 356) -> 354 -[152,1](358, 356) -> 355 -[153,1](359, 359) -> 356 -[153,1](360, 359) -> 357 -[153,1](361, 359) -> 358 -[154,1](362, 362) -> 359 -[154,1](363, 362) -> 360 -[154,1](364, 362) -> 361 -[155,1](365, 365) -> 362 -[155,1](366, 365) -> 363 -[155,1](367, 365) -> 364 -[156,1](368, 368) -> 365 -[156,1](369, 368) -> 366 -[156,1](370, 368) -> 367 -[157,1](371, 371) -> 368 -[157,1](372, 371) -> 369 -[157,1](373, 371) -> 370 -[158,1](374, 374) -> 371 -[158,1](375, 374) -> 372 -[158,1](376, 374) -> 373 -[159,1](377, 377) -> 374 -[159,1](378, 377) -> 375 -[159,1](379, 377) -> 376 -[160,1](380, 380) -> 377 -[160,1](381, 380) -> 378 -[160,1](382, 380) -> 379 -[161,1](383, 383) -> 380 -[161,1](384, 383) -> 381 -[161,1](385, 383) -> 382 -[162,1](386, 386) -> 383 -[162,1](387, 386) -> 384 -[162,1](388, 386) -> 385 -[163,1](389, 389) -> 386 -[163,1](390, 389) -> 387 -[163,1](391, 389) -> 388 -[164,1](392, 392) -> 389 -[164,1](393, 392) -> 390 -[164,1](394, 392) -> 391 -[165,1](395, 395) -> 392 -[165,1](396, 395) -> 393 -[165,1](397, 395) -> 394 -[166,1](398, 398) -> 395 -[166,1](399, 398) -> 396 -[166,1](400, 398) -> 397 -[167,1](401, 401) -> 398 -[167,1](402, 401) -> 399 -[167,1](403, 401) -> 400 -[168,1](404, 404) -> 401 -[168,1](405, 404) -> 402 -[168,1](406, 404) -> 403 -[169,1](407, 407) -> 404 -[169,1](408, 407) -> 405 -[169,1](409, 407) -> 406 -[170,1](410, 410) -> 407 -[170,1](411, 410) -> 408 -[170,1](412, 410) -> 409 -[171,1](413, 413) -> 410 -[171,1](414, 413) -> 411 -[171,1](415, 413) -> 412 -[172,1](416, 416) -> 413 -[172,1](417, 416) -> 414 -[172,1](418, 416) -> 415 -[173,1](419, 419) -> 416 -[173,1](420, 419) -> 417 -[173,1](421, 419) -> 418 -[174,1](422, 422) -> 419 -[174,1](423, 422) -> 420 -[174,1](424, 422) -> 421 -[175,1](425, 425) -> 422 -[175,1](426, 425) -> 423 -[175,1](427, 425) -> 424 -[176,1](428, 428) -> 425 -[176,1](429, 428) -> 426 -[176,1](430, 428) -> 427 -[177,1](431, 431) -> 428 -[177,1](432, 431) -> 429 -[177,1](433, 431) -> 430 -[178,1](434, 434) -> 431 -[178,1](435, 434) -> 432 -[178,1](436, 434) -> 433 -[179,1](437, 437) -> 434 -[179,1](438, 437) -> 435 -[179,1](439, 437) -> 436 -[180,1](440, 440) -> 437 -[180,1](441, 440) -> 438 -[180,1](442, 440) -> 439 -[181,1](443, 443) -> 440 -[181,1](444, 443) -> 441 -[181,1](445, 443) -> 442 -[182,1](446, 446) -> 443 -[182,1](447, 446) -> 444 -[182,1](448, 446) -> 445 -[183,1](449, 449) -> 446 -[183,1](450, 449) -> 447 -[183,1](451, 449) -> 448 -[184,1](452, 452) -> 449 -[184,1](453, 452) -> 450 -[184,1](454, 452) -> 451 -[185,1](455, 455) -> 452 -[185,1](456, 455) -> 453 -[185,1](457, 455) -> 454 -[186,1](458, 458) -> 455 -[186,1](459, 458) -> 456 -[186,1](460, 458) -> 457 -[187,1](461, 461) -> 458 -[187,1](462, 461) -> 459 -[187,1](463, 461) -> 460 -[188,1](464, 464) -> 461 -[188,1](465, 464) -> 462 -[188,1](466, 464) -> 463 -[189,1](467, 467) -> 464 -[189,1](468, 467) -> 465 -[189,1](469, 467) -> 466 -[190,1](470, 470) -> 467 -[190,1](471, 470) -> 468 -[190,1](472, 470) -> 469 -[191,1](473, 473) -> 470 -[191,1](474, 473) -> 471 -[191,1](475, 473) -> 472 -[192,1](476, 476) -> 473 -[192,1](477, 476) -> 474 -[192,1](478, 476) -> 475 -[193,1](479, 479) -> 476 -[193,1](480, 479) -> 477 -[193,1](481, 479) -> 478 -[194,1](482, 482) -> 479 -[194,1](483, 482) -> 480 -[194,1](484, 482) -> 481 -[195,1](485, 485) -> 482 -[195,1](486, 485) -> 483 -[195,1](487, 485) -> 484 -[196,1](488, 488) -> 485 -[196,1](489, 488) -> 486 -[196,1](490, 488) -> 487 -[c0,1] -> 488 -[a,1] -> 489 -[b,1] -> 490 -Constraints -316912650057057350374175801343 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/99/circuit.qasm b/benchmarks/all/OEGrover/99/circuit.qasm index 1bd4247b9..79ba5f942 100644 --- a/benchmarks/all/OEGrover/99/circuit.qasm +++ b/benchmarks/all/OEGrover/99/circuit.qasm @@ -1,252 +1,252 @@ OPENQASM 2.0; include "qelib1.inc"; -qreg qubits[198]; +qreg qubits[197]; x qubits[0]; -x qubits[2]; -x qubits[4]; -x qubits[6]; -x qubits[8]; -x qubits[10]; -x qubits[12]; -x qubits[14]; -x qubits[16]; -x qubits[18]; -x qubits[20]; -x qubits[22]; -x qubits[24]; -x qubits[26]; -x qubits[28]; -x qubits[30]; -x qubits[32]; -x qubits[34]; -x qubits[36]; -x qubits[38]; -x qubits[40]; -x qubits[42]; -x qubits[44]; -x qubits[46]; -x qubits[48]; -x qubits[50]; -x qubits[52]; -x qubits[54]; -x qubits[56]; -x qubits[58]; -x qubits[60]; -x qubits[62]; -x qubits[64]; -x qubits[66]; -x qubits[68]; -x qubits[70]; -x qubits[72]; -x qubits[74]; -x qubits[76]; -x qubits[78]; -x qubits[80]; -x qubits[82]; -x qubits[84]; -x qubits[86]; -x qubits[88]; -x qubits[90]; -x qubits[92]; -x qubits[94]; -x qubits[96]; -x qubits[98]; -ccx qubits[0], qubits[1], qubits[100]; -ccx qubits[2], qubits[100], qubits[101]; -ccx qubits[3], qubits[101], qubits[102]; -ccx qubits[4], qubits[102], qubits[103]; -ccx qubits[5], qubits[103], qubits[104]; -ccx qubits[6], qubits[104], qubits[105]; -ccx qubits[7], qubits[105], qubits[106]; -ccx qubits[8], qubits[106], qubits[107]; -ccx qubits[9], qubits[107], qubits[108]; -ccx qubits[10], qubits[108], qubits[109]; -ccx qubits[11], qubits[109], qubits[110]; -ccx qubits[12], qubits[110], qubits[111]; -ccx qubits[13], qubits[111], qubits[112]; -ccx qubits[14], qubits[112], qubits[113]; -ccx qubits[15], qubits[113], qubits[114]; -ccx qubits[16], qubits[114], qubits[115]; -ccx qubits[17], qubits[115], qubits[116]; -ccx qubits[18], qubits[116], qubits[117]; -ccx qubits[19], qubits[117], qubits[118]; -ccx qubits[20], qubits[118], qubits[119]; -ccx qubits[21], qubits[119], qubits[120]; -ccx qubits[22], qubits[120], qubits[121]; -ccx qubits[23], qubits[121], qubits[122]; -ccx qubits[24], qubits[122], qubits[123]; -ccx qubits[25], qubits[123], qubits[124]; -ccx qubits[26], qubits[124], qubits[125]; -ccx qubits[27], qubits[125], qubits[126]; -ccx qubits[28], qubits[126], qubits[127]; -ccx qubits[29], qubits[127], qubits[128]; -ccx qubits[30], qubits[128], qubits[129]; -ccx qubits[31], qubits[129], qubits[130]; -ccx qubits[32], qubits[130], qubits[131]; -ccx qubits[33], qubits[131], qubits[132]; -ccx qubits[34], qubits[132], qubits[133]; -ccx qubits[35], qubits[133], qubits[134]; -ccx qubits[36], qubits[134], qubits[135]; -ccx qubits[37], qubits[135], qubits[136]; -ccx qubits[38], qubits[136], qubits[137]; -ccx qubits[39], qubits[137], qubits[138]; -ccx qubits[40], qubits[138], qubits[139]; -ccx qubits[41], qubits[139], qubits[140]; -ccx qubits[42], qubits[140], qubits[141]; -ccx qubits[43], qubits[141], qubits[142]; -ccx qubits[44], qubits[142], qubits[143]; -ccx qubits[45], qubits[143], qubits[144]; -ccx qubits[46], qubits[144], qubits[145]; -ccx qubits[47], qubits[145], qubits[146]; -ccx qubits[48], qubits[146], qubits[147]; -ccx qubits[49], qubits[147], qubits[148]; -ccx qubits[50], qubits[148], qubits[149]; -ccx qubits[51], qubits[149], qubits[150]; -ccx qubits[52], qubits[150], qubits[151]; -ccx qubits[53], qubits[151], qubits[152]; -ccx qubits[54], qubits[152], qubits[153]; -ccx qubits[55], qubits[153], qubits[154]; -ccx qubits[56], qubits[154], qubits[155]; -ccx qubits[57], qubits[155], qubits[156]; -ccx qubits[58], qubits[156], qubits[157]; -ccx qubits[59], qubits[157], qubits[158]; -ccx qubits[60], qubits[158], qubits[159]; -ccx qubits[61], qubits[159], qubits[160]; -ccx qubits[62], qubits[160], qubits[161]; -ccx qubits[63], qubits[161], qubits[162]; -ccx qubits[64], qubits[162], qubits[163]; -ccx qubits[65], qubits[163], qubits[164]; -ccx qubits[66], qubits[164], qubits[165]; -ccx qubits[67], qubits[165], qubits[166]; -ccx qubits[68], qubits[166], qubits[167]; -ccx qubits[69], qubits[167], qubits[168]; -ccx qubits[70], qubits[168], qubits[169]; -ccx qubits[71], qubits[169], qubits[170]; -ccx qubits[72], qubits[170], qubits[171]; -ccx qubits[73], qubits[171], qubits[172]; -ccx qubits[74], qubits[172], qubits[173]; -ccx qubits[75], qubits[173], qubits[174]; -ccx qubits[76], qubits[174], qubits[175]; -ccx qubits[77], qubits[175], qubits[176]; -ccx qubits[78], qubits[176], qubits[177]; -ccx qubits[79], qubits[177], qubits[178]; -ccx qubits[80], qubits[178], qubits[179]; -ccx qubits[81], qubits[179], qubits[180]; -ccx qubits[82], qubits[180], qubits[181]; -ccx qubits[83], qubits[181], qubits[182]; -ccx qubits[84], qubits[182], qubits[183]; -ccx qubits[85], qubits[183], qubits[184]; -ccx qubits[86], qubits[184], qubits[185]; -ccx qubits[87], qubits[185], qubits[186]; -ccx qubits[88], qubits[186], qubits[187]; -ccx qubits[89], qubits[187], qubits[188]; -ccx qubits[90], qubits[188], qubits[189]; -ccx qubits[91], qubits[189], qubits[190]; -ccx qubits[92], qubits[190], qubits[191]; -ccx qubits[93], qubits[191], qubits[192]; -ccx qubits[94], qubits[192], qubits[193]; -ccx qubits[95], qubits[193], qubits[194]; -ccx qubits[96], qubits[194], qubits[195]; -ccx qubits[97], qubits[195], qubits[196]; -cz qubits[196], qubits[98]; -ccx qubits[97], qubits[195], qubits[196]; -ccx qubits[96], qubits[194], qubits[195]; -ccx qubits[95], qubits[193], qubits[194]; -ccx qubits[94], qubits[192], qubits[193]; -ccx qubits[93], qubits[191], qubits[192]; -ccx qubits[92], qubits[190], qubits[191]; -ccx qubits[91], qubits[189], qubits[190]; -ccx qubits[90], qubits[188], qubits[189]; -ccx qubits[89], qubits[187], qubits[188]; -ccx qubits[88], qubits[186], qubits[187]; -ccx qubits[87], qubits[185], qubits[186]; -ccx qubits[86], qubits[184], qubits[185]; -ccx qubits[85], qubits[183], qubits[184]; -ccx qubits[84], qubits[182], qubits[183]; -ccx qubits[83], qubits[181], qubits[182]; -ccx qubits[82], qubits[180], qubits[181]; -ccx qubits[81], qubits[179], qubits[180]; -ccx qubits[80], qubits[178], qubits[179]; -ccx qubits[79], qubits[177], qubits[178]; -ccx qubits[78], qubits[176], qubits[177]; -ccx qubits[77], qubits[175], qubits[176]; -ccx qubits[76], qubits[174], qubits[175]; -ccx qubits[75], qubits[173], qubits[174]; -ccx qubits[74], qubits[172], qubits[173]; -ccx qubits[73], qubits[171], qubits[172]; -ccx qubits[72], qubits[170], qubits[171]; -ccx qubits[71], qubits[169], qubits[170]; -ccx qubits[70], qubits[168], qubits[169]; -ccx qubits[69], qubits[167], qubits[168]; -ccx qubits[68], qubits[166], qubits[167]; -ccx qubits[67], qubits[165], qubits[166]; -ccx qubits[66], qubits[164], qubits[165]; -ccx qubits[65], qubits[163], qubits[164]; -ccx qubits[64], qubits[162], qubits[163]; -ccx qubits[63], qubits[161], qubits[162]; -ccx qubits[62], qubits[160], qubits[161]; -ccx qubits[61], qubits[159], qubits[160]; -ccx qubits[60], qubits[158], qubits[159]; -ccx qubits[59], qubits[157], qubits[158]; -ccx qubits[58], qubits[156], qubits[157]; -ccx qubits[57], qubits[155], qubits[156]; -ccx qubits[56], qubits[154], qubits[155]; -ccx qubits[55], qubits[153], qubits[154]; -ccx qubits[54], qubits[152], qubits[153]; -ccx qubits[53], qubits[151], qubits[152]; -ccx qubits[52], qubits[150], qubits[151]; -ccx qubits[51], qubits[149], qubits[150]; -ccx qubits[50], qubits[148], qubits[149]; -ccx qubits[49], qubits[147], qubits[148]; -ccx qubits[48], qubits[146], qubits[147]; -ccx qubits[47], qubits[145], qubits[146]; -ccx qubits[46], qubits[144], qubits[145]; -ccx qubits[45], qubits[143], qubits[144]; -ccx qubits[44], qubits[142], qubits[143]; -ccx qubits[43], qubits[141], qubits[142]; -ccx qubits[42], qubits[140], qubits[141]; -ccx qubits[41], qubits[139], qubits[140]; -ccx qubits[40], qubits[138], qubits[139]; -ccx qubits[39], qubits[137], qubits[138]; -ccx qubits[38], qubits[136], qubits[137]; -ccx qubits[37], qubits[135], qubits[136]; -ccx qubits[36], qubits[134], qubits[135]; -ccx qubits[35], qubits[133], qubits[134]; -ccx qubits[34], qubits[132], qubits[133]; -ccx qubits[33], qubits[131], qubits[132]; -ccx qubits[32], qubits[130], qubits[131]; -ccx qubits[31], qubits[129], qubits[130]; -ccx qubits[30], qubits[128], qubits[129]; -ccx qubits[29], qubits[127], qubits[128]; -ccx qubits[28], qubits[126], qubits[127]; -ccx qubits[27], qubits[125], qubits[126]; -ccx qubits[26], qubits[124], qubits[125]; -ccx qubits[25], qubits[123], qubits[124]; -ccx qubits[24], qubits[122], qubits[123]; -ccx qubits[23], qubits[121], qubits[122]; -ccx qubits[22], qubits[120], qubits[121]; -ccx qubits[21], qubits[119], qubits[120]; -ccx qubits[20], qubits[118], qubits[119]; -ccx qubits[19], qubits[117], qubits[118]; -ccx qubits[18], qubits[116], qubits[117]; -ccx qubits[17], qubits[115], qubits[116]; -ccx qubits[16], qubits[114], qubits[115]; -ccx qubits[15], qubits[113], qubits[114]; -ccx qubits[14], qubits[112], qubits[113]; -ccx qubits[13], qubits[111], qubits[112]; -ccx qubits[12], qubits[110], qubits[111]; -ccx qubits[11], qubits[109], qubits[110]; -ccx qubits[10], qubits[108], qubits[109]; -ccx qubits[9], qubits[107], qubits[108]; -ccx qubits[8], qubits[106], qubits[107]; -ccx qubits[7], qubits[105], qubits[106]; -ccx qubits[6], qubits[104], qubits[105]; -ccx qubits[5], qubits[103], qubits[104]; -ccx qubits[4], qubits[102], qubits[103]; -ccx qubits[3], qubits[101], qubits[102]; -ccx qubits[2], qubits[100], qubits[101]; -ccx qubits[0], qubits[1], qubits[100]; +x qubits[3]; +x qubits[7]; +x qubits[11]; +x qubits[15]; +x qubits[19]; +x qubits[23]; +x qubits[27]; +x qubits[31]; +x qubits[35]; +x qubits[39]; +x qubits[43]; +x qubits[47]; +x qubits[51]; +x qubits[55]; +x qubits[59]; +x qubits[63]; +x qubits[67]; +x qubits[71]; +x qubits[75]; +x qubits[79]; +x qubits[83]; +x qubits[87]; +x qubits[91]; +x qubits[95]; +x qubits[99]; +x qubits[103]; +x qubits[107]; +x qubits[111]; +x qubits[115]; +x qubits[119]; +x qubits[123]; +x qubits[127]; +x qubits[131]; +x qubits[135]; +x qubits[139]; +x qubits[143]; +x qubits[147]; +x qubits[151]; +x qubits[155]; +x qubits[159]; +x qubits[163]; +x qubits[167]; +x qubits[171]; +x qubits[175]; +x qubits[179]; +x qubits[183]; +x qubits[187]; +x qubits[191]; +x qubits[195]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[192], qubits[193], qubits[194]; +cz qubits[194], qubits[195]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[2]; x qubits[4]; @@ -299,593 +299,593 @@ x qubits[96]; x qubits[98]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; h qubits[97]; -h qubits[98]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +h qubits[193]; +h qubits[195]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; x qubits[97]; -x qubits[98]; -ccx qubits[0], qubits[1], qubits[100]; -ccx qubits[2], qubits[100], qubits[101]; -ccx qubits[3], qubits[101], qubits[102]; -ccx qubits[4], qubits[102], qubits[103]; -ccx qubits[5], qubits[103], qubits[104]; -ccx qubits[6], qubits[104], qubits[105]; -ccx qubits[7], qubits[105], qubits[106]; -ccx qubits[8], qubits[106], qubits[107]; -ccx qubits[9], qubits[107], qubits[108]; -ccx qubits[10], qubits[108], qubits[109]; -ccx qubits[11], qubits[109], qubits[110]; -ccx qubits[12], qubits[110], qubits[111]; -ccx qubits[13], qubits[111], qubits[112]; -ccx qubits[14], qubits[112], qubits[113]; -ccx qubits[15], qubits[113], qubits[114]; -ccx qubits[16], qubits[114], qubits[115]; -ccx qubits[17], qubits[115], qubits[116]; -ccx qubits[18], qubits[116], qubits[117]; -ccx qubits[19], qubits[117], qubits[118]; -ccx qubits[20], qubits[118], qubits[119]; -ccx qubits[21], qubits[119], qubits[120]; -ccx qubits[22], qubits[120], qubits[121]; -ccx qubits[23], qubits[121], qubits[122]; -ccx qubits[24], qubits[122], qubits[123]; -ccx qubits[25], qubits[123], qubits[124]; -ccx qubits[26], qubits[124], qubits[125]; -ccx qubits[27], qubits[125], qubits[126]; -ccx qubits[28], qubits[126], qubits[127]; -ccx qubits[29], qubits[127], qubits[128]; -ccx qubits[30], qubits[128], qubits[129]; -ccx qubits[31], qubits[129], qubits[130]; -ccx qubits[32], qubits[130], qubits[131]; -ccx qubits[33], qubits[131], qubits[132]; -ccx qubits[34], qubits[132], qubits[133]; -ccx qubits[35], qubits[133], qubits[134]; -ccx qubits[36], qubits[134], qubits[135]; -ccx qubits[37], qubits[135], qubits[136]; -ccx qubits[38], qubits[136], qubits[137]; -ccx qubits[39], qubits[137], qubits[138]; -ccx qubits[40], qubits[138], qubits[139]; -ccx qubits[41], qubits[139], qubits[140]; -ccx qubits[42], qubits[140], qubits[141]; -ccx qubits[43], qubits[141], qubits[142]; -ccx qubits[44], qubits[142], qubits[143]; -ccx qubits[45], qubits[143], qubits[144]; -ccx qubits[46], qubits[144], qubits[145]; -ccx qubits[47], qubits[145], qubits[146]; -ccx qubits[48], qubits[146], qubits[147]; -ccx qubits[49], qubits[147], qubits[148]; -ccx qubits[50], qubits[148], qubits[149]; -ccx qubits[51], qubits[149], qubits[150]; -ccx qubits[52], qubits[150], qubits[151]; -ccx qubits[53], qubits[151], qubits[152]; -ccx qubits[54], qubits[152], qubits[153]; -ccx qubits[55], qubits[153], qubits[154]; -ccx qubits[56], qubits[154], qubits[155]; -ccx qubits[57], qubits[155], qubits[156]; -ccx qubits[58], qubits[156], qubits[157]; -ccx qubits[59], qubits[157], qubits[158]; -ccx qubits[60], qubits[158], qubits[159]; -ccx qubits[61], qubits[159], qubits[160]; -ccx qubits[62], qubits[160], qubits[161]; -ccx qubits[63], qubits[161], qubits[162]; -ccx qubits[64], qubits[162], qubits[163]; -ccx qubits[65], qubits[163], qubits[164]; -ccx qubits[66], qubits[164], qubits[165]; -ccx qubits[67], qubits[165], qubits[166]; -ccx qubits[68], qubits[166], qubits[167]; -ccx qubits[69], qubits[167], qubits[168]; -ccx qubits[70], qubits[168], qubits[169]; -ccx qubits[71], qubits[169], qubits[170]; -ccx qubits[72], qubits[170], qubits[171]; -ccx qubits[73], qubits[171], qubits[172]; -ccx qubits[74], qubits[172], qubits[173]; -ccx qubits[75], qubits[173], qubits[174]; -ccx qubits[76], qubits[174], qubits[175]; -ccx qubits[77], qubits[175], qubits[176]; -ccx qubits[78], qubits[176], qubits[177]; -ccx qubits[79], qubits[177], qubits[178]; -ccx qubits[80], qubits[178], qubits[179]; -ccx qubits[81], qubits[179], qubits[180]; -ccx qubits[82], qubits[180], qubits[181]; -ccx qubits[83], qubits[181], qubits[182]; -ccx qubits[84], qubits[182], qubits[183]; -ccx qubits[85], qubits[183], qubits[184]; -ccx qubits[86], qubits[184], qubits[185]; -ccx qubits[87], qubits[185], qubits[186]; -ccx qubits[88], qubits[186], qubits[187]; -ccx qubits[89], qubits[187], qubits[188]; -ccx qubits[90], qubits[188], qubits[189]; -ccx qubits[91], qubits[189], qubits[190]; -ccx qubits[92], qubits[190], qubits[191]; -ccx qubits[93], qubits[191], qubits[192]; -ccx qubits[94], qubits[192], qubits[193]; -ccx qubits[95], qubits[193], qubits[194]; -ccx qubits[96], qubits[194], qubits[195]; -ccx qubits[97], qubits[195], qubits[196]; -cz qubits[196], qubits[98]; -ccx qubits[97], qubits[195], qubits[196]; -ccx qubits[96], qubits[194], qubits[195]; -ccx qubits[95], qubits[193], qubits[194]; -ccx qubits[94], qubits[192], qubits[193]; -ccx qubits[93], qubits[191], qubits[192]; -ccx qubits[92], qubits[190], qubits[191]; -ccx qubits[91], qubits[189], qubits[190]; -ccx qubits[90], qubits[188], qubits[189]; -ccx qubits[89], qubits[187], qubits[188]; -ccx qubits[88], qubits[186], qubits[187]; -ccx qubits[87], qubits[185], qubits[186]; -ccx qubits[86], qubits[184], qubits[185]; -ccx qubits[85], qubits[183], qubits[184]; -ccx qubits[84], qubits[182], qubits[183]; -ccx qubits[83], qubits[181], qubits[182]; -ccx qubits[82], qubits[180], qubits[181]; -ccx qubits[81], qubits[179], qubits[180]; -ccx qubits[80], qubits[178], qubits[179]; -ccx qubits[79], qubits[177], qubits[178]; -ccx qubits[78], qubits[176], qubits[177]; -ccx qubits[77], qubits[175], qubits[176]; -ccx qubits[76], qubits[174], qubits[175]; -ccx qubits[75], qubits[173], qubits[174]; -ccx qubits[74], qubits[172], qubits[173]; -ccx qubits[73], qubits[171], qubits[172]; -ccx qubits[72], qubits[170], qubits[171]; -ccx qubits[71], qubits[169], qubits[170]; -ccx qubits[70], qubits[168], qubits[169]; -ccx qubits[69], qubits[167], qubits[168]; -ccx qubits[68], qubits[166], qubits[167]; -ccx qubits[67], qubits[165], qubits[166]; -ccx qubits[66], qubits[164], qubits[165]; -ccx qubits[65], qubits[163], qubits[164]; -ccx qubits[64], qubits[162], qubits[163]; -ccx qubits[63], qubits[161], qubits[162]; -ccx qubits[62], qubits[160], qubits[161]; -ccx qubits[61], qubits[159], qubits[160]; -ccx qubits[60], qubits[158], qubits[159]; -ccx qubits[59], qubits[157], qubits[158]; -ccx qubits[58], qubits[156], qubits[157]; -ccx qubits[57], qubits[155], qubits[156]; -ccx qubits[56], qubits[154], qubits[155]; -ccx qubits[55], qubits[153], qubits[154]; -ccx qubits[54], qubits[152], qubits[153]; -ccx qubits[53], qubits[151], qubits[152]; -ccx qubits[52], qubits[150], qubits[151]; -ccx qubits[51], qubits[149], qubits[150]; -ccx qubits[50], qubits[148], qubits[149]; -ccx qubits[49], qubits[147], qubits[148]; -ccx qubits[48], qubits[146], qubits[147]; -ccx qubits[47], qubits[145], qubits[146]; -ccx qubits[46], qubits[144], qubits[145]; -ccx qubits[45], qubits[143], qubits[144]; -ccx qubits[44], qubits[142], qubits[143]; -ccx qubits[43], qubits[141], qubits[142]; -ccx qubits[42], qubits[140], qubits[141]; -ccx qubits[41], qubits[139], qubits[140]; -ccx qubits[40], qubits[138], qubits[139]; -ccx qubits[39], qubits[137], qubits[138]; -ccx qubits[38], qubits[136], qubits[137]; -ccx qubits[37], qubits[135], qubits[136]; -ccx qubits[36], qubits[134], qubits[135]; -ccx qubits[35], qubits[133], qubits[134]; -ccx qubits[34], qubits[132], qubits[133]; -ccx qubits[33], qubits[131], qubits[132]; -ccx qubits[32], qubits[130], qubits[131]; -ccx qubits[31], qubits[129], qubits[130]; -ccx qubits[30], qubits[128], qubits[129]; -ccx qubits[29], qubits[127], qubits[128]; -ccx qubits[28], qubits[126], qubits[127]; -ccx qubits[27], qubits[125], qubits[126]; -ccx qubits[26], qubits[124], qubits[125]; -ccx qubits[25], qubits[123], qubits[124]; -ccx qubits[24], qubits[122], qubits[123]; -ccx qubits[23], qubits[121], qubits[122]; -ccx qubits[22], qubits[120], qubits[121]; -ccx qubits[21], qubits[119], qubits[120]; -ccx qubits[20], qubits[118], qubits[119]; -ccx qubits[19], qubits[117], qubits[118]; -ccx qubits[18], qubits[116], qubits[117]; -ccx qubits[17], qubits[115], qubits[116]; -ccx qubits[16], qubits[114], qubits[115]; -ccx qubits[15], qubits[113], qubits[114]; -ccx qubits[14], qubits[112], qubits[113]; -ccx qubits[13], qubits[111], qubits[112]; -ccx qubits[12], qubits[110], qubits[111]; -ccx qubits[11], qubits[109], qubits[110]; -ccx qubits[10], qubits[108], qubits[109]; -ccx qubits[9], qubits[107], qubits[108]; -ccx qubits[8], qubits[106], qubits[107]; -ccx qubits[7], qubits[105], qubits[106]; -ccx qubits[6], qubits[104], qubits[105]; -ccx qubits[5], qubits[103], qubits[104]; -ccx qubits[4], qubits[102], qubits[103]; -ccx qubits[3], qubits[101], qubits[102]; -ccx qubits[2], qubits[100], qubits[101]; -ccx qubits[0], qubits[1], qubits[100]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +x qubits[193]; +x qubits[195]; +ccx qubits[0], qubits[1], qubits[2]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[192], qubits[193], qubits[194]; +cz qubits[194], qubits[195]; +ccx qubits[192], qubits[193], qubits[194]; +ccx qubits[190], qubits[191], qubits[192]; +ccx qubits[188], qubits[189], qubits[190]; +ccx qubits[186], qubits[187], qubits[188]; +ccx qubits[184], qubits[185], qubits[186]; +ccx qubits[182], qubits[183], qubits[184]; +ccx qubits[180], qubits[181], qubits[182]; +ccx qubits[178], qubits[179], qubits[180]; +ccx qubits[176], qubits[177], qubits[178]; +ccx qubits[174], qubits[175], qubits[176]; +ccx qubits[172], qubits[173], qubits[174]; +ccx qubits[170], qubits[171], qubits[172]; +ccx qubits[168], qubits[169], qubits[170]; +ccx qubits[166], qubits[167], qubits[168]; +ccx qubits[164], qubits[165], qubits[166]; +ccx qubits[162], qubits[163], qubits[164]; +ccx qubits[160], qubits[161], qubits[162]; +ccx qubits[158], qubits[159], qubits[160]; +ccx qubits[156], qubits[157], qubits[158]; +ccx qubits[154], qubits[155], qubits[156]; +ccx qubits[152], qubits[153], qubits[154]; +ccx qubits[150], qubits[151], qubits[152]; +ccx qubits[148], qubits[149], qubits[150]; +ccx qubits[146], qubits[147], qubits[148]; +ccx qubits[144], qubits[145], qubits[146]; +ccx qubits[142], qubits[143], qubits[144]; +ccx qubits[140], qubits[141], qubits[142]; +ccx qubits[138], qubits[139], qubits[140]; +ccx qubits[136], qubits[137], qubits[138]; +ccx qubits[134], qubits[135], qubits[136]; +ccx qubits[132], qubits[133], qubits[134]; +ccx qubits[130], qubits[131], qubits[132]; +ccx qubits[128], qubits[129], qubits[130]; +ccx qubits[126], qubits[127], qubits[128]; +ccx qubits[124], qubits[125], qubits[126]; +ccx qubits[122], qubits[123], qubits[124]; +ccx qubits[120], qubits[121], qubits[122]; +ccx qubits[118], qubits[119], qubits[120]; +ccx qubits[116], qubits[117], qubits[118]; +ccx qubits[114], qubits[115], qubits[116]; +ccx qubits[112], qubits[113], qubits[114]; +ccx qubits[110], qubits[111], qubits[112]; +ccx qubits[108], qubits[109], qubits[110]; +ccx qubits[106], qubits[107], qubits[108]; +ccx qubits[104], qubits[105], qubits[106]; +ccx qubits[102], qubits[103], qubits[104]; +ccx qubits[100], qubits[101], qubits[102]; +ccx qubits[98], qubits[99], qubits[100]; +ccx qubits[96], qubits[97], qubits[98]; +ccx qubits[94], qubits[95], qubits[96]; +ccx qubits[92], qubits[93], qubits[94]; +ccx qubits[90], qubits[91], qubits[92]; +ccx qubits[88], qubits[89], qubits[90]; +ccx qubits[86], qubits[87], qubits[88]; +ccx qubits[84], qubits[85], qubits[86]; +ccx qubits[82], qubits[83], qubits[84]; +ccx qubits[80], qubits[81], qubits[82]; +ccx qubits[78], qubits[79], qubits[80]; +ccx qubits[76], qubits[77], qubits[78]; +ccx qubits[74], qubits[75], qubits[76]; +ccx qubits[72], qubits[73], qubits[74]; +ccx qubits[70], qubits[71], qubits[72]; +ccx qubits[68], qubits[69], qubits[70]; +ccx qubits[66], qubits[67], qubits[68]; +ccx qubits[64], qubits[65], qubits[66]; +ccx qubits[62], qubits[63], qubits[64]; +ccx qubits[60], qubits[61], qubits[62]; +ccx qubits[58], qubits[59], qubits[60]; +ccx qubits[56], qubits[57], qubits[58]; +ccx qubits[54], qubits[55], qubits[56]; +ccx qubits[52], qubits[53], qubits[54]; +ccx qubits[50], qubits[51], qubits[52]; +ccx qubits[48], qubits[49], qubits[50]; +ccx qubits[46], qubits[47], qubits[48]; +ccx qubits[44], qubits[45], qubits[46]; +ccx qubits[42], qubits[43], qubits[44]; +ccx qubits[40], qubits[41], qubits[42]; +ccx qubits[38], qubits[39], qubits[40]; +ccx qubits[36], qubits[37], qubits[38]; +ccx qubits[34], qubits[35], qubits[36]; +ccx qubits[32], qubits[33], qubits[34]; +ccx qubits[30], qubits[31], qubits[32]; +ccx qubits[28], qubits[29], qubits[30]; +ccx qubits[26], qubits[27], qubits[28]; +ccx qubits[24], qubits[25], qubits[26]; +ccx qubits[22], qubits[23], qubits[24]; +ccx qubits[20], qubits[21], qubits[22]; +ccx qubits[18], qubits[19], qubits[20]; +ccx qubits[16], qubits[17], qubits[18]; +ccx qubits[14], qubits[15], qubits[16]; +ccx qubits[12], qubits[13], qubits[14]; +ccx qubits[10], qubits[11], qubits[12]; +ccx qubits[8], qubits[9], qubits[10]; +ccx qubits[6], qubits[7], qubits[8]; +ccx qubits[4], qubits[5], qubits[6]; +ccx qubits[2], qubits[3], qubits[4]; +ccx qubits[0], qubits[1], qubits[2]; x qubits[0]; x qubits[1]; -x qubits[2]; x qubits[3]; -x qubits[4]; x qubits[5]; -x qubits[6]; x qubits[7]; -x qubits[8]; x qubits[9]; -x qubits[10]; x qubits[11]; -x qubits[12]; x qubits[13]; -x qubits[14]; x qubits[15]; -x qubits[16]; x qubits[17]; -x qubits[18]; x qubits[19]; -x qubits[20]; x qubits[21]; -x qubits[22]; x qubits[23]; -x qubits[24]; x qubits[25]; -x qubits[26]; x qubits[27]; -x qubits[28]; x qubits[29]; -x qubits[30]; x qubits[31]; -x qubits[32]; x qubits[33]; -x qubits[34]; x qubits[35]; -x qubits[36]; x qubits[37]; -x qubits[38]; x qubits[39]; -x qubits[40]; x qubits[41]; -x qubits[42]; x qubits[43]; -x qubits[44]; x qubits[45]; -x qubits[46]; x qubits[47]; -x qubits[48]; x qubits[49]; -x qubits[50]; x qubits[51]; -x qubits[52]; x qubits[53]; -x qubits[54]; x qubits[55]; -x qubits[56]; x qubits[57]; -x qubits[58]; x qubits[59]; -x qubits[60]; x qubits[61]; -x qubits[62]; x qubits[63]; -x qubits[64]; x qubits[65]; -x qubits[66]; x qubits[67]; -x qubits[68]; x qubits[69]; -x qubits[70]; x qubits[71]; -x qubits[72]; x qubits[73]; -x qubits[74]; x qubits[75]; -x qubits[76]; x qubits[77]; -x qubits[78]; x qubits[79]; -x qubits[80]; x qubits[81]; -x qubits[82]; x qubits[83]; -x qubits[84]; x qubits[85]; -x qubits[86]; x qubits[87]; -x qubits[88]; x qubits[89]; -x qubits[90]; x qubits[91]; -x qubits[92]; x qubits[93]; -x qubits[94]; x qubits[95]; -x qubits[96]; x qubits[97]; -x qubits[98]; +x qubits[99]; +x qubits[101]; +x qubits[103]; +x qubits[105]; +x qubits[107]; +x qubits[109]; +x qubits[111]; +x qubits[113]; +x qubits[115]; +x qubits[117]; +x qubits[119]; +x qubits[121]; +x qubits[123]; +x qubits[125]; +x qubits[127]; +x qubits[129]; +x qubits[131]; +x qubits[133]; +x qubits[135]; +x qubits[137]; +x qubits[139]; +x qubits[141]; +x qubits[143]; +x qubits[145]; +x qubits[147]; +x qubits[149]; +x qubits[151]; +x qubits[153]; +x qubits[155]; +x qubits[157]; +x qubits[159]; +x qubits[161]; +x qubits[163]; +x qubits[165]; +x qubits[167]; +x qubits[169]; +x qubits[171]; +x qubits[173]; +x qubits[175]; +x qubits[177]; +x qubits[179]; +x qubits[181]; +x qubits[183]; +x qubits[185]; +x qubits[187]; +x qubits[189]; +x qubits[191]; +x qubits[193]; +x qubits[195]; h qubits[0]; h qubits[1]; -h qubits[2]; h qubits[3]; -h qubits[4]; h qubits[5]; -h qubits[6]; h qubits[7]; -h qubits[8]; h qubits[9]; -h qubits[10]; h qubits[11]; -h qubits[12]; h qubits[13]; -h qubits[14]; h qubits[15]; -h qubits[16]; h qubits[17]; -h qubits[18]; h qubits[19]; -h qubits[20]; h qubits[21]; -h qubits[22]; h qubits[23]; -h qubits[24]; h qubits[25]; -h qubits[26]; h qubits[27]; -h qubits[28]; h qubits[29]; -h qubits[30]; h qubits[31]; -h qubits[32]; h qubits[33]; -h qubits[34]; h qubits[35]; -h qubits[36]; h qubits[37]; -h qubits[38]; h qubits[39]; -h qubits[40]; h qubits[41]; -h qubits[42]; h qubits[43]; -h qubits[44]; h qubits[45]; -h qubits[46]; h qubits[47]; -h qubits[48]; h qubits[49]; -h qubits[50]; h qubits[51]; -h qubits[52]; h qubits[53]; -h qubits[54]; h qubits[55]; -h qubits[56]; h qubits[57]; -h qubits[58]; h qubits[59]; -h qubits[60]; h qubits[61]; -h qubits[62]; h qubits[63]; -h qubits[64]; h qubits[65]; -h qubits[66]; h qubits[67]; -h qubits[68]; h qubits[69]; -h qubits[70]; h qubits[71]; -h qubits[72]; h qubits[73]; -h qubits[74]; h qubits[75]; -h qubits[76]; h qubits[77]; -h qubits[78]; h qubits[79]; -h qubits[80]; h qubits[81]; -h qubits[82]; h qubits[83]; -h qubits[84]; h qubits[85]; -h qubits[86]; h qubits[87]; -h qubits[88]; h qubits[89]; -h qubits[90]; h qubits[91]; -h qubits[92]; h qubits[93]; -h qubits[94]; h qubits[95]; -h qubits[96]; h qubits[97]; -h qubits[98]; -z qubits[99]; +h qubits[99]; +h qubits[101]; +h qubits[103]; +h qubits[105]; +h qubits[107]; +h qubits[109]; +h qubits[111]; +h qubits[113]; +h qubits[115]; +h qubits[117]; +h qubits[119]; +h qubits[121]; +h qubits[123]; +h qubits[125]; +h qubits[127]; +h qubits[129]; +h qubits[131]; +h qubits[133]; +h qubits[135]; +h qubits[137]; +h qubits[139]; +h qubits[141]; +h qubits[143]; +h qubits[145]; +h qubits[147]; +h qubits[149]; +h qubits[151]; +h qubits[153]; +h qubits[155]; +h qubits[157]; +h qubits[159]; +h qubits[161]; +h qubits[163]; +h qubits[165]; +h qubits[167]; +h qubits[169]; +h qubits[171]; +h qubits[173]; +h qubits[175]; +h qubits[177]; +h qubits[179]; +h qubits[181]; +h qubits[183]; +h qubits[185]; +h qubits[187]; +h qubits[189]; +h qubits[191]; +h qubits[193]; +h qubits[195]; +z qubits[196]; diff --git a/benchmarks/all/OEGrover/99/post.hsl b/benchmarks/all/OEGrover/99/post.hsl index 699d13896..48339c748 100644 --- a/benchmarks/all/OEGrover/99/post.hsl +++ b/benchmarks/all/OEGrover/99/post.hsl @@ -1,4 +1,10 @@ Predicates -p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) +pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) +pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) Extended Dirac -p |010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{pH |0> + pL |1>} ⊗ ({pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|0>}) ^ 48 ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} ⊗ {|1>} +where +pH ⊗ pH = pH +pH ⊗ pL = pL +pL ⊗ pH = pL +pL ⊗ pL = pL diff --git a/benchmarks/all/OEGrover/99/post.lsta b/benchmarks/all/OEGrover/99/post.lsta deleted file mode 100644 index e9011fb7a..000000000 --- a/benchmarks/all/OEGrover/99/post.lsta +++ /dev/null @@ -1,502 +0,0 @@ -Predicates -p1 := (and (= real($) 0) (= imag($) 0)) -p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0)) -p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0)) -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 195) -> 193 -[98,1](195, 196) -> 194 -[99,1](197, 197) -> 195 -[99,1](198, 197) -> 196 -[100,1](199, 200) -> 197 -[100,1](199, 201) -> 198 -[101,1](202, 202) -> 199 -[101,1](203, 202) -> 200 -[101,1](204, 202) -> 201 -[102,1](205, 205) -> 202 -[102,1](206, 205) -> 203 -[102,1](207, 205) -> 204 -[103,1](208, 208) -> 205 -[103,1](209, 208) -> 206 -[103,1](210, 208) -> 207 -[104,1](211, 211) -> 208 -[104,1](212, 211) -> 209 -[104,1](213, 211) -> 210 -[105,1](214, 214) -> 211 -[105,1](215, 214) -> 212 -[105,1](216, 214) -> 213 -[106,1](217, 217) -> 214 -[106,1](218, 217) -> 215 -[106,1](219, 217) -> 216 -[107,1](220, 220) -> 217 -[107,1](221, 220) -> 218 -[107,1](222, 220) -> 219 -[108,1](223, 223) -> 220 -[108,1](224, 223) -> 221 -[108,1](225, 223) -> 222 -[109,1](226, 226) -> 223 -[109,1](227, 226) -> 224 -[109,1](228, 226) -> 225 -[110,1](229, 229) -> 226 -[110,1](230, 229) -> 227 -[110,1](231, 229) -> 228 -[111,1](232, 232) -> 229 -[111,1](233, 232) -> 230 -[111,1](234, 232) -> 231 -[112,1](235, 235) -> 232 -[112,1](236, 235) -> 233 -[112,1](237, 235) -> 234 -[113,1](238, 238) -> 235 -[113,1](239, 238) -> 236 -[113,1](240, 238) -> 237 -[114,1](241, 241) -> 238 -[114,1](242, 241) -> 239 -[114,1](243, 241) -> 240 -[115,1](244, 244) -> 241 -[115,1](245, 244) -> 242 -[115,1](246, 244) -> 243 -[116,1](247, 247) -> 244 -[116,1](248, 247) -> 245 -[116,1](249, 247) -> 246 -[117,1](250, 250) -> 247 -[117,1](251, 250) -> 248 -[117,1](252, 250) -> 249 -[118,1](253, 253) -> 250 -[118,1](254, 253) -> 251 -[118,1](255, 253) -> 252 -[119,1](256, 256) -> 253 -[119,1](257, 256) -> 254 -[119,1](258, 256) -> 255 -[120,1](259, 259) -> 256 -[120,1](260, 259) -> 257 -[120,1](261, 259) -> 258 -[121,1](262, 262) -> 259 -[121,1](263, 262) -> 260 -[121,1](264, 262) -> 261 -[122,1](265, 265) -> 262 -[122,1](266, 265) -> 263 -[122,1](267, 265) -> 264 -[123,1](268, 268) -> 265 -[123,1](269, 268) -> 266 -[123,1](270, 268) -> 267 -[124,1](271, 271) -> 268 -[124,1](272, 271) -> 269 -[124,1](273, 271) -> 270 -[125,1](274, 274) -> 271 -[125,1](275, 274) -> 272 -[125,1](276, 274) -> 273 -[126,1](277, 277) -> 274 -[126,1](278, 277) -> 275 -[126,1](279, 277) -> 276 -[127,1](280, 280) -> 277 -[127,1](281, 280) -> 278 -[127,1](282, 280) -> 279 -[128,1](283, 283) -> 280 -[128,1](284, 283) -> 281 -[128,1](285, 283) -> 282 -[129,1](286, 286) -> 283 -[129,1](287, 286) -> 284 -[129,1](288, 286) -> 285 -[130,1](289, 289) -> 286 -[130,1](290, 289) -> 287 -[130,1](291, 289) -> 288 -[131,1](292, 292) -> 289 -[131,1](293, 292) -> 290 -[131,1](294, 292) -> 291 -[132,1](295, 295) -> 292 -[132,1](296, 295) -> 293 -[132,1](297, 295) -> 294 -[133,1](298, 298) -> 295 -[133,1](299, 298) -> 296 -[133,1](300, 298) -> 297 -[134,1](301, 301) -> 298 -[134,1](302, 301) -> 299 -[134,1](303, 301) -> 300 -[135,1](304, 304) -> 301 -[135,1](305, 304) -> 302 -[135,1](306, 304) -> 303 -[136,1](307, 307) -> 304 -[136,1](308, 307) -> 305 -[136,1](309, 307) -> 306 -[137,1](310, 310) -> 307 -[137,1](311, 310) -> 308 -[137,1](312, 310) -> 309 -[138,1](313, 313) -> 310 -[138,1](314, 313) -> 311 -[138,1](315, 313) -> 312 -[139,1](316, 316) -> 313 -[139,1](317, 316) -> 314 -[139,1](318, 316) -> 315 -[140,1](319, 319) -> 316 -[140,1](320, 319) -> 317 -[140,1](321, 319) -> 318 -[141,1](322, 322) -> 319 -[141,1](323, 322) -> 320 -[141,1](324, 322) -> 321 -[142,1](325, 325) -> 322 -[142,1](326, 325) -> 323 -[142,1](327, 325) -> 324 -[143,1](328, 328) -> 325 -[143,1](329, 328) -> 326 -[143,1](330, 328) -> 327 -[144,1](331, 331) -> 328 -[144,1](332, 331) -> 329 -[144,1](333, 331) -> 330 -[145,1](334, 334) -> 331 -[145,1](335, 334) -> 332 -[145,1](336, 334) -> 333 -[146,1](337, 337) -> 334 -[146,1](338, 337) -> 335 -[146,1](339, 337) -> 336 -[147,1](340, 340) -> 337 -[147,1](341, 340) -> 338 -[147,1](342, 340) -> 339 -[148,1](343, 343) -> 340 -[148,1](344, 343) -> 341 -[148,1](345, 343) -> 342 -[149,1](346, 346) -> 343 -[149,1](347, 346) -> 344 -[149,1](348, 346) -> 345 -[150,1](349, 349) -> 346 -[150,1](350, 349) -> 347 -[150,1](351, 349) -> 348 -[151,1](352, 352) -> 349 -[151,1](353, 352) -> 350 -[151,1](354, 352) -> 351 -[152,1](355, 355) -> 352 -[152,1](356, 355) -> 353 -[152,1](357, 355) -> 354 -[153,1](358, 358) -> 355 -[153,1](359, 358) -> 356 -[153,1](360, 358) -> 357 -[154,1](361, 361) -> 358 -[154,1](362, 361) -> 359 -[154,1](363, 361) -> 360 -[155,1](364, 364) -> 361 -[155,1](365, 364) -> 362 -[155,1](366, 364) -> 363 -[156,1](367, 367) -> 364 -[156,1](368, 367) -> 365 -[156,1](369, 367) -> 366 -[157,1](370, 370) -> 367 -[157,1](371, 370) -> 368 -[157,1](372, 370) -> 369 -[158,1](373, 373) -> 370 -[158,1](374, 373) -> 371 -[158,1](375, 373) -> 372 -[159,1](376, 376) -> 373 -[159,1](377, 376) -> 374 -[159,1](378, 376) -> 375 -[160,1](379, 379) -> 376 -[160,1](380, 379) -> 377 -[160,1](381, 379) -> 378 -[161,1](382, 382) -> 379 -[161,1](383, 382) -> 380 -[161,1](384, 382) -> 381 -[162,1](385, 385) -> 382 -[162,1](386, 385) -> 383 -[162,1](387, 385) -> 384 -[163,1](388, 388) -> 385 -[163,1](389, 388) -> 386 -[163,1](390, 388) -> 387 -[164,1](391, 391) -> 388 -[164,1](392, 391) -> 389 -[164,1](393, 391) -> 390 -[165,1](394, 394) -> 391 -[165,1](395, 394) -> 392 -[165,1](396, 394) -> 393 -[166,1](397, 397) -> 394 -[166,1](398, 397) -> 395 -[166,1](399, 397) -> 396 -[167,1](400, 400) -> 397 -[167,1](401, 400) -> 398 -[167,1](402, 400) -> 399 -[168,1](403, 403) -> 400 -[168,1](404, 403) -> 401 -[168,1](405, 403) -> 402 -[169,1](406, 406) -> 403 -[169,1](407, 406) -> 404 -[169,1](408, 406) -> 405 -[170,1](409, 409) -> 406 -[170,1](410, 409) -> 407 -[170,1](411, 409) -> 408 -[171,1](412, 412) -> 409 -[171,1](413, 412) -> 410 -[171,1](414, 412) -> 411 -[172,1](415, 415) -> 412 -[172,1](416, 415) -> 413 -[172,1](417, 415) -> 414 -[173,1](418, 418) -> 415 -[173,1](419, 418) -> 416 -[173,1](420, 418) -> 417 -[174,1](421, 421) -> 418 -[174,1](422, 421) -> 419 -[174,1](423, 421) -> 420 -[175,1](424, 424) -> 421 -[175,1](425, 424) -> 422 -[175,1](426, 424) -> 423 -[176,1](427, 427) -> 424 -[176,1](428, 427) -> 425 -[176,1](429, 427) -> 426 -[177,1](430, 430) -> 427 -[177,1](431, 430) -> 428 -[177,1](432, 430) -> 429 -[178,1](433, 433) -> 430 -[178,1](434, 433) -> 431 -[178,1](435, 433) -> 432 -[179,1](436, 436) -> 433 -[179,1](437, 436) -> 434 -[179,1](438, 436) -> 435 -[180,1](439, 439) -> 436 -[180,1](440, 439) -> 437 -[180,1](441, 439) -> 438 -[181,1](442, 442) -> 439 -[181,1](443, 442) -> 440 -[181,1](444, 442) -> 441 -[182,1](445, 445) -> 442 -[182,1](446, 445) -> 443 -[182,1](447, 445) -> 444 -[183,1](448, 448) -> 445 -[183,1](449, 448) -> 446 -[183,1](450, 448) -> 447 -[184,1](451, 451) -> 448 -[184,1](452, 451) -> 449 -[184,1](453, 451) -> 450 -[185,1](454, 454) -> 451 -[185,1](455, 454) -> 452 -[185,1](456, 454) -> 453 -[186,1](457, 457) -> 454 -[186,1](458, 457) -> 455 -[186,1](459, 457) -> 456 -[187,1](460, 460) -> 457 -[187,1](461, 460) -> 458 -[187,1](462, 460) -> 459 -[188,1](463, 463) -> 460 -[188,1](464, 463) -> 461 -[188,1](465, 463) -> 462 -[189,1](466, 466) -> 463 -[189,1](467, 466) -> 464 -[189,1](468, 466) -> 465 -[190,1](469, 469) -> 466 -[190,1](470, 469) -> 467 -[190,1](471, 469) -> 468 -[191,1](472, 472) -> 469 -[191,1](473, 472) -> 470 -[191,1](474, 472) -> 471 -[192,1](475, 475) -> 472 -[192,1](476, 475) -> 473 -[192,1](477, 475) -> 474 -[193,1](478, 478) -> 475 -[193,1](479, 478) -> 476 -[193,1](480, 478) -> 477 -[194,1](481, 481) -> 478 -[194,1](482, 481) -> 479 -[194,1](483, 481) -> 480 -[195,1](484, 484) -> 481 -[195,1](485, 484) -> 482 -[195,1](486, 484) -> 483 -[196,1](487, 487) -> 484 -[196,1](488, 487) -> 485 -[196,1](489, 487) -> 486 -[197,1](490, 490) -> 487 -[197,1](491, 490) -> 488 -[197,1](492, 490) -> 489 -[198,1](493, 493) -> 490 -[198,1](494, 493) -> 491 -[198,1](495, 493) -> 492 -[p1,1] -> 493 -[p2,1] -> 494 -[p3,1] -> 495 \ No newline at end of file diff --git a/benchmarks/all/OEGrover/99/pre.hsl b/benchmarks/all/OEGrover/99/pre.hsl index 146863f68..026f465a2 100644 --- a/benchmarks/all/OEGrover/99/pre.hsl +++ b/benchmarks/all/OEGrover/99/pre.hsl @@ -1,5 +1,10 @@ Extended Dirac -b |010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010> + a |*> # |100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000> +{b |0> + a |1>} ⊗ ({a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|0>}) ^ 48 ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} ⊗ {|1>} +where +b ⊗ b = b +b ⊗ a = a +a ⊗ b = a +a ⊗ a = a Constraints 633825300114114700748351602687 * real(a) > real(b) real(a) > 0 diff --git a/benchmarks/all/OEGrover/99/pre.lsta b/benchmarks/all/OEGrover/99/pre.lsta deleted file mode 100644 index ce29e6d79..000000000 --- a/benchmarks/all/OEGrover/99/pre.lsta +++ /dev/null @@ -1,506 +0,0 @@ -Constants -c0 := 0 -Root States 0 -Transitions -[1,1](2, 1) -> 0 -[2,1](3, 3) -> 1 -[2,1](3, 4) -> 2 -[3,1](5, 5) -> 3 -[3,1](6, 5) -> 4 -[4,1](7, 7) -> 5 -[4,1](7, 8) -> 6 -[5,1](9, 9) -> 7 -[5,1](10, 9) -> 8 -[6,1](11, 11) -> 9 -[6,1](11, 12) -> 10 -[7,1](13, 13) -> 11 -[7,1](14, 13) -> 12 -[8,1](15, 15) -> 13 -[8,1](15, 16) -> 14 -[9,1](17, 17) -> 15 -[9,1](18, 17) -> 16 -[10,1](19, 19) -> 17 -[10,1](19, 20) -> 18 -[11,1](21, 21) -> 19 -[11,1](22, 21) -> 20 -[12,1](23, 23) -> 21 -[12,1](23, 24) -> 22 -[13,1](25, 25) -> 23 -[13,1](26, 25) -> 24 -[14,1](27, 27) -> 25 -[14,1](27, 28) -> 26 -[15,1](29, 29) -> 27 -[15,1](30, 29) -> 28 -[16,1](31, 31) -> 29 -[16,1](31, 32) -> 30 -[17,1](33, 33) -> 31 -[17,1](34, 33) -> 32 -[18,1](35, 35) -> 33 -[18,1](35, 36) -> 34 -[19,1](37, 37) -> 35 -[19,1](38, 37) -> 36 -[20,1](39, 39) -> 37 -[20,1](39, 40) -> 38 -[21,1](41, 41) -> 39 -[21,1](42, 41) -> 40 -[22,1](43, 43) -> 41 -[22,1](43, 44) -> 42 -[23,1](45, 45) -> 43 -[23,1](46, 45) -> 44 -[24,1](47, 47) -> 45 -[24,1](47, 48) -> 46 -[25,1](49, 49) -> 47 -[25,1](50, 49) -> 48 -[26,1](51, 51) -> 49 -[26,1](51, 52) -> 50 -[27,1](53, 53) -> 51 -[27,1](54, 53) -> 52 -[28,1](55, 55) -> 53 -[28,1](55, 56) -> 54 -[29,1](57, 57) -> 55 -[29,1](58, 57) -> 56 -[30,1](59, 59) -> 57 -[30,1](59, 60) -> 58 -[31,1](61, 61) -> 59 -[31,1](62, 61) -> 60 -[32,1](63, 63) -> 61 -[32,1](63, 64) -> 62 -[33,1](65, 65) -> 63 -[33,1](66, 65) -> 64 -[34,1](67, 67) -> 65 -[34,1](67, 68) -> 66 -[35,1](69, 69) -> 67 -[35,1](70, 69) -> 68 -[36,1](71, 71) -> 69 -[36,1](71, 72) -> 70 -[37,1](73, 73) -> 71 -[37,1](74, 73) -> 72 -[38,1](75, 75) -> 73 -[38,1](75, 76) -> 74 -[39,1](77, 77) -> 75 -[39,1](78, 77) -> 76 -[40,1](79, 79) -> 77 -[40,1](79, 80) -> 78 -[41,1](81, 81) -> 79 -[41,1](82, 81) -> 80 -[42,1](83, 83) -> 81 -[42,1](83, 84) -> 82 -[43,1](85, 85) -> 83 -[43,1](86, 85) -> 84 -[44,1](87, 87) -> 85 -[44,1](87, 88) -> 86 -[45,1](89, 89) -> 87 -[45,1](90, 89) -> 88 -[46,1](91, 91) -> 89 -[46,1](91, 92) -> 90 -[47,1](93, 93) -> 91 -[47,1](94, 93) -> 92 -[48,1](95, 95) -> 93 -[48,1](95, 96) -> 94 -[49,1](97, 97) -> 95 -[49,1](98, 97) -> 96 -[50,1](99, 99) -> 97 -[50,1](99, 100) -> 98 -[51,1](101, 101) -> 99 -[51,1](102, 101) -> 100 -[52,1](103, 103) -> 101 -[52,1](103, 104) -> 102 -[53,1](105, 105) -> 103 -[53,1](106, 105) -> 104 -[54,1](107, 107) -> 105 -[54,1](107, 108) -> 106 -[55,1](109, 109) -> 107 -[55,1](110, 109) -> 108 -[56,1](111, 111) -> 109 -[56,1](111, 112) -> 110 -[57,1](113, 113) -> 111 -[57,1](114, 113) -> 112 -[58,1](115, 115) -> 113 -[58,1](115, 116) -> 114 -[59,1](117, 117) -> 115 -[59,1](118, 117) -> 116 -[60,1](119, 119) -> 117 -[60,1](119, 120) -> 118 -[61,1](121, 121) -> 119 -[61,1](122, 121) -> 120 -[62,1](123, 123) -> 121 -[62,1](123, 124) -> 122 -[63,1](125, 125) -> 123 -[63,1](126, 125) -> 124 -[64,1](127, 127) -> 125 -[64,1](127, 128) -> 126 -[65,1](129, 129) -> 127 -[65,1](130, 129) -> 128 -[66,1](131, 131) -> 129 -[66,1](131, 132) -> 130 -[67,1](133, 133) -> 131 -[67,1](134, 133) -> 132 -[68,1](135, 135) -> 133 -[68,1](135, 136) -> 134 -[69,1](137, 137) -> 135 -[69,1](138, 137) -> 136 -[70,1](139, 139) -> 137 -[70,1](139, 140) -> 138 -[71,1](141, 141) -> 139 -[71,1](142, 141) -> 140 -[72,1](143, 143) -> 141 -[72,1](143, 144) -> 142 -[73,1](145, 145) -> 143 -[73,1](146, 145) -> 144 -[74,1](147, 147) -> 145 -[74,1](147, 148) -> 146 -[75,1](149, 149) -> 147 -[75,1](150, 149) -> 148 -[76,1](151, 151) -> 149 -[76,1](151, 152) -> 150 -[77,1](153, 153) -> 151 -[77,1](154, 153) -> 152 -[78,1](155, 155) -> 153 -[78,1](155, 156) -> 154 -[79,1](157, 157) -> 155 -[79,1](158, 157) -> 156 -[80,1](159, 159) -> 157 -[80,1](159, 160) -> 158 -[81,1](161, 161) -> 159 -[81,1](162, 161) -> 160 -[82,1](163, 163) -> 161 -[82,1](163, 164) -> 162 -[83,1](165, 165) -> 163 -[83,1](166, 165) -> 164 -[84,1](167, 167) -> 165 -[84,1](167, 168) -> 166 -[85,1](169, 169) -> 167 -[85,1](170, 169) -> 168 -[86,1](171, 171) -> 169 -[86,1](171, 172) -> 170 -[87,1](173, 173) -> 171 -[87,1](174, 173) -> 172 -[88,1](175, 175) -> 173 -[88,1](175, 176) -> 174 -[89,1](177, 177) -> 175 -[89,1](178, 177) -> 176 -[90,1](179, 179) -> 177 -[90,1](179, 180) -> 178 -[91,1](181, 181) -> 179 -[91,1](182, 181) -> 180 -[92,1](183, 183) -> 181 -[92,1](183, 184) -> 182 -[93,1](185, 185) -> 183 -[93,1](186, 185) -> 184 -[94,1](187, 187) -> 185 -[94,1](187, 188) -> 186 -[95,1](189, 189) -> 187 -[95,1](190, 189) -> 188 -[96,1](191, 191) -> 189 -[96,1](191, 192) -> 190 -[97,1](193, 193) -> 191 -[97,1](194, 193) -> 192 -[98,1](195, 195) -> 193 -[98,1](195, 196) -> 194 -[99,1](197, 197) -> 195 -[99,1](198, 197) -> 196 -[100,1](199, 200) -> 197 -[100,1](199, 201) -> 198 -[101,1](202, 202) -> 199 -[101,1](203, 202) -> 200 -[101,1](204, 202) -> 201 -[102,1](205, 205) -> 202 -[102,1](206, 205) -> 203 -[102,1](207, 205) -> 204 -[103,1](208, 208) -> 205 -[103,1](209, 208) -> 206 -[103,1](210, 208) -> 207 -[104,1](211, 211) -> 208 -[104,1](212, 211) -> 209 -[104,1](213, 211) -> 210 -[105,1](214, 214) -> 211 -[105,1](215, 214) -> 212 -[105,1](216, 214) -> 213 -[106,1](217, 217) -> 214 -[106,1](218, 217) -> 215 -[106,1](219, 217) -> 216 -[107,1](220, 220) -> 217 -[107,1](221, 220) -> 218 -[107,1](222, 220) -> 219 -[108,1](223, 223) -> 220 -[108,1](224, 223) -> 221 -[108,1](225, 223) -> 222 -[109,1](226, 226) -> 223 -[109,1](227, 226) -> 224 -[109,1](228, 226) -> 225 -[110,1](229, 229) -> 226 -[110,1](230, 229) -> 227 -[110,1](231, 229) -> 228 -[111,1](232, 232) -> 229 -[111,1](233, 232) -> 230 -[111,1](234, 232) -> 231 -[112,1](235, 235) -> 232 -[112,1](236, 235) -> 233 -[112,1](237, 235) -> 234 -[113,1](238, 238) -> 235 -[113,1](239, 238) -> 236 -[113,1](240, 238) -> 237 -[114,1](241, 241) -> 238 -[114,1](242, 241) -> 239 -[114,1](243, 241) -> 240 -[115,1](244, 244) -> 241 -[115,1](245, 244) -> 242 -[115,1](246, 244) -> 243 -[116,1](247, 247) -> 244 -[116,1](248, 247) -> 245 -[116,1](249, 247) -> 246 -[117,1](250, 250) -> 247 -[117,1](251, 250) -> 248 -[117,1](252, 250) -> 249 -[118,1](253, 253) -> 250 -[118,1](254, 253) -> 251 -[118,1](255, 253) -> 252 -[119,1](256, 256) -> 253 -[119,1](257, 256) -> 254 -[119,1](258, 256) -> 255 -[120,1](259, 259) -> 256 -[120,1](260, 259) -> 257 -[120,1](261, 259) -> 258 -[121,1](262, 262) -> 259 -[121,1](263, 262) -> 260 -[121,1](264, 262) -> 261 -[122,1](265, 265) -> 262 -[122,1](266, 265) -> 263 -[122,1](267, 265) -> 264 -[123,1](268, 268) -> 265 -[123,1](269, 268) -> 266 -[123,1](270, 268) -> 267 -[124,1](271, 271) -> 268 -[124,1](272, 271) -> 269 -[124,1](273, 271) -> 270 -[125,1](274, 274) -> 271 -[125,1](275, 274) -> 272 -[125,1](276, 274) -> 273 -[126,1](277, 277) -> 274 -[126,1](278, 277) -> 275 -[126,1](279, 277) -> 276 -[127,1](280, 280) -> 277 -[127,1](281, 280) -> 278 -[127,1](282, 280) -> 279 -[128,1](283, 283) -> 280 -[128,1](284, 283) -> 281 -[128,1](285, 283) -> 282 -[129,1](286, 286) -> 283 -[129,1](287, 286) -> 284 -[129,1](288, 286) -> 285 -[130,1](289, 289) -> 286 -[130,1](290, 289) -> 287 -[130,1](291, 289) -> 288 -[131,1](292, 292) -> 289 -[131,1](293, 292) -> 290 -[131,1](294, 292) -> 291 -[132,1](295, 295) -> 292 -[132,1](296, 295) -> 293 -[132,1](297, 295) -> 294 -[133,1](298, 298) -> 295 -[133,1](299, 298) -> 296 -[133,1](300, 298) -> 297 -[134,1](301, 301) -> 298 -[134,1](302, 301) -> 299 -[134,1](303, 301) -> 300 -[135,1](304, 304) -> 301 -[135,1](305, 304) -> 302 -[135,1](306, 304) -> 303 -[136,1](307, 307) -> 304 -[136,1](308, 307) -> 305 -[136,1](309, 307) -> 306 -[137,1](310, 310) -> 307 -[137,1](311, 310) -> 308 -[137,1](312, 310) -> 309 -[138,1](313, 313) -> 310 -[138,1](314, 313) -> 311 -[138,1](315, 313) -> 312 -[139,1](316, 316) -> 313 -[139,1](317, 316) -> 314 -[139,1](318, 316) -> 315 -[140,1](319, 319) -> 316 -[140,1](320, 319) -> 317 -[140,1](321, 319) -> 318 -[141,1](322, 322) -> 319 -[141,1](323, 322) -> 320 -[141,1](324, 322) -> 321 -[142,1](325, 325) -> 322 -[142,1](326, 325) -> 323 -[142,1](327, 325) -> 324 -[143,1](328, 328) -> 325 -[143,1](329, 328) -> 326 -[143,1](330, 328) -> 327 -[144,1](331, 331) -> 328 -[144,1](332, 331) -> 329 -[144,1](333, 331) -> 330 -[145,1](334, 334) -> 331 -[145,1](335, 334) -> 332 -[145,1](336, 334) -> 333 -[146,1](337, 337) -> 334 -[146,1](338, 337) -> 335 -[146,1](339, 337) -> 336 -[147,1](340, 340) -> 337 -[147,1](341, 340) -> 338 -[147,1](342, 340) -> 339 -[148,1](343, 343) -> 340 -[148,1](344, 343) -> 341 -[148,1](345, 343) -> 342 -[149,1](346, 346) -> 343 -[149,1](347, 346) -> 344 -[149,1](348, 346) -> 345 -[150,1](349, 349) -> 346 -[150,1](350, 349) -> 347 -[150,1](351, 349) -> 348 -[151,1](352, 352) -> 349 -[151,1](353, 352) -> 350 -[151,1](354, 352) -> 351 -[152,1](355, 355) -> 352 -[152,1](356, 355) -> 353 -[152,1](357, 355) -> 354 -[153,1](358, 358) -> 355 -[153,1](359, 358) -> 356 -[153,1](360, 358) -> 357 -[154,1](361, 361) -> 358 -[154,1](362, 361) -> 359 -[154,1](363, 361) -> 360 -[155,1](364, 364) -> 361 -[155,1](365, 364) -> 362 -[155,1](366, 364) -> 363 -[156,1](367, 367) -> 364 -[156,1](368, 367) -> 365 -[156,1](369, 367) -> 366 -[157,1](370, 370) -> 367 -[157,1](371, 370) -> 368 -[157,1](372, 370) -> 369 -[158,1](373, 373) -> 370 -[158,1](374, 373) -> 371 -[158,1](375, 373) -> 372 -[159,1](376, 376) -> 373 -[159,1](377, 376) -> 374 -[159,1](378, 376) -> 375 -[160,1](379, 379) -> 376 -[160,1](380, 379) -> 377 -[160,1](381, 379) -> 378 -[161,1](382, 382) -> 379 -[161,1](383, 382) -> 380 -[161,1](384, 382) -> 381 -[162,1](385, 385) -> 382 -[162,1](386, 385) -> 383 -[162,1](387, 385) -> 384 -[163,1](388, 388) -> 385 -[163,1](389, 388) -> 386 -[163,1](390, 388) -> 387 -[164,1](391, 391) -> 388 -[164,1](392, 391) -> 389 -[164,1](393, 391) -> 390 -[165,1](394, 394) -> 391 -[165,1](395, 394) -> 392 -[165,1](396, 394) -> 393 -[166,1](397, 397) -> 394 -[166,1](398, 397) -> 395 -[166,1](399, 397) -> 396 -[167,1](400, 400) -> 397 -[167,1](401, 400) -> 398 -[167,1](402, 400) -> 399 -[168,1](403, 403) -> 400 -[168,1](404, 403) -> 401 -[168,1](405, 403) -> 402 -[169,1](406, 406) -> 403 -[169,1](407, 406) -> 404 -[169,1](408, 406) -> 405 -[170,1](409, 409) -> 406 -[170,1](410, 409) -> 407 -[170,1](411, 409) -> 408 -[171,1](412, 412) -> 409 -[171,1](413, 412) -> 410 -[171,1](414, 412) -> 411 -[172,1](415, 415) -> 412 -[172,1](416, 415) -> 413 -[172,1](417, 415) -> 414 -[173,1](418, 418) -> 415 -[173,1](419, 418) -> 416 -[173,1](420, 418) -> 417 -[174,1](421, 421) -> 418 -[174,1](422, 421) -> 419 -[174,1](423, 421) -> 420 -[175,1](424, 424) -> 421 -[175,1](425, 424) -> 422 -[175,1](426, 424) -> 423 -[176,1](427, 427) -> 424 -[176,1](428, 427) -> 425 -[176,1](429, 427) -> 426 -[177,1](430, 430) -> 427 -[177,1](431, 430) -> 428 -[177,1](432, 430) -> 429 -[178,1](433, 433) -> 430 -[178,1](434, 433) -> 431 -[178,1](435, 433) -> 432 -[179,1](436, 436) -> 433 -[179,1](437, 436) -> 434 -[179,1](438, 436) -> 435 -[180,1](439, 439) -> 436 -[180,1](440, 439) -> 437 -[180,1](441, 439) -> 438 -[181,1](442, 442) -> 439 -[181,1](443, 442) -> 440 -[181,1](444, 442) -> 441 -[182,1](445, 445) -> 442 -[182,1](446, 445) -> 443 -[182,1](447, 445) -> 444 -[183,1](448, 448) -> 445 -[183,1](449, 448) -> 446 -[183,1](450, 448) -> 447 -[184,1](451, 451) -> 448 -[184,1](452, 451) -> 449 -[184,1](453, 451) -> 450 -[185,1](454, 454) -> 451 -[185,1](455, 454) -> 452 -[185,1](456, 454) -> 453 -[186,1](457, 457) -> 454 -[186,1](458, 457) -> 455 -[186,1](459, 457) -> 456 -[187,1](460, 460) -> 457 -[187,1](461, 460) -> 458 -[187,1](462, 460) -> 459 -[188,1](463, 463) -> 460 -[188,1](464, 463) -> 461 -[188,1](465, 463) -> 462 -[189,1](466, 466) -> 463 -[189,1](467, 466) -> 464 -[189,1](468, 466) -> 465 -[190,1](469, 469) -> 466 -[190,1](470, 469) -> 467 -[190,1](471, 469) -> 468 -[191,1](472, 472) -> 469 -[191,1](473, 472) -> 470 -[191,1](474, 472) -> 471 -[192,1](475, 475) -> 472 -[192,1](476, 475) -> 473 -[192,1](477, 475) -> 474 -[193,1](478, 478) -> 475 -[193,1](479, 478) -> 476 -[193,1](480, 478) -> 477 -[194,1](481, 481) -> 478 -[194,1](482, 481) -> 479 -[194,1](483, 481) -> 480 -[195,1](484, 484) -> 481 -[195,1](485, 484) -> 482 -[195,1](486, 484) -> 483 -[196,1](487, 487) -> 484 -[196,1](488, 487) -> 485 -[196,1](489, 487) -> 486 -[197,1](490, 490) -> 487 -[197,1](491, 490) -> 488 -[197,1](492, 490) -> 489 -[198,1](493, 493) -> 490 -[198,1](494, 493) -> 491 -[198,1](495, 493) -> 492 -[c0,1] -> 493 -[a,1] -> 494 -[b,1] -> 495 -Constraints -633825300114114700748351602687 * real(a) > real(b) -real(a) > 0 -real(b) > 0 -imag(a) = 0 -imag(b) = 0 diff --git a/benchmarks/all/OEGrover/produce.py b/benchmarks/all/OEGrover/produce.py index e879229f3..a2f05e44c 100755 --- a/benchmarks/all/OEGrover/produce.py +++ b/benchmarks/all/OEGrover/produce.py @@ -15,9 +15,18 @@ if not os.path.exists(n_str): os.makedirs(n_str) ########################################################################### + w = [0] + list(range(1, 2*n-2, 2)) # 0, 1, 3, 5, ..., 2n-3 + a = ['nan'] + list(range(2, 2*n-3, 2)) # 2, 4, 6, ..., 2n-4 + t = w[-1] + 1 # 2n-2 + ########################################################################### with open(n_str + '/pre.hsl', 'w') as file: file.write('Extended Dirac\n') - file.write(f"b |{'01' * (n//2) + '0' * (n%2)}> + a |*> # |1{'0' * (n-1)}>\n") + file.write(f"{{b |0> + a |1>}} ⊗ ({{a |0> + b |1>}} ⊗ {{|0>}} ⊗ {{b |0> + a |1>}} ⊗ {{|0>}}) ^ {(n-2)//2}" + (" ⊗ {a |0> + b |1>} ⊗ {|0>} ⊗ {b |0> + a |1>} " if (n-1) % 2 == 0 else " ⊗ {a |0> + b |1>}") + " ⊗ {|1>}\n") + file.write('where\n') + file.write('b ⊗ b = b\n') + file.write('b ⊗ a = a\n') + file.write('a ⊗ b = a\n') + file.write('a ⊗ a = a\n') file.write('Constraints\n') file.write(f'{2 ** n - 1} * real(a) > real(b)\n') file.write('real(a) > 0\n') @@ -25,95 +34,102 @@ file.write('imag(a) = 0\n') file.write('imag(b) = 0\n') ########################################################################### - with open(n_str + '/pre.lsta', 'w') as file: - file.write('Constants\n') - file.write('c0 := 0\n') - file.write('Root States 0\n') - file.write('Transitions\n') - file.write('[1,1](2, 1) -> 0\n') - for i in range(2, n+1): # 2 <= i <= n - file.write(f'[{i},1]({2*i-1}, {2*i-1}) -> {2*i-3}\n') - if i % 2: - file.write(f'[{i},1]({2*i}, {2*i-1}) -> {2*i-2}\n') - else: - file.write(f'[{i},1]({2*i-1}, {2*i}) -> {2*i-2}\n') - file.write(f'[{n+1},1]({2*(n+1)-1}, {2*(n+1)}) -> {2*(n+1)-3}\n') - file.write(f'[{n+1},1]({2*(n+1)-1}, {2*(n+1)+1}) -> {2*(n+1)-2}\n') - for i in range(n+2, 2*n+1): # n+2 <= i <= 2n - file.write(f'[{i},1]({2*(n+2)+3*(i-n-2) }, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2)-1}\n') - file.write(f'[{i},1]({2*(n+2)+3*(i-n-2)+1}, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2) }\n') - file.write(f'[{i},1]({2*(n+2)+3*(i-n-2)+2}, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2)+1}\n') - file.write(f'[c0,1] -> {2*(n+2)+3*(i-n-2)}\n') - file.write(f'[a,1] -> {2*(n+2)+3*(i-n-2)+1}\n') - file.write(f'[b,1] -> {2*(n+2)+3*(i-n-2)+2}\n') - file.write('Constraints\n') - file.write(f'{2 ** n - 1} * real(a) > real(b)\n') - file.write('real(a) > 0\n') - file.write('real(b) > 0\n') - file.write('imag(a) = 0\n') - file.write('imag(b) = 0\n') + # with open(n_str + '/pre.lsta', 'w') as file: + # file.write('Constants\n') + # file.write('c0 := 0\n') + # file.write('Root States 0\n') + # file.write('Transitions\n') + # file.write('[1,1](2, 1) -> 0\n') + # for i in range(2, n+1): # 2 <= i <= n + # file.write(f'[{i},1]({2*i-1}, {2*i-1}) -> {2*i-3}\n') + # if i % 2: + # file.write(f'[{i},1]({2*i}, {2*i-1}) -> {2*i-2}\n') + # else: + # file.write(f'[{i},1]({2*i-1}, {2*i}) -> {2*i-2}\n') + # file.write(f'[{n+1},1]({2*(n+1)-1}, {2*(n+1)}) -> {2*(n+1)-3}\n') + # file.write(f'[{n+1},1]({2*(n+1)-1}, {2*(n+1)+1}) -> {2*(n+1)-2}\n') + # for i in range(n+2, 2*n+1): # n+2 <= i <= 2n + # file.write(f'[{i},1]({2*(n+2)+3*(i-n-2) }, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2)-1}\n') + # file.write(f'[{i},1]({2*(n+2)+3*(i-n-2)+1}, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2) }\n') + # file.write(f'[{i},1]({2*(n+2)+3*(i-n-2)+2}, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2)+1}\n') + # file.write(f'[c0,1] -> {2*(n+2)+3*(i-n-2)}\n') + # file.write(f'[a,1] -> {2*(n+2)+3*(i-n-2)+1}\n') + # file.write(f'[b,1] -> {2*(n+2)+3*(i-n-2)+2}\n') + # file.write('Constraints\n') + # file.write(f'{2 ** n - 1} * real(a) > real(b)\n') + # file.write('real(a) > 0\n') + # file.write('real(b) > 0\n') + # file.write('imag(a) = 0\n') + # file.write('imag(b) = 0\n') ########################################################################### with open(n_str + '/circuit.qasm', 'w') as file: file.write('OPENQASM 2.0;\n') file.write('include "qelib1.inc";\n') - file.write(f'qreg qubits[{2 * n}];\n\n') + file.write(f'qreg qubits[{2 * n - 1}];\n\n') for i in range(0, n, 2): - file.write(f'x qubits[{i}];\n') - file.write(f'ccx qubits[{0}], qubits[{1}], qubits[{n+1}];\n') + file.write(f'x qubits[{w[i]}];\n') + myList = [f'ccx qubits[{w[0]}], qubits[{w[1]}], qubits[{a[1]}];\n'] for i in range(2, n-1): # 2 <= i <= n-2 - file.write(f'ccx qubits[{i}], qubits[{i+(n-1)}], qubits[{i+n}];\n') - file.write(f'cz qubits[{2*(n-1)}], qubits[{n-1}];\n') - for i in range(n-2, 1, -1): # n-2 >= i >= 2 - file.write(f'ccx qubits[{i}], qubits[{i+(n-1)}], qubits[{i+n}];\n') - file.write(f'ccx qubits[{0}], qubits[{1}], qubits[{n+1}];\n') + myList.append(f'ccx qubits[{a[i-1]}], qubits[{w[i]}], qubits[{a[i]}];\n') + for line in myList: + file.write(line) + file.write(f'cz qubits[{a[n-2]}], qubits[{w[n-1]}];\n') + for line in reversed(myList): + file.write(line) for i in range(0, n, 2): file.write(f'x qubits[{i}];\n') + ################################### for i in range(n): - file.write(f'h qubits[{i}];\n') + file.write(f'h qubits[{w[i]}];\n') for i in range(n): - file.write(f'x qubits[{i}];\n') - file.write(f'ccx qubits[{0}], qubits[{1}], qubits[{n+1}];\n') - for i in range(2, n-1): # 2 <= i <= n-2 - file.write(f'ccx qubits[{i}], qubits[{i+(n-1)}], qubits[{i+n}];\n') - file.write(f'cz qubits[{2*(n-1)}], qubits[{n-1}];\n') - for i in range(n-2, 1, -1): # n-2 >= i >= 2 - file.write(f'ccx qubits[{i}], qubits[{i+(n-1)}], qubits[{i+n}];\n') - file.write(f'ccx qubits[{0}], qubits[{1}], qubits[{n+1}];\n') + file.write(f'x qubits[{w[i]}];\n') + for line in myList: + file.write(line) + file.write(f'cz qubits[{a[n-2]}], qubits[{w[n-1]}];\n') + for line in reversed(myList): + file.write(line) for i in range(n): - file.write(f'x qubits[{i}];\n') + file.write(f'x qubits[{w[i]}];\n') for i in range(n): - file.write(f'h qubits[{i}];\n') - file.write(f'z qubits[{n}];\n') + file.write(f'h qubits[{w[i]}];\n') + file.write(f'z qubits[{t}];\n') ########################################################################### - with open(n_str + '/post.lsta', 'w') as file: - file.write('Predicates\n') - file.write('p1 := (and (= real($) 0) (= imag($) 0))\n') - file.write('p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0))\n') - file.write('p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0))\n') - file.write('Root States 0\n') - file.write('Transitions\n') - file.write('[1,1](2, 1) -> 0\n') - for i in range(2, n+1): # 2 <= i <= n - file.write(f'[{i},1]({2*i-1}, {2*i-1}) -> {2*i-3}\n') - if i % 2: - file.write(f'[{i},1]({2*i}, {2*i-1}) -> {2*i-2}\n') - else: - file.write(f'[{i},1]({2*i-1}, {2*i}) -> {2*i-2}\n') - file.write(f'[{n+1},1]({2*(n+1)-1}, {2*(n+1)}) -> {2*(n+1)-3}\n') - file.write(f'[{n+1},1]({2*(n+1)-1}, {2*(n+1)+1}) -> {2*(n+1)-2}\n') - for i in range(n+2, 2*n+1): # n+2 <= i <= 2n - file.write(f'[{i},1]({2*(n+2)+3*(i-n-2) }, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2)-1}\n') - file.write(f'[{i},1]({2*(n+2)+3*(i-n-2)+1}, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2) }\n') - file.write(f'[{i},1]({2*(n+2)+3*(i-n-2)+2}, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2)+1}\n') - file.write(f'[p1,1] -> {2*(n+2)+3*(i-n-2)}\n') - file.write(f'[p2,1] -> {2*(n+2)+3*(i-n-2)+1}\n') - file.write(f'[p3,1] -> {2*(n+2)+3*(i-n-2)+2}') + # with open(n_str + '/post.lsta', 'w') as file: + # file.write('Predicates\n') + # file.write('p1 := (and (= real($) 0) (= imag($) 0))\n') + # file.write('p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0))\n') + # file.write('p3 := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0))\n') + # file.write('Root States 0\n') + # file.write('Transitions\n') + # file.write('[1,1](2, 1) -> 0\n') + # for i in range(2, n+1): # 2 <= i <= n + # file.write(f'[{i},1]({2*i-1}, {2*i-1}) -> {2*i-3}\n') + # if i % 2: + # file.write(f'[{i},1]({2*i}, {2*i-1}) -> {2*i-2}\n') + # else: + # file.write(f'[{i},1]({2*i-1}, {2*i}) -> {2*i-2}\n') + # file.write(f'[{n+1},1]({2*(n+1)-1}, {2*(n+1)}) -> {2*(n+1)-3}\n') + # file.write(f'[{n+1},1]({2*(n+1)-1}, {2*(n+1)+1}) -> {2*(n+1)-2}\n') + # for i in range(n+2, 2*n+1): # n+2 <= i <= 2n + # file.write(f'[{i},1]({2*(n+2)+3*(i-n-2) }, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2)-1}\n') + # file.write(f'[{i},1]({2*(n+2)+3*(i-n-2)+1}, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2) }\n') + # file.write(f'[{i},1]({2*(n+2)+3*(i-n-2)+2}, {2*(n+2)+3*(i-n-2)}) -> {2*(n+1)+3*(i-n-2)+1}\n') + # file.write(f'[p1,1] -> {2*(n+2)+3*(i-n-2)}\n') + # file.write(f'[p2,1] -> {2*(n+2)+3*(i-n-2)+1}\n') + # file.write(f'[p3,1] -> {2*(n+2)+3*(i-n-2)+2}') ########################################################################### with open(n_str + '/post.hsl', 'w') as file: file.write('Predicates\n') - # file.write('p1 := (and (= real($) 0) (= imag($) 0))\n') - # file.write('p2 := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0))\n') - file.write('p := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0))\n') + file.write('pL := (and (< (* real($) real($)) (* real(a) real(a))) (= imag($) 0))\n') + file.write('pH := (and (> (* real($) real($)) (* real(b) real(b))) (= imag($) 0))\n') file.write('Extended Dirac\n') - file.write(f"p |{'01' * (n//2) + '0' * (n%2)}1{'0' * (n-1)}>\n") - ########################################################################### \ No newline at end of file + file.write(f"{{pH |0> + pL |1>}} ⊗ ({{pL |0> + pH |1>}} ⊗ {{|0>}} ⊗ {{pH |0> + pL |1>}} ⊗ {{|0>}}) ^ {(n-2)//2}" + (" ⊗ {pL |0> + pH |1>} ⊗ {|0>} ⊗ {pH |0> + pL |1>} " if (n-1) % 2 == 0 else " ⊗ {pL |0> + pH |1>}") + " ⊗ {|1>}\n") + file.write('where\n') + file.write('pH ⊗ pH = pH\n') + file.write('pH ⊗ pL = pL\n') + file.write('pL ⊗ pH = pL\n') + file.write('pL ⊗ pL = pL\n') + ########################################################################### + +# cp -rl {02,18,50,75,100} ../../LSTA/OEGrover/ +# cp -rl {02,18,50,75,100} ../../CAV23/OEGrover/ \ No newline at end of file