Consider the following formula:
(declare-fun a () Real)
(declare-fun b () Real)
(declare-fun c () Real)
(declare-fun d () Real)
(declare-fun e () Real)
(declare-fun f () Real)
(declare-fun g () Real)
(declare-fun h () Real)
(declare-fun i () Real)
(declare-fun j () Real)
(assert
(exists ((k Real))
(let ((l (* 2 (- (* (+ h b 1) (+ a g 1)) (/ a g)) (+ c f 1))))
(or (>= b (/ (/ 1 d) k) h) (>= 0 (/ 0 l) e)))))
(assert (= c (/ (/ 1 f) i) (/ a j)))
(check-sat)
Z3 throws the following error on it.
ASSERTION VIOLATION
File: ../src/smt/theory_arith_nl.h
Line: 1244
UNREACHABLE CODE WAS REACHED.
(C)ontinue, (A)bort, (S)top, (T)hrow exception, Invoke (G)DB
OS: Ubuntu 18.04
Revision:41a4dcf