# Generated by tools/generators/blake2b_gen.py; do not edit by hand. import Base import ../../../../src/crypto/blake/blake2b/types.bend as T import ../../../../src/crypto/blake/blake2b/compress.bend as I import ../../../../spec/crypto/blake/blake2b.bend as S law column0_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column0(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column0_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal0_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal0(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal0_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round0_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round0(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)) : T.State} def round0_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal0(I.column0(v,m0,m1,m2,m3,m4,m5,m6,m7),m8,m9,m10,m11,m12,m13,m14,m15), I.diagonal0(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m0,m1),1n,5n,9n,13n,m2,m3),2n,6n,10n,14n,m4,m5),3n,7n,11n,15n,m6,m7),m8,m9,m10,m11,m12,m13,m14,m15), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m0,m1),1n,5n,9n,13n,m2,m3),2n,6n,10n,14n,m4,m5),3n,7n,11n,15n,m6,m7),0n,5n,10n,15n,m8,m9),1n,6n,11n,12n,m10,m11),2n,7n,8n,13n,m12,m13),3n,4n,9n,14n,m14,m15), Equal.cong(T.State,T.State,t => I.diagonal0(t,m8,m9,m10,m11,m12,m13,m14,m15),I.column0(v,m0,m1,m2,m3,m4,m5,m6,m7),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m0,m1),1n,5n,9n,13n,m2,m3),2n,6n,10n,14n,m4,m5),3n,7n,11n,15n,m6,m7),column0_correct(v,m0,m1,m2,m3,m4,m5,m6,m7)), diagonal0_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m0,m1),1n,5n,9n,13n,m2,m3),2n,6n,10n,14n,m4,m5),3n,7n,11n,15n,m6,m7),m8,m9,m10,m11,m12,m13,m14,m15)) law column1_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column1(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column1_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal1_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal1(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal1_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round1_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round1(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)) : T.State} def round1_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal1(I.column1(v,m14,m10,m4,m8,m9,m15,m13,m6),m1,m12,m0,m2,m11,m7,m5,m3), I.diagonal1(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m14,m10),1n,5n,9n,13n,m4,m8),2n,6n,10n,14n,m9,m15),3n,7n,11n,15n,m13,m6),m1,m12,m0,m2,m11,m7,m5,m3), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m14,m10),1n,5n,9n,13n,m4,m8),2n,6n,10n,14n,m9,m15),3n,7n,11n,15n,m13,m6),0n,5n,10n,15n,m1,m12),1n,6n,11n,12n,m0,m2),2n,7n,8n,13n,m11,m7),3n,4n,9n,14n,m5,m3), Equal.cong(T.State,T.State,t => I.diagonal1(t,m1,m12,m0,m2,m11,m7,m5,m3),I.column1(v,m14,m10,m4,m8,m9,m15,m13,m6),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m14,m10),1n,5n,9n,13n,m4,m8),2n,6n,10n,14n,m9,m15),3n,7n,11n,15n,m13,m6),column1_correct(v,m14,m10,m4,m8,m9,m15,m13,m6)), diagonal1_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m14,m10),1n,5n,9n,13n,m4,m8),2n,6n,10n,14n,m9,m15),3n,7n,11n,15n,m13,m6),m1,m12,m0,m2,m11,m7,m5,m3)) law column2_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column2(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column2_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal2_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal2(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal2_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round2_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round2(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)) : T.State} def round2_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal2(I.column2(v,m11,m8,m12,m0,m5,m2,m15,m13),m10,m14,m3,m6,m7,m1,m9,m4), I.diagonal2(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m11,m8),1n,5n,9n,13n,m12,m0),2n,6n,10n,14n,m5,m2),3n,7n,11n,15n,m15,m13),m10,m14,m3,m6,m7,m1,m9,m4), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m11,m8),1n,5n,9n,13n,m12,m0),2n,6n,10n,14n,m5,m2),3n,7n,11n,15n,m15,m13),0n,5n,10n,15n,m10,m14),1n,6n,11n,12n,m3,m6),2n,7n,8n,13n,m7,m1),3n,4n,9n,14n,m9,m4), Equal.cong(T.State,T.State,t => I.diagonal2(t,m10,m14,m3,m6,m7,m1,m9,m4),I.column2(v,m11,m8,m12,m0,m5,m2,m15,m13),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m11,m8),1n,5n,9n,13n,m12,m0),2n,6n,10n,14n,m5,m2),3n,7n,11n,15n,m15,m13),column2_correct(v,m11,m8,m12,m0,m5,m2,m15,m13)), diagonal2_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m11,m8),1n,5n,9n,13n,m12,m0),2n,6n,10n,14n,m5,m2),3n,7n,11n,15n,m15,m13),m10,m14,m3,m6,m7,m1,m9,m4)) law column3_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column3(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column3_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal3_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal3(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal3_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round3_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round3(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)) : T.State} def round3_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal3(I.column3(v,m7,m9,m3,m1,m13,m12,m11,m14),m2,m6,m5,m10,m4,m0,m15,m8), I.diagonal3(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m7,m9),1n,5n,9n,13n,m3,m1),2n,6n,10n,14n,m13,m12),3n,7n,11n,15n,m11,m14),m2,m6,m5,m10,m4,m0,m15,m8), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m7,m9),1n,5n,9n,13n,m3,m1),2n,6n,10n,14n,m13,m12),3n,7n,11n,15n,m11,m14),0n,5n,10n,15n,m2,m6),1n,6n,11n,12n,m5,m10),2n,7n,8n,13n,m4,m0),3n,4n,9n,14n,m15,m8), Equal.cong(T.State,T.State,t => I.diagonal3(t,m2,m6,m5,m10,m4,m0,m15,m8),I.column3(v,m7,m9,m3,m1,m13,m12,m11,m14),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m7,m9),1n,5n,9n,13n,m3,m1),2n,6n,10n,14n,m13,m12),3n,7n,11n,15n,m11,m14),column3_correct(v,m7,m9,m3,m1,m13,m12,m11,m14)), diagonal3_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m7,m9),1n,5n,9n,13n,m3,m1),2n,6n,10n,14n,m13,m12),3n,7n,11n,15n,m11,m14),m2,m6,m5,m10,m4,m0,m15,m8)) law column4_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column4(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column4_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal4_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal4(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal4_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round4_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round4(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)) : T.State} def round4_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal4(I.column4(v,m9,m0,m5,m7,m2,m4,m10,m15),m14,m1,m11,m12,m6,m8,m3,m13), I.diagonal4(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m9,m0),1n,5n,9n,13n,m5,m7),2n,6n,10n,14n,m2,m4),3n,7n,11n,15n,m10,m15),m14,m1,m11,m12,m6,m8,m3,m13), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m9,m0),1n,5n,9n,13n,m5,m7),2n,6n,10n,14n,m2,m4),3n,7n,11n,15n,m10,m15),0n,5n,10n,15n,m14,m1),1n,6n,11n,12n,m11,m12),2n,7n,8n,13n,m6,m8),3n,4n,9n,14n,m3,m13), Equal.cong(T.State,T.State,t => I.diagonal4(t,m14,m1,m11,m12,m6,m8,m3,m13),I.column4(v,m9,m0,m5,m7,m2,m4,m10,m15),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m9,m0),1n,5n,9n,13n,m5,m7),2n,6n,10n,14n,m2,m4),3n,7n,11n,15n,m10,m15),column4_correct(v,m9,m0,m5,m7,m2,m4,m10,m15)), diagonal4_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m9,m0),1n,5n,9n,13n,m5,m7),2n,6n,10n,14n,m2,m4),3n,7n,11n,15n,m10,m15),m14,m1,m11,m12,m6,m8,m3,m13)) law column5_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column5(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column5_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal5_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal5(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal5_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round5_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round5(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)) : T.State} def round5_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal5(I.column5(v,m2,m12,m6,m10,m0,m11,m8,m3),m4,m13,m7,m5,m15,m14,m1,m9), I.diagonal5(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m2,m12),1n,5n,9n,13n,m6,m10),2n,6n,10n,14n,m0,m11),3n,7n,11n,15n,m8,m3),m4,m13,m7,m5,m15,m14,m1,m9), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m2,m12),1n,5n,9n,13n,m6,m10),2n,6n,10n,14n,m0,m11),3n,7n,11n,15n,m8,m3),0n,5n,10n,15n,m4,m13),1n,6n,11n,12n,m7,m5),2n,7n,8n,13n,m15,m14),3n,4n,9n,14n,m1,m9), Equal.cong(T.State,T.State,t => I.diagonal5(t,m4,m13,m7,m5,m15,m14,m1,m9),I.column5(v,m2,m12,m6,m10,m0,m11,m8,m3),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m2,m12),1n,5n,9n,13n,m6,m10),2n,6n,10n,14n,m0,m11),3n,7n,11n,15n,m8,m3),column5_correct(v,m2,m12,m6,m10,m0,m11,m8,m3)), diagonal5_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m2,m12),1n,5n,9n,13n,m6,m10),2n,6n,10n,14n,m0,m11),3n,7n,11n,15n,m8,m3),m4,m13,m7,m5,m15,m14,m1,m9)) law column6_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column6(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column6_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal6_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal6(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal6_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round6_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round6(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)) : T.State} def round6_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal6(I.column6(v,m12,m5,m1,m15,m14,m13,m4,m10),m0,m7,m6,m3,m9,m2,m8,m11), I.diagonal6(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m12,m5),1n,5n,9n,13n,m1,m15),2n,6n,10n,14n,m14,m13),3n,7n,11n,15n,m4,m10),m0,m7,m6,m3,m9,m2,m8,m11), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m12,m5),1n,5n,9n,13n,m1,m15),2n,6n,10n,14n,m14,m13),3n,7n,11n,15n,m4,m10),0n,5n,10n,15n,m0,m7),1n,6n,11n,12n,m6,m3),2n,7n,8n,13n,m9,m2),3n,4n,9n,14n,m8,m11), Equal.cong(T.State,T.State,t => I.diagonal6(t,m0,m7,m6,m3,m9,m2,m8,m11),I.column6(v,m12,m5,m1,m15,m14,m13,m4,m10),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m12,m5),1n,5n,9n,13n,m1,m15),2n,6n,10n,14n,m14,m13),3n,7n,11n,15n,m4,m10),column6_correct(v,m12,m5,m1,m15,m14,m13,m4,m10)), diagonal6_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m12,m5),1n,5n,9n,13n,m1,m15),2n,6n,10n,14n,m14,m13),3n,7n,11n,15n,m4,m10),m0,m7,m6,m3,m9,m2,m8,m11)) law column7_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column7(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column7_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal7_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal7(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal7_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round7_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round7(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)) : T.State} def round7_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal7(I.column7(v,m13,m11,m7,m14,m12,m1,m3,m9),m5,m0,m15,m4,m8,m6,m2,m10), I.diagonal7(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m13,m11),1n,5n,9n,13n,m7,m14),2n,6n,10n,14n,m12,m1),3n,7n,11n,15n,m3,m9),m5,m0,m15,m4,m8,m6,m2,m10), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m13,m11),1n,5n,9n,13n,m7,m14),2n,6n,10n,14n,m12,m1),3n,7n,11n,15n,m3,m9),0n,5n,10n,15n,m5,m0),1n,6n,11n,12n,m15,m4),2n,7n,8n,13n,m8,m6),3n,4n,9n,14n,m2,m10), Equal.cong(T.State,T.State,t => I.diagonal7(t,m5,m0,m15,m4,m8,m6,m2,m10),I.column7(v,m13,m11,m7,m14,m12,m1,m3,m9),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m13,m11),1n,5n,9n,13n,m7,m14),2n,6n,10n,14n,m12,m1),3n,7n,11n,15n,m3,m9),column7_correct(v,m13,m11,m7,m14,m12,m1,m3,m9)), diagonal7_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m13,m11),1n,5n,9n,13n,m7,m14),2n,6n,10n,14n,m12,m1),3n,7n,11n,15n,m3,m9),m5,m0,m15,m4,m8,m6,m2,m10)) law column8_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column8(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column8_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal8_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal8(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal8_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round8_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round8(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)) : T.State} def round8_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal8(I.column8(v,m6,m15,m14,m9,m11,m3,m0,m8),m12,m2,m13,m7,m1,m4,m10,m5), I.diagonal8(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m6,m15),1n,5n,9n,13n,m14,m9),2n,6n,10n,14n,m11,m3),3n,7n,11n,15n,m0,m8),m12,m2,m13,m7,m1,m4,m10,m5), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m6,m15),1n,5n,9n,13n,m14,m9),2n,6n,10n,14n,m11,m3),3n,7n,11n,15n,m0,m8),0n,5n,10n,15n,m12,m2),1n,6n,11n,12n,m13,m7),2n,7n,8n,13n,m1,m4),3n,4n,9n,14n,m10,m5), Equal.cong(T.State,T.State,t => I.diagonal8(t,m12,m2,m13,m7,m1,m4,m10,m5),I.column8(v,m6,m15,m14,m9,m11,m3,m0,m8),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m6,m15),1n,5n,9n,13n,m14,m9),2n,6n,10n,14n,m11,m3),3n,7n,11n,15n,m0,m8),column8_correct(v,m6,m15,m14,m9,m11,m3,m0,m8)), diagonal8_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m6,m15),1n,5n,9n,13n,m14,m9),2n,6n,10n,14n,m11,m3),3n,7n,11n,15n,m0,m8),m12,m2,m13,m7,m1,m4,m10,m5)) law column9_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column9(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column9_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal9_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal9(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal9_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round9_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round9(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)) : T.State} def round9_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal9(I.column9(v,m10,m2,m8,m4,m7,m6,m1,m5),m15,m11,m9,m14,m3,m12,m13,m0), I.diagonal9(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m10,m2),1n,5n,9n,13n,m8,m4),2n,6n,10n,14n,m7,m6),3n,7n,11n,15n,m1,m5),m15,m11,m9,m14,m3,m12,m13,m0), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m10,m2),1n,5n,9n,13n,m8,m4),2n,6n,10n,14n,m7,m6),3n,7n,11n,15n,m1,m5),0n,5n,10n,15n,m15,m11),1n,6n,11n,12n,m9,m14),2n,7n,8n,13n,m3,m12),3n,4n,9n,14n,m13,m0), Equal.cong(T.State,T.State,t => I.diagonal9(t,m15,m11,m9,m14,m3,m12,m13,m0),I.column9(v,m10,m2,m8,m4,m7,m6,m1,m5),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m10,m2),1n,5n,9n,13n,m8,m4),2n,6n,10n,14n,m7,m6),3n,7n,11n,15n,m1,m5),column9_correct(v,m10,m2,m8,m4,m7,m6,m1,m5)), diagonal9_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m10,m2),1n,5n,9n,13n,m8,m4),2n,6n,10n,14n,m7,m6),3n,7n,11n,15n,m1,m5),m15,m11,m9,m14,m3,m12,m13,m0)) law column10_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column10(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column10_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal10_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal10(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal10_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round10_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round10(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)) : T.State} def round10_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal10(I.column10(v,m0,m1,m2,m3,m4,m5,m6,m7),m8,m9,m10,m11,m12,m13,m14,m15), I.diagonal10(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m0,m1),1n,5n,9n,13n,m2,m3),2n,6n,10n,14n,m4,m5),3n,7n,11n,15n,m6,m7),m8,m9,m10,m11,m12,m13,m14,m15), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m0,m1),1n,5n,9n,13n,m2,m3),2n,6n,10n,14n,m4,m5),3n,7n,11n,15n,m6,m7),0n,5n,10n,15n,m8,m9),1n,6n,11n,12n,m10,m11),2n,7n,8n,13n,m12,m13),3n,4n,9n,14n,m14,m15), Equal.cong(T.State,T.State,t => I.diagonal10(t,m8,m9,m10,m11,m12,m13,m14,m15),I.column10(v,m0,m1,m2,m3,m4,m5,m6,m7),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m0,m1),1n,5n,9n,13n,m2,m3),2n,6n,10n,14n,m4,m5),3n,7n,11n,15n,m6,m7),column10_correct(v,m0,m1,m2,m3,m4,m5,m6,m7)), diagonal10_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m0,m1),1n,5n,9n,13n,m2,m3),2n,6n,10n,14n,m4,m5),3n,7n,11n,15n,m6,m7),m8,m9,m10,m11,m12,m13,m14,m15)) law column11_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.column11(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,x0,x1),1n,5n,9n,13n,x2,x3),2n,6n,10n,14n,x4,x5),3n,7n,11n,15n,x6,x7) : T.State} def column11_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law diagonal11_correct: for +v: T.State for +x0: T.Lane for +x1: T.Lane for +x2: T.Lane for +x3: T.Lane for +x4: T.Lane for +x5: T.Lane for +x6: T.Lane for +x7: T.Lane {I.diagonal11(v,x0,x1,x2,x3,x4,x5,x6,x7) == S.G(S.G(S.G(S.G(v,0n,5n,10n,15n,x0,x1),1n,6n,11n,12n,x2,x3),2n,7n,8n,13n,x4,x5),3n,4n,9n,14n,x6,x7) : T.State} def diagonal11_correct(v,x0,x1,x2,x3,x4,x5,x6,x7): match v x0 x1 x2 x3 x4 x5 x6 x7: case T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}} T.W{p0,q0} T.W{p1,q1} T.W{p2,q2} T.W{p3,q3} T.W{p4,q4} T.W{p5,q5} T.W{p6,q6} T.W{p7,q7}: {==} law round11_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.round11(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)) : T.State} def round11_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State, I.diagonal11(I.column11(v,m14,m10,m4,m8,m9,m15,m13,m6),m1,m12,m0,m2,m11,m7,m5,m3), I.diagonal11(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m14,m10),1n,5n,9n,13n,m4,m8),2n,6n,10n,14n,m9,m15),3n,7n,11n,15n,m13,m6),m1,m12,m0,m2,m11,m7,m5,m3), S.G(S.G(S.G(S.G(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m14,m10),1n,5n,9n,13n,m4,m8),2n,6n,10n,14n,m9,m15),3n,7n,11n,15n,m13,m6),0n,5n,10n,15n,m1,m12),1n,6n,11n,12n,m0,m2),2n,7n,8n,13n,m11,m7),3n,4n,9n,14n,m5,m3), Equal.cong(T.State,T.State,t => I.diagonal11(t,m1,m12,m0,m2,m11,m7,m5,m3),I.column11(v,m14,m10,m4,m8,m9,m15,m13,m6),S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m14,m10),1n,5n,9n,13n,m4,m8),2n,6n,10n,14n,m9,m15),3n,7n,11n,15n,m13,m6),column11_correct(v,m14,m10,m4,m8,m9,m15,m13,m6)), diagonal11_correct(S.G(S.G(S.G(S.G(v,0n,4n,8n,12n,m14,m10),1n,5n,9n,13n,m4,m8),2n,6n,10n,14n,m9,m15),3n,7n,11n,15n,m13,m6),m1,m12,m0,m2,m11,m7,m5,m3)) law rounds_correct: for +v: T.State for +m0: T.Lane for +m1: T.Lane for +m2: T.Lane for +m3: T.Lane for +m4: T.Lane for +m5: T.Lane for +m6: T.Lane for +m7: T.Lane for +m8: T.Lane for +m9: T.Lane for +m10: T.Lane for +m11: T.Lane for +m12: T.Lane for +m13: T.Lane for +m14: T.Lane for +m15: T.Lane {I.rounds(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15) == S.rounds(12n,0n,v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15]) : T.State} def rounds_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15): Equal.trans(T.State,I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(I.round3(I.round2(I.round1(I.round0(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(I.round3(I.round2(I.round1(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(I.round3(I.round2(I.round1(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round0(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),round0_correct(v,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), Equal.trans(T.State,I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(I.round3(I.round2(I.round1(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(I.round3(I.round2(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(I.round3(I.round2(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round1(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),round1_correct(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), Equal.trans(T.State,I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(I.round3(I.round2(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(I.round3(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(I.round3(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round2(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),round2_correct(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), Equal.trans(T.State,I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(I.round3(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round3(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),round3_correct(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), Equal.trans(T.State,I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(I.round4(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round4(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),round4_correct(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), Equal.trans(T.State,I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(I.round5(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round5(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),round5_correct(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), Equal.trans(T.State,I.round11(I.round10(I.round9(I.round8(I.round7(I.round6(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(I.round10(I.round9(I.round8(I.round7(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(I.round10(I.round9(I.round8(I.round7(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round6(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),round6_correct(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), Equal.trans(T.State,I.round11(I.round10(I.round9(I.round8(I.round7(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(I.round10(I.round9(I.round8(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(I.round10(I.round9(I.round8(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round7(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),round7_correct(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), Equal.trans(T.State,I.round11(I.round10(I.round9(I.round8(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(I.round10(I.round9(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(I.round10(I.round9(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round8(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),round8_correct(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), Equal.trans(T.State,I.round11(I.round10(I.round9(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(I.round10(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(I.round10(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round9(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),round9_correct(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), Equal.trans(T.State,I.round11(I.round10(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round11(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)), Equal.cong(T.State,T.State,x => I.round11(x,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),I.round10(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15),S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),round10_correct(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)), round11_correct(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(S.round(v,[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(1n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(2n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(3n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(4n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(5n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(6n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(7n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(8n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(9n)),[m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15],S.sigma(0n)),m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15)))))))))))) law start_correct: for +h: T.Chain for +t: T.Counter {I.start(h,t) == S.start(h,t,False{}) : T.State} def start_correct(h,t): match h t: case T.H{T.W{g0,e0},T.W{g1,e1},T.W{g2,e2},T.W{g3,e3},T.W{g4,e4},T.W{g5,e5},T.W{g6,e6},T.W{g7,e7}} T.C{t0,t1,t2,t3}: {==} law start_last_correct: for +h: T.Chain for +t: T.Counter {I.start_last(h,t) == S.start(h,t,True{}) : T.State} def start_last_correct(h,t): match h t: case T.H{T.W{g0,e0},T.W{g1,e1},T.W{g2,e2},T.W{g3,e3},T.W{g4,e4},T.W{g5,e5},T.W{g6,e6},T.W{g7,e7}} T.C{t0,t1,t2,t3}: {==} law finish_correct: for +h: T.Chain for +v: T.State {I.finish(h,v) == S.finish(h,v) : T.Chain} def finish_correct(h,v): match h v: case T.H{T.W{g0,e0},T.W{g1,e1},T.W{g2,e2},T.W{g3,e3},T.W{g4,e4},T.W{g5,e5},T.W{g6,e6},T.W{g7,e7}} T.V{T.W{l0,u0},T.W{l1,u1},T.W{l2,u2},T.W{l3,u3},T.W{l4,u4},T.W{l5,u5},T.W{l6,u6},T.W{l7,u7},T.W{l8,u8},T.W{l9,u9},T.W{l10,u10},T.W{l11,u11},T.W{l12,u12},T.W{l13,u13},T.W{l14,u14},T.W{l15,u15}}: {==} law compress_correct: for +h: T.Chain for +t: T.Counter for +w0: U32 for +w1: U32 for +w2: U32 for +w3: U32 for +w4: U32 for +w5: U32 for +w6: U32 for +w7: U32 for +w8: U32 for +w9: U32 for +w10: U32 for +w11: U32 for +w12: U32 for +w13: U32 for +w14: U32 for +w15: U32 for +w16: U32 for +w17: U32 for +w18: U32 for +w19: U32 for +w20: U32 for +w21: U32 for +w22: U32 for +w23: U32 for +w24: U32 for +w25: U32 for +w26: U32 for +w27: U32 for +w28: U32 for +w29: U32 for +w30: U32 for +w31: U32 {I.compress(h,t,w0,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14,w15,w16,w17,w18,w19,w20,w21,w22,w23,w24,w25,w26,w27,w28,w29,w30,w31) == S.compress(h,[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}],t,False{}) : T.Chain} def compress_correct(h,t,w0,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14,w15,w16,w17,w18,w19,w20,w21,w22,w23,w24,w25,w26,w27,w28,w29,w30,w31): Equal.trans(T.Chain,I.finish(h,I.rounds(I.start(h,t),T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31})),I.finish(h,S.rounds(12n,0n,I.start(h,t),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])),S.finish(h,S.rounds(12n,0n,S.start(h,t,False{}),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])), Equal.cong(T.State,T.Chain,x => I.finish(h,x),I.rounds(I.start(h,t),T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}),S.rounds(12n,0n,I.start(h,t),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}]),rounds_correct(I.start(h,t),T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31})), Equal.trans(T.Chain,I.finish(h,S.rounds(12n,0n,I.start(h,t),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])),I.finish(h,S.rounds(12n,0n,S.start(h,t,False{}),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])),S.finish(h,S.rounds(12n,0n,S.start(h,t,False{}),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])), Equal.cong(T.State,T.Chain,x => I.finish(h,S.rounds(12n,0n,x,[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])),I.start(h,t),S.start(h,t,False{}),start_correct(h,t)), finish_correct(h,S.rounds(12n,0n,S.start(h,t,False{}),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])))) law compress_last_correct: for +h: T.Chain for +t: T.Counter for +w0: U32 for +w1: U32 for +w2: U32 for +w3: U32 for +w4: U32 for +w5: U32 for +w6: U32 for +w7: U32 for +w8: U32 for +w9: U32 for +w10: U32 for +w11: U32 for +w12: U32 for +w13: U32 for +w14: U32 for +w15: U32 for +w16: U32 for +w17: U32 for +w18: U32 for +w19: U32 for +w20: U32 for +w21: U32 for +w22: U32 for +w23: U32 for +w24: U32 for +w25: U32 for +w26: U32 for +w27: U32 for +w28: U32 for +w29: U32 for +w30: U32 for +w31: U32 {I.compress_last(h,t,w0,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14,w15,w16,w17,w18,w19,w20,w21,w22,w23,w24,w25,w26,w27,w28,w29,w30,w31) == S.compress(h,[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}],t,True{}) : T.Chain} def compress_last_correct(h,t,w0,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14,w15,w16,w17,w18,w19,w20,w21,w22,w23,w24,w25,w26,w27,w28,w29,w30,w31): Equal.trans(T.Chain,I.finish(h,I.rounds(I.start_last(h,t),T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31})),I.finish(h,S.rounds(12n,0n,I.start_last(h,t),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])),S.finish(h,S.rounds(12n,0n,S.start(h,t,True{}),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])), Equal.cong(T.State,T.Chain,x => I.finish(h,x),I.rounds(I.start_last(h,t),T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}),S.rounds(12n,0n,I.start_last(h,t),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}]),rounds_correct(I.start_last(h,t),T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31})), Equal.trans(T.Chain,I.finish(h,S.rounds(12n,0n,I.start_last(h,t),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])),I.finish(h,S.rounds(12n,0n,S.start(h,t,True{}),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])),S.finish(h,S.rounds(12n,0n,S.start(h,t,True{}),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])), Equal.cong(T.State,T.Chain,x => I.finish(h,S.rounds(12n,0n,x,[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])),I.start_last(h,t),S.start(h,t,True{}),start_last_correct(h,t)), finish_correct(h,S.rounds(12n,0n,S.start(h,t,True{}),[T.W{w0,w1},T.W{w2,w3},T.W{w4,w5},T.W{w6,w7},T.W{w8,w9},T.W{w10,w11},T.W{w12,w13},T.W{w14,w15},T.W{w16,w17},T.W{w18,w19},T.W{w20,w21},T.W{w22,w23},T.W{w24,w25},T.W{w26,w27},T.W{w28,w29},T.W{w30,w31}])))) law bump_correct: for +c: T.Counter for +x: U32 {I.bump(c,x) == S.advance(c,x) : T.Counter} def bump_correct(c,x): match c: case T.C{c0,c1,c2,c3}: {==}