def solve(self): self._query_storage += smt_helper.make_exit() self._query_storage.flush() file_name = '{file_prefix}_{index}.smt2'.format(file_prefix=self.__file_prefix, index=str(self.__cur_index)) logging.info('copying {src} into {dst}'.format(src=self._file_name, dst=file_name)) logging.info(shutil.copyfile(self._file_name, file_name)) self.__cur_index += 1 return None # always return UNSAT
def solve(self): self._logger.info('solving ' + self._file_name) self._query_storage += smt_helper.make_exit() self._query_storage.flush() # i know query_storage.flush() exists #change the name of file and z3_cmd if necessary ret, out, err = execute_shell(self._z3_cmd) self._logger.debug('solver returned: \n' + out) out_lines = [s.strip() for s in out.splitlines() if s] if ret == 1 and out_lines[0].strip() != 'unsat': assert 0, 'error while executing z3: ret: {ret}\n' \ 'out:{out}\n' \ 'err:{err}\n'.format(ret=str(ret), out=out, err=err) if out_lines[0] == 'sat': return out_lines[1:] else: return None