4 print("usage: {} maxiterations".format(sys
.argv
[0]))
7 iterations
= int(sys
.argv
[1]) if len(sys
.argv
) > 1 else 11
11 print("(benchmark a4.smt")
12 print(":logic QF_UFLIA")
16 print("(a{} Int)".format(1))
17 print("(a{} Int)".format(numa
))
18 for i
in range(iterations
):
19 for v
in range(2, numa
):
20 print("(i{}a{} Int) ".format(i
, v
))
27 print("(= a{0} {0})".format(numa
, numa
))
28 for i
in range(2, numa
):
29 print("(= i0a{0} {0})".format(i
))
32 for i
in range(1, iterations
):
34 for v
in range(2, numa
):
36 for ov
in [k
for k
in range(2, numa
) if k
!= v
]:
37 print("(= i{0}a{1} i{2}a{1})".format(i
, ov
, i
-1))
38 im1
= 'a1' if v
== 2 else 'i{}a{}'.format(i
, v
-1)
39 ip1
= 'a{}'.format(numa
) if v
== numa
-1 else 'i{}a{}'.format(i
-1, v
+1)
40 print("(= i{}a{} (+ {} {}))".format(i
, v
, im1
, ip1
))
46 for v
in range(2, numa
):
47 print("(and (>= i{}a{} 50)".format(iterations
-1, v
))
49 for ov
in [k
for k
in range(2, numa
) if k
!= v
]:
50 print("(= i{0}a{1} i{0}a{2})".format(iterations
-1, v
, ov
))
54 # Close the and,benchmark parenthesis