Beispiel #1
0
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)
Beispiel #2
0
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):
Beispiel #3
0
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):
Beispiel #4
0
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)