In non-linear logics, rewrite DIVISION, INTS_DIVISION, and INTS_MODULUS into ITEs...
authorMorgan Deters <mdeters@gmail.com>
Fri, 9 Nov 2012 18:41:24 +0000 (18:41 +0000)
committerMorgan Deters <mdeters@gmail.com>
Fri, 9 Nov 2012 18:41:24 +0000 (18:41 +0000)
commit63e4a6775daa1b7a986cc9dec0bd178b7e023c47
tree21022ef535c947c074060d11a0ea1ef8dd4c4b45
parentd11716a24a2b70b7c3681e52de51bd622c4f6447
In non-linear logics, rewrite DIVISION, INTS_DIVISION, and INTS_MODULUS into ITEs of the form:

  IF (denom = 0) THEN divByZero(num) ELSE (DIVISION_TOTAL num denom) ENDIF

where divByZero is an uninterpreted function symbol (there's one for each of the partial operators).

In linear logics, don't do any of this.

Bitvector partial functions to come, if this is successful for Tim.

(this commit was certified error- and warning-free by the test-and-commit script.)
src/smt/smt_engine.cpp