Solving bitvectors with MCSAT: explanations from bits and pieces
Stéphane Graham-Lengrand, Dejan Jovanović, Bruno Dutertre SRI International IJCAR, July 2020
1/32
Solving bitvectors with MCSAT: explanations from bits and pieces - - PowerPoint PPT Presentation
Solving bitvectors with MCSAT: explanations from bits and pieces Stphane Graham-Lengrand, Dejan Jovanovi, Bruno Dutertre SRI International IJCAR, July 2020 1/32 tl;dl (Too Long; Didnt Listen) MCSAT (Model-Constructing
1/32
2/32
3/32
4/32
5/32
5/32
5/32
5/32
5/32
6/32
6/32
6/32
6/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
1, . . . , v ′ n to assign to x1, . . . , xn
7/32
1 , . . . , C 1 j , . . .
1 , C 2 2 , . . . , C 2 j , . . .
1 , C 3 2 , . . . , C 3 j , . . .
1, C i 2, . . . , C i 42, . . . , C i j , . . .
1, . . . , v ′ n to assign to x1, . . . , xn
7/32
8/32
8/32
8/32
8/32
8/32
9/32
9/32
9/32
9/32
10/32
11/32
11/32
11/32
12/32
13/32
13/32
13/32
14/32
14/32
14/32
14/32
15/32
15/32
15/32
15/32
15/32
16/32
16/32
17/32
17/32
17/32
17/32
17/32
18/32
18/32
18/32
18/32
18/32
18/32
18/32
19/32
19/32
19/32
19/32
19/32
20/32
20/32
Z/24Z
Z/22Z
Z/21Z
20/32
M(I1) Z/24Z
Z/22Z
Z/21Z
20/32
M(I1) M(I2) Z/24Z
Z/22Z
Z/21Z
20/32
M(I1) M(I2) Z/24Z
M(I3) Z/22Z
Z/21Z
20/32
M(I1) M(I2) Z/24Z
M(I3) Z/22Z
M(I4) Z/21Z
20/32
20/32
u1 <s u2 ¬(u2 ≤s u1) u1 ≤s u2 u1+2|u1|−1 ≤u u2+2|u2|−1 u1 <u u2 ¬(u2 ≤u u1) u1 ≃ u2 u1 − u2 ≤u 0 u[h:l] u[h:][:l] u[:l][h:] u[h+l:][:l] (u1◦u2)[:l] u1[:l−|u2|] if |u2| ≤ l (u1◦u2)[h:] u2[h:] if h ≤ |u2| (u1◦u2)[:l] u1 ◦ u2[:l] if not (u1◦u2)[h:] u1[h−|u2|:] ◦ u2 if not 2n × u u[|u|−n:] ◦ 0n (n < |u|) (u1+u2)[h:] u1[h:] + u2[h:] bvnot(u) −(u + 1) (u1 × u2)[h:] u1[h:] × u2[h:] ±-extendk(u) (0k◦(u+2|u|−1))−(0k◦2|u|−1) (−u)[h:] −u[h:] u1◦u2
21/32
u1 <s u2 ¬(u2 ≤s u1) u1 ≤s u2 u1+2|u1|−1 ≤u u2+2|u2|−1 u1 <u u2 ¬(u2 ≤u u1) u1 ≃ u2 u1 − u2 ≤u 0 u[h:l] u[h:][:l] u[:l][h:] u[h+l:][:l] (u1◦u2)[:l] u1[:l−|u2|] if |u2| ≤ l (u1◦u2)[h:] u2[h:] if h ≤ |u2| (u1◦u2)[:l] u1 ◦ u2[:l] if not (u1◦u2)[h:] u1[h−|u2|:] ◦ u2 if not 2n × u u[|u|−n:] ◦ 0n (n < |u|) (u1+u2)[h:] u1[h:] + u2[h:] bvnot(u) −(u + 1) (u1 × u2)[h:] u1[h:] × u2[h:] ±-extendk(u) (0k◦(u+2|u|−1))−(0k◦2|u|−1) (−u)[h:] −u[h:] u1◦u2
21/32
22/32
20 40 60 80 100 120 140 160 180 29000 30000 31000 32000 33000 34000 time (s) benchmarks solved all bb bb+eq bb+arith all-prop smtcomp2019
23/32
24/32
24/32
24/32
25/32
26/32
26/32
27/32
27/32
27/32
28/32
29/32
30/32
31/32
32/32