This name is the name of the symbol we parse. Internally, we still call
it POW2. This is a fix for the problem that `pow2` may clash (and
already does clash on SMT-LIB benchmarks) with user-defined symbols.
// integer version of AND
addIndexedOperator(api::IAND, api::IAND, "iand");
// pow2
- addOperator(api::POW2, "pow2");
+ addOperator(api::POW2, "int.pow2");
}
}
(set-logic QF_NIA)
(declare-fun x () Int)
(assert (< x 0))
-(assert (distinct (pow2 x) 0))
+(assert (distinct (int.pow2 x) 0))
(check-sat)
(declare-fun x () Int)
(assert (and (<= 0 x) (< x 16)))
-(assert (> (pow2 x) 0))
+(assert (> (int.pow2 x) 0))
(check-sat)
(declare-fun x () Int)
(assert (and (<= 0 x) (< x 16)))
-(assert (< (pow2 x) x))
+(assert (< (int.pow2 x) x))
(check-sat)
(assert (<= 0 x))
(assert (<= 0 y))
(assert (< x y))
-(assert (> (pow2 x) (pow2 y)))
+(assert (> (int.pow2 x) (int.pow2 y)))
(check-sat)