ofs | hex dump | ascii |
---|
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;...}. |