args.add_argument("--slots", type=int, help="Slots per match", default=4) the_args = args.parse_args() set_config(the_args.rounds, the_args.teams, the_args.closeness, the_args.slots) compute_bitwidths() validate_config() print "(set-info :status unknown)" print "(set-option :produce-models true)" output_object = None if the_args.z3: output_object = Z3() elif the_args.qfaufbv: output_object = QFAUFBV() elif the_args.qfbv: output_object = QFBV() else: output_object = QFBV() output_object.preamble() # Ensure all slots over all matchs per round are distinct. for i in range(config.NUMROUNDS): print "; round {0}".format(i) print "(assert (distinct " for j in range(config.NUMMATCHES): for k in range(config.NUMSLOTS): print output_object.project(i, j, k)
expr = Forward() expr << Group((lparen + symbol + expr + rparen) | (lparen + symbol + expr + expr + rparen) | (lparen + symbol + expr + expr + expr + rparen) | symbol | bitvec) # Pairs of results for the output. outpair = Group(lparen + lparen + expr + expr + rparen + rparen) everything = OneOrMore(outpair) # Read /all the things/ output_values = dict() # We know it's qfaufbv in testing. smt_eater = QFAUFBV() foo = everything.parseFile(sys.stdin) for assignment in foo: paren1, paren2, expr1, expr2, paren3, paren4 = assignment # expr1 is the source name, expr2 the actual value. # Do some things round, match, slot = smt_eater.read_variable(expr1) team_no = read_assign(expr2) output_values[round, match, slot] = team_no # Print all the things. for i in range(NUMROUNDS): for j in range(NUMMATCHES): something = [] for k in range(NUMSLOTS):
bitvec = Group(hashchar + bchar + OneOrMore(bit)) # Our expr: expr = Forward() expr << Group((lparen + symbol + expr + rparen) | (lparen + symbol + expr + expr + rparen) | (lparen + symbol + expr + expr + expr + rparen) | symbol | bitvec) # Pairs of results for the output. outpair = Group(lparen + lparen + expr + expr + rparen + rparen) everything = OneOrMore(outpair) # Read /all the things/ output_values = dict() # We know it's qfaufbv in testing. smt_eater = QFAUFBV() foo = everything.parseFile(sys.stdin) for assignment in foo: paren1, paren2, expr1, expr2, paren3, paren4 = assignment # expr1 is the source name, expr2 the actual value. # Do some things round, match, slot = smt_eater.read_variable(expr1) team_no = read_assign(expr2) output_values[round, match, slot] = team_no # Print all the things. for i in range(NUMROUNDS): for j in range(NUMMATCHES): something = [] for k in range(NUMSLOTS):
the_args = args.parse_args() set_config(the_args.rounds, the_args.teams, the_args.closeness, the_args.slots) compute_bitwidths() validate_config() print "(set-info :status unknown)" print "(set-option :produce-models true)" output_object = None if the_args.z3: output_object = Z3() elif the_args.qfaufbv: output_object = QFAUFBV() elif the_args.qfbv: output_object = QFBV() else: output_object = QFBV() output_object.preamble() # Ensure all slots over all matchs per round are distinct. for i in range(config.NUMROUNDS): print "; round {0}".format(i) print "(assert (distinct " for j in range(config.NUMMATCHES): for k in range(config.NUMSLOTS): print output_object.project(i, j, k)