#NEWLINE# def setupSimonRound( self , stp_file , x0_in , y0_in , x0_out , y0_out , and_out0 , key , wordsize ) : #NEWLINE# #INDENT# '\n        Returns a string representing one round of Simon in STP.\n        y[i+1] = x[i]\n        x[i+1] = (x[i] <<< 1) & (x[i] <<< 8) ^ y[i] ^ (x[i] << 2) ^ key\n        ' #NEWLINE# command = '' #NEWLINE# command += 'ASSERT({} = {});\n' . format ( y0_out , x0_in ) #NEWLINE# command += 'ASSERT({} = {} & {});\n' . format ( and_out0 , rotl ( x0_in , self . rot_beta , wordsize ) , rotl ( x0_in , self . rot_alpha , wordsize ) ) #NEWLINE# command += 'ASSERT({} = BVXOR({}, BVXOR({}, BVXOR({}, {}))));\n' . format ( x0_out , y0_in , and_out0 , key , rotl ( x0_in , self . rot_gamma , wordsize ) ) #NEWLINE# stp_file . write ( command ) #NEWLINE# return