summaryrefslogtreecommitdiff
path: root/src/smt/.smt_engine.cpp.swo
blob: 0d4a4245ec7e1008ea8662e8f42aa95b47c167b3 (plain)
ofshex dumpascii
0000 62 30 56 49 4d 20 37 2e 34 00 00 00 00 10 00 00 88 2d 60 59 5a 2a 00 00 d5 01 00 00 6a 75 73 74 b0VIM.7.4........-`YZ*......just
0020 69 6e 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 inx.............................
0040 00 00 00 00 4a 55 53 54 49 4e 58 55 2d 50 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....JUSTINXU-PC.................
0060 00 00 00 00 00 00 00 00 00 00 00 00 7e 6a 75 73 74 69 6e 78 2f 43 56 43 34 2f 73 72 63 2f 73 6d ............~justinx/CVC4/src/sm
0080 74 2f 73 6d 74 5f 65 6e 67 69 6e 65 2e 63 70 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 t/smt_engine.cpp................
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 75 74 66 2d 38 0d 00 33 32 31 30 00 00 00 00 23 22 21 20 13 12 55 00 .........utf-8..3210....#"!...U.
0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1000 74 70 3b 00 7f 00 00 00 38 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 tp;.....8.......p...............
1020 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 74 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ................t.......q.......
1040 01 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 3e 00 00 00 00 00 00 00 e5 00 00 00 00 00 00 00 ................>...............
1060 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 74 00 00 00 00 00 00 00 23 01 00 00 00 00 00 00 ................t.......#.......
1080 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 73 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ................s.......q.......
10a0 01 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 77 00 00 00 00 00 00 00 0a 02 00 00 00 00 00 00 ................w...............
10c0 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00 89 02 00 00 00 00 00 00 ................Z...............
10e0 01 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 6a 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ................j.......q.......
1100 01 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 64 00 00 00 00 00 00 00 e5 02 00 00 00 00 00 00 ................d...............
1120 01 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 6b 00 00 00 00 00 00 00 b1 03 00 00 00 00 00 00 ................k...............
1140 01 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 75 00 00 00 00 00 00 00 1c 04 00 00 00 00 00 00 ................u...............
1160 01 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 91 04 00 00 00 00 00 00 ................~...............
1180 01 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 5e 00 00 00 00 00 00 00 0f 05 00 00 00 00 00 00 ................^...............
11a0 01 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 6d 05 00 00 00 00 00 00 ................V.......m.......
11c0 01 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 51 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ................Q.......q.......
11e0 01 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 59 00 00 00 00 00 00 00 14 06 00 00 00 00 00 00 ................Y...............
1200 01 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ................`.......q.......
1220 01 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 69 00 00 00 00 00 00 00 cd 06 00 00 00 00 00 00 ................i...............
1240 01 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 63 00 00 00 00 00 00 00 36 07 00 00 00 00 00 00 ................c.......6.......
1260 01 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 59 00 00 00 00 00 00 00 99 07 00 00 00 00 00 00 ................Y...............
1280 01 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00 61 00 00 00 00 00 00 00 f2 07 00 00 00 00 00 00 ................a...............
12a0 01 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 5f 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ................_.......q.......
12c0 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 5b 00 00 00 00 00 00 00 b2 08 00 00 00 00 00 00 ................[...............
12e0 01 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 59 00 00 00 00 00 00 00 0d 09 00 00 00 00 00 00 ................Y...............
1300 01 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 69 00 00 00 00 00 00 00 66 09 00 00 00 00 00 00 ................i.......f.......
1320 01 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 51 00 00 00 00 00 00 00 cf 09 00 00 00 00 00 00 ................Q...............
1340 01 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00 4d 00 00 00 00 00 00 00 20 0a 00 00 00 00 00 00 ................M...............
1360 01 00 00 00 00 00 00 00 1c 00 00 00 00 00 00 00 58 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ................X.......q.......
1380 01 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00 5e 00 00 00 00 00 00 00 6f 0a 00 00 00 00 00 00 ................^.......o.......
13a0 01 00 00 00 00 00 00 00 1e 00 00 00 00 00 00 00 53 00 00 00 00 00 00 00 33 0b 00 00 00 00 00 00 ................S.......3.......
13c0 01 00 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 67 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ................g.......q.......
13e0 01 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 59 00 00 00 00 00 00 00 f5 0b 00 00 00 00 00 00 ................Y...............
1400 01 00 00 00 00 00 00 00 21 00 00 00 00 00 00 00 4e 00 00 00 00 00 00 00 4e 0c 00 00 00 00 00 00 ........!.......N.......N.......
1420 01 00 00 00 00 00 00 00 22 00 00 00 00 00 00 00 44 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ........".......D.......q.......
1440 01 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 53 00 00 00 00 00 00 00 9e 0c 00 00 00 00 00 00 ........#.......S...............
1460 01 00 00 00 00 00 00 00 24 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 e2 0c 00 00 00 00 00 00 ........$.......%...............
1480 01 00 00 00 00 00 00 00 3b 00 00 00 00 00 00 00 3a 00 00 00 00 00 00 00 43 0d 00 00 00 00 00 00 ........;.......:.......C.......
14a0 01 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 7b 00 00 00 00 00 00 00 91 0d 00 00 00 00 00 00 ........%.......{...............
14c0 01 00 00 00 00 00 00 00 26 00 00 00 00 00 00 00 46 00 00 00 00 00 00 00 0c 0e 00 00 00 00 00 00 ........&.......F...............
14e0 01 00 00 00 00 00 00 00 3c 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 33 0e 00 00 00 00 00 00 ........<...............3.......
1500 01 00 00 00 00 00 00 00 3a 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 54 0e 00 00 00 00 00 00 ........:...............T.......
1520 01 00 00 00 00 00 00 00 39 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 53 0e 00 00 00 00 00 00 ........9...............S.......
1540 01 00 00 00 00 00 00 00 27 00 00 00 00 00 00 00 34 00 00 00 00 00 00 00 6a 0e 00 00 00 00 00 00 ........'.......4.......j.......
1560 01 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 2f 00 00 00 00 00 00 00 c0 0e 00 00 00 00 00 00 ........(......./...............
1580 01 00 00 00 00 00 00 00 29 00 00 00 00 00 00 00 4e 00 00 00 00 00 00 00 14 0f 00 00 00 00 00 00 ........).......N...............
15a0 01 00 00 00 00 00 00 00 2a 00 00 00 00 00 00 00 61 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ........*.......a.......q.......
15c0 01 00 00 00 00 00 00 00 2b 00 00 00 00 00 00 00 6b 00 00 00 00 00 00 00 c3 0f 00 00 00 00 00 00 ........+.......k...............
15e0 01 00 00 00 00 00 00 00 2c 00 00 00 00 00 00 00 55 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ........,.......U.......q.......
1600 01 00 00 00 00 00 00 00 2d 00 00 00 00 00 00 00 57 00 00 00 00 00 00 00 83 10 00 00 00 00 00 00 ........-.......W...............
1620 01 00 00 00 00 00 00 00 2e 00 00 00 00 00 00 00 66 00 00 00 00 00 00 00 da 10 00 00 00 00 00 00 ................f...............
1640 01 00 00 00 00 00 00 00 2f 00 00 00 00 00 00 00 6a 00 00 00 00 00 00 00 40 11 00 00 00 00 00 00 ......../.......j.......@.......
1660 01 00 00 00 00 00 00 00 30 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 aa 11 00 00 00 00 00 00 ........0.......p...............
1680 01 00 00 00 00 00 00 00 31 00 00 00 00 00 00 00 48 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ........1.......H.......q.......
16a0 01 00 00 00 00 00 00 00 32 00 00 00 00 00 00 00 4c 00 00 00 00 00 00 00 62 12 00 00 00 00 00 00 ........2.......L.......b.......
16c0 01 00 00 00 00 00 00 00 33 00 00 00 00 00 00 00 68 00 00 00 00 00 00 00 ae 12 00 00 00 00 00 00 ........3.......h...............
16e0 01 00 00 00 00 00 00 00 34 00 00 00 00 00 00 00 63 00 00 00 00 00 00 00 16 13 00 00 00 00 00 00 ........4.......c...............
1700 01 00 00 00 00 00 00 00 35 00 00 00 00 00 00 00 74 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 ........5.......t.......q.......
1720 01 00 00 00 00 00 00 00 36 00 00 00 00 00 00 00 7a 00 00 00 00 00 00 00 7b 13 00 00 00 00 00 00 ........6.......z.......{.......
1740 01 00 00 00 00 00 00 00 37 00 00 00 00 00 00 00 59 00 00 00 00 00 00 00 67 14 00 00 00 00 00 00 ........7.......Y.......g.......
1760 01 00 00 00 00 00 00 00 c6 ff ff ff ff ff ff ff 72 00 00 00 00 00 00 00 97 01 00 00 00 00 00 00 ................r...............
1780 01 00 00 00 00 00 00 00 c5 ff ff ff ff ff ff ff 7e 00 00 00 00 00 00 00 0a 02 00 00 00 00 00 00 ................~...............
17a0 01 00 00 00 00 00 00 00 c4 ff ff ff ff ff ff ff 59 00 00 00 00 00 00 00 89 02 00 00 00 00 00 00 ................Y...............
17c0 01 00 00 00 00 00 00 00 c3 ff ff ff ff ff ff ff 69 00 00 00 00 00 00 00 e3 02 00 00 00 00 00 00 ................i...............
17e0 01 00 00 00 00 00 00 00 c2 ff ff ff ff ff ff ff 63 00 00 00 00 00 00 00 4d 03 00 00 00 00 00 00 ................c.......M.......
1800 01 00 00 00 00 00 00 00 c1 ff ff ff ff ff ff ff 6a 00 00 00 00 00 00 00 b1 03 00 00 00 00 00 00 ................j...............
1820 01 00 00 00 00 00 00 00 c0 ff ff ff ff ff ff ff 74 00 00 00 00 00 00 00 1c 04 00 00 00 00 00 00 ................t...............
1840 01 00 00 00 00 00 00 00 bf ff ff ff ff ff ff ff 7d 00 00 00 00 00 00 00 91 04 00 00 00 00 00 00 ................}...............
1860 01 00 00 00 00 00 00 00 be ff ff ff ff ff ff ff 5d 00 00 00 00 00 00 00 0f 05 00 00 00 00 00 00 ................]...............
1880 01 00 00 00 00 00 00 00 bd ff ff ff ff ff ff ff 55 00 00 00 00 00 00 00 6d 05 00 00 00 00 00 00 ................U.......m.......
18a0 01 00 00 00 00 00 00 00 bc ff ff ff ff ff ff ff 50 00 00 00 00 00 00 00 c3 05 00 00 00 00 00 00 ................P...............
18c0 01 00 00 00 00 00 00 00 bb ff ff ff ff ff ff ff 58 00 00 00 00 00 00 00 14 06 00 00 00 00 00 00 ................X...............
18e0 01 00 00 00 00 00 00 00 ba ff ff ff ff ff ff ff 5f 00 00 00 00 00 00 00 6d 06 00 00 00 00 00 00 ................_.......m.......
1900 01 00 00 00 00 00 00 00 b9 ff ff ff ff ff ff ff 68 00 00 00 00 00 00 00 cd 06 00 00 00 00 00 00 ................h...............
1920 01 00 00 00 00 00 00 00 b8 ff ff ff ff ff ff ff 62 00 00 00 00 00 00 00 36 07 00 00 00 00 00 00 ................b.......6.......
1940 01 00 00 00 00 00 00 00 b7 ff ff ff ff ff ff ff 58 00 00 00 00 00 00 00 99 07 00 00 00 00 00 00 ................X...............
1960 01 00 00 00 00 00 00 00 b6 ff ff ff ff ff ff ff 60 00 00 00 00 00 00 00 f2 07 00 00 00 00 00 00 ................`...............
1980 01 00 00 00 00 00 00 00 b5 ff ff ff ff ff ff ff 5e 00 00 00 00 00 00 00 53 08 00 00 00 00 00 00 ................^.......S.......
19a0 01 00 00 00 00 00 00 00 b4 ff ff ff ff ff ff ff 5a 00 00 00 00 00 00 00 b2 08 00 00 00 00 00 00 ................Z...............
19c0 01 00 00 00 00 00 00 00 b3 ff ff ff ff ff ff ff 58 00 00 00 00 00 00 00 0d 09 00 00 00 00 00 00 ................X...............
19e0 01 00 00 00 00 00 00 00 b2 ff ff ff ff ff ff ff 68 00 00 00 00 00 00 00 66 09 00 00 00 00 00 00 ................h.......f.......
1a00 01 00 00 00 00 00 00 00 b1 ff ff ff ff ff ff ff 50 00 00 00 00 00 00 00 cf 09 00 00 00 00 00 00 ................P...............
1a20 01 00 00 00 00 00 00 00 b0 ff ff ff ff ff ff ff 4c 00 00 00 00 00 00 00 20 0a 00 00 00 00 00 00 ................L...............
1a40 01 00 00 00 00 00 00 00 af ff ff ff ff ff ff ff 57 00 00 00 00 00 00 00 6d 0a 00 00 00 00 00 00 ................W.......m.......
1a60 01 00 00 00 00 00 00 00 ae ff ff ff ff ff ff ff 6d 00 00 00 00 00 00 00 c5 0a 00 00 00 00 00 00 ................m...............
1a80 01 00 00 00 00 00 00 00 ad ff ff ff ff ff ff ff 5a 00 00 00 00 00 00 00 33 0b 00 00 00 00 00 00 ................Z.......3.......
1aa0 01 00 00 00 00 00 00 00 ac ff ff ff ff ff ff ff 66 00 00 00 00 00 00 00 8e 0b 00 00 00 00 00 00 ................f...............
1ac0 01 00 00 00 00 00 00 00 ab ff ff ff ff ff ff ff 58 00 00 00 00 00 00 00 f5 0b 00 00 00 00 00 00 ................X...............
1ae0 01 00 00 00 00 00 00 00 aa ff ff ff ff ff ff ff 4d 00 00 00 00 00 00 00 4e 0c 00 00 00 00 00 00 ................M.......N.......
1b00 01 00 00 00 00 00 00 00 a9 ff ff ff ff ff ff ff 43 00 00 00 00 00 00 00 9c 0c 00 00 00 00 00 00 ................C...............
1b20 01 00 00 00 00 00 00 00 a8 ff ff ff ff ff ff ff 52 00 00 00 00 00 00 00 e0 0c 00 00 00 00 00 00 ................R...............
1b40 01 00 00 00 00 00 00 00 a7 ff ff ff ff ff ff ff 5d 00 00 00 00 00 00 00 33 0d 00 00 00 00 00 00 ................].......3.......
1b60 01 00 00 00 00 00 00 00 a6 ff ff ff ff ff ff ff 7a 00 00 00 00 00 00 00 91 0d 00 00 00 00 00 00 ................z...............
1b80 01 00 00 00 00 00 00 00 a5 ff ff ff ff ff ff ff 5d 00 00 00 00 00 00 00 0c 0e 00 00 00 00 00 00 ................]...............
1ba0 01 00 00 00 00 00 00 00 a4 ff ff ff ff ff ff ff 55 00 00 00 00 00 00 00 6a 0e 00 00 00 00 00 00 ................U.......j.......
1bc0 01 00 00 00 00 00 00 00 a3 ff ff ff ff ff ff ff 53 00 00 00 00 00 00 00 c0 0e 00 00 00 00 00 00 ................S...............
1be0 01 00 00 00 00 00 00 00 a2 ff ff ff ff ff ff ff 4d 00 00 00 00 00 00 00 14 0f 00 00 00 00 00 00 ................M...............
1c00 01 00 00 00 00 00 00 00 a1 ff ff ff ff ff ff ff 60 00 00 00 00 00 00 00 62 0f 00 00 00 00 00 00 ................`.......b.......
1c20 01 00 00 00 00 00 00 00 a0 ff ff ff ff ff ff ff 6a 00 00 00 00 00 00 00 c3 0f 00 00 00 00 00 00 ................j...............
1c40 01 00 00 00 00 00 00 00 9f ff ff ff ff ff ff ff 54 00 00 00 00 00 00 00 2e 10 00 00 00 00 00 00 ................T...............
1c60 01 00 00 00 00 00 00 00 9e ff ff ff ff ff ff ff 56 00 00 00 00 00 00 00 83 10 00 00 00 00 00 00 ................V...............
1c80 01 00 00 00 00 00 00 00 9d ff ff ff ff ff ff ff 65 00 00 00 00 00 00 00 da 10 00 00 00 00 00 00 ................e...............
1ca0 01 00 00 00 00 00 00 00 9c ff ff ff ff ff ff ff 69 00 00 00 00 00 00 00 40 11 00 00 00 00 00 00 ................i.......@.......
1cc0 01 00 00 00 00 00 00 00 9b ff ff ff ff ff ff ff 6f 00 00 00 00 00 00 00 aa 11 00 00 00 00 00 00 ................o...............
1ce0 01 00 00 00 00 00 00 00 9a ff ff ff ff ff ff ff 47 00 00 00 00 00 00 00 1a 12 00 00 00 00 00 00 ................G...............
1d00 01 00 00 00 00 00 00 00 99 ff ff ff ff ff ff ff 4b 00 00 00 00 00 00 00 62 12 00 00 00 00 00 00 ................K.......b.......
1d20 01 00 00 00 00 00 00 00 98 ff ff ff ff ff ff ff 67 00 00 00 00 00 00 00 ae 12 00 00 00 00 00 00 ................g...............
1d40 01 00 00 00 00 00 00 00 97 ff ff ff ff ff ff ff 62 00 00 00 00 00 00 00 16 13 00 00 00 00 00 00 ................b...............
1d60 01 00 00 00 00 00 00 00 96 ff ff ff ff ff ff ff 73 00 00 00 00 00 00 00 79 13 00 00 00 00 00 00 ................s.......y.......
1d80 01 00 00 00 00 00 00 00 95 ff ff ff ff ff ff ff 79 00 00 00 00 00 00 00 ed 13 00 00 00 00 00 00 ................y...............
1da0 01 00 00 00 00 00 00 00 94 ff ff ff ff ff ff ff 5a 00 00 00 00 00 00 00 67 14 00 00 00 00 00 00 ................Z.......g.......
1dc0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2000 61 64 00 00 13 00 00 00 ff 01 00 00 00 10 00 00 74 00 00 00 00 00 00 00 b0 0f 00 00 ae 0f 00 00 ad..............t...............
2020 70 0f 00 00 6d 0f 00 00 6c 0f 00 00 28 0f 00 00 dc 0e 00 00 c8 0e 00 00 c6 0e 00 00 c5 0e 00 00 p...m...l...(...................
2040 8b 0e 00 00 76 0e 00 00 6d 0e 00 00 58 0e 00 00 50 0e 00 00 25 0e 00 00 16 0e 00 00 12 0e 00 00 ....v...m...X...P...%...........
2060 ff 0d 00 00 f0 0d 00 00 ec 0d 00 00 e9 0d 00 00 e8 0d 00 00 e4 0d 00 00 a2 0d 00 00 5f 0d 00 00 ............................_...
2080 1a 0d 00 00 f3 0c 00 00 ef 0c 00 00 d7 0c 00 00 c8 0c 00 00 ae 0c 00 00 9c 0c 00 00 94 0c 00 00 ................................
20a0 7d 0c 00 00 3a 0c 00 00 28 0c 00 00 10 0c 00 00 f7 0b 00 00 f3 0b 00 00 c5 0b 00 00 8d 0b 00 00 }...:...(.......................
20c0 5d 0b 00 00 3f 0b 00 00 3e 0b 00 00 24 0b 00 00 0c 0b 00 00 0b 0b 00 00 03 0b 00 00 02 0b 00 00 ]...?...>...$...................
20e0 d1 0a 00 00 d0 0a 00 00 a1 0a 00 00 7d 0a 00 00 7c 0a 00 00 48 0a 00 00 08 0a 00 00 d5 09 00 00 ............}...|...H...........
2100 d4 09 00 00 aa 09 00 00 74 09 00 00 73 09 00 00 50 09 00 00 09 09 00 00 f5 08 00 00 f1 08 00 00 ........t...s...P...............
2120 d1 08 00 00 d0 08 00 00 b3 08 00 00 87 08 00 00 60 08 00 00 2e 08 00 00 02 08 00 00 df 07 00 00 ................`...............
2140 c1 07 00 00 8c 07 00 00 64 07 00 00 1e 07 00 00 00 07 00 00 d9 06 00 00 b7 06 00 00 8f 06 00 00 ........d.......................
2160 74 06 00 00 4c 06 00 00 27 06 00 00 05 06 00 00 e7 05 00 00 bb 05 00 00 97 05 00 00 6b 05 00 00 t...L...'...................k...
2180 44 05 00 00 1e 05 00 00 fd 04 00 00 cf 04 00 00 b1 04 00 00 84 04 00 00 65 04 00 00 41 04 00 00 D.......................e...A...
21a0 23 04 00 00 ff 03 00 00 e1 03 00 00 b9 03 00 00 97 03 00 00 69 03 00 00 50 03 00 00 29 03 00 00 #...................i...P...)...
21c0 0e 03 00 00 e3 02 00 00 be 02 00 00 bd 02 00 00 91 02 00 00 72 02 00 00 49 02 00 00 1a 02 00 00 ....................r...I.......
21e0 19 02 00 00 ff 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 ................................
2200 20 53 6d 74 45 6e 67 69 6e 65 53 74 61 74 69 73 74 69 63 73 28 29 20 3a 00 00 20 20 52 65 66 65 .SmtEngineStatistics().:....Refe
2220 72 65 6e 63 65 53 74 61 74 3c 75 69 6e 74 36 34 5f 74 3e 20 64 5f 72 65 73 6f 75 72 63 65 55 6e renceStat<uint64_t>.d_resourceUn
2240 69 74 73 55 73 65 64 3b 00 20 20 2f 2a 2a 20 4e 75 6d 62 65 72 20 6f 66 20 72 65 73 6f 75 72 63 itsUsed;.../**.Number.of.resourc
2260 65 20 75 6e 69 74 73 20 73 70 65 6e 74 2e 20 2a 2f 00 20 20 49 6e 74 53 74 61 74 20 64 5f 73 69 e.units.spent..*/...IntStat.d_si
2280 6d 70 6c 69 66 69 65 64 54 6f 46 61 6c 73 65 3b 00 20 20 2f 2a 2a 20 48 61 73 20 73 6f 6d 65 74 mplifiedToFalse;.../**.Has.somet
22a0 68 69 6e 67 20 73 69 6d 70 6c 69 66 69 65 64 20 74 6f 20 66 61 6c 73 65 3f 20 2a 2f 00 00 20 20 hing.simplified.to.false?.*/....
22c0 54 69 6d 65 72 53 74 61 74 20 64 5f 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 54 69 6d TimerStat.d_processAssertionsTim
22e0 65 3b 00 20 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 70 72 6f 63 65 73 73 41 73 e;.../**.time.spent.in.processAs
2300 73 65 72 74 69 6f 6e 73 28 29 20 2a 2f 00 20 20 54 69 6d 65 72 53 74 61 74 20 64 5f 70 75 73 68 sertions().*/...TimerStat.d_push
2320 50 6f 70 54 69 6d 65 3b 00 20 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 70 75 73 PopTime;.../**.time.spent.in.pus
2340 68 69 6e 67 2f 70 6f 70 70 69 6e 67 20 2a 2f 00 20 20 54 69 6d 65 72 53 74 61 74 20 64 5f 73 6f hing/popping.*/...TimerStat.d_so
2360 6c 76 65 54 69 6d 65 3b 00 20 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 50 72 6f lveTime;.../**.time.spent.in.Pro
2380 70 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 53 61 74 28 29 20 2a 2f 00 20 20 54 69 6d 65 72 53 74 pEngine::checkSat().*/...TimerSt
23a0 61 74 20 64 5f 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 54 69 6d 65 3b 00 20 20 2f 2a 2a 20 74 at.d_checkUnsatCoreTime;.../**.t
23c0 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 28 29 20 2a 2f ime.spent.in.checkUnsatCore().*/
23e0 00 20 20 54 69 6d 65 72 53 74 61 74 20 64 5f 63 68 65 63 6b 50 72 6f 6f 66 54 69 6d 65 3b 00 20 ...TimerStat.d_checkProofTime;..
2400 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 63 68 65 63 6b 50 72 6f 6f 66 28 29 20 ./**.time.spent.in.checkProof().
2420 2a 2f 00 20 20 54 69 6d 65 72 53 74 61 74 20 64 5f 63 68 65 63 6b 4d 6f 64 65 6c 54 69 6d 65 3b */...TimerStat.d_checkModelTime;
2440 00 20 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 63 68 65 63 6b 4d 6f 64 65 6c 28 .../**.time.spent.in.checkModel(
2460 29 20 2a 2f 00 20 20 49 6e 74 53 74 61 74 20 64 5f 6e 75 6d 41 73 73 65 72 74 69 6f 6e 73 50 6f ).*/...IntStat.d_numAssertionsPo
2480 73 74 3b 00 20 20 2f 2a 2a 20 4e 75 6d 20 6f 66 20 61 73 73 65 72 74 69 6f 6e 73 20 61 66 74 65 st;.../**.Num.of.assertions.afte
24a0 72 20 69 74 65 20 72 65 6d 6f 76 61 6c 20 2a 2f 00 20 20 49 6e 74 53 74 61 74 20 64 5f 6e 75 6d r.ite.removal.*/...IntStat.d_num
24c0 41 73 73 65 72 74 69 6f 6e 73 50 72 65 3b 00 20 20 2f 2a 2a 20 4e 75 6d 20 6f 66 20 61 73 73 65 AssertionsPre;.../**.Num.of.asse
24e0 72 74 69 6f 6e 73 20 62 65 66 6f 72 65 20 69 74 65 20 72 65 6d 6f 76 61 6c 20 2a 2f 00 20 20 54 rtions.before.ite.removal.*/...T
2500 69 6d 65 72 53 74 61 74 20 64 5f 63 6e 66 43 6f 6e 76 65 72 73 69 6f 6e 54 69 6d 65 3b 00 20 20 imerStat.d_cnfConversionTime;...
2520 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 63 6f 6e 76 65 72 74 69 6e 67 20 74 6f 20 43 4e 46 /**.time.spent.converting.to.CNF
2540 20 2a 2f 00 20 20 54 69 6d 65 72 53 74 61 74 20 64 5f 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f .*/...TimerStat.d_rewriteApplyTo
2560 43 6f 6e 73 74 54 69 6d 65 3b 00 20 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 74 ConstTime;.../**.time.spent.in.t
2580 68 65 6f 72 79 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 20 2a 2f 00 20 20 54 69 6d 65 72 53 74 heory.preprocessing.*/...TimerSt
25a0 61 74 20 64 5f 74 68 65 6f 72 79 50 72 65 70 72 6f 63 65 73 73 54 69 6d 65 3b 00 20 20 2f 2a 2a at.d_theoryPreprocessTime;.../**
25c0 20 74 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 74 68 65 6f 72 79 20 70 72 65 70 72 6f 63 65 73 73 .time.spent.in.theory.preprocess
25e0 69 6e 67 20 2a 2f 00 20 20 54 69 6d 65 72 53 74 61 74 20 64 5f 69 74 65 52 65 6d 6f 76 61 6c 54 ing.*/...TimerStat.d_iteRemovalT
2600 69 6d 65 3b 00 20 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 72 65 6d 6f 76 69 6e 67 20 49 ime;.../**.time.spent.removing.I
2620 54 45 73 20 2a 2f 00 20 20 54 69 6d 65 72 53 74 61 74 20 64 5f 75 6e 63 6f 6e 73 74 72 61 69 6e TEs.*/...TimerStat.d_unconstrain
2640 65 64 53 69 6d 70 54 69 6d 65 3b 00 20 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 edSimpTime;.../**.time.spent.in.
2660 73 69 6d 70 6c 69 66 79 69 6e 67 20 49 54 45 73 20 2a 2f 00 20 20 54 69 6d 65 72 53 74 61 74 20 simplifying.ITEs.*/...TimerStat.
2680 64 5f 73 69 6d 70 49 54 45 54 69 6d 65 3b 00 20 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 d_simpITETime;.../**.time.spent.
26a0 69 6e 20 73 69 6d 70 6c 69 66 79 69 6e 67 20 49 54 45 73 20 2a 2f 00 20 20 54 69 6d 65 72 53 74 in.simplifying.ITEs.*/...TimerSt
26c0 61 74 20 64 5f 73 74 61 74 69 63 4c 65 61 72 6e 69 6e 67 54 69 6d 65 3b 00 20 20 2f 2a 2a 20 74 at.d_staticLearningTime;.../**.t
26e0 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 73 74 61 74 69 63 20 6c 65 61 72 6e 69 6e 67 20 2a 2f 00 ime.spent.in.static.learning.*/.
2700 20 20 49 6e 74 53 74 61 74 20 64 5f 6e 75 6d 43 6f 6e 73 74 61 6e 74 50 72 6f 70 73 3b 00 20 20 ..IntStat.d_numConstantProps;...
2720 2f 2a 2a 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6e 73 74 61 6e 74 20 70 72 6f 70 61 67 61 74 69 /**.number.of.constant.propagati
2740 6f 6e 73 20 66 6f 75 6e 64 20 64 75 72 69 6e 67 20 6e 6f 6e 63 6c 61 75 73 61 6c 20 73 69 6d 70 ons.found.during.nonclausal.simp
2760 20 2a 2f 00 20 20 49 6e 74 53 74 61 74 20 64 5f 6e 75 6d 4d 69 70 6c 69 62 41 73 73 65 72 74 69 .*/...IntStat.d_numMiplibAsserti
2780 6f 6e 73 52 65 6d 6f 76 65 64 3b 00 20 20 2f 2a 2a 20 6e 75 6d 62 65 72 20 6f 66 20 61 73 73 65 onsRemoved;.../**.number.of.asse
27a0 72 74 69 6f 6e 73 20 72 65 6d 6f 76 65 64 20 62 79 20 6d 69 70 6c 69 62 20 70 61 73 73 20 2a 2f rtions.removed.by.miplib.pass.*/
27c0 00 20 20 54 69 6d 65 72 53 74 61 74 20 64 5f 6d 69 70 6c 69 62 50 61 73 73 54 69 6d 65 3b 00 20 ...TimerStat.d_miplibPassTime;..
27e0 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 6d 69 70 6c 69 62 20 70 61 73 73 20 2a ./**.time.spent.in.miplib.pass.*
2800 2f 00 20 20 54 69 6d 65 72 53 74 61 74 20 64 5f 6e 6f 6e 63 6c 61 75 73 61 6c 53 69 6d 70 6c 69 /...TimerStat.d_nonclausalSimpli
2820 66 69 63 61 74 69 6f 6e 54 69 6d 65 3b 00 20 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 69 ficationTime;.../**.time.spent.i
2840 6e 20 6e 6f 6e 2d 63 6c 61 75 73 61 6c 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 2a 2f 00 n.non-clausal.simplification.*/.
2860 20 20 54 69 6d 65 72 53 74 61 74 20 64 5f 64 65 66 69 6e 69 74 69 6f 6e 45 78 70 61 6e 73 69 6f ..TimerStat.d_definitionExpansio
2880 6e 54 69 6d 65 3b 00 20 20 2f 2a 2a 20 74 69 6d 65 20 73 70 65 6e 74 20 69 6e 20 64 65 66 69 6e nTime;.../**.time.spent.in.defin
28a0 69 74 69 6f 6e 2d 65 78 70 61 6e 73 69 6f 6e 20 2a 2f 00 73 74 72 75 63 74 20 53 6d 74 45 6e 67 ition-expansion.*/.struct.SmtEng
28c0 69 6e 65 53 74 61 74 69 73 74 69 63 73 20 7b 00 00 7d 3b 2f 2a 20 63 6c 61 73 73 20 41 73 73 65 ineStatistics.{..};/*.class.Asse
28e0 72 74 69 6f 6e 50 69 70 65 6c 69 6e 65 20 2a 2f 00 20 20 7d 00 20 20 20 20 64 5f 6e 6f 64 65 73 rtionPipeline.*/...}.....d_nodes
2900 5b 69 5d 20 3d 20 6e 3b 00 20 20 20 20 50 52 4f 4f 46 28 20 50 72 6f 6f 66 4d 61 6e 61 67 65 72 [i].=.n;.....PROOF(.ProofManager
2920 3a 3a 63 75 72 72 65 6e 74 50 4d 28 29 2d 3e 61 64 64 44 65 70 65 6e 64 65 6e 63 65 28 6e 2c 20 ::currentPM()->addDependence(n,.
2940 64 5f 6e 6f 64 65 73 5b 69 5d 29 3b 20 29 3b 00 20 20 76 6f 69 64 20 72 65 70 6c 61 63 65 28 73 d_nodes[i]);.);...void.replace(s
2960 69 7a 65 5f 74 20 69 2c 20 4e 6f 64 65 20 6e 29 20 7b 00 00 20 20 63 6f 6e 73 74 20 76 65 63 74 ize_t.i,.Node.n).{....const.vect
2980 6f 72 3c 4e 6f 64 65 3e 26 20 72 65 66 28 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 64 or<Node>&.ref().const.{.return.d
29a0 5f 6e 6f 64 65 73 3b 20 7d 00 20 20 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 26 20 72 65 66 28 29 20 _nodes;.}...vector<Node>&.ref().
29c0 7b 20 72 65 74 75 72 6e 20 64 5f 6e 6f 64 65 73 3b 20 7d 00 00 20 20 76 6f 69 64 20 70 75 73 68 {.return.d_nodes;.}....void.push
29e0 5f 62 61 63 6b 28 4e 6f 64 65 20 6e 29 20 7b 20 64 5f 6e 6f 64 65 73 2e 70 75 73 68 5f 62 61 63 _back(Node.n).{.d_nodes.push_bac
2a00 6b 28 6e 29 3b 20 7d 00 20 20 63 6f 6e 73 74 20 4e 6f 64 65 26 20 6f 70 65 72 61 74 6f 72 5b 5d k(n);.}...const.Node&.operator[]
2a20 28 73 69 7a 65 5f 74 20 69 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 64 5f 6e 6f 64 65 (size_t.i).const.{.return.d_node
2a40 73 5b 69 5d 3b 20 7d 00 20 20 4e 6f 64 65 26 20 6f 70 65 72 61 74 6f 72 5b 5d 28 73 69 7a 65 5f s[i];.}...Node&.operator[](size_
2a60 74 20 69 29 20 7b 20 72 65 74 75 72 6e 20 64 5f 6e 6f 64 65 73 5b 69 5d 3b 20 7d 00 00 20 20 76 t.i).{.return.d_nodes[i];.}....v
2a80 6f 69 64 20 63 6c 65 61 72 28 29 20 7b 20 64 5f 6e 6f 64 65 73 2e 63 6c 65 61 72 28 29 3b 20 7d oid.clear().{.d_nodes.clear();.}
2aa0 00 20 20 76 6f 69 64 20 72 65 73 69 7a 65 28 73 69 7a 65 5f 74 20 6e 29 20 7b 20 64 5f 6e 6f 64 ...void.resize(size_t.n).{.d_nod
2ac0 65 73 2e 72 65 73 69 7a 65 28 6e 29 3b 20 7d 00 00 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 28 29 es.resize(n);.}....size_t.size()
2ae0 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 64 5f 6e 6f 64 65 73 2e 73 69 7a 65 28 29 3b 20 .const.{.return.d_nodes.size();.
2b00 7d 00 00 70 75 62 6c 69 63 3a 00 00 20 20 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 20 64 5f 6e 6f 64 }..public:....vector<Node>.d_nod
2b20 65 73 3b 00 63 6c 61 73 73 20 41 73 73 65 72 74 69 6f 6e 50 69 70 65 6c 69 6e 65 20 7b 00 00 7d es;.class.AssertionPipeline.{..}
2b40 3b 2f 2a 20 63 6c 61 73 73 20 44 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 20 2a 2f 00 20 20 4e ;/*.class.DefinedFunction.*/...N
2b60 6f 64 65 20 67 65 74 46 6f 72 6d 75 6c 61 28 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 ode.getFormula().const.{.return.
2b80 64 5f 66 6f 72 6d 75 6c 61 3b 20 7d 00 20 20 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 20 67 65 74 46 d_formula;.}...vector<Node>.getF
2ba0 6f 72 6d 61 6c 73 28 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 64 5f 66 6f 72 6d 61 6c ormals().const.{.return.d_formal
2bc0 73 3b 20 7d 00 20 20 4e 6f 64 65 20 67 65 74 46 75 6e 63 74 69 6f 6e 28 29 20 63 6f 6e 73 74 20 s;.}...Node.getFunction().const.
2be0 7b 20 72 65 74 75 72 6e 20 64 5f 66 75 6e 63 3b 20 7d 00 20 20 7d 00 20 20 20 20 64 5f 66 6f 72 {.return.d_func;.}...}.....d_for
2c00 6d 75 6c 61 28 66 6f 72 6d 75 6c 61 29 20 7b 00 20 20 20 20 64 5f 66 6f 72 6d 61 6c 73 28 66 6f mula(formula).{.....d_formals(fo
2c20 72 6d 61 6c 73 29 2c 00 20 20 20 20 64 5f 66 75 6e 63 28 66 75 6e 63 29 2c 00 20 20 44 65 66 69 rmals),.....d_func(func),...Defi
2c40 6e 65 64 46 75 6e 63 74 69 6f 6e 28 4e 6f 64 65 20 66 75 6e 63 2c 20 76 65 63 74 6f 72 3c 4e 6f nedFunction(Node.func,.vector<No
2c60 64 65 3e 20 66 6f 72 6d 61 6c 73 2c 20 4e 6f 64 65 20 66 6f 72 6d 75 6c 61 29 20 3a 00 20 20 44 de>.formals,.Node.formula).:...D
2c80 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 28 29 20 7b 7d 00 70 75 62 6c 69 63 3a 00 20 20 4e 6f efinedFunction().{}.public:...No
2ca0 64 65 20 64 5f 66 6f 72 6d 75 6c 61 3b 00 20 20 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 20 64 5f 66 de.d_formula;...vector<Node>.d_f
2cc0 6f 72 6d 61 6c 73 3b 00 20 20 4e 6f 64 65 20 64 5f 66 75 6e 63 3b 00 63 6c 61 73 73 20 44 65 66 ormals;...Node.d_func;.class.Def
2ce0 69 6e 65 64 46 75 6e 63 74 69 6f 6e 20 7b 00 20 2a 2f 00 20 2a 20 69 6e 20 74 65 72 6d 73 20 6f inedFunction.{..*/..*.in.terms.o
2d00 66 20 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 73 2c 20 65 74 63 2e 00 20 2a 20 73 75 70 f.defined.functions,.etc...*.sup
2d20 70 6f 72 74 20 67 65 74 56 61 6c 75 65 28 29 20 6f 76 65 72 20 64 65 66 69 6e 65 64 20 66 75 6e port.getValue().over.defined.fun
2d40 63 74 69 6f 6e 73 2c 20 74 6f 20 73 75 70 70 6f 72 74 20 75 73 65 72 20 6f 75 74 70 75 74 00 20 ctions,.to.support.user.output..
2d60 2a 20 53 6d 74 45 6e 67 69 6e 65 20 74 6f 20 70 65 72 6d 69 74 20 65 78 70 61 6e 64 69 6e 67 20 *.SmtEngine.to.permit.expanding.
2d80 64 65 66 69 6e 69 74 69 6f 6e 73 20 6c 61 74 65 20 28 61 6e 64 20 6c 61 7a 69 6c 79 29 2c 20 74 definitions.late.(and.lazily),.t
2da0 6f 00 20 2a 20 52 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 20 64 65 66 69 6e 65 64 o..*.Representation.of.a.defined
2dc0 20 66 75 6e 63 74 69 6f 6e 2e 20 20 57 65 20 6b 65 65 70 20 74 68 65 73 65 20 61 72 6f 75 6e 64 .function...We.keep.these.around
2de0 20 69 6e 00 2f 2a 2a 00 00 7d 3b 00 20 20 7d 00 20 20 20 20 2d 2d 64 5f 64 65 70 74 68 3b 00 20 .in./**..};...}.....--d_depth;..
2e00 20 7e 53 63 6f 70 65 43 6f 75 6e 74 65 72 28 29 7b 00 20 20 7d 00 20 20 20 20 2b 2b 64 5f 64 65 .~ScopeCounter(){...}.....++d_de
2e20 70 74 68 3b 00 20 20 53 63 6f 70 65 43 6f 75 6e 74 65 72 28 75 6e 73 69 67 6e 65 64 26 20 64 29 pth;...ScopeCounter(unsigned&.d)
2e40 20 3a 20 64 5f 64 65 70 74 68 28 64 29 20 7b 00 70 75 62 6c 69 63 3a 00 20 20 75 6e 73 69 67 6e .:.d_depth(d).{.public:...unsign
2e60 65 64 26 20 64 5f 64 65 70 74 68 3b 00 70 72 69 76 61 74 65 3a 00 63 6c 61 73 73 20 53 63 6f 70 ed&.d_depth;.private:.class.Scop
2e80 65 43 6f 75 6e 74 65 72 20 7b 00 2f 2a 2a 20 55 73 65 66 75 6c 20 66 6f 72 20 63 6f 75 6e 74 69 eCounter.{./**.Useful.for.counti
2ea0 6e 67 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 72 65 63 75 72 73 69 76 65 20 63 61 6c 6c 73 ng.the.number.of.recursive.calls
2ec0 2e 20 2a 2f 00 00 7d 00 20 20 63 6f 6d 6d 61 6e 64 73 2e 63 6c 65 61 72 28 29 3b 00 20 20 73 74 ..*/..}...commands.clear();...st
2ee0 64 3a 3a 66 6f 72 5f 65 61 63 68 28 63 6f 6d 6d 61 6e 64 73 2e 62 65 67 69 6e 28 29 2c 20 63 6f d::for_each(commands.begin(),.co
2f00 6d 6d 61 6e 64 73 2e 65 6e 64 28 29 2c 20 44 65 6c 65 74 65 43 6f 6d 6d 61 6e 64 46 75 6e 63 74 mmands.end(),.DeleteCommandFunct
2f20 69 6f 6e 28 29 29 3b 00 76 6f 69 64 20 44 65 6c 65 74 65 41 6e 64 43 6c 65 61 72 43 6f 6d 6d 61 ion());.void.DeleteAndClearComma
2f40 6e 64 56 65 63 74 6f 72 28 73 74 64 3a 3a 76 65 63 74 6f 72 3c 43 6f 6d 6d 61 6e 64 2a 3e 26 20 ndVector(std::vector<Command*>&.
2f60 63 6f 6d 6d 61 6e 64 73 29 20 7b 00 00 7d 3b 00 20 20 76 6f 69 64 20 6f 70 65 72 61 74 6f 72 28 commands).{..};...void.operator(
2f80 29 28 63 6f 6e 73 74 20 43 6f 6d 6d 61 6e 64 2a 20 63 6f 6d 6d 61 6e 64 29 20 7b 20 64 65 6c 65 )(const.Command*.command).{.dele
2fa0 74 65 20 63 6f 6d 6d 61 6e 64 3b 20 7d 00 7b 00 73 74 72 75 63 74 20 44 65 6c 65 74 65 43 6f 6d te.command;.}.{.struct.DeleteCom
2fc0 6d 61 6e 64 46 75 6e 63 74 69 6f 6e 20 3a 20 70 75 62 6c 69 63 20 73 74 64 3a 3a 75 6e 61 72 79 mandFunction.:.public.std::unary
2fe0 5f 66 75 6e 63 74 69 6f 6e 3c 63 6f 6e 73 74 20 43 6f 6d 6d 61 6e 64 2a 2c 20 76 6f 69 64 3e 00 _function<const.Command*,.void>.
3000 61 64 00 00 02 00 00 00 ea 01 00 00 00 10 00 00 73 00 00 00 00 00 00 00 fc 0f 00 00 f9 0f 00 00 ad..............s...............
3020 f8 0f 00 00 c4 0f 00 00 bb 0f 00 00 a1 0f 00 00 75 0f 00 00 3f 0f 00 00 09 0f 00 00 d2 0e 00 00 ................u...?...........
3040 9d 0e 00 00 65 0e 00 00 2d 0e 00 00 f5 0d 00 00 f1 0d 00 00 ee 0d 00 00 ed 0d 00 00 c2 0d 00 00 ....e...-.......................
3060 b9 0d 00 00 9f 0d 00 00 65 0d 00 00 42 0d 00 00 3e 0d 00 00 3b 0d 00 00 3a 0d 00 00 0b 0d 00 00 ........e...B...>...;...:.......
3080 02 0d 00 00 e8 0c 00 00 be 0c 00 00 87 0c 00 00 50 0c 00 00 18 0c 00 00 e2 0b 00 00 a9 0b 00 00 ................P...............
30a0 70 0b 00 00 3b 0b 00 00 37 0b 00 00 34 0b 00 00 33 0b 00 00 32 0b 00 00 31 0b 00 00 2d 0b 00 00 p...;...7...4...3...2...1...-...
30c0 e8 0a 00 00 a1 0a 00 00 6c 0a 00 00 25 0a 00 00 dc 09 00 00 c7 09 00 00 c4 09 00 00 7e 09 00 00 ........l...%...............~...
30e0 41 09 00 00 fb 08 00 00 b5 08 00 00 a1 08 00 00 9d 08 00 00 67 08 00 00 53 08 00 00 52 08 00 00 A...................g...S...R...
3100 0e 08 00 00 ca 07 00 00 c9 07 00 00 c3 07 00 00 87 07 00 00 81 07 00 00 5b 07 00 00 5a 07 00 00 ........................[...Z...
3120 1f 07 00 00 e8 06 00 00 e7 06 00 00 a9 06 00 00 6c 06 00 00 6b 06 00 00 3d 06 00 00 12 06 00 00 ................l...k...=.......
3140 11 06 00 00 ee 05 00 00 c0 05 00 00 bf 05 00 00 b9 05 00 00 a0 05 00 00 8a 05 00 00 74 05 00 00 ............................t...
3160 60 05 00 00 45 05 00 00 29 05 00 00 24 05 00 00 e3 04 00 00 ae 04 00 00 a8 04 00 00 73 04 00 00 `...E...)...$...............s...
3180 72 04 00 00 58 04 00 00 2c 04 00 00 2b 04 00 00 ef 03 00 00 cf 03 00 00 ce 03 00 00 88 03 00 00 r...X...,...+...................
31a0 5c 03 00 00 3c 03 00 00 1c 03 00 00 1b 03 00 00 e9 02 00 00 c7 02 00 00 c6 02 00 00 92 02 00 00 \...<...........................
31c0 6f 02 00 00 6e 02 00 00 3e 02 00 00 18 02 00 00 17 02 00 00 00 02 00 00 f1 01 00 00 f0 01 00 00 o...n...>.......................
31e0 ea 01 00 00 00 00 00 00 00 00 20 20 2f 2a 2a 00 00 20 20 4e 6f 64 65 20 64 5f 74 72 75 65 3b 00 ............/**....Node.d_true;.
3200 20 20 2f 2f 20 43 61 63 68 65 64 20 74 72 75 65 20 76 61 6c 75 65 00 00 20 20 43 44 4f 3c 75 6e ..//.Cached.true.value....CDO<un
3220 73 69 67 6e 65 64 3e 20 64 5f 73 75 62 73 74 69 74 75 74 69 6f 6e 73 49 6e 64 65 78 3b 00 20 20 signed>.d_substitutionsIndex;...
3240 2f 2a 2a 20 49 6e 64 65 78 20 66 6f 72 20 77 68 65 72 65 20 74 6f 20 73 74 6f 72 65 20 73 75 62 /**.Index.for.where.to.store.sub
3260 73 74 69 74 75 74 69 6f 6e 73 20 2a 2f 00 00 20 20 43 44 4f 3c 62 6f 6f 6c 3e 20 64 5f 61 73 73 stitutions.*/....CDO<bool>.d_ass
3280 65 72 74 69 6f 6e 73 50 72 6f 63 65 73 73 65 64 3b 00 20 20 2f 2a 2a 20 57 68 65 74 68 65 72 20 ertionsProcessed;.../**.Whether.
32a0 61 6e 79 20 61 73 73 65 72 74 69 6f 6e 73 20 68 61 76 65 20 62 65 65 6e 20 70 72 6f 63 65 73 73 any.assertions.have.been.process
32c0 65 64 20 2a 2f 00 00 20 20 41 73 73 65 72 74 69 6f 6e 50 69 70 65 6c 69 6e 65 20 64 5f 61 73 73 ed.*/....AssertionPipeline.d_ass
32e0 65 72 74 69 6f 6e 73 3b 00 20 20 2f 2a 2a 20 41 73 73 65 72 74 69 6f 6e 73 20 69 6e 20 74 68 65 ertions;.../**.Assertions.in.the
3300 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 20 70 69 70 65 6c 69 6e 65 20 2a 2f 00 00 20 20 73 74 .preprocessing.pipeline.*/....st
3320 64 3a 3a 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 20 64 5f 62 6f 6f 6c 56 61 72 73 3b 00 20 20 62 6f d::vector<Node>.d_boolVars;...bo
3340 6f 6c 20 64 5f 70 72 6f 70 61 67 61 74 6f 72 4e 65 65 64 73 46 69 6e 69 73 68 3b 00 20 20 62 6f ol.d_propagatorNeedsFinish;...bo
3360 6f 6c 65 61 6e 73 3a 3a 43 69 72 63 75 69 74 50 72 6f 70 61 67 61 74 6f 72 20 64 5f 70 72 6f 70 oleans::CircuitPropagator.d_prop
3380 61 67 61 74 6f 72 3b 00 20 20 2f 2a 2a 20 41 20 63 69 72 63 75 69 74 20 70 72 6f 70 61 67 61 74 agator;.../**.A.circuit.propagat
33a0 6f 72 20 66 6f 72 20 6e 6f 6e 2d 63 6c 61 75 73 61 6c 20 70 72 6f 70 6f 73 69 74 69 6f 6e 61 6c or.for.non-clausal.propositional
33c0 20 64 65 64 75 63 74 69 6f 6e 20 2a 2f 00 00 20 20 75 6e 73 69 67 6e 65 64 20 64 5f 72 65 61 6c .deduction.*/....unsigned.d_real
33e0 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 3b 00 20 20 2f 2a 2a 20 53 69 7a 65 20 6f 66 20 61 73 73 AssertionsEnd;.../**.Size.of.ass
3400 65 72 74 69 6f 6e 73 20 61 72 72 61 79 20 77 68 65 6e 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 ertions.array.when.preprocessing
3420 20 73 74 61 72 74 73 20 2a 2f 00 00 20 20 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 20 64 5f 6e 6f 6e .starts.*/....vector<Node>.d_non
3440 43 6c 61 75 73 61 6c 4c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 3b 00 20 20 2f 2a 2a 20 4c 65 ClausalLearnedLiterals;.../**.Le
3460 61 72 6e 65 64 20 6c 69 74 65 72 61 6c 73 20 2a 2f 00 00 20 20 4c 69 73 74 65 6e 65 72 52 65 67 arned.literals.*/....ListenerReg
3480 69 73 74 72 61 74 69 6f 6e 4c 69 73 74 2a 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 72 istrationList*.d_listenerRegistr
34a0 61 74 69 6f 6e 73 3b 00 20 20 20 2a 2f 00 20 20 20 2a 20 53 6d 74 45 6e 67 69 6e 65 2c 20 64 5f ations;....*/....*.SmtEngine,.d_
34c0 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2c 20 61 6e 64 20 54 68 65 6f 72 79 45 6e 67 69 6e resourceManager,.and.TheoryEngin
34e0 65 2e 00 20 20 20 2a 20 54 68 69 73 20 6e 65 65 64 73 20 74 6f 20 62 65 20 64 65 6c 65 74 65 64 e.....*.This.needs.to.be.deleted
3500 20 62 65 66 6f 72 65 20 62 6f 74 68 20 4e 6f 64 65 4d 61 6e 61 67 65 72 27 73 20 4f 70 74 69 6f .before.both.NodeManager's.Optio
3520 6e 73 2c 00 20 20 20 2a 00 20 20 20 2a 20 20 55 73 65 54 68 65 6f 72 79 4c 69 73 74 4c 69 73 74 ns,....*....*..UseTheoryListList
3540 65 6e 65 72 00 20 20 20 2a 20 20 62 65 66 6f 72 65 53 65 61 72 63 68 4c 69 73 74 65 6e 65 72 00 ener....*..beforeSearchListener.
3560 20 20 20 2a 20 20 73 65 74 46 6f 72 63 65 4c 6f 67 69 63 00 20 20 20 2a 20 20 68 61 72 64 52 65 ...*..setForceLogic....*..hardRe
3580 73 6f 75 72 63 65 4f 75 74 00 20 20 20 2a 20 20 73 6f 66 74 52 65 73 6f 75 72 63 65 4f 75 74 00 sourceOut....*..softResourceOut.
35a0 20 20 20 2a 20 54 68 69 73 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 73 3a 00 20 20 2f 2a 2a 00 00 ...*.This.list.contains:.../**..
35c0 20 20 4d 61 6e 61 67 65 64 52 65 70 6c 61 79 4c 6f 67 4f 73 74 72 65 61 6d 20 64 5f 6d 61 6e 61 ..ManagedReplayLogOstream.d_mana
35e0 67 65 64 52 65 70 6c 61 79 4c 6f 67 3b 00 20 20 2f 2a 2a 20 4d 61 6e 61 67 65 72 20 66 6f 72 20 gedReplayLog;.../**.Manager.for.
3600 2d 2d 72 65 70 6c 61 79 2d 6c 6f 67 2e 20 2a 2f 00 00 20 20 4d 61 6e 61 67 65 64 44 75 6d 70 4f --replay-log..*/....ManagedDumpO
3620 53 74 72 65 61 6d 20 64 5f 6d 61 6e 61 67 65 64 44 75 6d 70 43 68 61 6e 6e 65 6c 3b 00 20 20 2f Stream.d_managedDumpChannel;.../
3640 2a 2a 20 4d 61 6e 61 67 65 72 20 66 6f 72 20 74 68 65 20 6d 65 6d 6f 72 79 20 6f 66 20 2d 2d 64 **.Manager.for.the.memory.of.--d
3660 75 6d 70 2d 74 6f 2e 20 2a 2f 00 00 20 20 4d 61 6e 61 67 65 64 44 69 61 67 6e 6f 73 74 69 63 4f ump-to..*/....ManagedDiagnosticO
3680 75 74 70 75 74 43 68 61 6e 6e 65 6c 20 64 5f 6d 61 6e 61 67 65 64 44 69 61 67 6e 6f 73 74 69 63 utputChannel.d_managedDiagnostic
36a0 43 68 61 6e 6e 65 6c 3b 00 20 20 2f 2a 2a 20 4d 61 6e 61 67 65 72 20 66 6f 72 20 74 68 65 20 6d Channel;.../**.Manager.for.the.m
36c0 65 6d 6f 72 79 20 6f 66 20 64 69 61 67 6e 6f 73 74 69 63 2d 6f 75 74 70 75 74 2d 63 68 61 6e 6e emory.of.diagnostic-output-chann
36e0 65 6c 2e 20 2a 2f 00 00 20 20 4d 61 6e 61 67 65 64 52 65 67 75 6c 61 72 4f 75 74 70 75 74 43 68 el..*/....ManagedRegularOutputCh
3700 61 6e 6e 65 6c 20 64 5f 6d 61 6e 61 67 65 64 52 65 67 75 6c 61 72 43 68 61 6e 6e 65 6c 3b 00 20 annel.d_managedRegularChannel;..
3720 20 2f 2a 2a 20 4d 61 6e 61 67 65 72 20 66 6f 72 20 74 68 65 20 6d 65 6d 6f 72 79 20 6f 66 20 72 ./**.Manager.for.the.memory.of.r
3740 65 67 75 6c 61 72 2d 6f 75 74 70 75 74 2d 63 68 61 6e 6e 65 6c 2e 20 2a 2f 00 00 20 20 52 65 73 egular-output-channel..*/....Res
3760 6f 75 72 63 65 4d 61 6e 61 67 65 72 2a 20 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 3b ourceManager*.d_resourceManager;
3780 00 20 20 20 2a 2f 00 20 20 20 2a 20 4d 61 6e 61 67 65 72 20 66 6f 72 20 6c 69 6d 69 74 69 6e 67 ....*/....*.Manager.for.limiting
37a0 20 74 69 6d 65 20 61 6e 64 20 61 62 73 74 72 61 63 74 20 72 65 73 6f 75 72 63 65 20 75 73 61 67 .time.and.abstract.resource.usag
37c0 65 2e 00 20 20 2f 2a 2a 00 00 20 20 74 79 70 65 64 65 66 20 68 61 73 68 5f 6d 61 70 3c 4e 6f 64 e..../**....typedef.hash_map<Nod
37e0 65 2c 20 62 6f 6f 6c 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e 3e 20 4e 6f 64 65 54 e,.bool,.NodeHashFunction>.NodeT
3800 6f 42 6f 6f 6c 48 61 73 68 4d 61 70 3b 00 20 20 74 79 70 65 64 65 66 20 68 61 73 68 5f 6d 61 70 oBoolHashMap;...typedef.hash_map
3820 3c 4e 6f 64 65 2c 20 4e 6f 64 65 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e 3e 20 4e <Node,.Node,.NodeHashFunction>.N
3840 6f 64 65 54 6f 4e 6f 64 65 48 61 73 68 4d 61 70 3b 00 00 20 20 53 6d 74 45 6e 67 69 6e 65 26 20 odeToNodeHashMap;....SmtEngine&.
3860 64 5f 73 6d 74 3b 00 63 6c 61 73 73 20 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 20 3a 20 d_smt;.class.SmtEnginePrivate.:.
3880 70 75 62 6c 69 63 20 4e 6f 64 65 4d 61 6e 61 67 65 72 4c 69 73 74 65 6e 65 72 20 7b 00 20 2a 2f public.NodeManagerListener.{..*/
38a0 00 20 2a 20 6f 66 20 6d 65 74 68 6f 64 20 63 61 6c 6c 73 2e 00 20 2a 20 6f 6e 65 29 20 62 65 63 ..*.of.method.calls...*.one).bec
38c0 6f 6d 65 73 20 61 6e 20 22 69 6e 74 65 72 66 61 63 65 20 73 68 65 6c 6c 22 20 77 68 69 63 68 20 omes.an."interface.shell".which.
38e0 73 69 6d 70 6c 79 20 61 63 74 73 20 61 73 20 61 20 66 6f 72 77 61 72 64 65 72 00 20 2a 20 68 65 simply.acts.as.a.forwarder..*.he
3900 61 70 2d 61 6c 6c 6f 63 61 74 65 64 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 69 74 20 69 6e 20 53 ap-allocated.instance.of.it.in.S
3920 6d 74 45 6e 67 69 6e 65 2e 20 20 53 6d 74 45 6e 67 69 6e 65 20 28 74 68 65 20 70 75 62 6c 69 63 mtEngine...SmtEngine.(the.public
3940 00 20 2a 20 41 4c 4c 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 74 6f 20 53 6d ..*.ALL.the.implementation.to.Sm
3960 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 20 61 6e 64 20 6d 61 69 6e 74 61 69 6e 20 61 00 20 2a tEnginePrivate.and.maintain.a..*
3980 20 54 68 65 20 22 72 65 61 6c 22 20 73 6f 6c 75 74 69 6f 6e 20 28 74 68 61 74 20 77 68 69 63 68 .The."real".solution.(that.which
39a0 20 69 73 20 75 73 75 61 6c 6c 79 20 69 6d 70 6c 65 6d 65 6e 74 65 64 29 20 69 73 20 74 6f 20 6d .is.usually.implemented).is.to.m
39c0 6f 76 65 00 20 2a 00 20 2a 20 69 6e 74 6f 20 75 73 65 72 20 63 6f 64 65 21 29 2e 00 20 2a 20 74 ove..*..*.into.user.code!)...*.t
39e0 6f 20 6c 69 6e 6b 69 6e 67 20 65 72 72 6f 72 73 20 64 75 65 20 74 6f 20 74 68 65 20 69 6d 70 72 o.linking.errors.due.to.the.impr
3a00 6f 70 65 72 20 69 6e 6c 69 6e 69 6e 67 20 6f 66 20 6e 6f 6e 2d 76 69 73 69 62 6c 65 20 73 79 6d oper.inlining.of.non-visible.sym
3a20 62 6f 6c 73 00 20 2a 20 69 6e 63 6c 75 64 65 20 22 65 78 70 72 2f 6e 6f 64 65 2e 68 22 2c 20 77 bols..*.include."expr/node.h",.w
3a40 68 69 63 68 20 69 73 20 61 20 70 72 69 76 61 74 65 20 43 56 43 34 20 68 65 61 64 65 72 20 28 61 hich.is.a.private.CVC4.header.(a
3a60 6e 64 20 63 61 6e 20 6c 65 61 64 00 20 2a 20 74 68 65 20 53 6d 74 45 6e 67 69 6e 65 20 63 6c 61 nd.can.lead..*.the.SmtEngine.cla
3a80 73 73 2c 20 73 6f 20 74 68 61 74 20 73 6d 74 5f 65 6e 67 69 6e 65 2e 68 20 64 6f 65 73 6e 27 74 ss,.so.that.smt_engine.h.doesn't
3aa0 00 20 2a 20 54 68 65 20 70 6f 69 6e 74 20 6f 66 20 74 68 69 73 20 69 73 20 74 6f 20 73 65 70 61 ..*.The.point.of.this.is.to.sepa
3ac0 72 61 74 65 20 74 68 65 20 70 75 62 6c 69 63 20 61 6e 64 20 70 72 69 76 61 74 65 20 70 6f 72 74 rate.the.public.and.private.port
3ae0 69 6f 6e 73 20 6f 66 00 20 2a 20 54 68 69 73 20 69 73 20 61 6e 20 69 6e 65 6c 65 67 61 6e 74 20 ions.of..*.This.is.an.inelegant.
3b00 73 6f 6c 75 74 69 6f 6e 2c 20 62 75 74 20 66 6f 72 20 74 68 65 20 70 72 65 73 65 6e 74 2c 20 69 solution,.but.for.the.present,.i
3b20 74 20 77 69 6c 6c 20 77 6f 72 6b 2e 00 2f 2a 2a 00 00 00 00 7d 3b 00 20 20 7d 00 20 20 20 20 2a t.will.work../**....};...}.....*
3b40 6f 70 74 69 6f 6e 73 3a 3a 6f 75 74 28 29 20 3c 3c 20 43 6f 6d 6d 61 6e 64 3a 3a 70 72 69 6e 74 options::out().<<.Command::print
3b60 73 75 63 63 65 73 73 28 76 61 6c 75 65 29 3b 00 20 20 20 20 57 61 72 6e 69 6e 67 2e 67 65 74 53 success(value);.....Warning.getS
3b80 74 72 65 61 6d 28 29 20 3c 3c 20 43 6f 6d 6d 61 6e 64 3a 3a 70 72 69 6e 74 73 75 63 63 65 73 73 tream().<<.Command::printsuccess
3ba0 28 76 61 6c 75 65 29 3b 00 20 20 20 20 4d 65 73 73 61 67 65 2e 67 65 74 53 74 72 65 61 6d 28 29 (value);.....Message.getStream()
3bc0 20 3c 3c 20 43 6f 6d 6d 61 6e 64 3a 3a 70 72 69 6e 74 73 75 63 63 65 73 73 28 76 61 6c 75 65 29 .<<.Command::printsuccess(value)
3be0 3b 00 20 20 20 20 43 68 61 74 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 43 6f 6d 6d 61 6e ;.....Chat.getStream().<<.Comman
3c00 64 3a 3a 70 72 69 6e 74 73 75 63 63 65 73 73 28 76 61 6c 75 65 29 3b 00 20 20 20 20 4e 6f 74 69 d::printsuccess(value);.....Noti
3c20 63 65 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 43 6f 6d 6d 61 6e 64 3a 3a 70 72 69 6e 74 ce.getStream().<<.Command::print
3c40 73 75 63 63 65 73 73 28 76 61 6c 75 65 29 3b 00 20 20 20 20 54 72 61 63 65 2e 67 65 74 53 74 72 success(value);.....Trace.getStr
3c60 65 61 6d 28 29 20 3c 3c 20 43 6f 6d 6d 61 6e 64 3a 3a 70 72 69 6e 74 73 75 63 63 65 73 73 28 76 eam().<<.Command::printsuccess(v
3c80 61 6c 75 65 29 3b 00 20 20 20 20 44 65 62 75 67 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 alue);.....Debug.getStream().<<.
3ca0 43 6f 6d 6d 61 6e 64 3a 3a 70 72 69 6e 74 73 75 63 63 65 73 73 28 76 61 6c 75 65 29 3b 00 20 20 Command::printsuccess(value);...
3cc0 20 20 62 6f 6f 6c 20 76 61 6c 75 65 20 3d 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 69 6e 74 53 75 63 ..bool.value.=.options::printSuc
3ce0 63 65 73 73 28 29 3b 00 20 20 76 69 72 74 75 61 6c 20 76 6f 69 64 20 6e 6f 74 69 66 79 28 29 20 cess();...virtual.void.notify().
3d00 7b 00 20 70 75 62 6c 69 63 3a 00 63 6c 61 73 73 20 50 72 69 6e 74 53 75 63 63 65 73 73 4c 69 73 {..public:.class.PrintSuccessLis
3d20 74 65 6e 65 72 20 3a 20 70 75 62 6c 69 63 20 4c 69 73 74 65 6e 65 72 20 7b 00 00 7d 3b 00 20 20 tener.:.public.Listener.{..};...
3d40 7d 00 20 20 20 20 44 75 6d 70 2e 73 65 74 44 75 6d 70 46 72 6f 6d 53 74 72 69 6e 67 28 76 61 6c }.....Dump.setDumpFromString(val
3d60 75 65 29 3b 00 20 20 20 20 63 6f 6e 73 74 20 73 74 64 3a 3a 73 74 72 69 6e 67 26 20 76 61 6c 75 ue);.....const.std::string&.valu
3d80 65 20 3d 20 6f 70 74 69 6f 6e 73 3a 3a 64 75 6d 70 4d 6f 64 65 53 74 72 69 6e 67 28 29 3b 00 20 e.=.options::dumpModeString();..
3da0 20 76 69 72 74 75 61 6c 20 76 6f 69 64 20 6e 6f 74 69 66 79 28 29 20 7b 00 20 70 75 62 6c 69 63 .virtual.void.notify().{..public
3dc0 3a 00 63 6c 61 73 73 20 44 75 6d 70 4d 6f 64 65 4c 69 73 74 65 6e 65 72 20 3a 20 70 75 62 6c 69 :.class.DumpModeListener.:.publi
3de0 63 20 4c 69 73 74 65 6e 65 72 20 7b 00 00 7d 3b 00 20 20 7d 00 20 20 20 20 2f 2f 20 69 6e 74 65 c.Listener.{..};...}.....//.inte
3e00 6e 74 69 6f 6e 61 6c 6c 79 20 65 78 63 6c 75 64 65 20 44 75 6d 70 20 73 74 72 65 61 6d 20 66 72 ntionally.exclude.Dump.stream.fr
3e20 6f 6d 20 74 68 69 73 20 6c 69 73 74 00 20 20 20 20 57 61 72 6e 69 6e 67 2e 67 65 74 53 74 72 65 om.this.list.....Warning.getStre
3e40 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 50 72 69 6e 74 54 79 70 65 73 28 76 61 6c am().<<.expr::ExprPrintTypes(val
3e60 75 65 29 3b 00 20 20 20 20 4d 65 73 73 61 67 65 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 ue);.....Message.getStream().<<.
3e80 65 78 70 72 3a 3a 45 78 70 72 50 72 69 6e 74 54 79 70 65 73 28 76 61 6c 75 65 29 3b 00 20 20 20 expr::ExprPrintTypes(value);....
3ea0 20 43 68 61 74 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 50 .Chat.getStream().<<.expr::ExprP
3ec0 72 69 6e 74 54 79 70 65 73 28 76 61 6c 75 65 29 3b 00 20 20 20 20 4e 6f 74 69 63 65 2e 67 65 74 rintTypes(value);.....Notice.get
3ee0 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 50 72 69 6e 74 54 79 70 65 73 Stream().<<.expr::ExprPrintTypes
3f00 28 76 61 6c 75 65 29 3b 00 20 20 20 20 54 72 61 63 65 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c (value);.....Trace.getStream().<
3f20 3c 20 65 78 70 72 3a 3a 45 78 70 72 50 72 69 6e 74 54 79 70 65 73 28 76 61 6c 75 65 29 3b 00 20 <.expr::ExprPrintTypes(value);..
3f40 20 20 20 44 65 62 75 67 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 ...Debug.getStream().<<.expr::Ex
3f60 70 72 50 72 69 6e 74 54 79 70 65 73 28 76 61 6c 75 65 29 3b 00 20 20 20 20 62 6f 6f 6c 20 76 61 prPrintTypes(value);.....bool.va
3f80 6c 75 65 20 3d 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 69 6e 74 45 78 70 72 54 79 70 65 73 28 29 3b lue.=.options::printExprTypes();
3fa0 00 20 20 76 69 72 74 75 61 6c 20 76 6f 69 64 20 6e 6f 74 69 66 79 28 29 20 7b 00 20 70 75 62 6c ...virtual.void.notify().{..publ
3fc0 69 63 3a 00 63 6c 61 73 73 20 53 65 74 50 72 69 6e 74 45 78 70 72 54 79 70 65 73 4c 69 73 74 65 ic:.class.SetPrintExprTypesListe
3fe0 6e 65 72 20 3a 20 70 75 62 6c 69 63 20 4c 69 73 74 65 6e 65 72 20 7b 00 00 7d 3b 00 20 20 7d 00 ner.:.public.Listener.{..};...}.
4000 61 64 00 00 1a 00 00 00 2e 01 00 00 00 10 00 00 3e 00 00 00 00 00 00 00 b6 0f 00 00 62 0f 00 00 ad..............>...........b...
4020 2a 0f 00 00 d7 0e 00 00 98 0e 00 00 58 0e 00 00 26 0e 00 00 e0 0d 00 00 a8 0d 00 00 64 0d 00 00 *...........X...&...........d...
4040 1a 0d 00 00 dc 0c 00 00 93 0c 00 00 48 0c 00 00 10 0c 00 00 d8 0b 00 00 98 0b 00 00 6a 0b 00 00 ............H...............j...
4060 38 0b 00 00 f2 0a 00 00 b1 0a 00 00 74 0a 00 00 71 0a 00 00 70 0a 00 00 29 0a 00 00 dd 09 00 00 8...........t...q...p...).......
4080 9f 09 00 00 55 09 00 00 15 09 00 00 d3 08 00 00 98 08 00 00 53 08 00 00 15 08 00 00 d1 07 00 00 ....U...............S...........
40a0 8a 07 00 00 49 07 00 00 09 07 00 00 c8 06 00 00 8a 06 00 00 4c 06 00 00 0a 06 00 00 d1 05 00 00 ....I...............L...........
40c0 96 05 00 00 51 05 00 00 10 05 00 00 cf 04 00 00 cb 04 00 00 ca 04 00 00 af 04 00 00 66 04 00 00 ....Q.......................f...
40e0 18 04 00 00 d8 03 00 00 8c 03 00 00 4a 03 00 00 06 03 00 00 c9 02 00 00 82 02 00 00 42 02 00 00 ............J...............B...
4100 fc 01 00 00 b3 01 00 00 70 01 00 00 2e 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........p.......................
4120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 ..................smtStatisticsR
4140 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 6e 75 6d egistry()->unregisterStat(&d_num
4160 41 73 73 65 72 74 69 6f 6e 73 50 72 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 AssertionsPre);.....smtStatistic
4180 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 63 sRegistry()->unregisterStat(&d_c
41a0 6e 66 43 6f 6e 76 65 72 73 69 6f 6e 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 nfConversionTime);.....smtStatis
41c0 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 ticsRegistry()->unregisterStat(&
41e0 64 5f 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 54 69 6d 65 29 3b 00 20 20 20 20 d_rewriteApplyToConstTime);.....
4200 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 smtStatisticsRegistry()->unregis
4220 74 65 72 53 74 61 74 28 26 64 5f 74 68 65 6f 72 79 50 72 65 70 72 6f 63 65 73 73 54 69 6d 65 29 terStat(&d_theoryPreprocessTime)
4240 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 ;.....smtStatisticsRegistry()->u
4260 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 69 74 65 52 65 6d 6f 76 61 6c 54 69 6d 65 29 nregisterStat(&d_iteRemovalTime)
4280 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 ;.....smtStatisticsRegistry()->u
42a0 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 nregisterStat(&d_unconstrainedSi
42c0 6d 70 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 mpTime);.....smtStatisticsRegist
42e0 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 73 69 6d 70 49 54 45 54 ry()->unregisterStat(&d_simpITET
4300 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 ime);.....smtStatisticsRegistry(
4320 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 73 74 61 74 69 63 4c 65 61 72 6e )->unregisterStat(&d_staticLearn
4340 69 6e 67 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 ingTime);.....smtStatisticsRegis
4360 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 6e 75 6d 43 6f 6e 73 try()->unregisterStat(&d_numCons
4380 74 61 6e 74 50 72 6f 70 73 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 tantProps);.....smtStatisticsReg
43a0 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 6e 75 6d 4d 69 istry()->unregisterStat(&d_numMi
43c0 70 6c 69 62 41 73 73 65 72 74 69 6f 6e 73 52 65 6d 6f 76 65 64 29 3b 00 20 20 20 20 73 6d 74 53 plibAssertionsRemoved);.....smtS
43e0 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 tatisticsRegistry()->unregisterS
4400 74 61 74 28 26 64 5f 6d 69 70 6c 69 62 50 61 73 73 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 tat(&d_miplibPassTime);.....smtS
4420 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 tatisticsRegistry()->unregisterS
4440 74 61 74 28 26 64 5f 6e 6f 6e 63 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 54 tat(&d_nonclausalSimplificationT
4460 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 ime);.....smtStatisticsRegistry(
4480 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 64 65 66 69 6e 69 74 69 6f 6e 45 )->unregisterStat(&d_definitionE
44a0 78 70 61 6e 73 69 6f 6e 54 69 6d 65 29 3b 00 20 20 7e 53 6d 74 45 6e 67 69 6e 65 53 74 61 74 69 xpansionTime);...~SmtEngineStati
44c0 73 74 69 63 73 28 29 20 7b 00 00 20 20 7d 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 stics().{....}.....smtStatistics
44e0 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 72 65 73 6f Registry()->registerStat(&d_reso
4500 75 72 63 65 55 6e 69 74 73 55 73 65 64 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 urceUnitsUsed);.....smtStatistic
4520 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 73 69 6d sRegistry()->registerStat(&d_sim
4540 70 6c 69 66 69 65 64 54 6f 46 61 6c 73 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 plifiedToFalse);.....smtStatisti
4560 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 70 72 csRegistry()->registerStat(&d_pr
4580 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 ocessAssertionsTime);.....smtSta
45a0 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 tisticsRegistry()->registerStat(
45c0 26 64 5f 70 75 73 68 50 6f 70 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 &d_pushPopTime);.....smtStatisti
45e0 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 73 6f csRegistry()->registerStat(&d_so
4600 6c 76 65 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 lveTime);.....smtStatisticsRegis
4620 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 63 68 65 63 6b 55 6e 73 61 try()->registerStat(&d_checkUnsa
4640 74 43 6f 72 65 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 tCoreTime);.....smtStatisticsReg
4660 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 63 68 65 63 6b 50 72 istry()->registerStat(&d_checkPr
4680 6f 6f 66 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 oofTime);.....smtStatisticsRegis
46a0 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 63 68 65 63 6b 4d 6f 64 65 try()->registerStat(&d_checkMode
46c0 6c 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 lTime);.....smtStatisticsRegistr
46e0 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 6e 75 6d 41 73 73 65 72 74 69 6f y()->registerStat(&d_numAssertio
4700 6e 73 50 6f 73 74 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 nsPost);.....smtStatisticsRegist
4720 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 6e 75 6d 41 73 73 65 72 74 69 ry()->registerStat(&d_numAsserti
4740 6f 6e 73 50 72 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 onsPre);.....smtStatisticsRegist
4760 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 63 6e 66 43 6f 6e 76 65 72 73 ry()->registerStat(&d_cnfConvers
4780 69 6f 6e 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 ionTime);.....smtStatisticsRegis
47a0 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 72 65 77 72 69 74 65 41 70 try()->registerStat(&d_rewriteAp
47c0 70 6c 79 54 6f 43 6f 6e 73 74 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 plyToConstTime);.....smtStatisti
47e0 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 74 68 csRegistry()->registerStat(&d_th
4800 65 6f 72 79 50 72 65 70 72 6f 63 65 73 73 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 eoryPreprocessTime);.....smtStat
4820 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 isticsRegistry()->registerStat(&
4840 64 5f 69 74 65 52 65 6d 6f 76 61 6c 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 d_iteRemovalTime);.....smtStatis
4860 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f ticsRegistry()->registerStat(&d_
4880 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 unconstrainedSimpTime);.....smtS
48a0 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 tatisticsRegistry()->registerSta
48c0 74 28 26 64 5f 73 69 6d 70 49 54 45 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 t(&d_simpITETime);.....smtStatis
48e0 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f ticsRegistry()->registerStat(&d_
4900 73 74 61 74 69 63 4c 65 61 72 6e 69 6e 67 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 staticLearningTime);.....smtStat
4920 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 isticsRegistry()->registerStat(&
4940 64 5f 6e 75 6d 43 6f 6e 73 74 61 6e 74 50 72 6f 70 73 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 d_numConstantProps);.....smtStat
4960 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 isticsRegistry()->registerStat(&
4980 64 5f 6e 75 6d 4d 69 70 6c 69 62 41 73 73 65 72 74 69 6f 6e 73 52 65 6d 6f 76 65 64 29 3b 00 20 d_numMiplibAssertionsRemoved);..
49a0 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 ...smtStatisticsRegistry()->regi
49c0 73 74 65 72 53 74 61 74 28 26 64 5f 6d 69 70 6c 69 62 50 61 73 73 54 69 6d 65 29 3b 00 20 20 20 sterStat(&d_miplibPassTime);....
49e0 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 72 65 67 69 73 74 .smtStatisticsRegistry()->regist
4a00 65 72 53 74 61 74 28 26 64 5f 6e 6f 6e 63 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 69 63 61 74 69 erStat(&d_nonclausalSimplificati
4a20 6f 6e 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 onTime);.....smtStatisticsRegist
4a40 72 79 28 29 2d 3e 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 64 65 66 69 6e 69 74 69 6f 6e ry()->registerStat(&d_definition
4a60 45 78 70 61 6e 73 69 6f 6e 54 69 6d 65 29 3b 00 00 20 7b 00 20 20 20 20 64 5f 72 65 73 6f 75 72 ExpansionTime);...{.....d_resour
4a80 63 65 55 6e 69 74 73 55 73 65 64 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 72 65 73 ceUnitsUsed("smt::SmtEngine::res
4aa0 6f 75 72 63 65 55 6e 69 74 73 55 73 65 64 22 29 00 20 20 20 20 64 5f 73 69 6d 70 6c 69 66 69 65 ourceUnitsUsed").....d_simplifie
4ac0 64 54 6f 46 61 6c 73 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 69 6d 70 6c 69 dToFalse("smt::SmtEngine::simpli
4ae0 66 69 65 64 54 6f 46 61 6c 73 65 22 2c 20 30 29 2c 00 20 20 20 20 64 5f 70 72 6f 63 65 73 73 41 fiedToFalse",.0),.....d_processA
4b00 73 73 65 72 74 69 6f 6e 73 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 70 ssertionsTime("smt::SmtEngine::p
4b20 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f 70 75 rocessAssertionsTime"),.....d_pu
4b40 73 68 50 6f 70 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 70 75 73 68 50 shPopTime("smt::SmtEngine::pushP
4b60 6f 70 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f 73 6f 6c 76 65 54 69 6d 65 28 22 73 6d 74 3a 3a opTime"),.....d_solveTime("smt::
4b80 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 6f 6c 76 65 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f 63 68 SmtEngine::solveTime"),.....d_ch
4ba0 65 63 6b 55 6e 73 61 74 43 6f 72 65 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 eckUnsatCoreTime("smt::SmtEngine
4bc0 3a 3a 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f 63 68 ::checkUnsatCoreTime"),.....d_ch
4be0 65 63 6b 50 72 6f 6f 66 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 eckProofTime("smt::SmtEngine::ch
4c00 65 63 6b 50 72 6f 6f 66 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f 63 68 65 63 6b 4d 6f 64 65 6c eckProofTime"),.....d_checkModel
4c20 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c Time("smt::SmtEngine::checkModel
4c40 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f 6e 75 6d 41 73 73 65 72 74 69 6f 6e 73 50 6f 73 74 28 Time"),.....d_numAssertionsPost(
4c60 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 6e 75 6d 41 73 73 65 72 74 69 6f 6e 73 50 6f "smt::SmtEngine::numAssertionsPo
4c80 73 74 49 54 45 52 65 6d 6f 76 61 6c 22 2c 20 30 29 2c 00 20 20 20 20 64 5f 6e 75 6d 41 73 73 65 stITERemoval",.0),.....d_numAsse
4ca0 72 74 69 6f 6e 73 50 72 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 6e 75 6d 41 73 rtionsPre("smt::SmtEngine::numAs
4cc0 73 65 72 74 69 6f 6e 73 50 72 65 49 54 45 52 65 6d 6f 76 61 6c 22 2c 20 30 29 2c 00 20 20 20 20 sertionsPreITERemoval",.0),.....
4ce0 64 5f 63 6e 66 43 6f 6e 76 65 72 73 69 6f 6e 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 d_cnfConversionTime("smt::SmtEng
4d00 69 6e 65 3a 3a 63 6e 66 43 6f 6e 76 65 72 73 69 6f 6e 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f ine::cnfConversionTime"),.....d_
4d20 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d rewriteApplyToConstTime("smt::Sm
4d40 74 45 6e 67 69 6e 65 3a 3a 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 54 69 6d 65 tEngine::rewriteApplyToConstTime
4d60 22 29 2c 00 20 20 20 20 64 5f 74 68 65 6f 72 79 50 72 65 70 72 6f 63 65 73 73 54 69 6d 65 28 22 "),.....d_theoryPreprocessTime("
4d80 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 74 68 65 6f 72 79 50 72 65 70 72 6f 63 65 73 73 smt::SmtEngine::theoryPreprocess
4da0 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f 69 74 65 52 65 6d 6f 76 61 6c 54 69 6d 65 28 22 73 6d Time"),.....d_iteRemovalTime("sm
4dc0 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 69 74 65 52 65 6d 6f 76 61 6c 54 69 6d 65 22 29 2c 00 t::SmtEngine::iteRemovalTime"),.
4de0 20 20 20 20 64 5f 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 54 69 6d 65 28 22 73 6d 74 ....d_unconstrainedSimpTime("smt
4e00 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 54 69 ::SmtEngine::unconstrainedSimpTi
4e20 6d 65 22 29 2c 00 20 20 20 20 64 5f 73 69 6d 70 49 54 45 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d me"),.....d_simpITETime("smt::Sm
4e40 74 45 6e 67 69 6e 65 3a 3a 73 69 6d 70 49 54 45 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f 73 74 tEngine::simpITETime"),.....d_st
4e60 61 74 69 63 4c 65 61 72 6e 69 6e 67 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 aticLearningTime("smt::SmtEngine
4e80 3a 3a 73 74 61 74 69 63 4c 65 61 72 6e 69 6e 67 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f 6e 75 ::staticLearningTime"),.....d_nu
4ea0 6d 43 6f 6e 73 74 61 6e 74 50 72 6f 70 73 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a mConstantProps("smt::SmtEngine::
4ec0 6e 75 6d 43 6f 6e 73 74 61 6e 74 50 72 6f 70 73 22 2c 20 30 29 2c 00 20 20 20 20 64 5f 6e 75 6d numConstantProps",.0),.....d_num
4ee0 4d 69 70 6c 69 62 41 73 73 65 72 74 69 6f 6e 73 52 65 6d 6f 76 65 64 28 22 73 6d 74 3a 3a 53 6d MiplibAssertionsRemoved("smt::Sm
4f00 74 45 6e 67 69 6e 65 3a 3a 6e 75 6d 4d 69 70 6c 69 62 41 73 73 65 72 74 69 6f 6e 73 52 65 6d 6f tEngine::numMiplibAssertionsRemo
4f20 76 65 64 22 2c 20 30 29 2c 00 20 20 20 20 64 5f 6d 69 70 6c 69 62 50 61 73 73 54 69 6d 65 28 22 ved",.0),.....d_miplibPassTime("
4f40 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 6d 69 70 6c 69 62 50 61 73 73 54 69 6d 65 22 29 smt::SmtEngine::miplibPassTime")
4f60 2c 00 20 20 20 20 64 5f 6e 6f 6e 63 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e ,.....d_nonclausalSimplification
4f80 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 6e 65 3a 3a 6e 6f 6e 63 6c 61 75 73 61 6c Time("smt::SmtEngine::nonclausal
4fa0 53 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 54 69 6d 65 22 29 2c 00 20 20 20 20 64 5f 64 65 66 69 SimplificationTime"),.....d_defi
4fc0 6e 69 74 69 6f 6e 45 78 70 61 6e 73 69 6f 6e 54 69 6d 65 28 22 73 6d 74 3a 3a 53 6d 74 45 6e 67 nitionExpansionTime("smt::SmtEng
4fe0 69 6e 65 3a 3a 64 65 66 69 6e 69 74 69 6f 6e 45 78 70 61 6e 73 69 6f 6e 54 69 6d 65 22 29 2c 00 ine::definitionExpansionTime"),.
5000 61 64 00 00 00 00 00 00 ec 01 00 00 00 10 00 00 74 00 00 00 00 00 00 00 bd 0f 00 00 7d 0f 00 00 ad..............t...........}...
5020 3d 0f 00 00 f9 0e 00 00 be 0e 00 00 81 0e 00 00 3a 0e 00 00 f7 0d 00 00 b4 0d 00 00 b0 0d 00 00 =...............:...............
5040 8d 0d 00 00 8c 0d 00 00 8b 0d 00 00 59 0d 00 00 50 0d 00 00 15 0d 00 00 fb 0c 00 00 e0 0c 00 00 ............Y...P...............
5060 bb 0c 00 00 a3 0c 00 00 9f 0c 00 00 95 0c 00 00 81 0c 00 00 5a 0c 00 00 59 0c 00 00 58 0c 00 00 ....................Z...Y...X...
5080 26 0c 00 00 1d 0c 00 00 e2 0b 00 00 c8 0b 00 00 ad 0b 00 00 88 0b 00 00 84 0b 00 00 7a 0b 00 00 &...........................z...
50a0 66 0b 00 00 3f 0b 00 00 3e 0b 00 00 13 0b 00 00 0a 0b 00 00 d6 0a 00 00 bc 0a 00 00 86 0a 00 00 f...?...>.......................
50c0 66 0a 00 00 62 0a 00 00 58 0a 00 00 44 0a 00 00 24 0a 00 00 23 0a 00 00 f4 09 00 00 eb 09 00 00 f...b...X...D...$...#...........
50e0 b3 09 00 00 99 09 00 00 7e 09 00 00 7a 09 00 00 70 09 00 00 5c 09 00 00 38 09 00 00 37 09 00 00 ........~...z...p...\...8...7...
5100 07 09 00 00 fe 08 00 00 ca 08 00 00 a5 08 00 00 a0 08 00 00 9f 08 00 00 8d 08 00 00 52 08 00 00 ............................R...
5120 3b 08 00 00 3a 08 00 00 f1 07 00 00 a4 07 00 00 a3 07 00 00 73 07 00 00 57 07 00 00 32 07 00 00 ;...:...............s...W...2...
5140 21 07 00 00 19 07 00 00 ec 06 00 00 b4 06 00 00 a5 06 00 00 86 06 00 00 3d 06 00 00 12 06 00 00 !.......................=.......
5160 0a 06 00 00 04 06 00 00 00 06 00 00 ff 05 00 00 f5 05 00 00 d5 05 00 00 b0 05 00 00 af 05 00 00 ................................
5180 ae 05 00 00 78 05 00 00 6f 05 00 00 55 05 00 00 28 05 00 00 f4 04 00 00 c0 04 00 00 8b 04 00 00 ....x...o...U...(...............
51a0 58 04 00 00 22 04 00 00 ec 03 00 00 b4 03 00 00 b0 03 00 00 ad 03 00 00 ac 03 00 00 78 03 00 00 X...".......................x...
51c0 6f 03 00 00 55 03 00 00 2a 03 00 00 fd 02 00 00 d0 02 00 00 a2 02 00 00 76 02 00 00 47 02 00 00 o...U...*...............v...G...
51e0 18 02 00 00 ec 01 00 00 00 00 00 00 20 20 20 20 44 75 6d 70 2e 67 65 74 53 74 72 65 61 6d 28 29 ................Dump.getStream()
5200 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 44 61 67 28 64 61 67 29 3b 00 20 20 20 20 57 61 72 6e .<<.expr::ExprDag(dag);.....Warn
5220 69 6e 67 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 44 61 67 ing.getStream().<<.expr::ExprDag
5240 28 64 61 67 29 3b 00 20 20 20 20 4d 65 73 73 61 67 65 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c (dag);.....Message.getStream().<
5260 3c 20 65 78 70 72 3a 3a 45 78 70 72 44 61 67 28 64 61 67 29 3b 00 20 20 20 20 43 68 61 74 2e 67 <.expr::ExprDag(dag);.....Chat.g
5280 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 44 61 67 28 64 61 67 29 etStream().<<.expr::ExprDag(dag)
52a0 3b 00 20 20 20 20 4e 6f 74 69 63 65 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 ;.....Notice.getStream().<<.expr
52c0 3a 3a 45 78 70 72 44 61 67 28 64 61 67 29 3b 00 20 20 20 20 54 72 61 63 65 2e 67 65 74 53 74 72 ::ExprDag(dag);.....Trace.getStr
52e0 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 44 61 67 28 64 61 67 29 3b 00 20 20 20 eam().<<.expr::ExprDag(dag);....
5300 20 44 65 62 75 67 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 .Debug.getStream().<<.expr::Expr
5320 44 61 67 28 64 61 67 29 3b 00 20 20 20 20 69 6e 74 20 64 61 67 20 3d 20 6f 70 74 69 6f 6e 73 3a Dag(dag);.....int.dag.=.options:
5340 3a 64 65 66 61 75 6c 74 44 61 67 54 68 72 65 73 68 28 29 3b 00 20 20 76 69 72 74 75 61 6c 20 76 :defaultDagThresh();...virtual.v
5360 6f 69 64 20 6e 6f 74 69 66 79 28 29 20 7b 00 20 70 75 62 6c 69 63 3a 00 63 6c 61 73 73 20 53 65 oid.notify().{..public:.class.Se
5380 74 44 65 66 61 75 6c 74 45 78 70 72 44 61 67 4c 69 73 74 65 6e 65 72 20 3a 20 70 75 62 6c 69 63 tDefaultExprDagListener.:.public
53a0 20 4c 69 73 74 65 6e 65 72 20 7b 00 00 7d 3b 00 20 20 7d 00 20 20 20 20 2f 2f 20 69 6e 74 65 6e .Listener.{..};...}.....//.inten
53c0 74 69 6f 6e 61 6c 6c 79 20 65 78 63 6c 75 64 65 20 44 75 6d 70 20 73 74 72 65 61 6d 20 66 72 6f tionally.exclude.Dump.stream.fro
53e0 6d 20 74 68 69 73 20 6c 69 73 74 00 20 20 20 20 57 61 72 6e 69 6e 67 2e 67 65 74 53 74 72 65 61 m.this.list.....Warning.getStrea
5400 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 53 65 74 44 65 70 74 68 28 64 65 70 74 68 29 m().<<.expr::ExprSetDepth(depth)
5420 3b 00 20 20 20 20 4d 65 73 73 61 67 65 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 ;.....Message.getStream().<<.exp
5440 72 3a 3a 45 78 70 72 53 65 74 44 65 70 74 68 28 64 65 70 74 68 29 3b 00 20 20 20 20 43 68 61 74 r::ExprSetDepth(depth);.....Chat
5460 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 53 65 74 44 65 70 .getStream().<<.expr::ExprSetDep
5480 74 68 28 64 65 70 74 68 29 3b 00 20 20 20 20 4e 6f 74 69 63 65 2e 67 65 74 53 74 72 65 61 6d 28 th(depth);.....Notice.getStream(
54a0 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 53 65 74 44 65 70 74 68 28 64 65 70 74 68 29 3b 00 ).<<.expr::ExprSetDepth(depth);.
54c0 20 20 20 20 54 72 61 63 65 2e 67 65 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 ....Trace.getStream().<<.expr::E
54e0 78 70 72 53 65 74 44 65 70 74 68 28 64 65 70 74 68 29 3b 00 20 20 20 20 44 65 62 75 67 2e 67 65 xprSetDepth(depth);.....Debug.ge
5500 74 53 74 72 65 61 6d 28 29 20 3c 3c 20 65 78 70 72 3a 3a 45 78 70 72 53 65 74 44 65 70 74 68 28 tStream().<<.expr::ExprSetDepth(
5520 64 65 70 74 68 29 3b 00 20 20 20 20 69 6e 74 20 64 65 70 74 68 20 3d 20 6f 70 74 69 6f 6e 73 3a depth);.....int.depth.=.options:
5540 3a 64 65 66 61 75 6c 74 45 78 70 72 44 65 70 74 68 28 29 3b 00 20 20 76 69 72 74 75 61 6c 20 76 :defaultExprDepth();...virtual.v
5560 6f 69 64 20 6e 6f 74 69 66 79 28 29 20 7b 00 20 70 75 62 6c 69 63 3a 00 63 6c 61 73 73 20 53 65 oid.notify().{..public:.class.Se
5580 74 44 65 66 61 75 6c 74 45 78 70 72 44 65 70 74 68 4c 69 73 74 65 6e 65 72 20 3a 20 70 75 62 6c tDefaultExprDepthListener.:.publ
55a0 69 63 20 4c 69 73 74 65 6e 65 72 20 7b 00 00 00 7d 3b 20 2f 2a 20 63 6c 61 73 73 20 55 73 65 54 ic.Listener.{...};./*.class.UseT
55c0 68 65 6f 72 79 4c 69 73 74 4c 69 73 74 65 6e 65 72 20 2a 2f 00 20 20 54 68 65 6f 72 79 45 6e 67 heoryListListener.*/...TheoryEng
55e0 69 6e 65 2a 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 3b 00 20 70 72 69 76 61 74 65 3a 00 00 ine*.d_theoryEngine;..private:..
5600 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 22 27 ..}.....}.......}............."'
5620 2e 20 20 54 72 79 20 2d 2d 75 73 65 2d 74 68 65 6f 72 79 3d 68 65 6c 70 2e 22 29 3b 00 20 20 20 ...Try.--use-theory=help.");....
5640 20 20 20 20 20 20 20 20 20 73 74 64 3a 3a 73 74 72 69 6e 67 28 22 75 6e 6b 6e 6f 77 6e 20 6f 70 .........std::string("unknown.op
5660 74 69 6f 6e 20 66 6f 72 20 2d 2d 75 73 65 2d 74 68 65 6f 72 79 20 3a 20 60 22 29 20 2b 20 74 6f tion.for.--use-theory.:.`").+.to
5680 6b 65 6e 20 2b 00 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 ken.+.........throw.OptionExcept
56a0 69 6f 6e 28 00 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 64 5f 74 68 ion(.......}.else.{.........d_th
56c0 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 65 6e 61 62 6c 65 54 68 65 6f 72 79 41 6c 74 65 72 6e 61 74 eoryEngine->enableTheoryAlternat
56e0 69 76 65 28 74 6f 6b 65 6e 29 3b 00 20 20 20 20 20 20 69 66 28 74 68 65 6f 72 79 3a 3a 75 73 65 ive(token);.......if(theory::use
5700 54 68 65 6f 72 79 56 61 6c 69 64 61 74 65 28 74 6f 6b 65 6e 29 29 20 7b 00 20 20 20 20 20 20 7d TheoryValidate(token)).{.......}
5720 00 20 20 20 20 20 20 20 20 65 78 69 74 28 31 29 3b 00 20 20 20 20 20 20 20 20 70 75 74 73 28 74 .........exit(1);.........puts(t
5740 68 65 6f 72 79 3a 3a 75 73 65 54 68 65 6f 72 79 48 65 6c 70 29 3b 00 20 20 20 20 20 20 69 66 28 heory::useTheoryHelp);.......if(
5760 74 6f 6b 65 6e 20 3d 3d 20 22 68 65 6c 70 22 29 20 7b 00 20 20 20 20 77 68 69 6c 65 28 73 74 64 token.==."help").{.....while(std
5780 3a 3a 67 65 74 6c 69 6e 65 28 63 6f 6d 6d 61 4c 69 73 74 2c 20 74 6f 6b 65 6e 2c 20 27 2c 27 29 ::getline(commaList,.token,.',')
57a0 29 7b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ){..............................
57c0 20 20 20 20 20 20 20 3c 3c 20 6f 70 74 69 6f 6e 73 3a 3a 75 73 65 54 68 65 6f 72 79 4c 69 73 74 .......<<.options::useTheoryList
57e0 28 29 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 44 65 62 75 67 28 22 55 73 65 54 ().<<.std::endl;.....Debug("UseT
5800 68 65 6f 72 79 4c 69 73 74 4c 69 73 74 65 6e 65 72 22 29 20 3c 3c 20 22 55 73 65 54 68 65 6f 72 heoryListListener").<<."UseTheor
5820 79 4c 69 73 74 4c 69 73 74 65 6e 65 72 3a 3a 6e 6f 74 69 66 79 28 29 20 22 00 00 20 20 20 20 73 yListListener::notify()."......s
5840 74 64 3a 3a 73 74 72 69 6e 67 20 74 6f 6b 65 6e 3b 00 20 20 20 20 73 74 64 3a 3a 73 74 72 69 6e td::string.token;.....std::strin
5860 67 73 74 72 65 61 6d 20 63 6f 6d 6d 61 4c 69 73 74 28 6f 70 74 69 6f 6e 73 3a 3a 75 73 65 54 68 gstream.commaList(options::useTh
5880 65 6f 72 79 4c 69 73 74 28 29 29 3b 00 20 20 76 6f 69 64 20 6e 6f 74 69 66 79 28 29 20 7b 00 00 eoryList());...void.notify().{..
58a0 20 20 7b 7d 00 20 20 20 20 20 20 3a 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 28 74 68 65 6f ..{}.......:.d_theoryEngine(theo
58c0 72 79 45 6e 67 69 6e 65 29 00 20 20 55 73 65 54 68 65 6f 72 79 4c 69 73 74 4c 69 73 74 65 6e 65 ryEngine)...UseTheoryListListene
58e0 72 28 54 68 65 6f 72 79 45 6e 67 69 6e 65 2a 20 74 68 65 6f 72 79 45 6e 67 69 6e 65 29 00 20 70 r(TheoryEngine*.theoryEngine)..p
5900 75 62 6c 69 63 3a 00 63 6c 61 73 73 20 55 73 65 54 68 65 6f 72 79 4c 69 73 74 4c 69 73 74 65 6e ublic:.class.UseTheoryListListen
5920 65 72 20 3a 20 70 75 62 6c 69 63 20 4c 69 73 74 65 6e 65 72 20 7b 00 00 7d 3b 20 2f 2a 20 63 6c er.:.public.Listener.{..};./*.cl
5940 61 73 73 20 42 65 66 6f 72 65 53 65 61 72 63 68 4c 69 73 74 65 6e 65 72 20 2a 2f 00 20 20 53 6d ass.BeforeSearchListener.*/...Sm
5960 74 45 6e 67 69 6e 65 2a 20 64 5f 73 6d 74 3b 00 20 70 72 69 76 61 74 65 3a 00 20 20 7d 00 20 20 tEngine*.d_smt;..private:...}...
5980 20 20 64 5f 73 6d 74 2d 3e 62 65 66 6f 72 65 53 65 61 72 63 68 28 29 3b 00 20 20 76 69 72 74 75 ..d_smt->beforeSearch();...virtu
59a0 61 6c 20 76 6f 69 64 20 6e 6f 74 69 66 79 28 29 20 7b 00 20 20 42 65 66 6f 72 65 53 65 61 72 63 al.void.notify().{...BeforeSearc
59c0 68 4c 69 73 74 65 6e 65 72 28 53 6d 74 45 6e 67 69 6e 65 26 20 73 6d 74 29 20 3a 20 64 5f 73 6d hListener(SmtEngine&.smt).:.d_sm
59e0 74 28 26 73 6d 74 29 20 7b 7d 00 20 70 75 62 6c 69 63 3a 00 63 6c 61 73 73 20 42 65 66 6f 72 65 t(&smt).{}..public:.class.Before
5a00 53 65 61 72 63 68 4c 69 73 74 65 6e 65 72 20 3a 20 70 75 62 6c 69 63 20 4c 69 73 74 65 6e 65 72 SearchListener.:.public.Listener
5a20 20 7b 00 00 7d 3b 20 2f 2a 20 63 6c 61 73 73 20 53 65 74 4c 6f 67 69 63 4c 69 73 74 65 6e 65 72 .{..};./*.class.SetLogicListener
5a40 20 2a 2f 00 20 20 53 6d 74 45 6e 67 69 6e 65 2a 20 64 5f 73 6d 74 3b 00 20 70 72 69 76 61 74 65 .*/...SmtEngine*.d_smt;..private
5a60 3a 00 20 20 7d 00 20 20 20 20 64 5f 73 6d 74 2d 3e 73 65 74 4c 6f 67 69 63 28 69 6e 4f 70 74 69 :...}.....d_smt->setLogic(inOpti
5a80 6f 6e 73 29 3b 00 20 20 20 20 4c 6f 67 69 63 49 6e 66 6f 20 69 6e 4f 70 74 69 6f 6e 73 28 6f 70 ons);.....LogicInfo.inOptions(op
5aa0 74 69 6f 6e 73 3a 3a 66 6f 72 63 65 4c 6f 67 69 63 53 74 72 69 6e 67 28 29 29 3b 00 20 20 76 69 tions::forceLogicString());...vi
5ac0 72 74 75 61 6c 20 76 6f 69 64 20 6e 6f 74 69 66 79 28 29 20 7b 00 20 20 53 65 74 4c 6f 67 69 63 rtual.void.notify().{...SetLogic
5ae0 4c 69 73 74 65 6e 65 72 28 53 6d 74 45 6e 67 69 6e 65 26 20 73 6d 74 29 20 3a 20 64 5f 73 6d 74 Listener(SmtEngine&.smt).:.d_smt
5b00 28 26 73 6d 74 29 20 7b 7d 00 20 70 75 62 6c 69 63 3a 00 63 6c 61 73 73 20 53 65 74 4c 6f 67 69 (&smt).{}..public:.class.SetLogi
5b20 63 4c 69 73 74 65 6e 65 72 20 3a 20 70 75 62 6c 69 63 20 4c 69 73 74 65 6e 65 72 20 7b 00 00 7d cListener.:.public.Listener.{..}
5b40 3b 20 2f 2a 20 63 6c 61 73 73 20 48 61 72 64 52 65 73 6f 75 72 63 65 4f 75 74 4c 69 73 74 65 6e ;./*.class.HardResourceOutListen
5b60 65 72 20 2a 2f 00 20 20 53 6d 74 45 6e 67 69 6e 65 2a 20 64 5f 73 6d 74 3b 00 20 70 72 69 76 61 er.*/...SmtEngine*.d_smt;..priva
5b80 74 65 3a 00 20 20 7d 00 20 20 20 20 74 68 65 6f 72 79 3a 3a 52 65 77 72 69 74 65 72 3a 3a 63 6c te:...}.....theory::Rewriter::cl
5ba0 65 61 72 43 61 63 68 65 73 28 29 3b 00 20 20 20 20 53 6d 74 53 63 6f 70 65 20 73 63 6f 70 65 28 earCaches();.....SmtScope.scope(
5bc0 64 5f 73 6d 74 29 3b 00 20 20 76 69 72 74 75 61 6c 20 76 6f 69 64 20 6e 6f 74 69 66 79 28 29 20 d_smt);...virtual.void.notify().
5be0 7b 00 20 20 48 61 72 64 52 65 73 6f 75 72 63 65 4f 75 74 4c 69 73 74 65 6e 65 72 28 53 6d 74 45 {...HardResourceOutListener(SmtE
5c00 6e 67 69 6e 65 26 20 73 6d 74 29 20 3a 20 64 5f 73 6d 74 28 26 73 6d 74 29 20 7b 7d 00 20 70 75 ngine&.smt).:.d_smt(&smt).{}..pu
5c20 62 6c 69 63 3a 00 63 6c 61 73 73 20 48 61 72 64 52 65 73 6f 75 72 63 65 4f 75 74 4c 69 73 74 65 blic:.class.HardResourceOutListe
5c40 6e 65 72 20 3a 20 70 75 62 6c 69 63 20 4c 69 73 74 65 6e 65 72 20 7b 00 00 00 7d 3b 20 2f 2a 20 ner.:.public.Listener.{...};./*.
5c60 63 6c 61 73 73 20 53 6f 66 74 52 65 73 6f 75 72 63 65 4f 75 74 4c 69 73 74 65 6e 65 72 20 2a 2f class.SoftResourceOutListener.*/
5c80 00 20 20 53 6d 74 45 6e 67 69 6e 65 2a 20 64 5f 73 6d 74 3b 00 20 70 72 69 76 61 74 65 3a 00 20 ...SmtEngine*.d_smt;..private:..
5ca0 20 7d 00 20 20 20 20 64 5f 73 6d 74 2d 3e 69 6e 74 65 72 72 75 70 74 28 29 3b 00 20 20 20 20 41 .}.....d_smt->interrupt();.....A
5cc0 73 73 65 72 74 28 73 6d 74 3a 3a 73 6d 74 45 6e 67 69 6e 65 49 6e 53 63 6f 70 65 28 29 29 3b 00 ssert(smt::smtEngineInScope());.
5ce0 20 20 20 20 53 6d 74 53 63 6f 70 65 20 73 63 6f 70 65 28 64 5f 73 6d 74 29 3b 00 20 20 76 69 72 ....SmtScope.scope(d_smt);...vir
5d00 74 75 61 6c 20 76 6f 69 64 20 6e 6f 74 69 66 79 28 29 20 7b 00 20 20 53 6f 66 74 52 65 73 6f 75 tual.void.notify().{...SoftResou
5d20 72 63 65 4f 75 74 4c 69 73 74 65 6e 65 72 28 53 6d 74 45 6e 67 69 6e 65 26 20 73 6d 74 29 20 3a rceOutListener(SmtEngine&.smt).:
5d40 20 64 5f 73 6d 74 28 26 73 6d 74 29 20 7b 7d 00 20 70 75 62 6c 69 63 3a 00 63 6c 61 73 73 20 53 .d_smt(&smt).{}..public:.class.S
5d60 6f 66 74 52 65 73 6f 75 72 63 65 4f 75 74 4c 69 73 74 65 6e 65 72 20 3a 20 70 75 62 6c 69 63 20 oftResourceOutListener.:.public.
5d80 4c 69 73 74 65 6e 65 72 20 7b 00 00 00 7d 3b 2f 2a 20 73 74 72 75 63 74 20 53 6d 74 45 6e 67 69 Listener.{...};/*.struct.SmtEngi
5da0 6e 65 53 74 61 74 69 73 74 69 63 73 20 2a 2f 00 20 20 7d 00 20 20 20 20 73 6d 74 53 74 61 74 69 neStatistics.*/...}.....smtStati
5dc0 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 74 61 74 28 sticsRegistry()->unregisterStat(
5de0 26 64 5f 72 65 73 6f 75 72 63 65 55 6e 69 74 73 55 73 65 64 29 3b 00 20 20 20 20 73 6d 74 53 74 &d_resourceUnitsUsed);.....smtSt
5e00 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 53 74 atisticsRegistry()->unregisterSt
5e20 61 74 28 26 64 5f 73 69 6d 70 6c 69 66 69 65 64 54 6f 46 61 6c 73 65 29 3b 00 20 20 20 20 73 6d at(&d_simplifiedToFalse);.....sm
5e40 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 tStatisticsRegistry()->unregiste
5e60 72 53 74 61 74 28 26 64 5f 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 54 69 6d 65 29 3b rStat(&d_processAssertionsTime);
5e80 00 20 20 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e .....smtStatisticsRegistry()->un
5ea0 72 65 67 69 73 74 65 72 53 74 61 74 28 26 64 5f 70 75 73 68 50 6f 70 54 69 6d 65 29 3b 00 20 20 registerStat(&d_pushPopTime);...
5ec0 20 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 ..smtStatisticsRegistry()->unreg
5ee0 69 73 74 65 72 53 74 61 74 28 26 64 5f 73 6f 6c 76 65 54 69 6d 65 29 3b 00 20 20 20 20 73 6d 74 isterStat(&d_solveTime);.....smt
5f00 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 73 74 65 72 StatisticsRegistry()->unregister
5f20 53 74 61 74 28 26 64 5f 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 54 69 6d 65 29 3b 00 20 20 20 Stat(&d_checkUnsatCoreTime);....
5f40 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 .smtStatisticsRegistry()->unregi
5f60 73 74 65 72 53 74 61 74 28 26 64 5f 63 68 65 63 6b 50 72 6f 6f 66 54 69 6d 65 29 3b 00 20 20 20 sterStat(&d_checkProofTime);....
5f80 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 .smtStatisticsRegistry()->unregi
5fa0 73 74 65 72 53 74 61 74 28 26 64 5f 63 68 65 63 6b 4d 6f 64 65 6c 54 69 6d 65 29 3b 00 20 20 20 sterStat(&d_checkModelTime);....
5fc0 20 73 6d 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 2d 3e 75 6e 72 65 67 69 .smtStatisticsRegistry()->unregi
5fe0 73 74 65 72 53 74 61 74 28 26 64 5f 6e 75 6d 41 73 73 65 72 74 69 6f 6e 73 50 6f 73 74 29 3b 00 sterStat(&d_numAssertionsPost);.
6000 61 64 00 00 e9 00 00 00 e1 02 00 00 00 10 00 00 77 00 00 00 00 00 00 00 ba 0f 00 00 8a 0f 00 00 ad..............w...............
6020 84 0f 00 00 62 0f 00 00 61 0f 00 00 5b 0f 00 00 16 0f 00 00 f0 0e 00 00 ea 0e 00 00 c4 0e 00 00 ....b...a...[...................
6040 c3 0e 00 00 bd 0e 00 00 76 0e 00 00 31 0e 00 00 ed 0d 00 00 c7 0d 00 00 c1 0d 00 00 9b 0d 00 00 ........v...1...................
6060 9a 0d 00 00 65 0d 00 00 5f 0d 00 00 39 0d 00 00 38 0d 00 00 fa 0c 00 00 de 0c 00 00 bc 0c 00 00 ....e..._...9...8...............
6080 99 0c 00 00 98 0c 00 00 90 0c 00 00 8a 0c 00 00 47 0c 00 00 1d 0c 00 00 17 0c 00 00 f8 0b 00 00 ................G...............
60a0 f7 0b 00 00 d2 0b 00 00 af 0b 00 00 ae 0b 00 00 a5 0b 00 00 a4 0b 00 00 6c 0b 00 00 6b 0b 00 00 ........................l...k...
60c0 46 0b 00 00 1b 0b 00 00 1a 0b 00 00 ed 0a 00 00 ec 0a 00 00 e6 0a 00 00 a2 0a 00 00 8c 0a 00 00 F...............................
60e0 87 0a 00 00 4f 0a 00 00 49 0a 00 00 2c 0a 00 00 2b 0a 00 00 25 0a 00 00 f4 09 00 00 ee 09 00 00 ....O...I...,...+...%...........
6100 d5 09 00 00 d4 09 00 00 ce 09 00 00 a8 09 00 00 a2 09 00 00 8d 09 00 00 50 09 00 00 4f 09 00 00 ........................P...O...
6120 49 09 00 00 f8 08 00 00 e6 08 00 00 e0 08 00 00 8f 08 00 00 8e 08 00 00 88 08 00 00 37 08 00 00 I...........................7...
6140 25 08 00 00 1f 08 00 00 d3 07 00 00 b8 07 00 00 a6 07 00 00 a5 07 00 00 9f 07 00 00 51 07 00 00 %...........................Q...
6160 37 07 00 00 31 07 00 00 fd 06 00 00 fc 06 00 00 f6 06 00 00 b1 06 00 00 6b 06 00 00 52 06 00 00 7...1...................k...R...
6180 4c 06 00 00 0b 06 00 00 fe 05 00 00 fd 05 00 00 f7 05 00 00 b3 05 00 00 a0 05 00 00 9a 05 00 00 L...............................
61a0 5d 05 00 00 1f 05 00 00 1e 05 00 00 18 05 00 00 ce 04 00 00 be 04 00 00 b8 04 00 00 90 04 00 00 ]...............................
61c0 42 04 00 00 41 04 00 00 20 04 00 00 08 04 00 00 07 04 00 00 01 04 00 00 bf 03 00 00 7b 03 00 00 B...A.......................{...
61e0 6d 03 00 00 68 03 00 00 30 03 00 00 2a 03 00 00 e1 02 00 00 e0 02 00 00 c4 02 00 00 98 02 00 00 m...h...0...*...................
6200 7d 02 00 00 6f 02 00 00 37 02 00 00 1b 02 00 00 35 02 00 00 00 00 00 00 00 00 00 20 20 62 6f 6f }...o...7.......5............boo
6220 6c 20 73 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 28 29 20 20 20 62 6f 6f 6c 20 73 69 l.simplifyAssertions()...bool.si
6240 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 28 29 20 74 68 72 6f 77 28 54 79 70 65 43 68 65 mplifyAssertions().throw(TypeChe
6260 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 20 62 6f 6f 6c 20 73 69 6d 70 6c 69 66 20 20 62 ckingException,..bool.simplif..b
6280 6f 6f 6c 20 73 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 28 29 20 20 62 6f 6f 6c 20 73 ool.simplifyAssertions()..bool.s
62a0 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 28 29 20 74 68 72 6f 77 28 54 79 70 65 43 68 implifyAssertions().throw(TypeCh
62c0 65 63 6b 69 20 20 62 6f 6f 6c 20 73 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 20 20 62 6f ecki..bool.simplifyAssertion..bo
62e0 6f 20 20 62 6f 6f 6c 20 73 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 28 29 20 74 68 72 o..bool.simplifyAssertions().thr
6300 6f 77 28 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 ow(TypeCheckingException,.LogicE
6320 78 63 65 70 74 69 6f 6e 2c 00 20 20 20 2a 2f 00 20 20 20 2a 20 52 65 74 75 72 6e 73 20 66 61 6c xception,....*/....*.Returns.fal
6340 73 65 20 69 66 20 74 68 65 20 66 6f 72 6d 75 6c 61 20 73 69 6d 70 6c 69 66 69 65 73 20 74 6f 20 se.if.the.formula.simplifies.to.
6360 22 66 61 6c 73 65 22 00 20 20 20 2a 00 20 20 20 2a 20 61 6e 79 20 77 61 79 2e 00 20 20 20 2a 20 "false"....*....*.any.way.....*.
6380 54 68 65 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 2c 20 62 75 74 20 64 6f 65 73 Theory.implementations,.but.does
63a0 20 4e 4f 54 20 69 6e 76 6f 6c 76 65 20 74 68 65 20 53 41 54 20 73 6f 6c 76 65 72 20 69 6e 00 20 .NOT.involve.the.SAT.solver.in..
63c0 20 20 2a 20 50 65 72 66 6f 72 6d 20 6e 6f 6e 2d 63 6c 61 75 73 61 6c 20 73 69 6d 70 6c 69 66 69 ..*.Perform.non-clausal.simplifi
63e0 63 61 74 69 6f 6e 20 6f 66 20 61 20 4e 6f 64 65 2e 20 20 54 68 69 73 20 69 6e 76 6f 6c 76 65 73 cation.of.a.Node...This.involves
6400 00 20 20 2f 2a 2a 00 00 20 20 76 6f 69 64 20 64 6f 4d 69 70 6c 69 62 54 72 69 63 6b 28 29 3b 00 .../**....void.doMiplibTrick();.
6420 20 20 2f 2a 2a 20 53 63 72 75 62 20 6d 69 70 6c 69 62 20 65 6e 63 6f 64 69 6e 67 73 2e 20 2a 2f ../**.Scrub.miplib.encodings..*/
6440 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6460 20 63 6f 6e 73 74 20 73 74 64 3a 3a 68 61 73 68 5f 73 65 74 3c 75 6e 73 69 67 6e 65 64 20 6c 6f .const.std::hash_set<unsigned.lo
6480 6e 67 3e 26 20 74 6f 52 65 6d 6f 76 65 29 3b 00 20 20 73 69 7a 65 5f 74 20 72 65 6d 6f 76 65 46 ng>&.toRemove);...size_t.removeF
64a0 72 6f 6d 43 6f 6e 6a 75 6e 63 74 69 6f 6e 28 4e 6f 64 65 26 20 6e 2c 00 20 20 20 2a 2f 00 20 20 romConjunction(Node&.n,....*/...
64c0 20 2a 20 63 6f 6e 6a 75 6e 63 74 73 2e 00 20 20 20 2a 20 52 65 6d 6f 76 65 20 63 6f 6e 6a 75 6e .*.conjuncts.....*.Remove.conjun
64e0 63 74 73 20 69 6e 20 74 6f 52 65 6d 6f 76 65 20 66 72 6f 6d 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e cts.in.toRemove.from.conjunction
6500 20 6e 2e 20 52 65 74 75 72 6e 20 23 20 6f 66 20 72 65 6d 6f 76 65 64 00 20 20 2f 2a 2a 00 00 20 .n..Return.#.of.removed.../**...
6520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 64 3a ............................std:
6540 3a 76 65 63 74 6f 72 3c 54 4e 6f 64 65 3e 26 20 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 76 :vector<TNode>&.assertions);...v
6560 6f 69 64 20 74 72 61 63 65 42 61 63 6b 54 6f 41 73 73 65 72 74 69 6f 6e 73 28 63 6f 6e 73 74 20 oid.traceBackToAssertions(const.
6580 73 74 64 3a 3a 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 26 20 6e 6f 64 65 73 2c 00 20 20 20 2a 2f 00 std::vector<Node>&.nodes,....*/.
65a0 20 20 20 2a 20 42 61 63 6b 45 64 67 65 73 4d 61 70 2e 00 20 20 20 2a 20 54 72 61 63 65 20 6e 6f ...*.BackEdgesMap.....*.Trace.no
65c0 64 65 73 20 62 61 63 6b 20 74 6f 20 74 68 65 69 72 20 61 73 73 65 72 74 69 6f 6e 73 20 75 73 69 des.back.to.their.assertions.usi
65e0 6e 67 20 43 69 72 63 75 69 74 50 72 6f 70 61 67 61 74 6f 72 27 73 00 20 20 2f 2a 2a 00 00 20 20 ng.CircuitPropagator's.../**....
6600 20 20 74 68 72 6f 77 28 29 3b 00 20 20 76 6f 69 64 20 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 ..throw();...void.constrainSubty
6620 70 65 73 28 54 4e 6f 64 65 20 6e 2c 20 41 73 73 65 72 74 69 6f 6e 50 69 70 65 6c 69 6e 65 26 20 pes(TNode.n,.AssertionPipeline&.
6640 61 73 73 65 72 74 69 6f 6e 73 29 00 20 20 20 2a 2f 00 20 20 20 2a 20 74 6f 20 62 65 20 69 6e 20 assertions)....*/....*.to.be.in.
6660 74 68 61 74 20 74 79 70 65 2e 00 20 20 20 2a 20 28 70 72 65 64 69 63 61 74 65 20 73 75 62 74 79 that.type.....*.(predicate.subty
6680 70 65 20 6f 72 20 69 6e 74 65 67 65 72 20 73 75 62 72 61 6e 67 65 20 74 79 70 65 29 20 6d 75 73 pe.or.integer.subrange.type).mus
66a0 74 20 62 65 20 63 6f 6e 73 74 72 61 69 6e 65 64 00 20 20 20 2a 20 41 6e 79 20 76 61 72 69 61 62 t.be.constrained....*.Any.variab
66c0 6c 65 20 69 6e 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 74 68 61 74 20 69 73 20 64 65 63 6c 61 le.in.an.assertion.that.is.decla
66e0 72 65 64 20 61 73 20 61 20 73 75 62 74 79 70 65 20 74 79 70 65 00 20 20 2f 2a 2a 00 00 20 20 76 red.as.a.subtype.type.../**....v
6700 6f 69 64 20 63 6f 6d 70 72 65 73 73 42 65 66 6f 72 65 52 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 oid.compressBeforeRealAssertions
6720 28 73 69 7a 65 5f 74 20 62 65 66 6f 72 65 29 3b 00 20 20 20 2a 2f 00 20 20 20 2a 20 64 5f 72 65 (size_t.before);....*/....*.d_re
6740 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 2e 00 20 20 20 2a 20 45 6e 73 75 72 65 73 20 74 68 alAssertionsEnd.....*.Ensures.th
6760 65 20 61 73 73 65 72 74 69 6f 6e 73 20 61 73 73 65 72 74 65 64 20 61 66 74 65 72 20 62 65 66 6f e.assertions.asserted.after.befo
6780 72 65 20 6e 6f 77 20 65 66 66 65 63 74 69 76 65 6c 79 20 63 6f 6d 65 20 62 65 66 6f 72 65 00 20 re.now.effectively.come.before..
67a0 20 2f 2a 2a 00 00 20 20 62 6f 6f 6c 20 73 69 6d 70 49 54 45 28 29 3b 00 20 2f 2f 20 53 69 6d 70 ./**....bool.simpITE();..//.Simp
67c0 6c 69 66 79 20 49 54 45 20 73 74 72 75 63 74 75 72 65 00 20 20 62 6f 6f 6c 20 63 68 65 63 6b 46 lify.ITE.structure...bool.checkF
67e0 6f 72 42 61 64 53 6b 6f 6c 65 6d 73 28 54 4e 6f 64 65 20 6e 2c 20 54 4e 6f 64 65 20 73 6b 6f 6c orBadSkolems(TNode.n,.TNode.skol
6800 65 6d 2c 20 4e 6f 64 65 54 6f 42 6f 6f 6c 48 61 73 68 4d 61 70 26 20 63 61 63 68 65 29 3b 00 20 em,.NodeToBoolHashMap&.cache);..
6820 20 20 2a 2f 00 20 20 20 2a 20 69 74 65 20 72 65 6d 6f 76 61 6c 2e 00 20 20 20 2a 20 48 65 6c 70 ..*/....*.ite.removal.....*.Help
6840 65 72 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 66 69 78 20 75 70 20 61 73 73 65 72 74 69 6f 6e 20 er.function.to.fix.up.assertion.
6860 6c 69 73 74 20 74 6f 20 72 65 73 74 6f 72 65 20 69 6e 76 61 72 69 61 6e 74 73 20 6e 65 65 64 65 list.to.restore.invariants.neede
6880 64 20 61 66 74 65 72 00 20 20 2f 2a 2a 00 00 20 20 76 6f 69 64 20 63 6f 6c 6c 65 63 74 53 6b 6f d.after.../**....void.collectSko
68a0 6c 65 6d 73 28 54 4e 6f 64 65 20 6e 2c 20 73 65 74 3c 54 4e 6f 64 65 3e 26 20 73 6b 6f 6c 65 6d lems(TNode.n,.set<TNode>&.skolem
68c0 53 65 74 2c 20 4e 6f 64 65 54 6f 42 6f 6f 6c 48 61 73 68 4d 61 70 26 20 63 61 63 68 65 29 3b 00 Set,.NodeToBoolHashMap&.cache);.
68e0 20 20 20 2a 2f 00 20 20 20 2a 20 69 74 65 20 72 65 6d 6f 76 61 6c 2e 00 20 20 20 2a 20 48 65 6c ...*/....*.ite.removal.....*.Hel
6900 70 65 72 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 66 69 78 20 75 70 20 61 73 73 65 72 74 69 6f 6e per.function.to.fix.up.assertion
6920 20 6c 69 73 74 20 74 6f 20 72 65 73 74 6f 72 65 20 69 6e 76 61 72 69 61 6e 74 73 20 6e 65 65 64 .list.to.restore.invariants.need
6940 65 64 20 61 66 74 65 72 00 20 20 2f 2a 2a 00 00 20 20 4e 6f 64 65 20 69 6e 74 54 6f 42 56 4d 61 ed.after.../**....Node.intToBVMa
6960 6b 65 42 69 6e 61 72 79 28 54 4e 6f 64 65 20 6e 2c 20 4e 6f 64 65 54 6f 4e 6f 64 65 48 61 73 68 keBinary(TNode.n,.NodeToNodeHash
6980 4d 61 70 26 20 63 61 63 68 65 29 3b 00 20 20 76 6f 69 64 20 72 65 6d 6f 76 65 49 54 45 73 28 29 Map&.cache);...void.removeITEs()
69a0 3b 00 20 20 20 2a 2f 00 20 20 20 2a 20 52 65 6d 6f 76 65 20 49 54 45 73 20 66 72 6f 6d 20 74 68 ;....*/....*.Remove.ITEs.from.th
69c0 65 20 61 73 73 65 72 74 69 6f 6e 73 2e 00 20 20 2f 2a 2a 00 00 20 20 76 6f 69 64 20 73 74 61 74 e.assertions..../**....void.stat
69e0 69 63 4c 65 61 72 6e 69 6e 67 28 29 3b 00 20 20 20 2a 2f 00 20 20 20 2a 20 50 65 72 66 6f 72 6d icLearning();....*/....*.Perform
6a00 73 20 73 74 61 74 69 63 20 6c 65 61 72 6e 69 6e 67 20 6f 6e 20 74 68 65 20 61 73 73 65 72 74 69 s.static.learning.on.the.asserti
6a20 6f 6e 73 2e 00 20 20 2f 2a 2a 00 00 20 20 62 6f 6f 6c 20 6e 6f 6e 43 6c 61 75 73 61 6c 53 69 6d ons..../**....bool.nonClausalSim
6a40 70 6c 69 66 79 28 29 3b 00 20 20 20 2a 2f 00 20 20 20 2a 20 52 65 74 75 72 6e 73 20 66 61 6c 73 plify();....*/....*.Returns.fals
6a60 65 20 69 66 20 74 68 65 20 66 6f 72 6d 75 6c 61 20 73 69 6d 70 6c 69 66 69 65 73 20 74 6f 20 22 e.if.the.formula.simplifies.to."
6a80 66 61 6c 73 65 22 00 20 20 20 2a 00 20 20 20 2a 20 74 68 65 6f 72 79 20 6c 69 74 65 72 61 6c 73 false"....*....*.theory.literals
6aa0 2e 00 20 20 20 2a 20 52 75 6e 73 20 74 68 65 20 6e 6f 6e 63 6c 61 75 73 61 6c 20 73 6f 6c 76 65 .....*.Runs.the.nonclausal.solve
6ac0 72 20 61 6e 64 20 74 72 69 65 73 20 74 6f 20 73 6f 6c 76 65 20 61 6c 6c 20 74 68 65 20 61 73 73 r.and.tries.to.solve.all.the.ass
6ae0 69 67 6e 65 64 00 20 20 2f 2a 2a 00 00 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 62 6f 6f 6c igned.../**....static.const.bool
6b00 20 64 5f 64 6f 43 6f 6e 73 74 61 6e 74 50 72 6f 70 20 3d 20 74 72 75 65 3b 00 00 20 20 53 75 62 .d_doConstantProp.=.true;....Sub
6b20 73 74 69 74 75 74 69 6f 6e 4d 61 70 20 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 stitutionMap.d_topLevelSubstitut
6b40 69 6f 6e 73 3b 00 20 20 2f 2a 2a 20 54 68 65 20 74 6f 70 20 6c 65 76 65 6c 20 73 75 62 73 74 69 ions;.../**.The.top.level.substi
6b60 74 75 74 69 6f 6e 73 20 2a 2f 00 00 20 20 74 68 65 6f 72 79 3a 3a 61 72 69 74 68 3a 3a 50 73 65 tutions.*/....theory::arith::Pse
6b80 75 64 6f 42 6f 6f 6c 65 61 6e 50 72 6f 63 65 73 73 6f 72 20 64 5f 70 62 73 50 72 6f 63 65 73 73 udoBooleanProcessor.d_pbsProcess
6ba0 6f 72 3b 00 00 70 72 69 76 61 74 65 3a 00 00 20 20 52 65 6d 6f 76 65 54 65 72 6d 46 6f 72 6d 75 or;..private:....RemoveTermFormu
6bc0 6c 61 73 20 64 5f 69 74 65 52 65 6d 6f 76 65 72 3b 00 20 20 2f 2a 2a 20 49 6e 73 74 61 6e 63 65 las.d_iteRemover;.../**.Instance
6be0 20 6f 66 20 74 68 65 20 49 54 45 20 72 65 6d 6f 76 65 72 20 2a 2f 00 00 20 20 49 74 65 53 6b 6f .of.the.ITE.remover.*/....IteSko
6c00 6c 65 6d 4d 61 70 20 64 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 3b 00 20 20 20 2a 2f 00 20 20 20 lemMap.d_iteSkolemMap;....*/....
6c20 2a 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 69 6e 74 72 6f 64 75 63 65 64 20 42 6f 6f 6c 65 *.corresponding.introduced.Boole
6c40 61 6e 20 69 74 65 00 20 20 20 2a 20 4d 61 70 20 66 72 6f 6d 20 73 6b 6f 6c 65 6d 20 76 61 72 69 an.ite....*.Map.from.skolem.vari
6c60 61 62 6c 65 73 20 74 6f 20 69 6e 64 65 78 20 69 6e 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 20 63 ables.to.index.in.d_assertions.c
6c80 6f 6e 74 61 69 6e 69 6e 67 00 20 20 2f 2a 2a 00 70 75 62 6c 69 63 3a 00 00 20 20 2f 2f 62 6f 6f ontaining.../**.public:....//boo
6ca0 6c 20 64 5f 6e 65 65 64 73 43 6f 6e 73 74 72 61 69 6e 53 75 62 54 79 70 65 73 3b 00 20 20 2f 2f l.d_needsConstrainSubTypes;...//
6cc0 62 6f 6f 6c 20 64 5f 6e 65 65 64 73 52 65 77 72 69 74 65 42 6f 6f 6c 54 65 72 6d 73 3b 00 20 20 bool.d_needsRewriteBoolTerms;...
6ce0 2f 2f 62 6f 6f 6c 20 64 5f 6e 65 65 64 73 45 78 70 61 6e 64 44 65 66 73 3b 00 20 20 2f 2a 2a 20 //bool.d_needsExpandDefs;.../**.
6d00 54 4f 44 4f 3a 20 77 68 65 74 68 65 72 20 63 65 72 74 61 69 6e 20 70 72 65 70 72 6f 63 65 73 73 TODO:.whether.certain.preprocess
6d20 20 73 74 65 70 73 20 61 72 65 20 6e 65 63 65 73 73 61 72 79 20 2a 2f 00 00 20 20 75 6e 73 69 67 .steps.are.necessary.*/....unsig
6d40 6e 65 64 20 64 5f 73 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 44 65 70 74 68 3b 00 20 ned.d_simplifyAssertionsDepth;..
6d60 20 20 2a 2f 00 20 20 2f 2a 2a 20 4e 75 6d 62 65 72 20 6f 66 20 63 61 6c 6c 73 20 6f 66 20 73 69 ..*/.../**.Number.of.calls.of.si
6d80 6d 70 6c 69 66 79 20 61 73 73 65 72 74 69 6f 6e 73 20 61 63 74 69 76 65 2e 00 00 20 20 4e 6f 64 mplify.assertions.active.....Nod
6da0 65 54 6f 4e 6f 64 65 48 61 73 68 4d 61 70 20 64 5f 61 62 73 74 72 61 63 74 56 61 6c 75 65 73 3b eToNodeHashMap.d_abstractValues;
6dc0 00 20 20 20 2a 2f 00 20 20 20 2a 20 6f 70 74 69 6f 6e 73 3a 3a 61 62 73 74 72 61 63 74 56 61 6c ....*/....*.options::abstractVal
6de0 75 65 73 28 29 20 69 73 20 6f 6e 2e 00 20 20 20 2a 20 73 61 6d 65 20 41 62 73 74 72 61 63 74 56 ues().is.on.....*.same.AbstractV
6e00 61 6c 75 65 73 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20 72 65 61 6c 20 63 6f 6e 73 74 61 6e 74 alues.for.the.same.real.constant
6e20 73 2e 20 20 4f 6e 6c 79 20 75 73 65 64 20 69 66 00 20 20 20 2a 20 77 65 27 76 65 20 68 61 6e 64 s...Only.used.if....*.we've.hand
6e40 65 64 20 6f 75 74 2e 20 20 54 68 69 73 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 65 6e ed.out...This.is.necessary.to.en
6e60 73 75 72 65 20 74 68 61 74 20 77 65 20 67 69 76 65 20 74 68 65 00 20 20 20 2a 20 41 20 6d 61 70 sure.that.we.give.the....*.A.map
6e80 70 69 6e 67 20 6f 66 20 61 6c 6c 20 61 62 73 74 72 61 63 74 20 76 61 6c 75 65 73 20 28 61 63 74 ping.of.all.abstract.values.(act
6ea0 75 61 6c 20 76 61 6c 75 65 20 7c 2d 3e 20 61 62 73 74 72 61 63 74 29 20 74 68 61 74 00 20 20 2f ual.value.|->.abstract).that.../
6ec0 2a 2a 00 00 20 20 53 75 62 73 74 69 74 75 74 69 6f 6e 4d 61 70 20 64 5f 61 62 73 74 72 61 63 74 **....SubstitutionMap.d_abstract
6ee0 56 61 6c 75 65 4d 61 70 3b 00 20 20 20 2a 2f 00 20 20 20 2a 20 6f 70 74 69 6f 6e 73 3a 3a 61 62 ValueMap;....*/....*.options::ab
6f00 73 74 72 61 63 74 56 61 6c 75 65 73 28 29 20 69 73 20 6f 6e 2e 00 20 20 20 2a 20 41 20 6d 61 70 stractValues().is.on.....*.A.map
6f20 20 6f 66 20 41 62 73 72 61 63 74 56 61 6c 75 65 73 20 74 6f 20 74 68 65 69 72 20 61 63 74 75 61 .of.AbsractValues.to.their.actua
6f40 6c 20 63 6f 6e 73 74 61 6e 74 73 2e 20 20 4f 6e 6c 79 20 75 73 65 64 20 69 66 00 20 20 2f 2a 2a l.constants...Only.used.if.../**
6f60 00 00 20 20 63 6f 6e 74 65 78 74 3a 3a 43 6f 6e 74 65 78 74 20 64 5f 66 61 6b 65 43 6f 6e 74 65 ....context::Context.d_fakeConte
6f80 78 74 3b 00 20 20 20 2a 2f 00 20 20 20 2a 20 53 75 62 73 74 69 74 75 74 69 6f 6e 4d 61 70 73 29 xt;....*/....*.SubstitutionMaps)
6fa0 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 22 67 6c 6f 62 61 6c 22 2e 00 20 20 20 2a 20 41 .that.should.be."global".....*.A
6fc0 20 63 6f 6e 74 65 78 74 20 74 68 61 74 20 6e 65 76 65 72 20 70 75 73 68 65 73 2f 70 6f 70 73 2c .context.that.never.pushes/pops,
6fe0 20 66 6f 72 20 75 73 65 20 62 79 20 43 44 20 73 74 72 75 63 74 75 72 65 73 20 28 6c 69 6b 65 00 .for.use.by.CD.structures.(like.
7000 61 64 00 00 15 00 00 00 99 01 00 00 00 10 00 00 5a 00 00 00 00 00 00 00 c3 0f 00 00 c2 0f 00 00 ad..............Z...............
7020 ba 0f 00 00 b9 0f 00 00 94 0f 00 00 84 0f 00 00 65 0f 00 00 43 0f 00 00 27 0f 00 00 0d 0f 00 00 ................e...C...'.......
7040 d0 0e 00 00 ad 0e 00 00 91 0e 00 00 56 0e 00 00 32 0e 00 00 1e 0e 00 00 e9 0d 00 00 b9 0d 00 00 ............V...2...............
7060 a4 0d 00 00 7c 0d 00 00 64 0d 00 00 42 0d 00 00 23 0d 00 00 fe 0c 00 00 d1 0c 00 00 bb 0c 00 00 ....|...d...B...#...............
7080 96 0c 00 00 6f 0c 00 00 40 0c 00 00 3c 0c 00 00 0c 0c 00 00 d6 0b 00 00 97 0b 00 00 96 0b 00 00 ....o...@...<...................
70a0 4c 0b 00 00 1e 0b 00 00 1d 0b 00 00 d3 0a 00 00 a5 0a 00 00 a4 0a 00 00 5a 0a 00 00 38 0a 00 00 L.......................Z...8...
70c0 01 0a 00 00 d0 09 00 00 cf 09 00 00 80 09 00 00 66 09 00 00 1f 09 00 00 d3 08 00 00 85 08 00 00 ................f...............
70e0 67 08 00 00 45 08 00 00 0c 08 00 00 dd 07 00 00 dc 07 00 00 b3 07 00 00 91 07 00 00 51 07 00 00 g...E.......................Q...
7100 1a 07 00 00 f8 06 00 00 ba 06 00 00 85 06 00 00 63 06 00 00 25 06 00 00 f0 05 00 00 ce 05 00 00 ................c...%...........
7120 96 05 00 00 6a 05 00 00 48 05 00 00 0c 05 00 00 dc 04 00 00 ba 04 00 00 76 04 00 00 28 04 00 00 ....j...H...............v...(...
7140 06 04 00 00 bf 03 00 00 6e 03 00 00 4c 03 00 00 11 03 00 00 c6 02 00 00 a4 02 00 00 6b 02 00 00 ........n...L...............k...
7160 22 02 00 00 1e 02 00 00 1d 02 00 00 fd 01 00 00 d9 01 00 00 d8 01 00 00 b6 01 00 00 99 01 00 00 "...............................
7180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 64 ...............................d
71a0 5f 70 72 6f 70 61 67 61 74 6f 72 2e 66 69 6e 69 73 68 28 29 3b 00 20 20 20 20 69 66 28 64 5f 70 _propagator.finish();.....if(d_p
71c0 72 6f 70 61 67 61 74 6f 72 4e 65 65 64 73 46 69 6e 69 73 68 29 20 7b 00 00 20 20 20 20 64 65 6c ropagatorNeedsFinish).{......del
71e0 65 74 65 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 74 69 6f 6e 73 3b 00 20 20 7e ete.d_listenerRegistrations;...~
7200 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 28 29 20 74 68 72 6f 77 28 29 20 7b 00 00 20 20 SmtEnginePrivate().throw().{....
7220 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 20 53 65 74 54 6f 44 65 66 61 75 6c 74 53 6f }.............new.SetToDefaultSo
7240 75 72 63 65 4c 69 73 74 65 6e 65 72 28 26 64 5f 6d 61 6e 61 67 65 64 52 65 70 6c 61 79 4c 6f 67 urceListener(&d_managedReplayLog
7260 29 2c 20 74 72 75 65 29 29 3b 00 20 20 20 20 20 20 20 20 6e 6f 64 65 4d 61 6e 61 67 65 72 4f 70 ),.true));.........nodeManagerOp
7280 74 69 6f 6e 73 2e 72 65 67 69 73 74 65 72 53 65 74 52 65 70 6c 61 79 4c 6f 67 46 69 6c 65 6e 61 tions.registerSetReplayLogFilena
72a0 6d 65 28 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 74 69 6f 6e 73 2d me(.....d_listenerRegistrations-
72c0 3e 61 64 64 28 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 20 53 65 74 54 6f 44 65 66 61 75 >add(.............new.SetToDefau
72e0 6c 74 53 6f 75 72 63 65 4c 69 73 74 65 6e 65 72 28 26 64 5f 6d 61 6e 61 67 65 64 44 75 6d 70 43 ltSourceListener(&d_managedDumpC
7300 68 61 6e 6e 65 6c 29 2c 20 74 72 75 65 29 29 3b 00 20 20 20 20 20 20 20 20 6e 6f 64 65 4d 61 6e hannel),.true));.........nodeMan
7320 61 67 65 72 4f 70 74 69 6f 6e 73 2e 72 65 67 69 73 74 65 72 44 75 6d 70 54 6f 46 69 6c 65 4e 61 agerOptions.registerDumpToFileNa
7340 6d 65 4c 69 73 74 65 6e 65 72 28 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 meListener(.....d_listenerRegist
7360 72 61 74 69 6f 6e 73 2d 3e 61 64 64 28 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 20 53 65 rations->add(.............new.Se
7380 74 54 6f 44 65 66 61 75 6c 74 53 6f 75 72 63 65 4c 69 73 74 65 6e 65 72 28 26 64 5f 6d 61 6e 61 tToDefaultSourceListener(&d_mana
73a0 67 65 64 44 69 61 67 6e 6f 73 74 69 63 43 68 61 6e 6e 65 6c 29 2c 20 74 72 75 65 29 29 3b 00 20 gedDiagnosticChannel),.true));..
73c0 20 20 20 20 20 20 20 6e 6f 64 65 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 2e 72 65 67 69 73 74 .......nodeManagerOptions.regist
73e0 65 72 53 65 74 44 69 61 67 6e 6f 73 74 69 63 4f 75 74 70 75 74 43 68 61 6e 6e 65 6c 4c 69 73 74 erSetDiagnosticOutputChannelList
7400 65 6e 65 72 28 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 74 69 6f 6e ener(.....d_listenerRegistration
7420 73 2d 3e 61 64 64 28 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 20 53 65 74 54 6f 44 65 66 s->add(.............new.SetToDef
7440 61 75 6c 74 53 6f 75 72 63 65 4c 69 73 74 65 6e 65 72 28 26 64 5f 6d 61 6e 61 67 65 64 52 65 67 aultSourceListener(&d_managedReg
7460 75 6c 61 72 43 68 61 6e 6e 65 6c 29 2c 20 74 72 75 65 29 29 3b 00 20 20 20 20 20 20 20 20 6e 6f ularChannel),.true));.........no
7480 64 65 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 2e 72 65 67 69 73 74 65 72 53 65 74 52 65 67 75 deManagerOptions.registerSetRegu
74a0 6c 61 72 4f 75 74 70 75 74 43 68 61 6e 6e 65 6c 4c 69 73 74 65 6e 65 72 28 00 20 20 20 20 64 5f larOutputChannelListener(.....d_
74c0 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 74 69 6f 6e 73 2d 3e 61 64 64 28 00 20 20 20 20 listenerRegistrations->add(.....
74e0 20 20 20 20 20 20 20 20 6e 65 77 20 50 72 69 6e 74 53 75 63 63 65 73 73 4c 69 73 74 65 6e 65 72 ........new.PrintSuccessListener
7500 28 29 2c 20 74 72 75 65 29 29 3b 00 20 20 20 20 20 20 20 20 6e 6f 64 65 4d 61 6e 61 67 65 72 4f (),.true));.........nodeManagerO
7520 70 74 69 6f 6e 73 2e 72 65 67 69 73 74 65 72 53 65 74 50 72 69 6e 74 53 75 63 63 65 73 73 4c 69 ptions.registerSetPrintSuccessLi
7540 73 74 65 6e 65 72 28 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 74 69 stener(.....d_listenerRegistrati
7560 6f 6e 73 2d 3e 61 64 64 28 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 20 44 75 6d 70 4d 6f ons->add(.............new.DumpMo
7580 64 65 4c 69 73 74 65 6e 65 72 28 29 2c 20 74 72 75 65 29 29 3b 00 20 20 20 20 20 20 20 20 6e 6f deListener(),.true));.........no
75a0 64 65 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 2e 72 65 67 69 73 74 65 72 53 65 74 44 75 6d 70 deManagerOptions.registerSetDump
75c0 4d 6f 64 65 4c 69 73 74 65 6e 65 72 28 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 ModeListener(.....d_listenerRegi
75e0 73 74 72 61 74 69 6f 6e 73 2d 3e 61 64 64 28 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 20 strations->add(.............new.
7600 53 65 74 50 72 69 6e 74 45 78 70 72 54 79 70 65 73 4c 69 73 74 65 6e 65 72 28 29 2c 20 74 72 75 SetPrintExprTypesListener(),.tru
7620 65 29 29 3b 00 20 20 20 20 20 20 20 20 6e 6f 64 65 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 2e e));.........nodeManagerOptions.
7640 72 65 67 69 73 74 65 72 53 65 74 50 72 69 6e 74 45 78 70 72 54 79 70 65 73 4c 69 73 74 65 6e 65 registerSetPrintExprTypesListene
7660 72 28 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 74 69 6f 6e 73 2d 3e r(.....d_listenerRegistrations->
7680 61 64 64 28 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 20 53 65 74 44 65 66 61 75 6c 74 45 add(.............new.SetDefaultE
76a0 78 70 72 44 61 67 4c 69 73 74 65 6e 65 72 28 29 2c 20 74 72 75 65 29 29 3b 00 20 20 20 20 20 20 xprDagListener(),.true));.......
76c0 20 20 6e 6f 64 65 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 2e 72 65 67 69 73 74 65 72 53 65 74 ..nodeManagerOptions.registerSet
76e0 44 65 66 61 75 6c 74 45 78 70 72 44 61 67 4c 69 73 74 65 6e 65 72 28 00 20 20 20 20 64 5f 6c 69 DefaultExprDagListener(.....d_li
7700 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 74 69 6f 6e 73 2d 3e 61 64 64 28 00 20 20 20 20 20 20 stenerRegistrations->add(.......
7720 20 20 20 20 20 20 6e 65 77 20 53 65 74 44 65 66 61 75 6c 74 45 78 70 72 44 65 70 74 68 4c 69 73 ......new.SetDefaultExprDepthLis
7740 74 65 6e 65 72 28 29 2c 20 74 72 75 65 29 29 3b 00 20 20 20 20 20 20 20 20 6e 6f 64 65 4d 61 6e tener(),.true));.........nodeMan
7760 61 67 65 72 4f 70 74 69 6f 6e 73 2e 72 65 67 69 73 74 65 72 53 65 74 44 65 66 61 75 6c 74 45 78 agerOptions.registerSetDefaultEx
7780 70 72 44 65 70 74 68 4c 69 73 74 65 6e 65 72 28 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 prDepthListener(.....d_listenerR
77a0 65 67 69 73 74 72 61 74 69 6f 6e 73 2d 3e 61 64 64 28 00 20 20 20 20 2f 2f 20 54 68 65 73 65 20 egistrations->add(.....//.These.
77c0 64 6f 20 6e 65 65 64 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 63 61 6c 6c 73 2e 00 00 20 20 20 do.need.registration.calls......
77e0 20 20 20 20 20 20 20 20 20 6e 65 77 20 42 65 66 6f 72 65 53 65 61 72 63 68 4c 69 73 74 65 6e 65 .........new.BeforeSearchListene
7800 72 28 64 5f 73 6d 74 29 29 29 3b 00 20 20 20 20 20 20 20 20 6e 6f 64 65 4d 61 6e 61 67 65 72 4f r(d_smt)));.........nodeManagerO
7820 70 74 69 6f 6e 73 2e 72 65 67 69 73 74 65 72 42 65 66 6f 72 65 53 65 61 72 63 68 4c 69 73 74 65 ptions.registerBeforeSearchListe
7840 6e 65 72 28 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 74 69 6f 6e 73 ner(.....d_listenerRegistrations
7860 2d 3e 61 64 64 28 00 20 20 20 20 2f 2f 20 6e 6f 74 20 68 61 76 65 20 74 6f 20 62 65 20 63 61 6c ->add(.....//.not.have.to.be.cal
7880 6c 65 64 2e 00 20 20 20 20 2f 2f 20 74 69 6d 65 2e 20 54 68 65 72 65 66 6f 72 65 20 74 68 65 20 led......//.time..Therefore.the.
78a0 42 65 66 6f 72 65 53 65 61 72 63 68 4c 69 73 74 65 6e 65 72 20 69 73 20 61 20 6e 6f 2d 6f 70 2e BeforeSearchListener.is.a.no-op.
78c0 20 54 68 65 72 65 66 6f 72 65 20 69 74 20 64 6f 65 73 00 20 20 20 20 2f 2f 20 72 65 67 69 73 74 .Therefore.it.does.....//.regist
78e0 72 61 74 69 6f 6e 20 74 69 6d 65 2e 20 54 68 69 73 20 64 5f 73 6d 74 20 63 61 6e 6e 6f 74 20 62 ration.time..This.d_smt.cannot.b
7900 65 20 62 65 66 6f 72 65 53 65 61 72 63 68 20 61 74 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e 00 20 e.beforeSearch.at.construction..
7920 20 20 20 2f 2f 20 57 65 20 63 61 6e 20 73 61 66 65 6c 79 20 6e 6f 74 20 63 61 6c 6c 20 6e 6f 74 ...//.We.can.safely.not.call.not
7940 69 66 79 20 6f 6e 20 74 68 69 73 20 62 65 66 6f 72 65 20 73 65 61 72 63 68 20 6c 69 73 74 65 6e ify.on.this.before.search.listen
7960 65 72 20 61 74 00 20 20 20 20 2f 2f 20 65 78 74 72 61 20 62 69 74 20 6f 66 20 63 61 72 65 2e 00 er.at.....//.extra.bit.of.care..
7980 20 20 20 20 2f 2f 20 4d 75 6c 74 69 70 6c 65 20 6f 70 74 69 6f 6e 73 20 72 65 75 73 65 20 42 65 ....//.Multiple.options.reuse.Be
79a0 66 6f 72 65 53 65 61 72 63 68 4c 69 73 74 65 6e 65 72 20 73 6f 20 72 65 67 69 73 74 72 61 74 69 foreSearchListener.so.registrati
79c0 6f 6e 20 72 65 71 75 69 72 65 73 20 61 6e 00 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 20 on.requires.an..............new.
79e0 53 65 74 4c 6f 67 69 63 4c 69 73 74 65 6e 65 72 28 64 5f 73 6d 74 29 2c 20 74 72 75 65 29 29 3b SetLogicListener(d_smt),.true));
7a00 00 20 20 20 20 20 20 20 20 6e 6f 64 65 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 2e 72 65 67 69 .........nodeManagerOptions.regi
7a20 73 74 65 72 46 6f 72 63 65 4c 6f 67 69 63 4c 69 73 74 65 6e 65 72 28 00 20 20 20 20 64 5f 6c 69 sterForceLogicListener(.....d_li
7a40 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 74 69 6f 6e 73 2d 3e 61 64 64 28 00 20 20 20 20 4f 70 stenerRegistrations->add(.....Op
7a60 74 69 6f 6e 73 26 20 6e 6f 64 65 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 20 3d 20 4e 6f 64 65 tions&.nodeManagerOptions.=.Node
7a80 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 Manager::currentNM()->getOptions
7aa0 28 29 3b 00 00 20 20 20 20 20 20 20 20 6e 65 77 20 48 61 72 64 52 65 73 6f 75 72 63 65 4f 75 74 ();..........new.HardResourceOut
7ac0 4c 69 73 74 65 6e 65 72 28 64 5f 73 6d 74 29 29 29 3b 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 Listener(d_smt)));.....d_listene
7ae0 72 52 65 67 69 73 74 72 61 74 69 6f 6e 73 2d 3e 61 64 64 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 rRegistrations->add(d_resourceMa
7b00 6e 61 67 65 72 2d 3e 72 65 67 69 73 74 65 72 48 61 72 64 4c 69 73 74 65 6e 65 72 28 00 00 20 20 nager->registerHardListener(....
7b20 20 20 20 20 20 20 6e 65 77 20 53 6f 66 74 52 65 73 6f 75 72 63 65 4f 75 74 4c 69 73 74 65 6e 65 ......new.SoftResourceOutListene
7b40 72 28 64 5f 73 6d 74 29 29 29 3b 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 r(d_smt)));.....d_listenerRegist
7b60 72 61 74 69 6f 6e 73 2d 3e 61 64 64 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2d 3e rations->add(d_resourceManager->
7b80 72 65 67 69 73 74 65 72 53 6f 66 74 4c 69 73 74 65 6e 65 72 28 00 00 20 20 20 20 64 5f 72 65 73 registerSoftListener(......d_res
7ba0 6f 75 72 63 65 4d 61 6e 61 67 65 72 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 ourceManager.=.NodeManager::curr
7bc0 65 6e 74 52 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 28 29 3b 00 20 20 20 20 64 5f 74 72 75 65 entResourceManager();.....d_true
7be0 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 .=.NodeManager::currentNM()->mkC
7c00 6f 6e 73 74 28 74 72 75 65 29 3b 00 20 20 20 20 64 5f 73 6d 74 2e 64 5f 6e 6f 64 65 4d 61 6e 61 onst(true);.....d_smt.d_nodeMana
7c20 67 65 72 2d 3e 73 75 62 73 63 72 69 62 65 45 76 65 6e 74 73 28 74 68 69 73 29 3b 00 20 20 7b 00 ger->subscribeEvents(this);...{.
7c40 20 20 20 20 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 28 73 6d 74 2e ....d_topLevelSubstitutions(smt.
7c60 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 29 00 20 20 20 20 64 5f 70 62 73 50 72 6f 63 65 73 73 6f d_userContext).....d_pbsProcesso
7c80 72 28 73 6d 74 2e 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 29 2c 00 20 20 20 20 64 5f 69 74 65 52 r(smt.d_userContext),.....d_iteR
7ca0 65 6d 6f 76 65 72 28 73 6d 74 2e 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 29 2c 00 20 20 20 20 64 emover(smt.d_userContext),.....d
7cc0 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 28 29 2c 00 20 20 20 20 2f 2f 64 5f 6e 65 65 64 73 43 6f _iteSkolemMap(),.....//d_needsCo
7ce0 6e 73 74 72 61 69 6e 53 75 62 54 79 70 65 73 28 74 72 75 65 29 2c 20 2f 2f 54 4f 44 4f 00 20 20 nstrainSubTypes(true),.//TODO...
7d00 20 20 2f 2f 64 5f 6e 65 65 64 73 52 65 77 72 69 74 65 42 6f 6f 6c 54 65 72 6d 73 28 74 72 75 65 ..//d_needsRewriteBoolTerms(true
7d20 29 2c 00 20 20 20 20 2f 2f 64 5f 6e 65 65 64 73 45 78 70 61 6e 64 44 65 66 73 28 74 72 75 65 29 ),.....//d_needsExpandDefs(true)
7d40 2c 00 20 20 20 20 64 5f 73 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 44 65 70 74 68 28 ,.....d_simplifyAssertionsDepth(
7d60 30 29 2c 00 20 20 20 20 64 5f 61 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 29 2c 00 20 20 20 20 0),.....d_abstractValues(),.....
7d80 64 5f 61 62 73 74 72 61 63 74 56 61 6c 75 65 4d 61 70 28 26 64 5f 66 61 6b 65 43 6f 6e 74 65 78 d_abstractValueMap(&d_fakeContex
7da0 74 29 2c 00 20 20 20 20 64 5f 66 61 6b 65 43 6f 6e 74 65 78 74 28 29 2c 00 20 20 20 20 64 5f 73 t),.....d_fakeContext(),.....d_s
7dc0 75 62 73 74 69 74 75 74 69 6f 6e 73 49 6e 64 65 78 28 73 6d 74 2e 64 5f 75 73 65 72 43 6f 6e 74 ubstitutionsIndex(smt.d_userCont
7de0 65 78 74 2c 20 30 29 2c 00 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 50 72 6f 63 65 73 73 ext,.0),.....d_assertionsProcess
7e00 65 64 28 73 6d 74 2e 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2c 20 66 61 6c 73 65 29 2c 00 20 20 ed(smt.d_userContext,.false),...
7e20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 28 29 2c 00 20 20 20 20 64 5f 70 72 6f 70 61 67 61 74 ..d_assertions(),.....d_propagat
7e40 6f 72 4e 65 65 64 73 46 69 6e 69 73 68 28 66 61 6c 73 65 29 2c 00 20 20 20 20 64 5f 70 72 6f 70 orNeedsFinish(false),.....d_prop
7e60 61 67 61 74 6f 72 28 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 6e 65 64 4c 69 74 65 72 61 agator(d_nonClausalLearnedLitera
7e80 6c 73 2c 20 74 72 75 65 2c 20 74 72 75 65 29 2c 00 20 20 20 20 64 5f 72 65 61 6c 41 73 73 65 72 ls,.true,.true),.....d_realAsser
7ea0 74 69 6f 6e 73 45 6e 64 28 30 29 2c 00 20 20 20 20 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 tionsEnd(0),.....d_nonClausalLea
7ec0 72 6e 65 64 4c 69 74 65 72 61 6c 73 28 29 2c 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 rnedLiterals(),.....d_listenerRe
7ee0 67 69 73 74 72 61 74 69 6f 6e 73 28 6e 65 77 20 4c 69 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 gistrations(new.ListenerRegistra
7f00 74 69 6f 6e 4c 69 73 74 28 29 29 2c 00 20 20 20 20 64 5f 6d 61 6e 61 67 65 64 52 65 70 6c 61 79 tionList()),.....d_managedReplay
7f20 4c 6f 67 28 29 2c 00 20 20 20 20 64 5f 6d 61 6e 61 67 65 64 44 75 6d 70 43 68 61 6e 6e 65 6c 28 Log(),.....d_managedDumpChannel(
7f40 29 2c 00 20 20 20 20 64 5f 6d 61 6e 61 67 65 64 44 69 61 67 6e 6f 73 74 69 63 43 68 61 6e 6e 65 ),.....d_managedDiagnosticChanne
7f60 6c 28 29 2c 00 20 20 20 20 64 5f 6d 61 6e 61 67 65 64 52 65 67 75 6c 61 72 43 68 61 6e 6e 65 6c l(),.....d_managedRegularChannel
7f80 28 29 2c 00 20 20 20 20 64 5f 73 6d 74 28 73 6d 74 29 2c 00 20 20 53 6d 74 45 6e 67 69 6e 65 50 (),.....d_smt(smt),...SmtEngineP
7fa0 72 69 76 61 74 65 28 53 6d 74 45 6e 67 69 6e 65 26 20 73 6d 74 29 20 3a 00 00 70 75 62 6c 69 63 rivate(SmtEngine&.smt).:..public
7fc0 3a 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :...............................
7fe0 20 20 20 20 20 55 6e 73 61 66 65 49 6e 74 65 72 72 75 70 74 45 78 63 65 70 74 69 6f 6e 29 3b 00 .....UnsafeInterruptException);.
8000 61 64 00 00 0b 00 00 00 cf 01 00 00 00 10 00 00 6a 00 00 00 00 00 00 00 d9 0f 00 00 d3 0f 00 00 ad..............j...............
8020 a1 0f 00 00 9d 0f 00 00 9c 0f 00 00 56 0f 00 00 0e 0f 00 00 e0 0e 00 00 dc 0e 00 00 db 0e 00 00 ............V...................
8040 a5 0e 00 00 66 0e 00 00 4a 0e 00 00 23 0e 00 00 e7 0d 00 00 b7 0d 00 00 b1 0d 00 00 ad 0d 00 00 ....f...J...#...................
8060 ac 0d 00 00 7b 0d 00 00 3c 0d 00 00 fb 0c 00 00 d4 0c 00 00 ad 0c 00 00 a9 0c 00 00 a8 0c 00 00 ....{...<.......................
8080 63 0c 00 00 3b 0c 00 00 14 0c 00 00 10 0c 00 00 0f 0c 00 00 de 0b 00 00 9c 0b 00 00 73 0b 00 00 c...;.......................s...
80a0 3f 0b 00 00 08 0b 00 00 d8 0a 00 00 d2 0a 00 00 8e 0a 00 00 6f 0a 00 00 69 0a 00 00 65 0a 00 00 ?...................o...i...e...
80c0 64 0a 00 00 14 0a 00 00 df 09 00 00 be 09 00 00 95 09 00 00 61 09 00 00 31 09 00 00 f1 08 00 00 d...................a...1.......
80e0 eb 08 00 00 b4 08 00 00 72 08 00 00 6c 08 00 00 28 08 00 00 09 08 00 00 03 08 00 00 ff 07 00 00 ........r...l...(...............
8100 fe 07 00 00 d9 07 00 00 a6 07 00 00 a2 07 00 00 a1 07 00 00 73 07 00 00 30 07 00 00 2c 07 00 00 ....................s...0...,...
8120 2b 07 00 00 25 07 00 00 f0 06 00 00 ea 06 00 00 ce 06 00 00 cd 06 00 00 c7 06 00 00 7a 06 00 00 +...%.......................z...
8140 2d 06 00 00 f4 05 00 00 ee 05 00 00 d9 05 00 00 bf 05 00 00 96 05 00 00 79 05 00 00 5d 05 00 00 -.......................y...]...
8160 59 05 00 00 58 05 00 00 52 05 00 00 0e 05 00 00 ce 04 00 00 92 04 00 00 4c 04 00 00 33 04 00 00 Y...X...R...............L...3...
8180 f3 03 00 00 ed 03 00 00 ab 03 00 00 79 03 00 00 78 03 00 00 56 03 00 00 1a 03 00 00 e8 02 00 00 ............y...x...V...........
81a0 9a 02 00 00 99 02 00 00 93 02 00 00 51 02 00 00 22 02 00 00 1c 02 00 00 00 02 00 00 cf 01 00 00 ............Q..."...............
81c0 42 02 00 00 23 02 00 00 05 02 00 00 04 02 00 20 20 20 20 2f 2f 20 53 75 62 73 74 69 74 75 74 65 B...#..............//.Substitute
81e0 20 6f 75 74 20 61 6e 79 20 61 62 73 74 72 61 63 74 20 76 61 6c 75 65 73 20 69 6e 20 65 78 2e 00 .out.any.abstract.values.in.ex..
8200 20 20 4e 6f 64 65 20 73 69 6d 70 6c 69 66 79 28 54 4e 6f 64 65 20 69 6e 29 20 7b 00 20 20 20 2a ..Node.simplify(TNode.in).{....*
8220 2f 00 20 20 20 2a 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 20 6c 65 61 72 6e 65 64 20 66 72 6f /....*.substitutions.learned.fro
8240 6d 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 2e 00 20 20 20 2a 20 53 69 6d 70 6c 69 66 79 20 6e m.preprocessing.....*.Simplify.n
8260 6f 64 65 20 22 69 6e 22 20 62 79 20 65 78 70 61 6e 64 69 6e 67 20 64 65 66 69 6e 69 74 69 6f 6e ode."in".by.expanding.definition
8280 73 20 61 6e 64 20 61 70 70 6c 79 69 6e 67 20 61 6e 79 00 20 20 2f 2a 2a 00 00 20 20 20 20 20 20 s.and.applying.any.../**........
82a0 74 68 72 6f 77 28 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 throw(TypeCheckingException,.Log
82c0 69 63 45 78 63 65 70 74 69 6f 6e 2c 20 55 6e 73 61 66 65 49 6e 74 65 72 72 75 70 74 45 78 63 65 icException,.UnsafeInterruptExce
82e0 70 74 69 6f 6e 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ption);.........................
8300 20 62 6f 6f 6c 20 65 78 70 61 6e 64 4f 6e 6c 79 20 3d 20 66 61 6c 73 65 29 00 20 20 4e 6f 64 65 .bool.expandOnly.=.false)...Node
8320 20 65 78 70 61 6e 64 44 65 66 69 6e 69 74 69 6f 6e 73 28 54 4e 6f 64 65 20 6e 2c 20 4e 6f 64 65 .expandDefinitions(TNode.n,.Node
8340 54 6f 4e 6f 64 65 48 61 73 68 4d 61 70 26 20 63 61 63 68 65 2c 00 20 20 2f 2a 2a 20 45 78 70 61 ToNodeHashMap&.cache,.../**.Expa
8360 6e 64 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 69 6e 20 6e 2e 20 2a 2f 00 00 20 20 20 20 74 68 72 nd.definitions.in.n..*/......thr
8380 6f 77 28 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 ow(TypeCheckingException,.LogicE
83a0 78 63 65 70 74 69 6f 6e 29 3b 00 20 20 76 6f 69 64 20 61 64 64 46 6f 72 6d 75 6c 61 28 54 4e 6f xception);...void.addFormula(TNo
83c0 64 65 20 6e 2c 20 62 6f 6f 6c 20 69 6e 55 6e 73 61 74 43 6f 72 65 2c 20 62 6f 6f 6c 20 69 6e 49 de.n,.bool.inUnsatCore,.bool.inI
83e0 6e 70 75 74 20 3d 20 74 72 75 65 29 00 20 20 20 2a 2f 00 20 20 20 2a 20 74 68 65 20 32 6e 64 20 nput.=.true)....*/....*.the.2nd.
8400 61 6e 64 20 33 72 64 20 61 72 67 75 6d 65 6e 74 73 20 61 64 64 65 64 20 66 6f 72 20 62 6f 6f 6b and.3rd.arguments.added.for.book
8420 6b 65 65 70 69 6e 67 20 66 6f 72 20 70 72 6f 6f 66 73 00 20 20 20 2a 20 65 76 65 6e 20 62 65 20 keeping.for.proofs....*.even.be.
8440 73 69 6d 70 6c 69 66 69 65 64 2e 00 20 20 20 2a 20 69 6d 6d 65 64 69 61 74 65 6c 79 2c 20 6f 72 simplified.....*.immediately,.or
8460 20 69 74 20 6d 69 67 68 74 20 62 65 20 73 69 6d 70 6c 69 66 69 65 64 20 61 6e 64 20 6b 65 70 74 .it.might.be.simplified.and.kept
8480 2c 20 6f 72 20 69 74 20 6d 69 67 68 74 20 6e 6f 74 00 20 20 20 2a 20 66 6f 72 6d 75 6c 61 20 6d ,.or.it.might.not....*.formula.m
84a0 69 67 68 74 20 62 65 20 70 75 73 68 65 64 20 6f 75 74 20 74 6f 20 74 68 65 20 70 72 6f 70 6f 73 ight.be.pushed.out.to.the.propos
84c0 69 74 69 6f 6e 61 6c 20 6c 61 79 65 72 00 20 20 20 2a 20 74 68 65 20 53 69 6d 70 6c 69 66 69 63 itional.layer....*.the.Simplific
84e0 61 74 69 6f 6e 4d 6f 64 65 20 28 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 4f 70 74 69 6f 6e ationMode.(in.the.current.Option
8500 73 20 73 63 6f 70 65 29 3b 20 74 68 65 00 20 20 20 2a 20 41 64 64 73 20 61 20 66 6f 72 6d 75 6c s.scope);.the....*.Adds.a.formul
8520 61 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6e 74 65 78 74 2e 20 20 41 63 74 69 6f a.to.the.current.context...Actio
8540 6e 20 68 65 72 65 20 64 65 70 65 6e 64 73 20 6f 6e 00 20 20 2f 2a 2a 00 00 20 20 7d 00 20 20 20 n.here.depends.on.../**....}....
8560 20 64 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 2e 63 6c 65 61 72 28 29 3b 00 20 20 20 20 64 5f 72 .d_iteSkolemMap.clear();.....d_r
8580 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 20 3d 20 30 3b 00 20 20 20 20 64 5f 6e 6f 6e 43 ealAssertionsEnd.=.0;.....d_nonC
85a0 6c 61 75 73 61 6c 4c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 2e 63 6c 65 61 72 28 29 3b 00 20 lausalLearnedLiterals.clear();..
85c0 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 63 6c 65 61 72 28 29 3b 00 20 20 76 6f 69 64 20 ...d_assertions.clear();...void.
85e0 6e 6f 74 69 66 79 50 6f 70 28 29 20 7b 00 20 20 20 2a 2f 00 20 20 20 2a 20 73 6f 6d 65 6f 6e 65 notifyPop().{....*/....*.someone
8600 20 64 6f 65 73 20 61 20 70 75 73 68 2d 61 73 73 65 72 74 2d 70 6f 70 20 77 69 74 68 6f 75 74 20 .does.a.push-assert-pop.without.
8620 61 20 63 68 65 63 6b 2d 73 61 74 2e 00 20 20 20 2a 20 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 a.check-sat.....*.SmtEnginePriva
8640 74 65 2e 20 20 4e 65 63 65 73 73 61 72 79 20 74 6f 20 63 6c 65 61 72 20 6f 75 74 20 6f 75 72 20 te...Necessary.to.clear.out.our.
8660 61 73 73 65 72 74 69 6f 6e 20 76 65 63 74 6f 72 73 20 69 6e 20 63 61 73 65 00 20 20 20 2a 20 50 assertion.vectors.in.case....*.P
8680 72 6f 63 65 73 73 20 61 20 75 73 65 72 20 70 6f 70 2e 20 20 43 6c 65 61 72 73 20 6f 75 74 20 74 rocess.a.user.pop...Clears.out.t
86a0 68 65 20 6e 6f 6e 2d 63 6f 6e 74 65 78 74 2d 64 65 70 65 6e 64 65 6e 74 20 73 74 75 66 66 20 69 he.non-context-dependent.stuff.i
86c0 6e 20 74 68 69 73 00 20 20 2f 2a 2a 00 00 20 20 76 6f 69 64 20 70 72 6f 63 65 73 73 41 73 73 65 n.this.../**....void.processAsse
86e0 72 74 69 6f 6e 73 28 29 3b 00 20 20 20 2a 2f 00 20 20 20 2a 20 50 72 6f 63 65 73 73 20 74 68 65 rtions();....*/....*.Process.the
8700 20 61 73 73 65 72 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65 20 62 65 65 6e 20 61 73 73 65 72 .assertions.that.have.been.asser
8720 74 65 64 2e 00 20 20 2f 2a 2a 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 52 65 77 72 69 ted..../**....}.....return.Rewri
8740 74 65 72 3a 3a 72 65 77 72 69 74 65 28 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 ter::rewrite(d_topLevelSubstitut
8760 69 6f 6e 73 2e 61 70 70 6c 79 28 6e 6f 64 65 29 29 3b 00 20 20 4e 6f 64 65 20 61 70 70 6c 79 53 ions.apply(node));...Node.applyS
8780 75 62 73 74 69 74 75 74 69 6f 6e 73 28 54 4e 6f 64 65 20 6e 6f 64 65 29 20 63 6f 6e 73 74 20 7b ubstitutions(TNode.node).const.{
87a0 00 00 20 20 7d 00 20 20 20 20 64 5f 73 6d 74 2e 64 5f 73 6d 74 41 74 74 72 69 62 75 74 65 73 2d ....}.....d_smt.d_smtAttributes-
87c0 3e 64 65 6c 65 74 65 41 6c 6c 41 74 74 72 69 62 75 74 65 73 28 6e 29 3b 00 20 20 76 6f 69 64 20 >deleteAllAttributes(n);...void.
87e0 6e 6d 4e 6f 74 69 66 79 44 65 6c 65 74 65 4e 6f 64 65 28 54 4e 6f 64 65 20 6e 29 20 7b 00 00 20 nmNotifyDeleteNode(TNode.n).{...
8800 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 62 6f 6f 6c 56 61 72 73 2e 70 75 73 68 5f 62 .}.....}.......d_boolVars.push_b
8820 61 63 6b 28 6e 29 3b 00 20 20 20 20 69 66 28 6e 2e 67 65 74 54 79 70 65 28 29 2e 69 73 42 6f 6f ack(n);.....if(n.getType().isBoo
8840 6c 65 61 6e 28 29 20 26 26 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 lean().&&.!options::incrementalS
8860 6f 6c 76 69 6e 67 28 29 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 73 6d 74 2e 61 64 olving()).{.....}.......d_smt.ad
8880 64 54 6f 4d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 41 6e 64 44 75 6d 70 28 63 2c 20 66 6c 61 67 73 2c dToModelCommandAndDump(c,.flags,
88a0 20 66 61 6c 73 65 2c 20 22 73 6b 6f 6c 65 6d 73 22 29 3b 00 20 20 20 20 69 66 28 28 66 6c 61 67 .false,."skolems");.....if((flag
88c0 73 20 26 20 45 78 70 72 4d 61 6e 61 67 65 72 3a 3a 56 41 52 5f 46 4c 41 47 5f 44 45 46 49 4e 45 s.&.ExprManager::VAR_FLAG_DEFINE
88e0 44 29 20 3d 3d 20 30 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 44 75 6d 70 28 22 73 6b 6f D).==.0).{.....}.......Dump("sko
8900 6c 65 6d 73 22 29 20 3c 3c 20 43 6f 6d 6d 65 6e 74 43 6f 6d 6d 61 6e 64 28 69 64 20 2b 20 22 20 lems").<<.CommentCommand(id.+.".
8920 69 73 20 22 20 2b 20 63 6f 6d 6d 65 6e 74 29 3b 00 20 20 20 20 69 66 28 44 75 6d 70 2e 69 73 4f is.".+.comment);.....if(Dump.isO
8940 6e 28 22 73 6b 6f 6c 65 6d 73 22 29 20 26 26 20 63 6f 6d 6d 65 6e 74 20 21 3d 20 22 22 29 20 7b n("skolems").&&.comment.!=."").{
8960 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 2e ..............................n.
8980 67 65 74 54 79 70 65 28 29 2e 74 6f 54 79 70 65 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 getType().toType());............
89a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 2e 74 6f 45 78 70 72 28 29 2c 00 20 20 ..................n.toExpr(),...
89c0 20 20 44 65 63 6c 61 72 65 46 75 6e 63 74 69 6f 6e 43 6f 6d 6d 61 6e 64 20 63 28 69 64 2c 00 20 ..DeclareFunctionCommand.c(id,..
89e0 20 20 20 73 74 72 69 6e 67 20 69 64 20 3d 20 6e 2e 67 65 74 41 74 74 72 69 62 75 74 65 28 65 78 ...string.id.=.n.getAttribute(ex
8a00 70 72 3a 3a 56 61 72 4e 61 6d 65 41 74 74 72 28 29 29 3b 00 20 20 76 6f 69 64 20 6e 6d 4e 6f 74 pr::VarNameAttr());...void.nmNot
8a20 69 66 79 4e 65 77 53 6b 6f 6c 65 6d 28 54 4e 6f 64 65 20 6e 2c 20 63 6f 6e 73 74 20 73 74 64 3a ifyNewSkolem(TNode.n,.const.std:
8a40 3a 73 74 72 69 6e 67 26 20 63 6f 6d 6d 65 6e 74 2c 20 75 69 6e 74 33 32 5f 74 20 66 6c 61 67 73 :string&.comment,.uint32_t.flags
8a60 29 20 7b 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 62 6f 6f 6c 56 61 72 73 2e ).{....}.....}.......d_boolVars.
8a80 70 75 73 68 5f 62 61 63 6b 28 6e 29 3b 00 20 20 20 20 69 66 28 6e 2e 67 65 74 54 79 70 65 28 29 push_back(n);.....if(n.getType()
8aa0 2e 69 73 42 6f 6f 6c 65 61 6e 28 29 20 26 26 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d .isBoolean().&&.!options::increm
8ac0 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f entalSolving()).{.....}.......d_
8ae0 73 6d 74 2e 61 64 64 54 6f 4d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 41 6e 64 44 75 6d 70 28 63 2c 20 smt.addToModelCommandAndDump(c,.
8b00 66 6c 61 67 73 29 3b 00 20 20 20 20 69 66 28 28 66 6c 61 67 73 20 26 20 45 78 70 72 4d 61 6e 61 flags);.....if((flags.&.ExprMana
8b20 67 65 72 3a 3a 56 41 52 5f 46 4c 41 47 5f 44 45 46 49 4e 45 44 29 20 3d 3d 20 30 29 20 7b 00 20 ger::VAR_FLAG_DEFINED).==.0).{..
8b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 2e 67 65 ............................n.ge
8b60 74 54 79 70 65 28 29 2e 74 6f 54 79 70 65 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 tType().toType());..............
8b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 2e 74 6f 45 78 70 72 28 29 2c 00 20 20 20 20 ................n.toExpr(),.....
8ba0 44 65 63 6c 61 72 65 46 75 6e 63 74 69 6f 6e 43 6f 6d 6d 61 6e 64 20 63 28 6e 2e 67 65 74 41 74 DeclareFunctionCommand.c(n.getAt
8bc0 74 72 69 62 75 74 65 28 65 78 70 72 3a 3a 56 61 72 4e 61 6d 65 41 74 74 72 28 29 29 2c 00 20 20 tribute(expr::VarNameAttr()),...
8be0 76 6f 69 64 20 6e 6d 4e 6f 74 69 66 79 4e 65 77 56 61 72 28 54 4e 6f 64 65 20 6e 2c 20 75 69 6e void.nmNotifyNewVar(TNode.n,.uin
8c00 74 33 32 5f 74 20 66 6c 61 67 73 29 20 7b 00 00 20 20 7d 00 20 20 20 20 64 5f 73 6d 74 2e 61 64 t32_t.flags).{....}.....d_smt.ad
8c20 64 54 6f 4d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 41 6e 64 44 75 6d 70 28 63 29 3b 00 20 20 20 20 44 dToModelCommandAndDump(c);.....D
8c40 61 74 61 74 79 70 65 44 65 63 6c 61 72 61 74 69 6f 6e 43 6f 6d 6d 61 6e 64 20 63 28 64 74 74 73 atatypeDeclarationCommand.c(dtts
8c60 29 3b 00 20 20 76 6f 69 64 20 6e 6d 4e 6f 74 69 66 79 4e 65 77 44 61 74 61 74 79 70 65 73 28 63 );...void.nmNotifyNewDatatypes(c
8c80 6f 6e 73 74 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 44 61 74 61 74 79 70 65 54 79 70 65 3e 26 20 onst.std::vector<DatatypeType>&.
8ca0 64 74 74 73 29 20 7b 00 00 20 20 7d 00 20 20 20 20 64 5f 73 6d 74 2e 61 64 64 54 6f 4d 6f 64 65 dtts).{....}.....d_smt.addToMode
8cc0 6c 43 6f 6d 6d 61 6e 64 41 6e 64 44 75 6d 70 28 63 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 lCommandAndDump(c);.............
8ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6e 2e 74 6f 54 79 70 65 28 29 29 3b 00 20 20 20 20 20 .............tn.toType());......
8d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6e 2e 67 65 74 41 74 74 72 69 62 ....................tn.getAttrib
8d20 75 74 65 28 65 78 70 72 3a 3a 53 6f 72 74 41 72 69 74 79 41 74 74 72 28 29 29 2c 00 20 20 20 20 ute(expr::SortArityAttr()),.....
8d40 44 65 63 6c 61 72 65 54 79 70 65 43 6f 6d 6d 61 6e 64 20 63 28 74 6e 2e 67 65 74 41 74 74 72 69 DeclareTypeCommand.c(tn.getAttri
8d60 62 75 74 65 28 65 78 70 72 3a 3a 56 61 72 4e 61 6d 65 41 74 74 72 28 29 29 2c 00 20 20 76 6f 69 bute(expr::VarNameAttr()),...voi
8d80 64 20 6e 6d 4e 6f 74 69 66 79 4e 65 77 53 6f 72 74 43 6f 6e 73 74 72 75 63 74 6f 72 28 54 79 70 d.nmNotifyNewSortConstructor(Typ
8da0 65 4e 6f 64 65 20 74 6e 29 20 7b 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 73 eNode.tn).{....}.....}.......d_s
8dc0 6d 74 2e 61 64 64 54 6f 4d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 41 6e 64 44 75 6d 70 28 63 2c 20 66 mt.addToModelCommandAndDump(c,.f
8de0 6c 61 67 73 29 3b 00 20 20 20 20 69 66 28 28 66 6c 61 67 73 20 26 20 45 78 70 72 4d 61 6e 61 67 lags);.....if((flags.&.ExprManag
8e00 65 72 3a 3a 53 4f 52 54 5f 46 4c 41 47 5f 50 4c 41 43 45 48 4f 4c 44 45 52 29 20 3d 3d 20 30 29 er::SORT_FLAG_PLACEHOLDER).==.0)
8e20 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6e 2e 74 .{..........................tn.t
8e40 6f 54 79 70 65 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oType());.......................
8e60 20 20 20 30 2c 00 20 20 20 20 44 65 63 6c 61 72 65 54 79 70 65 43 6f 6d 6d 61 6e 64 20 63 28 74 ...0,.....DeclareTypeCommand.c(t
8e80 6e 2e 67 65 74 41 74 74 72 69 62 75 74 65 28 65 78 70 72 3a 3a 56 61 72 4e 61 6d 65 41 74 74 72 n.getAttribute(expr::VarNameAttr
8ea0 28 29 29 2c 00 20 20 76 6f 69 64 20 6e 6d 4e 6f 74 69 66 79 4e 65 77 53 6f 72 74 28 54 79 70 65 ()),...void.nmNotifyNewSort(Type
8ec0 4e 6f 64 65 20 74 6e 2c 20 75 69 6e 74 33 32 5f 74 20 66 6c 61 67 73 29 20 7b 00 00 20 20 7d 00 Node.tn,.uint32_t.flags).{....}.
8ee0 20 20 20 20 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2d 3e 73 70 65 6e 64 52 65 73 6f ....d_resourceManager->spendReso
8f00 75 72 63 65 28 61 6d 6f 75 6e 74 29 3b 00 20 20 76 6f 69 64 20 73 70 65 6e 64 52 65 73 6f 75 72 urce(amount);...void.spendResour
8f20 63 65 28 75 6e 73 69 67 6e 65 64 20 61 6d 6f 75 6e 74 29 20 74 68 72 6f 77 28 55 6e 73 61 66 65 ce(unsigned.amount).throw(Unsafe
8f40 49 6e 74 65 72 72 75 70 74 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 20 20 52 65 73 6f 75 72 63 65 InterruptException).{...Resource
8f60 4d 61 6e 61 67 65 72 2a 20 67 65 74 52 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 28 29 20 7b 20 Manager*.getResourceManager().{.
8f80 72 65 74 75 72 6e 20 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 3b 20 7d 00 00 20 20 7d return.d_resourceManager;.}....}
8fa0 00 20 20 20 20 64 5f 73 6d 74 2e 64 5f 6e 6f 64 65 4d 61 6e 61 67 65 72 2d 3e 75 6e 73 75 62 73 .....d_smt.d_nodeManager->unsubs
8fc0 63 72 69 62 65 45 76 65 6e 74 73 28 74 68 69 73 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 cribeEvents(this);.....}.......d
8fe0 5f 70 72 6f 70 61 67 61 74 6f 72 4e 65 65 64 73 46 69 6e 69 73 68 20 3d 20 66 61 6c 73 65 3b 00 _propagatorNeedsFinish.=.false;.
9000 61 64 00 00 24 00 00 00 d0 01 00 00 00 10 00 00 64 00 00 00 00 00 00 00 e5 0f 00 00 c8 0f 00 00 ad..$...........d...............
9020 94 0f 00 00 60 0f 00 00 3a 0f 00 00 0f 0f 00 00 0b 0f 00 00 0a 0f 00 00 04 0f 00 00 d1 0e 00 00 ....`...:.......................
9040 cb 0e 00 00 a0 0e 00 00 5c 0e 00 00 16 0e 00 00 f9 0d 00 00 d1 0d 00 00 cd 0d 00 00 cc 0d 00 00 ........\.......................
9060 c6 0d 00 00 83 0d 00 00 48 0d 00 00 42 0d 00 00 20 0d 00 00 f9 0c 00 00 d4 0c 00 00 bd 0c 00 00 ........H...B...................
9080 7e 0c 00 00 4c 0c 00 00 46 0c 00 00 fa 0b 00 00 ca 0b 00 00 7c 0b 00 00 2b 0b 00 00 18 0b 00 00 ~...L...F...........|...+.......
90a0 14 0b 00 00 13 0b 00 00 e3 0a 00 00 bd 0a 00 00 6c 0a 00 00 6b 0a 00 00 35 0a 00 00 ff 09 00 00 ................l...k...5.......
90c0 c3 09 00 00 bd 09 00 00 ad 09 00 00 a7 09 00 00 a6 09 00 00 55 09 00 00 20 09 00 00 dc 08 00 00 ....................U...........
90e0 ab 08 00 00 7f 08 00 00 79 08 00 00 78 08 00 00 50 08 00 00 1a 08 00 00 f5 07 00 00 ed 07 00 00 ........y...x...P...............
9100 d4 07 00 00 ae 07 00 00 82 07 00 00 4f 07 00 00 3e 07 00 00 28 07 00 00 1e 07 00 00 e4 06 00 00 ............O...>...(...........
9120 a3 06 00 00 76 06 00 00 46 06 00 00 fb 05 00 00 e4 05 00 00 d5 05 00 00 bc 05 00 00 6e 05 00 00 ....v...F...................n...
9140 56 05 00 00 05 05 00 00 ed 04 00 00 9c 04 00 00 72 04 00 00 55 04 00 00 4d 04 00 00 47 04 00 00 V...............r...U...M...G...
9160 46 04 00 00 1e 04 00 00 e3 03 00 00 c1 03 00 00 bb 03 00 00 84 03 00 00 58 03 00 00 52 03 00 00 F.......................X...R...
9180 39 03 00 00 0f 03 00 00 c9 02 00 00 b8 02 00 00 b4 02 00 00 b3 02 00 00 76 02 00 00 2c 02 00 00 9.......................v...,...
91a0 0a 02 00 00 d0 01 00 00 d4 02 00 00 b1 02 00 00 b0 02 00 00 9b 02 00 00 85 02 00 00 6a 02 00 00 ............................j...
91c0 4e 02 00 00 2f 02 00 00 11 02 00 00 10 02 00 00 20 20 20 20 20 20 20 20 6e 6f 64 65 4d 61 6e 61 N.../...................nodeMana
91e0 67 65 72 4f 70 74 69 6f 6e 73 2e 72 65 67 69 73 74 65 72 55 73 65 54 68 65 6f 72 79 4c 69 73 74 gerOptions.registerUseTheoryList
9200 4c 69 73 74 65 6e 65 72 28 00 20 20 20 20 64 5f 6c 69 73 74 65 6e 65 72 52 65 67 69 73 74 72 61 Listener(.....d_listenerRegistra
9220 74 69 6f 6e 73 2d 3e 61 64 64 28 00 20 20 20 20 4f 70 74 69 6f 6e 73 26 20 6e 6f 64 65 4d 61 6e tions->add(.....Options&.nodeMan
9240 61 67 65 72 4f 70 74 69 6f 6e 73 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 agerOptions.=.NodeManager::curre
9260 6e 74 4e 4d 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b 00 20 20 76 6f 69 64 20 61 64 64 ntNM()->getOptions();...void.add
9280 55 73 65 54 68 65 6f 72 79 4c 69 73 74 4c 69 73 74 65 6e 65 72 28 54 68 65 6f 72 79 45 6e 67 69 UseTheoryListListener(TheoryEngi
92a0 6e 65 2a 20 74 68 65 6f 72 79 45 6e 67 69 6e 65 29 7b 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 ne*.theoryEngine){....}.....retu
92c0 72 6e 20 72 65 77 72 3b 00 20 20 20 20 54 72 61 63 65 28 22 72 65 77 72 69 74 65 41 70 70 6c 79 rn.rewr;.....Trace("rewriteApply
92e0 54 6f 43 6f 6e 73 74 22 29 20 3c 3c 20 22 62 75 69 6c 74 20 3a 3a 20 22 20 3c 3c 20 72 65 77 72 ToConst").<<."built.::.".<<.rewr
9300 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 64 5f 72 65 77 72 69 74 65 41 70 70 6c .<<.std::endl;.....d_rewriteAppl
9320 79 54 6f 43 6f 6e 73 74 43 61 63 68 65 5b 6e 5d 20 3d 20 72 65 77 72 3b 00 20 20 20 20 4e 6f 64 yToConstCache[n].=.rewr;.....Nod
9340 65 20 72 65 77 72 20 3d 20 62 75 69 6c 64 65 72 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 62 75 e.rewr.=.builder;.....}.......bu
9360 69 6c 64 65 72 20 3c 3c 20 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 28 6e 5b 69 ilder.<<.rewriteApplyToConst(n[i
9380 5d 29 3b 00 20 20 20 20 66 6f 72 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 ]);.....for(unsigned.i.=.0;.i.<.
93a0 6e 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 3b 20 2b 2b 69 29 20 7b 00 20 20 20 20 7d n.getNumChildren();.++i).{.....}
93c0 00 20 20 20 20 20 20 62 75 69 6c 64 65 72 20 3c 3c 20 6e 2e 67 65 74 4f 70 65 72 61 74 6f 72 28 .......builder.<<.n.getOperator(
93e0 29 3b 00 20 20 20 20 69 66 28 6e 2e 67 65 74 4d 65 74 61 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e );.....if(n.getMetaKind().==.kin
9400 64 3a 3a 6d 65 74 61 6b 69 6e 64 3a 3a 50 41 52 41 4d 45 54 45 52 49 5a 45 44 29 20 7b 00 20 20 d::metakind::PARAMETERIZED).{...
9420 20 20 4e 6f 64 65 42 75 69 6c 64 65 72 3c 3e 20 62 75 69 6c 64 65 72 28 6e 2e 67 65 74 4b 69 6e ..NodeBuilder<>.builder(n.getKin
9440 64 28 29 29 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 55 6e 68 d());......}.......}.........Unh
9460 61 6e 64 6c 65 64 28 73 73 2e 73 74 72 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 andled(ss.str());............<<.
9480 22 46 6f 75 6e 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 3a 20 22 20 3c 3c 20 6e 3b 00 20 20 20 20 "Found.application:.".<<.n;.....
94a0 20 20 20 20 20 20 20 3c 3c 20 22 64 6f 6d 61 69 6e 2c 20 61 6e 64 20 61 6c 6c 20 61 70 70 6c 69 .......<<."domain,.and.all.appli
94c0 63 61 74 69 6f 6e 73 20 61 72 65 20 74 6f 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 73 2e 22 20 cations.are.to.integer.values.".
94e0 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 00 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 73 74 64 3a 3a <<.std::endl............<<.std::
9500 65 6e 64 6c 00 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 69 74 20 6f 6e 6c 79 20 77 6f 72 6b endl............<<."it.only.work
9520 73 20 69 66 20 61 6c 6c 20 66 75 6e 63 74 69 6f 6e 20 73 79 6d 62 6f 6c 73 20 61 72 65 20 75 6e s.if.all.function.symbols.are.un
9540 61 72 79 20 61 6e 64 20 77 69 74 68 20 49 6e 74 65 67 65 72 22 00 20 20 20 20 20 20 20 20 20 20 ary.and.with.Integer"...........
9560 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 00 20 20 20 20 20 20 20 20 73 73 20 3c 3c 20 22 54 68 65 .<<.std::endl.........ss.<<."The
9580 20 72 65 77 72 69 74 65 2d 61 70 70 6c 79 2d 74 6f 2d 63 6f 6e 73 74 20 70 72 65 70 72 6f 63 65 .rewrite-apply-to-const.preproce
95a0 73 73 6f 72 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 6c 69 6d 69 74 65 64 3b 22 00 20 20 20 20 ssor.is.currently.limited;".....
95c0 20 20 20 20 73 74 72 69 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 20 20 20 20 20 20 7d 20 65 6c 73 ....stringstream.ss;.......}.els
95e0 65 20 7b 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 76 61 72 3b 00 20 20 20 20 20 e.{.........return.newvar;......
9600 20 20 20 54 72 61 63 65 28 22 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 22 29 20 ...Trace("rewriteApplyToConst").
9620 3c 3c 20 22 6d 61 64 65 20 3a 3a 20 22 20 3c 3c 20 6e 65 77 76 61 72 20 3c 3c 20 73 74 64 3a 3a <<."made.::.".<<.newvar.<<.std::
9640 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 64 5f 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f endl;.........d_rewriteApplyToCo
9660 6e 73 74 43 61 63 68 65 5b 6e 5d 20 3d 20 6e 65 77 76 61 72 3b 00 20 20 20 20 20 20 20 20 20 20 nstCache[n].=.newvar;...........
9680 20 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 53 4b 4f 4c 45 4d 5f 45 58 41 43 54 5f 4e 41 4d 45 ..NodeManager::SKOLEM_EXACT_NAME
96a0 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 73 73 2e 73 74 72 28 29 2c 20 6e 2e 67 65 74 54 79 );.............ss.str(),.n.getTy
96c0 70 65 28 29 2c 20 22 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 20 73 6b 6f 6c 65 pe(),."rewriteApplyToConst.skole
96e0 6d 22 2c 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 6e 65 77 76 61 72 20 3d 20 4e 6f 64 65 4d 61 m",.........Node.newvar.=.NodeMa
9700 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 53 6b 6f 6c 65 6d 28 00 20 20 nager::currentNM()->mkSkolem(...
9720 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 73 73 20 3c 3c 20 6e 5b 30 5d 3b 00 20 20 ......}...........ss.<<.n[0];...
9740 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 73 73 20 3c 3c 20 22 ......}.else.{...........ss.<<."
9760 6d 22 20 3c 3c 20 2d 6e 5b 30 5d 2e 67 65 74 43 6f 6e 73 74 3c 52 61 74 69 6f 6e 61 6c 3e 28 29 m".<<.-n[0].getConst<Rational>()
9780 3b 00 20 20 20 20 20 20 20 20 69 66 28 6e 5b 30 5d 2e 67 65 74 43 6f 6e 73 74 3c 52 61 74 69 6f ;.........if(n[0].getConst<Ratio
97a0 6e 61 6c 3e 28 29 20 3c 20 30 29 20 7b 00 20 20 20 20 20 20 20 20 73 73 20 3c 3c 20 6e 2e 67 65 nal>().<.0).{.........ss.<<.n.ge
97c0 74 4f 70 65 72 61 74 6f 72 28 29 20 3c 3c 20 22 5f 22 3b 00 20 20 20 20 20 20 20 20 73 74 72 69 tOperator().<<."_";.........stri
97e0 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 20 20 20 20 20 20 7b 00 20 20 20 20 20 20 20 20 20 6e 5b ngstream.ss;.......{..........n[
9800 30 5d 2e 67 65 74 54 79 70 65 28 29 2e 69 73 49 6e 74 65 67 65 72 28 29 29 00 20 20 20 20 20 20 0].getType().isInteger()).......
9820 69 66 28 6e 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 20 3d 3d 20 31 20 26 26 20 6e 5b if(n.getNumChildren().==.1.&&.n[
9840 30 5d 2e 69 73 43 6f 6e 73 74 28 29 20 26 26 00 20 20 20 20 69 66 28 6e 2e 67 65 74 4b 69 6e 64 0].isConst().&&.....if(n.getKind
9860 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 50 50 4c 59 5f 55 46 29 20 7b 00 00 20 20 20 20 7d 00 20 ().==.kind::APPLY_UF).{......}..
9880 20 20 20 20 20 72 65 74 75 72 6e 20 64 5f 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 .....return.d_rewriteApplyToCons
98a0 74 43 61 63 68 65 5b 6e 5d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tCache[n];......................
98c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 ..............<<.std::endl;.....
98e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ...............................<
9900 3c 20 64 5f 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 43 61 63 68 65 5b 6e 5d 00 <.d_rewriteApplyToConstCache[n].
9920 20 20 20 20 20 20 54 72 61 63 65 28 22 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 ......Trace("rewriteApplyToConst
9940 22 29 20 3c 3c 20 22 69 6e 20 63 61 63 68 65 20 3a 3a 20 22 00 20 20 20 20 69 66 28 64 5f 72 65 ").<<."in.cache.::.".....if(d_re
9960 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 43 61 63 68 65 2e 66 69 6e 64 28 6e 29 20 21 writeApplyToConstCache.find(n).!
9980 3d 20 64 5f 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 43 61 63 68 65 2e 65 6e 64 =.d_rewriteApplyToConstCache.end
99a0 28 29 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 3b 00 20 20 20 ()).{......}.......return.n;....
99c0 20 7b 00 20 20 20 20 20 20 20 6e 2e 67 65 74 4d 65 74 61 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e .{........n.getMetaKind().==.kin
99e0 64 3a 3a 6d 65 74 61 6b 69 6e 64 3a 3a 4e 55 4c 4c 41 52 59 5f 4f 50 45 52 41 54 4f 52 29 00 20 d::metakind::NULLARY_OPERATOR)..
9a00 20 20 20 20 20 20 6e 2e 67 65 74 4d 65 74 61 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 6d ......n.getMetaKind().==.kind::m
9a20 65 74 61 6b 69 6e 64 3a 3a 56 41 52 49 41 42 4c 45 20 7c 7c 00 20 20 20 20 69 66 28 6e 2e 67 65 etakind::VARIABLE.||.....if(n.ge
9a40 74 4d 65 74 61 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 6d 65 74 61 6b 69 6e 64 3a 3a 43 tMetaKind().==.kind::metakind::C
9a60 4f 4e 53 54 41 4e 54 20 7c 7c 00 00 20 20 20 20 54 72 61 63 65 28 22 72 65 77 72 69 74 65 41 70 ONSTANT.||......Trace("rewriteAp
9a80 70 6c 79 54 6f 43 6f 6e 73 74 22 29 20 3c 3c 20 22 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 plyToConst").<<."rewriteApplyToC
9aa0 6f 6e 73 74 20 3a 3a 20 22 20 3c 3c 20 6e 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 4e onst.::.".<<.n.<<.std::endl;...N
9ac0 6f 64 65 20 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 28 54 4e 6f 64 65 20 6e 29 ode.rewriteApplyToConst(TNode.n)
9ae0 20 7b 00 20 20 4e 6f 64 65 54 6f 4e 6f 64 65 48 61 73 68 4d 61 70 20 64 5f 72 65 77 72 69 74 65 .{...NodeToNodeHashMap.d_rewrite
9b00 41 70 70 6c 79 54 6f 43 6f 6e 73 74 43 61 63 68 65 3b 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 ApplyToConstCache;....}.....retu
9b20 72 6e 20 72 65 74 76 61 6c 3b 00 20 20 20 20 4e 6f 64 65 20 72 65 74 76 61 6c 20 3d 20 63 75 72 rn.retval;.....Node.retval.=.cur
9b40 72 65 6e 74 2d 3e 6d 6b 4e 6f 64 65 28 6b 69 6e 64 3a 3a 41 50 50 4c 59 5f 54 59 50 45 5f 41 53 rent->mkNode(kind::APPLY_TYPE_AS
9b60 43 52 49 50 54 49 4f 4e 2c 20 61 73 63 72 69 70 74 69 6f 6e 2c 20 76 61 6c 29 3b 00 20 20 20 20 CRIPTION,.ascription,.val);.....
9b80 4e 6f 64 65 20 61 73 63 72 69 70 74 69 6f 6e 20 3d 20 63 75 72 72 65 6e 74 2d 3e 6d 6b 43 6f 6e Node.ascription.=.current->mkCon
9ba0 73 74 28 41 73 63 72 69 70 74 69 6f 6e 54 79 70 65 28 6e 2e 67 65 74 54 79 70 65 28 29 2e 74 6f st(AscriptionType(n.getType().to
9bc0 54 79 70 65 28 29 29 29 3b 00 20 20 20 20 4e 6f 64 65 4d 61 6e 61 67 65 72 2a 20 63 75 72 72 65 Type()));.....NodeManager*.curre
9be0 6e 74 20 3d 20 64 5f 73 6d 74 2e 64 5f 6e 6f 64 65 4d 61 6e 61 67 65 72 3b 00 20 20 20 20 2f 2f nt.=.d_smt.d_nodeManager;.....//
9c00 20 57 65 20 61 72 65 20 73 75 70 70 6f 73 65 64 20 74 6f 20 61 73 63 72 69 62 65 20 74 79 70 65 .We.are.supposed.to.ascribe.type
9c20 73 20 74 6f 20 61 6c 6c 20 61 62 73 74 72 61 63 74 20 76 61 6c 75 65 73 20 74 68 61 74 20 67 6f s.to.all.abstract.values.that.go
9c40 20 6f 75 74 2e 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 61 62 73 74 72 61 63 74 56 61 6c 75 .out......}.......d_abstractValu
9c60 65 4d 61 70 2e 61 64 64 53 75 62 73 74 69 74 75 74 69 6f 6e 28 76 61 6c 2c 20 6e 29 3b 00 20 20 eMap.addSubstitution(val,.n);...
9c80 20 20 20 20 76 61 6c 20 3d 20 64 5f 73 6d 74 2e 64 5f 6e 6f 64 65 4d 61 6e 61 67 65 72 2d 3e 6d ....val.=.d_smt.d_nodeManager->m
9ca0 6b 41 62 73 74 72 61 63 74 56 61 6c 75 65 28 6e 2e 67 65 74 54 79 70 65 28 29 29 3b 00 20 20 20 kAbstractValue(n.getType());....
9cc0 20 69 66 28 76 61 6c 2e 69 73 4e 75 6c 6c 28 29 29 20 7b 00 20 20 20 20 4e 6f 64 65 26 20 76 61 .if(val.isNull()).{.....Node&.va
9ce0 6c 20 3d 20 64 5f 61 62 73 74 72 61 63 74 56 61 6c 75 65 73 5b 6e 5d 3b 00 20 20 20 20 41 73 73 l.=.d_abstractValues[n];.....Ass
9d00 65 72 74 28 6f 70 74 69 6f 6e 73 3a 3a 61 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 29 29 3b 00 ert(options::abstractValues());.
9d20 20 20 4e 6f 64 65 20 6d 6b 41 62 73 74 72 61 63 74 56 61 6c 75 65 28 54 4e 6f 64 65 20 6e 29 20 ..Node.mkAbstractValue(TNode.n).
9d40 7b 00 20 20 20 2a 2f 00 20 20 20 2a 20 43 61 6e 20 6f 6e 6c 79 20 75 73 65 20 74 68 69 73 20 69 {....*/....*.Can.only.use.this.i
9d60 66 20 6f 70 74 69 6f 6e 73 3a 3a 61 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 29 20 69 73 20 6f f.options::abstractValues().is.o
9d80 6e 2e 00 20 20 20 2a 20 4d 61 6b 65 20 61 20 6e 65 77 20 28 6f 72 20 72 65 74 75 72 6e 20 61 6e n.....*.Make.a.new.(or.return.an
9da0 20 65 78 69 73 74 69 6e 67 29 20 61 62 73 74 72 61 63 74 20 76 61 6c 75 65 20 66 6f 72 20 61 20 .existing).abstract.value.for.a.
9dc0 6e 6f 64 65 2e 00 20 20 2f 2a 2a 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 64 5f 61 62 node..../**....}.....return.d_ab
9de0 73 74 72 61 63 74 56 61 6c 75 65 4d 61 70 2e 61 70 70 6c 79 28 6e 29 3b 00 20 20 20 20 2f 2f 20 stractValueMap.apply(n);.....//.
9e00 73 6f 6d 65 20 61 62 73 74 72 61 63 74 20 76 61 6c 75 65 73 2e 00 20 20 20 20 2f 2f 20 73 69 6e some.abstract.values......//.sin
9e20 63 65 20 74 68 65 20 73 65 74 74 69 6e 67 20 6d 69 67 68 74 20 68 61 76 65 20 63 68 61 6e 67 65 ce.the.setting.might.have.change
9e40 64 20 61 66 74 65 72 20 77 65 20 61 6c 72 65 61 64 79 20 67 61 76 65 20 6f 75 74 00 20 20 20 20 d.after.we.already.gave.out.....
9e60 2f 2f 20 57 65 20 6e 65 65 64 20 74 6f 20 64 6f 20 74 68 69 73 20 65 76 65 6e 20 69 66 20 6f 70 //.We.need.to.do.this.even.if.op
9e80 74 69 6f 6e 73 3a 3a 61 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 29 20 69 73 20 6f 66 66 2c 00 tions::abstractValues().is.off,.
9ea0 20 20 4e 6f 64 65 20 73 75 62 73 74 69 74 75 74 65 41 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 ..Node.substituteAbstractValues(
9ec0 54 4e 6f 64 65 20 6e 29 20 7b 00 20 20 20 2a 2f 00 20 20 20 2a 20 53 75 62 73 74 69 74 75 74 65 TNode.n).{....*/....*.Substitute
9ee0 20 61 77 61 79 20 61 6c 6c 20 41 62 73 74 72 61 63 74 56 61 6c 75 65 73 20 69 6e 20 61 20 6e 6f .away.all.AbstractValues.in.a.no
9f00 64 65 2e 00 20 20 2f 2a 2a 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 61 70 70 6c 79 53 de..../**....}.....return.applyS
9f20 75 62 73 74 69 74 75 74 69 6f 6e 73 28 6e 29 2e 74 6f 45 78 70 72 28 29 3b 00 20 20 20 20 41 73 ubstitutions(n).toExpr();.....As
9f40 73 65 72 74 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 20 3d 3d 20 30 29 3b 00 sert(d_assertions.size().==.0);.
9f60 20 20 20 20 2f 2f 20 4d 61 6b 65 20 73 75 72 65 20 77 65 27 76 65 20 64 6f 6e 65 20 61 6c 6c 20 ....//.Make.sure.we've.done.all.
9f80 70 72 65 70 72 6f 63 65 73 73 69 6e 67 2c 20 65 74 63 2e 00 20 20 20 20 4e 6f 64 65 20 6e 20 3d preprocessing,.etc......Node.n.=
9fa0 20 65 78 70 61 6e 64 44 65 66 69 6e 69 74 69 6f 6e 73 28 69 6e 2c 20 63 61 63 68 65 29 2e 74 6f .expandDefinitions(in,.cache).to
9fc0 45 78 70 72 28 29 3b 00 20 20 20 20 4e 6f 64 65 54 6f 4e 6f 64 65 48 61 73 68 4d 61 70 20 63 61 Expr();.....NodeToNodeHashMap.ca
9fe0 63 68 65 3b 00 20 20 20 20 2f 2f 20 45 78 70 61 6e 64 20 64 65 66 69 6e 69 74 69 6f 6e 73 2e 00 che;.....//.Expand.definitions..
a000 61 64 00 00 00 00 00 00 c8 01 00 00 00 10 00 00 6b 00 00 00 00 00 00 00 c3 0f 00 00 bf 0f 00 00 ad..............k...............
a020 be 0f 00 00 97 0f 00 00 69 0f 00 00 65 0f 00 00 64 0f 00 00 45 0f 00 00 44 0f 00 00 29 0f 00 00 ........i...e...d...E...D...)...
a040 28 0f 00 00 f8 0e 00 00 dc 0e 00 00 ca 0e 00 00 a6 0e 00 00 91 0e 00 00 5f 0e 00 00 45 0e 00 00 (......................._...E...
a060 2d 0e 00 00 17 0e 00 00 ff 0d 00 00 e3 0d 00 00 c1 0d 00 00 a8 0d 00 00 91 0d 00 00 76 0d 00 00 -...........................v...
a080 5d 0d 00 00 49 0d 00 00 33 0d 00 00 26 0d 00 00 0f 0d 00 00 fb 0c 00 00 e3 0c 00 00 c7 0c 00 00 ]...I...3...&...................
a0a0 b1 0c 00 00 97 0c 00 00 7e 0c 00 00 70 0c 00 00 58 0c 00 00 45 0c 00 00 2c 0c 00 00 0e 0c 00 00 ........~...p...X...E...,.......
a0c0 fd 0b 00 00 db 0b 00 00 d9 0b 00 00 c2 0b 00 00 90 0b 00 00 52 0b 00 00 22 0b 00 00 ef 0a 00 00 ....................R...".......
a0e0 c8 0a 00 00 a0 0a 00 00 64 0a 00 00 63 0a 00 00 17 0a 00 00 cc 09 00 00 8e 09 00 00 6c 09 00 00 ........d...c...............l...
a100 6b 09 00 00 26 09 00 00 de 08 00 00 ad 08 00 00 9b 08 00 00 67 08 00 00 60 08 00 00 5f 08 00 00 k...&...............g...`..._...
a120 12 08 00 00 e4 07 00 00 a6 07 00 00 69 07 00 00 1e 07 00 00 ed 06 00 00 ec 06 00 00 d6 06 00 00 ............i...................
a140 8a 06 00 00 54 06 00 00 25 06 00 00 13 06 00 00 ae 05 00 00 a7 05 00 00 a3 05 00 00 a2 05 00 00 ....T...%.......................
a160 6b 05 00 00 6a 05 00 00 25 05 00 00 fb 04 00 00 e2 04 00 00 cd 04 00 00 cc 04 00 00 88 04 00 00 k...j...%.......................
a180 48 04 00 00 09 04 00 00 07 04 00 00 06 04 00 00 e7 03 00 00 a9 03 00 00 75 03 00 00 64 03 00 00 H.......................u...d...
a1a0 63 03 00 00 21 03 00 00 20 03 00 00 dd 02 00 00 9e 02 00 00 9d 02 00 00 5f 02 00 00 12 02 00 00 c...!..................._.......
a1c0 c8 01 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a1e0 20 20 20 20 20 20 20 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2c 20 64 5f 70 72 69 76 61 74 65 ........d_userContext,.d_private
a200 2d 3e 67 65 74 52 65 70 6c 61 79 4c 6f 67 28 29 2c 00 20 20 64 5f 70 72 6f 70 45 6e 67 69 6e 65 ->getReplayLog(),...d_propEngine
a220 20 3d 20 6e 65 77 20 50 72 6f 70 45 6e 67 69 6e 65 28 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 .=.new.PropEngine(d_theoryEngine
a240 2c 20 64 5f 64 65 63 69 73 69 6f 6e 45 6e 67 69 6e 65 2c 20 64 5f 63 6f 6e 74 65 78 74 2c 00 20 ,.d_decisionEngine,.d_context,..
a260 20 54 72 61 63 65 28 22 73 6d 74 2d 64 65 62 75 67 22 29 20 3c 3c 20 22 4d 61 6b 69 6e 67 20 70 .Trace("smt-debug").<<."Making.p
a280 72 6f 70 20 65 6e 67 69 6e 65 2e 2e 2e 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 00 20 20 rop.engine...".<<.std::endl;....
a2a0 64 5f 64 65 63 69 73 69 6f 6e 45 6e 67 69 6e 65 2d 3e 69 6e 69 74 28 29 3b 20 20 20 2f 2f 20 65 d_decisionEngine->init();...//.e
a2c0 6e 61 62 6c 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 73 74 72 61 74 65 67 69 65 73 00 20 20 64 nable.appropriate.strategies...d
a2e0 5f 64 65 63 69 73 69 6f 6e 45 6e 67 69 6e 65 20 3d 20 6e 65 77 20 44 65 63 69 73 69 6f 6e 45 6e _decisionEngine.=.new.DecisionEn
a300 67 69 6e 65 28 64 5f 63 6f 6e 74 65 78 74 2c 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 29 3b 00 gine(d_context,.d_userContext);.
a320 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 64 65 62 75 67 22 29 20 3c 3c 20 22 4d 61 6b 69 6e 67 ...Trace("smt-debug").<<."Making
a340 20 64 65 63 69 73 69 6f 6e 20 65 6e 67 69 6e 65 2e 2e 2e 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 .decision.engine...".<<.std::end
a360 6c 3b 00 00 20 20 73 65 74 44 65 66 61 75 6c 74 73 28 29 3b 00 20 20 2f 2f 20 65 6e 73 75 72 65 l;....setDefaults();...//.ensure
a380 20 74 68 61 74 20 6f 75 72 20 68 65 75 72 69 73 74 69 63 73 20 61 72 65 20 70 72 6f 70 65 72 6c .that.our.heuristics.are.properl
a3a0 79 20 73 65 74 20 75 70 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 64 65 62 75 67 22 29 20 3c 3c y.set.up...Trace("smt-debug").<<
a3c0 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 66 69 6e 69 73 68 49 6e 69 74 22 20 3c 3c 20 73 74 64 3a ."SmtEngine::finishInit".<<.std:
a3e0 3a 65 6e 64 6c 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 66 69 6e 69 73 68 49 6e 69 :endl;.void.SmtEngine::finishIni
a400 74 28 29 20 7b 00 00 7d 00 20 20 64 5f 6d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 73 20 3d 20 6e 65 77 t().{..}...d_modelCommands.=.new
a420 28 74 72 75 65 29 20 73 6d 74 3a 3a 43 6f 6d 6d 61 6e 64 4c 69 73 74 28 64 5f 75 73 65 72 43 6f (true).smt::CommandList(d_userCo
a440 6e 74 65 78 74 29 3b 00 20 20 64 5f 66 6d 66 52 65 63 46 75 6e 63 74 69 6f 6e 73 44 65 66 69 6e ntext);...d_fmfRecFunctionsDefin
a460 65 64 20 3d 20 6e 65 77 28 74 72 75 65 29 20 4e 6f 64 65 4c 69 73 74 28 64 5f 75 73 65 72 43 6f ed.=.new(true).NodeList(d_userCo
a480 6e 74 65 78 74 29 3b 00 20 20 64 5f 64 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 20 3d 20 6e ntext);...d_definedFunctions.=.n
a4a0 65 77 28 74 72 75 65 29 20 44 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 4d 61 70 28 64 5f 75 73 ew(true).DefinedFunctionMap(d_us
a4c0 65 72 43 6f 6e 74 65 78 74 29 3b 00 00 20 20 64 5f 63 6f 6e 74 65 78 74 2d 3e 70 75 73 68 28 29 erContext);....d_context->push()
a4e0 3b 00 20 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2d 3e 70 75 73 68 28 29 3b 00 20 20 2f 2f 20 ;...d_userContext->push();...//.
a500 6f 66 20 63 6f 6e 74 65 78 74 2d 64 65 70 65 6e 64 65 6e 74 20 64 61 74 61 20 73 74 72 75 63 74 of.context-dependent.data.struct
a520 75 72 65 73 00 20 20 2f 2f 20 67 6c 6f 62 61 6c 20 70 75 73 68 2f 70 6f 70 20 61 72 6f 75 6e 64 ures...//.global.push/pop.around
a540 20 65 76 65 72 79 74 68 69 6e 67 2c 20 74 6f 20 65 6e 73 75 72 65 20 70 72 6f 70 65 72 20 64 65 .everything,.to.ensure.proper.de
a560 73 74 72 75 63 74 69 6f 6e 00 00 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 61 64 64 55 73 65 54 68 struction....d_private->addUseTh
a580 65 6f 72 79 4c 69 73 74 4c 69 73 74 65 6e 65 72 28 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 29 eoryListListener(d_theoryEngine)
a5a0 3b 00 00 20 20 7d 00 23 65 6e 64 69 66 00 20 20 20 20 50 72 6f 6f 66 4d 61 6e 61 67 65 72 3a 3a ;....}.#endif.....ProofManager::
a5c0 63 75 72 72 65 6e 74 50 4d 28 29 2d 3e 67 65 74 54 68 65 6f 72 79 50 72 6f 6f 66 45 6e 67 69 6e currentPM()->getTheoryProofEngin
a5e0 65 28 29 2d 3e 72 65 67 69 73 74 65 72 54 68 65 6f 72 79 28 64 5f 74 68 65 6f 72 79 45 6e 67 69 e()->registerTheory(d_theoryEngi
a600 6e 65 2d 3e 74 68 65 6f 72 79 4f 66 28 69 64 29 29 3b 00 23 69 66 64 65 66 20 43 56 43 34 5f 50 ne->theoryOf(id));.#ifdef.CVC4_P
a620 52 4f 4f 46 00 20 20 20 20 2f 2f 72 65 67 69 73 74 65 72 20 77 69 74 68 20 70 72 6f 6f 66 20 65 ROOF.....//register.with.proof.e
a640 6e 67 69 6e 65 20 69 66 20 61 70 70 6c 69 63 61 62 6c 65 00 20 20 20 20 54 68 65 6f 72 79 43 6f ngine.if.applicable.....TheoryCo
a660 6e 73 74 72 75 63 74 6f 72 3a 3a 61 64 64 54 68 65 6f 72 79 28 64 5f 74 68 65 6f 72 79 45 6e 67 nstructor::addTheory(d_theoryEng
a680 69 6e 65 2c 20 69 64 29 3b 00 20 20 66 6f 72 28 54 68 65 6f 72 79 49 64 20 69 64 20 3d 20 74 68 ine,.id);...for(TheoryId.id.=.th
a6a0 65 6f 72 79 3a 3a 54 48 45 4f 52 59 5f 46 49 52 53 54 3b 20 69 64 20 3c 20 74 68 65 6f 72 79 3a eory::THEORY_FIRST;.id.<.theory:
a6c0 3a 54 48 45 4f 52 59 5f 4c 41 53 54 3b 20 2b 2b 69 64 29 20 7b 00 20 20 2f 2f 20 41 64 64 20 74 :THEORY_LAST;.++id).{...//.Add.t
a6e0 68 65 20 74 68 65 6f 72 69 65 73 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 he.theories.....................
a700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 5f 63 68 61 6e 6e 65 6c 73 29 3b 00 20 20 .................d_channels);...
a720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a740 20 20 63 6f 6e 73 74 5f 63 61 73 74 3c 63 6f 6e 73 74 20 4c 6f 67 69 63 49 6e 66 6f 26 3e 28 64 ..const_cast<const.LogicInfo&>(d
a760 5f 6c 6f 67 69 63 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _logic),........................
a780 20 20 20 20 20 20 20 20 20 20 20 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 64 5f 69 74 65 52 65 6d .............d_private->d_iteRem
a7a0 6f 76 65 72 2c 00 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 20 3d 20 6e 65 77 20 54 68 65 over,...d_theoryEngine.=.new.The
a7c0 6f 72 79 45 6e 67 69 6e 65 28 64 5f 63 6f 6e 74 65 78 74 2c 20 64 5f 75 73 65 72 43 6f 6e 74 65 oryEngine(d_context,.d_userConte
a7e0 78 74 2c 00 20 20 2f 2f 20 65 6e 67 69 6e 65 20 6c 61 74 65 72 20 28 69 74 20 69 73 20 6e 6f 6e xt,...//.engine.later.(it.is.non
a800 2d 65 73 73 65 6e 74 69 61 6c 20 74 68 65 72 65 29 00 20 20 2f 2f 20 57 65 20 68 61 76 65 20 6d -essential.there)...//.We.have.m
a820 75 74 75 61 6c 20 64 65 70 65 6e 64 65 6e 63 79 20 68 65 72 65 2c 20 73 6f 20 77 65 20 61 64 64 utual.dependency.here,.so.we.add
a840 20 74 68 65 20 70 72 6f 70 20 65 6e 67 69 6e 65 20 74 6f 20 74 68 65 20 74 68 65 6f 72 79 00 00 .the.prop.engine.to.the.theory..
a860 23 65 6e 64 69 66 00 20 20 64 5f 70 72 6f 6f 66 4d 61 6e 61 67 65 72 20 3d 20 6e 65 77 20 50 72 #endif...d_proofManager.=.new.Pr
a880 6f 6f 66 4d 61 6e 61 67 65 72 28 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 29 3b 00 23 69 66 64 65 oofManager(d_userContext);.#ifde
a8a0 66 20 43 56 43 34 5f 50 52 4f 4f 46 00 20 20 2f 2f 20 74 68 61 74 20 6f 70 74 69 6f 6e 73 3a 3a f.CVC4_PROOF...//.that.options::
a8c0 70 72 6f 6f 66 28 29 20 69 73 20 73 65 74 20 63 6f 72 72 65 63 74 6c 79 20 79 65 74 2e 00 20 20 proof().is.set.correctly.yet....
a8e0 2f 2f 20 62 65 69 6e 67 20 70 61 72 73 65 64 20 66 72 6f 6d 20 74 68 65 20 69 6e 70 75 74 20 66 //.being.parsed.from.the.input.f
a900 69 6c 65 2e 20 42 65 63 61 75 73 65 20 6f 66 20 74 68 69 73 2c 20 77 65 20 63 61 6e 6e 6f 74 20 ile..Because.of.this,.we.cannot.
a920 74 72 75 73 74 00 20 20 2f 2f 20 64 5f 70 72 6f 6f 66 4d 61 6e 61 67 65 72 20 6d 75 73 74 20 62 trust...//.d_proofManager.must.b
a940 65 20 63 72 65 61 74 65 64 20 62 65 66 6f 72 65 20 4f 70 74 69 6f 6e 73 20 68 61 73 20 62 65 65 e.created.before.Options.has.bee
a960 6e 20 66 69 6e 69 73 68 65 64 00 00 20 20 41 73 73 65 72 74 28 64 5f 70 72 6f 6f 66 4d 61 6e 61 n.finished....Assert(d_proofMana
a980 67 65 72 20 3d 3d 20 4e 55 4c 4c 29 3b 00 20 20 2f 2f 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 69 ger.==.NULL);...//.initialized.i
a9a0 6e 20 54 68 65 6f 72 79 45 6e 67 69 6e 65 20 61 6e 64 20 50 72 6f 70 45 6e 67 69 6e 65 20 72 65 n.TheoryEngine.and.PropEngine.re
a9c0 73 70 65 63 74 69 76 65 6c 79 2e 00 20 20 2f 2f 20 53 61 74 50 72 6f 6f 66 20 61 6e 64 20 54 68 spectively....//.SatProof.and.Th
a9e0 65 6f 72 79 50 72 6f 6f 66 73 2e 20 54 68 65 20 54 68 65 6f 72 79 50 72 6f 6f 66 45 6e 67 69 6e eoryProofs..The.TheoryProofEngin
aa00 65 20 61 6e 64 20 74 68 65 20 53 61 74 50 72 6f 6f 66 20 61 72 65 00 20 20 2f 2f 20 54 68 65 20 e.and.the.SatProof.are...//.The.
aa20 50 72 6f 6f 66 4d 61 6e 61 67 65 72 20 69 73 20 63 6f 6e 73 74 72 75 63 74 65 64 20 62 65 66 6f ProofManager.is.constructed.befo
aa40 72 65 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 6f 66 20 6f 62 6a 65 63 74 73 20 73 75 63 68 20 re.any.other.proof.objects.such.
aa60 61 73 00 00 20 20 20 20 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 as........d_private->getResource
aa80 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 55 73 61 67 65 28 29 29 3b 00 Manager()->getResourceUsage());.
aaa0 20 20 64 5f 73 74 61 74 73 2d 3e 64 5f 72 65 73 6f 75 72 63 65 55 6e 69 74 73 55 73 65 64 2e 73 ..d_stats->d_resourceUnitsUsed.s
aac0 65 74 44 61 74 61 28 00 20 20 64 5f 73 74 61 74 73 20 3d 20 6e 65 77 20 53 6d 74 45 6e 67 69 6e etData(...d_stats.=.new.SmtEngin
aae0 65 53 74 61 74 69 73 74 69 63 73 28 29 3b 00 20 20 64 5f 73 74 61 74 69 73 74 69 63 73 52 65 67 eStatistics();...d_statisticsReg
ab00 69 73 74 72 79 20 3d 20 6e 65 77 20 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 28 29 istry.=.new.StatisticsRegistry()
ab20 3b 00 20 20 64 5f 70 72 69 76 61 74 65 20 3d 20 6e 65 77 20 73 6d 74 3a 3a 53 6d 74 45 6e 67 69 ;...d_private.=.new.smt::SmtEngi
ab40 6e 65 50 72 69 76 61 74 65 28 2a 74 68 69 73 29 3b 00 20 20 64 5f 73 6d 74 41 74 74 72 69 62 75 nePrivate(*this);...d_smtAttribu
ab60 74 65 73 20 3d 20 6e 65 77 20 65 78 70 72 3a 3a 61 74 74 72 3a 3a 53 6d 74 41 74 74 72 69 62 75 tes.=.new.expr::attr::SmtAttribu
ab80 74 65 73 28 64 5f 63 6f 6e 74 65 78 74 29 3b 00 20 20 64 5f 6f 72 69 67 69 6e 61 6c 4f 70 74 69 tes(d_context);...d_originalOpti
aba0 6f 6e 73 2e 63 6f 70 79 56 61 6c 75 65 73 28 65 6d 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 ons.copyValues(em->getOptions())
abc0 3b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 7b 00 20 20 64 5f 63 ;...SmtScope.smts(this);.{...d_c
abe0 68 61 6e 6e 65 6c 73 28 6e 65 77 20 4c 65 6d 6d 61 43 68 61 6e 6e 65 6c 73 28 29 29 00 20 20 64 hannels(new.LemmaChannels())...d
ac00 5f 73 74 61 74 73 28 4e 55 4c 4c 29 2c 00 20 20 64 5f 73 74 61 74 69 73 74 69 63 73 52 65 67 69 _stats(NULL),...d_statisticsRegi
ac20 73 74 72 79 28 4e 55 4c 4c 29 2c 00 20 20 64 5f 73 6d 74 41 74 74 72 69 62 75 74 65 73 28 4e 55 stry(NULL),...d_smtAttributes(NU
ac40 4c 4c 29 2c 00 20 20 64 5f 70 72 69 76 61 74 65 28 4e 55 4c 4c 29 2c 00 20 20 64 5f 72 65 70 6c LL),...d_private(NULL),...d_repl
ac60 61 79 53 74 72 65 61 6d 28 4e 55 4c 4c 29 2c 00 20 20 64 5f 73 74 61 74 75 73 28 29 2c 00 20 20 ayStream(NULL),...d_status(),...
ac80 64 5f 65 61 72 6c 79 54 68 65 6f 72 79 50 50 28 74 72 75 65 29 2c 00 20 20 64 5f 6e 65 65 64 50 d_earlyTheoryPP(true),...d_needP
aca0 6f 73 74 73 6f 6c 76 65 28 66 61 6c 73 65 29 2c 00 20 20 64 5f 71 75 65 72 79 4d 61 64 65 28 66 ostsolve(false),...d_queryMade(f
acc0 61 6c 73 65 29 2c 00 20 20 64 5f 70 72 6f 62 6c 65 6d 45 78 74 65 6e 64 65 64 28 66 61 6c 73 65 alse),...d_problemExtended(false
ace0 29 2c 00 20 20 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 28 66 61 6c 73 65 29 2c 00 20 20 64 5f 70 ),...d_fullyInited(false),...d_p
ad00 65 6e 64 69 6e 67 50 6f 70 73 28 30 29 2c 00 20 20 64 5f 6f 72 69 67 69 6e 61 6c 4f 70 74 69 6f endingPops(0),...d_originalOptio
ad20 6e 73 28 29 2c 00 20 20 64 5f 6c 6f 67 69 63 28 29 2c 00 20 20 64 5f 64 65 66 69 6e 65 43 6f 6d ns(),...d_logic(),...d_defineCom
ad40 6d 61 6e 64 73 28 29 2c 00 20 20 64 5f 64 75 6d 70 43 6f 6d 6d 61 6e 64 73 28 29 2c 00 20 20 64 mands(),...d_dumpCommands(),...d
ad60 5f 6d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 73 28 4e 55 4c 4c 29 2c 00 20 20 64 5f 6d 6f 64 65 6c 47 _modelCommands(NULL),...d_modelG
ad80 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 73 28 29 2c 00 20 20 64 5f 61 73 73 69 67 6e 6d 65 6e 74 73 lobalCommands(),...d_assignments
ada0 28 4e 55 4c 4c 29 2c 00 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 4c 69 73 74 28 4e 55 4c 4c 29 2c (NULL),...d_assertionList(NULL),
adc0 00 20 20 64 5f 66 6d 66 52 65 63 46 75 6e 63 74 69 6f 6e 73 44 65 66 69 6e 65 64 28 4e 55 4c 4c ...d_fmfRecFunctionsDefined(NULL
ade0 29 2c 00 20 20 64 5f 64 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 28 4e 55 4c 4c 29 2c 00 20 ),...d_definedFunctions(NULL),..
ae00 20 64 5f 70 72 6f 6f 66 4d 61 6e 61 67 65 72 28 4e 55 4c 4c 29 2c 00 20 20 64 5f 70 72 6f 70 45 .d_proofManager(NULL),...d_propE
ae20 6e 67 69 6e 65 28 4e 55 4c 4c 29 2c 00 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 28 4e 55 ngine(NULL),...d_theoryEngine(NU
ae40 4c 4c 29 2c 00 20 20 64 5f 64 65 63 69 73 69 6f 6e 45 6e 67 69 6e 65 28 4e 55 4c 4c 29 2c 00 20 LL),...d_decisionEngine(NULL),..
ae60 20 64 5f 6e 6f 64 65 4d 61 6e 61 67 65 72 28 64 5f 65 78 70 72 4d 61 6e 61 67 65 72 2d 3e 67 65 .d_nodeManager(d_exprManager->ge
ae80 74 4e 6f 64 65 4d 61 6e 61 67 65 72 28 29 29 2c 00 20 20 64 5f 65 78 70 72 4d 61 6e 61 67 65 72 tNodeManager()),...d_exprManager
aea0 28 65 6d 29 2c 00 20 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 28 6e 65 77 20 55 73 65 72 43 6f (em),...d_userContext(new.UserCo
aec0 6e 74 65 78 74 28 29 29 2c 00 20 20 64 5f 75 73 65 72 4c 65 76 65 6c 73 28 29 2c 00 20 20 64 5f ntext()),...d_userLevels(),...d_
aee0 63 6f 6e 74 65 78 74 28 6e 65 77 20 43 6f 6e 74 65 78 74 28 29 29 2c 00 53 6d 74 45 6e 67 69 6e context(new.Context()),.SmtEngin
af00 65 3a 3a 53 6d 74 45 6e 67 69 6e 65 28 45 78 70 72 4d 61 6e 61 67 65 72 2a 20 65 6d 29 20 74 68 e::SmtEngine(ExprManager*.em).th
af20 72 6f 77 28 29 20 3a 00 00 7d 2f 2a 20 6e 61 6d 65 73 70 61 63 65 20 43 56 43 34 3a 3a 73 6d 74 row().:..}/*.namespace.CVC4::smt
af40 20 2a 2f 00 00 7d 3b 2f 2a 20 63 6c 61 73 73 20 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 .*/..};/*.class.SmtEnginePrivate
af60 20 2a 2f 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 64 5f 6d 61 6e 61 67 65 64 52 65 70 .*/....}.....return.d_managedRep
af80 6c 61 79 4c 6f 67 2e 67 65 74 52 65 70 6c 61 79 4c 6f 67 28 29 3b 00 20 20 73 74 64 3a 3a 6f 73 layLog.getReplayLog();...std::os
afa0 74 72 65 61 6d 2a 20 67 65 74 52 65 70 6c 61 79 4c 6f 67 28 29 20 63 6f 6e 73 74 20 7b 00 00 20 tream*.getReplayLog().const.{...
afc0 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 20 55 73 65 54 68 65 6f 72 79 4c 69 73 74 .}.............new.UseTheoryList
afe0 4c 69 73 74 65 6e 65 72 28 74 68 65 6f 72 79 45 6e 67 69 6e 65 29 2c 20 74 72 75 65 29 29 3b 00 Listener(theoryEngine),.true));.
b000 61 64 00 00 30 00 00 00 20 02 00 00 00 10 00 00 75 00 00 00 00 00 00 00 c3 0f 00 00 c2 0f 00 00 ad..0...........u...............
b020 7e 0f 00 00 4f 0f 00 00 18 0f 00 00 cc 0e 00 00 ac 0e 00 00 ab 0e 00 00 6a 0e 00 00 2a 0e 00 00 ~...O...................j...*...
b040 ea 0d 00 00 a9 0d 00 00 96 0d 00 00 71 0d 00 00 4b 0d 00 00 05 0d 00 00 d7 0c 00 00 99 0c 00 00 ............q...K...............
b060 95 0c 00 00 94 0c 00 00 72 0c 00 00 53 0c 00 00 2d 0c 00 00 da 0b 00 00 cd 0b 00 00 b1 0b 00 00 ........r...S...-...............
b080 98 0b 00 00 da 0a 00 00 88 0a 00 00 82 0a 00 00 7e 0a 00 00 7d 0a 00 00 38 0a 00 00 09 0a 00 00 ................~...}...8.......
b0a0 d1 09 00 00 a1 09 00 00 83 09 00 00 7f 09 00 00 65 09 00 00 64 09 00 00 2a 09 00 00 20 09 00 00 ................e...d...*.......
b0c0 d0 08 00 00 94 08 00 00 56 08 00 00 4e 08 00 00 46 08 00 00 45 08 00 00 02 08 00 00 00 08 00 00 ........V...N...F...E...........
b0e0 ff 07 00 00 d8 07 00 00 c2 07 00 00 b6 07 00 00 b2 07 00 00 b1 07 00 00 94 07 00 00 7c 07 00 00 ............................|...
b100 78 07 00 00 77 07 00 00 3e 07 00 00 2e 07 00 00 2d 07 00 00 f5 06 00 00 b6 06 00 00 83 06 00 00 x...w...>.......-...............
b120 82 06 00 00 6a 06 00 00 4c 06 00 00 4b 06 00 00 fd 05 00 00 a4 05 00 00 a2 05 00 00 a1 05 00 00 ....j...L...K...................
b140 84 05 00 00 71 05 00 00 70 05 00 00 26 05 00 00 0f 05 00 00 0b 05 00 00 0a 05 00 00 dc 04 00 00 ....q...p...&...................
b160 c4 04 00 00 a3 04 00 00 86 04 00 00 82 04 00 00 81 04 00 00 64 04 00 00 46 04 00 00 42 04 00 00 ....................d...F...B...
b180 23 04 00 00 03 04 00 00 ff 03 00 00 de 03 00 00 bc 03 00 00 b8 03 00 00 b6 03 00 00 b5 03 00 00 #...............................
b1a0 93 03 00 00 7c 03 00 00 7b 03 00 00 73 03 00 00 63 03 00 00 62 03 00 00 1b 03 00 00 ef 02 00 00 ....|...{...s...c...b...........
b1c0 d6 02 00 00 b9 02 00 00 b8 02 00 00 98 02 00 00 75 02 00 00 6f 02 00 00 6e 02 00 00 4c 02 00 00 ................u...o...n...L...
b1e0 27 02 00 00 21 02 00 00 20 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '...!...........................
b200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b220 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 4c 69 73 74 2d 3e 64 65 .....}.......d_assertionList->de
b240 6c 65 74 65 53 65 6c 66 28 29 3b 00 20 20 20 20 69 66 28 64 5f 61 73 73 65 72 74 69 6f 6e 4c 69 leteSelf();.....if(d_assertionLi
b260 73 74 20 21 3d 20 4e 55 4c 4c 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 61 73 73 st.!=.NULL).{......}.......d_ass
b280 69 67 6e 6d 65 6e 74 73 2d 3e 64 65 6c 65 74 65 53 65 6c 66 28 29 3b 00 20 20 20 20 69 66 28 64 ignments->deleteSelf();.....if(d
b2a0 5f 61 73 73 69 67 6e 6d 65 6e 74 73 20 21 3d 20 4e 55 4c 4c 29 20 7b 00 00 20 20 20 20 64 5f 75 _assignments.!=.NULL).{......d_u
b2c0 73 65 72 43 6f 6e 74 65 78 74 2d 3e 70 6f 70 74 6f 28 30 29 3b 00 20 20 20 20 64 5f 63 6f 6e 74 serContext->popto(0);.....d_cont
b2e0 65 78 74 2d 3e 70 6f 70 74 6f 28 30 29 3b 00 20 20 20 20 2f 2f 20 6f 66 20 63 6f 6e 74 65 78 74 ext->popto(0);.....//.of.context
b300 2d 64 65 70 65 6e 64 65 6e 74 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 73 00 20 20 20 20 2f -dependent.data.structures...../
b320 2f 20 67 6c 6f 62 61 6c 20 70 75 73 68 2f 70 6f 70 20 61 72 6f 75 6e 64 20 65 76 65 72 79 74 68 /.global.push/pop.around.everyth
b340 69 6e 67 2c 20 74 6f 20 65 6e 73 75 72 65 20 70 72 6f 70 65 72 20 64 65 73 74 72 75 63 74 69 6f ing,.to.ensure.proper.destructio
b360 6e 00 00 20 20 20 20 73 68 75 74 64 6f 77 6e 28 29 3b 00 20 20 74 72 79 20 7b 00 00 20 20 53 6d n......shutdown();...try.{....Sm
b380 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 53 6d 74 45 6e 67 69 6e 65 3a 3a 7e 53 tScope.smts(this);.SmtEngine::~S
b3a0 6d 74 45 6e 67 69 6e 65 28 29 20 74 68 72 6f 77 28 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 20 mtEngine().throw().{..}...}.....
b3c0 64 5f 64 65 63 69 73 69 6f 6e 45 6e 67 69 6e 65 2d 3e 73 68 75 74 64 6f 77 6e 28 29 3b 00 20 20 d_decisionEngine->shutdown();...
b3e0 69 66 28 64 5f 64 65 63 69 73 69 6f 6e 45 6e 67 69 6e 65 20 21 3d 20 4e 55 4c 4c 29 20 7b 00 20 if(d_decisionEngine.!=.NULL).{..
b400 20 7d 00 20 20 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 73 68 75 74 64 6f 77 6e 28 .}.....d_theoryEngine->shutdown(
b420 29 3b 00 20 20 69 66 28 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 20 21 3d 20 4e 55 4c 4c 29 20 );...if(d_theoryEngine.!=.NULL).
b440 7b 00 20 20 7d 00 20 20 20 20 64 5f 70 72 6f 70 45 6e 67 69 6e 65 2d 3e 73 68 75 74 64 6f 77 6e {...}.....d_propEngine->shutdown
b460 28 29 3b 00 20 20 69 66 28 64 5f 70 72 6f 70 45 6e 67 69 6e 65 20 21 3d 20 4e 55 4c 4c 29 20 7b ();...if(d_propEngine.!=.NULL).{
b480 00 00 20 20 7d 00 20 20 20 20 64 5f 6e 65 65 64 50 6f 73 74 73 6f 6c 76 65 20 3d 20 66 61 6c 73 ....}.....d_needPostsolve.=.fals
b4a0 65 3b 00 20 20 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 70 6f 73 74 73 6f 6c 76 65 e;.....d_theoryEngine->postsolve
b4c0 28 29 3b 00 20 20 69 66 28 64 5f 6e 65 65 64 50 6f 73 74 73 6f 6c 76 65 29 20 7b 00 20 20 2f 2f ();...if(d_needPostsolve).{...//
b4e0 20 63 68 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 61 20 70 6f 73 74 73 6f 6c 76 65 28 29 20 69 .check.to.see.if.a.postsolve().i
b500 73 20 70 65 6e 64 69 6e 67 00 00 20 20 7d 00 20 20 20 20 69 6e 74 65 72 6e 61 6c 50 6f 70 28 74 s.pending....}.....internalPop(t
b520 72 75 65 29 3b 00 20 20 77 68 69 6c 65 28 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 rue);...while(options::increment
b540 61 6c 53 6f 6c 76 69 6e 67 28 29 20 26 26 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2d 3e 67 65 alSolving().&&.d_userContext->ge
b560 74 4c 65 76 65 6c 28 29 20 3e 20 31 29 20 7b 00 00 20 20 64 6f 50 65 6e 64 69 6e 67 50 6f 70 73 tLevel().>.1).{....doPendingPops
b580 28 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 68 75 74 64 6f 77 6e 28 29 20 7b ();.void.SmtEngine::shutdown().{
b5a0 00 00 7d 00 20 20 64 5f 70 72 6f 70 45 6e 67 69 6e 65 2d 3e 61 73 73 65 72 74 46 6f 72 6d 75 6c ..}...d_propEngine->assertFormul
b5c0 61 28 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 6f a(NodeManager::currentNM()->mkCo
b5e0 6e 73 74 3c 62 6f 6f 6c 3e 28 66 61 6c 73 65 29 2e 6e 6f 74 4e 6f 64 65 28 29 29 3b 00 20 20 64 nst<bool>(false).notNode());...d
b600 5f 70 72 6f 70 45 6e 67 69 6e 65 2d 3e 61 73 73 65 72 74 46 6f 72 6d 75 6c 61 28 4e 6f 64 65 4d _propEngine->assertFormula(NodeM
b620 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 6f 6e 73 74 3c 62 6f 6f anager::currentNM()->mkConst<boo
b640 6c 3e 28 74 72 75 65 29 29 3b 00 00 20 20 41 73 73 65 72 74 28 64 5f 6c 6f 67 69 63 2e 69 73 4c l>(true));....Assert(d_logic.isL
b660 6f 63 6b 65 64 28 29 29 3b 00 20 20 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 20 3d 20 74 72 75 65 ocked());...d_fullyInited.=.true
b680 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 68 61 73 6e 27 74 20 66 69 6e 69 73 ;.................."hasn't.finis
b6a0 68 65 64 20 69 6e 69 74 69 61 6c 69 7a 69 6e 67 21 22 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 hed.initializing!".);...........
b6c0 20 20 20 20 20 20 22 54 68 65 20 50 72 6f 70 45 6e 67 69 6e 65 20 68 61 73 20 70 75 73 68 65 64 ......"The.PropEngine.has.pushed
b6e0 20 62 75 74 20 74 68 65 20 53 6d 74 45 6e 67 69 6e 65 20 22 00 20 20 41 6c 77 61 79 73 41 73 73 .but.the.SmtEngine."...AlwaysAss
b700 65 72 74 28 20 64 5f 70 72 6f 70 45 6e 67 69 6e 65 2d 3e 67 65 74 41 73 73 65 72 74 69 6f 6e 4c ert(.d_propEngine->getAssertionL
b720 65 76 65 6c 28 29 20 3d 3d 20 30 2c 00 00 20 20 66 69 6e 69 73 68 49 6e 69 74 28 29 3b 00 20 20 evel().==.0,....finishInit();...
b740 2f 2f 20 66 69 6e 69 73 68 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 2c 20 63 72 65 61 74 65 //.finish.initialization,.create
b760 20 74 68 65 20 70 72 6f 70 20 65 6e 67 69 6e 65 2c 20 65 74 63 2e 00 00 20 20 7d 00 20 20 20 20 .the.prop.engine,.etc.....}.....
b780 73 65 74 4c 6f 67 69 63 49 6e 74 65 72 6e 61 6c 28 29 3b 00 20 20 69 66 28 21 20 64 5f 6c 6f 67 setLogicInternal();...if(!.d_log
b7a0 69 63 2e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e ic.isLocked()).{....}.....return
b7c0 3b 00 20 20 69 66 28 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 29 20 7b 00 76 6f 69 64 20 53 6d 74 ;...if(d_fullyInited).{.void.Smt
b7e0 45 6e 67 69 6e 65 3a 3a 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 29 20 7b 00 00 Engine::finalOptionsAreSet().{..
b800 7d 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 64 65 62 75 67 22 29 20 3c 3c 20 22 53 6d 74 45 6e }...Trace("smt-debug").<<."SmtEn
b820 67 69 6e 65 3a 3a 66 69 6e 69 73 68 49 6e 69 74 20 64 6f 6e 65 22 20 3c 3c 20 73 74 64 3a 3a 65 gine::finishInit.done".<<.std::e
b840 6e 64 6c 3b 00 00 20 20 20 20 7d 29 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 ndl;......});.......}...........
b860 66 69 6e 69 73 68 52 65 67 69 73 74 65 72 54 68 65 6f 72 79 28 64 5f 74 68 65 6f 72 79 45 6e 67 finishRegisterTheory(d_theoryEng
b880 69 6e 65 2d 3e 74 68 65 6f 72 79 4f 66 28 69 64 29 29 3b 00 20 20 20 20 20 20 20 20 50 72 6f 6f ine->theoryOf(id));.........Proo
b8a0 66 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 50 4d 28 29 2d 3e 67 65 74 54 68 65 6f 72 79 fManager::currentPM()->getTheory
b8c0 50 72 6f 6f 66 45 6e 67 69 6e 65 28 29 2d 3e 00 20 20 20 20 20 20 66 6f 72 28 54 68 65 6f 72 79 ProofEngine()->.......for(Theory
b8e0 49 64 20 69 64 20 3d 20 74 68 65 6f 72 79 3a 3a 54 48 45 4f 52 59 5f 46 49 52 53 54 3b 20 69 64 Id.id.=.theory::THEORY_FIRST;.id
b900 20 3c 20 74 68 65 6f 72 79 3a 3a 54 48 45 4f 52 59 5f 4c 41 53 54 3b 20 2b 2b 69 64 29 20 7b 00 .<.theory::THEORY_LAST;.++id).{.
b920 20 20 50 52 4f 4f 46 28 7b 00 20 20 50 52 4f 4f 46 28 20 50 72 6f 6f 66 4d 61 6e 61 67 65 72 3a ..PROOF({...PROOF(.ProofManager:
b940 3a 63 75 72 72 65 6e 74 50 4d 28 29 2d 3e 73 65 74 4c 6f 67 69 63 28 64 5f 6c 6f 67 69 63 29 3b :currentPM()->setLogic(d_logic);
b960 20 29 3b 00 00 20 20 64 5f 64 75 6d 70 43 6f 6d 6d 61 6e 64 73 2e 63 6c 65 61 72 28 29 3b 00 20 .);....d_dumpCommands.clear();..
b980 20 7d 00 20 20 20 20 64 65 6c 65 74 65 20 64 5f 64 75 6d 70 43 6f 6d 6d 61 6e 64 73 5b 69 5d 3b .}.....delete.d_dumpCommands[i];
b9a0 00 20 20 20 20 44 75 6d 70 28 22 64 65 63 6c 61 72 61 74 69 6f 6e 73 22 29 20 3c 3c 20 2a 64 5f .....Dump("declarations").<<.*d_
b9c0 64 75 6d 70 43 6f 6d 6d 61 6e 64 73 5b 69 5d 3b 00 20 20 66 6f 72 28 75 6e 73 69 67 6e 65 64 20 dumpCommands[i];...for(unsigned.
b9e0 69 20 3d 20 30 3b 20 69 20 3c 20 64 5f 64 75 6d 70 43 6f 6d 6d 61 6e 64 73 2e 73 69 7a 65 28 29 i.=.0;.i.<.d_dumpCommands.size()
ba00 3b 20 2b 2b 69 29 20 7b 00 20 20 2f 2f 20 64 75 6d 70 20 6f 75 74 20 61 6e 79 20 70 65 6e 64 69 ;.++i).{...//.dump.out.any.pendi
ba20 6e 67 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 73 00 20 20 54 72 61 63 65 28 ng.declaration.commands...Trace(
ba40 22 73 6d 74 2d 64 65 62 75 67 22 29 20 3c 3c 20 22 44 75 6d 70 20 64 65 63 6c 61 72 61 74 69 6f "smt-debug").<<."Dump.declaratio
ba60 6e 20 63 6f 6d 6d 61 6e 64 73 2e 2e 2e 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 00 20 20 n.commands...".<<.std::endl;....
ba80 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 }.....}.........................
baa0 3c 3c 20 53 65 74 42 65 6e 63 68 6d 61 72 6b 4c 6f 67 69 63 43 6f 6d 6d 61 6e 64 28 65 76 65 72 <<.SetBenchmarkLogicCommand(ever
bac0 79 74 68 69 6e 67 2e 67 65 74 4c 6f 67 69 63 53 74 72 69 6e 67 28 29 29 3b 00 20 20 20 20 20 20 ything.getLogicString());.......
bae0 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 43 6f 6d 6d 65 6e 74 43 6f 6d 6d Dump("benchmark").<<.CommentComm
bb00 61 6e 64 28 22 43 56 43 34 20 61 6c 77 61 79 73 20 64 75 6d 70 73 20 74 68 65 20 6d 6f 73 74 20 and("CVC4.always.dumps.the.most.
bb20 67 65 6e 65 72 61 6c 2c 20 61 6c 6c 2d 73 75 70 70 6f 72 74 65 64 20 6c 6f 67 69 63 20 28 62 65 general,.all-supported.logic.(be
bb40 6c 6f 77 29 2c 20 61 73 20 73 6f 6d 65 20 69 6e 74 65 72 6e 61 6c 73 20 6d 69 67 68 74 20 72 65 low),.as.some.internals.might.re
bb60 71 75 69 72 65 20 74 68 65 20 75 73 65 20 6f 66 20 61 20 6c 6f 67 69 63 20 6d 6f 72 65 20 67 65 quire.the.use.of.a.logic.more.ge
bb80 6e 65 72 61 6c 20 74 68 61 6e 20 74 68 65 20 69 6e 70 75 74 2e 22 29 00 20 20 20 20 20 20 65 76 neral.than.the.input.").......ev
bba0 65 72 79 74 68 69 6e 67 2e 6c 6f 63 6b 28 29 3b 00 20 20 20 20 20 20 4c 6f 67 69 63 49 6e 66 6f erything.lock();.......LogicInfo
bbc0 20 65 76 65 72 79 74 68 69 6e 67 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 .everything;.....}.else.{.......
bbe0 44 75 6d 70 28 22 72 61 77 2d 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 53 65 74 42 65 6e 63 Dump("raw-benchmark").<<.SetBenc
bc00 68 6d 61 72 6b 4c 6f 67 69 63 43 6f 6d 6d 61 6e 64 28 64 5f 6c 6f 67 69 63 2e 67 65 74 4c 6f 67 hmarkLogicCommand(d_logic.getLog
bc20 69 63 53 74 72 69 6e 67 28 29 29 3b 00 20 20 20 20 69 66 20 28 44 75 6d 70 2e 69 73 4f 6e 28 22 icString());.....if.(Dump.isOn("
bc40 72 61 77 2d 62 65 6e 63 68 6d 61 72 6b 22 29 29 20 7b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f raw-benchmark")).{...if(Dump.isO
bc60 6e 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 29 20 7b 00 20 20 2f 2f 20 64 75 6d 70 20 6f 75 74 20 n("benchmark")).{...//.dump.out.
bc80 61 20 73 65 74 2d 6c 6f 67 69 63 20 63 6f 6d 6d 61 6e 64 00 00 20 20 7d 00 20 20 20 20 64 5f 61 a.set-logic.command....}.....d_a
bca0 73 73 65 72 74 69 6f 6e 4c 69 73 74 20 3d 20 6e 65 77 28 74 72 75 65 29 20 41 73 73 65 72 74 69 ssertionList.=.new(true).Asserti
bcc0 6f 6e 4c 69 73 74 28 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 29 3b 00 20 20 20 20 2f 2f 20 65 6e onList(d_userContext);.....//.en
bce0 73 75 72 65 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 4e 6f 64 65 73 20 72 65 6d 61 69 6e 20 6c sure.the.relevant.Nodes.remain.l
bd00 69 76 65 2e 00 20 20 20 20 2f 2f 20 49 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 69 6e 63 72 65 ive......//.In.the.case.of.incre
bd20 6d 65 6e 74 61 6c 20 73 6f 6c 76 69 6e 67 2c 20 77 65 20 61 70 70 65 61 72 20 74 6f 20 6e 65 65 mental.solving,.we.appear.to.nee
bd40 64 20 74 68 65 73 65 20 74 6f 00 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 d.these.to......options::increme
bd60 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 29 20 7b 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 70 ntalSolving()).{...if(options::p
bd80 72 6f 64 75 63 65 41 73 73 65 72 74 69 6f 6e 73 28 29 20 7c 7c 00 20 20 2f 2f 20 77 69 74 68 20 roduceAssertions().||...//.with.
bda0 72 63 20 3d 3d 20 30 2e 00 20 20 2f 2f 20 66 69 72 73 74 2c 20 73 6f 6d 65 20 75 73 65 72 2d 63 rc.==.0....//.first,.some.user-c
bdc0 6f 6e 74 65 78 74 2d 64 65 70 65 6e 64 65 6e 74 20 54 4e 6f 64 65 73 20 6d 69 67 68 74 20 73 74 ontext-dependent.TNodes.might.st
bde0 69 6c 6c 20 65 78 69 73 74 00 20 20 2f 2f 20 63 6c 65 61 6e 75 70 20 6f 72 64 65 72 69 6e 67 20 ill.exist...//.cleanup.ordering.
be00 69 73 73 75 65 20 61 6e 64 20 4e 6f 64 65 73 2f 54 4e 6f 64 65 73 2e 20 20 49 66 20 53 41 54 20 issue.and.Nodes/TNodes...If.SAT.
be20 69 73 20 70 6f 70 70 65 64 00 20 20 2f 2f 20 5b 4d 47 44 20 31 30 2f 32 30 2f 32 30 31 31 5d 20 is.popped...//.[MGD.10/20/2011].
be40 6b 65 65 70 20 61 72 6f 75 6e 64 20 69 6e 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 6d 6f 64 65 2c keep.around.in.incremental.mode,
be60 20 64 75 65 20 74 6f 20 61 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 64 65 62 75 67 22 29 20 3c .due.to.a...Trace("smt-debug").<
be80 3c 20 22 53 65 74 20 75 70 20 61 73 73 65 72 74 69 6f 6e 20 6c 69 73 74 2e 2e 2e 22 20 3c 3c 20 <."Set.up.assertion.list...".<<.
bea0 73 74 64 3a 3a 65 6e 64 6c 3b 00 00 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 66 69 std::endl;....d_theoryEngine->fi
bec0 6e 69 73 68 49 6e 69 74 28 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 64 65 62 75 67 22 29 nishInit();...Trace("smt-debug")
bee0 20 3c 3c 20 22 46 69 6e 69 73 68 69 6e 67 20 69 6e 69 74 20 66 6f 72 20 74 68 65 6f 72 79 20 65 .<<."Finishing.init.for.theory.e
bf00 6e 67 69 6e 65 2e 2e 2e 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 64 5f 74 68 65 6f ngine...".<<.std::endl;...d_theo
bf20 72 79 45 6e 67 69 6e 65 2d 3e 73 65 74 44 65 63 69 73 69 6f 6e 45 6e 67 69 6e 65 28 64 5f 64 65 ryEngine->setDecisionEngine(d_de
bf40 63 69 73 69 6f 6e 45 6e 67 69 6e 65 29 3b 00 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d cisionEngine);...d_theoryEngine-
bf60 3e 73 65 74 50 72 6f 70 45 6e 67 69 6e 65 28 64 5f 70 72 6f 70 45 6e 67 69 6e 65 29 3b 00 20 20 >setPropEngine(d_propEngine);...
bf80 54 72 61 63 65 28 22 73 6d 74 2d 64 65 62 75 67 22 29 20 3c 3c 20 22 53 65 74 74 69 6e 67 20 75 Trace("smt-debug").<<."Setting.u
bfa0 70 20 74 68 65 6f 72 79 20 65 6e 67 69 6e 65 2e 2e 2e 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c p.theory.engine...".<<.std::endl
bfc0 3b 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ;...............................
bfe0 20 20 20 64 5f 72 65 70 6c 61 79 53 74 72 65 61 6d 2c 20 64 5f 63 68 61 6e 6e 65 6c 73 29 3b 00 ...d_replayStream,.d_channels);.
c000 61 64 00 00 07 00 00 00 1b 02 00 00 00 10 00 00 7e 00 00 00 00 00 00 00 c6 0f 00 00 a6 0f 00 00 ad..............~...............
c020 86 0f 00 00 80 0f 00 00 64 0f 00 00 63 0f 00 00 2b 0f 00 00 2a 0f 00 00 08 0f 00 00 e3 0e 00 00 ........d...c...+...*...........
c040 dd 0e 00 00 dc 0e 00 00 b6 0e 00 00 8a 0e 00 00 89 0e 00 00 6e 0e 00 00 53 0e 00 00 3a 0e 00 00 ....................n...S...:...
c060 21 0e 00 00 04 0e 00 00 e7 0d 00 00 e6 0d 00 00 e5 0d 00 00 96 0d 00 00 51 0d 00 00 1a 0d 00 00 !.......................Q.......
c080 08 0d 00 00 ed 0c 00 00 d2 0c 00 00 cb 0c 00 00 ca 0c 00 00 b6 0c 00 00 a2 0c 00 00 81 0c 00 00 ................................
c0a0 60 0c 00 00 5f 0c 00 00 49 0c 00 00 33 0c 00 00 32 0c 00 00 16 0c 00 00 fa 0b 00 00 f9 0b 00 00 `..._...I...3...2...............
c0c0 df 0b 00 00 c5 0b 00 00 af 0b 00 00 99 0b 00 00 98 0b 00 00 81 0b 00 00 6a 0b 00 00 69 0b 00 00 ........................j...i...
c0e0 4f 0b 00 00 0c 0b 00 00 f0 0a 00 00 ec 0a 00 00 ea 0a 00 00 e9 0a 00 00 a0 0a 00 00 89 0a 00 00 O...............................
c100 73 0a 00 00 24 0a 00 00 f0 09 00 00 ec 09 00 00 d9 09 00 00 c3 09 00 00 c1 09 00 00 c0 09 00 00 s...$...........................
c120 91 09 00 00 65 09 00 00 4e 09 00 00 46 09 00 00 2a 09 00 00 01 09 00 00 dd 08 00 00 d9 08 00 00 ....e...N...F...*...............
c140 d7 08 00 00 d6 08 00 00 aa 08 00 00 7e 08 00 00 63 08 00 00 61 08 00 00 60 08 00 00 34 08 00 00 ............~...c...a...`...4...
c160 22 08 00 00 20 08 00 00 1f 08 00 00 f2 07 00 00 a1 07 00 00 70 07 00 00 5e 07 00 00 5c 07 00 00 "...................p...^...\...
c180 5b 07 00 00 3b 07 00 00 0a 07 00 00 d4 06 00 00 a9 06 00 00 87 06 00 00 36 06 00 00 13 06 00 00 [...;...................6.......
c1a0 dc 05 00 00 a5 05 00 00 5a 05 00 00 38 05 00 00 34 05 00 00 33 05 00 00 1e 05 00 00 ed 04 00 00 ........Z...8...4...3...........
c1c0 a0 04 00 00 72 04 00 00 4c 04 00 00 f4 03 00 00 ee 03 00 00 ea 03 00 00 e5 03 00 00 d4 03 00 00 ....r...L.......................
c1e0 b7 03 00 00 93 03 00 00 68 03 00 00 45 03 00 00 2f 03 00 00 ea 02 00 00 c9 02 00 00 c3 02 00 00 ........h...E.../...............
c200 96 02 00 00 71 02 00 00 21 02 00 00 1b 02 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 7d ....q...!......................}
c220 00 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 74 75 72 6e 69 6e 67 20 .......Trace("smt").<<."turning.
c240 6f 6e 20 66 6d 66 2d 62 6f 75 6e 64 2d 69 6e 74 2c 20 66 6f 72 20 73 74 72 69 6e 67 73 2d 65 78 on.fmf-bound-int,.for.strings-ex
c260 70 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a p".<<.std::endl;.......options::
c280 66 6d 66 42 6f 75 6e 64 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 21 20 6f fmfBound.set(.true.);.....if(!.o
c2a0 70 74 69 6f 6e 73 3a 3a 66 6d 66 42 6f 75 6e 64 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 ptions::fmfBound.wasSetByUser())
c2c0 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 73 .{.....}....................<<.s
c2e0 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 td::endl;.......Trace("smt").<<.
c300 22 74 75 72 6e 69 6e 67 20 6f 6e 20 71 75 61 6e 74 69 66 69 65 72 20 6c 6f 67 69 63 2c 20 66 6f "turning.on.quantifier.logic,.fo
c320 72 20 73 74 72 69 6e 67 73 2d 65 78 70 22 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 6c 6f 63 r.strings-exp".......d_logic.loc
c340 6b 28 29 3b 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 65 6e 61 62 6c 65 51 75 61 6e 74 69 66 k();.......d_logic.enableQuantif
c360 69 65 72 73 28 29 3b 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 20 3d 20 64 5f 6c 6f 67 69 63 2e iers();.......d_logic.=.d_logic.
c380 67 65 74 55 6e 6c 6f 63 6b 65 64 43 6f 70 79 28 29 3b 00 20 20 20 20 69 66 28 20 21 64 5f 6c 6f getUnlockedCopy();.....if(.!d_lo
c3a0 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 29 20 7b 00 20 20 69 66 28 6f 70 74 69 gic.isQuantified().).{...if(opti
c3c0 6f 6e 73 3a 3a 73 74 72 69 6e 67 45 78 70 28 29 29 20 7b 00 20 20 2f 2f 20 66 6f 72 20 73 74 72 ons::stringExp()).{...//.for.str
c3e0 69 6e 67 73 00 20 20 2a 2f 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 54 72 61 63 65 28 ings...*/...}.....}.......Trace(
c400 22 73 6d 74 22 29 20 3c 3c 20 22 74 75 72 6e 69 6e 67 20 6f 6e 20 73 74 72 69 6e 67 73 2d 65 78 "smt").<<."turning.on.strings-ex
c420 70 2c 20 66 6f 72 20 74 68 65 20 74 68 65 6f 72 79 20 6f 66 20 73 74 72 69 6e 67 73 22 20 3c 3c p,.for.the.theory.of.strings".<<
c440 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 73 74 72 69 6e .std::endl;.......options::strin
c460 67 45 78 70 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 21 20 6f 70 74 69 6f gExp.set(.true.);.....if(!.optio
c480 6e 73 3a 3a 73 74 72 69 6e 67 45 78 70 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 ns::stringExp.wasSetByUser()).{.
c4a0 20 20 69 66 28 21 64 5f 6c 6f 67 69 63 2e 68 61 73 45 76 65 72 79 74 68 69 6e 67 28 29 20 26 26 ..if(!d_logic.hasEverything().&&
c4c0 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f .d_logic.isTheoryEnabled(THEORY_
c4e0 53 54 52 49 4e 47 53 29 20 29 20 7b 00 20 20 2f 2a 20 2d 20 64 69 73 61 62 6c 65 64 20 66 6f 72 STRINGS).).{.../*.-.disabled.for
c500 20 31 2e 34 20 72 65 6c 65 61 73 65 20 5b 4d 47 44 20 32 30 31 34 2e 30 36 2e 32 35 5d 00 20 20 .1.4.release.[MGD.2014.06.25]...
c520 2f 2f 20 73 65 74 20 73 74 72 69 6e 67 73 2d 65 78 70 00 00 20 20 7d 00 20 20 20 20 64 5f 6c 6f //.set.strings-exp....}.....d_lo
c540 67 69 63 20 3d 20 4c 6f 67 69 63 49 6e 66 6f 28 22 51 46 5f 42 56 22 29 3b 00 20 20 20 20 20 20 gic.=.LogicInfo("QF_BV");.......
c560 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 62 69 74 62 6c 61 73 74 4d 6f 64 65 28 29 20 3d .......options::bitblastMode().=
c580 3d 20 74 68 65 6f 72 79 3a 3a 62 76 3a 3a 42 49 54 42 4c 41 53 54 5f 4d 4f 44 45 5f 45 41 47 45 =.theory::bv::BITBLAST_MODE_EAGE
c5a0 52 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 67 65 74 4c 6f R).{...............d_logic.getLo
c5c0 67 69 63 53 74 72 69 6e 67 28 29 20 3d 3d 20 22 51 46 5f 41 42 56 22 29 20 26 26 00 20 20 7d 20 gicString().==."QF_ABV").&&...}.
c5e0 65 6c 73 65 20 69 66 20 28 28 64 5f 6c 6f 67 69 63 2e 67 65 74 4c 6f 67 69 63 53 74 72 69 6e 67 else.if.((d_logic.getLogicString
c600 28 29 20 3d 3d 20 22 51 46 5f 55 46 42 56 22 20 7c 7c 00 20 20 20 20 64 5f 6c 6f 67 69 63 20 3d ().==."QF_UFBV".||.....d_logic.=
c620 20 4c 6f 67 69 63 49 6e 66 6f 28 22 51 46 5f 4e 49 41 22 29 3b 00 20 20 7d 65 6c 73 65 20 69 66 .LogicInfo("QF_NIA");...}else.if
c640 20 28 64 5f 6c 6f 67 69 63 2e 67 65 74 4c 6f 67 69 63 53 74 72 69 6e 67 28 29 20 3d 3d 20 22 51 .(d_logic.getLogicString().==."Q
c660 46 5f 4e 52 41 22 20 26 26 20 6f 70 74 69 6f 6e 73 3a 3a 73 6f 6c 76 65 52 65 61 6c 41 73 49 6e F_NRA".&&.options::solveRealAsIn
c680 74 28 29 29 20 7b 00 20 20 20 20 64 5f 6c 6f 67 69 63 20 3d 20 4c 6f 67 69 63 49 6e 66 6f 28 22 t()).{.....d_logic.=.LogicInfo("
c6a0 51 46 5f 42 56 22 29 3b 00 20 20 7d 65 6c 73 65 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 73 6f QF_BV");...}else.if.(options::so
c6c0 6c 76 65 49 6e 74 41 73 42 56 28 29 20 3e 20 30 29 20 7b 00 20 20 20 20 64 5f 6c 6f 67 69 63 20 lveIntAsBV().>.0).{.....d_logic.
c6e0 3d 20 4c 6f 67 69 63 49 6e 66 6f 28 6f 70 74 69 6f 6e 73 3a 3a 66 6f 72 63 65 4c 6f 67 69 63 53 =.LogicInfo(options::forceLogicS
c700 74 72 69 6e 67 28 29 29 3b 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 66 6f 72 63 65 4c 6f 67 tring());...if(options::forceLog
c720 69 63 53 74 72 69 6e 67 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 76 6f 69 64 20 icString.wasSetByUser()).{.void.
c740 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 65 74 44 65 66 61 75 6c 74 73 28 29 20 7b 00 00 7d 00 20 20 SmtEngine::setDefaults().{..}...
c760 64 5f 6c 6f 67 69 63 2e 6c 6f 63 6b 28 29 3b 00 20 20 20 20 20 20 20 20 20 22 20 66 69 6e 69 73 d_logic.lock();..........".finis
c780 68 65 64 20 69 6e 69 74 69 61 6c 69 7a 69 6e 67 20 66 6f 72 20 74 68 69 73 20 72 75 6e 22 29 3b hed.initializing.for.this.run");
c7a0 00 20 20 41 73 73 65 72 74 28 21 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 2c 20 22 73 65 74 74 69 ...Assert(!d_fullyInited,."setti
c7c0 6e 67 20 6c 6f 67 69 63 20 69 6e 20 53 6d 74 45 6e 67 69 6e 65 20 62 75 74 20 74 68 65 20 65 6e ng.logic.in.SmtEngine.but.the.en
c7e0 67 69 6e 65 20 68 61 73 20 61 6c 72 65 61 64 79 22 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 gine.has.already".void.SmtEngine
c800 3a 3a 73 65 74 4c 6f 67 69 63 49 6e 74 65 72 6e 61 6c 28 29 20 74 68 72 6f 77 28 29 20 7b 00 00 ::setLogicInternal().throw().{..
c820 7d 00 20 20 72 65 74 75 72 6e 20 64 5f 6c 6f 67 69 63 3b 00 4c 6f 67 69 63 49 6e 66 6f 20 53 6d }...return.d_logic;.LogicInfo.Sm
c840 74 45 6e 67 69 6e 65 3a 3a 67 65 74 4c 6f 67 69 63 49 6e 66 6f 28 29 20 63 6f 6e 73 74 20 7b 00 tEngine::getLogicInfo().const.{.
c860 00 7d 00 20 20 73 65 74 4c 6f 67 69 63 28 73 74 72 69 6e 67 28 6c 6f 67 69 63 29 29 3b 00 20 20 .}...setLogic(string(logic));...
c880 20 20 74 68 72 6f 77 28 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 78 63 ..throw(ModalException,.LogicExc
c8a0 65 70 74 69 6f 6e 29 20 7b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 65 74 4c 6f 67 eption).{.void.SmtEngine::setLog
c8c0 69 63 28 63 6f 6e 73 74 20 63 68 61 72 2a 20 6c 6f 67 69 63 29 00 00 7d 00 20 20 7d 00 20 20 20 ic(const.char*.logic)..}...}....
c8e0 20 74 68 72 6f 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 65 2e 77 68 61 74 28 29 29 3b .throw.LogicException(e.what());
c900 00 20 20 7d 20 63 61 74 63 68 28 49 6c 6c 65 67 61 6c 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 ...}.catch(IllegalArgumentExcept
c920 69 6f 6e 26 20 65 29 20 7b 00 20 20 20 20 73 65 74 4c 6f 67 69 63 28 4c 6f 67 69 63 49 6e 66 6f ion&.e).{.....setLogic(LogicInfo
c940 28 73 29 29 3b 00 20 20 74 72 79 20 7b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 (s));...try.{...SmtScope.smts(th
c960 69 73 29 3b 00 20 20 20 20 74 68 72 6f 77 28 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 2c 20 4c is);.....throw(ModalException,.L
c980 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a ogicException).{.void.SmtEngine:
c9a0 3a 73 65 74 4c 6f 67 69 63 28 63 6f 6e 73 74 20 73 74 64 3a 3a 73 74 72 69 6e 67 26 20 73 29 00 :setLogic(const.std::string&.s).
c9c0 00 7d 00 20 20 73 65 74 4c 6f 67 69 63 49 6e 74 65 72 6e 61 6c 28 29 3b 00 20 20 64 5f 6c 6f 67 .}...setLogicInternal();...d_log
c9e0 69 63 20 3d 20 6c 6f 67 69 63 3b 00 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ic.=.logic;...}.................
ca00 20 20 20 20 20 20 20 20 20 22 66 69 6e 69 73 68 65 64 20 69 6e 69 74 69 61 6c 69 7a 69 6e 67 2e ........."finished.initializing.
ca20 22 29 3b 00 20 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 22 43 61 ");.....throw.ModalException("Ca
ca40 6e 6e 6f 74 20 73 65 74 20 6c 6f 67 69 63 20 69 6e 20 53 6d 74 45 6e 67 69 6e 65 20 61 66 74 65 nnot.set.logic.in.SmtEngine.afte
ca60 72 20 74 68 65 20 65 6e 67 69 6e 65 20 68 61 73 20 22 00 20 20 69 66 28 64 5f 66 75 6c 6c 79 49 r.the.engine.has."...if(d_fullyI
ca80 6e 69 74 65 64 29 20 7b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 nited).{...SmtScope.smts(this);.
caa0 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 65 74 4c 6f 67 69 63 28 63 6f 6e 73 74 20 4c void.SmtEngine::setLogic(const.L
cac0 6f 67 69 63 49 6e 66 6f 26 20 6c 6f 67 69 63 29 20 74 68 72 6f 77 28 4d 6f 64 61 6c 45 78 63 65 ogicInfo&.logic).throw(ModalExce
cae0 70 74 69 6f 6e 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c ption).{..}...}...............<<
cb00 20 65 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 57 61 72 6e 69 6e 67 28 29 20 3c 3c 20 22 43 56 .e.<<.endl;.....Warning().<<."CV
cb20 43 34 20 74 68 72 65 77 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 64 75 72 69 6e 67 20 63 6c 65 C4.threw.an.exception.during.cle
cb40 61 6e 75 70 2e 22 20 3c 3c 20 65 6e 64 6c 00 20 20 7d 20 63 61 74 63 68 28 45 78 63 65 70 74 69 anup.".<<.endl...}.catch(Excepti
cb60 6f 6e 26 20 65 29 20 7b 00 00 20 20 20 20 64 5f 63 68 61 6e 6e 65 6c 73 20 3d 20 4e 55 4c 4c 3b on&.e).{......d_channels.=.NULL;
cb80 00 20 20 20 20 64 65 6c 65 74 65 20 64 5f 63 68 61 6e 6e 65 6c 73 3b 00 00 20 20 20 20 64 5f 63 .....delete.d_channels;......d_c
cba0 6f 6e 74 65 78 74 20 3d 20 4e 55 4c 4c 3b 00 20 20 20 20 64 65 6c 65 74 65 20 64 5f 63 6f 6e 74 ontext.=.NULL;.....delete.d_cont
cbc0 65 78 74 3b 00 20 20 20 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 20 3d 20 4e 55 4c 4c 3b 00 20 ext;.....d_userContext.=.NULL;..
cbe0 20 20 20 64 65 6c 65 74 65 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 3b 00 00 20 20 20 20 64 5f ...delete.d_userContext;......d_
cc00 73 6d 74 41 74 74 72 69 62 75 74 65 73 20 3d 20 4e 55 4c 4c 3b 00 20 20 20 20 64 65 6c 65 74 65 smtAttributes.=.NULL;.....delete
cc20 20 64 5f 73 6d 74 41 74 74 72 69 62 75 74 65 73 3b 00 00 20 20 20 20 64 5f 70 72 69 76 61 74 65 .d_smtAttributes;......d_private
cc40 20 3d 20 4e 55 4c 4c 3b 00 20 20 20 20 64 65 6c 65 74 65 20 64 5f 70 72 69 76 61 74 65 3b 00 00 .=.NULL;.....delete.d_private;..
cc60 20 20 20 20 64 5f 73 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 20 3d 20 4e 55 4c 4c 3b ....d_statisticsRegistry.=.NULL;
cc80 00 20 20 20 20 64 65 6c 65 74 65 20 64 5f 73 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 .....delete.d_statisticsRegistry
cca0 3b 00 20 20 20 20 64 5f 73 74 61 74 73 20 3d 20 4e 55 4c 4c 3b 00 20 20 20 20 64 65 6c 65 74 65 ;.....d_stats.=.NULL;.....delete
ccc0 20 64 5f 73 74 61 74 73 3b 00 00 23 65 6e 64 69 66 00 20 20 20 20 64 5f 70 72 6f 6f 66 4d 61 6e .d_stats;..#endif.....d_proofMan
cce0 61 67 65 72 20 3d 20 4e 55 4c 4c 3b 00 20 20 20 20 64 65 6c 65 74 65 20 64 5f 70 72 6f 6f 66 4d ager.=.NULL;.....delete.d_proofM
cd00 61 6e 61 67 65 72 3b 00 23 69 66 64 65 66 20 43 56 43 34 5f 50 52 4f 4f 46 00 2f 2f 20 61 64 64 anager;.#ifdef.CVC4_PROOF.//.add
cd20 69 74 69 6f 6e 61 6c 6c 79 20 63 68 65 63 6b 73 20 66 6c 61 67 73 20 73 75 63 68 20 61 73 20 6f itionally.checks.flags.such.as.o
cd40 70 74 69 6f 6e 73 3a 3a 70 72 6f 6f 66 28 29 2e 00 2f 2f 20 42 65 63 75 61 73 65 20 6f 66 20 74 ptions::proof()..//.Becuase.of.t
cd60 68 69 73 2c 20 74 68 69 73 20 63 6f 64 65 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 61 his,.this.code.should.not.be.wra
cd80 70 70 65 64 20 69 6e 20 50 52 4f 4f 46 28 29 20 77 68 69 63 68 00 2f 2f 20 64 5f 70 72 6f 6f 66 pped.in.PROOF().which.//.d_proof
cda0 4d 61 6e 61 67 65 72 20 69 73 20 61 6c 77 61 79 73 20 63 72 65 61 74 65 64 20 77 68 65 6e 20 70 Manager.is.always.created.when.p
cdc0 72 6f 6f 66 73 20 61 72 65 20 65 6e 61 62 6c 65 64 20 61 74 20 63 6f 6e 66 69 67 75 72 65 20 74 roofs.are.enabled.at.configure.t
cde0 69 6d 65 2e 00 00 00 20 20 20 20 64 5f 64 65 63 69 73 69 6f 6e 45 6e 67 69 6e 65 20 3d 20 4e 55 ime........d_decisionEngine.=.NU
ce00 4c 4c 3b 00 20 20 20 20 64 65 6c 65 74 65 20 64 5f 64 65 63 69 73 69 6f 6e 45 6e 67 69 6e 65 3b LL;.....delete.d_decisionEngine;
ce20 00 20 20 20 20 64 5f 70 72 6f 70 45 6e 67 69 6e 65 20 3d 20 4e 55 4c 4c 3b 00 20 20 20 20 64 65 .....d_propEngine.=.NULL;.....de
ce40 6c 65 74 65 20 64 5f 70 72 6f 70 45 6e 67 69 6e 65 3b 00 20 20 20 20 64 5f 74 68 65 6f 72 79 45 lete.d_propEngine;.....d_theoryE
ce60 6e 67 69 6e 65 20 3d 20 4e 55 4c 4c 3b 00 20 20 20 20 64 65 6c 65 74 65 20 64 5f 74 68 65 6f 72 ngine.=.NULL;.....delete.d_theor
ce80 79 45 6e 67 69 6e 65 3b 00 00 20 20 20 20 64 5f 66 6d 66 52 65 63 46 75 6e 63 74 69 6f 6e 73 44 yEngine;......d_fmfRecFunctionsD
cea0 65 66 69 6e 65 64 2d 3e 64 65 6c 65 74 65 53 65 6c 66 28 29 3b 00 20 20 20 20 64 5f 64 65 66 69 efined->deleteSelf();.....d_defi
cec0 6e 65 64 46 75 6e 63 74 69 6f 6e 73 2d 3e 64 65 6c 65 74 65 53 65 6c 66 28 29 3b 00 00 20 20 20 nedFunctions->deleteSelf();.....
cee0 20 7d 00 20 20 20 20 20 20 64 5f 6d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 73 2d 3e 64 65 6c 65 74 65 .}.......d_modelCommands->delete
cf00 53 65 6c 66 28 29 3b 00 20 20 20 20 69 66 28 64 5f 6d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 73 20 21 Self();.....if(d_modelCommands.!
cf20 3d 20 4e 55 4c 4c 29 20 7b 00 00 20 20 20 20 44 65 6c 65 74 65 41 6e 64 43 6c 65 61 72 43 6f 6d =.NULL).{......DeleteAndClearCom
cf40 6d 61 6e 64 56 65 63 74 6f 72 28 64 5f 6d 6f 64 65 6c 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 73 mandVector(d_modelGlobalCommands
cf60 29 3b 00 00 20 20 20 20 64 5f 64 75 6d 70 43 6f 6d 6d 61 6e 64 73 2e 63 6c 65 61 72 28 29 3b 00 );......d_dumpCommands.clear();.
cf80 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 64 75 6d 70 43 6f 6d 6d 61 6e 64 73 5b 69 5d 20 3d 20 ....}.......d_dumpCommands[i].=.
cfa0 4e 55 4c 4c 3b 00 20 20 20 20 20 20 64 65 6c 65 74 65 20 64 5f 64 75 6d 70 43 6f 6d 6d 61 6e 64 NULL;.......delete.d_dumpCommand
cfc0 73 5b 69 5d 3b 00 20 20 20 20 66 6f 72 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 s[i];.....for(unsigned.i.=.0;.i.
cfe0 3c 20 64 5f 64 75 6d 70 43 6f 6d 6d 61 6e 64 73 2e 73 69 7a 65 28 29 3b 20 2b 2b 69 29 20 7b 00 <.d_dumpCommands.size();.++i).{.
d000 61 64 00 00 3b 00 00 00 cf 01 00 00 00 10 00 00 5e 00 00 00 00 00 00 00 ce 0f 00 00 a4 0f 00 00 ad..;...........^...............
d020 52 0f 00 00 4c 0f 00 00 45 0f 00 00 15 0f 00 00 ed 0e 00 00 9e 0e 00 00 96 0e 00 00 8f 0e 00 00 R...L...E.......................
d040 61 0e 00 00 3b 0e 00 00 ed 0d 00 00 e7 0d 00 00 e0 0d 00 00 dc 0d 00 00 db 0d 00 00 bc 0d 00 00 a...;...........................
d060 93 0d 00 00 4a 0d 00 00 1f 0d 00 00 e9 0c 00 00 e3 0c 00 00 df 0c 00 00 de 0c 00 00 c0 0c 00 00 ....J...........................
d080 7c 0c 00 00 45 0c 00 00 f5 0b 00 00 ed 0b 00 00 9c 0b 00 00 84 0b 00 00 43 0b 00 00 3d 0b 00 00 |...E...................C...=...
d0a0 3c 0b 00 00 15 0b 00 00 df 0a 00 00 81 0a 00 00 79 0a 00 00 11 0a 00 00 e4 09 00 00 de 09 00 00 <...............y...............
d0c0 dd 09 00 00 bd 09 00 00 8e 09 00 00 36 09 00 00 2e 09 00 00 cc 08 00 00 a5 08 00 00 9f 08 00 00 ............6...................
d0e0 9e 08 00 00 7b 08 00 00 49 08 00 00 f9 07 00 00 f1 07 00 00 97 07 00 00 6e 07 00 00 68 07 00 00 ....{...I...............n...h...
d100 67 07 00 00 43 07 00 00 10 07 00 00 bd 06 00 00 b5 06 00 00 58 06 00 00 2e 06 00 00 28 06 00 00 g...C...............X.......(...
d120 27 06 00 00 02 06 00 00 ce 05 00 00 82 05 00 00 7a 05 00 00 1d 05 00 00 f2 04 00 00 ec 04 00 00 '...............z...............
d140 eb 04 00 00 c6 04 00 00 92 04 00 00 46 04 00 00 3e 04 00 00 e1 03 00 00 b6 03 00 00 b0 03 00 00 ............F...>...............
d160 af 03 00 00 8a 03 00 00 56 03 00 00 07 03 00 00 ff 02 00 00 a2 02 00 00 79 02 00 00 73 02 00 00 ........V...............y...s...
d180 53 02 00 00 24 02 00 00 d7 01 00 00 cf 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 S...$...........................
d1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 74 .....................}.........t
d1e0 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 72 65 70 65 61 74 2d 73 69 6d hrow.OptionException("repeat-sim
d200 70 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 20 75 6e 73 61 74 20 63 6f 72 65 73 p.not.supported.with.unsat.cores
d220 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 72 65 70 65 61 74 53 69 6d 70 ");.......if(options::repeatSimp
d240 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e .wasSetByUser()).{.....if(option
d260 73 3a 3a 72 65 70 65 61 74 53 69 6d 70 28 29 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 s::repeatSimp()).{.....}.......s
d280 65 74 4f 70 74 69 6f 6e 28 22 62 76 2d 69 6e 74 72 6f 2d 70 6f 77 32 22 2c 20 66 61 6c 73 65 29 etOption("bv-intro-pow2",.false)
d2a0 3b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 ;.......Notice().<<."SmtEngine:.
d2c0 74 75 72 6e 69 6e 67 20 6f 66 66 20 62 76 2d 69 6e 74 72 6f 64 75 63 65 2d 70 6f 77 32 20 74 6f turning.off.bv-introduce-pow2.to
d2e0 20 73 75 70 70 6f 72 74 20 75 6e 73 61 74 2d 63 6f 72 65 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 .support.unsat-cores".<<.endl;..
d300 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 .....}.........throw.OptionExcep
d320 74 69 6f 6e 28 22 62 76 2d 69 6e 74 72 6f 2d 70 6f 77 32 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 tion("bv-intro-pow2.not.supporte
d340 64 20 77 69 74 68 20 75 6e 73 61 74 20 63 6f 72 65 73 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f d.with.unsat.cores");.......if(o
d360 70 74 69 6f 6e 73 3a 3a 62 76 49 6e 74 72 6f 64 75 63 65 50 6f 77 32 2e 77 61 73 53 65 74 42 79 ptions::bvIntroducePow2.wasSetBy
d380 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 62 76 49 6e 74 72 User()).{.....if(options::bvIntr
d3a0 6f 64 75 63 65 50 6f 77 32 28 29 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 oducePow2()).{......}.......opti
d3c0 6f 6e 73 3a 3a 62 6f 6f 6c 54 6f 42 69 74 76 65 63 74 6f 72 2e 73 65 74 28 66 61 6c 73 65 29 3b ons::boolToBitvector.set(false);
d3e0 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 .......Notice().<<."SmtEngine:.t
d400 75 72 6e 69 6e 67 20 6f 66 66 20 62 6f 6f 6c 2d 74 6f 2d 62 69 74 76 65 63 74 6f 72 20 74 6f 20 urning.off.bool-to-bitvector.to.
d420 73 75 70 70 6f 72 74 20 75 6e 73 61 74 2d 63 6f 72 65 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 support.unsat-cores".<<.endl;...
d440 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 ....}.........throw.OptionExcept
d460 69 6f 6e 28 22 62 6f 6f 6c 2d 74 6f 2d 62 76 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 ion("bool-to-bv.not.supported.wi
d480 74 68 20 75 6e 73 61 74 20 63 6f 72 65 73 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f 70 74 69 6f th.unsat.cores");.......if(optio
d4a0 6e 73 3a 3a 62 6f 6f 6c 54 6f 42 69 74 76 65 63 74 6f 72 2e 77 61 73 53 65 74 42 79 55 73 65 72 ns::boolToBitvector.wasSetByUser
d4c0 28 29 29 20 7b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 62 6f 6f 6c 54 6f 42 69 74 76 ()).{.....if(options::boolToBitv
d4e0 65 63 74 6f 72 28 29 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a ector()).{......}.......options:
d500 3a 62 69 74 76 65 63 74 6f 72 54 6f 42 6f 6f 6c 2e 73 65 74 28 66 61 6c 73 65 29 3b 00 20 20 20 :bitvectorToBool.set(false);....
d520 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 ...Notice().<<."SmtEngine:.turni
d540 6e 67 20 6f 66 66 20 62 69 74 76 65 63 74 6f 72 2d 74 6f 2d 62 6f 6f 6c 20 74 6f 20 73 75 70 70 ng.off.bitvector-to-bool.to.supp
d560 6f 72 74 20 75 6e 73 61 74 2d 63 6f 72 65 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 ort.unsat-cores".<<.endl;.......
d580 7d 00 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 }.........throw.OptionException(
d5a0 22 62 76 2d 74 6f 2d 62 6f 6f 6c 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 20 75 "bv-to-bool.not.supported.with.u
d5c0 6e 73 61 74 20 63 6f 72 65 73 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a nsat.cores");.......if(options::
d5e0 62 69 74 76 65 63 74 6f 72 54 6f 42 6f 6f 6c 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 bitvectorToBool.wasSetByUser()).
d600 7b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 62 69 74 76 65 63 74 6f 72 54 6f 42 6f 6f {.....if(options::bitvectorToBoo
d620 6c 28 29 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 l()).{......}.......options::pre
d640 53 6b 6f 6c 65 6d 51 75 61 6e 74 2e 73 65 74 28 66 61 6c 73 65 29 3b 00 20 20 20 20 20 20 4e 6f SkolemQuant.set(false);.......No
d660 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 tice().<<."SmtEngine:.turning.of
d680 66 20 70 72 65 2d 73 6b 6f 6c 65 6d 69 7a 61 74 69 6f 6e 20 74 6f 20 73 75 70 70 6f 72 74 20 75 f.pre-skolemization.to.support.u
d6a0 6e 73 61 74 2d 63 6f 72 65 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 7d 00 20 20 20 nsat-cores".<<.endl;.......}....
d6c0 20 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 70 72 65 2d .....throw.OptionException("pre-
d6e0 73 6b 6f 6c 65 6d 69 7a 61 74 69 6f 6e 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 skolemization.not.supported.with
d700 20 75 6e 73 61 74 20 63 6f 72 65 73 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 .unsat.cores");.......if(options
d720 3a 3a 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e 74 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 ::preSkolemQuant.wasSetByUser())
d740 20 7b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e .{.....if(options::preSkolemQuan
d760 74 28 29 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 73 6f 72 t()).{......}.......options::sor
d780 74 49 6e 66 65 72 65 6e 63 65 2e 73 65 74 28 66 61 6c 73 65 29 3b 00 20 20 20 20 20 20 4e 6f 74 tInference.set(false);.......Not
d7a0 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 ice().<<."SmtEngine:.turning.off
d7c0 20 73 6f 72 74 20 69 6e 66 65 72 65 6e 63 65 20 74 6f 20 73 75 70 70 6f 72 74 20 75 6e 73 61 74 .sort.inference.to.support.unsat
d7e0 2d 63 6f 72 65 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 -cores".<<.endl;.......}........
d800 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 73 6f 72 74 20 69 6e 66 .throw.OptionException("sort.inf
d820 65 72 65 6e 63 65 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 20 75 6e 73 61 74 20 erence.not.supported.with.unsat.
d840 63 6f 72 65 73 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 73 6f 72 74 49 cores");.......if(options::sortI
d860 6e 66 65 72 65 6e 63 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 69 nference.wasSetByUser()).{.....i
d880 66 28 6f 70 74 69 6f 6e 73 3a 3a 73 6f 72 74 49 6e 66 65 72 65 6e 63 65 28 29 29 20 7b 00 00 20 f(options::sortInference()).{...
d8a0 20 20 20 7d 00 20 20 20 20 20 20 73 65 74 4f 70 74 69 6f 6e 28 22 70 62 2d 72 65 77 72 69 74 65 ...}.......setOption("pb-rewrite
d8c0 73 22 2c 20 66 61 6c 73 65 29 3b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 s",.false);.......Notice().<<."S
d8e0 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 20 70 73 65 75 64 6f 62 6f 6f 6c mtEngine:.turning.off.pseudobool
d900 65 61 6e 20 72 65 77 72 69 74 65 73 20 74 6f 20 73 75 70 70 6f 72 74 20 75 6e 73 61 74 2d 63 6f ean.rewrites.to.support.unsat-co
d920 72 65 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 74 68 res".<<.endl;.......}.........th
d940 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 70 73 65 75 64 6f 62 6f 6f 6c 65 row.OptionException("pseudoboole
d960 61 6e 20 72 65 77 72 69 74 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 20 75 an.rewrites.not.supported.with.u
d980 6e 73 61 74 20 63 6f 72 65 73 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a nsat.cores");.......if(options::
d9a0 70 62 52 65 77 72 69 74 65 73 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 pbRewrites.wasSetByUser()).{....
d9c0 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 70 62 52 65 77 72 69 74 65 73 28 29 29 20 7b 00 00 20 20 .if(options::pbRewrites()).{....
d9e0 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 ..}.......options::unconstrained
da00 53 69 6d 70 2e 73 65 74 28 66 61 6c 73 65 29 3b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 Simp.set(false);.......Notice().
da20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 20 75 6e 63 6f 6e <<."SmtEngine:.turning.off.uncon
da40 73 74 72 61 69 6e 65 64 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 74 6f 20 73 75 70 70 6f strained.simplification.to.suppo
da60 72 74 20 75 6e 73 61 74 2d 63 6f 72 65 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 7d rt.unsat-cores".<<.endl;.......}
da80 00 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 .........throw.OptionException("
daa0 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 6e 6f 74 unconstrained.simplification.not
dac0 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 20 75 6e 73 61 74 20 63 6f 72 65 73 22 29 3b 00 20 .supported.with.unsat.cores");..
dae0 20 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 .....if(options::unconstrainedSi
db00 6d 70 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 69 66 28 6f 70 74 69 mp.wasSetByUser()).{.....if(opti
db20 6f 6e 73 3a 3a 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 28 29 29 20 7b 00 00 20 20 20 ons::unconstrainedSimp()).{.....
db40 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e .}.......options::simplification
db60 4d 6f 64 65 2e 73 65 74 28 53 49 4d 50 4c 49 46 49 43 41 54 49 4f 4e 5f 4d 4f 44 45 5f 4e 4f 4e Mode.set(SIMPLIFICATION_MODE_NON
db80 45 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 E);................<<.endl;.....
dba0 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e ..Notice().<<."SmtEngine:.turnin
dbc0 67 20 6f 66 66 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 74 6f 20 73 75 70 70 6f 72 74 20 g.off.simplification.to.support.
dbe0 75 6e 73 61 74 2d 63 6f 72 65 73 22 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 74 68 72 unsat-cores".......}.........thr
dc00 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 73 69 6d 70 6c 69 66 69 63 61 74 69 ow.OptionException("simplificati
dc20 6f 6e 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 20 75 6e 73 61 74 20 63 6f 72 65 on.not.supported.with.unsat.core
dc40 73 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 73 69 6d 70 6c 69 66 69 63 s");.......if(options::simplific
dc60 61 74 69 6f 6e 4d 6f 64 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 ationMode.wasSetByUser()).{.....
dc80 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 4d 6f 64 65 28 29 if(options::simplificationMode()
dca0 20 21 3d 20 53 49 4d 50 4c 49 46 49 43 41 54 49 4f 4e 5f 4d 4f 44 45 5f 4e 4f 4e 45 29 20 7b 00 .!=.SIMPLIFICATION_MODE_NONE).{.
dcc0 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 73 28 29 29 20 7b 00 00 20 ..if(options::unsatCores()).{...
dce0 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 65 74 4f 70 74 69 6f 6e 28 22 70 72 6f 64 75 63 .}.....}.......setOption("produc
dd00 65 2d 61 73 73 65 72 74 69 6f 6e 73 22 2c 20 53 45 78 70 72 28 22 74 72 75 65 22 29 29 3b 00 20 e-assertions",.SExpr("true"));..
dd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 2e 22 ..............<<."check-models."
dd40 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 .<<.endl;.......Notice().<<."Smt
dd60 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 6e 20 70 72 6f 64 75 63 65 2d 61 73 73 65 72 Engine:.turning.on.produce-asser
dd80 74 69 6f 6e 73 20 74 6f 20 73 75 70 70 6f 72 74 20 22 00 20 20 20 20 69 66 28 21 20 6f 70 74 69 tions.to.support.".....if(!.opti
dda0 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 41 73 73 65 72 74 69 6f 6e 73 28 29 29 20 7b 00 20 20 69 66 ons::produceAssertions()).{...if
ddc0 28 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 73 28 29 29 20 7b 00 00 20 20 7d 00 (options::checkModels()).{....}.
dde0 20 20 20 20 2a 2f 00 20 20 20 20 7d 00 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 ....*/.....}.......Trace("smt").
de00 3c 3c 20 22 74 75 72 6e 69 6e 67 20 6f 6e 20 73 74 72 69 6e 67 73 2d 66 6d 66 2c 20 66 6f 72 20 <<."turning.on.strings-fmf,.for.
de20 73 74 72 69 6e 67 73 2d 65 78 70 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 20 strings-exp".<<.std::endl;......
de40 20 6f 70 74 69 6f 6e 73 3a 3a 73 74 72 69 6e 67 46 4d 46 2e 73 65 74 28 20 74 72 75 65 20 29 3b .options::stringFMF.set(.true.);
de60 00 20 20 20 20 69 66 28 21 20 6f 70 74 69 6f 6e 73 3a 3a 73 74 72 69 6e 67 46 4d 46 2e 77 61 73 .....if(!.options::stringFMF.was
de80 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 2f 2a 00 20 20 20 20 7d 2a 2f 00 20 20 SetByUser()).{...../*.....}*/...
dea0 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 74 75 72 6e 69 6e 67 20 6f 6e 20 ....Trace("smt").<<."turning.on.
dec0 72 65 77 72 69 74 65 2d 64 69 76 6b 2c 20 66 6f 72 20 73 74 72 69 6e 67 73 2d 65 78 70 22 20 3c rewrite-divk,.for.strings-exp".<
dee0 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 72 65 77 72 <.std::endl;.......options::rewr
df00 69 74 65 44 69 76 6b 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 21 20 6f 70 iteDivk.set(.true.);.....if(!.op
df20 74 69 6f 6e 73 3a 3a 72 65 77 72 69 74 65 44 69 76 6b 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 tions::rewriteDivk.wasSetByUser(
df40 29 29 20 7b 00 20 20 20 20 2f 2a 00 20 20 20 20 7d 00 20 20 20 20 20 20 54 72 61 63 65 28 22 73 )).{...../*.....}.......Trace("s
df60 6d 74 22 29 20 3c 3c 20 22 74 75 72 6e 69 6e 67 20 6f 6e 20 66 6d 66 2d 69 6e 73 74 2d 65 6e 67 mt").<<."turning.on.fmf-inst-eng
df80 69 6e 65 2c 20 66 6f 72 20 73 74 72 69 6e 67 73 2d 65 78 70 22 20 3c 3c 20 73 74 64 3a 3a 65 6e ine,.for.strings-exp".<<.std::en
dfa0 64 6c 3b 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 66 6d 66 49 6e 73 74 45 6e 67 69 6e 65 dl;.......options::fmfInstEngine
dfc0 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 21 20 6f 70 74 69 6f 6e 73 3a 3a .set(.true.);.....if(!.options::
dfe0 66 6d 66 49 6e 73 74 45 6e 67 69 6e 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 fmfInstEngine.wasSetByUser()).{.
e000 61 64 00 00 0a 00 00 00 7e 01 00 00 00 10 00 00 56 00 00 00 00 00 00 00 a9 0f 00 00 82 0f 00 00 ad......~.......V...............
e020 7c 0f 00 00 7b 0f 00 00 77 0f 00 00 76 0f 00 00 33 0f 00 00 d4 0e 00 00 a4 0e 00 00 a0 0e 00 00 |...{...w...v...3...............
e040 9f 0e 00 00 79 0e 00 00 4b 0e 00 00 26 0e 00 00 f8 0d 00 00 c5 0d 00 00 94 0d 00 00 4f 0d 00 00 ....y...K...&...............O...
e060 18 0d 00 00 12 0d 00 00 0e 0d 00 00 0d 0d 00 00 df 0c 00 00 af 0c 00 00 81 0c 00 00 3f 0c 00 00 ............................?...
e080 11 0c 00 00 c2 0b 00 00 9f 0b 00 00 99 0b 00 00 2b 0b 00 00 c5 0a 00 00 9f 0a 00 00 83 0a 00 00 ................+...............
e0a0 66 0a 00 00 60 0a 00 00 4d 0a 00 00 39 0a 00 00 35 0a 00 00 b2 09 00 00 84 09 00 00 54 09 00 00 f...`...M...9...5...........T...
e0c0 ea 08 00 00 c7 08 00 00 b2 08 00 00 9c 08 00 00 96 08 00 00 92 08 00 00 91 08 00 00 5a 08 00 00 ............................Z...
e0e0 26 08 00 00 ca 07 00 00 82 07 00 00 57 07 00 00 53 07 00 00 16 07 00 00 e1 06 00 00 97 06 00 00 &...........W...S...............
e100 26 06 00 00 cb 05 00 00 56 05 00 00 f2 04 00 00 ee 04 00 00 ed 04 00 00 bd 04 00 00 72 04 00 00 &.......V...................r...
e120 29 04 00 00 f4 03 00 00 e9 03 00 00 b7 03 00 00 b3 03 00 00 b2 03 00 00 7a 03 00 00 38 03 00 00 ).......................z...8...
e140 13 03 00 00 e7 02 00 00 b8 02 00 00 89 02 00 00 5d 02 00 00 33 02 00 00 06 02 00 00 e0 01 00 00 ................]...3...........
e160 c4 01 00 00 9e 01 00 00 7f 01 00 00 7e 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 ............~...................
e180 20 20 20 20 20 21 64 5f 6c 6f 67 69 63 2e 61 72 65 52 65 61 6c 73 55 73 65 64 28 29 3b 00 20 20 .....!d_logic.areRealsUsed();...
e1a0 20 20 20 20 21 64 5f 6c 6f 67 69 63 2e 69 73 44 69 66 66 65 72 65 6e 63 65 4c 6f 67 69 63 28 29 ....!d_logic.isDifferenceLogic()
e1c0 20 26 26 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 4c 69 6e 65 61 72 28 29 20 26 26 00 .&&.......d_logic.isLinear().&&.
e1e0 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f 41 52 49 54 ......d_logic.isPure(THEORY_ARIT
e200 48 29 20 26 26 00 20 20 20 20 62 6f 6f 6c 20 71 66 5f 6c 69 61 20 3d 20 21 64 5f 6c 6f 67 69 63 H).&&.....bool.qf_lia.=.!d_logic
e220 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 26 26 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 .isQuantified().&&.......d_logic
e240 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 42 56 29 3b 00 20 20 20 .isTheoryEnabled(THEORY_BV);....
e260 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 ...d_logic.isTheoryEnabled(THEOR
e280 59 5f 55 46 29 20 26 26 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 Y_UF).&&.......d_logic.isTheoryE
e2a0 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 29 20 26 26 00 20 20 20 20 62 6f 6f 6c nabled(THEORY_ARRAY).&&.....bool
e2c0 20 71 66 5f 61 75 66 62 76 20 3d 20 21 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 .qf_aufbv.=.!d_logic.isQuantifie
e2e0 64 28 29 20 26 26 00 20 20 69 66 28 21 20 6f 70 74 69 6f 6e 73 3a 3a 64 6f 49 54 45 53 69 6d 70 d().&&...if(!.options::doITESimp
e300 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 2f 2f 20 51 46 5f 4c 49 41 20 6c .wasSetByUser()).{...//.QF_LIA.l
e320 6f 67 69 63 73 2e 20 2d 2d 4b 20 5b 32 30 31 34 2f 31 30 2f 31 35 5d 00 20 20 2f 2f 20 57 41 52 ogics..--K.[2014/10/15]...//.WAR
e340 4e 49 4e 47 3a 20 54 68 65 73 65 20 63 68 65 63 6b 73 20 6d 61 74 63 68 20 6d 75 63 68 20 6d 6f NING:.These.checks.match.much.mo
e360 72 65 20 74 68 61 6e 20 6a 75 73 74 20 51 46 5f 41 55 46 42 56 20 61 6e 64 00 20 20 2f 2f 20 54 re.than.just.QF_AUFBV.and...//.T
e380 75 72 6e 20 6f 6e 20 69 74 65 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 66 6f 72 20 51 46 urn.on.ite.simplification.for.QF
e3a0 5f 4c 49 41 20 61 6e 64 20 51 46 5f 41 55 46 42 56 00 00 20 20 7d 00 20 20 20 20 54 68 65 6f 72 _LIA.and.QF_AUFBV....}.....Theor
e3c0 79 3a 3a 73 65 74 55 6e 69 6e 74 65 72 70 72 65 74 65 64 53 6f 72 74 4f 77 6e 65 72 28 54 48 45 y::setUninterpretedSortOwner(THE
e3e0 4f 52 59 5f 55 46 29 3b 00 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 54 68 65 6f 72 79 3a 3a ORY_UF);...}.else.{.....Theory::
e400 73 65 74 55 6e 69 6e 74 65 72 70 72 65 74 65 64 53 6f 72 74 4f 77 6e 65 72 28 54 48 45 4f 52 59 setUninterpretedSortOwner(THEORY
e420 5f 41 52 52 41 59 29 3b 00 20 20 20 20 20 28 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 _ARRAY);......(d_logic.isQuantif
e440 69 65 64 28 29 20 26 26 20 21 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 ied().&&.!d_logic.isTheoryEnable
e460 64 28 54 48 45 4f 52 59 5f 55 46 29 29 29 29 20 7b 00 20 20 69 66 28 64 5f 6c 6f 67 69 63 2e 69 d(THEORY_UF)))).{...if(d_logic.i
e480 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 29 20 26 26 20 sTheoryEnabled(THEORY_ARRAY).&&.
e4a0 28 20 21 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 7c 7c 00 20 20 2f (.!d_logic.isQuantified().||.../
e4c0 2f 20 49 66 20 69 6e 20 61 72 72 61 79 73 2c 20 73 65 74 20 74 68 65 20 55 46 20 68 61 6e 64 6c /.If.in.arrays,.set.the.UF.handl
e4e0 65 72 20 74 6f 20 61 72 72 61 79 73 00 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 73 er.to.arrays....}.....options::s
e500 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 4d 6f 64 65 2e 73 65 74 28 71 66 5f 73 61 74 20 3f 20 53 implificationMode.set(qf_sat.?.S
e520 49 4d 50 4c 49 46 49 43 41 54 49 4f 4e 5f 4d 4f 44 45 5f 4e 4f 4e 45 20 3a 20 53 49 4d 50 4c 49 IMPLIFICATION_MODE_NONE.:.SIMPLI
e540 46 49 43 41 54 49 4f 4e 5f 4d 4f 44 45 5f 42 41 54 43 48 29 3b 00 20 20 20 20 2f 2f 6f 70 74 69 FICATION_MODE_BATCH);.....//opti
e560 6f 6e 73 3a 3a 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 4d 6f 64 65 2e 73 65 74 28 71 66 5f 73 ons::simplificationMode.set(qf_s
e580 61 74 20 7c 7c 20 71 75 61 6e 74 69 66 69 65 72 73 20 3f 20 53 49 4d 50 4c 49 46 49 43 41 54 49 at.||.quantifiers.?.SIMPLIFICATI
e5a0 4f 4e 5f 4d 4f 44 45 5f 4e 4f 4e 45 20 3a 20 53 49 4d 50 4c 49 46 49 43 41 54 49 4f 4e 5f 4d 4f ON_MODE_NONE.:.SIMPLIFICATION_MO
e5c0 44 45 5f 42 41 54 43 48 29 3b 00 20 20 20 20 2f 2f 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 3d DE_BATCH);.....//simplification=
e5e0 6e 6f 6e 65 20 77 6f 72 6b 73 20 62 65 74 74 65 72 20 66 6f 72 20 53 4d 54 20 4c 49 42 20 62 65 none.works.better.for.SMT.LIB.be
e600 6e 63 68 6d 61 72 6b 73 20 77 69 74 68 20 71 75 61 6e 74 69 66 69 65 72 73 2c 20 6e 6f 74 20 6f nchmarks.with.quantifiers,.not.o
e620 74 68 65 72 73 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 73 65 74 74 69 thers.....Trace("smt").<<."setti
e640 6e 67 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 6d 6f 64 65 20 74 6f 20 3c 22 20 3c 3c 20 ng.simplification.mode.to.<".<<.
e660 64 5f 6c 6f 67 69 63 2e 67 65 74 4c 6f 67 69 63 53 74 72 69 6e 67 28 29 20 3c 3c 20 22 3e 20 22 d_logic.getLogicString().<<.">."
e680 20 3c 3c 20 28 21 71 66 5f 73 61 74 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 62 6f 6f 6c 20 .<<.(!qf_sat).<<.endl;.....bool.
e6a0 71 66 5f 73 61 74 20 3d 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f 42 qf_sat.=.d_logic.isPure(THEORY_B
e6c0 4f 4f 4c 29 20 26 26 20 21 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 3b OOL).&&.!d_logic.isQuantified();
e6e0 00 20 20 69 66 28 21 20 6f 70 74 69 6f 6e 73 3a 3a 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 4d ...if(!.options::simplificationM
e700 6f 64 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 2f 2f 20 62 79 20 64 65 ode.wasSetByUser()).{...//.by.de
e720 66 61 75 6c 74 2c 20 6e 6f 6e 63 6c 61 75 73 61 6c 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e fault,.nonclausal.simplification
e740 20 69 73 20 6f 66 66 20 66 6f 72 20 51 46 5f 53 41 54 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f .is.off.for.QF_SAT...}.....optio
e760 6e 73 3a 3a 75 66 53 79 6d 6d 65 74 72 79 42 72 65 61 6b 65 72 2e 73 65 74 28 71 66 5f 75 66 29 ns::ufSymmetryBreaker.set(qf_uf)
e780 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 73 65 74 74 69 6e 67 20 75 ;.....Trace("smt").<<."setting.u
e7a0 66 20 73 79 6d 6d 65 74 72 79 20 62 72 65 61 6b 65 72 20 74 6f 20 22 20 3c 3c 20 71 66 5f 75 66 f.symmetry.breaker.to.".<<.qf_uf
e7c0 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 62 6f 6f 6c 20 71 66 5f 75 66 20 3d 20 64 5f 6c 6f 67 .<<.endl;.....bool.qf_uf.=.d_log
e7e0 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f 55 46 29 20 26 26 20 21 64 5f 6c 6f 67 69 63 ic.isPure(THEORY_UF).&&.!d_logic
e800 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 26 26 20 21 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f .isQuantified().&&.!options::pro
e820 6f 66 28 29 3b 00 20 20 69 66 28 21 20 6f 70 74 69 6f 6e 73 3a 3a 75 66 53 79 6d 6d 65 74 72 79 of();...if(!.options::ufSymmetry
e840 42 72 65 61 6b 65 72 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 2f 2f 20 62 Breaker.wasSetByUser()).{...//.b
e860 79 20 64 65 66 61 75 6c 74 2c 20 73 79 6d 6d 65 74 72 79 20 62 72 65 61 6b 65 72 20 69 73 20 6f y.default,.symmetry.breaker.is.o
e880 6e 20 6f 6e 6c 79 20 66 6f 72 20 51 46 5f 55 46 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 n.only.for.QF_UF....}.....}.....
e8a0 20 20 64 5f 6c 6f 67 69 63 2e 6c 6f 63 6b 28 29 3b 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 20 ..d_logic.lock();.......d_logic.
e8c0 3d 20 6c 6f 67 3b 00 20 20 20 20 20 20 6c 6f 67 2e 65 6e 61 62 6c 65 54 68 65 6f 72 79 28 54 48 =.log;.......log.enableTheory(TH
e8e0 45 4f 52 59 5f 55 46 29 3b 00 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 EORY_UF);.......Trace("smt").<<.
e900 22 62 65 63 61 75 73 65 20 61 20 74 68 65 6f 72 79 20 74 68 61 74 20 70 65 72 6d 69 74 73 20 42 "because.a.theory.that.permits.B
e920 6f 6f 6c 65 61 6e 20 74 65 72 6d 73 20 69 73 20 65 6e 61 62 6c 65 64 2c 20 61 6c 73 6f 20 65 6e oolean.terms.is.enabled,.also.en
e940 61 62 6c 69 6e 67 20 55 46 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 4c 6f 67 69 63 49 abling.UF".<<.endl;.......LogicI
e960 6e 66 6f 20 6c 6f 67 28 64 5f 6c 6f 67 69 63 2e 67 65 74 55 6e 6c 6f 63 6b 65 64 43 6f 70 79 28 nfo.log(d_logic.getUnlockedCopy(
e980 29 29 3b 00 20 20 20 20 69 66 28 21 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 ));.....if(!d_logic.isTheoryEnab
e9a0 6c 65 64 28 54 48 45 4f 52 59 5f 55 46 29 29 20 7b 00 20 20 69 66 28 64 5f 6c 6f 67 69 63 2e 69 led(THEORY_UF)).{...if(d_logic.i
e9c0 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 29 20 7c 7c 20 sTheoryEnabled(THEORY_ARRAY).||.
e9e0 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 44 d_logic.isTheoryEnabled(THEORY_D
ea00 41 54 41 54 59 50 45 53 29 20 7c 7c 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 ATATYPES).||.d_logic.isTheoryEna
ea20 62 6c 65 64 28 54 48 45 4f 52 59 5f 53 45 54 53 29 29 20 7b 00 20 20 7d 00 20 20 20 20 64 5f 6c bled(THEORY_SETS)).{...}.....d_l
ea40 6f 67 69 63 2e 6c 6f 63 6b 28 29 3b 00 20 20 20 20 64 5f 6c 6f 67 69 63 20 3d 20 6c 6f 67 3b 00 ogic.lock();.....d_logic.=.log;.
ea60 20 20 20 20 7d 00 20 20 20 20 20 20 6c 6f 67 2e 61 72 69 74 68 4f 6e 6c 79 4c 69 6e 65 61 72 28 ....}.......log.arithOnlyLinear(
ea80 29 3b 00 20 20 20 20 20 20 6c 6f 67 2e 65 6e 61 62 6c 65 49 6e 74 65 67 65 72 73 28 29 3b 00 20 );.......log.enableIntegers();..
eaa0 20 20 20 20 20 6c 6f 67 2e 65 6e 61 62 6c 65 54 68 65 6f 72 79 28 54 48 45 4f 52 59 5f 41 52 49 .....log.enableTheory(THEORY_ARI
eac0 54 48 29 3b 00 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 62 65 63 61 TH);.......Trace("smt").<<."beca
eae0 75 73 65 20 73 74 72 69 6e 67 73 20 61 72 65 20 65 6e 61 62 6c 65 64 2c 20 61 6c 73 6f 20 65 6e use.strings.are.enabled,.also.en
eb00 61 62 6c 69 6e 67 20 6c 69 6e 65 61 72 20 69 6e 74 65 67 65 72 20 61 72 69 74 68 6d 65 74 69 63 abling.linear.integer.arithmetic
eb20 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 69 66 28 21 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 ".<<.endl;.....if(!d_logic.isThe
eb40 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 49 54 48 29 20 7c 7c 20 64 5f 6c 6f oryEnabled(THEORY_ARITH).||.d_lo
eb60 67 69 63 2e 69 73 44 69 66 66 65 72 65 6e 63 65 4c 6f 67 69 63 28 29 20 7c 7c 20 21 64 5f 6c 6f gic.isDifferenceLogic().||.!d_lo
eb80 67 69 63 2e 61 72 65 49 6e 74 65 67 65 72 73 55 73 65 64 28 29 29 20 7b 00 20 20 20 20 7d 00 20 gic.areIntegersUsed()).{.....}..
eba0 20 20 20 20 20 6c 6f 67 2e 65 6e 61 62 6c 65 54 68 65 6f 72 79 28 54 48 45 4f 52 59 5f 55 46 29 .....log.enableTheory(THEORY_UF)
ebc0 3b 00 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 62 65 63 61 75 73 65 ;.......Trace("smt").<<."because
ebe0 20 73 74 72 69 6e 67 73 20 61 72 65 20 65 6e 61 62 6c 65 64 2c 20 61 6c 73 6f 20 65 6e 61 62 6c .strings.are.enabled,.also.enabl
ec00 69 6e 67 20 55 46 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 69 66 28 21 64 5f 6c 6f 67 69 63 ing.UF".<<.endl;.....if(!d_logic
ec20 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 55 46 29 29 20 7b 00 20 .isTheoryEnabled(THEORY_UF)).{..
ec40 20 20 20 2f 2f 20 53 74 72 69 6e 67 73 20 72 65 71 75 69 72 65 73 20 61 72 69 74 68 20 66 6f 72 ...//.Strings.requires.arith.for
ec60 20 6c 65 6e 67 74 68 20 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 61 6e 64 20 61 6c 73 6f 20 55 46 .length.constraints,.and.also.UF
ec80 00 20 20 20 20 4c 6f 67 69 63 49 6e 66 6f 20 6c 6f 67 28 64 5f 6c 6f 67 69 63 2e 67 65 74 55 6e .....LogicInfo.log(d_logic.getUn
eca0 6c 6f 63 6b 65 64 43 6f 70 79 28 29 29 3b 00 20 20 69 66 28 64 5f 6c 6f 67 69 63 2e 69 73 54 68 lockedCopy());...if(d_logic.isTh
ecc0 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 53 54 52 49 4e 47 53 29 29 20 7b 00 20 eoryEnabled(THEORY_STRINGS)).{..
ece0 20 2f 2f 20 73 74 72 69 6e 67 73 20 72 65 71 75 69 72 65 20 4c 49 41 2c 20 55 46 3b 20 77 69 64 .//.strings.require.LIA,.UF;.wid
ed00 65 6e 20 74 68 65 20 6c 6f 67 69 63 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 en.the.logic....}.....}.......op
ed20 74 69 6f 6e 73 3a 3a 74 68 65 6f 72 79 4f 66 4d 6f 64 65 2e 73 65 74 28 54 48 45 4f 52 59 5f 4f tions::theoryOfMode.set(THEORY_O
ed40 46 5f 54 45 52 4d 5f 42 41 53 45 44 29 3b 00 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 F_TERM_BASED);.......Trace("smt"
ed60 29 20 3c 3c 20 22 73 65 74 74 69 6e 67 20 74 68 65 6f 72 79 6f 66 2d 6d 6f 64 65 20 74 6f 20 74 ).<<."setting.theoryof-mode.to.t
ed80 65 72 6d 2d 62 61 73 65 64 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 21 64 5f 6c 6f erm-based".<<.endl;........!d_lo
eda0 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 53 45 54 53 29 gic.isTheoryEnabled(THEORY_SETS)
edc0 20 29 20 7b 00 20 20 20 20 20 20 20 21 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 .).{........!d_logic.isTheoryEna
ede0 62 6c 65 64 28 54 48 45 4f 52 59 5f 53 54 52 49 4e 47 53 29 20 26 26 00 20 20 20 20 20 20 20 21 bled(THEORY_STRINGS).&&........!
ee00 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 42 d_logic.isTheoryEnabled(THEORY_B
ee20 56 29 20 26 26 00 20 20 20 20 69 66 28 64 5f 6c 6f 67 69 63 2e 69 73 53 68 61 72 69 6e 67 45 6e V).&&.....if(d_logic.isSharingEn
ee40 61 62 6c 65 64 28 29 20 26 26 00 20 20 69 66 28 21 6f 70 74 69 6f 6e 73 3a 3a 74 68 65 6f 72 79 abled().&&...if(!options::theory
ee60 4f 66 4d 6f 64 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 2f 2f 20 53 65 OfMode.wasSetByUser()).{...//.Se
ee80 74 20 74 68 65 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 74 68 65 6f 72 79 4f 66 00 00 t.the.options.for.the.theoryOf..
eea0 20 20 7d 00 20 20 20 20 73 65 74 4f 70 74 69 6f 6e 28 22 70 72 6f 64 75 63 65 2d 6d 6f 64 65 6c ..}.....setOption("produce-model
eec0 73 22 2c 20 53 45 78 70 72 28 22 74 72 75 65 22 29 29 3b 00 20 20 20 20 4e 6f 74 69 63 65 28 29 s",.SExpr("true"));.....Notice()
eee0 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 6e 20 70 72 6f 64 75 .<<."SmtEngine:.turning.on.produ
ef00 63 65 2d 6d 6f 64 65 6c 73 20 74 6f 20 73 75 70 70 6f 72 74 20 70 72 6f 64 75 63 65 2d 61 73 73 ce-models.to.support.produce-ass
ef20 69 67 6e 6d 65 6e 74 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a ignments".<<.endl;...if(options:
ef40 3a 70 72 6f 64 75 63 65 41 73 73 69 67 6e 6d 65 6e 74 73 28 29 20 26 26 20 21 6f 70 74 69 6f 6e :produceAssignments().&&.!option
ef60 73 3a 3a 70 72 6f 64 75 63 65 4d 6f 64 65 6c 73 28 29 29 20 7b 00 00 20 20 7d 00 00 20 20 20 20 s::produceModels()).{....}......
ef80 7d 00 20 20 20 20 20 20 73 65 74 4f 70 74 69 6f 6e 28 22 72 65 70 65 61 74 2d 73 69 6d 70 22 2c }.......setOption("repeat-simp",
efa0 20 66 61 6c 73 65 29 3b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 .false);.......Notice().<<."SmtE
efc0 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 20 72 65 70 65 61 74 2d 73 69 6d 70 20 74 ngine:.turning.off.repeat-simp.t
efe0 6f 20 73 75 70 70 6f 72 74 20 75 6e 73 61 74 2d 63 6f 72 65 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 o.support.unsat-cores".<<.endl;.
f000 61 64 00 00 1a 00 00 00 7a 01 00 00 00 10 00 00 51 00 00 00 00 00 00 00 d7 0f 00 00 8e 0f 00 00 ad......z.......Q...............
f020 69 0f 00 00 65 0f 00 00 36 0f 00 00 09 0f 00 00 e3 0e 00 00 c7 0e 00 00 a1 0e 00 00 82 0e 00 00 i...e...6.......................
f040 81 0e 00 00 62 0e 00 00 18 0e 00 00 ec 0d 00 00 e8 0d 00 00 ae 0d 00 00 7f 0d 00 00 50 0d 00 00 ....b.......................P...
f060 24 0d 00 00 fa 0c 00 00 f9 0c 00 00 db 0c 00 00 8d 0c 00 00 59 0c 00 00 55 0c 00 00 1d 0c 00 00 $...................Y...U.......
f080 e1 0b 00 00 bb 0b 00 00 8a 0b 00 00 5c 0b 00 00 2b 0b 00 00 dd 0a 00 00 a8 0a 00 00 a2 0a 00 00 ............\...+...............
f0a0 9e 0a 00 00 58 0a 00 00 22 0a 00 00 f9 09 00 00 c5 09 00 00 9a 09 00 00 72 09 00 00 4c 09 00 00 ....X..."...............r...L...
f0c0 04 09 00 00 d6 08 00 00 cd 08 00 00 c6 08 00 00 83 08 00 00 56 08 00 00 25 08 00 00 e5 07 00 00 ....................V...%.......
f0e0 a9 07 00 00 6c 07 00 00 3e 07 00 00 ef 06 00 00 c6 06 00 00 c2 06 00 00 8b 06 00 00 58 06 00 00 ....l...>...................X...
f100 31 06 00 00 e1 05 00 00 94 05 00 00 5f 05 00 00 31 05 00 00 01 05 00 00 cc 04 00 00 9e 04 00 00 1..........._...1...............
f120 71 04 00 00 0f 04 00 00 bc 03 00 00 8f 03 00 00 8b 03 00 00 45 03 00 00 f2 02 00 00 ce 02 00 00 q...................E...........
f140 9b 02 00 00 44 02 00 00 3c 02 00 00 dc 01 00 00 a9 01 00 00 a3 01 00 00 7a 01 00 00 9d 05 00 00 ....D...<...............z.......
f160 7a 05 00 00 57 05 00 00 2a 05 00 00 fa 04 00 00 d7 04 00 00 ad 04 00 00 8e 04 20 20 20 20 69 66 z...W...*.....................if
f180 20 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 41 73 73 69 67 6e 6d 65 6e 74 73 28 29 29 .(options::produceAssignments())
f1a0 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 65 74 4f 70 74 69 6f 6e 28 22 70 72 6f 64 75 63 .{.....}.......setOption("produc
f1c0 65 2d 6d 6f 64 65 6c 73 22 2c 20 53 45 78 70 72 28 22 66 61 6c 73 65 22 29 29 3b 00 20 20 20 20 e-models",.SExpr("false"));.....
f1e0 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e ..Notice().<<."SmtEngine:.turnin
f200 67 20 6f 66 66 20 70 72 6f 64 75 63 65 2d 6d 6f 64 65 6c 73 20 74 6f 20 73 75 70 70 6f 72 74 20 g.off.produce-models.to.support.
f220 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 unconstrainedSimp".<<.endl;.....
f240 20 20 7d 00 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f ..}.........throw.OptionExceptio
f260 6e 28 22 43 61 6e 6e 6f 74 20 75 73 65 20 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 2d 73 69 6d 70 n("Cannot.use.unconstrained-simp
f280 20 77 69 74 68 20 6d 6f 64 65 6c 20 67 65 6e 65 72 61 74 69 6f 6e 2e 22 29 3b 00 20 20 20 20 20 .with.model.generation.");......
f2a0 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 4d 6f 64 65 6c 73 2e 77 61 73 53 .if.(options::produceModels.wasS
f2c0 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 70 etByUser()).{.....if.(options::p
f2e0 72 6f 64 75 63 65 4d 6f 64 65 6c 73 28 29 29 20 7b 00 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a roduceModels()).{...if.(options:
f300 3a 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 :unconstrainedSimp.wasSetByUser(
f320 29 20 26 26 20 6f 70 74 69 6f 6e 73 3a 3a 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 28 ).&&.options::unconstrainedSimp(
f340 29 29 20 7b 00 20 20 2f 2f 20 55 6e 63 6f 6e 73 74 72 61 69 6e 65 64 20 73 69 6d 70 20 63 75 72 )).{...//.Unconstrained.simp.cur
f360 72 65 6e 74 6c 79 20 64 6f 65 73 20 2a 6e 6f 74 2a 20 73 75 70 70 6f 72 74 20 6d 6f 64 65 6c 20 rently.does.*not*.support.model.
f380 67 65 6e 65 72 61 74 69 6f 6e 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 75 6e 63 6f generation...}.....options::unco
f3a0 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 2e 73 65 74 28 75 6e 63 53 69 6d 70 29 3b 00 20 20 20 20 nstrainedSimp.set(uncSimp);.....
f3c0 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 73 65 74 74 69 6e 67 20 75 6e 63 6f 6e 73 74 Trace("smt").<<."setting.unconst
f3e0 72 61 69 6e 65 64 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 74 6f 20 22 20 3c 3c 20 75 6e rained.simplification.to.".<<.un
f400 63 53 69 6d 70 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cSimp.<<.endl;..................
f420 20 20 28 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 ..(d_logic.isTheoryEnabled(THEOR
f440 59 5f 41 52 52 41 59 29 20 26 26 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 Y_ARRAY).&&.d_logic.isTheoryEnab
f460 6c 65 64 28 54 48 45 4f 52 59 5f 42 56 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 led(THEORY_BV));................
f480 20 20 20 20 21 6f 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 73 28 29 20 26 26 00 20 20 ....!options::unsatCores().&&...
f4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b .................!options::check
f4c0 4d 6f 64 65 6c 73 28 29 20 26 26 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 Models().&&....................!
f4e0 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 41 73 73 69 67 6e 6d 65 6e 74 73 28 29 20 26 26 options::produceAssignments().&&
f500 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 6f 70 74 69 6f 6e 73 3a 3a 70 72 ....................!options::pr
f520 6f 64 75 63 65 4d 6f 64 65 6c 73 28 29 20 26 26 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 oduceModels().&&................
f540 20 20 20 20 21 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 26 26 00 20 ....!d_logic.isQuantified().&&..
f560 20 20 20 62 6f 6f 6c 20 75 6e 63 53 69 6d 70 20 3d 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 ...bool.uncSimp.=.!options::incr
f580 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 20 26 26 00 20 20 20 20 2f 2f 20 20 20 20 62 6f ementalSolving().&&.....//....bo
f5a0 6f 6c 20 75 6e 63 53 69 6d 70 20 3d 20 66 61 6c 73 65 20 26 26 20 21 71 66 5f 73 61 74 20 26 26 ol.uncSimp.=.false.&&.!qf_sat.&&
f5c0 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 3b .!options::incrementalSolving();
f5e0 00 20 20 20 20 2f 2f 20 20 20 20 62 6f 6f 6c 20 71 66 5f 73 61 74 20 3d 20 64 5f 6c 6f 67 69 63 .....//....bool.qf_sat.=.d_logic
f600 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f 42 4f 4f 4c 29 20 26 26 20 21 64 5f 6c 6f 67 69 63 .isPure(THEORY_BOOL).&&.!d_logic
f620 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 3b 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a .isQuantified();.......options::
f640 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 29 20 7b 00 20 20 69 66 28 21 6f 70 incrementalSolving()).{...if(!op
f660 74 69 6f 6e 73 3a 3a 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 2e 77 61 73 53 65 74 42 tions::unconstrainedSimp.wasSetB
f680 79 55 73 65 72 28 29 20 7c 7c 00 20 20 2f 2f 20 54 75 72 6e 20 6f 6e 20 75 6e 63 6f 6e 73 74 72 yUser().||...//.Turn.on.unconstr
f6a0 61 69 6e 65 64 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 66 6f 72 20 51 46 5f 41 55 46 42 ained.simplification.for.QF_AUFB
f6c0 56 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 72 65 70 65 61 74 53 69 6d 70 2e 73 65 V...}.....options::repeatSimp.se
f6e0 74 28 72 65 70 65 61 74 53 69 6d 70 29 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 t(repeatSimp);.....Trace("smt").
f700 3c 3c 20 22 73 65 74 74 69 6e 67 20 72 65 70 65 61 74 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f <<."setting.repeat.simplificatio
f720 6e 20 74 6f 20 22 20 3c 3c 20 72 65 70 65 61 74 53 69 6d 70 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 n.to.".<<.repeatSimp.<<.endl;...
f740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21 6f 70 74 69 6f 6e 73 3a 3a 75 6e ....................!options::un
f760 73 61 74 43 6f 72 65 73 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 satCores();.....................
f780 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 ..d_logic.isTheoryEnabled(THEORY
f7a0 5f 42 56 29 29 20 26 26 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 _BV)).&&.......................d
f7c0 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 55 46 _logic.isTheoryEnabled(THEORY_UF
f7e0 29 20 26 26 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 5f 6c 6f ).&&.......................(d_lo
f800 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 gic.isTheoryEnabled(THEORY_ARRAY
f820 29 20 26 26 00 20 20 20 20 62 6f 6f 6c 20 72 65 70 65 61 74 53 69 6d 70 20 3d 20 21 64 5f 6c 6f ).&&.....bool.repeatSimp.=.!d_lo
f840 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 26 26 00 20 20 69 66 28 21 20 6f 70 74 gic.isQuantified().&&...if(!.opt
f860 69 6f 6e 73 3a 3a 72 65 70 65 61 74 53 69 6d 70 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 ions::repeatSimp.wasSetByUser())
f880 20 7b 00 20 20 2f 2f 20 54 75 72 6e 20 6f 6e 20 6d 75 6c 74 69 70 6c 65 2d 70 61 73 73 20 6e 6f .{...//.Turn.on.multiple-pass.no
f8a0 6e 2d 63 6c 61 75 73 61 6c 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 66 6f 72 20 51 46 5f n-clausal.simplification.for.QF_
f8c0 41 55 46 42 56 00 20 20 2f 2f 20 7d 00 20 20 2f 2f 20 20 20 7d 00 20 20 2f 2f 20 20 20 20 20 6f AUFBV...//.}...//...}...//.....o
f8e0 70 74 69 6f 6e 73 3a 3a 61 72 72 61 79 73 4d 6f 64 65 6c 42 61 73 65 64 2e 73 65 74 28 74 72 75 ptions::arraysModelBased.set(tru
f900 65 29 3b 00 20 20 2f 2f 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 74 75 e);...//.....Trace("smt").<<."tu
f920 72 6e 69 6e 67 20 6f 6e 20 6d 6f 64 65 6c 2d 62 61 73 65 64 20 61 72 72 61 79 20 73 6f 6c 76 65 rning.on.model-based.array.solve
f940 72 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 2f 2f 20 20 20 20 20 20 20 21 6f 70 74 69 6f 6e 73 3a r".<<.endl;...//.......!options:
f960 3a 63 68 65 63 6b 4d 6f 64 65 6c 73 28 29 29 20 7b 00 20 20 2f 2f 20 20 20 20 20 20 20 21 6f 70 :checkModels()).{...//.......!op
f980 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 4d 6f 64 65 6c 73 28 29 20 26 26 00 20 20 2f 2f 20 20 tions::produceModels().&&...//..
f9a0 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f 41 52 52 41 59 .....d_logic.isPure(THEORY_ARRAY
f9c0 29 20 26 26 00 20 20 2f 2f 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 ).&&...//.......d_logic.isTheory
f9e0 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 29 20 26 26 00 20 20 2f 2f 20 20 20 Enabled(THEORY_ARRAY).&&...//...
fa00 69 66 20 28 6e 6f 74 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 26 if.(not.d_logic.isQuantified().&
fa20 26 00 20 20 2f 2f 20 69 66 28 21 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 72 61 79 73 4d 6f 64 65 6c &...//.if(!.options::arraysModel
fa40 42 61 73 65 64 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 2f 2f 20 54 75 72 Based.wasSetByUser()).{...//.Tur
fa60 6e 20 6f 6e 20 6d 6f 64 65 6c 2d 62 61 73 65 64 20 61 72 72 61 79 73 20 66 6f 72 20 51 46 5f 41 n.on.model-based.arrays.for.QF_A
fa80 58 20 28 75 6e 6c 65 73 73 20 6d 6f 64 65 6c 73 20 61 72 65 20 65 6e 61 62 6c 65 64 29 00 20 20 X.(unless.models.are.enabled)...
faa0 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 72 61 79 73 45 61 67 }.....}.......options::arraysEag
fac0 65 72 49 6e 64 65 78 53 70 6c 69 74 74 69 6e 67 2e 73 65 74 28 66 61 6c 73 65 29 3b 00 20 20 20 erIndexSplitting.set(false);....
fae0 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 73 65 74 74 69 6e 67 20 61 72 72 61 ...Trace("smt").<<."setting.arra
fb00 79 20 65 61 67 65 72 20 69 6e 64 65 78 20 73 70 6c 69 74 74 69 6e 67 20 74 6f 20 66 61 6c 73 65 y.eager.index.splitting.to.false
fb20 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 ".<<.endl;.........d_logic.isThe
fb40 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 49 54 48 29 29 20 7b 00 20 20 20 20 oryEnabled(THEORY_ARITH)).{.....
fb60 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f ....d_logic.isTheoryEnabled(THEO
fb80 52 59 5f 55 46 29 20 26 26 00 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f RY_UF).&&.........d_logic.isTheo
fba0 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 29 20 26 26 00 20 20 20 20 69 ryEnabled(THEORY_ARRAY).&&.....i
fbc0 66 20 28 6e 6f 74 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 26 26 f.(not.d_logic.isQuantified().&&
fbe0 00 20 20 69 66 28 21 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 72 61 79 73 45 61 67 65 72 49 6e 64 65 ...if(!.options::arraysEagerInde
fc00 78 53 70 6c 69 74 74 69 6e 67 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 2f xSplitting.wasSetByUser()).{.../
fc20 2f 20 54 75 72 6e 20 6f 66 66 20 61 72 72 61 79 20 65 61 67 65 72 20 69 6e 64 65 78 20 73 70 6c /.Turn.off.array.eager.index.spl
fc40 69 74 74 69 6e 67 20 66 6f 72 20 51 46 5f 41 55 46 4c 49 41 00 20 20 7d 00 20 20 20 20 6f 70 74 itting.for.QF_AUFLIA...}.....opt
fc60 69 6f 6e 73 3a 3a 73 69 6d 70 6c 69 66 79 57 69 74 68 43 61 72 65 45 6e 61 62 6c 65 64 2e 73 65 ions::simplifyWithCareEnabled.se
fc80 74 28 77 69 74 68 43 61 72 65 29 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c t(withCare);.....Trace("smt").<<
fca0 20 22 73 65 74 74 69 6e 67 20 69 74 65 20 73 69 6d 70 6c 69 66 79 20 77 69 74 68 20 63 61 72 65 ."setting.ite.simplify.with.care
fcc0 20 74 6f 20 22 20 3c 3c 20 77 69 74 68 43 61 72 65 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 62 .to.".<<.withCare.<<.endl;.....b
fce0 6f 6f 6c 20 77 69 74 68 43 61 72 65 20 3d 20 71 66 5f 61 75 66 62 76 3b 00 00 20 20 20 20 20 20 ool.withCare.=.qf_aufbv;........
fd00 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 42 d_logic.isTheoryEnabled(THEORY_B
fd20 56 29 3b 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 V);.......d_logic.isTheoryEnable
fd40 64 28 54 48 45 4f 52 59 5f 55 46 29 20 26 26 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 d(THEORY_UF).&&.......d_logic.is
fd60 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 29 20 26 26 00 20 TheoryEnabled(THEORY_ARRAY).&&..
fd80 20 20 20 62 6f 6f 6c 20 71 66 5f 61 75 66 62 76 20 3d 20 21 64 5f 6c 6f 67 69 63 2e 69 73 51 75 ...bool.qf_aufbv.=.!d_logic.isQu
fda0 61 6e 74 69 66 69 65 64 28 29 20 26 26 00 20 20 69 66 28 21 20 6f 70 74 69 6f 6e 73 3a 3a 73 69 antified().&&...if(!.options::si
fdc0 6d 70 6c 69 66 79 57 69 74 68 43 61 72 65 45 6e 61 62 6c 65 64 2e 77 61 73 53 65 74 42 79 55 73 mplifyWithCareEnabled.wasSetByUs
fde0 65 72 28 29 20 29 7b 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 63 6f 6d 70 72 65 73 er().){...}.....options::compres
fe00 73 49 74 65 73 2e 73 65 74 28 63 6f 6d 70 72 65 73 73 49 74 65 29 3b 00 20 20 20 20 54 72 61 63 sItes.set(compressIte);.....Trac
fe20 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 73 65 74 74 69 6e 67 20 69 74 65 20 63 6f 6d 70 72 65 73 e("smt").<<."setting.ite.compres
fe40 73 69 6f 6e 20 74 6f 20 22 20 3c 3c 20 63 6f 6d 70 72 65 73 73 49 74 65 20 3c 3c 20 65 6e 64 6c sion.to.".<<.compressIte.<<.endl
fe60 3b 00 20 20 20 20 62 6f 6f 6c 20 63 6f 6d 70 72 65 73 73 49 74 65 20 3d 20 71 66 5f 6c 69 61 3b ;.....bool.compressIte.=.qf_lia;
fe80 00 00 20 20 20 20 20 20 21 64 5f 6c 6f 67 69 63 2e 61 72 65 52 65 61 6c 73 55 73 65 64 28 29 3b ........!d_logic.areRealsUsed();
fea0 00 20 20 20 20 20 20 21 64 5f 6c 6f 67 69 63 2e 69 73 44 69 66 66 65 72 65 6e 63 65 4c 6f 67 69 .......!d_logic.isDifferenceLogi
fec0 63 28 29 20 26 26 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 4c 69 6e 65 61 72 28 29 20 c().&&.......d_logic.isLinear().
fee0 26 26 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f 41 &&.......d_logic.isPure(THEORY_A
ff00 52 49 54 48 29 20 26 26 00 20 20 20 20 62 6f 6f 6c 20 71 66 5f 6c 69 61 20 3d 20 21 64 5f 6c 6f RITH).&&.....bool.qf_lia.=.!d_lo
ff20 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 26 26 00 20 20 69 66 28 21 20 6f 70 74 gic.isQuantified().&&...if(!.opt
ff40 69 6f 6e 73 3a 3a 63 6f 6d 70 72 65 73 73 49 74 65 73 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 ions::compressItes.wasSetByUser(
ff60 29 20 29 7b 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 64 6f 49 54 45 53 69 6d 70 2e ).){...}.....options::doITESimp.
ff80 73 65 74 28 69 74 65 53 69 6d 70 29 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c set(iteSimp);.....Trace("smt").<
ffa0 3c 20 22 73 65 74 74 69 6e 67 20 69 74 65 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 74 6f <."setting.ite.simplification.to
ffc0 20 22 20 3c 3c 20 69 74 65 53 69 6d 70 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 62 6f 6f 6c 20 .".<<.iteSimp.<<.endl;.....bool.
ffe0 69 74 65 53 69 6d 70 20 3d 20 28 71 66 5f 61 75 66 62 76 20 7c 7c 20 71 66 5f 6c 69 61 29 3b 00 iteSimp.=.(qf_aufbv.||.qf_lia);.
10000 61 64 00 00 22 00 00 00 a2 01 00 00 00 10 00 00 59 00 00 00 00 00 00 00 c8 0f 00 00 5b 0f 00 00 ad.."...........Y...........[...
10020 53 0f 00 00 ee 0e 00 00 b6 0e 00 00 b0 0e 00 00 8e 0e 00 00 5d 0e 00 00 f7 0d 00 00 ef 0d 00 00 S...................]...........
10040 91 0d 00 00 60 0d 00 00 5a 0d 00 00 56 0d 00 00 55 0d 00 00 54 0d 00 00 10 0d 00 00 e9 0c 00 00 ....`...Z...V...U...T...........
10060 b3 0c 00 00 46 0c 00 00 05 0c 00 00 ff 0b 00 00 a3 0b 00 00 75 0b 00 00 71 0b 00 00 70 0b 00 00 ....F...............u...q...p...
10080 39 0b 00 00 0a 0b 00 00 de 0a 00 00 97 0a 00 00 6b 0a 00 00 67 0a 00 00 66 0a 00 00 39 0a 00 00 9...............k...g...f...9...
100a0 dc 09 00 00 b1 09 00 00 ad 09 00 00 ac 09 00 00 6d 09 00 00 3c 09 00 00 d3 08 00 00 80 08 00 00 ................m...<...........
100c0 4f 08 00 00 4b 08 00 00 13 08 00 00 f2 07 00 00 b0 07 00 00 88 07 00 00 6a 07 00 00 3c 07 00 00 O...K...................j...<...
100e0 1f 07 00 00 17 07 00 00 11 07 00 00 c0 06 00 00 88 06 00 00 84 06 00 00 4f 06 00 00 2e 06 00 00 ........................O.......
10100 ed 05 00 00 c6 05 00 00 a9 05 00 00 a1 05 00 00 9b 05 00 00 46 05 00 00 10 05 00 00 0c 05 00 00 ....................F...........
10120 ca 04 00 00 a9 04 00 00 68 04 00 00 4c 04 00 00 46 04 00 00 ea 03 00 00 a7 03 00 00 a3 03 00 00 ........h...L...F...............
10140 62 03 00 00 3f 03 00 00 22 03 00 00 1e 03 00 00 1d 03 00 00 e2 02 00 00 b4 02 00 00 8f 02 00 00 b...?...".......................
10160 82 02 00 00 36 02 00 00 25 02 00 00 fe 01 00 00 da 01 00 00 cb 01 00 00 a2 01 00 00 00 00 00 00 ....6...%.......................
10180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
101a0 00 00 20 20 20 20 20 20 20 20 2f 2f 20 51 46 5f 41 55 46 42 56 20 6f 72 20 51 46 5f 41 42 56 20 ..........//.QF_AUFBV.or.QF_ABV.
101c0 6f 72 20 51 46 5f 55 46 42 56 00 20 20 20 20 20 20 20 20 20 20 29 20 7c 7c 00 20 20 20 20 20 20 or.QF_UFBV...........).||.......
101e0 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f 42 56 29 00 20 20 ....d_logic.isPure(THEORY_BV)...
10200 20 20 20 20 20 20 28 6e 6f 74 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 ......(not.d_logic.isQuantified(
10220 29 20 26 26 00 20 20 20 20 20 20 28 20 2f 2f 20 51 46 5f 42 56 00 20 20 20 20 20 20 64 5f 6c 6f ).&&.......(.//.QF_BV.......d_lo
10240 67 69 63 2e 68 61 73 45 76 65 72 79 74 68 69 6e 67 28 29 20 3f 20 64 65 63 69 73 69 6f 6e 3a 3a gic.hasEverything().?.decision::
10260 44 45 43 49 53 49 4f 4e 5f 53 54 52 41 54 45 47 59 5f 4a 55 53 54 49 46 49 43 41 54 49 4f 4e 20 DECISION_STRATEGY_JUSTIFICATION.
10280 3a 00 20 20 20 20 20 20 2f 2f 20 41 4c 4c 00 20 20 20 20 64 65 63 69 73 69 6f 6e 3a 3a 44 65 63 :.......//.ALL.....decision::Dec
102a0 69 73 69 6f 6e 4d 6f 64 65 20 64 65 63 4d 6f 64 65 20 3d 00 20 20 69 66 28 21 6f 70 74 69 6f 6e isionMode.decMode.=...if(!option
102c0 73 3a 3a 64 65 63 69 73 69 6f 6e 4d 6f 64 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 s::decisionMode.wasSetByUser()).
102e0 7b 00 20 20 2f 2f 20 53 65 74 20 64 65 63 69 73 69 6f 6e 20 6d 6f 64 65 20 62 61 73 65 64 20 6f {...//.Set.decision.mode.based.o
10300 6e 20 6c 6f 67 69 63 20 28 69 66 20 6e 6f 74 20 73 65 74 20 62 79 20 75 73 65 72 29 00 00 20 20 n.logic.(if.not.set.by.user)....
10320 7d 00 20 20 20 20 64 5f 65 61 72 6c 79 54 68 65 6f 72 79 50 50 20 3d 20 66 61 6c 73 65 3b 00 20 }.....d_earlyTheoryPP.=.false;..
10340 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 61 72 69 74 68 52 65 77 72 69 74 65 45 71 28 29 29 20 .if.(options::arithRewriteEq()).
10360 7b 00 20 20 2f 2f 20 54 75 72 6e 20 6f 66 66 20 65 61 72 6c 79 20 74 68 65 6f 72 79 20 70 72 65 {...//.Turn.off.early.theory.pre
10380 70 72 6f 63 65 73 73 69 6e 67 20 69 66 20 61 72 69 74 68 52 65 77 72 69 74 65 45 71 20 69 73 20 processing.if.arithRewriteEq.is.
103a0 6f 6e 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 69 74 68 53 74 61 6e 64 61 72 on...}.....options::arithStandar
103c0 64 43 68 65 63 6b 56 61 72 4f 72 64 65 72 50 69 76 6f 74 73 2e 73 65 74 28 76 61 72 4f 72 64 65 dCheckVarOrderPivots.set(varOrde
103e0 72 50 69 76 6f 74 73 29 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 73 rPivots);.....Trace("smt").<<."s
10400 65 74 74 69 6e 67 20 61 72 69 74 68 53 74 61 6e 64 61 72 64 43 68 65 63 6b 56 61 72 4f 72 64 65 etting.arithStandardCheckVarOrde
10420 72 50 69 76 6f 74 73 20 20 22 20 3c 3c 20 76 61 72 4f 72 64 65 72 50 69 76 6f 74 73 20 3c 3c 20 rPivots..".<<.varOrderPivots.<<.
10440 65 6e 64 6c 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 76 61 72 4f 72 64 65 72 50 69 76 6f 74 73 endl;.....}.......varOrderPivots
10460 20 3d 20 32 30 30 3b 00 20 20 20 20 69 66 28 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 .=.200;.....if(d_logic.isPure(TH
10480 45 4f 52 59 5f 41 52 49 54 48 29 20 26 26 20 21 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 EORY_ARITH).&&.!d_logic.isQuanti
104a0 66 69 65 64 28 29 29 7b 00 20 20 20 20 69 6e 74 31 36 5f 74 20 76 61 72 4f 72 64 65 72 50 69 76 fied()){.....int16_t.varOrderPiv
104c0 6f 74 73 20 3d 20 2d 31 3b 00 20 20 69 66 28 21 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 69 74 68 53 ots.=.-1;...if(!.options::arithS
104e0 74 61 6e 64 61 72 64 43 68 65 63 6b 56 61 72 4f 72 64 65 72 50 69 76 6f 74 73 2e 77 61 73 53 65 tandardCheckVarOrderPivots.wasSe
10500 74 42 79 55 73 65 72 28 29 29 7b 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 69 tByUser()){...}.....options::ari
10520 74 68 50 69 76 6f 74 54 68 72 65 73 68 6f 6c 64 2e 73 65 74 28 70 69 76 6f 74 54 68 72 65 73 68 thPivotThreshold.set(pivotThresh
10540 6f 6c 64 29 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 73 65 74 74 69 old);.....Trace("smt").<<."setti
10560 6e 67 20 61 72 69 74 68 20 61 72 69 74 68 50 69 76 6f 74 54 68 72 65 73 68 6f 6c 64 20 20 22 20 ng.arith.arithPivotThreshold..".
10580 3c 3c 20 70 69 76 6f 74 54 68 72 65 73 68 6f 6c 64 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 7d <<.pivotThreshold.<<.endl;.....}
105a0 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 70 69 76 6f 74 54 68 72 65 73 68 6f 6c 64 20 .......}.........pivotThreshold.
105c0 3d 20 31 36 3b 00 20 20 20 20 20 20 69 66 28 64 5f 6c 6f 67 69 63 2e 69 73 44 69 66 66 65 72 65 =.16;.......if(d_logic.isDiffere
105e0 6e 63 65 4c 6f 67 69 63 28 29 29 7b 00 20 20 20 20 69 66 28 64 5f 6c 6f 67 69 63 2e 69 73 50 75 nceLogic()){.....if(d_logic.isPu
10600 72 65 28 54 48 45 4f 52 59 5f 41 52 49 54 48 29 20 26 26 20 21 64 5f 6c 6f 67 69 63 2e 69 73 51 re(THEORY_ARITH).&&.!d_logic.isQ
10620 75 61 6e 74 69 66 69 65 64 28 29 29 7b 00 20 20 20 20 75 69 6e 74 31 36 5f 74 20 70 69 76 6f 74 uantified()){.....uint16_t.pivot
10640 54 68 72 65 73 68 6f 6c 64 20 3d 20 32 3b 00 20 20 69 66 28 21 20 6f 70 74 69 6f 6e 73 3a 3a 61 Threshold.=.2;...if(!.options::a
10660 72 69 74 68 50 69 76 6f 74 54 68 72 65 73 68 6f 6c 64 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 rithPivotThreshold.wasSetByUser(
10680 29 29 7b 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 69 74 68 48 65 75 72 69 73 )){...}.....options::arithHeuris
106a0 74 69 63 50 69 76 6f 74 73 2e 73 65 74 28 68 65 75 72 69 73 74 69 63 50 69 76 6f 74 73 29 3b 00 ticPivots.set(heuristicPivots);.
106c0 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 73 65 74 74 69 6e 67 20 61 72 69 ....Trace("smt").<<."setting.ari
106e0 74 68 48 65 75 72 69 73 74 69 63 50 69 76 6f 74 73 20 20 22 20 3c 3c 20 68 65 75 72 69 73 74 69 thHeuristicPivots..".<<.heuristi
10700 63 50 69 76 6f 74 73 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 cPivots.<<.endl;.....}.......}..
10720 20 20 20 20 20 20 20 68 65 75 72 69 73 74 69 63 50 69 76 6f 74 73 20 3d 20 30 3b 00 20 20 20 20 .......heuristicPivots.=.0;.....
10740 20 20 7d 20 65 6c 73 65 20 69 66 28 21 64 5f 6c 6f 67 69 63 2e 61 72 65 49 6e 74 65 67 65 72 73 ..}.else.if(!d_logic.areIntegers
10760 55 73 65 64 28 29 29 20 7b 00 20 20 20 20 20 20 20 20 68 65 75 72 69 73 74 69 63 50 69 76 6f 74 Used()).{.........heuristicPivot
10780 73 20 3d 20 2d 31 3b 00 20 20 20 20 20 20 69 66 28 64 5f 6c 6f 67 69 63 2e 69 73 44 69 66 66 65 s.=.-1;.......if(d_logic.isDiffe
107a0 72 65 6e 63 65 4c 6f 67 69 63 28 29 29 20 7b 00 20 20 20 20 69 66 28 64 5f 6c 6f 67 69 63 2e 69 renceLogic()).{.....if(d_logic.i
107c0 73 50 75 72 65 28 54 48 45 4f 52 59 5f 41 52 49 54 48 29 20 26 26 20 21 64 5f 6c 6f 67 69 63 2e sPure(THEORY_ARITH).&&.!d_logic.
107e0 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 29 20 7b 00 20 20 20 20 69 6e 74 31 36 5f 74 20 68 65 isQuantified()).{.....int16_t.he
10800 75 72 69 73 74 69 63 50 69 76 6f 74 73 20 3d 20 35 3b 00 20 20 69 66 28 21 20 20 6f 70 74 69 6f uristicPivots.=.5;...if(!..optio
10820 6e 73 3a 3a 61 72 69 74 68 48 65 75 72 69 73 74 69 63 50 69 76 6f 74 73 2e 77 61 73 53 65 74 42 ns::arithHeuristicPivots.wasSetB
10840 79 55 73 65 72 28 29 29 20 7b 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 69 74 yUser()).{...}.....options::arit
10860 68 52 65 77 72 69 74 65 45 71 2e 73 65 74 28 61 72 69 74 68 52 65 77 72 69 74 65 45 71 29 3b 00 hRewriteEq.set(arithRewriteEq);.
10880 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 73 65 74 74 69 6e 67 20 61 72 69 ....Trace("smt").<<."setting.ari
108a0 74 68 20 72 65 77 72 69 74 65 20 65 71 75 61 6c 69 74 69 65 73 20 22 20 3c 3c 20 61 72 69 74 68 th.rewrite.equalities.".<<.arith
108c0 52 65 77 72 69 74 65 45 71 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 62 6f 6f 6c 20 61 72 69 74 RewriteEq.<<.endl;.....bool.arit
108e0 68 52 65 77 72 69 74 65 45 71 20 3d 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f hRewriteEq.=.d_logic.isPure(THEO
10900 52 59 5f 41 52 49 54 48 29 20 26 26 20 64 5f 6c 6f 67 69 63 2e 69 73 4c 69 6e 65 61 72 28 29 20 RY_ARITH).&&.d_logic.isLinear().
10920 26 26 20 21 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 3b 00 20 20 69 66 &&.!d_logic.isQuantified();...if
10940 28 21 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 69 74 68 52 65 77 72 69 74 65 45 71 2e 77 61 73 53 65 (!.options::arithRewriteEq.wasSe
10960 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 2f 2f 20 54 75 72 6e 20 6f 6e 20 61 72 69 74 68 20 tByUser()).{...//.Turn.on.arith.
10980 72 65 77 72 69 74 65 20 65 71 75 61 6c 69 74 69 65 73 20 6f 6e 6c 79 20 66 6f 72 20 70 75 72 65 rewrite.equalities.only.for.pure
109a0 20 61 72 69 74 68 6d 65 74 69 63 00 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 62 76 .arithmetic....}.....options::bv
109c0 4c 61 7a 79 52 65 77 72 69 74 65 45 78 74 66 2e 73 65 74 28 66 61 6c 73 65 29 3b 00 20 20 20 20 LazyRewriteExtf.set(false);.....
109e0 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 64 69 73 61 62 6c 69 6e 67 20 62 76 4c 61 7a Trace("smt").<<."disabling.bvLaz
10a00 79 52 65 77 72 69 74 65 45 78 74 66 20 73 69 6e 63 65 20 65 71 75 61 6c 69 74 79 20 73 6f 6c 76 yRewriteExtf.since.equality.solv
10a20 65 72 20 69 73 20 64 69 73 61 62 6c 65 64 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 69 66 28 20 21 er.is.disabled".<<.endl;...if(.!
10a40 6f 70 74 69 6f 6e 73 3a 3a 62 69 74 76 65 63 74 6f 72 45 71 75 61 6c 69 74 79 53 6f 6c 76 65 72 options::bitvectorEqualitySolver
10a60 28 29 20 29 7b 00 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 62 76 45 61 67 65 72 45 ().){....}.....options::bvEagerE
10a80 78 70 6c 61 6e 61 74 69 6f 6e 73 2e 73 65 74 28 74 72 75 65 29 3b 00 20 20 20 20 54 72 61 63 65 xplanations.set(true);.....Trace
10aa0 28 22 73 6d 74 22 29 20 3c 3c 20 22 65 6e 61 62 6c 69 6e 67 20 65 61 67 65 72 20 62 69 74 2d 76 ("smt").<<."enabling.eager.bit-v
10ac0 65 63 74 6f 72 20 65 78 70 6c 61 6e 61 74 69 6f 6e 73 20 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 ector.explanations.".<<.endl;...
10ae0 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f ....d_logic.isTheoryEnabled(THEO
10b00 52 59 5f 42 56 29 29 20 7b 00 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 RY_BV)).{.......d_logic.isTheory
10b20 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 29 20 26 26 00 20 20 69 66 20 28 21 Enabled(THEORY_ARRAY).&&...if.(!
10b40 20 6f 70 74 69 6f 6e 73 3a 3a 62 76 45 61 67 65 72 45 78 70 6c 61 6e 61 74 69 6f 6e 73 2e 77 61 .options::bvEagerExplanations.wa
10b60 73 53 65 74 42 79 55 73 65 72 28 29 20 26 26 00 00 20 20 7d 00 20 20 20 20 73 65 74 4f 70 74 69 sSetByUser().&&....}.....setOpti
10b80 6f 6e 28 22 69 6e 63 72 65 6d 65 6e 74 61 6c 22 2c 20 53 45 78 70 72 28 22 66 61 6c 73 65 22 29 on("incremental",.SExpr("false")
10ba0 29 3b 00 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 );.....Notice().<<."SmtEngine:.t
10bc0 75 72 6e 69 6e 67 20 6f 66 66 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 74 6f 20 73 75 70 70 6f 72 urning.off.incremental.to.suppor
10be0 74 20 65 61 67 65 72 20 62 69 74 2d 62 6c 61 73 74 69 6e 67 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 t.eager.bit-blasting".<<.endl;..
10c00 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...}............................
10c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 72 79 20 2d 2d 62 69 74 62 6c 61 73 74 3d 6c 61 7a ..............Try.--bitblast=laz
10c40 79 22 29 29 3b 00 20 20 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f y"));.......throw.OptionExceptio
10c60 6e 28 73 74 64 3a 3a 73 74 72 69 6e 67 28 22 45 61 67 65 72 20 62 69 74 2d 62 6c 61 73 74 69 6e n(std::string("Eager.bit-blastin
10c80 67 20 64 6f 65 73 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 20 69 6e 63 g.does.not.currently.support.inc
10ca0 72 65 6d 65 6e 74 61 6c 20 6d 6f 64 65 2e 20 5c 6e 5c 00 20 20 20 20 69 66 20 28 6f 70 74 69 6f remental.mode..\n\.....if.(optio
10cc0 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 2e 77 61 73 53 65 74 42 79 55 ns::incrementalSolving.wasSetByU
10ce0 73 65 72 28 29 29 20 7b 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e ser()).{.......options::incremen
10d00 74 61 6c 53 6f 6c 76 69 6e 67 28 29 29 20 7b 00 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 62 talSolving()).{...if.(options::b
10d20 69 74 62 6c 61 73 74 4d 6f 64 65 28 29 20 3d 3d 20 74 68 65 6f 72 79 3a 3a 62 76 3a 3a 42 49 54 itblastMode().==.theory::bv::BIT
10d40 42 4c 41 53 54 5f 4d 4f 44 45 5f 45 41 47 45 52 20 26 26 00 00 00 20 20 7d 00 20 20 20 20 7d 00 BLAST_MODE_EAGER.&&.....}.....}.
10d60 20 20 20 20 20 20 73 65 74 4f 70 74 69 6f 6e 28 22 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 22 2c 20 ......setOption("check-models",.
10d80 53 45 78 70 72 28 22 66 61 6c 73 65 22 29 29 3b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 SExpr("false"));.......Notice().
10da0 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 20 63 68 65 63 6b <<."SmtEngine:.turning.off.check
10dc0 2d 6d 6f 64 65 6c 73 20 74 6f 20 73 75 70 70 6f 72 74 20 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 -models.to.support.unconstrained
10de0 53 69 6d 70 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 74 Simp".<<.endl;.......}.........t
10e00 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 43 61 6e 6e 6f 74 20 75 73 65 hrow.OptionException("Cannot.use
10e20 20 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 2d 73 69 6d 70 20 77 69 74 68 20 6d 6f 64 65 6c 20 67 .unconstrained-simp.with.model.g
10e40 65 6e 65 72 61 74 69 6f 6e 20 28 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 29 2e 22 29 3b 00 20 20 20 eneration.(check-models).");....
10e60 20 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 73 2e 77 61 73 53 ...if.(options::checkModels.wasS
10e80 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 63 etByUser()).{.....if.(options::c
10ea0 68 65 63 6b 4d 6f 64 65 6c 73 28 29 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 65 74 4f heckModels()).{.....}.......setO
10ec0 70 74 69 6f 6e 28 22 70 72 6f 64 75 63 65 2d 61 73 73 69 67 6e 6d 65 6e 74 73 22 2c 20 53 45 78 ption("produce-assignments",.SEx
10ee0 70 72 28 22 66 61 6c 73 65 22 29 29 3b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 pr("false"));.......Notice().<<.
10f00 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 20 70 72 6f 64 75 63 65 2d "SmtEngine:.turning.off.produce-
10f20 61 73 73 69 67 6e 6d 65 6e 74 73 20 74 6f 20 73 75 70 70 6f 72 74 20 75 6e 63 6f 6e 73 74 72 61 assignments.to.support.unconstra
10f40 69 6e 65 64 53 69 6d 70 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 inedSimp".<<.endl;.......}......
10f60 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 43 61 6e 6e 6f 74 ...throw.OptionException("Cannot
10f80 20 75 73 65 20 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 2d 73 69 6d 70 20 77 69 74 68 20 6d 6f 64 .use.unconstrained-simp.with.mod
10fa0 65 6c 20 67 65 6e 65 72 61 74 69 6f 6e 20 28 70 72 6f 64 75 63 65 2d 61 73 73 69 67 6e 6d 65 6e el.generation.(produce-assignmen
10fc0 74 73 29 2e 22 29 3b 00 20 20 20 20 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 ts).");.......if.(options::produ
10fe0 63 65 41 73 73 69 67 6e 6d 65 6e 74 73 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 ceAssignments.wasSetByUser()).{.
11000 61 64 00 00 13 00 00 00 af 01 00 00 00 10 00 00 60 00 00 00 00 00 00 00 d9 0f 00 00 a6 0f 00 00 ad..............`...............
11020 75 0f 00 00 49 0f 00 00 3b 0f 00 00 fd 0e 00 00 d6 0e 00 00 a4 0e 00 00 75 0e 00 00 46 0e 00 00 u...I...;...............u...F...
11040 38 0e 00 00 26 0e 00 00 ff 0d 00 00 84 0d 00 00 76 0d 00 00 5f 0d 00 00 3d 0d 00 00 2a 0d 00 00 8...&...........v..._...=...*...
11060 fa 0c 00 00 c6 0c 00 00 97 0c 00 00 8e 0c 00 00 8d 0c 00 00 79 0c 00 00 6c 0c 00 00 19 0c 00 00 ....................y...l.......
11080 04 0c 00 00 dd 0b 00 00 ab 0b 00 00 7c 0b 00 00 4d 0b 00 00 3f 0b 00 00 2d 0b 00 00 06 0b 00 00 ............|...M...?...-.......
110a0 8b 0a 00 00 80 0a 00 00 69 0a 00 00 60 0a 00 00 5f 0a 00 00 1b 0a 00 00 f3 09 00 00 c6 09 00 00 ........i...`..._...............
110c0 c2 09 00 00 9b 09 00 00 6a 09 00 00 41 09 00 00 11 09 00 00 ed 08 00 00 e9 08 00 00 bc 08 00 00 ........j...A...................
110e0 94 08 00 00 6a 08 00 00 66 08 00 00 65 08 00 00 df 07 00 00 6c 07 00 00 2f 07 00 00 f9 06 00 00 ....j...f...e.......l.../.......
11100 f3 06 00 00 ef 06 00 00 ee 06 00 00 d2 06 00 00 af 06 00 00 7e 06 00 00 58 06 00 00 52 06 00 00 ....................~...X...R...
11120 4e 06 00 00 29 06 00 00 da 05 00 00 bc 05 00 00 b8 05 00 00 9e 05 00 00 39 05 00 00 0f 05 00 00 N...)...................9.......
11140 0b 05 00 00 0a 05 00 00 bd 04 00 00 71 04 00 00 4e 04 00 00 4a 04 00 00 14 04 00 00 f6 03 00 00 ............q...N...J...........
11160 d9 03 00 00 b1 03 00 00 87 03 00 00 59 03 00 00 20 03 00 00 e8 02 00 00 a5 02 00 00 69 02 00 00 ............Y...............i...
11180 32 02 00 00 2c 02 00 00 fb 01 00 00 b9 01 00 00 b3 01 00 00 af 01 00 00 3a 03 00 00 19 03 00 00 2...,...................:.......
111a0 f7 02 00 00 e0 02 00 00 c8 02 00 00 a5 02 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f .................}.....}.......o
111c0 70 74 69 6f 6e 73 3a 3a 70 72 65 6e 65 78 51 75 61 6e 74 2e 73 65 74 28 20 71 75 61 6e 74 69 66 ptions::prenexQuant.set(.quantif
111e0 69 65 72 73 3a 3a 50 52 45 4e 45 58 5f 51 55 41 4e 54 5f 4e 4f 4e 45 20 29 3b 00 20 20 20 20 69 iers::PRENEX_QUANT_NONE.);.....i
11200 66 28 20 21 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 6e 65 78 51 75 61 6e 74 2e 77 61 73 53 65 74 f(.!.options::prenexQuant.wasSet
11220 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a ByUser().){.....}.......options:
11240 3a 6d 62 71 69 4d 6f 64 65 2e 73 65 74 28 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 4d 42 51 49 :mbqiMode.set(.quantifiers::MBQI
11260 5f 4e 4f 4e 45 20 29 3b 00 20 20 20 20 20 20 2f 2f 69 66 20 62 6f 75 6e 64 65 64 20 69 6e 74 65 _NONE.);.......//if.bounded.inte
11280 67 65 72 73 20 61 72 65 20 73 65 74 2c 20 75 73 65 20 6e 6f 20 4d 42 51 49 20 62 79 20 64 65 66 gers.are.set,.use.no.MBQI.by.def
112a0 61 75 6c 74 00 20 20 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 6d 62 71 69 4d 6f 64 65 ault...........options::mbqiMode
112c0 28 29 21 3d 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 4d 42 51 49 5f 46 4d 43 5f 49 4e 54 45 52 56 ()!=quantifiers::MBQI_FMC_INTERV
112e0 41 4c 20 29 20 29 7b 00 20 20 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 6d 62 71 69 4d AL.).){...........options::mbqiM
11300 6f 64 65 28 29 21 3d 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 4d 42 51 49 5f 46 4d 43 20 26 26 00 ode()!=quantifiers::MBQI_FMC.&&.
11320 20 20 20 20 20 20 20 20 28 20 6f 70 74 69 6f 6e 73 3a 3a 6d 62 71 69 4d 6f 64 65 28 29 21 3d 71 ........(.options::mbqiMode()!=q
11340 75 61 6e 74 69 66 69 65 72 73 3a 3a 4d 42 51 49 5f 4e 4f 4e 45 20 26 26 00 20 20 20 20 69 66 28 uantifiers::MBQI_NONE.&&.....if(
11360 20 21 20 6f 70 74 69 6f 6e 73 3a 3a 6d 62 71 69 4d 6f 64 65 2e 77 61 73 53 65 74 42 79 55 73 65 .!.options::mbqiMode.wasSetByUse
11380 72 28 29 20 7c 7c 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 66 69 6e 69 74 65 4d 6f 64 65 6c 46 r().||.....options::finiteModelF
113a0 69 6e 64 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 2f 2f 6d 75 73 74 20 68 61 76 65 ind.set(.true.);.....//must.have
113c0 20 66 69 6e 69 74 65 20 6d 6f 64 65 6c 20 66 69 6e 64 69 6e 67 20 6f 6e 00 20 20 69 66 28 20 6f .finite.model.finding.on...if(.o
113e0 70 74 69 6f 6e 73 3a 3a 66 6d 66 42 6f 75 6e 64 28 29 20 29 7b 00 20 20 2f 2f 61 70 70 6c 79 20 ptions::fmfBound().){...//apply.
11400 66 6d 66 42 6f 75 6e 64 49 6e 74 20 6f 70 74 69 6f 6e 73 00 20 20 2f 2f 6e 6f 77 20 68 61 76 65 fmfBoundInt.options...//now.have
11420 20 64 65 74 65 72 6d 69 6e 65 64 20 77 68 65 74 68 65 72 20 66 6d 66 42 6f 75 6e 64 49 6e 74 20 .determined.whether.fmfBoundInt.
11440 69 73 20 6f 6e 2f 6f 66 66 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 66 6d 66 42 6f is.on/off...}.....options::fmfBo
11460 75 6e 64 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 20 20 28 20 6f 70 74 69 6f 6e 73 und.set(.true.);.......(.options
11480 3a 3a 66 6d 66 42 6f 75 6e 64 49 6e 74 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 26 26 20 ::fmfBoundInt.wasSetByUser().&&.
114a0 6f 70 74 69 6f 6e 73 3a 3a 66 6d 66 42 6f 75 6e 64 49 6e 74 28 29 20 29 20 29 20 7b 00 20 20 69 options::fmfBoundInt().).).{...i
114c0 66 28 20 28 20 6f 70 74 69 6f 6e 73 3a 3a 66 6d 66 42 6f 75 6e 64 4c 61 7a 79 2e 77 61 73 53 65 f(.(.options::fmfBoundLazy.wasSe
114e0 74 42 79 55 73 65 72 28 29 20 26 26 20 6f 70 74 69 6f 6e 73 3a 3a 66 6d 66 42 6f 75 6e 64 4c 61 tByUser().&&.options::fmfBoundLa
11500 7a 79 28 29 20 29 20 7c 7c 00 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 74 72 61 63 zy().).||....}.....options::trac
11520 6b 49 6e 73 74 4c 65 6d 6d 61 73 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 69 66 28 20 6f kInstLemmas.set(.true.);...if(.o
11540 70 74 69 6f 6e 73 3a 3a 63 62 71 69 4e 65 73 74 65 64 51 45 28 29 20 7c 7c 20 28 20 6f 70 74 69 ptions::cbqiNestedQE().||.(.opti
11560 6f 6e 73 3a 3a 70 72 6f 6f 66 28 29 20 26 26 20 21 6f 70 74 69 6f 6e 73 3a 3a 74 72 61 63 6b 49 ons::proof().&&.!options::trackI
11580 6e 73 74 4c 65 6d 6d 61 73 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 20 29 7b 00 20 20 nstLemmas.wasSetByUser().).){...
115a0 2f 2f 74 72 61 63 6b 20 69 6e 73 74 61 6e 74 69 61 74 69 6f 6e 73 3f 00 20 20 7d 00 20 20 20 20 //track.instantiations?...}.....
115c0 6f 70 74 69 6f 6e 73 3a 3a 63 62 71 69 2e 73 65 74 28 66 61 6c 73 65 29 3b 00 20 20 20 20 4e 6f options::cbqi.set(false);.....No
115e0 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 tice().<<."SmtEngine:.turning.of
11600 66 20 63 62 71 69 20 74 6f 20 73 75 70 70 6f 72 74 20 69 6e 73 74 4d 61 78 4c 65 76 65 6c 22 20 f.cbqi.to.support.instMaxLevel".
11620 3c 3c 20 65 6e 64 6c 3b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 73 74 4d 61 78 4c <<.endl;...if(.options::instMaxL
11640 65 76 65 6c 28 29 21 3d 2d 31 20 29 7b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 evel()!=-1.){...}.....}.......op
11660 74 69 6f 6e 73 3a 3a 69 6e 73 74 4d 61 78 4c 65 76 65 6c 2e 73 65 74 28 20 30 20 29 3b 00 20 20 tions::instMaxLevel.set(.0.);...
11680 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 6e 73 74 4d 61 78 4c 65 76 65 6c 2e 77 61 73 ..if(.!options::instMaxLevel.was
116a0 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 6c 6f SetByUser().){...if(.options::lo
116c0 63 61 6c 54 68 65 6f 72 79 45 78 74 28 29 20 29 7b 00 20 20 2f 2f 6c 6f 63 61 6c 20 74 68 65 6f calTheoryExt().){...//local.theo
116e0 72 79 20 65 78 74 65 6e 73 69 6f 6e 73 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f ry.extensions....}.....}.......o
11700 70 74 69 6f 6e 73 3a 3a 69 6e 73 74 57 68 65 6e 53 74 72 69 63 74 49 6e 74 65 72 6c 65 61 76 65 ptions::instWhenStrictInterleave
11720 2e 73 65 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a .set(.false.);.....if(.!options:
11740 3a 69 6e 73 74 57 68 65 6e 53 74 72 69 63 74 49 6e 74 65 72 6c 65 61 76 65 2e 77 61 73 53 65 74 :instWhenStrictInterleave.wasSet
11760 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 69 66 28 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f ByUser().){...if(.d_logic.isTheo
11780 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 53 54 52 49 4e 47 53 29 20 7c 7c 20 28 64 5f ryEnabled(THEORY_STRINGS).||.(d_
117a0 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 49 logic.isTheoryEnabled(THEORY_ARI
117c0 54 48 29 20 26 26 20 21 64 5f 6c 6f 67 69 63 2e 69 73 4c 69 6e 65 61 72 28 29 29 20 29 7b 00 20 TH).&&.!d_logic.isLinear()).){..
117e0 20 2f 2f 69 66 20 69 74 20 63 6f 6e 74 61 69 6e 73 20 61 20 74 68 65 6f 72 79 20 77 69 74 68 20 .//if.it.contains.a.theory.with.
11800 6e 6f 6e 2d 74 65 72 6d 69 6e 61 74 69 6f 6e 2c 20 64 6f 20 6e 6f 74 20 73 74 72 69 63 74 6c 79 non-termination,.do.not.strictly
11820 20 65 6e 66 6f 72 63 65 20 74 68 61 74 20 71 75 61 6e 74 69 66 69 65 72 73 20 61 6e 64 20 74 68 .enforce.that.quantifiers.and.th
11840 65 6f 72 79 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 69 6e 74 65 72 6c 65 eory.combination.must.be.interle
11860 61 76 65 64 00 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 66 69 6e 69 74 65 4d 6f 64 aved....}.....options::finiteMod
11880 65 6c 46 69 6e 64 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 2f 2f 6d 75 73 74 20 68 elFind.set(.true.);.....//must.h
118a0 61 76 65 20 66 69 6e 69 74 65 20 6d 6f 64 65 6c 20 66 69 6e 64 69 6e 67 20 6f 6e 00 20 20 69 66 ave.finite.model.finding.on...if
118c0 28 20 64 5f 6c 6f 67 69 63 2e 68 61 73 43 61 72 64 69 6e 61 6c 69 74 79 43 6f 6e 73 74 72 61 69 (.d_logic.hasCardinalityConstrai
118e0 6e 74 73 28 29 20 29 7b 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 71 75 61 6e 74 45 nts().){...}.....options::quantE
11900 70 72 2e 73 65 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 75 66 pr.set(.false.);.....options::uf
11920 73 73 46 61 69 72 6e 65 73 73 4d 6f 6e 6f 74 6f 6e 65 2e 73 65 74 28 20 66 61 6c 73 65 20 29 3b ssFairnessMonotone.set(.false.);
11940 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 73 6f 72 74 49 6e 66 65 72 65 6e 63 65 2e 73 65 74 28 .....options::sortInference.set(
11960 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 2f 2f 64 69 73 61 62 6c 65 20 6d 6f 64 65 73 20 6e 6f .false.);.....//disable.modes.no
11980 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 69 6e 63 72 65 6d 65 6e 74 61 6c 00 20 20 69 66 28 t.supported.by.incremental...if(
119a0 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 20 29 .options::incrementalSolving().)
119c0 7b 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 64 65 63 69 73 69 6f 6e 53 74 6f 70 4f {...}.....options::decisionStopO
119e0 6e 6c 79 2e 73 65 74 28 73 74 6f 70 6f 6e 6c 79 29 3b 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a nly.set(stoponly);.....options::
11a00 64 65 63 69 73 69 6f 6e 4d 6f 64 65 2e 73 65 74 28 64 65 63 4d 6f 64 65 29 3b 00 20 20 20 20 54 decisionMode.set(decMode);.....T
11a20 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 73 65 74 74 69 6e 67 20 64 65 63 69 73 69 6f 6e race("smt").<<."setting.decision
11a40 20 6d 6f 64 65 20 74 6f 20 22 20 3c 3c 20 64 65 63 4d 6f 64 65 20 3c 3c 20 65 6e 64 6c 3b 00 00 .mode.to.".<<.decMode.<<.endl;..
11a60 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 3f 20 74 72 75 65 20 3a 20 66 61 6c 73 65 00 ......);.........?.true.:.false.
11a80 20 20 20 20 20 20 20 20 20 29 00 20 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 .........)..........d_logic.isPu
11aa0 72 65 28 54 48 45 4f 52 59 5f 41 52 49 54 48 29 20 26 26 20 64 5f 6c 6f 67 69 63 2e 69 73 4c 69 re(THEORY_ARITH).&&.d_logic.isLi
11ac0 6e 65 61 72 28 29 20 26 26 20 21 64 5f 6c 6f 67 69 63 2e 69 73 44 69 66 66 65 72 65 6e 63 65 4c near().&&.!d_logic.isDifferenceL
11ae0 6f 67 69 63 28 29 20 26 26 20 20 21 64 5f 6c 6f 67 69 63 2e 61 72 65 49 6e 74 65 67 65 72 73 55 ogic().&&..!d_logic.areIntegersU
11b00 73 65 64 28 29 00 20 20 20 20 20 20 20 20 28 6e 6f 74 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 sed().........(not.d_logic.isQua
11b20 6e 74 69 66 69 65 64 28 29 20 26 26 00 20 20 20 20 20 20 20 20 2f 2f 20 51 46 5f 4c 52 41 00 20 ntified().&&.........//.QF_LRA..
11b40 20 20 20 20 20 20 20 20 29 20 7c 7c 00 20 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 ........).||..........d_logic.is
11b60 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 49 54 48 29 00 20 20 20 20 TheoryEnabled(THEORY_ARITH).....
11b80 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 .....d_logic.isTheoryEnabled(THE
11ba0 4f 52 59 5f 55 46 29 20 26 26 00 20 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 ORY_UF).&&..........d_logic.isTh
11bc0 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 29 20 26 26 00 20 20 20 eoryEnabled(THEORY_ARRAY).&&....
11be0 20 20 20 20 20 28 6e 6f 74 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 .....(not.d_logic.isQuantified()
11c00 20 26 26 00 20 20 20 20 20 20 28 20 2f 2f 20 51 46 5f 41 55 46 4c 49 41 00 20 20 20 20 20 20 64 .&&.......(.//.QF_AUFLIA.......d
11c20 5f 6c 6f 67 69 63 2e 68 61 73 45 76 65 72 79 74 68 69 6e 67 28 29 20 7c 7c 20 64 5f 6c 6f 67 69 _logic.hasEverything().||.d_logi
11c40 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 53 54 52 49 4e 47 53 c.isTheoryEnabled(THEORY_STRINGS
11c60 29 20 3f 20 66 61 6c 73 65 20 3a 00 20 20 20 20 20 20 2f 2f 20 41 4c 4c 00 20 20 20 20 62 6f 6f ).?.false.:.......//.ALL.....boo
11c80 6c 20 73 74 6f 70 6f 6e 6c 79 20 3d 00 00 20 20 20 20 20 20 29 3b 00 20 20 20 20 20 20 20 20 3a l.stoponly.=........);.........:
11ca0 20 64 65 63 69 73 69 6f 6e 3a 3a 44 45 43 49 53 49 4f 4e 5f 53 54 52 41 54 45 47 59 5f 49 4e 54 .decision::DECISION_STRATEGY_INT
11cc0 45 52 4e 41 4c 00 20 20 20 20 20 20 20 20 3f 20 64 65 63 69 73 69 6f 6e 3a 3a 44 45 43 49 53 49 ERNAL.........?.decision::DECISI
11ce0 4f 4e 5f 53 54 52 41 54 45 47 59 5f 4a 55 53 54 49 46 49 43 41 54 49 4f 4e 00 20 20 20 20 20 20 ON_STRATEGY_JUSTIFICATION.......
11d00 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 ..d_logic.isTheoryEnabled(THEORY
11d20 5f 53 54 52 49 4e 47 53 29 00 20 20 20 20 20 20 20 20 2f 2f 20 53 74 72 69 6e 67 73 00 20 20 20 _STRINGS).........//.Strings....
11d40 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 7c 7c 00 20 .....d_logic.isQuantified().||..
11d60 20 20 20 20 20 20 20 2f 2f 20 51 75 61 6e 74 69 66 69 65 72 73 00 20 20 20 20 20 20 20 20 20 29 .......//.Quantifiers..........)
11d80 20 7c 7c 00 20 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f .||..........d_logic.isPure(THEO
11da0 52 59 5f 41 52 49 54 48 29 20 26 26 20 64 5f 6c 6f 67 69 63 2e 69 73 4c 69 6e 65 61 72 28 29 20 RY_ARITH).&&.d_logic.isLinear().
11dc0 26 26 20 21 64 5f 6c 6f 67 69 63 2e 69 73 44 69 66 66 65 72 65 6e 63 65 4c 6f 67 69 63 28 29 20 &&.!d_logic.isDifferenceLogic().
11de0 26 26 20 20 21 64 5f 6c 6f 67 69 63 2e 61 72 65 49 6e 74 65 67 65 72 73 55 73 65 64 28 29 00 20 &&..!d_logic.areIntegersUsed()..
11e00 20 20 20 20 20 20 20 28 6e 6f 74 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 .......(not.d_logic.isQuantified
11e20 28 29 20 26 26 00 20 20 20 20 20 20 20 20 2f 2f 20 51 46 5f 4c 52 41 00 20 20 20 20 20 20 20 20 ().&&.........//.QF_LRA.........
11e40 20 29 20 7c 7c 00 20 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 .).||..........d_logic.isTheoryE
11e60 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 49 54 48 29 00 20 20 20 20 20 20 20 20 20 64 5f nabled(THEORY_ARITH)..........d_
11e80 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 55 46 29 logic.isTheoryEnabled(THEORY_UF)
11ea0 20 26 26 00 20 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 .&&..........d_logic.isTheoryEna
11ec0 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 29 20 26 26 00 20 20 20 20 20 20 20 20 28 6e bled(THEORY_ARRAY).&&.........(n
11ee0 6f 74 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 26 26 00 20 20 20 ot.d_logic.isQuantified().&&....
11f00 20 20 20 20 20 2f 2f 20 51 46 5f 41 55 46 4c 49 41 20 28 61 6e 64 20 6d 61 79 20 62 65 20 65 6e .....//.QF_AUFLIA.(and.may.be.en
11f20 64 73 20 75 70 20 65 6e 61 62 6c 69 6e 67 20 51 46 5f 41 55 46 4c 52 41 3f 29 00 20 20 20 20 20 ds.up.enabling.QF_AUFLRA?)......
11f40 20 20 20 20 29 20 7c 7c 00 20 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f ....).||..........d_logic.isTheo
11f60 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 42 56 29 00 20 20 20 20 20 20 20 20 20 20 64 ryEnabled(THEORY_BV)...........d
11f80 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 55 46 _logic.isTheoryEnabled(THEORY_UF
11fa0 29 29 20 26 26 00 20 20 20 20 20 20 20 20 20 28 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 )).&&..........(d_logic.isTheory
11fc0 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 52 41 59 29 20 7c 7c 00 20 20 20 20 20 20 20 Enabled(THEORY_ARRAY).||........
11fe0 20 28 6e 6f 74 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 26 26 00 .(not.d_logic.isQuantified().&&.
12000 61 64 00 00 29 00 00 00 e9 01 00 00 00 10 00 00 69 00 00 00 00 00 00 00 cc 0f 00 00 a6 0f 00 00 ad..)...........i...............
12020 6d 0f 00 00 37 0f 00 00 31 0f 00 00 2d 0f 00 00 0c 0f 00 00 e4 0e 00 00 e0 0e 00 00 b2 0e 00 00 m...7...1...-...................
12040 7c 0e 00 00 4e 0e 00 00 48 0e 00 00 44 0e 00 00 1e 0e 00 00 ea 0d 00 00 be 0d 00 00 b8 0d 00 00 |...N...H...D...................
12060 b4 0d 00 00 ac 0d 00 00 8f 0d 00 00 5c 0d 00 00 31 0d 00 00 2b 0d 00 00 27 0d 00 00 26 0d 00 00 ............\...1...+...'...&...
12080 e9 0c 00 00 c2 0c 00 00 9e 0c 00 00 6f 0c 00 00 39 0c 00 00 e9 0b 00 00 e3 0b 00 00 97 0b 00 00 ............o...9...............
120a0 61 0b 00 00 32 0b 00 00 2c 0b 00 00 fe 0a 00 00 c4 0a 00 00 be 0a 00 00 8d 0a 00 00 67 0a 00 00 a...2...,...................g...
120c0 45 0a 00 00 fe 09 00 00 f6 09 00 00 f0 09 00 00 ba 09 00 00 85 09 00 00 58 09 00 00 50 09 00 00 E.......................X...P...
120e0 15 09 00 00 e2 08 00 00 da 08 00 00 a1 08 00 00 70 08 00 00 68 08 00 00 62 08 00 00 5e 08 00 00 ................p...h...b...^...
12100 5d 08 00 00 27 08 00 00 df 07 00 00 ae 07 00 00 85 07 00 00 7f 07 00 00 7b 07 00 00 5a 07 00 00 ]...'...................{...Z...
12120 26 07 00 00 ef 06 00 00 a6 06 00 00 a0 06 00 00 6a 06 00 00 3b 06 00 00 35 06 00 00 04 06 00 00 &...............j...;...5.......
12140 da 05 00 00 d4 05 00 00 af 05 00 00 73 05 00 00 3f 05 00 00 39 05 00 00 03 05 00 00 d5 04 00 00 ............s...?...9...........
12160 cf 04 00 00 b8 04 00 00 85 04 00 00 59 04 00 00 53 04 00 00 19 04 00 00 e6 03 00 00 e0 03 00 00 ............Y...S...............
12180 cd 03 00 00 9d 03 00 00 75 03 00 00 6f 03 00 00 58 03 00 00 28 03 00 00 ff 02 00 00 f9 02 00 00 ........u...o...X...(...........
121a0 c6 02 00 00 9b 02 00 00 95 02 00 00 91 02 00 00 5b 02 00 00 0a 02 00 00 e9 01 00 00 00 00 00 00 ................[...............
121c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121e0 00 00 00 00 00 00 00 00 00 20 20 69 66 28 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 ...........if(.d_logic.isQuantif
12200 69 65 64 28 29 20 26 26 20 00 20 20 2f 2f 20 65 6e 61 62 6c 65 20 69 66 20 61 6e 79 20 70 6f 73 ied().&&....//.enable.if.any.pos
12220 73 69 62 6c 65 20 71 75 61 6e 74 69 66 69 65 72 73 20 77 69 74 68 20 61 72 69 74 68 6d 65 74 69 sible.quantifiers.with.arithmeti
12240 63 2c 20 64 61 74 61 74 79 70 65 73 20 6f 72 20 62 69 74 76 65 63 74 6f 72 73 00 20 20 2f 2f 63 c,.datatypes.or.bitvectors...//c
12260 6f 75 6e 74 65 72 65 78 61 6d 70 6c 65 2d 67 75 69 64 65 64 20 69 6e 73 74 61 6e 74 69 61 74 69 ounterexample-guided.instantiati
12280 6f 6e 20 66 6f 72 20 6e 6f 6e 2d 73 79 67 75 73 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 on.for.non-sygus...}.....}......
122a0 20 6f 70 74 69 6f 6e 73 3a 3a 63 62 71 69 50 72 65 52 65 67 49 6e 73 74 2e 73 65 74 28 20 74 72 .options::cbqiPreRegInst.set(.tr
122c0 75 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 63 62 71 69 50 72 65 52 ue.);.....if(.!options::cbqiPreR
122e0 65 67 49 6e 73 74 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 7d 00 20 egInst.wasSetByUser()).{.....}..
12300 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 6d 61 63 72 6f 73 51 75 61 6e 74 2e 73 65 74 28 20 66 .....options::macrosQuant.set(.f
12320 61 6c 73 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 6d 61 63 72 6f 73 alse.);.....if(.!options::macros
12340 51 75 61 6e 74 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 2f 2f 64 6f Quant.wasSetByUser()).{.....//do
12360 20 6e 6f 74 20 64 6f 20 6d 61 63 72 6f 73 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f .not.do.macros.....}.......optio
12380 6e 73 3a 3a 72 65 77 72 69 74 65 44 69 76 6b 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 ns::rewriteDivk.set(.true.);....
123a0 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 72 65 77 72 69 74 65 44 69 76 6b 2e 77 61 73 53 65 .if(.!options::rewriteDivk.wasSe
123c0 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 2f 2f 72 65 77 72 69 74 65 20 64 69 76 6b 00 tByUser()).{.....//rewrite.divk.
123e0 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 6d 69 6e 69 73 63 6f 70 65 51 75 ....}.......options::miniscopeQu
12400 61 6e 74 46 72 65 65 56 61 72 2e 73 65 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 69 66 28 antFreeVar.set(.false.);.....if(
12420 20 21 6f 70 74 69 6f 6e 73 3a 3a 6d 69 6e 69 73 63 6f 70 65 51 75 61 6e 74 46 72 65 65 56 61 72 .!options::miniscopeQuantFreeVar
12440 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f .wasSetByUser().){.....}.......o
12460 70 74 69 6f 6e 73 3a 3a 6d 69 6e 69 73 63 6f 70 65 51 75 61 6e 74 2e 73 65 74 28 20 66 61 6c 73 ptions::miniscopeQuant.set(.fals
12480 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 6d 69 6e 69 73 63 6f 70 65 e.);.....if(.!options::miniscope
124a0 51 75 61 6e 74 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 2f 2f 64 6f Quant.wasSetByUser().){.....//do
124c0 20 6e 6f 74 20 6d 69 6e 69 73 63 6f 70 65 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f .not.miniscope.....}.......optio
124e0 6e 73 3a 3a 64 74 52 65 77 72 69 74 65 45 72 72 6f 72 53 65 6c 2e 73 65 74 28 20 74 72 75 65 20 ns::dtRewriteErrorSel.set(.true.
12500 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 64 74 52 65 77 72 69 74 65 45 72 );.....if(.!options::dtRewriteEr
12520 72 6f 72 53 65 6c 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 7d 00 20 rorSel.wasSetByUser().){.....}..
12540 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 62 69 74 76 65 63 74 6f 72 44 69 76 42 79 5a 65 72 6f .....options::bitvectorDivByZero
12560 43 6f 6e 73 74 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 Const.set(.true.);.....if(.!opti
12580 6f 6e 73 3a 3a 62 69 74 76 65 63 74 6f 72 44 69 76 42 79 5a 65 72 6f 43 6f 6e 73 74 2e 77 61 73 ons::bitvectorDivByZeroConst.was
125a0 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 2f 2f 64 6f 20 6e 6f 74 20 61 6c 6c 6f SetByUser().){.....//do.not.allo
125c0 77 20 70 61 72 74 69 61 6c 20 66 75 6e 63 74 69 6f 6e 73 00 20 20 20 20 7d 00 20 20 20 20 20 20 w.partial.functions.....}.......
125e0 6f 70 74 69 6f 6e 73 3a 3a 69 6e 73 74 4e 6f 45 6e 74 61 69 6c 2e 73 65 74 28 20 66 61 6c 73 65 options::instNoEntail.set(.false
12600 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 6e 73 74 4e 6f 45 6e 74 61 .);.....if(.!options::instNoEnta
12620 69 6c 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 7d 00 20 20 20 20 20 il.wasSetByUser().){.....}......
12640 20 6f 70 74 69 6f 6e 73 3a 3a 71 75 61 6e 74 43 6f 6e 66 6c 69 63 74 46 69 6e 64 2e 73 65 74 28 .options::quantConflictFind.set(
12660 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 71 75 61 6e .false.);.....if(.!options::quan
12680 74 43 6f 6e 66 6c 69 63 74 46 69 6e 64 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 tConflictFind.wasSetByUser().){.
126a0 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 63 65 67 71 69 53 69 6e 67 6c 65 ....}.......options::cegqiSingle
126c0 49 6e 76 4d 6f 64 65 2e 73 65 74 28 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 43 45 47 51 49 5f InvMode.set(.quantifiers::CEGQI_
126e0 53 49 5f 4d 4f 44 45 5f 55 53 45 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a SI_MODE_USE.);.....if(.!options:
12700 3a 63 65 67 71 69 53 69 6e 67 6c 65 49 6e 76 4d 6f 64 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 :cegqiSingleInvMode.wasSetByUser
12720 28 29 20 29 7b 00 20 20 20 20 2f 2f 63 6f 75 6e 74 65 72 65 78 61 6d 70 6c 65 2d 67 75 69 64 65 ().){.....//counterexample-guide
12740 64 20 69 6e 73 74 61 6e 74 69 61 74 69 6f 6e 20 66 6f 72 20 73 79 67 75 73 00 20 20 69 66 28 20 d.instantiation.for.sygus...if(.
12760 6f 70 74 69 6f 6e 73 3a 3a 63 65 47 75 69 64 65 64 49 6e 73 74 28 29 20 29 7b 00 20 20 7d 00 20 options::ceGuidedInst().){...}..
12780 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 63 65 47 75 69 64 65 64 49 6e 73 74 ...}.......options::ceGuidedInst
127a0 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a .set(.true.);.....if(.!options::
127c0 63 65 47 75 69 64 65 64 49 6e 73 74 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 ceGuidedInst.wasSetByUser().){..
127e0 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 63 65 67 71 69 53 69 6e 67 6c 65 49 6e 76 4d 6f 64 65 .if(.options::cegqiSingleInvMode
12800 28 29 21 3d 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 43 45 47 51 49 5f 53 49 5f 4d 4f 44 45 5f 4e ()!=quantifiers::CEGQI_SI_MODE_N
12820 4f 4e 45 20 29 7b 00 20 20 2f 2f 61 70 70 6c 79 20 63 6f 75 6e 74 65 72 65 78 61 6d 70 6c 65 20 ONE.){...//apply.counterexample.
12840 67 75 69 64 65 64 20 69 6e 73 74 61 6e 74 69 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 00 00 20 20 guided.instantiation.options....
12860 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a }.....}.......}.........options:
12880 3a 66 6d 66 4f 6e 65 49 6e 73 74 50 65 72 52 6f 75 6e 64 2e 73 65 74 28 20 74 72 75 65 20 29 3b :fmfOneInstPerRound.set(.true.);
128a0 00 20 20 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 66 6d 66 4f 6e 65 49 6e 73 74 50 .......if(.!options::fmfOneInstP
128c0 65 72 52 6f 75 6e 64 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 20 20 erRound.wasSetByUser().){.......
128e0 7d 00 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e }.........options::preSkolemQuan
12900 74 4e 65 73 74 65 64 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 20 20 69 66 28 20 21 tNested.set(.true.);.......if(.!
12920 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e 74 4e 65 73 74 65 64 2e 77 61 options::preSkolemQuantNested.wa
12940 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 sSetByUser().){.......}.........
12960 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e 74 2e 73 65 74 28 20 74 72 75 options::preSkolemQuant.set(.tru
12980 65 20 29 3b 00 20 20 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 53 6b 6f 6c e.);.......if(.!options::preSkol
129a0 65 6d 51 75 61 6e 74 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 69 66 emQuant.wasSetByUser().){.....if
129c0 28 20 6f 70 74 69 6f 6e 73 3a 3a 6d 62 71 69 4d 6f 64 65 28 29 3d 3d 71 75 61 6e 74 69 66 69 65 (.options::mbqiMode()==quantifie
129e0 72 73 3a 3a 4d 42 51 49 5f 41 42 53 20 29 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 rs::MBQI_ABS.){.....}.......}...
12a00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 73 74 57 68 65 6e 4d 6f 64 65 2e 73 65 74 28 ......options::instWhenMode.set(
12a20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 49 4e 53 54 5f 57 48 45 4e 5f 4c 41 53 54 5f 43 41 4c .quantifiers::INST_WHEN_LAST_CAL
12a40 4c 20 29 3b 00 20 20 20 20 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 65 4d 61 74 63 68 69 6e L.);.......if(.options::eMatchin
12a60 67 28 29 20 29 7b 00 20 20 20 20 20 20 2f 2f 69 6e 73 74 61 6e 74 69 61 74 65 20 6f 6e 6c 79 20 g().){.......//instantiate.only.
12a80 6f 6e 20 6c 61 73 74 20 63 61 6c 6c 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 on.last.call.....if(.!options::i
12aa0 6e 73 74 57 68 65 6e 4d 6f 64 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 nstWhenMode.wasSetByUser().){...
12ac0 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 65 4d 61 74 63 68 69 6e 67 2e 73 65 74 ..}.......options::eMatching.set
12ae0 28 20 6f 70 74 69 6f 6e 73 3a 3a 66 6d 66 49 6e 73 74 45 6e 67 69 6e 65 28 29 20 29 3b 00 20 20 (.options::fmfInstEngine().);...
12b00 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 65 4d 61 74 63 68 69 6e 67 2e 77 61 73 53 65 74 ..if(.!options::eMatching.wasSet
12b20 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a ByUser().){.....}.......options:
12b40 3a 65 6c 69 6d 45 78 74 41 72 69 74 68 51 75 61 6e 74 2e 73 65 74 28 20 66 61 6c 73 65 20 29 3b :elimExtArithQuant.set(.false.);
12b60 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 65 6c 69 6d 45 78 74 41 72 69 74 68 51 .....if(.!options::elimExtArithQ
12b80 75 61 6e 74 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 2f 2f 64 6f 20 uant.wasSetByUser().){.....//do.
12ba0 6e 6f 74 20 65 6c 69 6d 69 6e 61 74 65 20 65 78 74 65 6e 64 65 64 20 61 72 69 74 68 6d 65 74 69 not.eliminate.extended.arithmeti
12bc0 63 20 73 79 6d 62 6f 6c 73 20 66 72 6f 6d 20 71 75 61 6e 74 69 66 69 65 64 20 66 6f 72 6d 75 6c c.symbols.from.quantified.formul
12be0 61 73 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 71 75 61 6e 74 44 79 6e as.....}.......options::quantDyn
12c00 61 6d 69 63 53 70 6c 69 74 2e 73 65 74 28 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 55 41 4e amicSplit.set(.quantifiers::QUAN
12c20 54 5f 44 53 50 4c 49 54 5f 4d 4f 44 45 5f 44 45 46 41 55 4c 54 20 29 3b 00 20 20 20 20 69 66 28 T_DSPLIT_MODE_DEFAULT.);.....if(
12c40 20 21 6f 70 74 69 6f 6e 73 3a 3a 71 75 61 6e 74 44 79 6e 61 6d 69 63 53 70 6c 69 74 2e 77 61 73 .!options::quantDynamicSplit.was
12c60 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 2f 2f 61 70 70 6c 79 20 63 6f 6e 73 65 SetByUser().){.....//apply.conse
12c80 72 76 61 74 69 76 65 20 71 75 61 6e 74 69 66 69 65 72 73 20 73 70 6c 69 74 74 69 6e 67 00 20 20 rvative.quantifiers.splitting...
12ca0 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 66 69 6e 69 74 65 4d 6f 64 65 6c 46 69 6e 64 28 29 20 29 if(.options::finiteModelFind().)
12cc0 7b 00 20 20 2f 2f 61 70 70 6c 79 20 66 69 6e 69 74 65 20 6d 6f 64 65 6c 20 66 69 6e 64 69 6e 67 {...//apply.finite.model.finding
12ce0 20 6f 70 74 69 6f 6e 73 00 20 20 2f 2f 6e 6f 77 2c 20 68 61 76 65 20 64 65 74 65 72 6d 69 6e 65 .options...//now,.have.determine
12d00 64 20 77 68 65 74 68 65 72 20 66 69 6e 69 74 65 20 6d 6f 64 65 6c 20 66 69 6e 64 20 69 73 20 6f d.whether.finite.model.find.is.o
12d20 6e 2f 6f 66 66 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a n/off....}.....}.......options::
12d40 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e 74 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 preSkolemQuant.set(.true.);.....
12d60 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e 74 2e 77 61 73 if(.!options::preSkolemQuant.was
12d80 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 71 75 SetByUser().){...if(.options::qu
12da0 61 6e 74 45 70 72 28 29 20 29 7b 00 20 20 2f 2f 45 50 52 00 20 20 7d 00 20 20 20 20 7d 00 20 20 antEpr().){...//EPR...}.....}...
12dc0 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 66 69 6e 69 74 65 4d 6f 64 65 6c 46 69 6e 64 2e 73 65 74 ....options::finiteModelFind.set
12de0 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 66 69 6e 69 (.true.);.....if(.!options::fini
12e00 74 65 4d 6f 64 65 6c 46 69 6e 64 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 teModelFind.wasSetByUser().){...
12e20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 66 6d 66 46 75 6e 57 65 6c 6c 44 65 66 69 6e 65 64 28 29 if(.options::fmfFunWellDefined()
12e40 20 29 7b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 66 6d 66 .){...}.....}.......options::fmf
12e60 46 75 6e 57 65 6c 6c 44 65 66 69 6e 65 64 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 FunWellDefined.set(.true.);.....
12e80 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 66 6d 66 46 75 6e 57 65 6c 6c 44 65 66 69 6e 65 64 2e if(.!options::fmfFunWellDefined.
12ea0 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a wasSetByUser().){...if(.options:
12ec0 3a 66 6d 66 46 75 6e 57 65 6c 6c 44 65 66 69 6e 65 64 52 65 6c 65 76 61 6e 74 28 29 20 29 7b 00 :fmfFunWellDefinedRelevant().){.
12ee0 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 73 6f 72 74 49 6e 66 65 72 65 6e 63 65 2e 73 ..}.....options::sortInference.s
12f00 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 75 66 73 73 53 et(.true.);...if(.options::ufssS
12f20 79 6d 42 72 65 61 6b 28 29 20 29 7b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 ymBreak().){...}.....}.......opt
12f40 69 6f 6e 73 3a 3a 6d 62 71 69 4d 6f 64 65 2e 73 65 74 28 20 71 75 61 6e 74 69 66 69 65 72 73 3a ions::mbqiMode.set(.quantifiers:
12f60 3a 4d 42 51 49 5f 46 4d 43 20 29 3b 00 20 20 20 20 20 20 2f 2f 4d 42 51 49 5f 41 42 53 20 69 73 :MBQI_FMC.);.......//MBQI_ABS.is
12f80 20 6f 6e 6c 79 20 73 75 70 70 6f 72 74 65 64 20 69 6e 20 70 75 72 65 20 71 75 61 6e 74 69 66 69 .only.supported.in.pure.quantifi
12fa0 65 64 20 55 46 00 20 20 20 20 69 66 28 20 21 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 ed.UF.....if(.!d_logic.isPure(TH
12fc0 45 4f 52 59 5f 55 46 29 20 29 7b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 6d 62 71 69 4d EORY_UF).){...if(.options::mbqiM
12fe0 6f 64 65 28 29 3d 3d 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 4d 42 51 49 5f 41 42 53 20 29 7b 00 ode()==quantifiers::MBQI_ABS.){.
13000 61 64 00 00 29 00 00 00 d1 01 00 00 00 10 00 00 63 00 00 00 00 00 00 00 b5 0f 00 00 29 0f 00 00 ad..)...........c...........)...
13020 e4 0e 00 00 c4 0e 00 00 9b 0e 00 00 7a 0e 00 00 74 0e 00 00 70 0e 00 00 57 0e 00 00 3f 0e 00 00 ............z...t...p...W...?...
13040 0f 0e 00 00 e7 0d 00 00 e1 0d 00 00 b9 0d 00 00 94 0d 00 00 5c 0d 00 00 2b 0d 00 00 23 0d 00 00 ....................\...+...#...
13060 f0 0c 00 00 c4 0c 00 00 bc 0c 00 00 71 0c 00 00 22 0c 00 00 db 0b 00 00 d3 0b 00 00 c8 0b 00 00 ............q..."...............
13080 9e 0b 00 00 76 0b 00 00 70 0b 00 00 6c 0b 00 00 55 0b 00 00 32 0b 00 00 fc 0a 00 00 b2 0a 00 00 ....v...p...l...U...2...........
130a0 ac 0a 00 00 a8 0a 00 00 62 0a 00 00 36 0a 00 00 32 0a 00 00 18 0a 00 00 b2 09 00 00 7a 09 00 00 ........b...6...2...........z...
130c0 31 09 00 00 e8 08 00 00 e2 08 00 00 de 08 00 00 bd 08 00 00 93 08 00 00 60 08 00 00 35 08 00 00 1.......................`...5...
130e0 2f 08 00 00 2b 08 00 00 0e 08 00 00 eb 07 00 00 b8 07 00 00 8d 07 00 00 87 07 00 00 54 07 00 00 /...+.......................T...
13100 29 07 00 00 23 07 00 00 1f 07 00 00 fc 06 00 00 dc 06 00 00 a6 06 00 00 78 06 00 00 72 06 00 00 )...#...................x...r...
13120 40 06 00 00 06 06 00 00 d4 05 00 00 ce 05 00 00 9d 05 00 00 54 05 00 00 4e 05 00 00 4a 05 00 00 @...................T...N...J...
13140 27 05 00 00 f4 04 00 00 c9 04 00 00 c3 04 00 00 bf 04 00 00 98 04 00 00 58 04 00 00 1f 04 00 00 '.......................X.......
13160 19 04 00 00 db 03 00 00 a4 03 00 00 9e 03 00 00 64 03 00 00 31 03 00 00 2b 03 00 00 27 03 00 00 ................d...1...+...'...
13180 f0 02 00 00 c2 02 00 00 98 02 00 00 8d 02 00 00 62 02 00 00 5c 02 00 00 58 02 00 00 1b 02 00 00 ................b...\...X.......
131a0 d1 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 69 66 28 20 21 64 5f 6c 6f 67 69 63 2e ...................if(.!d_logic.
131e0 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 55 46 29 20 26 26 20 6f 70 isTheoryEnabled(THEORY_UF).&&.op
13200 74 69 6f 6e 73 3a 3a 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e 74 28 29 20 29 7b 00 20 20 2f 2f 63 tions::preSkolemQuant().){...//c
13220 61 6e 27 74 20 70 72 65 2d 73 6b 6f 6c 65 6d 69 7a 65 20 6e 65 73 74 65 64 20 71 75 61 6e 74 69 an't.pre-skolemize.nested.quanti
13240 66 69 65 72 73 20 77 69 74 68 6f 75 74 20 55 46 20 74 68 65 6f 72 79 00 20 20 7d 00 20 20 20 20 fiers.without.UF.theory...}.....
13260 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 63 6f 6e 6a 65 63 74 75 72 65 47 65 6e 2e 73 }.......options::conjectureGen.s
13280 65 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 7d 65 6c 73 65 7b 00 20 20 20 20 20 20 6f 70 et(.false.);.....}else{.......op
132a0 74 69 6f 6e 73 3a 3a 63 6f 6e 6a 65 63 74 75 72 65 47 65 6e 2e 73 65 74 28 20 74 72 75 65 20 29 tions::conjectureGen.set(.true.)
132c0 3b 00 20 20 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 63 6f 6e 6a 65 63 74 75 72 65 47 65 6e ;.....if(.options::conjectureGen
132e0 50 65 72 52 6f 75 6e 64 28 29 3e 30 20 29 7b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 63 PerRound()>0.){...if(.options::c
13300 6f 6e 6a 65 63 74 75 72 65 47 65 6e 50 65 72 52 6f 75 6e 64 2e 77 61 73 53 65 74 42 79 55 73 65 onjectureGenPerRound.wasSetByUse
13320 72 28 29 20 29 7b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a r().){...}.....}.......options::
13340 63 6f 6e 6a 65 63 74 75 72 65 46 69 6c 74 65 72 4d 6f 64 65 6c 2e 73 65 74 28 20 66 61 6c 73 65 conjectureFilterModel.set(.false
13360 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 63 6f 6e 6a 65 63 74 75 72 65 .);.....if(.!options::conjecture
13380 46 69 6c 74 65 72 4d 6f 64 65 6c 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 FilterModel.wasSetByUser().){...
133a0 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 63 6f 6e 6a 65 63 74 75 72 65 46 69 6c ..}.......options::conjectureFil
133c0 74 65 72 43 61 6e 6f 6e 69 63 61 6c 2e 73 65 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 69 terCanonical.set(.false.);.....i
133e0 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 63 6f 6e 6a 65 63 74 75 72 65 46 69 6c 74 65 72 43 61 6e f(.!options::conjectureFilterCan
13400 6f 6e 69 63 61 6c 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 7d 00 20 onical.wasSetByUser().){.....}..
13420 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 63 6f 6e 6a 65 63 74 75 72 65 46 69 6c 74 65 72 41 63 .....options::conjectureFilterAc
13440 74 69 76 65 54 65 72 6d 73 2e 73 65 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 69 66 28 20 tiveTerms.set(.false.);.....if(.
13460 21 6f 70 74 69 6f 6e 73 3a 3a 63 6f 6e 6a 65 63 74 75 72 65 46 69 6c 74 65 72 41 63 74 69 76 65 !options::conjectureFilterActive
13480 54 65 72 6d 73 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 69 66 28 20 6f 70 Terms.wasSetByUser().){...if(.op
134a0 74 69 6f 6e 73 3a 3a 63 6f 6e 6a 65 63 74 75 72 65 4e 6f 46 69 6c 74 65 72 28 29 20 29 7b 00 20 tions::conjectureNoFilter().){..
134c0 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 70 75 72 69 66 79 54 72 .}.....}.......options::purifyTr
134e0 69 67 67 65 72 73 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 iggers.set(.true.);.....if(.!opt
13500 69 6f 6e 73 3a 3a 70 75 72 69 66 79 54 72 69 67 67 65 72 73 2e 77 61 73 53 65 74 42 79 55 73 65 ions::purifyTriggers.wasSetByUse
13520 72 28 29 20 29 7b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 74 57 66 49 6e 64 75 63 r().){...if(.options::intWfInduc
13540 74 69 6f 6e 28 29 20 29 7b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e tion().){...}.....}.......option
13560 73 3a 3a 69 74 65 4c 69 66 74 51 75 61 6e 74 2e 73 65 74 28 20 71 75 61 6e 74 69 66 69 65 72 73 s::iteLiftQuant.set(.quantifiers
13580 3a 3a 49 54 45 5f 4c 49 46 54 5f 51 55 41 4e 54 5f 4d 4f 44 45 5f 41 4c 4c 20 29 3b 00 20 20 20 ::ITE_LIFT_QUANT_MODE_ALL.);....
135a0 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 74 65 4c 69 66 74 51 75 61 6e 74 2e 77 61 73 53 .if(.!options::iteLiftQuant.wasS
135c0 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e etByUser().){.....}.......option
135e0 73 3a 3a 69 74 65 44 74 54 65 73 74 65 72 53 70 6c 69 74 51 75 61 6e 74 2e 73 65 74 28 20 74 72 s::iteDtTesterSplitQuant.set(.tr
13600 75 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 74 65 44 74 54 65 73 ue.);.....if(.!options::iteDtTes
13620 74 65 72 53 70 6c 69 74 51 75 61 6e 74 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 terSplitQuant.wasSetByUser().){.
13640 20 20 20 20 2f 2f 74 72 79 20 74 6f 20 72 65 6d 6f 76 65 20 49 54 45 73 20 66 72 6f 6d 20 71 75 ....//try.to.remove.ITEs.from.qu
13660 61 6e 74 69 66 69 65 64 20 66 6f 72 6d 75 6c 61 73 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 antified.formulas.....}.......op
13680 74 69 6f 6e 73 3a 3a 64 74 46 6f 72 63 65 41 73 73 69 67 6e 6d 65 6e 74 2e 73 65 74 28 20 74 72 tions::dtForceAssignment.set(.tr
136a0 75 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 64 74 46 6f 72 63 65 41 ue.);.....if(.!options::dtForceA
136c0 73 73 69 67 6e 6d 65 6e 74 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 ssignment.wasSetByUser().){.....
136e0 2f 2f 6c 65 61 64 73 20 74 6f 20 75 6e 66 61 69 72 6e 65 73 73 20 46 49 58 4d 45 00 20 20 69 66 //leads.to.unfairness.FIXME...if
13700 28 20 6f 70 74 69 6f 6e 73 3a 3a 64 74 53 74 63 49 6e 64 75 63 74 69 6f 6e 28 29 20 29 7b 00 20 (.options::dtStcInduction().){..
13720 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 74 57 66 49 6e 64 .}.....}.......options::intWfInd
13740 75 63 74 69 6f 6e 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 uction.set(.true.);.....if(.!opt
13760 69 6f 6e 73 3a 3a 69 6e 74 57 66 49 6e 64 75 63 74 69 6f 6e 2e 77 61 73 53 65 74 42 79 55 73 65 ions::intWfInduction.wasSetByUse
13780 72 28 29 20 29 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 64 74 53 74 r().){.....}.......options::dtSt
137a0 63 49 6e 64 75 63 74 69 6f 6e 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 20 cInduction.set(.true.);.....if(.
137c0 21 6f 70 74 69 6f 6e 73 3a 3a 64 74 53 74 63 49 6e 64 75 63 74 69 6f 6e 2e 77 61 73 53 65 74 42 !options::dtStcInduction.wasSetB
137e0 79 55 73 65 72 28 29 20 29 7b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 71 75 61 6e 74 49 yUser().){...if(.options::quantI
13800 6e 64 75 63 74 69 6f 6e 28 29 20 29 7b 00 20 20 2f 2f 66 6f 72 20 69 6e 64 75 63 74 69 6f 6e 20 nduction().){...//for.induction.
13820 74 65 63 68 6e 69 71 75 65 73 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f techniques...}.....}.......optio
13840 6e 73 3a 3a 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e 74 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 ns::preSkolemQuant.set(.true.);.
13860 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e 74 ....if(.!options::preSkolemQuant
13880 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a .wasSetByUser().){.....options::
138a0 70 72 65 6e 65 78 51 75 61 6e 74 55 73 65 72 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 69 prenexQuantUser.set(.true.);...i
138c0 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 63 62 71 69 4e 65 73 74 65 64 51 45 28 29 20 29 7b 00 20 20 f(.options::cbqiNestedQE().){...
138e0 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 6e 65 78 51 75 61 }.....}.......options::prenexQua
13900 6e 74 2e 73 65 74 28 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 50 52 45 4e 45 58 5f 51 55 41 4e nt.set(.quantifiers::PRENEX_QUAN
13920 54 5f 44 49 53 4a 5f 4e 4f 52 4d 41 4c 20 29 3b 00 20 20 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 T_DISJ_NORMAL.);.....if(.options
13940 3a 3a 70 72 65 6e 65 78 51 75 61 6e 74 28 29 3c 3d 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 50 52 ::prenexQuant()<=quantifiers::PR
13960 45 4e 45 58 5f 51 55 41 4e 54 5f 44 49 53 4a 5f 4e 4f 52 4d 41 4c 20 29 7b 00 20 20 20 20 2f 2f ENEX_QUANT_DISJ_NORMAL.){.....//
13980 6f 6e 6c 79 20 63 6f 6d 70 6c 65 74 65 20 77 69 74 68 20 70 72 65 6e 65 78 20 3d 20 64 69 73 6a only.complete.with.prenex.=.disj
139a0 5f 6e 6f 72 6d 61 6c 20 6f 72 20 6e 6f 72 6d 61 6c 00 20 20 20 20 20 20 28 20 6f 70 74 69 6f 6e _normal.or.normal.......(.option
139c0 73 3a 3a 63 62 71 69 4e 65 73 74 65 64 51 45 28 29 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 64 65 s::cbqiNestedQE().||.options::de
139e0 63 69 73 69 6f 6e 4d 6f 64 65 28 29 3d 3d 64 65 63 69 73 69 6f 6e 3a 3a 44 45 43 49 53 49 4f 4e cisionMode()==decision::DECISION
13a00 5f 53 54 52 41 54 45 47 59 5f 49 4e 54 45 52 4e 41 4c 20 29 20 29 7b 00 20 20 69 66 28 20 6f 70 _STRATEGY_INTERNAL.).){...if(.op
13a20 74 69 6f 6e 73 3a 3a 63 62 71 69 28 29 20 26 26 20 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e tions::cbqi().&&....}.....option
13a40 73 3a 3a 71 75 61 6e 74 43 6f 6e 66 6c 69 63 74 46 69 6e 64 2e 73 65 74 28 20 74 72 75 65 20 29 s::quantConflictFind.set(.true.)
13a60 3b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 71 63 66 4d 6f 64 65 2e 77 61 73 53 65 74 42 ;...if(.options::qcfMode.wasSetB
13a80 79 55 73 65 72 28 29 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 71 63 66 54 43 6f 6e 73 74 72 61 69 yUser().||.options::qcfTConstrai
13aa0 6e 74 28 29 20 29 7b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a nt().){...}.....}.......options:
13ac0 3a 75 73 65 72 50 61 74 74 65 72 6e 73 51 75 61 6e 74 2e 73 65 74 28 20 71 75 61 6e 74 69 66 69 :userPatternsQuant.set(.quantifi
13ae0 65 72 73 3a 3a 55 53 45 52 5f 50 41 54 5f 4d 4f 44 45 5f 54 52 55 53 54 20 29 3b 00 20 20 20 20 ers::USER_PAT_MODE_TRUST.);.....
13b00 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 75 73 65 72 50 61 74 74 65 72 6e 73 51 75 61 6e 74 2e if(.!options::userPatternsQuant.
13b20 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a wasSetByUser().){...if(.options:
13b40 3a 73 74 72 69 63 74 54 72 69 67 67 65 72 73 28 29 20 29 7b 00 20 20 2f 2f 69 6d 70 6c 69 65 64 :strictTriggers().){...//implied
13b60 20 6f 70 74 69 6f 6e 73 2e 2e 2e 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 .options......}.....}.......opti
13b80 6f 6e 73 3a 3a 63 62 71 69 4e 65 73 74 65 64 51 45 2e 73 65 74 28 66 61 6c 73 65 29 3b 00 20 20 ons::cbqiNestedQE.set(false);...
13ba0 20 20 20 20 2f 2f 6f 6e 6c 79 20 73 75 70 70 6f 72 74 65 64 20 69 6e 20 70 75 72 65 20 61 72 69 ....//only.supported.in.pure.ari
13bc0 74 68 6d 65 74 69 63 00 20 20 20 20 7d 65 6c 73 65 7b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 thmetic.....}else{.......}......
13be0 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 73 74 57 68 65 6e 4d 6f 64 65 2e 73 65 74 28 20 71 75 ...options::instWhenMode.set(.qu
13c00 61 6e 74 69 66 69 65 72 73 3a 3a 49 4e 53 54 5f 57 48 45 4e 5f 4c 41 53 54 5f 43 41 4c 4c 20 29 antifiers::INST_WHEN_LAST_CALL.)
13c20 3b 00 20 20 20 20 20 20 20 20 2f 2f 6f 6e 6c 79 20 69 6e 73 74 61 6e 74 69 61 74 69 6f 6e 20 73 ;.........//only.instantiation.s
13c40 68 6f 75 6c 64 20 68 61 70 70 65 6e 20 61 74 20 6c 61 73 74 20 63 61 6c 6c 20 77 68 65 6e 20 6d hould.happen.at.last.call.when.m
13c60 6f 64 65 6c 20 69 73 20 61 76 61 69 61 62 6c 65 00 20 20 20 20 20 20 69 66 28 20 21 6f 70 74 69 odel.is.avaiable.......if(.!opti
13c80 6f 6e 73 3a 3a 69 6e 73 74 57 68 65 6e 4d 6f 64 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 ons::instWhenMode.wasSetByUser()
13ca0 20 26 26 20 6f 70 74 69 6f 6e 73 3a 3a 63 62 71 69 4d 6f 64 65 6c 28 29 20 29 7b 00 20 20 20 20 .&&.options::cbqiModel().){.....
13cc0 20 20 7d 00 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 73 74 4e 6f 45 6e 74 61 69 ..}.........options::instNoEntai
13ce0 6c 2e 73 65 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f l.set(.false.);.......if(.!optio
13d00 6e 73 3a 3a 69 6e 73 74 4e 6f 45 6e 74 61 69 6c 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 ns::instNoEntail.wasSetByUser().
13d20 29 7b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 71 75 61 6e ){.......}.........options::quan
13d40 74 43 6f 6e 66 6c 69 63 74 46 69 6e 64 2e 73 65 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 tConflictFind.set(.false.);.....
13d60 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 71 75 61 6e 74 43 6f 6e 66 6c 69 63 74 46 69 6e ..if(.!options::quantConflictFin
13d80 64 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 20 20 20 20 20 20 6f 70 74 69 6f 6e d.wasSetByUser().){.......option
13da0 73 3a 3a 63 62 71 69 41 6c 6c 2e 73 65 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 69 66 28 s::cbqiAll.set(.false.);.....if(
13dc0 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f 41 52 49 54 48 29 20 29 7b .d_logic.isPure(THEORY_ARITH).){
13de0 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 72 65 77 72 69 74 65 44 69 76 .....}.......options::rewriteDiv
13e00 6b 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a k.set(.true.);.....if(.!options:
13e20 3a 72 65 77 72 69 74 65 44 69 76 6b 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 :rewriteDivk.wasSetByUser()).{..
13e40 20 20 20 2f 2f 6d 75 73 74 20 72 65 77 72 69 74 65 20 64 69 76 6b 00 20 20 69 66 28 20 6f 70 74 ...//must.rewrite.divk...if(.opt
13e60 69 6f 6e 73 3a 3a 63 62 71 69 28 29 20 29 7b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 ions::cbqi().){...}.....}.......
13e80 6f 70 74 69 6f 6e 73 3a 3a 63 62 71 69 2e 73 65 74 28 20 74 72 75 65 20 29 3b 00 20 20 20 20 69 options::cbqi.set(.true.);.....i
13ea0 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 63 62 71 69 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 f(.!options::cbqi.wasSetByUser()
13ec0 20 29 7b 00 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 63 62 71 69 41 6c 6c 28 29 20 29 .){.........options::cbqiAll().)
13ee0 20 29 7b 00 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 .){.........d_logic.isPure(THEOR
13f00 59 5f 41 52 49 54 48 29 20 7c 7c 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 Y_ARITH).||.d_logic.isPure(THEOR
13f20 59 5f 42 56 29 20 7c 7c 00 20 20 20 20 20 20 20 20 20 20 28 20 64 5f 6c 6f 67 69 63 2e 69 73 54 Y_BV).||...........(.d_logic.isT
13f40 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 49 54 48 29 20 7c 7c 20 64 5f heoryEnabled(THEORY_ARITH).||.d_
13f60 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 44 41 54 logic.isTheoryEnabled(THEORY_DAT
13f80 41 54 59 50 45 53 29 20 7c 7c 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c ATYPES).||.d_logic.isTheoryEnabl
13fa0 65 64 28 54 48 45 4f 52 59 5f 42 56 29 20 29 20 29 20 7c 7c 00 20 20 20 20 20 20 28 20 28 20 6f ed(THEORY_BV).).).||.......(.(.o
13fc0 70 74 69 6f 6e 73 3a 3a 64 65 63 69 73 69 6f 6e 4d 6f 64 65 28 29 21 3d 64 65 63 69 73 69 6f 6e ptions::decisionMode()!=decision
13fe0 3a 3a 44 45 43 49 53 49 4f 4e 5f 53 54 52 41 54 45 47 59 5f 49 4e 54 45 52 4e 41 4c 20 26 26 00 ::DECISION_STRATEGY_INTERNAL.&&.
14000 61 64 00 00 15 00 00 00 95 01 00 00 00 10 00 00 59 00 00 00 00 00 00 00 c7 0f 00 00 95 0f 00 00 ad..............Y...............
14020 8f 0f 00 00 8b 0f 00 00 57 0f 00 00 0c 0f 00 00 08 0f 00 00 07 0f 00 00 e6 0e 00 00 b5 0e 00 00 ........W.......................
14040 68 0e 00 00 c7 0d 00 00 9b 0d 00 00 95 0d 00 00 91 0d 00 00 69 0d 00 00 45 0d 00 00 e8 0c 00 00 h...................i...E.......
14060 b5 0c 00 00 af 0c 00 00 86 0c 00 00 24 0c 00 00 ec 0b 00 00 e6 0b 00 00 c4 0b 00 00 69 0b 00 00 ............$...............i...
14080 38 0b 00 00 32 0b 00 00 2e 0b 00 00 2d 0b 00 00 e0 0a 00 00 83 0a 00 00 55 0a 00 00 2a 0a 00 00 8...2.......-...........U...*...
140a0 26 0a 00 00 25 0a 00 00 da 09 00 00 7e 09 00 00 5a 09 00 00 28 09 00 00 d5 08 00 00 cd 08 00 00 &...%.......~...Z...(...........
140c0 61 08 00 00 2e 08 00 00 28 08 00 00 ff 07 00 00 c8 07 00 00 6f 07 00 00 67 07 00 00 f6 06 00 00 a.......(...........o...g.......
140e0 be 06 00 00 b8 06 00 00 96 06 00 00 66 06 00 00 14 06 00 00 0c 06 00 00 a2 05 00 00 71 05 00 00 ............f...............q...
14100 6b 05 00 00 67 05 00 00 66 05 00 00 2c 05 00 00 9a 04 00 00 6c 04 00 00 68 04 00 00 66 04 00 00 k...g...f...,.......l...h...f...
14120 65 04 00 00 1b 04 00 00 f0 03 00 00 ef 03 00 00 d8 03 00 00 d7 03 00 00 8e 03 00 00 8d 03 00 00 e...............................
14140 6e 03 00 00 54 03 00 00 31 03 00 00 12 03 00 00 e9 02 00 00 ab 02 00 00 6d 02 00 00 60 02 00 00 n...T...1...............m...`...
14160 29 02 00 00 23 02 00 00 1f 02 00 00 1e 02 00 00 d4 01 00 00 bb 01 00 00 95 01 00 00 00 00 00 00 )...#...........................
14180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 73 74 72 69 6e 67 20 .........................string.
141a0 70 72 65 66 69 78 20 3d 20 6b 65 79 2e 73 75 62 73 74 72 28 30 2c 20 35 29 3b 00 20 20 69 66 28 prefix.=.key.substr(0,.5);...if(
141c0 6b 65 79 2e 6c 65 6e 67 74 68 28 29 20 3e 20 35 29 20 7b 00 20 20 2f 2f 20 43 68 65 63 6b 20 66 key.length().>.5).{...//.Check.f
141e0 6f 72 20 43 56 43 34 2d 73 70 65 63 69 66 69 63 20 69 6e 66 6f 20 6b 65 79 73 20 28 70 72 65 66 or.CVC4-specific.info.keys.(pref
14200 69 78 65 64 20 77 69 74 68 20 22 63 76 63 34 2d 22 20 6f 72 20 22 63 76 63 34 5f 22 29 00 00 20 ixed.with."cvc4-".or."cvc4_")...
14220 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 .}.....}.......Dump("benchmark")
14240 20 3c 3c 20 53 65 74 49 6e 66 6f 43 6f 6d 6d 61 6e 64 28 6b 65 79 2c 20 76 61 6c 75 65 29 3b 00 .<<.SetInfoCommand(key,.value);.
14260 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 ....}.else.{.......Dump("benchma
14280 72 6b 22 29 20 3c 3c 20 53 65 74 42 65 6e 63 68 6d 61 72 6b 53 74 61 74 75 73 43 6f 6d 6d 61 6e rk").<<.SetBenchmarkStatusComman
142a0 64 28 73 74 61 74 75 73 29 3b 00 20 20 20 20 20 20 20 20 20 20 28 28 73 20 3d 3d 20 22 75 6e 73 d(status);...........((s.==."uns
142c0 61 74 22 29 20 3f 20 53 4d 54 5f 55 4e 53 41 54 49 53 46 49 41 42 4c 45 20 3a 20 53 4d 54 5f 55 at").?.SMT_UNSATISFIABLE.:.SMT_U
142e0 4e 4b 4e 4f 57 4e 29 3b 00 20 20 20 20 20 20 20 20 28 73 20 3d 3d 20 22 73 61 74 22 29 20 3f 20 NKNOWN);.........(s.==."sat").?.
14300 53 4d 54 5f 53 41 54 49 53 46 49 41 42 4c 45 20 3a 00 20 20 20 20 20 20 42 65 6e 63 68 6d 61 72 SMT_SATISFIABLE.:.......Benchmar
14320 6b 53 74 61 74 75 73 20 73 74 61 74 75 73 20 3d 00 20 20 20 20 20 20 73 74 72 69 6e 67 20 73 20 kStatus.status.=.......string.s.
14340 3d 20 76 61 6c 75 65 2e 67 65 74 56 61 6c 75 65 28 29 3b 00 20 20 20 20 69 66 28 6b 65 79 20 3d =.value.getValue();.....if(key.=
14360 3d 20 22 73 74 61 74 75 73 22 29 20 7b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 =."status").{...if(Dump.isOn("be
14380 6e 63 68 6d 61 72 6b 22 29 29 20 7b 00 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 nchmark")).{....Trace("smt").<<.
143a0 22 53 4d 54 20 73 65 74 49 6e 66 6f 28 22 20 3c 3c 20 6b 65 79 20 3c 3c 20 22 2c 20 22 20 3c 3c "SMT.setInfo(".<<.key.<<.",.".<<
143c0 20 76 61 6c 75 65 20 3c 3c 20 22 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 53 6d 74 53 63 6f .value.<<.")".<<.endl;....SmtSco
143e0 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 00 20 20 74 68 72 6f 77 28 4f 70 74 69 6f 6e 45 78 pe.smts(this);....throw(OptionEx
14400 63 65 70 74 69 6f 6e 2c 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 76 6f 69 64 20 ception,.ModalException).{.void.
14420 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 65 74 49 6e 66 6f 28 63 6f 6e 73 74 20 73 74 64 3a 3a 73 74 SmtEngine::setInfo(const.std::st
14440 72 69 6e 67 26 20 6b 65 79 2c 20 63 6f 6e 73 74 20 43 56 43 34 3a 3a 53 45 78 70 72 26 20 76 61 ring&.key,.const.CVC4::SExpr&.va
14460 6c 75 65 29 00 00 7d 00 20 20 7d 00 20 20 20 20 73 65 74 4f 70 74 69 6f 6e 28 22 69 6e 63 72 65 lue)..}...}.....setOption("incre
14480 6d 65 6e 74 61 6c 22 2c 20 53 45 78 70 72 28 22 66 61 6c 73 65 22 29 29 3b 00 20 20 20 20 57 61 mental",.SExpr("false"));.....Wa
144a0 72 6e 69 6e 67 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f rning().<<."SmtEngine:.turning.o
144c0 66 66 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 73 6f 6c 76 69 6e 67 20 6d 6f 64 65 20 28 6e 6f 74 ff.incremental.solving.mode.(not
144e0 20 79 65 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 20 2d 2d 70 72 6f 6f 66 2c 20 74 72 79 .yet.supported.with.--proof,.try
14500 20 2d 2d 74 65 61 72 2d 64 6f 77 6e 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 20 69 6e 73 74 65 61 64 .--tear-down-incremental.instead
14520 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d )".<<.endl;...if(options::increm
14540 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 20 26 26 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 6f 66 entalSolving().&&.options::proof
14560 28 29 29 20 7b 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 65 74 4f 70 74 69 6f 6e ()).{....}.....}.......setOption
14580 28 22 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 22 2c 20 53 45 78 70 72 28 22 66 61 6c 73 65 22 29 29 ("check-models",.SExpr("false"))
145a0 3b 00 20 20 20 20 20 20 57 61 72 6e 69 6e 67 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a ;.......Warning().<<."SmtEngine:
145c0 20 74 75 72 6e 69 6e 67 20 6f 66 66 20 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 20 62 65 63 61 75 73 .turning.off.check-models.becaus
145e0 65 20 75 6e 73 75 70 70 6f 72 74 65 64 20 66 6f 72 20 6e 6f 6e 6c 69 6e 65 61 72 20 61 72 69 74 e.unsupported.for.nonlinear.arit
14600 68 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 74 68 72 6f h".<<.endl;.......}.........thro
14620 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 20 w.OptionException("check-models.
14640 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 20 6e 6f 6e 6c 69 6e 65 61 72 20 61 72 69 not.supported.with.nonlinear.ari
14660 74 68 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 4d 6f 64 th");.......if(options::checkMod
14680 65 6c 73 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 69 66 20 28 6f 70 els.wasSetByUser()).{.....if.(op
146a0 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 73 28 29 29 20 7b 00 20 20 20 20 7d 00 20 20 tions::checkModels()).{.....}...
146c0 20 20 20 20 73 65 74 4f 70 74 69 6f 6e 28 22 70 72 6f 64 75 63 65 2d 61 73 73 69 67 6e 6d 65 6e ....setOption("produce-assignmen
146e0 74 73 22 2c 20 53 45 78 70 72 28 22 66 61 6c 73 65 22 29 29 3b 00 20 20 20 20 20 20 57 61 72 6e ts",.SExpr("false"));.......Warn
14700 69 6e 67 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 ing().<<."SmtEngine:.turning.off
14720 20 70 72 6f 64 75 63 65 2d 61 73 73 69 67 6e 6d 65 6e 74 73 20 62 65 63 61 75 73 65 20 75 6e 73 .produce-assignments.because.uns
14740 75 70 70 6f 72 74 65 64 20 66 6f 72 20 6e 6f 6e 6c 69 6e 65 61 72 20 61 72 69 74 68 22 20 3c 3c upported.for.nonlinear.arith".<<
14760 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 4f 70 74 .endl;.......}.........throw.Opt
14780 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 70 72 6f 64 75 63 65 2d 61 73 73 69 67 6e 6d 65 6e 74 ionException("produce-assignment
147a0 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 20 6e 6f 6e 6c 69 6e 65 61 72 20 61 s.not.supported.with.nonlinear.a
147c0 72 69 74 68 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 rith");.......if(options::produc
147e0 65 41 73 73 69 67 6e 6d 65 6e 74 73 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 eAssignments.wasSetByUser()).{..
14800 20 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 41 73 73 69 67 6e 6d 65 6e ...if.(options::produceAssignmen
14820 74 73 28 29 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 65 74 4f 70 74 69 6f 6e 28 22 70 ts()).{.....}.......setOption("p
14840 72 6f 64 75 63 65 2d 6d 6f 64 65 6c 73 22 2c 20 53 45 78 70 72 28 22 66 61 6c 73 65 22 29 29 3b roduce-models",.SExpr("false"));
14860 00 20 20 20 20 20 20 57 61 72 6e 69 6e 67 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 .......Warning().<<."SmtEngine:.
14880 74 75 72 6e 69 6e 67 20 6f 66 66 20 70 72 6f 64 75 63 65 2d 6d 6f 64 65 6c 73 20 62 65 63 61 75 turning.off.produce-models.becau
148a0 73 65 20 75 6e 73 75 70 70 6f 72 74 65 64 20 66 6f 72 20 6e 6f 6e 6c 69 6e 65 61 72 20 61 72 69 se.unsupported.for.nonlinear.ari
148c0 74 68 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 74 68 72 th".<<.endl;.......}.........thr
148e0 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 70 72 6f 64 75 63 65 2d 6d 6f 64 65 ow.OptionException("produce-mode
14900 6c 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 77 69 74 68 20 6e 6f 6e 6c 69 6e 65 61 72 20 61 l.not.supported.with.nonlinear.a
14920 72 69 74 68 22 29 3b 00 20 20 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 rith");.......if(options::produc
14940 65 4d 6f 64 65 6c 73 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 29 20 7b 00 20 20 20 20 69 66 eModels.wasSetByUser()).{.....if
14960 20 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 4d 6f 64 65 6c 73 28 29 29 20 7b 00 20 20 .(options::produceModels()).{...
14980 69 66 20 28 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f if.(d_logic.isTheoryEnabled(THEO
149a0 52 59 5f 41 52 49 54 48 29 20 26 26 20 21 64 5f 6c 6f 67 69 63 2e 69 73 4c 69 6e 65 61 72 28 29 RY_ARITH).&&.!d_logic.isLinear()
149c0 20 26 26 20 21 6f 70 74 69 6f 6e 73 3a 3a 6e 6c 45 78 74 28 29 20 29 20 7b 00 20 20 2f 2f 20 4e .&&.!options::nlExt().).{...//.N
149e0 6f 6e 2d 6c 69 6e 65 61 72 20 61 72 69 74 68 6d 65 74 69 63 20 64 6f 65 73 20 6e 6f 74 20 73 75 on-linear.arithmetic.does.not.su
14a00 70 70 6f 72 74 20 6d 6f 64 65 6c 73 20 75 6e 6c 65 73 73 20 6e 6c 45 78 74 20 69 73 20 65 6e 61 pport.models.unless.nlExt.is.ena
14a20 62 6c 65 64 00 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 72 61 79 73 4c 61 7a bled....}.....options::arraysLaz
14a40 79 52 49 6e 74 72 6f 31 2e 73 65 74 28 66 61 6c 73 65 29 3b 00 20 20 20 20 6f 70 74 69 6f 6e 73 yRIntro1.set(false);.....options
14a60 3a 3a 61 72 72 61 79 73 4f 70 74 69 6d 69 7a 65 4c 69 6e 65 61 72 2e 73 65 74 28 66 61 6c 73 65 ::arraysOptimizeLinear.set(false
14a80 29 3b 00 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 4d 6f 64 65 6c 73 28 );...if.(options::produceModels(
14aa0 29 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 41 73 73 69 67 6e 6d 65 6e 74 73 ).||.options::produceAssignments
14ac0 28 29 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 73 28 29 29 20 7b 00 ().||.options::checkModels()).{.
14ae0 20 20 2f 2f 20 46 6f 72 20 6e 6f 77 2c 20 74 68 65 73 65 20 61 72 72 61 79 20 74 68 65 6f 72 79 ..//.For.now,.these.array.theory
14b00 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 20 64 6f 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 6d 6f .optimizations.do.not.support.mo
14b20 64 65 6c 2d 62 75 69 6c 64 69 6e 67 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 65 del-building....}.....}.......se
14b40 74 4f 70 74 69 6f 6e 28 22 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 22 2c 20 53 45 78 70 72 28 22 66 tOption("check-models",.SExpr("f
14b60 61 6c 73 65 22 29 29 3b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 alse"));.......Notice().<<."SmtE
14b80 6e 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 20 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 20 ngine:.turning.off.check-models.
14ba0 74 6f 20 73 75 70 70 6f 72 74 20 6d 69 6e 69 73 61 74 55 73 65 45 6c 69 6d 22 20 3c 3c 20 65 6e to.support.minisatUseElim".<<.en
14bc0 64 6c 3b 00 20 20 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 73 dl;.....if.(options::checkModels
14be0 28 29 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 65 74 4f 70 74 69 6f 6e 28 22 70 72 6f ()).{.....}.......setOption("pro
14c00 64 75 63 65 2d 61 73 73 69 67 6e 6d 65 6e 74 73 22 2c 20 53 45 78 70 72 28 22 66 61 6c 73 65 22 duce-assignments",.SExpr("false"
14c20 29 29 3b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 ));.......Notice().<<."SmtEngine
14c40 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 20 70 72 6f 64 75 63 65 2d 61 73 73 69 67 6e 6d 65 6e 74 :.turning.off.produce-assignment
14c60 73 20 74 6f 20 73 75 70 70 6f 72 74 20 6d 69 6e 69 73 61 74 55 73 65 45 6c 69 6d 22 20 3c 3c 20 s.to.support.minisatUseElim".<<.
14c80 65 6e 64 6c 3b 00 20 20 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 41 73 endl;.....if.(options::produceAs
14ca0 73 69 67 6e 6d 65 6e 74 73 28 29 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 65 74 4f 70 signments()).{.....}.......setOp
14cc0 74 69 6f 6e 28 22 70 72 6f 64 75 63 65 2d 6d 6f 64 65 6c 73 22 2c 20 53 45 78 70 72 28 22 66 61 tion("produce-models",.SExpr("fa
14ce0 6c 73 65 22 29 29 3b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e lse"));.......Notice().<<."SmtEn
14d00 67 69 6e 65 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 20 70 72 6f 64 75 63 65 2d 6d 6f 64 65 6c 73 gine:.turning.off.produce-models
14d20 20 74 6f 20 73 75 70 70 6f 72 74 20 6d 69 6e 69 73 61 74 55 73 65 45 6c 69 6d 22 20 3c 3c 20 65 .to.support.minisatUseElim".<<.e
14d40 6e 64 6c 3b 00 20 20 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 4d 6f 64 ndl;.....if.(options::produceMod
14d60 65 6c 73 28 29 29 20 7b 00 20 20 65 6c 73 65 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 6d 69 6e els()).{...else.if.(options::min
14d80 69 73 61 74 55 73 65 45 6c 69 6d 28 29 29 20 7b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 isatUseElim()).{...}.....}......
14da0 20 6f 70 74 69 6f 6e 73 3a 3a 6d 69 6e 69 73 61 74 55 73 65 45 6c 69 6d 2e 73 65 74 28 20 66 61 .options::minisatUseElim.set(.fa
14dc0 6c 73 65 20 29 3b 00 20 20 20 20 69 66 28 20 64 5f 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 lse.);.....if(.d_logic.isTheoryE
14de0 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 53 45 54 53 29 20 7c 7c 20 64 5f 6c 6f 67 69 63 2e 69 nabled(THEORY_SETS).||.d_logic.i
14e00 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 sQuantified().||.options::produc
14e20 65 4d 6f 64 65 6c 73 28 29 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 41 73 73 eModels().||.options::produceAss
14e40 69 67 6e 6d 65 6e 74 73 28 29 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 4d 6f 64 65 ignments().||.options::checkMode
14e60 6c 73 28 29 20 29 7b 00 20 20 20 20 2f 2f 41 4a 52 3a 20 63 61 6e 6e 6f 74 20 75 73 65 20 6d 69 ls().){.....//AJR:.cannot.use.mi
14e80 6e 69 73 61 74 20 65 6c 69 6d 20 66 6f 72 20 6e 65 77 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f nisat.elim.for.new.implementatio
14ea0 6e 20 6f 66 20 73 65 74 73 20 54 4f 44 4f 3a 20 77 68 79 3f 00 20 20 69 66 28 20 21 20 6f 70 74 n.of.sets.TODO:.why?...if(.!.opt
14ec0 69 6f 6e 73 3a 3a 6d 69 6e 69 73 61 74 55 73 65 45 6c 69 6d 2e 77 61 73 53 65 74 42 79 55 73 65 ions::minisatUseElim.wasSetByUse
14ee0 72 28 29 29 7b 00 20 20 2f 2f 75 6e 74 69 6c 20 62 75 67 73 20 33 37 31 2c 34 33 31 20 61 72 65 r()){...//until.bugs.371,431.are
14f00 20 66 69 78 65 64 00 00 20 20 7d 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 71 75 61 6e 74 44 79 .fixed....}.....options::quantDy
14f20 6e 61 6d 69 63 53 70 6c 69 74 2e 73 65 74 28 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 55 41 namicSplit.set(.quantifiers::QUA
14f40 4e 54 5f 44 53 50 4c 49 54 5f 4d 4f 44 45 5f 4e 4f 4e 45 20 29 3b 00 20 20 69 66 28 20 21 64 5f NT_DSPLIT_MODE_NONE.);...if(.!d_
14f60 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 44 41 54 logic.isTheoryEnabled(THEORY_DAT
14f80 41 54 59 50 45 53 29 20 29 7b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 6f 70 74 69 6f ATYPES).){...}.....}.......optio
14fa0 6e 73 3a 3a 70 72 65 53 6b 6f 6c 65 6d 51 75 61 6e 74 4e 65 73 74 65 64 2e 73 65 74 28 20 66 61 ns::preSkolemQuantNested.set(.fa
14fc0 6c 73 65 20 29 3b 00 20 20 20 20 69 66 28 20 21 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 53 6b 6f 6c lse.);.....if(.!options::preSkol
14fe0 65 6d 51 75 61 6e 74 4e 65 73 74 65 64 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 emQuantNested.wasSetByUser().){.
15000 61 64 00 00 17 00 00 00 b7 01 00 00 00 10 00 00 61 00 00 00 00 00 00 00 cf 0f 00 00 a9 0f 00 00 ad..............a...............
15020 8a 0f 00 00 6b 0f 00 00 10 0f 00 00 06 0f 00 00 e9 0e 00 00 c5 0e 00 00 a9 0e 00 00 99 0e 00 00 ....k...........................
15040 8a 0e 00 00 5d 0e 00 00 55 0e 00 00 4f 0e 00 00 4b 0e 00 00 4a 0e 00 00 0a 0e 00 00 f2 0d 00 00 ....]...U...O...K...J...........
15060 d8 0d 00 00 bc 0d 00 00 a5 0d 00 00 91 0d 00 00 85 0d 00 00 68 0d 00 00 45 0d 00 00 39 0d 00 00 ....................h...E...9...
15080 11 0d 00 00 c9 0c 00 00 7e 0c 00 00 5b 0c 00 00 35 0c 00 00 12 0c 00 00 de 0b 00 00 4b 0b 00 00 ........~...[...5...........K...
150a0 02 0b 00 00 ac 0a 00 00 a4 0a 00 00 96 0a 00 00 41 0a 00 00 14 0a 00 00 f1 09 00 00 bd 09 00 00 ................A...............
150c0 71 09 00 00 28 09 00 00 d2 08 00 00 ca 08 00 00 bc 08 00 00 66 08 00 00 39 08 00 00 16 08 00 00 q...(...............f...9.......
150e0 e2 07 00 00 96 07 00 00 4d 07 00 00 f7 06 00 00 ef 06 00 00 e1 06 00 00 db 06 00 00 8f 06 00 00 ........M.......................
15100 66 06 00 00 47 06 00 00 39 06 00 00 20 06 00 00 04 06 00 00 fe 05 00 00 c7 05 00 00 7e 05 00 00 f...G...9...................~...
15120 40 05 00 00 3a 05 00 00 14 05 00 00 08 05 00 00 04 05 00 00 dd 04 00 00 db 04 00 00 da 04 00 00 @...:...........................
15140 9b 04 00 00 9a 04 00 00 83 04 00 00 82 04 00 00 4a 04 00 00 2a 04 00 00 11 04 00 00 93 03 00 00 ................J...*...........
15160 39 03 00 00 2a 03 00 00 13 03 00 00 f4 02 00 00 d4 02 00 00 ba 02 00 00 b4 02 00 00 66 02 00 00 9...*.......................f...
15180 3c 02 00 00 2d 02 00 00 16 02 00 00 f7 01 00 00 d7 01 00 00 bd 01 00 00 b7 01 00 00 00 00 00 00 <...-...........................
151a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 7d 00 20 20 20 ...........................}....
151c0 20 20 20 73 74 61 74 73 2e 70 75 73 68 5f 62 61 63 6b 28 76 29 3b 00 20 20 20 20 20 20 76 2e 70 ...stats.push_back(v);.......v.p
151e0 75 73 68 5f 62 61 63 6b 28 28 2a 69 29 2e 73 65 63 6f 6e 64 29 3b 00 20 20 20 20 20 20 76 2e 70 ush_back((*i).second);.......v.p
15200 75 73 68 5f 62 61 63 6b 28 28 2a 69 29 2e 66 69 72 73 74 29 3b 00 20 20 20 20 20 20 76 65 63 74 ush_back((*i).first);.......vect
15220 6f 72 3c 53 45 78 70 72 3e 20 76 3b 00 20 20 20 20 20 20 20 20 2b 2b 69 29 20 7b 00 20 20 20 20 or<SExpr>.v;.........++i).{.....
15240 20 20 20 20 69 20 21 3d 20 64 5f 73 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 2d 3e 65 ....i.!=.d_statisticsRegistry->e
15260 6e 64 28 29 3b 00 20 20 20 20 66 6f 72 28 53 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 nd();.....for(StatisticsRegistry
15280 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 69 20 3d 20 64 5f 73 74 61 74 69 73 74 69 63 ::const_iterator.i.=.d_statistic
152a0 73 52 65 67 69 73 74 72 79 2d 3e 62 65 67 69 6e 28 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 sRegistry->begin();.....}.......
152c0 73 74 61 74 73 2e 70 75 73 68 5f 62 61 63 6b 28 76 29 3b 00 20 20 20 20 20 20 76 2e 70 75 73 68 stats.push_back(v);.......v.push
152e0 5f 62 61 63 6b 28 28 2a 69 29 2e 73 65 63 6f 6e 64 29 3b 00 20 20 20 20 20 20 76 2e 70 75 73 68 _back((*i).second);.......v.push
15300 5f 62 61 63 6b 28 28 2a 69 29 2e 66 69 72 73 74 29 3b 00 20 20 20 20 20 20 76 65 63 74 6f 72 3c _back((*i).first);.......vector<
15320 53 45 78 70 72 3e 20 76 3b 00 20 20 20 20 20 20 20 20 2b 2b 69 29 20 7b 00 20 20 20 20 20 20 20 SExpr>.v;.........++i).{........
15340 20 69 20 21 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 66 72 6f 6d 45 78 70 72 4d 61 6e 61 67 .i.!=.NodeManager::fromExprManag
15360 65 72 28 64 5f 65 78 70 72 4d 61 6e 61 67 65 72 29 2d 3e 67 65 74 53 74 61 74 69 73 74 69 63 73 er(d_exprManager)->getStatistics
15380 52 65 67 69 73 74 72 79 28 29 2d 3e 65 6e 64 28 29 3b 00 20 20 20 20 66 6f 72 28 53 74 61 74 69 Registry()->end();.....for(Stati
153a0 73 74 69 63 73 52 65 67 69 73 74 72 79 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 69 20 sticsRegistry::const_iterator.i.
153c0 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 66 72 6f 6d 45 78 70 72 4d 61 6e 61 67 65 72 28 64 =.NodeManager::fromExprManager(d
153e0 5f 65 78 70 72 4d 61 6e 61 67 65 72 29 2d 3e 67 65 74 53 74 61 74 69 73 74 69 63 73 52 65 67 69 _exprManager)->getStatisticsRegi
15400 73 74 72 79 28 29 2d 3e 62 65 67 69 6e 28 29 3b 00 20 20 20 20 76 65 63 74 6f 72 3c 53 45 78 70 stry()->begin();.....vector<SExp
15420 72 3e 20 73 74 61 74 73 3b 00 20 20 69 66 28 6b 65 79 20 3d 3d 20 22 61 6c 6c 2d 73 74 61 74 69 r>.stats;...if(key.==."all-stati
15440 73 74 69 63 73 22 29 20 7b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 stics").{...Trace("smt").<<."SMT
15460 20 67 65 74 49 6e 66 6f 28 22 20 3c 3c 20 6b 65 79 20 3c 3c 20 22 29 22 20 3c 3c 20 65 6e 64 6c .getInfo(".<<.key.<<.")".<<.endl
15480 3b 00 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 00 43 56 43 34 3a ;....SmtScope.smts(this);..CVC4:
154a0 3a 53 45 78 70 72 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 49 6e 66 6f 28 63 6f 6e 73 74 20 :SExpr.SmtEngine::getInfo(const.
154c0 73 74 64 3a 3a 73 74 72 69 6e 67 26 20 6b 65 79 29 20 63 6f 6e 73 74 20 7b 00 00 7d 00 20 20 74 std::string&.key).const.{..}...t
154e0 68 72 6f 77 20 55 6e 72 65 63 6f 67 6e 69 7a 65 64 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e hrow.UnrecognizedOptionException
15500 28 29 3b 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 3b 00 20 20 20 20 64 5f 73 74 61 74 75 73 ();...}.....return;.....d_status
15520 20 3d 20 52 65 73 75 6c 74 28 73 2c 20 64 5f 66 69 6c 65 6e 61 6d 65 29 3b 00 20 20 20 20 7d 00 .=.Result(s,.d_filename);.....}.
15540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 60 73 61 ............................"`sa
15560 74 27 20 6f 72 20 60 75 6e 73 61 74 27 20 6f 72 20 60 75 6e 6b 6e 6f 77 6e 27 22 29 3b 00 20 20 t'.or.`unsat'.or.`unknown'");...
15580 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 61 72 67 75 6d ....throw.OptionException("argum
155a0 65 6e 74 20 74 6f 20 28 73 65 74 2d 69 6e 66 6f 20 3a 73 74 61 74 75 73 20 2e 2e 29 20 6d 75 73 ent.to.(set-info.:status...).mus
155c0 74 20 62 65 20 22 00 20 20 20 20 69 66 28 73 20 21 3d 20 22 73 61 74 22 20 26 26 20 73 20 21 3d t.be.".....if(s.!=."sat".&&.s.!=
155e0 20 22 75 6e 73 61 74 22 20 26 26 20 73 20 21 3d 20 22 75 6e 6b 6e 6f 77 6e 22 29 20 7b 00 20 20 ."unsat".&&.s.!=."unknown").{...
15600 20 20 7d 00 20 20 20 20 20 20 73 20 3d 20 76 61 6c 75 65 2e 67 65 74 56 61 6c 75 65 28 29 3b 00 ..}.......s.=.value.getValue();.
15620 20 20 20 20 69 66 28 76 61 6c 75 65 2e 69 73 41 74 6f 6d 28 29 29 20 7b 00 20 20 20 20 73 74 72 ....if(value.isAtom()).{.....str
15640 69 6e 67 20 73 3b 00 20 20 7d 20 65 6c 73 65 20 69 66 28 6b 65 79 20 3d 3d 20 22 73 74 61 74 75 ing.s;...}.else.if(key.==."statu
15660 73 22 29 20 7b 00 20 20 20 20 74 68 72 6f 77 20 55 6e 72 65 63 6f 67 6e 69 7a 65 64 4f 70 74 69 s").{.....throw.UnrecognizedOpti
15680 6f 6e 45 78 63 65 70 74 69 6f 6e 28 29 3b 00 20 20 20 20 57 61 72 6e 69 6e 67 28 29 20 3c 3c 20 onException();.....Warning().<<.
156a0 22 57 61 72 6e 69 6e 67 3a 20 75 6e 73 75 70 70 6f 72 74 65 64 20 73 6d 74 2d 6c 69 62 2d 76 65 "Warning:.unsupported.smt-lib-ve
156c0 72 73 69 6f 6e 3a 20 22 20 3c 3c 20 76 61 6c 75 65 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 7d rsion:.".<<.value.<<.endl;.....}
156e0 00 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 2a .......return;.......}.........*
15700 6f 70 74 69 6f 6e 73 3a 3a 6f 75 74 28 29 20 3c 3c 20 6c 61 6e 67 75 61 67 65 3a 3a 53 65 74 4c options::out().<<.language::SetL
15720 61 6e 67 75 61 67 65 28 6c 61 6e 67 75 61 67 65 3a 3a 6f 75 74 70 75 74 3a 3a 4c 41 4e 47 5f 53 anguage(language::output::LANG_S
15740 4d 54 4c 49 42 5f 56 32 5f 36 29 3b 00 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 6f 75 MTLIB_V2_6);.........options::ou
15760 74 70 75 74 4c 61 6e 67 75 61 67 65 2e 73 65 74 28 6c 61 6e 67 75 61 67 65 3a 3a 6f 75 74 70 75 tputLanguage.set(language::outpu
15780 74 3a 3a 4c 41 4e 47 5f 53 4d 54 4c 49 42 5f 56 32 5f 36 29 3b 00 20 20 20 20 20 20 20 20 20 6f t::LANG_SMTLIB_V2_6);..........o
157a0 70 74 69 6f 6e 73 3a 3a 6f 75 74 70 75 74 4c 61 6e 67 75 61 67 65 28 29 20 3d 3d 20 6c 61 6e 67 ptions::outputLanguage().==.lang
157c0 75 61 67 65 3a 3a 6f 75 74 70 75 74 3a 3a 4c 41 4e 47 5f 53 4d 54 4c 49 42 5f 56 32 5f 30 29 20 uage::output::LANG_SMTLIB_V2_0).
157e0 7b 00 20 20 20 20 20 20 69 66 28 21 6f 70 74 69 6f 6e 73 3a 3a 6f 75 74 70 75 74 4c 61 6e 67 75 {.......if(!options::outputLangu
15800 61 67 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 26 26 00 20 20 20 20 20 20 2f 2f 20 73 age.wasSetByUser().&&.......//.s
15820 75 70 70 6f 72 74 65 64 20 53 4d 54 2d 4c 49 42 20 76 65 72 73 69 6f 6e 00 20 20 20 20 20 20 20 upported.SMT-LIB.version........
15840 20 20 20 20 20 20 20 20 76 61 6c 75 65 2e 67 65 74 56 61 6c 75 65 28 29 20 3d 3d 20 22 32 2e 36 ........value.getValue().==."2.6
15860 22 20 29 20 7b 00 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 20 28 76 61 6c 75 65 2e 69 73 52 61 ".).{.....}.else.if(.(value.isRa
15880 74 69 6f 6e 61 6c 28 29 20 26 26 20 76 61 6c 75 65 2e 67 65 74 52 61 74 69 6f 6e 61 6c 56 61 6c tional().&&.value.getRationalVal
158a0 75 65 28 29 20 3d 3d 20 52 61 74 69 6f 6e 61 6c 28 31 33 2c 20 35 29 29 20 7c 7c 00 20 20 20 20 ue().==.Rational(13,.5)).||.....
158c0 20 20 72 65 74 75 72 6e 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 2a 6f 70 74 69 6f ..return;.......}.........*optio
158e0 6e 73 3a 3a 6f 75 74 28 29 20 3c 3c 20 6c 61 6e 67 75 61 67 65 3a 3a 53 65 74 4c 61 6e 67 75 61 ns::out().<<.language::SetLangua
15900 67 65 28 6c 61 6e 67 75 61 67 65 3a 3a 6f 75 74 70 75 74 3a 3a 4c 41 4e 47 5f 53 4d 54 4c 49 42 ge(language::output::LANG_SMTLIB
15920 5f 56 32 5f 35 29 3b 00 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 6f 75 74 70 75 74 4c _V2_5);.........options::outputL
15940 61 6e 67 75 61 67 65 2e 73 65 74 28 6c 61 6e 67 75 61 67 65 3a 3a 6f 75 74 70 75 74 3a 3a 4c 41 anguage.set(language::output::LA
15960 4e 47 5f 53 4d 54 4c 49 42 5f 56 32 5f 35 29 3b 00 20 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e NG_SMTLIB_V2_5);..........option
15980 73 3a 3a 6f 75 74 70 75 74 4c 61 6e 67 75 61 67 65 28 29 20 3d 3d 20 6c 61 6e 67 75 61 67 65 3a s::outputLanguage().==.language:
159a0 3a 6f 75 74 70 75 74 3a 3a 4c 41 4e 47 5f 53 4d 54 4c 49 42 5f 56 32 5f 30 29 20 7b 00 20 20 20 :output::LANG_SMTLIB_V2_0).{....
159c0 20 20 20 69 66 28 21 6f 70 74 69 6f 6e 73 3a 3a 6f 75 74 70 75 74 4c 61 6e 67 75 61 67 65 2e 77 ...if(!options::outputLanguage.w
159e0 61 73 53 65 74 42 79 55 73 65 72 28 29 20 26 26 00 20 20 20 20 20 20 2f 2f 20 73 75 70 70 6f 72 asSetByUser().&&.......//.suppor
15a00 74 65 64 20 53 4d 54 2d 4c 49 42 20 76 65 72 73 69 6f 6e 00 20 20 20 20 20 20 20 20 20 20 20 20 ted.SMT-LIB.version.............
15a20 20 20 20 76 61 6c 75 65 2e 67 65 74 56 61 6c 75 65 28 29 20 3d 3d 20 22 32 2e 35 22 20 29 20 7b ...value.getValue().==."2.5".).{
15a40 00 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 20 28 76 61 6c 75 65 2e 69 73 52 61 74 69 6f 6e 61 .....}.else.if(.(value.isRationa
15a60 6c 28 29 20 26 26 20 76 61 6c 75 65 2e 67 65 74 52 61 74 69 6f 6e 61 6c 56 61 6c 75 65 28 29 20 l().&&.value.getRationalValue().
15a80 3d 3d 20 52 61 74 69 6f 6e 61 6c 28 35 2c 20 32 29 29 20 7c 7c 00 20 20 20 20 20 20 72 65 74 75 ==.Rational(5,.2)).||.......retu
15aa0 72 6e 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 2a 6f 70 74 69 6f 6e 73 3a 3a 6f 75 rn;.......}.........*options::ou
15ac0 74 28 29 20 3c 3c 20 6c 61 6e 67 75 61 67 65 3a 3a 53 65 74 4c 61 6e 67 75 61 67 65 28 6c 61 6e t().<<.language::SetLanguage(lan
15ae0 67 75 61 67 65 3a 3a 6f 75 74 70 75 74 3a 3a 4c 41 4e 47 5f 53 4d 54 4c 49 42 5f 56 32 5f 30 29 guage::output::LANG_SMTLIB_V2_0)
15b00 3b 00 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 6f 75 74 70 75 74 4c 61 6e 67 75 61 67 ;.........options::outputLanguag
15b20 65 2e 73 65 74 28 6c 61 6e 67 75 61 67 65 3a 3a 6f 75 74 70 75 74 3a 3a 4c 41 4e 47 5f 53 4d 54 e.set(language::output::LANG_SMT
15b40 4c 49 42 5f 56 32 5f 30 29 3b 00 20 20 20 20 20 20 20 20 20 28 20 6f 70 74 69 6f 6e 73 3a 3a 6f LIB_V2_0);..........(.options::o
15b60 75 74 70 75 74 4c 61 6e 67 75 61 67 65 28 29 20 3d 3d 20 6c 61 6e 67 75 61 67 65 3a 3a 6f 75 74 utputLanguage().==.language::out
15b80 70 75 74 3a 3a 4c 41 4e 47 5f 53 4d 54 4c 49 42 5f 56 32 5f 35 20 7c 7c 20 6f 70 74 69 6f 6e 73 put::LANG_SMTLIB_V2_5.||.options
15ba0 3a 3a 6f 75 74 70 75 74 4c 61 6e 67 75 61 67 65 28 29 20 3d 3d 20 6c 61 6e 67 75 61 67 65 3a 3a ::outputLanguage().==.language::
15bc0 6f 75 74 70 75 74 3a 3a 4c 41 4e 47 5f 53 4d 54 4c 49 42 5f 56 32 5f 36 20 29 29 20 7b 00 20 20 output::LANG_SMTLIB_V2_6.)).{...
15be0 20 20 20 20 69 66 28 21 6f 70 74 69 6f 6e 73 3a 3a 6f 75 74 70 75 74 4c 61 6e 67 75 61 67 65 2e ....if(!options::outputLanguage.
15c00 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 26 26 00 20 20 20 20 20 20 2f 2f 20 73 75 70 70 6f wasSetByUser().&&.......//.suppo
15c20 72 74 65 64 20 53 4d 54 2d 4c 49 42 20 76 65 72 73 69 6f 6e 00 20 20 20 20 20 20 20 20 76 61 6c rted.SMT-LIB.version.........val
15c40 75 65 2e 67 65 74 56 61 6c 75 65 28 29 20 3d 3d 20 22 32 2e 30 22 20 29 20 7b 00 20 20 20 20 20 ue.getValue().==."2.0".).{......
15c60 20 20 20 76 61 6c 75 65 2e 67 65 74 56 61 6c 75 65 28 29 20 3d 3d 20 22 32 22 20 7c 7c 00 20 20 ...value.getValue().==."2".||...
15c80 20 20 20 20 20 20 28 76 61 6c 75 65 2e 69 73 52 61 74 69 6f 6e 61 6c 28 29 20 26 26 20 76 61 6c ......(value.isRational().&&.val
15ca0 75 65 2e 67 65 74 52 61 74 69 6f 6e 61 6c 56 61 6c 75 65 28 29 20 3d 3d 20 52 61 74 69 6f 6e 61 ue.getRationalValue().==.Rationa
15cc0 6c 28 32 29 29 20 7c 7c 00 20 20 20 20 69 66 28 20 28 76 61 6c 75 65 2e 69 73 49 6e 74 65 67 65 l(2)).||.....if(.(value.isIntege
15ce0 72 28 29 20 26 26 20 76 61 6c 75 65 2e 67 65 74 49 6e 74 65 67 65 72 56 61 6c 75 65 28 29 20 3d r().&&.value.getIntegerValue().=
15d00 3d 20 49 6e 74 65 67 65 72 28 32 29 29 20 7c 7c 00 20 20 7d 20 65 6c 73 65 20 69 66 28 6b 65 79 =.Integer(2)).||...}.else.if(key
15d20 20 3d 3d 20 22 73 6d 74 2d 6c 69 62 2d 76 65 72 73 69 6f 6e 22 29 20 7b 00 20 20 20 20 72 65 74 .==."smt-lib-version").{.....ret
15d40 75 72 6e 3b 00 20 20 20 20 64 5f 66 69 6c 65 6e 61 6d 65 20 3d 20 76 61 6c 75 65 2e 67 65 74 56 urn;.....d_filename.=.value.getV
15d60 61 6c 75 65 28 29 3b 00 20 20 7d 20 65 6c 73 65 20 69 66 28 6b 65 79 20 3d 3d 20 22 6e 61 6d 65 alue();...}.else.if(key.==."name
15d80 22 29 20 7b 00 20 20 20 20 72 65 74 75 72 6e 3b 00 20 20 20 20 2f 2f 20 69 67 6e 6f 72 65 20 74 ").{.....return;.....//.ignore.t
15da0 68 65 73 65 00 20 20 20 20 20 6b 65 79 20 3d 3d 20 22 6e 6f 74 65 73 22 29 20 7b 00 20 20 20 20 hese......key.==."notes").{.....
15dc0 20 6b 65 79 20 3d 3d 20 22 64 69 66 66 69 63 75 6c 74 79 22 20 7c 7c 00 20 20 20 20 20 6b 65 79 .key.==."difficulty".||......key
15de0 20 3d 3d 20 22 63 61 74 65 67 6f 72 79 22 20 7c 7c 00 20 20 69 66 28 6b 65 79 20 3d 3d 20 22 73 .==."category".||...if(key.==."s
15e00 6f 75 72 63 65 22 20 7c 7c 00 20 20 2f 2f 20 43 68 65 63 6b 20 66 6f 72 20 73 74 61 6e 64 61 72 ource".||...//.Check.for.standar
15e20 64 20 69 6e 66 6f 20 6b 65 79 73 20 28 53 4d 54 2d 4c 49 42 20 76 31 2c 20 53 4d 54 2d 4c 49 42 d.info.keys.(SMT-LIB.v1,.SMT-LIB
15e40 20 76 32 2c 20 2e 2e 2e 29 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 .v2,....)....}.....}.......}....
15e60 20 20 20 20 20 74 68 72 6f 77 20 55 6e 72 65 63 6f 67 6e 69 7a 65 64 4f 70 74 69 6f 6e 45 78 63 .....throw.UnrecognizedOptionExc
15e80 65 70 74 69 6f 6e 28 29 3b 00 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 eption();.......}.else.{........
15ea0 20 72 65 74 75 72 6e 3b 00 20 20 20 20 20 20 20 20 73 65 74 4c 6f 67 69 63 49 6e 74 65 72 6e 61 .return;.........setLogicInterna
15ec0 6c 28 29 3b 00 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 20 3d 20 76 61 6c 75 65 2e 67 65 74 l();.........d_logic.=.value.get
15ee0 56 61 6c 75 65 28 29 3b 00 20 20 20 20 20 20 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 Value();.........SmtScope.smts(t
15f00 68 69 73 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 his);.........}...........throw.
15f20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 61 72 67 75 6d 65 6e 74 20 74 6f 20 28 73 65 OptionException("argument.to.(se
15f40 74 2d 69 6e 66 6f 20 3a 63 76 63 34 2d 6c 6f 67 69 63 20 2e 2e 29 20 6d 75 73 74 20 62 65 20 61 t-info.:cvc4-logic...).must.be.a
15f60 20 73 74 72 69 6e 67 22 29 3b 00 20 20 20 20 20 20 20 20 69 66 28 21 20 76 61 6c 75 65 2e 69 73 .string");.........if(!.value.is
15f80 41 74 6f 6d 28 29 29 20 7b 00 20 20 20 20 20 20 69 66 28 63 76 63 34 6b 65 79 20 3d 3d 20 22 6c Atom()).{.......if(cvc4key.==."l
15fa0 6f 67 69 63 22 29 20 7b 00 20 20 20 20 20 20 73 74 72 69 6e 67 20 63 76 63 34 6b 65 79 20 3d 20 ogic").{.......string.cvc4key.=.
15fc0 6b 65 79 2e 73 75 62 73 74 72 28 35 29 3b 00 20 20 20 20 69 66 28 70 72 65 66 69 78 20 3d 3d 20 key.substr(5);.....if(prefix.==.
15fe0 22 63 76 63 34 2d 22 20 7c 7c 20 70 72 65 66 69 78 20 3d 3d 20 22 63 76 63 34 5f 22 29 20 7b 00 "cvc4-".||.prefix.==."cvc4_").{.
16000 61 64 00 00 07 00 00 00 9f 01 00 00 00 10 00 00 5f 00 00 00 00 00 00 00 e7 0f 00 00 c0 0f 00 00 ad.............._...............
16020 94 0f 00 00 50 0f 00 00 15 0f 00 00 08 0f 00 00 d2 0e 00 00 cc 0e 00 00 af 0e 00 00 83 0e 00 00 ....P...........................
16040 63 0e 00 00 2e 0e 00 00 0e 0e 00 00 e4 0d 00 00 c5 0d 00 00 a8 0d 00 00 70 0d 00 00 5a 0d 00 00 c.......................p...Z...
16060 2f 0d 00 00 17 0d 00 00 ea 0c 00 00 dd 0c 00 00 ae 0c 00 00 a8 0c 00 00 81 0c 00 00 4c 0c 00 00 /...........................L...
16080 35 0c 00 00 12 0c 00 00 f7 0b 00 00 bc 0b 00 00 95 0b 00 00 88 0b 00 00 42 0b 00 00 07 0b 00 00 5.......................B.......
160a0 01 0b 00 00 d2 0a 00 00 aa 0a 00 00 69 0a 00 00 22 0a 00 00 fe 09 00 00 d2 09 00 00 94 09 00 00 ............i..."...............
160c0 6c 09 00 00 31 09 00 00 26 09 00 00 fd 08 00 00 f9 08 00 00 f7 08 00 00 f6 08 00 00 cc 08 00 00 l...1...&.......................
160e0 8b 08 00 00 5c 08 00 00 45 08 00 00 32 08 00 00 f2 07 00 00 9a 07 00 00 69 07 00 00 52 07 00 00 ....\...E...2...........i...R...
16100 f4 06 00 00 b6 06 00 00 97 06 00 00 6c 06 00 00 39 06 00 00 33 06 00 00 2f 06 00 00 2e 06 00 00 ............l...9...3.../.......
16120 1b 06 00 00 c7 05 00 00 b9 05 00 00 7c 05 00 00 28 05 00 00 27 05 00 00 26 05 00 00 fb 04 00 00 ............|...(...'...&.......
16140 ce 04 00 00 c6 04 00 00 c5 04 00 00 c4 04 00 00 91 04 00 00 3c 04 00 00 3b 04 00 00 26 04 00 00 ....................<...;...&...
16160 ea 03 00 00 e9 03 00 00 c7 03 00 00 7e 03 00 00 35 03 00 00 fc 02 00 00 b4 02 00 00 87 02 00 00 ............~...5...............
16180 6c 02 00 00 30 02 00 00 fe 01 00 00 e7 01 00 00 9f 01 00 00 6a 03 00 00 48 03 00 00 27 03 00 20 l...0...............j...H...'...
161a0 20 20 20 20 20 73 73 20 3c 3c 20 22 54 79 70 65 20 6f 66 20 64 65 66 69 6e 65 64 20 66 75 6e 63 .....ss.<<."Type.of.defined.func
161c0 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 69 74 73 20 64 65 63 6c 61 72 61 74 tion.does.not.match.its.declarat
161e0 69 6f 6e 5c 6e 22 00 20 20 20 20 20 20 73 74 72 69 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 20 20 ion\n".......stringstream.ss;...
16200 20 20 69 66 28 21 20 66 6f 72 6d 75 6c 61 54 79 70 65 2e 69 73 43 6f 6d 70 61 72 61 62 6c 65 54 ..if(!.formulaType.isComparableT
16220 6f 28 72 61 6e 67 65 54 79 70 65 29 29 20 7b 00 20 20 20 20 54 79 70 65 20 72 61 6e 67 65 54 79 o(rangeType)).{.....Type.rangeTy
16240 70 65 20 3d 20 46 75 6e 63 74 69 6f 6e 54 79 70 65 28 66 75 6e 63 54 79 70 65 29 2e 67 65 74 52 pe.=.FunctionType(funcType).getR
16260 61 6e 67 65 54 79 70 65 28 29 3b 00 20 20 69 66 28 66 6f 72 6d 61 6c 73 2e 73 69 7a 65 28 29 20 angeType();...if(formals.size().
16280 3e 20 30 29 20 7b 00 20 20 2f 2f 20 64 6f 65 73 6e 27 74 20 6d 61 74 63 68 20 74 68 65 20 53 4d >.0).{...//.doesn't.match.the.SM
162a0 54 2d 4c 49 42 76 32 20 73 74 61 6e 64 61 72 64 2e 2e 2e 00 20 20 2f 2f 20 53 6d 74 45 6e 67 69 T-LIBv2.standard......//.SmtEngi
162c0 6e 65 3a 3a 64 65 66 69 6e 65 43 6f 6e 73 74 61 6e 74 28 29 20 66 6f 72 20 62 65 74 74 65 72 20 ne::defineConstant().for.better.
162e0 63 6c 61 72 69 74 79 2c 20 61 6c 74 68 6f 75 67 68 20 74 68 65 6e 20 74 68 61 74 00 20 20 2f 2f clarity,.although.then.that...//
16300 20 73 68 6f 75 6c 64 20 69 6e 73 74 65 61 64 20 68 61 76 65 20 53 6d 74 45 6e 67 69 6e 65 3a 3a .should.instead.have.SmtEngine::
16320 64 65 66 69 6e 65 46 75 6e 63 74 69 6f 6e 28 29 20 61 6e 64 00 20 20 2f 2f 20 62 65 63 61 75 73 defineFunction().and...//.becaus
16340 65 20 74 68 65 20 74 79 70 65 20 63 68 65 63 6b 69 6e 67 20 66 6f 72 20 74 68 65 6d 20 69 73 20 e.the.type.checking.for.them.is.
16360 73 75 62 74 6c 79 20 64 69 66 66 65 72 65 6e 74 2e 20 20 50 65 72 68 61 70 73 20 77 65 00 20 20 subtly.different...Perhaps.we...
16380 2f 2f 20 57 65 20 64 69 73 74 69 6e 67 75 69 73 68 20 68 65 72 65 20 62 65 74 77 65 65 6e 20 64 //.We.distinguish.here.between.d
163a0 65 66 69 6e 69 74 69 6f 6e 73 20 6f 66 20 63 6f 6e 73 74 61 6e 74 73 20 61 6e 64 20 66 75 6e 63 efinitions.of.constants.and.func
163c0 74 69 6f 6e 73 2c 00 20 20 54 79 70 65 20 66 75 6e 63 54 79 70 65 20 3d 20 66 75 6e 63 2e 67 65 tions,...Type.funcType.=.func.ge
163e0 74 54 79 70 65 28 29 3b 00 00 20 20 54 79 70 65 20 66 6f 72 6d 75 6c 61 54 79 70 65 20 3d 20 66 tType();....Type.formulaType.=.f
16400 6f 72 6d 2e 67 65 74 54 79 70 65 28 6f 70 74 69 6f 6e 73 3a 3a 74 79 70 65 43 68 65 63 6b 69 6e orm.getType(options::typeCheckin
16420 67 28 29 29 3b 00 20 20 2f 2f 20 74 79 70 65 20 63 68 65 63 6b 20 62 6f 64 79 00 00 20 20 45 78 g());...//.type.check.body....Ex
16440 70 72 20 66 6f 72 6d 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 73 75 62 73 74 69 74 75 74 65 41 pr.form.=.d_private->substituteA
16460 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 66 6f 72 bstractValues(Node::fromExpr(for
16480 6d 75 6c 61 29 29 2e 74 6f 45 78 70 72 28 29 3b 00 20 20 2f 2f 20 53 75 62 73 74 69 74 75 74 65 mula)).toExpr();...//.Substitute
164a0 20 6f 75 74 20 61 6e 79 20 61 62 73 74 72 61 63 74 20 76 61 6c 75 65 73 20 69 6e 20 66 6f 72 6d .out.any.abstract.values.in.form
164c0 75 6c 61 00 00 00 20 20 20 20 7d 29 3b 00 20 20 20 20 20 20 64 5f 64 65 66 69 6e 65 43 6f 6d 6d ula.......});.......d_defineComm
164e0 61 6e 64 73 2e 70 75 73 68 5f 62 61 63 6b 28 63 2e 63 6c 6f 6e 65 28 29 29 3b 00 20 20 50 52 4f ands.push_back(c.clone());...PRO
16500 4f 46 28 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 73 OF(.if.(options::checkUnsatCores
16520 28 29 29 20 7b 00 00 00 20 20 61 64 64 54 6f 4d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 41 6e 64 44 75 ()).{.....addToModelCommandAndDu
16540 6d 70 28 63 2c 20 45 78 70 72 4d 61 6e 61 67 65 72 3a 3a 56 41 52 5f 46 4c 41 47 5f 44 45 46 49 mp(c,.ExprManager::VAR_FLAG_DEFI
16560 4e 45 44 2c 20 74 72 75 65 2c 20 22 64 65 63 6c 61 72 61 74 69 6f 6e 73 22 29 3b 00 20 20 44 65 NED,.true,."declarations");...De
16580 66 69 6e 65 46 75 6e 63 74 69 6f 6e 43 6f 6d 6d 61 6e 64 20 63 28 73 73 2e 73 74 72 28 29 2c 20 fineFunctionCommand.c(ss.str(),.
165a0 66 75 6e 63 2c 20 66 6f 72 6d 61 6c 73 2c 20 66 6f 72 6d 75 6c 61 29 3b 00 20 20 20 20 20 3c 3c func,.formals,.formula);......<<
165c0 20 66 75 6e 63 3b 00 20 20 73 73 20 3c 3c 20 6c 61 6e 67 75 61 67 65 3a 3a 53 65 74 4c 61 6e 67 .func;...ss.<<.language::SetLang
165e0 75 61 67 65 28 6c 61 6e 67 75 61 67 65 3a 3a 53 65 74 4c 61 6e 67 75 61 67 65 3a 3a 67 65 74 4c uage(language::SetLanguage::getL
16600 61 6e 67 75 61 67 65 28 44 75 6d 70 2e 67 65 74 53 74 72 65 61 6d 28 29 29 29 00 20 20 73 74 72 anguage(Dump.getStream()))...str
16620 69 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 74 ingstream.ss;....}.....}.......t
16640 68 72 6f 77 20 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 66 75 6e 63 2c hrow.TypeCheckingException(func,
16660 20 73 73 2e 73 74 72 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 3c 3c 20 22 68 61 73 20 6b 69 6e .ss.str());..........<<."has.kin
16680 64 20 22 20 3c 3c 20 28 2a 69 29 2e 67 65 74 4b 69 6e 64 28 29 3b 00 20 20 20 20 20 20 20 20 20 d.".<<.(*i).getKind();..........
166a0 3c 3c 20 22 20 20 22 20 3c 3c 20 2a 69 20 3c 3c 20 22 5c 6e 22 00 20 20 20 20 20 20 20 20 20 3c <<."..".<<.*i.<<."\n"..........<
166c0 3c 20 22 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 66 75 6e 63 74 69 6f 6e 20 22 20 3c 3c 20 66 <."definition.of.function.".<<.f
166e0 75 6e 63 20 3c 3c 20 22 2c 20 66 6f 72 6d 61 6c 5c 6e 22 00 20 20 20 20 20 20 73 73 20 3c 3c 20 unc.<<.",.formal\n".......ss.<<.
16700 22 41 6c 6c 20 66 6f 72 6d 61 6c 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 64 65 66 69 6e 65 64 "All.formal.arguments.to.defined
16720 20 66 75 6e 63 74 69 6f 6e 73 20 6d 75 73 74 20 62 65 20 42 4f 55 4e 44 5f 56 41 52 49 41 42 4c .functions.must.be.BOUND_VARIABL
16740 45 73 2c 20 62 75 74 20 69 6e 20 74 68 65 5c 6e 22 00 20 20 20 20 20 20 73 74 72 69 6e 67 73 74 Es,.but.in.the\n".......stringst
16760 72 65 61 6d 20 73 73 3b 00 20 20 20 20 69 66 28 28 2a 69 29 2e 67 65 74 4b 69 6e 64 28 29 20 21 ream.ss;.....if((*i).getKind().!
16780 3d 20 6b 69 6e 64 3a 3a 42 4f 55 4e 44 5f 56 41 52 49 41 42 4c 45 29 20 7b 00 20 20 66 6f 72 28 =.kind::BOUND_VARIABLE).{...for(
167a0 73 74 64 3a 3a 76 65 63 74 6f 72 3c 45 78 70 72 3e 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f std::vector<Expr>::const_iterato
167c0 72 20 69 20 3d 20 66 6f 72 6d 61 6c 73 2e 62 65 67 69 6e 28 29 3b 20 69 20 21 3d 20 66 6f 72 6d r.i.=.formals.begin();.i.!=.form
167e0 61 6c 73 2e 65 6e 64 28 29 3b 20 2b 2b 69 29 20 7b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 als.end();.++i).{...Trace("smt")
16800 20 3c 3c 20 22 53 4d 54 20 64 65 66 69 6e 65 46 75 6e 63 74 69 6f 6e 28 22 20 3c 3c 20 66 75 6e .<<."SMT.defineFunction(".<<.fun
16820 63 20 3c 3c 20 22 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 64 6f 50 65 6e 64 69 6e 67 50 6f 70 c.<<.")".<<.endl;...doPendingPop
16840 73 28 29 3b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 20 20 20 20 s();...SmtScope.smts(this);.....
16860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 78 70 72 20 ...........................Expr.
16880 66 6f 72 6d 75 6c 61 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 formula).{......................
168a0 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 45 78 70 72 ..........const.std::vector<Expr
168c0 3e 26 20 66 6f 72 6d 61 6c 73 2c 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 64 65 66 69 >&.formals,.void.SmtEngine::defi
168e0 6e 65 46 75 6e 63 74 69 6f 6e 28 45 78 70 72 20 66 75 6e 63 2c 00 00 7d 00 20 20 7d 00 20 20 20 neFunction(Expr.func,..}...}....
16900 20 74 68 72 6f 77 20 55 6e 72 65 63 6f 67 6e 69 7a 65 64 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 .throw.UnrecognizedOptionExcepti
16920 6f 6e 28 29 3b 00 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 on();...}.else.{.....return.SExp
16940 72 3a 3a 70 61 72 73 65 4c 69 73 74 4f 66 4c 69 73 74 4f 66 41 74 6f 6d 73 28 63 75 72 72 65 6e r::parseListOfListOfAtoms(curren
16960 74 5f 6f 70 74 69 6f 6e 73 29 3b 00 20 20 20 20 20 20 4f 70 74 69 6f 6e 73 3a 3a 63 75 72 72 65 t_options);.......Options::curre
16980 6e 74 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b 00 20 20 20 20 73 74 64 3a 3a 76 65 63 nt()->getOptions();.....std::vec
169a0 74 6f 72 3c 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 73 74 64 3a 3a 73 74 72 69 6e 67 3e 20 3e 20 tor<.std::vector<std::string>.>.
169c0 63 75 72 72 65 6e 74 5f 6f 70 74 69 6f 6e 73 20 3d 00 20 20 20 20 2f 2f 20 67 65 74 20 74 68 65 current_options.=.....//.get.the
169e0 20 6f 70 74 69 6f 6e 73 2c 20 6c 69 6b 65 20 61 6c 6c 2d 73 74 61 74 69 73 74 69 63 73 00 20 20 .options,.like.all-statistics...
16a00 7d 20 65 6c 73 65 20 69 66 28 6b 65 79 20 3d 3d 20 22 61 6c 6c 2d 6f 70 74 69 6f 6e 73 22 29 20 }.else.if(key.==."all-options").
16a20 7b 00 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 72 28 73 74 61 74 69 63 5f 63 61 73 74 3c 75 {.....return.SExpr(static_cast<u
16a40 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 3e 28 64 5f 75 73 65 72 4c 65 76 65 6c 73 2e 73 nsigned.long.int>(d_userLevels.s
16a60 69 7a 65 28 29 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 64 3a 3a 6e ize()));..................std::n
16a80 75 6d 65 72 69 63 5f 6c 69 6d 69 74 73 3c 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 69 6e 74 3e umeric_limits<unsigned.long.int>
16aa0 3a 3a 6d 61 78 28 29 29 3b 00 20 20 20 20 41 6c 77 61 79 73 41 73 73 65 72 74 28 64 5f 75 73 65 ::max());.....AlwaysAssert(d_use
16ac0 72 4c 65 76 65 6c 73 2e 73 69 7a 65 28 29 20 3c 3d 00 20 20 7d 20 65 6c 73 65 20 69 66 28 6b 65 rLevels.size().<=...}.else.if(ke
16ae0 79 20 3d 3d 20 22 61 73 73 65 72 74 69 6f 6e 2d 73 74 61 63 6b 2d 6c 65 76 65 6c 73 22 29 20 7b y.==."assertion-stack-levels").{
16b00 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....}..........................
16b20 20 20 22 6c 61 73 74 20 72 65 73 75 6c 74 20 77 61 73 6e 27 74 20 75 6e 6b 6e 6f 77 6e 21 22 29 .."last.result.wasn't.unknown!")
16b40 3b 00 20 20 20 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 22 43 61 ;.......throw.ModalException("Ca
16b60 6e 27 74 20 67 65 74 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 2d 75 6e 6b 6e 6f 77 6e 20 77 68 65 n't.get-info.:reason-unknown.whe
16b80 6e 20 74 68 65 20 22 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 72 65 74 75 72 n.the.".....}.else.{.......retur
16ba0 6e 20 53 45 78 70 72 28 53 45 78 70 72 3a 3a 4b 65 79 77 6f 72 64 28 73 29 29 3b 00 20 20 20 20 n.SExpr(SExpr::Keyword(s));.....
16bc0 20 20 74 72 61 6e 73 66 6f 72 6d 28 73 2e 62 65 67 69 6e 28 29 2c 20 73 2e 65 6e 64 28 29 2c 20 ..transform(s.begin(),.s.end(),.
16be0 73 2e 62 65 67 69 6e 28 29 2c 20 3a 3a 74 6f 6c 6f 77 65 72 29 3b 00 20 20 20 20 20 20 73 74 72 s.begin(),.::tolower);.......str
16c00 69 6e 67 20 73 20 3d 20 73 73 2e 73 74 72 28 29 3b 00 20 20 20 20 20 20 73 73 20 3c 3c 20 64 5f ing.s.=.ss.str();.......ss.<<.d_
16c20 73 74 61 74 75 73 2e 77 68 79 55 6e 6b 6e 6f 77 6e 28 29 3b 00 20 20 20 20 20 20 73 74 72 69 6e status.whyUnknown();.......strin
16c40 67 73 74 72 65 61 6d 20 73 73 3b 00 20 20 20 20 69 66 28 21 64 5f 73 74 61 74 75 73 2e 69 73 4e gstream.ss;.....if(!d_status.isN
16c60 75 6c 6c 28 29 20 26 26 20 64 5f 73 74 61 74 75 73 2e 69 73 55 6e 6b 6e 6f 77 6e 28 29 29 20 7b ull().&&.d_status.isUnknown()).{
16c80 00 20 20 7d 20 65 6c 73 65 20 69 66 28 6b 65 79 20 3d 3d 20 22 72 65 61 73 6f 6e 2d 75 6e 6b 6e ...}.else.if(key.==."reason-unkn
16ca0 6f 77 6e 22 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 72 own").{.....}.......return.SExpr
16cc0 28 53 45 78 70 72 3a 3a 4b 65 79 77 6f 72 64 28 22 75 6e 6b 6e 6f 77 6e 22 29 29 3b 00 20 20 20 (SExpr::Keyword("unknown"));....
16ce0 20 64 65 66 61 75 6c 74 3a 00 20 20 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 72 28 53 45 78 .default:.......return.SExpr(SEx
16d00 70 72 3a 3a 4b 65 79 77 6f 72 64 28 22 75 6e 73 61 74 22 29 29 3b 00 20 20 20 20 63 61 73 65 20 pr::Keyword("unsat"));.....case.
16d20 52 65 73 75 6c 74 3a 3a 55 4e 53 41 54 3a 00 20 20 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 Result::UNSAT:.......return.SExp
16d40 72 28 53 45 78 70 72 3a 3a 4b 65 79 77 6f 72 64 28 22 73 61 74 22 29 29 3b 00 20 20 20 20 63 61 r(SExpr::Keyword("sat"));.....ca
16d60 73 65 20 52 65 73 75 6c 74 3a 3a 53 41 54 3a 00 20 20 20 20 73 77 69 74 63 68 28 64 5f 73 74 61 se.Result::SAT:.....switch(d_sta
16d80 74 75 73 2e 61 73 53 61 74 69 73 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 2e 69 73 53 tus.asSatisfiabilityResult().isS
16da0 61 74 28 29 29 20 7b 00 20 20 20 20 2f 2f 20 73 61 74 20 7c 20 75 6e 73 61 74 20 7c 20 75 6e 6b at()).{.....//.sat.|.unsat.|.unk
16dc0 6e 6f 77 6e 00 20 20 7d 20 65 6c 73 65 20 69 66 28 6b 65 79 20 3d 3d 20 22 73 74 61 74 75 73 22 nown...}.else.if(key.==."status"
16de0 29 20 7b 00 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 72 28 43 6f 6e 66 69 67 75 72 61 74 69 ).{.....return.SExpr(Configurati
16e00 6f 6e 3a 3a 61 62 6f 75 74 28 29 29 3b 00 20 20 7d 20 65 6c 73 65 20 69 66 28 6b 65 79 20 3d 3d on::about());...}.else.if(key.==
16e20 20 22 61 75 74 68 6f 72 73 22 29 20 7b 00 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 72 28 43 ."authors").{.....return.SExpr(C
16e40 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 3a 67 65 74 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 29 onfiguration::getVersionString()
16e60 29 3b 00 20 20 7d 20 65 6c 73 65 20 69 66 28 6b 65 79 20 3d 3d 20 22 76 65 72 73 69 6f 6e 22 29 );...}.else.if(key.==."version")
16e80 20 7b 00 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 72 28 43 6f 6e 66 69 67 75 72 61 74 69 6f .{.....return.SExpr(Configuratio
16ea0 6e 3a 3a 67 65 74 4e 61 6d 65 28 29 29 3b 00 20 20 7d 20 65 6c 73 65 20 69 66 28 6b 65 79 20 3d n::getName());...}.else.if(key.=
16ec0 3d 20 22 6e 61 6d 65 22 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 72 65 74 75 72 6e 20 53 =."name").{.....}.......return.S
16ee0 45 78 70 72 28 53 45 78 70 72 3a 3a 4b 65 79 77 6f 72 64 28 22 69 6d 6d 65 64 69 61 74 65 2d 65 Expr(SExpr::Keyword("immediate-e
16f00 78 69 74 22 29 29 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 72 65 74 75 72 xit"));.....}.else.{.......retur
16f20 6e 20 53 45 78 70 72 28 53 45 78 70 72 3a 3a 4b 65 79 77 6f 72 64 28 22 63 6f 6e 74 69 6e 75 65 n.SExpr(SExpr::Keyword("continue
16f40 64 2d 65 78 65 63 75 74 69 6f 6e 22 29 29 3b 00 20 20 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a d-execution"));.....if(.options:
16f60 3a 63 6f 6e 74 69 6e 75 65 64 45 78 65 63 75 74 69 6f 6e 28 29 20 7c 7c 20 6f 70 74 69 6f 6e 73 :continuedExecution().||.options
16f80 3a 3a 69 6e 74 65 72 61 63 74 69 76 65 28 29 20 29 20 7b 00 20 20 20 20 2f 2f 20 69 6d 6d 65 64 ::interactive().).{.....//.immed
16fa0 69 61 74 65 2d 65 78 69 74 20 7c 20 63 6f 6e 74 69 6e 75 65 64 2d 65 78 65 63 75 74 69 6f 6e 00 iate-exit.|.continued-execution.
16fc0 20 20 7d 20 65 6c 73 65 20 69 66 28 6b 65 79 20 3d 3d 20 22 65 72 72 6f 72 2d 62 65 68 61 76 69 ..}.else.if(key.==."error-behavi
16fe0 6f 72 22 29 20 7b 00 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 72 28 73 74 61 74 73 29 3b 00 or").{.....return.SExpr(stats);.
17000 61 64 00 00 15 00 00 00 9d 01 00 00 00 10 00 00 5b 00 00 00 00 00 00 00 d1 0f 00 00 9d 0f 00 00 ad..............[...............
17020 6b 0f 00 00 3c 0f 00 00 09 0f 00 00 03 0f 00 00 f8 0e 00 00 c7 0e 00 00 b0 0e 00 00 60 0e 00 00 k...<.......................`...
17040 30 0e 00 00 cd 0d 00 00 9a 0d 00 00 38 0d 00 00 05 0d 00 00 ff 0c 00 00 fb 0c 00 00 d7 0c 00 00 0...........8...................
17060 ba 0c 00 00 82 0c 00 00 64 0c 00 00 53 0c 00 00 46 0c 00 00 1a 0c 00 00 16 0c 00 00 f2 0b 00 00 ........d...S...F...............
17080 b9 0b 00 00 75 0b 00 00 31 0b 00 00 14 0b 00 00 bf 0a 00 00 92 0a 00 00 90 0a 00 00 8f 0a 00 00 ....u...1.......................
170a0 5f 0a 00 00 3b 0a 00 00 f8 09 00 00 b4 09 00 00 b2 09 00 00 b1 09 00 00 3f 09 00 00 f4 08 00 00 _...;...................?.......
170c0 f3 08 00 00 c5 08 00 00 af 08 00 00 78 08 00 00 13 08 00 00 ae 07 00 00 98 07 00 00 97 07 00 00 ............x...................
170e0 90 07 00 00 62 07 00 00 12 07 00 00 c0 06 00 00 90 06 00 00 7c 06 00 00 7b 06 00 00 62 06 00 00 ....b...............|...{...b...
17100 48 06 00 00 2c 06 00 00 2b 06 00 00 f4 05 00 00 bc 05 00 00 5f 05 00 00 2c 05 00 00 04 05 00 00 H...,...+..........._...,.......
17120 d0 04 00 00 25 04 00 00 0f 04 00 00 03 04 00 00 d4 03 00 00 a3 03 00 00 8f 03 00 00 85 03 00 00 ....%...........................
17140 58 03 00 00 40 03 00 00 2e 03 00 00 26 03 00 00 25 03 00 00 04 03 00 00 b3 02 00 00 8f 02 00 00 X...@.......&...%...............
17160 67 02 00 00 3a 02 00 00 28 02 00 00 20 02 00 00 1f 02 00 00 02 02 00 00 da 01 00 00 c3 01 00 00 g...:...(.......................
17180 9d 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 ................................
171a0 20 20 20 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 6d 61 63 72 6f 73 51 75 61 6e 74 28 29 20 .....if(.options::macrosQuant().
171c0 29 7b 00 20 20 20 20 20 20 69 66 28 20 21 64 6f 45 78 70 61 6e 64 20 29 7b 00 20 20 20 20 20 20 ){.......if(.!doExpand.){.......
171e0 62 6f 6f 6c 20 64 6f 45 78 70 61 6e 64 20 3d 20 6b 20 3d 3d 20 6b 69 6e 64 3a 3a 41 50 50 4c 59 bool.doExpand.=.k.==.kind::APPLY
17200 3b 00 20 20 20 20 20 20 2f 2f 20 6f 74 68 65 72 77 69 73 65 20 65 78 70 61 6e 64 20 69 74 00 00 ;.......//.otherwise.expand.it..
17220 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 20 20 20 20 20 20 ......}.........continue;.......
17240 20 20 72 65 73 75 6c 74 2e 70 75 73 68 28 72 65 74 2e 69 73 4e 75 6c 6c 28 29 20 3f 20 6e 20 3a ..result.push(ret.isNull().?.n.:
17260 20 72 65 74 29 3b 00 20 20 20 20 20 20 20 20 54 4e 6f 64 65 20 72 65 74 20 3d 20 28 2a 63 61 63 .ret);.........TNode.ret.=.(*cac
17280 68 65 48 69 74 29 2e 73 65 63 6f 6e 64 3b 00 20 20 20 20 20 20 69 66 28 63 61 63 68 65 48 69 74 heHit).second;.......if(cacheHit
172a0 20 21 3d 20 63 61 63 68 65 2e 65 6e 64 28 29 29 20 7b 00 20 20 20 20 20 20 68 61 73 68 5f 6d 61 .!=.cache.end()).{.......hash_ma
172c0 70 3c 4e 6f 64 65 2c 20 4e 6f 64 65 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e 3e 3a p<Node,.Node,.NodeHashFunction>:
172e0 3a 69 74 65 72 61 74 6f 72 20 63 61 63 68 65 48 69 74 20 3d 20 63 61 63 68 65 2e 66 69 6e 64 28 :iterator.cacheHit.=.cache.find(
17300 6e 29 3b 00 20 20 20 20 20 20 2f 2f 20 6d 61 79 62 65 20 69 74 27 73 20 69 6e 20 74 68 65 20 63 n);.......//.maybe.it's.in.the.c
17320 61 63 68 65 00 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 ache........}.........continue;.
17340 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 2e 70 75 73 68 28 6e 29 3b 00 20 20 20 20 20 20 20 20 ........result.push(n);.........
17360 2f 2f 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 70 75 74 74 69 6e 67 20 69 6e 20 74 68 65 20 63 //.don't.bother.putting.in.the.c
17380 61 63 68 65 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 ache.........}...........continu
173a0 65 3b 00 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 2e 70 75 73 68 28 28 2a 69 29 2e 73 65 e;...........result.push((*i).se
173c0 63 6f 6e 64 2e 67 65 74 46 6f 72 6d 75 6c 61 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 2f 2f cond.getFormula());...........//
173e0 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 70 75 74 74 69 6e 67 20 69 6e 20 74 68 65 20 63 61 63 .don't.bother.putting.in.the.cac
17400 68 65 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 he...........}.............conti
17420 6e 75 65 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 2e 70 75 73 68 28 64 5f 73 nue;.............result.push(d_s
17440 6d 74 2e 64 5f 6e 6f 64 65 4d 61 6e 61 67 65 72 2d 3e 6d 6b 4e 6f 64 65 28 6b 69 6e 64 3a 3a 4c mt.d_nodeManager->mkNode(kind::L
17460 41 4d 42 44 41 2c 20 64 5f 73 6d 74 2e 64 5f 6e 6f 64 65 4d 61 6e 61 67 65 72 2d 3e 6d 6b 4e 6f AMBDA,.d_smt.d_nodeManager->mkNo
17480 64 65 28 6b 69 6e 64 3a 3a 42 4f 55 4e 44 5f 56 41 52 5f 4c 49 53 54 2c 20 28 2a 69 29 2e 73 65 de(kind::BOUND_VAR_LIST,.(*i).se
174a0 63 6f 6e 64 2e 67 65 74 46 6f 72 6d 61 6c 73 28 29 29 2c 20 28 2a 69 29 2e 73 65 63 6f 6e 64 2e cond.getFormals()),.(*i).second.
174c0 67 65 74 46 6f 72 6d 75 6c 61 28 29 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 69 66 28 28 2a 69 getFormula()));...........if((*i
174e0 29 2e 73 65 63 6f 6e 64 2e 67 65 74 46 6f 72 6d 61 6c 73 28 29 2e 73 69 7a 65 28 29 20 3e 20 30 ).second.getFormals().size().>.0
17500 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 6d 75 73 ).{...........//.replacement.mus
17520 74 20 62 65 20 63 6c 6f 73 65 64 00 20 20 20 20 20 20 20 20 69 66 28 69 20 21 3d 20 64 5f 73 6d t.be.closed.........if(i.!=.d_sm
17540 74 2e 64 5f 64 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 2d 3e 65 6e 64 28 29 29 20 7b 00 20 t.d_definedFunctions->end()).{..
17560 20 20 20 20 20 20 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 44 65 66 69 6e 65 64 46 75 6e 63 74 69 6f .......SmtEngine::DefinedFunctio
17580 6e 4d 61 70 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 69 20 3d 20 64 5f 73 6d 74 2e 64 nMap::const_iterator.i.=.d_smt.d
175a0 5f 64 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 2d 3e 66 69 6e 64 28 6e 29 3b 00 20 20 20 20 _definedFunctions->find(n);.....
175c0 20 20 69 66 28 6b 20 21 3d 20 6b 69 6e 64 3a 3a 41 50 50 4c 59 20 26 26 20 6e 2e 67 65 74 4e 75 ..if(k.!=.kind::APPLY.&&.n.getNu
175e0 6d 43 68 69 6c 64 72 65 6e 28 29 20 3d 3d 20 30 29 20 7b 00 20 20 20 20 20 20 2f 2f 20 41 70 61 mChildren().==.0).{.......//.Apa
17600 72 74 20 66 72 6f 6d 20 61 70 70 6c 79 2c 20 77 65 20 63 61 6e 20 73 68 6f 72 74 20 63 69 72 63 rt.from.apply,.we.can.short.circ
17620 75 69 74 20 6c 65 61 76 65 73 00 00 20 20 20 20 20 20 4b 69 6e 64 20 6b 20 3d 20 6e 2e 67 65 74 uit.leaves........Kind.k.=.n.get
17640 4b 69 6e 64 28 29 3b 00 20 20 20 20 69 66 28 21 63 68 69 6c 64 72 65 6e 50 75 73 68 65 64 29 20 Kind();.....if(!childrenPushed).
17660 7b 00 20 20 20 20 2f 2f 20 57 6f 72 6b 69 6e 67 20 64 6f 77 6e 77 61 72 64 73 00 00 20 20 20 20 {.....//.Working.downwards......
17680 77 6f 72 6b 6c 69 73 74 2e 70 6f 70 28 29 3b 00 20 20 20 20 62 6f 6f 6c 20 63 68 69 6c 64 72 65 worklist.pop();.....bool.childre
176a0 6e 50 75 73 68 65 64 20 3d 20 77 6f 72 6b 6c 69 73 74 2e 74 6f 70 28 29 2e 74 68 69 72 64 3b 00 nPushed.=.worklist.top().third;.
176c0 20 20 20 20 4e 6f 64 65 20 6e 6f 64 65 20 3d 20 77 6f 72 6b 6c 69 73 74 2e 74 6f 70 28 29 2e 73 ....Node.node.=.worklist.top().s
176e0 65 63 6f 6e 64 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 6f 64 65 20 69 73 20 74 68 econd;.............//.node.is.th
17700 65 20 6f 75 74 70 75 74 20 2f 20 72 65 73 75 6c 74 00 20 20 20 20 6e 20 3d 20 77 6f 72 6b 6c 69 e.output./.result.....n.=.workli
17720 73 74 2e 74 6f 70 28 29 2e 66 69 72 73 74 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st.top().first;.................
17740 20 20 20 20 20 2f 2f 20 6e 20 69 73 20 74 68 65 20 69 6e 70 75 74 20 2f 20 6f 72 69 67 69 6e 61 .....//.n.is.the.input./.origina
17760 6c 00 20 20 20 20 73 70 65 6e 64 52 65 73 6f 75 72 63 65 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 l.....spendResource(options::pre
17780 70 72 6f 63 65 73 73 53 74 65 70 28 29 29 3b 00 20 20 64 6f 20 7b 00 00 20 20 2f 2f 20 6f 72 20 processStep());...do.{....//.or.
177a0 75 70 77 61 72 64 20 70 61 73 73 29 2e 00 20 20 2f 2f 20 61 6e 64 20 66 69 6e 61 6c 6c 79 20 61 upward.pass)....//.and.finally.a
177c0 20 66 6c 61 67 20 74 72 61 63 6b 69 6e 67 20 77 68 65 74 68 65 72 20 74 68 65 20 63 68 69 6c 64 .flag.tracking.whether.the.child
177e0 72 65 6e 20 68 61 76 65 20 62 65 65 6e 20 65 78 70 6c 6f 72 65 64 20 28 69 2e 65 2e 20 69 66 20 ren.have.been.explored.(i.e..if.
17800 74 68 69 73 20 69 73 20 61 20 64 6f 77 6e 77 61 72 64 00 20 20 2f 2f 20 54 68 65 20 77 6f 72 6b this.is.a.downward...//.The.work
17820 6c 69 73 74 20 69 73 20 6d 61 64 65 20 6f 66 20 74 72 69 70 6c 65 73 2c 20 65 61 63 68 20 69 73 list.is.made.of.triples,.each.is
17840 20 69 6e 70 75 74 20 2f 20 6f 72 69 67 69 6e 61 6c 20 6e 6f 64 65 20 74 68 65 6e 20 74 68 65 20 .input./.original.node.then.the.
17860 6f 75 74 70 75 74 20 2f 20 72 65 77 72 69 74 74 65 6e 20 6e 6f 64 65 00 20 20 77 6f 72 6b 6c 69 output./.rewritten.node...workli
17880 73 74 2e 70 75 73 68 28 6d 61 6b 65 5f 74 72 69 70 6c 65 28 4e 6f 64 65 28 6e 29 2c 20 4e 6f 64 st.push(make_triple(Node(n),.Nod
178a0 65 28 6e 29 2c 20 66 61 6c 73 65 29 29 3b 00 20 20 73 74 61 63 6b 3c 4e 6f 64 65 3e 20 72 65 73 e(n),.false));...stack<Node>.res
178c0 75 6c 74 3b 00 20 20 73 74 61 63 6b 3c 20 74 72 69 70 6c 65 3c 4e 6f 64 65 2c 20 4e 6f 64 65 2c ult;...stack<.triple<Node,.Node,
178e0 20 62 6f 6f 6c 3e 20 3e 20 77 6f 72 6b 6c 69 73 74 3b 00 00 20 20 74 68 72 6f 77 28 54 79 70 65 .bool>.>.worklist;....throw(Type
17900 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f CheckingException,.LogicExceptio
17920 6e 2c 20 55 6e 73 61 66 65 49 6e 74 65 72 72 75 70 74 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 4e n,.UnsafeInterruptException).{.N
17940 6f 64 65 20 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 65 78 70 61 6e 64 44 65 66 69 ode.SmtEnginePrivate::expandDefi
17960 6e 69 74 69 6f 6e 73 28 54 4e 6f 64 65 20 6e 2c 20 68 61 73 68 5f 6d 61 70 3c 4e 6f 64 65 2c 20 nitions(TNode.n,.hash_map<Node,.
17980 4e 6f 64 65 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e 3e 26 20 63 61 63 68 65 2c 20 Node,.NodeHashFunction>&.cache,.
179a0 62 6f 6f 6c 20 65 78 70 61 6e 64 4f 6e 6c 79 29 00 00 7d 00 20 20 72 65 74 75 72 6e 20 64 5f 64 bool.expandOnly)..}...return.d_d
179c0 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 2d 3e 66 69 6e 64 28 6e 66 29 20 21 3d 20 64 5f 64 efinedFunctions->find(nf).!=.d_d
179e0 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 2d 3e 65 6e 64 28 29 3b 00 20 20 44 65 62 75 67 28 efinedFunctions->end();...Debug(
17a00 22 73 6d 74 22 29 20 3c 3c 20 22 69 73 44 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 20 22 20 "smt").<<."isDefined.function.".
17a20 3c 3c 20 6e 66 20 3c 3c 20 22 3f 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 4e 6f 64 <<.nf.<<."?".<<.std::endl;...Nod
17a40 65 20 6e 66 20 3d 20 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 20 66 75 6e 63 20 29 3b 00 62 e.nf.=.Node::fromExpr(.func.);.b
17a60 6f 6f 6c 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 69 73 44 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e ool.SmtEngine::isDefinedFunction
17a80 28 20 45 78 70 72 20 66 75 6e 63 20 29 7b 00 00 7d 00 20 20 64 5f 64 65 66 69 6e 65 64 46 75 6e (.Expr.func.){..}...d_definedFun
17aa0 63 74 69 6f 6e 73 2d 3e 69 6e 73 65 72 74 28 66 75 6e 63 4e 6f 64 65 2c 20 64 65 66 29 3b 00 20 ctions->insert(funcNode,.def);..
17ac0 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 64 65 66 69 6e 65 64 46 75 6e 63 74 69 6f .Debug("smt").<<."definedFunctio
17ae0 6e 73 20 69 6e 73 65 72 74 20 22 20 3c 3c 20 66 75 6e 63 4e 6f 64 65 20 3c 3c 20 22 20 22 20 3c ns.insert.".<<.funcNode.<<.".".<
17b00 3c 20 66 6f 72 6d 4e 6f 64 65 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 2f 2f 20 64 5f 68 61 76 65 41 <.formNode.<<.endl;...//.d_haveA
17b20 64 64 69 74 69 6f 6e 73 20 3d 20 74 72 75 65 3b 00 20 20 2f 2f 20 4f 74 68 65 72 77 69 73 65 2c dditions.=.true;...//.Otherwise,
17b40 20 28 63 68 65 63 6b 2d 73 61 74 29 20 28 67 65 74 2d 76 61 6c 75 65 20 28 28 21 20 66 6f 6f 20 .(check-sat).(get-value.((!.foo.
17b60 3a 6e 61 6d 65 64 20 62 61 72 29 29 29 20 62 72 65 61 6b 73 00 20 20 2f 2f 20 50 65 72 6d 69 74 :named.bar))).breaks...//.Permit
17b80 20 28 63 68 65 63 6b 2d 73 61 74 29 20 28 64 65 66 69 6e 65 2d 66 75 6e 20 2e 2e 2e 29 20 28 67 .(check-sat).(define-fun....).(g
17ba0 65 74 2d 76 61 6c 75 65 20 2e 2e 2e 29 20 73 65 71 75 65 6e 63 65 73 2e 00 20 20 44 65 66 69 6e et-value....).sequences....Defin
17bc0 65 64 46 75 6e 63 74 69 6f 6e 20 64 65 66 28 66 75 6e 63 4e 6f 64 65 2c 20 66 6f 72 6d 61 6c 73 edFunction.def(funcNode,.formals
17be0 4e 6f 64 65 73 2c 20 66 6f 72 6d 4e 6f 64 65 29 3b 00 20 20 54 4e 6f 64 65 20 66 6f 72 6d 4e 6f Nodes,.formNode);...TNode.formNo
17c00 64 65 20 3d 20 66 6f 72 6d 2e 67 65 74 54 4e 6f 64 65 28 29 3b 00 20 20 7d 00 20 20 20 20 66 6f de.=.form.getTNode();...}.....fo
17c20 72 6d 61 6c 73 4e 6f 64 65 73 2e 70 75 73 68 5f 62 61 63 6b 28 28 2a 69 29 2e 67 65 74 4e 6f 64 rmalsNodes.push_back((*i).getNod
17c40 65 28 29 29 3b 00 20 20 20 20 20 20 2b 2b 69 29 20 7b 00 20 20 20 20 20 20 69 20 21 3d 20 69 65 e());.......++i).{.......i.!=.ie
17c60 6e 64 3b 00 20 20 20 20 20 20 20 20 69 65 6e 64 20 3d 20 66 6f 72 6d 61 6c 73 2e 65 6e 64 28 29 nd;.........iend.=.formals.end()
17c80 3b 00 20 20 66 6f 72 28 76 65 63 74 6f 72 3c 45 78 70 72 3e 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 ;...for(vector<Expr>::const_iter
17ca0 61 74 6f 72 20 69 20 3d 20 66 6f 72 6d 61 6c 73 2e 62 65 67 69 6e 28 29 2c 00 20 20 76 65 63 74 ator.i.=.formals.begin(),...vect
17cc0 6f 72 3c 4e 6f 64 65 3e 20 66 6f 72 6d 61 6c 73 4e 6f 64 65 73 3b 00 20 20 54 4e 6f 64 65 20 66 or<Node>.formalsNodes;...TNode.f
17ce0 75 6e 63 4e 6f 64 65 20 3d 20 66 75 6e 63 2e 67 65 74 54 4e 6f 64 65 28 29 3b 00 20 20 7d 00 20 uncNode.=.func.getTNode();...}..
17d00 20 20 20 7d 00 20 20 20 20 20 20 74 68 72 6f 77 20 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 ...}.......throw.TypeCheckingExc
17d20 65 70 74 69 6f 6e 28 66 75 6e 63 2c 20 73 73 2e 73 74 72 28 29 29 3b 00 20 20 20 20 20 20 20 20 eption(func,.ss.str());.........
17d40 20 3c 3c 20 22 44 65 66 69 6e 69 74 69 6f 6e 20 74 79 70 65 3a 20 22 20 3c 3c 20 66 6f 72 6d 75 .<<."Definition.type:.".<<.formu
17d60 6c 61 54 79 70 65 20 3c 3c 20 22 20 22 20 3c 3c 20 54 79 70 65 3a 3a 67 65 74 54 79 70 65 4e 6f laType.<<.".".<<.Type::getTypeNo
17d80 64 65 28 66 6f 72 6d 75 6c 61 54 79 70 65 29 2d 3e 67 65 74 49 64 28 29 3b 00 20 20 20 20 20 20 de(formulaType)->getId();.......
17da0 20 20 20 3c 3c 20 22 54 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 3a 20 22 20 3c 3c 20 66 6f 72 ...<<."The.definition.:.".<<.for
17dc0 6d 75 6c 61 20 3c 3c 20 22 5c 6e 22 00 20 20 20 20 20 20 20 20 20 3c 3c 20 22 44 65 63 6c 61 72 mula.<<."\n"..........<<."Declar
17de0 65 64 20 74 79 70 65 20 20 3a 20 22 20 3c 3c 20 66 75 6e 63 54 79 70 65 20 3c 3c 20 22 20 22 20 ed.type..:.".<<.funcType.<<.".".
17e00 3c 3c 20 54 79 70 65 3a 3a 67 65 74 54 79 70 65 4e 6f 64 65 28 66 75 6e 63 54 79 70 65 29 2d 3e <<.Type::getTypeNode(funcType)->
17e20 67 65 74 49 64 28 29 20 3c 3c 20 22 5c 6e 22 00 20 20 20 20 20 20 20 20 20 3c 3c 20 22 54 68 65 getId().<<."\n"..........<<."The
17e40 20 63 6f 6e 73 74 61 6e 74 20 20 20 3a 20 22 20 3c 3c 20 66 75 6e 63 20 3c 3c 20 22 5c 6e 22 00 .constant...:.".<<.func.<<."\n".
17e60 20 20 20 20 20 20 73 73 20 3c 3c 20 22 44 65 63 6c 61 72 65 64 20 74 79 70 65 20 6f 66 20 64 65 ......ss.<<."Declared.type.of.de
17e80 66 69 6e 65 64 20 63 6f 6e 73 74 61 6e 74 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 69 74 fined.constant.does.not.match.it
17ea0 73 20 64 65 66 69 6e 69 74 69 6f 6e 5c 6e 22 00 20 20 20 20 20 20 73 74 72 69 6e 67 73 74 72 65 s.definition\n".......stringstre
17ec0 61 6d 20 73 73 3b 00 20 20 20 20 69 66 28 21 20 66 6f 72 6d 75 6c 61 54 79 70 65 2e 69 73 43 6f am.ss;.....if(!.formulaType.isCo
17ee0 6d 70 61 72 61 62 6c 65 54 6f 28 66 75 6e 63 54 79 70 65 29 29 20 7b 00 20 20 7d 20 65 6c 73 65 mparableTo(funcType)).{...}.else
17f00 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 74 68 72 6f 77 20 54 79 70 65 43 68 65 63 6b 69 6e .{.....}.......throw.TypeCheckin
17f20 67 45 78 63 65 70 74 69 6f 6e 28 66 75 6e 63 2c 20 73 73 2e 73 74 72 28 29 29 3b 00 20 20 20 20 gException(func,.ss.str());.....
17f40 20 20 20 20 20 3c 3c 20 22 42 6f 64 79 20 74 79 70 65 20 20 20 20 20 3a 20 22 20 3c 3c 20 66 6f .....<<."Body.type.....:.".<<.fo
17f60 72 6d 75 6c 61 54 79 70 65 3b 00 20 20 20 20 20 20 20 20 20 3c 3c 20 22 54 68 65 20 62 6f 64 79 rmulaType;..........<<."The.body
17f80 20 20 20 20 20 20 3a 20 22 20 3c 3c 20 66 6f 72 6d 75 6c 61 20 3c 3c 20 22 5c 6e 22 00 20 20 20 ......:.".<<.formula.<<."\n"....
17fa0 20 20 20 20 20 20 3c 3c 20 22 44 65 63 6c 61 72 65 64 20 74 79 70 65 20 3a 20 22 20 3c 3c 20 72 ......<<."Declared.type.:.".<<.r
17fc0 61 6e 67 65 54 79 70 65 20 3c 3c 20 22 5c 6e 22 00 20 20 20 20 20 20 20 20 20 3c 3c 20 22 54 68 angeType.<<."\n"..........<<."Th
17fe0 65 20 66 75 6e 63 74 69 6f 6e 20 20 3a 20 22 20 3c 3c 20 66 75 6e 63 20 3c 3c 20 22 5c 6e 22 00 e.function..:.".<<.func.<<."\n".
18000 61 64 00 00 18 00 00 00 98 01 00 00 00 10 00 00 59 00 00 00 00 00 00 00 ab 0f 00 00 4c 0f 00 00 ad..............Y...........L...
18020 42 0f 00 00 3a 0f 00 00 24 0f 00 00 06 0f 00 00 f4 0e 00 00 bb 0e 00 00 95 0e 00 00 81 0e 00 00 B...:...$.......................
18040 43 0e 00 00 18 0e 00 00 0c 0e 00 00 f6 0d 00 00 e7 0d 00 00 b5 0d 00 00 8d 0d 00 00 2b 0d 00 00 C...........................+...
18060 f6 0c 00 00 88 0c 00 00 7c 0c 00 00 4f 0c 00 00 29 0c 00 00 28 0c 00 00 03 0c 00 00 cc 0b 00 00 ........|...O...)...(...........
18080 92 0b 00 00 50 0b 00 00 0c 0b 00 00 00 0b 00 00 db 0a 00 00 95 0a 00 00 6a 0a 00 00 45 0a 00 00 ....P...................j...E...
180a0 0d 0a 00 00 c8 09 00 00 97 09 00 00 89 09 00 00 5e 09 00 00 0e 09 00 00 c8 08 00 00 bc 08 00 00 ................^...............
180c0 bb 08 00 00 9a 08 00 00 90 08 00 00 8f 08 00 00 49 08 00 00 0e 08 00 00 d4 07 00 00 d3 07 00 00 ................I...............
180e0 8b 07 00 00 4d 07 00 00 2e 07 00 00 1c 07 00 00 1b 07 00 00 fb 06 00 00 bf 06 00 00 be 06 00 00 ....M...........................
18100 7c 06 00 00 7b 06 00 00 60 06 00 00 3f 06 00 00 13 06 00 00 0b 06 00 00 0a 06 00 00 a7 05 00 00 |...{...`...?...................
18120 7f 05 00 00 35 05 00 00 2d 05 00 00 d9 04 00 00 79 04 00 00 3b 04 00 00 12 04 00 00 11 04 00 00 ....5...-.......y...;...........
18140 c9 03 00 00 a8 03 00 00 45 03 00 00 44 03 00 00 0a 03 00 00 9d 02 00 00 95 02 00 00 94 02 00 00 ........E...D...................
18160 87 02 00 00 6e 02 00 00 20 02 00 00 1f 02 00 00 eb 01 00 00 c0 01 00 00 98 01 00 00 00 00 00 00 ....n...........................
18180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 4e 6f ..............................No
181a0 64 65 42 75 69 6c 64 65 72 3c 3e 20 6e 62 28 6e 6f 64 65 2e 67 65 74 4b 69 6e 64 28 29 29 3b 00 deBuilder<>.nb(node.getKind());.
181c0 20 20 20 20 20 20 2f 2f 63 6f 75 74 20 3c 3c 20 22 63 6f 6e 73 20 3a 20 22 20 3c 3c 20 6e 6f 64 ......//cout.<<."cons.:.".<<.nod
181e0 65 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 44 65 62 75 67 28 22 65 78 70 61 6e 64 22 29 e.<<.endl;.......Debug("expand")
18200 20 3c 3c 20 22 63 6f 6e 73 20 3a 20 22 20 3c 3c 20 6e 6f 64 65 20 3c 3c 20 65 6e 64 6c 3b 00 00 .<<."cons.:.".<<.node.<<.endl;..
18220 20 20 20 20 20 20 2f 2f 20 52 65 63 6f 6e 73 74 72 75 63 74 20 74 68 65 20 6e 6f 64 65 20 66 72 ......//.Reconstruct.the.node.fr
18240 6f 6d 20 69 74 27 73 20 28 6e 6f 77 20 72 65 77 72 69 74 74 65 6e 29 20 63 68 69 6c 64 72 65 6e om.it's.(now.rewritten).children
18260 20 6f 6e 20 74 68 65 20 73 74 61 63 6b 00 20 20 20 20 20 20 2f 2f 20 57 6f 72 6b 69 6e 67 20 75 .on.the.stack.......//.Working.u
18280 70 77 61 72 64 73 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 00 20 20 20 20 20 20 7d 00 20 20 20 pwards.....}.else.{........}....
182a0 20 20 20 20 20 77 6f 72 6b 6c 69 73 74 2e 70 75 73 68 28 6d 61 6b 65 5f 74 72 69 70 6c 65 28 6e .....worklist.push(make_triple(n
182c0 6f 64 65 5b 69 5d 2c 20 6e 6f 64 65 5b 69 5d 2c 20 66 61 6c 73 65 29 29 3b 20 20 20 20 20 20 2f ode[i],.node[i],.false));....../
182e0 2f 20 52 65 77 72 69 74 65 20 74 68 65 20 63 68 69 6c 64 72 65 6e 20 6f 66 20 74 68 65 20 72 65 /.Rewrite.the.children.of.the.re
18300 73 75 6c 74 20 6f 6e 6c 79 00 20 20 20 20 20 20 66 6f 72 28 73 69 7a 65 5f 74 20 69 20 3d 20 30 sult.only.......for(size_t.i.=.0
18320 3b 20 69 20 3c 20 6e 6f 64 65 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 3b 20 2b 2b 69 ;.i.<.node.getNumChildren();.++i
18340 29 20 7b 00 00 20 20 20 20 20 20 77 6f 72 6b 6c 69 73 74 2e 70 75 73 68 28 6d 61 6b 65 5f 74 72 ).{........worklist.push(make_tr
18360 69 70 6c 65 28 4e 6f 64 65 28 6e 29 2c 20 6e 6f 64 65 2c 20 74 72 75 65 29 29 3b 20 20 20 20 20 iple(Node(n),.node,.true));.....
18380 20 20 20 20 20 20 20 2f 2f 20 4f 72 69 67 69 6e 61 6c 20 61 6e 64 20 72 65 77 72 69 74 74 65 6e .......//.Original.and.rewritten
183a0 20 72 65 73 75 6c 74 00 20 20 20 20 20 20 2f 2f 20 63 6f 6e 73 69 64 65 72 20 74 68 65 69 72 20 .result.......//.consider.their.
183c0 63 68 69 6c 64 72 65 6e 00 20 20 20 20 20 20 2f 2f 20 74 68 65 20 70 61 72 74 69 61 6c 20 66 75 children.......//.the.partial.fu
183e0 6e 63 74 69 6f 6e 73 20 63 61 6e 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 2c 20 69 6e 20 77 68 69 nctions.can.fall.through,.in.whi
18400 63 68 20 63 61 73 65 20 77 65 20 73 74 69 6c 6c 00 00 20 20 20 20 20 20 41 73 73 65 72 74 28 6e ch.case.we.still........Assert(n
18420 6f 64 65 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 20 3e 20 30 29 3b 00 20 20 20 20 20 ode.getNumChildren().>.0);......
18440 20 2f 2f 20 61 66 74 65 72 77 61 72 64 73 2e 20 20 49 66 20 74 68 69 73 20 68 61 70 70 65 6e 73 .//.afterwards...If.this.happens
18460 2c 20 72 65 6d 6f 76 65 20 74 68 69 73 20 61 73 73 65 72 74 69 6f 6e 2e 00 20 20 20 20 20 20 2f ,.remove.this.assertion......../
18480 2f 20 6d 69 67 68 74 20 69 6e 74 72 6f 64 75 63 65 20 61 20 6b 69 6e 64 20 77 68 69 63 68 20 63 /.might.introduce.a.kind.which.c
184a0 61 6e 20 68 61 76 65 20 63 68 69 6c 64 72 65 6e 20 62 65 66 6f 72 65 20 64 65 66 69 6e 69 74 69 an.have.children.before.definiti
184c0 6f 6e 20 65 78 70 61 6e 73 69 6f 6e 20 62 75 74 20 64 6f 65 73 6e 27 74 00 20 20 20 20 20 20 2f on.expansion.but.doesn't......./
184e0 2f 20 54 68 69 73 20 69 6e 76 61 72 69 61 6e 74 20 68 6f 6c 64 73 20 61 74 20 74 68 65 20 6d 6f /.This.invariant.holds.at.the.mo
18500 6d 65 6e 74 20 62 75 74 20 69 74 20 69 73 20 63 6f 6e 63 69 65 76 61 62 6c 65 20 74 68 61 74 20 ment.but.it.is.concievable.that.
18520 61 20 6e 65 77 20 74 68 65 6f 72 79 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 44 65 62 a.new.theory.......}.........Deb
18540 75 67 28 22 65 78 70 61 6e 64 22 29 20 3c 3c 20 22 55 6e 65 78 70 65 63 74 65 64 6c 79 20 6e 6f ug("expand").<<."Unexpectedly.no
18560 20 63 68 69 6c 64 72 65 6e 2e 2e 2e 22 20 3c 3c 20 6e 6f 64 65 20 3c 3c 20 65 6e 64 6c 3b 00 20 .children...".<<.node.<<.endl;..
18580 20 20 20 20 20 69 66 20 28 6e 6f 64 65 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 20 3d .....if.(node.getNumChildren().=
185a0 3d 20 30 29 20 7b 00 20 20 20 20 20 20 2f 2f 20 74 68 65 72 65 20 73 68 6f 75 6c 64 20 62 65 20 =.0).{.......//.there.should.be.
185c0 63 68 69 6c 64 72 65 6e 20 68 65 72 65 2c 20 6f 74 68 65 72 77 69 73 65 20 77 65 20 73 68 6f 72 children.here,.otherwise.we.shor
185e0 74 2d 63 69 72 63 75 69 74 65 64 20 61 20 72 65 73 75 6c 74 2d 70 75 73 68 2f 63 6f 6e 74 69 6e t-circuited.a.result-push/contin
18600 75 65 2c 20 61 62 6f 76 65 00 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 6e 6f 64 65 20 ue,.above........}.........node.
18620 3d 20 74 2d 3e 65 78 70 61 6e 64 44 65 66 69 6e 69 74 69 6f 6e 28 72 65 71 2c 20 6e 29 3b 00 20 =.t->expandDefinition(req,.n);..
18640 20 20 20 20 20 20 20 4c 6f 67 69 63 52 65 71 75 65 73 74 20 72 65 71 28 64 5f 73 6d 74 29 3b 00 .......LogicRequest.req(d_smt);.
18660 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 74 20 21 3d 20 4e 55 4c 4c 29 3b 00 00 20 20 20 20 ........Assert(t.!=.NULL);......
18680 20 20 20 20 74 68 65 6f 72 79 3a 3a 54 68 65 6f 72 79 2a 20 74 20 3d 20 64 5f 73 6d 74 2e 64 5f ....theory::Theory*.t.=.d_smt.d_
186a0 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 74 68 65 6f 72 79 4f 66 28 6e 6f 64 65 29 3b 00 00 20 theoryEngine->theoryOf(node);...
186c0 20 20 20 20 20 20 20 2f 2f 20 64 6f 20 6e 6f 74 20 64 6f 20 61 6e 79 20 74 68 65 6f 72 79 20 73 .......//.do.not.do.any.theory.s
186e0 74 75 66 66 20 69 66 20 65 78 70 61 6e 64 4f 6e 6c 79 20 69 73 20 74 72 75 65 00 20 20 20 20 20 tuff.if.expandOnly.is.true......
18700 20 7d 20 65 6c 73 65 20 69 66 28 21 20 65 78 70 61 6e 64 4f 6e 6c 79 29 20 7b 00 00 20 20 20 20 .}.else.if(!.expandOnly).{......
18720 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 2e 70 75 73 ....continue;.........result.pus
18740 68 28 65 78 70 61 6e 64 65 64 29 3b 00 20 20 20 20 20 20 20 20 63 61 63 68 65 5b 6e 5d 20 3d 20 h(expanded);.........cache[n].=.
18760 28 6e 20 3d 3d 20 65 78 70 61 6e 64 65 64 20 3f 20 4e 6f 64 65 3a 3a 6e 75 6c 6c 28 29 20 3a 20 (n.==.expanded.?.Node::null().:.
18780 65 78 70 61 6e 64 65 64 29 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 65 78 70 61 6e 64 65 64 expanded);.........Node.expanded
187a0 20 3d 20 65 78 70 61 6e 64 44 65 66 69 6e 69 74 69 6f 6e 73 28 69 6e 73 74 61 6e 63 65 2c 20 63 .=.expandDefinitions(instance,.c
187c0 61 63 68 65 2c 20 65 78 70 61 6e 64 4f 6e 6c 79 29 3b 00 00 20 20 20 20 20 20 20 20 44 65 62 75 ache,.expandOnly);..........Debu
187e0 67 28 22 65 78 70 61 6e 64 22 29 20 3c 3c 20 22 6d 61 64 65 20 3a 20 22 20 3c 3c 20 69 6e 73 74 g("expand").<<."made.:.".<<.inst
18800 61 6e 63 65 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ance.<<.endl;...................
18820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 2e 62 65 67 69 6e 28 29 2c 20 6e ....................n.begin(),.n
18840 2e 65 6e 64 28 29 29 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 69 6e 73 74 61 6e 63 65 20 3d .end());.........Node.instance.=
18860 20 66 6d 2e 73 75 62 73 74 69 74 75 74 65 28 66 6f 72 6d 61 6c 73 2e 62 65 67 69 6e 28 29 2c 20 .fm.substitute(formals.begin(),.
18880 66 6f 72 6d 61 6c 73 2e 65 6e 64 28 29 2c 00 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 formals.end(),..........}.......
188a0 20 20 20 20 66 6d 20 3d 20 64 65 66 2e 67 65 74 46 6f 72 6d 75 6c 61 28 29 3b 00 00 20 20 20 20 ....fm.=.def.getFormula();......
188c0 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......}.........................
188e0 20 20 20 20 3c 3c 20 22 20 20 20 20 20 20 20 22 20 3c 3c 20 64 65 66 2e 67 65 74 46 6f 72 6d 75 ....<<.".......".<<.def.getFormu
18900 6c 61 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 la().<<.endl;...................
18920 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 20 20 20 20 20 20 20 22 20 3c 3c 20 64 65 66 2e 67 65 ..........<<.".......".<<.def.ge
18940 74 46 75 6e 63 74 69 6f 6e 28 29 2e 67 65 74 54 79 70 65 28 29 20 3c 3c 20 65 6e 64 6c 00 20 20 tFunction().getType().<<.endl...
18960 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 65 78 70 61 6e 64 22 29 20 3c 3c 20 22 5d 22 ..........Debug("expand").<<."]"
18980 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 .<<.endl.............}..........
189a0 20 20 20 20 20 44 65 62 75 67 28 22 65 78 70 61 6e 64 22 29 20 3c 3c 20 66 6f 72 6d 61 6c 73 2e .....Debug("expand").<<.formals.
189c0 62 61 63 6b 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 73 74 72 back();.....................ostr
189e0 65 61 6d 5f 69 74 65 72 61 74 6f 72 3c 4e 6f 64 65 3e 28 44 65 62 75 67 28 22 65 78 70 61 6e 64 eam_iterator<Node>(Debug("expand
18a00 22 29 2c 20 22 2c 20 22 29 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 70 79 28 "),.",.").);...............copy(
18a20 20 66 6f 72 6d 61 6c 73 2e 62 65 67 69 6e 28 29 2c 20 66 6f 72 6d 61 6c 73 2e 65 6e 64 28 29 20 .formals.begin(),.formals.end().
18a40 2d 20 31 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 66 6f 72 6d 61 6c 73 2e 73 69 7a 65 -.1,.............if(formals.size
18a60 28 29 20 3e 20 30 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ().>.0).{.......................
18a80 20 20 20 20 20 20 3c 3c 20 22 20 20 20 20 20 20 20 5b 22 3b 00 20 20 20 20 20 20 20 20 20 20 20 ......<<.".......[";............
18aa0 20 44 65 62 75 67 28 22 65 78 70 61 6e 64 22 29 20 3c 3c 20 22 20 64 65 66 6e 3a 20 22 20 3c 3c .Debug("expand").<<.".defn:.".<<
18ac0 20 64 65 66 2e 67 65 74 46 75 6e 63 74 69 6f 6e 28 29 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 .def.getFunction().<<.endl......
18ae0 20 20 20 20 20 69 66 28 44 65 62 75 67 2e 69 73 4f 6e 28 22 65 78 70 61 6e 64 22 29 29 20 7b 00 .....if(Debug.isOn("expand")).{.
18b00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 65 ..........}.............Debug("e
18b20 78 70 61 6e 64 22 29 20 3c 3c 20 22 20 20 20 20 20 3a 20 5c 22 22 20 3c 3c 20 6e 61 6d 65 20 3c xpand").<<.".....:.\"".<<.name.<
18b40 3c 20 22 5c 22 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 <."\"".<<.endl;.............stri
18b60 6e 67 20 6e 61 6d 65 20 3d 20 66 75 6e 63 2e 67 65 74 41 74 74 72 69 62 75 74 65 28 65 78 70 72 ng.name.=.func.getAttribute(expr
18b80 3a 3a 56 61 72 4e 61 6d 65 41 74 74 72 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 44 65 ::VarNameAttr());.............De
18ba0 62 75 67 28 22 65 78 70 61 6e 64 22 29 20 3c 3c 20 22 20 66 75 6e 63 3a 20 22 20 3c 3c 20 66 75 bug("expand").<<.".func:.".<<.fu
18bc0 6e 63 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 65 nc.<<.endl;.............Debug("e
18be0 78 70 61 6e 64 22 29 20 3c 3c 20 22 66 6f 75 6e 64 3a 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 xpand").<<."found:.".<<.n.<<.end
18c00 6c 3b 00 20 20 20 20 20 20 20 20 20 20 69 66 28 44 65 62 75 67 2e 69 73 4f 6e 28 22 65 78 70 61 l;...........if(Debug.isOn("expa
18c20 6e 64 22 29 29 20 7b 00 00 20 20 20 20 20 20 20 20 20 20 66 6f 72 6d 61 6c 73 20 3d 20 64 65 66 nd")).{............formals.=.def
18c40 2e 67 65 74 46 6f 72 6d 61 6c 73 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 44 65 66 69 6e 65 64 .getFormals();...........Defined
18c60 46 75 6e 63 74 69 6f 6e 20 64 65 66 20 3d 20 28 2a 69 29 2e 73 65 63 6f 6e 64 3b 00 20 20 20 20 Function.def.=.(*i).second;.....
18c80 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 54 79 70 65 43 68 ......}.............throw.TypeCh
18ca0 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 6e 2e 74 6f 45 78 70 72 28 29 2c 20 73 74 72 69 eckingException(n.toExpr(),.stri
18cc0 6e 67 28 22 55 6e 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 3a 20 60 22 29 20 2b 20 66 75 ng("Undefined.function:.`").+.fu
18ce0 6e 63 2e 74 6f 53 74 72 69 6e 67 28 29 20 2b 20 22 27 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 nc.toString().+."'");...........
18d00 69 66 28 69 20 3d 3d 20 64 5f 73 6d 74 2e 64 5f 64 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 if(i.==.d_smt.d_definedFunctions
18d20 2d 3e 65 6e 64 28 29 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 53 6d 74 45 6e 67 69 6e 65 3a 3a ->end()).{...........SmtEngine::
18d40 44 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 4d 61 70 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 DefinedFunctionMap::const_iterat
18d60 6f 72 20 69 20 3d 20 64 5f 73 6d 74 2e 64 5f 64 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 2d or.i.=.d_smt.d_definedFunctions-
18d80 3e 66 69 6e 64 28 66 75 6e 63 29 3b 00 20 20 20 20 20 20 20 20 20 20 54 4e 6f 64 65 20 66 75 6e >find(func);...........TNode.fun
18da0 63 20 3d 20 6e 2e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 2f c.=.n.getOperator();.........../
18dc0 2f 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6f 66 20 61 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 /.application.of.a.user-defined.
18de0 73 79 6d 62 6f 6c 00 20 20 20 20 20 20 20 20 7d 65 6c 73 65 7b 00 20 20 20 20 20 20 20 20 20 20 symbol.........}else{...........
18e00 66 6d 20 3d 20 6f 70 5b 31 5d 3b 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 fm.=.op[1];...........}.........
18e20 20 20 20 20 66 6f 72 6d 61 6c 73 2e 70 75 73 68 5f 62 61 63 6b 28 20 6f 70 5b 30 5d 5b 69 5d 20 ....formals.push_back(.op[0][i].
18e40 29 3b 00 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 20 75 6e 73 69 67 6e 65 64 20 69 3d 30 3b 20 );...........for(.unsigned.i=0;.
18e60 69 3c 6f 70 5b 30 5d 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 3b 20 69 2b 2b 20 29 7b i<op[0].getNumChildren();.i++.){
18e80 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6c 61 6d 62 64 61 00 20 20 20 20 20 20 20 20 20 20 54 ...........//.lambda...........T
18ea0 4e 6f 64 65 20 6f 70 20 3d 20 6e 2e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 3b 00 20 20 20 20 20 Node.op.=.n.getOperator();......
18ec0 20 20 20 69 66 28 20 6e 2e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 2e 67 65 74 4b 69 6e 64 28 29 ...if(.n.getOperator().getKind()
18ee0 20 3d 3d 20 6b 69 6e 64 3a 3a 4c 41 4d 42 44 41 20 29 7b 00 20 20 20 20 20 20 20 20 54 4e 6f 64 .==.kind::LAMBDA.){.........TNod
18f00 65 20 66 6d 3b 00 20 20 20 20 20 20 20 20 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 20 66 6f 72 6d 61 e.fm;.........vector<Node>.forma
18f20 6c 73 3b 00 20 20 20 20 20 20 69 66 20 28 64 6f 45 78 70 61 6e 64 29 20 7b 00 20 20 20 20 20 20 ls;.......if.(doExpand).{.......
18f40 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 64 6f 45 78 70 61 6e 64 20 3d }.........}...........doExpand.=
18f60 20 6b 3d 3d 6b 69 6e 64 3a 3a 41 50 50 4c 59 5f 55 46 20 26 26 20 64 5f 73 6d 74 2e 69 73 44 65 .k==kind::APPLY_UF.&&.d_smt.isDe
18f80 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 28 20 6e 2e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 2e 74 finedFunction(.n.getOperator().t
18fa0 6f 45 78 70 72 28 29 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 2f 2f 65 78 70 61 6e 64 20 69 66 oExpr().);...........//expand.if
18fc0 20 77 65 20 68 61 76 65 20 69 6e 66 65 72 72 65 64 20 61 6e 20 6f 70 65 72 61 74 6f 72 20 63 6f .we.have.inferred.an.operator.co
18fe0 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 61 20 64 65 66 69 6e 65 64 20 66 75 6e 63 74 69 6f 6e 00 rresponds.to.a.defined.function.
19000 61 64 00 00 1c 00 00 00 dc 01 00 00 00 10 00 00 69 00 00 00 00 00 00 00 c0 0f 00 00 7c 0f 00 00 ad..............i...........|...
19020 41 0f 00 00 1f 0f 00 00 17 0f 00 00 dd 0e 00 00 bc 0e 00 00 96 0e 00 00 80 0e 00 00 4d 0e 00 00 A...........................M...
19040 11 0e 00 00 f9 0d 00 00 f1 0d 00 00 e0 0d 00 00 77 0d 00 00 5e 0d 00 00 58 0d 00 00 3a 0d 00 00 ................w...^...X...:...
19060 39 0d 00 00 15 0d 00 00 14 0d 00 00 fd 0c 00 00 fb 0c 00 00 fa 0c 00 00 e4 0c 00 00 a7 0c 00 00 9...............................
19080 a6 0c 00 00 80 0c 00 00 62 0c 00 00 36 0c 00 00 f5 0b 00 00 f4 0b 00 00 bf 0b 00 00 81 0b 00 00 ........b...6...................
190a0 49 0b 00 00 08 0b 00 00 04 0b 00 00 02 0b 00 00 01 0b 00 00 d7 0a 00 00 b9 0a 00 00 8d 0a 00 00 I...............................
190c0 8c 0a 00 00 3b 0a 00 00 3a 0a 00 00 f5 09 00 00 f4 09 00 00 bc 09 00 00 bb 09 00 00 95 09 00 00 ....;...:.......................
190e0 75 09 00 00 32 09 00 00 0a 09 00 00 f3 08 00 00 e6 08 00 00 be 08 00 00 b8 08 00 00 b4 08 00 00 u...2...........................
19100 b2 08 00 00 b1 08 00 00 7d 08 00 00 27 08 00 00 06 08 00 00 d5 07 00 00 95 07 00 00 5b 07 00 00 ........}...'...............[...
19120 39 07 00 00 fc 06 00 00 f6 06 00 00 f2 06 00 00 f0 06 00 00 ef 06 00 00 c6 06 00 00 98 06 00 00 9...............................
19140 6c 06 00 00 4e 06 00 00 4d 06 00 00 09 06 00 00 f8 05 00 00 f4 05 00 00 f3 05 00 00 9c 05 00 00 l...N...M.......................
19160 9b 05 00 00 52 05 00 00 1a 05 00 00 c4 04 00 00 c0 04 00 00 bf 04 00 00 9f 04 00 00 84 04 00 00 ....R...........................
19180 5f 04 00 00 5b 04 00 00 3e 04 00 00 3d 04 00 00 0c 04 00 00 ca 03 00 00 90 03 00 00 58 03 00 00 _...[...>...=...............X...
191a0 15 03 00 00 f0 02 00 00 af 02 00 00 9f 02 00 00 99 02 00 00 2f 02 00 00 dc 01 00 00 00 00 00 00 ..................../...........
191c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 ................................
191e0 44 65 62 75 67 28 22 63 6f 72 65 73 22 29 20 3c 3c 20 22 64 5f 70 72 6f 70 61 67 61 74 6f 72 20 Debug("cores").<<."d_propagator.
19200 61 73 73 65 72 74 54 72 75 65 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d assertTrue:.".<<.d_assertions[i]
19220 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 .<<.std::endl;.....Trace("simpli
19240 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e 43 6c fy").<<."SmtEnginePrivate::nonCl
19260 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 28 29 3a 20 61 73 73 65 72 74 69 6e 67 20 22 20 3c 3c 20 ausalSimplify():.asserting.".<<.
19280 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 7d 00 20 d_assertions[i].<<.endl;.....}..
192a0 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 20 20 20 20 69 66 20 28 64 5f 73 75 62 73 74 69 74 .....continue;.....if.(d_substit
192c0 75 74 69 6f 6e 73 49 6e 64 65 78 20 3e 20 30 20 26 26 20 69 20 3d 3d 20 64 5f 73 75 62 73 74 69 utionsIndex.>.0.&&.i.==.d_substi
192e0 74 75 74 69 6f 6e 73 49 6e 64 65 78 29 20 7b 00 20 20 20 20 2f 2f 20 44 6f 6e 27 74 20 72 65 70 tutionsIndex).{.....//.Don't.rep
19300 72 6f 63 65 73 73 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 00 20 20 20 20 41 73 73 65 72 74 28 rocess.substitutions.....Assert(
19320 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 Rewriter::rewrite(d_assertions[i
19340 5d 29 20 3d 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 29 3b 00 20 20 66 6f 72 20 28 75 ]).==.d_assertions[i]);...for.(u
19360 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e nsigned.i.=.0;.i.<.d_assertions.
19380 73 69 7a 65 28 29 3b 20 2b 2b 20 69 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 size();.++.i).{.................
193a0 20 20 20 20 3c 3c 20 22 61 73 73 65 72 74 69 6e 67 20 74 6f 20 70 72 6f 70 61 67 61 74 6f 72 22 ....<<."asserting.to.propagator"
193c0 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c .<<.endl;...Trace("simplify").<<
193e0 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e 43 6c 61 75 73 61 6c 53 69 ."SmtEnginePrivate::nonClausalSi
19400 6d 70 6c 69 66 79 28 29 3a 20 22 00 20 20 2f 2f 20 41 73 73 65 72 74 20 61 6c 6c 20 74 68 65 20 mplify():."...//.Assert.all.the.
19420 61 73 73 65 72 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 70 72 6f 70 61 67 61 74 6f 72 00 00 20 20 assertions.to.the.propagator....
19440 64 5f 70 72 6f 70 61 67 61 74 6f 72 2e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 00 20 20 7d 00 20 d_propagator.initialize();...}..
19460 20 20 20 64 5f 70 72 6f 70 61 67 61 74 6f 72 4e 65 65 64 73 46 69 6e 69 73 68 20 3d 20 66 61 6c ...d_propagatorNeedsFinish.=.fal
19480 73 65 3b 00 20 20 20 20 64 5f 70 72 6f 70 61 67 61 74 6f 72 2e 66 69 6e 69 73 68 28 29 3b 00 20 se;.....d_propagator.finish();..
194a0 20 69 66 28 64 5f 70 72 6f 70 61 67 61 74 6f 72 4e 65 65 64 73 46 69 6e 69 73 68 29 20 7b 00 00 .if(d_propagatorNeedsFinish).{..
194c0 20 20 7d 00 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 41 73 ..}.....Trace("simplify").<<."As
194e0 73 65 72 74 69 6f 6e 20 23 22 20 3c 3c 20 69 20 3c 3c 20 22 20 3a 20 22 20 3c 3c 20 64 5f 61 73 sertion.#".<<.i.<<.".:.".<<.d_as
19500 73 65 72 74 69 6f 6e 73 5b 69 5d 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 66 6f 72 20 sertions[i].<<.std::endl;...for.
19520 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e (unsigned.i.=.0;.i.<.d_assertion
19540 73 2e 73 69 7a 65 28 29 3b 20 2b 2b 20 69 29 20 7b 00 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c s.size();.++.i).{...Trace("simpl
19560 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e 43 ify").<<."SmtEnginePrivate::nonC
19580 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 54 69 lausalSimplify()".<<.endl;....Ti
195a0 6d 65 72 53 74 61 74 3a 3a 43 6f 64 65 54 69 6d 65 72 20 6e 6f 6e 63 6c 61 75 73 61 6c 54 69 6d merStat::CodeTimer.nonclausalTim
195c0 65 72 28 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 6e 6f 6e 63 6c 61 75 73 61 6c 53 69 er(d_smt.d_stats->d_nonclausalSi
195e0 6d 70 6c 69 66 69 63 61 74 69 6f 6e 54 69 6d 65 29 3b 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 mplificationTime);....}.....retu
19600 72 6e 20 74 72 75 65 3b 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 rn.true;...if(options::unsatCore
19620 73 28 29 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 66 65 77 65 72 50 72 65 70 72 6f 63 65 73 73 69 s().||.options::fewerPreprocessi
19640 6e 67 48 6f 6c 65 73 28 29 29 20 7b 00 00 20 20 64 5f 73 6d 74 2e 66 69 6e 61 6c 4f 70 74 69 6f ngHoles()).{....d_smt.finalOptio
19660 6e 73 41 72 65 53 65 74 28 29 3b 00 20 20 73 70 65 6e 64 52 65 73 6f 75 72 63 65 28 6f 70 74 69 nsAreSet();...spendResource(opti
19680 6f 6e 73 3a 3a 70 72 65 70 72 6f 63 65 73 73 53 74 65 70 28 29 29 3b 00 62 6f 6f 6c 20 53 6d 74 ons::preprocessStep());.bool.Smt
196a0 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e 43 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 EnginePrivate::nonClausalSimplif
196c0 79 28 29 20 7b 00 2f 2f 20 72 65 74 75 72 6e 73 20 66 61 6c 73 65 20 69 66 20 69 74 20 6c 65 61 y().{.//.returns.false.if.it.lea
196e0 72 6e 73 20 61 20 63 6f 6e 66 6c 69 63 74 00 00 7d 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 rns.a.conflict..}...}.....}.....
19700 20 20 44 75 6d 70 28 22 61 73 73 65 72 74 69 6f 6e 73 22 29 20 3c 3c 20 41 73 73 65 72 74 43 6f ..Dump("assertions").<<.AssertCo
19720 6d 6d 61 6e 64 28 45 78 70 72 28 6e 2e 74 6f 45 78 70 72 28 29 29 29 3b 00 20 20 20 20 20 20 54 mmand(Expr(n.toExpr()));.......T
19740 4e 6f 64 65 20 6e 20 3d 20 61 73 73 65 72 74 69 6f 6e 4c 69 73 74 5b 69 5d 3b 00 20 20 20 20 66 Node.n.=.assertionList[i];.....f
19760 6f 72 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 61 73 73 65 72 74 69 6f 6e or(unsigned.i.=.0;.i.<.assertion
19780 4c 69 73 74 2e 73 69 7a 65 28 29 3b 20 2b 2b 20 69 29 20 7b 00 20 20 20 20 2f 2f 20 50 75 73 68 List.size();.++.i).{.....//.Push
197a0 20 74 68 65 20 73 69 6d 70 6c 69 66 69 65 64 20 61 73 73 65 72 74 69 6f 6e 73 20 74 6f 20 74 68 .the.simplified.assertions.to.th
197c0 65 20 64 75 6d 70 20 6f 75 74 70 75 74 20 73 74 72 65 61 6d 00 20 20 20 20 20 20 44 75 6d 70 2e e.dump.output.stream.......Dump.
197e0 69 73 4f 6e 28 73 74 72 69 6e 67 28 22 61 73 73 65 72 74 69 6f 6e 73 3a 22 29 20 2b 20 6b 65 79 isOn(string("assertions:").+.key
19800 29 20 29 20 7b 00 20 20 69 66 28 20 44 75 6d 70 2e 69 73 4f 6e 28 22 61 73 73 65 72 74 69 6f 6e ).).{...if(.Dump.isOn("assertion
19820 73 22 29 20 26 26 00 73 74 61 74 69 63 20 76 6f 69 64 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e s").&&.static.void.dumpAssertion
19840 73 28 63 6f 6e 73 74 20 63 68 61 72 2a 20 6b 65 79 2c 20 63 6f 6e 73 74 20 41 73 73 65 72 74 69 s(const.char*.key,.const.Asserti
19860 6f 6e 50 69 70 65 6c 69 6e 65 26 20 61 73 73 65 72 74 69 6f 6e 4c 69 73 74 29 20 7b 00 2f 2f 20 onPipeline&.assertionList).{.//.
19880 64 6f 20 64 75 6d 70 69 6e 67 20 28 62 65 66 6f 72 65 2f 61 66 74 65 72 20 61 6e 79 20 70 72 65 do.dumping.(before/after.any.pre
198a0 70 72 6f 63 65 73 73 69 6e 67 20 70 61 73 73 29 00 00 7d 00 20 20 7d 00 20 20 20 20 7d 00 20 20 processing.pass)..}...}.....}...
198c0 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 70 6c 61 63 65 28 69 2c 20 6c 65 61 72 ....d_assertions.replace(i,.lear
198e0 6e 65 64 29 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 6c 65 61 72 6e 65 64 ned);.....}.else.{.......learned
19900 2e 63 6c 65 61 72 28 29 3b 00 20 20 20 20 69 66 28 6c 65 61 72 6e 65 64 2e 67 65 74 4e 75 6d 43 .clear();.....if(learned.getNumC
19920 68 69 6c 64 72 65 6e 28 29 20 3d 3d 20 31 29 20 7b 00 20 20 20 20 64 5f 73 6d 74 2e 64 5f 74 68 hildren().==.1).{.....d_smt.d_th
19940 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 70 70 53 74 61 74 69 63 4c 65 61 72 6e 28 64 5f 61 73 73 65 eoryEngine->ppStaticLearn(d_asse
19960 72 74 69 6f 6e 73 5b 69 5d 2c 20 6c 65 61 72 6e 65 64 29 3b 00 20 20 20 20 6c 65 61 72 6e 65 64 rtions[i],.learned);.....learned
19980 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 3b 00 20 20 20 20 4e 6f 64 65 42 75 69 .<<.d_assertions[i];.....NodeBui
199a0 6c 64 65 72 3c 3e 20 6c 65 61 72 6e 65 64 28 6b 69 6e 64 3a 3a 41 4e 44 29 3b 00 00 20 20 66 6f lder<>.learned(kind::AND);....fo
199c0 72 20 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 69 r.(unsigned.i.=.0;.i.<.d_asserti
199e0 6f 6e 73 2e 73 69 7a 65 28 29 3b 20 2b 2b 20 69 29 20 7b 00 00 20 20 54 72 61 63 65 28 22 73 69 ons.size();.++.i).{....Trace("si
19a00 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 mplify").<<."SmtEnginePrivate::s
19a20 74 61 74 69 63 4c 65 61 72 6e 69 6e 67 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 54 69 6d taticLearning()".<<.endl;....Tim
19a40 65 72 53 74 61 74 3a 3a 43 6f 64 65 54 69 6d 65 72 20 73 74 61 74 69 63 4c 65 61 72 6e 69 6e 67 erStat::CodeTimer.staticLearning
19a60 54 69 6d 65 72 28 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 73 74 61 74 69 63 4c 65 61 Timer(d_smt.d_stats->d_staticLea
19a80 72 6e 69 6e 67 54 69 6d 65 29 3b 00 00 20 20 73 70 65 6e 64 52 65 73 6f 75 72 63 65 28 6f 70 74 rningTime);....spendResource(opt
19aa0 69 6f 6e 73 3a 3a 70 72 65 70 72 6f 63 65 73 73 53 74 65 70 28 29 29 3b 00 20 20 64 5f 73 6d 74 ions::preprocessStep());...d_smt
19ac0 2e 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 29 3b 00 76 6f 69 64 20 53 6d 74 45 .finalOptionsAreSet();.void.SmtE
19ae0 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 74 61 74 69 63 4c 65 61 72 6e 69 6e 67 28 29 20 7b nginePrivate::staticLearning().{
19b00 00 00 7d 00 20 20 7d 00 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 70 6c 61 63 65 ..}...}.....d_assertions.replace
19b20 28 69 2c 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 64 5f 61 73 73 65 72 74 69 6f (i,.Rewriter::rewrite(d_assertio
19b40 6e 73 5b 69 5d 29 29 3b 00 20 20 66 6f 72 20 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 ns[i]));...for.(unsigned.i.=.0;.
19b60 69 20 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 20 2b 2b 20 69 29 20 7b i.<.d_assertions.size();.++.i).{
19b80 00 20 20 64 5f 69 74 65 52 65 6d 6f 76 65 72 2e 72 75 6e 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 ...d_iteRemover.run(d_assertions
19ba0 2e 72 65 66 28 29 2c 20 64 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 2c 20 74 72 75 65 29 3b 00 20 .ref(),.d_iteSkolemMap,.true);..
19bc0 20 2f 2f 20 52 65 6d 6f 76 65 20 61 6c 6c 20 6f 66 20 74 68 65 20 49 54 45 20 6f 63 63 75 72 72 .//.Remove.all.of.the.ITE.occurr
19be0 65 6e 63 65 73 20 61 6e 64 20 6e 6f 72 6d 61 6c 69 7a 65 00 00 20 20 54 72 61 63 65 28 22 73 69 ences.and.normalize....Trace("si
19c00 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 72 mplify").<<."SmtEnginePrivate::r
19c20 65 6d 6f 76 65 49 54 45 73 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 73 70 65 6e 64 52 65 73 emoveITEs()".<<.endl;...spendRes
19c40 6f 75 72 63 65 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 70 72 6f 63 65 73 73 53 74 65 70 28 29 29 ource(options::preprocessStep())
19c60 3b 00 20 20 64 5f 73 6d 74 2e 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 29 3b 00 ;...d_smt.finalOptionsAreSet();.
19c80 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 72 65 6d 6f 76 65 49 54 45 void.SmtEnginePrivate::removeITE
19ca0 73 28 29 20 7b 00 00 74 79 70 65 64 65 66 20 73 74 64 3a 3a 68 61 73 68 5f 6d 61 70 3c 4e 6f 64 s().{..typedef.std::hash_map<Nod
19cc0 65 2c 20 4e 6f 64 65 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e 3e 20 4e 6f 64 65 4d e,.Node,.NodeHashFunction>.NodeM
19ce0 61 70 3b 00 2f 2f 54 4f 44 4f 3a 20 63 6c 65 61 6e 20 74 68 69 73 20 75 70 00 00 7d 00 20 20 72 ap;.//TODO:.clean.this.up..}...r
19d00 65 74 75 72 6e 20 72 65 73 75 6c 74 2e 74 6f 70 28 29 3b 00 00 20 20 41 6c 77 61 79 73 41 73 73 eturn.result.top();....AlwaysAss
19d20 65 72 74 28 72 65 73 75 6c 74 2e 73 69 7a 65 28 29 20 3d 3d 20 31 29 3b 00 00 20 20 7d 20 77 68 ert(result.size().==.1);....}.wh
19d40 69 6c 65 28 21 77 6f 72 6b 6c 69 73 74 2e 65 6d 70 74 79 28 29 29 3b 00 20 20 20 20 7d 00 20 20 ile(!worklist.empty());.....}...
19d60 20 20 20 20 72 65 73 75 6c 74 2e 70 75 73 68 28 6e 6f 64 65 29 3b 00 20 20 20 20 20 20 63 61 63 ....result.push(node);.......cac
19d80 68 65 5b 6e 5d 20 3d 20 6e 20 3d 3d 20 6e 6f 64 65 20 3f 20 4e 6f 64 65 3a 3a 6e 75 6c 6c 28 29 he[n].=.n.==.node.?.Node::null()
19da0 20 3a 20 6e 6f 64 65 3b 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4f 6e 6c 79 20 63 61 63 68 65 .:.node;...........//.Only.cache
19dc0 20 6f 6e 63 65 20 61 6c 6c 20 73 75 62 74 65 72 6d 73 20 61 72 65 20 65 78 70 61 6e 64 65 64 00 .once.all.subterms.are.expanded.
19de0 20 20 20 20 20 20 6e 6f 64 65 20 3d 20 6e 62 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 ......node.=.nb;.......}........
19e00 20 6e 62 20 3c 3c 20 65 78 70 61 6e 64 65 64 3b 00 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 .nb.<<.expanded;.........Debug("
19e20 65 78 70 61 6e 64 22 29 20 3c 3c 20 22 65 78 63 68 6c 64 20 3a 20 22 20 3c 3c 20 65 78 70 61 6e expand").<<."exchld.:.".<<.expan
19e40 64 65 64 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 2f 2f 63 6f 75 74 20 3c 3c 20 22 ded.<<.endl;.........//cout.<<."
19e60 65 78 63 68 6c 64 20 3a 20 22 20 3c 3c 20 65 78 70 61 6e 64 65 64 20 3c 3c 20 65 6e 64 6c 3b 00 exchld.:.".<<.expanded.<<.endl;.
19e80 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 2e 70 6f 70 28 29 3b 00 20 20 20 20 20 20 20 20 4e 6f ........result.pop();.........No
19ea0 64 65 20 65 78 70 61 6e 64 65 64 20 3d 20 72 65 73 75 6c 74 2e 74 6f 70 28 29 3b 00 20 20 20 20 de.expanded.=.result.top();.....
19ec0 20 20 20 20 41 73 73 65 72 74 28 21 72 65 73 75 6c 74 2e 65 6d 70 74 79 28 29 29 3b 00 20 20 20 ....Assert(!result.empty());....
19ee0 20 20 20 66 6f 72 28 73 69 7a 65 5f 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 6e 6f 64 65 2e 67 65 ...for(size_t.i.=.0;.i.<.node.ge
19f00 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 3b 20 2b 2b 69 29 20 7b 00 20 20 20 20 20 20 7d 00 20 tNumChildren();.++i).{.......}..
19f20 20 20 20 20 20 20 20 6e 62 20 3c 3c 20 6e 6f 64 65 2e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 3b .......nb.<<.node.getOperator();
19f40 00 20 20 20 20 20 20 20 20 2f 2f 63 6f 75 74 20 3c 3c 20 22 6f 70 20 20 20 3a 20 22 20 3c 3c 20 .........//cout.<<."op...:.".<<.
19f60 6e 6f 64 65 2e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 node.getOperator().<<.endl;.....
19f80 20 20 20 20 44 65 62 75 67 28 22 65 78 70 61 6e 64 22 29 20 3c 3c 20 22 6f 70 20 20 20 3a 20 22 ....Debug("expand").<<."op...:."
19fa0 20 3c 3c 20 6e 6f 64 65 2e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 .<<.node.getOperator().<<.endl;.
19fc0 20 20 20 20 20 20 69 66 28 6e 6f 64 65 2e 67 65 74 4d 65 74 61 4b 69 6e 64 28 29 20 3d 3d 20 6b ......if(node.getMetaKind().==.k
19fe0 69 6e 64 3a 3a 6d 65 74 61 6b 69 6e 64 3a 3a 50 41 52 41 4d 45 54 45 52 49 5a 45 44 29 20 7b 00 ind::metakind::PARAMETERIZED).{.
1a000 61 64 00 00 17 00 00 00 77 01 00 00 00 10 00 00 51 00 00 00 00 00 00 00 d2 0f 00 00 ce 0f 00 00 ad......w.......Q...............
1a020 cd 0f 00 00 8b 0f 00 00 5d 0f 00 00 3b 0f 00 00 12 0f 00 00 ce 0e 00 00 86 0e 00 00 41 0e 00 00 ........]...;...............A...
1a040 f6 0d 00 00 dc 0d 00 00 b3 0d 00 00 8f 0d 00 00 7d 0d 00 00 79 0d 00 00 78 0d 00 00 77 0d 00 00 ................}...y...x...w...
1a060 01 0d 00 00 c8 0c 00 00 8f 0c 00 00 5a 0c 00 00 39 0c 00 00 27 0c 00 00 d2 0b 00 00 90 0b 00 00 ............Z...9...'...........
1a080 56 0b 00 00 15 0b 00 00 c8 0a 00 00 73 0a 00 00 2e 0a 00 00 ff 09 00 00 c2 09 00 00 bc 09 00 00 V...........s...................
1a0a0 58 09 00 00 49 09 00 00 03 09 00 00 d2 08 00 00 c3 08 00 00 bb 08 00 00 90 08 00 00 53 08 00 00 X...I.......................S...
1a0c0 4d 08 00 00 e7 07 00 00 bb 07 00 00 97 07 00 00 6a 07 00 00 25 07 00 00 13 07 00 00 04 07 00 00 M...............j...%...........
1a0e0 bb 06 00 00 73 06 00 00 45 06 00 00 00 06 00 00 d8 05 00 00 ba 05 00 00 68 05 00 00 40 05 00 00 ....s...E...............h...@...
1a100 2a 05 00 00 22 05 00 00 1c 05 00 00 1b 05 00 00 d8 04 00 00 af 04 00 00 6b 04 00 00 2c 04 00 00 *..."...................k...,...
1a120 2b 04 00 00 02 04 00 00 bd 03 00 00 bc 03 00 00 a1 03 00 00 73 03 00 00 45 03 00 00 fd 02 00 00 +...................s...E.......
1a140 bb 02 00 00 66 02 00 00 2f 02 00 00 d1 01 00 00 a6 01 00 00 8b 01 00 00 77 01 00 00 00 00 00 00 ....f.../...............w.......
1a160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 2f .............................../
1a180 2f 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 62 /........}.........//..........b
1a1a0 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 69 66 20 28 65 71 75 61 reak;.........//........if.(equa
1a1c0 74 69 6f 6e 73 2e 65 6d 70 74 79 28 29 29 20 7b 00 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 tions.empty()).{.........//.....
1a1e0 20 20 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 2e 73 69 6d 70 6c 69 66 79 ...constantPropagations.simplify
1a200 4c 48 53 28 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2c 20 65 71 75 LHS(d_topLevelSubstitutions,.equ
1a220 61 74 69 6f 6e 73 2c 20 74 72 75 65 29 3b 00 20 20 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 20 ations,.true);.........//.......
1a240 20 76 65 63 74 6f 72 3c 70 61 69 72 3c 4e 6f 64 65 2c 20 4e 6f 64 65 3e 20 3e 20 65 71 75 61 74 .vector<pair<Node,.Node>.>.equat
1a260 69 6f 6e 73 3b 00 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 52 65 77 72 69 74 65 72 3a 3a 72 ions;.........Assert(Rewriter::r
1a280 65 77 72 69 74 65 28 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 6c 65 ewrite(newSubstitutions.apply(le
1a2a0 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 29 2e 69 73 43 6f 6e 73 74 28 29 29 3b 00 20 20 20 20 20 arnedLiteral)).isConst());......
1a2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 73 6f 6c 76 65 64 20 .....................<<."solved.
1a2e0 22 20 3c 3c 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 ".<<.learnedLiteral.<<.endl;....
1a300 20 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e .....Trace("simplify").<<."SmtEn
1a320 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e 43 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 28 ginePrivate::nonClausalSimplify(
1a340 29 3a 20 22 00 20 20 20 20 20 20 20 20 2f 2f 20 54 68 65 20 6c 69 74 65 72 61 6c 20 73 68 6f 75 ):.".........//.The.literal.shou
1a360 6c 64 20 72 65 77 72 69 74 65 20 74 6f 20 74 72 75 65 00 20 20 20 20 20 20 63 61 73 65 20 54 68 ld.rewrite.to.true.......case.Th
1a380 65 6f 72 79 3a 3a 50 50 5f 41 53 53 45 52 54 5f 53 54 41 54 55 53 5f 53 4f 4c 56 45 44 3a 20 7b eory::PP_ASSERT_STATUS_SOLVED:.{
1a3a0 00 20 20 20 20 73 77 69 74 63 68 20 28 73 6f 6c 76 65 53 74 61 74 75 73 29 20 7b 00 00 20 20 20 .....switch.(solveStatus).{.....
1a3c0 20 20 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 73 6f 6c 76 65 28 6c ...d_smt.d_theoryEngine->solve(l
1a3e0 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 2c 20 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 29 earnedLiteral,.newSubstitutions)
1a400 3b 00 20 20 20 20 54 68 65 6f 72 79 3a 3a 50 50 41 73 73 65 72 74 53 74 61 74 75 73 20 73 6f 6c ;.....Theory::PPAssertStatus.sol
1a420 76 65 53 74 61 74 75 73 20 3d 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 veStatus.=......................
1a440 20 20 3c 3c 20 22 73 6f 6c 76 69 6e 67 20 22 20 3c 3c 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 ..<<."solving.".<<.learnedLitera
1a460 6c 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 l.<<.endl;.....Trace("simplify")
1a480 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e 43 6c 61 75 73 61 .<<."SmtEnginePrivate::nonClausa
1a4a0 6c 53 69 6d 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 20 2f 2f 20 73 75 62 73 74 69 74 75 74 69 lSimplify():.".....//.substituti
1a4c0 6f 6e 73 20 74 6f 20 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 00 20 20 20 20 2f 2f 20 53 ons.to.newSubstitutions.....//.S
1a4e0 6f 6c 76 65 20 69 74 20 77 69 74 68 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 olve.it.with.the.corresponding.t
1a500 68 65 6f 72 79 2c 20 70 6f 73 73 69 62 6c 79 20 61 64 64 69 6e 67 20 6e 65 77 00 00 20 20 20 20 heory,.possibly.adding.new......
1a520 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 }.......}.........return.false;.
1a540 20 20 20 20 20 20 20 20 64 5f 70 72 6f 70 61 67 61 74 6f 72 4e 65 65 64 73 46 69 6e 69 73 68 20 ........d_propagatorNeedsFinish.
1a560 3d 20 74 72 75 65 3b 00 20 20 20 20 20 20 20 20 61 64 64 46 6f 72 6d 75 6c 61 28 4e 6f 64 65 4d =.true;.........addFormula(NodeM
1a580 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 6f 6e 73 74 3c 62 6f 6f anager::currentNM()->mkConst<boo
1a5a0 6c 3e 28 66 61 6c 73 65 29 2c 20 66 61 6c 73 65 2c 20 66 61 6c 73 65 29 3b 00 20 20 20 20 20 20 l>(false),.false,.false);.......
1a5c0 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 63 6c 65 61 72 28 29 3b 00 20 20 20 20 20 20 20 20 ..d_assertions.clear();.........
1a5e0 41 73 73 65 72 74 28 21 6f 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 73 28 29 29 3b 00 Assert(!options::unsatCores());.
1a600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 64 5f 6e ..........................<<.d_n
1a620 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 69 5d 20 3c 3c 20 65 onClausalLearnedLiterals[i].<<.e
1a640 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ndl;...........................<
1a660 3c 20 22 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 22 00 20 20 20 20 20 20 20 20 54 72 61 63 65 <."conflict.with.".........Trace
1a680 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 ("simplify").<<."SmtEnginePrivat
1a6a0 65 3a 3a 6e 6f 6e 43 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 20 20 e::nonClausalSimplify():."......
1a6c0 20 20 20 2f 2f 20 49 66 20 74 68 65 20 6c 65 61 72 6e 65 64 20 6c 69 74 65 72 61 6c 20 73 69 6d ...//.If.the.learned.literal.sim
1a6e0 70 6c 69 66 69 65 73 20 74 6f 20 66 61 6c 73 65 2c 20 77 65 27 72 65 20 69 6e 20 63 6f 6e 66 6c plifies.to.false,.we're.in.confl
1a700 69 63 74 00 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 63 6f 6e 74 69 ict.......}.else.{.........conti
1a720 6e 75 65 3b 00 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 74 68 65 20 6c 65 61 72 6e 65 64 20 6c nue;.........//.If.the.learned.l
1a740 69 74 65 72 61 6c 20 73 69 6d 70 6c 69 66 69 65 73 20 74 6f 20 74 72 75 65 2c 20 69 74 27 73 20 iteral.simplifies.to.true,.it's.
1a760 72 65 64 75 6e 64 61 6e 74 00 20 20 20 20 20 20 69 66 20 28 6c 65 61 72 6e 65 64 4c 69 74 65 72 redundant.......if.(learnedLiter
1a780 61 6c 2e 67 65 74 43 6f 6e 73 74 3c 62 6f 6f 6c 3e 28 29 29 20 7b 00 20 20 20 20 69 66 20 28 6c al.getConst<bool>()).{.....if.(l
1a7a0 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 2e 69 73 43 6f 6e 73 74 28 29 29 20 7b 00 20 20 20 20 2f earnedLiteral.isConst()).{...../
1a7c0 2f 20 49 74 20 6d 69 67 68 74 20 6a 75 73 74 20 73 69 6d 70 6c 69 66 79 20 74 6f 20 61 20 63 6f /.It.might.just.simplify.to.a.co
1a7e0 6e 73 74 61 6e 74 00 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 nstant.....Trace("simplify").<<.
1a800 22 50 72 6f 63 65 73 73 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 2c 20 61 66 74 65 72 20 63 "Process.learnedLiteral,.after.c
1a820 6f 6e 73 74 50 72 6f 70 20 3a 20 22 20 3c 3c 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 20 3c onstProp.:.".<<.learnedLiteral.<
1a840 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 6c 65 61 72 6e 65 64 <.std::endl;.....}.......learned
1a860 4c 69 74 65 72 61 6c 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 6c 65 61 72 Literal.=.Rewriter::rewrite(lear
1a880 6e 65 64 4c 69 74 65 72 61 6c 4e 65 77 29 3b 00 20 20 20 20 20 20 2b 2b 64 5f 73 6d 74 2e 64 5f nedLiteralNew);.......++d_smt.d_
1a8a0 73 74 61 74 73 2d 3e 64 5f 6e 75 6d 43 6f 6e 73 74 61 6e 74 50 72 6f 70 73 3b 00 20 20 20 20 20 stats->d_numConstantProps;......
1a8c0 20 7d 00 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 69 66 20 28 6c 65 61 72 .}.........break;.......if.(lear
1a8e0 6e 65 64 4c 69 74 65 72 61 6c 4e 65 77 20 3d 3d 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 nedLiteralNew.==.learnedLiteral)
1a900 20 7b 00 20 20 20 20 20 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 4e 65 77 20 3d 20 63 6f 6e .{.......learnedLiteralNew.=.con
1a920 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 2e 61 70 70 6c 79 28 6c 65 61 72 6e 65 64 4c stantPropagations.apply(learnedL
1a940 69 74 65 72 61 6c 29 3b 00 20 20 20 20 66 6f 72 20 28 3b 3b 29 20 7b 00 20 20 20 20 54 72 61 63 iteral);.....for.(;;).{.....Trac
1a960 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 50 72 6f 63 65 73 73 20 6c 65 61 72 6e 65 e("simplify").<<."Process.learne
1a980 64 4c 69 74 65 72 61 6c 2c 20 61 66 74 65 72 20 6e 65 77 53 75 62 73 20 3a 20 22 20 3c 3c 20 6c dLiteral,.after.newSubs.:.".<<.l
1a9a0 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 earnedLiteral.<<.std::endl;.....
1a9c0 7d 00 20 20 20 20 20 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 20 3d 20 52 65 77 72 69 74 65 }.......learnedLiteral.=.Rewrite
1a9e0 72 3a 3a 72 65 77 72 69 74 65 28 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 4e 65 77 29 3b 00 20 r::rewrite(learnedLiteralNew);..
1aa00 20 20 20 69 66 20 28 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 20 21 3d 20 6c 65 61 72 6e 65 64 ...if.(learnedLiteral.!=.learned
1aa20 4c 69 74 65 72 61 6c 4e 65 77 29 20 7b 00 20 20 20 20 4e 6f 64 65 20 6c 65 61 72 6e 65 64 4c 69 LiteralNew).{.....Node.learnedLi
1aa40 74 65 72 61 6c 4e 65 77 20 3d 20 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c teralNew.=.newSubstitutions.appl
1aa60 79 28 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 69 y(learnedLiteral);.....Trace("si
1aa80 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 50 72 6f 63 65 73 73 20 6c 65 61 72 6e 65 64 4c 69 74 65 mplify").<<."Process.learnedLite
1aaa0 72 61 6c 20 3a 20 22 20 3c 3c 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 20 3c 3c 20 73 74 64 ral.:.".<<.learnedLiteral.<<.std
1aac0 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 41 73 73 65 72 74 28 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 ::endl;.....Assert(d_topLevelSub
1aae0 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 stitutions.apply(learnedLiteral)
1ab00 20 3d 3d 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 3b 00 20 20 20 20 41 73 73 65 72 74 28 .==.learnedLiteral);.....Assert(
1ab20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c Rewriter::rewrite(learnedLiteral
1ab40 29 20 3d 3d 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 3b 00 20 20 20 20 4e 6f 64 65 20 6c ).==.learnedLiteral);.....Node.l
1ab60 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 20 3d 20 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 earnedLiteral.=.d_nonClausalLear
1ab80 6e 65 64 4c 69 74 65 72 61 6c 73 5b 69 5d 3b 00 20 20 20 20 2f 2f 20 53 69 6d 70 6c 69 66 79 20 nedLiterals[i];.....//.Simplify.
1aba0 74 68 65 20 6c 69 74 65 72 61 6c 20 77 65 20 6c 65 61 72 6e 65 64 20 77 72 74 20 70 72 65 76 69 the.literal.we.learned.wrt.previ
1abc0 6f 75 73 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 00 20 20 66 6f 72 28 75 6e 73 69 67 6e 65 64 ous.substitutions...for(unsigned
1abe0 20 69 20 3d 20 30 2c 20 69 5f 65 6e 64 20 3d 20 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 .i.=.0,.i_end.=.d_nonClausalLear
1ac00 6e 65 64 4c 69 74 65 72 61 6c 73 2e 73 69 7a 65 28 29 3b 20 69 20 3c 20 69 5f 65 6e 64 3b 20 2b nedLiterals.size();.i.<.i_end;.+
1ac20 2b 20 69 29 20 7b 00 20 20 75 6e 73 69 67 6e 65 64 20 6a 20 3d 20 30 3b 00 20 20 53 75 62 73 74 +.i).{...unsigned.j.=.0;...Subst
1ac40 69 74 75 74 69 6f 6e 4d 61 70 3a 3a 69 74 65 72 61 74 6f 72 20 70 6f 73 3b 00 20 20 53 75 62 73 itutionMap::iterator.pos;...Subs
1ac60 74 69 74 75 74 69 6f 6e 4d 61 70 20 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 28 64 5f 73 titutionMap.newSubstitutions(d_s
1ac80 6d 74 2e 64 5f 63 6f 6e 74 65 78 74 29 3b 00 20 20 53 75 62 73 74 69 74 75 74 69 6f 6e 4d 61 70 mt.d_context);...SubstitutionMap
1aca0 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 28 64 5f 73 6d 74 2e 64 5f 63 6f .constantPropagations(d_smt.d_co
1acc0 6e 74 65 78 74 29 3b 00 20 20 2f 2f 20 4e 6f 20 63 6f 6e 66 6c 69 63 74 2c 20 67 6f 20 74 68 72 ntext);...//.No.conflict,.go.thr
1ace0 6f 75 67 68 20 74 68 65 20 6c 69 74 65 72 61 6c 73 20 61 6e 64 20 73 6f 6c 76 65 20 74 68 65 6d ough.the.literals.and.solve.them
1ad00 00 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 49 74 65 72 61 74 65 ...Trace("simplify").<<."Iterate
1ad20 20 74 68 72 6f 75 67 68 20 22 20 3c 3c 20 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 6e 65 .through.".<<.d_nonClausalLearne
1ad40 64 4c 69 74 65 72 61 6c 73 2e 73 69 7a 65 28 29 20 3c 3c 20 22 20 6c 65 61 72 6e 65 64 20 6c 69 dLiterals.size().<<.".learned.li
1ad60 74 65 72 61 6c 73 2e 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 00 00 20 20 7d 00 20 20 20 terals.".<<.std::endl;.....}....
1ad80 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 20 20 20 20 64 5f 70 72 6f 70 61 67 61 74 6f 72 4e .return.false;.....d_propagatorN
1ada0 65 65 64 73 46 69 6e 69 73 68 20 3d 20 74 72 75 65 3b 00 20 20 20 20 61 64 64 46 6f 72 6d 75 6c eedsFinish.=.true;.....addFormul
1adc0 61 28 66 61 6c 73 65 4e 6f 64 65 2c 20 66 61 6c 73 65 2c 20 66 61 6c 73 65 29 3b 00 20 20 20 20 a(falseNode,.false,.false);.....
1ade0 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 63 6c 65 61 72 28 29 3b 00 20 20 20 20 41 73 73 65 72 74 d_assertions.clear();.....Assert
1ae00 28 21 6f 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 73 28 29 20 26 26 20 21 6f 70 74 69 (!options::unsatCores().&&.!opti
1ae20 6f 6e 73 3a 3a 66 65 77 65 72 50 72 65 70 72 6f 63 65 73 73 69 6e 67 48 6f 6c 65 73 28 29 29 3b ons::fewerPreprocessingHoles());
1ae40 00 20 20 20 20 4e 6f 64 65 20 66 61 6c 73 65 4e 6f 64 65 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 .....Node.falseNode.=.NodeManage
1ae60 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 6f 6e 73 74 3c 62 6f 6f 6c 3e 28 66 61 r::currentNM()->mkConst<bool>(fa
1ae80 6c 73 65 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 lse);.......................<<."
1aea0 63 6f 6e 66 6c 69 63 74 20 69 6e 20 6e 6f 6e 2d 63 6c 61 75 73 61 6c 20 70 72 6f 70 61 67 61 74 conflict.in.non-clausal.propagat
1aec0 69 6f 6e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 ion".<<.endl;.....Trace("simplif
1aee0 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e 43 6c 61 y").<<."SmtEnginePrivate::nonCla
1af00 75 73 61 6c 53 69 6d 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 20 2f 2f 20 49 66 20 69 6e 20 63 usalSimplify():.".....//.If.in.c
1af20 6f 6e 66 6c 69 63 74 2c 20 6a 75 73 74 20 72 65 74 75 72 6e 20 66 61 6c 73 65 00 20 20 69 66 20 onflict,.just.return.false...if.
1af40 28 64 5f 70 72 6f 70 61 67 61 74 6f 72 2e 70 72 6f 70 61 67 61 74 65 28 29 29 20 7b 00 20 20 20 (d_propagator.propagate()).{....
1af60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 70 72 6f 70 61 67 61 74 69 6e 67 .................<<."propagating
1af80 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c ".<<.endl;...Trace("simplify").<
1afa0 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e 43 6c 61 75 73 61 6c 53 <."SmtEnginePrivate::nonClausalS
1afc0 69 6d 70 6c 69 66 79 28 29 3a 20 22 00 00 20 20 7d 00 20 20 20 20 64 5f 70 72 6f 70 61 67 61 74 implify():."....}.....d_propagat
1afe0 6f 72 2e 61 73 73 65 72 74 54 72 75 65 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 29 3b 00 or.assertTrue(d_assertions[i]);.
1b000 61 64 00 00 10 00 00 00 60 01 00 00 00 10 00 00 4d 00 00 00 00 00 00 00 7a 0f 00 00 5d 0f 00 00 ad......`.......M.......z...]...
1b020 4e 0f 00 00 46 0f 00 00 18 0f 00 00 ed 0e 00 00 a5 0e 00 00 6e 0e 00 00 39 0e 00 00 11 0e 00 00 N...F...............n...9.......
1b040 f3 0d 00 00 a1 0d 00 00 79 0d 00 00 63 0d 00 00 54 0d 00 00 c9 0c 00 00 a7 0c 00 00 94 0c 00 00 ........y...c...T...............
1b060 81 0c 00 00 54 0c 00 00 31 0c 00 00 0e 0c 00 00 02 0c 00 00 f1 0b 00 00 ce 0b 00 00 ab 0b 00 00 ....T...1.......................
1b080 9f 0b 00 00 7f 0b 00 00 49 0b 00 00 10 0b 00 00 de 0a 00 00 a8 0a 00 00 77 0a 00 00 31 0a 00 00 ........I...............w...1...
1b0a0 0a 0a 00 00 87 09 00 00 62 09 00 00 09 09 00 00 f2 08 00 00 e3 08 00 00 9b 08 00 00 91 08 00 00 ........b.......................
1b0c0 82 08 00 00 64 08 00 00 17 08 00 00 0d 08 00 00 fe 07 00 00 f8 07 00 00 f4 07 00 00 f3 07 00 00 ....d...........................
1b0e0 dc 07 00 00 8e 07 00 00 40 07 00 00 04 07 00 00 ff 06 00 00 d9 06 00 00 49 06 00 00 0d 06 00 00 ........@...............I.......
1b100 7d 05 00 00 5c 05 00 00 18 05 00 00 c9 04 00 00 a7 04 00 00 5e 04 00 00 13 04 00 00 9f 03 00 00 }...\...............^...........
1b120 9b 03 00 00 44 03 00 00 1f 03 00 00 e2 02 00 00 9f 02 00 00 79 02 00 00 4a 02 00 00 1e 02 00 00 ....D...............y...J.......
1b140 a4 01 00 00 9b 01 00 00 60 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........`.......................
1b160 20 20 20 20 2f 2f 20 6e 65 77 4c 65 66 74 20 3d 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 ....//.newLeft.=.constantPropaga
1b180 74 69 6f 6e 73 2e 61 70 70 6c 79 28 28 2a 70 6f 73 29 2e 66 69 72 73 74 29 3b 00 20 20 20 20 2f tions.apply((*pos).first);...../
1b1a0 2f 20 7d 00 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 61 6e 74 50 72 6f /.}.....//..........(constantPro
1b1c0 70 61 67 61 74 69 6f 6e 73 2e 68 61 73 53 75 62 73 74 69 74 75 74 69 6f 6e 28 6e 65 77 4c 65 66 pagations.hasSubstitution(newLef
1b1e0 74 29 20 26 26 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 2e 61 70 70 6c 79 t).&&.constantPropagations.apply
1b200 28 6e 65 77 4c 65 66 74 29 20 3d 3d 20 28 2a 70 6f 73 29 2e 73 65 63 6f 6e 64 29 29 3b 00 20 20 (newLeft).==.(*pos).second));...
1b220 20 20 2f 2f 20 20 20 41 73 73 65 72 74 28 6e 65 77 4c 65 66 74 20 3d 3d 20 28 2a 70 6f 73 29 2e ..//...Assert(newLeft.==.(*pos).
1b240 73 65 63 6f 6e 64 20 7c 7c 00 20 20 20 20 2f 2f 20 20 20 6e 65 77 4c 65 66 74 20 3d 20 52 65 77 second.||.....//...newLeft.=.Rew
1b260 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 6e 65 77 4c 65 66 74 29 3b 00 20 20 20 20 2f 2f 20 riter::rewrite(newLeft);.....//.
1b280 69 66 20 28 6e 65 77 4c 65 66 74 20 21 3d 20 28 2a 70 6f 73 29 2e 66 69 72 73 74 29 20 7b 00 20 if.(newLeft.!=.(*pos).first).{..
1b2a0 20 20 20 2f 2f 20 4e 6f 64 65 20 6e 65 77 4c 65 66 74 20 3d 20 64 5f 74 6f 70 4c 65 76 65 6c 53 ...//.Node.newLeft.=.d_topLevelS
1b2c0 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 28 2a 70 6f 73 29 2e 66 69 72 73 74 29 ubstitutions.apply((*pos).first)
1b2e0 3b 00 20 20 20 20 41 73 73 65 72 74 28 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 28 ;.....Assert(Rewriter::rewrite((
1b300 2a 70 6f 73 29 2e 66 69 72 73 74 29 20 3d 3d 20 28 2a 70 6f 73 29 2e 66 69 72 73 74 29 3b 00 20 *pos).first).==.(*pos).first);..
1b320 20 20 20 41 73 73 65 72 74 28 28 2a 70 6f 73 29 2e 73 65 63 6f 6e 64 2e 69 73 43 6f 6e 73 74 28 ...Assert((*pos).second.isConst(
1b340 29 29 3b 00 20 20 66 6f 72 20 28 70 6f 73 20 3d 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 ));...for.(pos.=.constantPropaga
1b360 74 69 6f 6e 73 2e 62 65 67 69 6e 28 29 3b 20 70 6f 73 20 21 3d 20 63 6f 6e 73 74 61 6e 74 50 72 tions.begin();.pos.!=.constantPr
1b380 6f 70 61 67 61 74 69 6f 6e 73 2e 65 6e 64 28 29 3b 20 2b 2b 70 6f 73 29 20 7b 00 20 20 7d 00 20 opagations.end();.++pos).{...}..
1b3a0 20 20 20 41 73 73 65 72 74 28 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 ...Assert(newSubstitutions.apply
1b3c0 28 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 28 2a 70 6f 73 29 2e 73 (newSubstitutions.apply((*pos).s
1b3e0 65 63 6f 6e 64 29 29 20 3d 3d 20 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c econd)).==.newSubstitutions.appl
1b400 79 28 28 2a 70 6f 73 29 2e 73 65 63 6f 6e 64 29 29 3b 00 20 20 20 20 41 73 73 65 72 74 28 64 5f y((*pos).second));.....Assert(d_
1b420 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 28 2a 70 6f topLevelSubstitutions.apply((*po
1b440 73 29 2e 73 65 63 6f 6e 64 29 20 3d 3d 20 28 2a 70 6f 73 29 2e 73 65 63 6f 6e 64 29 3b 00 20 20 s).second).==.(*pos).second);...
1b460 20 20 41 73 73 65 72 74 28 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 ..Assert(d_topLevelSubstitutions
1b480 2e 61 70 70 6c 79 28 28 2a 70 6f 73 29 2e 66 69 72 73 74 29 20 3d 3d 20 28 2a 70 6f 73 29 2e 66 .apply((*pos).first).==.(*pos).f
1b4a0 69 72 73 74 29 3b 00 20 20 20 20 41 73 73 65 72 74 28 28 2a 70 6f 73 29 2e 66 69 72 73 74 2e 69 irst);.....Assert((*pos).first.i
1b4c0 73 56 61 72 28 29 29 3b 00 20 20 66 6f 72 20 28 70 6f 73 20 3d 20 6e 65 77 53 75 62 73 74 69 74 sVar());...for.(pos.=.newSubstit
1b4e0 75 74 69 6f 6e 73 2e 62 65 67 69 6e 28 29 3b 20 70 6f 73 20 21 3d 20 6e 65 77 53 75 62 73 74 69 utions.begin();.pos.!=.newSubsti
1b500 74 75 74 69 6f 6e 73 2e 65 6e 64 28 29 3b 20 2b 2b 70 6f 73 29 20 7b 00 20 20 2f 2f 20 34 2e 20 tutions.end();.++pos).{...//.4..
1b520 65 61 63 68 20 6c 68 73 20 6f 66 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 each.lhs.of.constantPropagations
1b540 20 69 73 20 64 69 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 65 61 63 68 20 72 68 73 00 20 20 2f 2f .is.different.from.each.rhs...//
1b560 20 20 20 20 63 6f 6e 73 74 61 6e 74 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 74 6f 6f 00 20 20 2f ....constant.propagation.too.../
1b580 2f 20 33 2e 20 69 66 20 6c 20 2d 3e 20 72 20 69 73 20 61 20 63 6f 6e 73 74 61 6e 74 20 70 72 6f /.3..if.l.->.r.is.a.constant.pro
1b5a0 70 61 67 61 74 69 6f 6e 20 61 6e 64 20 6c 20 69 73 20 61 20 73 75 62 74 65 72 6d 20 6f 66 20 6c pagation.and.l.is.a.subterm.of.l
1b5c0 27 20 77 69 74 68 20 6c 27 20 2d 3e 20 72 27 20 61 6e 6f 74 68 65 72 20 63 6f 6e 73 74 61 6e 74 '.with.l'.->.r'.another.constant
1b5e0 20 70 72 6f 70 61 67 61 74 69 6f 6e 2c 20 74 68 65 6e 20 6c 27 5b 6c 2f 72 5d 20 2d 3e 20 72 27 .propagation,.then.l'[l/r].->.r'
1b600 20 73 68 6f 75 6c 64 20 62 65 20 61 00 20 20 2f 2f 20 32 2e 20 65 61 63 68 20 6c 68 73 20 6f 66 .should.be.a...//.2..each.lhs.of
1b620 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 20 72 65 77 72 69 74 65 73 20 74 .constantPropagations.rewrites.t
1b640 6f 20 69 74 73 65 6c 66 00 20 20 2f 2f 20 31 2e 20 66 6f 72 20 65 61 63 68 20 6c 68 73 20 6f 66 o.itself...//.1..for.each.lhs.of
1b660 20 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2c 20 64 6f 65 73 20 6e .d_topLevelSubstitutions,.does.n
1b680 6f 74 20 61 70 70 65 61 72 20 61 6e 79 77 68 65 72 65 20 69 6e 20 72 68 73 20 6f 66 20 64 5f 74 ot.appear.anywhere.in.rhs.of.d_t
1b6a0 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 20 6f 72 20 61 6e 79 77 68 65 72 65 opLevelSubstitutions.or.anywhere
1b6c0 20 69 6e 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 00 20 20 2f 2f 20 43 68 .in.constantPropagations...//.Ch
1b6e0 65 63 6b 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 20 69 6e 76 61 72 69 61 6e 74 73 3a 00 20 eck.data.structure.invariants:..
1b700 20 2f 2f 00 20 20 2f 2f 20 62 65 63 61 75 73 65 20 69 74 20 69 73 20 63 6f 73 74 6c 79 20 66 6f .//...//.because.it.is.costly.fo
1b720 72 20 63 65 72 74 61 69 6e 20 69 6e 70 75 74 73 20 28 73 65 65 20 62 75 67 20 35 30 38 29 2e 00 r.certain.inputs.(see.bug.508)..
1b740 20 20 2f 2f 20 6c 6f 6f 70 20 6f 76 65 72 20 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 6e ..//.loop.over.d_nonClausalLearn
1b760 65 64 4c 69 74 65 72 61 6c 73 2e 20 54 68 69 73 20 63 68 65 63 6b 20 68 61 73 20 62 65 65 6e 20 edLiterals..This.check.has.been.
1b780 6d 6f 76 65 64 20 6f 75 74 73 69 64 65 00 20 20 2f 2f 20 4e 4f 54 45 3a 20 57 68 65 6e 20 64 65 moved.outside...//.NOTE:.When.de
1b7a0 62 75 67 67 69 6e 67 20 74 68 69 73 20 63 6f 64 65 2c 20 63 6f 6e 73 69 64 65 72 20 6d 6f 76 69 bugging.this.code,.consider.movi
1b7c0 6e 67 20 74 68 69 73 20 63 68 65 63 6b 20 69 6e 73 69 64 65 20 6f 66 20 74 68 65 00 23 69 66 64 ng.this.check.inside.of.the.#ifd
1b7e0 65 66 20 43 56 43 34 5f 41 53 53 45 52 54 49 4f 4e 53 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 ef.CVC4_ASSERTIONS....}.....}...
1b800 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 ......break;.........}..........
1b820 20 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 6a 2b 2b .d_nonClausalLearnedLiterals[j++
1b840 5d 20 3d 20 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b ].=.d_nonClausalLearnedLiterals[
1b860 69 5d 3b 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4b 65 65 70 20 74 68 65 20 6c 69 74 65 72 61 i];...........//.Keep.the.litera
1b880 6c 00 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 l.........else.{.........}......
1b8a0 20 20 20 20 20 2f 2f 20 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e .....//.d_topLevelSubstitutions.
1b8c0 73 69 6d 70 6c 69 66 79 52 48 53 28 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 simplifyRHS(constantPropagations
1b8e0 29 3b 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 7d 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 );...........//.}...........//..
1b900 20 72 65 74 75 72 6e 3b 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 61 64 64 46 6f 72 6d 75 .return;...........//...addFormu
1b920 6c 61 28 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 la(NodeManager::currentNM()->mkC
1b940 6f 6e 73 74 3c 62 6f 6f 6c 3e 28 66 61 6c 73 65 29 2c 20 66 61 6c 73 65 2c 20 66 61 6c 73 65 29 onst<bool>(false),.false,.false)
1b960 3b 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 63 6c ;...........//...d_assertions.cl
1b980 65 61 72 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 20 20 41 73 73 65 72 74 28 65 71 75 ear();...........//...Assert(equ
1b9a0 61 74 69 6f 6e 73 5b 30 5d 2e 66 69 72 73 74 2e 69 73 43 6f 6e 73 74 28 29 20 26 26 20 65 71 75 ations[0].first.isConst().&&.equ
1b9c0 61 74 69 6f 6e 73 5b 30 5d 2e 73 65 63 6f 6e 64 2e 69 73 43 6f 6e 73 74 28 29 20 26 26 20 65 71 ations[0].second.isConst().&&.eq
1b9e0 75 61 74 69 6f 6e 73 5b 30 5d 2e 66 69 72 73 74 20 21 3d 20 65 71 75 61 74 69 6f 6e 73 5b 30 5d uations[0].first.!=.equations[0]
1ba00 2e 73 65 63 6f 6e 64 29 3b 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 66 20 28 21 65 71 75 61 .second);...........//.if.(!equa
1ba20 74 69 6f 6e 73 2e 65 6d 70 74 79 28 29 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 6f tions.empty()).{...........//.co
1ba40 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 2e 73 69 6d 70 6c 69 66 79 4c 48 53 28 74 nstantPropagations.simplifyLHS(t
1ba60 2c 20 63 2c 20 65 71 75 61 74 69 6f 6e 73 2c 20 74 72 75 65 29 3b 00 20 20 20 20 20 20 20 20 20 ,.c,.equations,.true);..........
1ba80 20 2f 2f 20 76 65 63 74 6f 72 3c 70 61 69 72 3c 4e 6f 64 65 2c 4e 6f 64 65 3e 20 3e 20 65 71 75 .//.vector<pair<Node,Node>.>.equ
1baa0 61 74 69 6f 6e 73 3b 00 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 ations;...........constantPropag
1bac0 61 74 69 6f 6e 73 2e 61 64 64 53 75 62 73 74 69 74 75 74 69 6f 6e 28 74 2c 20 63 29 3b 00 20 20 ations.addSubstitution(t,.c);...
1bae0 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e ........Assert(newSubstitutions.
1bb00 61 70 70 6c 79 28 74 29 20 3d 3d 20 74 29 3b 00 20 20 20 20 20 20 20 20 20 20 41 73 73 65 72 74 apply(t).==.t);...........Assert
1bb20 28 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 74 (d_topLevelSubstitutions.apply(t
1bb40 29 20 3d 3d 20 74 29 3b 00 20 20 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 63 6f 6e 73 74 61 ).==.t);...........Assert(consta
1bb60 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 2e 61 70 70 6c 79 28 74 29 20 3d 3d 20 74 29 3b 00 20 ntPropagations.apply(t).==.t);..
1bb80 20 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 21 74 2e 69 73 43 6f 6e 73 74 28 29 29 3b 00 20 .........Assert(!t.isConst());..
1bba0 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 63 20 3d 20 6c 65 61 72 6e .........}.............c.=.learn
1bbc0 65 64 4c 69 74 65 72 61 6c 5b 31 5d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 74 20 3d 20 6c 65 edLiteral[1];.............t.=.le
1bbe0 61 72 6e 65 64 4c 69 74 65 72 61 6c 5b 30 5d 3b 00 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 arnedLiteral[0];...........else.
1bc00 7b 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 63 20 3d 20 6c 65 {...........}.............c.=.le
1bc20 61 72 6e 65 64 4c 69 74 65 72 61 6c 5b 30 5d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 74 20 3d arnedLiteral[0];.............t.=
1bc40 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 5b 31 5d 3b 00 20 20 20 20 20 20 20 20 20 20 69 66 .learnedLiteral[1];...........if
1bc60 20 28 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 5b 30 5d 2e 69 73 43 6f 6e 73 74 28 29 29 20 7b .(learnedLiteral[0].isConst()).{
1bc80 00 20 20 20 20 20 20 20 20 20 20 54 4e 6f 64 65 20 63 3b 00 20 20 20 20 20 20 20 20 20 20 54 4e ...........TNode.c;...........TN
1bca0 6f 64 65 20 74 3b 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 6f 6e 73 74 61 6e 74 20 70 72 6f ode.t;...........//.constant.pro
1bcc0 70 61 67 61 74 69 6f 6e 00 20 20 20 20 20 20 20 20 69 66 20 28 64 5f 64 6f 43 6f 6e 73 74 61 6e pagation.........if.(d_doConstan
1bce0 74 50 72 6f 70 20 26 26 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 2e 67 65 74 4b 69 6e 64 28 tProp.&&.learnedLiteral.getKind(
1bd00 29 20 3d 3d 20 6b 69 6e 64 3a 3a 45 51 55 41 4c 20 26 26 20 28 6c 65 61 72 6e 65 64 4c 69 74 65 ).==.kind::EQUAL.&&.(learnedLite
1bd20 72 61 6c 5b 30 5d 2e 69 73 43 6f 6e 73 74 28 29 20 7c 7c 20 6c 65 61 72 6e 65 64 4c 69 74 65 72 ral[0].isConst().||.learnedLiter
1bd40 61 6c 5b 31 5d 2e 69 73 43 6f 6e 73 74 28 29 29 29 20 7b 00 20 20 20 20 20 20 64 65 66 61 75 6c al[1].isConst())).{.......defaul
1bd60 74 3a 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 20 t:.........return.false;........
1bd80 20 64 5f 70 72 6f 70 61 67 61 74 6f 72 4e 65 65 64 73 46 69 6e 69 73 68 20 3d 20 74 72 75 65 3b .d_propagatorNeedsFinish.=.true;
1bda0 00 20 20 20 20 20 20 20 20 61 64 64 46 6f 72 6d 75 6c 61 28 4e 6f 64 65 4d 61 6e 61 67 65 72 3a .........addFormula(NodeManager:
1bdc0 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 6f 6e 73 74 3c 62 6f 6f 6c 3e 28 66 61 6c 73 :currentNM()->mkConst<bool>(fals
1bde0 65 29 2c 20 66 61 6c 73 65 2c 20 66 61 6c 73 65 29 3b 00 20 20 20 20 20 20 20 20 64 5f 61 73 73 e),.false,.false);.........d_ass
1be00 65 72 74 69 6f 6e 73 2e 63 6c 65 61 72 28 29 3b 00 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 ertions.clear();.........Assert(
1be20 21 6f 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 73 28 29 29 3b 00 20 20 20 20 20 20 20 !options::unsatCores());........
1be40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 6c 65 61 72 6e 65 64 4c 69 74 ...................<<.learnedLit
1be60 65 72 61 6c 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eral.<<.endl;...................
1be80 20 20 20 20 20 20 20 20 3c 3c 20 22 63 6f 6e 66 6c 69 63 74 20 77 68 69 6c 65 20 73 6f 6c 76 69 ........<<."conflict.while.solvi
1bea0 6e 67 20 22 00 20 20 20 20 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c ng.".........Trace("simplify").<
1bec0 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e 43 6c 61 75 73 61 6c 53 <."SmtEnginePrivate::nonClausalS
1bee0 69 6d 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 69 6e 20 63 6f implify():.".........//.If.in.co
1bf00 6e 66 6c 69 63 74 2c 20 77 65 20 72 65 74 75 72 6e 20 66 61 6c 73 65 00 20 20 20 20 20 20 63 61 nflict,.we.return.false.......ca
1bf20 73 65 20 54 68 65 6f 72 79 3a 3a 50 50 5f 41 53 53 45 52 54 5f 53 54 41 54 55 53 5f 43 4f 4e 46 se.Theory::PP_ASSERT_STATUS_CONF
1bf40 4c 49 43 54 3a 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 LICT:.......}.........break;....
1bf60 20 20 20 20 20 2f 2f 20 65 6c 73 65 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 00 20 20 20 20 20 20 .....//.else.fall.through.......
1bf80 20 20 2f 2f 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 65 71 75 61 74 69 6f 6e 73 5b 30 5d 2e ..//........Assert(equations[0].
1bfa0 66 69 72 73 74 2e 69 73 43 6f 6e 73 74 28 29 20 26 26 20 65 71 75 61 74 69 6f 6e 73 5b 30 5d 2e first.isConst().&&.equations[0].
1bfc0 73 65 63 6f 6e 64 2e 69 73 43 6f 6e 73 74 28 29 20 26 26 20 65 71 75 61 74 69 6f 6e 73 5b 30 5d second.isConst().&&.equations[0]
1bfe0 2e 66 69 72 73 74 20 21 3d 20 65 71 75 61 74 69 6f 6e 73 5b 30 5d 2e 73 65 63 6f 6e 64 29 3b 00 .first.!=.equations[0].second);.
1c000 61 64 00 00 00 00 00 00 7c 01 00 00 00 10 00 00 58 00 00 00 00 00 00 00 da 0f 00 00 ab 0f 00 00 ad......|.......X...............
1c020 7f 0f 00 00 05 0f 00 00 fc 0e 00 00 b4 0e 00 00 b0 0e 00 00 93 0e 00 00 92 0e 00 00 7b 0e 00 00 ............................{...
1c040 27 0e 00 00 fe 0d 00 00 fd 0d 00 00 d5 0d 00 00 95 0d 00 00 5d 0d 00 00 37 0d 00 00 fc 0c 00 00 '...................]...7.......
1c060 bd 0c 00 00 78 0c 00 00 53 0c 00 00 20 0c 00 00 d6 0b 00 00 d0 0b 00 00 99 0b 00 00 8a 0b 00 00 ....x...S.......................
1c080 4e 0b 00 00 27 0b 00 00 18 0b 00 00 10 0b 00 00 e5 0a 00 00 9e 0a 00 00 6b 0a 00 00 24 0a 00 00 N...'...................k...$...
1c0a0 1e 0a 00 00 fe 09 00 00 e5 09 00 00 bd 09 00 00 79 09 00 00 43 09 00 00 17 09 00 00 13 09 00 00 ................y...C...........
1c0c0 12 09 00 00 c9 08 00 00 a7 08 00 00 74 08 00 00 34 08 00 00 10 08 00 00 dd 07 00 00 a9 07 00 00 ............t...4...............
1c0e0 5c 07 00 00 14 07 00 00 f3 06 00 00 78 06 00 00 72 06 00 00 3d 06 00 00 0c 06 00 00 d4 05 00 00 \...........x...r...=...........
1c100 ce 05 00 00 c3 05 00 00 80 05 00 00 49 05 00 00 35 05 00 00 e3 04 00 00 c4 04 00 00 8c 04 00 00 ............I...5...............
1c120 42 04 00 00 1e 04 00 00 16 04 00 00 10 04 00 00 0c 04 00 00 0b 04 00 00 e0 03 00 00 aa 03 00 00 B...............................
1c140 6f 03 00 00 6e 03 00 00 27 03 00 00 f4 02 00 00 b5 02 00 00 7e 02 00 00 5d 02 00 00 2e 02 00 00 o...n...'...........~...].......
1c160 28 02 00 00 f5 01 00 00 e6 01 00 00 ae 01 00 00 8b 01 00 00 7c 01 00 00 91 04 00 00 20 20 20 20 (...................|...........
1c180 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 69 66 20 28 6c 65 61 72 6e 65 64 4e 65 77 20 ....break;.......if.(learnedNew.
1c1a0 3d 3d 20 6c 65 61 72 6e 65 64 29 20 7b 00 20 20 20 20 20 20 6c 65 61 72 6e 65 64 4e 65 77 20 3d ==.learned).{.......learnedNew.=
1c1c0 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 2e 61 70 70 6c 79 28 6c 65 61 72 .constantPropagations.apply(lear
1c1e0 6e 65 64 29 3b 00 20 20 20 20 66 6f 72 20 28 3b 3b 29 20 7b 00 20 20 20 20 41 73 73 65 72 74 28 ned);.....for.(;;).{.....Assert(
1c200 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 6c 65 61 72 6e 65 64 29 20 3d 3d 20 6c 65 Rewriter::rewrite(learned).==.le
1c220 61 72 6e 65 64 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 6c 65 61 72 6e 65 64 20 3d 20 52 65 arned);.....}.......learned.=.Re
1c240 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 6c 65 61 72 6e 65 64 4e 65 77 29 3b 00 20 20 20 writer::rewrite(learnedNew);....
1c260 20 69 66 20 28 6c 65 61 72 6e 65 64 20 21 3d 20 6c 65 61 72 6e 65 64 4e 65 77 29 20 7b 00 20 20 .if.(learned.!=.learnedNew).{...
1c280 20 20 4e 6f 64 65 20 6c 65 61 72 6e 65 64 4e 65 77 20 3d 20 6e 65 77 53 75 62 73 74 69 74 75 74 ..Node.learnedNew.=.newSubstitut
1c2a0 69 6f 6e 73 2e 61 70 70 6c 79 28 6c 65 61 72 6e 65 64 29 3b 00 20 20 20 20 41 73 73 65 72 74 28 ions.apply(learned);.....Assert(
1c2c0 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 6c 65 d_topLevelSubstitutions.apply(le
1c2e0 61 72 6e 65 64 29 20 3d 3d 20 6c 65 61 72 6e 65 64 29 3b 00 20 20 20 20 4e 6f 64 65 20 6c 65 61 arned).==.learned);.....Node.lea
1c300 72 6e 65 64 20 3d 20 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 6e 65 64 4c 69 74 65 72 61 rned.=.d_nonClausalLearnedLitera
1c320 6c 73 5b 69 5d 3b 00 20 20 66 6f 72 20 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 ls[i];...for.(unsigned.i.=.0;.i.
1c340 3c 20 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 2e 73 69 <.d_nonClausalLearnedLiterals.si
1c360 7a 65 28 29 3b 20 2b 2b 20 69 29 20 7b 00 00 20 20 6c 65 61 72 6e 65 64 42 75 69 6c 64 65 72 20 ze();.++.i).{....learnedBuilder.
1c380 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 64 5f 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 <<.d_assertions[d_realAssertions
1c3a0 45 6e 64 20 2d 20 31 5d 3b 00 20 20 41 73 73 65 72 74 28 64 5f 72 65 61 6c 41 73 73 65 72 74 69 End.-.1];...Assert(d_realAsserti
1c3c0 6f 6e 73 45 6e 64 20 3c 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 29 3b 00 onsEnd.<=.d_assertions.size());.
1c3e0 20 20 4e 6f 64 65 42 75 69 6c 64 65 72 3c 3e 20 6c 65 61 72 6e 65 64 42 75 69 6c 64 65 72 28 6b ..NodeBuilder<>.learnedBuilder(k
1c400 69 6e 64 3a 3a 41 4e 44 29 3b 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 ind::AND);....}.....}.......}...
1c420 20 20 20 20 20 20 6d 2d 3e 61 64 64 53 75 62 73 74 69 74 75 74 69 6f 6e 28 20 6e 2c 20 76 20 29 ......m->addSubstitution(.n,.v.)
1c440 3b 00 20 20 20 20 20 20 20 20 54 72 61 63 65 28 22 6d 6f 64 65 6c 22 29 20 3c 3c 20 22 41 64 64 ;.........Trace("model").<<."Add
1c460 20 73 75 62 73 74 69 74 75 74 69 6f 6e 20 3a 20 22 20 3c 3c 20 6e 20 3c 3c 20 22 20 22 20 3c 3c .substitution.:.".<<.n.<<.".".<<
1c480 20 76 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 76 20 3d 20 6e 65 77 .v.<<.endl;.........Node.v.=.new
1c4a0 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 28 2a 70 6f 73 29 2e 73 65 63 6f 6e Substitutions.apply((*pos).secon
1c4c0 64 29 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 6e 20 3d 20 28 2a 70 6f 73 29 2e 66 69 72 73 d);.........Node.n.=.(*pos).firs
1c4e0 74 3b 00 20 20 20 20 20 20 66 6f 72 28 70 6f 73 20 3d 20 6e 65 77 53 75 62 73 74 69 74 75 74 69 t;.......for(pos.=.newSubstituti
1c500 6f 6e 73 2e 62 65 67 69 6e 28 29 3b 20 70 6f 73 20 21 3d 20 6e 65 77 53 75 62 73 74 69 74 75 74 ons.begin();.pos.!=.newSubstitut
1c520 69 6f 6e 73 2e 65 6e 64 28 29 3b 20 2b 2b 70 6f 73 29 20 7b 00 20 20 20 20 69 66 28 6d 20 21 3d ions.end();.++pos).{.....if(m.!=
1c540 20 4e 55 4c 4c 29 20 7b 00 20 20 20 20 54 68 65 6f 72 79 4d 6f 64 65 6c 2a 20 6d 20 3d 20 64 5f .NULL).{.....TheoryModel*.m.=.d_
1c560 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 67 65 74 4d 6f 64 65 6c 28 29 3b 00 smt.d_theoryEngine->getModel();.
1c580 20 20 20 20 2f 2f 20 49 66 20 6e 6f 74 20 69 6e 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 6d 6f 64 ....//.If.not.in.incremental.mod
1c5a0 65 2c 20 6d 75 73 74 20 61 64 64 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 20 74 6f 20 6d 6f 64 e,.must.add.substitutions.to.mod
1c5c0 65 6c 00 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 52 65 77 72 el...}.else.{.....}.........Rewr
1c5e0 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 4e 6f 64 65 28 73 75 62 73 74 69 74 75 74 69 6f 6e 73 iter::rewrite(Node(substitutions
1c600 42 75 69 6c 64 65 72 29 29 29 3b 00 20 20 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 Builder)));.......d_assertions.r
1c620 65 70 6c 61 63 65 28 64 5f 73 75 62 73 74 69 74 75 74 69 6f 6e 73 49 6e 64 65 78 2c 00 20 20 20 eplace(d_substitutionsIndex,....
1c640 20 69 66 20 28 73 75 62 73 74 69 74 75 74 69 6f 6e 73 42 75 69 6c 64 65 72 2e 67 65 74 4e 75 6d .if.(substitutionsBuilder.getNum
1c660 43 68 69 6c 64 72 65 6e 28 29 20 3e 20 31 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 54 72 Children().>.1).{.....}.......Tr
1c680 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 ace("simplify").<<."SmtEnginePri
1c6a0 76 61 74 65 3a 3a 6e 6f 6e 43 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 28 29 3a 20 77 69 6c 6c vate::nonClausalSimplify():.will
1c6c0 20 6e 6f 74 69 66 79 20 53 41 54 20 6c 61 79 65 72 20 6f 66 20 73 75 62 73 74 69 74 75 74 69 6f .notify.SAT.layer.of.substitutio
1c6e0 6e 3a 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 73 75 62 73 74 69 74 n:.".<<.n.<<.endl;.......substit
1c700 75 74 69 6f 6e 73 42 75 69 6c 64 65 72 20 3c 3c 20 6e 3b 00 20 20 20 20 20 20 4e 6f 64 65 20 6e utionsBuilder.<<.n;.......Node.n
1c720 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 4e .=.NodeManager::currentNM()->mkN
1c740 6f 64 65 28 6b 69 6e 64 3a 3a 45 51 55 41 4c 2c 20 6c 68 73 2c 20 72 68 73 29 3b 00 20 20 20 20 ode(kind::EQUAL,.lhs,.rhs);.....
1c760 20 20 54 4e 6f 64 65 20 6c 68 73 20 3d 20 28 2a 70 6f 73 29 2e 66 69 72 73 74 2c 20 72 68 73 20 ..TNode.lhs.=.(*pos).first,.rhs.
1c780 3d 20 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 28 2a 70 6f 73 29 2e =.newSubstitutions.apply((*pos).
1c7a0 73 65 63 6f 6e 64 29 3b 00 20 20 20 20 20 20 2f 2f 20 41 64 64 20 62 61 63 6b 20 74 68 69 73 20 second);.......//.Add.back.this.
1c7c0 73 75 62 73 74 69 74 75 74 69 6f 6e 20 61 73 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 00 20 20 20 substitution.as.an.assertion....
1c7e0 20 66 6f 72 20 28 3b 20 70 6f 73 20 21 3d 20 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e .for.(;.pos.!=.newSubstitutions.
1c800 65 6e 64 28 29 3b 20 2b 2b 70 6f 73 29 20 7b 00 20 20 20 20 70 6f 73 20 3d 20 6e 65 77 53 75 62 end();.++pos).{.....pos.=.newSub
1c820 73 74 69 74 75 74 69 6f 6e 73 2e 62 65 67 69 6e 28 29 3b 00 20 20 20 20 73 75 62 73 74 69 74 75 stitutions.begin();.....substitu
1c840 74 69 6f 6e 73 42 75 69 6c 64 65 72 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 64 5f 73 tionsBuilder.<<.d_assertions[d_s
1c860 75 62 73 74 69 74 75 74 69 6f 6e 73 49 6e 64 65 78 5d 3b 00 20 20 20 20 4e 6f 64 65 42 75 69 6c ubstitutionsIndex];.....NodeBuil
1c880 64 65 72 3c 3e 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 42 75 69 6c 64 65 72 28 6b 69 6e 64 3a der<>.substitutionsBuilder(kind:
1c8a0 3a 41 4e 44 29 3b 00 20 20 69 66 20 28 64 5f 73 75 62 73 74 69 74 75 74 69 6f 6e 73 49 6e 64 65 :AND);...if.(d_substitutionsInde
1c8c0 78 20 3e 20 30 29 20 7b 00 20 20 2f 2f 20 49 66 20 69 6e 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 x.>.0).{...//.If.in.incremental.
1c8e0 6d 6f 64 65 2c 20 61 64 64 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 6c mode,.add.substitutions.to.the.l
1c900 69 73 74 20 6f 66 20 61 73 73 65 72 74 69 6f 6e 73 00 00 20 20 7d 00 20 20 20 20 20 20 20 20 20 ist.of.assertions....}..........
1c920 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 61 73 73 65 72 74 69 6f 6e 20 3c 3c 20 65 6e 64 .............<<.assertion.<<.end
1c940 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 6e 6f 6e l;.......................<<."non
1c960 2d 63 6c 61 75 73 61 6c 20 70 72 65 70 72 6f 63 65 73 73 65 64 3a 20 22 00 20 20 20 20 54 72 61 -clausal.preprocessed:.".....Tra
1c980 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 ce("simplify").<<."SmtEnginePriv
1c9a0 61 74 65 3a 3a 6e 6f 6e 43 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 ate::nonClausalSimplify():."....
1c9c0 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 70 6c 61 63 65 28 69 2c 20 61 73 73 65 72 74 69 .d_assertions.replace(i,.asserti
1c9e0 6f 6e 29 3b 00 20 20 20 20 73 2e 69 6e 73 65 72 74 28 61 73 73 65 72 74 69 6f 6e 29 3b 00 20 20 on);.....s.insert(assertion);...
1ca00 20 20 54 72 61 63 65 28 22 64 65 62 75 67 67 69 6e 67 22 29 20 3c 3c 20 22 5c 6e 22 3b 00 20 20 ..Trace("debugging").<<."\n";...
1ca20 20 20 7d 00 20 20 20 20 20 20 54 72 61 63 65 28 22 64 65 62 75 67 67 69 6e 67 22 29 20 3c 3c 20 ..}.......Trace("debugging").<<.
1ca40 22 61 73 73 65 72 74 69 6f 6e 4e 65 77 20 3d 20 22 20 3c 3c 20 61 73 73 65 72 74 69 6f 6e 4e 65 "assertionNew.=.".<<.assertionNe
1ca60 77 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 61 73 73 65 72 74 69 6f 6e 20 3d 20 52 65 77 w.<<.endl;.......assertion.=.Rew
1ca80 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 61 73 73 65 72 74 69 6f 6e 4e 65 77 29 3b 00 20 20 riter::rewrite(assertionNew);...
1caa0 20 20 20 20 54 72 61 63 65 28 22 64 65 62 75 67 67 69 6e 67 22 29 20 3c 3c 20 22 61 73 73 65 72 ....Trace("debugging").<<."asser
1cac0 74 69 6f 6e 4e 65 77 20 3d 20 22 20 3c 3c 20 61 73 73 65 72 74 69 6f 6e 4e 65 77 20 3c 3c 20 65 tionNew.=.".<<.assertionNew.<<.e
1cae0 6e 64 6c 3b 00 20 20 20 20 20 20 2b 2b 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 6e 75 ndl;.......++d_smt.d_stats->d_nu
1cb00 6d 43 6f 6e 73 74 61 6e 74 50 72 6f 70 73 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 mConstantProps;.......}.........
1cb20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 69 66 20 28 61 73 73 65 72 74 69 6f 6e 4e 65 77 20 3d 3d break;.......if.(assertionNew.==
1cb40 20 61 73 73 65 72 74 69 6f 6e 29 20 7b 00 20 20 20 20 20 20 61 73 73 65 72 74 69 6f 6e 4e 65 77 .assertion).{.......assertionNew
1cb60 20 3d 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 2e 61 70 70 6c 79 28 61 73 .=.constantPropagations.apply(as
1cb80 73 65 72 74 69 6f 6e 29 3b 00 20 20 20 20 66 6f 72 20 28 3b 3b 29 20 7b 00 20 20 20 20 41 73 73 sertion);.....for.(;;).{.....Ass
1cba0 65 72 74 28 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 61 73 73 65 72 74 69 6f 6e 29 ert(Rewriter::rewrite(assertion)
1cbc0 20 3d 3d 20 61 73 73 65 72 74 69 6f 6e 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 54 72 61 63 .==.assertion);.....}.......Trac
1cbe0 65 28 22 64 65 62 75 67 67 69 6e 67 22 29 20 3c 3c 20 22 72 65 77 72 69 74 65 28 61 73 73 65 72 e("debugging").<<."rewrite(asser
1cc00 74 69 6f 6e 29 20 3d 20 22 20 3c 3c 20 61 73 73 65 72 74 69 6f 6e 20 3c 3c 20 65 6e 64 6c 3b 00 tion).=.".<<.assertion.<<.endl;.
1cc20 20 20 20 20 20 20 61 73 73 65 72 74 69 6f 6e 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 ......assertion.=.Rewriter::rewr
1cc40 69 74 65 28 61 73 73 65 72 74 69 6f 6e 4e 65 77 29 3b 00 20 20 20 20 69 66 20 28 61 73 73 65 72 ite(assertionNew);.....if.(asser
1cc60 74 69 6f 6e 20 21 3d 20 61 73 73 65 72 74 69 6f 6e 4e 65 77 29 20 7b 00 20 20 20 20 54 72 61 63 tion.!=.assertionNew).{.....Trac
1cc80 65 28 22 64 65 62 75 67 67 69 6e 67 22 29 20 3c 3c 20 22 61 73 73 65 72 74 69 6f 6e 4e 65 77 20 e("debugging").<<."assertionNew.
1cca0 3d 20 22 20 3c 3c 20 61 73 73 65 72 74 69 6f 6e 4e 65 77 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 =.".<<.assertionNew.<<.endl;....
1ccc0 20 54 72 61 63 65 28 22 64 65 62 75 67 67 69 6e 67 22 29 20 3c 3c 20 22 61 73 73 65 72 74 69 6f .Trace("debugging").<<."assertio
1cce0 6e 20 3d 20 22 20 3c 3c 20 61 73 73 65 72 74 69 6f 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 n.=.".<<.assertion.<<.endl;.....
1cd00 4e 6f 64 65 20 61 73 73 65 72 74 69 6f 6e 4e 65 77 20 3d 20 6e 65 77 53 75 62 73 74 69 74 75 74 Node.assertionNew.=.newSubstitut
1cd20 69 6f 6e 73 2e 61 70 70 6c 79 28 61 73 73 65 72 74 69 6f 6e 29 3b 00 20 20 20 20 4e 6f 64 65 20 ions.apply(assertion);.....Node.
1cd40 61 73 73 65 72 74 69 6f 6e 20 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 3b 00 20 20 66 assertion.=.d_assertions[i];...f
1cd60 6f 72 20 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 or.(unsigned.i.=.0;.i.<.d_assert
1cd80 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 20 2b 2b 20 69 29 20 7b 00 20 20 54 72 61 63 65 28 22 64 65 ions.size();.++.i).{...Trace("de
1cda0 62 75 67 67 69 6e 67 22 29 20 3c 3c 20 22 4e 6f 6e 43 6c 61 75 73 61 6c 20 73 69 6d 70 6c 69 66 bugging").<<."NonClausal.simplif
1cdc0 79 20 70 72 65 2d 70 72 65 70 72 6f 63 65 73 73 5c 6e 22 3b 00 20 20 68 61 73 68 5f 73 65 74 3c y.pre-preprocess\n";...hash_set<
1cde0 54 4e 6f 64 65 2c 20 54 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e 3e 20 73 3b 00 00 20 20 TNode,.TNodeHashFunction>.s;....
1ce00 64 5f 6e 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 2e 72 65 73 69 d_nonClausalLearnedLiterals.resi
1ce20 7a 65 28 6a 29 3b 00 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 52 ze(j);...Trace("simplify").<<."R
1ce40 65 73 69 7a 65 20 6e 6f 6e 2d 63 6c 61 75 73 61 6c 20 6c 65 61 72 6e 65 64 20 6c 69 74 65 72 61 esize.non-clausal.learned.litera
1ce60 6c 73 20 74 6f 20 22 20 3c 3c 20 6a 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 2f 2f 20 ls.to.".<<.j.<<.std::endl;...//.
1ce80 52 65 73 69 7a 65 20 74 68 65 20 6c 65 61 72 6e 74 00 00 23 65 6e 64 69 66 20 2f 2a 20 43 56 43 Resize.the.learnt..#endif./*.CVC
1cea0 34 5f 41 53 53 45 52 54 49 4f 4e 53 20 2a 2f 00 20 20 7d 00 20 20 20 20 41 73 73 65 72 74 28 63 4_ASSERTIONS.*/...}.....Assert(c
1cec0 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 2e 61 70 70 6c 79 28 28 2a 70 6f 73 29 onstantPropagations.apply((*pos)
1cee0 2e 73 65 63 6f 6e 64 29 20 3d 3d 20 28 2a 70 6f 73 29 2e 73 65 63 6f 6e 64 29 3b 00 20 20 20 20 .second).==.(*pos).second);.....
1cf00 2f 2f 20 7d 00 20 20 20 20 2f 2f 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 61 6e 74 50 72 //.}.....//..........(constantPr
1cf20 6f 70 61 67 61 74 69 6f 6e 73 2e 68 61 73 53 75 62 73 74 69 74 75 74 69 6f 6e 28 6e 65 77 4c 65 opagations.hasSubstitution(newLe
1cf40 66 74 29 20 26 26 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 69 6f 6e 73 2e 61 70 70 6c ft).&&.constantPropagations.appl
1cf60 79 28 6e 65 77 4c 65 66 74 29 20 3d 3d 20 28 2a 70 6f 73 29 2e 73 65 63 6f 6e 64 29 29 3b 00 20 y(newLeft).==.(*pos).second));..
1cf80 20 20 20 2f 2f 20 20 20 41 73 73 65 72 74 28 6e 65 77 4c 65 66 74 20 3d 3d 20 28 2a 70 6f 73 29 ...//...Assert(newLeft.==.(*pos)
1cfa0 2e 73 65 63 6f 6e 64 20 7c 7c 00 20 20 20 20 2f 2f 20 20 20 6e 65 77 4c 65 66 74 20 3d 20 52 65 .second.||.....//...newLeft.=.Re
1cfc0 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 6e 65 77 4c 65 66 74 29 3b 00 20 20 20 20 2f 2f writer::rewrite(newLeft);.....//
1cfe0 20 69 66 20 28 6e 65 77 4c 65 66 74 20 21 3d 20 28 2a 70 6f 73 29 2e 66 69 72 73 74 29 20 7b 00 .if.(newLeft.!=.(*pos).first).{.
1d000 61 64 00 00 d0 02 00 00 64 04 00 00 00 10 00 00 5e 00 00 00 00 00 00 00 f8 0f 00 00 cd 0f 00 00 ad......d.......^...............
1d020 9e 0f 00 00 98 0f 00 00 72 0f 00 00 62 0f 00 00 5c 0f 00 00 45 0f 00 00 26 0f 00 00 e2 0e 00 00 ........r...b...\...E...&.......
1d040 b0 0e 00 00 86 0e 00 00 82 0e 00 00 5b 0e 00 00 5a 0e 00 00 03 0e 00 00 ce 0d 00 00 93 0d 00 00 ............[...Z...............
1d060 60 0d 00 00 43 0d 00 00 18 0d 00 00 e7 0c 00 00 e1 0c 00 00 bd 0c 00 00 ad 0c 00 00 a7 0c 00 00 `...C...........................
1d080 92 0c 00 00 75 0c 00 00 31 0c 00 00 f2 0b 00 00 ca 0b 00 00 c6 0b 00 00 c5 0b 00 00 91 0b 00 00 ....u...1.......................
1d0a0 52 0b 00 00 ff 0a 00 00 c1 0a 00 00 c0 0a 00 00 94 0a 00 00 62 0a 00 00 32 0a 00 00 2e 0a 00 00 R...................b...2.......
1d0c0 2d 0a 00 00 0b 0a 00 00 fc 09 00 00 fa 09 00 00 f9 09 00 00 d6 09 00 00 93 09 00 00 92 09 00 00 -...............................
1d0e0 66 09 00 00 65 09 00 00 27 09 00 00 26 09 00 00 f0 08 00 00 b9 08 00 00 8b 08 00 00 47 08 00 00 f...e...'...&...............G...
1d100 22 08 00 00 ec 07 00 00 d8 07 00 00 d2 07 00 00 ce 07 00 00 85 07 00 00 54 07 00 00 1d 07 00 00 ".......................T.......
1d120 19 07 00 00 08 07 00 00 06 07 00 00 05 07 00 00 c1 06 00 00 9c 06 00 00 85 06 00 00 64 06 00 00 ............................d...
1d140 41 06 00 00 35 06 00 00 31 06 00 00 30 06 00 00 20 06 00 00 f5 05 00 00 df 05 00 00 af 05 00 00 A...5...1...0...................
1d160 99 05 00 00 7f 05 00 00 69 05 00 00 46 05 00 00 1d 05 00 00 04 05 00 00 03 05 00 00 de 04 00 00 ........i...F...................
1d180 b7 04 00 00 87 04 00 00 83 04 00 00 64 04 00 00 63 04 00 00 61 04 00 00 5d 04 00 00 3e 04 00 00 ............d...c...a...]...>...
1d1a0 21 04 00 00 10 04 00 00 cd 03 00 00 9f 03 00 00 66 03 00 00 62 03 00 00 1f 03 00 00 e7 02 00 00 !...............f...b...........
1d1c0 8b 02 00 00 67 02 00 00 1d 02 00 00 f4 01 00 00 12 02 00 00 02 02 00 00 01 02 00 00 00 00 00 00 ....g...........................
1d1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 64 5f 61 73 73 65 72 74 69 6f ......................d_assertio
1d200 6e 73 2e 72 65 73 69 7a 65 28 62 65 66 6f 72 65 29 3b 00 20 20 7d 00 20 20 20 20 69 6e 20 20 64 ns.resize(before);...}.....in..d
1d220 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 7a 65 28 62 65 66 6f 72 65 29 3b 00 20 20 7d 00 _assertions.resize(before);...}.
1d240 20 20 20 20 69 6e 74 6f 43 6f 6e 6a 75 6e 63 74 69 6f 6e 2e 70 75 73 68 5f 62 61 63 6b 28 64 5f ....intoConjunction.push_back(d_
1d260 61 73 73 65 72 74 69 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 7a 65 28 62 65 66 asserti..d_assertions.resize(bef
1d280 6f 72 65 29 3b 00 20 20 7d 00 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 7a 65 ore);...}....d_assertions.resize
1d2a0 28 62 65 66 6f 72 65 29 3b 00 20 20 7d 00 20 20 20 20 69 6e 74 6f 43 6f 6e 6a 75 6e 63 74 69 6f (before);...}.....intoConjunctio
1d2c0 6e 2e 70 75 73 68 5f 62 61 63 6b 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 29 3b 00 20 20 n.push_back(d_assertions[i]);...
1d2e0 66 6f 72 28 73 69 7a 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 7a 65 28 62 65 66 for(siz..d_assertions.resize(bef
1d300 6f 72 65 29 3b 00 20 20 7d 00 20 20 20 20 69 6e 74 6f 43 6f 6e 6a 75 6e 63 74 69 6f 6e 2e 70 20 ore);...}.....intoConjunction.p.
1d320 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 7a 65 28 62 65 66 6f 72 65 29 3b 00 20 20 .d_assertions.resize(before);...
1d340 7d 00 20 20 20 20 69 6e 74 6f 43 6f 6e 6a 75 6e 63 74 69 6f 6e 2e 70 75 73 68 5f 62 61 63 6b 28 }.....intoConjunction.push_back(
1d360 64 5f 20 20 64 5f 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 7a 65 28 62 65 66 6f d_..d_..d_assertions.resize(befo
1d380 72 65 29 3b 00 20 20 7d 00 20 20 20 20 69 6e 74 6f 43 6f 6e 6a 75 6e 63 74 69 6f 6e 2e 70 75 20 re);...}.....intoConjunction.pu.
1d3a0 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 7a 65 28 62 65 66 6f 72 65 29 3b 00 20 20 .d_assertions.resize(before);...
1d3c0 7d 00 20 20 20 20 69 6e 74 6f 43 6f 6e 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 }.....intoCon..d_assertions.resi
1d3e0 7a 65 28 62 65 66 6f 72 65 29 3b 00 20 20 7d 00 20 20 20 20 69 6e 74 6f 43 6f 6e 6a 75 6e 63 74 ze(before);...}.....intoConjunct
1d400 69 6f 6e 2e 70 75 73 68 5f 62 61 63 6b 28 64 5f 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 ion.push_back(d_..d_assertions.r
1d420 65 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 7a 65 28 62 65 66 6f 72 65 29 20 20 e..d_assertions.resize(before)..
1d440 64 5f 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 7a 65 28 62 65 66 6f 72 65 29 3b d_..d_assertions.resize(before);
1d460 00 20 20 7d 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 73 69 7a 65 28 62 65 66 6f 72 65 ...}..d_assertions.resize(before
1d480 29 3b 00 20 20 7d 00 20 20 20 20 69 6e 74 6f 43 6f 6e 6a 75 6e 63 74 69 6f 6e 2e 70 75 73 68 5f );...}.....intoConjunction.push_
1d4a0 62 61 63 6b 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 29 3b 00 20 20 66 6f 72 28 73 69 7a back(d_assertions[i]);...for(siz
1d4c0 65 5f 74 20 69 20 3d 20 62 65 66 6f 72 65 3b 20 69 3c 63 75 72 72 3b 20 2b 2b 69 29 7b 00 20 20 e_t.i.=.before;.i<curr;.++i){...
1d4e0 73 74 64 3a 3a 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 20 69 6e 74 6f 43 6f 6e 6a 75 6e 63 74 69 6f std::vector<Node>.intoConjunctio
1d500 6e 3b 00 00 20 20 41 73 73 65 72 74 28 62 65 66 6f 72 65 20 3c 20 63 75 72 72 29 3b 00 20 20 41 n;....Assert(before.<.curr);...A
1d520 73 73 65 72 74 28 64 5f 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 20 3c 3d 20 62 65 66 ssert(d_realAssertionsEnd.<=.bef
1d540 6f 72 65 29 3b 00 20 20 41 73 73 65 72 74 28 30 20 3c 20 64 5f 72 65 61 6c 41 73 73 65 72 74 69 ore);...Assert(0.<.d_realAsserti
1d560 6f 6e 73 45 6e 64 29 3b 00 20 20 2f 2f 20 20 63 61 6e 20 62 65 20 6d 6f 64 69 66 69 65 64 00 20 onsEnd);...//..can.be.modified..
1d580 20 2f 2f 20 61 64 64 65 64 20 5b 62 65 66 6f 72 65 2c 20 63 75 72 72 29 00 20 20 2f 2f 20 20 63 .//.added.[before,.curr)...//..c
1d5a0 61 6e 6e 6f 74 20 62 65 20 6d 6f 76 65 64 00 20 20 2f 2f 20 69 74 65 73 20 73 6b 6f 6c 65 6d 73 annot.be.moved...//.ites.skolems
1d5c0 20 5b 64 5f 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 2c 20 62 65 66 6f 72 65 29 00 20 .[d_realAssertionsEnd,.before)..
1d5e0 20 2f 2f 20 20 63 61 6e 20 62 65 20 6d 6f 64 69 66 69 65 64 00 20 20 2f 2f 20 6f 72 69 67 69 6e .//..can.be.modified...//.origin
1d600 61 6c 3a 20 5b 30 20 2e 2e 2e 20 64 5f 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 29 00 al:.[0.....d_realAssertionsEnd).
1d620 20 20 2f 2f 20 61 73 73 65 72 74 69 6f 6e 73 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 3b ..//.assertions....}.....return;
1d640 00 20 20 20 20 20 64 5f 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 20 3e 3d 20 63 75 72 ......d_realAssertionsEnd.>=.cur
1d660 72 29 7b 00 20 20 20 20 20 64 5f 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 20 3c 3d 20 r){......d_realAssertionsEnd.<=.
1d680 30 20 7c 7c 00 20 20 69 66 28 62 65 66 6f 72 65 20 3e 3d 20 63 75 72 72 20 7c 7c 00 20 20 73 69 0.||...if(before.>=.curr.||...si
1d6a0 7a 65 5f 74 20 63 75 72 72 20 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b ze_t.curr.=.d_assertions.size();
1d6c0 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 63 6f 6d 70 72 65 73 73 .void.SmtEnginePrivate::compress
1d6e0 42 65 66 6f 72 65 52 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 28 73 69 7a 65 5f 74 20 62 65 66 6f BeforeRealAssertions(size_t.befo
1d700 72 65 29 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 00 20 20 7d 00 20 20 20 re){..}...return.result;...}....
1d720 20 63 6f 6d 70 72 65 73 73 42 65 66 6f 72 65 52 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 28 6e 75 .compressBeforeRealAssertions(nu
1d740 6d 41 73 73 65 72 74 69 6f 6e 4f 6e 45 6e 74 72 79 29 3b 00 20 20 69 66 28 6e 75 6d 41 73 73 65 mAssertionOnEntry);...if(numAsse
1d760 72 74 69 6f 6e 4f 6e 45 6e 74 72 79 20 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 rtionOnEntry.<.d_assertions.size
1d780 28 29 29 7b 00 20 20 62 6f 6f 6c 20 72 65 73 75 6c 74 20 3d 20 64 5f 73 6d 74 2e 64 5f 74 68 65 ()){...bool.result.=.d_smt.d_the
1d7a0 6f 72 79 45 6e 67 69 6e 65 2d 3e 64 6f 6e 65 50 50 53 69 6d 70 49 54 45 28 64 5f 61 73 73 65 72 oryEngine->donePPSimpITE(d_asser
1d7c0 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 72 65 tions.ref());...}.....}.......re
1d7e0 74 75 72 6e 20 66 61 6c 73 65 3b 00 20 20 20 20 69 66 28 72 65 73 75 6c 74 2e 69 73 43 6f 6e 73 turn.false;.....if(result.isCons
1d800 74 28 29 20 26 26 20 21 72 65 73 75 6c 74 2e 67 65 74 43 6f 6e 73 74 3c 62 6f 6f 6c 3e 28 29 29 t().&&.!result.getConst<bool>())
1d820 7b 00 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 70 6c 61 63 65 28 69 2c 20 72 65 {.....d_assertions.replace(i,.re
1d840 73 75 6c 74 29 3b 00 20 20 20 20 4e 6f 64 65 20 72 65 73 75 6c 74 20 3d 20 64 5f 73 6d 74 2e 64 sult);.....Node.result.=.d_smt.d
1d860 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 70 70 53 69 6d 70 49 54 45 28 64 5f 61 73 73 65 72 _theoryEngine->ppSimpITE(d_asser
1d880 74 69 6f 6e 73 5b 69 5d 29 3b 00 20 20 20 20 73 70 65 6e 64 52 65 73 6f 75 72 63 65 28 6f 70 74 tions[i]);.....spendResource(opt
1d8a0 69 6f 6e 73 3a 3a 70 72 65 70 72 6f 63 65 73 73 53 74 65 70 28 29 29 3b 00 20 20 66 6f 72 20 28 ions::preprocessStep());...for.(
1d8c0 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 unsigned.i.=.0;.i.<.d_assertions
1d8e0 2e 73 69 7a 65 28 29 3b 20 2b 2b 69 29 20 7b 00 20 20 75 6e 73 69 67 6e 65 64 20 6e 75 6d 41 73 .size();.++i).{...unsigned.numAs
1d900 73 65 72 74 69 6f 6e 4f 6e 45 6e 74 72 79 20 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 sertionOnEntry.=.d_assertions.si
1d920 7a 65 28 29 3b 00 00 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 ze();....Trace("simplify").<<."S
1d940 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d 70 49 54 45 28 29 22 20 3c 3c 20 65 mtEnginePrivate::simpITE()".<<.e
1d960 6e 64 6c 3b 00 00 20 20 73 70 65 6e 64 52 65 73 6f 75 72 63 65 28 6f 70 74 69 6f 6e 73 3a 3a 70 ndl;....spendResource(options::p
1d980 72 65 70 72 6f 63 65 73 73 53 74 65 70 28 29 29 3b 00 00 20 20 54 69 6d 65 72 53 74 61 74 3a 3a reprocessStep());....TimerStat::
1d9a0 43 6f 64 65 54 69 6d 65 72 20 73 69 6d 70 49 54 45 54 69 6d 65 72 28 64 5f 73 6d 74 2e 64 5f 73 CodeTimer.simpITETimer(d_smt.d_s
1d9c0 74 61 74 73 2d 3e 64 5f 73 69 6d 70 49 54 45 54 69 6d 65 29 3b 00 62 6f 6f 6c 20 53 6d 74 45 6e tats->d_simpITETime);.bool.SmtEn
1d9e0 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d 70 49 54 45 28 29 20 7b 00 00 7d 00 20 20 72 65 ginePrivate::simpITE().{..}...re
1da00 74 75 72 6e 20 74 72 75 65 3b 00 20 20 64 5f 70 72 6f 70 61 67 61 74 6f 72 4e 65 65 64 73 46 69 turn.true;...d_propagatorNeedsFi
1da20 6e 69 73 68 20 3d 20 74 72 75 65 3b 00 00 20 20 7d 00 20 20 20 20 20 20 52 65 77 72 69 74 65 72 nish.=.true;....}.......Rewriter
1da40 3a 3a 72 65 77 72 69 74 65 28 4e 6f 64 65 28 6c 65 61 72 6e 65 64 42 75 69 6c 64 65 72 29 29 29 ::rewrite(Node(learnedBuilder)))
1da60 3b 00 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 70 6c 61 63 65 28 64 5f 72 65 61 ;.....d_assertions.replace(d_rea
1da80 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 20 2d 20 31 2c 00 20 20 69 66 28 6c 65 61 72 6e 65 64 lAssertionsEnd.-.1,...if(learned
1daa0 42 75 69 6c 64 65 72 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 20 3e 20 31 29 20 7b 00 Builder.getNumChildren().>.1).{.
1dac0 00 20 20 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 64 64 53 75 ...d_topLevelSubstitutions.addSu
1dae0 62 73 74 69 74 75 74 69 6f 6e 73 28 6e 65 77 53 75 62 73 74 69 74 75 74 69 6f 6e 73 29 3b 00 20 bstitutions(newSubstitutions);..
1db00 20 2f 2f 20 62 65 63 61 75 73 65 20 53 75 62 73 74 69 74 75 74 69 6f 6e 4d 61 70 3a 3a 61 70 70 .//.because.SubstitutionMap::app
1db20 6c 79 20 64 6f 65 73 20 61 20 66 69 78 65 64 2d 70 6f 69 6e 74 20 69 74 65 72 61 74 69 6f 6e 20 ly.does.a.fixed-point.iteration.
1db40 77 68 65 6e 20 73 75 62 73 74 69 74 75 74 69 6e 67 00 20 20 2f 2f 20 4e 6f 74 65 20 74 68 61 74 when.substituting...//.Note.that
1db60 20 77 65 20 64 6f 6e 27 74 20 68 61 76 65 20 74 6f 20 6b 65 65 70 20 72 68 73 27 73 20 69 6e 20 .we.don't.have.to.keep.rhs's.in.
1db80 66 75 6c 6c 20 73 6f 6c 76 65 64 20 66 6f 72 6d 00 20 20 2f 2f 20 41 64 64 20 6e 65 77 20 73 75 full.solved.form...//.Add.new.su
1dba0 62 73 74 69 74 75 74 69 6f 6e 73 20 74 6f 20 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 bstitutions.to.topLevelSubstitut
1dbc0 69 6f 6e 73 00 00 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ions....}.......................
1dbe0 3c 3c 20 63 50 72 6f 70 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 <<.cProp.<<.endl;...............
1dc00 20 20 20 20 20 20 20 20 3c 3c 20 22 6e 6f 6e 2d 63 6c 61 75 73 61 6c 20 63 6f 6e 73 74 61 6e 74 ........<<."non-clausal.constant
1dc20 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 3a 20 22 00 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 .propagation.:.".....Trace("simp
1dc40 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e lify").<<."SmtEnginePrivate::non
1dc60 43 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 20 6c 65 61 72 6e 65 64 ClausalSimplify():.".....learned
1dc80 42 75 69 6c 64 65 72 20 3c 3c 20 63 50 72 6f 70 3b 00 20 20 20 20 73 2e 69 6e 73 65 72 74 28 63 Builder.<<.cProp;.....s.insert(c
1dca0 50 72 6f 70 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 20 20 20 Prop);.....}.......continue;....
1dcc0 20 69 66 20 28 73 2e 66 69 6e 64 28 63 50 72 6f 70 29 20 21 3d 20 73 2e 65 6e 64 28 29 29 20 7b .if.(s.find(cProp).!=.s.end()).{
1dce0 00 20 20 20 20 7d 00 20 20 20 20 20 20 41 73 73 65 72 74 28 52 65 77 72 69 74 65 72 3a 3a 72 65 .....}.......Assert(Rewriter::re
1dd00 77 72 69 74 65 28 63 50 72 6f 70 29 20 3d 3d 20 63 50 72 6f 70 29 3b 00 20 20 20 20 20 20 63 50 write(cProp).==.cProp);.......cP
1dd20 72 6f 70 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 63 50 72 6f 70 4e 65 77 rop.=.Rewriter::rewrite(cPropNew
1dd40 29 3b 00 20 20 20 20 69 66 20 28 63 50 72 6f 70 20 21 3d 20 63 50 72 6f 70 4e 65 77 29 20 7b 00 );.....if.(cProp.!=.cPropNew).{.
1dd60 20 20 20 20 4e 6f 64 65 20 63 50 72 6f 70 4e 65 77 20 3d 20 6e 65 77 53 75 62 73 74 69 74 75 74 ....Node.cPropNew.=.newSubstitut
1dd80 69 6f 6e 73 2e 61 70 70 6c 79 28 63 50 72 6f 70 29 3b 00 20 20 20 20 41 73 73 65 72 74 28 64 5f ions.apply(cProp);.....Assert(d_
1dda0 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 63 50 72 6f topLevelSubstitutions.apply(cPro
1ddc0 70 29 20 3d 3d 20 63 50 72 6f 70 29 3b 00 20 20 20 20 4e 6f 64 65 20 63 50 72 6f 70 20 3d 20 28 p).==.cProp);.....Node.cProp.=.(
1dde0 2a 70 6f 73 29 2e 66 69 72 73 74 2e 65 71 4e 6f 64 65 28 28 2a 70 6f 73 29 2e 73 65 63 6f 6e 64 *pos).first.eqNode((*pos).second
1de00 29 3b 00 20 20 66 6f 72 20 28 70 6f 73 20 3d 20 63 6f 6e 73 74 61 6e 74 50 72 6f 70 61 67 61 74 );...for.(pos.=.constantPropagat
1de20 69 6f 6e 73 2e 62 65 67 69 6e 28 29 3b 20 70 6f 73 20 21 3d 20 63 6f 6e 73 74 61 6e 74 50 72 6f ions.begin();.pos.!=.constantPro
1de40 70 61 67 61 74 69 6f 6e 73 2e 65 6e 64 28 29 3b 20 2b 2b 70 6f 73 29 20 7b 00 00 20 20 64 5f 6e pagations.end();.++pos).{....d_n
1de60 6f 6e 43 6c 61 75 73 61 6c 4c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 2e 63 6c 65 61 72 28 29 onClausalLearnedLiterals.clear()
1de80 3b 00 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 6c ;...}.......................<<.l
1dea0 65 61 72 6e 65 64 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 earned.<<.endl;.................
1dec0 20 20 20 20 20 20 3c 3c 20 22 6e 6f 6e 2d 63 6c 61 75 73 61 6c 20 6c 65 61 72 6e 65 64 20 3a 20 ......<<."non-clausal.learned.:.
1dee0 22 00 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 ".....Trace("simplify").<<."SmtE
1df00 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 6e 6f 6e 43 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 nginePrivate::nonClausalSimplify
1df20 28 29 3a 20 22 00 20 20 20 20 6c 65 61 72 6e 65 64 42 75 69 6c 64 65 72 20 3c 3c 20 6c 65 61 72 ():.".....learnedBuilder.<<.lear
1df40 6e 65 64 3b 00 20 20 20 20 73 2e 69 6e 73 65 72 74 28 6c 65 61 72 6e 65 64 29 3b 00 20 20 20 20 ned;.....s.insert(learned);.....
1df60 7d 00 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 20 20 20 20 69 66 20 28 73 2e 66 69 6e 64 }.......continue;.....if.(s.find
1df80 28 6c 65 61 72 6e 65 64 29 20 21 3d 20 73 2e 65 6e 64 28 29 29 20 7b 00 20 20 20 20 7d 00 20 20 (learned).!=.s.end()).{.....}...
1dfa0 20 20 20 20 6c 65 61 72 6e 65 64 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 ....learned.=.Rewriter::rewrite(
1dfc0 6c 65 61 72 6e 65 64 4e 65 77 29 3b 00 20 20 20 20 20 20 2b 2b 64 5f 73 6d 74 2e 64 5f 73 74 61 learnedNew);.......++d_smt.d_sta
1dfe0 74 73 2d 3e 64 5f 6e 75 6d 43 6f 6e 73 74 61 6e 74 50 72 6f 70 73 3b 00 20 20 20 20 20 20 7d 00 ts->d_numConstantProps;.......}.
1e000 61 64 00 00 78 01 00 00 e0 02 00 00 00 10 00 00 53 00 00 00 00 00 00 00 cd 0f 00 00 92 0f 00 00 ad..x...........S...............
1e020 49 0f 00 00 18 0f 00 00 ef 0e 00 00 ed 0e 00 00 ec 0e 00 00 99 0e 00 00 8d 0e 00 00 8c 0e 00 00 I...............................
1e040 39 0e 00 00 38 0e 00 00 25 0e 00 00 0c 0e 00 00 f6 0d 00 00 e2 0d 00 00 e1 0d 00 00 da 0d 00 00 9...8...%.......................
1e060 bc 0d 00 00 a8 0d 00 00 a7 0d 00 00 89 0d 00 00 68 0d 00 00 f3 0c 00 00 c8 0c 00 00 ba 0c 00 00 ................h...............
1e080 71 0c 00 00 08 0c 00 00 b4 0b 00 00 9b 0b 00 00 6e 0b 00 00 4e 0b 00 00 3f 0b 00 00 23 0b 00 00 q...............n...N...?...#...
1e0a0 1b 0b 00 00 dc 0a 00 00 7c 0a 00 00 5b 0a 00 00 3b 0a 00 00 06 0a 00 00 ac 09 00 00 88 09 00 00 ........|...[...;...............
1e0c0 31 09 00 00 ec 08 00 00 98 08 00 00 76 08 00 00 6e 08 00 00 4a 08 00 00 f3 07 00 00 ae 07 00 00 1...........v...n...J...........
1e0e0 5a 07 00 00 38 07 00 00 30 07 00 00 2a 07 00 00 29 07 00 00 ed 06 00 00 c5 06 00 00 aa 06 00 00 Z...8...0...*...)...............
1e100 91 06 00 00 89 06 00 00 83 06 00 00 64 06 00 00 62 06 00 00 61 06 00 00 f2 05 00 00 96 05 00 00 ............d...b...a...........
1e120 47 05 00 00 f1 04 00 00 b1 04 00 00 8f 04 00 00 4b 04 00 00 2c 04 00 00 f6 03 00 00 e9 03 00 00 G...............K...,...........
1e140 c9 03 00 00 c3 03 00 00 bf 03 00 00 bd 03 00 00 bc 03 00 00 54 03 00 00 30 03 00 00 19 03 00 00 ....................T...0.......
1e160 e0 02 00 00 8d 02 00 00 de 02 00 00 dd 02 00 00 db 02 00 00 9a 02 00 00 52 02 00 00 26 02 00 00 ........................R...&...
1e180 cf 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e1a0 00 00 00 20 20 66 6f 72 28 4e 6f 64 65 3a 3a 69 74 65 72 61 74 6f 72 20 6a 20 3d 20 6e 2e 62 65 .....for(Node::iterator.j.=.n.be
1e1c0 67 69 6e 28 29 3b 20 6a 20 21 3d 20 6e 2e 65 20 20 66 6f 72 28 4e 6f 64 65 3a 3a 69 74 65 72 61 gin();.j.!=.n.e..for(Node::itera
1e1e0 74 6f 72 20 6a 20 3d 20 6e 2e 62 65 67 69 6e 28 29 3b 20 6a 20 21 3d 20 6e 2e 65 6e 64 28 29 3b tor.j.=.n.begin();.j.!=.n.end();
1e200 20 2b 2b 6a 29 20 7b 00 20 20 73 69 7a 65 5f 74 20 72 65 6d 6f 76 61 6c 73 20 3d 20 30 3b 00 20 .++j).{...size_t.removals.=.0;..
1e220 20 41 73 73 65 72 20 20 66 6f 72 28 4e 6f 64 65 3a 3a 69 74 65 72 61 74 6f 72 20 6a 20 3d 20 6e .Asser..for(Node::iterator.j.=.n
1e240 2e 62 65 67 69 6e 28 29 3b 20 6a 20 21 3d 20 6e 2e 65 20 20 66 6f 72 28 4e 6f 64 65 3a 3a 69 74 .begin();.j.!=.n.e..for(Node::it
1e260 65 72 61 74 6f 72 20 6a 20 3d 20 6e 2e 62 65 67 69 6e 28 29 3b 20 6a 20 21 3d 20 6e 2e 65 6e 64 erator.j.=.n.begin();.j.!=.n.end
1e280 28 29 3b 20 2b 2b 6a 29 20 7b 00 20 20 20 20 66 6f 72 28 4e 6f 64 65 3a 3a 69 74 65 72 61 74 6f ();.++j).{.....for(Node::iterato
1e2a0 72 20 6a 20 3d 20 6e 2e 62 65 67 69 6e 28 29 3b 20 6a 20 21 3d 20 6e 2e 65 6e 64 28 29 3b 20 2b r.j.=.n.begin();.j.!=.n.end();.+
1e2c0 2b 6a 29 20 7b 00 20 20 73 69 7a 65 5f 74 20 72 65 6d 6f 76 61 6c 73 20 3d 20 30 3b 00 20 20 41 +j).{...size_t.removals.=.0;...A
1e2e0 20 20 66 6f 72 28 4e 6f 64 65 3a 3a 69 74 65 72 61 74 6f 72 20 6a 20 3d 20 6e 2e 62 65 67 69 6e ..for(Node::iterator.j.=.n.begin
1e300 28 29 3b 20 6a 20 21 3d 20 6e 2e 65 6e 64 28 29 3b 20 2b 2b 6a 29 20 7b 00 20 20 73 69 7a 65 5f ();.j.!=.n.end();.++j).{...size_
1e320 74 20 72 65 6d 6f 76 61 6c 73 20 3d 20 30 3b 00 20 20 41 73 73 65 72 74 28 6e 2e 67 65 74 4b 69 t.removals.=.0;...Assert(n.getKi
1e340 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 4e 44 29 3b 00 73 69 7a 65 5f 74 20 53 6d 74 45 6e nd().==.kind::AND);.size_t.SmtEn
1e360 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 72 65 6d 6f 76 65 46 72 6f 6d 43 6f 6e 6a 75 6e 63 74 69 ginePrivate::removeFromConjuncti
1e380 6f 6e 28 4e 6f 64 65 26 20 6e 2c 20 63 6f 6e 73 74 20 73 74 64 3a 3a 68 61 73 68 5f 73 65 74 3c on(Node&.n,.const.std::hash_set<
1e3a0 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 3e 26 20 74 6f 52 65 6d 6f 76 65 29 20 7b 00 00 7d 00 20 unsigned.long>&.toRemove).{..}..
1e3c0 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 61 73 73 65 72 74 69 6f 6e 73 2e 70 75 73 68 5f 62 .}.....}.......assertions.push_b
1e3e0 61 63 6b 28 2a 69 29 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 74 72 61 63 ack(*i);.....}.else.{.......trac
1e400 65 42 61 63 6b 54 6f 41 73 73 65 72 74 69 6f 6e 73 28 28 2a 6a 29 2e 73 65 63 6f 6e 64 2c 20 61 eBackToAssertions((*j).second,.a
1e420 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 20 20 69 66 28 21 28 2a 6a 29 2e 73 65 63 6f 6e 64 2e ssertions);.....if(!(*j).second.
1e440 65 6d 70 74 79 28 29 29 20 7b 00 20 20 20 20 2f 2f 20 69 66 20 74 65 72 6d 20 6d 61 70 73 20 74 empty()).{.....//.if.term.maps.t
1e460 6f 20 65 6d 70 74 79 2c 20 74 68 61 74 20 6d 65 61 6e 73 20 69 74 27 73 20 61 20 74 6f 70 2d 6c o.empty,.that.means.it's.a.top-l
1e480 65 76 65 6c 20 61 73 73 65 72 74 69 6f 6e 00 20 20 20 20 41 73 73 65 72 74 28 6a 20 21 3d 20 62 evel.assertion.....Assert(j.!=.b
1e4a0 61 63 6b 45 64 67 65 73 2e 65 6e 64 28 29 29 3b 00 20 20 20 20 2f 2f 20 74 65 72 6d 20 6d 75 73 ackEdges.end());.....//.term.mus
1e4c0 74 20 61 70 70 65 61 72 20 69 6e 20 6d 61 70 2c 20 6f 74 68 65 72 77 69 73 65 20 68 6f 77 20 64 t.appear.in.map,.otherwise.how.d
1e4e0 69 64 20 77 65 20 67 65 74 20 68 65 72 65 3f 21 00 20 20 20 20 62 6f 6f 6c 65 61 6e 73 3a 3a 43 id.we.get.here?!.....booleans::C
1e500 69 72 63 75 69 74 50 72 6f 70 61 67 61 74 6f 72 3a 3a 42 61 63 6b 45 64 67 65 73 4d 61 70 3a 3a ircuitPropagator::BackEdgesMap::
1e520 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 6a 20 3d 20 62 61 63 6b 45 64 67 65 73 2e 66 69 6e const_iterator.j.=.backEdges.fin
1e540 64 28 2a 69 29 3b 00 20 20 66 6f 72 28 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 3a 3a 63 6f 6e 73 74 d(*i);...for(vector<Node>::const
1e560 5f 69 74 65 72 61 74 6f 72 20 69 20 3d 20 6e 6f 64 65 73 2e 62 65 67 69 6e 28 29 3b 20 69 20 21 _iterator.i.=.nodes.begin();.i.!
1e580 3d 20 6e 6f 64 65 73 2e 65 6e 64 28 29 3b 20 2b 2b 69 29 20 7b 00 20 20 63 6f 6e 73 74 20 62 6f =.nodes.end();.++i).{...const.bo
1e5a0 6f 6c 65 61 6e 73 3a 3a 43 69 72 63 75 69 74 50 72 6f 70 61 67 61 74 6f 72 3a 3a 42 61 63 6b 45 oleans::CircuitPropagator::BackE
1e5c0 64 67 65 73 4d 61 70 26 20 62 61 63 6b 45 64 67 65 73 20 3d 20 64 5f 70 72 6f 70 61 67 61 74 6f dgesMap&.backEdges.=.d_propagato
1e5e0 72 2e 67 65 74 42 61 63 6b 45 64 67 65 73 28 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 r.getBackEdges();.void.SmtEngine
1e600 50 72 69 76 61 74 65 3a 3a 74 72 61 63 65 42 61 63 6b 54 6f 41 73 73 65 72 74 69 6f 6e 73 28 63 Private::traceBackToAssertions(c
1e620 6f 6e 73 74 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 26 20 6e 6f 64 65 73 2c 20 73 onst.std::vector<Node>&.nodes,.s
1e640 74 64 3a 3a 76 65 63 74 6f 72 3c 54 4e 6f 64 65 3e 26 20 61 73 73 65 72 74 69 6f 6e 73 29 20 7b td::vector<TNode>&.assertions).{
1e660 00 00 7d 00 20 20 7d 20 77 68 69 6c 65 28 21 20 77 6f 72 6b 6c 69 73 74 2e 65 6d 70 74 79 28 29 ..}...}.while(!.worklist.empty()
1e680 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 64 6f 6e 65 2e 69 6e );.....}.......}.........done.in
1e6a0 73 65 72 74 28 2a 69 29 3b 00 20 20 20 20 20 20 20 20 77 6f 72 6b 6c 69 73 74 2e 70 75 73 68 28 sert(*i);.........worklist.push(
1e6c0 2a 69 29 3b 00 20 20 20 20 20 20 69 66 28 64 6f 6e 65 2e 66 69 6e 64 28 2a 69 29 20 3d 3d 20 64 *i);.......if(done.find(*i).==.d
1e6e0 6f 6e 65 2e 65 6e 64 28 29 29 20 7b 00 20 20 20 20 66 6f 72 28 54 4e 6f 64 65 3a 3a 69 74 65 72 one.end()).{.....for(TNode::iter
1e700 61 74 6f 72 20 69 20 3d 20 6e 2e 62 65 67 69 6e 28 29 3b 20 69 20 21 3d 20 6e 2e 65 6e 64 28 29 ator.i.=.n.begin();.i.!=.n.end()
1e720 3b 20 2b 2b 69 29 20 7b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 ;.++i).{......}.......}.........
1e740 61 73 73 65 72 74 69 6f 6e 73 2e 70 75 73 68 5f 62 61 63 6b 28 75 62 29 3b 00 20 20 20 20 20 20 assertions.push_back(ub);.......
1e760 20 20 54 72 61 63 65 28 22 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 73 22 29 20 3c 3c 20 ..Trace("constrainSubtypes").<<.
1e780 22 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 73 28 29 3a 20 61 73 73 65 72 74 20 22 20 3c "constrainSubtypes():.assert.".<
1e7a0 3c 20 75 62 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 75 62 20 3d 20 <.ub.<<.endl;.........Node.ub.=.
1e7c0 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 NodeManager::currentNM()->mkNode
1e7e0 28 6b 69 6e 64 3a 3a 4c 45 51 2c 20 6e 2c 20 63 29 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 (kind::LEQ,.n,.c);.........Node.
1e800 63 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b c.=.NodeManager::currentNM()->mk
1e820 43 6f 6e 73 74 28 52 61 74 69 6f 6e 61 6c 28 62 6f 75 6e 64 73 2e 75 70 70 65 72 2e 67 65 74 42 Const(Rational(bounds.upper.getB
1e840 6f 75 6e 64 28 29 29 29 3b 00 20 20 20 20 20 20 69 66 28 62 6f 75 6e 64 73 2e 75 70 70 65 72 2e ound()));.......if(bounds.upper.
1e860 68 61 73 42 6f 75 6e 64 28 29 29 20 7b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 61 73 hasBound()).{.......}.........as
1e880 73 65 72 74 69 6f 6e 73 2e 70 75 73 68 5f 62 61 63 6b 28 6c 62 29 3b 00 20 20 20 20 20 20 20 20 sertions.push_back(lb);.........
1e8a0 54 72 61 63 65 28 22 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 73 22 29 20 3c 3c 20 22 63 Trace("constrainSubtypes").<<."c
1e8c0 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 73 28 29 3a 20 61 73 73 65 72 74 20 22 20 3c 3c 20 onstrainSubtypes():.assert.".<<.
1e8e0 6c 62 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 6c 62 20 3d 20 4e 6f lb.<<.endl;.........Node.lb.=.No
1e900 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 28 6b deManager::currentNM()->mkNode(k
1e920 69 6e 64 3a 3a 4c 45 51 2c 20 63 2c 20 6e 29 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 63 20 ind::LEQ,.c,.n);.........Node.c.
1e940 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 6f =.NodeManager::currentNM()->mkCo
1e960 6e 73 74 28 52 61 74 69 6f 6e 61 6c 28 62 6f 75 6e 64 73 2e 6c 6f 77 65 72 2e 67 65 74 42 6f 75 nst(Rational(bounds.lower.getBou
1e980 6e 64 28 29 29 29 3b 00 20 20 20 20 20 20 69 66 28 62 6f 75 6e 64 73 2e 6c 6f 77 65 72 2e 68 61 nd()));.......if(bounds.lower.ha
1e9a0 73 42 6f 75 6e 64 28 29 29 20 7b 00 20 20 20 20 20 20 54 72 61 63 65 28 22 63 6f 6e 73 74 72 61 sBound()).{.......Trace("constra
1e9c0 69 6e 53 75 62 74 79 70 65 73 22 29 20 3c 3c 20 22 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 inSubtypes").<<."constrainSubtyp
1e9e0 65 73 28 29 3a 20 67 6f 74 20 62 6f 75 6e 64 73 20 22 20 3c 3c 20 62 6f 75 6e 64 73 20 3c 3c 20 es():.got.bounds.".<<.bounds.<<.
1ea00 65 6e 64 6c 3b 00 20 20 20 20 20 20 53 75 62 72 61 6e 67 65 42 6f 75 6e 64 73 20 62 6f 75 6e 64 endl;.......SubrangeBounds.bound
1ea20 73 20 3d 20 74 2e 67 65 74 53 75 62 72 61 6e 67 65 42 6f 75 6e 64 73 28 29 3b 00 20 20 20 20 7d s.=.t.getSubrangeBounds();.....}
1ea40 20 65 6c 73 65 20 69 66 28 74 2e 69 73 53 75 62 72 61 6e 67 65 28 29 29 20 7b 00 20 20 20 20 20 .else.if(t.isSubrange()).{......
1ea60 20 61 73 73 65 72 74 69 6f 6e 73 2e 70 75 73 68 5f 62 61 63 6b 28 61 70 70 29 3b 00 20 20 20 20 .assertions.push_back(app);.....
1ea80 20 20 54 72 61 63 65 28 22 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 73 22 29 20 3c 3c 20 ..Trace("constrainSubtypes").<<.
1eaa0 22 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 73 28 29 3a 20 61 73 73 65 72 74 28 22 20 3c "constrainSubtypes():.assert(".<
1eac0 3c 20 6b 20 3c 3c 20 22 29 20 22 20 3c 3c 20 61 70 70 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 <.k.<<.").".<<.app.<<.endl;.....
1eae0 20 20 4e 6f 64 65 20 61 70 70 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e ..Node.app.=.NodeManager::curren
1eb00 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 28 6b 2c 20 70 72 65 64 2c 20 6e 29 3b 00 20 20 20 20 20 tNM()->mkNode(k,.pred,.n);......
1eb20 20 7d 00 20 20 20 20 20 20 20 20 6b 20 3d 20 6b 69 6e 64 3a 3a 41 50 50 4c 59 5f 55 46 3b 00 20 .}.........k.=.kind::APPLY_UF;..
1eb40 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 6b 20 3d 20 6b 69 6e 64 3a 3a .....}.else.{.........k.=.kind::
1eb60 41 50 50 4c 59 5f 54 45 53 54 45 52 3b 00 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 70 72 APPLY_TESTER;.......}.else.if(pr
1eb80 65 64 2e 67 65 74 54 79 70 65 28 29 2e 69 73 54 65 73 74 65 72 28 29 29 20 7b 00 20 20 20 20 20 ed.getType().isTester()).{......
1eba0 20 20 20 6b 20 3d 20 6b 69 6e 64 3a 3a 41 50 50 4c 59 3b 00 20 20 20 20 20 20 69 66 28 64 5f 73 ...k.=.kind::APPLY;.......if(d_s
1ebc0 6d 74 2e 64 5f 64 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 2d 3e 66 69 6e 64 28 70 72 65 64 mt.d_definedFunctions->find(pred
1ebe0 29 20 21 3d 20 64 5f 73 6d 74 2e 64 5f 64 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 2d 3e 65 ).!=.d_smt.d_definedFunctions->e
1ec00 6e 64 28 29 29 20 7b 00 20 20 20 20 20 20 54 72 61 63 65 28 22 63 6f 6e 73 74 72 61 69 6e 53 75 nd()).{.......Trace("constrainSu
1ec20 62 74 79 70 65 73 22 29 20 3c 3c 20 22 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 73 28 29 btypes").<<."constrainSubtypes()
1ec40 3a 20 70 72 65 64 2e 67 65 74 54 79 70 65 28 29 20 3d 3d 20 22 20 3c 3c 20 70 72 65 64 2e 67 65 :.pred.getType().==.".<<.pred.ge
1ec60 74 54 79 70 65 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 2f 2f 20 70 72 65 64 20 63 tType().<<.endl;.......//.pred.c
1ec80 61 6e 20 62 65 20 61 20 4c 41 4d 42 44 41 2c 20 61 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 an.be.a.LAMBDA,.a.function.const
1eca0 61 6e 74 2c 20 6f 72 20 61 20 64 61 74 61 74 79 70 65 20 74 65 73 74 65 72 00 20 20 20 20 20 20 ant,.or.a.datatype.tester.......
1ecc0 4b 69 6e 64 20 6b 3b 00 20 20 20 20 20 20 4e 6f 64 65 20 70 72 65 64 20 3d 20 74 2e 67 65 74 53 Kind.k;.......Node.pred.=.t.getS
1ece0 75 62 74 79 70 65 50 72 65 64 69 63 61 74 65 28 29 3b 00 20 20 20 20 20 20 57 61 72 6e 69 6e 67 ubtypePredicate();.......Warning
1ed00 4f 6e 63 65 28 29 20 3c 3c 20 22 57 61 72 6e 69 6e 67 3a 20 43 56 43 34 20 64 6f 65 73 6e 27 74 Once().<<."Warning:.CVC4.doesn't
1ed20 20 79 65 74 20 64 6f 20 63 68 65 63 6b 69 6e 67 20 74 68 61 74 20 70 72 65 64 69 63 61 74 65 20 .yet.do.checking.that.predicate.
1ed40 73 75 62 74 79 70 65 73 20 61 72 65 20 6e 6f 6e 65 6d 70 74 79 20 64 6f 6d 61 69 6e 73 22 20 3c subtypes.are.nonempty.domains".<
1ed60 3c 20 65 6e 64 6c 3b 00 20 20 20 20 69 66 28 74 2e 69 73 50 72 65 64 69 63 61 74 65 53 75 62 74 <.endl;.....if(t.isPredicateSubt
1ed80 79 70 65 28 29 29 20 7b 00 20 20 20 20 54 79 70 65 4e 6f 64 65 20 74 20 3d 20 6e 2e 67 65 74 54 ype()).{.....TypeNode.t.=.n.getT
1eda0 79 70 65 28 29 3b 00 00 20 20 20 20 77 6f 72 6b 6c 69 73 74 2e 70 6f 70 28 29 3b 00 20 20 20 20 ype();......worklist.pop();.....
1edc0 54 4e 6f 64 65 20 6e 20 3d 20 77 6f 72 6b 6c 69 73 74 2e 74 6f 70 28 29 3b 00 20 20 64 6f 20 7b TNode.n.=.worklist.top();...do.{
1ede0 00 00 20 20 64 6f 6e 65 2e 69 6e 73 65 72 74 28 74 6f 70 29 3b 00 20 20 77 6f 72 6b 6c 69 73 74 ....done.insert(top);...worklist
1ee00 2e 70 75 73 68 28 74 6f 70 29 3b 00 20 20 73 74 61 63 6b 3c 54 4e 6f 64 65 3e 20 77 6f 72 6b 6c .push(top);...stack<TNode>.workl
1ee20 69 73 74 3b 00 20 20 73 65 74 3c 54 4e 6f 64 65 3e 20 64 6f 6e 65 3b 00 00 20 20 54 72 61 63 65 ist;...set<TNode>.done;....Trace
1ee40 28 22 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 73 22 29 20 3c 3c 20 22 63 6f 6e 73 74 72 ("constrainSubtypes").<<."constr
1ee60 61 69 6e 53 75 62 74 79 70 65 73 28 29 3a 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 22 20 3c 3c 20 74 ainSubtypes():.looking.at.".<<.t
1ee80 6f 70 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 74 68 72 6f 77 28 29 20 7b 00 76 6f 69 64 20 53 6d op.<<.endl;....throw().{.void.Sm
1eea0 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 tEnginePrivate::constrainSubtype
1eec0 73 28 54 4e 6f 64 65 20 74 6f 70 2c 20 41 73 73 65 72 74 69 6f 6e 50 69 70 65 6c 69 6e 65 26 20 s(TNode.top,.AssertionPipeline&.
1eee0 61 73 73 65 72 74 69 6f 6e 73 29 00 00 7d 00 20 20 41 73 73 65 72 74 28 64 5f 61 73 73 65 72 74 assertions)..}...Assert(d_assert
1ef00 69 6f 6e 73 2e 73 69 7a 65 28 29 20 3d 3d 20 62 65 66 6f 72 65 29 3b 00 20 20 64 5f 61 73 73 65 ions.size().==.before);...d_asse
1ef20 72 74 69 6f 6e 73 2e 72 65 70 6c 61 63 65 28 6c 61 73 74 42 65 66 6f 72 65 49 74 65 73 2c 20 6e rtions.replace(lastBeforeItes,.n
1ef40 65 77 4c 61 73 74 29 3b 00 20 20 4e 6f 64 65 20 6e 65 77 4c 61 73 74 20 3d 20 75 74 69 6c 3a 3a ewLast);...Node.newLast.=.util::
1ef60 4e 61 72 79 42 75 69 6c 64 65 72 3a 3a 6d 6b 41 73 73 6f 63 28 6b 69 6e 64 3a 3a 41 4e 44 2c 20 NaryBuilder::mkAssoc(kind::AND,.
1ef80 69 6e 74 6f 43 6f 6e 6a 75 6e 63 74 69 6f 6e 29 3b 00 20 20 69 6e 74 6f 43 6f 6e 6a 75 6e 63 74 intoConjunction);...intoConjunct
1efa0 69 6f 6e 2e 70 75 73 68 5f 62 61 63 6b 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 6c 61 73 74 42 ion.push_back(d_assertions[lastB
1efc0 65 66 6f 72 65 49 74 65 73 5d 29 3b 00 20 20 73 69 7a 65 5f 74 20 6c 61 73 74 42 65 66 6f 72 65 eforeItes]);...size_t.lastBefore
1efe0 49 74 65 73 20 3d 20 64 5f 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 20 2d 20 31 3b 00 Ites.=.d_realAssertionsEnd.-.1;.
1f000 61 64 00 00 1b 00 00 00 d3 01 00 00 00 10 00 00 67 00 00 00 00 00 00 00 e4 0f 00 00 d1 0f 00 00 ad..............g...............
1f020 9a 0f 00 00 37 0f 00 00 15 0f 00 00 f7 0e 00 00 db 0e 00 00 ba 0e 00 00 a8 0e 00 00 99 0e 00 00 ....7...........................
1f040 85 0e 00 00 7d 0e 00 00 59 0e 00 00 1d 0e 00 00 07 0e 00 00 d6 0d 00 00 c2 0d 00 00 79 0d 00 00 ....}...Y...................y...
1f060 54 0d 00 00 3e 0d 00 00 2b 0d 00 00 16 0d 00 00 0a 0d 00 00 f9 0c 00 00 e6 0c 00 00 dc 0c 00 00 T...>...+.......................
1f080 d4 0c 00 00 b0 0c 00 00 9c 0c 00 00 89 0c 00 00 5e 0c 00 00 4c 0c 00 00 39 0c 00 00 2a 0c 00 00 ................^...L...9...*...
1f0a0 1b 0c 00 00 13 0c 00 00 f3 0b 00 00 dc 0b 00 00 d6 0b 00 00 d2 0b 00 00 d1 0b 00 00 b8 0b 00 00 ................................
1f0c0 ac 0b 00 00 aa 0b 00 00 a9 0b 00 00 80 0b 00 00 4a 0b 00 00 20 0b 00 00 1f 0b 00 00 c3 0a 00 00 ................J...............
1f0e0 97 0a 00 00 96 0a 00 00 68 0a 00 00 20 0a 00 00 1f 0a 00 00 eb 09 00 00 92 09 00 00 6c 09 00 00 ........h...................l...
1f100 fb 08 00 00 eb 08 00 00 e5 08 00 00 e4 08 00 00 c6 08 00 00 70 08 00 00 13 08 00 00 c3 07 00 00 ....................p...........
1f120 a4 07 00 00 83 07 00 00 4b 07 00 00 3c 07 00 00 1a 07 00 00 12 07 00 00 0c 07 00 00 df 06 00 00 ........K...<...................
1f140 c5 06 00 00 9a 06 00 00 67 06 00 00 32 06 00 00 ff 05 00 00 a3 05 00 00 6f 05 00 00 43 05 00 00 ........g...2...........o...C...
1f160 29 05 00 00 e7 04 00 00 d8 04 00 00 d0 04 00 00 94 04 00 00 4f 04 00 00 35 04 00 00 e8 03 00 00 )...................O...5.......
1f180 d9 03 00 00 d1 03 00 00 63 03 00 00 49 03 00 00 fb 02 00 00 ec 02 00 00 e4 02 00 00 b7 02 00 00 ........c...I...................
1f1a0 93 02 00 00 53 02 00 00 15 02 00 00 ed 01 00 00 d3 01 00 00 9a 02 00 00 84 02 00 00 69 02 00 00 ....S.......................i...
1f1c0 4d 02 00 00 2e 02 00 00 10 02 00 00 0f 02 00 00 fe 01 00 20 20 20 20 20 20 20 20 65 6c 69 67 69 M..........................eligi
1f1e0 62 6c 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 6a 29 5b ble.=.false;...............(*j)[
1f200 31 5d 5b 31 5d 2e 69 73 56 61 72 28 29 20 29 20 29 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 1][1].isVar().).)).{............
1f220 20 28 20 28 2a 6a 29 5b 31 5d 5b 30 5d 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a .(.(*j)[1][0].getKind().==.kind:
1f240 3a 43 4f 4e 53 54 5f 52 41 54 49 4f 4e 41 4c 20 26 26 00 20 20 20 20 20 20 20 20 20 20 20 20 20 :CONST_RATIONAL.&&..............
1f260 20 28 2a 6a 29 5b 31 5d 5b 31 5d 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 43 .(*j)[1][1].getKind().==.kind::C
1f280 4f 4e 53 54 5f 52 41 54 49 4f 4e 41 4c 20 29 20 7c 7c 00 20 20 20 20 20 20 20 20 20 21 28 20 28 ONST_RATIONAL.).||..........!(.(
1f2a0 20 28 2a 6a 29 5b 31 5d 5b 30 5d 2e 69 73 56 61 72 28 29 20 26 26 00 20 20 20 20 20 20 69 66 28 .(*j)[1][0].isVar().&&.......if(
1f2c0 28 2a 6a 29 5b 31 5d 2e 67 65 74 4b 69 6e 64 28 29 20 21 3d 20 6b 69 6e 64 3a 3a 45 51 55 41 4c (*j)[1].getKind().!=.kind::EQUAL
1f2e0 20 7c 7c 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 .||.......}.........break;......
1f300 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 2d 2d 20 49 4e 45 4c ...Debug("miplib").<<."..--.INEL
1f320 49 47 49 42 4c 45 20 2d 2d 20 28 6e 6f 74 20 2f 5c 5c 20 6f 72 20 6c 69 74 65 72 61 6c 29 22 20 IGIBLE.--.(not./\\.or.literal)".
1f340 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 65 6c 69 67 69 62 6c 65 20 3d 20 66 61 6c 73 <<.endl;.........eligible.=.fals
1f360 65 3b 00 20 20 20 20 20 20 69 66 28 63 6f 6e 6a 2e 67 65 74 4b 69 6e 64 28 29 20 21 3d 20 6b 69 e;.......if(conj.getKind().!=.ki
1f380 6e 64 3a 3a 41 4e 44 20 26 26 20 21 63 6f 6e 6a 2e 69 73 56 61 72 28 29 20 26 26 20 21 28 63 6f nd::AND.&&.!conj.isVar().&&.!(co
1f3a0 6e 6a 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 4e 4f 54 20 26 26 20 63 6f 6e nj.getKind().==.kind::NOT.&&.con
1f3c0 6a 5b 30 5d 2e 69 73 56 61 72 28 29 29 29 20 7b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 j[0].isVar())).{.......}........
1f3e0 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 .break;.........Debug("miplib").
1f400 3c 3c 20 22 20 20 2d 2d 20 49 4e 45 4c 49 47 49 42 4c 45 20 2d 2d 20 28 4e 2d 61 72 79 20 2f 5c <<."..--.INELIGIBLE.--.(N-ary./\
1f420 5c 20 74 6f 6f 20 62 69 67 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 65 6c 69 \.too.big)".<<.endl;.........eli
1f440 67 69 62 6c 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 69 66 28 63 6f 6e 6a 2e 67 65 74 gible.=.false;.......if(conj.get
1f460 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 4e 44 20 26 26 20 63 6f 6e 6a 2e 67 65 74 4e Kind().==.kind::AND.&&.conj.getN
1f480 75 6d 43 68 69 6c 64 72 65 6e 28 29 20 3e 20 36 29 20 7b 00 20 20 20 20 20 20 4e 6f 64 65 20 63 umChildren().>.6).{.......Node.c
1f4a0 6f 6e 6a 20 3d 20 42 6f 6f 6c 65 61 6e 53 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 3a 3a 73 69 6d onj.=.BooleanSimplification::sim
1f4c0 70 6c 69 66 79 28 28 2a 6a 29 5b 30 5d 29 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 plify((*j)[0]);.......}.........
1f4e0 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c break;.........Debug("miplib").<
1f500 3c 20 22 20 20 2d 2d 20 49 4e 45 4c 49 47 49 42 4c 45 20 2d 2d 20 28 6e 6f 74 20 3d 3e 29 22 20 <."..--.INELIGIBLE.--.(not.=>)".
1f520 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 65 6c 69 67 69 62 6c 65 20 3d 20 66 61 6c 73 <<.endl;.........eligible.=.fals
1f540 65 3b 00 20 20 20 20 20 20 69 66 28 28 2a 6a 29 2e 67 65 74 4b 69 6e 64 28 29 20 21 3d 20 6b 69 e;.......if((*j).getKind().!=.ki
1f560 6e 64 3a 3a 49 4d 50 4c 49 45 53 29 20 7b 00 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c nd::IMPLIES).{.......Debug("mipl
1f580 69 62 22 29 20 3c 3c 20 22 20 20 66 6f 75 6e 64 3a 20 22 20 3c 3c 20 2a 6a 20 3c 3c 20 65 6e 64 ib").<<."..found:.".<<.*j.<<.end
1f5a0 6c 3b 00 20 20 20 20 66 6f 72 28 76 65 63 74 6f 72 3c 54 4e 6f 64 65 3e 3a 3a 63 6f 6e 73 74 5f l;.....for(vector<TNode>::const_
1f5c0 69 74 65 72 61 74 6f 72 20 6a 20 3d 20 61 73 73 65 72 74 69 6f 6e 73 2e 62 65 67 69 6e 28 29 3b iterator.j.=.assertions.begin();
1f5e0 20 6a 20 21 3d 20 61 73 73 65 72 74 69 6f 6e 73 2e 65 6e 64 28 29 3b 20 2b 2b 6a 29 20 7b 00 20 .j.!=.assertions.end();.++j).{..
1f600 20 20 20 6d 61 70 3c 70 61 69 72 3c 4e 6f 64 65 2c 20 4e 6f 64 65 3e 2c 20 76 65 63 74 6f 72 3c ...map<pair<Node,.Node>,.vector<
1f620 54 4e 6f 64 65 3e 20 3e 20 61 73 73 65 72 74 73 3b 00 20 20 20 20 6d 61 70 3c 70 61 69 72 3c 4e TNode>.>.asserts;.....map<pair<N
1f640 6f 64 65 2c 20 4e 6f 64 65 3e 2c 20 76 65 63 74 6f 72 3c 52 61 74 69 6f 6e 61 6c 3e 20 3e 20 63 ode,.Node>,.vector<Rational>.>.c
1f660 68 65 63 6b 73 3b 00 20 20 20 20 6d 61 70 3c 70 61 69 72 3c 4e 6f 64 65 2c 20 4e 6f 64 65 3e 2c hecks;.....map<pair<Node,.Node>,
1f680 20 76 65 63 74 6f 72 3c 52 61 74 69 6f 6e 61 6c 3e 20 3e 20 63 6f 65 66 3b 00 20 20 20 20 6d 61 .vector<Rational>.>.coef;.....ma
1f6a0 70 3c 70 61 69 72 3c 4e 6f 64 65 2c 20 4e 6f 64 65 3e 2c 20 75 69 6e 74 36 34 5f 74 3e 20 6d 61 p<pair<Node,.Node>,.uint64_t>.ma
1f6c0 72 6b 73 3b 00 20 20 20 20 62 6f 6f 6c 20 65 6c 69 67 69 62 6c 65 20 3d 20 74 72 75 65 3b 00 20 rks;.....bool.eligible.=.true;..
1f6e0 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 66 6f 72 20 22 20 3c 3c 20 ...Debug("miplib").<<."for.".<<.
1f700 2a 69 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 *i.<<.endl;.....}.......}.......
1f720 20 20 61 73 73 65 72 74 69 6f 6e 73 2e 70 75 73 68 5f 62 61 63 6b 28 2a 69 29 3b 00 20 20 20 20 ..assertions.push_back(*i);.....
1f740 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 74 72 61 63 65 42 61 63 6b 54 6f 41 73 ..}.else.{.........traceBackToAs
1f760 73 65 72 74 69 6f 6e 73 28 28 2a 6a 29 2e 73 65 63 6f 6e 64 2c 20 61 73 73 65 72 74 69 6f 6e 73 sertions((*j).second,.assertions
1f780 29 3b 00 20 20 20 20 20 20 69 66 28 21 28 2a 6a 29 2e 73 65 63 6f 6e 64 2e 65 6d 70 74 79 28 29 );.......if(!(*j).second.empty()
1f7a0 29 20 7b 00 20 20 20 20 69 66 28 6a 20 21 3d 20 62 61 63 6b 45 64 67 65 73 2e 65 6e 64 28 29 29 ).{.....if(j.!=.backEdges.end())
1f7c0 20 7b 00 20 20 20 20 2f 2f 20 69 66 20 6d 61 70 73 20 74 6f 20 61 6e 20 65 6d 70 74 79 20 76 65 .{.....//.if.maps.to.an.empty.ve
1f7e0 63 74 6f 72 2c 20 74 68 61 74 20 6d 65 61 6e 73 20 74 68 65 20 62 6f 6f 6c 20 76 61 72 20 77 61 ctor,.that.means.the.bool.var.wa
1f800 73 20 61 73 73 65 72 74 65 64 20 69 74 73 65 6c 66 2e 00 20 20 20 20 2f 2f 20 69 66 20 6e 6f 74 s.asserted.itself......//.if.not
1f820 20 69 6e 20 62 61 63 6b 20 65 64 67 65 73 20 6d 61 70 2c 20 74 68 65 20 62 6f 6f 6c 20 76 61 72 .in.back.edges.map,.the.bool.var
1f840 20 69 73 20 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 2c 20 73 68 6f 77 69 6e 67 20 75 70 20 69 6e .is.unconstrained,.showing.up.in
1f860 20 6e 6f 20 61 73 73 65 72 74 69 6f 6e 73 2e 00 20 20 20 20 62 6f 6f 6c 65 61 6e 73 3a 3a 43 69 .no.assertions......booleans::Ci
1f880 72 63 75 69 74 50 72 6f 70 61 67 61 74 6f 72 3a 3a 42 61 63 6b 45 64 67 65 73 4d 61 70 3a 3a 63 rcuitPropagator::BackEdgesMap::c
1f8a0 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 6a 20 3d 20 62 61 63 6b 45 64 67 65 73 2e 66 69 6e 64 onst_iterator.j.=.backEdges.find
1f8c0 28 2a 69 29 3b 00 20 20 20 20 76 65 63 74 6f 72 3c 54 4e 6f 64 65 3e 20 61 73 73 65 72 74 69 6f (*i);.....vector<TNode>.assertio
1f8e0 6e 73 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 20 20 20 20 20 ns;......}.......continue;......
1f900 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 69 6e 65 6c 69 67 69 62 6c 65 3a .Debug("miplib").<<."ineligible:
1f920 20 22 20 3c 3c 20 2a 69 20 3c 3c 20 22 20 62 65 63 61 75 73 65 20 61 73 73 69 67 6e 65 64 20 22 .".<<.*i.<<.".because.assigned."
1f940 20 3c 3c 20 64 5f 70 72 6f 70 61 67 61 74 6f 72 2e 67 65 74 41 73 73 69 67 6e 6d 65 6e 74 28 2a .<<.d_propagator.getAssignment(*
1f960 69 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 69 66 28 64 5f 70 72 6f 70 61 67 61 74 6f 72 2e i).<<.endl;.....if(d_propagator.
1f980 69 73 41 73 73 69 67 6e 65 64 28 2a 69 29 29 20 7b 00 20 20 66 6f 72 28 76 65 63 74 6f 72 3c 4e isAssigned(*i)).{...for(vector<N
1f9a0 6f 64 65 3e 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 69 20 3d 20 64 5f 62 6f 6f 6c 56 ode>::const_iterator.i.=.d_boolV
1f9c0 61 72 73 2e 62 65 67 69 6e 28 29 3b 20 69 20 21 3d 20 64 5f 62 6f 6f 6c 56 61 72 73 2e 65 6e 64 ars.begin();.i.!=.d_boolVars.end
1f9e0 28 29 3b 20 2b 2b 69 29 20 7b 00 20 20 68 61 73 68 5f 6d 61 70 3c 54 4e 6f 64 65 2c 20 4e 6f 64 ();.++i).{...hash_map<TNode,.Nod
1fa00 65 2c 20 54 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e 3e 20 69 6e 74 56 61 72 73 3b 00 00 e,.TNodeHashFunction>.intVars;..
1fa20 20 20 4e 6f 64 65 20 7a 65 72 6f 20 3d 20 6e 6d 2d 3e 6d 6b 43 6f 6e 73 74 28 52 61 74 69 6f 6e ..Node.zero.=.nm->mkConst(Ration
1fa40 61 6c 28 30 29 29 2c 20 6f 6e 65 20 3d 20 6e 6d 2d 3e 6d 6b 43 6f 6e 73 74 28 52 61 74 69 6f 6e al(0)),.one.=.nm->mkConst(Ration
1fa60 61 6c 28 31 29 29 3b 00 20 20 4e 6f 64 65 4d 61 6e 61 67 65 72 2a 20 6e 6d 20 3d 20 4e 6f 64 65 al(1));...NodeManager*.nm.=.Node
1fa80 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 3b 00 00 20 20 68 61 73 68 5f 73 65 Manager::currentNM();....hash_se
1faa0 74 3c 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 3e 20 72 65 6d 6f 76 65 41 73 73 65 72 74 69 6f 6e t<unsigned.long>.removeAssertion
1fac0 73 3b 00 20 20 63 6f 6e 73 74 20 62 6f 6f 6c 65 61 6e 73 3a 3a 43 69 72 63 75 69 74 50 72 6f 70 s;...const.booleans::CircuitProp
1fae0 61 67 61 74 6f 72 3a 3a 42 61 63 6b 45 64 67 65 73 4d 61 70 26 20 62 61 63 6b 45 64 67 65 73 20 agator::BackEdgesMap&.backEdges.
1fb00 3d 20 64 5f 70 72 6f 70 61 67 61 74 6f 72 2e 67 65 74 42 61 63 6b 45 64 67 65 73 28 29 3b 00 00 =.d_propagator.getBackEdges();..
1fb20 20 20 41 73 73 65 72 74 28 21 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f ..Assert(!options::incrementalSo
1fb40 6c 76 69 6e 67 28 29 29 3b 00 20 20 41 73 73 65 72 74 28 64 5f 72 65 61 6c 41 73 73 65 72 74 69 lving());...Assert(d_realAsserti
1fb60 6f 6e 73 45 6e 64 20 3d 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 29 3b 00 onsEnd.==.d_assertions.size());.
1fb80 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 64 6f 4d 69 70 6c 69 62 54 void.SmtEnginePrivate::doMiplibT
1fba0 72 69 63 6b 28 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 30 3b 00 20 20 41 73 73 65 72 74 rick().{..}...return.0;...Assert
1fbc0 28 72 65 6d 6f 76 61 6c 73 20 3d 3d 20 30 29 3b 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 (removals.==.0);....}.....}.....
1fbe0 20 20 72 65 74 75 72 6e 20 72 65 6d 6f 76 61 6c 73 3b 00 20 20 20 20 20 20 6e 20 3d 20 52 65 77 ..return.removals;.......n.=.Rew
1fc00 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 6e 29 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 riter::rewrite(n);.......}......
1fc20 20 20 20 6e 20 3d 20 62 3b 00 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 ...n.=.b;.......}.else.{........
1fc40 20 62 2e 63 6c 65 61 72 28 29 3b 00 20 20 20 20 20 20 20 20 6e 20 3d 20 62 5b 30 5d 3b 00 20 20 .b.clear();.........n.=.b[0];...
1fc60 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 62 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 ....}.else.if(b.getNumChildren()
1fc80 20 3d 3d 20 31 29 20 7b 00 20 20 20 20 20 20 20 20 62 2e 63 6c 65 61 72 28 29 3b 00 20 20 20 20 .==.1).{.........b.clear();.....
1fca0 20 20 20 20 6e 20 3d 20 64 5f 74 72 75 65 3b 00 20 20 20 20 20 20 69 66 28 62 2e 67 65 74 4e 75 ....n.=.d_true;.......if(b.getNu
1fcc0 6d 43 68 69 6c 64 72 65 6e 28 29 20 3d 3d 20 30 29 20 7b 00 20 20 20 20 20 20 7d 00 20 20 20 20 mChildren().==.0).{.......}.....
1fce0 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 62 20 3c 3c 20 2a 6a 3b 00 20 20 20 20 20 20 20 ....}...........b.<<.*j;........
1fd00 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 .}.else.{...........}...........
1fd20 20 20 62 20 3c 3c 20 2a 6a 3b 00 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 ..b.<<.*j;...........}.else.{...
1fd40 20 20 20 20 20 20 20 20 20 20 62 20 3c 3c 20 73 75 62 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 ..........b.<<.sub;.............
1fd60 72 65 6d 6f 76 61 6c 73 20 2b 3d 20 73 75 62 72 65 6d 6f 76 61 6c 73 3b 00 20 20 20 20 20 20 20 removals.+=.subremovals;........
1fd80 20 20 20 69 66 28 28 73 75 62 72 65 6d 6f 76 61 6c 73 20 3d 20 72 65 6d 6f 76 65 46 72 6f 6d 43 ...if((subremovals.=.removeFromC
1fda0 6f 6e 6a 75 6e 63 74 69 6f 6e 28 73 75 62 2c 20 74 6f 52 65 6d 6f 76 65 29 29 20 3e 20 30 29 20 onjunction(sub,.toRemove)).>.0).
1fdc0 7b 00 20 20 20 20 20 20 20 20 20 20 73 75 62 20 3d 20 2a 6a 3b 00 20 20 20 20 20 20 20 20 7d 20 {...........sub.=.*j;.........}.
1fde0 65 6c 73 65 20 69 66 28 28 2a 6a 29 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a else.if((*j).getKind().==.kind::
1fe00 41 4e 44 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 2b 2b 72 65 6d 6f 76 61 6c 73 3b 00 20 20 20 AND).{...........++removals;....
1fe20 20 20 20 20 20 69 66 28 74 6f 52 65 6d 6f 76 65 2e 66 69 6e 64 28 28 2a 6a 29 2e 67 65 74 49 64 .....if(toRemove.find((*j).getId
1fe40 28 29 29 20 21 3d 20 74 6f 52 65 6d 6f 76 65 2e 65 6e 64 28 29 29 20 7b 00 20 20 20 20 20 20 66 ()).!=.toRemove.end()).{.......f
1fe60 6f 72 28 2b 2b 6a 3b 20 6a 20 21 3d 20 6e 2e 65 6e 64 28 29 3b 20 2b 2b 6a 29 20 7b 00 20 20 20 or(++j;.j.!=.n.end();.++j).{....
1fe80 20 20 20 7d 00 20 20 20 20 20 20 20 20 2b 2b 72 65 6d 6f 76 61 6c 73 3b 00 20 20 20 20 20 20 7d ...}.........++removals;.......}
1fea0 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 62 20 3c 3c 20 73 75 62 3b 00 20 20 20 20 20 20 .else.{.........b.<<.sub;.......
1fec0 20 20 72 65 6d 6f 76 61 6c 73 20 2b 3d 20 73 75 62 72 65 6d 6f 76 61 6c 73 3b 00 20 20 20 20 20 ..removals.+=.subremovals;......
1fee0 20 69 66 28 73 75 62 72 65 6d 6f 76 61 6c 73 20 3e 20 30 29 20 7b 00 20 20 20 20 20 20 62 2e 61 .if(subremovals.>.0).{.......b.a
1ff00 70 70 65 6e 64 28 6e 2e 62 65 67 69 6e 28 29 2c 20 6a 29 3b 00 20 20 20 20 20 20 4e 6f 64 65 42 ppend(n.begin(),.j);.......NodeB
1ff20 75 69 6c 64 65 72 3c 3e 20 62 28 6b 69 6e 64 3a 3a 41 4e 44 29 3b 00 20 20 20 20 20 20 20 28 73 uilder<>.b(kind::AND);........(s
1ff40 75 62 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 4e 44 20 26 26 20 28 73 75 ub.getKind().==.kind::AND.&&.(su
1ff60 62 72 65 6d 6f 76 61 6c 73 20 3d 20 72 65 6d 6f 76 65 46 72 6f 6d 43 6f 6e 6a 75 6e 63 74 69 6f bremovals.=.removeFromConjunctio
1ff80 6e 28 73 75 62 2c 20 74 6f 52 65 6d 6f 76 65 29 29 20 3e 20 30 29 29 20 7b 00 20 20 20 20 69 66 n(sub,.toRemove)).>.0)).{.....if
1ffa0 28 74 6f 52 65 6d 6f 76 65 2e 66 69 6e 64 28 73 75 62 2e 67 65 74 49 64 28 29 29 20 21 3d 20 74 (toRemove.find(sub.getId()).!=.t
1ffc0 6f 52 65 6d 6f 76 65 2e 65 6e 64 28 29 20 7c 7c 00 20 20 20 20 4e 6f 64 65 20 73 75 62 20 3d 20 oRemove.end().||.....Node.sub.=.
1ffe0 2a 6a 3b 00 20 20 20 20 73 69 7a 65 5f 74 20 73 75 62 72 65 6d 6f 76 61 6c 73 20 3d 20 30 3b 00 *j;.....size_t.subremovals.=.0;.
20000 61 64 00 00 93 00 00 00 13 02 00 00 00 10 00 00 59 00 00 00 00 00 00 00 b6 0f 00 00 a7 0f 00 00 ad..............Y...............
20020 9f 0f 00 00 77 0f 00 00 5c 0f 00 00 3e 0f 00 00 20 0f 00 00 d8 0e 00 00 ba 0e 00 00 99 0e 00 00 ....w...\...>...................
20040 7b 0e 00 00 4f 0e 00 00 07 0e 00 00 e1 0d 00 00 bf 0d 00 00 8e 0d 00 00 7b 0d 00 00 5d 0d 00 00 {...O...................{...]...
20060 07 0d 00 00 f4 0c 00 00 e8 0c 00 00 b3 0c 00 00 95 0c 00 00 37 0c 00 00 24 0c 00 00 18 0c 00 00 ....................7...$.......
20080 0e 0c 00 00 f6 0b 00 00 e5 0b 00 00 db 0b 00 00 c4 0b 00 00 a8 0b 00 00 42 0b 00 00 31 0b 00 00 ........................B...1...
200a0 27 0b 00 00 ff 0a 00 00 b3 0a 00 00 4f 0a 00 00 1d 0a 00 00 86 09 00 00 6b 09 00 00 40 09 00 00 '...........O...........k...@...
200c0 00 09 00 00 e3 08 00 00 cb 08 00 00 b8 08 00 00 9f 08 00 00 7e 08 00 00 72 08 00 00 68 08 00 00 ....................~...r...h...
200e0 34 08 00 00 18 08 00 00 d2 07 00 00 c1 07 00 00 b7 07 00 00 65 07 00 00 3c 07 00 00 dc 06 00 00 4...................e...<.......
20100 ad 06 00 00 8f 06 00 00 71 06 00 00 21 06 00 00 0e 06 00 00 02 06 00 00 c8 05 00 00 8d 05 00 00 ........q...!...................
20120 5e 05 00 00 30 05 00 00 24 05 00 00 f8 04 00 00 e7 04 00 00 b8 04 00 00 8a 04 00 00 7e 04 00 00 ^...0...$...................~...
20140 52 04 00 00 48 04 00 00 20 04 00 00 11 04 00 00 f9 03 00 00 cc 03 00 00 b0 03 00 00 53 03 00 00 R...H.......................S...
20160 42 03 00 00 38 03 00 00 02 03 00 00 e5 02 00 00 a5 02 00 00 41 02 00 00 13 02 00 00 00 00 00 00 B...8...............A...........
20180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
201a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
201c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
201e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 ...........................const
20220 20 70 61 69 72 3c 4e 6f 64 65 2c 20 4e 6f 64 65 3e 20 78 5f 76 61 72 28 78 2c 20 76 61 72 29 3b .pair<Node,.Node>.x_var(x,.var);
20240 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 54 4e 6f 64 65 20 76 61 72 20 3d 20 28 28 2a 6a 29 .........const.TNode.var.=.((*j)
20260 5b 31 5d 5b 30 5d 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 43 4f 4e 53 54 5f [1][0].getKind().==.kind::CONST_
20280 52 41 54 49 4f 4e 41 4c 29 20 3f 20 28 2a 6a 29 5b 31 5d 5b 31 5d 20 3a 20 28 2a 6a 29 5b 31 5d RATIONAL).?.(*j)[1][1].:.(*j)[1]
202a0 5b 30 5d 3b 00 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 [0];.........Debug("miplib").<<.
202c0 22 20 20 78 3a 22 20 3c 3c 20 78 20 3c 3c 20 22 20 20 22 20 3c 3c 20 78 6e 65 67 20 3c 3c 20 65 "..x:".<<.x.<<."..".<<.xneg.<<.e
202e0 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 78 20 3d 20 78 6e 65 67 20 3f 20 78 5b 30 5d 20 3a 20 78 ndl;.........x.=.xneg.?.x[0].:.x
20300 3b 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 62 6f 6f 6c 20 78 6e 65 67 20 3d 20 28 78 2e 67 ;.........const.bool.xneg.=.(x.g
20320 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 4e 4f 54 29 3b 00 20 20 20 20 20 20 20 20 etKind().==.kind::NOT);.........
20340 7d 00 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 20 20 44 65 62 }...........break;...........Deb
20360 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 2d 2d 20 49 4e 45 4c 49 47 49 42 4c 45 ug("miplib").<<."..--.INELIGIBLE
20380 20 2d 2d 20 28 78 20 6e 6f 74 20 70 72 65 73 65 6e 74 20 77 68 65 72 65 20 49 20 65 78 70 65 63 .--.(x.not.present.where.I.expec
203a0 74 20 69 74 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 65 6c 69 67 69 62 t.it)".<<.endl;...........eligib
203c0 6c 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 20 20 69 66 28 78 20 21 3d 20 2a 69 20 26 le.=.false;.........if(x.!=.*i.&
203e0 26 20 78 20 21 3d 20 28 2a 69 29 2e 6e 6f 74 4e 6f 64 65 28 29 29 20 7b 00 20 20 20 20 20 20 20 &.x.!=.(*i).notNode()).{........
20400 20 54 4e 6f 64 65 20 78 20 3d 20 63 6f 6e 6a 3b 00 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 .TNode.x.=.conj;.......}.else.{.
20420 20 20 20 20 20 20 20 20 61 73 73 65 72 74 73 5b 70 6f 73 5f 76 61 72 5d 2e 70 75 73 68 5f 62 61 ........asserts[pos_var].push_ba
20440 63 6b 28 2a 6a 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 63 68 65 63 ck(*j);.........}...........chec
20460 6b 73 5b 70 6f 73 5f 76 61 72 5d 5b 6d 61 72 6b 5d 20 3d 20 63 6f 6e 73 74 61 6e 74 3b 00 20 20 ks[pos_var][mark].=.constant;...
20480 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 63 68 65 63 6b 73 5b 70 6f 73 ........}.............checks[pos
204a0 5f 76 61 72 5d 2e 72 65 73 69 7a 65 28 6d 61 72 6b 20 2b 20 31 29 3b 00 20 20 20 20 20 20 20 20 _var].resize(mark.+.1);.........
204c0 20 20 69 66 28 63 68 65 63 6b 73 5b 70 6f 73 5f 76 61 72 5d 2e 73 69 7a 65 28 29 20 3c 3d 20 6d ..if(checks[pos_var].size().<=.m
204e0 61 72 6b 29 20 7b 00 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 ark).{.........}.else.{.........
20500 20 20 63 6f 65 66 5b 70 6f 73 5f 76 61 72 5d 5b 74 68 65 70 6f 73 5d 20 3d 20 63 6f 6e 73 74 61 ..coef[pos_var][thepos].=.consta
20520 6e 74 3b 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 65 66 nt;...........}.............coef
20540 5b 70 6f 73 5f 76 61 72 5d 2e 72 65 73 69 7a 65 28 74 68 65 70 6f 73 20 2b 20 31 29 3b 00 20 20 [pos_var].resize(thepos.+.1);...
20560 20 20 20 20 20 20 20 20 69 66 28 63 6f 65 66 5b 70 6f 73 5f 76 61 72 5d 2e 73 69 7a 65 28 29 20 ........if(coef[pos_var].size().
20580 3c 3d 20 74 68 65 70 6f 73 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 63 6f <=.thepos).{...........Assert(co
205a0 65 66 5b 70 6f 73 5f 76 61 72 5d 2e 73 69 7a 65 28 29 20 3c 3d 20 36 20 26 26 20 74 68 65 70 6f ef[pos_var].size().<=.6.&&.thepo
205c0 73 20 3c 20 36 29 3b 00 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 63 6f 75 6e 74 6e s.<.6);.........}.else.if(countn
205e0 65 67 20 3d 3d 20 70 6f 73 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 20 2d 20 31 29 20 eg.==.pos.getNumChildren().-.1).
20600 7b 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b {...........}.............break;
20620 00 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 .............Debug("miplib").<<.
20640 22 20 20 2d 2d 20 49 4e 45 4c 49 47 49 42 4c 45 20 2d 2d 20 28 6e 6f 6e 7a 65 72 6f 20 63 6f 6e "..--.INELIGIBLE.--.(nonzero.con
20660 73 74 61 6e 74 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 69 stant)".<<.endl;.............eli
20680 67 69 62 6c 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 20 20 20 20 69 66 28 63 6f 6e 73 gible.=.false;...........if(cons
206a0 74 61 6e 74 20 21 3d 20 30 29 20 7b 00 20 20 20 20 20 20 20 20 69 66 28 63 6f 75 6e 74 6e 65 67 tant.!=.0).{.........if(countneg
206c0 20 3d 3d 20 70 6f 73 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 29 20 7b 00 20 20 20 20 .==.pos.getNumChildren()).{.....
206e0 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 6d 61 72 6b 73 5b 22 20 ....Debug("miplib").<<."marks[".
20700 3c 3c 20 70 6f 73 20 3c 3c 20 22 2c 22 20 3c 3c 20 76 61 72 20 3c 3c 20 22 5d 20 6e 6f 77 20 22 <<.pos.<<.",".<<.var.<<."].now."
20720 20 3c 3c 20 6d 61 72 6b 73 5b 70 6f 73 5f 76 61 72 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 .<<.marks[pos_var].<<.endl;.....
20740 20 20 20 20 6d 61 72 6b 73 5b 70 6f 73 5f 76 61 72 5d 20 7c 3d 20 28 31 6c 75 20 3c 3c 20 6d 61 ....marks[pos_var].|=.(1lu.<<.ma
20760 72 6b 29 3b 00 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 rk);.........Debug("miplib").<<.
20780 22 6d 61 72 6b 20 69 73 20 22 20 3c 3c 20 6d 61 72 6b 20 3c 3c 20 22 20 2d 2d 20 22 20 3c 3c 20 "mark.is.".<<.mark.<<.".--.".<<.
207a0 28 31 6c 75 20 3c 3c 20 6d 61 72 6b 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 7d (1lu.<<.mark).<<.endl;.........}
207c0 00 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 20 20 44 65 62 75 ...........break;...........Debu
207e0 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 2d 2d 20 49 4e 45 4c 49 47 49 42 4c 45 20 g("miplib").<<."..--.INELIGIBLE.
20800 2d 2d 20 28 72 65 6d 61 72 6b 65 64 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 --.(remarked)".<<.endl;.........
20820 20 20 65 6c 69 67 69 62 6c 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 20 20 69 66 28 28 ..eligible.=.false;.........if((
20840 6d 61 72 6b 73 5b 70 6f 73 5f 76 61 72 5d 20 26 20 28 31 6c 75 20 3c 3c 20 6d 61 72 6b 29 29 20 marks[pos_var].&.(1lu.<<.mark)).
20860 21 3d 20 30 29 20 7b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 !=.0).{.........}...........}...
20880 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 20 7c 3d 20 28 30 78 31 20 3c 3c 20 69 69 29 3b 00 20 ..........mark.|=.(0x1.<<.ii);..
208a0 20 20 20 20 20 20 20 20 20 20 20 74 68 65 70 6f 73 20 3d 20 69 69 3b 00 20 20 20 20 20 20 20 20 ...........thepos.=.ii;.........
208c0 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 2b 2b 63 6f 75 6e 74 6e 65 ..}.else.{.............++countne
208e0 67 3b 00 20 20 20 20 20 20 20 20 20 20 69 66 28 6e 65 67 5b 70 6f 73 5b 69 69 5d 5d 29 20 7b 00 g;...........if(neg[pos[ii]]).{.
20900 20 20 20 20 20 20 20 20 66 6f 72 28 75 6e 73 69 67 6e 65 64 20 69 69 20 3d 20 30 3b 20 69 69 20 ........for(unsigned.ii.=.0;.ii.
20920 3c 20 70 6f 73 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 3b 20 2b 2b 69 69 29 20 7b 00 <.pos.getNumChildren();.++ii).{.
20940 20 20 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 63 6f 75 6e 74 6e 65 67 20 3d 20 30 2c 20 74 ........unsigned.countneg.=.0,.t
20960 68 65 70 6f 73 20 3d 20 30 3b 00 20 20 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 6d 61 72 6b hepos.=.0;.........uint64_t.mark
20980 20 3d 20 30 3b 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 52 61 74 69 6f 6e 61 6c 26 20 63 6f .=.0;.........const.Rational&.co
209a0 6e 73 74 61 6e 74 20 3d 20 28 28 2a 6a 29 5b 31 5d 5b 30 5d 2e 67 65 74 4b 69 6e 64 28 29 20 3d nstant.=.((*j)[1][0].getKind().=
209c0 3d 20 6b 69 6e 64 3a 3a 43 4f 4e 53 54 5f 52 41 54 49 4f 4e 41 4c 29 20 3f 20 28 2a 6a 29 5b 31 =.kind::CONST_RATIONAL).?.(*j)[1
209e0 5d 5b 30 5d 2e 67 65 74 43 6f 6e 73 74 3c 52 61 74 69 6f 6e 61 6c 3e 28 29 20 3a 20 28 2a 6a 29 ][0].getConst<Rational>().:.(*j)
20a00 5b 31 5d 5b 31 5d 2e 67 65 74 43 6f 6e 73 74 3c 52 61 74 69 6f 6e 61 6c 3e 28 29 3b 00 20 20 20 [1][1].getConst<Rational>();....
20a20 20 20 20 20 20 63 6f 6e 73 74 20 70 61 69 72 3c 4e 6f 64 65 2c 20 4e 6f 64 65 3e 20 70 6f 73 5f .....const.pair<Node,.Node>.pos_
20a40 76 61 72 28 70 6f 73 2c 20 76 61 72 29 3b 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 54 4e 6f var(pos,.var);.........const.TNo
20a60 64 65 20 76 61 72 20 3d 20 28 28 2a 6a 29 5b 31 5d 5b 30 5d 2e 67 65 74 4b 69 6e 64 28 29 20 3d de.var.=.((*j)[1][0].getKind().=
20a80 3d 20 6b 69 6e 64 3a 3a 43 4f 4e 53 54 5f 52 41 54 49 4f 4e 41 4c 29 20 3f 20 28 2a 6a 29 5b 31 =.kind::CONST_RATIONAL).?.(*j)[1
20aa0 5d 5b 31 5d 20 3a 20 28 2a 6a 29 5b 31 5d 5b 30 5d 3b 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 ][1].:.(*j)[1][0];.........const
20ac0 20 4e 6f 64 65 20 70 6f 73 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 .Node.pos.=.NodeManager::current
20ae0 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 28 6b 69 6e 64 3a 3a 41 4e 44 2c 20 70 6f 73 76 29 3b 00 20 NM()->mkNode(kind::AND,.posv);..
20b00 20 20 20 20 20 20 20 73 6f 72 74 28 70 6f 73 76 2e 62 65 67 69 6e 28 29 2c 20 70 6f 73 76 2e 65 .......sort(posv.begin(),.posv.e
20b20 6e 64 28 29 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b nd());.........}...........break
20b40 3b 00 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 ;...........Debug("miplib").<<."
20b60 20 20 2d 2d 49 4e 45 4c 49 47 49 42 4c 45 20 2d 2d 20 28 63 6f 75 6c 64 6e 27 74 20 66 69 6e 64 ..--INELIGIBLE.--.(couldn't.find
20b80 20 22 20 3c 3c 20 2a 69 20 3c 3c 20 22 20 69 6e 20 63 6f 6e 6a 75 6e 63 74 69 6f 6e 29 22 20 3c .".<<.*i.<<.".in.conjunction)".<
20ba0 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 65 6c 69 67 69 62 6c 65 20 3d 20 66 61 6c <.endl;...........eligible.=.fal
20bc0 73 65 3b 00 20 20 20 20 20 20 20 20 69 66 28 21 66 6f 75 6e 64 5f 78 29 20 7b 00 20 20 20 20 20 se;.........if(!found_x).{......
20be0 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 69 66 ...}...........break;.........if
20c00 28 21 65 6c 69 67 69 62 6c 65 29 20 7b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 (!eligible).{.........}.........
20c20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 20 ..}.............break;..........
20c40 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 2d 2d 20 49 4e 45 4c ...Debug("miplib").<<."..--.INEL
20c60 49 47 49 42 4c 45 20 2d 2d 20 28 22 20 3c 3c 20 70 6f 73 76 2e 62 61 63 6b 28 29 20 3c 3c 20 22 IGIBLE.--.(".<<.posv.back().<<."
20c80 20 61 73 73 65 72 74 65 64 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 .asserted)".<<.endl;............
20ca0 20 65 6c 69 67 69 62 6c 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 20 20 20 20 69 66 28 .eligible.=.false;...........if(
20cc0 64 5f 70 72 6f 70 61 67 61 74 6f 72 2e 69 73 41 73 73 69 67 6e 65 64 28 70 6f 73 76 2e 62 61 63 d_propagator.isAssigned(posv.bac
20ce0 6b 28 29 29 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 k())).{...........}.............
20d00 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 break;.............Debug("miplib
20d20 22 29 20 3c 3c 20 22 20 20 2d 2d 20 49 4e 45 4c 49 47 49 42 4c 45 20 2d 2d 20 28 6e 6f 6e 2d 76 ").<<."..--.INELIGIBLE.--.(non-v
20d40 61 72 3a 20 22 20 3c 3c 20 2a 69 69 20 3c 3c 20 22 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 ar:.".<<.*ii.<<.")".<<.endl;....
20d60 20 20 20 20 20 20 20 20 20 65 6c 69 67 69 62 6c 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 20 .........eligible.=.false;......
20d80 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 75 6e 64 5f .....}.else.{.............found_
20da0 78 20 3d 20 66 6f 75 6e 64 5f 78 20 7c 7c 20 2a 69 20 3d 3d 20 28 2a 69 69 29 5b 30 5d 3b 00 20 x.=.found_x.||.*i.==.(*ii)[0];..
20dc0 20 20 20 20 20 20 20 20 20 20 20 6e 65 67 5b 28 2a 69 69 29 5b 30 5d 5d 20 3d 20 74 72 75 65 3b ...........neg[(*ii)[0]].=.true;
20de0 00 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 76 2e 70 75 73 68 5f 62 61 63 6b 28 28 2a 69 69 .............posv.push_back((*ii
20e00 29 5b 30 5d 29 3b 00 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 28 2a 69 69 29 )[0]);...........}.else.if((*ii)
20e20 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 4e 4f 54 20 26 26 20 28 2a 69 69 29 .getKind().==.kind::NOT.&&.(*ii)
20e40 5b 30 5d 2e 69 73 56 61 72 28 29 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 75 6e 64 [0].isVar()).{.............found
20e60 5f 78 20 3d 20 66 6f 75 6e 64 5f 78 20 7c 7c 20 2a 69 20 3d 3d 20 2a 69 69 3b 00 20 20 20 20 20 _x.=.found_x.||.*i.==.*ii;......
20e80 20 20 20 20 20 20 20 6e 65 67 5b 2a 69 69 5d 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 20 .......neg[*ii].=.false;........
20ea0 20 20 20 20 20 70 6f 73 76 2e 70 75 73 68 5f 62 61 63 6b 28 2a 69 69 29 3b 00 20 20 20 20 20 20 .....posv.push_back(*ii);.......
20ec0 20 20 20 20 69 66 28 28 2a 69 69 29 2e 69 73 56 61 72 28 29 29 20 7b 00 20 20 20 20 20 20 20 20 ....if((*ii).isVar()).{.........
20ee0 66 6f 72 28 4e 6f 64 65 3a 3a 69 74 65 72 61 74 6f 72 20 69 69 20 3d 20 63 6f 6e 6a 2e 62 65 67 for(Node::iterator.ii.=.conj.beg
20f00 69 6e 28 29 3b 20 69 69 20 21 3d 20 63 6f 6e 6a 2e 65 6e 64 28 29 3b 20 2b 2b 69 69 29 20 7b 00 in();.ii.!=.conj.end();.++ii).{.
20f20 20 20 20 20 20 20 20 20 6d 61 70 3c 54 4e 6f 64 65 2c 20 62 6f 6f 6c 3e 20 6e 65 67 3b 00 20 20 ........map<TNode,.bool>.neg;...
20f40 20 20 20 20 20 20 62 6f 6f 6c 20 66 6f 75 6e 64 5f 78 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 ......bool.found_x.=.false;.....
20f60 20 20 20 20 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 20 70 6f 73 76 3b 00 20 20 20 20 20 20 69 66 28 ....vector<Node>.posv;.......if(
20f80 63 6f 6e 6a 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 4e 44 29 20 7b 00 20 conj.getKind().==.kind::AND).{..
20fa0 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 44 65 .....}.........break;.........De
20fc0 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 2d 2d 20 49 4e 45 4c 49 47 49 42 4c bug("miplib").<<."..--.INELIGIBL
20fe0 45 20 2d 2d 20 28 3d 3e 20 28 61 6e 64 20 58 20 58 29 20 58 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 E.--.(=>.(and.X.X).X)".<<.endl;.
21000 61 64 00 00 05 00 00 00 59 01 00 00 00 10 00 00 4e 00 00 00 00 00 00 00 69 0f 00 00 41 0f 00 00 ad......Y.......N.......i...A...
21020 10 0f 00 00 f4 0e 00 00 ae 0e 00 00 9d 0e 00 00 93 0e 00 00 6d 0e 00 00 5a 0e 00 00 3c 0e 00 00 ....................m...Z...<...
21040 1e 0e 00 00 ce 0d 00 00 bb 0d 00 00 af 0d 00 00 9e 0d 00 00 73 0d 00 00 52 0d 00 00 2d 0d 00 00 ....................s...R...-...
21060 23 0d 00 00 fd 0c 00 00 f5 0c 00 00 ef 0c 00 00 dc 0c 00 00 76 0c 00 00 4a 0c 00 00 1d 0c 00 00 #...................v...J.......
21080 e7 0b 00 00 bc 0b 00 00 64 0b 00 00 23 0b 00 00 db 0a 00 00 71 0a 00 00 36 0a 00 00 17 0a 00 00 ........d...#.......q...6.......
210a0 71 09 00 00 60 09 00 00 13 09 00 00 cc 08 00 00 92 08 00 00 49 08 00 00 08 08 00 00 e1 07 00 00 q...`...............I...........
210c0 bf 07 00 00 71 07 00 00 2d 07 00 00 05 07 00 00 cd 06 00 00 56 06 00 00 25 06 00 00 11 06 00 00 ....q...-...........V...%.......
210e0 ff 05 00 00 95 05 00 00 65 05 00 00 41 05 00 00 d8 04 00 00 bf 04 00 00 ad 04 00 00 96 04 00 00 ........e...A...................
21100 b3 03 00 00 a3 03 00 00 95 03 00 00 89 03 00 00 6f 03 00 00 38 03 00 00 22 03 00 00 16 03 00 00 ................o...8...".......
21120 15 03 00 00 bf 02 00 00 9f 02 00 00 73 02 00 00 48 02 00 00 2a 02 00 00 0b 02 00 00 f8 01 00 00 ............s...H...*...........
21140 c4 01 00 00 8a 01 00 00 7e 01 00 00 59 01 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 ........~...Y...................
21160 20 20 20 66 6f 72 28 3b 20 69 69 20 21 3d 20 69 69 65 6e 64 3b 20 2b 2b 69 69 29 20 7b 00 20 20 ...for(;.ii.!=.iiend;.++ii).{...
21180 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 69 69 65 6e 64 20 3d 20 65 78 ........}.............iiend.=.ex
211a0 70 72 3a 3a 4e 6f 64 65 53 65 6c 66 49 74 65 72 61 74 6f 72 3a 3a 73 65 6c 66 45 6e 64 28 70 6f pr::NodeSelfIterator::selfEnd(po
211c0 73 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 69 20 3d 20 65 78 70 72 3a 3a 4e 6f 64 65 53 s);.............ii.=.expr::NodeS
211e0 65 6c 66 49 74 65 72 61 74 6f 72 3a 3a 73 65 6c 66 28 70 6f 73 29 3b 00 20 20 20 20 20 20 20 20 elfIterator::self(pos);.........
21200 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 69 65 6e 64 20 3d 20 70 ..}.else.{.............iiend.=.p
21220 6f 73 2e 65 6e 64 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 69 20 3d 20 70 6f 73 2e 62 os.end();.............ii.=.pos.b
21240 65 67 69 6e 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 69 66 28 70 6f 73 2e 67 65 74 4b 69 6e 64 egin();...........if(pos.getKind
21260 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 4e 44 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 65 78 70 ().==.kind::AND).{...........exp
21280 72 3a 3a 4e 6f 64 65 53 65 6c 66 49 74 65 72 61 74 6f 72 20 69 69 2c 20 69 69 65 6e 64 3b 00 20 r::NodeSelfIterator.ii,.iiend;..
212a0 20 20 20 20 20 20 20 20 20 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 20 6e 65 77 56 61 72 73 3b 00 20 .........vector<Node>.newVars;..
212c0 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 2d .........Debug("miplib").<<."..-
212e0 2d 20 45 4c 49 47 49 42 4c 45 20 22 20 3c 3c 20 2a 69 20 3c 3c 20 22 20 2c 20 22 20 3c 3c 20 70 -.ELIGIBLE.".<<.*i.<<.".,.".<<.p
21300 6f 73 20 3c 3c 20 22 20 2d 2d 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 20 20 20 20 20 20 20 20 os.<<.".--".<<.endl;............
21320 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 20 20 20 20 20 20 20 20 }.............continue;.........
21340 20 20 20 20 65 6c 69 67 69 62 6c 65 20 3d 20 74 72 75 65 3b 20 2f 2f 20 6e 65 78 74 20 69 73 20 ....eligible.=.true;.//.next.is.
21360 73 74 69 6c 6c 20 65 6c 69 67 69 62 6c 65 00 20 20 20 20 20 20 20 20 20 20 69 66 28 21 65 6c 69 still.eligible...........if(!eli
21380 67 69 62 6c 65 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 gible).{...........}............
213a0 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 .}...............}..............
213c0 20 20 20 41 73 73 65 72 74 28 63 68 65 63 6b 73 5b 70 6f 73 5f 76 61 72 5d 5b 6b 5d 20 3d 3d 20 ...Assert(checks[pos_var][k].==.
213e0 30 2c 20 22 63 68 65 63 6b 73 5b 28 25 73 2c 25 73 29 5d 5b 25 75 5d 20 73 68 6f 75 6c 64 20 62 0,."checks[(%s,%s)][%u].should.b
21400 65 20 30 2c 20 62 75 74 20 69 74 27 73 20 25 73 22 2c 20 70 6f 73 2e 74 6f 53 74 72 69 6e 67 28 e.0,.but.it's.%s",.pos.toString(
21420 29 2e 63 5f 73 74 72 28 29 2c 20 76 61 72 2e 74 6f 53 74 72 69 6e 67 28 29 2e 63 5f 73 74 72 28 ).c_str(),.var.toString().c_str(
21440 29 2c 20 6b 2c 20 63 68 65 63 6b 73 5b 70 6f 73 5f 76 61 72 5d 5b 6b 5d 2e 74 6f 53 74 72 69 6e ),.k,.checks[pos_var][k].toStrin
21460 67 28 29 2e 63 5f 73 74 72 28 29 29 3b 20 2f 2f 20 77 65 20 6e 65 76 65 72 20 73 65 74 20 66 6f g().c_str());.//.we.never.set.fo
21480 72 20 73 69 6e 67 6c 65 2d 70 6f 73 69 74 69 76 65 2d 76 61 72 00 20 20 20 20 20 20 20 20 20 20 r.single-positive-var...........
214a0 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 ....}.else.{.................}..
214c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 .................break;.........
214e0 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 ..........Debug("miplib").<<."..
21500 2d 2d 20 49 4e 45 4c 49 47 49 42 4c 45 20 22 20 3c 3c 20 70 6f 73 20 3c 3c 20 22 20 2d 2d 20 28 --.INELIGIBLE.".<<.pos.<<.".--.(
21520 6e 6f 6e 6c 69 6e 65 61 72 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 29 22 20 3c 3c 20 65 6e 64 6c 3b nonlinear.combination)".<<.endl;
21540 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 69 67 69 62 6c 65 20 3d 20 66 61 ...................eligible.=.fa
21560 6c 73 65 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 73 75 6d 20 21 3d 20 63 lse;.................if(sum.!=.c
21580 68 65 63 6b 73 5b 70 6f 73 5f 76 61 72 5d 5b 6b 5d 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 hecks[pos_var][k]).{............
215a0 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 63 68 65 63 6b 53 75 .....Debug("miplib").<<."checkSu
215c0 6d 20 69 73 20 22 20 3c 3c 20 73 75 6d 20 3c 3c 20 22 20 69 6e 70 75 74 20 73 61 79 73 20 22 20 m.is.".<<.sum.<<.".input.says.".
215e0 3c 3c 20 63 68 65 63 6b 73 5b 70 6f 73 5f 76 61 72 5d 5b 6b 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 <<.checks[pos_var][k].<<.endl;..
21600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............}................
21620 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 75 6d 20 2b 3d 20 ...}.....................sum.+=.
21640 63 6f 65 66 5b 70 6f 73 5f 76 61 72 5d 5b 76 20 2d 20 31 5d 3b 00 20 20 20 20 20 20 20 20 20 20 coef[pos_var][v.-.1];...........
21660 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 76 61 ..........Debug("miplib").<<."va
21680 72 20 22 20 3c 3c 20 76 20 3c 3c 20 22 20 3a 20 22 20 3c 3c 20 70 6f 73 5b 76 20 2d 20 31 5d 20 r.".<<.v.<<.".:.".<<.pos[v.-.1].
216a0 3c 3c 20 22 20 63 6f 65 66 3a 22 20 3c 3c 20 63 6f 65 66 5b 70 6f 73 5f 76 61 72 5d 5b 76 20 2d <<.".coef:".<<.coef[pos_var][v.-
216c0 20 31 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .1].<<.endl;....................
216e0 20 41 73 73 65 72 74 28 70 6f 73 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 .Assert(pos.getKind().==.kind::A
21700 4e 44 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 28 6b 6b 20 26 20 ND);...................if((kk.&.
21720 30 78 31 29 20 3d 3d 20 31 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 0x1).==.1).{.................for
21740 28 73 69 7a 65 5f 74 20 76 20 3d 20 31 2c 20 6b 6b 20 3d 20 6b 3b 20 6b 6b 20 21 3d 20 30 3b 20 (size_t.v.=.1,.kk.=.k;.kk.!=.0;.
21760 2b 2b 76 2c 20 6b 6b 20 3e 3e 3d 20 31 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ++v,.kk.>>=.1).{................
21780 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 6b 20 3c 3c 20 22 20 3d 3e 20 22 20 .Debug("miplib").<<.k.<<.".=>.".
217a0 3c 3c 20 63 68 65 63 6b 73 5b 70 6f 73 5f 76 61 72 5d 5b 6b 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 <<.checks[pos_var][k].<<.endl;..
217c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 61 74 69 6f 6e 61 6c 20 73 75 6d 20 3d 20 30 3b ...............Rational.sum.=.0;
217e0 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 28 6b 20 26 20 28 6b 20 2d 20 31 29 29 20 ...............if((k.&.(k.-.1)).
21800 21 3d 20 30 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 73 69 7a 65 5f 74 20 6b !=.0).{.............for(size_t.k
21820 20 3d 20 30 3b 20 6b 20 3c 20 63 68 65 63 6b 73 5b 70 6f 73 5f 76 61 72 5d 2e 73 69 7a 65 28 29 .=.0;.k.<.checks[pos_var].size()
21840 3b 20 2b 2b 6b 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 73 7a 20 3d ;.++k).{.............Assert(sz.=
21860 3d 20 6d 61 72 6b 2c 20 22 65 78 70 65 63 74 65 64 20 73 69 7a 65 20 25 75 20 3d 3d 20 6d 61 72 =.mark,."expected.size.%u.==.mar
21880 6b 20 25 75 22 2c 20 73 7a 2c 20 6d 61 72 6b 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 73 7a k.%u",.sz,.mark);.............sz
218a0 20 3d 20 28 73 7a 20 3d 3d 20 30 29 20 3f 20 2d 31 20 3a 20 73 7a 3b 20 2f 2f 20 66 69 78 20 66 .=.(sz.==.0).?.-1.:.sz;.//.fix.f
218c0 6f 72 20 6f 76 65 72 66 6c 6f 77 00 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 or.overflow.............uint64_t
218e0 20 73 7a 20 3d 20 28 75 69 6e 74 36 34 5f 74 28 31 29 20 3c 3c 20 63 68 65 63 6b 73 5b 70 6f 73 .sz.=.(uint64_t(1).<<.checks[pos
21900 5f 76 61 72 5d 2e 73 69 7a 65 28 29 29 20 2d 20 31 3b 00 20 20 20 20 20 20 20 20 20 20 69 66 28 _var].size()).-.1;...........if(
21920 6d 61 72 6b 20 21 3d 20 33 29 20 7b 20 2f 2f 20 65 78 63 6c 75 64 65 20 73 69 6e 67 6c 65 2d 76 mark.!=.3).{.//.exclude.single-v
21940 61 72 20 63 61 73 65 3b 20 6e 6f 74 68 69 6e 67 20 74 6f 20 63 68 65 63 6b 20 74 68 65 72 65 00 ar.case;.nothing.to.check.there.
21960 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 ........}.else.{...........Debug
21980 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 2d 2d 20 49 4e 45 4c 49 47 49 42 4c 45 20 22 ("miplib").<<."..--.INELIGIBLE."
219a0 20 3c 3c 20 70 6f 73 20 3c 3c 20 22 20 2d 2d 20 28 69 6e 73 75 66 66 69 63 69 65 6e 74 6c 79 20 .<<.pos.<<.".--.(insufficiently.
219c0 6d 61 72 6b 65 64 2c 20 67 6f 74 20 22 20 3c 3c 20 6d 61 72 6b 20 3c 3c 20 22 20 66 6f 72 20 22 marked,.got.".<<.mark.<<.".for."
219e0 20 3c 3c 20 6e 75 6d 56 61 72 73 20 3c 3c 20 22 20 76 61 72 73 2c 20 65 78 70 65 63 74 65 64 20 .<<.numVars.<<.".vars,.expected.
21a00 22 20 3c 3c 20 65 78 70 65 63 74 65 64 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 69 ".<<.expected.<<.endl;.........i
21a20 66 28 6d 61 72 6b 20 21 3d 20 65 78 70 65 63 74 65 64 29 20 7b 00 20 20 20 20 20 20 20 20 41 73 f(mark.!=.expected).{.........As
21a40 73 65 72 74 28 70 6f 73 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 4e 44 20 sert(pos.getKind().==.kind::AND.
21a60 7c 7c 20 70 6f 73 2e 69 73 56 61 72 28 29 29 3b 00 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 ||.pos.isVar());.........Debug("
21a80 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 5b 22 20 3c 3c 20 70 6f 73 20 3c 3c 20 22 5d 20 3d 3e 20 miplib").<<."[".<<.pos.<<."].=>.
21aa0 22 20 3c 3c 20 68 65 78 20 3c 3c 20 6d 61 72 6b 20 3c 3c 20 22 20 65 78 70 65 63 74 20 22 20 3c ".<<.hex.<<.mark.<<.".expect.".<
21ac0 3c 20 65 78 70 65 63 74 65 64 20 3c 3c 20 64 65 63 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 <.expected.<<.dec.<<.endl;......
21ae0 20 20 20 65 78 70 65 63 74 65 64 20 3d 20 28 65 78 70 65 63 74 65 64 20 3d 3d 20 30 29 20 3f 20 ...expected.=.(expected.==.0).?.
21b00 2d 31 20 3a 20 65 78 70 65 63 74 65 64 3b 20 2f 2f 20 66 69 78 20 66 6f 72 20 6f 76 65 72 66 6c -1.:.expected;.//.fix.for.overfl
21b20 6f 77 00 20 20 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 65 78 70 65 63 74 65 64 20 3d 20 28 ow.........uint64_t.expected.=.(
21b40 75 69 6e 74 36 34 5f 74 28 31 29 20 3c 3c 20 28 31 20 3c 3c 20 6e 75 6d 56 61 72 73 29 29 20 2d uint64_t(1).<<.(1.<<.numVars)).-
21b60 20 31 3b 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64 20 6e 75 6d 56 61 .1;.........const.unsigned.numVa
21b80 72 73 20 3d 20 70 6f 73 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 4e 44 20 rs.=.pos.getKind().==.kind::AND.
21ba0 3f 20 70 6f 73 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 20 3a 20 31 3b 00 20 20 20 20 ?.pos.getNumChildren().:.1;.....
21bc0 20 20 20 20 63 6f 6e 73 74 20 75 69 6e 74 36 34 5f 74 20 6d 61 72 6b 20 3d 20 28 2a 6a 29 2e 73 ....const.uint64_t.mark.=.(*j).s
21be0 65 63 6f 6e 64 3b 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 70 61 69 72 3c 4e 6f 64 65 2c 20 econd;.........const.pair<Node,.
21c00 4e 6f 64 65 3e 26 20 70 6f 73 5f 76 61 72 20 3d 20 28 2a 6a 29 2e 66 69 72 73 74 3b 00 20 20 20 Node>&.pos_var.=.(*j).first;....
21c20 20 20 20 20 20 63 6f 6e 73 74 20 54 4e 6f 64 65 20 76 61 72 20 3d 20 28 2a 6a 29 2e 66 69 72 73 .....const.TNode.var.=.(*j).firs
21c40 74 2e 73 65 63 6f 6e 64 3b 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 54 4e 6f 64 65 20 70 6f t.second;.........const.TNode.po
21c60 73 20 3d 20 28 2a 6a 29 2e 66 69 72 73 74 2e 66 69 72 73 74 3b 00 20 20 20 20 20 20 66 6f 72 28 s.=.(*j).first.first;.......for(
21c80 6d 61 70 3c 70 61 69 72 3c 4e 6f 64 65 2c 20 4e 6f 64 65 3e 2c 20 75 69 6e 74 36 34 5f 74 3e 3a map<pair<Node,.Node>,.uint64_t>:
21ca0 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 6a 20 3d 20 6d 61 72 6b 73 2e 62 65 67 69 6e 28 :const_iterator.j.=.marks.begin(
21cc0 29 3b 20 6a 20 21 3d 20 6d 61 72 6b 73 2e 65 6e 64 28 29 3b 20 2b 2b 6a 29 20 7b 00 20 20 20 20 );.j.!=.marks.end();.++j).{.....
21ce0 69 66 28 65 6c 69 67 69 62 6c 65 29 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 if(eligible).{.....}.......}....
21d00 20 20 20 20 20 61 73 73 65 72 74 73 5b 78 5f 76 61 72 5d 2e 70 75 73 68 5f 62 61 63 6b 28 2a 6a .....asserts[x_var].push_back(*j
21d20 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 63 6f 65 66 5b 78 5f 76 61 );.........}...........coef[x_va
21d40 72 5d 5b 30 5d 20 3d 20 63 6f 6e 73 74 61 6e 74 3b 00 20 20 20 20 20 20 20 20 20 20 63 6f 65 66 r][0].=.constant;...........coef
21d60 5b 78 5f 76 61 72 5d 2e 72 65 73 69 7a 65 28 36 29 3b 00 20 20 20 20 20 20 20 20 20 20 41 73 73 [x_var].resize(6);...........Ass
21d80 65 72 74 28 63 6f 65 66 5b 78 5f 76 61 72 5d 2e 73 69 7a 65 28 29 20 3c 3d 20 36 29 3b 00 20 20 ert(coef[x_var].size().<=.6);...
21da0 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 ......}.else.{...........}......
21dc0 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 .......break;.............Debug(
21de0 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 2d 2d 20 49 4e 45 4c 49 47 49 42 4c 45 20 2d 2d "miplib").<<."..--.INELIGIBLE.--
21e00 20 28 6e 6f 6e 7a 65 72 6f 20 63 6f 6e 73 74 61 6e 74 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 .(nonzero.constant)".<<.endl;...
21e20 20 20 20 20 20 20 20 20 20 20 65 6c 69 67 69 62 6c 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 ..........eligible.=.false;.....
21e40 20 20 20 20 20 20 69 66 28 63 6f 6e 73 74 61 6e 74 20 21 3d 20 30 29 20 7b 00 20 20 20 20 20 20 ......if(constant.!=.0).{.......
21e60 20 20 69 66 28 78 6e 65 67 29 20 7b 00 20 20 20 20 20 20 20 20 6d 61 72 6b 73 5b 78 5f 76 61 72 ..if(xneg).{.........marks[x_var
21e80 5d 20 7c 3d 20 28 31 75 20 3c 3c 20 6d 61 72 6b 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 ].|=.(1u.<<.mark);.........}....
21ea0 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d .......break;...........Debug("m
21ec0 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 2d 2d 20 49 4e 45 4c 49 47 49 42 4c 45 20 2d 2d 20 28 iplib").<<."..--.INELIGIBLE.--.(
21ee0 72 65 6d 61 72 6b 65 64 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 65 6c remarked)".<<.endl;...........el
21f00 69 67 69 62 6c 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 20 20 69 66 28 28 6d 61 72 6b igible.=.false;.........if((mark
21f20 73 5b 78 5f 76 61 72 5d 20 26 20 28 31 75 20 3c 3c 20 6d 61 72 6b 29 29 20 21 3d 20 30 29 20 7b s[x_var].&.(1u.<<.mark)).!=.0).{
21f40 00 20 20 20 20 20 20 20 20 75 6e 73 69 67 6e 65 64 20 6d 61 72 6b 20 3d 20 28 78 6e 65 67 20 3f .........unsigned.mark.=.(xneg.?
21f60 20 30 20 3a 20 31 29 3b 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 52 61 74 69 6f 6e 61 6c 26 .0.:.1);.........const.Rational&
21f80 20 63 6f 6e 73 74 61 6e 74 20 3d 20 28 28 2a 6a 29 5b 31 5d 5b 30 5d 2e 67 65 74 4b 69 6e 64 28 .constant.=.((*j)[1][0].getKind(
21fa0 29 20 3d 3d 20 6b 69 6e 64 3a 3a 43 4f 4e 53 54 5f 52 41 54 49 4f 4e 41 4c 29 20 3f 20 28 2a 6a ).==.kind::CONST_RATIONAL).?.(*j
21fc0 29 5b 31 5d 5b 30 5d 2e 67 65 74 43 6f 6e 73 74 3c 52 61 74 69 6f 6e 61 6c 3e 28 29 20 3a 20 28 )[1][0].getConst<Rational>().:.(
21fe0 2a 6a 29 5b 31 5d 5b 31 5d 2e 67 65 74 43 6f 6e 73 74 3c 52 61 74 69 6f 6e 61 6c 3e 28 29 3b 00 *j)[1][1].getConst<Rational>();.
22000 61 64 00 00 0f 00 00 00 3b 01 00 00 00 10 00 00 44 00 00 00 00 00 00 00 d7 0f 00 00 b5 0f 00 00 ad......;.......D...............
22020 96 0f 00 00 70 0f 00 00 cd 0e 00 00 7c 0e 00 00 2c 0e 00 00 df 0d 00 00 a8 0d 00 00 58 0d 00 00 ....p.......|...,...........X...
22040 16 0d 00 00 d4 0c 00 00 8f 0c 00 00 69 0c 00 00 20 0c 00 00 de 0b 00 00 9c 0b 00 00 57 0b 00 00 ............i...............W...
22060 31 0b 00 00 e8 0a 00 00 8e 0a 00 00 65 0a 00 00 46 0a 00 00 31 0a 00 00 08 0a 00 00 fa 09 00 00 1...........e...F...1...........
22080 c7 09 00 00 88 09 00 00 5a 09 00 00 36 09 00 00 28 09 00 00 1c 09 00 00 08 09 00 00 dd 08 00 00 ........Z...6...(...............
220a0 b1 08 00 00 6f 08 00 00 14 08 00 00 06 08 00 00 ee 07 00 00 db 07 00 00 86 07 00 00 7a 07 00 00 ....o.......................z...
220c0 44 07 00 00 fa 06 00 00 b8 06 00 00 6f 06 00 00 25 06 00 00 db 05 00 00 68 05 00 00 07 05 00 00 D...........o...%.......h.......
220e0 b3 04 00 00 5c 04 00 00 f8 03 00 00 e5 03 00 00 3c 03 00 00 30 03 00 00 f6 02 00 00 bb 02 00 00 ....\...........<...0...........
22100 89 02 00 00 48 02 00 00 cb 01 00 00 96 01 00 00 63 01 00 00 57 01 00 00 4d 01 00 00 45 01 00 00 ....H...........c...W...M...E...
22120 3f 01 00 00 3b 01 00 00 40 07 00 00 27 07 00 00 06 07 00 00 e6 06 00 00 c8 06 00 20 20 7d 00 20 ?...;...@...'................}..
22140 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 ...}.......}.........}..........
22160 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 6d 6f 76 65 41 73 73 65 72 74 69 6f 6e 73 2e .}.............removeAssertions.
22180 69 6e 73 65 72 74 28 28 2a 6b 29 2e 67 65 74 49 64 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 insert((*k).getId());...........
221a0 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 20 20 22 20 3c 3c 20 2a ..Debug("miplib").<<."....".<<.*
221c0 6b 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 76 65 63 74 6f 72 3c k.<<.endl;...........for(vector<
221e0 54 4e 6f 64 65 3e 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 6b 20 3d 20 61 73 73 65 72 TNode>::const_iterator.k.=.asser
22200 74 73 5b 70 6f 73 5f 76 61 72 5d 2e 62 65 67 69 6e 28 29 2c 20 6b 5f 65 6e 64 20 3d 20 61 73 73 ts[pos_var].begin(),.k_end.=.ass
22220 65 72 74 73 5b 70 6f 73 5f 76 61 72 5d 2e 65 6e 64 28 29 3b 20 6b 20 21 3d 20 6b 5f 65 6e 64 3b erts[pos_var].end();.k.!=.k_end;
22240 20 2b 2b 6b 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 .++k).{...........Debug("miplib"
22260 29 20 3c 3c 20 22 20 20 61 73 73 65 72 74 69 6f 6e 73 20 74 6f 20 72 65 6d 6f 76 65 3a 20 22 20 ).<<."..assertions.to.remove:.".
22280 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 61 64 64 46 6f 72 6d 75 6c 61 28 6e 65 <<.endl;...........addFormula(ne
222a0 77 41 73 73 65 72 74 69 6f 6e 2c 20 66 61 6c 73 65 2c 20 66 61 6c 73 65 29 3b 00 20 20 20 20 20 wAssertion,.false,.false);......
222c0 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 20 20 22 20 3c 3c 20 .....Debug("miplib").<<."..".<<.
222e0 6e 65 77 41 73 73 65 72 74 69 6f 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 newAssertion.<<.endl;...........
22300 6e 65 77 41 73 73 65 72 74 69 6f 6e 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 newAssertion.=.Rewriter::rewrite
22320 28 6e 65 77 41 73 73 65 72 74 69 6f 6e 29 3b 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 (newAssertion);...........}.....
22340 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 73 6b 69 70 ........Debug("miplib").<<."skip
22360 53 75 62 73 3a 20 22 20 3c 3c 20 6e 65 77 41 73 73 65 72 74 69 6f 6e 5b 30 5d 20 3c 3c 20 22 20 Subs:.".<<.newAssertion[0].<<.".
22380 74 6f 20 22 20 3c 3c 20 6e 65 77 41 73 73 65 72 74 69 6f 6e 5b 31 5d 20 3c 3c 20 22 20 28 74 68 to.".<<.newAssertion[1].<<.".(th
223a0 72 65 73 68 6f 6c 64 20 69 73 20 22 20 3c 3c 20 6f 70 74 69 6f 6e 73 3a 3a 61 72 69 74 68 4d 4c reshold.is.".<<.options::arithML
223c0 54 72 69 63 6b 53 75 62 73 74 69 74 75 74 69 6f 6e 73 28 29 20 3c 3c 20 22 29 22 20 3c 3c 20 65 TrickSubstitutions().<<.")".<<.e
223e0 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 ndl;...........}.else.{.........
22400 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 61 64 64 53 75 62 73 3a ....Debug("miplib").<<."addSubs:
22420 20 22 20 3c 3c 20 6e 65 77 41 73 73 65 72 74 69 6f 6e 5b 30 5d 20 3c 3c 20 22 20 74 6f 20 22 20 .".<<.newAssertion[0].<<.".to.".
22440 3c 3c 20 6e 65 77 41 73 73 65 72 74 69 6f 6e 5b 31 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 <<.newAssertion[1].<<.endl;.....
22460 20 20 20 20 20 20 20 20 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e ........d_topLevelSubstitutions.
22480 61 64 64 53 75 62 73 74 69 74 75 74 69 6f 6e 28 6e 65 77 41 73 73 65 72 74 69 6f 6e 5b 30 5d 2c addSubstitution(newAssertion[0],
224a0 20 6e 65 77 41 73 73 65 72 74 69 6f 6e 5b 31 5d 29 3b 00 20 20 20 20 20 20 20 20 20 20 7d 20 65 .newAssertion[1]);...........}.e
224c0 6c 73 65 20 69 66 28 70 6f 73 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 20 3c 3d 20 6f lse.if(pos.getNumChildren().<=.o
224e0 70 74 69 6f 6e 73 3a 3a 61 72 69 74 68 4d 4c 54 72 69 63 6b 53 75 62 73 74 69 74 75 74 69 6f 6e ptions::arithMLTrickSubstitution
22500 73 28 29 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 64 5f 74 6f 70 4c s()).{.............Assert(d_topL
22520 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 67 65 74 53 75 62 73 74 69 74 75 74 69 6f evelSubstitutions.getSubstitutio
22540 6e 28 6e 65 77 41 73 73 65 72 74 69 6f 6e 5b 30 5d 29 20 3d 3d 20 6e 65 77 41 73 73 65 72 74 69 n(newAssertion[0]).==.newAsserti
22560 6f 6e 5b 31 5d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 57 61 72 6e 69 6e 67 28 29 20 on[1]);.............//Warning().
22580 3c 3c 20 22 4f 52 49 47 20 20 20 20 20 20 20 20 20 20 20 20 22 20 3c 3c 20 64 5f 74 6f 70 4c 65 <<."ORIG............".<<.d_topLe
225a0 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 67 65 74 53 75 62 73 74 69 74 75 74 69 6f 6e velSubstitutions.getSubstitution
225c0 28 6e 65 77 41 73 73 65 72 74 69 6f 6e 5b 30 5d 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 (newAssertion[0]).<<.endl;......
225e0 20 20 20 20 20 20 20 2f 2f 57 61 72 6e 69 6e 67 28 29 20 3c 3c 20 22 52 45 50 4c 41 43 45 20 20 .......//Warning().<<."REPLACE..
22600 20 20 20 20 20 20 20 22 20 3c 3c 20 6e 65 77 41 73 73 65 72 74 69 6f 6e 5b 31 5d 20 3c 3c 20 65 .......".<<.newAssertion[1].<<.e
22620 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 57 61 72 6e 69 6e 67 28 29 20 3c 3c 20 ndl;.............//Warning().<<.
22640 22 52 45 2d 53 55 42 53 54 49 54 55 54 49 4f 4e 20 22 20 3c 3c 20 6e 65 77 41 73 73 65 72 74 69 "RE-SUBSTITUTION.".<<.newAsserti
22660 6f 6e 5b 30 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 69 66 28 64 5f 74 6f on[0].<<.endl;...........if(d_to
22680 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 68 61 73 53 75 62 73 74 69 74 75 74 pLevelSubstitutions.hasSubstitut
226a0 69 6f 6e 28 6e 65 77 41 73 73 65 72 74 69 6f 6e 5b 30 5d 29 29 20 7b 00 20 20 20 20 20 20 20 20 ion(newAssertion[0])).{.........
226c0 20 20 4e 6f 64 65 20 6e 65 77 41 73 73 65 72 74 69 6f 6e 20 3d 20 76 61 72 2e 65 71 4e 6f 64 65 ..Node.newAssertion.=.var.eqNode
226e0 28 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 73 75 6d 29 29 3b 00 20 20 20 20 20 20 (Rewriter::rewrite(sum));.......
22700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 20 20 20 20 65 71 20 22 ....................<<."....eq."
22720 20 3c 3c 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 73 75 6d 29 20 3c 3c 20 65 6e .<<.Rewriter::rewrite(sum).<<.en
22740 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c dl;...........Debug("miplib").<<
22760 20 22 76 61 72 73 5b 5d 20 22 20 3c 3c 20 76 61 72 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 ."vars[].".<<.var.<<.endl.......
22780 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 73 75 6d 20 3d 20 6e 6d 2d 3e 6d 6b 4e 6f ....}.............sum.=.nm->mkNo
227a0 64 65 28 6b 69 6e 64 3a 3a 4d 55 4c 54 2c 20 6e 6d 2d 3e 6d 6b 43 6f 6e 73 74 28 63 6f 65 66 5b de(kind::MULT,.nm->mkConst(coef[
227c0 70 6f 73 5f 76 61 72 5d 5b 30 5d 29 2c 20 6e 65 77 56 61 72 73 5b 30 5d 29 3b 00 20 20 20 20 20 pos_var][0]),.newVars[0]);......
227e0 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 73 75 6d 20 3d 20 .....}.else.{.............sum.=.
22800 73 75 6d 62 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 sumb;.............}.............
22820 20 20 73 75 6d 62 20 3c 3c 20 6e 6d 2d 3e 6d 6b 4e 6f 64 65 28 6b 69 6e 64 3a 3a 4d 55 4c 54 2c ..sumb.<<.nm->mkNode(kind::MULT,
22840 20 6e 6d 2d 3e 6d 6b 43 6f 6e 73 74 28 63 6f 65 66 5b 70 6f 73 5f 76 61 72 5d 5b 69 69 5d 29 2c .nm->mkConst(coef[pos_var][ii]),
22860 20 6e 65 77 56 61 72 73 5b 69 69 5d 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 73 .newVars[ii]);.............for(s
22880 69 7a 65 5f 74 20 69 69 20 3d 20 30 3b 20 69 69 20 3c 20 70 6f 73 2e 67 65 74 4e 75 6d 43 68 69 ize_t.ii.=.0;.ii.<.pos.getNumChi
228a0 6c 64 72 65 6e 28 29 3b 20 2b 2b 69 69 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f 64 ldren();.++ii).{.............Nod
228c0 65 42 75 69 6c 64 65 72 3c 3e 20 73 75 6d 62 28 6b 69 6e 64 3a 3a 50 4c 55 53 29 3b 00 20 20 20 eBuilder<>.sumb(kind::PLUS);....
228e0 20 20 20 20 20 20 20 69 66 28 70 6f 73 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a .......if(pos.getKind().==.kind:
22900 3a 41 4e 44 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 4e 6f 64 65 20 73 75 6d 3b 00 20 20 20 20 :AND).{...........Node.sum;.....
22920 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 ......}.............}...........
22940 20 20 20 20 64 5f 73 6d 74 2e 64 5f 6c 6f 67 69 63 2e 6c 6f 63 6b 28 29 3b 00 20 20 20 20 20 20 ....d_smt.d_logic.lock();.......
22960 20 20 20 20 20 20 20 20 64 5f 73 6d 74 2e 64 5f 6c 6f 67 69 63 2e 65 6e 61 62 6c 65 49 6e 74 65 ........d_smt.d_logic.enableInte
22980 67 65 72 73 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 5f 73 6d 74 2e 64 5f 6c 6f gers();...............d_smt.d_lo
229a0 67 69 63 20 3d 20 64 5f 73 6d 74 2e 64 5f 6c 6f 67 69 63 2e 67 65 74 55 6e 6c 6f 63 6b 65 64 43 gic.=.d_smt.d_logic.getUnlockedC
229c0 6f 70 79 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 21 64 5f 73 6d 74 2e 64 5f 6c opy();.............if(!d_smt.d_l
229e0 6f 67 69 63 2e 61 72 65 49 6e 74 65 67 65 72 73 55 73 65 64 28 29 29 20 7b 00 20 20 20 20 20 20 ogic.areIntegersUsed()).{.......
22a00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 56 61 72 73 2e 70 75 ......}...............newVars.pu
22a20 73 68 5f 62 61 63 6b 28 76 61 72 52 65 66 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 sh_back(varRef);.............}.e
22a40 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 52 65 66 20 3d 20 6e 65 77 lse.{...............varRef.=.new
22a60 56 61 72 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 77 56 61 72 73 2e 70 75 73 68 5f Var;...............newVars.push_
22a80 62 61 63 6b 28 6e 65 77 56 61 72 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 5f 73 6d back(newVar);...............d_sm
22aa0 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 67 65 74 4d 6f 64 65 6c 28 29 2d 3e 61 64 t.d_theoryEngine->getModel()->ad
22ac0 64 53 75 62 73 74 69 74 75 74 69 6f 6e 28 2a 69 69 2c 20 6e 65 77 56 61 72 2e 65 71 4e 6f 64 65 dSubstitution(*ii,.newVar.eqNode
22ae0 28 6f 6e 65 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 75 6e (one));......................"un
22b00 65 78 70 65 63 74 65 64 20 73 75 62 73 74 69 74 75 74 69 6f 6e 20 66 72 6f 6d 20 61 72 69 74 68 expected.substitution.from.arith
22b20 27 73 20 70 70 41 73 73 65 72 74 28 29 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 's.ppAssert()");...............A
22b40 73 73 65 72 74 28 6e 75 6c 6c 4d 61 70 2e 65 6d 70 74 79 28 29 2c 00 20 20 20 20 20 20 20 20 20 ssert(nullMap.empty(),..........
22b60 20 20 20 20 20 20 20 20 20 20 20 20 22 75 6e 65 78 70 65 63 74 65 64 20 73 6f 6c 75 74 69 6f 6e ............"unexpected.solution
22b80 20 66 72 6f 6d 20 61 72 69 74 68 27 73 20 70 70 41 73 73 65 72 74 28 29 22 29 3b 00 20 20 20 20 .from.arith's.ppAssert()");.....
22ba0 20 20 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 73 74 61 74 75 73 20 3d 3d 20 54 68 65 6f 72 ..........Assert(status.==.Theor
22bc0 79 3a 3a 50 50 5f 41 53 53 45 52 54 5f 53 54 41 54 55 53 5f 55 4e 53 4f 4c 56 45 44 2c 00 20 20 y::PP_ASSERT_STATUS_UNSOLVED,...
22be0 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 75 73 20 3d 20 64 5f 73 6d 74 2e 64 5f 74 68 65 ............status.=.d_smt.d_the
22c00 6f 72 79 45 6e 67 69 6e 65 2d 3e 73 6f 6c 76 65 28 6c 65 71 2c 20 6e 75 6c 6c 4d 61 70 29 3b 00 oryEngine->solve(leq,.nullMap);.
22c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 75 6e 65 78 70 65 63 74 65 64 ....................."unexpected
22c40 20 73 75 62 73 74 69 74 75 74 69 6f 6e 20 66 72 6f 6d 20 61 72 69 74 68 27 73 20 70 70 41 73 73 .substitution.from.arith's.ppAss
22c60 65 72 74 28 29 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 6e 75 ert()");...............Assert(nu
22c80 6c 6c 4d 61 70 2e 65 6d 70 74 79 28 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 llMap.empty(),..................
22ca0 20 20 20 20 22 75 6e 65 78 70 65 63 74 65 64 20 73 6f 6c 75 74 69 6f 6e 20 66 72 6f 6d 20 61 72 ...."unexpected.solution.from.ar
22cc0 69 74 68 27 73 20 70 70 41 73 73 65 72 74 28 29 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 ith's.ppAssert()");.............
22ce0 20 20 41 73 73 65 72 74 28 73 74 61 74 75 73 20 3d 3d 20 54 68 65 6f 72 79 3a 3a 50 50 5f 41 53 ..Assert(status.==.Theory::PP_AS
22d00 53 45 52 54 5f 53 54 41 54 55 53 5f 55 4e 53 4f 4c 56 45 44 2c 00 20 20 20 20 20 20 20 20 20 20 SERT_STATUS_UNSOLVED,...........
22d20 20 20 20 20 73 74 61 74 75 73 20 3d 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e ....status.=.d_smt.d_theoryEngin
22d40 65 2d 3e 73 6f 6c 76 65 28 67 65 71 2c 20 6e 75 6c 6c 4d 61 70 29 3b 00 20 20 20 20 20 20 20 20 e->solve(geq,.nullMap);.........
22d60 20 20 20 20 20 20 54 68 65 6f 72 79 3a 3a 50 50 41 73 73 65 72 74 53 74 61 74 75 73 20 73 74 61 ......Theory::PPAssertStatus.sta
22d80 74 75 73 20 43 56 43 34 5f 55 4e 55 53 45 44 3b 20 2f 2f 20 6a 75 73 74 20 66 6f 72 20 61 73 73 tus.CVC4_UNUSED;.//.just.for.ass
22da0 65 72 74 69 6f 6e 73 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 75 62 73 74 69 74 75 74 69 ertions...............Substituti
22dc0 6f 6e 4d 61 70 20 6e 75 6c 6c 4d 61 70 28 26 64 5f 66 61 6b 65 43 6f 6e 74 65 78 74 29 3b 00 20 onMap.nullMap(&d_fakeContext);..
22de0 20 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64 46 6f 72 6d 75 6c 61 28 52 65 77 72 69 74 65 72 .............addFormula(Rewriter
22e00 3a 3a 72 65 77 72 69 74 65 28 67 65 71 2e 61 6e 64 4e 6f 64 65 28 6c 65 71 29 29 2c 20 66 61 6c ::rewrite(geq.andNode(leq)),.fal
22e20 73 65 2c 20 66 61 6c 73 65 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f 64 65 20 6c se,.false);...............Node.l
22e40 65 71 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 6e 6d 2d 3e 6d 6b 4e 6f 64 eq.=.Rewriter::rewrite(nm->mkNod
22e60 65 28 6b 69 6e 64 3a 3a 4c 45 51 2c 20 6e 65 77 56 61 72 2c 20 6f 6e 65 29 29 3b 00 20 20 20 20 e(kind::LEQ,.newVar,.one));.....
22e80 20 20 20 20 20 20 20 20 20 20 4e 6f 64 65 20 67 65 71 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 ..........Node.geq.=.Rewriter::r
22ea0 65 77 72 69 74 65 28 6e 6d 2d 3e 6d 6b 4e 6f 64 65 28 6b 69 6e 64 3a 3a 47 45 51 2c 20 6e 65 77 ewrite(nm->mkNode(kind::GEQ,.new
22ec0 56 61 72 2c 20 7a 65 72 6f 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 6f 64 65 20 Var,.zero));...............Node.
22ee0 6e 65 77 56 61 72 20 3d 20 6e 6d 2d 3e 6d 6b 53 6b 6f 6c 65 6d 28 73 73 2e 73 74 72 28 29 2c 20 newVar.=.nm->mkSkolem(ss.str(),.
22f00 6e 6d 2d 3e 69 6e 74 65 67 65 72 54 79 70 65 28 29 2c 20 22 61 20 76 61 72 69 61 62 6c 65 20 69 nm->integerType(),."a.variable.i
22f20 6e 74 72 6f 64 75 63 65 64 20 64 75 65 20 74 6f 20 73 63 72 75 62 62 69 6e 67 20 61 20 6d 69 70 ntroduced.due.to.scrubbing.a.mip
22f40 6c 69 62 20 65 6e 63 6f 64 69 6e 67 22 2c 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 53 4b 4f 4c lib.encoding",.NodeManager::SKOL
22f60 45 4d 5f 45 58 41 43 54 5f 4e 41 4d 45 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 73 EM_EXACT_NAME);...............ss
22f80 20 3c 3c 20 22 6d 69 70 76 61 72 5f 22 20 3c 3c 20 2a 69 69 3b 00 20 20 20 20 20 20 20 20 20 20 .<<."mipvar_".<<.*ii;...........
22fa0 20 20 20 20 73 74 72 69 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 20 20 20 20 20 20 20 20 20 20 20 ....stringstream.ss;............
22fc0 20 69 66 28 76 61 72 52 65 66 2e 69 73 4e 75 6c 6c 28 29 29 20 7b 00 20 20 20 20 20 20 20 20 20 .if(varRef.isNull()).{..........
22fe0 20 20 20 4e 6f 64 65 26 20 76 61 72 52 65 66 20 3d 20 69 6e 74 56 61 72 73 5b 2a 69 69 5d 3b 00 ...Node&.varRef.=.intVars[*ii];.
23000 61 64 00 00 16 00 00 00 7e 01 00 00 00 10 00 00 53 00 00 00 00 00 00 00 de 0f 00 00 81 0f 00 00 ad......~.......S...............
23020 4b 0f 00 00 f6 0e 00 00 93 0e 00 00 71 0e 00 00 3a 0e 00 00 00 0e 00 00 ac 0d 00 00 91 0d 00 00 K...........q...:...............
23040 2d 0d 00 00 c0 0c 00 00 7d 0c 00 00 73 0c 00 00 6b 0c 00 00 2e 0c 00 00 d3 0b 00 00 96 0b 00 00 -.......}...s...k...............
23060 90 0b 00 00 85 0b 00 00 2a 0b 00 00 26 0b 00 00 f9 0a 00 00 f7 0a 00 00 f6 0a 00 00 f5 0a 00 00 ........*...&...................
23080 c3 0a 00 00 97 0a 00 00 4c 0a 00 00 20 0a 00 00 fc 09 00 00 f4 09 00 00 c1 09 00 00 c0 09 00 00 ........L.......................
230a0 7f 09 00 00 7e 09 00 00 4a 09 00 00 49 09 00 00 05 09 00 00 d9 08 00 00 93 08 00 00 57 08 00 00 ....~...J...I...............W...
230c0 0b 08 00 00 dd 07 00 00 c5 07 00 00 af 07 00 00 a7 07 00 00 a6 07 00 00 5b 07 00 00 3d 07 00 00 ........................[...=...
230e0 18 07 00 00 f3 06 00 00 b6 06 00 00 89 06 00 00 67 06 00 00 2e 06 00 00 ea 05 00 00 aa 05 00 00 ................g...............
23100 5f 05 00 00 26 05 00 00 eb 04 00 00 ad 04 00 00 60 04 00 00 5f 04 00 00 14 04 00 00 13 04 00 00 _...&...........`..._...........
23120 fa 03 00 00 eb 03 00 00 ad 03 00 00 1e 03 00 00 16 03 00 00 10 03 00 00 0f 03 00 00 da 02 00 00 ................................
23140 a3 02 00 00 58 02 00 00 57 02 00 00 17 02 00 00 ce 01 00 00 cd 01 00 00 9b 01 00 00 9a 01 00 00 ....X...W.......................
23160 7e 01 00 00 5e 05 00 00 31 05 00 00 01 05 00 00 de 04 00 00 b4 04 00 00 95 04 00 00 5d 04 20 20 ~...^...1...................]...
23180 20 20 2f 2f 20 54 68 65 6f 72 79 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 00 00 20 20 20 20 64 ..//.Theory.preprocessing......d
231a0 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 74 68 65 6f 72 79 70 70 22 2c 20 64 5f umpAssertions("pre-theorypp",.d_
231c0 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 00 20 20 20 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 assertions);......d_smt.d_theory
231e0 45 6e 67 69 6e 65 2d 3e 73 74 61 74 69 63 49 6e 69 74 69 61 6c 69 7a 65 42 56 4f 70 74 69 6f 6e Engine->staticInitializeBVOption
23200 73 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 2f 2f 20 62 65 s(d_assertions.ref());.....//.be
23220 66 6f 72 65 20 70 70 52 65 77 72 69 74 65 20 63 68 65 63 6b 20 69 66 20 6f 6e 6c 79 20 63 6f 72 fore.ppRewrite.check.if.only.cor
23240 65 20 74 68 65 6f 72 79 20 66 6f 72 20 42 56 20 74 68 65 6f 72 79 00 00 20 20 20 20 44 65 62 75 e.theory.for.BV.theory......Debu
23260 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 20 20 20 20 20 3a g("smt").<<.".d_assertions.....:
23280 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 20 3c 3c 20 65 6e 64 .".<<.d_assertions.size().<<.end
232a0 6c 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 50 4f 53 54 20 6e 6f 6e l;.....Trace("smt").<<."POST.non
232c0 43 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 64 75 ClausalSimplify".<<.endl;.....du
232e0 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d 6e 6f 6e 63 6c 61 75 73 61 6c 22 2c 20 mpAssertions("post-nonclausal",.
23300 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 d_assertions);......}.......}...
23320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 73 6b 69 70 ........................<<."skip
23340 70 69 6e 67 20 6d 69 70 6c 69 62 20 70 73 65 75 64 6f 62 6f 6f 6c 65 61 6e 73 20 70 61 73 73 20 ping.miplib.pseudobooleans.pass.
23360 28 65 69 74 68 65 72 20 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 20 69 73 20 6f 6e (either.incrementalSolving.is.on
23380 2c 20 6f 72 20 6d 69 70 6c 69 62 20 70 62 73 20 61 72 65 20 74 75 72 6e 65 64 20 6f 66 66 29 2e ,.or.miplib.pbs.are.turned.off).
233a0 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 ..".<<.endl;.........Trace("simp
233c0 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d lify").<<."SmtEnginePrivate::sim
233e0 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 plify():.".......}.else.{.......
23400 20 20 64 6f 4d 69 70 6c 69 62 54 72 69 63 6b 28 29 3b 00 00 20 20 20 20 20 20 20 20 54 69 6d 65 ..doMiplibTrick();..........Time
23420 72 53 74 61 74 3a 3a 43 6f 64 65 54 69 6d 65 72 20 6d 69 70 6c 69 62 54 69 6d 65 72 28 64 5f 73 rStat::CodeTimer.miplibTimer(d_s
23440 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 6d 69 70 6c 69 62 50 61 73 73 54 69 6d 65 29 3b 00 00 mt.d_stats->d_miplibPassTime);..
23460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 6c 6f ..........................<<."lo
23480 6f 6b 69 6e 67 20 66 6f 72 20 6d 69 70 6c 69 62 20 70 73 65 75 64 6f 62 6f 6f 6c 65 61 6e 73 2e oking.for.miplib.pseudobooleans.
234a0 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 ..".<<.endl;.........Trace("simp
234c0 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d lify").<<."SmtEnginePrivate::sim
234e0 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 20 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 2e 2e plify():.".........Chat().<<."..
23500 2e 66 69 78 69 6e 67 20 6d 69 70 6c 69 62 20 65 6e 63 6f 64 69 6e 67 73 2e 2e 2e 22 20 3c 3c 20 .fixing.miplib.encodings...".<<.
23520 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 64 5f 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 endl;...........d_realAssertions
23540 45 6e 64 20 3d 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 20 29 20 7b 00 20 End.==.d_assertions.size().).{..
23560 20 20 20 20 20 20 20 20 20 2f 2f 20 72 65 2d 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 2c 20 77 .........//.re-simplification,.w
23580 68 69 63 68 20 77 65 20 64 6f 6e 27 74 20 65 78 70 65 63 74 20 74 6f 20 62 65 20 75 73 65 66 75 hich.we.don't.expect.to.be.usefu
235a0 6c 20 61 6e 79 77 61 79 29 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 72 65 73 74 72 69 63 74 69 l.anyway)...........//.restricti
235c0 6f 6e 20 6f 6e 6c 79 20 64 69 73 61 62 6c 65 73 20 6d 69 70 6c 69 62 20 70 72 6f 63 65 73 73 69 on.only.disables.miplib.processi
235e0 6e 67 20 64 75 72 69 6e 67 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 77 65 20 61 64 64 20 6e 65 ng.during...........//.we.add.ne
23600 77 20 61 73 73 65 72 74 69 6f 6e 73 20 61 6e 64 20 6e 65 65 64 20 74 68 69 73 20 28 69 6e 20 70 w.assertions.and.need.this.(in.p
23620 72 61 63 74 69 63 65 2c 20 74 68 69 73 00 20 20 20 20 20 20 20 20 20 20 64 5f 73 6d 74 2e 64 5f ractice,.this...........d_smt.d_
23640 6c 6f 67 69 63 2e 69 73 54 68 65 6f 72 79 45 6e 61 62 6c 65 64 28 54 48 45 4f 52 59 5f 41 52 49 logic.isTheoryEnabled(THEORY_ARI
23660 54 48 29 20 26 26 00 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 6e 6c 79 20 75 73 65 66 75 6c 20 TH).&&...........//.only.useful.
23680 69 6e 20 61 72 69 74 68 00 20 20 20 20 20 20 20 20 20 20 21 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e in.arith...........!.options::in
236a0 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 20 26 26 00 20 20 20 20 20 20 20 20 20 20 crementalSolving().&&...........
236c0 2f 2f 20 6d 69 70 6c 69 62 20 72 65 77 72 69 74 65 73 20 61 72 65 6e 27 74 20 73 61 66 65 20 69 //.miplib.rewrites.aren't.safe.i
236e0 6e 20 69 6e 63 72 65 6d 65 6e 74 61 6c 20 6d 6f 64 65 00 20 20 20 20 20 20 20 20 20 20 6f 70 74 n.incremental.mode...........opt
23700 69 6f 6e 73 3a 3a 61 72 69 74 68 4d 4c 54 72 69 63 6b 28 29 20 26 26 00 20 20 20 20 20 20 69 66 ions::arithMLTrick().&&.......if
23720 28 20 2f 2f 20 63 68 65 63 6b 20 74 68 61 74 20 6f 70 74 69 6f 6e 20 69 73 20 6f 6e 00 20 20 20 (.//.check.that.option.is.on....
23740 20 20 20 2f 2f 20 64 6f 20 74 68 65 20 6d 69 70 6c 69 62 20 74 72 69 63 6b 2e 00 20 20 20 20 20 ...//.do.the.miplib.trick.......
23760 20 2f 2f 20 57 65 20 70 69 67 67 79 2d 62 61 63 6b 20 6f 66 66 20 6f 66 20 74 68 65 20 42 61 63 .//.We.piggy-back.off.of.the.Bac
23780 6b 45 64 67 65 73 4d 61 70 20 69 6e 20 74 68 65 20 43 69 72 63 75 69 74 50 72 6f 70 61 67 61 74 kEdgesMap.in.the.CircuitPropagat
237a0 6f 72 20 74 6f 00 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 or.to........}.........return.fa
237c0 6c 73 65 3b 00 20 20 20 20 20 20 69 66 28 21 6e 6f 43 6f 6e 66 6c 69 63 74 29 20 7b 00 20 20 20 lse;.......if(!noConflict).{....
237e0 20 20 20 62 6f 6f 6c 20 6e 6f 43 6f 6e 66 6c 69 63 74 20 3d 20 6e 6f 6e 43 6c 61 75 73 61 6c 53 ...bool.noConflict.=.nonClausalS
23800 69 6d 70 6c 69 66 79 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 implify();......................
23820 20 20 20 3c 3c 20 22 70 65 72 66 6f 72 6d 69 6e 67 20 6e 6f 6e 2d 63 6c 61 75 73 61 6c 20 73 69 ...<<."performing.non-clausal.si
23840 6d 70 6c 69 66 69 63 61 74 69 6f 6e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 54 72 61 mplification".<<.endl;.......Tra
23860 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 ce("simplify").<<."SmtEnginePriv
23880 61 74 65 3a 3a 73 69 6d 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 20 20 20 43 68 61 74 28 29 20 ate::simplify():.".......Chat().
238a0 3c 3c 20 22 2e 2e 2e 70 65 72 66 6f 72 6d 69 6e 67 20 6e 6f 6e 63 6c 61 75 73 61 6c 20 73 69 6d <<."...performing.nonclausal.sim
238c0 70 6c 69 66 69 63 61 74 69 6f 6e 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 2f plification...".<<.endl;......./
238e0 2f 20 50 65 72 66 6f 72 6d 20 6e 6f 6e 2d 63 6c 61 75 73 61 6c 20 73 69 6d 70 6c 69 66 69 63 61 /.Perform.non-clausal.simplifica
23900 74 69 6f 6e 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 73 69 6d 70 6c 69 66 69 63 61 74 tion.....if(options::simplificat
23920 69 6f 6e 4d 6f 64 65 28 29 20 21 3d 20 53 49 4d 50 4c 49 46 49 43 41 54 49 4f 4e 5f 4d 4f 44 45 ionMode().!=.SIMPLIFICATION_MODE
23940 5f 4e 4f 4e 45 29 20 7b 00 00 20 20 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 _NONE).{......dumpAssertions("pr
23960 65 2d 6e 6f 6e 63 6c 61 75 73 61 6c 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 00 20 e-nonclausal",.d_assertions);...
23980 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 ...Trace("simplify").<<."SmtEngi
239a0 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d 70 6c 69 66 79 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 nePrivate::simplify()".<<.endl;.
239c0 00 20 20 20 20 53 63 6f 70 65 43 6f 75 6e 74 65 72 20 64 65 70 74 68 28 64 5f 73 69 6d 70 6c 69 .....ScopeCounter.depth(d_simpli
239e0 66 79 41 73 73 65 72 74 69 6f 6e 73 44 65 70 74 68 29 3b 00 20 20 74 72 79 20 7b 00 20 20 41 73 fyAssertionsDepth);...try.{...As
23a00 73 65 72 74 28 64 5f 73 6d 74 2e 64 5f 70 65 6e 64 69 6e 67 50 6f 70 73 20 3d 3d 20 30 29 3b 00 sert(d_smt.d_pendingPops.==.0);.
23a20 20 20 73 70 65 6e 64 52 65 73 6f 75 72 63 65 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 70 72 6f 63 ..spendResource(options::preproc
23a40 65 73 73 53 74 65 70 28 29 29 3b 00 20 20 74 68 72 6f 77 28 54 79 70 65 43 68 65 63 6b 69 6e 67 essStep());...throw(TypeChecking
23a60 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 2c 20 55 6e 73 61 66 Exception,.LogicException,.Unsaf
23a80 65 49 6e 74 65 72 72 75 70 74 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 62 6f 6f 6c 20 53 6d 74 45 eInterruptException).{.bool.SmtE
23aa0 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 nginePrivate::simplifyAssertions
23ac0 28 29 00 2f 2f 20 72 65 74 75 72 6e 73 20 66 61 6c 73 65 20 69 66 20 73 69 6d 70 6c 69 66 69 63 ().//.returns.false.if.simplific
23ae0 61 74 69 6f 6e 20 6c 65 64 20 74 6f 20 22 66 61 6c 73 65 22 00 00 00 7d 00 20 20 64 5f 72 65 61 ation.led.to."false"...}...d_rea
23b00 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 20 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 lAssertionsEnd.=.d_assertions.si
23b20 7a 65 28 29 3b 00 20 20 7d 00 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c ze();...}.....Debug("miplib").<<
23b40 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d 70 6c 69 66 79 28 29 3a 20 ."SmtEnginePrivate::simplify():.
23b60 6d 69 70 6c 69 62 20 70 61 73 73 20 66 6f 75 6e 64 20 6e 6f 74 68 69 6e 67 2e 22 20 3c 3c 20 65 miplib.pass.found.nothing.".<<.e
23b80 6e 64 6c 3b 00 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 44 65 62 75 ndl;...}.else.{.....}.......Debu
23ba0 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 6e 6f 77 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 g("miplib").<<."now:.".<<.d_asse
23bc0 72 74 69 6f 6e 73 5b 69 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 64 5f 61 73 73 65 72 rtions[i].<<.endl;.......d_asser
23be0 74 69 6f 6e 73 5b 69 5d 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 64 5f 74 tions[i].=.Rewriter::rewrite(d_t
23c00 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 70 6c 79 28 64 5f 61 73 73 opLevelSubstitutions.apply(d_ass
23c20 65 72 74 69 6f 6e 73 5b 69 5d 29 29 3b 00 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 ertions[i]));.......Debug("mipli
23c40 62 22 29 20 3c 3c 20 22 68 61 64 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 b").<<."had:.".<<.d_assertions[i
23c60 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 ].<<.endl;.......}.........}....
23c80 20 20 20 20 20 20 20 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 6e 75 6d 4d 69 70 6c 69 .......d_smt.d_stats->d_numMipli
23ca0 62 41 73 73 65 72 74 69 6f 6e 73 52 65 6d 6f 76 65 64 20 2b 3d 20 72 65 6d 6f 76 61 6c 73 3b 00 bAssertionsRemoved.+=.removals;.
23cc0 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 53 6d ..........Debug("miplib").<<."Sm
23ce0 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d 70 6c 69 66 79 28 29 3a 20 2d 20 20 20 tEnginePrivate::simplify():.-...
23d00 20 20 20 62 79 20 22 20 3c 3c 20 72 65 6d 6f 76 61 6c 73 20 3c 3c 20 22 20 63 6f 6e 6a 75 6e 63 ...by.".<<.removals.<<.".conjunc
23d20 74 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 6d 69 ts".<<.endl;...........Debug("mi
23d40 70 6c 69 62 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d plib").<<."SmtEnginePrivate::sim
23d60 70 6c 69 66 79 28 29 3a 20 2d 20 72 65 64 75 63 65 64 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 plify():.-.reduced.".<<.d_assert
23d80 69 6f 6e 73 5b 69 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 69 66 28 72 65 6d 6f ions[i].<<.endl;.........if(remo
23da0 76 61 6c 73 20 3e 20 30 29 20 7b 00 20 20 20 20 20 20 20 20 73 69 7a 65 5f 74 20 72 65 6d 6f 76 vals.>.0).{.........size_t.remov
23dc0 61 6c 73 20 3d 20 72 65 6d 6f 76 65 46 72 6f 6d 43 6f 6e 6a 75 6e 63 74 69 6f 6e 28 64 5f 61 73 als.=.removeFromConjunction(d_as
23de0 73 65 72 74 69 6f 6e 73 5b 69 5d 2c 20 72 65 6d 6f 76 65 41 73 73 65 72 74 69 6f 6e 73 29 3b 00 sertions[i],.removeAssertions);.
23e00 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 2e ......}.else.if(d_assertions[i].
23e20 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 4e 44 29 20 7b 00 20 20 20 20 20 20 getKind().==.kind::AND).{.......
23e40 20 20 2b 2b 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 6e 75 6d 4d 69 70 6c 69 62 41 73 ..++d_smt.d_stats->d_numMiplibAs
23e60 73 65 72 74 69 6f 6e 73 52 65 6d 6f 76 65 64 3b 00 20 20 20 20 20 20 20 20 64 5f 61 73 73 65 72 sertionsRemoved;.........d_asser
23e80 74 69 6f 6e 73 5b 69 5d 20 3d 20 64 5f 74 72 75 65 3b 00 20 20 20 20 20 20 20 20 44 65 62 75 67 tions[i].=.d_true;.........Debug
23ea0 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a ("miplib").<<."SmtEnginePrivate:
23ec0 3a 73 69 6d 70 6c 69 66 79 28 29 3a 20 2d 20 72 65 6d 6f 76 69 6e 67 20 22 20 3c 3c 20 64 5f 61 :simplify():.-.removing.".<<.d_a
23ee0 73 73 65 72 74 69 6f 6e 73 5b 69 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 69 66 28 72 ssertions[i].<<.endl;.......if(r
23f00 65 6d 6f 76 65 41 73 73 65 72 74 69 6f 6e 73 2e 66 69 6e 64 28 64 5f 61 73 73 65 72 74 69 6f 6e emoveAssertions.find(d_assertion
23f20 73 5b 69 5d 2e 67 65 74 49 64 28 29 29 20 21 3d 20 72 65 6d 6f 76 65 41 73 73 65 72 74 69 6f 6e s[i].getId()).!=.removeAssertion
23f40 73 2e 65 6e 64 28 29 29 20 7b 00 20 20 20 20 66 6f 72 28 73 69 7a 65 5f 74 20 69 20 3d 20 30 3b s.end()).{.....for(size_t.i.=.0;
23f60 20 69 20 3c 20 64 5f 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 3b 20 2b 2b 69 29 20 7b .i.<.d_realAssertionsEnd;.++i).{
23f80 00 20 20 20 20 44 65 62 75 67 28 22 6d 69 70 6c 69 62 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 .....Debug("miplib").<<."SmtEngi
23fa0 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d 70 6c 69 66 79 28 29 3a 20 73 63 72 75 62 62 69 6e 67 nePrivate::simplify():.scrubbing
23fc0 20 6d 69 70 6c 69 62 20 65 6e 63 6f 64 69 6e 67 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 .miplib.encoding...".<<.endl;...
23fe0 69 66 28 21 72 65 6d 6f 76 65 41 73 73 65 72 74 69 6f 6e 73 2e 65 6d 70 74 79 28 29 29 20 7b 00 if(!removeAssertions.empty()).{.
24000 61 64 00 00 31 09 00 00 e1 09 00 00 00 10 00 00 25 00 00 00 00 00 00 00 df 0f 00 00 9d 0f 00 00 ad..1...........%...............
24020 50 0f 00 00 29 0f 00 00 fa 0e 00 00 be 0e 00 00 77 0e 00 00 23 0e 00 00 dc 0d 00 00 d4 0d 00 00 P...)...........w...#...........
24040 ce 0d 00 00 cd 0d 00 00 9a 0d 00 00 6d 0d 00 00 22 0d 00 00 21 0d 00 00 07 0d 00 00 e8 0c 00 00 ............m..."...!...........
24060 9d 0c 00 00 63 0c 00 00 40 0c 00 00 29 0c 00 00 e7 0b 00 00 d1 0b 00 00 c9 0b 00 00 c3 0b 00 00 ....c...@...)...................
24080 c2 0b 00 00 90 0b 00 00 64 0b 00 00 19 0b 00 00 18 0b 00 00 f4 0a 00 00 cd 0a 00 00 89 0a 00 00 ........d.......................
240a0 0d 0a 00 00 e6 09 00 00 e1 09 00 00 c0 09 00 00 76 09 00 00 40 0a 00 00 08 0a 00 00 d2 09 00 00 ................v...@...........
240c0 87 09 00 00 86 09 00 00 29 09 00 00 d7 08 00 00 9b 08 00 00 56 08 00 00 28 08 00 00 10 08 00 00 ........)...........V...(.......
240e0 fa 07 00 00 f2 07 00 00 ec 07 00 00 eb 07 00 00 b6 07 00 00 87 07 00 00 3c 07 00 00 3b 07 00 00 ........................<...;...
24100 0b 07 00 00 ca 06 00 00 88 06 00 00 4b 06 00 00 09 06 00 00 e0 05 00 00 cb 05 00 00 81 05 00 00 ............K...................
24120 71 05 00 00 4c 05 00 00 48 05 00 00 39 05 00 00 37 05 00 00 36 05 00 00 1a 05 00 00 01 05 00 00 q...L...H...9...7...6...........
24140 e3 04 00 00 e2 04 00 00 b2 04 00 00 b1 04 00 00 6b 04 00 00 6a 04 00 00 4a 04 00 00 49 04 00 00 ................k...j...J...I...
24160 03 04 00 00 d5 03 00 00 b5 03 00 00 6c 03 00 00 28 03 00 00 ea 02 00 00 e6 02 00 00 e5 02 00 00 ............l...(...............
24180 ad 02 00 00 66 02 00 00 44 02 00 00 f8 01 00 00 f7 01 00 00 d4 01 00 00 a1 01 00 00 1f 03 00 00 ....f...D.......................
241a0 fd 20 20 2f 2f 20 54 4f 44 4f 3a 20 42 72 69 6e 67 20 75 70 20 69 6e 20 61 20 6d 65 65 74 69 6e ...//.TODO:.Bring.up.in.a.meetin
241c0 67 20 77 68 65 72 65 20 74 6f 20 70 75 74 20 74 68 69 73 00 20 20 2f 2f 20 54 75 72 6e 20 6f 66 g.where.to.put.this...//.Turn.of
241e0 66 20 73 74 6f 70 20 6f 6e 6c 79 20 66 6f 72 20 51 46 5f 4c 52 41 00 00 20 20 54 72 61 63 65 28 f.stop.only.for.QF_LRA....Trace(
24200 22 73 6d 74 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 28 29 3a 20 64 "smt").<<."SmtEngine::check():.d
24220 6f 6e 65 20 70 72 6f 63 65 73 73 69 6e 67 20 61 73 73 65 72 74 69 6f 6e 73 22 20 3c 3c 20 65 6e one.processing.assertions".<<.en
24240 64 6c 3b 00 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f dl;...d_private->processAssertio
24260 6e 73 28 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 ns();...Trace("smt").<<."SmtEngi
24280 6e 65 3a 3a 63 68 65 63 6b 28 29 3a 20 70 72 6f 63 65 73 73 69 6e 67 20 61 73 73 65 72 74 69 6f ne::check():.processing.assertio
242a0 6e 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 2f 2f 20 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 ns".<<.endl;...//.Make.sure.the.
242c0 70 72 6f 70 20 6c 61 79 65 72 20 68 61 73 20 61 6c 6c 20 6f 66 20 74 68 65 20 61 73 73 65 72 74 prop.layer.has.all.of.the.assert
242e0 69 6f 6e 73 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 52 65 73 75 6c 74 28 52 65 73 75 ions....}.....return.Result(Resu
24300 6c 74 3a 3a 56 41 4c 49 44 49 54 59 5f 55 4e 4b 4e 4f 57 4e 2c 20 77 68 79 2c 20 64 5f 66 69 6c lt::VALIDITY_UNKNOWN,.why,.d_fil
24320 65 6e 61 6d 65 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ename);.........................
24340 20 20 20 20 20 52 65 73 75 6c 74 3a 3a 52 45 53 4f 55 52 43 45 4f 55 54 20 3a 20 52 65 73 75 6c .....Result::RESOURCEOUT.:.Resul
24360 74 3a 3a 54 49 4d 45 4f 55 54 3b 00 20 20 20 20 52 65 73 75 6c 74 3a 3a 55 6e 6b 6e 6f 77 6e 45 t::TIMEOUT;.....Result::UnknownE
24380 78 70 6c 61 6e 61 74 69 6f 6e 20 77 68 79 20 3d 20 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 xplanation.why.=.resourceManager
243a0 2d 3e 6f 75 74 4f 66 52 65 73 6f 75 72 63 65 73 28 29 20 3f 00 20 20 20 20 20 20 72 65 73 6f 75 ->outOfResources().?.......resou
243c0 72 63 65 4d 61 6e 61 67 65 72 2d 3e 6f 75 74 28 29 29 20 7b 00 20 20 69 66 20 28 72 65 73 6f 75 rceManager->out()).{...if.(resou
243e0 72 63 65 4d 61 6e 61 67 65 72 2d 3e 63 75 6d 75 6c 61 74 69 76 65 4c 69 6d 69 74 4f 6e 28 29 20 rceManager->cumulativeLimitOn().
24400 26 26 00 20 20 2f 2f 20 4f 6e 6c 79 20 77 61 79 20 77 65 20 63 61 6e 20 62 65 20 6f 75 74 20 6f &&...//.Only.way.we.can.be.out.o
24420 66 20 72 65 73 6f 75 72 63 65 20 69 73 20 69 66 20 63 75 6d 75 6c 61 74 69 76 65 20 62 75 64 67 f.resource.is.if.cumulative.budg
24440 65 74 20 69 73 20 6f 6e 00 00 20 20 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2d 3e 62 65 67 et.is.on....resourceManager->beg
24460 69 6e 43 61 6c 6c 28 29 3b 00 00 20 20 52 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2a 20 72 65 inCall();....ResourceManager*.re
24480 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 67 65 74 52 65 sourceManager.=.d_private->getRe
244a0 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 28 29 3b 00 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 sourceManager();....Trace("smt")
244c0 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 28 29 22 20 3c 3c 20 65 6e 64 6c .<<."SmtEngine::check()".<<.endl
244e0 3b 00 00 20 20 41 73 73 65 72 74 28 64 5f 70 65 6e 64 69 6e 67 50 6f 70 73 20 3d 3d 20 30 29 3b ;....Assert(d_pendingPops.==.0);
24500 00 20 20 41 73 73 65 72 74 28 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 29 3b 00 52 65 73 75 6c 74 ...Assert(d_fullyInited);.Result
24520 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 28 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 .SmtEngine::check().{..}...retur
24540 6e 20 74 72 75 65 3b 00 20 20 7d 00 20 20 20 20 49 6e 74 65 72 6e 61 6c 45 72 72 6f 72 28 73 73 n.true;...}.....InternalError(ss
24560 2e 73 74 72 28 29 2e 63 5f 73 74 72 28 29 29 3b 00 20 20 20 20 20 20 20 3c 3c 20 74 63 65 70 3b .str().c_str());........<<.tcep;
24580 00 20 20 20 20 73 73 20 3c 3c 20 22 41 20 62 61 64 20 65 78 70 72 65 73 73 69 6f 6e 20 77 61 73 .....ss.<<."A.bad.expression.was
245a0 20 70 72 6f 64 75 63 65 64 2e 20 20 4f 72 69 67 69 6e 61 6c 20 65 78 63 65 70 74 69 6f 6e 20 66 .produced...Original.exception.f
245c0 6f 6c 6c 6f 77 73 3a 5c 6e 22 00 20 20 20 20 73 74 72 69 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 ollows:\n".....stringstream.ss;.
245e0 20 20 20 20 2f 2f 20 70 72 6f 63 65 73 73 20 77 69 74 68 6f 75 74 20 61 6e 79 20 65 72 72 6f 72 ....//.process.without.any.error
24600 20 6e 6f 74 69 63 65 2e 00 20 20 20 20 2f 2f 20 77 65 6c 6c 2d 74 79 70 65 64 2c 20 61 6e 64 20 .notice......//.well-typed,.and.
24620 77 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 68 65 20 43 2b 2b 20 72 75 6e 74 69 6d 65 20 74 6f we.don't.want.the.C++.runtime.to
24640 20 61 62 6f 72 74 20 6f 75 72 00 20 20 20 20 2f 2f 20 74 68 65 6f 72 79 20 63 6f 75 6c 64 20 73 .abort.our.....//.theory.could.s
24660 74 69 6c 6c 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 65 78 70 72 65 73 73 69 6f 6e 20 74 68 61 till.create.a.new.expression.tha
24680 74 20 69 73 6e 27 74 00 20 20 20 20 2f 2f 20 74 79 70 65 63 68 65 63 6b 69 6e 67 20 65 78 63 65 t.isn't.....//.typechecking.exce
246a0 70 74 69 6f 6e 73 20 76 69 61 20 28 65 2e 67 2e 29 20 65 6e 73 75 72 65 42 6f 6f 6c 65 61 6e 28 ptions.via.(e.g.).ensureBoolean(
246c0 29 2e 20 20 42 75 74 20 61 00 20 20 20 20 2f 2f 20 43 61 6c 6c 73 20 74 6f 20 74 68 69 73 20 66 )...But.a.....//.Calls.to.this.f
246e0 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 6c 72 65 61 64 79 20 77 65 65 64 unction.should.have.already.weed
24700 65 64 20 6f 75 74 20 61 6e 79 00 20 20 7d 20 63 61 74 63 68 28 54 79 70 65 43 68 65 63 6b 69 6e ed.out.any...}.catch(TypeCheckin
24720 67 45 78 63 65 70 74 69 6f 6e 50 72 69 76 61 74 65 26 20 74 63 65 70 29 20 7b 00 00 20 20 20 20 gExceptionPrivate&.tcep).{......
24740 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 20 20 Debug("smt").<<.".d_assertions..
24760 20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 20 3c 3c ...:.".<<.d_assertions.size().<<
24780 20 65 6e 64 6c 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 50 4f 53 54 .endl;.....Trace("smt").<<."POST
247a0 20 72 65 70 65 61 74 53 69 6d 70 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 64 75 6d 70 41 73 .repeatSimp".<<.endl;.....dumpAs
247c0 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d 72 65 70 65 61 74 73 69 6d 70 22 2c 20 64 5f 61 73 sertions("post-repeatsimp",.d_as
247e0 73 65 72 74 69 6f 6e 73 29 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 sertions);......}.......}.......
24800 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 69 66 28 21 6e 6f 43 6f 6e 66 ..return.false;.......if(!noConf
24820 6c 69 63 74 29 20 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 6e 6f 43 6f 6e 66 6c 69 63 74 20 3d 20 lict).{.......bool.noConflict.=.
24840 6e 6f 6e 43 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 nonClausalSimplify();...........
24860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 20 64 6f 69 6e 67 20 72 65 70 65 61 74 65 ..............<<.".doing.repeate
24880 64 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 d.simplification".<<.endl;......
248a0 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 .Trace("simplify").<<."SmtEngine
248c0 50 72 69 76 61 74 65 3a 3a 73 69 6d 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 20 20 20 43 68 61 Private::simplify():.".......Cha
248e0 74 28 29 20 3c 3c 20 22 2e 2e 2e 64 6f 69 6e 67 20 61 6e 6f 74 68 65 72 20 72 6f 75 6e 64 20 6f t().<<."...doing.another.round.o
24900 66 20 6e 6f 6e 63 6c 61 75 73 61 6c 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 2e 2e 2e 22 20 f.nonclausal.simplification...".
24920 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 72 65 70 65 61 74 53 <<.endl;.....if(options::repeatS
24940 69 6d 70 28 29 20 26 26 20 6f 70 74 69 6f 6e 73 3a 3a 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e imp().&&.options::simplification
24960 4d 6f 64 65 28 29 20 21 3d 20 53 49 4d 50 4c 49 46 49 43 41 20 20 20 20 20 20 20 20 70 61 73 73 Mode().!=.SIMPLIFICA........pass
24980 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 .apply(&d_assertions.ref());....
249a0 70 72 65 70 72 6f 63 3a 3a 55 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 50 61 73 73 20 70 preproc::UnconstrainedSimpPass.p
249c0 20 20 20 20 20 20 70 61 73 73 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 ......pass.apply(&d_assertions.r
249e0 65 20 20 20 7d 00 20 20 20 20 20 20 70 61 73 73 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 e...}.......pass.apply(&d_assert
24a00 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 20 20 70 72 65 70 72 6f 63 3a 3a 55 6e 63 6f ions.ref());.......preproc::Unco
24a20 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 50 61 73 73 20 70 61 73 73 28 64 5f 72 65 73 6f 75 72 63 nstrainedSimpPass.pass(d_resourc
24a40 65 4d 61 6e 61 67 65 72 2c 20 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 75 6e 63 6f 6e eManager,.d_smt.d_stats->d_uncon
24a60 73 74 72 61 69 6e 65 64 53 69 6d 70 54 69 6d 65 2c 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 strainedSimpTime,.d_smt.d_theory
24a80 45 6e 67 69 6e 65 29 3b 00 20 20 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 2e 2e 2e 64 6f 69 Engine);.......Chat().<<."...doi
24aa0 6e 67 20 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 2e ng.unconstrained.simplification.
24ac0 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 75 6e 63 ..".<<.endl;.....if(options::unc
24ae0 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 28 29 29 20 7b 00 20 20 20 20 2f 2f 20 55 6e 63 6f 6e onstrainedSimp()).{.....//.Uncon
24b00 73 74 72 61 69 6e 65 64 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 00 00 20 20 20 20 44 65 62 strained.simplification......Deb
24b20 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 20 20 20 20 20 ug("smt").<<.".d_assertions.....
24b40 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 20 3c 3c 20 65 6e :.".<<.d_assertions.size().<<.en
24b60 64 6c 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 50 4f 53 54 20 69 74 dl;.....Trace("smt").<<."POST.it
24b80 65 53 69 6d 70 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f eSimp".<<.endl;.....dumpAssertio
24ba0 6e 73 28 22 70 6f 73 74 2d 69 74 65 73 69 6d 70 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 ns("post-itesimp",.d_assertions)
24bc0 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 ;......}.......}.........return.
24be0 66 61 6c 73 65 3b 00 20 20 20 20 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 2e 2e 2e 49 54 45 false;.........Chat().<<."...ITE
24c00 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 20 66 6f 75 6e 64 20 75 6e 73 61 74 2e 2e 2e 22 20 .simplification.found.unsat...".
24c20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 69 66 28 21 6e 6f 43 6f 6e 66 6c 69 63 74 29 7b 00 <<.endl;.......if(!noConflict){.
24c40 20 20 20 20 20 20 62 6f 6f 6c 20 6e 6f 43 6f 6e 66 6c 69 63 74 20 3d 20 73 69 6d 70 49 54 45 28 ......bool.noConflict.=.simpITE(
24c60 29 3b 00 20 20 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 2e 2e 2e 64 6f 69 6e 67 20 49 54 45 );.......Chat().<<."...doing.ITE
24c80 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 .simplification...".<<.endl;....
24ca0 20 20 20 20 28 64 5f 73 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 44 65 70 74 68 20 3c ....(d_simplifyAssertionsDepth.<
24cc0 3d 20 31 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 64 6f 49 54 45 53 69 6d 70 4f 6e 52 65 70 65 61 =.1.||.options::doITESimpOnRepea
24ce0 74 28 29 29 29 20 7b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 64 6f 49 54 45 53 69 6d t())).{.....if(options::doITESim
24d00 70 28 29 20 26 26 00 20 20 20 20 2f 2f 20 49 54 45 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e p().&&.....//.ITE.simplification
24d20 00 00 20 20 20 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 72 74 ......Debug("smt").<<.".d_assert
24d40 69 6f 6e 73 20 20 20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a ions.....:.".<<.d_assertions.siz
24d60 65 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c e().<<.endl;.....Trace("smt").<<
24d80 20 22 50 4f 53 54 20 74 68 65 6f 72 79 50 50 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 64 75 ."POST.theoryPP".<<.endl;.....du
24da0 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d 74 68 65 6f 72 79 70 70 22 2c 20 64 5f mpAssertions("post-theorypp",.d_
24dc0 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 assertions);......}.......}.....
24de0 20 20 20 20 41 73 73 65 72 74 28 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 64 5f 61 ....Assert(Rewriter::rewrite(d_a
24e00 73 73 65 72 74 69 6f 6e 73 5b 69 5d 29 20 3d 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d ssertions[i]).==.d_assertions[i]
24e20 29 3b 00 20 20 20 20 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 70 6c 61 63 65 28 );.........d_assertions.replace(
24e40 69 2c 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 70 72 65 70 72 6f 63 i,.d_smt.d_theoryEngine->preproc
24e60 65 73 73 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 29 29 3b 00 20 20 20 20 20 20 20 20 41 ess(d_assertions[i]));.........A
24e80 73 73 65 72 74 28 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 64 5f 61 73 73 65 72 74 ssert(Rewriter::rewrite(d_assert
24ea0 69 6f 6e 73 5b 69 5d 29 20 3d 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 29 3b 00 20 20 ions[i]).==.d_assertions[i]);...
24ec0 20 20 20 20 66 6f 72 20 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 64 5f 61 ....for.(unsigned.i.=.0;.i.<.d_a
24ee0 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 20 2b 2b 20 69 29 20 7b 00 20 20 20 20 20 20 ssertions.size();.++.i).{.......
24f00 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 70 72 65 70 72 6f 63 65 73 73 d_smt.d_theoryEngine->preprocess
24f20 53 74 61 72 74 28 29 3b 00 20 20 20 20 20 20 2f 2f 20 43 61 6c 6c 20 74 68 65 20 74 68 65 6f 72 Start();.......//.Call.the.theor
24f40 79 20 70 72 65 70 72 6f 63 65 73 73 6f 72 73 00 20 20 20 20 20 20 54 69 6d 65 72 53 74 61 74 3a y.preprocessors.......TimerStat:
24f60 3a 43 6f 64 65 54 69 6d 65 72 20 63 6f 64 65 54 69 6d 65 72 28 64 5f 73 6d 74 2e 64 5f 73 74 61 :CodeTimer.codeTimer(d_smt.d_sta
24f80 74 73 2d 3e 64 5f 74 68 65 6f 72 79 50 72 65 70 72 6f 63 65 73 73 54 69 6d 65 29 3b 00 20 20 20 ts->d_theoryPreprocessTime);....
24fa0 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 2e 2e 2e 64 6f 69 6e 67 20 65 61 72 6c 79 20 74 68 65 ...Chat().<<."...doing.early.the
24fc0 6f 72 79 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 ory.preprocessing...".<<.endl;..
24fe0 20 20 20 69 66 20 28 64 5f 73 6d 74 2e 64 5f 65 61 72 6c 79 54 68 65 6f 72 79 50 50 29 20 7b 00 ...if.(d_smt.d_earlyTheoryPP).{.
25000 61 64 00 00 2f 00 00 00 37 02 00 00 00 10 00 00 7b 00 00 00 00 00 00 00 b3 0f 00 00 a1 0f 00 00 ad../...7.......{...............
25020 7b 0f 00 00 01 0f 00 00 f5 0e 00 00 c8 0e 00 00 9a 0e 00 00 6d 0e 00 00 20 0e 00 00 18 0e 00 00 {...................m...........
25040 12 0e 00 00 0e 0e 00 00 0d 0e 00 00 d4 0d 00 00 d3 0d 00 00 b1 0d 00 00 72 0d 00 00 46 0d 00 00 ........................r...F...
25060 45 0d 00 00 27 0d 00 00 c7 0c 00 00 74 0c 00 00 73 0c 00 00 72 0c 00 00 4d 0c 00 00 4b 0c 00 00 E...'.......t...s...r...M...K...
25080 4a 0c 00 00 29 0c 00 00 10 0c 00 00 e2 0b 00 00 8e 0b 00 00 8c 0b 00 00 8b 0b 00 00 8a 0b 00 00 J...)...........................
250a0 15 0b 00 00 13 0b 00 00 dc 0a 00 00 c6 0a 00 00 ab 0a 00 00 9f 0a 00 00 9b 0a 00 00 9a 0a 00 00 ................................
250c0 78 0a 00 00 67 0a 00 00 2f 0a 00 00 09 0a 00 00 ee 09 00 00 e8 09 00 00 d3 09 00 00 c7 09 00 00 x...g.../.......................
250e0 c3 09 00 00 c2 09 00 00 b2 09 00 00 9a 09 00 00 6e 09 00 00 6a 09 00 00 57 09 00 00 55 09 00 00 ................n...j...W...U...
25100 54 09 00 00 53 09 00 00 e3 08 00 00 e1 08 00 00 aa 08 00 00 94 08 00 00 79 08 00 00 60 08 00 00 T...S...................y...`...
25120 5c 08 00 00 5b 08 00 00 39 08 00 00 28 08 00 00 f0 07 00 00 da 07 00 00 b4 07 00 00 94 07 00 00 \...[...9...(...................
25140 80 07 00 00 78 07 00 00 72 07 00 00 5e 07 00 00 4e 07 00 00 4a 07 00 00 49 07 00 00 39 07 00 00 ....x...r...^...N...J...I...9...
25160 21 07 00 00 ee 06 00 00 d7 06 00 00 c4 06 00 00 be 06 00 00 ba 06 00 00 b9 06 00 00 a5 06 00 00 !...............................
25180 95 06 00 00 93 06 00 00 92 06 00 00 65 06 00 00 1d 06 00 00 f1 05 00 00 d2 05 00 00 ae 05 00 00 ............e...................
251a0 ad 05 00 00 94 05 00 00 62 05 00 00 61 05 00 00 13 05 00 00 d0 04 00 00 cf 04 00 00 86 04 00 00 ........b...a...................
251c0 85 04 00 00 63 04 00 00 4e 04 00 00 42 04 00 00 3e 04 00 00 3d 04 00 00 fd 03 00 00 d0 03 00 00 ....c...N...B...>...=...........
251e0 a0 03 00 00 55 03 00 00 51 03 00 00 50 03 00 00 14 03 00 00 df 02 00 00 96 02 00 00 4f 02 00 00 ....U...Q...P...............O...
25200 37 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7...............................
25220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 2f 2f 20 65 71 75 69 .........................//.equi
25240 73 61 74 69 73 66 69 61 62 69 6c 69 74 79 00 20 20 2f 2f 20 61 6e 79 20 61 73 73 65 72 74 69 6f satisfiability...//.any.assertio
25260 6e 73 20 61 64 64 65 64 20 62 65 79 6f 6e 64 20 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e ns.added.beyond.realAssertionsEn
25280 64 20 6d 75 73 74 20 4e 4f 54 20 61 66 66 65 63 74 20 74 68 65 00 20 20 64 5f 61 73 73 65 72 74 d.must.NOT.affect.the...d_assert
252a0 69 6f 6e 73 2e 70 75 73 68 5f 62 61 63 6b 28 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 ions.push_back(NodeManager::curr
252c0 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 6f 6e 73 74 3c 62 6f 6f 6c 3e 28 74 72 75 65 29 29 3b 00 20 entNM()->mkConst<bool>(true));..
252e0 20 2f 2f 20 70 6c 61 63 65 68 6f 6c 64 65 72 20 66 6f 72 20 61 6e 79 20 6e 65 77 20 61 73 73 65 .//.placeholder.for.any.new.asse
25300 72 74 69 6f 6e 73 20 74 6f 20 67 65 74 20 61 64 64 65 64 00 20 20 2f 2f 20 41 64 64 20 64 75 6d rtions.to.get.added...//.Add.dum
25320 6d 79 20 61 73 73 65 72 74 69 6f 6e 20 69 6e 20 6c 61 73 74 20 70 6f 73 69 74 69 6f 6e 20 2d 20 my.assertion.in.last.position.-.
25340 74 6f 20 62 65 20 75 73 65 64 20 61 73 20 61 00 00 20 20 7d 00 20 20 20 20 64 5f 61 73 73 65 72 to.be.used.as.a....}.....d_asser
25360 74 69 6f 6e 73 2e 70 75 73 68 5f 62 61 63 6b 28 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 tions.push_back(NodeManager::cur
25380 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 6f 6e 73 74 3c 62 6f 6f 6c 3e 28 74 72 75 65 29 29 3b 00 rentNM()->mkConst<bool>(true));.
253a0 20 20 20 20 64 5f 73 75 62 73 74 69 74 75 74 69 6f 6e 73 49 6e 64 65 78 20 3d 20 64 5f 61 73 73 ....d_substitutionsIndex.=.d_ass
253c0 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 00 20 20 20 20 2f 2f 20 50 6c 61 63 65 68 6f 6c 64 ertions.size();.....//.Placehold
253e0 65 72 20 66 6f 72 20 73 74 6f 72 69 6e 67 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 00 20 20 69 er.for.storing.substitutions...i
25400 66 20 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 50 72 6f 63 65 73 73 65 64 20 26 26 20 6f 70 74 69 f.(d_assertionsProcessed.&&.opti
25420 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 29 20 7b 00 00 20 20 ons::incrementalSolving()).{....
25440 7d 00 20 20 20 20 72 65 74 75 72 6e 3b 00 20 20 20 20 2f 2f 20 6e 6f 74 68 69 6e 67 20 74 6f 20 }.....return;.....//.nothing.to.
25460 64 6f 00 20 20 69 66 20 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 20 3d 3d 20 do...if.(d_assertions.size().==.
25480 30 29 20 7b 00 00 20 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 0).{....Debug("smt").<<.".d_asse
254a0 72 74 69 6f 6e 73 20 20 20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 rtions.....:.".<<.d_assertions.s
254c0 69 7a 65 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c ize().<<.endl;....Trace("smt").<
254e0 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 <."SmtEnginePrivate::processAsse
25500 72 74 69 6f 6e 73 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d rtions()".<<.endl;...Trace("smt-
25520 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f proc").<<."SmtEnginePrivate::pro
25540 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 62 65 67 69 6e 22 20 3c 3c 20 65 6e 64 6c 3b cessAssertions().begin".<<.endl;
25560 00 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 65 76 65 72 79 74 68 69 ....dumpAssertions("pre-everythi
25580 6e 67 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 2f 2f 20 44 75 6d 70 20 74 68 ng",.d_assertions);...//.Dump.th
255a0 65 20 61 73 73 65 72 74 69 6f 6e 73 00 00 20 20 41 73 73 65 72 74 28 64 5f 73 6d 74 2e 64 5f 70 e.assertions....Assert(d_smt.d_p
255c0 65 6e 64 69 6e 67 50 6f 70 73 20 3d 3d 20 30 29 3b 00 20 20 41 73 73 65 72 74 28 64 5f 73 6d 74 endingPops.==.0);...Assert(d_smt
255e0 2e 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 29 3b 00 20 20 73 70 65 6e 64 52 65 73 6f 75 72 63 65 .d_fullyInited);...spendResource
25600 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 70 72 6f 63 65 73 73 53 74 65 70 28 29 29 3b 00 20 20 54 (options::preprocessStep());...T
25620 69 6d 65 72 53 74 61 74 3a 3a 43 6f 64 65 54 69 6d 65 72 20 70 61 54 69 6d 65 72 28 64 5f 73 6d imerStat::CodeTimer.paTimer(d_sm
25640 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 54 69 t.d_stats->d_processAssertionsTi
25660 6d 65 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 me);.void.SmtEnginePrivate::proc
25680 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 66 61 essAssertions().{..}...return.fa
256a0 6c 73 65 3b 00 20 20 63 61 63 68 65 5b 6e 5d 20 3d 20 66 61 6c 73 65 3b 00 00 20 20 7d 00 20 20 lse;...cache[n].=.false;....}...
256c0 20 20 7d 00 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 00 20 20 20 20 20 20 63 61 63 ..}.......return.true;.......cac
256e0 68 65 5b 6e 5d 20 3d 20 74 72 75 65 3b 00 20 20 20 20 69 66 20 28 63 68 65 63 6b 46 6f 72 42 61 he[n].=.true;.....if.(checkForBa
25700 64 53 6b 6f 6c 65 6d 73 28 6e 5b 6b 5d 2c 20 73 6b 6f 6c 65 6d 2c 20 63 61 63 68 65 29 29 20 7b dSkolems(n[k],.skolem,.cache)).{
25720 00 20 20 66 6f 72 20 28 3b 20 6b 20 3c 20 73 7a 3b 20 2b 2b 6b 29 20 7b 00 20 20 73 69 7a 65 5f ...for.(;.k.<.sz;.++k).{...size_
25740 74 20 6b 20 3d 20 30 3b 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 62 61 64 3b 00 20 20 t.k.=.0;....}.....return.bad;...
25760 20 20 63 61 63 68 65 5b 6e 5d 20 3d 20 62 61 64 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 ..cache[n].=.bad;.....}.......}.
25780 20 20 20 20 20 20 20 20 62 61 64 20 3d 20 74 72 75 65 3b 00 20 20 20 20 20 20 69 66 20 28 21 28 ........bad.=.true;.......if.(!(
257a0 28 2a 69 74 29 2e 66 69 72 73 74 20 3c 20 6e 29 29 20 7b 00 20 20 20 20 69 66 20 28 69 74 20 21 (*it).first.<.n)).{.....if.(it.!
257c0 3d 20 64 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 2e 65 6e 64 28 29 29 20 7b 00 20 20 20 20 62 6f =.d_iteSkolemMap.end()).{.....bo
257e0 6f 6c 20 62 61 64 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 49 74 65 53 6b 6f 6c 65 6d 4d 61 70 ol.bad.=.false;.....IteSkolemMap
25800 3a 3a 69 74 65 72 61 74 6f 72 20 69 74 20 3d 20 64 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 2e 66 ::iterator.it.=.d_iteSkolemMap.f
25820 69 6e 64 28 6e 29 3b 00 20 20 69 66 20 28 73 7a 20 3d 3d 20 30 29 20 7b 00 20 20 73 69 7a 65 5f ind(n);...if.(sz.==.0).{...size_
25840 74 20 73 7a 20 3d 20 6e 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 3b 00 00 20 20 7d 00 t.sz.=.n.getNumChildren();....}.
25860 20 20 20 20 72 65 74 75 72 6e 20 28 2a 69 74 29 2e 73 65 63 6f 6e 64 3b 00 20 20 69 66 20 28 69 ....return.(*it).second;...if.(i
25880 74 20 21 3d 20 63 61 63 68 65 2e 65 6e 64 28 29 29 20 7b 00 20 20 69 74 20 3d 20 63 61 63 68 65 t.!=.cache.end()).{...it.=.cache
258a0 2e 66 69 6e 64 28 6e 29 3b 00 20 20 68 61 73 68 5f 6d 61 70 3c 4e 6f 64 65 2c 20 62 6f 6f 6c 2c .find(n);...hash_map<Node,.bool,
258c0 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e 3e 3a 3a 69 74 65 72 61 74 6f 72 20 69 74 3b .NodeHashFunction>::iterator.it;
258e0 00 7b 00 62 6f 6f 6c 20 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 63 68 65 63 6b 46 .{.bool.SmtEnginePrivate::checkF
25900 6f 72 42 61 64 53 6b 6f 6c 65 6d 73 28 54 4e 6f 64 65 20 6e 2c 20 54 4e 6f 64 65 20 73 6b 6f 6c orBadSkolems(TNode.n,.TNode.skol
25920 65 6d 2c 20 68 61 73 68 5f 6d 61 70 3c 4e 6f 64 65 2c 20 62 6f 6f 6c 2c 20 4e 6f 64 65 48 61 73 em,.hash_map<Node,.bool,.NodeHas
25940 68 46 75 6e 63 74 69 6f 6e 3e 26 20 63 61 63 68 65 29 00 00 00 7d 00 20 20 63 61 63 68 65 5b 6e hFunction>&.cache)...}...cache[n
25960 5d 20 3d 20 74 72 75 65 3b 00 20 20 7d 00 20 20 20 20 63 6f 6c 6c 65 63 74 53 6b 6f 6c 65 6d 73 ].=.true;...}.....collectSkolems
25980 28 6e 5b 6b 5d 2c 20 73 6b 6f 6c 65 6d 53 65 74 2c 20 63 61 63 68 65 29 3b 00 20 20 66 6f 72 20 (n[k],.skolemSet,.cache);...for.
259a0 28 3b 20 6b 20 3c 20 73 7a 3b 20 2b 2b 6b 29 20 7b 00 20 20 73 69 7a 65 5f 74 20 6b 20 3d 20 30 (;.k.<.sz;.++k).{...size_t.k.=.0
259c0 3b 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 3b 00 20 20 20 20 63 61 63 68 65 5b 6e 5d 20 ;....}.....return;.....cache[n].
259e0 3d 20 74 72 75 65 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 6b 6f 6c 65 6d 53 65 74 2e 69 6e =.true;.....}.......skolemSet.in
25a00 73 65 72 74 28 6e 29 3b 00 20 20 20 20 69 66 20 28 69 74 20 21 3d 20 64 5f 69 74 65 53 6b 6f 6c sert(n);.....if.(it.!=.d_iteSkol
25a20 65 6d 4d 61 70 2e 65 6e 64 28 29 29 20 7b 00 20 20 20 20 49 74 65 53 6b 6f 6c 65 6d 4d 61 70 3a emMap.end()).{.....IteSkolemMap:
25a40 3a 69 74 65 72 61 74 6f 72 20 69 74 20 3d 20 64 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 2e 66 69 :iterator.it.=.d_iteSkolemMap.fi
25a60 6e 64 28 6e 29 3b 00 20 20 69 66 20 28 73 7a 20 3d 3d 20 30 29 20 7b 00 20 20 73 69 7a 65 5f 74 nd(n);...if.(sz.==.0).{...size_t
25a80 20 73 7a 20 3d 20 6e 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 3b 00 00 20 20 7d 00 20 .sz.=.n.getNumChildren();....}..
25aa0 20 20 20 72 65 74 75 72 6e 3b 00 20 20 69 66 20 28 69 74 20 21 3d 20 63 61 63 68 65 2e 65 6e 64 ...return;...if.(it.!=.cache.end
25ac0 28 29 29 20 7b 00 20 20 69 74 20 3d 20 63 61 63 68 65 2e 66 69 6e 64 28 6e 29 3b 00 20 20 68 61 ()).{...it.=.cache.find(n);...ha
25ae0 73 68 5f 6d 61 70 3c 4e 6f 64 65 2c 20 62 6f 6f 6c 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 sh_map<Node,.bool,.NodeHashFunct
25b00 69 6f 6e 3e 3a 3a 69 74 65 72 61 74 6f 72 20 69 74 3b 00 7b 00 76 6f 69 64 20 53 6d 74 45 6e 67 ion>::iterator.it;.{.void.SmtEng
25b20 69 6e 65 50 72 69 76 61 74 65 3a 3a 63 6f 6c 6c 65 63 74 53 6b 6f 6c 65 6d 73 28 54 4e 6f 64 65 inePrivate::collectSkolems(TNode
25b40 20 6e 2c 20 73 65 74 3c 54 4e 6f 64 65 3e 26 20 73 6b 6f 6c 65 6d 53 65 74 2c 20 68 61 73 68 5f .n,.set<TNode>&.skolemSet,.hash_
25b60 6d 61 70 3c 4e 6f 64 65 2c 20 62 6f 6f 6c 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e map<Node,.bool,.NodeHashFunction
25b80 3e 26 20 63 61 63 68 65 29 00 00 00 7d 00 20 20 72 65 74 75 72 6e 20 52 65 73 75 6c 74 28 52 65 >&.cache)...}...return.Result(Re
25ba0 73 75 6c 74 3a 3a 56 41 4c 49 44 49 54 59 5f 55 4e 4b 4e 4f 57 4e 2c 20 52 65 73 75 6c 74 3a 3a sult::VALIDITY_UNKNOWN,.Result::
25bc0 52 45 51 55 49 52 45 53 5f 46 55 4c 4c 5f 43 48 45 43 4b 2c 20 64 5f 66 69 6c 65 6e 61 6d 65 29 REQUIRES_FULL_CHECK,.d_filename)
25be0 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 71 75 69 63 6b 43 68 ;...Trace("smt").<<."SMT.quickCh
25c00 65 63 6b 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 41 73 73 65 72 74 28 64 5f 66 75 6c 6c 79 eck()".<<.endl;...Assert(d_fully
25c20 49 6e 69 74 65 64 29 3b 00 52 65 73 75 6c 74 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 71 75 69 63 6b Inited);.Result.SmtEngine::quick
25c40 43 68 65 63 6b 28 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 52 65 73 75 6c 74 28 72 65 73 Check().{..}...return.Result(res
25c60 75 6c 74 2c 20 64 5f 66 69 6c 65 6e 61 6d 65 29 3b 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 ult,.d_filename);...............
25c80 20 20 20 20 20 3c 3c 20 22 2c 20 72 65 73 6f 75 72 63 65 73 20 22 20 3c 3c 20 72 65 73 6f 75 72 .....<<.",.resources.".<<.resour
25ca0 63 65 4d 61 6e 61 67 65 72 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 55 73 61 67 65 28 29 20 3c 3c ceManager->getResourceUsage().<<
25cc0 20 65 6e 64 6c 3b 00 20 20 54 72 61 63 65 28 22 6c 69 6d 69 74 22 29 20 3c 3c 20 22 53 6d 74 45 .endl;...Trace("limit").<<."SmtE
25ce0 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 28 29 3a 20 63 75 6d 75 6c 61 74 69 76 65 20 6d 69 6c 6c 69 ngine::check():.cumulative.milli
25d00 73 20 22 20 3c 3c 20 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2d 3e 67 65 74 54 69 6d 65 55 s.".<<.resourceManager->getTimeU
25d20 73 61 67 65 28 29 00 20 20 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2d 3e 65 6e 64 43 61 6c sage()...resourceManager->endCal
25d40 6c 28 29 3b 00 00 20 20 52 65 73 75 6c 74 20 72 65 73 75 6c 74 20 3d 20 64 5f 70 72 6f 70 45 6e l();....Result.result.=.d_propEn
25d60 67 69 6e 65 2d 3e 63 68 65 63 6b 53 61 74 28 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 gine->checkSat();...Trace("smt")
25d80 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 28 29 3a 20 72 75 6e 6e 69 6e 67 .<<."SmtEngine::check():.running
25da0 20 63 68 65 63 6b 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 43 68 61 74 28 29 20 3c 3c 20 22 73 6f .check".<<.endl;...Chat().<<."so
25dc0 6c 76 69 6e 67 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 54 69 6d 65 72 53 74 61 74 3a lving...".<<.endl;....TimerStat:
25de0 3a 43 6f 64 65 54 69 6d 65 72 20 73 6f 6c 76 65 54 69 6d 65 72 28 64 5f 73 74 61 74 73 2d 3e 64 :CodeTimer.solveTimer(d_stats->d
25e00 5f 73 6f 6c 76 65 54 69 6d 65 29 3b 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 _solveTime);....}.....}.......}.
25e20 20 20 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 ........Trace("smt").<<."SmtEngi
25e40 6e 65 3a 3a 63 68 65 63 6b 28 29 3a 20 74 75 72 6e 69 6e 67 20 6f 66 66 20 73 74 6f 70 20 6f 6e ne::check():.turning.off.stop.on
25e60 6c 79 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 64 5f 64 65 63 69 73 69 6f 6e 45 ly".<<.endl;.........d_decisionE
25e80 6e 67 69 6e 65 2d 3e 63 6c 65 61 72 53 74 72 61 74 65 67 69 65 73 28 29 3b 00 20 20 20 20 20 20 ngine->clearStrategies();.......
25ea0 20 20 6f 70 74 69 6f 6e 73 3a 3a 64 65 63 69 73 69 6f 6e 53 74 6f 70 4f 6e 6c 79 2e 73 65 74 28 ..options::decisionStopOnly.set(
25ec0 66 61 6c 73 65 29 3b 00 20 20 20 20 20 20 69 66 28 64 5f 70 72 69 76 61 74 65 2d 3e 64 5f 69 74 false);.......if(d_private->d_it
25ee0 65 53 6b 6f 6c 65 6d 4d 61 70 2e 65 6d 70 74 79 28 29 29 7b 00 20 20 20 20 20 20 20 20 29 29 7b eSkolemMap.empty()){.........)){
25f00 00 20 20 20 20 20 20 20 20 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f 41 .........d_logic.isPure(THEORY_A
25f20 52 49 54 48 29 20 26 26 20 64 5f 6c 6f 67 69 63 2e 69 73 4c 69 6e 65 61 72 28 29 20 26 26 20 21 RITH).&&.d_logic.isLinear().&&.!
25f40 64 5f 6c 6f 67 69 63 2e 69 73 44 69 66 66 65 72 65 6e 63 65 4c 6f 67 69 63 28 29 20 26 26 20 20 d_logic.isDifferenceLogic().&&..
25f60 21 64 5f 6c 6f 67 69 63 2e 61 72 65 49 6e 74 65 67 65 72 73 55 73 65 64 28 29 00 20 20 20 20 20 !d_logic.areIntegersUsed()......
25f80 20 20 28 6e 6f 74 20 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 26 26 ..(not.d_logic.isQuantified().&&
25fa0 00 20 20 20 20 69 66 28 20 2f 2f 20 51 46 5f 4c 52 41 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a .....if(.//.QF_LRA...if(options:
25fc0 3a 64 65 63 69 73 69 6f 6e 53 74 6f 70 4f 6e 6c 79 28 29 20 26 26 20 21 6f 70 74 69 6f 6e 73 3a :decisionStopOnly().&&.!options:
25fe0 3a 64 65 63 69 73 69 6f 6e 4d 6f 64 65 2e 77 61 73 53 65 74 42 79 55 73 65 72 28 29 20 29 7b 00 :decisionMode.wasSetByUser().){.
26000 61 64 00 00 19 04 00 00 4d 05 00 00 00 10 00 00 46 00 00 00 00 00 00 00 d3 0f 00 00 d2 0f 00 00 ad......M.......F...............
26020 91 0f 00 00 90 0f 00 00 2d 0f 00 00 f1 0e 00 00 ed 0e 00 00 bb 0e 00 00 63 0e 00 00 15 0e 00 00 ........-...............c.......
26040 e3 0d 00 00 aa 0d 00 00 60 0d 00 00 5a 0d 00 00 56 0d 00 00 f2 0c 00 00 b5 0c 00 00 b4 0c 00 00 ........`...Z...V...............
26060 97 0c 00 00 88 0c 00 00 82 0c 00 00 48 0c 00 00 fe 0b 00 00 f7 0b 00 00 ef 0b 00 00 ee 0b 00 00 ............H...................
26080 a5 0b 00 00 a4 0b 00 00 84 0b 00 00 4e 0b 00 00 29 0b 00 00 25 0b 00 00 24 0b 00 00 03 0b 00 00 ............N...)...%...$.......
260a0 b0 0a 00 00 63 0a 00 00 3e 0a 00 00 3b 0a 00 00 3a 0a 00 00 17 0a 00 00 df 09 00 00 b8 09 00 00 ....c...>...;...:...............
260c0 b3 09 00 00 b2 09 00 00 8d 09 00 00 57 09 00 00 30 09 00 00 2c 09 00 00 2b 09 00 00 e7 08 00 00 ............W...0...,...+.......
260e0 bd 08 00 00 88 08 00 00 54 08 00 00 f6 07 00 00 92 07 00 00 30 07 00 00 2c 07 00 00 2b 07 00 00 ........T...........0...,...+...
26100 e7 06 00 00 9a 06 00 00 72 06 00 00 6e 06 00 00 6d 06 00 00 4a 06 00 00 22 06 00 00 cc 05 00 00 ........r...n...m...J...".......
26120 a7 05 00 00 a6 05 00 00 73 05 00 00 4d 05 00 00 91 05 00 00 48 05 00 00 47 05 00 00 0d 05 00 00 ........s...M.......H...G.......
26140 09 05 00 00 c2 04 00 00 84 04 00 00 49 04 00 00 00 04 00 00 e0 03 00 00 ae 03 00 00 66 03 00 00 ............I...............f...
26160 2e 03 00 00 28 03 00 00 24 03 00 00 e9 02 00 00 e8 02 00 00 9f 02 00 00 9e 02 00 00 84 02 00 00 ....(...$.......................
26180 83 02 00 00 61 02 00 00 3c 02 00 00 d4 01 00 00 98 01 00 00 00 00 00 00 20 20 20 20 64 75 6d 70 ....a...<...................dump
261a0 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 2d 73 69 Assertions("pre-unconstrained-si
261c0 6d 70 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 mp",.d_assertions);.....Trace("s
261e0 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a mt-proc").<<."SmtEnginePrivate::
26200 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 72 65 2d 75 6e 63 6f 6e 73 processAssertions().:.pre-uncons
26220 74 72 61 69 6e 65 64 2d 73 69 6d 70 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 69 66 trained-simp".<<.std::endl;...if
26240 28 6f 70 74 69 6f 6e 73 3a 3a 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 28 29 29 20 7b (options::unconstrainedSimp()).{
26260 00 20 20 2f 2f 20 55 6e 63 6f 6e 73 74 72 61 69 6e 65 64 20 73 69 6d 70 6c 69 66 69 63 61 74 69 ...//.Unconstrained.simplificati
26280 6f 6e 00 00 20 20 62 6f 6f 6c 20 6e 6f 43 6f 6e 66 6c 69 63 74 20 3d 20 74 72 75 65 3b 00 00 20 on....bool.noConflict.=.true;...
262a0 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 20 .Debug("smt").<<.".d_assertions.
262c0 20 20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 20 3c ....:.".<<.d_assertions.size().<
262e0 3c 20 65 6e 64 6c 3b 00 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d <.endl;....dumpAssertions("post-
26300 63 6f 6e 73 74 72 61 69 6e 2d 73 75 62 74 79 70 65 73 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e constrain-subtypes",.d_assertion
26320 73 29 3b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 63 6f 6e 73 74 72 61 69 6e 53 75 62 s);...}.....}.......constrainSub
26340 74 79 70 65 73 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 2c 20 64 5f 61 73 73 65 72 74 69 types(d_assertions[i],.d_asserti
26360 6f 6e 73 29 3b 00 20 20 20 20 66 6f 72 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 2c 20 69 5f ons);.....for(unsigned.i.=.0,.i_
26380 65 6e 64 20 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 20 69 20 21 3d 20 end.=.d_assertions.size();.i.!=.
263a0 69 5f 65 6e 64 3b 20 2b 2b 69 29 20 7b 00 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 63 6f 6e i_end;.++i).{.....Chat().<<."con
263c0 73 74 72 61 69 6e 69 6e 67 20 73 75 62 74 79 70 65 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 straining.subtypes...".<<.endl;.
263e0 20 20 20 20 2f 2f 20 6d 65 6d 6f 72 79 20 64 75 72 69 6e 67 20 74 68 69 73 20 6c 6f 6f 70 2e 00 ....//.memory.during.this.loop..
26400 20 20 20 20 2f 2f 20 57 65 20 61 6c 73 6f 20 63 61 6e 27 74 20 75 73 65 20 61 6e 20 69 74 65 72 ....//.We.also.can't.use.an.iter
26420 61 74 6f 72 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 76 65 63 74 6f 72 20 6d 61 79 20 62 65 20 ator,.because.the.vector.may.be.
26440 6d 6f 76 65 64 20 69 6e 00 20 20 20 20 2f 2f 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2c 20 62 75 moved.in.....//.d_assertions,.bu
26460 74 20 77 65 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 20 72 65 70 72 6f 63 65 73 73 20 74 68 6f t.we.don't.need.to.reprocess.tho
26480 73 65 2e 00 20 20 20 20 2f 2f 20 43 61 72 65 66 75 6c 2c 20 68 65 72 65 3a 20 63 6f 6e 73 74 72 se......//.Careful,.here:.constr
264a0 61 69 6e 53 75 62 74 79 70 65 73 28 29 20 61 64 64 73 20 74 6f 20 74 68 65 20 62 61 63 6b 20 6f ainSubtypes().adds.to.the.back.o
264c0 66 00 20 20 20 20 2f 2f 20 41 6e 79 20 76 61 72 69 61 62 6c 65 73 20 6f 66 20 73 75 62 74 79 70 f.....//.Any.variables.of.subtyp
264e0 65 20 74 79 70 65 73 20 6e 65 65 64 20 74 6f 20 62 65 20 63 6f 6e 73 74 72 61 69 6e 65 64 20 70 e.types.need.to.be.constrained.p
26500 72 6f 70 65 72 6c 79 2e 00 20 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 roperly....{...dumpAssertions("p
26520 72 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 73 75 62 74 79 70 65 73 22 2c 20 64 5f 61 73 73 65 72 74 re-constrain-subtypes",.d_assert
26540 69 6f 6e 73 29 3b 00 00 20 20 44 65 62 20 20 20 20 70 61 73 73 31 2e 61 70 70 6c 79 28 26 64 5f ions);....Deb....pass1.apply(&d_
26560 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 70 72 65 70 72 6f 63 3a 3a assertions.ref());.....preproc::
26580 52 65 77 72 69 74 65 50 61 73 73 20 70 61 73 73 31 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 RewritePass.pass1(d_resourceMana
265a0 67 65 72 29 3b 00 00 20 20 20 20 70 61 73 73 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 69 ger);......pass.apply(&d_asserti
265c0 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 70 72 65 70 72 6f 63 3a 3a 42 56 41 62 73 74 72 ons.ref());.....preproc::BVAbstr
265e0 61 63 74 69 6f 6e 50 61 73 73 20 70 61 73 73 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 actionPass.pass(d_resourceManage
26600 72 2c 20 26 64 5f 73 6d 74 2c 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 29 r,.&d_smt,.d_smt.d_theoryEngine)
26620 3b 00 20 20 20 20 20 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c ;.......!options::incrementalSol
26640 76 69 6e 67 28 29 29 20 7b 00 20 20 69 66 20 28 20 6f 70 74 69 6f 6e 73 3a 3a 62 76 41 62 73 74 ving()).{...if.(.options::bvAbst
26660 72 61 63 74 69 6f 6e 28 29 20 26 26 00 00 20 20 7d 00 20 20 20 20 70 61 73 73 2e 61 70 70 6c 79 raction().&&....}.....pass.apply
26680 28 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 20 20 20 00 20 20 20 20 70 72 (&d_assertions.ref());........pr
266a0 65 70 72 6f 63 3a 3a 42 69 74 42 6c 61 73 74 4d 6f 64 65 50 61 73 73 20 70 61 73 73 28 64 5f 72 eproc::BitBlastModePass.pass(d_r
266c0 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2c 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e esourceManager,.d_smt.d_theoryEn
266e0 67 69 6e 65 29 3b 00 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 62 69 74 62 6c 61 73 74 4d 6f gine);...if.(options::bitblastMo
26700 64 65 28 29 20 3d 3d 20 74 68 65 6f 72 79 3a 3a 62 76 3a 3a 42 49 54 42 4c 41 53 54 5f 4d 4f 44 de().==.theory::bv::BITBLAST_MOD
26720 45 5f 45 41 47 45 52 29 20 7b 00 00 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E_EAGER).{....}.................
26740 20 20 20 20 20 20 20 20 20 22 54 72 79 20 2d 2d 62 76 2d 64 69 76 2d 7a 65 72 6f 2d 63 6f 6e 73 ........."Try.--bv-div-zero-cons
26760 74 20 74 6f 20 69 6e 74 65 72 70 72 65 74 20 64 69 76 69 73 69 6f 6e 20 62 79 20 7a 65 72 6f 20 t.to.interpret.division.by.zero.
26780 61 73 20 61 20 63 6f 6e 73 74 61 6e 74 2e 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 as.a.constant.");...............
267a0 20 20 20 20 20 20 20 20 20 20 20 22 4e 6f 74 65 20 74 68 61 74 20 69 6e 20 61 20 51 46 5f 42 56 ..........."Note.that.in.a.QF_BV
267c0 20 70 72 6f 62 6c 65 6d 20 55 46 20 73 79 6d 62 6f 6c 73 20 63 61 6e 20 62 65 20 69 6e 74 72 6f .problem.UF.symbols.can.be.intro
267e0 64 75 63 65 64 20 66 6f 72 20 64 69 76 69 73 69 6f 6e 2e 20 22 00 20 20 20 20 74 68 72 6f 77 20 duced.for.division..".....throw.
26800 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 22 45 61 67 65 72 20 62 69 74 2d 62 6c 61 73 74 69 ModalException("Eager.bit-blasti
26820 6e 67 20 64 6f 65 73 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 20 74 68 ng.does.not.currently.support.th
26840 65 6f 72 79 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 2e 20 22 00 20 20 20 20 20 20 64 5f 73 6d 74 2e eory.combination..".......d_smt.
26860 64 5f 6c 6f 67 69 63 2e 67 65 74 4c 6f 67 69 63 53 74 72 69 6e 67 28 29 20 21 3d 20 22 51 46 5f d_logic.getLogicString().!=."QF_
26880 41 42 56 22 29 20 7b 00 20 20 20 20 20 20 64 5f 73 6d 74 2e 64 5f 6c 6f 67 69 63 2e 67 65 74 4c ABV").{.......d_smt.d_logic.getL
268a0 6f 67 69 63 53 74 72 69 6e 67 28 29 20 21 3d 20 22 51 46 5f 55 46 42 56 22 20 26 26 00 20 20 20 ogicString().!=."QF_UFBV".&&....
268c0 20 20 20 21 64 5f 73 6d 74 2e 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f ...!d_smt.d_logic.isPure(THEORY_
268e0 42 56 29 20 26 26 00 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 62 69 74 62 6c 61 73 74 4d 6f BV).&&...if.(options::bitblastMo
26900 64 65 28 29 20 3d 3d 20 74 68 65 6f 72 79 3a 3a 62 76 3a 3a 42 49 54 42 4c 41 53 54 5f 4d 4f 44 de().==.theory::bv::BITBLAST_MOD
26920 45 5f 45 41 47 45 52 20 26 26 00 00 20 20 7d 00 20 20 20 70 61 73 73 2e 61 70 70 6c 79 28 26 64 E_EAGER.&&....}....pass.apply(&d
26940 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 20 20 20 00 20 20 20 70 72 65 70 72 6f _assertions.ref());.......prepro
26960 63 3a 3a 53 6f 6c 76 65 49 6e 74 41 73 42 56 50 61 73 73 20 70 61 73 73 28 64 5f 72 65 73 6f 75 c::SolveIntAsBVPass.pass(d_resou
26980 72 63 65 4d 61 6e 61 67 65 72 29 3b 00 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 73 6f 6c 76 rceManager);...if.(options::solv
269a0 65 49 6e 74 41 73 42 56 28 29 20 3e 20 30 29 20 7b 00 00 20 20 7d 20 00 20 20 20 70 61 73 73 2e eIntAsBV().>.0).{....}.....pass.
269c0 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 20 20 20 00 20 apply(&d_assertions.ref());.....
269e0 20 20 70 72 65 70 72 6f 63 3a 3a 53 6f 6c 76 65 52 65 61 6c 41 73 49 6e 74 50 61 73 73 20 70 61 ..preproc::SolveRealAsIntPass.pa
26a00 73 73 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 29 3b 00 20 20 69 66 20 28 6f 70 74 ss(d_resourceManager);...if.(opt
26a20 69 6f 6e 73 3a 3a 73 6f 6c 76 65 52 65 61 6c 41 73 49 6e 74 28 29 29 20 7b 00 00 20 7d 00 20 20 ions::solveRealAsInt()).{...}...
26a40 20 20 70 61 73 73 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 ..pass.apply(&d_assertions.ref()
26a60 29 3b 00 20 20 20 20 70 72 65 70 72 6f 63 3a 3a 43 45 47 75 69 64 65 64 49 6e 73 74 50 61 73 73 );.....preproc::CEGuidedInstPass
26a80 20 70 61 73 73 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2c 20 64 5f 73 6d 74 2e 64 .pass(d_resourceManager,.d_smt.d
26aa0 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 29 3b 00 20 20 20 20 2f 2f 72 65 67 69 73 74 65 72 20 73 _theoryEngine);.....//register.s
26ac0 79 67 75 73 20 63 6f 6e 6a 65 63 74 75 72 65 20 70 72 65 2d 72 65 77 72 69 74 65 20 28 6d 6f 74 ygus.conjecture.pre-rewrite.(mot
26ae0 69 76 61 74 65 64 20 62 79 20 73 6f 6c 75 74 69 6f 6e 20 72 65 63 6f 6e 73 74 72 75 63 74 69 6f ivated.by.solution.reconstructio
26b00 6e 29 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 63 65 47 75 69 64 65 64 49 6e 73 74 28 29 n)...if(.options::ceGuidedInst()
26b20 20 29 7b 00 00 20 20 7d 00 20 20 20 20 70 61 73 73 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 .){....}.....pass.apply(&d_asser
26b40 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 70 72 65 70 72 6f 63 3a 3a 4e 6c 45 78 74 tions.ref());.....preproc::NlExt
26b60 50 75 72 69 66 79 50 61 73 73 20 70 61 73 73 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 PurifyPass.pass(d_resourceManage
26b80 72 29 3b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 6e 6c 45 78 74 50 75 72 69 66 79 28 29 r);...if(.options::nlExtPurify()
26ba0 20 29 7b 00 00 20 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 72 .){....Debug("smt").<<.".d_asser
26bc0 74 69 6f 6e 73 20 20 20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 tions.....:.".<<.d_assertions.si
26be0 7a 65 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 20 20 20 29 3b 00 20 20 20 20 20 7d 00 20 20 ze().<<.endl;.......);......}...
26c00 20 20 20 20 20 50 72 6f 6f 66 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 50 4d 28 29 2d 3e .....ProofManager::currentPM()->
26c20 61 64 64 41 73 73 65 72 74 69 6f 6e 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 2e 74 6f 45 addAssertion(d_assertions[i].toE
26c40 78 70 72 28 29 29 3b 00 20 20 20 20 20 66 6f 72 20 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 xpr());......for.(unsigned.i.=.0
26c60 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 20 2b 2b 69 29 20 ;.i.<.d_assertions.size();.++i).
26c80 7b 00 20 20 20 20 28 00 20 20 54 48 45 4f 52 59 5f 50 52 4f 4f 46 00 20 20 2f 2f 20 73 61 76 65 {.....(...THEORY_PROOF...//.save
26ca0 20 74 68 65 20 61 73 73 65 72 74 69 6f 6e 73 20 6e 6f 77 00 00 20 20 64 75 6d 70 41 73 73 65 72 .the.assertions.now....dumpAsser
26cc0 74 69 6f 6e 73 28 22 70 6f 73 74 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 65 78 70 61 6e 73 69 6f 6e tions("post-definition-expansion
26ce0 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 ",.d_assertions);...Trace("smt-p
26d00 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 roc").<<."SmtEnginePrivate::proc
26d20 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 6f 73 74 2d 64 65 66 69 6e 69 74 69 6f essAssertions().:.post-definitio
26d40 6e 2d 65 78 70 61 6e 73 69 6f 6e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7d 00 20 20 20 20 7d 00 n-expansion".<<.endl;...}.....}.
26d60 20 20 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 70 6c 61 63 65 28 69 2c 20 65 78 ......d_assertions.replace(i,.ex
26d80 70 61 6e 64 44 65 66 69 6e 69 74 69 6f 6e 73 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 2c pandDefinitions(d_assertions[i],
26da0 20 63 61 63 68 65 29 29 3b 00 20 20 20 20 66 6f 72 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 .cache));.....for(unsigned.i.=.0
26dc0 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 20 2b 2b 20 69 29 ;.i.<.d_assertions.size();.++.i)
26de0 20 7b 00 20 20 20 20 68 61 73 68 5f 6d 61 70 3c 4e 6f 64 65 2c 20 4e 6f 64 65 2c 20 4e 6f 64 65 .{.....hash_map<Node,.Node,.Node
26e00 48 61 73 68 46 75 6e 63 74 69 6f 6e 3e 20 63 61 63 68 65 3b 00 20 20 20 20 54 69 6d 65 72 53 74 HashFunction>.cache;.....TimerSt
26e20 61 74 3a 3a 43 6f 64 65 54 69 6d 65 72 20 63 6f 64 65 54 69 6d 65 72 28 64 5f 73 6d 74 2e 64 5f at::CodeTimer.codeTimer(d_smt.d_
26e40 73 74 61 74 73 2d 3e 64 5f 64 65 66 69 6e 69 74 69 6f 6e 45 78 70 61 6e 73 69 6f 6e 54 69 6d 65 stats->d_definitionExpansionTime
26e60 29 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 );.....Trace("simplify").<<."Smt
26e80 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d 70 6c 69 66 79 28 29 3a 20 65 78 70 61 6e EnginePrivate::simplify():.expan
26ea0 64 69 6e 67 20 64 65 66 69 6e 69 74 69 6f 6e 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 43 ding.definitions".<<.endl;.....C
26ec0 68 61 74 28 29 20 3c 3c 20 22 65 78 70 61 6e 64 69 6e 67 20 64 65 66 69 6e 69 74 69 6f 6e 73 2e hat().<<."expanding.definitions.
26ee0 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e ..".<<.endl;...{...dumpAssertion
26f00 73 28 22 70 72 65 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 65 78 70 61 6e 73 69 6f 6e 22 2c 20 64 5f s("pre-definition-expansion",.d_
26f20 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 72 6f 63 22 29 assertions);...Trace("smt-proc")
26f40 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 65 73 73 41 73 .<<."SmtEnginePrivate::processAs
26f60 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 72 65 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 65 78 70 61 sertions().:.pre-definition-expa
26f80 6e 73 69 6f 6e 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 2f 2f 20 41 73 73 65 72 74 69 6f 6e 73 nsion".<<.endl;....//.Assertions
26fa0 20 61 72 65 20 4e 4f 54 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 72 65 77 72 69 74 .are.NOT.guaranteed.to.be.rewrit
26fc0 74 65 6e 20 62 79 20 74 68 69 73 20 70 6f 69 6e 74 00 00 20 20 64 5f 72 65 61 6c 41 73 73 65 72 ten.by.this.point....d_realAsser
26fe0 74 69 6f 6e 73 45 6e 64 20 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 00 tionsEnd.=.d_assertions.size();.
27000 61 64 00 00 c2 07 00 00 ae 08 00 00 00 10 00 00 34 00 00 00 00 00 00 00 fd 0f 00 00 fc 0f 00 00 ad..............4...............
27020 da 0f 00 00 98 0f 00 00 94 0f 00 00 93 0f 00 00 38 0f 00 00 04 0f 00 00 03 0f 00 00 e5 0e 00 00 ................8...............
27040 8b 0e 00 00 59 0e 00 00 34 0e 00 00 29 0e 00 00 eb 0d 00 00 be 0d 00 00 6b 0d 00 00 44 0d 00 00 ....Y...4...)...........k...D...
27060 40 0d 00 00 3f 0d 00 00 e3 0c 00 00 ae 0c 00 00 ad 0c 00 00 70 0c 00 00 6f 0c 00 00 47 0c 00 00 @...?...............p...o...G...
27080 24 0c 00 00 db 0b 00 00 b6 0b 00 00 b5 0b 00 00 82 0b 00 00 5c 0b 00 00 58 0b 00 00 57 0b 00 00 $...................\...X...W...
270a0 1a 0b 00 00 f7 0a 00 00 ae 0a 00 00 89 0a 00 00 88 0a 00 00 55 0a 00 00 2f 0a 00 00 2b 0a 00 00 ....................U.../...+...
270c0 2a 0a 00 00 07 0a 00 00 cd 09 00 00 a8 09 00 00 a5 09 00 00 a4 09 00 00 7e 09 00 00 d6 08 00 00 *.......................~.......
270e0 b1 08 00 00 ae 08 00 00 a6 08 00 00 92 08 00 00 3a 08 00 00 16 08 00 00 f4 07 00 00 bd 07 00 00 ................:...............
27100 b7 07 00 00 af 07 00 00 5b 07 00 00 0a 07 00 00 cc 06 00 00 b4 06 00 00 6c 06 00 00 49 06 00 00 ........[...............l...I...
27120 0f 06 00 00 c0 05 00 00 8a 05 00 00 89 05 00 00 e4 05 00 00 98 05 00 00 4e 05 00 00 10 05 00 00 ........................N.......
27140 f8 04 00 00 ba 04 00 00 97 04 00 00 5b 04 00 00 13 04 00 00 d7 03 00 00 9a 03 00 00 54 03 00 00 ............[...............T...
27160 1d 03 00 00 1d 03 00 00 da 02 00 00 ed 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
27180 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 ...............do{.......bool.su
271a0 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 ccess;.......quantifiers::Quanti
271c0 66 69 65 72 4d 61 63 72 6f 73 20 71 6d 28 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 fierMacros.qm(.d_smt.d_theoryEng
271e0 69 6e 65 2d 3e 67 65 74 51 75 61 6e 74 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f ine->getQuant......do{.......boo
27200 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 l.success;.......quantifiers::Qu
27220 61 6e 74 69 66 69 65 72 4d 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 antifierM......do{.......bool.su
27240 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 ccess;.......quantifiers::Quanti
27260 66 69 65 72 4d 61 63 72 6f 73 20 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 fierMacros.......do{.......bool.
27280 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e success;.......quantifiers::Quan
272a0 74 69 66 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b tif......do{.......bool.success;
272c0 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 20 20 20 20 20 20 .......quantifiers::Quanti......
272e0 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 do{.......bool.success;.......qu
27300 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 66 69 65 72 4d 61 63 72 6f 73 20 71 20 20 20 antifiers::QuantifierMacros.q...
27320 20 20 20 64 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 ...d......do{.......bool.success
27340 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 20 20 20 20 20 20 64 6f 7b 00 20 20 ;.......quantifiers:......do{...
27360 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 ....bool.success;.......quantifi
27380 65 72 73 3a 3a 51 75 61 6e 74 69 66 69 65 72 4d 61 63 72 6f 73 20 71 6d 28 20 20 20 20 20 20 20 ers::QuantifierMacros.qm(.......
273a0 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 do{.......bool.success;.......qu
273c0 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 66 69 65 72 4d 61 20 20 20 20 20 20 64 6f 7b antifiers::QuantifierMa......do{
273e0 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 .......bool.success;.......quant
27400 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 66 69 65 72 4d 20 20 20 20 20 20 64 6f 7b 00 20 20 20 ifiers::QuantifierM......do{....
27420 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 ...bool.success;.......quantifie
27440 72 73 3a 3a 51 75 61 6e 74 69 66 69 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rs::Quantifie...................
27460 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 ..do{.......bool.success;.......
27480 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 66 69 65 72 20 20 20 20 20 20 64 6f 7b quantifiers::Quantifier......do{
274a0 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 20 20 20 20 20 .......bool.success;............
274c0 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 do{.......bool.success;.......qu
274e0 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 66 69 65 72 4d 61 63 20 20 20 20 20 20 64 6f antifiers::QuantifierMac......do
27500 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 {.......bool.suc......do{.......
27520 62 6f 6f 6c 20 73 75 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 bool.su......do{.......bool.succ
27540 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 66 69 ess;.......quantifiers::Quantifi
27560 65 72 4d 61 63 72 6f 73 20 71 6d 28 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e erMacros.qm(.d_smt.d_theoryEngin
27580 65 2d 3e 67 65 74 51 75 61 20 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 e->getQua.......do{.......bool.s
275a0 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 uccess;.......quantifiers::Quant
275c0 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 ......do{.......bool.success;...
275e0 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 66 69 65 72 4d 61 63 72 6f ....quantifiers::QuantifierMacro
27600 73 20 71 6d 28 20 64 5f 73 6d 74 2e 64 5f 74 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 s.qm(.d_smt.d_t......do{.......b
27620 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a ool.success;.......quantifiers::
27640 51 75 61 6e 74 69 66 69 65 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 Quantifie......do{.......bool.su
27660 63 63 65 73 73 3b 00 20 20 20 20 20 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c ccess;............do{.......bool
27680 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 .success;.......quantifiers::Qua
276a0 6e 74 69 66 69 65 72 4d 61 63 72 6f 73 20 71 6d 28 20 64 5f 20 20 20 20 20 20 64 6f 7b 00 20 20 ntifierMacros.qm(.d_......do{...
276c0 20 20 20 20 62 6f 6f 6c 20 73 75 63 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c ....bool.suc......do{.......bool
276e0 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 .success;.......quantifiers::Qua
27700 6e 74 69 66 69 65 72 4d 61 63 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 ntifierMac......do{.......bool.s
27720 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 uccess;.......quantifiers::Quant
27740 69 66 69 65 72 4d 61 63 72 6f 73 20 71 6d 28 20 64 5f 73 6d 74 2e 64 5f 74 68 65 20 20 20 20 20 ifierMacros.qm(.d_smt.d_the.....
27760 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 .do{.......bool.success;.......q
27780 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 66 69 65 72 4d 61 63 72 6f 73 20 71 6d 28 uantifiers::QuantifierMacros.qm(
277a0 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 20 20 20 20 20 20 64 6f 20 20 20 20 20 20 20 20 20 .d_smt.d_theory......do.........
277c0 20 20 20 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 ...do{.......bool.success;......
277e0 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 20 20 20 20 20 20 64 6f 7b 00 20 20 .quantifiers::Quanti......do{...
27800 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 20 20 20 20 64 6f 7b 00 ....bool.success;...........do{.
27820 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 ......bool.success;.............
27840 64 6f 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 73 75 63 63 65 73 73 3b 00 20 20 20 20 20 20 71 75 do{.......bool.success;.......qu
27860 61 6e 74 69 66 69 65 72 73 3a 3a 51 75 61 6e 74 69 66 69 65 72 4d 61 63 72 6f 73 20 71 6d 28 20 antifiers::QuantifierMacros.qm(.
27880 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 20 20 20 20 20 20 64 6f 7b 00 20 20 20 20 d_smt.d_theoryEngi......do{.....
278a0 20 20 62 6f 6f 6c 20 20 20 20 20 20 64 6f 20 7d 00 20 20 20 20 70 61 73 73 2e 61 70 70 6c 79 28 ..bool......do.}.....pass.apply(
278c0 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 70 72 65 70 72 6f &d_assertions.ref());.....prepro
278e0 63 3a 3a 51 75 61 6e 74 69 66 69 65 64 50 61 73 73 20 70 61 73 73 28 64 5f 72 65 73 6f 75 72 63 c::QuantifiedPass.pass(d_resourc
27900 65 4d 61 6e 61 67 65 72 2c 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2c 20 eManager,.d_smt.d_theoryEngine,.
27920 64 5f 73 6d 74 2e 64 5f 66 6d 66 52 65 63 46 75 6e 63 74 69 6f 6e 73 44 65 66 69 6e 65 64 2c 20 d_smt.d_fmfRecFunctionsDefined,.
27940 64 5f 73 6d 74 2e 64 5f 66 6d 66 52 65 63 46 75 6e 63 74 69 6f 6e 73 41 62 73 2c 20 64 5f 73 6d d_smt.d_fmfRecFunctionsAbs,.d_sm
27960 74 2e 64 5f 66 6d 66 52 65 63 46 75 6e 63 74 69 6f 6e 73 43 6f 6e 63 72 65 74 65 29 3b 00 20 20 t.d_fmfRecFunctionsConcrete);...
27980 69 66 28 20 64 5f 73 6d 74 2e 64 5f 6c 6f 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 if(.d_smt.d_logic.isQuantified()
279a0 20 29 7b 00 00 20 7d 00 20 20 20 20 70 61 73 73 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 .){...}.....pass.apply(&d_assert
279c0 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 70 72 65 70 72 6f 63 3a 3a 53 65 70 50 72 65 ions.ref());.....preproc::SepPre
279e0 53 6b 6f 6c 65 6d 45 6d 70 50 61 73 73 20 70 61 73 73 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e SkolemEmpPass.pass(d_resourceMan
27a00 61 67 65 72 29 3b 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 73 65 70 50 72 65 53 6b 6f 6c 65 ager);...if(options::sepPreSkole
27a20 6d 45 6d 70 28 29 29 20 7b 00 00 20 20 7d 00 20 20 20 20 70 61 73 73 31 2e 61 70 70 6c 79 28 26 mEmp()).{....}.....pass1.apply(&
27a40 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 70 72 65 70 72 6f 63 d_assertions.ref());.....preproc
27a60 3a 3a 52 65 77 72 69 74 65 50 61 73 73 20 70 61 73 73 31 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 ::RewritePass.pass1(d_resourceMa
27a80 6e 61 67 65 72 29 3b 00 00 20 20 20 20 70 61 73 73 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 nager);......pass.apply(&d_asser
27aa0 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 70 72 65 70 72 6f 63 3a 3a 42 6f 6f 6c 54 tions.ref());.....preproc::BoolT
27ac0 6f 42 56 50 61 73 73 20 70 61 73 73 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2c 20 oBVPass.pass(d_resourceManager,.
27ae0 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 29 3b 00 20 20 69 66 28 6f 70 74 69 d_smt.d_theoryEngine);...if(opti
27b00 6f 6e 73 3a 3a 62 6f 6f 6c 54 6f 42 69 74 76 65 63 74 6f 72 28 29 29 20 7b 00 20 20 2f 2f 20 43 ons::boolToBitvector()).{...//.C
27b20 6f 6e 76 65 72 74 20 6e 6f 6e 2d 74 6f 70 2d 6c 65 76 65 6c 20 42 6f 6f 6c 65 61 6e 73 20 74 6f onvert.non-top-level.Booleans.to
27b40 20 62 69 74 2d 76 65 63 74 6f 72 73 20 6f 66 20 73 69 7a 65 20 31 00 00 20 20 7d 00 20 20 20 20 .bit-vectors.of.size.1....}.....
27b60 70 61 73 73 31 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 pass1.apply(&d_assertions.ref())
27b80 3b 00 20 20 20 20 70 72 65 70 72 6f 63 3a 3a 52 65 77 72 69 74 65 50 61 73 73 20 70 61 73 73 31 ;.....preproc::RewritePass.pass1
27ba0 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 29 3b 00 00 20 20 20 20 70 61 73 73 2e 61 (d_resourceManager);......pass.a
27bc0 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 70 pply(&d_assertions.ref());.....p
27be0 72 65 70 72 6f 63 3a 3a 42 56 54 6f 42 6f 6f 6c 50 61 73 73 20 70 61 73 73 28 64 5f 72 65 73 6f reproc::BVToBoolPass.pass(d_reso
27c00 75 72 63 65 4d 61 6e 61 67 65 72 2c 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e urceManager,.d_smt.d_theoryEngin
27c20 65 29 3b 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 62 69 74 76 65 63 74 6f 72 54 6f 42 6f 6f e);...if(options::bitvectorToBoo
27c40 6c 28 29 29 20 7b 00 20 20 2f 2f 20 4c 69 66 74 20 62 69 74 2d 76 65 63 74 6f 72 73 20 6f 66 20 l()).{...//.Lift.bit-vectors.of.
27c60 73 69 7a 65 20 31 20 74 6f 20 62 6f 6f 6c 00 00 20 20 2f 2f 20 41 73 73 65 72 74 69 6f 6e 73 20 size.1.to.bool....//.Assertions.
27c80 41 52 45 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 72 65 77 72 69 74 74 65 6e 20 62 ARE.guaranteed.to.be.rewritten.b
27ca0 79 20 74 68 69 73 20 70 6f 69 6e 74 00 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 y.this.point....dumpAssertions("
27cc0 70 6f 73 74 2d 73 75 62 73 74 69 74 75 74 69 6f 6e 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 post-substitution",.d_assertions
27ce0 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e );...Trace("smt-proc").<<."SmtEn
27d00 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 ginePrivate::processAssertions()
27d20 20 3a 20 70 6f 73 74 2d 73 75 62 73 74 69 74 75 74 69 6f 6e 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 .:.post-substitution".<<.endl;..
27d40 20 20 7d 00 20 20 20 20 70 61 73 73 31 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 69 6f 6e ..}.....pass1.apply(&d_assertion
27d60 73 2e 72 65 66 28 29 29 3b 20 00 20 20 20 20 70 72 65 70 72 6f 63 3a 3a 4e 6f 74 55 6e 73 61 74 s.ref());......preproc::NotUnsat
27d80 43 6f 72 65 73 50 61 73 73 20 70 61 73 73 31 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 CoresPass.pass1(d_resourceManage
27da0 72 2c 20 26 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 29 3b 00 20 20 r,.&d_topLevelSubstitutions);...
27dc0 20 20 2f 2f 75 6e 73 61 74 43 6f 72 65 20 63 68 65 63 6b 20 72 65 6d 6f 76 65 64 20 66 6f 72 20 ..//unsatCore.check.removed.for.
27de0 72 65 64 75 6e 64 61 6e 63 79 00 20 20 20 20 2f 2f 20 41 70 70 6c 79 20 74 68 65 20 73 75 62 73 redundancy.....//.Apply.the.subs
27e00 74 69 74 75 74 69 6f 6e 73 20 77 65 20 61 6c 72 65 61 64 79 20 68 61 76 65 2c 20 61 6e 64 20 6e titutions.we.already.have,.and.n
27e20 6f 72 6d 61 6c 69 7a 65 00 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 70 61 73 73 2e 61 70 70 ormalize...}.else.{.....pass.app
27e40 6c 79 28 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 20 20 70 72 65 ly(&d_assertions.ref());.....pre
27e60 70 72 6f 63 3a 3a 52 65 77 72 69 74 65 50 61 73 73 20 70 61 73 73 28 64 5f 72 65 73 6f 75 72 63 proc::RewritePass.pass(d_resourc
27e80 65 4d 61 6e 61 67 65 72 29 3b 00 20 20 20 20 2f 2f 20 73 70 65 63 69 61 6c 20 72 65 77 72 69 74 eManager);.....//.special.rewrit
27ea0 69 6e 67 20 70 61 73 73 20 66 6f 72 20 75 6e 73 61 74 20 63 6f 72 65 73 2c 20 73 69 6e 63 65 20 ing.pass.for.unsat.cores,.since.
27ec0 6d 61 6e 79 20 6f 66 20 74 68 65 20 70 61 73 73 65 73 20 62 65 6c 6f 77 20 61 72 65 20 73 6b 69 many.of.the.passes.below.are.ski
27ee0 70 70 65 64 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 73 28 29 29 pped...if(options::unsatCores())
27f00 20 7b 00 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 73 75 62 73 74 69 .{....dumpAssertions("pre-substi
27f20 74 75 74 69 6f 6e 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 54 72 61 63 65 28 tution",.d_assertions);...Trace(
27f40 22 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 "smt-proc").<<."SmtEnginePrivate
27f60 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 72 65 2d 73 75 62 73 ::processAssertions().:.pre-subs
27f80 74 69 74 75 74 69 6f 6e 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 7d 00 20 20 20 20 74 68 65 6f titution".<<.endl;....}.....theo
27fa0 72 79 3a 3a 62 76 3a 3a 42 56 49 6e 74 72 6f 64 75 63 65 50 6f 77 32 3a 3a 70 6f 77 32 52 65 77 ry::bv::BVIntroducePow2::pow2Rew
27fc0 72 69 74 65 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 69 66 28 6f rite(d_assertions.ref());...if(o
27fe0 70 74 69 6f 6e 73 3a 3a 62 76 49 6e 74 72 6f 64 75 63 65 50 6f 77 32 28 29 29 7b 00 00 20 7d 00 ptions::bvIntroducePow2()){...}.
28000 61 64 00 00 74 07 00 00 4c 08 00 00 00 10 00 00 2f 00 00 00 00 00 00 00 ff 0f 00 00 ba 0f 00 00 ad..t...L......./...............
28020 9b 0f 00 00 58 0f 00 00 f5 0e 00 00 7c 0e 00 00 3e 0e 00 00 00 0e 00 00 fa 0d 00 00 f6 0d 00 00 ....X.......|...>...............
28040 f5 0d 00 00 d6 0d 00 00 a8 0d 00 00 81 0d 00 00 45 0d 00 00 3f 0d 00 00 3b 0d 00 00 3a 0d 00 00 ................E...?...;...:...
28060 e3 0c 00 00 b3 0c 00 00 82 0c 00 00 5d 0c 00 00 4a 0c 00 00 1e 0c 00 00 1a 0c 00 00 c2 0b 00 00 ............]...J...............
28080 91 0b 00 00 90 0b 00 00 59 0b 00 00 35 0b 00 00 d5 0a 00 00 b6 0a 00 00 84 0a 00 00 4a 0a 00 00 ........Y...5...............J...
280a0 0b 0a 00 00 f5 09 00 00 94 09 00 00 90 09 00 00 58 09 00 00 57 09 00 00 0e 09 00 00 0d 09 00 00 ................X...W...........
280c0 0c 09 00 00 b2 08 00 00 7f 08 00 00 7b 08 00 00 4c 08 00 00 49 08 00 00 e4 07 00 00 de 07 00 00 ............{...L...I...........
280e0 d6 07 00 00 9e 07 00 00 94 07 00 00 3f 07 00 00 fc 06 00 00 c8 06 00 00 90 06 00 00 6f 06 00 00 ............?...............o...
28100 39 06 00 00 04 06 00 00 da 05 00 00 d2 05 00 00 c8 05 00 00 89 05 00 00 50 05 00 00 11 05 00 00 9.......................P.......
28120 a7 04 00 00 8a 04 00 00 55 04 00 00 fb 03 00 00 e2 03 00 00 9f 03 00 00 3f 03 00 00 01 03 00 00 ........U...............?.......
28140 cb 02 00 00 a9 02 00 00 81 02 00 00 2c 02 00 00 2b 02 00 00 25 02 00 00 05 02 00 00 e4 01 00 00 ............,...+...%...........
28160 cb 01 00 00 90 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
28180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 ....................Chat().<<."r
281a0 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 emoving.term.ITEs...".<<.endl;..
281c0 20 7b 00 20 20 64 75 6d 70 41 73 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 .{...dumpAs....Chat().<<."removi
281e0 6e 67 20 74 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d ng.t....Chat().<<."removing.term
28200 20 49 54 45 73 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 .ITEs....Chat().<<."removing.ter
28220 6d 20 49 54 45 20 20 20 20 43 68 20 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 m.ITE....Ch.....Chat().<<."remov
28240 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 ing.term.ITEs...".<<.endl;...{..
28260 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 69 74 65 2d 72 65 6d 6f 76 61 6c .dumpAssertions("pre-ite-removal
28280 22 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 "....Chat().<<."removing.term.IT
282a0 45 73 2e 2e 2e 22 20 3c 3c 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 Es...".<<....Chat().<<."removing
282c0 20 74 65 72 6d 20 49 54 45 73 2e 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 .term.ITEs.....Chat().<<."removi
282e0 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 ng.term.ITEs...".<<.endl;...{...
28300 64 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 d....Chat().<<."removing.term.IT
28320 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 20 Es...".<<.endl;...{...dumpAsser.
28340 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 ...Chat().<<."removing.term.ITEs
28360 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f ...".<<.endl;...{...dumpAssertio
28380 6e 73 28 22 70 72 65 2d 69 74 65 2d 72 65 6d 6f 76 61 6c 22 2c 20 64 5f 61 73 73 65 72 74 69 20 ns("pre-ite-removal",.d_asserti.
283a0 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 ...Chat().<<."removing.term.ITEs
283c0 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f ...".<<.endl;...{...dumpAssertio
283e0 6e 73 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 20 20 20 20 43 ns....Chat().<<."removing.t....C
28400 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 hat().<<."removing.term.ITEs..."
28420 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 .<<.endl;...{...dumpAssertions("
28440 70 72 65 2d 69 74 65 2d 72 65 6d 6f 76 61 6c 22 2c 20 64 5f 61 20 20 20 20 43 68 61 74 28 29 20 pre-ite-removal",.d_a....Chat().
28460 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e <<."removing.term.ITEs...".<<.en
28480 64 6c 3b 00 20 20 7b 00 20 20 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e dl;...{.......Chat().<<."removin
284a0 67 20 74 65 72 6d 20 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 g.term.....Chat().<<."removing.t
284c0 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 6d 70 erm.ITEs...".<<.endl;...{...dump
284e0 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 69 74 65 2d 72 65 6d 6f 76 61 6c 22 2c 20 64 5f Assertions("pre-ite-removal",.d_
28500 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 54 72 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 assertions);...Tr....Chat().<<."
28520 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 removing.term.ITEs...".<<.endl;.
28540 20 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 74 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 ..{...dumpAssert....Chat().<<."r
28560 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 emoving.term.ITEs...".<<.endl;..
28580 20 7b 00 20 20 64 75 6d 70 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 .{...dump....Chat().<<."removing
285a0 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 .term.ITEs...".<<.endl;...{...du
285c0 6d 70 41 73 73 65 72 74 20 20 20 20 43 68 61 74 28 29 20 20 20 20 43 68 61 74 20 20 20 20 43 68 mpAssert....Chat()....Chat....Ch
285e0 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 at().<<."removing.term.ITEs...".
28600 3c 3c 20 65 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d <<.e....Chat().<<."removing.term
28620 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 20 20 20 20 43 68 61 .ITEs...".<<.endl;...{.......Cha
28640 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c t().<<."removing.term.ITEs...".<
28660 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 <.endl;...{...d....Chat().<<."re
28680 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 moving.term.ITEs....Chat().<<."r
286a0 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 emoving.term.ITEs...".<<.endl;..
286c0 20 7b 00 20 20 64 75 6d 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 .{...dum....Chat().<<."removing.
286e0 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 20 20 20 term.ITEs...".<<.endl;...{......
28700 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e Chat().<<."removing.term.ITEs...
28720 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 20 ".<<.endl;...{...dumpAssertions.
28740 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 ...Chat().<<."removing.term.ITEs
28760 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f ...".<<.endl;...{...dumpAssertio
28780 6e 73 28 22 70 72 65 2d 69 74 65 2d 72 65 6d 6f 76 61 6c 22 20 20 20 20 43 68 61 74 28 29 20 20 ns("pre-ite-removal"....Chat()..
287a0 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e ..Chat().<<."removing.term.ITEs.
287c0 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 6d 20 20 20 20 43 68 61 74 20 20 ..".<<.endl;...{...dum....Chat..
287e0 20 20 43 68 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 69 6e 67 20 74 65 72 6d ..Ch....Chat().<<."removing.term
28800 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 20 64 75 6d 70 41 73 73 .ITEs...".<<.endl;...{...dumpAss
28820 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 69 74 65 2d 72 65 6d 6f 76 61 6c 22 2c 20 64 5f 61 73 73 ertions("pre-ite-removal",.d_ass
28840 65 72 74 69 6f 6e 73 29 20 20 20 20 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 6d 6f 76 ertions)........Chat().<<."remov
28860 69 6e 67 20 74 65 72 6d 20 49 54 45 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b 00 20 ing.term.ITEs...".<<.endl;...{..
28880 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 69 74 65 2d 72 65 6d 6f 76 61 6c .dumpAssertions("pre-ite-removal
288a0 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 ",.d_assertions);...Trace("smt-p
288c0 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 roc").<<."SmtEnginePrivate::proc
288e0 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 72 65 2d 69 74 65 2d 72 65 6d 6f 76 61 essAssertions().:.pre-ite-remova
28900 6c 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 00 20 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 l".<<.endl;.....Debug("smt").<<.
28920 22 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 20 20 20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 ".d_assertions.....:.".<<.d_asse
28940 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 64 75 6d 70 41 73 rtions.size().<<.endl;....dumpAs
28960 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d 73 74 61 74 69 63 2d 6c 65 61 72 6e 69 6e 67 22 2c sertions("post-static-learning",
28980 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 7d 00 20 20 20 20 54 72 61 63 65 28 22 73 .d_assertions);...}.....Trace("s
289a0 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a mt-proc").<<."SmtEnginePrivate::
289c0 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 6f 73 74 2d 73 74 61 74 69 processAssertions().:.post-stati
289e0 63 2d 6c 65 61 72 6e 69 6e 67 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 73 74 61 74 69 63 4c c-learning".<<.endl;.....staticL
28a00 65 61 72 6e 69 6e 67 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 earning();......................
28a20 20 3c 3c 20 22 70 65 72 66 6f 72 6d 69 6e 67 20 73 74 61 74 69 63 20 6c 65 61 72 6e 69 6e 67 22 .<<."performing.static.learning"
28a40 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 .<<.endl;.....Trace("simplify").
28a60 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 73 69 6d 70 6c 69 66 79 28 29 <<."SmtEnginePrivate::simplify()
28a80 3a 20 22 00 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 64 6f 69 6e 67 20 73 74 61 74 69 63 20 :.".....Chat().<<."doing.static.
28aa0 6c 65 61 72 6e 69 6e 67 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 2f 2f 20 50 65 72 learning...".<<.endl;.....//.Per
28ac0 66 6f 72 6d 20 73 74 61 74 69 63 20 6c 65 61 72 6e 69 6e 67 00 20 20 20 20 54 72 61 63 65 28 22 form.static.learning.....Trace("
28ae0 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a smt-proc").<<."SmtEnginePrivate:
28b00 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 72 65 2d 73 74 61 74 69 :processAssertions().:.pre-stati
28b20 63 2d 6c 65 61 72 6e 69 6e 67 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 69 66 28 6f 70 74 69 6f 6e c-learning".<<.endl;...if(option
28b40 73 3a 3a 64 6f 53 74 61 74 69 63 4c 65 61 72 6e 69 6e 67 28 29 29 20 7b 00 20 20 64 75 6d 70 41 s::doStaticLearning()).{...dumpA
28b60 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 73 74 61 74 69 63 2d 6c 65 61 72 6e 69 6e 67 22 2c ssertions("pre-static-learning",
28b80 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e .d_assertions);....dumpAssertion
28ba0 73 28 22 70 6f 73 74 2d 73 69 6d 70 6c 69 66 79 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 s("post-simplify",.d_assertions)
28bc0 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 ;...Trace("smt-proc").<<."SmtEng
28be0 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 inePrivate::processAssertions().
28c00 3a 20 70 6f 73 74 2d 73 69 6d 70 6c 69 66 79 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7d 00 20 20 :.post-simplify".<<.endl;...}...
28c20 20 20 2b 2b 28 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 73 69 6d 70 6c 69 66 69 65 64 ..++(d_smt.d_stats->d_simplified
28c40 54 6f 46 61 6c 73 65 29 3b 00 20 20 69 66 28 21 6e 6f 43 6f 6e 66 6c 69 63 74 29 7b 00 20 20 6e ToFalse);...if(!noConflict){...n
28c60 6f 43 6f 6e 66 6c 69 63 74 20 3d 20 73 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 28 29 oConflict.=.simplifyAssertions()
28c80 3b 00 20 20 43 68 61 74 28 29 20 3c 3c 20 22 73 69 6d 70 6c 69 66 79 69 6e 67 20 61 73 73 65 72 ;...Chat().<<."simplifying.asser
28ca0 74 69 6f 6e 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 tions...".<<.endl;...dumpAsserti
28cc0 6f 6e 73 28 22 70 72 65 2d 73 69 6d 70 6c 69 66 79 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 ons("pre-simplify",.d_assertions
28ce0 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e );...Trace("smt-proc").<<."SmtEn
28d00 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 ginePrivate::processAssertions()
28d20 20 3a 20 70 72 65 2d 73 69 6d 70 6c 69 66 79 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 7d 00 20 .:.pre-simplify".<<.endl;....}..
28d40 20 20 20 7d 00 20 20 20 20 20 20 64 5f 70 62 73 50 72 6f 63 65 73 73 6f 72 2e 61 70 70 6c 79 52 ...}.......d_pbsProcessor.applyR
28d60 65 70 6c 61 63 65 6d 65 6e 74 73 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b eplacements(d_assertions.ref());
28d80 00 20 20 20 20 69 66 28 64 5f 70 62 73 50 72 6f 63 65 73 73 6f 72 2e 6c 69 6b 65 6c 79 54 6f 48 .....if(d_pbsProcessor.likelyToH
28da0 65 6c 70 28 29 29 7b 00 20 20 20 20 64 5f 70 62 73 50 72 6f 63 65 73 73 6f 72 2e 6c 65 61 72 6e elp()){.....d_pbsProcessor.learn
28dc0 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 20 20 69 66 28 20 6f 70 74 69 (d_assertions.ref());...if(.opti
28de0 6f 6e 73 3a 3a 70 62 52 65 77 72 69 74 65 73 28 29 20 29 7b 00 00 20 20 7d 00 20 20 20 20 7d 00 ons::pbRewrites().){....}.....}.
28e00 20 20 20 20 20 20 64 5f 73 6d 74 2e 73 65 74 50 72 69 6e 74 46 75 6e 63 49 6e 4d 6f 64 65 6c 28 ......d_smt.setPrintFuncInModel(
28e20 20 69 74 2d 3e 73 65 63 6f 6e 64 2e 74 6f 45 78 70 72 28 29 2c 20 74 72 75 65 20 29 3b 00 20 20 .it->second.toExpr(),.true.);...
28e40 20 20 20 20 64 5f 73 6d 74 2e 73 65 74 50 72 69 6e 74 46 75 6e 63 49 6e 4d 6f 64 65 6c 28 20 69 ....d_smt.setPrintFuncInModel(.i
28e60 74 2d 3e 66 69 72 73 74 2e 74 6f 45 78 70 72 28 29 2c 20 66 61 6c 73 65 20 29 3b 00 20 20 20 20 t->first.toExpr(),.false.);.....
28e80 66 6f 72 28 20 73 74 64 3a 3a 6d 61 70 3c 20 4e 6f 64 65 2c 20 4e 6f 64 65 20 3e 3a 3a 69 74 65 for(.std::map<.Node,.Node.>::ite
28ea0 72 61 74 6f 72 20 69 74 20 3d 20 73 69 2d 3e 64 5f 6d 6f 64 65 6c 5f 72 65 70 6c 61 63 65 5f 66 rator.it.=.si->d_model_replace_f
28ec0 2e 62 65 67 69 6e 28 29 3b 20 69 74 20 21 3d 20 73 69 2d 3e 64 5f 6d 6f 64 65 6c 5f 72 65 70 6c .begin();.it.!=.si->d_model_repl
28ee0 61 63 65 5f 66 2e 65 6e 64 28 29 3b 20 2b 2b 69 74 20 29 7b 00 20 20 20 20 73 69 2d 3e 73 69 6d ace_f.end();.++it.){.....si->sim
28f00 70 6c 69 66 79 28 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 2c 20 6f 70 74 69 6f plify(.d_assertions.ref(),.optio
28f20 6e 73 3a 3a 73 6f 72 74 49 6e 66 65 72 65 6e 63 65 28 29 2c 20 6f 70 74 69 6f 6e 73 3a 3a 75 66 ns::sortInference(),.options::uf
28f40 73 73 46 61 69 72 6e 65 73 73 4d 6f 6e 6f 74 6f 6e 65 28 29 20 29 3b 00 20 20 20 20 53 6f 72 74 ssFairnessMonotone().);.....Sort
28f60 49 6e 66 65 72 65 6e 63 65 20 2a 20 73 69 20 3d 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 Inference.*.si.=.d_smt.d_theoryE
28f80 6e 67 69 6e 65 2d 3e 67 65 74 53 6f 72 74 49 6e 66 65 72 65 6e 63 65 28 29 3b 00 20 20 20 20 2f ngine->getSortInference();...../
28fa0 2f 73 6f 72 74 20 69 6e 66 65 72 65 6e 63 65 20 74 65 63 68 6e 69 71 75 65 00 20 20 69 66 28 20 /sort.inference.technique...if(.
28fc0 6f 70 74 69 6f 6e 73 3a 3a 73 6f 72 74 49 6e 66 65 72 65 6e 63 65 28 29 20 7c 7c 20 6f 70 74 69 options::sortInference().||.opti
28fe0 6f 6e 73 3a 3a 75 66 73 73 46 61 69 72 6e 65 73 73 4d 6f 6e 6f 74 6f 6e 65 28 29 20 29 7b 00 00 ons::ufssFairnessMonotone().){..
29000 61 64 00 00 07 00 00 00 5b 01 00 00 00 10 00 00 4e 00 00 00 00 00 00 00 bb 0f 00 00 8f 0f 00 00 ad......[.......N...............
29020 51 0f 00 00 3f 0f 00 00 00 0f 00 00 fc 0e 00 00 a1 0e 00 00 6d 0e 00 00 6c 0e 00 00 35 0e 00 00 Q...?...............m...l...5...
29040 17 0e 00 00 b7 0d 00 00 81 0d 00 00 4e 0d 00 00 26 0d 00 00 10 0d 00 00 d1 0c 00 00 4d 0c 00 00 ............N...&...........M...
29060 30 0c 00 00 d0 0b 00 00 cf 0b 00 00 a7 0b 00 00 73 0b 00 00 72 0b 00 00 08 0b 00 00 d9 0a 00 00 0...............s...r...........
29080 bd 0a 00 00 76 0a 00 00 3a 0a 00 00 02 0a 00 00 c9 09 00 00 c1 09 00 00 c0 09 00 00 a4 09 00 00 ....v...:.......................
290a0 66 09 00 00 1d 09 00 00 ca 08 00 00 90 08 00 00 56 08 00 00 2e 08 00 00 f6 07 00 00 d9 07 00 00 f...............V...............
290c0 b8 07 00 00 7a 07 00 00 44 07 00 00 14 07 00 00 df 06 00 00 b1 06 00 00 7c 06 00 00 4e 06 00 00 ....z...D...............|...N...
290e0 33 06 00 00 e8 05 00 00 98 05 00 00 48 05 00 00 30 05 00 00 18 05 00 00 0a 05 00 00 fe 04 00 00 3...........H...0...............
29100 f4 04 00 00 be 04 00 00 8f 04 00 00 3b 04 00 00 13 04 00 00 0b 04 00 00 e2 03 00 00 bf 03 00 00 ............;...................
29120 8f 03 00 00 71 03 00 00 67 03 00 00 15 03 00 00 0d 03 00 00 c8 02 00 00 39 02 00 00 1c 02 00 00 ....q...g...............9.......
29140 08 02 00 00 c2 01 00 00 bc 01 00 00 5b 01 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 54 ............[..................T
29160 72 61 63 65 28 22 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 race("smt-proc").<<."SmtEnginePr
29180 69 76 61 74 65 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 6f 73 ivate::processAssertions().:.pos
291a0 74 2d 72 65 70 65 61 74 2d 73 69 6d 70 6c 69 66 79 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 t-repeat-simplify".<<.endl;.....
291c0 7d 00 20 20 20 20 20 20 2f 2f 20 20 20 20 20 20 41 73 73 65 72 74 28 69 74 65 52 65 77 72 69 74 }.......//......Assert(iteRewrit
291e0 65 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 20 3d 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 eAssertionsEnd.==.d_assertions.s
29200 69 7a 65 28 29 29 3b 00 20 20 20 20 20 20 72 65 6d 6f 76 65 49 54 45 73 28 29 3b 00 20 20 20 20 ize());.......removeITEs();.....
29220 20 20 2f 2f 20 46 69 67 75 72 65 20 69 74 20 6f 75 74 20 6c 61 74 65 72 00 20 20 20 20 20 20 2f ..//.Figure.it.out.later......./
29240 2f 20 68 74 74 70 3a 2f 2f 63 76 63 34 2e 63 73 2e 6e 79 75 2e 65 64 75 2f 62 65 6e 63 68 6d 61 /.http://cvc4.cs.nyu.edu/benchma
29260 72 6b 73 2f 73 6d 74 6c 69 62 32 2f 51 46 5f 41 55 46 42 56 2f 64 77 70 5f 66 6f 72 6d 75 6c 61 rks/smtlib2/QF_AUFBV/dwp_formula
29280 73 2f 74 72 79 35 5f 73 6d 61 6c 6c 5f 64 69 66 72 65 74 5f 66 75 6e 63 74 69 6f 6e 73 5f 64 77 s/try5_small_difret_functions_dw
292a0 70 5f 74 61 63 2e 72 65 5f 6e 6f 64 65 5f 73 65 74 5f 72 65 6d 6f 76 65 5f 61 74 2e 69 6c 2e 64 p_tac.re_node_set_remove_at.il.d
292c0 77 70 2e 73 6d 74 32 00 20 20 20 20 20 20 2f 2f 20 46 6f 72 20 73 6f 6d 65 20 72 65 61 73 6f 6e wp.smt2.......//.For.some.reason
292e0 20 74 68 69 73 20 69 73 20 6e 65 65 64 65 64 20 66 6f 72 20 73 6f 6d 65 20 62 65 6e 63 68 6d 61 .this.is.needed.for.some.benchma
29300 72 6b 73 2c 20 73 75 63 68 20 61 73 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 64 5f 61 rks,.such.as.......}.........d_a
29320 73 73 65 72 74 69 6f 6e 73 5b 64 5f 72 65 61 6c 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 20 2d 20 ssertions[d_realAssertionsEnd.-.
29340 31 5d 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 4e 6f 64 65 28 62 75 69 6c 1].=.Rewriter::rewrite(Node(buil
29360 64 65 72 29 29 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 74 6f 45 72 61 der));.........}...........toEra
29380 73 65 2e 70 6f 70 5f 62 61 63 6b 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 64 5f 69 74 65 53 6b se.pop_back();...........d_iteSk
293a0 6f 6c 65 6d 4d 61 70 2e 65 72 61 73 65 28 74 6f 45 72 61 73 65 2e 62 61 63 6b 28 29 29 3b 00 20 olemMap.erase(toErase.back());..
293c0 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 21 74 6f 45 72 61 73 65 2e 65 6d 70 74 79 28 29 29 20 .......while.(!toErase.empty()).
293e0 7b 00 20 20 20 20 20 20 69 66 28 62 75 69 6c 64 65 72 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 {.......if(builder.getNumChildre
29400 6e 28 29 20 3e 20 31 29 20 7b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 74 6f 45 72 61 n().>.1).{.......}.........toEra
29420 73 65 2e 70 75 73 68 5f 62 61 63 6b 28 28 2a 69 74 29 2e 66 69 72 73 74 29 3b 00 20 20 20 20 20 se.push_back((*it).first);......
29440 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 28 2a 69 74 29 2e 73 65 63 6f 6e 64 5d 20 3d 20 ...d_assertions[(*it).second].=.
29460 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 6f 6e 73 NodeManager::currentNM()->mkCons
29480 74 3c 62 6f 6f 6c 3e 28 74 72 75 65 29 3b 00 20 20 20 20 20 20 20 20 62 75 69 6c 64 65 72 20 3c t<bool>(true);.........builder.<
294a0 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 28 2a 69 74 29 2e 73 65 63 6f 6e 64 5d 3b 00 20 20 <.d_assertions[(*it).second];...
294c0 20 20 20 20 20 20 2f 2f 20 4d 6f 76 65 20 74 68 69 73 20 69 74 65 45 78 70 72 20 69 6e 74 6f 20 ......//.Move.this.iteExpr.into.
294e0 74 68 65 20 6d 61 69 6e 20 61 73 73 65 72 74 69 6f 6e 73 00 20 20 20 20 20 20 20 20 7d 00 20 20 the.main.assertions.........}...
29500 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 ........}.............}.........
29520 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 ......continue;.............if.(
29540 21 62 61 64 29 20 7b 00 20 20 20 20 20 20 20 20 20 20 20 20 62 61 64 20 3d 20 62 61 64 20 7c 7c !bad).{.............bad.=.bad.||
29560 20 63 68 65 63 6b 46 6f 72 42 61 64 53 6b 6f 6c 65 6d 73 28 69 74 65 45 78 70 72 5b 32 5d 5b 31 .checkForBadSkolems(iteExpr[2][1
29580 5d 2c 20 28 2a 69 74 29 2e 66 69 72 73 74 2c 20 63 61 63 68 65 29 3b 00 20 20 20 20 20 20 20 20 ],.(*it).first,.cache);.........
295a0 20 20 20 20 62 61 64 20 3d 20 62 61 64 20 7c 7c 20 63 68 65 63 6b 46 6f 72 42 61 64 53 6b 6f 6c ....bad.=.bad.||.checkForBadSkol
295c0 65 6d 73 28 69 74 65 45 78 70 72 5b 31 5d 5b 31 5d 2c 20 28 2a 69 74 29 2e 66 69 72 73 74 2c 20 ems(iteExpr[1][1],.(*it).first,.
295e0 63 61 63 68 65 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 6f 6c 20 62 61 64 20 3d 20 63 cache);.............bool.bad.=.c
29600 68 65 63 6b 46 6f 72 42 61 64 53 6b 6f 6c 65 6d 73 28 69 74 65 45 78 70 72 5b 30 5d 2c 20 28 2a heckForBadSkolems(iteExpr[0],.(*
29620 69 74 29 2e 66 69 72 73 74 2c 20 63 61 63 68 65 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 63 it).first,.cache);.............c
29640 61 63 68 65 2e 63 6c 65 61 72 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 74 65 45 ache.clear();...............iteE
29660 78 70 72 5b 32 5d 5b 30 5d 20 3d 3d 20 28 2a 69 74 29 2e 66 69 72 73 74 29 20 7b 00 20 20 20 20 xpr[2][0].==.(*it).first).{.....
29680 20 20 20 20 20 20 20 20 20 20 69 74 65 45 78 70 72 5b 32 5d 2e 67 65 74 4b 69 6e 64 28 29 20 3d ..........iteExpr[2].getKind().=
296a0 3d 20 6b 69 6e 64 3a 3a 45 51 55 41 4c 20 26 26 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 =.kind::EQUAL.&&...............i
296c0 74 65 45 78 70 72 5b 31 5d 5b 30 5d 20 3d 3d 20 28 2a 69 74 29 2e 66 69 72 73 74 20 26 26 00 20 teExpr[1][0].==.(*it).first.&&..
296e0 20 20 20 20 20 20 20 20 20 20 20 20 20 69 74 65 45 78 70 72 5b 31 5d 2e 67 65 74 4b 69 6e 64 28 .............iteExpr[1].getKind(
29700 29 20 3d 3d 20 6b 69 6e 64 3a 3a 45 51 55 41 4c 20 26 26 00 20 20 20 20 20 20 20 20 20 20 69 66 ).==.kind::EQUAL.&&...........if
29720 20 28 69 74 65 45 78 70 72 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 49 54 45 .(iteExpr.getKind().==.kind::ITE
29740 20 26 26 00 20 20 20 20 20 20 20 20 20 20 54 4e 6f 64 65 20 69 74 65 45 78 70 72 20 3d 20 64 5f .&&...........TNode.iteExpr.=.d_
29760 61 73 73 65 72 74 69 6f 6e 73 5b 28 2a 69 74 29 2e 73 65 63 6f 6e 64 5d 3b 00 20 20 20 20 20 20 assertions[(*it).second];.......
29780 20 20 69 66 20 28 73 6b 6f 6c 65 6d 53 65 74 2e 66 69 6e 64 28 28 2a 69 74 29 2e 66 69 72 73 74 ..if.(skolemSet.find((*it).first
297a0 29 20 3d 3d 20 73 6b 6f 6c 65 6d 53 65 74 2e 65 6e 64 28 29 29 20 7b 00 20 20 20 20 20 20 66 6f ).==.skolemSet.end()).{.......fo
297c0 72 20 28 3b 20 69 74 20 21 3d 20 69 65 6e 64 3b 20 2b 2b 69 74 29 20 7b 00 20 20 20 20 20 20 76 r.(;.it.!=.iend;.++it).{.......v
297e0 65 63 74 6f 72 3c 54 4e 6f 64 65 3e 20 74 6f 45 72 61 73 65 3b 00 20 20 20 20 20 20 62 75 69 6c ector<TNode>.toErase;.......buil
29800 64 65 72 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 64 5f 72 65 61 6c 41 73 73 65 72 74 der.<<.d_assertions[d_realAssert
29820 69 6f 6e 73 45 6e 64 20 2d 20 31 5d 3b 00 20 20 20 20 20 20 4e 6f 64 65 42 75 69 6c 64 65 72 3c ionsEnd.-.1];.......NodeBuilder<
29840 3e 20 62 75 69 6c 64 65 72 28 6b 69 6e 64 3a 3a 41 4e 44 29 3b 00 20 20 20 20 20 20 49 74 65 53 >.builder(kind::AND);.......IteS
29860 6b 6f 6c 65 6d 4d 61 70 3a 3a 69 74 65 72 61 74 6f 72 20 69 65 6e 64 20 3d 20 64 5f 69 74 65 53 kolemMap::iterator.iend.=.d_iteS
29880 6b 6f 6c 65 6d 4d 61 70 2e 65 6e 64 28 29 3b 00 20 20 20 20 20 20 49 74 65 53 6b 6f 6c 65 6d 4d kolemMap.end();.......IteSkolemM
298a0 61 70 3a 3a 69 74 65 72 61 74 6f 72 20 69 74 20 3d 20 64 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 ap::iterator.it.=.d_iteSkolemMap
298c0 2e 62 65 67 69 6e 28 29 3b 00 20 20 20 20 20 20 2f 2f 20 49 66 20 65 69 74 68 65 72 20 6f 66 20 .begin();.......//.If.either.of.
298e0 74 68 65 73 65 20 69 73 20 76 69 6f 6c 61 74 65 64 2c 20 77 65 20 6d 75 73 74 20 61 64 64 20 69 these.is.violated,.we.must.add.i
29900 74 65 45 78 70 72 20 61 73 20 61 20 70 72 6f 70 65 72 20 61 73 73 65 72 74 69 6f 6e 00 20 20 20 teExpr.as.a.proper.assertion....
29920 20 20 20 2f 2f 20 32 2e 20 69 66 20 73 6f 6d 65 20 73 6b 27 20 69 6e 20 53 6b 20 61 70 70 65 61 ...//.2..if.some.sk'.in.Sk.appea
29940 72 73 20 69 6e 20 63 6f 6e 64 2c 20 74 2c 20 6f 72 20 65 2c 20 74 68 65 6e 20 73 6b 27 20 3c 5f rs.in.cond,.t,.or.e,.then.sk'.<_
29960 73 6b 20 73 6b 00 20 20 20 20 20 20 2f 2f 20 31 2e 20 69 74 65 45 78 70 72 20 68 61 73 20 74 68 sk.sk.......//.1..iteExpr.has.th
29980 65 20 66 6f 72 6d 20 28 69 74 65 20 63 6f 6e 64 20 28 73 6b 20 3d 20 74 29 20 28 73 6b 20 3d 20 e.form.(ite.cond.(sk.=.t).(sk.=.
299a0 65 29 29 00 20 20 20 20 20 20 2f 2f 20 57 65 20 6e 65 65 64 20 74 6f 20 65 6e 73 75 72 65 3a 00 e)).......//.We.need.to.ensure:.
299c0 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 53 6b 6f 6c 65 6d 73 28 .......}.........collectSkolems(
299e0 28 2a 70 6f 73 29 2e 73 65 63 6f 6e 64 2c 20 73 6b 6f 6c 65 6d 53 65 74 2c 20 63 61 63 68 65 29 (*pos).second,.skolemSet,.cache)
29a00 3b 00 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 53 6b 6f 6c 65 6d 73 28 28 2a 70 6f 73 29 2e ;.........collectSkolems((*pos).
29a20 66 69 72 73 74 2c 20 73 6b 6f 6c 65 6d 53 65 74 2c 20 63 61 63 68 65 29 3b 00 20 20 20 20 20 20 first,.skolemSet,.cache);.......
29a40 66 6f 72 20 28 3b 20 70 6f 73 20 21 3d 20 64 5f 74 6f 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 for.(;.pos.!=.d_topLevelSubstitu
29a60 74 69 6f 6e 73 2e 65 6e 64 28 29 3b 20 2b 2b 70 6f 73 29 20 7b 00 20 20 20 20 20 20 53 75 62 73 tions.end();.++pos).{.......Subs
29a80 74 69 74 75 74 69 6f 6e 4d 61 70 3a 3a 69 74 65 72 61 74 6f 72 20 70 6f 73 20 3d 20 64 5f 74 6f titutionMap::iterator.pos.=.d_to
29aa0 70 4c 65 76 65 6c 53 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 62 65 67 69 6e 28 29 3b 00 20 20 20 pLevelSubstitutions.begin();....
29ac0 20 20 20 73 65 74 3c 54 4e 6f 64 65 3e 20 73 6b 6f 6c 65 6d 53 65 74 3b 00 20 20 20 20 20 20 2f ...set<TNode>.skolemSet;......./
29ae0 2f 20 74 6f 20 62 65 20 6d 6f 76 65 64 20 74 6f 20 74 68 65 20 6d 61 69 6e 20 61 73 73 65 72 74 /.to.be.moved.to.the.main.assert
29b00 69 6f 6e 20 73 65 74 00 20 20 20 20 20 20 2f 2f 20 46 69 72 73 74 2c 20 66 69 6e 64 20 61 6c 6c ion.set.......//.First,.find.all
29b20 20 73 6b 6f 6c 65 6d 73 20 74 68 61 74 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 73 75 62 73 .skolems.that.appear.in.the.subs
29b40 74 69 74 75 74 69 6f 6e 20 6d 61 70 20 2d 20 74 68 65 69 72 20 61 73 73 6f 63 69 61 74 65 64 20 titution.map.-.their.associated.
29b60 69 74 65 45 78 70 72 20 77 69 6c 6c 20 6e 65 65 64 00 00 20 20 20 20 20 20 68 61 73 68 5f 6d 61 iteExpr.will.need........hash_ma
29b80 70 3c 4e 6f 64 65 2c 20 62 6f 6f 6c 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e 3e 20 p<Node,.bool,.NodeHashFunction>.
29ba0 63 61 63 68 65 3b 00 20 20 20 20 20 20 2f 2f 20 63 61 63 68 65 20 66 6f 72 20 65 78 70 72 65 73 cache;.......//.cache.for.expres
29bc0 73 69 6f 6e 20 74 72 61 76 65 72 73 61 6c 00 00 20 20 20 20 20 20 2f 2f 20 46 6f 72 20 65 61 63 sion.traversal........//.For.eac
29be0 68 20 73 6b 6f 6c 65 6d 20 76 61 72 69 61 62 6c 65 20 73 6b 2c 20 6c 65 74 20 69 74 65 45 78 70 h.skolem.variable.sk,.let.iteExp
29c00 72 20 3d 20 69 74 65 4d 61 70 28 73 6b 29 20 62 65 20 74 68 65 20 69 74 65 20 65 78 70 72 20 6d r.=.iteMap(sk).be.the.ite.expr.m
29c20 61 70 70 65 64 20 74 6f 20 62 79 20 73 6b 2e 00 20 20 20 20 20 20 2f 2f 20 64 75 72 69 6e 67 20 apped.to.by.sk........//.during.
29c40 69 74 65 20 72 65 6d 6f 76 61 6c 2e 00 20 20 20 20 20 20 2f 2f 20 4c 65 74 20 53 6b 20 62 65 20 ite.removal........//.Let.Sk.be.
29c60 74 68 65 20 73 65 74 20 6f 66 20 53 6b 6f 6c 65 6d 20 76 61 72 69 61 62 6c 65 73 20 69 6e 74 72 the.set.of.Skolem.variables.intr
29c80 6f 64 75 63 65 64 20 62 79 20 49 54 45 27 73 2e 20 20 4c 65 74 20 3c 5f 73 6b 20 62 65 20 74 68 oduced.by.ITE's...Let.<_sk.be.th
29ca0 65 20 6f 72 64 65 72 20 69 6e 20 77 68 69 63 68 20 74 68 65 73 65 20 76 61 72 69 61 62 6c 65 73 e.order.in.which.these.variables
29cc0 20 77 65 72 65 20 69 6e 74 72 6f 64 75 63 65 64 00 20 20 20 20 20 20 2f 2f 20 4e 65 65 64 20 74 .were.introduced.......//.Need.t
29ce0 6f 20 66 69 78 20 75 70 20 61 73 73 65 72 74 69 6f 6e 20 6c 69 73 74 20 74 6f 20 6d 61 69 6e 74 o.fix.up.assertion.list.to.maint
29d00 61 69 6e 20 69 6e 76 61 72 69 61 6e 74 73 3a 00 20 20 20 20 69 66 20 28 6e 6f 43 6f 6e 66 6c 69 ain.invariants:.....if.(noConfli
29d20 63 74 29 20 7b 00 20 20 20 20 6e 6f 43 6f 6e 66 6c 69 63 74 20 26 3d 20 73 69 6d 70 6c 69 66 79 ct).{.....noConflict.&=.simplify
29d40 41 73 73 65 72 74 69 6f 6e 73 28 29 3b 00 20 20 20 20 53 63 6f 70 65 43 6f 75 6e 74 65 72 20 64 Assertions();.....ScopeCounter.d
29d60 65 70 74 68 28 64 5f 73 69 6d 70 6c 69 66 79 41 73 73 65 72 74 69 6f 6e 73 44 65 70 74 68 29 3b epth(d_simplifyAssertionsDepth);
29d80 00 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 72 65 2d 73 69 6d 70 6c 69 66 79 69 6e 67 20 61 .....Chat().<<."re-simplifying.a
29da0 73 73 65 72 74 69 6f 6e 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 54 72 61 63 65 ssertions...".<<.endl;.....Trace
29dc0 28 22 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 ("smt-proc").<<."SmtEnginePrivat
29de0 65 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 72 65 2d 72 65 70 e::processAssertions().:.pre-rep
29e00 65 61 74 2d 73 69 6d 70 6c 69 66 79 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 69 66 28 6f 70 74 69 eat-simplify".<<.endl;...if(opti
29e20 6f 6e 73 3a 3a 72 65 70 65 61 74 53 69 6d 70 28 29 29 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 ons::repeatSimp()).{...dumpAsser
29e40 74 69 6f 6e 73 28 22 70 72 65 2d 72 65 70 65 61 74 2d 73 69 6d 70 6c 69 66 79 22 2c 20 64 5f 61 tions("pre-repeat-simplify",.d_a
29e60 73 73 65 72 74 69 6f 6e 73 29 3b 00 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 ssertions);....dumpAssertions("p
29e80 6f 73 74 2d 69 74 65 2d 72 65 6d 6f 76 61 6c 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b ost-ite-removal",.d_assertions);
29ea0 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 ...Trace("smt-proc").<<."SmtEngi
29ec0 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a nePrivate::processAssertions().:
29ee0 20 70 6f 73 74 2d 69 74 65 2d 72 65 6d 6f 76 61 6c 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7d 00 .post-ite-removal".<<.endl;...}.
29f00 20 20 20 20 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 6e 75 6d 41 73 73 65 72 74 69 6f ....d_smt.d_stats->d_numAssertio
29f20 6e 73 50 6f 73 74 20 2b 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 00 20 nsPost.+=.d_assertions.size();..
29f40 20 20 20 72 65 6d 6f 76 65 49 54 45 73 28 29 3b 00 20 20 20 20 64 5f 73 6d 74 2e 64 5f 73 74 61 ...removeITEs();.....d_smt.d_sta
29f60 74 73 2d 3e 64 5f 6e 75 6d 41 73 73 65 72 74 69 6f 6e 73 50 72 65 20 2b 3d 20 64 5f 61 73 73 65 ts->d_numAssertionsPre.+=.d_asse
29f80 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 00 20 20 20 20 2f 2f 20 52 65 6d 6f 76 65 20 49 54 45 rtions.size();.....//.Remove.ITE
29fa0 73 2c 20 75 70 64 61 74 69 6e 67 20 64 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 00 20 20 20 20 54 s,.updating.d_iteSkolemMap.....T
29fc0 69 6d 65 72 53 74 61 74 3a 3a 43 6f 64 65 54 69 6d 65 72 20 63 6f 64 65 54 69 6d 65 72 28 64 5f imerStat::CodeTimer.codeTimer(d_
29fe0 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 69 74 65 52 65 6d 6f 76 61 6c 54 69 6d 65 29 3b 00 smt.d_stats->d_iteRemovalTime);.
2a000 61 64 00 00 45 00 00 00 e5 01 00 00 00 10 00 00 61 00 00 00 00 00 00 00 fc 0f 00 00 c4 0f 00 00 ad..E...........a...............
2a020 c3 0f 00 00 85 0f 00 00 5e 0f 00 00 23 0f 00 00 d5 0e 00 00 9b 0e 00 00 4a 0e 00 00 44 0e 00 00 ........^...#...........J...D...
2a040 40 0e 00 00 01 0e 00 00 00 0e 00 00 be 0d 00 00 a4 0d 00 00 8d 0d 00 00 53 0d 00 00 4c 0d 00 00 @.......................S...L...
2a060 4b 0d 00 00 02 0d 00 00 01 0d 00 00 aa 0c 00 00 61 0c 00 00 60 0c 00 00 fd 0b 00 00 c1 0b 00 00 K...............a...`...........
2a080 bd 0b 00 00 8c 0b 00 00 41 0b 00 00 1c 0b 00 00 ef 0a 00 00 b5 0a 00 00 63 0a 00 00 5d 0a 00 00 ........A...............c...]...
2a0a0 59 0a 00 00 f5 09 00 00 b8 09 00 00 b7 09 00 00 6a 09 00 00 32 09 00 00 ee 08 00 00 b5 08 00 00 Y...............j...2...........
2a0c0 91 08 00 00 35 08 00 00 0a 08 00 00 d1 07 00 00 a5 07 00 00 9f 07 00 00 9b 07 00 00 9a 07 00 00 ....5...........................
2a0e0 65 07 00 00 19 07 00 00 18 07 00 00 ef 06 00 00 dc 06 00 00 a5 06 00 00 69 06 00 00 3f 06 00 00 e.......................i...?...
2a100 fe 05 00 00 fa 05 00 00 f9 05 00 00 b9 05 00 00 9f 05 00 00 9e 05 00 00 52 05 00 00 1f 05 00 00 ........................R.......
2a120 1e 05 00 00 01 05 00 00 fd 04 00 00 cf 04 00 00 87 04 00 00 4d 04 00 00 17 04 00 00 dd 03 00 00 ....................M...........
2a140 d7 03 00 00 d3 03 00 00 d2 03 00 00 b2 03 00 00 b1 03 00 00 99 03 00 00 7f 03 00 00 7d 03 00 00 ............................}...
2a160 7c 03 00 00 31 03 00 00 00 03 00 00 ff 02 00 00 ea 02 00 00 d5 02 00 00 c9 02 00 00 c5 02 00 00 |...1...........................
2a180 c4 02 00 00 41 02 00 00 40 02 00 00 22 02 00 00 19 02 00 00 06 02 00 00 e5 01 00 00 3c 03 00 00 ....A...@..."...............<...
2a1a0 1a 03 00 00 03 03 00 00 eb 02 00 00 c8 02 00 00 c7 02 00 00 b2 02 00 00 9c 02 00 00 81 02 00 00 ................................
2a1c0 65 02 00 00 46 02 00 00 28 02 00 00 27 02 00 00 16 02 00 00 06 02 00 00 05 02 00 00 00 00 00 00 e...F...(...'...................
2a1e0 00 00 00 00 00 20 20 20 20 20 20 2f 2f 20 6e 20 69 73 20 61 6e 20 69 6e 70 75 74 20 61 73 73 65 ...........//.n.is.an.input.asse
2a200 72 74 69 6f 6e 00 20 20 20 20 69 66 28 20 69 6e 49 6e 70 75 74 20 29 7b 00 20 20 50 52 4f 4f 46 rtion.....if(.inInput.){...PROOF
2a220 28 00 20 20 2f 2f 20 47 69 76 65 20 69 74 20 74 6f 20 70 72 6f 6f 66 20 6d 61 6e 61 67 65 72 00 (...//.Give.it.to.proof.manager.
2a240 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 ...Trace("smt").<<."SmtEnginePri
2a260 76 61 74 65 3a 3a 61 64 64 46 6f 72 6d 75 6c 61 28 22 20 3c 3c 20 6e 20 3c 3c 20 22 29 2c 20 69 vate::addFormula(".<<.n.<<."),.i
2a280 6e 55 6e 73 61 74 43 6f 72 65 20 3d 20 22 20 3c 3c 20 69 6e 55 6e 73 61 74 43 6f 72 65 20 3c 3c nUnsatCore.=.".<<.inUnsatCore.<<
2a2a0 20 22 2c 20 69 6e 49 6e 70 75 74 20 3d 20 22 20 3c 3c 20 69 6e 49 6e 70 75 74 20 3c 3c 20 65 6e .",.inInput.=.".<<.inInput.<<.en
2a2c0 64 6c 3b 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 3b 00 20 20 20 20 2f 2f 20 6e 6f 74 68 dl;....}.....return;.....//.noth
2a2e0 69 6e 67 20 74 6f 20 64 6f 00 20 20 69 66 20 28 6e 20 3d 3d 20 64 5f 74 72 75 65 29 20 7b 00 00 ing.to.do...if.(n.==.d_true).{..
2a300 20 20 74 68 72 6f 77 28 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 4c ..throw(TypeCheckingException,.L
2a320 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 50 ogicException).{.void.SmtEngineP
2a340 72 69 76 61 74 65 3a 3a 61 64 64 46 6f 72 6d 75 6c 61 28 54 4e 6f 64 65 20 6e 2c 20 62 6f 6f 6c rivate::addFormula(TNode.n,.bool
2a360 20 69 6e 55 6e 73 61 74 43 6f 72 65 2c 20 62 6f 6f 6c 20 69 6e 49 6e 70 75 74 29 00 00 7d 00 20 .inUnsatCore,.bool.inInput)..}..
2a380 20 64 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 2e 63 6c 65 61 72 28 29 3b 00 20 20 64 5f 61 73 73 .d_iteSkolemMap.clear();...d_ass
2a3a0 65 72 74 69 6f 6e 73 2e 63 6c 65 61 72 28 29 3b 00 00 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 ertions.clear();....d_assertions
2a3c0 50 72 6f 63 65 73 73 65 64 20 3d 20 74 72 75 65 3b 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 Processed.=.true;....}.....}....
2a3e0 20 20 20 64 5f 73 6d 74 2e 64 5f 70 72 6f 70 45 6e 67 69 6e 65 2d 3e 61 73 73 65 72 74 46 6f 72 ...d_smt.d_propEngine->assertFor
2a400 6d 75 6c 61 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 29 3b 00 20 20 20 20 20 20 43 68 61 mula(d_assertions[i]);.......Cha
2a420 74 28 29 20 3c 3c 20 22 2b 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 20 3c t().<<."+.".<<.d_assertions[i].<
2a440 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 66 6f 72 20 28 75 6e 73 69 67 6e 65 64 20 69 <.std::endl;.....for.(unsigned.i
2a460 20 3d 20 30 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 20 2b .=.0;.i.<.d_assertions.size();.+
2a480 2b 20 69 29 20 7b 00 20 20 20 20 54 69 6d 65 72 53 74 61 74 3a 3a 43 6f 64 65 54 69 6d 65 72 20 +.i).{.....TimerStat::CodeTimer.
2a4a0 63 6f 64 65 54 69 6d 65 72 28 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 63 6e 66 43 6f codeTimer(d_smt.d_stats->d_cnfCo
2a4c0 6e 76 65 72 73 69 6f 6e 54 69 6d 65 29 3b 00 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 63 6f nversionTime);.....Chat().<<."co
2a4e0 6e 76 65 72 74 69 6e 67 20 74 6f 20 43 4e 46 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b nverting.to.CNF...".<<.endl;...{
2a500 00 20 20 2f 2f 20 50 75 73 68 20 74 68 65 20 66 6f 72 6d 75 6c 61 20 74 6f 20 53 41 54 00 00 20 ...//.Push.the.formula.to.SAT...
2a520 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d 65 76 65 72 79 74 68 69 6e 67 .dumpAssertions("post-everything
2a540 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 ",.d_assertions);...Trace("smt-p
2a560 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 roc").<<."SmtEnginePrivate::proc
2a580 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 65 6e 64 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 essAssertions().end".<<.endl;...
2a5a0 20 2f 2f 20 69 6e 74 72 6f 64 75 63 69 6e 67 20 6e 65 77 20 6f 6e 65 73 00 20 20 2f 2f 20 65 6e .//.introducing.new.ones...//.en
2a5c0 64 3a 20 49 4e 56 41 52 49 41 4e 54 20 74 6f 20 6d 61 69 6e 74 61 69 6e 3a 20 6e 6f 20 72 65 6f d:.INVARIANT.to.maintain:.no.reo
2a5e0 72 64 65 72 69 6e 67 20 6f 66 20 61 73 73 65 72 74 69 6f 6e 73 20 6f 72 00 00 20 20 7d 00 20 20 rdering.of.assertions.or....}...
2a600 20 20 20 20 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 2c 20 64 5f 72 65 61 6c 41 ....(d_assertions.ref(),.d_realA
2a620 73 73 65 72 74 69 6f 6e 73 45 6e 64 2c 20 64 5f 69 74 65 53 6b 6f 6c 65 6d 4d 61 70 29 3b 00 20 ssertionsEnd,.d_iteSkolemMap);..
2a640 20 20 20 64 5f 73 6d 74 2e 64 5f 64 65 63 69 73 69 6f 6e 45 6e 67 69 6e 65 2d 3e 61 64 64 41 73 ...d_smt.d_decisionEngine->addAs
2a660 73 65 72 74 69 6f 6e 73 00 20 20 20 20 41 73 73 65 72 74 28 69 74 65 52 65 77 72 69 74 65 41 73 sertions.....Assert(iteRewriteAs
2a680 73 65 72 74 69 6f 6e 73 45 6e 64 20 3d 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 sertionsEnd.==.d_assertions.size
2a6a0 28 29 29 3b 00 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 70 75 73 68 69 6e 67 20 74 6f 20 64 ());.....Chat().<<."pushing.to.d
2a6c0 65 63 69 73 69 6f 6e 20 65 6e 67 69 6e 65 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 69 66 ecision.engine...".<<.endl;...if
2a6e0 28 6e 6f 43 6f 6e 66 6c 69 63 74 29 20 7b 00 20 20 2f 2f 20 50 75 73 68 20 74 68 65 20 66 6f 72 (noConflict).{...//.Push.the.for
2a700 6d 75 6c 61 20 74 6f 20 64 65 63 69 73 69 6f 6e 20 65 6e 67 69 6e 65 00 00 20 20 64 5f 73 6d 74 mula.to.decision.engine....d_smt
2a720 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 6e 6f 74 69 66 79 50 72 65 70 72 6f 63 65 73 .d_theoryEngine->notifyPreproces
2a740 73 65 64 41 73 73 65 72 74 69 6f 6e 73 28 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 sedAssertions(.d_assertions.ref(
2a760 29 20 29 3b 00 20 20 2f 2f 6e 6f 74 69 66 79 20 74 68 65 6f 72 79 20 65 6e 67 69 6e 65 20 6e 65 ).);...//notify.theory.engine.ne
2a780 77 20 70 72 65 70 72 6f 63 65 73 73 65 64 20 61 73 73 65 72 74 69 6f 6e 73 00 00 20 20 7d 00 20 w.preprocessed.assertions....}..
2a7a0 20 20 20 7d 00 20 20 20 20 20 20 6d 2d 3e 61 64 64 53 75 62 73 74 69 74 75 74 69 6f 6e 28 65 61 ...}.......m->addSubstitution(ea
2a7c0 67 65 72 5f 61 74 6f 6d 2c 20 61 74 6f 6d 29 3b 00 20 20 20 20 20 20 54 68 65 6f 72 79 4d 6f 64 ger_atom,.atom);.......TheoryMod
2a7e0 65 6c 2a 20 6d 20 3d 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 67 65 el*.m.=.d_smt.d_theoryEngine->ge
2a800 74 4d 6f 64 65 6c 28 29 3b 00 20 20 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 70 tModel();.......d_assertions.rep
2a820 6c 61 63 65 28 69 2c 20 65 61 67 65 72 5f 61 74 6f 6d 29 3b 00 20 20 20 20 20 20 4e 6f 64 65 20 lace(i,.eager_atom);.......Node.
2a840 65 61 67 65 72 5f 61 74 6f 6d 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e eager_atom.=.NodeManager::curren
2a860 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 28 6b 69 6e 64 3a 3a 42 49 54 56 45 43 54 4f 52 5f 45 41 tNM()->mkNode(kind::BITVECTOR_EA
2a880 47 45 52 5f 41 54 4f 4d 2c 20 61 74 6f 6d 29 3b 00 20 20 20 20 20 20 54 4e 6f 64 65 20 61 74 6f GER_ATOM,.atom);.......TNode.ato
2a8a0 6d 20 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 3b 00 20 20 20 20 66 6f 72 20 28 75 6e m.=.d_assertions[i];.....for.(un
2a8c0 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 signed.i.=.0;.i.<.d_assertions.s
2a8e0 69 7a 65 28 29 3b 20 2b 2b 69 29 20 7b 00 20 20 69 66 20 28 6f 70 74 69 6f 6e 73 3a 3a 62 69 74 ize();.++i).{...if.(options::bit
2a900 62 6c 61 73 74 4d 6f 64 65 28 29 20 3d 3d 20 74 68 65 6f 72 79 3a 3a 62 76 3a 3a 42 49 54 42 4c blastMode().==.theory::bv::BITBL
2a920 41 53 54 5f 4d 4f 44 45 5f 45 41 47 45 52 29 20 7b 00 20 20 2f 2f 20 65 76 65 72 79 74 68 69 6e AST_MODE_EAGER).{...//.everythin
2a940 67 20 67 65 74 73 20 62 69 74 2d 62 6c 61 73 74 65 64 20 74 6f 20 69 6e 74 65 72 6e 61 6c 20 53 g.gets.bit-blasted.to.internal.S
2a960 41 54 20 73 6f 6c 76 65 72 00 20 20 2f 2f 20 49 66 20 77 65 20 61 72 65 20 75 73 69 6e 67 20 65 AT.solver...//.If.we.are.using.e
2a980 61 67 65 72 20 62 69 74 2d 62 6c 61 73 74 69 6e 67 20 77 72 61 70 20 61 73 73 65 72 74 69 6f 6e ager.bit-blasting.wrap.assertion
2a9a0 73 20 69 6e 20 66 61 6b 65 20 61 74 6f 6d 20 73 6f 20 74 68 61 74 00 00 20 20 64 75 6d 70 41 73 s.in.fake.atom.so.that....dumpAs
2a9c0 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d 74 68 65 6f 72 79 2d 70 72 65 70 72 6f 63 65 73 73 sertions("post-theory-preprocess
2a9e0 69 6e 67 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d ing",.d_assertions);...Trace("sm
2aa00 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 t-proc").<<."SmtEnginePrivate::p
2aa20 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 6f 73 74 2d 74 68 65 6f 72 79 rocessAssertions().:.post-theory
2aa40 2d 70 72 65 70 72 6f 63 65 73 73 69 6e 67 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7d 00 20 20 20 -preprocessing".<<.endl;...}....
2aa60 20 7d 00 20 20 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 70 6c 61 63 65 28 69 2c .}.......d_assertions.replace(i,
2aa80 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 70 72 65 70 72 6f 63 65 73 .d_smt.d_theoryEngine->preproces
2aaa0 73 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 29 29 3b 00 20 20 20 20 66 6f 72 20 28 75 6e s(d_assertions[i]));.....for.(un
2aac0 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 signed.i.=.0;.i.<.d_assertions.s
2aae0 69 7a 65 28 29 3b 20 2b 2b 20 69 29 20 7b 00 20 20 20 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 ize();.++.i).{.....d_smt.d_theor
2ab00 79 45 6e 67 69 6e 65 2d 3e 70 72 65 70 72 6f 63 65 73 73 53 74 61 72 74 28 29 3b 00 20 20 20 20 yEngine->preprocessStart();.....
2ab20 2f 2f 20 43 61 6c 6c 20 74 68 65 20 74 68 65 6f 72 79 20 70 72 65 70 72 6f 63 65 73 73 6f 72 73 //.Call.the.theory.preprocessors
2ab40 00 20 20 20 20 54 69 6d 65 72 53 74 61 74 3a 3a 43 6f 64 65 54 69 6d 65 72 20 63 6f 64 65 54 69 .....TimerStat::CodeTimer.codeTi
2ab60 6d 65 72 28 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 64 5f 74 68 65 6f 72 79 50 72 65 70 72 mer(d_smt.d_stats->d_theoryPrepr
2ab80 6f 63 65 73 73 54 69 6d 65 29 3b 00 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 74 68 65 6f 72 ocessTime);.....Chat().<<."theor
2aba0 79 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7b y.preprocessing...".<<.endl;...{
2abc0 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 74 68 65 6f 72 79 2d 70 72 ...dumpAssertions("pre-theory-pr
2abe0 65 70 72 6f 63 65 73 73 69 6e 67 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 54 eprocessing",.d_assertions);...T
2ac00 72 61 63 65 28 22 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 race("smt-proc").<<."SmtEnginePr
2ac20 69 76 61 74 65 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 72 65 ivate::processAssertions().:.pre
2ac40 2d 74 68 65 6f 72 79 2d 70 72 65 70 72 6f 63 65 73 73 69 6e 67 22 20 3c 3c 20 65 6e 64 6c 3b 00 -theory-preprocessing".<<.endl;.
2ac60 00 20 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 72 74 69 6f 6e ...Debug("smt").<<.".d_assertion
2ac80 73 20 20 20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 s.....:.".<<.d_assertions.size()
2aca0 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 6d 74 .<<.endl;...Debug("smt").<<."Smt
2acc0 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 EnginePrivate::processAssertions
2ace0 28 29 20 50 4f 53 54 20 53 49 4d 50 4c 49 46 49 43 41 54 49 4f 4e 22 20 3c 3c 20 65 6e 64 6c 3b ().POST.SIMPLIFICATION".<<.endl;
2ad00 00 00 20 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 72 74 69 6f ....Debug("smt").<<.".d_assertio
2ad20 6e 73 20 20 20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 ns.....:.".<<.d_assertions.size(
2ad40 29 20 3c 3c 20 65 6e 64 6c 3b 00 00 23 65 6e 64 69 66 00 20 20 75 6e 73 69 67 6e 65 64 20 69 74 ).<<.endl;..#endif...unsigned.it
2ad60 65 52 65 77 72 69 74 65 41 73 73 65 72 74 69 6f 6e 73 45 6e 64 20 3d 20 64 5f 61 73 73 65 72 74 eRewriteAssertionsEnd.=.d_assert
2ad80 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 00 23 69 66 64 65 66 20 43 56 43 34 5f 41 53 53 45 52 54 49 ions.size();.#ifdef.CVC4_ASSERTI
2ada0 4f 4e 53 00 20 20 2f 2f 20 69 6e 74 72 6f 64 75 63 69 6e 67 20 6e 65 77 20 6f 6e 65 73 00 20 20 ONS...//.introducing.new.ones...
2adc0 2f 2f 20 62 65 67 69 6e 3a 20 49 4e 56 41 52 49 41 4e 54 20 74 6f 20 6d 61 69 6e 74 61 69 6e 3a //.begin:.INVARIANT.to.maintain:
2ade0 20 6e 6f 20 72 65 6f 72 64 65 72 69 6e 67 20 6f 66 20 61 73 73 65 72 74 69 6f 6e 73 20 6f 72 00 .no.reordering.of.assertions.or.
2ae00 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d 72 65 77 72 69 74 65 2d ...dumpAssertions("post-rewrite-
2ae20 61 70 70 6c 79 2d 74 6f 2d 63 6f 6e 73 74 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 apply-to-const",.d_assertions);.
2ae40 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 20 ..}.....}.......d_assertions[i].
2ae60 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 72 65 77 72 69 74 65 41 70 70 6c 79 =.Rewriter::rewrite(rewriteApply
2ae80 54 6f 43 6f 6e 73 74 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d 29 29 3b 00 20 20 20 20 66 ToConst(d_assertions[i]));.....f
2aea0 6f 72 20 28 75 6e 73 69 67 6e 65 64 20 69 20 3d 20 30 3b 20 69 20 3c 20 64 5f 61 73 73 65 72 74 or.(unsigned.i.=.0;.i.<.d_assert
2aec0 69 6f 6e 73 2e 73 69 7a 65 28 29 3b 20 2b 2b 20 69 29 20 7b 00 20 20 20 20 54 69 6d 65 72 53 74 ions.size();.++.i).{.....TimerSt
2aee0 61 74 3a 3a 43 6f 64 65 54 69 6d 65 72 20 63 6f 64 65 54 69 6d 65 72 28 64 5f 73 6d 74 2e 64 5f at::CodeTimer.codeTimer(d_smt.d_
2af00 73 74 61 74 73 2d 3e 64 5f 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 54 69 6d 65 stats->d_rewriteApplyToConstTime
2af20 29 3b 00 20 20 20 20 43 68 61 74 28 29 20 3c 3c 20 22 52 65 77 72 69 74 69 6e 67 20 61 70 70 6c );.....Chat().<<."Rewriting.appl
2af40 69 65 73 20 74 6f 20 63 6f 6e 73 74 61 6e 74 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 ies.to.constants...".<<.endl;...
2af60 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 72 65 77 72 69 74 65 41 70 70 6c 79 54 6f 43 6f 6e 73 74 28 if(options::rewriteApplyToConst(
2af80 29 29 20 7b 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 72 65 77 72 69 )).{...dumpAssertions("pre-rewri
2afa0 74 65 2d 61 70 70 6c 79 2d 74 6f 2d 63 6f 6e 73 74 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 te-apply-to-const",.d_assertions
2afc0 29 3b 00 00 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d 72 65 70 65 61 );....dumpAssertions("post-repea
2afe0 74 2d 73 69 6d 70 6c 69 66 79 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 7d 00 t-simplify",.d_assertions);...}.
2b000 61 64 00 00 0d 00 00 00 d5 01 00 00 00 10 00 00 6b 00 00 00 00 00 00 00 6d 0f 00 00 6c 0f 00 00 ad..............k.......m...l...
2b020 2b 0f 00 00 23 0f 00 00 18 0f 00 00 bc 0e 00 00 7b 0e 00 00 75 0e 00 00 37 0e 00 00 07 0e 00 00 +...#...........{...u...7.......
2b040 e7 0d 00 00 bb 0d 00 00 80 0d 00 00 7a 0d 00 00 75 0d 00 00 74 0d 00 00 47 0d 00 00 2a 0d 00 00 ............z...u...t...G...*...
2b060 f8 0c 00 00 f6 0c 00 00 f5 0c 00 00 a9 0c 00 00 77 0c 00 00 47 0c 00 00 2e 0c 00 00 19 0c 00 00 ................w...G...........
2b080 ef 0b 00 00 c5 0b 00 00 9f 0b 00 00 71 0b 00 00 6d 0b 00 00 6b 0b 00 00 6a 0b 00 00 ee 0a 00 00 ............q...m...k...j.......
2b0a0 b6 0a 00 00 99 0a 00 00 98 0a 00 00 1f 0a 00 00 07 0a 00 00 d0 09 00 00 b6 09 00 00 b5 09 00 00 ................................
2b0c0 5d 09 00 00 55 09 00 00 14 09 00 00 fb 08 00 00 e1 08 00 00 cc 08 00 00 cb 08 00 00 68 08 00 00 ]...U.......................h...
2b0e0 67 08 00 00 2f 08 00 00 ed 07 00 00 b0 07 00 00 7d 07 00 00 77 07 00 00 76 07 00 00 6a 07 00 00 g.../...........}...w...v...j...
2b100 53 07 00 00 20 07 00 00 d4 06 00 00 a0 06 00 00 88 06 00 00 82 06 00 00 81 06 00 00 51 06 00 00 S...........................Q...
2b120 37 06 00 00 14 06 00 00 f5 05 00 00 ef 05 00 00 ee 05 00 00 d6 05 00 00 c2 05 00 00 c1 05 00 00 7...............................
2b140 9a 05 00 00 82 05 00 00 81 05 00 00 6a 05 00 00 54 05 00 00 34 05 00 00 09 05 00 00 e5 04 00 00 ............j...T...4...........
2b160 bd 04 00 00 b5 04 00 00 7d 04 00 00 77 04 00 00 76 04 00 00 3b 04 00 00 ea 03 00 00 e9 03 00 00 ........}...w...v...;...........
2b180 69 03 00 00 2a 03 00 00 24 03 00 00 23 03 00 00 07 03 00 00 06 03 00 00 e3 02 00 00 c2 02 00 00 i...*...$...#...................
2b1a0 7e 02 00 00 69 02 00 00 3a 02 00 00 2d 02 00 00 fb 01 00 00 f3 01 00 00 ed 01 00 00 ec 01 00 00 ~...i...:...-...................
2b1c0 d5 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 2f 2f 20 50 6f 70 20 .........................//.Pop.
2b1e0 74 68 65 20 63 6f 6e 74 65 78 74 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 the.context......}.......}......
2b200 20 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 43 68 65 63 6b 53 61 74 ...Dump("benchmark").<<.CheckSat
2b220 43 6f 6d 6d 61 6e 64 28 65 78 29 3b 00 20 20 20 20 20 20 7d 65 6c 73 65 7b 00 20 20 20 20 20 20 Command(ex);.......}else{.......
2b240 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 51 75 65 72 79 43 6f 6d 6d ..Dump("benchmark").<<.QueryComm
2b260 61 6e 64 28 65 78 29 3b 00 20 20 20 20 20 20 69 66 28 20 69 73 51 75 65 72 79 20 29 7b 00 20 20 and(ex);.......if(.isQuery.){...
2b280 20 20 20 20 2f 2f 20 74 68 65 20 65 78 70 72 20 61 6c 72 65 61 64 79 20 67 6f 74 20 64 75 6d 70 ....//.the.expr.already.got.dump
2b2a0 65 64 20 6f 75 74 20 69 66 20 61 73 73 65 72 74 69 6f 6e 2d 64 75 6d 70 69 6e 67 20 69 73 20 6f ed.out.if.assertion-dumping.is.o
2b2c0 6e 00 20 20 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 29 n.....if(Dump.isOn("benchmark"))
2b2e0 20 7b 00 20 20 20 20 2f 2f 20 44 75 6d 70 20 74 68 65 20 71 75 65 72 79 20 69 66 20 72 65 71 75 .{.....//.Dump.the.query.if.requ
2b300 65 73 74 65 64 00 00 20 20 20 20 64 5f 6e 65 65 64 50 6f 73 74 73 6f 6c 76 65 20 3d 20 74 72 75 ested......d_needPostsolve.=.tru
2b320 65 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 72 20 3d 20 52 65 73 75 6c 74 28 52 65 73 75 6c e;......}.......r.=.Result(Resul
2b340 74 3a 3a 53 41 54 5f 55 4e 4b 4e 4f 57 4e 2c 20 52 65 73 75 6c 74 3a 3a 55 4e 4b 4e 4f 57 4e 5f t::SAT_UNKNOWN,.Result::UNKNOWN_
2b360 52 45 41 53 4f 4e 29 3b 00 20 20 20 20 69 66 20 28 20 28 20 6f 70 74 69 6f 6e 73 3a 3a 73 6f 6c REASON);.....if.(.(.options::sol
2b380 76 65 52 65 61 6c 41 73 49 6e 74 28 29 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 73 6f 6c 76 65 49 veRealAsInt().||.options::solveI
2b3a0 6e 74 41 73 42 56 28 29 20 3e 20 30 20 29 20 26 26 20 72 2e 61 73 53 61 74 69 73 66 69 61 62 69 ntAsBV().>.0.).&&.r.asSatisfiabi
2b3c0 6c 69 74 79 52 65 73 75 6c 74 28 29 2e 69 73 53 61 74 28 29 20 3d 3d 20 52 65 73 75 6c 74 3a 3a lityResult().isSat().==.Result::
2b3e0 55 4e 53 41 54 29 20 7b 00 00 20 20 20 20 72 20 3d 20 69 73 51 75 65 72 79 20 3f 20 63 68 65 63 UNSAT).{......r.=.isQuery.?.chec
2b400 6b 28 29 2e 61 73 56 61 6c 69 64 69 74 79 52 65 73 75 6c 74 28 29 20 3a 20 63 68 65 63 6b 28 29 k().asValidityResult().:.check()
2b420 2e 61 73 53 61 74 69 73 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 3b 00 20 20 20 20 52 .asSatisfiabilityResult();.....R
2b440 65 73 75 6c 74 20 72 28 52 65 73 75 6c 74 3a 3a 53 41 54 5f 55 4e 4b 4e 4f 57 4e 2c 20 52 65 73 esult.r(Result::SAT_UNKNOWN,.Res
2b460 75 6c 74 3a 3a 55 4e 4b 4e 4f 57 4e 5f 52 45 41 53 4f 4e 29 3b 00 00 20 20 20 20 7d 00 20 20 20 ult::UNKNOWN_REASON);......}....
2b480 20 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 61 64 64 46 6f 72 6d 75 6c 61 28 65 61 2e 67 65 74 4e ...d_private->addFormula(ea.getN
2b4a0 6f 64 65 28 29 2c 20 69 6e 55 6e 73 61 74 43 6f 72 65 29 3b 00 20 20 20 20 20 20 7d 00 20 20 20 ode(),.inUnsatCore);.......}....
2b4c0 20 20 20 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 4c 69 73 74 2d 3e 70 75 73 68 5f 62 61 63 6b 28 .....d_assertionList->push_back(
2b4e0 65 61 29 3b 00 20 20 20 20 20 20 69 66 28 64 5f 61 73 73 65 72 74 69 6f 6e 4c 69 73 74 20 21 3d ea);.......if(d_assertionList.!=
2b500 20 4e 55 4c 4c 29 20 7b 00 20 20 20 20 20 20 45 78 70 72 20 65 61 20 3d 20 69 73 51 75 65 72 79 .NULL).{.......Expr.ea.=.isQuery
2b520 20 3f 20 65 2e 6e 6f 74 45 78 70 72 28 29 20 3a 20 65 3b 00 20 20 20 20 20 20 64 5f 70 72 6f 62 .?.e.notExpr().:.e;.......d_prob
2b540 6c 65 6d 45 78 74 65 6e 64 65 64 20 3d 20 74 72 75 65 3b 00 20 20 20 20 69 66 28 21 65 2e 69 73 lemExtended.=.true;.....if(!e.is
2b560 4e 75 6c 6c 28 29 29 20 7b 00 20 20 20 20 2f 2f 20 41 64 64 20 74 68 65 20 66 6f 72 6d 75 6c 61 Null()).{.....//.Add.the.formula
2b580 00 00 20 20 20 20 64 5f 71 75 65 72 79 4d 61 64 65 20 3d 20 74 72 75 65 3b 00 20 20 20 20 2f 2f ......d_queryMade.=.true;.....//
2b5a0 20 4e 6f 74 65 20 74 68 61 74 20 61 20 71 75 65 72 79 20 68 61 73 20 62 65 65 6e 20 6d 61 64 65 .Note.that.a.query.has.been.made
2b5c0 00 00 20 20 20 20 69 6e 74 65 72 6e 61 6c 50 75 73 68 28 29 3b 00 20 20 20 20 2f 2f 20 50 75 73 ......internalPush();.....//.Pus
2b5e0 68 20 74 68 65 20 63 6f 6e 74 65 78 74 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 6e 65 65 h.the.context......}.......d_nee
2b600 64 50 6f 73 74 73 6f 6c 76 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 64 5f 74 68 65 6f dPostsolve.=.false;.......d_theo
2b620 72 79 45 6e 67 69 6e 65 2d 3e 70 6f 73 74 73 6f 6c 76 65 28 29 3b 00 20 20 20 20 69 66 28 64 5f ryEngine->postsolve();.....if(d_
2b640 6e 65 65 64 50 6f 73 74 73 6f 6c 76 65 29 20 7b 00 20 20 20 20 2f 2f 20 63 68 65 63 6b 20 74 6f needPostsolve).{.....//.check.to
2b660 20 73 65 65 20 69 66 20 61 20 70 6f 73 74 73 6f 6c 76 65 28 29 20 69 73 20 70 65 6e 64 69 6e 67 .see.if.a.postsolve().is.pending
2b680 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 65 6e 73 75 72 65 42 6f 6f 6c 65 61 6e 28 65 29 3b 00 ......}.......ensureBoolean(e);.
2b6a0 20 20 20 20 20 20 2f 2f 20 45 6e 73 75 72 65 20 65 78 70 72 20 69 73 20 74 79 70 65 2d 63 68 65 ......//.Ensure.expr.is.type-che
2b6c0 63 6b 65 64 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2e 00 20 20 20 20 20 20 65 20 3d 20 64 5f cked.at.this.point........e.=.d_
2b6e0 70 72 69 76 61 74 65 2d 3e 73 75 62 73 74 69 74 75 74 65 41 62 73 74 72 61 63 74 56 61 6c 75 65 private->substituteAbstractValue
2b700 73 28 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 65 78 29 29 2e 74 6f 45 78 70 72 28 29 3b 00 s(Node::fromExpr(ex)).toExpr();.
2b720 20 20 20 20 20 20 2f 2f 20 53 75 62 73 74 69 74 75 74 65 20 6f 75 74 20 61 6e 79 20 61 62 73 74 ......//.Substitute.out.any.abst
2b740 72 61 63 74 20 76 61 6c 75 65 73 20 69 6e 20 65 78 2e 00 20 20 20 20 69 66 28 21 65 78 2e 69 73 ract.values.in.ex......if(!ex.is
2b760 4e 75 6c 6c 28 29 29 20 7b 00 20 20 20 20 45 78 70 72 20 65 3b 00 00 20 20 20 20 7d 00 20 20 20 Null()).{.....Expr.e;......}....
2b780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 28 74 72 79 20 2d 2d ........................"(try.--
2b7a0 69 6e 63 72 65 6d 65 6e 74 61 6c 29 22 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 incremental)");.................
2b7c0 20 20 20 20 20 20 20 20 20 20 20 22 69 6e 63 72 65 6d 65 6e 74 61 6c 20 73 6f 6c 76 69 6e 67 20 ..........."incremental.solving.
2b7e0 69 73 20 65 6e 61 62 6c 65 64 20 22 00 20 20 20 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 is.enabled.".......throw.ModalEx
2b800 63 65 70 74 69 6f 6e 28 22 43 61 6e 6e 6f 74 20 6d 61 6b 65 20 6d 75 6c 74 69 70 6c 65 20 71 75 ception("Cannot.make.multiple.qu
2b820 65 72 69 65 73 20 75 6e 6c 65 73 73 20 22 00 20 20 20 20 69 66 28 64 5f 71 75 65 72 79 4d 61 64 eries.unless.".....if(d_queryMad
2b840 65 20 26 26 20 21 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e e.&&.!options::incrementalSolvin
2b860 67 28 29 29 20 7b 00 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 6d 74 g()).{......Trace("smt").<<."Smt
2b880 45 6e 67 69 6e 65 3a 3a 22 20 3c 3c 20 28 69 73 51 75 65 72 79 20 3f 20 22 71 75 65 72 79 22 20 Engine::".<<.(isQuery.?."query".
2b8a0 3a 20 22 63 68 65 63 6b 53 61 74 22 29 20 3c 3c 20 22 28 22 20 3c 3c 20 65 78 20 3c 3c 20 22 29 :."checkSat").<<."(".<<.ex.<<.")
2b8c0 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 20 20 64 6f 50 65 6e 64 69 6e 67 50 6f 70 73 28 29 3b ".<<.endl;......doPendingPops();
2b8e0 00 20 20 20 20 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 29 3b 00 20 20 20 20 53 .....finalOptionsAreSet();.....S
2b900 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 20 20 20 20 41 73 73 65 72 74 28 65 mtScope.smts(this);.....Assert(e
2b920 78 2e 69 73 4e 75 6c 6c 28 29 20 7c 7c 20 65 78 2e 67 65 74 45 78 70 72 4d 61 6e 61 67 65 72 28 x.isNull().||.ex.getExprManager(
2b940 29 20 3d 3d 20 64 5f 65 78 70 72 4d 61 6e 61 67 65 72 29 3b 00 20 20 74 72 79 20 7b 00 52 65 73 ).==.d_exprManager);...try.{.Res
2b960 75 6c 74 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 53 61 74 69 73 66 69 61 62 69 6c 69 ult.SmtEngine::checkSatisfiabili
2b980 74 79 28 63 6f 6e 73 74 20 45 78 70 72 26 20 65 78 2c 20 62 6f 6f 6c 20 69 6e 55 6e 73 61 74 43 ty(const.Expr&.ex,.bool.inUnsatC
2b9a0 6f 72 65 2c 20 62 6f 6f 6c 20 69 73 51 75 65 72 79 29 20 7b 00 00 7d 2f 2a 20 53 6d 74 45 6e 67 ore,.bool.isQuery).{..}/*.SmtEng
2b9c0 69 6e 65 3a 3a 71 75 65 72 79 28 29 20 2a 2f 00 20 20 72 65 74 75 72 6e 20 63 68 65 63 6b 53 61 ine::query().*/...return.checkSa
2b9e0 74 69 73 66 69 61 62 69 6c 69 74 79 28 20 65 78 2c 20 69 6e 55 6e 73 61 74 43 6f 72 65 2c 20 74 tisfiability(.ex,.inUnsatCore,.t
2ba00 72 75 65 20 29 3b 00 20 20 41 73 73 65 72 74 28 21 65 78 2e 69 73 4e 75 6c 6c 28 29 29 3b 00 52 rue.);...Assert(!ex.isNull());.R
2ba20 65 73 75 6c 74 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 71 75 65 72 79 28 63 6f 6e 73 74 20 45 78 70 esult.SmtEngine::query(const.Exp
2ba40 72 26 20 65 78 2c 20 62 6f 6f 6c 20 69 6e 55 6e 73 61 74 43 6f 72 65 29 20 74 68 72 6f 77 28 54 r&.ex,.bool.inUnsatCore).throw(T
2ba60 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 4d 6f 64 61 6c 45 78 63 65 70 ypeCheckingException,.ModalExcep
2ba80 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 00 7d 2f 2a 20 53 6d 74 tion,.LogicException).{..}/*.Smt
2baa0 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 53 61 74 28 29 20 2a 2f 00 20 20 72 65 74 75 72 6e 20 63 Engine::checkSat().*/...return.c
2bac0 68 65 63 6b 53 61 74 69 73 66 69 61 62 69 6c 69 74 79 28 20 65 78 2c 20 69 6e 55 6e 73 61 74 43 heckSatisfiability(.ex,.inUnsatC
2bae0 6f 72 65 2c 20 66 61 6c 73 65 20 29 3b 00 52 65 73 75 6c 74 20 53 6d 74 45 6e 67 69 6e 65 3a 3a ore,.false.);.Result.SmtEngine::
2bb00 63 68 65 63 6b 53 61 74 28 63 6f 6e 73 74 20 45 78 70 72 26 20 65 78 2c 20 62 6f 6f 6c 20 69 6e checkSat(const.Expr&.ex,.bool.in
2bb20 55 6e 73 61 74 43 6f 72 65 29 20 74 68 72 6f 77 28 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 UnsatCore).throw(TypeCheckingExc
2bb40 65 70 74 69 6f 6e 2c 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 78 63 eption,.ModalException,.LogicExc
2bb60 65 70 74 69 6f 6e 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 20 54 79 70 65 43 eption).{..}...}.....throw.TypeC
2bb80 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 65 2c 20 73 73 2e 73 74 72 28 29 29 3b 00 20 heckingException(e,.ss.str());..
2bba0 20 20 20 20 20 20 3c 3c 20 22 49 74 73 20 74 79 70 65 20 20 20 20 20 20 3a 20 22 20 3c 3c 20 74 ......<<."Its.type......:.".<<.t
2bbc0 79 70 65 3b 00 20 20 20 20 20 20 20 3c 3c 20 22 54 68 65 20 61 73 73 65 72 74 69 6f 6e 20 3a 20 ype;........<<."The.assertion.:.
2bbe0 22 20 3c 3c 20 65 20 3c 3c 20 22 5c 6e 22 00 20 20 20 20 73 73 20 3c 3c 20 22 45 78 70 65 63 74 ".<<.e.<<."\n".....ss.<<."Expect
2bc00 65 64 20 22 20 3c 3c 20 62 6f 6f 6c 54 79 70 65 20 3c 3c 20 22 5c 6e 22 00 20 20 20 20 73 74 72 ed.".<<.boolType.<<."\n".....str
2bc20 69 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 20 20 69 66 28 74 79 70 65 20 21 3d 20 62 6f 6f 6c 54 ingstream.ss;...if(type.!=.boolT
2bc40 79 70 65 29 20 7b 00 20 20 54 79 70 65 20 62 6f 6f 6c 54 79 70 65 20 3d 20 64 5f 65 78 70 72 4d ype).{...Type.boolType.=.d_exprM
2bc60 61 6e 61 67 65 72 2d 3e 62 6f 6f 6c 65 61 6e 54 79 70 65 28 29 3b 00 20 20 54 79 70 65 20 74 79 anager->booleanType();...Type.ty
2bc80 70 65 20 3d 20 65 2e 67 65 74 54 79 70 65 28 6f 70 74 69 6f 6e 73 3a 3a 74 79 70 65 43 68 65 63 pe.=.e.getType(options::typeChec
2bca0 6b 69 6e 67 28 29 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 65 6e 73 75 72 65 42 king());.void.SmtEngine::ensureB
2bcc0 6f 6f 6c 65 61 6e 28 63 6f 6e 73 74 20 45 78 70 72 26 20 65 29 20 74 68 72 6f 77 28 54 79 70 65 oolean(const.Expr&.e).throw(Type
2bce0 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 00 7d 00 20 20 2f 2f 64 5f 61 73 CheckingException).{..}...//d_as
2bd00 73 65 72 74 69 6f 6e 73 2e 70 75 73 68 5f 62 61 63 6b 28 52 65 77 72 69 74 65 72 3a 3a 72 65 77 sertions.push_back(Rewriter::rew
2bd20 72 69 74 65 28 6e 29 29 3b 00 20 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 70 75 73 68 5f 62 61 rite(n));...d_assertions.push_ba
2bd40 63 6b 28 6e 29 3b 00 20 20 2f 2f 20 41 64 64 20 74 68 65 20 6e 6f 72 6d 61 6c 69 7a 65 64 20 66 ck(n);...//.Add.the.normalized.f
2bd60 6f 72 6d 75 6c 61 20 74 6f 20 74 68 65 20 71 75 65 75 65 00 00 20 20 29 3b 00 20 20 20 20 7d 00 ormula.to.the.queue....);.....}.
2bd80 20 20 20 20 20 20 50 72 6f 6f 66 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 50 4d 28 29 2d ......ProofManager::currentPM()-
2bda0 3e 61 64 64 55 6e 73 61 74 43 6f 72 65 28 6e 2e 74 6f 45 78 70 72 28 29 29 3b 00 20 20 20 20 20 >addUnsatCore(n.toExpr());......
2bdc0 20 20 6e 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 52 45 57 52 49 54 45 5f 52 ..n.getKind().==.kind::REWRITE_R
2bde0 55 4c 45 20 29 7b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 ULE.){.....if(options::unsatCore
2be00 73 28 29 20 26 26 00 20 20 20 20 2f 2f 20 74 68 65 79 20 6e 65 65 64 20 74 6f 20 62 65 20 61 70 s().&&.....//.they.need.to.be.ap
2be20 70 6c 69 65 64 20 75 6e 74 69 6c 20 73 61 74 75 72 61 74 69 6f 6e 00 20 20 20 20 2f 2f 20 72 65 plied.until.saturation.....//.re
2be40 77 72 69 74 65 20 72 75 6c 65 73 20 61 72 65 20 62 79 20 64 65 66 61 75 6c 74 20 69 6e 20 74 68 write.rules.are.by.default.in.th
2be60 65 20 75 6e 73 61 74 20 63 6f 72 65 20 62 65 63 61 75 73 65 00 20 20 20 20 7d 00 20 20 20 20 20 e.unsat.core.because.....}......
2be80 20 50 72 6f 6f 66 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 50 4d 28 29 2d 3e 61 64 64 44 .ProofManager::currentPM()->addD
2bea0 65 70 65 6e 64 65 6e 63 65 28 6e 2c 20 4e 6f 64 65 3a 3a 6e 75 6c 6c 28 29 29 3b 00 20 20 20 20 ependence(n,.Node::null());.....
2bec0 20 20 2f 2f 20 6e 20 69 73 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 61 6e 20 75 6e 6b 6e 6f ..//.n.is.the.result.of.an.unkno
2bee0 77 6e 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 20 73 74 65 70 2c 20 61 64 64 20 69 74 20 74 6f wn.preprocessing.step,.add.it.to
2bf00 20 64 65 70 65 6e 64 65 6e 63 79 20 6d 61 70 20 74 6f 20 6e 75 6c 6c 00 20 20 20 20 7d 65 6c 73 .dependency.map.to.null.....}els
2bf20 65 7b 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 50 72 6f 6f 66 4d 61 6e 61 67 65 72 3a e{.......}.........ProofManager:
2bf40 3a 63 75 72 72 65 6e 74 50 4d 28 29 2d 3e 61 64 64 43 6f 72 65 41 73 73 65 72 74 69 6f 6e 28 6e :currentPM()->addCoreAssertion(n
2bf60 2e 74 6f 45 78 70 72 28 29 29 3b 00 00 20 20 20 20 20 20 69 66 20 28 69 6e 55 6e 73 61 74 43 6f .toExpr());........if.(inUnsatCo
2bf80 72 65 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 73 28 29 20 7c 7c 20 6f re.||.options::unsatCores().||.o
2bfa0 70 74 69 6f 6e 73 3a 3a 64 75 6d 70 55 6e 73 61 74 43 6f 72 65 73 28 29 20 7c 7c 20 6f 70 74 69 ptions::dumpUnsatCores().||.opti
2bfc0 6f 6e 73 3a 3a 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 73 28 29 20 7c 7c 20 6f 70 74 69 6f 6e ons::checkUnsatCores().||.option
2bfe0 73 3a 3a 66 65 77 65 72 50 72 65 70 72 6f 63 65 73 73 69 6e 67 48 6f 6c 65 73 28 29 29 20 7b 00 s::fewerPreprocessingHoles()).{.
2c000 61 64 00 00 57 00 00 00 c7 01 00 00 00 10 00 00 55 00 00 00 00 00 00 00 ed 0f 00 00 ec 0f 00 00 ad..W...........U...............
2c020 d1 0f 00 00 bf 0f 00 00 be 0f 00 00 9f 0f 00 00 9e 0f 00 00 33 0f 00 00 32 0f 00 00 f8 0e 00 00 ....................3...2.......
2c040 d7 0e 00 00 99 0e 00 00 55 0e 00 00 19 0e 00 00 11 0e 00 00 0b 0e 00 00 cf 0d 00 00 ae 0d 00 00 ........U.......................
2c060 6e 0d 00 00 25 0d 00 00 0f 0d 00 00 07 0d 00 00 01 0d 00 00 bf 0c 00 00 9a 0c 00 00 5a 0c 00 00 n...%.......................Z...
2c080 09 0c 00 00 ef 0b 00 00 e7 0b 00 00 e1 0b 00 00 e0 0b 00 00 d2 0b 00 00 a8 0b 00 00 6e 0b 00 00 ............................n...
2c0a0 15 0b 00 00 e8 0a 00 00 af 0a 00 00 ab 0a 00 00 a9 0a 00 00 a8 0a 00 00 a7 0a 00 00 3c 0a 00 00 ............................<...
2c0c0 25 0a 00 00 f0 09 00 00 a6 09 00 00 92 09 00 00 6f 09 00 00 49 09 00 00 f8 08 00 00 cd 08 00 00 %...............o...I...........
2c0e0 ac 08 00 00 ab 08 00 00 4c 08 00 00 0b 08 00 00 f0 07 00 00 b2 07 00 00 8f 07 00 00 8e 07 00 00 ........L.......................
2c100 3c 07 00 00 bf 06 00 00 5e 06 00 00 d2 05 00 00 d1 05 00 00 94 05 00 00 69 05 00 00 40 05 00 00 <.......^...............i...@...
2c120 c4 04 00 00 a6 04 00 00 81 04 00 00 5b 04 00 00 20 04 00 00 fa 03 00 00 99 03 00 00 75 03 00 00 ............[...............u...
2c140 64 03 00 00 3f 03 00 00 33 03 00 00 29 03 00 00 07 03 00 00 e5 02 00 00 c0 02 00 00 8b 02 00 00 d...?...3...)...................
2c160 0f 02 00 00 e6 01 00 00 c7 01 00 00 3f 05 00 00 0f 05 00 00 ec 04 00 00 c2 04 00 00 a3 04 00 00 ............?...................
2c180 6b 04 00 00 3b 04 00 00 14 04 00 00 df 03 00 00 bc 03 00 00 91 03 00 00 6f 03 00 00 4d 03 00 00 k...;...................o...M...
2c1a0 2c 03 00 00 0a 03 00 00 f3 02 00 00 db 02 00 00 b8 02 00 00 b7 02 00 00 a2 02 00 00 8c 02 00 00 ,...............................
2c1c0 71 02 00 00 55 02 00 20 20 20 20 20 20 20 20 20 20 73 75 62 73 2e 70 75 73 68 5f 62 61 63 6b 28 q...U............subs.push_back(
2c1e0 20 6b 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 6f 72 69 67 2e 70 75 73 68 5f 62 61 63 6b 28 20 .k.);...........orig.push_back(.
2c200 6e 71 65 5f 76 61 72 73 5b 69 5d 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 4e 6f 64 65 20 6b 20 nqe_vars[i].);...........Node.k.
2c220 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 53 6b =.NodeManager::currentNM()->mkSk
2c240 6f 6c 65 6d 28 20 22 6b 22 2c 20 6e 71 65 5f 76 61 72 73 5b 69 5d 2e 67 65 74 54 79 70 65 28 29 olem(."k",.nqe_vars[i].getType()
2c260 2c 20 22 71 65 20 66 6f 72 20 6e 6f 6e 2d 67 72 6f 75 6e 64 20 73 69 6e 67 6c 65 20 69 6e 76 6f ,."qe.for.non-ground.single.invo
2c280 63 61 74 69 6f 6e 22 20 29 3b 00 20 20 20 20 20 20 20 20 66 6f 72 28 20 75 6e 73 69 67 6e 65 64 cation".);.........for(.unsigned
2c2a0 20 69 3d 30 3b 20 69 3c 6e 71 65 5f 76 61 72 73 2e 73 69 7a 65 28 29 3b 20 69 2b 2b 20 29 7b 00 .i=0;.i<nqe_vars.size();.i++.){.
2c2c0 20 20 20 20 20 20 20 20 2f 2f 73 6b 6f 6c 65 6d 69 7a 65 20 6e 6f 6e 2d 71 65 20 76 61 72 69 61 ........//skolemize.non-qe.varia
2c2e0 62 6c 65 73 00 20 20 20 20 20 20 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 4e 6f 64 65 20 3e bles.........std::vector<.Node.>
2c300 20 73 75 62 73 3b 00 20 20 20 20 20 20 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 4e 6f 64 65 .subs;.........std::vector<.Node
2c320 20 3e 20 6f 72 69 67 3b 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 7d 00 20 .>.orig;.........}...........}..
2c340 20 20 20 20 20 20 20 20 20 20 20 6e 71 65 5f 76 61 72 73 2e 70 75 73 68 5f 62 61 63 6b 28 20 76 ...........nqe_vars.push_back(.v
2c360 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 7d 65 6c 73 65 7b 00 20 20 20 20 20 20 20 20 20 20 20 .);...........}else{............
2c380 20 71 65 5f 76 61 72 73 2e 70 75 73 68 5f 62 61 63 6b 28 20 76 20 29 3b 00 20 20 20 20 20 20 20 .qe_vars.push_back(.v.);........
2c3a0 20 20 20 69 66 28 20 73 74 64 3a 3a 66 69 6e 64 28 20 73 69 70 2e 64 5f 73 69 5f 76 61 72 73 2e ...if(.std::find(.sip.d_si_vars.
2c3c0 62 65 67 69 6e 28 29 2c 20 73 69 70 2e 64 5f 73 69 5f 76 61 72 73 2e 65 6e 64 28 29 2c 20 76 20 begin(),.sip.d_si_vars.end(),.v.
2c3e0 29 3d 3d 73 69 70 2e 64 5f 73 69 5f 76 61 72 73 2e 65 6e 64 28 29 20 29 7b 00 20 20 20 20 20 20 )==sip.d_si_vars.end().){.......
2c400 20 20 20 20 4e 6f 64 65 20 76 20 3d 20 73 69 70 2e 64 5f 61 6c 6c 5f 76 61 72 73 5b 69 5d 3b 00 ....Node.v.=.sip.d_all_vars[i];.
2c420 20 20 20 20 20 20 20 20 66 6f 72 28 20 75 6e 73 69 67 6e 65 64 20 69 3d 30 3b 20 69 3c 73 69 70 ........for(.unsigned.i=0;.i<sip
2c440 2e 64 5f 61 6c 6c 5f 76 61 72 73 2e 73 69 7a 65 28 29 3b 20 69 2b 2b 20 29 7b 00 20 20 20 20 20 .d_all_vars.size();.i++.){......
2c460 20 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 4e 6f 64 65 20 3e 20 6e 71 65 5f 76 61 72 73 3b ...std::vector<.Node.>.nqe_vars;
2c480 00 20 20 20 20 20 20 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 4e 6f 64 65 20 3e 20 71 65 5f .........std::vector<.Node.>.qe_
2c4a0 76 61 72 73 3b 00 20 20 20 20 20 20 20 20 2f 2f 70 61 72 74 69 74 69 6f 6e 20 76 61 72 69 61 62 vars;.........//partition.variab
2c4c0 6c 65 73 00 20 20 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d 73 79 6e 74 68 22 29 20 3c les.........Trace("smt-synth").<
2c4e0 3c 20 22 50 72 6f 70 65 72 74 79 20 69 73 20 6e 6f 6e 2d 67 72 6f 75 6e 64 20 73 69 6e 67 6c 65 <."Property.is.non-ground.single
2c500 20 69 6e 76 6f 63 61 74 69 6f 6e 2c 20 72 75 6e 20 51 45 20 74 6f 20 6f 62 74 61 69 6e 20 73 69 .invocation,.run.QE.to.obtain.si
2c520 6e 67 6c 65 20 69 6e 76 6f 63 61 74 69 6f 6e 2e 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 ngle.invocation.".<<.std::endl;.
2c540 20 20 20 20 20 20 20 20 73 6d 74 5f 71 65 2e 73 65 74 4c 6f 67 69 63 28 67 65 74 4c 6f 67 69 63 ........smt_qe.setLogic(getLogic
2c560 49 6e 66 6f 28 29 29 3b 00 20 20 20 20 20 20 20 20 53 6d 74 45 6e 67 69 6e 65 20 73 6d 74 5f 71 Info());.........SmtEngine.smt_q
2c580 65 28 20 64 5f 65 78 70 72 4d 61 6e 61 67 65 72 20 29 3b 00 20 20 20 20 20 20 20 20 2f 2f 63 72 e(.d_exprManager.);.........//cr
2c5a0 65 61 74 65 20 6e 65 77 20 73 6d 74 20 65 6e 67 69 6e 65 20 74 6f 20 64 6f 20 71 75 61 6e 74 69 eate.new.smt.engine.to.do.quanti
2c5c0 66 69 65 72 20 65 6c 69 6d 69 6e 61 74 69 6f 6e 00 00 20 20 20 20 20 20 20 20 2f 2f 20 20 61 6e fier.elimination..........//..an
2c5e0 64 20 74 68 65 6e 20 63 6f 6e 73 74 72 75 63 74 73 20 65 78 69 73 74 73 20 66 2e 20 66 6f 72 61 d.then.constructs.exists.f..fora
2c600 6c 6c 20 78 2e 20 51 28 20 66 28 20 78 20 29 2c 20 78 20 29 2c 20 77 68 65 72 65 20 51 20 64 6f ll.x..Q(.f(.x.),.x.),.where.Q.do
2c620 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 66 2e 20 20 57 65 20 69 6e 76 6f 6b 65 20 73 79 6e es.not.contain.f...We.invoke.syn
2c640 74 68 65 73 69 73 20 73 6f 6c 76 65 72 20 6f 6e 20 74 68 69 73 20 72 65 73 75 6c 74 2e 00 20 20 thesis.solver.on.this.result....
2c660 20 20 20 20 20 20 2f 2f 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 77 69 6c 6c 20 72 75 6e 20 51 ......//The.following.will.run.Q
2c680 45 20 6f 6e 20 28 65 78 69 73 74 73 20 7a 20 78 2e 29 20 65 78 69 73 74 73 20 79 2e 20 50 28 20 E.on.(exists.z.x.).exists.y..P(.
2c6a0 7a 2c 20 78 2c 20 79 20 29 20 74 6f 20 6f 62 74 61 69 6e 20 51 28 20 7a 2c 20 78 20 29 2c 00 20 z,.x,.y.).to.obtain.Q(.z,.x.),..
2c6c0 20 20 20 20 20 20 20 2f 2f 57 65 20 61 72 65 20 69 6e 20 74 68 65 20 63 61 73 65 20 77 68 65 72 .......//We.are.in.the.case.wher
2c6e0 65 20 6f 75 72 20 73 79 6e 74 68 65 73 69 73 20 63 6f 6e 6a 65 63 74 75 72 65 20 69 73 20 65 78 e.our.synthesis.conjecture.is.ex
2c700 69 73 74 73 20 66 2e 20 66 6f 72 61 6c 6c 20 78 79 2e 20 50 28 20 66 28 20 78 20 29 2c 20 78 2c ists.f..forall.xy..P(.f(.x.),.x,
2c720 20 79 20 29 2c 20 50 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 66 2e 00 20 20 20 20 .y.),.P.does.not.contain.f......
2c740 20 20 69 66 28 20 21 73 69 70 2e 69 73 50 75 72 65 6c 79 53 69 6e 67 6c 65 49 6e 76 6f 63 61 74 ..if(.!sip.isPurelySingleInvocat
2c760 69 6f 6e 28 29 20 26 26 20 73 69 70 2e 69 73 4e 6f 6e 47 72 6f 75 6e 64 53 69 6e 67 6c 65 49 6e ion().&&.sip.isNonGroundSingleIn
2c780 76 6f 63 61 74 69 6f 6e 28 29 20 29 7b 00 00 20 20 20 20 20 20 73 69 70 2e 64 65 62 75 67 50 72 vocation().){........sip.debugPr
2c7a0 69 6e 74 28 22 73 6d 74 2d 73 79 6e 74 68 22 29 3b 00 20 20 20 20 20 20 54 72 61 63 65 28 22 73 int("smt-synth");.......Trace("s
2c7c0 6d 74 2d 73 79 6e 74 68 22 29 20 3c 3c 20 22 2e 2e 2e 66 69 6e 69 73 68 65 64 2c 20 67 6f 74 3a mt-synth").<<."...finished,.got:
2c7e0 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 20 20 73 69 70 2e 69 6e 69 74 28 20 ".<<.std::endl;.......sip.init(.
2c800 63 6f 6e 6a 5f 73 65 20 29 3b 00 20 20 20 20 20 20 71 75 61 6e 74 69 66 69 65 72 73 3a 3a 53 69 conj_se.);.......quantifiers::Si
2c820 6e 67 6c 65 49 6e 76 6f 63 61 74 69 6f 6e 50 61 72 74 69 74 69 6f 6e 20 73 69 70 28 20 6b 69 6e ngleInvocationPartition.sip(.kin
2c840 64 3a 3a 41 50 50 4c 59 20 29 3b 00 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d 73 79 6e d::APPLY.);.......Trace("smt-syn
2c860 74 68 22 29 20 3c 3c 20 22 43 6f 6d 70 75 74 65 20 73 69 6e 67 6c 65 20 69 6e 76 6f 63 61 74 69 th").<<."Compute.single.invocati
2c880 6f 6e 20 66 6f 72 20 22 20 3c 3c 20 63 6f 6e 6a 5f 73 65 20 3c 3c 20 22 2e 2e 2e 22 20 3c 3c 20 on.for.".<<.conj_se.<<."...".<<.
2c8a0 73 74 64 3a 3a 65 6e 64 6c 3b 00 00 20 20 20 20 20 20 4e 6f 64 65 20 63 6f 6e 6a 5f 73 65 20 3d std::endl;........Node.conj_se.=
2c8c0 20 63 6f 6e 6a 5b 31 5d 5b 31 5d 3b 00 20 20 20 20 69 66 28 20 63 6f 6e 6a 5b 31 5d 2e 67 65 74 .conj[1][1];.....if(.conj[1].get
2c8e0 4b 69 6e 64 28 29 3d 3d 6b 69 6e 64 3a 3a 45 58 49 53 54 53 20 29 7b 00 20 20 20 20 2f 2f 70 6f Kind()==kind::EXISTS.){.....//po
2c900 73 73 69 62 6c 79 20 72 75 6e 20 71 75 61 6e 74 69 66 69 65 72 20 65 6c 69 6d 69 6e 61 74 69 6f ssibly.run.quantifier.eliminatio
2c920 6e 20 74 6f 20 6d 61 6b 65 20 66 6f 72 6d 75 6c 61 20 69 6e 74 6f 20 73 69 6e 67 6c 65 20 69 6e n.to.make.formula.into.single.in
2c940 76 6f 63 61 74 69 6f 6e 00 20 20 69 66 28 20 63 6f 6e 6a 2e 67 65 74 4b 69 6e 64 28 29 3d 3d 6b vocation...if(.conj.getKind()==k
2c960 69 6e 64 3a 3a 46 4f 52 41 4c 4c 20 29 7b 00 20 20 4e 6f 64 65 20 63 6f 6e 6a 20 3d 20 4e 6f 64 ind::FORALL.){...Node.conj.=.Nod
2c980 65 3a 3a 66 72 6f 6d 45 78 70 72 28 20 65 20 29 3b 00 20 20 45 78 70 72 20 65 5f 63 68 65 63 6b e::fromExpr(.e.);...Expr.e_check
2c9a0 20 3d 20 65 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 73 79 6e 74 68 22 29 20 3c 3c 20 22 43 .=.e;...Trace("smt-synth").<<."C
2c9c0 68 65 63 6b 20 73 79 6e 74 68 65 73 69 73 20 63 6f 6e 6a 65 63 74 75 72 65 3a 20 22 20 3c 3c 20 heck.synthesis.conjecture:.".<<.
2c9e0 65 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c e.<<.std::endl;...Trace("smt").<
2ca00 3c 20 22 43 68 65 63 6b 20 73 79 6e 74 68 3a 20 22 20 3c 3c 20 65 20 3c 3c 20 73 74 64 3a 3a 65 <."Check.synth:.".<<.e.<<.std::e
2ca20 6e 64 6c 3b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 52 65 73 75 ndl;...SmtScope.smts(this);.Resu
2ca40 6c 74 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 53 79 6e 74 68 28 63 6f 6e 73 74 20 45 lt.SmtEngine::checkSynth(const.E
2ca60 78 70 72 26 20 65 29 20 74 68 72 6f 77 28 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 xpr&.e).throw(TypeCheckingExcept
2ca80 69 6f 6e 2c 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 78 63 65 70 74 ion,.ModalException,.LogicExcept
2caa0 69 6f 6e 29 20 7b 00 00 00 7d 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 52 65 73 75 6c 74 ion).{...}...}.....return.Result
2cac0 28 52 65 73 75 6c 74 3a 3a 53 41 54 5f 55 4e 4b 4e 4f 57 4e 2c 20 77 68 79 2c 20 64 5f 66 69 6c (Result::SAT_UNKNOWN,.why,.d_fil
2cae0 65 6e 61 6d 65 29 3b 00 20 20 20 20 20 20 52 65 73 75 6c 74 3a 3a 52 45 53 4f 55 52 43 45 4f 55 ename);.......Result::RESOURCEOU
2cb00 54 20 3a 20 52 65 73 75 6c 74 3a 3a 54 49 4d 45 4f 55 54 3b 00 20 20 20 20 52 65 73 75 6c 74 3a T.:.Result::TIMEOUT;.....Result:
2cb20 3a 55 6e 6b 6e 6f 77 6e 45 78 70 6c 61 6e 61 74 69 6f 6e 20 77 68 79 20 3d 20 64 5f 70 72 69 76 :UnknownExplanation.why.=.d_priv
2cb40 61 74 65 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 28 29 2d 3e 6f 75 74 4f 66 ate->getResourceManager()->outOf
2cb60 52 65 73 6f 75 72 63 65 73 28 29 20 3f 00 20 20 20 20 41 6c 77 61 79 73 41 73 73 65 72 74 28 64 Resources().?.....AlwaysAssert(d
2cb80 5f 70 72 69 76 61 74 65 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 28 29 2d 3e _private->getResourceManager()->
2cba0 6f 75 74 28 29 29 3b 00 20 20 7d 20 63 61 74 63 68 20 28 55 6e 73 61 66 65 49 6e 74 65 72 72 75 out());...}.catch.(UnsafeInterru
2cbc0 70 74 45 78 63 65 70 74 69 6f 6e 26 20 65 29 20 7b 00 20 20 20 20 72 65 74 75 72 6e 20 72 3b 00 ptException&.e).{.....return.r;.
2cbe0 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 63 68 65 63 6b 55 6e 73 61 .....}.......}.........checkUnsa
2cc00 74 43 6f 72 65 28 29 3b 00 20 20 20 20 20 20 20 20 54 69 6d 65 72 53 74 61 74 3a 3a 43 6f 64 65 tCore();.........TimerStat::Code
2cc20 54 69 6d 65 72 20 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 54 69 6d 65 72 28 64 5f 73 74 61 74 Timer.checkUnsatCoreTimer(d_stat
2cc40 73 2d 3e 64 5f 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 54 69 6d 65 29 3b 00 20 20 20 20 20 20 s->d_checkUnsatCoreTime);.......
2cc60 69 66 28 72 2e 61 73 53 61 74 69 73 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 2e 69 73 if(r.asSatisfiabilityResult().is
2cc80 53 61 74 28 29 20 3d 3d 20 52 65 73 75 6c 74 3a 3a 55 4e 53 41 54 29 20 7b 00 20 20 20 20 69 66 Sat().==.Result::UNSAT).{.....if
2cca0 28 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 73 28 29 29 20 7b 00 20 (options::checkUnsatCores()).{..
2ccc0 20 20 20 2f 2f 20 43 68 65 63 6b 20 74 68 61 74 20 55 4e 53 41 54 20 72 65 73 75 6c 74 73 20 67 ...//.Check.that.UNSAT.results.g
2cce0 65 6e 65 72 61 74 65 20 61 6e 20 75 6e 73 61 74 20 63 6f 72 65 20 63 6f 72 72 65 63 74 6c 79 2e enerate.an.unsat.core.correctly.
2cd00 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 63 68 65 63 6b 50 72 6f 6f .....}.......}.........checkProo
2cd20 66 28 29 3b 00 20 20 20 20 20 20 20 20 54 69 6d 65 72 53 74 61 74 3a 3a 43 6f 64 65 54 69 6d 65 f();.........TimerStat::CodeTime
2cd40 72 20 63 68 65 63 6b 50 72 6f 6f 66 54 69 6d 65 72 28 64 5f 73 74 61 74 73 2d 3e 64 5f 63 68 65 r.checkProofTimer(d_stats->d_che
2cd60 63 6b 50 72 6f 6f 66 54 69 6d 65 29 3b 00 20 20 20 20 20 20 69 66 28 72 2e 61 73 53 61 74 69 73 ckProofTime);.......if(r.asSatis
2cd80 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 2e 69 73 53 61 74 28 29 20 3d 3d 20 52 65 73 fiabilityResult().isSat().==.Res
2cda0 75 6c 74 3a 3a 55 4e 53 41 54 29 20 7b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 63 68 ult::UNSAT).{.....if(options::ch
2cdc0 65 63 6b 50 72 6f 6f 66 73 28 29 29 20 7b 00 20 20 20 20 2f 2f 20 43 68 65 63 6b 20 74 68 61 74 eckProofs()).{.....//.Check.that
2cde0 20 55 4e 53 41 54 20 72 65 73 75 6c 74 73 20 67 65 6e 65 72 61 74 65 20 61 20 70 72 6f 6f 66 20 .UNSAT.results.generate.a.proof.
2ce00 63 6f 72 72 65 63 74 6c 79 2e 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 correctly......}.......}........
2ce20 20 63 68 65 63 6b 4d 6f 64 65 6c 28 2f 2a 20 68 61 72 64 20 66 61 69 6c 75 72 65 20 69 66 66 20 .checkModel(/*.hard.failure.iff.
2ce40 2a 2f 20 21 20 72 2e 69 73 55 6e 6b 6e 6f 77 6e 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 28 72 */.!.r.isUnknown());..........(r
2ce60 2e 69 73 55 6e 6b 6e 6f 77 6e 28 29 20 26 26 20 72 2e 77 68 79 55 6e 6b 6e 6f 77 6e 28 29 20 3d .isUnknown().&&.r.whyUnknown().=
2ce80 3d 20 52 65 73 75 6c 74 3a 3a 49 4e 43 4f 4d 50 4c 45 54 45 29 20 29 7b 00 20 20 20 20 20 20 69 =.Result::INCOMPLETE).){.......i
2cea0 66 28 72 2e 61 73 53 61 74 69 73 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 2e 69 73 53 f(r.asSatisfiabilityResult().isS
2cec0 61 74 28 29 20 3d 3d 20 52 65 73 75 6c 74 3a 3a 53 41 54 20 7c 7c 00 20 20 20 20 69 66 28 6f 70 at().==.Result::SAT.||.....if(op
2cee0 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 73 28 29 29 20 7b 00 20 20 20 20 2f 2f 20 43 tions::checkModels()).{.....//.C
2cf00 68 65 63 6b 20 74 68 61 74 20 53 41 54 20 72 65 73 75 6c 74 73 20 67 65 6e 65 72 61 74 65 20 61 heck.that.SAT.results.generate.a
2cf20 20 6d 6f 64 65 6c 20 63 6f 72 72 65 63 74 6c 79 2e 00 00 20 20 20 20 54 72 61 63 65 28 22 73 6d .model.correctly.......Trace("sm
2cf40 74 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 22 20 3c 3c 20 28 69 73 51 75 65 72 79 t").<<."SmtEngine::".<<.(isQuery
2cf60 20 3f 20 22 71 75 65 72 79 22 20 3a 20 22 63 68 65 63 6b 53 61 74 22 29 20 3c 3c 20 22 28 22 20 .?."query".:."checkSat").<<."(".
2cf80 3c 3c 20 65 20 3c 3c 20 22 29 20 3d 3e 20 22 20 3c 3c 20 72 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 <<.e.<<.").=>.".<<.r.<<.endl;...
2cfa0 20 20 20 64 5f 70 72 6f 62 6c 65 6d 45 78 74 65 6e 64 65 64 20 3d 20 66 61 6c 73 65 3b 00 00 20 ...d_problemExtended.=.false;...
2cfc0 20 20 20 64 5f 73 74 61 74 75 73 20 3d 20 72 3b 00 20 20 20 20 2f 2f 20 52 65 6d 65 6d 62 65 72 ...d_status.=.r;.....//.Remember
2cfe0 20 74 68 65 20 73 74 61 74 75 73 00 00 20 20 20 20 69 6e 74 65 72 6e 61 6c 50 6f 70 28 29 3b 00 .the.status......internalPop();.
2d000 61 64 00 00 1f 00 00 00 97 01 00 00 00 10 00 00 57 00 00 00 00 00 00 00 a8 0f 00 00 9e 0f 00 00 ad..............W...............
2d020 35 0f 00 00 fe 0e 00 00 65 0e 00 00 46 0e 00 00 e0 0d 00 00 d6 0d 00 00 9e 0d 00 00 2e 0d 00 00 5.......e...F...................
2d040 0a 0d 00 00 66 0c 00 00 65 0c 00 00 03 0c 00 00 a2 0b 00 00 60 0b 00 00 5f 0b 00 00 31 0b 00 00 ....f...e...........`..._...1...
2d060 ff 0a 00 00 a1 0a 00 00 80 0a 00 00 eb 09 00 00 e1 09 00 00 b5 09 00 00 54 09 00 00 f9 08 00 00 ........................T.......
2d080 d4 08 00 00 cc 08 00 00 c6 08 00 00 c2 08 00 00 c1 08 00 00 8b 08 00 00 89 08 00 00 88 08 00 00 ................................
2d0a0 fd 07 00 00 cd 07 00 00 b6 07 00 00 9e 07 00 00 8b 07 00 00 8a 07 00 00 46 07 00 00 45 07 00 00 ........................F...E...
2d0c0 21 07 00 00 f1 06 00 00 ed 06 00 00 ec 06 00 00 be 06 00 00 71 06 00 00 70 06 00 00 5c 06 00 00 !...................q...p...\...
2d0e0 3c 06 00 00 19 06 00 00 15 06 00 00 e2 05 00 00 b8 05 00 00 96 05 00 00 95 05 00 00 4e 05 00 00 <...........................N...
2d100 3f 05 00 00 3d 05 00 00 3c 05 00 00 ca 04 00 00 9a 04 00 00 83 04 00 00 6b 04 00 00 58 04 00 00 ?...=...<...............k...X...
2d120 20 04 00 00 1f 04 00 00 00 04 00 00 d2 03 00 00 ce 03 00 00 cd 03 00 00 80 03 00 00 5e 03 00 00 ............................^...
2d140 1c 03 00 00 18 03 00 00 17 03 00 00 ee 02 00 00 cc 02 00 00 99 02 00 00 62 02 00 00 4d 02 00 00 ........................b...M...
2d160 4b 02 00 00 4a 02 00 00 cf 01 00 00 98 01 00 00 97 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 K...J...........................
2d180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 64 5f 70 72 69 76 ..........................d_priv
2d1a0 61 74 65 2d 3e 73 70 65 6e 64 52 65 73 6f 75 72 63 65 28 6f 70 74 69 6f 6e 73 3a 3a 70 72 65 70 ate->spendResource(options::prep
2d1c0 72 6f 63 65 73 73 53 74 65 70 28 29 29 3b 00 45 78 70 72 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 65 rocessStep());.Expr.SmtEngine::e
2d1e0 78 70 61 6e 64 44 65 66 69 6e 69 74 69 6f 6e 73 28 63 6f 6e 73 74 20 45 78 70 72 26 20 65 78 29 xpandDefinitions(const.Expr&.ex)
2d200 20 74 68 72 6f 77 28 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f .throw(TypeCheckingException,.Lo
2d220 67 69 63 45 78 63 65 70 74 69 6f 6e 2c 20 55 6e 73 61 66 65 49 6e 74 65 72 72 75 70 74 45 78 63 gicException,.UnsafeInterruptExc
2d240 65 70 74 69 6f 6e 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 6e 2e 74 6f 45 78 70 72 28 29 eption).{..}...return.n.toExpr()
2d260 3b 00 20 20 6e 20 3d 20 70 6f 73 74 70 72 6f 63 65 73 73 28 6e 2c 20 54 79 70 65 4e 6f 64 65 3a ;...n.=.postprocess(n,.TypeNode:
2d280 3a 66 72 6f 6d 54 79 70 65 28 65 2e 67 65 74 54 79 70 65 28 29 29 29 3b 00 20 20 4e 6f 64 65 20 :fromType(e.getType()));...Node.
2d2a0 6e 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 73 69 6d 70 6c 69 66 79 28 4e 6f 64 65 3a 3a 66 72 n.=.d_private->simplify(Node::fr
2d2c0 6f 6d 45 78 70 72 28 65 29 29 3b 00 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 70 72 6f 63 65 73 73 omExpr(e));...d_private->process
2d2e0 41 73 73 65 72 74 69 6f 6e 73 28 29 3b 00 20 20 2f 2f 20 4d 61 6b 65 20 73 75 72 65 20 61 6c 6c Assertions();...//.Make.sure.all
2d300 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 20 69 73 20 64 6f 6e 65 00 00 20 20 7d 00 20 20 20 20 .preprocessing.is.done....}.....
2d320 65 2e 67 65 74 54 79 70 65 28 74 72 75 65 29 3b 20 2f 2f 20 65 6e 73 75 72 65 20 65 78 70 72 20 e.getType(true);.//.ensure.expr.
2d340 69 73 20 74 79 70 65 2d 63 68 65 63 6b 65 64 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 00 20 20 is.type-checked.at.this.point...
2d360 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 74 79 70 65 43 68 65 63 6b 69 6e 67 28 29 20 29 20 7b 00 if(.options::typeChecking().).{.
2d380 20 20 45 78 70 72 20 65 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 73 75 62 73 74 69 74 75 74 65 ..Expr.e.=.d_private->substitute
2d3a0 41 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 65 78 AbstractValues(Node::fromExpr(ex
2d3c0 29 29 2e 74 6f 45 78 70 72 28 29 3b 00 00 20 20 7d 00 20 20 20 20 44 75 6d 70 28 22 62 65 6e 63 )).toExpr();....}.....Dump("benc
2d3e0 68 6d 61 72 6b 22 29 20 3c 3c 20 53 69 6d 70 6c 69 66 79 43 6f 6d 6d 61 6e 64 28 65 78 29 3b 00 hmark").<<.SimplifyCommand(ex);.
2d400 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 29 20 7b 00 00 ..if(Dump.isOn("benchmark")).{..
2d420 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 73 69 6d 70 6c 69 66 79 28 ..Trace("smt").<<."SMT.simplify(
2d440 22 20 3c 3c 20 65 78 20 3c 3c 20 22 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 64 6f 50 65 6e 64 ".<<.ex.<<.")".<<.endl;...doPend
2d460 69 6e 67 50 6f 70 73 28 29 3b 00 20 20 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 ingPops();...finalOptionsAreSet(
2d480 29 3b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 20 20 41 73 73 65 );...SmtScope.smts(this);...Asse
2d4a0 72 74 28 65 78 2e 67 65 74 45 78 70 72 4d 61 6e 61 67 65 72 28 29 20 3d 3d 20 64 5f 65 78 70 72 rt(ex.getExprManager().==.d_expr
2d4c0 4d 61 6e 61 67 65 72 29 3b 00 45 78 70 72 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 69 6d 70 6c 69 Manager);.Expr.SmtEngine::simpli
2d4e0 66 79 28 63 6f 6e 73 74 20 45 78 70 72 26 20 65 78 29 20 74 68 72 6f 77 28 54 79 70 65 43 68 65 fy(const.Expr&.ex).throw(TypeChe
2d500 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 2c 20 ckingException,.LogicException,.
2d520 55 6e 73 61 66 65 49 6e 74 65 72 72 75 70 74 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 00 7d 00 20 UnsafeInterruptException).{..}..
2d540 20 72 65 74 75 72 6e 20 6e 6f 64 65 3b 00 4e 6f 64 65 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 70 6f .return.node;.Node.SmtEngine::po
2d560 73 74 70 72 6f 63 65 73 73 28 54 4e 6f 64 65 20 6e 6f 64 65 2c 20 54 79 70 65 4e 6f 64 65 20 65 stprocess(TNode.node,.TypeNode.e
2d580 78 70 65 63 74 65 64 54 79 70 65 29 20 63 6f 6e 73 74 20 7b 00 00 7d 2f 2a 20 53 6d 74 45 6e 67 xpectedType).const.{..}/*.SmtEng
2d5a0 69 6e 65 3a 3a 61 73 73 65 72 74 46 6f 72 6d 75 6c 61 28 29 20 2a 2f 00 20 20 72 65 74 75 72 6e ine::assertFormula().*/...return
2d5c0 20 71 75 69 63 6b 43 68 65 63 6b 28 29 2e 61 73 56 61 6c 69 64 69 74 79 52 65 73 75 6c 74 28 29 .quickCheck().asValidityResult()
2d5e0 3b 00 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 61 64 64 46 6f 72 6d 75 6c 61 28 65 2e 67 65 74 4e ;...d_private->addFormula(e.getN
2d600 6f 64 65 28 29 2c 20 69 6e 55 6e 73 61 74 43 6f 72 65 29 3b 00 20 20 7d 00 20 20 20 20 64 5f 61 ode(),.inUnsatCore);...}.....d_a
2d620 73 73 65 72 74 69 6f 6e 4c 69 73 74 2d 3e 70 75 73 68 5f 62 61 63 6b 28 65 29 3b 00 20 20 69 66 ssertionList->push_back(e);...if
2d640 28 64 5f 61 73 73 65 72 74 69 6f 6e 4c 69 73 74 20 21 3d 20 4e 55 4c 4c 29 20 7b 00 20 20 65 6e (d_assertionList.!=.NULL).{...en
2d660 73 75 72 65 42 6f 6f 6c 65 61 6e 28 65 29 3b 00 00 20 20 45 78 70 72 20 65 20 3d 20 64 5f 70 72 sureBoolean(e);....Expr.e.=.d_pr
2d680 69 76 61 74 65 2d 3e 73 75 62 73 74 69 74 75 74 65 41 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 ivate->substituteAbstractValues(
2d6a0 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 65 78 29 29 2e 74 6f 45 78 70 72 28 29 3b 00 20 20 Node::fromExpr(ex)).toExpr();...
2d6c0 2f 2f 20 53 75 62 73 74 69 74 75 74 65 20 6f 75 74 20 61 6e 79 20 61 62 73 74 72 61 63 74 20 76 //.Substitute.out.any.abstract.v
2d6e0 61 6c 75 65 73 20 69 6e 20 65 78 00 00 20 20 7d 00 20 20 20 20 44 75 6d 70 28 22 72 61 77 2d 62 alues.in.ex....}.....Dump("raw-b
2d700 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 41 73 73 65 72 74 43 6f 6d 6d 61 6e 64 28 65 78 29 3b enchmark").<<.AssertCommand(ex);
2d720 00 20 20 69 66 20 28 44 75 6d 70 2e 69 73 4f 6e 28 22 72 61 77 2d 62 65 6e 63 68 6d 61 72 6b 22 ...if.(Dump.isOn("raw-benchmark"
2d740 29 29 20 7b 00 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 )).{....Trace("smt").<<."SmtEngi
2d760 6e 65 3a 3a 61 73 73 65 72 74 46 6f 72 6d 75 6c 61 28 22 20 3c 3c 20 65 78 20 3c 3c 20 22 29 22 ne::assertFormula(".<<.ex.<<.")"
2d780 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 64 6f 50 65 6e 64 69 6e 67 50 6f 70 73 28 29 3b 00 20 20 .<<.endl;....doPendingPops();...
2d7a0 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 29 3b 00 20 20 53 6d 74 53 63 6f 70 65 finalOptionsAreSet();...SmtScope
2d7c0 20 73 6d 74 73 28 74 68 69 73 29 3b 00 20 20 41 73 73 65 72 74 28 65 78 2e 67 65 74 45 78 70 72 .smts(this);...Assert(ex.getExpr
2d7e0 4d 61 6e 61 67 65 72 28 29 20 3d 3d 20 64 5f 65 78 70 72 4d 61 6e 61 67 65 72 29 3b 00 52 65 73 Manager().==.d_exprManager);.Res
2d800 75 6c 74 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 61 73 73 65 72 74 46 6f 72 6d 75 6c 61 28 63 6f 6e ult.SmtEngine::assertFormula(con
2d820 73 74 20 45 78 70 72 26 20 65 78 2c 20 62 6f 6f 6c 20 69 6e 55 6e 73 61 74 43 6f 72 65 29 20 74 st.Expr&.ex,.bool.inUnsatCore).t
2d840 68 72 6f 77 28 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 69 hrow(TypeCheckingException,.Logi
2d860 63 45 78 63 65 70 74 69 6f 6e 2c 20 55 6e 73 61 66 65 49 6e 74 65 72 72 75 70 74 45 78 63 65 70 cException,.UnsafeInterruptExcep
2d880 74 69 6f 6e 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 63 68 65 63 6b 53 61 74 69 73 66 69 tion).{..}...return.checkSatisfi
2d8a0 61 62 69 6c 69 74 79 28 20 65 5f 63 68 65 63 6b 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 20 29 3b ability(.e_check,.true,.false.);
2d8c0 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 65 5f 63 68 ....}.....}.......}.........e_ch
2d8e0 65 63 6b 20 3d 20 71 65 5f 72 65 73 5f 6e 2e 74 6f 45 78 70 72 28 29 3b 00 20 20 20 20 20 20 20 eck.=.qe_res_n.toExpr();........
2d900 20 54 72 61 63 65 28 22 73 6d 74 2d 73 79 6e 74 68 22 29 20 3c 3c 20 22 43 6f 6e 76 65 72 74 65 .Trace("smt-synth").<<."Converte
2d920 64 20 63 6f 6e 6a 65 63 74 75 72 65 20 61 66 74 65 72 20 51 45 20 3a 20 22 20 3c 3c 20 71 65 5f d.conjecture.after.QE.:.".<<.qe_
2d940 72 65 73 5f 6e 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 71 65 5f 72 res_n.<<.std::endl;.........qe_r
2d960 65 73 5f 6e 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d es_n.=.NodeManager::currentNM()-
2d980 3e 6d 6b 4e 6f 64 65 28 20 6b 69 6e 64 3a 3a 46 4f 52 41 4c 4c 2c 20 63 6f 6e 6a 5b 30 5d 2c 20 >mkNode(.kind::FORALL,.conj[0],.
2d9a0 71 65 5f 72 65 73 5f 6e 2c 20 63 6f 6e 6a 5b 32 5d 20 29 3b 00 20 20 20 20 20 20 20 20 41 73 73 qe_res_n,.conj[2].);.........Ass
2d9c0 65 72 74 28 20 63 6f 6e 6a 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 3d 3d 33 20 29 3b ert(.conj.getNumChildren()==3.);
2d9e0 00 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 71 65 5f 72 65 73 5f 6e 20 3d 20 .........}...........qe_res_n.=.
2da00 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 NodeManager::currentNM()->mkNode
2da20 28 20 6b 69 6e 64 3a 3a 45 58 49 53 54 53 2c 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 (.kind::EXISTS,.NodeManager::cur
2da40 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 28 20 6b 69 6e 64 3a 3a 42 4f 55 4e 44 5f 56 41 rentNM()->mkNode(.kind::BOUND_VA
2da60 52 5f 4c 49 53 54 2c 20 6e 71 65 5f 76 61 72 73 20 29 2c 20 71 65 5f 72 65 73 5f 6e 20 29 3b 00 R_LIST,.nqe_vars.),.qe_res_n.);.
2da80 20 20 20 20 20 20 20 20 69 66 28 20 21 6e 71 65 5f 76 61 72 73 2e 65 6d 70 74 79 28 29 20 29 7b ........if(.!nqe_vars.empty().){
2daa0 00 20 20 20 20 20 20 20 20 71 65 5f 72 65 73 5f 6e 20 3d 20 71 65 5f 72 65 73 5f 6e 2e 73 75 62 .........qe_res_n.=.qe_res_n.sub
2dac0 73 74 69 74 75 74 65 28 20 73 75 62 73 2e 62 65 67 69 6e 28 29 2c 20 73 75 62 73 2e 65 6e 64 28 stitute(.subs.begin(),.subs.end(
2dae0 29 2c 20 6f 72 69 67 2e 62 65 67 69 6e 28 29 2c 20 6f 72 69 67 2e 65 6e 64 28 29 20 29 3b 00 20 ),.orig.begin(),.orig.end().);..
2db00 20 20 20 20 20 20 20 4e 6f 64 65 20 71 65 5f 72 65 73 5f 6e 20 3d 20 4e 6f 64 65 3a 3a 66 72 6f .......Node.qe_res_n.=.Node::fro
2db20 6d 45 78 70 72 28 20 71 65 5f 72 65 73 20 29 3b 00 20 20 20 20 20 20 20 20 2f 2f 63 72 65 61 74 mExpr(.qe_res.);.........//creat
2db40 65 20 73 69 6e 67 6c 65 20 69 6e 76 6f 63 61 74 69 6f 6e 20 63 6f 6e 6a 65 63 74 75 72 65 00 00 e.single.invocation.conjecture..
2db60 20 20 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d 73 79 6e 74 68 22 29 20 3c 3c 20 22 52 ........Trace("smt-synth").<<."R
2db80 65 73 75 6c 74 20 3a 20 22 20 3c 3c 20 71 65 5f 72 65 73 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c esult.:.".<<.qe_res.<<.std::endl
2dba0 3b 00 20 20 20 20 20 20 20 20 45 78 70 72 20 71 65 5f 72 65 73 20 3d 20 73 6d 74 5f 71 65 2e 64 ;.........Expr.qe_res.=.smt_qe.d
2dbc0 6f 51 75 61 6e 74 69 66 69 65 72 45 6c 69 6d 69 6e 61 74 69 6f 6e 28 20 63 6f 6e 6a 5f 73 65 5f oQuantifierElimination(.conj_se_
2dbe0 6e 67 73 69 5f 73 75 62 73 2e 74 6f 45 78 70 72 28 29 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 20 ngsi_subs.toExpr(),.true,.false.
2dc00 29 3b 00 20 20 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d 73 79 6e 74 68 22 29 20 3c 3c );.........Trace("smt-synth").<<
2dc20 20 22 52 75 6e 20 71 75 61 6e 74 69 66 69 65 72 20 65 6c 69 6d 69 6e 61 74 69 6f 6e 20 6f 6e 20 ."Run.quantifier.elimination.on.
2dc40 22 20 3c 3c 20 63 6f 6e 6a 5f 73 65 5f 6e 67 73 69 5f 73 75 62 73 20 3c 3c 20 73 74 64 3a 3a 65 ".<<.conj_se_ngsi_subs.<<.std::e
2dc60 6e 64 6c 3b 00 00 20 20 20 20 20 20 20 20 63 6f 6e 6a 5f 73 65 5f 6e 67 73 69 5f 73 75 62 73 20 ndl;..........conj_se_ngsi_subs.
2dc80 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f =.NodeManager::currentNM()->mkNo
2dca0 64 65 28 20 6b 69 6e 64 3a 3a 45 58 49 53 54 53 2c 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 de(.kind::EXISTS,.NodeManager::c
2dcc0 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 28 20 6b 69 6e 64 3a 3a 42 4f 55 4e 44 5f urrentNM()->mkNode(.kind::BOUND_
2dce0 56 41 52 5f 4c 49 53 54 2c 20 71 65 5f 76 61 72 73 20 29 2c 20 63 6f 6e 6a 5f 73 65 5f 6e 67 73 VAR_LIST,.qe_vars.),.conj_se_ngs
2dd00 69 5f 73 75 62 73 20 29 3b 00 20 20 20 20 20 20 20 20 41 73 73 65 72 74 28 20 21 71 65 5f 76 61 i_subs.);.........Assert(.!qe_va
2dd20 72 73 2e 65 6d 70 74 79 28 29 20 29 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 63 6f 6e 6a 5f rs.empty().);.........Node.conj_
2dd40 73 65 5f 6e 67 73 69 5f 73 75 62 73 20 3d 20 63 6f 6e 6a 5f 73 65 5f 6e 67 73 69 2e 73 75 62 73 se_ngsi_subs.=.conj_se_ngsi.subs
2dd60 74 69 74 75 74 65 28 20 6f 72 69 67 2e 62 65 67 69 6e 28 29 2c 20 6f 72 69 67 2e 65 6e 64 28 29 titute(.orig.begin(),.orig.end()
2dd80 2c 20 73 75 62 73 2e 62 65 67 69 6e 28 29 2c 20 73 75 62 73 2e 65 6e 64 28 29 20 29 3b 00 20 20 ,.subs.begin(),.subs.end().);...
2dda0 20 20 20 20 20 20 4e 6f 64 65 20 63 6f 6e 6a 5f 73 65 5f 6e 67 73 69 20 3d 20 73 69 70 2e 67 65 ......Node.conj_se_ngsi.=.sip.ge
2ddc0 74 46 75 6c 6c 53 70 65 63 69 66 69 63 61 74 69 6f 6e 28 29 3b 00 20 20 20 20 20 20 20 20 7d 00 tFullSpecification();.........}.
2dde0 20 20 20 20 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d 73 79 6e 74 68 22 29 20 3c 3c 20 ..........Trace("smt-synth").<<.
2de00 22 20 20 73 75 62 73 20 3a 20 22 20 3c 3c 20 73 69 70 2e 64 5f 66 75 6e 63 5f 69 6e 76 5b 69 74 "..subs.:.".<<.sip.d_func_inv[it
2de20 2d 3e 66 69 72 73 74 5d 20 3c 3c 20 22 20 2d 3e 20 22 20 3c 3c 20 6b 20 3c 3c 20 73 74 64 3a 3a ->first].<<.".->.".<<.k.<<.std::
2de40 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 73 75 62 73 2e 70 75 73 68 5f 62 61 63 6b 28 20 endl;...........subs.push_back(.
2de60 6b 20 29 3b 00 20 20 20 20 20 20 20 20 20 20 4e 6f 64 65 20 6b 20 3d 20 4e 6f 64 65 4d 61 6e 61 k.);...........Node.k.=.NodeMana
2de80 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 53 6b 6f 6c 65 6d 28 20 22 6b 22 2c ger::currentNM()->mkSkolem(."k",
2dea0 20 73 69 70 2e 64 5f 66 75 6e 63 5f 66 6f 5f 76 61 72 5b 69 74 2d 3e 66 69 72 73 74 5d 2e 67 65 .sip.d_func_fo_var[it->first].ge
2dec0 74 54 79 70 65 28 29 2c 20 22 71 65 20 66 6f 72 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 6e 6f 6e tType(),."qe.for.function.in.non
2dee0 2d 67 72 6f 75 6e 64 20 73 69 6e 67 6c 65 20 69 6e 76 6f 63 61 74 69 6f 6e 22 20 29 3b 00 20 20 -ground.single.invocation".);...
2df00 20 20 20 20 20 20 20 20 6f 72 69 67 2e 70 75 73 68 5f 62 61 63 6b 28 20 73 69 70 2e 64 5f 66 75 ........orig.push_back(.sip.d_fu
2df20 6e 63 5f 69 6e 76 5b 69 74 2d 3e 66 69 72 73 74 5d 20 29 3b 00 20 20 20 20 20 20 20 20 66 6f 72 nc_inv[it->first].);.........for
2df40 28 20 73 74 64 3a 3a 6d 61 70 3c 20 4e 6f 64 65 2c 20 62 6f 6f 6c 20 3e 3a 3a 69 74 65 72 61 74 (.std::map<.Node,.bool.>::iterat
2df60 6f 72 20 69 74 20 3d 20 73 69 70 2e 64 5f 66 75 6e 63 73 2e 62 65 67 69 6e 28 29 3b 20 69 74 20 or.it.=.sip.d_funcs.begin();.it.
2df80 21 3d 20 73 69 70 2e 64 5f 66 75 6e 63 73 2e 65 6e 64 28 29 3b 20 2b 2b 69 74 20 29 7b 00 20 20 !=.sip.d_funcs.end();.++it.){...
2dfa0 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d 73 79 6e ......}...........Trace("smt-syn
2dfc0 74 68 22 29 20 3c 3c 20 22 20 20 73 75 62 73 20 3a 20 22 20 3c 3c 20 6e 71 65 5f 76 61 72 73 5b th").<<."..subs.:.".<<.nqe_vars[
2dfe0 69 5d 20 3c 3c 20 22 20 2d 3e 20 22 20 3c 3c 20 6b 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 i].<<.".->.".<<.k.<<.std::endl;.
2e000 61 64 00 00 29 00 00 00 dd 01 00 00 00 10 00 00 66 00 00 00 00 00 00 00 d0 0f 00 00 b9 0f 00 00 ad..)...........f...............
2e020 a1 0f 00 00 8e 0f 00 00 4d 0f 00 00 4c 0f 00 00 1d 0f 00 00 d0 0e 00 00 b0 0e 00 00 7e 0e 00 00 ........M...L...............~...
2e040 69 0e 00 00 65 0e 00 00 46 0e 00 00 10 0e 00 00 0c 0e 00 00 dc 0d 00 00 80 0d 00 00 49 0d 00 00 i...e...F...................I...
2e060 48 0d 00 00 33 0d 00 00 31 0d 00 00 30 0d 00 00 a8 0c 00 00 78 0c 00 00 61 0c 00 00 60 0c 00 00 H...3...1...0.......x...a...`...
2e080 28 0c 00 00 09 0c 00 00 db 0b 00 00 d7 0b 00 00 d6 0b 00 00 b4 0b 00 00 9e 0b 00 00 60 0b 00 00 (...........................`...
2e0a0 41 0b 00 00 3d 0b 00 00 23 0b 00 00 e8 0a 00 00 ce 0a 00 00 b8 0a 00 00 5e 0a 00 00 3f 0a 00 00 A...=...#...............^...?...
2e0c0 3b 0a 00 00 3a 0a 00 00 0b 0a 00 00 be 09 00 00 bd 09 00 00 8d 09 00 00 67 09 00 00 66 09 00 00 ;...:...................g...f...
2e0e0 1c 09 00 00 05 09 00 00 04 09 00 00 e6 08 00 00 ae 08 00 00 87 08 00 00 86 08 00 00 6a 08 00 00 ............................j...
2e100 3a 08 00 00 0c 08 00 00 c0 07 00 00 79 07 00 00 31 07 00 00 e7 06 00 00 9d 06 00 00 9c 06 00 00 :...........y...1...............
2e120 87 06 00 00 65 06 00 00 47 06 00 00 43 06 00 00 42 06 00 00 0a 06 00 00 db 05 00 00 c8 05 00 00 ....e...G...C...B...............
2e140 b6 05 00 00 95 05 00 00 91 05 00 00 49 05 00 00 13 05 00 00 cf 04 00 00 81 04 00 00 3b 04 00 00 ............I...............;...
2e160 3a 04 00 00 18 04 00 00 c8 03 00 00 9e 03 00 00 9d 03 00 00 81 03 00 00 39 03 00 00 38 03 00 00 :.......................9...8...
2e180 f4 02 00 00 bb 02 00 00 77 02 00 00 73 02 00 00 72 02 00 00 54 02 00 00 52 02 00 00 51 02 00 00 ........w...s...r...T...R...Q...
2e1a0 1f 02 00 00 08 02 00 00 f0 01 00 00 dd 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 64 ...............................d
2e1e0 6f 50 65 6e 64 69 6e 67 50 6f 70 73 28 29 3b 00 20 20 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 oPendingPops();...finalOptionsAr
2e200 65 53 65 74 28 29 3b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 62 eSet();...SmtScope.smts(this);.b
2e220 6f 6f 6c 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 61 64 64 54 6f 41 73 73 69 67 6e 6d 65 6e 74 28 63 ool.SmtEngine::addToAssignment(c
2e240 6f 6e 73 74 20 45 78 70 72 26 20 65 78 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 72 65 73 onst.Expr&.ex).{..}...return.res
2e260 75 6c 74 4e 6f 64 65 2e 74 6f 45 78 70 72 28 29 3b 00 00 20 20 7d 00 20 20 20 20 54 72 61 63 65 ultNode.toExpr();....}.....Trace
2e280 28 22 73 6d 74 22 29 20 3c 3c 20 22 2d 2d 2d 20 61 62 73 74 72 61 63 74 20 76 61 6c 75 65 20 3e ("smt").<<."---.abstract.value.>
2e2a0 3e 20 22 20 3c 3c 20 72 65 73 75 6c 74 4e 6f 64 65 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 72 >.".<<.resultNode.<<.endl;.....r
2e2c0 65 73 75 6c 74 4e 6f 64 65 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 6d 6b 41 62 73 74 72 61 63 esultNode.=.d_private->mkAbstrac
2e2e0 74 56 61 6c 75 65 28 72 65 73 75 6c 74 4e 6f 64 65 29 3b 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 tValue(resultNode);...if(options
2e300 3a 3a 61 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 29 20 26 26 20 72 65 73 75 6c 74 4e 6f 64 65 ::abstractValues().&&.resultNode
2e320 2e 67 65 74 54 79 70 65 28 29 2e 69 73 41 72 72 61 79 28 29 29 20 7b 00 00 20 20 41 73 73 65 72 .getType().isArray()).{....Asser
2e340 74 28 72 65 73 75 6c 74 4e 6f 64 65 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a t(resultNode.getKind().==.kind::
2e360 4c 41 4d 42 44 41 20 7c 7c 20 72 65 73 75 6c 74 4e 6f 64 65 2e 69 73 43 6f 6e 73 74 28 29 29 3b LAMBDA.||.resultNode.isConst());
2e380 00 20 20 2f 2f 20 65 6e 73 75 72 65 20 69 74 27 73 20 61 20 63 6f 6e 73 74 61 6e 74 00 00 20 20 ...//.ensure.it's.a.constant....
2e3a0 20 20 20 20 20 20 20 22 52 75 6e 20 77 69 74 68 20 2d 74 20 73 6d 74 20 66 6f 72 20 64 65 74 61 ......."Run.with.-t.smt.for.deta
2e3c0 69 6c 73 2e 22 29 3b 00 20 20 41 73 73 65 72 74 28 72 65 73 75 6c 74 4e 6f 64 65 2e 69 73 4e 75 ils.");...Assert(resultNode.isNu
2e3e0 6c 6c 28 29 20 7c 7c 20 72 65 73 75 6c 74 4e 6f 64 65 2e 67 65 74 54 79 70 65 28 29 2e 69 73 53 ll().||.resultNode.getType().isS
2e400 75 62 74 79 70 65 4f 66 28 65 78 70 65 63 74 65 64 54 79 70 65 29 2c 00 20 20 2f 2f 20 74 79 70 ubtypeOf(expectedType),...//.typ
2e420 65 2d 63 68 65 63 6b 20 74 68 65 20 72 65 73 75 6c 74 20 77 65 20 67 6f 74 00 00 20 20 54 72 61 e-check.the.result.we.got....Tra
2e440 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 2d 2d 2d 20 6d 6f 64 65 6c 2d 70 6f 73 74 20 65 78 70 ce("smt").<<."---.model-post.exp
2e460 65 63 74 65 64 20 22 20 3c 3c 20 65 78 70 65 63 74 65 64 54 79 70 65 20 3c 3c 20 65 6e 64 6c 3b ected.".<<.expectedType.<<.endl;
2e480 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 2d 2d 2d 20 6d 6f 64 65 6c 2d 70 6f ...Trace("smt").<<."---.model-po
2e4a0 73 74 20 72 65 74 75 72 6e 65 64 20 22 20 3c 3c 20 72 65 73 75 6c 74 4e 6f 64 65 2e 67 65 74 54 st.returned.".<<.resultNode.getT
2e4c0 79 70 65 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c ype().<<.endl;...Trace("smt").<<
2e4e0 20 22 2d 2d 2d 20 6d 6f 64 65 6c 2d 70 6f 73 74 20 72 65 74 75 72 6e 65 64 20 22 20 3c 3c 20 72 ."---.model-post.returned.".<<.r
2e500 65 73 75 6c 74 4e 6f 64 65 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 72 65 73 75 6c 74 4e 6f 64 65 20 esultNode.<<.endl;...resultNode.
2e520 3d 20 70 6f 73 74 70 72 6f 63 65 73 73 28 72 65 73 75 6c 74 4e 6f 64 65 2c 20 65 78 70 65 63 74 =.postprocess(resultNode,.expect
2e540 65 64 54 79 70 65 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 2d 2d 2d 20 edType);...Trace("smt").<<."---.
2e560 67 6f 74 20 76 61 6c 75 65 20 22 20 3c 3c 20 6e 20 3c 3c 20 22 20 3d 20 22 20 3c 3c 20 72 65 73 got.value.".<<.n.<<.".=.".<<.res
2e580 75 6c 74 4e 6f 64 65 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7d 00 20 20 20 20 72 65 73 75 6c 74 4e ultNode.<<.endl;...}.....resultN
2e5a0 6f 64 65 20 3d 20 6d 2d 3e 67 65 74 56 61 6c 75 65 28 6e 29 3b 00 20 20 69 66 28 6d 20 21 3d 20 ode.=.m->getValue(n);...if(m.!=.
2e5c0 4e 55 4c 4c 29 20 7b 00 20 20 4e 6f 64 65 20 72 65 73 75 6c 74 4e 6f 64 65 3b 00 20 20 54 68 65 NULL).{...Node.resultNode;...The
2e5e0 6f 72 79 4d 6f 64 65 6c 2a 20 6d 20 3d 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 67 65 oryModel*.m.=.d_theoryEngine->ge
2e600 74 4d 6f 64 65 6c 28 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 2d 2d 2d tModel();...Trace("smt").<<."---
2e620 20 67 65 74 74 69 6e 67 20 76 61 6c 75 65 20 6f 66 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c .getting.value.of.".<<.n.<<.endl
2e640 3b 00 00 20 20 7d 00 20 20 20 20 6e 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 ;....}.....n.=.Rewriter::rewrite
2e660 28 6e 29 3b 00 20 20 69 66 28 21 6e 2e 67 65 74 54 79 70 65 28 29 2e 69 73 46 75 6e 63 74 69 6f (n);...if(!n.getType().isFunctio
2e680 6e 28 29 29 20 7b 00 20 20 2f 2f 41 4a 52 20 3a 20 6e 65 63 65 73 73 61 72 79 3f 00 00 20 20 2f n()).{...//AJR.:.necessary?..../
2e6a0 2f 20 69 73 20 74 6f 20 66 69 78 20 62 75 67 20 35 35 34 20 75 6e 74 69 6c 20 77 65 20 63 61 6e /.is.to.fix.bug.554.until.we.can
2e6c0 20 72 65 76 61 6d 70 20 62 6f 6f 6c 65 61 6e 2d 74 65 72 6d 73 20 61 6e 64 20 6d 6f 64 65 6c 73 .revamp.boolean-terms.and.models
2e6e0 20 5b 4d 47 44 5d 00 20 20 2f 2f 20 74 77 6f 20 61 72 65 20 64 69 66 66 65 72 65 6e 74 2c 20 62 .[MGD]...//.two.are.different,.b
2e700 75 74 20 74 68 65 79 20 6e 65 65 64 20 74 6f 20 62 65 20 75 6e 69 66 69 65 64 2e 20 20 54 68 69 ut.they.need.to.be.unified...Thi
2e720 73 20 75 67 6c 79 20 68 61 63 6b 20 68 65 72 65 00 20 20 2f 2f 20 75 73 65 64 20 62 79 20 74 68 s.ugly.hack.here...//.used.by.th
2e740 65 20 4d 6f 64 65 6c 20 63 6c 61 73 73 65 73 2e 20 20 49 74 27 73 20 6e 6f 74 20 63 6c 65 61 72 e.Model.classes...It's.not.clear
2e760 20 74 6f 20 6d 65 20 65 78 61 63 74 6c 79 20 68 6f 77 20 74 68 65 73 65 00 20 20 2f 2f 20 72 65 .to.me.exactly.how.these...//.re
2e780 61 73 6f 6e 73 29 2e 20 20 4f 6e 65 20 77 61 79 20 69 73 20 74 68 61 74 20 75 73 65 64 20 69 6e asons)...One.way.is.that.used.in
2e7a0 20 63 68 65 63 6b 2d 6d 6f 64 65 6c 3b 20 74 68 65 20 6f 74 68 65 72 20 69 73 20 74 68 61 74 00 .check-model;.the.other.is.that.
2e7c0 20 20 2f 2f 20 54 68 65 72 65 20 61 72 65 20 74 77 6f 20 77 61 79 73 20 6d 6f 64 65 6c 20 76 61 ..//.There.are.two.ways.model.va
2e7e0 6c 75 65 73 20 66 6f 72 20 74 65 72 6d 73 20 61 72 65 20 63 6f 6d 70 75 74 65 64 20 28 66 6f 72 lues.for.terms.are.computed.(for
2e800 20 68 69 73 74 6f 72 69 63 61 6c 00 20 20 6e 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 65 78 70 .historical...n.=.d_private->exp
2e820 61 6e 64 44 65 66 69 6e 69 74 69 6f 6e 73 28 6e 2c 20 63 61 63 68 65 29 3b 00 20 20 68 61 73 68 andDefinitions(n,.cache);...hash
2e840 5f 6d 61 70 3c 4e 6f 64 65 2c 20 4e 6f 64 65 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f _map<Node,.Node,.NodeHashFunctio
2e860 6e 3e 20 63 61 63 68 65 3b 00 20 20 2f 2f 20 45 78 70 61 6e 64 2c 20 74 68 65 6e 20 6e 6f 72 6d n>.cache;...//.Expand,.then.norm
2e880 61 6c 69 7a 65 00 00 20 20 54 79 70 65 4e 6f 64 65 20 65 78 70 65 63 74 65 64 54 79 70 65 20 3d alize....TypeNode.expectedType.=
2e8a0 20 6e 2e 67 65 74 54 79 70 65 28 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 .n.getType();...Trace("smt").<<.
2e8c0 22 2d 2d 2d 20 67 65 74 74 69 6e 67 20 76 61 6c 75 65 20 6f 66 20 22 20 3c 3c 20 6e 20 3c 3c 20 "---.getting.value.of.".<<.n.<<.
2e8e0 65 6e 64 6c 3b 00 20 20 4e 6f 64 65 20 6e 20 3d 20 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 endl;...Node.n.=.Node::fromExpr(
2e900 65 29 3b 00 00 20 20 2f 2f 20 69 6e 20 6d 6f 64 65 6c 20 61 6c 72 65 61 64 79 29 00 20 20 2f 2f e);....//.in.model.already)...//
2e920 20 64 6f 20 6e 6f 74 20 6e 65 65 64 20 74 6f 20 61 70 70 6c 79 20 70 72 65 70 72 6f 63 65 73 73 .do.not.need.to.apply.preprocess
2e940 69 6e 67 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 20 28 73 68 6f 75 6c 64 20 62 65 20 72 65 63 ing.substitutions.(should.be.rec
2e960 6f 72 64 65 64 00 00 20 20 65 2e 67 65 74 54 79 70 65 28 6f 70 74 69 6f 6e 73 3a 3a 74 79 70 65 orded....e.getType(options::type
2e980 43 68 65 63 6b 69 6e 67 28 29 29 3b 00 20 20 2f 2f 20 45 6e 73 75 72 65 20 65 78 70 72 20 69 73 Checking());...//.Ensure.expr.is
2e9a0 20 74 79 70 65 2d 63 68 65 63 6b 65 64 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2e 00 00 20 20 .type-checked.at.this.point.....
2e9c0 45 78 70 72 20 65 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 73 75 62 73 74 69 74 75 74 65 41 62 Expr.e.=.d_private->substituteAb
2e9e0 73 74 72 61 63 74 56 61 6c 75 65 73 28 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 65 78 29 29 stractValues(Node::fromExpr(ex))
2ea00 2e 74 6f 45 78 70 72 28 29 3b 00 20 20 2f 2f 20 53 75 62 73 74 69 74 75 74 65 20 6f 75 74 20 61 .toExpr();...//.Substitute.out.a
2ea20 6e 79 20 61 62 73 74 72 61 63 74 20 76 61 6c 75 65 73 20 69 6e 20 65 78 2e 00 00 20 20 7d 00 20 ny.abstract.values.in.ex.....}..
2ea40 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 6d 73 67 29 3b 00 20 20 ...throw.ModalException(msg);...
2ea60 20 20 20 20 22 43 61 6e 6e 6f 74 20 67 65 74 20 76 61 6c 75 65 20 75 6e 6c 65 73 73 20 69 6d 6d ...."Cannot.get.value.unless.imm
2ea80 65 64 69 61 74 65 6c 79 20 70 72 65 63 65 64 65 64 20 62 79 20 53 41 54 2f 49 4e 56 41 4c 49 44 ediately.preceded.by.SAT/INVALID
2eaa0 20 6f 72 20 55 4e 4b 4e 4f 57 4e 20 72 65 73 70 6f 6e 73 65 2e 22 3b 00 20 20 20 20 63 6f 6e 73 .or.UNKNOWN.response.";.....cons
2eac0 74 20 63 68 61 72 2a 20 6d 73 67 20 3d 00 20 20 20 20 20 64 5f 70 72 6f 62 6c 65 6d 45 78 74 65 t.char*.msg.=......d_problemExte
2eae0 6e 64 65 64 29 20 7b 00 20 20 20 20 20 64 5f 73 74 61 74 75 73 2e 61 73 53 61 74 69 73 66 69 61 nded).{......d_status.asSatisfia
2eb00 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 20 3d 3d 20 52 65 73 75 6c 74 3a 3a 55 4e 53 41 54 20 bilityResult().==.Result::UNSAT.
2eb20 7c 7c 00 20 20 69 66 28 64 5f 73 74 61 74 75 73 2e 69 73 4e 75 6c 6c 28 29 20 7c 7c 00 20 20 7d ||...if(d_status.isNull().||...}
2eb40 00 20 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 6d 73 67 29 3b 00 .....throw.ModalException(msg);.
2eb60 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 67 65 74 20 76 61 6c 75 65 20 77 68 65 6e 20 70 72 6f ......"Cannot.get.value.when.pro
2eb80 64 75 63 65 2d 6d 6f 64 65 6c 73 20 6f 70 74 69 6f 6e 73 20 69 73 20 6f 66 66 2e 22 3b 00 20 20 duce-models.options.is.off.";...
2eba0 20 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 6d 73 67 20 3d 00 20 20 69 66 28 21 6f 70 74 69 6f 6e ..const.char*.msg.=...if(!option
2ebc0 73 3a 3a 70 72 6f 64 75 63 65 4d 6f 64 65 6c 73 28 29 29 20 7b 00 00 20 20 7d 00 20 20 20 20 44 s::produceModels()).{....}.....D
2ebe0 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 47 65 74 56 61 6c 75 65 43 6f 6d 6d ump("benchmark").<<.GetValueComm
2ec00 61 6e 64 28 65 78 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d 61 and(ex);...if(Dump.isOn("benchma
2ec20 72 6b 22 29 29 20 7b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 67 rk")).{...Trace("smt").<<."SMT.g
2ec40 65 74 56 61 6c 75 65 28 22 20 3c 3c 20 65 78 20 3c 3c 20 22 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 etValue(".<<.ex.<<.")".<<.endl;.
2ec60 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 20 20 41 73 73 65 72 74 ...SmtScope.smts(this);...Assert
2ec80 28 65 78 2e 67 65 74 45 78 70 72 4d 61 6e 61 67 65 72 28 29 20 3d 3d 20 64 5f 65 78 70 72 4d 61 (ex.getExprManager().==.d_exprMa
2eca0 6e 61 67 65 72 29 3b 00 45 78 70 72 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 56 61 6c 75 65 nager);.Expr.SmtEngine::getValue
2ecc0 28 63 6f 6e 73 74 20 45 78 70 72 26 20 65 78 29 20 63 6f 6e 73 74 20 74 68 72 6f 77 28 4d 6f 64 (const.Expr&.ex).const.throw(Mod
2ece0 61 6c 45 78 63 65 70 74 69 6f 6e 2c 20 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 alException,.TypeCheckingExcepti
2ed00 6f 6e 2c 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 2c 20 55 6e 73 61 66 65 49 6e 74 65 72 72 on,.LogicException,.UnsafeInterr
2ed20 75 70 74 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 6e 2e 74 6f uptException).{..}...return.n.to
2ed40 45 78 70 72 28 29 3b 00 00 20 20 6e 20 3d 20 70 6f 73 74 70 72 6f 63 65 73 73 28 6e 2c 20 54 79 Expr();....n.=.postprocess(n,.Ty
2ed60 70 65 4e 6f 64 65 3a 3a 66 72 6f 6d 54 79 70 65 28 65 2e 67 65 74 54 79 70 65 28 29 29 29 3b 00 peNode::fromType(e.getType()));.
2ed80 20 20 4e 6f 64 65 20 6e 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 65 78 70 61 6e 64 44 65 66 69 ..Node.n.=.d_private->expandDefi
2eda0 6e 69 74 69 6f 6e 73 28 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 65 29 2c 20 63 61 63 68 65 nitions(Node::fromExpr(e),.cache
2edc0 2c 20 2f 2a 20 65 78 70 61 6e 64 4f 6e 6c 79 20 3d 20 2a 2f 20 74 72 75 65 29 3b 00 20 20 68 61 ,./*.expandOnly.=.*/.true);...ha
2ede0 73 68 5f 6d 61 70 3c 4e 6f 64 65 2c 20 4e 6f 64 65 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 sh_map<Node,.Node,.NodeHashFunct
2ee00 69 6f 6e 3e 20 63 61 63 68 65 3b 00 20 20 7d 00 20 20 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d ion>.cache;...}.....Dump("benchm
2ee20 61 72 6b 22 29 20 3c 3c 20 45 78 70 61 6e 64 44 65 66 69 6e 69 74 69 6f 6e 73 43 6f 6d 6d 61 6e ark").<<.ExpandDefinitionsComman
2ee40 64 28 65 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d 61 72 6b 22 d(e);...if(Dump.isOn("benchmark"
2ee60 29 29 20 7b 00 20 20 7d 00 20 20 20 20 65 2e 67 65 74 54 79 70 65 28 74 72 75 65 29 3b 00 20 20 )).{...}.....e.getType(true);...
2ee80 20 20 2f 2f 20 45 6e 73 75 72 65 20 65 78 70 72 20 69 73 20 74 79 70 65 2d 63 68 65 63 6b 65 64 ..//.Ensure.expr.is.type-checked
2eea0 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2e 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 74 79 .at.this.point....if(options::ty
2eec0 70 65 43 68 65 63 6b 69 6e 67 28 29 29 20 7b 00 20 20 45 78 70 72 20 65 20 3d 20 64 5f 70 72 69 peChecking()).{...Expr.e.=.d_pri
2eee0 76 61 74 65 2d 3e 73 75 62 73 74 69 74 75 74 65 41 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 4e vate->substituteAbstractValues(N
2ef00 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 65 78 29 29 2e 74 6f 45 78 70 72 28 29 3b 00 20 20 2f ode::fromExpr(ex)).toExpr();.../
2ef20 2f 20 53 75 62 73 74 69 74 75 74 65 20 6f 75 74 20 61 6e 79 20 61 62 73 74 72 61 63 74 20 76 61 /.Substitute.out.any.abstract.va
2ef40 6c 75 65 73 20 69 6e 20 65 78 2e 00 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 lues.in.ex.....Trace("smt").<<."
2ef60 53 4d 54 20 65 78 70 61 6e 64 44 65 66 69 6e 69 74 69 6f 6e 73 28 22 20 3c 3c 20 65 78 20 3c 3c SMT.expandDefinitions(".<<.ex.<<
2ef80 20 22 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 64 6f 50 65 6e 64 69 6e 67 50 6f 70 73 28 29 3b .")".<<.endl;...doPendingPops();
2efa0 00 20 20 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 29 3b 00 20 20 53 6d 74 53 63 ...finalOptionsAreSet();...SmtSc
2efc0 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 20 20 41 73 73 65 72 74 28 65 78 2e 67 65 74 45 ope.smts(this);...Assert(ex.getE
2efe0 78 70 72 4d 61 6e 61 67 65 72 28 29 20 3d 3d 20 64 5f 65 78 70 72 4d 61 6e 61 67 65 72 29 3b 00 xprManager().==.d_exprManager);.
2f000 61 64 00 00 30 00 00 00 f4 01 00 00 00 10 00 00 6a 00 00 00 00 00 00 00 d2 0f 00 00 85 0f 00 00 ad..0...........j...............
2f020 53 0f 00 00 3e 0f 00 00 27 0f 00 00 0c 0f 00 00 cb 0e 00 00 ab 0e 00 00 93 0e 00 00 4f 0e 00 00 S...>...'...................O...
2f040 38 0e 00 00 10 0e 00 00 d7 0d 00 00 ac 0d 00 00 85 0d 00 00 6d 0d 00 00 32 0d 00 00 f3 0c 00 00 8...................m...2.......
2f060 cc 0c 00 00 ba 0c 00 00 b6 0c 00 00 98 0c 00 00 60 0c 00 00 5c 0c 00 00 40 0c 00 00 3f 0c 00 00 ................`...\...@...?...
2f080 30 0c 00 00 2e 0c 00 00 2d 0c 00 00 04 0c 00 00 d3 0b 00 00 bc 0b 00 00 a4 0b 00 00 85 0b 00 00 0.......-.......................
2f0a0 54 0b 00 00 50 0b 00 00 29 0b 00 00 13 0b 00 00 e3 0a 00 00 b7 0a 00 00 98 0a 00 00 94 0a 00 00 T...P...).......................
2f0c0 7a 0a 00 00 3e 0a 00 00 24 0a 00 00 0e 0a 00 00 d0 09 00 00 9a 09 00 00 7b 09 00 00 77 09 00 00 z...>...$...............{...w...
2f0e0 76 09 00 00 58 09 00 00 35 09 00 00 31 09 00 00 30 09 00 00 18 09 00 00 e4 08 00 00 b5 08 00 00 v...X...5...1...0...............
2f100 73 08 00 00 4a 08 00 00 39 08 00 00 2c 08 00 00 04 08 00 00 03 08 00 00 c8 07 00 00 c7 07 00 00 s...J...9...,...................
2f120 a9 07 00 00 77 07 00 00 41 07 00 00 23 07 00 00 22 07 00 00 e8 06 00 00 d3 06 00 00 bf 06 00 00 ....w...A...#..."...............
2f140 9c 06 00 00 96 06 00 00 95 06 00 00 71 06 00 00 2c 06 00 00 2b 06 00 00 0d 06 00 00 eb 05 00 00 ............q...,...+...........
2f160 ea 05 00 00 d5 05 00 00 ad 05 00 00 83 05 00 00 3a 05 00 00 2d 05 00 00 11 05 00 00 d6 04 00 00 ................:...-...........
2f180 d0 04 00 00 91 04 00 00 71 04 00 00 6d 04 00 00 55 04 00 00 53 04 00 00 52 04 00 00 de 03 00 00 ........q...m...U...S...R.......
2f1a0 97 03 00 00 80 03 00 00 3f 03 00 00 ff 02 00 00 ba 02 00 00 75 02 00 00 33 02 00 00 f4 01 00 00 ........?...........u...3.......
2f1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2f1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 2f 2f 20 64 65 63 6f 75 70 6c ......................//.decoupl
2f200 65 20 53 6d 74 45 6e 67 69 6e 65 20 61 6e 64 20 45 78 70 72 4d 61 6e 61 67 65 72 20 69 66 20 74 e.SmtEngine.and.ExprManager.if.t
2f220 68 65 20 75 73 65 72 20 64 6f 65 73 20 61 20 66 65 77 00 20 20 2f 2f 20 73 75 70 70 6f 72 74 20 he.user.does.a.few...//.support.
2f240 66 69 6e 64 69 6e 67 20 63 61 72 64 28 55 29 20 77 69 74 68 20 2d 2d 66 69 6e 69 74 65 2d 6d 6f finding.card(U).with.--finite-mo
2f260 64 65 6c 2d 66 69 6e 64 2c 20 61 6e 64 20 28 32 29 20 74 6f 00 20 20 2f 2f 20 73 6f 72 74 20 22 del-find,.and.(2).to...//.sort."
2f280 55 22 20 69 6e 20 51 46 5f 55 46 20 62 65 66 6f 72 65 20 73 65 74 4c 6f 67 69 63 28 29 20 69 73 U".in.QF_UF.before.setLogic().is
2f2a0 20 72 75 6e 20 61 6e 64 20 77 65 20 73 74 69 6c 6c 20 77 61 6e 74 20 74 6f 00 20 20 2f 2f 20 63 .run.and.we.still.want.to...//.c
2f2c0 61 73 65 2e 20 20 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 69 6e 20 74 77 6f 20 63 61 73 65 ase...This.is.useful.in.two.case
2f2e0 73 3a 20 28 31 29 20 53 4d 54 2d 4c 49 42 76 31 20 61 75 74 6f 2d 64 65 63 6c 61 72 65 73 00 20 s:.(1).SMT-LIBv1.auto-declares..
2f300 20 2f 2f 20 70 72 6f 64 75 63 65 2d 6d 6f 64 65 6c 73 2e 20 20 53 6f 20 6c 65 74 27 73 20 6b 65 .//.produce-models...So.let's.ke
2f320 65 70 20 61 6e 79 20 63 6f 6d 6d 61 6e 64 73 20 61 72 6f 75 6e 64 20 6a 75 73 74 20 69 6e 00 20 ep.any.commands.around.just.in..
2f340 20 2f 2f 20 49 66 20 77 65 20 61 72 65 6e 27 74 20 79 65 74 20 66 75 6c 6c 79 20 69 6e 69 74 65 .//.If.we.aren't.yet.fully.inite
2f360 64 2c 20 74 68 65 20 75 73 65 72 20 6d 69 67 68 74 20 73 74 69 6c 6c 20 74 75 72 6e 20 6f 6e 00 d,.the.user.might.still.turn.on.
2f380 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 20 20 54 72 61 63 65 28 22 ..SmtScope.smts(this);...Trace("
2f3a0 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 61 64 64 54 6f 4d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 41 smt").<<."SMT.addToModelCommandA
2f3c0 6e 64 44 75 6d 70 28 22 20 3c 3c 20 63 20 3c 3c 20 22 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 76 6f ndDump(".<<.c.<<.")".<<.endl;.vo
2f3e0 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 61 64 64 54 6f 4d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 41 id.SmtEngine::addToModelCommandA
2f400 6e 64 44 75 6d 70 28 63 6f 6e 73 74 20 43 6f 6d 6d 61 6e 64 26 20 63 2c 20 75 69 6e 74 33 32 5f ndDump(const.Command&.c,.uint32_
2f420 74 20 66 6c 61 67 73 2c 20 62 6f 6f 6c 20 75 73 65 72 56 69 73 69 62 6c 65 2c 20 63 6f 6e 73 74 t.flags,.bool.userVisible,.const
2f440 20 63 68 61 72 2a 20 64 75 6d 70 54 61 67 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 53 45 .char*.dumpTag).{..}...return.SE
2f460 78 70 72 28 73 65 78 70 72 73 29 3b 00 20 20 7d 00 20 20 20 20 73 65 78 70 72 73 2e 70 75 73 68 xpr(sexprs);...}.....sexprs.push
2f480 5f 62 61 63 6b 28 53 45 78 70 72 28 76 29 29 3b 00 20 20 20 20 76 2e 70 75 73 68 5f 62 61 63 6b _back(SExpr(v));.....v.push_back
2f4a0 28 53 45 78 70 72 28 53 45 78 70 72 3a 3a 4b 65 79 77 6f 72 64 28 72 65 73 75 6c 74 4e 6f 64 65 (SExpr(SExpr::Keyword(resultNode
2f4c0 2e 74 6f 53 74 72 69 6e 67 28 29 29 29 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 76 2e 70 75 .toString())));.....}.......v.pu
2f4e0 73 68 5f 62 61 63 6b 28 53 45 78 70 72 28 53 45 78 70 72 3a 3a 4b 65 79 77 6f 72 64 28 28 2a 69 sh_back(SExpr(SExpr::Keyword((*i
2f500 29 2e 74 6f 53 74 72 69 6e 67 28 29 29 29 29 3b 00 20 20 20 20 20 20 41 73 73 65 72 74 28 28 2a ).toString())));.......Assert((*
2f520 69 29 2e 69 73 56 61 72 28 29 29 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 i).isVar());.....}.else.{.......
2f540 76 2e 70 75 73 68 5f 62 61 63 6b 28 53 45 78 70 72 28 53 45 78 70 72 3a 3a 4b 65 79 77 6f 72 64 v.push_back(SExpr(SExpr::Keyword
2f560 28 28 2a 69 29 2e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 2e 74 6f 53 74 72 69 6e 67 28 29 29 29 ((*i).getOperator().toString()))
2f580 29 3b 00 20 20 20 20 20 20 41 73 73 65 72 74 28 28 2a 69 29 2e 67 65 74 4e 75 6d 43 68 69 6c 64 );.......Assert((*i).getNumChild
2f5a0 72 65 6e 28 29 20 3d 3d 20 30 29 3b 00 20 20 20 20 69 66 28 28 2a 69 29 2e 67 65 74 4b 69 6e 64 ren().==.0);.....if((*i).getKind
2f5c0 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 50 50 4c 59 29 20 7b 00 20 20 20 20 76 65 63 74 6f 72 3c ().==.kind::APPLY).{.....vector<
2f5e0 53 45 78 70 72 3e 20 76 3b 00 00 20 20 20 20 41 73 73 65 72 74 28 72 65 73 75 6c 74 4e 6f 64 65 SExpr>.v;......Assert(resultNode
2f600 2e 69 73 43 6f 6e 73 74 28 29 29 3b 00 20 20 20 20 2f 2f 20 65 6e 73 75 72 65 20 69 74 27 73 20 .isConst());.....//.ensure.it's.
2f620 61 20 63 6f 6e 73 74 61 6e 74 00 00 20 20 20 20 41 73 73 65 72 74 28 72 65 73 75 6c 74 4e 6f 64 a.constant......Assert(resultNod
2f640 65 2e 69 73 4e 75 6c 6c 28 29 20 7c 7c 20 72 65 73 75 6c 74 4e 6f 64 65 2e 67 65 74 54 79 70 65 e.isNull().||.resultNode.getType
2f660 28 29 20 3d 3d 20 62 6f 6f 6c 54 79 70 65 29 3b 00 20 20 20 20 2f 2f 20 74 79 70 65 2d 63 68 65 ().==.boolType);.....//.type-che
2f680 63 6b 20 74 68 65 20 72 65 73 75 6c 74 20 77 65 20 67 6f 74 00 00 20 20 20 20 7d 00 20 20 20 20 ck.the.result.we.got......}.....
2f6a0 20 20 72 65 73 75 6c 74 4e 6f 64 65 20 3d 20 6d 2d 3e 67 65 74 56 61 6c 75 65 28 6e 29 3b 00 20 ..resultNode.=.m->getValue(n);..
2f6c0 20 20 20 69 66 28 6d 20 21 3d 20 4e 55 4c 4c 29 20 7b 00 20 20 20 20 4e 6f 64 65 20 72 65 73 75 ...if(m.!=.NULL).{.....Node.resu
2f6e0 6c 74 4e 6f 64 65 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 2d 2d 2d ltNode;.....Trace("smt").<<."---
2f700 20 67 65 74 74 69 6e 67 20 76 61 6c 75 65 20 6f 66 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c .getting.value.of.".<<.n.<<.endl
2f720 3b 00 00 20 20 20 20 6e 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 6e 29 3b ;......n.=.Rewriter::rewrite(n);
2f740 00 20 20 20 20 4e 6f 64 65 20 6e 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 65 78 70 61 6e 64 44 .....Node.n.=.d_private->expandD
2f760 65 66 69 6e 69 74 69 6f 6e 73 28 2a 69 2c 20 63 61 63 68 65 29 3b 00 20 20 20 20 68 61 73 68 5f efinitions(*i,.cache);.....hash_
2f780 6d 61 70 3c 4e 6f 64 65 2c 20 4e 6f 64 65 2c 20 4e 6f 64 65 48 61 73 68 46 75 6e 63 74 69 6f 6e map<Node,.Node,.NodeHashFunction
2f7a0 3e 20 63 61 63 68 65 3b 00 20 20 20 20 2f 2f 20 45 78 70 61 6e 64 2c 20 74 68 65 6e 20 6e 6f 72 >.cache;.....//.Expand,.then.nor
2f7c0 6d 61 6c 69 7a 65 00 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 2d 2d 2d malize......Trace("smt").<<."---
2f7e0 20 67 65 74 74 69 6e 67 20 76 61 6c 75 65 20 6f 66 20 22 20 3c 3c 20 2a 69 20 3c 3c 20 65 6e 64 .getting.value.of.".<<.*i.<<.end
2f800 6c 3b 00 00 20 20 20 20 41 73 73 65 72 74 28 28 2a 69 29 2e 67 65 74 54 79 70 65 28 29 20 3d 3d l;......Assert((*i).getType().==
2f820 20 62 6f 6f 6c 54 79 70 65 29 3b 00 20 20 20 20 20 20 2b 2b 69 29 20 7b 00 20 20 20 20 20 20 69 .boolType);.......++i).{.......i
2f840 20 21 3d 20 69 65 6e 64 3b 00 20 20 20 20 20 20 20 20 69 65 6e 64 20 3d 20 64 5f 61 73 73 69 67 .!=.iend;.........iend.=.d_assig
2f860 6e 6d 65 6e 74 73 2d 3e 6b 65 79 5f 65 6e 64 28 29 3b 00 20 20 66 6f 72 28 41 73 73 69 67 6e 6d nments->key_end();...for(Assignm
2f880 65 6e 74 53 65 74 3a 3a 6b 65 79 5f 69 74 65 72 61 74 6f 72 20 69 20 3d 20 64 5f 61 73 73 69 67 entSet::key_iterator.i.=.d_assig
2f8a0 6e 6d 65 6e 74 73 2d 3e 6b 65 79 5f 62 65 67 69 6e 28 29 2c 00 20 20 54 68 65 6f 72 79 4d 6f 64 nments->key_begin(),...TheoryMod
2f8c0 65 6c 2a 20 6d 20 3d 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 67 65 74 4d 6f 64 65 6c el*.m.=.d_theoryEngine->getModel
2f8e0 28 29 3b 00 20 20 54 79 70 65 4e 6f 64 65 20 62 6f 6f 6c 54 79 70 65 20 3d 20 64 5f 6e 6f 64 65 ();...TypeNode.boolType.=.d_node
2f900 4d 61 6e 61 67 65 72 2d 3e 62 6f 6f 6c 65 61 6e 54 79 70 65 28 29 3b 00 20 20 76 65 63 74 6f 72 Manager->booleanType();...vector
2f920 3c 53 45 78 70 72 3e 20 73 65 78 70 72 73 3b 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 <SExpr>.sexprs;....}.....return.
2f940 53 45 78 70 72 28 76 65 63 74 6f 72 3c 53 45 78 70 72 3e 28 29 29 3b 00 20 20 69 66 28 64 5f 61 SExpr(vector<SExpr>());...if(d_a
2f960 73 73 69 67 6e 6d 65 6e 74 73 20 3d 3d 20 4e 55 4c 4c 29 20 7b 00 00 20 20 7d 00 20 20 20 20 74 ssignments.==.NULL).{....}.....t
2f980 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 6d 73 67 29 3b 00 20 20 20 20 20 20 hrow.ModalException(msg);.......
2f9a0 22 70 72 65 63 65 64 65 64 20 62 79 20 53 41 54 2f 49 4e 56 41 4c 49 44 20 6f 72 20 55 4e 4b 4e "preceded.by.SAT/INVALID.or.UNKN
2f9c0 4f 57 4e 20 72 65 73 70 6f 6e 73 65 2e 22 3b 00 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 67 65 OWN.response.";......."Cannot.ge
2f9e0 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 73 73 69 67 6e 6d 65 6e 74 20 75 6e 6c 65 73 73 20 t.the.current.assignment.unless.
2fa00 69 6d 6d 65 64 69 61 74 65 6c 79 20 22 00 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 6d 73 immediately.".....const.char*.ms
2fa20 67 20 3d 00 20 20 20 20 20 64 5f 70 72 6f 62 6c 65 6d 45 78 74 65 6e 64 65 64 29 20 7b 00 20 20 g.=......d_problemExtended).{...
2fa40 20 20 20 64 5f 73 74 61 74 75 73 2e 61 73 53 61 74 69 73 66 69 61 62 69 6c 69 74 79 52 65 73 75 ...d_status.asSatisfiabilityResu
2fa60 6c 74 28 29 20 3d 3d 20 52 65 73 75 6c 74 3a 3a 55 4e 53 41 54 20 20 7c 7c 00 20 20 69 66 28 64 lt().==.Result::UNSAT..||...if(d
2fa80 5f 73 74 61 74 75 73 2e 69 73 4e 75 6c 6c 28 29 20 7c 7c 00 20 20 7d 00 20 20 20 20 74 68 72 6f _status.isNull().||...}.....thro
2faa0 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 6d 73 67 29 3b 00 20 20 20 20 20 20 22 70 72 w.ModalException(msg);......."pr
2fac0 6f 64 75 63 65 2d 61 73 73 69 67 6e 6d 65 6e 74 73 20 6f 70 74 69 6f 6e 20 69 73 20 6f 66 66 2e oduce-assignments.option.is.off.
2fae0 22 3b 00 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 67 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 ";......."Cannot.get.the.current
2fb00 20 61 73 73 69 67 6e 6d 65 6e 74 20 77 68 65 6e 20 22 00 20 20 20 20 63 6f 6e 73 74 20 63 68 61 .assignment.when.".....const.cha
2fb20 72 2a 20 6d 73 67 20 3d 00 20 20 69 66 28 21 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 41 r*.msg.=...if(!options::produceA
2fb40 73 73 69 67 6e 6d 65 6e 74 73 28 29 29 20 7b 00 20 20 7d 00 20 20 20 20 44 75 6d 70 28 22 62 65 ssignments()).{...}.....Dump("be
2fb60 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 47 65 74 41 73 73 69 67 6e 6d 65 6e 74 43 6f 6d 6d 61 6e nchmark").<<.GetAssignmentComman
2fb80 64 28 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 d();...if(Dump.isOn("benchmark")
2fba0 29 20 7b 00 20 20 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 29 3b 00 20 20 53 6d ).{...finalOptionsAreSet();...Sm
2fbc0 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 tScope.smts(this);...Trace("smt"
2fbe0 29 20 3c 3c 20 22 53 4d 54 20 67 65 74 41 73 73 69 67 6e 6d 65 6e 74 28 29 22 20 3c 3c 20 65 6e ).<<."SMT.getAssignment()".<<.en
2fc00 64 6c 3b 00 43 56 43 34 3a 3a 53 45 78 70 72 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 41 73 dl;.CVC4::SExpr.SmtEngine::getAs
2fc20 73 69 67 6e 6d 65 6e 74 28 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 00 00 signment().{..}...return.true;..
2fc40 20 20 64 5f 61 73 73 69 67 6e 6d 65 6e 74 73 2d 3e 69 6e 73 65 72 74 28 6e 29 3b 00 20 20 7d 00 ..d_assignments->insert(n);...}.
2fc60 20 20 20 20 64 5f 61 73 73 69 67 6e 6d 65 6e 74 73 20 3d 20 6e 65 77 28 74 72 75 65 29 20 41 73 ....d_assignments.=.new(true).As
2fc80 73 69 67 6e 6d 65 6e 74 53 65 74 28 64 5f 63 6f 6e 74 65 78 74 29 3b 00 20 20 69 66 28 64 5f 61 signmentSet(d_context);...if(d_a
2fca0 73 73 69 67 6e 6d 65 6e 74 73 20 3d 3d 20 4e 55 4c 4c 29 20 7b 00 20 20 7d 00 20 20 20 20 72 65 ssignments.==.NULL).{...}.....re
2fcc0 74 75 72 6e 20 66 61 6c 73 65 3b 00 20 20 69 66 28 21 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 turn.false;...if(!options::produ
2fce0 63 65 41 73 73 69 67 6e 6d 65 6e 74 73 28 29 29 20 7b 00 20 20 20 20 20 20 22 69 6e 20 61 64 64 ceAssignments()).{......."in.add
2fd00 54 6f 41 73 73 69 67 6e 6d 65 6e 74 28 29 2c 5c 6e 67 6f 74 20 25 73 22 2c 20 65 2e 74 6f 53 74 ToAssignment(),\ngot.%s",.e.toSt
2fd20 72 69 6e 67 28 29 2e 63 5f 73 74 72 28 29 20 29 3b 00 20 20 20 20 20 20 22 65 78 70 65 63 74 65 ring().c_str().);......."expecte
2fd40 64 20 76 61 72 69 61 62 6c 65 20 6f 72 20 64 65 66 69 6e 65 64 2d 66 75 6e 63 74 69 6f 6e 20 61 d.variable.or.defined-function.a
2fd60 70 70 6c 69 63 61 74 69 6f 6e 20 22 00 20 20 20 20 20 20 20 20 6e 2e 69 73 56 61 72 28 29 20 29 pplication.".........n.isVar().)
2fd80 2c 20 65 2c 00 20 20 20 20 20 20 20 20 20 20 6e 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 ,.e,...........n.getNumChildren(
2fda0 29 20 3d 3d 20 30 20 29 20 7c 7c 00 20 20 20 20 20 20 20 20 20 20 20 20 64 5f 64 65 66 69 6e 65 ).==.0.).||.............d_define
2fdc0 64 46 75 6e 63 74 69 6f 6e 73 2d 3e 65 6e 64 28 29 20 29 20 26 26 00 20 20 20 20 20 20 20 20 20 dFunctions->end().).&&..........
2fde0 20 28 20 64 5f 64 65 66 69 6e 65 64 46 75 6e 63 74 69 6f 6e 73 2d 3e 66 69 6e 64 28 6e 2e 67 65 .(.d_definedFunctions->find(n.ge
2fe00 74 4f 70 65 72 61 74 6f 72 28 29 29 20 21 3d 00 20 20 20 20 20 20 28 20 28 20 6e 2e 67 65 74 4b tOperator()).!=.......(.(.n.getK
2fe20 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 41 50 50 4c 59 20 26 26 00 20 20 50 72 65 74 74 79 ind().==.kind::APPLY.&&...Pretty
2fe40 43 68 65 63 6b 41 72 67 75 6d 65 6e 74 28 00 20 20 2f 2f 20 6d 75 73 74 20 62 65 20 61 6e 20 41 CheckArgument(...//.must.be.an.A
2fe60 50 50 4c 59 20 6f 66 20 61 20 7a 65 72 6f 2d 61 72 79 20 64 65 66 69 6e 65 64 20 66 75 6e 63 74 PPLY.of.a.zero-ary.defined.funct
2fe80 69 6f 6e 2c 20 6f 72 20 61 20 76 61 72 69 61 62 6c 65 00 20 20 4e 6f 64 65 20 6e 20 3d 20 65 2e ion,.or.a.variable...Node.n.=.e.
2fea0 67 65 74 4e 6f 64 65 28 29 3b 00 20 20 20 20 20 20 22 69 6e 20 61 64 64 54 6f 41 73 73 69 67 6e getNode();......."in.addToAssign
2fec0 6d 65 6e 74 28 29 22 20 29 3b 00 20 20 20 20 20 20 22 65 78 70 65 63 74 65 64 20 42 6f 6f 6c 65 ment()".);......."expected.Boole
2fee0 61 6e 2d 74 79 70 65 64 20 76 61 72 69 61 62 6c 65 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 61 70 an-typed.variable.or.function.ap
2ff00 70 6c 69 63 61 74 69 6f 6e 20 22 00 20 20 20 20 20 20 74 79 70 65 2e 69 73 42 6f 6f 6c 65 61 6e plication.".......type.isBoolean
2ff20 28 29 2c 20 65 2c 00 20 20 50 72 65 74 74 79 43 68 65 63 6b 41 72 67 75 6d 65 6e 74 28 00 20 20 (),.e,...PrettyCheckArgument(...
2ff40 2f 2f 20 6d 75 73 74 20 62 65 20 42 6f 6f 6c 65 61 6e 00 20 20 54 79 70 65 20 74 79 70 65 20 3d //.must.be.Boolean...Type.type.=
2ff60 20 65 2e 67 65 74 54 79 70 65 28 6f 70 74 69 6f 6e 73 3a 3a 74 79 70 65 43 68 65 63 6b 69 6e 67 .e.getType(options::typeChecking
2ff80 28 29 29 3b 00 20 20 45 78 70 72 20 65 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 73 75 62 73 74 ());...Expr.e.=.d_private->subst
2ffa0 69 74 75 74 65 41 62 73 74 72 61 63 74 56 61 6c 75 65 73 28 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 ituteAbstractValues(Node::fromEx
2ffc0 70 72 28 65 78 29 29 2e 74 6f 45 78 70 72 28 29 3b 00 20 20 2f 2f 20 53 75 62 73 74 69 74 75 74 pr(ex)).toExpr();...//.Substitut
2ffe0 65 20 6f 75 74 20 61 6e 79 20 61 62 73 74 72 61 63 74 20 76 61 6c 75 65 73 20 69 6e 20 65 78 00 e.out.any.abstract.values.in.ex.
30000 61 64 00 00 18 00 00 00 f4 01 00 00 00 10 00 00 70 00 00 00 00 00 00 00 b7 0f 00 00 7c 0f 00 00 ad..............p...........|...
30020 62 0f 00 00 2d 0f 00 00 f8 0e 00 00 e3 0e 00 00 b4 0e 00 00 82 0e 00 00 75 0e 00 00 48 0e 00 00 b...-...................u...H...
30040 42 0e 00 00 3e 0e 00 00 23 0e 00 00 0b 0e 00 00 f1 0d 00 00 e4 0d 00 00 b9 0d 00 00 b3 0d 00 00 B...>...#.......................
30060 af 0d 00 00 ad 0d 00 00 ac 0d 00 00 8d 0d 00 00 61 0d 00 00 4a 0d 00 00 49 0d 00 00 31 0d 00 00 ................a...J...I...1...
30080 30 0d 00 00 11 0d 00 00 e5 0c 00 00 e1 0c 00 00 e0 0c 00 00 c6 0c 00 00 8b 0c 00 00 71 0c 00 00 0...........................q...
300a0 5b 0c 00 00 22 0c 00 00 ec 0b 00 00 cd 0b 00 00 c9 0b 00 00 a7 0b 00 00 91 0b 00 00 53 0b 00 00 [...".......................S...
300c0 34 0b 00 00 30 0b 00 00 01 0b 00 00 e2 0a 00 00 d6 0a 00 00 d4 0a 00 00 d3 0a 00 00 b0 0a 00 00 4...0...........................
300e0 56 0a 00 00 55 0a 00 00 09 0a 00 00 e6 09 00 00 e5 09 00 00 bd 09 00 00 95 09 00 00 94 09 00 00 V...U...........................
30100 8b 09 00 00 43 09 00 00 11 09 00 00 ef 08 00 00 eb 08 00 00 e6 08 00 00 e5 08 00 00 77 08 00 00 ....C.......................w...
30120 33 08 00 00 e0 07 00 00 bd 07 00 00 b9 07 00 00 7e 07 00 00 72 07 00 00 6a 07 00 00 41 07 00 00 3...............~...r...j...A...
30140 1c 07 00 00 fc 06 00 00 eb 06 00 00 b8 06 00 00 ad 06 00 00 a9 06 00 00 63 06 00 00 34 06 00 00 ........................c...4...
30160 dc 05 00 00 d8 05 00 00 d7 05 00 00 ac 05 00 00 5a 05 00 00 56 05 00 00 54 05 00 00 53 05 00 00 ................Z...V...T...S...
30180 24 05 00 00 e1 04 00 00 b8 04 00 00 51 04 00 00 50 04 00 00 0d 04 00 00 0c 04 00 00 d0 03 00 00 $...........Q...P...............
301a0 cb 03 00 00 7c 03 00 00 37 03 00 00 36 03 00 00 f3 02 00 00 c4 02 00 00 c3 02 00 00 9b 02 00 00 ....|...7...6...................
301c0 67 02 00 00 66 02 00 00 50 02 00 00 3e 02 00 00 3d 02 00 00 f4 01 00 00 00 00 00 00 00 00 00 00 g...f...P...>...=...............
301e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 2f 2f 20 57 65 20 68 61 76 65 ......................//.We.have
30200 20 61 20 22 66 61 6b 65 20 63 6f 6e 74 65 78 74 22 20 66 6f 72 20 74 68 65 20 73 75 62 73 74 69 .a."fake.context".for.the.substi
30220 74 75 74 69 6f 6e 20 6d 61 70 20 28 77 65 20 64 6f 6e 27 74 20 6e 65 65 64 20 69 74 00 00 20 20 tution.map.(we.don't.need.it....
30240 4e 6f 74 69 63 65 28 29 20 3c 3c 20 2a 6d 3b 00 20 20 2f 2f 20 4f 75 74 70 75 74 20 74 68 65 20 Notice().<<.*m;...//.Output.the.
30260 6d 6f 64 65 6c 00 00 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 63 68 65 63 6b 54 68 model....d_theoryEngine->checkTh
30280 65 6f 72 79 41 73 73 65 72 74 69 6f 6e 73 57 69 74 68 4d 6f 64 65 6c 28 29 3b 00 20 20 2f 2f 20 eoryAssertionsWithModel();...//.
302a0 43 68 65 63 6b 20 69 6e 64 69 76 69 64 75 61 6c 20 74 68 65 6f 72 79 20 61 73 73 65 72 74 69 6f Check.individual.theory.assertio
302c0 6e 73 00 00 20 20 54 68 65 6f 72 79 4d 6f 64 65 6c 2a 20 6d 20 3d 20 64 5f 74 68 65 6f 72 79 45 ns....TheoryModel*.m.=.d_theoryE
302e0 6e 67 69 6e 65 2d 3e 67 65 74 4d 6f 64 65 6c 28 29 3b 00 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c ngine->getModel();...Notice().<<
30300 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 67 65 6e 65 72 ."SmtEngine::checkModel():.gener
30320 61 74 69 6e 67 20 6d 6f 64 65 6c 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 2f 2f 20 61 6e 64 20 ating.model".<<.endl;....//.and.
30340 69 66 20 4e 6f 74 69 63 65 28 29 20 69 73 20 6f 6e 2c 20 74 68 65 20 75 73 65 72 20 67 61 76 65 if.Notice().is.on,.the.user.gave
30360 20 2d 2d 76 65 72 62 6f 73 65 20 28 6f 72 20 65 71 75 69 76 61 6c 65 6e 74 29 2e 00 20 20 2f 2f .--verbose.(or.equivalent)....//
30380 20 49 66 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 72 75 6e 6e 69 6e 67 2c 20 74 68 .If.this.function.is.running,.th
303a0 65 20 75 73 65 72 20 67 61 76 65 20 2d 2d 63 68 65 63 6b 2d 6d 6f 64 65 6c 20 28 6f 72 20 65 71 e.user.gave.--check-model.(or.eq
303c0 75 69 76 61 6c 65 6e 74 29 2c 00 20 20 2f 2f 00 20 20 2f 2f 20 54 68 72 6f 75 67 68 6f 75 74 2c uivalent),...//...//.Throughout,
303e0 20 77 65 20 75 73 65 20 4e 6f 74 69 63 65 28 29 20 74 6f 20 67 69 76 65 20 64 69 61 67 6e 6f 73 .we.use.Notice().to.give.diagnos
30400 74 69 63 20 6f 75 74 70 75 74 2e 00 00 20 20 54 69 6d 65 72 53 74 61 74 3a 3a 43 6f 64 65 54 69 tic.output.....TimerStat::CodeTi
30420 6d 65 72 20 63 68 65 63 6b 4d 6f 64 65 6c 54 69 6d 65 72 28 64 5f 73 74 61 74 73 2d 3e 64 5f 63 mer.checkModelTimer(d_stats->d_c
30440 68 65 63 6b 4d 6f 64 65 6c 54 69 6d 65 29 3b 00 00 20 20 41 73 73 65 72 74 28 64 5f 61 73 73 65 heckModelTime);....Assert(d_asse
30460 72 74 69 6f 6e 4c 69 73 74 20 21 3d 20 4e 55 4c 4c 2c 20 22 64 6f 6e 27 74 20 68 61 76 65 20 61 rtionList.!=.NULL,."don't.have.a
30480 6e 20 61 73 73 65 72 74 69 6f 6e 20 6c 69 73 74 20 74 6f 20 63 68 65 63 6b 20 69 6e 20 53 6d 74 n.assertion.list.to.check.in.Smt
304a0 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 22 29 3b 00 20 20 2f 2f 20 61 73 73 Engine::checkModel()");...//.ass
304c0 65 72 74 69 6f 6e 20 6c 69 73 74 2c 20 73 6f 20 77 65 20 73 68 6f 75 6c 64 20 62 65 20 6f 6b 2e ertion.list,.so.we.should.be.ok.
304e0 00 20 20 2f 2f 20 2d 2d 63 68 65 63 6b 2d 6d 6f 64 65 6c 20 69 6d 70 6c 69 65 73 20 2d 2d 70 72 ...//.--check-model.implies.--pr
30500 6f 64 75 63 65 2d 61 73 73 65 72 74 69 6f 6e 73 2c 20 77 68 69 63 68 20 65 6e 61 62 6c 65 73 20 oduce-assertions,.which.enables.
30520 74 68 65 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 62 the.void.SmtEngine::checkModel(b
30540 6f 6f 6c 20 68 61 72 64 46 61 69 6c 75 72 65 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 20 49 6e ool.hardFailure).{..}...}.....In
30560 74 65 72 6e 61 6c 45 72 72 6f 72 28 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 55 6e 73 ternalError("SmtEngine::checkUns
30580 61 74 43 6f 72 65 28 29 3a 20 70 72 6f 64 75 63 65 64 20 63 6f 72 65 20 77 61 73 20 73 61 74 69 atCore():.produced.core.was.sati
305a0 73 66 69 61 62 6c 65 2e 22 29 3b 00 20 20 69 66 28 72 2e 61 73 53 61 74 69 73 66 69 61 62 69 6c sfiable.");...if(r.asSatisfiabil
305c0 69 74 79 52 65 73 75 6c 74 28 29 2e 69 73 53 61 74 28 29 29 20 7b 00 00 20 20 7d 00 20 20 20 20 ityResult().isSat()).{....}.....
305e0 49 6e 74 65 72 6e 61 6c 45 72 72 6f 72 28 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 55 InternalError("SmtEngine::checkU
30600 6e 73 61 74 43 6f 72 65 28 29 3a 20 63 6f 75 6c 64 20 6e 6f 74 20 63 68 65 63 6b 20 63 6f 72 65 nsatCore():.could.not.check.core
30620 20 72 65 73 75 6c 74 20 75 6e 6b 6e 6f 77 6e 2e 22 29 3b 00 20 20 69 66 28 72 2e 61 73 53 61 74 .result.unknown.");...if(r.asSat
30640 69 73 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 2e 69 73 55 6e 6b 6e 6f 77 6e 28 29 29 isfiabilityResult().isUnknown())
30660 20 7b 00 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 .{...Notice().<<."SmtEngine::che
30680 63 6b 55 6e 73 61 74 43 6f 72 65 28 29 3a 20 72 65 73 75 6c 74 20 69 73 20 22 20 3c 3c 20 72 20 ckUnsatCore():.result.is.".<<.r.
306a0 3c 3c 20 65 6e 64 6c 3b 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 3b 00 20 20 20 20 6f 70 74 69 <<.endl;...}.....throw;.....opti
306c0 6f 6e 73 3a 3a 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 73 2e 73 65 74 28 63 68 65 63 6b 55 6e ons::checkUnsatCores.set(checkUn
306e0 73 61 74 43 6f 72 65 73 29 3b 00 20 20 7d 20 63 61 74 63 68 28 2e 2e 2e 29 20 7b 00 20 20 20 20 satCores);...}.catch(...).{.....
30700 72 20 3d 20 63 6f 72 65 43 68 65 63 6b 65 72 2e 63 68 65 63 6b 53 61 74 28 29 3b 00 20 20 20 20 r.=.coreChecker.checkSat();.....
30720 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 50 72 6f 6f 66 73 2e 73 65 74 28 66 61 6c 73 65 29 3b options::checkProofs.set(false);
30740 00 20 20 20 20 6f 70 74 69 6f 6e 73 3a 3a 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 73 2e 73 65 .....options::checkUnsatCores.se
30760 74 28 66 61 6c 73 65 29 3b 00 20 20 74 72 79 20 7b 00 20 20 52 65 73 75 6c 74 20 72 3b 00 20 20 t(false);...try.{...Result.r;...
30780 63 6f 6e 73 74 20 62 6f 6f 6c 20 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 73 20 3d 20 6f 70 74 const.bool.checkUnsatCores.=.opt
307a0 69 6f 6e 73 3a 3a 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 73 28 29 3b 00 20 20 7d 00 20 20 20 ions::checkUnsatCores();...}....
307c0 20 63 6f 72 65 43 68 65 63 6b 65 72 2e 61 73 73 65 72 74 46 6f 72 6d 75 6c 61 28 2a 69 29 3b 00 .coreChecker.assertFormula(*i);.
307e0 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 ....Notice().<<."SmtEngine::chec
30800 6b 55 6e 73 61 74 43 6f 72 65 28 29 3a 20 70 75 73 68 69 6e 67 20 63 6f 72 65 20 6d 65 6d 62 65 kUnsatCore():.pushing.core.membe
30820 72 20 22 20 3c 3c 20 2a 69 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 66 6f 72 28 55 6e 73 61 74 43 6f r.".<<.*i.<<.endl;...for(UnsatCo
30840 72 65 3a 3a 69 74 65 72 61 74 6f 72 20 69 20 3d 20 63 6f 72 65 2e 62 65 67 69 6e 28 29 3b 20 69 re::iterator.i.=.core.begin();.i
30860 20 21 3d 20 63 6f 72 65 2e 65 6e 64 28 29 3b 20 2b 2b 69 29 20 7b 00 20 20 4e 6f 74 69 63 65 28 .!=.core.end();.++i).{...Notice(
30880 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 28 ).<<."SmtEngine::checkUnsatCore(
308a0 29 3a 20 70 75 73 68 69 6e 67 20 63 6f 72 65 20 61 73 73 65 72 74 69 6f 6e 73 20 28 73 69 7a 65 ):.pushing.core.assertions.(size
308c0 20 3d 3d 20 22 20 3c 3c 20 63 6f 72 65 2e 73 69 7a 65 28 29 20 3c 3c 20 22 29 22 20 3c 3c 20 65 .==.".<<.core.size().<<.")".<<.e
308e0 6e 64 6c 3b 00 00 20 20 29 3b 00 20 20 7d 00 20 20 20 20 28 2a 69 74 67 29 2d 3e 69 6e 76 6f 6b ndl;....);...}.....(*itg)->invok
30900 65 28 26 63 6f 72 65 43 68 65 63 6b 65 72 29 3b 00 20 20 66 6f 72 20 28 3b 20 69 74 67 20 21 3d e(&coreChecker);...for.(;.itg.!=
30920 20 64 5f 64 65 66 69 6e 65 43 6f 6d 6d 61 6e 64 73 2e 65 6e 64 28 29 3b 20 20 2b 2b 69 74 67 29 .d_defineCommands.end();..++itg)
30940 20 7b 00 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 43 6f 6d 6d 61 6e 64 2a 3e 3a 3a 63 6f 6e 73 .{...std::vector<Command*>::cons
30960 74 5f 69 74 65 72 61 74 6f 72 20 69 74 67 20 3d 20 64 5f 64 65 66 69 6e 65 43 6f 6d 6d 61 6e 64 t_iterator.itg.=.d_defineCommand
30980 73 2e 62 65 67 69 6e 28 29 3b 00 20 20 50 52 4f 4f 46 28 00 00 20 20 63 6f 72 65 43 68 65 63 6b s.begin();...PROOF(....coreCheck
309a0 65 72 2e 73 65 74 4c 6f 67 69 63 28 67 65 74 4c 6f 67 69 63 49 6e 66 6f 28 29 29 3b 00 20 20 53 er.setLogic(getLogicInfo());...S
309c0 6d 74 45 6e 67 69 6e 65 20 63 6f 72 65 43 68 65 63 6b 65 72 28 64 5f 65 78 70 72 4d 61 6e 61 67 mtEngine.coreChecker(d_exprManag
309e0 65 72 29 3b 00 00 20 20 55 6e 73 61 74 43 6f 72 65 20 63 6f 72 65 20 3d 20 67 65 74 55 6e 73 61 er);....UnsatCore.core.=.getUnsa
30a00 74 43 6f 72 65 28 29 3b 00 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e tCore();...Notice().<<."SmtEngin
30a20 65 3a 3a 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 28 29 3a 20 67 65 6e 65 72 61 74 69 6e 67 20 e::checkUnsatCore():.generating.
30a40 75 6e 73 61 74 20 63 6f 72 65 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 41 73 73 65 72 74 28 6f unsat.core".<<.endl;....Assert(o
30a60 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 73 28 29 2c 20 22 63 61 6e 6e 6f 74 20 63 68 ptions::unsatCores(),."cannot.ch
30a80 65 63 6b 20 75 6e 73 61 74 20 63 6f 72 65 20 69 66 20 75 6e 73 61 74 20 63 6f 72 65 73 20 61 72 eck.unsat.core.if.unsat.cores.ar
30aa0 65 20 74 75 72 6e 65 64 20 6f 66 66 22 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a e.turned.off");.void.SmtEngine::
30ac0 63 68 65 63 6b 55 6e 73 61 74 43 6f 72 65 28 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 6d checkUnsatCore().{..}...return.m
30ae0 3b 00 20 20 6d 2d 3e 64 5f 69 6e 70 75 74 4e 61 6d 65 20 3d 20 64 5f 66 69 6c 65 6e 61 6d 65 3b ;...m->d_inputName.=.d_filename;
30b00 00 20 20 54 68 65 6f 72 79 4d 6f 64 65 6c 2a 20 6d 20 3d 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 ...TheoryModel*.m.=.d_theoryEngi
30b20 6e 65 2d 3e 67 65 74 4d 6f 64 65 6c 28 29 3b 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 20 4d 6f ne->getModel();...}.....throw.Mo
30b40 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 6d 73 67 29 3b 00 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 dalException(msg);......."Cannot
30b60 20 67 65 74 20 6d 6f 64 65 6c 20 77 68 65 6e 20 70 72 6f 64 75 63 65 2d 6d 6f 64 65 6c 73 20 6f .get.model.when.produce-models.o
30b80 70 74 69 6f 6e 73 20 69 73 20 6f 66 66 2e 22 3b 00 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 2a ptions.is.off.";.....const.char*
30ba0 20 6d 73 67 20 3d 00 20 20 69 66 28 21 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 4d 6f 64 .msg.=...if(!options::produceMod
30bc0 65 6c 73 28 29 29 20 7b 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 els()).{...}.....throw.ModalExce
30be0 70 74 69 6f 6e 28 6d 73 67 29 3b 00 20 20 20 20 20 20 22 70 72 65 63 65 64 65 64 20 62 79 20 53 ption(msg);......."preceded.by.S
30c00 41 54 2f 49 4e 56 41 4c 49 44 20 6f 72 20 55 4e 4b 4e 4f 57 4e 20 72 65 73 70 6f 6e 73 65 2e 22 AT/INVALID.or.UNKNOWN.response."
30c20 3b 00 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 67 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 ;......."Cannot.get.the.current.
30c40 6d 6f 64 65 6c 20 75 6e 6c 65 73 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 22 00 20 20 20 20 63 model.unless.immediately.".....c
30c60 6f 6e 73 74 20 63 68 61 72 2a 20 6d 73 67 20 3d 00 20 20 20 20 20 64 5f 70 72 6f 62 6c 65 6d 45 onst.char*.msg.=......d_problemE
30c80 78 74 65 6e 64 65 64 29 20 7b 00 20 20 20 20 20 64 5f 73 74 61 74 75 73 2e 61 73 53 61 74 69 73 xtended).{......d_status.asSatis
30ca0 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 20 3d 3d 20 52 65 73 75 6c 74 3a 3a 55 4e 53 fiabilityResult().==.Result::UNS
30cc0 41 54 20 7c 7c 00 20 20 69 66 28 64 5f 73 74 61 74 75 73 2e 69 73 4e 75 6c 6c 28 29 20 7c 7c 00 AT.||...if(d_status.isNull().||.
30ce0 00 20 20 7d 00 20 20 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 47 65 ...}.....Dump("benchmark").<<.Ge
30d00 74 4d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 28 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 tModelCommand();...if(Dump.isOn(
30d20 22 62 65 6e 63 68 6d 61 72 6b 22 29 29 20 7b 00 00 20 20 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 "benchmark")).{....finalOptionsA
30d40 72 65 53 65 74 28 29 3b 00 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b reSet();....SmtScope.smts(this);
30d60 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 67 65 74 4d 6f 64 65 6c ...Trace("smt").<<."SMT.getModel
30d80 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 4d 6f 64 65 6c 2a 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 ()".<<.endl;.Model*.SmtEngine::g
30da0 65 74 4d 6f 64 65 6c 28 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 etModel().{..}...}.....}.......d
30dc0 5f 64 75 6d 70 43 6f 6d 6d 61 6e 64 73 2e 70 75 73 68 5f 62 61 63 6b 28 63 2e 63 6c 6f 6e 65 28 _dumpCommands.push_back(c.clone(
30de0 29 29 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 44 75 6d 70 28 64 75 6d 70 ));.....}.else.{.......Dump(dump
30e00 54 61 67 29 20 3c 3c 20 63 3b 00 20 20 20 20 69 66 28 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 29 Tag).<<.c;.....if(d_fullyInited)
30e20 20 7b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 64 75 6d 70 54 61 67 29 29 20 7b 00 20 20 .{...if(Dump.isOn(dumpTag)).{...
30e40 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 64 5f 6d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 73 2d 3e 70 }.....}.......d_modelCommands->p
30e60 75 73 68 5f 62 61 63 6b 28 63 2e 63 6c 6f 6e 65 28 29 29 3b 00 20 20 20 20 7d 20 65 6c 73 65 20 ush_back(c.clone());.....}.else.
30e80 7b 00 20 20 20 20 20 20 64 5f 6d 6f 64 65 6c 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 73 2e 70 75 {.......d_modelGlobalCommands.pu
30ea0 73 68 5f 62 61 63 6b 28 63 2e 63 6c 6f 6e 65 28 29 29 3b 00 20 20 20 20 69 66 28 66 6c 61 67 73 sh_back(c.clone());.....if(flags
30ec0 20 26 20 45 78 70 72 4d 61 6e 61 67 65 72 3a 3a 56 41 52 5f 46 4c 41 47 5f 47 4c 4f 42 41 4c 29 .&.ExprManager::VAR_FLAG_GLOBAL)
30ee0 20 7b 00 20 20 20 20 64 6f 50 65 6e 64 69 6e 67 50 6f 70 73 28 29 3b 00 20 20 20 20 20 28 66 6c .{.....doPendingPops();......(fl
30f00 61 67 73 20 26 20 45 78 70 72 4d 61 6e 61 67 65 72 3a 3a 56 41 52 5f 46 4c 41 47 5f 44 45 46 49 ags.&.ExprManager::VAR_FLAG_DEFI
30f20 4e 45 44 29 20 3d 3d 20 30 29 20 7b 00 20 20 20 20 20 28 21 64 5f 66 75 6c 6c 79 49 6e 69 74 65 NED).==.0).{......(!d_fullyInite
30f40 64 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 4d 6f 64 65 6c 73 28 29 29 20 26 d.||.options::produceModels()).&
30f60 26 00 20 20 69 66 28 2f 2a 20 75 73 65 72 56 69 73 69 62 6c 65 20 26 26 20 2a 2f 00 20 20 2f 2f &...if(/*.userVisible.&&.*/...//
30f80 20 61 6e 64 20 65 78 70 65 63 74 73 20 74 6f 20 66 69 6e 64 20 74 68 65 69 72 20 63 61 72 64 69 .and.expects.to.find.their.cardi
30fa0 6e 61 6c 69 74 69 65 73 20 69 6e 20 74 68 65 20 6d 6f 64 65 6c 2e 00 20 20 2f 2f 20 45 78 70 72 nalities.in.the.model....//.Expr
30fc0 4d 61 6e 61 67 65 72 3a 3a 6d 6b 53 6f 72 74 28 29 20 62 65 66 6f 72 65 20 53 6d 74 45 6e 67 69 Manager::mkSort().before.SmtEngi
30fe0 6e 65 3a 3a 73 65 74 4f 70 74 69 6f 6e 28 22 70 72 6f 64 75 63 65 2d 6d 6f 64 65 6c 73 22 29 00 ne::setOption("produce-models").
31000 61 64 00 00 2f 00 00 00 6b 01 00 00 00 10 00 00 48 00 00 00 00 00 00 00 e2 0f 00 00 c2 0f 00 00 ad../...k.......H...............
31020 69 0f 00 00 68 0f 00 00 34 0f 00 00 cf 0e 00 00 6a 0e 00 00 56 0e 00 00 14 0e 00 00 d2 0d 00 00 i...h...4.......j...V...........
31040 c5 0d 00 00 a5 0d 00 00 9c 0d 00 00 56 0d 00 00 26 0d 00 00 25 0d 00 00 01 0d 00 00 dd 0c 00 00 ............V...&...%...........
31060 dc 0c 00 00 76 0c 00 00 75 0c 00 00 28 0c 00 00 e6 0b 00 00 bb 0b 00 00 7d 0b 00 00 32 0b 00 00 ....v...u...(...........}...2...
31080 04 0b 00 00 ca 0a 00 00 8a 0a 00 00 4d 0a 00 00 16 0a 00 00 ea 09 00 00 66 09 00 00 3b 09 00 00 ............M...........f...;...
310a0 1a 09 00 00 a8 08 00 00 8d 08 00 00 31 08 00 00 f2 07 00 00 ba 07 00 00 9e 07 00 00 66 07 00 00 ............1...............f...
310c0 5a 07 00 00 0f 07 00 00 c3 06 00 00 a0 06 00 00 96 06 00 00 8e 06 00 00 8d 06 00 00 57 06 00 00 Z...........................W...
310e0 36 06 00 00 d2 05 00 00 b9 05 00 00 5f 05 00 00 2e 05 00 00 fe 04 00 00 b4 04 00 00 6a 04 00 00 6..........._...............j...
31100 49 04 00 00 41 04 00 00 40 04 00 00 0d 04 00 00 b1 03 00 00 68 03 00 00 1e 03 00 00 b8 02 00 00 I...A...@...........h...........
31120 9f 02 00 00 45 02 00 00 14 02 00 00 e4 01 00 00 a8 01 00 00 6b 01 00 00 d3 06 00 00 b5 06 00 00 ....E...............k...........
31140 9c 06 00 00 7e 06 00 00 5f 06 00 00 3d 06 00 00 1b 06 00 00 f5 05 00 00 d5 05 00 00 a8 05 00 00 ....~..._...=...................
31160 85 05 00 00 62 05 00 00 35 05 00 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 73 68 6f 75 6c 64 ....b...5.............<<."should
31180 20 62 65 20 6f 66 20 74 79 70 65 20 22 20 3c 3c 20 66 75 6e 63 2e 67 65 74 54 79 70 65 28 29 20 .be.of.type.".<<.func.getType().
311a0 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 76 61 6c 75 65 20 74 79 70 <<.endl............<<."value.typ
311c0 65 20 69 73 20 20 20 20 20 22 20 3c 3c 20 76 61 6c 2e 67 65 74 54 79 70 65 28 29 20 3c 3c 20 65 e.is.....".<<.val.getType().<<.e
311e0 6e 64 6c 00 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 ndl............<<.".............
31200 69 73 20 22 20 3c 3c 20 76 61 6c 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 20 20 20 20 20 3c is.".<<.val.<<.endl............<
31220 3c 20 22 6d 6f 64 65 6c 20 76 61 6c 75 65 20 66 6f 72 20 22 20 3c 3c 20 66 75 6e 63 20 3c 3c 20 <."model.value.for.".<<.func.<<.
31240 65 6e 64 6c 00 20 20 20 20 20 20 20 20 73 73 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 endl.........ss.<<."SmtEngine::c
31260 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 45 52 52 4f 52 53 20 53 41 54 49 53 46 59 49 4e 47 20 41 heckModel():.ERRORS.SATISFYING.A
31280 53 53 45 52 54 49 4f 4e 53 20 57 49 54 48 20 4d 4f 44 45 4c 3a 22 20 3c 3c 20 65 6e 64 6c 00 20 SSERTIONS.WITH.MODEL:".<<.endl..
312a0 20 20 20 20 20 20 20 73 74 72 69 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 20 20 20 20 20 20 20 20 .......stringstream.ss;.........
312c0 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 Notice().<<."SmtEngine::checkMod
312e0 65 6c 28 29 3a 20 2a 2a 2a 20 50 52 4f 42 4c 45 4d 3a 20 4d 4f 44 45 4c 20 56 41 4c 55 45 20 4e el():.***.PROBLEM:.MODEL.VALUE.N
31300 4f 54 20 43 4f 52 52 45 43 54 20 54 59 50 45 20 2a 2a 2a 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 OT.CORRECT.TYPE.***".<<.endl;...
31320 20 20 20 20 65 6c 73 65 20 69 66 28 66 75 6e 63 2e 67 65 74 54 79 70 65 28 29 2e 69 73 49 6e 74 ....else.if(func.getType().isInt
31340 65 67 65 72 28 29 20 26 26 20 21 76 61 6c 2e 67 65 74 54 79 70 65 28 29 2e 69 73 49 6e 74 65 67 eger().&&.!val.getType().isInteg
31360 65 72 28 29 29 20 7b 00 20 20 20 20 20 20 2f 2f 20 65 2e 67 2e 20 22 31 22 20 69 73 20 61 6e 20 er()).{.......//.e.g.."1".is.an.
31380 49 4e 54 2c 20 77 68 69 63 68 20 69 73 6e 27 74 20 61 20 73 75 62 72 61 6e 67 65 20 74 79 70 65 INT,.which.isn't.a.subrange.type
313a0 20 5b 31 2e 2e 31 30 5d 20 28 65 74 63 2e 29 2e 00 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 77 .[1..10].(etc.)........//.This.w
313c0 61 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 61 20 6d 6f 72 65 20 67 65 6e 65 72 61 6c as.intended.to.be.a.more.general
313e0 20 63 68 65 63 6b 2c 20 62 75 74 20 66 6f 72 20 6e 6f 77 20 77 65 20 63 61 6e 27 74 20 64 6f 20 .check,.but.for.now.we.can't.do.
31400 74 68 61 74 20 62 65 63 61 75 73 65 00 20 20 20 20 20 20 2f 2f 20 28 33 29 20 63 68 65 63 6b 20 that.because.......//.(3).check.
31420 74 68 61 74 20 69 74 27 73 20 74 68 65 20 63 6f 72 72 65 63 74 20 28 73 75 62 29 74 79 70 65 00 that.it's.the.correct.(sub)type.
31440 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 49 6e 74 65 72 6e 61 6c 45 72 72 6f 72 28 73 .......}.........InternalError(s
31460 73 2e 73 74 72 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 52 75 6e 20 77 69 74 s.str());............<<."Run.wit
31480 68 20 60 2d 2d 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 20 2d 76 27 20 66 6f 72 20 61 64 64 69 74 69 h.`--check-models.-v'.for.additi
314a0 6f 6e 61 6c 20 64 69 61 67 6e 6f 73 74 69 63 73 2e 22 3b 00 20 20 20 20 20 20 20 20 20 20 20 3c onal.diagnostics.";............<
314c0 3c 20 22 61 6e 64 20 74 68 61 74 20 69 73 20 6e 6f 74 20 61 20 63 6f 6e 73 74 61 6e 74 20 28 2e <."and.that.is.not.a.constant.(.
314e0 69 73 43 6f 6e 73 74 28 29 20 3d 3d 20 66 61 6c 73 65 29 2e 22 20 3c 3c 20 65 6e 64 6c 00 20 20 isConst().==.false).".<<.endl...
31500 20 20 20 20 20 20 20 20 20 3c 3c 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 20 22 20 3c .........<<.".............is.".<
31520 3c 20 76 61 6c 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 6d 6f 64 <.val.<<.endl............<<."mod
31540 65 6c 20 76 61 6c 75 65 20 66 6f 72 20 22 20 3c 3c 20 66 75 6e 63 20 3c 3c 20 65 6e 64 6c 00 20 el.value.for.".<<.func.<<.endl..
31560 20 20 20 20 20 20 20 73 73 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f .......ss.<<."SmtEngine::checkMo
31580 64 65 6c 28 29 3a 20 45 52 52 4f 52 53 20 53 41 54 49 53 46 59 49 4e 47 20 41 53 53 45 52 54 49 del():.ERRORS.SATISFYING.ASSERTI
315a0 4f 4e 53 20 57 49 54 48 20 4d 4f 44 45 4c 3a 22 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 20 ONS.WITH.MODEL:".<<.endl........
315c0 20 73 74 72 69 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 20 20 20 20 20 20 20 20 4e 6f 74 69 63 65 .stringstream.ss;.........Notice
315e0 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 ().<<."SmtEngine::checkModel():.
31600 2a 2a 2a 20 50 52 4f 42 4c 45 4d 3a 20 4d 4f 44 45 4c 20 56 41 4c 55 45 20 4e 4f 54 20 41 20 43 ***.PROBLEM:.MODEL.VALUE.NOT.A.C
31620 4f 4e 53 54 41 4e 54 20 2a 2a 2a 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 65 6c 73 65 ONSTANT.***".<<.endl;.......else
31640 20 69 66 20 28 21 76 61 6c 2e 69 73 43 6f 6e 73 74 28 29 29 20 7b 00 20 20 20 20 20 20 2f 2f 20 .if.(!val.isConst()).{.......//.
31660 28 32 29 20 63 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 61 63 74 75 (2).check.that.the.value.is.actu
31680 61 6c 6c 79 20 61 20 76 61 6c 75 65 00 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 7d 00 ally.a.value........}.........}.
316a0 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 6e 61 6c 45 72 72 6f 72 28 73 73 2e 73 74 72 28 29 ..........InternalError(ss.str()
316c0 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 52 75 6e 20 77 69 74 68 20 60 2d 2d );..............<<."Run.with.`--
316e0 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 20 2d 76 27 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 check-models.-v'.for.additional.
31700 64 69 61 67 6e 6f 73 74 69 63 73 2e 22 3b 00 20 20 20 20 20 20 20 20 20 20 73 73 20 3c 3c 20 22 diagnostics.";...........ss.<<."
31720 73 6f 20 22 20 3c 3c 20 66 75 6e 63 20 3c 3c 20 22 20 69 73 20 64 65 66 69 6e 65 64 20 69 6e 20 so.".<<.func.<<.".is.defined.in.
31740 74 65 72 6d 73 20 6f 66 20 69 74 73 65 6c 66 2e 22 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 terms.of.itself.".<<.endl.......
31760 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 73 73 20 3c 3c 20 22 62 6f 64 79 20 73 75 ....}.............ss.<<."body.su
31780 62 73 74 69 74 75 74 65 73 20 74 6f 3a 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 bstitutes.to:.".<<.n.<<.endl;...
317a0 20 20 20 20 20 20 20 20 69 66 28 6e 20 21 3d 20 76 61 6c 5b 31 5d 29 20 7b 00 20 20 20 20 20 20 ........if(n.!=.val[1]).{.......
317c0 20 20 20 20 20 20 20 3c 3c 20 22 62 6f 64 79 20 6f 66 20 6c 61 6d 62 64 61 20 69 73 3a 20 20 20 .......<<."body.of.lambda.is:...
317e0 22 20 3c 3c 20 76 61 6c 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 3c ".<<.val.<<.endl;..............<
31800 3c 20 22 63 6f 6e 73 69 64 65 72 69 6e 67 20 6d 6f 64 65 6c 20 76 61 6c 75 65 20 66 6f 72 20 22 <."considering.model.value.for."
31820 20 3c 3c 20 66 75 6e 63 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 20 20 20 20 73 73 20 3c 3c .<<.func.<<.endl...........ss.<<
31840 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 45 52 52 4f 52 ."SmtEngine::checkModel():.ERROR
31860 53 20 53 41 54 49 53 46 59 49 4e 47 20 41 53 53 45 52 54 49 4f 4e 53 20 57 49 54 48 20 4d 4f 44 S.SATISFYING.ASSERTIONS.WITH.MOD
31880 45 4c 3a 22 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 73 74 72 EL:".<<.endl...........stringstr
318a0 65 61 6d 20 73 73 3b 00 20 20 20 20 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 eam.ss;...........Notice().<<."S
318c0 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 2a 2a 2a 20 50 52 4f 42 mtEngine::checkModel():.***.PROB
318e0 4c 45 4d 3a 20 4d 4f 44 45 4c 20 56 41 4c 55 45 20 44 45 46 49 4e 45 44 20 49 4e 20 54 45 52 4d LEM:.MODEL.VALUE.DEFINED.IN.TERM
31900 53 20 4f 46 20 49 54 53 45 4c 46 20 2a 2a 2a 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 S.OF.ITSELF.***".<<.endl;.......
31920 20 20 69 66 28 73 75 62 73 2e 61 70 70 6c 79 28 6e 29 20 21 3d 20 6e 29 20 7b 00 20 20 20 20 20 ..if(subs.apply(n).!=.n).{......
31940 20 20 20 73 75 62 73 2e 61 64 64 53 75 62 73 74 69 74 75 74 69 6f 6e 28 66 75 6e 63 2c 20 66 75 ...subs.addSubstitution(func,.fu
31960 6e 63 32 29 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 66 75 6e 63 32 20 3d 20 4e 6f 64 65 4d nc2);.........Node.func2.=.NodeM
31980 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 53 6b 6f 6c 65 6d 28 22 22 anager::currentNM()->mkSkolem(""
319a0 2c 20 54 79 70 65 4e 6f 64 65 3a 3a 66 72 6f 6d 54 79 70 65 28 66 75 6e 63 2e 67 65 74 54 79 70 ,.TypeNode::fromType(func.getTyp
319c0 65 28 29 29 2c 20 22 22 2c 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 53 4b 4f 4c 45 4d 5f 4e 4f e()),."",.NodeManager::SKOLEM_NO
319e0 5f 4e 4f 54 49 46 59 29 3b 00 20 20 20 20 20 20 20 20 53 75 62 73 74 69 74 75 74 69 6f 6e 4d 61 _NOTIFY);.........SubstitutionMa
31a00 70 20 73 75 62 73 28 26 66 61 6b 65 43 6f 6e 74 65 78 74 29 3b 00 20 20 20 20 20 20 20 20 2f 2f p.subs(&fakeContext);.........//
31a20 20 28 74 68 69 73 20 6a 75 73 74 20 61 20 77 61 79 20 74 6f 20 63 68 65 63 6b 20 69 66 20 66 75 .(this.just.a.way.to.check.if.fu
31a40 6e 63 20 69 73 20 69 6e 20 6e 2e 29 00 20 20 20 20 20 20 20 20 2f 2f 20 5b 66 75 6e 63 2d 3e 66 nc.is.in.n.).........//.[func->f
31a60 75 6e 63 32 5d 20 61 6e 64 20 63 68 65 63 6b 69 6e 67 20 65 71 75 61 6c 69 74 79 20 6f 66 20 74 unc2].and.checking.equality.of.t
31a80 68 65 20 4e 6f 64 65 73 2e 00 20 20 20 20 20 20 20 20 2f 2f 20 6e 6f 77 20 63 68 65 63 6b 20 69 he.Nodes..........//.now.check.i
31aa0 66 20 6e 20 63 6f 6e 74 61 69 6e 73 20 66 75 6e 63 20 62 79 20 64 6f 69 6e 67 20 61 20 73 75 62 f.n.contains.func.by.doing.a.sub
31ac0 73 74 69 74 75 74 69 6f 6e 00 20 20 20 20 20 20 20 20 44 65 62 75 67 28 22 62 6f 6f 6c 65 61 6e stitution.........Debug("boolean
31ae0 2d 74 65 72 6d 73 22 29 20 3c 3c 20 22 2b 2b 20 67 6f 74 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e -terms").<<."++.got.".<<.n.<<.en
31b00 64 6c 3b 00 20 20 20 20 20 20 20 20 4e 6f 64 65 20 6e 20 3d 20 73 75 62 73 74 69 74 75 74 69 6f dl;.........Node.n.=.substitutio
31b20 6e 73 2e 61 70 70 6c 79 28 76 61 6c 5b 31 5d 29 3b 00 20 20 20 20 20 20 20 20 44 65 62 75 67 28 ns.apply(val[1]);.........Debug(
31b40 22 62 6f 6f 6c 65 61 6e 2d 74 65 72 6d 73 22 29 20 3c 3c 20 22 61 70 70 6c 79 69 6e 67 20 73 75 "boolean-terms").<<."applying.su
31b60 62 73 65 73 20 74 6f 20 22 20 3c 3c 20 76 61 6c 5b 31 5d 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 bses.to.".<<.val[1].<<.endl;....
31b80 20 20 20 20 20 2f 2f 20 66 69 72 73 74 20 61 70 70 6c 79 20 74 68 65 20 6d 6f 64 65 6c 20 73 75 .....//.first.apply.the.model.su
31ba0 62 73 74 69 74 75 74 69 6f 6e 73 20 77 65 20 68 61 76 65 20 73 6f 20 66 61 72 00 20 20 20 20 20 bstitutions.we.have.so.far......
31bc0 20 69 66 20 28 76 61 6c 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 4c 41 4d 42 .if.(val.getKind().==.kind::LAMB
31be0 44 41 29 20 7b 00 20 20 20 20 20 20 2f 2f 20 66 75 6e 63 74 69 6f 6e 20 73 79 6d 62 6f 6c 20 28 DA).{.......//.function.symbol.(
31c00 73 69 6e 63 65 20 74 68 65 6e 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 69 73 20 72 65 63 since.then.the.definition.is.rec
31c20 75 72 73 69 76 65 29 00 20 20 20 20 20 20 2f 2f 20 28 31 29 20 69 66 20 74 68 65 20 76 61 6c 75 ursive).......//.(1).if.the.valu
31c40 65 20 69 73 20 61 20 6c 61 6d 62 64 61 2c 20 65 6e 73 75 72 65 20 74 68 65 20 6c 61 6d 62 64 61 e.is.a.lambda,.ensure.the.lambda
31c60 20 64 6f 65 73 6e 27 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 00 00 20 20 20 20 20 20 4e 6f 74 69 .doesn't.contain.the........Noti
31c80 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 ce().<<."SmtEngine::checkModel()
31ca0 3a 20 61 64 64 69 6e 67 20 73 75 62 73 74 69 74 75 74 69 6f 6e 3a 20 22 20 3c 3c 20 66 75 6e 63 :.adding.substitution:.".<<.func
31cc0 20 3c 3c 20 22 20 7c 2d 3e 20 22 20 3c 3c 20 76 61 6c 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 20 .<<.".|->.".<<.val.<<.endl;.....
31ce0 20 20 20 4e 6f 64 65 20 76 61 6c 20 3d 20 6d 2d 3e 67 65 74 56 61 6c 75 65 28 66 75 6e 63 29 3b ...Node.val.=.m->getValue(func);
31d00 00 20 20 20 20 20 20 45 78 70 72 20 66 75 6e 63 20 3d 20 63 2d 3e 67 65 74 46 75 6e 63 74 69 6f .......Expr.func.=.c->getFunctio
31d20 6e 28 29 3b 00 00 20 20 20 20 20 20 2f 2f 20 74 68 65 20 6d 61 70 70 69 6e 67 3a 20 66 75 6e 63 n();........//.the.mapping:.func
31d40 74 69 6f 6e 20 73 79 6d 62 6f 6c 20 7c 2d 3e 20 76 61 6c 75 65 00 20 20 20 20 20 20 2f 2f 20 57 tion.symbol.|->.value.......//.W
31d60 65 27 6c 6c 20 66 69 72 73 74 20 64 6f 20 73 6f 6d 65 20 63 68 65 63 6b 73 2c 20 74 68 65 6e 20 e'll.first.do.some.checks,.then.
31d80 61 64 64 20 74 6f 20 6f 75 72 20 73 75 62 73 74 69 74 75 74 69 6f 6e 20 6d 61 70 00 20 20 20 20 add.to.our.substitution.map.....
31da0 20 20 2f 2f 00 20 20 20 20 20 20 2f 2f 20 57 65 20 68 61 76 65 20 61 20 44 45 43 4c 41 52 45 2d ..//.......//.We.have.a.DECLARE-
31dc0 46 55 4e 3a 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 FUN:.....}.else.{.......Notice()
31de0 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 73 6b .<<."SmtEngine::checkModel():.sk
31e00 69 70 70 69 6e 67 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 2f 2f 20 77 65 20 ipping...".<<.endl;.......//.we.
31e20 64 6f 6e 27 74 20 63 61 72 65 20 61 62 6f 75 74 20 44 45 43 4c 41 52 45 2d 44 41 54 41 54 59 50 don't.care.about.DECLARE-DATATYP
31e40 45 53 2c 20 44 45 43 4c 41 52 45 2d 53 4f 52 54 2c 20 2e 2e 2e 00 20 20 20 20 69 66 28 63 20 3d ES,.DECLARE-SORT,.........if(c.=
31e60 3d 20 4e 55 4c 4c 29 20 7b 00 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e =.NULL).{.....Notice().<<."SmtEn
31e80 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 6d 6f 64 65 6c 20 63 6f 6d 6d 61 6e gine::checkModel():.model.comman
31ea0 64 20 22 20 3c 3c 20 6b 20 3c 3c 20 22 20 3a 20 22 20 3c 3c 20 6d 2d 3e 67 65 74 43 6f 6d 6d 61 d.".<<.k.<<.".:.".<<.m->getComma
31ec0 6e 64 28 6b 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 63 6f 6e 73 74 20 44 65 63 6c 61 72 65 nd(k).<<.endl;.....const.Declare
31ee0 46 75 6e 63 74 69 6f 6e 43 6f 6d 6d 61 6e 64 2a 20 63 20 3d 20 64 79 6e 61 6d 69 63 5f 63 61 73 FunctionCommand*.c.=.dynamic_cas
31f00 74 3c 63 6f 6e 73 74 20 44 65 63 6c 61 72 65 46 75 6e 63 74 69 6f 6e 43 6f 6d 6d 61 6e 64 2a 3e t<const.DeclareFunctionCommand*>
31f20 28 6d 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 6b 29 29 3b 00 20 20 66 6f 72 28 73 69 7a 65 5f 74 (m->getCommand(k));...for(size_t
31f40 20 6b 20 3d 20 30 3b 20 6b 20 3c 20 6d 2d 3e 67 65 74 4e 75 6d 43 6f 6d 6d 61 6e 64 73 28 29 3b .k.=.0;.k.<.m->getNumCommands();
31f60 20 2b 2b 6b 29 20 7b 00 00 20 20 53 75 62 73 74 69 74 75 74 69 6f 6e 4d 61 70 20 73 75 62 73 74 .++k).{....SubstitutionMap.subst
31f80 69 74 75 74 69 6f 6e 73 28 26 66 61 6b 65 43 6f 6e 74 65 78 74 2c 20 2f 2a 20 73 75 62 73 74 69 itutions(&fakeContext,./*.substi
31fa0 74 75 74 65 55 6e 64 65 72 51 75 61 6e 74 69 66 69 65 72 73 20 3d 20 2a 2f 20 66 61 6c 73 65 29 tuteUnderQuantifiers.=.*/.false)
31fc0 3b 00 20 20 63 6f 6e 74 65 78 74 3a 3a 43 6f 6e 74 65 78 74 20 66 61 6b 65 43 6f 6e 74 65 78 74 ;...context::Context.fakeContext
31fe0 3b 00 20 20 2f 2f 20 74 6f 20 62 65 20 63 6f 6e 74 65 78 74 2d 64 65 70 65 6e 64 65 6e 74 29 00 ;...//.to.be.context-dependent).
32000 61 64 00 00 21 00 00 00 6d 01 00 00 00 10 00 00 4c 00 00 00 00 00 00 00 b6 0f 00 00 95 0f 00 00 ad..!...m.......L...............
32020 8d 0f 00 00 8c 0f 00 00 59 0f 00 00 03 0f 00 00 d3 0e 00 00 cd 0e 00 00 c9 0e 00 00 c8 0e 00 00 ........Y.......................
32040 7d 0e 00 00 17 0e 00 00 c9 0d 00 00 a8 0d 00 00 a7 0d 00 00 78 0d 00 00 72 0d 00 00 3e 0d 00 00 }...................x...r...>...
32060 0c 0d 00 00 06 0d 00 00 be 0c 00 00 bd 0c 00 00 91 0c 00 00 4f 0c 00 00 2f 0c 00 00 f9 0b 00 00 ....................O.../.......
32080 ad 0b 00 00 ac 0b 00 00 7f 0b 00 00 30 0b 00 00 ea 0a 00 00 d0 0a 00 00 80 0a 00 00 73 0a 00 00 ............0...............s...
320a0 2f 0a 00 00 e5 09 00 00 9e 09 00 00 56 09 00 00 28 09 00 00 d7 08 00 00 bf 08 00 00 af 08 00 00 /...........V...(...............
320c0 a9 08 00 00 a8 08 00 00 8c 08 00 00 6c 08 00 00 20 08 00 00 1f 08 00 00 c2 07 00 00 96 07 00 00 ............l...................
320e0 43 07 00 00 42 07 00 00 ea 06 00 00 a8 06 00 00 88 06 00 00 52 06 00 00 03 06 00 00 02 06 00 00 C...B...............R...........
32100 c9 05 00 00 79 05 00 00 41 05 00 00 29 05 00 00 d7 04 00 00 d6 04 00 00 b4 04 00 00 38 04 00 00 ....y...A...)...............8...
32120 ad 03 00 00 70 03 00 00 03 03 00 00 bb 02 00 00 53 02 00 00 ff 01 00 00 92 01 00 00 80 01 00 00 ....p...........S...............
32140 78 01 00 00 6d 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 x...m...........................
32160 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 7d 65 6c 73 65 7b 00 20 20 20 20 20 20 7d 00 .................}else{.......}.
32180 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 20 20 20 20 20 20 20 20 57 61 72 6e 69 6e ........continue;.........Warnin
321a0 67 28 29 20 3c 3c 20 22 57 61 72 6e 69 6e 67 20 3a 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 g().<<."Warning.:.SmtEngine::che
321c0 63 6b 4d 6f 64 65 6c 28 29 3a 20 63 61 6e 6e 6f 74 20 63 68 65 63 6b 20 73 69 6d 70 6c 69 66 69 ckModel():.cannot.check.simplifi
321e0 65 64 20 61 73 73 65 72 74 69 6f 6e 20 3a 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 ed.assertion.:.".<<.n.<<.endl;..
32200 20 20 20 20 20 20 20 41 6c 77 61 79 73 41 73 73 65 72 74 28 20 71 75 61 6e 74 69 66 69 65 72 73 .......AlwaysAssert(.quantifiers
32220 3a 3a 51 75 61 6e 74 69 66 69 65 72 73 52 65 77 72 69 74 65 72 3a 3a 63 6f 6e 74 61 69 6e 73 51 ::QuantifiersRewriter::containsQ
32240 75 61 6e 74 69 66 69 65 72 73 28 20 6e 20 29 20 29 3b 00 20 20 20 20 20 20 20 20 4e 6f 74 69 63 uantifiers(.n.).);.........Notic
32260 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a e().<<."SmtEngine::checkModel():
32280 20 2d 2d 20 72 65 6c 61 78 20 63 68 65 63 6b 20 6d 6f 64 65 6c 20 77 72 74 20 71 75 61 6e 74 69 .--.relax.check.model.wrt.quanti
322a0 66 69 65 64 20 66 6f 72 6d 75 6c 61 73 2e 2e 2e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 fied.formulas...".<<.endl;......
322c0 20 69 66 28 20 68 61 72 64 46 61 69 6c 75 72 65 20 26 26 20 21 6e 2e 69 73 43 6f 6e 73 74 28 29 .if(.hardFailure.&&.!n.isConst()
322e0 20 26 26 20 6e 2e 67 65 74 4b 69 6e 64 28 29 20 21 3d 20 6b 69 6e 64 3a 3a 4c 41 4d 42 44 41 20 .&&.n.getKind().!=.kind::LAMBDA.
32300 29 7b 00 20 20 20 20 20 20 2f 2f 20 74 68 69 73 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 75 6e ){.......//.this.is.necessary.un
32320 74 69 6c 20 70 72 65 70 72 6f 63 65 73 73 69 6e 67 20 70 61 73 73 65 73 20 65 78 70 6c 69 63 69 til.preprocessing.passes.explici
32340 74 6c 79 20 72 65 63 6f 72 64 20 68 6f 77 20 74 68 65 79 20 72 65 77 72 69 74 65 20 71 75 61 6e tly.record.how.they.rewrite.quan
32360 74 69 66 69 65 64 20 66 6f 72 6d 75 6c 61 73 00 20 20 20 20 20 20 2f 2f 20 68 65 6e 63 65 20 77 tified.formulas.......//.hence.w
32380 65 20 75 73 65 20 61 20 72 65 6c 61 78 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 63 68 65 63 6b e.use.a.relaxed.version.of.check
323a0 20 6d 6f 64 65 6c 20 68 65 72 65 2e 00 20 20 20 20 20 20 2f 2f 20 68 6f 77 65 76 65 72 2c 20 71 .model.here........//.however,.q
323c0 75 61 6e 74 69 66 69 65 64 20 66 6f 72 6d 75 6c 61 73 20 63 61 6e 20 62 65 20 6d 6f 64 69 66 69 uantified.formulas.can.be.modifi
323e0 65 64 20 64 75 72 69 6e 67 20 70 72 65 70 72 6f 63 65 73 73 2c 20 73 6f 20 74 68 65 79 20 6d 61 ed.during.preprocess,.so.they.ma
32400 79 20 6e 6f 74 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 74 68 6f 73 65 20 69 6e 20 74 68 65 y.not.correspond.to.those.in.the
32420 20 73 61 74 69 73 66 79 69 6e 67 20 61 73 73 69 67 6e 6d 65 6e 74 2e 00 20 20 20 20 20 20 2f 2f .satisfying.assignment........//
32440 20 41 4a 52 3a 20 73 69 6e 63 65 20 71 75 61 6e 74 69 66 69 65 64 20 66 6f 72 6d 75 6c 61 73 20 .AJR:.since.quantified.formulas.
32460 61 72 65 20 6e 6f 74 20 63 68 65 63 6b 61 62 6c 65 2c 20 77 65 20 61 73 73 69 67 6e 20 74 68 65 are.not.checkable,.we.assign.the
32480 6d 20 74 6f 20 74 72 75 65 2f 66 61 6c 73 65 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 73 61 74 m.to.true/false.based.on.the.sat
324a0 69 73 66 79 69 6e 67 20 61 73 73 69 67 6e 6d 65 6e 74 2e 00 20 20 20 20 69 66 28 20 64 5f 6c 6f isfying.assignment......if(.d_lo
324c0 67 69 63 2e 69 73 51 75 61 6e 74 69 66 69 65 64 28 29 20 29 7b 00 00 20 20 20 20 4e 6f 74 69 63 gic.isQuantified().){......Notic
324e0 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a e().<<."SmtEngine::checkModel():
32500 20 2d 2d 20 6d 6f 64 65 6c 2d 73 75 62 73 74 69 74 75 74 65 73 20 74 6f 20 22 20 3c 3c 20 6e 20 .--.model-substitutes.to.".<<.n.
32520 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 6e 20 3d 20 6d 2d 3e 67 65 74 56 61 6c 75 65 28 6e 29 3b <<.endl;.....n.=.m->getValue(n);
32540 00 20 20 20 20 2f 2f 20 62 75 74 20 64 6f 6e 27 74 20 73 68 6f 77 20 75 70 20 69 6e 20 6f 75 72 .....//.but.don't.show.up.in.our
32560 20 73 75 62 73 74 69 74 75 74 69 6f 6e 20 6d 61 70 20 61 62 6f 76 65 2e 00 20 20 20 20 2f 2f 20 .substitution.map.above......//.
32580 50 72 65 73 65 6e 74 6c 79 2c 20 74 68 69 73 20 69 73 20 6f 6e 6c 79 20 61 6e 20 69 73 73 75 65 Presently,.this.is.only.an.issue
325a0 20 66 6f 72 20 71 75 61 6e 74 69 66 69 65 72 73 2c 20 77 68 69 63 68 20 63 61 6e 20 68 61 76 65 .for.quantifiers,.which.can.have
325c0 20 61 20 76 61 6c 75 65 00 20 20 20 20 2f 2f 20 41 73 20 61 20 6c 61 73 74 2d 64 69 74 63 68 20 .a.value.....//.As.a.last-ditch.
325e0 65 66 66 6f 72 74 2c 20 61 73 6b 20 6d 6f 64 65 6c 20 74 6f 20 73 69 6d 70 6c 69 66 79 20 69 74 effort,.ask.model.to.simplify.it
32600 2e 00 00 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 .......Notice().<<."SmtEngine::c
32620 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 2d 2d 20 72 65 2d 73 75 62 73 74 69 74 75 74 65 73 20 74 heckModel():.--.re-substitutes.t
32640 6f 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 44 65 62 75 67 28 22 62 6f 6f o.".<<.n.<<.endl;.....Debug("boo
32660 6c 65 61 6e 2d 74 65 72 6d 73 22 29 20 3c 3c 20 22 2b 2b 20 67 6f 74 20 22 20 3c 3c 20 6e 20 3c lean-terms").<<."++.got.".<<.n.<
32680 3c 20 65 6e 64 6c 3b 00 20 20 20 20 6e 20 3d 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 61 70 <.endl;.....n.=.substitutions.ap
326a0 70 6c 79 28 6e 29 3b 00 20 20 20 20 44 65 62 75 67 28 22 62 6f 6f 6c 65 61 6e 2d 74 65 72 6d 73 ply(n);.....Debug("boolean-terms
326c0 22 29 20 3c 3c 20 22 61 70 70 6c 79 69 6e 67 20 73 75 62 73 65 73 20 74 6f 20 22 20 3c 3c 20 6e ").<<."applying.subses.to.".<<.n
326e0 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 2f 2f 20 41 70 70 6c 79 20 6f 75 72 20 6d 6f 64 65 6c .<<.endl;.....//.Apply.our.model
32700 20 76 61 6c 75 65 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 20 28 61 67 61 69 6e 29 2c 20 61 73 .value.substitutions.(again),.as
32720 20 74 68 69 6e 67 73 20 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 73 69 6d 70 6c 69 66 69 65 64 .things.may.have.been.simplified
32740 2e 00 00 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 .......Notice().<<."SmtEngine::c
32760 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 2d 2d 20 69 74 65 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 heckModel():.--.ite.replacement.
32780 67 69 76 65 73 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 6e 20 3d 20 64 5f gives.".<<.n.<<.endl;.....n.=.d_
327a0 70 72 69 76 61 74 65 2d 3e 64 5f 69 74 65 52 65 6d 6f 76 65 72 2e 72 65 70 6c 61 63 65 28 6e 29 private->d_iteRemover.replace(n)
327c0 3b 00 20 20 20 20 2f 2f 20 52 65 70 6c 61 63 65 20 74 68 65 20 61 6c 72 65 61 64 79 2d 6b 6e 6f ;.....//.Replace.the.already-kno
327e0 77 6e 20 49 54 45 73 20 28 74 68 69 73 20 69 73 20 69 6d 70 6f 72 74 61 6e 74 20 66 6f 72 20 67 wn.ITEs.(this.is.important.for.g
32800 72 6f 75 6e 64 20 49 54 45 73 20 75 6e 64 65 72 20 71 75 61 6e 74 69 66 69 65 72 73 29 2e 00 00 round.ITEs.under.quantifiers)...
32820 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 ....Notice().<<."SmtEngine::chec
32840 6b 4d 6f 64 65 6c 28 29 3a 20 2d 2d 20 73 69 6d 70 6c 69 66 69 65 73 20 74 6f 20 20 22 20 3c 3c kModel():.--.simplifies.to..".<<
32860 20 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 6e 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 73 .n.<<.endl;.....n.=.d_private->s
32880 69 6d 70 6c 69 66 79 28 6e 29 3b 00 20 20 20 20 2f 2f 20 53 69 6d 70 6c 69 66 79 20 74 68 65 20 implify(n);.....//.Simplify.the.
328a0 72 65 73 75 6c 74 2e 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 20 result.......}.......continue;..
328c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 4e 6f 74 ..............<<.endl;.......Not
328e0 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 ice().<<."SmtEngine::checkModel(
32900 29 3a 20 2d 2d 20 73 6b 69 70 70 69 6e 67 20 72 65 77 72 69 74 65 2d 72 75 6c 65 73 20 61 73 73 ):.--.skipping.rewrite-rules.ass
32920 65 72 74 69 6f 6e 22 00 20 20 20 20 20 20 2f 2f 20 61 6e 79 77 61 79 20 28 74 68 6f 73 65 20 6e ertion".......//.anyway.(those.n
32940 6f 74 20 61 74 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 29 2e 00 20 20 20 20 20 20 2f 2f 20 61 ot.at.the.top-level)........//.a
32960 62 6f 76 65 2c 20 62 65 66 6f 72 65 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 2c 20 64 6f 65 bove,.before.simplification,.doe
32980 73 6e 27 74 20 63 61 74 63 68 20 62 75 72 69 65 64 20 71 75 61 6e 74 69 66 69 65 72 73 00 20 20 sn't.catch.buried.quantifiers...
329a0 20 20 20 20 2f 2f 20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 62 65 20 72 65 70 6f 72 74 65 64 2c ....//.which.should.be.reported,
329c0 20 61 6e 64 20 28 32 29 20 63 68 65 63 6b 69 6e 67 20 66 6f 72 20 74 68 65 20 71 75 61 6e 74 69 .and.(2).checking.for.the.quanti
329e0 66 69 65 72 00 20 20 20 20 20 20 2f 2f 20 62 65 63 61 75 73 65 20 28 31 29 20 74 68 65 20 71 75 fier.......//.because.(1).the.qu
32a00 61 6e 74 69 66 69 65 72 20 63 6f 75 6c 64 20 69 6e 20 70 72 69 6e 63 69 70 6c 65 20 73 69 6d 70 antifier.could.in.principle.simp
32a20 6c 69 66 79 20 74 6f 20 66 61 6c 73 65 2c 00 20 20 20 20 20 20 2f 2f 20 4e 6f 74 65 20 74 68 69 lify.to.false,.......//.Note.thi
32a40 73 20 22 73 6b 69 70 22 20 69 73 20 64 6f 6e 65 20 68 65 72 65 2c 20 72 61 74 68 65 72 20 74 68 s."skip".is.done.here,.rather.th
32a60 61 6e 20 61 62 6f 76 65 2e 20 20 54 68 69 73 20 69 73 00 20 20 20 20 7d 20 65 6c 73 65 20 7b 00 an.above...This.is.....}.else.{.
32a80 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 ......Notice().<<."SmtEngine::ch
32aa0 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 2d 2d 20 67 65 74 20 76 61 6c 75 65 20 3a 20 22 20 3c 3c 20 eckModel():.--.get.value.:.".<<.
32ac0 6e 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 20 20 6e 20 3d 20 6d 2d 3e 67 65 74 n.<<.std::endl;.......n.=.m->get
32ae0 56 61 6c 75 65 28 6e 29 3b 00 20 20 20 20 20 20 2f 2f 20 73 69 6d 70 6c 69 66 79 69 6e 67 2c 20 Value(n);.......//.simplifying,.
32b00 6f 72 20 74 68 65 20 71 75 61 6e 74 69 66 69 65 72 20 6d 69 67 68 74 20 62 65 20 69 72 72 65 70 or.the.quantifier.might.be.irrep
32b20 61 72 61 62 6c 79 20 61 6c 74 65 72 65 64 2e 00 20 20 20 20 20 20 2f 2f 20 49 6e 20 63 61 73 65 arably.altered........//.In.case
32b40 20 69 74 27 73 20 61 20 71 75 61 6e 74 69 66 69 65 72 20 28 6f 72 20 63 6f 6e 74 61 69 6e 73 20 .it's.a.quantifier.(or.contains.
32b60 6f 6e 65 29 2c 20 6c 6f 6f 6b 20 75 70 20 69 74 73 20 76 61 6c 75 65 20 62 65 66 6f 72 65 00 20 one),.look.up.its.value.before..
32b80 20 20 20 69 66 28 20 6e 2e 67 65 74 4b 69 6e 64 28 29 20 21 3d 20 6b 69 6e 64 3a 3a 52 45 57 52 ...if(.n.getKind().!=.kind::REWR
32ba0 49 54 45 5f 52 55 4c 45 20 29 7b 00 00 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d ITE_RULE.){......Notice().<<."Sm
32bc0 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 2d 2d 20 73 75 62 73 74 69 tEngine::checkModel():.--.substi
32be0 74 75 74 65 73 20 74 6f 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 44 65 62 tutes.to.".<<.n.<<.endl;.....Deb
32c00 75 67 28 22 62 6f 6f 6c 65 61 6e 2d 74 65 72 6d 73 22 29 20 3c 3c 20 22 2b 2b 20 67 6f 74 20 22 ug("boolean-terms").<<."++.got."
32c20 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 6e 20 3d 20 73 75 62 73 74 69 74 75 74 .<<.n.<<.endl;.....n.=.substitut
32c40 69 6f 6e 73 2e 61 70 70 6c 79 28 6e 29 3b 00 20 20 20 20 44 65 62 75 67 28 22 62 6f 6f 6c 65 61 ions.apply(n);.....Debug("boolea
32c60 6e 2d 74 65 72 6d 73 22 29 20 3c 3c 20 22 61 70 70 6c 79 69 6e 67 20 73 75 62 73 65 73 20 74 6f n-terms").<<."applying.subses.to
32c80 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 2f 2f 20 41 70 70 6c 79 20 6f 75 .".<<.n.<<.endl;.....//.Apply.ou
32ca0 72 20 6d 6f 64 65 6c 20 76 61 6c 75 65 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73 2e 00 00 20 20 r.model.value.substitutions.....
32cc0 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d ..Notice().<<."SmtEngine::checkM
32ce0 6f 64 65 6c 28 29 3a 20 2d 2d 20 65 78 70 61 6e 64 73 20 74 6f 20 22 20 3c 3c 20 6e 20 3c 3c 20 odel():.--.expands.to.".<<.n.<<.
32d00 65 6e 64 6c 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 6e 20 3d 20 64 5f 70 72 69 76 61 74 65 2d endl;.....}.......n.=.d_private-
32d20 3e 65 78 70 61 6e 64 44 65 66 69 6e 69 74 69 6f 6e 73 28 6e 2c 20 63 61 63 68 65 29 3b 00 20 20 >expandDefinitions(n,.cache);...
32d40 20 20 20 20 68 61 73 68 5f 6d 61 70 3c 4e 6f 64 65 2c 20 4e 6f 64 65 2c 20 4e 6f 64 65 48 61 73 ....hash_map<Node,.Node,.NodeHas
32d60 68 46 75 6e 63 74 69 6f 6e 3e 20 63 61 63 68 65 3b 00 20 20 20 20 7b 00 20 20 20 20 2f 2f 20 41 hFunction>.cache;.....{.....//.A
32d80 70 70 6c 79 20 61 6e 79 20 64 65 66 69 6e 65 2d 66 75 6e 73 20 66 72 6f 6d 20 74 68 65 20 70 72 pply.any.define-funs.from.the.pr
32da0 6f 62 6c 65 6d 2e 00 00 20 20 20 20 4e 6f 64 65 20 6e 20 3d 20 4e 6f 64 65 3a 3a 66 72 6f 6d 45 oblem.......Node.n.=.Node::fromE
32dc0 78 70 72 28 2a 69 29 3b 00 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 xpr(*i);.....Notice().<<."SmtEng
32de0 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 63 68 65 63 6b 69 6e 67 20 61 73 73 65 ine::checkModel():.checking.asse
32e00 72 74 69 6f 6e 20 22 20 3c 3c 20 2a 69 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 66 6f 72 28 41 73 73 rtion.".<<.*i.<<.endl;...for(Ass
32e20 65 72 74 69 6f 6e 4c 69 73 74 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 69 20 3d 20 64 ertionList::const_iterator.i.=.d
32e40 5f 61 73 73 65 72 74 69 6f 6e 4c 69 73 74 2d 3e 62 65 67 69 6e 28 29 3b 20 69 20 21 3d 20 64 5f _assertionList->begin();.i.!=.d_
32e60 61 73 73 65 72 74 69 6f 6e 4c 69 73 74 2d 3e 65 6e 64 28 29 3b 20 2b 2b 69 29 20 7b 00 20 20 2f assertionList->end();.++i).{.../
32e80 2f 20 4e 6f 77 20 67 6f 20 74 68 72 6f 75 67 68 20 61 6c 6c 20 6f 75 72 20 75 73 65 72 20 61 73 /.Now.go.through.all.our.user.as
32ea0 73 65 72 74 69 6f 6e 73 20 63 68 65 63 6b 69 6e 67 20 69 66 20 74 68 65 79 27 72 65 20 73 61 74 sertions.checking.if.they're.sat
32ec0 69 73 66 69 65 64 2e 00 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 73 75 62 73 74 69 74 isfied.....}.....}.......substit
32ee0 75 74 69 6f 6e 73 2e 61 64 64 53 75 62 73 74 69 74 75 74 69 6f 6e 28 66 75 6e 63 2c 20 76 61 6c utions.addSubstitution(func,.val
32f00 29 3b 00 20 20 20 20 20 20 44 65 62 75 67 28 22 62 6f 6f 6c 65 61 6e 2d 74 65 72 6d 73 22 29 20 );.......Debug("boolean-terms").
32f20 3c 3c 20 22 63 6d 3a 20 61 64 64 69 6e 67 20 73 75 62 73 20 22 20 3c 3c 20 66 75 6e 63 20 3c 3c <<."cm:.adding.subs.".<<.func.<<
32f40 20 22 20 3a 3d 3e 20 22 20 3c 3c 20 76 61 6c 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 2f .".:=>.".<<.val.<<.endl;......./
32f60 2f 20 28 34 29 20 63 68 65 63 6b 73 20 63 6f 6d 70 6c 65 74 65 2c 20 61 64 64 20 74 68 65 20 73 /.(4).checks.complete,.add.the.s
32f80 75 62 73 74 69 74 75 74 69 6f 6e 00 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 49 6e 74 ubstitution........}.........Int
32fa0 65 72 6e 61 6c 45 72 72 6f 72 28 73 73 2e 73 74 72 28 29 29 3b 00 20 20 20 20 20 20 20 20 20 20 ernalError(ss.str());...........
32fc0 20 3c 3c 20 22 52 75 6e 20 77 69 74 68 20 60 2d 2d 63 68 65 63 6b 2d 6d 6f 64 65 6c 73 20 2d 76 .<<."Run.with.`--check-models.-v
32fe0 27 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 69 61 67 6e 6f 73 74 69 63 73 2e 22 3b 00 '.for.additional.diagnostics.";.
33000 61 64 00 00 1d 00 00 00 d9 01 00 00 00 10 00 00 68 00 00 00 00 00 00 00 b0 0f 00 00 aa 0f 00 00 ad..............h...............
33020 85 0f 00 00 4e 0f 00 00 00 0f 00 00 e8 0e 00 00 d1 0e 00 00 a9 0e 00 00 6a 0e 00 00 3e 0e 00 00 ....N...................j...>...
33040 13 0e 00 00 ec 0d 00 00 a4 0d 00 00 8c 0d 00 00 6b 0d 00 00 5c 0d 00 00 35 0d 00 00 2d 0d 00 00 ................k...\...5...-...
33060 27 0d 00 00 23 0d 00 00 d1 0c 00 00 cf 0c 00 00 ce 0c 00 00 a8 0c 00 00 78 0c 00 00 61 0c 00 00 '...#...................x...a...
33080 49 0c 00 00 2a 0c 00 00 fa 0b 00 00 f6 0b 00 00 e2 0b 00 00 c3 0b 00 00 65 0b 00 00 61 0b 00 00 I...*...................e...a...
330a0 47 0b 00 00 0c 0b 00 00 f2 0a 00 00 87 0a 00 00 83 0a 00 00 82 0a 00 00 3e 0a 00 00 00 0a 00 00 G.......................>.......
330c0 e4 09 00 00 7f 09 00 00 62 09 00 00 60 09 00 00 5f 09 00 00 40 09 00 00 14 09 00 00 fd 08 00 00 ........b...`..._...@...........
330e0 e5 08 00 00 c6 08 00 00 9a 08 00 00 96 08 00 00 82 08 00 00 68 08 00 00 15 08 00 00 11 08 00 00 ....................h...........
33100 f7 07 00 00 bc 07 00 00 a2 07 00 00 3d 07 00 00 39 07 00 00 38 07 00 00 11 07 00 00 f5 06 00 00 ............=...9...8...........
33120 ab 06 00 00 8e 06 00 00 8c 06 00 00 8b 06 00 00 50 06 00 00 39 06 00 00 00 06 00 00 b1 05 00 00 ................P...9...........
33140 ad 05 00 00 95 05 00 00 65 05 00 00 5c 05 00 00 47 05 00 00 43 05 00 00 0a 05 00 00 bd 04 00 00 ........e...\...G...C...........
33160 b9 04 00 00 b7 04 00 00 b6 04 00 00 7c 04 00 00 65 04 00 00 4d 04 00 00 1e 04 00 00 15 04 00 00 ............|...e...M...........
33180 00 04 00 00 fc 03 00 00 fa 03 00 00 f9 03 00 00 69 03 00 00 52 03 00 00 23 03 00 00 cf 02 00 00 ................i...R...#.......
331a0 cb 02 00 00 86 02 00 00 64 02 00 00 3f 02 00 00 dd 01 00 00 d9 01 00 00 00 00 00 00 00 00 00 00 ........d...?...................
331c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 7d 00 20 20 20 ...........................}....
331e0 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 22 45 78 70 65 63 74 69 6e 67 .throw.ModalException("Expecting
33200 20 61 6e 20 65 78 69 73 74 65 6e 74 69 61 6c 6c 79 20 71 75 61 6e 74 69 66 69 65 64 20 66 6f 72 .an.existentially.quantified.for
33220 6d 75 6c 61 20 61 73 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 67 65 74 2d 71 65 2e 22 29 3b 00 20 mula.as.argument.to.get-qe.");..
33240 20 69 66 28 20 6e 5f 65 2e 67 65 74 4b 69 6e 64 28 29 21 3d 6b 69 6e 64 3a 3a 45 58 49 53 54 53 .if(.n_e.getKind()!=kind::EXISTS
33260 20 29 7b 00 20 20 4e 6f 64 65 20 6e 5f 65 20 3d 20 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 .){...Node.n_e.=.Node::fromExpr(
33280 20 65 20 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 2d 71 65 22 29 20 3c 3c 20 22 44 6f 20 71 .e.);...Trace("smt-qe").<<."Do.q
332a0 75 61 6e 74 69 66 69 65 72 20 65 6c 69 6d 69 6e 61 74 69 6f 6e 20 22 20 3c 3c 20 65 20 3c 3c 20 uantifier.elimination.".<<.e.<<.
332c0 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 7d 00 20 20 20 20 57 61 72 6e 69 6e 67 28 29 20 3c 3c 20 std::endl;...}.....Warning().<<.
332e0 22 55 6e 65 78 70 65 63 74 65 64 20 6c 6f 67 69 63 20 66 6f 72 20 71 75 61 6e 74 69 66 69 65 72 "Unexpected.logic.for.quantifier
33300 20 65 6c 69 6d 69 6e 61 74 69 6f 6e 20 22 20 3c 3c 20 64 5f 6c 6f 67 69 63 20 3c 3c 20 65 6e 64 .elimination.".<<.d_logic.<<.end
33320 6c 3b 00 20 20 69 66 28 21 64 5f 6c 6f 67 69 63 2e 69 73 50 75 72 65 28 54 48 45 4f 52 59 5f 41 l;...if(!d_logic.isPure(THEORY_A
33340 52 49 54 48 29 20 26 26 20 73 74 72 69 63 74 29 7b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 RITH).&&.strict){...SmtScope.smt
33360 73 28 74 68 69 73 29 3b 00 45 78 70 72 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 64 6f 51 75 61 6e 74 s(this);.Expr.SmtEngine::doQuant
33380 69 66 69 65 72 45 6c 69 6d 69 6e 61 74 69 6f 6e 28 63 6f 6e 73 74 20 45 78 70 72 26 20 65 2c 20 ifierElimination(const.Expr&.e,.
333a0 62 6f 6f 6c 20 64 6f 46 75 6c 6c 2c 20 62 6f 6f 6c 20 73 74 72 69 63 74 29 20 74 68 72 6f 77 28 bool.doFull,.bool.strict).throw(
333c0 54 79 70 65 43 68 65 63 6b 69 6e 67 45 78 63 65 70 74 69 6f 6e 2c 20 4d 6f 64 61 6c 45 78 63 65 TypeCheckingException,.ModalExce
333e0 70 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 00 7d 00 20 20 7d 00 ption,.LogicException).{..}...}.
33400 20 20 20 20 41 73 73 65 72 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 7d 65 6c 73 65 7b 00 20 20 ....Assert(.false.);...}else{...
33420 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 70 72 69 6e 74 53 79 6e 74 68 53 6f 6c 75 ..d_theoryEngine->printSynthSolu
33440 74 69 6f 6e 28 20 6f 75 74 20 29 3b 00 20 20 69 66 28 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e tion(.out.);...if(.d_theoryEngin
33460 65 20 29 7b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 76 6f 69 64 e.){...SmtScope.smts(this);.void
33480 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 70 72 69 6e 74 53 79 6e 74 68 53 6f 6c 75 74 69 6f 6e 28 20 .SmtEngine::printSynthSolution(.
334a0 73 74 64 3a 3a 6f 73 74 72 65 61 6d 26 20 6f 75 74 20 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 std::ostream&.out.).{..}...}....
334c0 20 6f 75 74 20 3c 3c 20 22 25 20 53 5a 53 20 6f 75 74 70 75 74 20 65 6e 64 20 50 72 6f 6f 66 20 .out.<<."%.SZS.output.end.Proof.
334e0 66 6f 72 20 22 20 3c 3c 20 64 5f 66 69 6c 65 6e 61 6d 65 2e 63 5f 73 74 72 28 29 20 3c 3c 20 73 for.".<<.d_filename.c_str().<<.s
33500 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 73 74 46 6f 72 td::endl;...if(.options::instFor
33520 6d 61 74 4d 6f 64 65 28 29 3d 3d 49 4e 53 54 5f 46 4f 52 4d 41 54 5f 4d 4f 44 45 5f 53 5a 53 20 matMode()==INST_FORMAT_MODE_SZS.
33540 29 7b 00 20 20 7d 00 20 20 20 20 41 73 73 65 72 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 7d 65 ){...}.....Assert(.false.);...}e
33560 6c 73 65 7b 00 20 20 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 70 72 69 6e 74 49 6e lse{.....d_theoryEngine->printIn
33580 73 74 61 6e 74 69 61 74 69 6f 6e 73 28 20 6f 75 74 20 29 3b 00 20 20 69 66 28 20 64 5f 74 68 65 stantiations(.out.);...if(.d_the
335a0 6f 72 79 45 6e 67 69 6e 65 20 29 7b 00 20 20 7d 00 20 20 20 20 6f 75 74 20 3c 3c 20 22 25 20 53 oryEngine.){...}.....out.<<."%.S
335c0 5a 53 20 6f 75 74 70 75 74 20 73 74 61 72 74 20 50 72 6f 6f 66 20 66 6f 72 20 22 20 3c 3c 20 64 ZS.output.start.Proof.for.".<<.d
335e0 5f 66 69 6c 65 6e 61 6d 65 2e 63 5f 73 74 72 28 29 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 _filename.c_str().<<.std::endl;.
33600 20 20 69 66 28 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 73 74 46 6f 72 6d 61 74 4d 6f 64 65 28 29 3d ..if(.options::instFormatMode()=
33620 3d 49 4e 53 54 5f 46 4f 52 4d 41 54 5f 4d 4f 44 45 5f 53 5a 53 20 29 7b 00 20 20 53 6d 74 53 63 =INST_FORMAT_MODE_SZS.){...SmtSc
33640 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a ope.smts(this);.void.SmtEngine::
33660 70 72 69 6e 74 49 6e 73 74 61 6e 74 69 61 74 69 6f 6e 73 28 20 73 74 64 3a 3a 6f 73 74 72 65 61 printInstantiations(.std::ostrea
33680 6d 26 20 6f 75 74 20 29 20 7b 00 00 7d 00 23 65 6e 64 69 66 20 2f 2a 20 49 53 5f 50 52 4f 4f 46 m&.out.).{..}.#endif./*.IS_PROOF
336a0 53 5f 42 55 49 4c 44 20 2a 2f 00 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f S_BUILD.*/...throw.ModalExceptio
336c0 6e 28 22 54 68 69 73 20 62 75 69 6c 64 20 6f 66 20 43 56 43 34 20 64 6f 65 73 6e 27 74 20 68 61 n("This.build.of.CVC4.doesn't.ha
336e0 76 65 20 70 72 6f 6f 66 20 73 75 70 70 6f 72 74 2e 22 29 3b 00 23 65 6c 73 65 20 2f 2a 20 49 53 ve.proof.support.");.#else./*.IS
33700 5f 50 52 4f 4f 46 53 5f 42 55 49 4c 44 20 2a 2f 00 20 20 72 65 74 75 72 6e 20 50 72 6f 6f 66 4d _PROOFS_BUILD.*/...return.ProofM
33720 61 6e 61 67 65 72 3a 3a 67 65 74 50 72 6f 6f 66 28 74 68 69 73 29 3b 00 00 20 20 7d 00 20 20 20 anager::getProof(this);....}....
33740 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 22 43 61 6e 6e 6f 74 20 67 65 .throw.ModalException("Cannot.ge
33760 74 20 61 20 70 72 6f 6f 66 20 75 6e 6c 65 73 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 70 72 65 t.a.proof.unless.immediately.pre
33780 63 65 64 65 64 20 62 79 20 55 4e 53 41 54 2f 56 41 4c 49 44 20 72 65 73 70 6f 6e 73 65 2e 22 29 ceded.by.UNSAT/VALID.response.")
337a0 3b 00 20 20 20 20 20 64 5f 70 72 6f 62 6c 65 6d 45 78 74 65 6e 64 65 64 29 20 7b 00 20 20 20 20 ;......d_problemExtended).{.....
337c0 20 64 5f 73 74 61 74 75 73 2e 61 73 53 61 74 69 73 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 .d_status.asSatisfiabilityResult
337e0 28 29 20 21 3d 20 52 65 73 75 6c 74 3a 3a 55 4e 53 41 54 20 7c 7c 00 20 20 69 66 28 64 5f 73 74 ().!=.Result::UNSAT.||...if(d_st
33800 61 74 75 73 2e 69 73 4e 75 6c 6c 28 29 20 7c 7c 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 20 4d atus.isNull().||...}.....throw.M
33820 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 22 43 61 6e 6e 6f 74 20 67 65 74 20 61 20 70 72 6f 6f odalException("Cannot.get.a.proo
33840 66 20 77 68 65 6e 20 70 72 6f 64 75 63 65 2d 70 72 6f 6f 66 73 20 6f 70 74 69 6f 6e 20 69 73 20 f.when.produce-proofs.option.is.
33860 6f 66 66 2e 22 29 3b 00 20 20 69 66 28 21 6f 70 74 69 6f 6e 73 3a 3a 70 72 6f 6f 66 28 29 29 20 off.");...if(!options::proof()).
33880 7b 00 23 69 66 20 49 53 5f 50 52 4f 4f 46 53 5f 42 55 49 4c 44 00 20 20 7d 00 20 20 20 20 44 75 {.#if.IS_PROOFS_BUILD...}.....Du
338a0 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 47 65 74 50 72 6f 6f 66 43 6f 6d 6d 61 mp("benchmark").<<.GetProofComma
338c0 6e 64 28 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d 61 72 6b 22 nd();...if(Dump.isOn("benchmark"
338e0 29 29 20 7b 00 20 20 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 29 3b 00 20 20 53 )).{...finalOptionsAreSet();...S
33900 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 mtScope.smts(this);...Trace("smt
33920 22 29 20 3c 3c 20 22 53 4d 54 20 67 65 74 50 72 6f 6f 66 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 ").<<."SMT.getProof()".<<.endl;.
33940 50 72 6f 6f 66 2a 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 50 72 6f 6f 66 28 29 20 7b 00 00 Proof*.SmtEngine::getProof().{..
33960 7d 00 23 65 6e 64 69 66 20 2f 2a 20 49 53 5f 50 52 4f 4f 46 53 5f 42 55 49 4c 44 20 2a 2f 00 20 }.#endif./*.IS_PROOFS_BUILD.*/..
33980 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 22 54 68 69 73 20 62 75 69 6c .throw.ModalException("This.buil
339a0 64 20 6f 66 20 43 56 43 34 20 64 6f 65 73 6e 27 74 20 68 61 76 65 20 70 72 6f 6f 66 20 73 75 70 d.of.CVC4.doesn't.have.proof.sup
339c0 70 6f 72 74 20 28 72 65 71 75 69 72 65 64 20 66 6f 72 20 75 6e 73 61 74 20 63 6f 72 65 73 29 2e port.(required.for.unsat.cores).
339e0 22 29 3b 00 23 65 6c 73 65 20 2f 2a 20 49 53 5f 50 52 4f 4f 46 53 5f 42 55 49 4c 44 20 2a 2f 00 ");.#else./*.IS_PROOFS_BUILD.*/.
33a00 20 20 72 65 74 75 72 6e 20 55 6e 73 61 74 43 6f 72 65 28 74 68 69 73 2c 20 64 5f 70 72 6f 6f 66 ..return.UnsatCore(this,.d_proof
33a20 4d 61 6e 61 67 65 72 2d 3e 65 78 74 72 61 63 74 55 6e 73 61 74 43 6f 72 65 28 29 29 3b 00 20 20 Manager->extractUnsatCore());...
33a40 64 5f 70 72 6f 6f 66 4d 61 6e 61 67 65 72 2d 3e 74 72 61 63 65 55 6e 73 61 74 43 6f 72 65 28 29 d_proofManager->traceUnsatCore()
33a60 3b 2f 2f 20 6a 75 73 74 20 74 6f 20 74 72 69 67 67 65 72 20 63 6f 72 65 20 63 72 65 61 74 69 6f ;//.just.to.trigger.core.creatio
33a80 6e 00 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 n....}.....throw.ModalException(
33aa0 22 43 61 6e 6e 6f 74 20 67 65 74 20 61 6e 20 75 6e 73 61 74 20 63 6f 72 65 20 75 6e 6c 65 73 73 "Cannot.get.an.unsat.core.unless
33ac0 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 70 72 65 63 65 64 65 64 20 62 79 20 55 4e 53 41 54 2f 56 .immediately.preceded.by.UNSAT/V
33ae0 41 4c 49 44 20 72 65 73 70 6f 6e 73 65 2e 22 29 3b 00 20 20 20 20 20 64 5f 70 72 6f 62 6c 65 6d ALID.response.");......d_problem
33b00 45 78 74 65 6e 64 65 64 29 20 7b 00 20 20 20 20 20 64 5f 73 74 61 74 75 73 2e 61 73 53 61 74 69 Extended).{......d_status.asSati
33b20 73 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 20 21 3d 20 52 65 73 75 6c 74 3a 3a 55 4e sfiabilityResult().!=.Result::UN
33b40 53 41 54 20 7c 7c 00 20 20 69 66 28 64 5f 73 74 61 74 75 73 2e 69 73 4e 75 6c 6c 28 29 20 7c 7c SAT.||...if(d_status.isNull().||
33b60 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 22 43 ...}.....throw.ModalException("C
33b80 61 6e 6e 6f 74 20 67 65 74 20 61 6e 20 75 6e 73 61 74 20 63 6f 72 65 20 77 68 65 6e 20 70 72 6f annot.get.an.unsat.core.when.pro
33ba0 64 75 63 65 2d 75 6e 73 61 74 2d 63 6f 72 65 73 20 6f 70 74 69 6f 6e 20 69 73 20 6f 66 66 2e 22 duce-unsat-cores.option.is.off."
33bc0 29 3b 00 20 20 69 66 28 21 6f 70 74 69 6f 6e 73 3a 3a 75 6e 73 61 74 43 6f 72 65 73 28 29 29 20 );...if(!options::unsatCores()).
33be0 7b 00 23 69 66 20 49 53 5f 50 52 4f 4f 46 53 5f 42 55 49 4c 44 00 20 20 7d 00 20 20 20 20 44 75 {.#if.IS_PROOFS_BUILD...}.....Du
33c00 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 47 65 74 55 6e 73 61 74 43 6f 72 65 43 mp("benchmark").<<.GetUnsatCoreC
33c20 6f 6d 6d 61 6e 64 28 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d ommand();...if(Dump.isOn("benchm
33c40 61 72 6b 22 29 29 20 7b 00 20 20 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 29 3b ark")).{...finalOptionsAreSet();
33c60 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 20 20 54 72 61 63 65 28 ...SmtScope.smts(this);...Trace(
33c80 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 67 65 74 55 6e 73 61 74 43 6f 72 65 28 29 22 20 3c "smt").<<."SMT.getUnsatCore()".<
33ca0 3c 20 65 6e 64 6c 3b 00 55 6e 73 61 74 43 6f 72 65 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 <.endl;.UnsatCore.SmtEngine::get
33cc0 55 6e 73 61 74 43 6f 72 65 28 29 20 7b 00 00 7d 00 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 UnsatCore().{..}...Notice().<<."
33ce0 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 61 6c 6c 20 61 73 73 SmtEngine::checkModel():.all.ass
33d00 65 72 74 69 6f 6e 73 20 63 68 65 63 6b 65 64 20 6f 75 74 20 4f 4b 20 21 22 20 3c 3c 20 65 6e 64 ertions.checked.out.OK.!".<<.end
33d20 6c 3b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 57 61 72 l;...}.....}.......}.........War
33d40 6e 69 6e 67 28 29 20 3c 3c 20 73 73 2e 73 74 72 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 ning().<<.ss.str().<<.endl;.....
33d60 20 20 7d 20 65 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 49 6e 74 65 72 6e 61 6c 45 72 72 6f 72 ..}.else.{.........InternalError
33d80 28 73 73 2e 73 74 72 28 29 29 3b 00 20 20 20 20 20 20 69 66 28 68 61 72 64 46 61 69 6c 75 72 65 (ss.str());.......if(hardFailure
33da0 29 20 7b 00 20 20 20 20 20 20 20 20 20 3c 3c 20 22 52 75 6e 20 77 69 74 68 20 60 2d 2d 63 68 65 ).{..........<<."Run.with.`--che
33dc0 63 6b 2d 6d 6f 64 65 6c 73 20 2d 76 27 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 69 61 ck-models.-v'.for.additional.dia
33de0 67 6e 6f 73 74 69 63 73 2e 22 3b 00 20 20 20 20 20 20 20 20 20 3c 3c 20 22 65 78 70 65 63 74 65 gnostics.";..........<<."expecte
33e00 64 20 60 74 72 75 65 27 2e 22 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 20 20 20 3c 3c 20 22 d.`true'.".<<.endl..........<<."
33e20 73 69 6d 70 6c 69 66 69 65 73 20 74 6f 3a 20 22 20 3c 3c 20 6e 20 3c 3c 20 65 6e 64 6c 00 20 20 simplifies.to:.".<<.n.<<.endl...
33e40 20 20 20 20 20 20 20 3c 3c 20 22 61 73 73 65 72 74 69 6f 6e 3a 20 20 20 20 20 22 20 3c 3c 20 2a .......<<."assertion:.....".<<.*
33e60 69 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 20 20 20 3c 3c 20 22 45 52 52 4f 52 53 20 53 41 i.<<.endl..........<<."ERRORS.SA
33e80 54 49 53 46 59 49 4e 47 20 41 53 53 45 52 54 49 4f 4e 53 20 57 49 54 48 20 4d 4f 44 45 4c 3a 22 TISFYING.ASSERTIONS.WITH.MODEL:"
33ea0 20 3c 3c 20 65 6e 64 6c 00 20 20 20 20 20 20 73 73 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a .<<.endl.......ss.<<."SmtEngine:
33ec0 3a 63 68 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 22 00 20 20 20 20 20 20 73 74 72 69 6e 67 73 74 72 :checkModel():.".......stringstr
33ee0 65 61 6d 20 73 73 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 65 6e 64 6c 3b 00 eam.ss;................<<.endl;.
33f00 20 20 20 20 20 20 4e 6f 74 69 63 65 28 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 ......Notice().<<."SmtEngine::ch
33f20 65 63 6b 4d 6f 64 65 6c 28 29 3a 20 2a 2a 2a 20 50 52 4f 42 4c 45 4d 3a 20 45 58 50 45 43 54 45 eckModel():.***.PROBLEM:.EXPECTE
33f40 44 20 60 54 52 55 45 27 20 2a 2a 2a 22 00 20 20 20 20 69 66 28 6e 20 21 3d 20 4e 6f 64 65 4d 61 D.`TRUE'.***".....if(n.!=.NodeMa
33f60 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 43 6f 6e 73 74 28 74 72 75 65 nager::currentNM()->mkConst(true
33f80 29 29 20 7b 00 20 20 20 20 2f 2f 20 54 68 65 20 72 65 73 75 6c 74 20 73 68 6f 75 6c 64 20 62 65 )).{.....//.The.result.should.be
33fa0 20 3d 3d 20 74 72 75 65 2e 00 20 20 20 20 7d 00 20 20 20 20 20 20 41 6c 77 61 79 73 41 73 73 65 .==.true......}.......AlwaysAsse
33fc0 72 74 28 21 68 61 72 64 46 61 69 6c 75 72 65 20 7c 7c 20 6e 2e 69 73 43 6f 6e 73 74 28 29 20 7c rt(!hardFailure.||.n.isConst().|
33fe0 7c 20 6e 2e 67 65 74 4b 69 6e 64 28 29 20 3d 3d 20 6b 69 6e 64 3a 3a 4c 41 4d 42 44 41 29 3b 00 |.n.getKind().==.kind::LAMBDA);.
34000 61 64 00 00 08 00 00 00 b0 01 00 00 00 10 00 00 63 00 00 00 00 00 00 00 c3 0f 00 00 8b 0f 00 00 ad..............c...............
34020 2b 0f 00 00 08 0f 00 00 9c 0e 00 00 51 0e 00 00 03 0e 00 00 e1 0d 00 00 bf 0d 00 00 9d 0d 00 00 +...........Q...................
34040 7b 0d 00 00 2f 0d 00 00 d8 0c 00 00 b2 0c 00 00 75 0c 00 00 3b 0c 00 00 fe 0b 00 00 b7 0b 00 00 {.../...........u...;...........
34060 a0 0b 00 00 3d 0b 00 00 16 0b 00 00 10 0b 00 00 0f 0b 00 00 da 0a 00 00 ad 0a 00 00 71 0a 00 00 ....=.......................q...
34080 2b 0a 00 00 ef 09 00 00 be 09 00 00 a3 09 00 00 99 09 00 00 5c 09 00 00 58 09 00 00 56 09 00 00 +...................\...X...V...
340a0 55 09 00 00 06 09 00 00 ef 08 00 00 d7 08 00 00 b9 08 00 00 7a 08 00 00 4d 08 00 00 25 08 00 00 U...................z...M...%...
340c0 1f 08 00 00 16 08 00 00 01 08 00 00 fd 07 00 00 fb 07 00 00 fa 07 00 00 b0 07 00 00 99 07 00 00 ................................
340e0 81 07 00 00 60 07 00 00 19 07 00 00 e9 06 00 00 bb 06 00 00 b5 06 00 00 ac 06 00 00 97 06 00 00 ....`...........................
34100 93 06 00 00 91 06 00 00 90 06 00 00 2d 06 00 00 16 06 00 00 f0 05 00 00 d8 05 00 00 a8 05 00 00 ............-...................
34120 57 05 00 00 27 05 00 00 07 05 00 00 d2 04 00 00 a0 04 00 00 98 04 00 00 79 04 00 00 73 04 00 00 W...'...................y...s...
34140 6a 04 00 00 55 04 00 00 51 04 00 00 4f 04 00 00 4e 04 00 00 24 04 00 00 0d 04 00 00 f5 03 00 00 j...U...Q...O...N...$...........
34160 e2 03 00 00 c3 03 00 00 92 03 00 00 8e 03 00 00 5d 03 00 00 37 03 00 00 21 03 00 00 cb 02 00 00 ................]...7...!.......
34180 ac 02 00 00 a8 02 00 00 85 02 00 00 6c 02 00 00 23 02 00 00 21 02 00 00 20 02 00 00 c7 01 00 00 ............l...#...!...........
341a0 b0 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 ..................SmtScope.smts(
341c0 74 68 69 73 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 70 75 73 68 28 29 20 74 68 this);.void.SmtEngine::push().th
341e0 72 6f 77 28 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 2c 20 4c 6f 67 69 63 45 78 63 65 70 74 69 row(ModalException,.LogicExcepti
34200 6f 6e 2c 20 55 6e 73 61 66 65 49 6e 74 65 72 72 75 70 74 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 on,.UnsafeInterruptException).{.
34220 00 7d 00 20 20 72 65 74 75 72 6e 20 76 65 63 74 6f 72 3c 45 78 70 72 3e 28 64 5f 61 73 73 65 72 .}...return.vector<Expr>(d_asser
34240 74 69 6f 6e 4c 69 73 74 2d 3e 62 65 67 69 6e 28 29 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 4c 69 tionList->begin(),.d_assertionLi
34260 73 74 2d 3e 65 6e 64 28 29 29 3b 00 20 20 2f 2f 20 63 6f 70 79 20 74 68 65 20 72 65 73 75 6c 74 st->end());...//.copy.the.result
34280 20 6f 75 74 00 20 20 41 73 73 65 72 74 28 64 5f 61 73 73 65 72 74 69 6f 6e 4c 69 73 74 20 21 3d .out...Assert(d_assertionList.!=
342a0 20 4e 55 4c 4c 29 3b 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 .NULL);...}.....throw.ModalExcep
342c0 74 69 6f 6e 28 6d 73 67 29 3b 00 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 71 75 65 72 79 20 74 tion(msg);......."Cannot.query.t
342e0 68 65 20 63 75 72 72 65 6e 74 20 61 73 73 65 72 74 69 6f 6e 20 6c 69 73 74 20 77 68 65 6e 20 6e he.current.assertion.list.when.n
34300 6f 74 20 69 6e 20 70 72 6f 64 75 63 65 2d 61 73 73 65 72 74 69 6f 6e 73 20 6d 6f 64 65 2e 22 3b ot.in.produce-assertions.mode.";
34320 00 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 6d 73 67 20 3d 00 20 20 69 66 28 21 6f 70 74 .....const.char*.msg.=...if(!opt
34340 69 6f 6e 73 3a 3a 70 72 6f 64 75 63 65 41 73 73 65 72 74 69 6f 6e 73 28 29 29 20 7b 00 20 20 54 ions::produceAssertions()).{...T
34360 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 67 65 74 41 73 73 65 72 74 69 6f 6e race("smt").<<."SMT.getAssertion
34380 73 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 7d 00 20 20 20 20 44 75 6d 70 28 22 62 65 6e 63 s()".<<.endl;...}.....Dump("benc
343a0 68 6d 61 72 6b 22 29 20 3c 3c 20 47 65 74 41 73 73 65 72 74 69 6f 6e 73 43 6f 6d 6d 61 6e 64 28 hmark").<<.GetAssertionsCommand(
343c0 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 29 20 );...if(Dump.isOn("benchmark")).
343e0 7b 00 20 20 64 6f 50 65 6e 64 69 6e 67 50 6f 70 73 28 29 3b 00 20 20 66 69 6e 61 6c 4f 70 74 69 {...doPendingPops();...finalOpti
34400 6f 6e 73 41 72 65 53 65 74 28 29 3b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 onsAreSet();...SmtScope.smts(thi
34420 73 29 3b 00 76 65 63 74 6f 72 3c 45 78 70 72 3e 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 41 s);.vector<Expr>.SmtEngine::getA
34440 73 73 65 72 74 69 6f 6e 73 28 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 20 41 73 73 65 72 74 28 ssertions().{..}...}.....Assert(
34460 20 66 61 6c 73 65 20 29 3b 00 20 20 7d 65 6c 73 65 7b 00 20 20 20 20 7d 00 20 20 20 20 20 20 74 .false.);...}else{.....}.......t
34480 76 65 63 73 2e 70 75 73 68 5f 62 61 63 6b 28 20 74 76 65 63 20 29 3b 00 20 20 20 20 20 20 7d 00 vecs.push_back(.tvec.);.......}.
344a0 20 20 20 20 20 20 20 20 74 76 65 63 2e 70 75 73 68 5f 62 61 63 6b 28 20 74 76 65 63 73 5f 6e 5b ........tvec.push_back(.tvecs_n[
344c0 69 5d 5b 6a 5d 2e 74 6f 45 78 70 72 28 29 20 29 3b 00 20 20 20 20 20 20 66 6f 72 28 20 75 6e 73 i][j].toExpr().);.......for(.uns
344e0 69 67 6e 65 64 20 6a 3d 30 3b 20 6a 3c 74 76 65 63 73 5f 6e 5b 69 5d 2e 73 69 7a 65 28 29 3b 20 igned.j=0;.j<tvecs_n[i].size();.
34500 6a 2b 2b 20 29 7b 00 20 20 20 20 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 45 78 70 72 20 3e j++.){.......std::vector<.Expr.>
34520 20 74 76 65 63 3b 00 20 20 20 20 66 6f 72 28 20 75 6e 73 69 67 6e 65 64 20 69 3d 30 3b 20 69 3c .tvec;.....for(.unsigned.i=0;.i<
34540 74 76 65 63 73 5f 6e 2e 73 69 7a 65 28 29 3b 20 69 2b 2b 20 29 7b 00 20 20 20 20 64 5f 74 68 65 tvecs_n.size();.i++.){.....d_the
34560 6f 72 79 45 6e 67 69 6e 65 2d 3e 67 65 74 49 6e 73 74 61 6e 74 69 61 74 69 6f 6e 54 65 72 6d 56 oryEngine->getInstantiationTermV
34580 65 63 74 6f 72 73 28 20 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 20 71 20 29 2c 20 74 76 65 ectors(.Node::fromExpr(.q.),.tve
345a0 63 73 5f 6e 20 29 3b 00 20 20 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 73 74 64 3a 3a 76 65 cs_n.);.....std::vector<.std::ve
345c0 63 74 6f 72 3c 20 4e 6f 64 65 20 3e 20 3e 20 74 76 65 63 73 5f 6e 3b 00 20 20 69 66 28 20 64 5f ctor<.Node.>.>.tvecs_n;...if(.d_
345e0 74 68 65 6f 72 79 45 6e 67 69 6e 65 20 29 7b 00 20 20 41 73 73 65 72 74 28 6f 70 74 69 6f 6e 73 theoryEngine.){...Assert(options
34600 3a 3a 74 72 61 63 6b 49 6e 73 74 4c 65 6d 6d 61 73 28 29 29 3b 00 20 20 53 6d 74 53 63 6f 70 65 ::trackInstLemmas());...SmtScope
34620 20 73 6d 74 73 28 74 68 69 73 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 .smts(this);.void.SmtEngine::get
34640 49 6e 73 74 61 6e 74 69 61 74 69 6f 6e 54 65 72 6d 56 65 63 74 6f 72 73 28 20 45 78 70 72 20 71 InstantiationTermVectors(.Expr.q
34660 2c 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 45 78 70 72 ,.std::vector<.std::vector<.Expr
34680 20 3e 20 3e 26 20 74 76 65 63 73 20 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 20 41 73 73 65 72 .>.>&.tvecs.).{..}...}.....Asser
346a0 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 7d 65 6c 73 65 7b 00 20 20 20 20 7d 00 20 20 20 20 20 t(.false.);...}else{.....}......
346c0 20 69 6e 73 74 73 2e 70 75 73 68 5f 62 61 63 6b 28 20 69 6e 73 74 73 5f 6e 5b 69 5d 2e 74 6f 45 .insts.push_back(.insts_n[i].toE
346e0 78 70 72 28 29 20 29 3b 00 20 20 20 20 66 6f 72 28 20 75 6e 73 69 67 6e 65 64 20 69 3d 30 3b 20 xpr().);.....for(.unsigned.i=0;.
34700 69 3c 69 6e 73 74 73 5f 6e 2e 73 69 7a 65 28 29 3b 20 69 2b 2b 20 29 7b 00 20 20 20 20 64 5f 74 i<insts_n.size();.i++.){.....d_t
34720 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 67 65 74 49 6e 73 74 61 6e 74 69 61 74 69 6f 6e 73 28 20 heoryEngine->getInstantiations(.
34740 4e 6f 64 65 3a 3a 66 72 6f 6d 45 78 70 72 28 20 71 20 29 2c 20 69 6e 73 74 73 5f 6e 20 29 3b 00 Node::fromExpr(.q.),.insts_n.);.
34760 20 20 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 4e 6f 64 65 20 3e 20 69 6e 73 74 73 5f 6e 3b ....std::vector<.Node.>.insts_n;
34780 00 20 20 69 66 28 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 20 29 7b 00 20 20 53 6d 74 53 63 ...if(.d_theoryEngine.){...SmtSc
347a0 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a ope.smts(this);.void.SmtEngine::
347c0 67 65 74 49 6e 73 74 61 6e 74 69 61 74 69 6f 6e 73 28 20 45 78 70 72 20 71 2c 20 73 74 64 3a 3a getInstantiations(.Expr.q,.std::
347e0 76 65 63 74 6f 72 3c 20 45 78 70 72 20 3e 26 20 69 6e 73 74 73 20 29 20 7b 00 00 7d 00 20 20 7d vector<.Expr.>&.insts.).{..}...}
34800 00 20 20 20 20 41 73 73 65 72 74 28 20 66 61 6c 73 65 20 29 3b 00 20 20 7d 65 6c 73 65 7b 00 20 .....Assert(.false.);...}else{..
34820 20 20 20 7d 00 20 20 20 20 20 20 71 73 2e 70 75 73 68 5f 62 61 63 6b 28 20 71 73 5f 6e 5b 69 5d ...}.......qs.push_back(.qs_n[i]
34840 2e 74 6f 45 78 70 72 28 29 20 29 3b 00 20 20 20 20 66 6f 72 28 20 75 6e 73 69 67 6e 65 64 20 69 .toExpr().);.....for(.unsigned.i
34860 3d 30 3b 20 69 3c 71 73 5f 6e 2e 73 69 7a 65 28 29 3b 20 69 2b 2b 20 29 7b 00 20 20 20 20 64 5f =0;.i<qs_n.size();.i++.){.....d_
34880 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 67 65 74 49 6e 73 74 61 6e 74 69 61 74 65 64 51 75 61 theoryEngine->getInstantiatedQua
348a0 6e 74 69 66 69 65 64 46 6f 72 6d 75 6c 61 73 28 20 71 73 5f 6e 20 29 3b 00 20 20 20 20 73 74 64 ntifiedFormulas(.qs_n.);.....std
348c0 3a 3a 76 65 63 74 6f 72 3c 20 4e 6f 64 65 20 3e 20 71 73 5f 6e 3b 00 20 20 69 66 28 20 64 5f 74 ::vector<.Node.>.qs_n;...if(.d_t
348e0 68 65 6f 72 79 45 6e 67 69 6e 65 20 29 7b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 heoryEngine.){...SmtScope.smts(t
34900 68 69 73 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 49 6e 73 74 61 6e 74 his);.void.SmtEngine::getInstant
34920 69 61 74 65 64 51 75 61 6e 74 69 66 69 65 64 46 6f 72 6d 75 6c 61 73 28 20 73 74 64 3a 3a 76 65 iatedQuantifiedFormulas(.std::ve
34940 63 74 6f 72 3c 20 45 78 70 72 20 3e 26 20 71 73 20 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 20 ctor<.Expr.>&.qs.).{..}...}.....
34960 72 65 74 75 72 6e 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d return.NodeManager::currentNM()-
34980 3e 6d 6b 43 6f 6e 73 74 28 74 72 75 65 29 2e 74 6f 45 78 70 72 28 29 3b 00 20 20 7d 65 6c 73 65 >mkConst(true).toExpr();...}else
349a0 20 7b 00 20 20 20 20 72 65 74 75 72 6e 20 72 65 74 5f 6e 2e 74 6f 45 78 70 72 28 29 3b 00 20 20 .{.....return.ret_n.toExpr();...
349c0 20 20 72 65 74 5f 6e 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 20 72 65 74 ..ret_n.=.Rewriter::rewrite(.ret
349e0 5f 6e 2e 6e 65 67 61 74 65 28 29 20 29 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d 71 65 _n.negate().);.....Trace("smt-qe
34a00 22 29 20 3c 3c 20 22 52 65 74 75 72 6e 65 64 20 3a 20 22 20 3c 3c 20 72 65 74 5f 6e 20 3c 3c 20 ").<<."Returned.:.".<<.ret_n.<<.
34a20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 4e 6f 64 65 20 72 65 74 5f 6e 20 3d 20 64 5f 74 68 std::endl;.....Node.ret_n.=.d_th
34a40 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 67 65 74 49 6e 73 74 61 6e 74 69 61 74 65 64 43 6f 6e 6a 75 eoryEngine->getInstantiatedConju
34a60 6e 63 74 69 6f 6e 28 20 74 6f 70 5f 71 20 29 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d nction(.top_q.);.....Trace("smt-
34a80 71 65 22 29 20 3c 3c 20 22 47 65 74 20 71 65 20 66 6f 72 20 22 20 3c 3c 20 74 6f 70 5f 71 20 3c qe").<<."Get.qe.for.".<<.top_q.<
34aa0 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 20 20 41 73 73 65 72 74 28 20 74 6f 70 5f 71 2e 67 <.std::endl;.....Assert(.top_q.g
34ac0 65 74 4b 69 6e 64 28 29 3d 3d 6b 69 6e 64 3a 3a 46 4f 52 41 4c 4c 20 29 3b 00 20 20 20 20 4e 6f etKind()==kind::FORALL.);.....No
34ae0 64 65 20 74 6f 70 5f 71 20 3d 20 52 65 77 72 69 74 65 72 3a 3a 72 65 77 72 69 74 65 28 20 6e 6e de.top_q.=.Rewriter::rewrite(.nn
34b00 5f 65 20 29 2e 6e 65 67 61 74 65 28 29 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 49 6e 74 65 _e.).negate();......}.......Inte
34b20 72 6e 61 6c 45 72 72 6f 72 28 73 73 2e 73 74 72 28 29 2e 63 5f 73 74 72 28 29 29 3b 00 20 20 20 rnalError(ss.str().c_str());....
34b40 20 20 20 73 73 20 3c 3c 20 22 57 68 69 6c 65 20 70 65 72 66 6f 72 6d 69 6e 67 20 71 75 61 6e 74 ...ss.<<."While.performing.quant
34b60 69 66 69 65 72 20 65 6c 69 6d 69 6e 61 74 69 6f 6e 2c 20 75 6e 65 78 70 65 63 74 65 64 20 72 65 ifier.elimination,.unexpected.re
34b80 73 75 6c 74 20 3a 20 22 20 3c 3c 20 72 20 3c 3c 20 22 20 66 6f 72 20 71 75 65 72 79 2e 22 3b 00 sult.:.".<<.r.<<.".for.query.";.
34ba0 20 20 20 20 20 20 73 74 72 69 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 20 20 20 20 69 66 28 20 72 ......stringstream.ss;.....if(.r
34bc0 2e 61 73 53 61 74 69 73 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 2e 69 73 53 61 74 28 .asSatisfiabilityResult().isSat(
34be0 29 20 21 3d 20 52 65 73 75 6c 74 3a 3a 53 41 54 20 26 26 20 64 6f 46 75 6c 6c 20 29 7b 00 20 20 ).!=.Result::SAT.&&.doFull.){...
34c00 69 66 28 72 2e 61 73 53 61 74 69 73 66 69 61 62 69 6c 69 74 79 52 65 73 75 6c 74 28 29 2e 69 73 if(r.asSatisfiabilityResult().is
34c20 53 61 74 28 29 20 21 3d 20 52 65 73 75 6c 74 3a 3a 55 4e 53 41 54 20 29 20 7b 00 20 20 54 72 61 Sat().!=.Result::UNSAT.).{...Tra
34c40 63 65 28 22 73 6d 74 2d 71 65 22 29 20 3c 3c 20 22 51 75 65 72 79 20 72 65 74 75 72 6e 65 64 20 ce("smt-qe").<<."Query.returned.
34c60 22 20 3c 3c 20 72 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 52 65 73 75 6c 74 20 72 20 ".<<.r.<<.std::endl;...Result.r.
34c80 3d 20 63 68 65 63 6b 53 61 74 69 73 66 69 61 62 69 6c 69 74 79 28 6e 6e 5f 65 2e 74 6f 45 78 70 =.checkSatisfiability(nn_e.toExp
34ca0 72 28 29 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 00 20 20 41 73 73 65 72 74 28 20 6e 6e 5f 65 r(),.true,.true);...Assert(.nn_e
34cc0 2e 67 65 74 4e 75 6d 43 68 69 6c 64 72 65 6e 28 29 3d 3d 33 20 29 3b 00 20 20 54 72 61 63 65 28 .getNumChildren()==3.);...Trace(
34ce0 22 73 6d 74 2d 71 65 2d 64 65 62 75 67 22 29 20 3c 3c 20 22 51 75 65 72 79 20 66 6f 72 20 71 75 "smt-qe-debug").<<."Query.for.qu
34d00 61 6e 74 69 66 69 65 72 20 65 6c 69 6d 69 6e 61 74 69 6f 6e 20 3a 20 22 20 3c 3c 20 6e 6e 5f 65 antifier.elimination.:.".<<.nn_e
34d20 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 20 4e 6f 64 65 20 6e 6e 5f 65 20 3d 20 4e 6f 64 .<<.std::endl;...Node.nn_e.=.Nod
34d40 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 28 20 6b eManager::currentNM()->mkNode(.k
34d60 69 6e 64 3a 3a 45 58 49 53 54 53 2c 20 65 5f 63 68 69 6c 64 72 65 6e 20 29 3b 00 20 20 65 5f 63 ind::EXISTS,.e_children.);...e_c
34d80 68 69 6c 64 72 65 6e 2e 70 75 73 68 5f 62 61 63 6b 28 20 6e 5f 61 74 74 72 20 29 3b 00 20 20 65 hildren.push_back(.n_attr.);...e
34da0 5f 63 68 69 6c 64 72 65 6e 2e 70 75 73 68 5f 62 61 63 6b 28 20 6e 5f 65 5b 31 5d 20 29 3b 00 20 _children.push_back(.n_e[1].);..
34dc0 20 65 5f 63 68 69 6c 64 72 65 6e 2e 70 75 73 68 5f 62 61 63 6b 28 20 6e 5f 65 5b 30 5d 20 29 3b .e_children.push_back(.n_e[0].);
34de0 00 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 4e 6f 64 65 20 3e 20 65 5f 63 68 69 6c 64 72 65 ...std::vector<.Node.>.e_childre
34e00 6e 3b 00 20 20 6e 5f 61 74 74 72 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 n;...n_attr.=.NodeManager::curre
34e20 6e 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 28 6b 69 6e 64 3a 3a 49 4e 53 54 5f 50 41 54 54 45 52 ntNM()->mkNode(kind::INST_PATTER
34e40 4e 5f 4c 49 53 54 2c 20 6e 5f 61 74 74 72 29 3b 00 20 20 6e 5f 61 74 74 72 20 3d 20 4e 6f 64 65 N_LIST,.n_attr);...n_attr.=.Node
34e60 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 4e 6f 64 65 28 6b 69 6e Manager::currentNM()->mkNode(kin
34e80 64 3a 3a 49 4e 53 54 5f 41 54 54 52 49 42 55 54 45 2c 20 6e 5f 61 74 74 72 29 3b 00 20 20 64 5f d::INST_ATTRIBUTE,.n_attr);...d_
34ea0 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 73 65 74 55 73 65 72 41 74 74 72 69 62 75 74 65 28 20 theoryEngine->setUserAttribute(.
34ec0 64 6f 46 75 6c 6c 20 3f 20 22 71 75 61 6e 74 2d 65 6c 69 6d 22 20 3a 20 22 71 75 61 6e 74 2d 65 doFull.?."quant-elim".:."quant-e
34ee0 6c 69 6d 2d 70 61 72 74 69 61 6c 22 2c 20 6e 5f 61 74 74 72 2c 20 6e 6f 64 65 5f 76 61 6c 75 65 lim-partial",.n_attr,.node_value
34f00 73 2c 20 22 22 29 3b 00 20 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 20 4e 6f 64 65 20 3e 20 6e 6f s,."");...std::vector<.Node.>.no
34f20 64 65 5f 76 61 6c 75 65 73 3b 00 20 20 4e 6f 64 65 20 6e 5f 61 74 74 72 20 3d 20 4e 6f 64 65 4d de_values;...Node.n_attr.=.NodeM
34f40 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 6d 6b 53 6b 6f 6c 65 6d 28 22 71 anager::currentNM()->mkSkolem("q
34f60 65 22 2c 20 74 2c 20 22 41 75 78 69 6c 69 61 72 79 20 76 61 72 69 61 62 6c 65 20 66 6f 72 20 71 e",.t,."Auxiliary.variable.for.q
34f80 65 20 61 74 74 72 2e 22 29 3b 00 20 20 54 79 70 65 4e 6f 64 65 20 74 20 3d 20 4e 6f 64 65 4d 61 e.attr.");...TypeNode.t.=.NodeMa
34fa0 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 62 6f 6f 6c 65 61 6e 54 79 70 65 28 nager::currentNM()->booleanType(
34fc0 29 3b 00 20 20 2f 2f 74 61 67 20 74 68 65 20 71 75 61 6e 74 69 66 69 65 64 20 66 6f 72 6d 75 6c );...//tag.the.quantified.formul
34fe0 61 20 77 69 74 68 20 74 68 65 20 71 75 61 6e 74 2d 65 6c 69 6d 20 61 74 74 72 69 62 75 74 65 00 a.with.the.quant-elim.attribute.
35000 61 64 00 00 19 00 00 00 05 02 00 00 00 10 00 00 74 00 00 00 00 00 00 00 e8 0f 00 00 d5 0f 00 00 ad..............t...............
35020 ad 0f 00 00 8b 0f 00 00 6c 0f 00 00 44 0f 00 00 40 0f 00 00 19 0f 00 00 bd 0e 00 00 b9 0e 00 00 ........l...D...@...............
35040 b8 0e 00 00 8a 0e 00 00 72 0e 00 00 51 0e 00 00 34 0e 00 00 30 0e 00 00 2f 0e 00 00 ee 0d 00 00 ........r...Q...4...0.../.......
35060 ae 0d 00 00 8e 0d 00 00 72 0d 00 00 71 0d 00 00 3c 0d 00 00 2a 0d 00 00 f2 0c 00 00 b5 0c 00 00 ........r...q...<...*...........
35080 b3 0c 00 00 b2 0c 00 00 9a 0c 00 00 83 0c 00 00 6b 0c 00 00 44 0c 00 00 25 0c 00 00 fe 0b 00 00 ................k...D...%.......
350a0 fa 0b 00 00 d3 0b 00 00 78 0b 00 00 74 0b 00 00 53 0b 00 00 0f 0b 00 00 0b 0b 00 00 0a 0b 00 00 ........x...t...S...............
350c0 dc 0a 00 00 c4 0a 00 00 a3 0a 00 00 86 0a 00 00 82 0a 00 00 81 0a 00 00 40 0a 00 00 fa 09 00 00 ........................@.......
350e0 b4 09 00 00 6d 09 00 00 29 09 00 00 0b 09 00 00 ef 08 00 00 ee 08 00 00 bf 08 00 00 7e 08 00 00 ....m...)...................~...
35100 42 08 00 00 2b 08 00 00 27 08 00 00 0c 08 00 00 0b 08 00 00 c2 07 00 00 a8 07 00 00 a7 07 00 00 B...+...'.......................
35120 6f 07 00 00 32 07 00 00 07 07 00 00 c3 06 00 00 c1 06 00 00 c0 06 00 00 9f 06 00 00 86 06 00 00 o...2...........................
35140 4f 06 00 00 3c 06 00 00 16 06 00 00 f2 05 00 00 b3 05 00 00 98 05 00 00 5d 05 00 00 43 05 00 00 O...<...................]...C...
35160 3f 05 00 00 3d 05 00 00 3c 05 00 00 0e 05 00 00 f5 04 00 00 bf 04 00 00 99 04 00 00 84 04 00 00 ?...=...<.......................
35180 80 04 00 00 6e 04 00 00 59 04 00 00 55 04 00 00 53 04 00 00 52 04 00 00 30 04 00 00 f1 03 00 00 ....n...Y...U...S...R...0.......
351a0 d4 03 00 00 95 03 00 00 7c 03 00 00 42 03 00 00 28 03 00 00 13 03 00 00 0f 03 00 00 0d 03 00 00 ........|...B...(...............
351c0 0c 03 00 00 ea 02 00 00 d3 02 00 00 b0 02 00 00 87 02 00 00 68 02 00 00 3f 02 00 00 3b 02 00 00 ....................h...?...;...
351e0 2b 02 00 00 05 02 00 00 00 00 00 00 00 00 00 00 00 00 6e 61 6d 65 73 70 61 63 65 20 73 6d 74 20 +.................namespace.smt.
35200 7b 00 6e 61 6d 20 20 6f 70 74 73 2e 63 6f 70 79 56 61 6c 75 65 73 28 64 5f 6f 72 69 67 69 6e 61 {.nam..opts.copyValues(d_origina
35220 6c 4f 70 74 69 6f 6e 73 29 3b 00 20 20 4f 70 74 69 6f 6e 73 20 6f 70 74 73 3b 00 20 20 7d 00 20 lOptions);...Options.opts;...}..
35240 20 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 52 65 73 65 74 43 6f 6d ...Dump("benchmark").<<.ResetCom
35260 6d 61 6e 64 28 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d 61 72 mand();...if(Dump.isOn("benchmar
35280 6b 22 29 29 20 7b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 72 65 k")).{...Trace("smt").<<."SMT.re
352a0 73 65 74 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 45 78 70 72 4d 61 6e 61 67 65 72 20 2a 65 set()".<<.endl;...ExprManager.*e
352c0 6d 20 3d 20 64 5f 65 78 70 72 4d 61 6e 61 67 65 72 3b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d m.=.d_exprManager;...SmtScope.sm
352e0 74 73 28 74 68 69 73 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 72 65 73 65 74 28 ts(this);.void.SmtEngine::reset(
35300 29 20 74 68 72 6f 77 28 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 20 2d 2d 64 5f 70 65 6e 64 69 ).throw().{..}...}.....--d_pendi
35320 6e 67 50 6f 70 73 3b 00 20 20 20 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2d 3e 70 6f 70 28 29 ngPops;.....d_userContext->pop()
35340 3b 00 20 20 20 20 2f 2f 20 74 68 65 20 64 5f 63 6f 6e 74 65 78 74 20 70 6f 70 20 69 73 20 64 6f ;.....//.the.d_context.pop.is.do
35360 6e 65 20 69 6e 73 69 64 65 20 6f 66 20 74 68 65 20 53 41 54 20 73 6f 6c 76 65 72 00 20 20 20 20 ne.inside.of.the.SAT.solver.....
35380 64 5f 70 72 6f 70 45 6e 67 69 6e 65 2d 3e 70 6f 70 28 29 3b 00 20 20 20 20 54 69 6d 65 72 53 74 d_propEngine->pop();.....TimerSt
353a0 61 74 3a 3a 43 6f 64 65 54 69 6d 65 72 20 70 75 73 68 50 6f 70 54 69 6d 65 72 28 64 5f 73 74 61 at::CodeTimer.pushPopTimer(d_sta
353c0 74 73 2d 3e 64 5f 70 75 73 68 50 6f 70 54 69 6d 65 29 3b 00 20 20 77 68 69 6c 65 28 64 5f 70 65 ts->d_pushPopTime);...while(d_pe
353e0 6e 64 69 6e 67 50 6f 70 73 20 3e 20 30 29 20 7b 00 20 20 41 73 73 65 72 74 28 64 5f 70 65 6e 64 ndingPops.>.0).{...Assert(d_pend
35400 69 6e 67 50 6f 70 73 20 3d 3d 20 30 20 7c 7c 20 6f 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 ingPops.==.0.||.options::increme
35420 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a ntalSolving());.void.SmtEngine::
35440 64 6f 50 65 6e 64 69 6e 67 50 6f 70 73 28 29 20 7b 00 00 7d 00 20 20 7d 00 20 20 20 20 64 6f 50 doPendingPops().{..}...}.....doP
35460 65 6e 64 69 6e 67 50 6f 70 73 28 29 3b 00 20 20 69 66 28 69 6d 6d 65 64 69 61 74 65 29 20 7b 00 endingPops();...if(immediate).{.
35480 20 20 7d 00 20 20 20 20 2b 2b 64 5f 70 65 6e 64 69 6e 67 50 6f 70 73 3b 00 20 20 69 66 28 6f 70 ..}.....++d_pendingPops;...if(op
354a0 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 29 20 7b 00 20 tions::incrementalSolving()).{..
354c0 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 69 6e 74 .Trace("smt").<<."SmtEngine::int
354e0 65 72 6e 61 6c 50 6f 70 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 41 73 73 65 72 74 28 64 5f ernalPop()".<<.endl;...Assert(d_
35500 66 75 6c 6c 79 49 6e 69 74 65 64 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 69 6e fullyInited);.void.SmtEngine::in
35520 74 65 72 6e 61 6c 50 6f 70 28 62 6f 6f 6c 20 69 6d 6d 65 64 69 61 74 65 29 20 7b 00 00 7d 00 20 ternalPop(bool.immediate).{..}..
35540 20 7d 00 20 20 20 20 64 5f 70 72 6f 70 45 6e 67 69 6e 65 2d 3e 70 75 73 68 28 29 3b 00 20 20 20 .}.....d_propEngine->push();....
35560 20 2f 2f 20 74 68 65 20 64 5f 63 6f 6e 74 65 78 74 20 70 75 73 68 20 69 73 20 64 6f 6e 65 20 69 .//.the.d_context.push.is.done.i
35580 6e 73 69 64 65 20 6f 66 20 74 68 65 20 53 41 54 20 73 6f 6c 76 65 72 00 20 20 20 20 64 5f 75 73 nside.of.the.SAT.solver.....d_us
355a0 65 72 43 6f 6e 74 65 78 74 2d 3e 70 75 73 68 28 29 3b 00 20 20 20 20 54 69 6d 65 72 53 74 61 74 erContext->push();.....TimerStat
355c0 3a 3a 43 6f 64 65 54 69 6d 65 72 20 70 75 73 68 50 6f 70 54 69 6d 65 72 28 64 5f 73 74 61 74 73 ::CodeTimer.pushPopTimer(d_stats
355e0 2d 3e 64 5f 70 75 73 68 50 6f 70 54 69 6d 65 29 3b 00 20 20 20 20 64 5f 70 72 69 76 61 74 65 2d ->d_pushPopTime);.....d_private-
35600 3e 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 3b 00 20 20 69 66 28 6f 70 74 69 6f >processAssertions();...if(optio
35620 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 29 20 7b 00 20 20 64 6f ns::incrementalSolving()).{...do
35640 50 65 6e 64 69 6e 67 50 6f 70 73 28 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c PendingPops();...Trace("smt").<<
35660 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 69 6e 74 65 72 6e 61 6c 50 75 73 68 28 29 22 20 3c 3c 20 ."SmtEngine::internalPush()".<<.
35680 65 6e 64 6c 3b 00 20 20 41 73 73 65 72 74 28 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 29 3b 00 76 endl;...Assert(d_fullyInited);.v
356a0 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 69 6e 74 65 72 6e 61 6c 50 75 73 68 28 29 20 7b 00 oid.SmtEngine::internalPush().{.
356c0 00 7d 00 20 20 2f 2f 20 53 4d 54 2d 4c 49 42 76 32 20 73 70 65 63 20 73 65 65 6d 73 20 74 6f 20 .}...//.SMT-LIBv2.spec.seems.to.
356e0 69 6d 70 6c 79 20 6e 6f 2c 20 62 75 74 20 69 74 20 77 6f 75 6c 64 20 6d 61 6b 65 20 73 65 6e 73 imply.no,.but.it.would.make.sens
35700 65 20 74 6f 2e 2e 00 20 20 2f 2f 20 46 49 58 4d 45 3a 20 73 68 6f 75 6c 64 20 77 65 20 72 65 73 e.to.....//.FIXME:.should.we.res
35720 65 74 20 64 5f 73 74 61 74 75 73 20 68 65 72 65 3f 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et.d_status.here?...............
35740 20 20 20 20 20 20 20 20 20 3c 3c 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2d 3e 67 65 74 4c 65 .........<<.d_userContext->getLe
35760 76 65 6c 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 54 72 61 63 65 28 22 75 73 65 72 70 75 73 68 vel().<<.endl;...Trace("userpush
35780 70 6f 70 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 70 6f 70 70 65 64 20 74 6f 20 6c pop").<<."SmtEngine:.popped.to.l
357a0 65 76 65 6c 20 22 00 00 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 6e 6f 74 69 66 79 50 6f 70 28 29 evel."....d_private->notifyPop()
357c0 3b 00 20 20 2f 2f 20 43 6c 65 61 72 20 6f 75 74 20 61 73 73 65 72 74 69 6f 6e 20 71 75 65 75 65 ;...//.Clear.out.assertion.queue
357e0 73 20 65 74 63 2e 2c 20 69 6e 20 63 61 73 65 20 61 6e 79 74 68 69 6e 67 20 69 73 20 73 74 69 6c s.etc.,.in.case.anything.is.stil
35800 6c 20 69 6e 20 74 68 65 72 65 00 00 20 20 64 5f 75 73 65 72 4c 65 76 65 6c 73 2e 70 6f 70 5f 62 l.in.there....d_userLevels.pop_b
35820 61 63 6b 28 29 3b 00 20 20 7d 00 20 20 20 20 69 6e 74 65 72 6e 61 6c 50 6f 70 28 74 72 75 65 29 ack();...}.....internalPop(true)
35840 3b 00 20 20 77 68 69 6c 65 20 28 64 5f 75 73 65 72 4c 65 76 65 6c 73 2e 62 61 63 6b 28 29 20 3c ;...while.(d_userLevels.back().<
35860 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2d 3e 67 65 74 4c 65 76 65 6c 28 29 29 20 7b 00 20 20 .d_userContext->getLevel()).{...
35880 41 6c 77 61 79 73 41 73 73 65 72 74 28 64 5f 75 73 65 72 4c 65 76 65 6c 73 2e 62 61 63 6b 28 29 AlwaysAssert(d_userLevels.back()
358a0 20 3c 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2d 3e 67 65 74 4c 65 76 65 6c 28 29 29 3b 00 20 .<.d_userContext->getLevel());..
358c0 20 41 6c 77 61 79 73 41 73 73 65 72 74 28 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2d 3e 67 65 74 .AlwaysAssert(d_userContext->get
358e0 4c 65 76 65 6c 28 29 20 3e 20 30 29 3b 00 00 20 20 64 5f 70 72 6f 62 6c 65 6d 45 78 74 65 6e 64 Level().>.0);....d_problemExtend
35900 65 64 20 3d 20 74 72 75 65 3b 00 20 20 2f 2f 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 69 6e 20 ed.=.true;...//.is.no.longer.in.
35920 73 63 6f 70 65 21 29 2e 00 20 20 2f 2f 20 74 68 61 74 20 6f 6e 6c 79 20 72 65 74 75 72 6e 73 20 scope!)....//.that.only.returns.
35940 61 20 73 75 62 73 65 74 20 6f 66 20 74 68 65 20 61 73 73 69 67 6e 6d 65 6e 74 20 28 62 65 63 61 a.subset.of.the.assignment.(beca
35960 75 73 65 20 74 68 65 20 72 65 73 74 00 20 20 2f 2f 20 62 75 74 20 61 6c 73 6f 20 69 74 20 77 6f use.the.rest...//.but.also.it.wo
35980 75 6c 64 20 62 65 20 77 65 69 72 64 20 74 6f 20 68 61 76 65 20 61 20 6c 65 67 61 6c 6c 79 2d 65 uld.be.weird.to.have.a.legally-e
359a0 78 65 63 75 74 65 64 20 28 67 65 74 2d 6d 6f 64 65 6c 29 00 20 20 2f 2f 20 6e 6f 74 20 62 65 20 xecuted.(get-model)...//.not.be.
359c0 73 74 72 69 63 74 6c 79 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 64 6f 20 73 6f 2c 20 73 69 6e strictly.necessary.to.do.so,.sin
359e0 63 65 20 74 68 65 20 70 6f 70 73 20 6f 63 63 75 72 20 6c 61 7a 69 6c 79 2c 00 20 20 2f 2f 20 67 ce.the.pops.occur.lazily,...//.g
35a00 65 74 2d 6d 6f 64 65 6c 20 61 66 74 65 72 20 61 20 70 6f 70 2c 20 73 69 6d 70 6c 69 66 79 69 6e et-model.after.a.pop,.simplifyin
35a20 67 20 6f 75 72 20 6c 69 76 65 73 20 73 6f 6d 65 77 68 61 74 2e 20 20 49 74 20 6d 69 67 68 74 00 g.our.lives.somewhat...It.might.
35a40 20 20 2f 2f 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 69 73 6e 27 74 20 72 65 61 6c 6c 79 20 22 65 ..//.The.problem.isn't.really."e
35a60 78 74 65 6e 64 65 64 22 20 79 65 74 2c 20 62 75 74 20 74 68 69 73 20 64 69 73 61 6c 6c 6f 77 73 xtended".yet,.but.this.disallows
35a80 00 00 20 20 7d 00 20 20 20 20 64 5f 6e 65 65 64 50 6f 73 74 73 6f 6c 76 65 20 3d 20 66 61 6c 73 ....}.....d_needPostsolve.=.fals
35aa0 65 3b 00 20 20 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 70 6f 73 74 73 6f 6c 76 65 e;.....d_theoryEngine->postsolve
35ac0 28 29 3b 00 20 20 69 66 28 64 5f 6e 65 65 64 50 6f 73 74 73 6f 6c 76 65 29 20 7b 00 20 20 2f 2f ();...if(d_needPostsolve).{...//
35ae0 20 63 68 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 61 20 70 6f 73 74 73 6f 6c 76 65 28 29 20 69 .check.to.see.if.a.postsolve().i
35b00 73 20 70 65 6e 64 69 6e 67 00 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 s.pending....}.....throw.ModalEx
35b20 63 65 70 74 69 6f 6e 28 22 43 61 6e 6e 6f 74 20 70 6f 70 20 62 65 79 6f 6e 64 20 74 68 65 20 66 ception("Cannot.pop.beyond.the.f
35b40 69 72 73 74 20 75 73 65 72 20 66 72 61 6d 65 22 29 3b 00 20 20 69 66 28 64 5f 75 73 65 72 4c 65 irst.user.frame");...if(d_userLe
35b60 76 65 6c 73 2e 73 69 7a 65 28 29 20 3d 3d 20 30 29 20 7b 00 20 20 7d 00 20 20 20 20 74 68 72 6f vels.size().==.0).{...}.....thro
35b80 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 22 43 61 6e 6e 6f 74 20 70 6f 70 20 77 68 65 w.ModalException("Cannot.pop.whe
35ba0 6e 20 6e 6f 74 20 73 6f 6c 76 69 6e 67 20 69 6e 63 72 65 6d 65 6e 74 61 6c 6c 79 20 28 75 73 65 n.not.solving.incrementally.(use
35bc0 20 2d 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 29 22 29 3b 00 20 20 69 66 28 21 6f 70 74 69 6f 6e 73 .--incremental)");...if(!options
35be0 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 29 20 7b 00 20 20 7d 00 20 20 ::incrementalSolving()).{...}...
35c00 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 50 6f 70 43 6f 6d 6d 61 6e ..Dump("benchmark").<<.PopComman
35c20 64 28 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 d();...if(Dump.isOn("benchmark")
35c40 29 20 7b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 70 6f 70 28 29 ).{...Trace("smt").<<."SMT.pop()
35c60 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 ".<<.endl;...finalOptionsAreSet(
35c80 29 3b 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 76 6f 69 64 20 53 );...SmtScope.smts(this);.void.S
35ca0 6d 74 45 6e 67 69 6e 65 3a 3a 70 6f 70 28 29 20 7b 00 00 7d 00 20 20 20 20 20 20 20 20 20 20 20 mtEngine::pop().{..}............
35cc0 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2d 3e 67 65 ............<<.d_userContext->ge
35ce0 74 4c 65 76 65 6c 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 54 72 61 63 65 28 22 75 73 65 72 70 tLevel().<<.endl;...Trace("userp
35d00 75 73 68 70 6f 70 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 20 70 75 73 68 65 64 20 74 ushpop").<<."SmtEngine:.pushed.t
35d20 6f 20 6c 65 76 65 6c 20 22 00 20 20 69 6e 74 65 72 6e 61 6c 50 75 73 68 28 29 3b 00 20 20 64 5f o.level."...internalPush();...d_
35d40 75 73 65 72 4c 65 76 65 6c 73 2e 70 75 73 68 5f 62 61 63 6b 28 64 5f 75 73 65 72 43 6f 6e 74 65 userLevels.push_back(d_userConte
35d60 78 74 2d 3e 67 65 74 4c 65 76 65 6c 28 29 29 3b 00 00 20 20 64 5f 70 72 6f 62 6c 65 6d 45 78 74 xt->getLevel());....d_problemExt
35d80 65 6e 64 65 64 20 3d 20 74 72 75 65 3b 00 20 20 2f 2f 20 73 74 61 79 69 6e 67 20 73 79 6d 6d 74 ended.=.true;...//.staying.symmt
35da0 72 69 63 20 77 69 74 68 20 70 6f 70 2e 00 20 20 2f 2f 20 67 65 74 2d 6d 6f 64 65 6c 20 61 66 74 ric.with.pop....//.get-model.aft
35dc0 65 72 20 61 20 70 75 73 68 2c 20 73 69 6d 70 6c 69 66 79 69 6e 67 20 6f 75 72 20 6c 69 76 65 73 er.a.push,.simplifying.our.lives
35de0 20 73 6f 6d 65 77 68 61 74 20 61 6e 64 00 20 20 2f 2f 20 54 68 65 20 70 72 6f 62 6c 65 6d 20 69 .somewhat.and...//.The.problem.i
35e00 73 6e 27 74 20 72 65 61 6c 6c 79 20 22 65 78 74 65 6e 64 65 64 22 20 79 65 74 2c 20 62 75 74 20 sn't.really."extended".yet,.but.
35e20 74 68 69 73 20 64 69 73 61 6c 6c 6f 77 73 00 00 20 20 7d 00 20 20 20 20 64 5f 6e 65 65 64 50 6f this.disallows....}.....d_needPo
35e40 73 74 73 6f 6c 76 65 20 3d 20 66 61 6c 73 65 3b 00 20 20 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 stsolve.=.false;.....d_theoryEng
35e60 69 6e 65 2d 3e 70 6f 73 74 73 6f 6c 76 65 28 29 3b 00 20 20 69 66 28 64 5f 6e 65 65 64 50 6f 73 ine->postsolve();...if(d_needPos
35e80 74 73 6f 6c 76 65 29 20 7b 00 20 20 2f 2f 20 63 68 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 61 tsolve).{...//.check.to.see.if.a
35ea0 20 70 6f 73 74 73 6f 6c 76 65 28 29 20 69 73 20 70 65 6e 64 69 6e 67 00 00 20 20 7d 00 20 20 20 .postsolve().is.pending....}....
35ec0 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 28 22 43 61 6e 6e 6f 74 20 70 75 .throw.ModalException("Cannot.pu
35ee0 73 68 20 77 68 65 6e 20 6e 6f 74 20 73 6f 6c 76 69 6e 67 20 69 6e 63 72 65 6d 65 6e 74 61 6c 6c sh.when.not.solving.incrementall
35f00 79 20 28 75 73 65 20 2d 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 29 22 29 3b 00 20 20 69 66 28 21 6f y.(use.--incremental)");...if(!o
35f20 70 74 69 6f 6e 73 3a 3a 69 6e 63 72 65 6d 65 6e 74 61 6c 53 6f 6c 76 69 6e 67 28 29 29 20 7b 00 ptions::incrementalSolving()).{.
35f40 20 20 7d 00 20 20 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 50 75 73 ..}.....Dump("benchmark").<<.Pus
35f60 68 43 6f 6d 6d 61 6e 64 28 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 hCommand();...if(Dump.isOn("benc
35f80 68 6d 61 72 6b 22 29 29 20 7b 00 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 70 72 6f 63 65 73 73 41 hmark")).{...d_private->processA
35fa0 73 73 65 72 74 69 6f 6e 73 28 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 ssertions();...Trace("smt").<<."
35fc0 53 4d 54 20 70 75 73 68 28 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 64 6f 50 65 6e 64 69 6e 67 SMT.push()".<<.endl;...doPending
35fe0 50 6f 70 73 28 29 3b 00 20 20 66 69 6e 61 6c 4f 70 74 69 6f 6e 73 41 72 65 53 65 74 28 29 3b 00 Pops();...finalOptionsAreSet();.
36000 61 64 00 00 00 00 00 00 04 02 00 00 00 10 00 00 7a 00 00 00 00 00 00 00 ea 0f 00 00 a7 0f 00 00 ad..............z...............
36020 8c 0f 00 00 8a 0f 00 00 89 0f 00 00 5d 0f 00 00 46 0f 00 00 45 0f 00 00 12 0f 00 00 f3 0e 00 00 ............]...F...E...........
36040 c0 0e 00 00 bc 0e 00 00 bb 0e 00 00 9a 0e 00 00 8f 0e 00 00 8b 0e 00 00 8a 0e 00 00 50 0e 00 00 ............................P...
36060 0a 0e 00 00 f3 0d 00 00 d8 0d 00 00 a2 0d 00 00 89 0d 00 00 74 0d 00 00 72 0d 00 00 71 0d 00 00 ....................t...r...q...
36080 3d 0d 00 00 26 0d 00 00 1a 0d 00 00 16 0d 00 00 f9 0c 00 00 da 0c 00 00 d8 0c 00 00 d7 0c 00 00 =...&...........................
360a0 8e 0c 00 00 46 0c 00 00 44 0c 00 00 ff 0b 00 00 bb 0b 00 00 b9 0b 00 00 b8 0b 00 00 84 0b 00 00 ....F...D.......................
360c0 46 0b 00 00 44 0b 00 00 43 0b 00 00 13 0b 00 00 d9 0a 00 00 d7 0a 00 00 d6 0a 00 00 88 0a 00 00 F...D...C.......................
360e0 46 0a 00 00 44 0a 00 00 43 0a 00 00 f9 09 00 00 bb 09 00 00 b9 09 00 00 b8 09 00 00 82 09 00 00 F...D...C.......................
36100 56 09 00 00 54 09 00 00 53 09 00 00 13 09 00 00 e0 08 00 00 de 08 00 00 dd 08 00 00 a9 08 00 00 V...T...S.......................
36120 77 08 00 00 75 08 00 00 74 08 00 00 f7 07 00 00 e0 07 00 00 bf 07 00 00 8d 07 00 00 56 07 00 00 w...u...t...................V...
36140 52 07 00 00 00 07 00 00 fe 06 00 00 fd 06 00 00 c7 06 00 00 78 06 00 00 3c 06 00 00 10 06 00 00 R...................x...<.......
36160 c4 05 00 00 ae 05 00 00 8b 05 00 00 68 05 00 00 60 05 00 00 5a 05 00 00 56 05 00 00 1f 05 00 00 ............h...`...Z...V.......
36180 f6 04 00 00 aa 04 00 00 94 04 00 00 71 04 00 00 4e 04 00 00 46 04 00 00 40 04 00 00 3c 04 00 00 ............q...N...F...@...<...
361a0 3a 04 00 00 39 04 00 00 38 04 00 00 37 04 00 00 00 04 00 00 ea 03 00 00 d0 03 00 00 8f 03 00 00 :...9...8...7...................
361c0 8b 03 00 00 89 03 00 00 88 03 00 00 87 03 00 00 3b 03 00 00 10 03 00 00 0f 03 00 00 e8 02 00 00 ................;...............
361e0 9d 02 00 00 9c 02 00 00 7d 02 00 00 46 02 00 00 42 02 00 00 41 02 00 00 1e 02 00 00 04 02 00 00 ........}...F...B...A...........
36200 74 20 7b 00 20 20 20 20 69 66 28 21 76 61 6c 75 65 2e 69 73 41 74 6f 6d 28 29 29 20 7b 00 20 20 t.{.....if(!value.isAtom()).{...
36220 69 66 28 6b 65 79 20 3d 3d 20 22 63 6f 6d 6d 61 6e 64 2d 76 65 72 62 6f 73 69 74 79 22 29 20 7b if(key.==."command-verbosity").{
36240 00 00 20 20 7d 00 20 20 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 53 ....}.....Dump("benchmark").<<.S
36260 65 74 4f 70 74 69 6f 6e 43 6f 6d 6d 61 6e 64 28 6b 65 79 2c 20 76 61 6c 75 65 29 3b 00 20 20 69 etOptionCommand(key,.value);...i
36280 66 28 44 75 6d 70 2e 69 73 4f 6e 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 29 20 7b 00 00 20 20 54 f(Dump.isOn("benchmark")).{....T
362a0 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 73 65 74 4f 70 74 69 6f 6e 28 22 20 race("smt").<<."SMT.setOption(".
362c0 3c 3c 20 6b 65 79 20 3c 3c 20 22 2c 20 22 20 3c 3c 20 76 61 6c 75 65 20 3c 3c 20 22 29 22 20 3c <<.key.<<.",.".<<.value.<<.")".<
362e0 3c 20 65 6e 64 6c 3b 00 20 20 4e 6f 64 65 4d 61 6e 61 67 65 72 53 63 6f 70 65 20 6e 6d 73 28 64 <.endl;...NodeManagerScope.nms(d
36300 5f 6e 6f 64 65 4d 61 6e 61 67 65 72 29 3b 00 00 20 20 74 68 72 6f 77 28 4f 70 74 69 6f 6e 45 78 _nodeManager);....throw(OptionEx
36320 63 65 70 74 69 6f 6e 2c 20 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 76 6f 69 64 20 ception,.ModalException).{.void.
36340 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 65 74 4f 70 74 69 6f 6e 28 63 6f 6e 73 74 20 73 74 64 3a 3a SmtEngine::setOption(const.std::
36360 73 74 72 69 6e 67 26 20 6b 65 79 2c 20 63 6f 6e 73 74 20 43 56 43 34 3a 3a 53 45 78 70 72 26 20 string&.key,.const.CVC4::SExpr&.
36380 76 61 6c 75 65 29 00 00 00 7d 00 20 20 7d 00 20 20 20 20 20 20 20 20 22 53 6d 74 45 6e 67 69 6e value)...}...}........."SmtEngin
363a0 65 3a 3a 62 65 66 6f 72 65 53 65 61 72 63 68 20 63 61 6c 6c 65 64 20 61 66 74 65 72 20 69 6e 69 e::beforeSearch.called.after.ini
363c0 74 69 61 6c 69 7a 61 74 69 6f 6e 2e 22 29 3b 00 20 20 20 20 74 68 72 6f 77 20 4d 6f 64 61 6c 45 tialization.");.....throw.ModalE
363e0 78 63 65 70 74 69 6f 6e 28 00 20 20 69 66 28 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 29 20 7b 00 xception(...if(d_fullyInited).{.
36400 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 62 65 66 6f 72 65 53 65 61 72 63 68 28 29 20 74 void.SmtEngine::beforeSearch().t
36420 68 72 6f 77 28 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 00 00 00 7d 00 20 20 7d 00 hrow(ModalException).{....}...}.
36440 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 64 66 63 2d 3e 73 65 74 50 72 ....}.......}.........dfc->setPr
36460 69 6e 74 49 6e 4d 6f 64 65 6c 28 20 70 20 29 3b 00 20 20 20 20 20 20 69 66 28 20 64 66 63 2d 3e intInModel(.p.);.......if(.dfc->
36480 67 65 74 46 75 6e 63 74 69 6f 6e 28 29 3d 3d 66 20 29 7b 00 20 20 20 20 69 66 28 64 66 63 20 21 getFunction()==f.){.....if(dfc.!
364a0 3d 20 4e 55 4c 4c 29 20 7b 00 20 20 20 20 44 65 63 6c 61 72 65 46 75 6e 63 74 69 6f 6e 43 6f 6d =.NULL).{.....DeclareFunctionCom
364c0 6d 61 6e 64 2a 20 64 66 63 20 3d 20 64 79 6e 61 6d 69 63 5f 63 61 73 74 3c 44 65 63 6c 61 72 65 mand*.dfc.=.dynamic_cast<Declare
364e0 46 75 6e 63 74 69 6f 6e 43 6f 6d 6d 61 6e 64 2a 3e 28 63 29 3b 00 20 20 20 20 43 6f 6d 6d 61 6e FunctionCommand*>(c);.....Comman
36500 64 20 2a 20 63 20 3d 20 28 2a 64 5f 6d 6f 64 65 6c 43 6f 6d 6d 61 6e 64 73 29 5b 69 5d 3b 00 20 d.*.c.=.(*d_modelCommands)[i];..
36520 20 66 6f 72 28 20 75 6e 73 69 67 6e 65 64 20 69 3d 30 3b 20 69 3c 64 5f 6d 6f 64 65 6c 43 6f 6d .for(.unsigned.i=0;.i<d_modelCom
36540 6d 61 6e 64 73 2d 3e 73 69 7a 65 28 29 3b 20 69 2b 2b 20 29 7b 00 20 20 7d 00 20 20 20 20 7d 00 mands->size();.i++.){...}.....}.
36560 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 64 66 63 2d 3e 73 65 74 50 72 69 6e 74 49 6e 4d ......}.........dfc->setPrintInM
36580 6f 64 65 6c 28 20 70 20 29 3b 00 20 20 20 20 20 20 69 66 28 20 64 66 63 2d 3e 67 65 74 46 75 6e odel(.p.);.......if(.dfc->getFun
365a0 63 74 69 6f 6e 28 29 3d 3d 66 20 29 7b 00 20 20 20 20 69 66 28 64 66 63 20 21 3d 20 4e 55 4c 4c ction()==f.){.....if(dfc.!=.NULL
365c0 29 20 7b 00 20 20 20 20 44 65 63 6c 61 72 65 46 75 6e 63 74 69 6f 6e 43 6f 6d 6d 61 6e 64 2a 20 ).{.....DeclareFunctionCommand*.
365e0 64 66 63 20 3d 20 64 79 6e 61 6d 69 63 5f 63 61 73 74 3c 44 65 63 6c 61 72 65 46 75 6e 63 74 69 dfc.=.dynamic_cast<DeclareFuncti
36600 6f 6e 43 6f 6d 6d 61 6e 64 2a 3e 28 63 29 3b 00 20 20 20 20 43 6f 6d 6d 61 6e 64 20 2a 20 63 20 onCommand*>(c);.....Command.*.c.
36620 3d 20 64 5f 6d 6f 64 65 6c 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 73 5b 69 5d 3b 00 20 20 66 6f =.d_modelGlobalCommands[i];...fo
36640 72 28 20 75 6e 73 69 67 6e 65 64 20 69 3d 30 3b 20 69 3c 64 5f 6d 6f 64 65 6c 47 6c 6f 62 61 6c r(.unsigned.i=0;.i<d_modelGlobal
36660 43 6f 6d 6d 61 6e 64 73 2e 73 69 7a 65 28 29 3b 20 69 2b 2b 20 29 7b 00 20 20 54 72 61 63 65 28 Commands.size();.i++.){...Trace(
36680 22 73 65 74 70 2d 6d 6f 64 65 6c 22 29 20 3c 3c 20 22 53 65 74 20 70 72 69 6e 74 49 6e 4d 6f 64 "setp-model").<<."Set.printInMod
366a0 65 6c 20 22 20 3c 3c 20 66 20 3c 3c 20 22 20 74 6f 20 22 20 3c 3c 20 70 20 3c 3c 20 73 74 64 3a el.".<<.f.<<.".to.".<<.p.<<.std:
366c0 3a 65 6e 64 6c 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 65 74 50 72 69 6e 74 46 :endl;.void.SmtEngine::setPrintF
366e0 75 6e 63 49 6e 4d 6f 64 65 6c 28 45 78 70 72 20 66 2c 20 62 6f 6f 6c 20 70 29 20 7b 00 00 7d 00 uncInModel(Expr.f,.bool.p).{..}.
36700 20 20 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 73 65 74 55 73 65 72 41 74 74 72 69 62 75 ..d_theoryEngine->setUserAttribu
36720 74 65 28 61 74 74 72 2c 20 65 78 70 72 2e 67 65 74 4e 6f 64 65 28 29 2c 20 6e 6f 64 65 5f 76 61 te(attr,.expr.getNode(),.node_va
36740 6c 75 65 73 2c 20 73 74 72 5f 76 61 6c 75 65 29 3b 00 20 20 7d 00 20 20 20 20 6e 6f 64 65 5f 76 lues,.str_value);...}.....node_v
36760 61 6c 75 65 73 2e 70 75 73 68 5f 62 61 63 6b 28 20 65 78 70 72 5f 76 61 6c 75 65 73 5b 69 5d 2e alues.push_back(.expr_values[i].
36780 67 65 74 4e 6f 64 65 28 29 20 29 3b 00 20 20 66 6f 72 28 20 75 6e 73 69 67 6e 65 64 20 69 3d 30 getNode().);...for(.unsigned.i=0
367a0 3b 20 69 3c 65 78 70 72 5f 76 61 6c 75 65 73 2e 73 69 7a 65 28 29 3b 20 69 2b 2b 20 29 7b 00 20 ;.i<expr_values.size();.i++.){..
367c0 20 73 74 64 3a 3a 76 65 63 74 6f 72 3c 4e 6f 64 65 3e 20 6e 6f 64 65 5f 76 61 6c 75 65 73 3b 00 .std::vector<Node>.node_values;.
367e0 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 76 6f 69 64 20 53 6d 74 45 ..SmtScope.smts(this);.void.SmtE
36800 6e 67 69 6e 65 3a 3a 73 65 74 55 73 65 72 41 74 74 72 69 62 75 74 65 28 63 6f 6e 73 74 20 73 74 ngine::setUserAttribute(const.st
36820 64 3a 3a 73 74 72 69 6e 67 26 20 61 74 74 72 2c 20 45 78 70 72 20 65 78 70 72 2c 20 73 74 64 3a d::string&.attr,.Expr.expr,.std:
36840 3a 76 65 63 74 6f 72 3c 45 78 70 72 3e 20 65 78 70 72 5f 76 61 6c 75 65 73 2c 20 73 74 64 3a 3a :vector<Expr>.expr_values,.std::
36860 73 74 72 69 6e 67 20 73 74 72 5f 76 61 6c 75 65 29 20 7b 00 00 7d 00 20 20 64 5f 73 74 61 74 69 string.str_value).{..}...d_stati
36880 73 74 69 63 73 52 65 67 69 73 74 72 79 2d 3e 73 61 66 65 46 6c 75 73 68 49 6e 66 6f 72 6d 61 74 sticsRegistry->safeFlushInformat
368a0 69 6f 6e 28 66 64 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 61 66 65 46 6c 75 ion(fd);.void.SmtEngine::safeFlu
368c0 73 68 53 74 61 74 69 73 74 69 63 73 28 69 6e 74 20 66 64 29 20 63 6f 6e 73 74 20 7b 00 00 7d 00 shStatistics(int.fd).const.{..}.
368e0 20 20 72 65 74 75 72 6e 20 64 5f 73 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 2d 3e 67 ..return.d_statisticsRegistry->g
36900 65 74 53 74 61 74 69 73 74 69 63 28 6e 61 6d 65 29 3b 00 53 45 78 70 72 20 53 6d 74 45 6e 67 69 etStatistic(name);.SExpr.SmtEngi
36920 6e 65 3a 3a 67 65 74 53 74 61 74 69 73 74 69 63 28 73 74 64 3a 3a 73 74 72 69 6e 67 20 6e 61 6d ne::getStatistic(std::string.nam
36940 65 29 20 63 6f 6e 73 74 20 74 68 72 6f 77 28 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 53 e).const.throw().{..}...return.S
36960 74 61 74 69 73 74 69 63 73 28 2a 64 5f 73 74 61 74 69 73 74 69 63 73 52 65 67 69 73 74 72 79 29 tatistics(*d_statisticsRegistry)
36980 3b 00 53 74 61 74 69 73 74 69 63 73 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 53 74 61 74 69 ;.Statistics.SmtEngine::getStati
369a0 73 74 69 63 73 28 29 20 63 6f 6e 73 74 20 74 68 72 6f 77 28 29 20 7b 00 00 7d 00 20 20 72 65 74 stics().const.throw().{..}...ret
369c0 75 72 6e 20 64 5f 70 72 69 76 61 74 65 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 urn.d_private->getResourceManage
369e0 72 28 29 2d 3e 67 65 74 54 69 6d 65 52 65 6d 61 69 6e 69 6e 67 28 29 3b 00 75 6e 73 69 67 6e 65 r()->getTimeRemaining();.unsigne
36a00 64 20 6c 6f 6e 67 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 54 69 6d 65 52 65 6d 61 69 6e 69 d.long.SmtEngine::getTimeRemaini
36a20 6e 67 28 29 20 63 6f 6e 73 74 20 74 68 72 6f 77 28 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 29 ng().const.throw(ModalException)
36a40 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 64 5f 70 72 69 76 61 74 65 2d 3e 67 65 74 52 65 73 .{..}...return.d_private->getRes
36a60 6f 75 72 63 65 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 52 65 6d 61 69 ourceManager()->getResourceRemai
36a80 6e 69 6e 67 28 29 3b 00 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 53 6d 74 45 6e 67 69 6e 65 3a ning();.unsigned.long.SmtEngine:
36aa0 3a 67 65 74 52 65 73 6f 75 72 63 65 52 65 6d 61 69 6e 69 6e 67 28 29 20 63 6f 6e 73 74 20 74 68 :getResourceRemaining().const.th
36ac0 72 6f 77 28 4d 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 row(ModalException).{..}...retur
36ae0 6e 20 64 5f 70 72 69 76 61 74 65 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 28 n.d_private->getResourceManager(
36b00 29 2d 3e 67 65 74 54 69 6d 65 55 73 61 67 65 28 29 3b 00 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 )->getTimeUsage();.unsigned.long
36b20 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 54 69 6d 65 55 73 61 67 65 28 29 20 63 6f 6e 73 74 .SmtEngine::getTimeUsage().const
36b40 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e 20 64 5f 70 72 69 76 61 74 65 2d 3e 67 65 74 52 65 73 .{..}...return.d_private->getRes
36b60 6f 75 72 63 65 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 55 73 61 67 65 ourceManager()->getResourceUsage
36b80 28 29 3b 00 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 ();.unsigned.long.SmtEngine::get
36ba0 52 65 73 6f 75 72 63 65 55 73 61 67 65 28 29 20 63 6f 6e 73 74 20 7b 00 00 7d 00 20 20 64 5f 70 ResourceUsage().const.{..}...d_p
36bc0 72 69 76 61 74 65 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 28 29 2d 3e 73 65 rivate->getResourceManager()->se
36be0 74 54 69 6d 65 4c 69 6d 69 74 28 6d 69 6c 69 73 2c 20 63 75 6d 75 6c 61 74 69 76 65 29 3b 00 76 tTimeLimit(milis,.cumulative);.v
36c00 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 65 74 54 69 6d 65 4c 69 6d 69 74 28 75 6e 73 69 oid.SmtEngine::setTimeLimit(unsi
36c20 67 6e 65 64 20 6c 6f 6e 67 20 6d 69 6c 69 73 2c 20 62 6f 6f 6c 20 63 75 6d 75 6c 61 74 69 76 65 gned.long.milis,.bool.cumulative
36c40 29 20 7b 00 7d 00 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 67 65 74 52 65 73 6f 75 72 63 65 4d 61 ).{.}...d_private->getResourceMa
36c60 6e 61 67 65 72 28 29 2d 3e 73 65 74 52 65 73 6f 75 72 63 65 4c 69 6d 69 74 28 75 6e 69 74 73 2c nager()->setResourceLimit(units,
36c80 20 63 75 6d 75 6c 61 74 69 76 65 29 3b 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 65 .cumulative);.void.SmtEngine::se
36ca0 74 52 65 73 6f 75 72 63 65 4c 69 6d 69 74 28 75 6e 73 69 67 6e 65 64 20 6c 6f 6e 67 20 75 6e 69 tResourceLimit(unsigned.long.uni
36cc0 74 73 2c 20 62 6f 6f 6c 20 63 75 6d 75 6c 61 74 69 76 65 29 20 7b 00 00 7d 00 20 20 64 5f 74 68 ts,.bool.cumulative).{..}...d_th
36ce0 65 6f 72 79 45 6e 67 69 6e 65 2d 3e 69 6e 74 65 72 72 75 70 74 28 29 3b 00 20 20 64 5f 70 72 6f eoryEngine->interrupt();...d_pro
36d00 70 45 6e 67 69 6e 65 2d 3e 69 6e 74 65 72 72 75 70 74 28 29 3b 00 20 20 7d 00 20 20 20 20 72 65 pEngine->interrupt();...}.....re
36d20 74 75 72 6e 3b 00 20 20 69 66 28 21 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 29 20 7b 00 76 6f 69 turn;...if(!d_fullyInited).{.voi
36d40 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 69 6e 74 65 72 72 75 70 74 28 29 20 74 68 72 6f 77 28 4d d.SmtEngine::interrupt().throw(M
36d60 6f 64 61 6c 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 00 7d 00 20 20 64 5f 63 6f 6e 74 65 78 74 2d odalException).{..}...d_context-
36d80 3e 70 75 73 68 28 29 3b 00 20 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2d 3e 70 75 73 68 28 29 >push();...d_userContext->push()
36da0 3b 00 20 20 44 65 6c 65 74 65 41 6e 64 43 6c 65 61 72 43 6f 6d 6d 61 6e 64 56 65 63 74 6f 72 28 ;...DeleteAndClearCommandVector(
36dc0 64 5f 6d 6f 64 65 6c 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 73 29 3b 00 20 20 64 5f 75 73 65 72 d_modelGlobalCommands);...d_user
36de0 43 6f 6e 74 65 78 74 2d 3e 70 6f 70 74 6f 28 30 29 3b 00 20 20 64 5f 63 6f 6e 74 65 78 74 2d 3e Context->popto(0);...d_context->
36e00 70 6f 70 74 6f 28 30 29 3b 00 20 20 41 73 73 65 72 74 28 64 5f 75 73 65 72 4c 65 76 65 6c 73 2e popto(0);...Assert(d_userLevels.
36e20 73 69 7a 65 28 29 20 3d 3d 20 30 20 26 26 20 64 5f 75 73 65 72 43 6f 6e 74 65 78 74 2d 3e 67 65 size().==.0.&&.d_userContext->ge
36e40 74 4c 65 76 65 6c 28 29 20 3d 3d 20 31 29 3b 00 20 20 2f 2f 20 41 6c 73 6f 20 72 65 6d 65 6d 62 tLevel().==.1);...//.Also.rememb
36e60 65 72 20 74 68 65 20 67 6c 6f 62 61 6c 20 70 75 73 68 2f 70 6f 70 20 61 72 6f 75 6e 64 20 65 76 er.the.global.push/pop.around.ev
36e80 65 72 79 74 68 69 6e 67 2e 00 00 20 20 7d 00 20 20 20 20 70 6f 70 28 29 3b 00 20 20 77 68 69 6c erything.....}.....pop();...whil
36ea0 65 28 21 64 5f 75 73 65 72 4c 65 76 65 6c 73 2e 65 6d 70 74 79 28 29 29 20 7b 00 00 20 20 7d 00 e(!d_userLevels.empty()).{....}.
36ec0 20 20 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 52 65 73 65 74 41 73 ....Dump("benchmark").<<.ResetAs
36ee0 73 65 72 74 69 6f 6e 73 43 6f 6d 6d 61 6e 64 28 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f sertionsCommand();...if(Dump.isO
36f00 6e 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 29 20 7b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 n("benchmark")).{...Trace("smt")
36f20 20 3c 3c 20 22 53 4d 54 20 72 65 73 65 74 41 73 73 65 72 74 69 6f 6e 73 28 29 22 20 3c 3c 20 65 .<<."SMT.resetAssertions()".<<.e
36f40 6e 64 6c 3b 00 00 20 20 53 6d 74 53 63 6f 70 65 20 73 6d 74 73 28 74 68 69 73 29 3b 00 76 6f 69 ndl;....SmtScope.smts(this);.voi
36f60 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 72 65 73 65 74 41 73 73 65 72 74 69 6f 6e 73 28 29 20 74 d.SmtEngine::resetAssertions().t
36f80 68 72 6f 77 28 29 20 7b 00 00 7d 00 20 20 6e 65 77 28 74 68 69 73 29 20 53 6d 74 45 6e 67 69 6e hrow().{..}...new(this).SmtEngin
36fa0 65 28 65 6d 29 3b 00 20 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 66 72 6f 6d 45 78 70 72 4d 61 e(em);...NodeManager::fromExprMa
36fc0 6e 61 67 65 72 28 65 6d 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 2e 63 6f 70 79 56 61 6c 75 nager(em)->getOptions().copyValu
36fe0 65 73 28 6f 70 74 73 29 3b 00 20 20 74 68 69 73 2d 3e 7e 53 6d 74 45 6e 67 69 6e 65 28 29 3b 00 es(opts);...this->~SmtEngine();.
37000 61 64 00 00 29 04 00 00 a9 05 00 00 00 10 00 00 59 00 00 00 00 00 00 00 cb 0f 00 00 b0 0f 00 00 ad..)...........Y...............
37020 7c 0f 00 00 5e 0f 00 00 39 0f 00 00 05 0f 00 00 e8 0e 00 00 9f 0e 00 00 95 0e 00 00 72 0e 00 00 |...^...9...................r...
37040 62 0e 00 00 5a 0e 00 00 54 0e 00 00 f6 0d 00 00 f2 0d 00 00 f1 0d 00 00 d9 0d 00 00 a5 0d 00 00 b...Z...T.......................
37060 a1 0d 00 00 a0 0d 00 00 79 0d 00 00 31 0d 00 00 01 0d 00 00 ff 0c 00 00 fe 0c 00 00 bf 0c 00 00 ........y...1...................
37080 a4 0c 00 00 a3 0c 00 00 7c 0c 00 00 7b 0c 00 00 41 0c 00 00 40 0c 00 00 25 0c 00 00 ef 0b 00 00 ........|...{...A...@...%.......
370a0 97 0b 00 00 6f 0b 00 00 4e 0b 00 00 48 0b 00 00 22 0b 00 00 fa 0a 00 00 d9 0a 00 00 d3 0a 00 00 ....o...N...H..."...............
370c0 b5 0a 00 00 b1 0a 00 00 b0 0a 00 00 91 0a 00 00 61 0a 00 00 5d 0a 00 00 5c 0a 00 00 39 0a 00 00 ................a...]...\...9...
370e0 1f 0a 00 00 03 0a 00 00 b6 09 00 00 8f 09 00 00 80 09 00 00 69 09 00 00 43 09 00 00 1c 09 00 00 ....................i...C.......
37100 fe 08 00 00 cb 08 00 00 a6 08 00 00 97 08 00 00 73 08 00 00 6b 08 00 00 65 08 00 00 36 08 00 00 ................s...k...e...6...
37120 11 08 00 00 e7 07 00 00 da 07 00 00 ad 07 00 00 96 07 00 00 77 07 00 00 51 07 00 00 2f 07 00 00 ....................w...Q.../...
37140 29 07 00 00 0f 07 00 00 0b 07 00 00 0a 07 00 00 c2 06 00 00 84 06 00 00 82 06 00 00 81 06 00 00 )...............................
37160 45 06 00 00 26 06 00 00 e3 05 00 00 c2 05 00 00 c0 05 00 00 bf 05 00 00 a9 05 00 00 00 00 00 00 E...&...........................
37180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
371a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
371c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
371e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
372a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
372c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
372e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
373a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
373c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
373e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
374a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
374c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
374e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
375a0 00 00 00 00 00 00 00 00 00 7d 2f 2a 20 43 56 43 34 20 6e 61 6d 65 73 70 61 63 65 20 2a 2f 00 00 .........}/*.CVC4.namespace.*/..
375c0 7d 00 20 20 64 5f 72 65 70 6c 61 79 53 74 72 65 61 6d 20 3d 20 72 65 70 6c 61 79 53 74 72 65 61 }...d_replayStream.=.replayStrea
375e0 6d 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 61 6e 6e 6f 74 20 73 65 74 20 72 65 m;................"Cannot.set.re
37600 70 6c 61 79 20 73 74 72 65 61 6d 20 6f 6e 63 65 20 66 75 6c 6c 79 20 69 6e 69 74 69 61 6c 69 7a play.stream.once.fully.initializ
37620 65 64 22 29 3b 00 20 20 41 6c 77 61 79 73 41 73 73 65 72 74 28 21 64 5f 66 75 6c 6c 79 49 6e 69 ed");...AlwaysAssert(!d_fullyIni
37640 74 65 64 2c 00 76 6f 69 64 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 73 65 74 52 65 70 6c 61 79 53 74 ted,.void.SmtEngine::setReplaySt
37660 72 65 61 6d 28 45 78 70 72 53 74 72 65 61 6d 2a 20 72 65 70 6c 61 79 53 74 72 65 61 6d 29 20 7b ream(ExprStream*.replayStream).{
37680 00 00 7d 00 20 20 72 65 74 75 72 6e 20 53 45 78 70 72 3a 3a 70 61 72 73 65 41 74 6f 6d 28 6e 6f ..}...return.SExpr::parseAtom(no
376a0 64 65 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 2e 67 65 74 4f 70 74 69 6f 6e 28 6b 65 79 29 29 deManagerOptions.getOption(key))
376c0 3b 00 20 20 4f 70 74 69 6f 6e 73 26 20 6e 6f 64 65 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 20 ;...Options&.nodeManagerOptions.
376e0 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 72 72 65 6e 74 4e 4d 28 29 2d 3e 67 65 74 4f =.NodeManager::currentNM()->getO
37700 70 74 69 6f 6e 73 28 29 3b 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 72 28 ptions();....}.....return.SExpr(
37720 72 65 73 75 6c 74 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 72 65 73 75 6c 74 2e 70 75 73 68 result);.....}.......result.push
37740 5f 62 61 63 6b 28 53 45 78 70 72 28 76 29 29 3b 00 20 20 20 20 20 20 76 2e 70 75 73 68 5f 62 61 _back(SExpr(v));.......v.push_ba
37760 63 6b 28 53 45 78 70 72 28 49 6e 74 65 67 65 72 28 32 29 29 29 3b 00 20 20 20 20 20 20 76 2e 70 ck(SExpr(Integer(2)));.......v.p
37780 75 73 68 5f 62 61 63 6b 28 53 45 78 70 72 28 22 2a 22 29 29 3b 00 20 20 20 20 20 20 76 65 63 74 ush_back(SExpr("*"));.......vect
377a0 6f 72 3c 53 45 78 70 72 3e 20 76 3b 00 20 20 20 20 20 20 2f 2f 20 65 6e 73 75 72 65 20 74 68 65 or<SExpr>.v;.......//.ensure.the
377c0 20 64 65 66 61 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 6c 69 73 74 65 64 00 20 20 20 20 7d 20 .default.is.always.listed.....}.
377e0 65 6c 73 65 20 7b 00 20 20 20 20 20 20 72 65 73 75 6c 74 2e 70 75 73 68 5f 62 61 63 6b 28 64 65 else.{.......result.push_back(de
37800 66 61 75 6c 74 56 65 72 62 6f 73 69 74 79 29 3b 00 20 20 20 20 69 66 28 21 64 65 66 61 75 6c 74 faultVerbosity);.....if(!default
37820 56 65 72 62 6f 73 69 74 79 2e 69 73 41 74 6f 6d 28 29 29 20 7b 00 20 20 20 20 2f 2f 20 70 75 74 Verbosity.isAtom()).{.....//.put
37840 20 74 68 65 20 64 65 66 61 75 6c 74 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 53 .the.default.at.the.end.of.the.S
37860 45 78 70 72 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 72 65 73 75 6c Expr.....}.......}.........resul
37880 74 2e 70 75 73 68 5f 62 61 63 6b 28 53 45 78 70 72 28 76 29 29 3b 00 20 20 20 20 20 20 7d 20 65 t.push_back(SExpr(v));.......}.e
378a0 6c 73 65 20 7b 00 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 56 65 72 62 6f 73 69 74 79 20 3d lse.{.........defaultVerbosity.=
378c0 20 53 45 78 70 72 28 76 29 3b 00 20 20 20 20 20 20 20 20 2f 2f 20 70 75 74 20 74 68 65 20 64 65 .SExpr(v);.........//.put.the.de
378e0 66 61 75 6c 74 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 53 45 78 70 72 00 20 20 fault.at.the.end.of.the.SExpr...
37900 20 20 20 20 69 66 28 28 2a 69 29 2e 66 69 72 73 74 20 3d 3d 20 22 2a 22 29 20 7b 00 20 20 20 20 ....if((*i).first.==."*").{.....
37920 20 20 76 2e 70 75 73 68 5f 62 61 63 6b 28 53 45 78 70 72 28 28 2a 69 29 2e 73 65 63 6f 6e 64 29 ..v.push_back(SExpr((*i).second)
37940 29 3b 00 20 20 20 20 20 20 76 2e 70 75 73 68 5f 62 61 63 6b 28 53 45 78 70 72 28 28 2a 69 29 2e );.......v.push_back(SExpr((*i).
37960 66 69 72 73 74 29 29 3b 00 20 20 20 20 20 20 76 65 63 74 6f 72 3c 53 45 78 70 72 3e 20 76 3b 00 first));.......vector<SExpr>.v;.
37980 20 20 20 20 20 20 20 20 2b 2b 69 29 20 7b 00 20 20 20 20 20 20 20 20 69 20 21 3d 20 64 5f 63 6f ........++i).{.........i.!=.d_co
379a0 6d 6d 61 6e 64 56 65 72 62 6f 73 69 74 79 2e 65 6e 64 28 29 3b 00 20 20 20 20 66 6f 72 28 6d 61 mmandVerbosity.end();.....for(ma
379c0 70 3c 73 74 72 69 6e 67 2c 20 49 6e 74 65 67 65 72 3e 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 p<string,.Integer>::const_iterat
379e0 6f 72 20 69 20 3d 20 64 5f 63 6f 6d 6d 61 6e 64 56 65 72 62 6f 73 69 74 79 2e 62 65 67 69 6e 28 or.i.=.d_commandVerbosity.begin(
37a00 29 3b 00 20 20 20 20 53 45 78 70 72 20 64 65 66 61 75 6c 74 56 65 72 62 6f 73 69 74 79 3b 00 20 );.....SExpr.defaultVerbosity;..
37a20 20 20 20 76 65 63 74 6f 72 3c 53 45 78 70 72 3e 20 72 65 73 75 6c 74 3b 00 20 20 69 66 28 6b 65 ...vector<SExpr>.result;...if(ke
37a40 79 20 3d 3d 20 22 63 6f 6d 6d 61 6e 64 2d 76 65 72 62 6f 73 69 74 79 22 29 20 7b 00 00 20 20 7d y.==."command-verbosity").{....}
37a60 00 20 20 20 20 44 75 6d 70 28 22 62 65 6e 63 68 6d 61 72 6b 22 29 20 3c 3c 20 47 65 74 4f 70 74 .....Dump("benchmark").<<.GetOpt
37a80 69 6f 6e 43 6f 6d 6d 61 6e 64 28 6b 65 79 29 3b 00 20 20 69 66 28 44 75 6d 70 2e 69 73 4f 6e 28 ionCommand(key);...if(Dump.isOn(
37aa0 22 62 65 6e 63 68 6d 61 72 6b 22 29 29 20 7b 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 "benchmark")).{....}.....return.
37ac0 53 45 78 70 72 28 49 6e 74 65 67 65 72 28 32 29 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 72 SExpr(Integer(2));.....}.......r
37ae0 65 74 75 72 6e 20 53 45 78 70 72 28 28 2a 69 29 2e 73 65 63 6f 6e 64 29 3b 00 20 20 20 20 69 66 eturn.SExpr((*i).second);.....if
37b00 28 69 20 21 3d 20 64 5f 63 6f 6d 6d 61 6e 64 56 65 72 62 6f 73 69 74 79 2e 65 6e 64 28 29 29 20 (i.!=.d_commandVerbosity.end()).
37b20 7b 00 20 20 20 20 69 20 3d 20 64 5f 63 6f 6d 6d 61 6e 64 56 65 72 62 6f 73 69 74 79 2e 66 69 6e {.....i.=.d_commandVerbosity.fin
37b40 64 28 22 2a 22 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 72 65 74 75 72 6e 20 53 45 78 70 72 d("*");.....}.......return.SExpr
37b60 28 28 2a 69 29 2e 73 65 63 6f 6e 64 29 3b 00 20 20 20 20 69 66 28 69 20 21 3d 20 64 5f 63 6f 6d ((*i).second);.....if(i.!=.d_com
37b80 6d 61 6e 64 56 65 72 62 6f 73 69 74 79 2e 65 6e 64 28 29 29 20 7b 00 20 20 20 20 6d 61 70 3c 73 mandVerbosity.end()).{.....map<s
37ba0 74 72 69 6e 67 2c 20 49 6e 74 65 67 65 72 3e 3a 3a 63 6f 6e 73 74 5f 69 74 65 72 61 74 6f 72 20 tring,.Integer>::const_iterator.
37bc0 69 20 3d 20 64 5f 63 6f 6d 6d 61 6e 64 56 65 72 62 6f 73 69 74 79 2e 66 69 6e 64 28 6b 65 79 2e i.=.d_commandVerbosity.find(key.
37be0 63 5f 73 74 72 28 29 20 2b 20 31 38 29 3b 00 20 20 20 20 20 6b 65 79 2e 63 6f 6d 70 61 72 65 28 c_str().+.18);......key.compare(
37c00 30 2c 20 31 38 2c 20 22 63 6f 6d 6d 61 6e 64 2d 76 65 72 62 6f 73 69 74 79 3a 22 29 20 3d 3d 20 0,.18,."command-verbosity:").==.
37c20 30 29 20 7b 00 20 20 69 66 28 6b 65 79 2e 6c 65 6e 67 74 68 28 29 20 3e 3d 20 31 38 20 26 26 00 0).{...if(key.length().>=.18.&&.
37c40 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 4d 54 20 67 65 74 4f 70 74 69 6f ...Trace("smt").<<."SMT.getOptio
37c60 6e 28 22 20 3c 3c 20 6b 65 79 20 3c 3c 20 22 29 22 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 4e 6f n(".<<.key.<<.")".<<.endl;....No
37c80 64 65 4d 61 6e 61 67 65 72 53 63 6f 70 65 20 6e 6d 73 28 64 5f 6e 6f 64 65 4d 61 6e 61 67 65 72 deManagerScope.nms(d_nodeManager
37ca0 29 3b 00 00 20 20 74 68 72 6f 77 28 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 29 20 7b 00 43 );....throw(OptionException).{.C
37cc0 56 43 34 3a 3a 53 45 78 70 72 20 53 6d 74 45 6e 67 69 6e 65 3a 3a 67 65 74 4f 70 74 69 6f 6e 28 VC4::SExpr.SmtEngine::getOption(
37ce0 63 6f 6e 73 74 20 73 74 64 3a 3a 73 74 72 69 6e 67 26 20 6b 65 79 29 20 63 6f 6e 73 74 00 00 7d const.std::string&.key).const..}
37d00 00 20 20 6e 6f 64 65 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 2e 73 65 74 4f 70 74 69 6f 6e 28 ...nodeManagerOptions.setOption(
37d20 6b 65 79 2c 20 6f 70 74 69 6f 6e 61 72 67 29 3b 00 20 20 4f 70 74 69 6f 6e 73 26 20 6e 6f 64 65 key,.optionarg);...Options&.node
37d40 4d 61 6e 61 67 65 72 4f 70 74 69 6f 6e 73 20 3d 20 4e 6f 64 65 4d 61 6e 61 67 65 72 3a 3a 63 75 ManagerOptions.=.NodeManager::cu
37d60 72 72 65 6e 74 4e 4d 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b 00 20 20 73 74 72 69 6e rrentNM()->getOptions();...strin
37d80 67 20 6f 70 74 69 6f 6e 61 72 67 20 3d 20 76 61 6c 75 65 2e 67 65 74 56 61 6c 75 65 28 29 3b 00 g.optionarg.=.value.getValue();.
37da0 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 ...}.....throw.OptionException("
37dc0 62 61 64 20 76 61 6c 75 65 20 66 6f 72 20 3a 22 20 2b 20 6b 65 79 29 3b 00 20 20 69 66 28 21 76 bad.value.for.:".+.key);...if(!v
37de0 61 6c 75 65 2e 69 73 41 74 6f 6d 28 29 29 20 7b 00 00 20 20 7d 00 20 20 20 20 74 68 72 6f 77 20 alue.isAtom()).{....}.....throw.
37e00 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 63 6f 6d 6d 61 6e 64 2d 76 65 72 62 6f 73 69 OptionException("command-verbosi
37e20 74 79 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 74 75 70 6c 65 20 28 63 6f 6d 6d 61 6e ty.value.must.be.a.tuple.(comman
37e40 64 2d 6e 61 6d 65 2c 20 69 6e 74 65 67 65 72 29 22 29 3b 00 20 20 20 20 7d 00 20 20 20 20 20 20 d-name,.integer)");.....}.......
37e60 7d 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 00 20 20 20 20 20 20 20 20 64 5f 63 6f 6d 6d }.........return;.........d_comm
37e80 61 6e 64 56 65 72 62 6f 73 69 74 79 5b 63 5d 20 3d 20 76 3b 00 20 20 20 20 20 20 20 20 7d 00 20 andVerbosity[c].=.v;.........}..
37ea0 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 22 .........throw.OptionException("
37ec0 63 6f 6d 6d 61 6e 64 2d 76 65 72 62 6f 73 69 74 79 20 6d 75 73 74 20 62 65 20 30 2c 20 31 2c 20 command-verbosity.must.be.0,.1,.
37ee0 6f 72 20 32 22 29 3b 00 20 20 20 20 20 20 20 20 69 66 28 76 20 3c 20 30 20 7c 7c 20 76 20 3e 20 or.2");.........if(v.<.0.||.v.>.
37f00 32 29 20 7b 00 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 49 6e 74 65 67 65 72 26 20 76 20 3d 20 2).{.........const.Integer&.v.=.
37f20 63 73 5b 31 5d 2e 67 65 74 49 6e 74 65 67 65 72 56 61 6c 75 65 28 29 3b 00 20 20 20 20 20 20 20 cs[1].getIntegerValue();........
37f40 20 73 74 72 69 6e 67 20 63 20 3d 20 63 73 5b 30 5d 2e 67 65 74 56 61 6c 75 65 28 29 3b 00 20 20 .string.c.=.cs[0].getValue();...
37f60 20 20 20 20 20 20 20 63 73 5b 31 5d 2e 69 73 49 6e 74 65 67 65 72 28 29 29 20 7b 00 20 20 20 20 .......cs[1].isInteger()).{.....
37f80 20 20 20 20 20 28 63 73 5b 30 5d 2e 69 73 4b 65 79 77 6f 72 64 28 29 20 7c 7c 20 63 73 5b 30 5d .....(cs[0].isKeyword().||.cs[0]
37fa0 2e 69 73 53 74 72 69 6e 67 28 29 29 20 26 26 00 20 20 20 20 20 20 69 66 28 63 73 2e 73 69 7a 65 .isString()).&&.......if(cs.size
37fc0 28 29 20 3d 3d 20 32 20 26 26 00 20 20 20 20 20 20 63 6f 6e 73 74 20 76 65 63 74 6f 72 3c 53 45 ().==.2.&&.......const.vector<SE
37fe0 78 70 72 3e 26 20 63 73 20 3d 20 76 61 6c 75 65 2e 67 65 74 43 68 69 6c 64 72 65 6e 28 29 3b 00 xpr>&.cs.=.value.getChildren();.
38000 61 64 00 00 2d 00 00 00 09 02 00 00 00 10 00 00 70 00 00 00 00 00 00 00 af 0f 00 00 96 0f 00 00 ad..-...........p...............
38020 88 0f 00 00 5d 0f 00 00 30 0f 00 00 05 0f 00 00 bf 0e 00 00 72 0e 00 00 2b 0e 00 00 f6 0d 00 00 ....]...0...........r...+.......
38040 f2 0d 00 00 ac 0d 00 00 a8 0d 00 00 68 0d 00 00 63 0d 00 00 62 0d 00 00 46 0d 00 00 45 0d 00 00 ............h...c...b...F...E...
38060 30 0d 00 00 1e 0d 00 00 06 0d 00 00 f2 0c 00 00 df 0c 00 00 ce 0c 00 00 bc 0c 00 00 a9 0c 00 00 0...............................
38080 97 0c 00 00 96 0c 00 00 76 0c 00 00 4e 0c 00 00 32 0c 00 00 17 0c 00 00 f5 0b 00 00 dc 0b 00 00 ........v...N...2...............
380a0 bd 0b 00 00 a1 0b 00 00 84 0b 00 00 5e 0b 00 00 42 0b 00 00 2b 0b 00 00 14 0b 00 00 f9 0a 00 00 ............^...B...+...........
380c0 e2 0a 00 00 c3 0a 00 00 9e 0a 00 00 7b 0a 00 00 57 0a 00 00 35 0a 00 00 0f 0a 00 00 ef 09 00 00 ............{...W...5...........
380e0 c8 09 00 00 a5 09 00 00 7f 09 00 00 5d 09 00 00 3b 09 00 00 15 09 00 00 f0 08 00 00 cd 08 00 00 ............]...;...............
38100 ab 08 00 00 82 08 00 00 61 08 00 00 3f 08 00 00 1e 08 00 00 f9 07 00 00 d5 07 00 00 b5 07 00 00 ........a...?...................
38120 86 07 00 00 69 07 00 00 50 07 00 00 2f 07 00 00 0f 07 00 00 f1 06 00 00 d3 06 00 00 ba 06 00 00 ....i...P.../...................
38140 9c 06 00 00 7d 06 00 00 5b 06 00 00 39 06 00 00 13 06 00 00 f3 05 00 00 c6 05 00 00 a3 05 00 00 ....}...[...9...................
38160 80 05 00 00 53 05 00 00 23 05 00 00 00 05 00 00 d6 04 00 00 b7 04 00 00 7f 04 00 00 4f 04 00 00 ....S...#...................O...
38180 28 04 00 00 f3 03 00 00 d0 03 00 00 a5 03 00 00 83 03 00 00 61 03 00 00 40 03 00 00 1e 03 00 00 (...................a...@.......
381a0 07 03 00 00 ef 02 00 00 cc 02 00 00 cb 02 00 00 b6 02 00 00 a0 02 00 00 85 02 00 00 69 02 00 00 ............................i...
381c0 4a 02 00 00 2c 02 00 00 2b 02 00 00 1a 02 00 00 0a 02 00 00 09 02 00 00 00 00 00 00 00 00 00 00 J...,...+.......................
381e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38200 00 00 00 00 00 00 00 00 00 00 6e 61 6d 65 73 70 61 63 65 20 73 6d 74 20 7b 00 6e 61 6d 65 73 70 ..........namespace.smt.{.namesp
38220 61 63 65 20 43 56 43 34 20 7b 00 00 75 73 69 6e 67 20 6e 61 6d 65 73 70 61 63 65 20 43 56 43 34 ace.CVC4.{..using.namespace.CVC4
38240 3a 3a 74 68 65 6f 72 79 3b 00 75 73 69 6e 67 20 6e 61 6d 65 73 70 61 63 65 20 43 56 43 34 3a 3a ::theory;.using.namespace.CVC4::
38260 63 6f 6e 74 65 78 74 3b 00 75 73 69 6e 67 20 6e 61 6d 65 73 70 61 63 65 20 43 56 43 34 3a 3a 70 context;.using.namespace.CVC4::p
38280 72 6f 70 3b 00 75 73 69 6e 67 20 6e 61 6d 65 73 70 61 63 65 20 43 56 43 34 3a 3a 73 6d 74 3b 00 rop;.using.namespace.CVC4::smt;.
382a0 75 73 69 6e 67 20 6e 61 6d 65 73 70 61 63 65 20 43 56 43 34 3b 00 75 73 69 6e 67 20 6e 61 6d 65 using.namespace.CVC4;.using.name
382c0 73 70 61 63 65 20 73 74 64 3b 00 00 23 69 6e 63 6c 75 64 65 20 22 75 74 69 6c 2f 72 65 73 6f 75 space.std;..#include."util/resou
382e0 72 63 65 5f 6d 61 6e 61 67 65 72 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 75 74 69 6c 2f 70 72 rce_manager.h".#include."util/pr
38300 6f 6f 66 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 75 74 69 6c 2f 68 61 73 68 2e 68 22 00 23 69 oof.h".#include."util/hash.h".#i
38320 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 2f 74 68 65 6f 72 79 5f 74 72 61 69 74 73 2e 68 22 00 nclude."theory/theory_traits.h".
38340 23 69 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 2f 74 68 65 6f 72 79 5f 6d 6f 64 65 6c 2e 68 22 #include."theory/theory_model.h"
38360 00 23 69 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 2f 74 68 65 6f 72 79 5f 65 6e 67 69 6e 65 2e .#include."theory/theory_engine.
38380 68 22 00 23 69 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 2f 73 75 62 73 74 69 74 75 74 69 6f 6e h".#include."theory/substitution
383a0 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 2f 73 74 72 69 6e 67 73 2f 74 68 s.h".#include."theory/strings/th
383c0 65 6f 72 79 5f 73 74 72 69 6e 67 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 eory_strings.h".#include."theory
383e0 2f 73 6f 72 74 5f 69 6e 66 65 72 65 6e 63 65 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 74 68 65 /sort_inference.h".#include."the
38400 6f 72 79 2f 71 75 61 6e 74 69 66 69 65 72 73 2f 71 75 61 6e 74 69 66 69 65 72 73 5f 72 65 77 72 ory/quantifiers/quantifiers_rewr
38420 69 74 65 72 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 2f 71 75 61 6e 74 69 66 iter.h".#include."theory/quantif
38440 69 65 72 73 2f 6d 61 63 72 6f 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 2f iers/macros.h".#include."theory/
38460 71 75 61 6e 74 69 66 69 65 72 73 2f 66 75 6e 5f 64 65 66 5f 70 72 6f 63 65 73 73 2e 68 22 00 23 quantifiers/fun_def_process.h".#
38480 69 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 2f 71 75 61 6e 74 69 66 69 65 72 73 2f 63 65 5f 67 include."theory/quantifiers/ce_g
384a0 75 69 64 65 64 5f 69 6e 73 74 61 6e 74 69 61 74 69 6f 6e 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 uided_instantiation.h".#include.
384c0 22 74 68 65 6f 72 79 2f 6c 6f 67 69 63 5f 69 6e 66 6f 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 "theory/logic_info.h".#include."
384e0 74 68 65 6f 72 79 2f 62 76 2f 74 68 65 6f 72 79 5f 62 76 5f 72 65 77 72 69 74 65 72 2e 68 22 00 theory/bv/theory_bv_rewriter.h".
38500 23 69 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 2f 62 76 2f 62 76 69 6e 74 72 6f 70 6f 77 32 2e #include."theory/bv/bvintropow2.
38520 68 22 00 23 69 6e 63 6c 75 64 65 20 22 74 68 65 6f 72 79 2f 62 6f 6f 6c 65 61 6e 73 2f 63 69 72 h".#include."theory/booleans/cir
38540 63 75 69 74 5f 70 72 6f 70 61 67 61 74 6f 72 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 74 68 65 cuit_propagator.h".#include."the
38560 6f 72 79 2f 61 72 69 74 68 2f 70 73 65 75 64 6f 62 6f 6f 6c 65 61 6e 5f 70 72 6f 63 2e 68 22 00 ory/arith/pseudoboolean_proc.h".
38580 23 69 6e 63 6c 75 64 65 20 22 73 6d 74 5f 75 74 69 6c 2f 6e 6f 64 65 5f 76 69 73 69 74 6f 72 2e #include."smt_util/node_visitor.
385a0 68 22 00 23 69 6e 63 6c 75 64 65 20 22 73 6d 74 5f 75 74 69 6c 2f 6e 61 72 79 5f 62 75 69 6c 64 h".#include."smt_util/nary_build
385c0 65 72 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 73 6d 74 5f 75 74 69 6c 2f 62 6f 6f 6c 65 61 6e er.h".#include."smt_util/boolean
385e0 5f 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 73 6d 74 _simplification.h".#include."smt
38600 2f 75 70 64 61 74 65 5f 6f 73 74 72 65 61 6d 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 73 6d 74 /update_ostream.h".#include."smt
38620 2f 74 65 72 6d 5f 66 6f 72 6d 75 6c 61 5f 72 65 6d 6f 76 61 6c 2e 68 22 00 23 69 6e 63 6c 75 64 /term_formula_removal.h".#includ
38640 65 20 22 73 6d 74 2f 73 6d 74 5f 65 6e 67 69 6e 65 5f 73 63 6f 70 65 2e 68 22 00 23 69 6e 63 6c e."smt/smt_engine_scope.h".#incl
38660 75 64 65 20 22 73 6d 74 2f 6d 61 6e 61 67 65 64 5f 6f 73 74 72 65 61 6d 73 2e 68 22 00 23 69 6e ude."smt/managed_ostreams.h".#in
38680 63 6c 75 64 65 20 22 73 6d 74 2f 6c 6f 67 69 63 5f 72 65 71 75 65 73 74 2e 68 22 00 23 69 6e 63 clude."smt/logic_request.h".#inc
386a0 6c 75 64 65 20 22 73 6d 74 2f 63 6f 6d 6d 61 6e 64 5f 6c 69 73 74 2e 68 22 00 23 69 6e 63 6c 75 lude."smt/command_list.h".#inclu
386c0 64 65 20 22 73 6d 74 2f 63 6f 6d 6d 61 6e 64 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 70 72 6f de."smt/command.h".#include."pro
386e0 70 2f 70 72 6f 70 5f 65 6e 67 69 6e 65 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 70 72 6f 6f 66 p/prop_engine.h".#include."proof
38700 2f 75 6e 73 61 74 5f 63 6f 72 65 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 70 72 6f 6f 66 2f 74 /unsat_core.h".#include."proof/t
38720 68 65 6f 72 79 5f 70 72 6f 6f 66 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 70 72 6f 6f 66 2f 70 heory_proof.h".#include."proof/p
38740 72 6f 6f 66 5f 6d 61 6e 61 67 65 72 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 70 72 6f 6f 66 2f roof_manager.h".#include."proof/
38760 70 72 6f 6f 66 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 70 72 69 6e 74 65 72 2f 70 72 69 6e 74 proof.h".#include."printer/print
38780 65 72 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 70 72 65 70 72 6f 63 2f 70 72 65 70 72 6f 63 65 er.h".#include."preproc/preproce
387a0 73 73 69 6e 67 5f 70 61 73 73 65 73 5f 63 6f 72 65 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f ssing_passes_core.h".#include."o
387c0 70 74 69 6f 6e 73 2f 75 66 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f ptions/uf_options.h".#include."o
387e0 70 74 69 6f 6e 73 2f 74 68 65 6f 72 79 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 ptions/theory_options.h".#includ
38800 65 20 22 6f 70 74 69 6f 6e 73 2f 73 74 72 69 6e 67 73 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 e."options/strings_options.h".#i
38820 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 73 6d 74 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 nclude."options/smt_options.h".#
38840 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 73 65 74 5f 6c 61 6e 67 75 61 67 65 2e 68 22 include."options/set_language.h"
38860 00 23 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 73 65 70 5f 6f 70 74 69 6f 6e 73 2e 68 .#include."options/sep_options.h
38880 22 00 23 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 71 75 61 6e 74 69 66 69 65 72 73 5f ".#include."options/quantifiers_
388a0 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 70 72 6f options.h".#include."options/pro
388c0 70 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 70 p_options.h".#include."options/p
388e0 72 6f 6f 66 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e roof_options.h".#include."option
38900 73 2f 70 72 69 6e 74 65 72 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f s/printer_options.h".#include."o
38920 70 74 69 6f 6e 73 2f 6f 70 74 69 6f 6e 5f 65 78 63 65 70 74 69 6f 6e 2e 68 22 00 23 69 6e 63 6c ptions/option_exception.h".#incl
38940 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 6f 70 65 6e 5f 6f 73 74 72 65 61 6d 2e 68 22 00 23 69 6e ude."options/open_ostream.h".#in
38960 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 6d 61 69 6e 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 clude."options/main_options.h".#
38980 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 64 65 63 69 73 69 6f 6e 5f 6f 70 74 69 6f 6e include."options/decision_option
389a0 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 64 65 63 69 73 69 6f 6e 5f s.h".#include."options/decision_
389c0 6d 6f 64 65 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 64 61 74 61 74 79 mode.h".#include."options/dataty
389e0 70 65 73 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 pes_options.h".#include."options
38a00 2f 62 76 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f 70 74 69 6f 6e 73 /bv_options.h".#include."options
38a20 2f 62 6f 6f 6c 65 61 6e 73 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6f /booleans_options.h".#include."o
38a40 70 74 69 6f 6e 73 2f 62 61 73 65 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 ptions/base_options.h".#include.
38a60 22 6f 70 74 69 6f 6e 73 2f 61 72 72 61 79 73 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 6e 63 6c "options/arrays_options.h".#incl
38a80 75 64 65 20 22 6f 70 74 69 6f 6e 73 2f 61 72 69 74 68 5f 6f 70 74 69 6f 6e 73 2e 68 22 00 23 69 ude."options/arith_options.h".#i
38aa0 6e 63 6c 75 64 65 20 22 65 78 70 72 2f 6e 6f 64 65 5f 73 65 6c 66 5f 69 74 65 72 61 74 6f 72 2e nclude."expr/node_self_iterator.
38ac0 68 22 00 23 69 6e 63 6c 75 64 65 20 22 65 78 70 72 2f 6e 6f 64 65 5f 62 75 69 6c 64 65 72 2e 68 h".#include."expr/node_builder.h
38ae0 22 00 23 69 6e 63 6c 75 64 65 20 22 65 78 70 72 2f 6e 6f 64 65 2e 68 22 00 23 69 6e 63 6c 75 64 ".#include."expr/node.h".#includ
38b00 65 20 22 65 78 70 72 2f 6d 65 74 61 6b 69 6e 64 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 65 78 e."expr/metakind.h".#include."ex
38b20 70 72 2f 6b 69 6e 64 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 65 78 70 72 2f 65 78 70 72 2e 68 pr/kind.h".#include."expr/expr.h
38b40 22 00 23 69 6e 63 6c 75 64 65 20 22 65 78 70 72 2f 61 74 74 72 69 62 75 74 65 2e 68 22 00 23 69 ".#include."expr/attribute.h".#i
38b60 6e 63 6c 75 64 65 20 22 64 65 63 69 73 69 6f 6e 2f 64 65 63 69 73 69 6f 6e 5f 65 6e 67 69 6e 65 nclude."decision/decision_engine
38b80 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 63 6f 6e 74 65 78 74 2f 63 6f 6e 74 65 78 74 2e 68 22 .h".#include."context/context.h"
38ba0 00 23 69 6e 63 6c 75 64 65 20 22 63 6f 6e 74 65 78 74 2f 63 64 6c 69 73 74 2e 68 22 00 23 69 6e .#include."context/cdlist.h".#in
38bc0 63 6c 75 64 65 20 22 63 6f 6e 74 65 78 74 2f 63 64 68 61 73 68 73 65 74 2e 68 22 00 23 69 6e 63 clude."context/cdhashset.h".#inc
38be0 6c 75 64 65 20 22 62 61 73 65 2f 6f 75 74 70 75 74 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 62 lude."base/output.h".#include."b
38c00 61 73 65 2f 6d 6f 64 61 6c 5f 65 78 63 65 70 74 69 6f 6e 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 ase/modal_exception.h".#include.
38c20 22 62 61 73 65 2f 6c 69 73 74 65 6e 65 72 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 62 61 73 65 "base/listener.h".#include."base
38c40 2f 65 78 63 65 70 74 69 6f 6e 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 62 61 73 65 2f 63 6f 6e /exception.h".#include."base/con
38c60 66 69 67 75 72 61 74 69 6f 6e 5f 70 72 69 76 61 74 65 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 figuration_private.h".#include."
38c80 62 61 73 65 2f 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 68 22 00 00 23 69 6e 63 6c 75 64 65 20 base/configuration.h"..#include.
38ca0 3c 76 65 63 74 6f 72 3e 00 23 69 6e 63 6c 75 64 65 20 3c 75 74 69 6c 69 74 79 3e 00 23 69 6e 63 <vector>.#include.<utility>.#inc
38cc0 6c 75 64 65 20 3c 73 74 72 69 6e 67 3e 00 23 69 6e 63 6c 75 64 65 20 3c 73 74 61 63 6b 3e 00 23 lude.<string>.#include.<stack>.#
38ce0 69 6e 63 6c 75 64 65 20 3c 73 73 74 72 65 61 6d 3e 00 23 69 6e 63 6c 75 64 65 20 3c 69 74 65 72 include.<sstream>.#include.<iter
38d00 61 74 6f 72 3e 00 23 69 6e 63 6c 75 64 65 20 3c 65 78 74 2f 68 61 73 68 5f 6d 61 70 3e 00 23 69 ator>.#include.<ext/hash_map>.#i
38d20 6e 63 6c 75 64 65 20 3c 63 63 74 79 70 65 3e 00 23 69 6e 63 6c 75 64 65 20 3c 61 6c 67 6f 72 69 nclude.<cctype>.#include.<algori
38d40 74 68 6d 3e 00 00 23 69 6e 63 6c 75 64 65 20 22 73 6d 74 2f 73 6d 74 5f 65 6e 67 69 6e 65 2e 68 thm>..#include."smt/smt_engine.h
38d60 22 00 00 20 2a 2a 2f 00 20 2a 2a 20 54 68 65 20 6d 61 69 6e 20 65 6e 74 72 79 20 70 6f 69 6e 74 "...**/..**.The.main.entry.point
38d80 20 69 6e 74 6f 20 74 68 65 20 43 56 43 34 20 6c 69 62 72 61 72 79 27 73 20 53 4d 54 20 69 6e 74 .into.the.CVC4.library's.SMT.int
38da0 65 72 66 61 63 65 2e 00 20 2a 2a 00 20 2a 2a 20 5c 62 72 69 65 66 20 54 68 65 20 6d 61 69 6e 20 erface...**..**.\brief.The.main.
38dc0 65 6e 74 72 79 20 70 6f 69 6e 74 20 69 6e 74 6f 20 74 68 65 20 43 56 43 34 20 6c 69 62 72 61 72 entry.point.into.the.CVC4.librar
38de0 79 27 73 20 53 4d 54 20 69 6e 74 65 72 66 61 63 65 00 20 2a 2a 00 20 2a 2a 20 64 69 72 65 63 74 y's.SMT.interface..**..**.direct
38e00 6f 72 79 20 66 6f 72 20 6c 69 63 65 6e 73 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 5c 65 ory.for.licensing.information.\e
38e20 6e 64 76 65 72 62 61 74 69 6d 00 20 2a 2a 20 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 76 ndverbatim..**.All.rights.reserv
38e40 65 64 2e 20 20 53 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 20 69 6e 20 74 68 65 ed...See.the.file.COPYING.in.the
38e60 20 74 6f 70 2d 6c 65 76 65 6c 20 73 6f 75 72 63 65 00 20 2a 2a 20 69 6e 20 74 68 65 20 74 6f 70 .top-level.source..**.in.the.top
38e80 2d 6c 65 76 65 6c 20 73 6f 75 72 63 65 20 64 69 72 65 63 74 6f 72 79 29 20 61 6e 64 20 74 68 65 -level.source.directory).and.the
38ea0 69 72 20 69 6e 73 74 69 74 75 74 69 6f 6e 61 6c 20 61 66 66 69 6c 69 61 74 69 6f 6e 73 2e 00 20 ir.institutional.affiliations...
38ec0 2a 2a 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 39 2d 32 30 31 36 20 62 79 20 74 68 **.Copyright.(c).2009-2016.by.th
38ee0 65 20 61 75 74 68 6f 72 73 20 6c 69 73 74 65 64 20 69 6e 20 74 68 65 20 66 69 6c 65 20 41 55 54 e.authors.listed.in.the.file.AUT
38f00 48 4f 52 53 00 20 2a 2a 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 74 68 HORS..**.This.file.is.part.of.th
38f20 65 20 43 56 43 34 20 70 72 6f 6a 65 63 74 2e 00 20 2a 2a 20 20 20 4d 6f 72 67 61 6e 20 44 65 74 e.CVC4.project...**...Morgan.Det
38f40 65 72 73 2c 20 43 6c 61 72 6b 20 42 61 72 72 65 74 74 2c 20 54 69 6d 20 4b 69 6e 67 00 20 2a 2a ers,.Clark.Barrett,.Tim.King..**
38f60 20 54 6f 70 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 28 74 6f 20 63 75 72 72 65 6e 74 20 76 65 .Top.contributors.(to.current.ve
38f80 72 73 69 6f 6e 29 3a 00 20 2a 2a 20 5c 76 65 72 62 61 74 69 6d 00 2f 2a 21 20 5c 66 69 6c 65 20 rsion):..**.\verbatim./*!.\file.
38fa0 73 6d 74 5f 65 6e 67 69 6e 65 2e 63 70 70 00 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a smt_engine.cpp./****************
38fc0 2a 2a 2a 2a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *****...........................
38fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 2f 00 .............................*/.
39000 61 64 00 00 07 0f 00 00 33 0f 00 00 00 10 00 00 04 00 00 00 00 00 00 00 da 0f 00 00 d8 0f 00 00 ad......3.......................
39020 70 0f 00 00 33 0f 00 00 b9 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 p...3...........................
39040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
390a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
390c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
390e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
391a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
391c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
391e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
392a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
392c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
392e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
393a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
393c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
393e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
394a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
394c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
394e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
395a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
395c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
395e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
396a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
396c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
396e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
397a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
397c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
397e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
398a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
398c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
398e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
399a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
399c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
399e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e40 00 00 00 00 00 00 00 00 20 20 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 ............dumpAssertions("post
39e60 2d 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 2d 73 69 6d 70 22 2c 20 2a 61 73 73 65 72 74 69 6f 6e -unconstrained-simp",.*assertion
39e80 73 54 6f 50 72 65 70 72 6f 63 65 73 73 29 3b 00 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 72 sToPreprocess);....Trace("smt-pr
39ea0 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 75 6d oc").<<."SmtEng..............dum
39ec0 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 2d pAssertions("post-unconstrained-
39ee0 73 69 6d 70 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 20 54 72 61 63 65 28 22 simp",.d_assertions);....Trace("
39f00 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a smt-proc").<<."SmtEnginePrivate:
39f20 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 20 20 20 20 64 75 6d 70 41 73 73 65 72 :processAssertions(....dumpAsser
39f40 74 69 6f 6e 73 28 22 70 6f 73 74 2d 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 2d 73 69 6d 70 22 2c tions("post-unconstrained-simp",
39f60 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 72 .d_assertions);....Trace("smt-pr
39f80 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 65 oc").<<."SmtEnginePrivate::proce
39fa0 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a 20 70 6f 73 74 2d 75 6e 63 6f 6e 73 74 72 61 69 ssAssertions().:.post-unconstrai
39fc0 6e 65 64 2d 73 69 6d 70 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 20 00 20 20 20 20 70 61 ned-simp".<<.std::endl;.......pa
39fe0 73 73 31 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 00 ss1.apply(&d_assertions.ref());.
3a000 61 64 00 00 a9 0e 00 00 dd 0e 00 00 00 10 00 00 06 00 00 00 00 00 00 00 b9 0f 00 00 b4 0f 00 00 ad..............................
3a020 82 0f 00 00 59 0f 00 00 58 0f 00 00 dd 0e 00 00 08 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....Y...X.......................
3a040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ab00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ab20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ac00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ac20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ac60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ac80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ad00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ad20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ae00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ae20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ae40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ae60 00 00 00 00 00 00 00 00 00 00 20 20 20 70 72 65 70 72 6f 63 3a 3a 55 6e 63 6f 6e 73 74 72 61 69 .............preproc::Unconstrai
3ae80 6e 65 64 53 69 6d 70 50 61 73 73 20 70 61 73 73 31 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 nedSimpPass.pass1(d_resourceMana
3aea0 67 65 72 2c 20 64 5f 73 6d 74 2e 64 5f 73 74 61 74 73 2d 3e 20 20 20 20 70 72 65 70 72 6f 63 3a ger,.d_smt.d_stats->....preproc:
3aec0 3a 55 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 50 61 73 73 20 70 61 73 73 31 28 20 20 20 :UnconstrainedSimpPass.pass1(...
3aee0 20 70 72 65 70 72 6f 63 3a 3a 55 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 50 61 73 73 20 .preproc::UnconstrainedSimpPass.
3af00 70 61 73 73 31 28 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2c 20 64 5f 73 6d 74 2e 64 pass1(d_resourceManager,.d_smt.d
3af20 5f 73 74 61 74 73 2d 3e 64 5f 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 54 69 6d 65 2c _stats->d_unconstrainedSimpTime,
3af40 20 64 5f 73 6d 74 2e 64 5f 74 68 65 6f 72 79 45 6e 67 69 6e 65 29 3b 00 00 20 20 20 20 70 61 73 .d_smt.d_theoryEngine);......pas
3af60 73 2e 61 70 70 6c 79 28 26 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 72 65 66 28 29 29 3b 20 20 20 s.apply(&d_assertions.ref());...
3af80 20 00 20 20 20 20 70 72 65 70 72 6f 63 3a 3a 52 65 77 72 69 74 65 50 61 73 73 20 70 61 73 73 28 ......preproc::RewritePass.pass(
3afa0 64 5f 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 29 3b 00 20 20 20 20 00 20 20 20 20 43 68 61 d_resourceManager);..........Cha
3afc0 74 28 29 20 3c 3c 20 22 2e 2e 2e 64 6f 69 6e 67 20 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 20 73 t().<<."...doing.unconstrained.s
3afe0 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 2e 2e 2e 22 20 3c 3c 20 73 74 64 3a 3a 65 6e 64 6c 3b 00 implification...".<<.std::endl;.
3b000 61 64 00 00 5c 06 00 00 60 07 00 00 00 10 00 00 3a 00 00 00 00 00 00 00 ff 0f 00 00 c7 0f 00 00 ad..\...`.......:...............
3b020 91 0f 00 00 46 0f 00 00 45 0f 00 00 e8 0e 00 00 96 0e 00 00 5a 0e 00 00 15 0e 00 00 e7 0d 00 00 ....F...E...........Z...........
3b040 cf 0d 00 00 b9 0d 00 00 b1 0d 00 00 ab 0d 00 00 aa 0d 00 00 75 0d 00 00 46 0d 00 00 fb 0c 00 00 ....................u...F.......
3b060 fa 0c 00 00 ca 0c 00 00 89 0c 00 00 47 0c 00 00 0a 0c 00 00 c8 0b 00 00 9f 0b 00 00 8a 0b 00 00 ............G...................
3b080 40 0b 00 00 30 0b 00 00 0b 0b 00 00 07 0b 00 00 f8 0a 00 00 f6 0a 00 00 f5 0a 00 00 d9 0a 00 00 @...0...........................
3b0a0 c0 0a 00 00 a2 0a 00 00 a1 0a 00 00 71 0a 00 00 70 0a 00 00 2a 0a 00 00 29 0a 00 00 09 0a 00 00 ............q...p...*...).......
3b0c0 08 0a 00 00 c2 09 00 00 94 09 00 00 74 09 00 00 2b 09 00 00 e7 08 00 00 a9 08 00 00 a5 08 00 00 ............t...+...............
3b0e0 a4 08 00 00 6c 08 00 00 25 08 00 00 03 08 00 00 b7 07 00 00 b6 07 00 00 93 07 00 00 60 07 00 00 ....l...%...................`...
3b100 5c 07 00 00 45 07 00 00 2f 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \...E.../.......................
3b120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 2f 2f 20 54 4f 44 4f 3a 20 42 72 69 6e 67 20 .................//.TODO:.Bring.
3b740 75 70 20 69 6e 20 20 2f 2f 20 54 4f 44 4f 3a 20 42 72 69 6e 67 20 75 70 20 69 20 20 20 20 2f 2f up.in..//.TODO:.Bring.up.i....//
3b760 20 20 2f 2f 20 54 4f 44 4f 3a 20 42 72 69 6e 67 20 75 70 20 69 6e 20 61 20 6d 65 65 74 69 6e 67 ..//.TODO:.Bring.up.in.a.meeting
3b780 20 77 68 65 72 65 20 74 6f 20 70 75 74 20 74 68 69 73 00 20 20 2f 2f 20 54 75 72 6e 20 6f 66 66 .where.to.put.this...//.Turn.off
3b7a0 20 73 74 6f 70 20 6f 6e 6c 79 20 66 6f 72 20 51 46 5f 4c 52 41 00 00 20 20 54 72 61 63 65 28 22 .stop.only.for.QF_LRA....Trace("
3b7c0 73 6d 74 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 28 29 3a 20 64 6f smt").<<."SmtEngine::check():.do
3b7e0 6e 65 20 70 72 6f 63 65 73 73 69 6e 67 20 61 73 73 65 72 74 69 6f 6e 73 22 20 3c 3c 20 65 6e 64 ne.processing.assertions".<<.end
3b800 6c 3b 00 20 20 64 5f 70 72 69 76 61 74 65 2d 3e 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e l;...d_private->processAssertion
3b820 73 28 29 3b 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e s();...Trace("smt").<<."SmtEngin
3b840 65 3a 3a 63 68 65 63 6b 28 29 3a 20 70 72 6f 63 65 73 73 69 6e 67 20 61 73 73 65 72 74 69 6f 6e e::check():.processing.assertion
3b860 73 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 2f 2f 20 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 70 s".<<.endl;...//.Make.sure.the.p
3b880 72 6f 70 20 6c 61 79 65 72 20 68 61 73 20 61 6c 6c 20 6f 66 20 74 68 65 20 61 73 73 65 72 74 69 rop.layer.has.all.of.the.asserti
3b8a0 6f 6e 73 00 00 20 20 7d 00 20 20 20 20 72 65 74 75 72 6e 20 52 65 73 75 6c 74 28 52 65 73 75 6c ons....}.....return.Result(Resul
3b8c0 74 3a 3a 56 41 4c 49 44 49 54 59 5f 55 4e 4b 4e 4f 57 4e 2c 20 77 68 79 2c 20 64 5f 66 69 6c 65 t::VALIDITY_UNKNOWN,.why,.d_file
3b8e0 6e 61 6d 65 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 name);..........................
3b900 20 20 20 20 52 65 73 75 6c 74 3a 3a 52 45 53 4f 55 52 43 45 4f 55 54 20 3a 20 52 65 73 75 6c 74 ....Result::RESOURCEOUT.:.Result
3b920 3a 3a 54 49 4d 45 4f 55 54 3b 00 20 20 20 20 52 65 73 75 6c 74 3a 3a 55 6e 6b 6e 6f 77 6e 45 78 ::TIMEOUT;.....Result::UnknownEx
3b940 70 6c 61 6e 61 74 69 6f 6e 20 77 68 79 20 3d 20 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2d planation.why.=.resourceManager-
3b960 3e 6f 75 74 4f 66 52 65 73 6f 75 72 63 65 73 28 29 20 3f 00 20 20 20 20 20 20 72 65 73 6f 75 72 >outOfResources().?.......resour
3b980 63 65 4d 61 6e 61 67 65 72 2d 3e 6f 75 74 28 29 29 20 7b 00 20 20 69 66 20 28 72 65 73 6f 75 72 ceManager->out()).{...if.(resour
3b9a0 63 65 4d 61 6e 61 67 65 72 2d 3e 63 75 6d 75 6c 61 74 69 76 65 4c 69 6d 69 74 4f 6e 28 29 20 26 ceManager->cumulativeLimitOn().&
3b9c0 26 00 20 20 2f 2f 20 4f 6e 6c 79 20 77 61 79 20 77 65 20 63 61 6e 20 62 65 20 6f 75 74 20 6f 66 &...//.Only.way.we.can.be.out.of
3b9e0 20 72 65 73 6f 75 72 63 65 20 69 73 20 69 66 20 63 75 6d 75 6c 61 74 69 76 65 20 62 75 64 67 65 .resource.is.if.cumulative.budge
3ba00 74 20 69 73 20 6f 6e 00 00 20 20 72 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2d 3e 62 65 67 69 t.is.on....resourceManager->begi
3ba20 6e 43 61 6c 6c 28 29 3b 00 00 20 20 52 65 73 6f 75 72 63 65 4d 61 6e 61 67 65 72 2a 20 72 65 73 nCall();....ResourceManager*.res
3ba40 6f 75 72 63 65 4d 61 6e 61 67 65 72 20 3d 20 64 5f 70 72 69 76 61 74 65 2d 3e 67 65 74 52 65 73 ourceManager.=.d_private->getRes
3ba60 6f 75 72 63 65 4d 61 6e 61 67 65 72 28 29 3b 00 00 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 ourceManager();....Trace("smt").
3ba80 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 28 29 22 20 3c 3c 20 65 6e 64 6c 3b <<."SmtEngine::check()".<<.endl;
3baa0 00 00 20 20 41 73 73 65 72 74 28 64 5f 70 65 6e 64 69 6e 67 50 6f 70 73 20 3d 3d 20 30 29 3b 00 ....Assert(d_pendingPops.==.0);.
3bac0 20 20 41 73 73 65 72 74 28 64 5f 66 75 6c 6c 79 49 6e 69 74 65 64 29 3b 00 52 65 73 75 6c 74 20 ..Assert(d_fullyInited);.Result.
3bae0 53 6d 74 45 6e 67 69 6e 65 3a 3a 63 68 65 63 6b 28 29 20 7b 00 00 7d 00 20 20 72 65 74 75 72 6e SmtEngine::check().{..}...return
3bb00 20 74 72 75 65 3b 00 20 20 7d 00 20 20 20 20 49 6e 74 65 72 6e 61 6c 45 72 72 6f 72 28 73 73 2e .true;...}.....InternalError(ss.
3bb20 73 74 72 28 29 2e 63 5f 73 74 72 28 29 29 3b 00 20 20 20 20 20 20 20 3c 3c 20 74 63 65 70 3b 00 str().c_str());........<<.tcep;.
3bb40 20 20 20 20 73 73 20 3c 3c 20 22 41 20 62 61 64 20 65 78 70 72 65 73 73 69 6f 6e 20 77 61 73 20 ....ss.<<."A.bad.expression.was.
3bb60 70 72 6f 64 75 63 65 64 2e 20 20 4f 72 69 67 69 6e 61 6c 20 65 78 63 65 70 74 69 6f 6e 20 66 6f produced...Original.exception.fo
3bb80 6c 6c 6f 77 73 3a 5c 6e 22 00 20 20 20 20 73 74 72 69 6e 67 73 74 72 65 61 6d 20 73 73 3b 00 20 llows:\n".....stringstream.ss;..
3bba0 20 20 20 2f 2f 20 70 72 6f 63 65 73 73 20 77 69 74 68 6f 75 74 20 61 6e 79 20 65 72 72 6f 72 20 ...//.process.without.any.error.
3bbc0 6e 6f 74 69 63 65 2e 00 20 20 20 20 2f 2f 20 77 65 6c 6c 2d 74 79 70 65 64 2c 20 61 6e 64 20 77 notice......//.well-typed,.and.w
3bbe0 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 68 65 20 43 2b 2b 20 72 75 6e 74 69 6d 65 20 74 6f 20 e.don't.want.the.C++.runtime.to.
3bc00 61 62 6f 72 74 20 6f 75 72 00 20 20 20 20 2f 2f 20 74 68 65 6f 72 79 20 63 6f 75 6c 64 20 73 74 abort.our.....//.theory.could.st
3bc20 69 6c 6c 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 65 78 70 72 65 73 73 69 6f 6e 20 74 68 61 74 ill.create.a.new.expression.that
3bc40 20 69 73 6e 27 74 00 20 20 20 20 2f 2f 20 74 79 70 65 63 68 65 63 6b 69 6e 67 20 65 78 63 65 70 .isn't.....//.typechecking.excep
3bc60 74 69 6f 6e 73 20 76 69 61 20 28 65 2e 67 2e 29 20 65 6e 73 75 72 65 42 6f 6f 6c 65 61 6e 28 29 tions.via.(e.g.).ensureBoolean()
3bc80 2e 20 20 42 75 74 20 61 00 20 20 20 20 2f 2f 20 43 61 6c 6c 73 20 74 6f 20 74 68 69 73 20 66 75 ...But.a.....//.Calls.to.this.fu
3bca0 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 6c 72 65 61 64 79 20 77 65 65 64 65 nction.should.have.already.weede
3bcc0 64 20 6f 75 74 20 61 6e 79 00 20 20 7d 20 63 61 74 63 68 28 54 79 70 65 43 68 65 63 6b 69 6e 67 d.out.any...}.catch(TypeChecking
3bce0 45 78 63 65 70 74 69 6f 6e 50 72 69 76 61 74 65 26 20 74 63 65 70 29 20 7b 00 00 20 20 20 20 44 ExceptionPrivate&.tcep).{......D
3bd00 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 20 20 20 ebug("smt").<<.".d_assertions...
3bd20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 20 3c 3c 20 ..:.".<<.d_assertions.size().<<.
3bd40 65 6e 64 6c 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 29 20 3c 3c 20 22 50 4f 53 54 20 endl;.....Trace("smt").<<."POST.
3bd60 72 65 70 65 61 74 53 69 6d 70 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 64 75 6d 70 41 73 73 repeatSimp".<<.endl;.....dumpAss
3bd80 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d 72 65 70 65 61 74 73 69 6d 70 22 2c 20 64 5f 61 73 73 ertions("post-repeatsimp",.d_ass
3bda0 65 72 74 69 6f 6e 73 29 3b 00 00 20 20 20 20 7d 00 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 ertions);......}.......}........
3bdc0 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 20 20 20 20 20 20 69 66 28 21 6e 6f 43 6f 6e 66 6c .return.false;.......if(!noConfl
3bde0 69 63 74 29 20 7b 00 20 20 20 20 20 20 62 6f 6f 6c 20 6e 6f 43 6f 6e 66 6c 69 63 74 20 3d 20 6e ict).{.......bool.noConflict.=.n
3be00 6f 6e 43 6c 61 75 73 61 6c 53 69 6d 70 6c 69 66 79 28 29 3b 00 20 20 20 20 20 20 20 20 20 20 20 onClausalSimplify();............
3be20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 3c 20 22 20 64 6f 69 6e 67 20 72 65 70 65 61 74 65 64 .............<<.".doing.repeated
3be40 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 20 20 .simplification".<<.endl;.......
3be60 54 72 61 63 65 28 22 73 69 6d 70 6c 69 66 79 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 6e 65 50 Trace("simplify").<<."SmtEngineP
3be80 72 69 76 61 74 65 3a 3a 73 69 6d 70 6c 69 66 79 28 29 3a 20 22 00 20 20 20 20 20 20 43 68 61 74 rivate::simplify():.".......Chat
3bea0 28 29 20 3c 3c 20 22 2e 2e 2e 64 6f 69 6e 67 20 61 6e 6f 74 68 65 72 20 72 6f 75 6e 64 20 6f 66 ().<<."...doing.another.round.of
3bec0 20 6e 6f 6e 63 6c 61 75 73 61 6c 20 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 2e 2e 2e 22 20 3c .nonclausal.simplification...".<
3bee0 3c 20 65 6e 64 6c 3b 00 20 20 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 72 65 70 65 61 74 53 69 <.endl;.....if(options::repeatSi
3bf00 6d 70 28 29 20 26 26 20 6f 70 74 69 6f 6e 73 3a 3a 73 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 4d mp().&&.options::simplificationM
3bf20 6f 64 65 28 29 20 21 3d 20 53 49 4d 50 4c 49 46 49 43 41 54 49 4f 4e 5f 4d 4f 44 45 5f 4e 4f 4e ode().!=.SIMPLIFICATION_MODE_NON
3bf40 45 29 20 7b 00 00 20 20 20 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f 61 73 E).{......Debug("smt").<<.".d_as
3bf60 73 65 72 74 69 6f 6e 73 20 20 20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 sertions.....:.".<<.d_assertions
3bf80 2e 73 69 7a 65 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 54 72 61 63 65 28 22 73 6d 74 22 .size().<<.endl;.....Trace("smt"
3bfa0 29 20 3c 3c 20 22 50 4f 53 54 20 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 53 69 6d 70 22 20 3c 3c ).<<."POST.unconstrainedSimp".<<
3bfc0 20 65 6e 64 6c 3b 00 20 20 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 6f 73 74 2d .endl;.....dumpAssertions("post-
3bfe0 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 00 unconstrained",.d_assertions);..
3c000 61 64 00 00 7f 0b 00 00 03 0c 00 00 00 10 00 00 1a 00 00 00 00 00 00 00 fd 0f 00 00 fc 0f 00 00 ad..............................
3c020 b3 0f 00 00 b2 0f 00 00 78 0f 00 00 74 0f 00 00 2d 0f 00 00 ef 0e 00 00 b4 0e 00 00 6b 0e 00 00 ........x...t...-...........k...
3c040 4b 0e 00 00 19 0e 00 00 d1 0d 00 00 99 0d 00 00 93 0d 00 00 8f 0d 00 00 54 0d 00 00 53 0d 00 00 K.......................T...S...
3c060 0a 0d 00 00 09 0d 00 00 ef 0c 00 00 ee 0c 00 00 cc 0c 00 00 a7 0c 00 00 3f 0c 00 00 03 0c 00 00 ........................?.......
3c080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ca00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ca20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ca40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ca60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ca80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3caa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3cc00 00 00 00 20 20 20 20 64 75 6d 70 41 73 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 75 6e 63 6f 6e .......dumpAssertions("pre-uncon
3cc20 73 74 72 61 69 6e 65 64 2d 73 69 6d 70 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 strained-simp",.d_assertions);..
3cc40 20 20 20 54 72 61 63 65 28 22 73 6d 74 2d 70 72 6f 63 22 29 20 3c 3c 20 22 53 6d 74 45 6e 67 69 ...Trace("smt-proc").<<."SmtEngi
3cc60 6e 65 50 72 69 76 61 74 65 3a 3a 70 72 6f 63 65 73 73 41 73 73 65 72 74 69 6f 6e 73 28 29 20 3a nePrivate::processAssertions().:
3cc80 20 70 72 65 2d 75 6e 63 6f 6e 73 74 72 61 69 6e 65 64 2d 73 69 6d 70 22 20 3c 3c 20 73 74 64 3a .pre-unconstrained-simp".<<.std:
3cca0 3a 65 6e 64 6c 3b 00 20 20 69 66 28 6f 70 74 69 6f 6e 73 3a 3a 75 6e 63 6f 6e 73 74 72 61 69 6e :endl;...if(options::unconstrain
3ccc0 65 64 53 69 6d 70 28 29 29 20 7b 00 20 20 2f 2f 20 55 6e 63 6f 6e 73 74 72 61 69 6e 65 64 20 73 edSimp()).{...//.Unconstrained.s
3cce0 69 6d 70 6c 69 66 69 63 61 74 69 6f 6e 00 00 20 20 62 6f 6f 6c 20 6e 6f 43 6f 6e 66 6c 69 63 74 implification....bool.noConflict
3cd00 20 3d 20 74 72 75 65 3b 00 00 20 20 44 65 62 75 67 28 22 73 6d 74 22 29 20 3c 3c 20 22 20 64 5f .=.true;....Debug("smt").<<.".d_
3cd20 61 73 73 65 72 74 69 6f 6e 73 20 20 20 20 20 3a 20 22 20 3c 3c 20 64 5f 61 73 73 65 72 74 69 6f assertions.....:.".<<.d_assertio
3cd40 6e 73 2e 73 69 7a 65 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 20 64 75 6d 70 41 73 73 65 72 74 ns.size().<<.endl;....dumpAssert
3cd60 69 6f 6e 73 28 22 70 6f 73 74 2d 63 6f 6e 73 74 72 61 69 6e 2d 73 75 62 74 79 70 65 73 22 2c 20 ions("post-constrain-subtypes",.
3cd80 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 7d 00 20 20 20 20 7d 00 20 20 20 20 20 20 63 d_assertions);...}.....}.......c
3cda0 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 73 28 64 5f 61 73 73 65 72 74 69 6f 6e 73 5b 69 5d onstrainSubtypes(d_assertions[i]
3cdc0 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 20 20 20 20 66 6f 72 28 75 6e 73 69 67 6e 65 ,.d_assertions);.....for(unsigne
3cde0 64 20 69 20 3d 20 30 2c 20 69 5f 65 6e 64 20 3d 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 d.i.=.0,.i_end.=.d_assertions.si
3ce00 7a 65 28 29 3b 20 69 20 21 3d 20 69 5f 65 6e 64 3b 20 2b 2b 69 29 20 7b 00 20 20 20 20 43 68 61 ze();.i.!=.i_end;.++i).{.....Cha
3ce20 74 28 29 20 3c 3c 20 22 63 6f 6e 73 74 72 61 69 6e 69 6e 67 20 73 75 62 74 79 70 65 73 2e 2e 2e t().<<."constraining.subtypes...
3ce40 22 20 3c 3c 20 65 6e 64 6c 3b 00 20 20 20 20 2f 2f 20 6d 65 6d 6f 72 79 20 64 75 72 69 6e 67 20 ".<<.endl;.....//.memory.during.
3ce60 74 68 69 73 20 6c 6f 6f 70 2e 00 20 20 20 20 2f 2f 20 57 65 20 61 6c 73 6f 20 63 61 6e 27 74 20 this.loop......//.We.also.can't.
3ce80 75 73 65 20 61 6e 20 69 74 65 72 61 74 6f 72 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 76 65 63 use.an.iterator,.because.the.vec
3cea0 74 6f 72 20 6d 61 79 20 62 65 20 6d 6f 76 65 64 20 69 6e 00 20 20 20 20 2f 2f 20 64 5f 61 73 73 tor.may.be.moved.in.....//.d_ass
3cec0 65 72 74 69 6f 6e 73 2c 20 62 75 74 20 77 65 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 20 72 65 ertions,.but.we.don't.need.to.re
3cee0 70 72 6f 63 65 73 73 20 74 68 6f 73 65 2e 00 20 20 20 20 2f 2f 20 43 61 72 65 66 75 6c 2c 20 68 process.those......//.Careful,.h
3cf00 65 72 65 3a 20 63 6f 6e 73 74 72 61 69 6e 53 75 62 74 79 70 65 73 28 29 20 61 64 64 73 20 74 6f ere:.constrainSubtypes().adds.to
3cf20 20 74 68 65 20 62 61 63 6b 20 6f 66 00 20 20 20 20 2f 2f 20 41 6e 79 20 76 61 72 69 61 62 6c 65 .the.back.of.....//.Any.variable
3cf40 73 20 6f 66 20 73 75 62 74 79 70 65 20 74 79 70 65 73 20 6e 65 65 64 20 74 6f 20 62 65 20 63 6f s.of.subtype.types.need.to.be.co
3cf60 6e 73 74 72 61 69 6e 65 64 20 70 72 6f 70 65 72 6c 79 2e 00 20 20 7b 00 20 20 64 75 6d 70 41 73 nstrained.properly....{...dumpAs
3cf80 73 65 72 74 69 6f 6e 73 28 22 70 72 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 73 75 62 74 79 70 65 73 sertions("pre-constrain-subtypes
3cfa0 22 2c 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 29 3b 00 00 20 20 44 65 62 75 67 28 22 73 6d 74 22 ",.d_assertions);....Debug("smt"
3cfc0 29 20 3c 3c 20 22 20 64 5f 61 73 73 65 72 74 69 6f 6e 73 20 20 20 20 20 3a 20 22 20 3c 3c 20 64 ).<<.".d_assertions.....:.".<<.d
3cfe0 5f 61 73 73 65 72 74 69 6f 6e 73 2e 73 69 7a 65 28 29 20 3c 3c 20 65 6e 64 6c 3b 00 00 20 7d 00 _assertions.size().<<.endl;...}.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback