Commit ad8a7ff
authored
Handle inconsistent ground truth and SMT unknowns when checking
When checking `ensures` conditions of rewrite rules with the SMT solver,
we must mark rewrite as trivial if the ground truth is inconsistent. If
the SMT solver returns unknown, we must abort rewriting.
Previously, we were swallowing both of there cases and finalizing the
rewrite step successfully. This behavior of Booster went undetected for
a long time since we would usually abort rewriting or detect a vacuous
state at the next step, resulting in wasted work but no unsoundness.
We also tweak the return type of `checkPredicates` to convey addition
information why the result is unknown. This will be useful when we start
tolerating SMT unknowns and branching on that.ensures (#4063)1 parent 4347105 commit ad8a7ff
File tree
7 files changed
+142
-260
lines changed- booster
- library/Booster
- Pattern
- SMT
- test/rpc-integration/test-substitutions
7 files changed
+142
-260
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
363 | 363 | | |
364 | 364 | | |
365 | 365 | | |
366 | | - | |
| 366 | + | |
367 | 367 | | |
368 | 368 | | |
369 | 369 | | |
| |||
407 | 407 | | |
408 | 408 | | |
409 | 409 | | |
410 | | - | |
| 410 | + | |
411 | 411 | | |
412 | 412 | | |
413 | 413 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
438 | 438 | | |
439 | 439 | | |
440 | 440 | | |
441 | | - | |
442 | | - | |
443 | | - | |
444 | | - | |
445 | | - | |
446 | | - | |
447 | | - | |
448 | | - | |
449 | | - | |
450 | 441 | | |
451 | | - | |
452 | | - | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
453 | 446 | | |
454 | 447 | | |
455 | 448 | | |
| |||
467 | 460 | | |
468 | 461 | | |
469 | 462 | | |
| 463 | + | |
| 464 | + | |
470 | 465 | | |
471 | 466 | | |
472 | 467 | | |
473 | 468 | | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
474 | 480 | | |
475 | 481 | | |
476 | 482 | | |
| |||
482 | 488 | | |
483 | 489 | | |
484 | 490 | | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
485 | 503 | | |
486 | 504 | | |
487 | 505 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
| 37 | + | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
44 | 46 | | |
45 | 47 | | |
46 | 48 | | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
47 | 57 | | |
48 | 58 | | |
49 | 59 | | |
| |||
188 | 198 | | |
189 | 199 | | |
190 | 200 | | |
191 | | - | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
192 | 218 | | |
193 | 219 | | |
194 | 220 | | |
195 | 221 | | |
196 | | - | |
| 222 | + | |
197 | 223 | | |
198 | 224 | | |
199 | 225 | | |
| |||
243 | 269 | | |
244 | 270 | | |
245 | 271 | | |
246 | | - | |
| 272 | + | |
247 | 273 | | |
248 | 274 | | |
249 | 275 | | |
| |||
347 | 373 | | |
348 | 374 | | |
349 | 375 | | |
350 | | - | |
| 376 | + | |
351 | 377 | | |
352 | 378 | | |
353 | 379 | | |
| |||
418 | 444 | | |
419 | 445 | | |
420 | 446 | | |
421 | | - | |
| 447 | + | |
422 | 448 | | |
423 | 449 | | |
424 | | - | |
| 450 | + | |
425 | 451 | | |
426 | 452 | | |
427 | | - | |
428 | | - | |
| 453 | + | |
| 454 | + | |
429 | 455 | | |
430 | 456 | | |
431 | 457 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
Lines changed: 7 additions & 55 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
225 | 225 | | |
226 | 226 | | |
227 | 227 | | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
283 | 235 | | |
284 | 236 | | |
285 | 237 | | |
| |||
0 commit comments