summaryrefslogtreecommitdiff
path: root/test/regress/regress0/bv/bvsmod.smt2
blob: 384e3c7b835fb5f44c423ac70e73efd9387ae11a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
(set-logic  QF_BV)

(set-info :status unsat)

(define-fun bvsmod_def ((s (_ BitVec 13)) (t (_ BitVec 13))) (_ BitVec 13)
     (let ((msb_s ((_ extract 12 12) s))
           (msb_t ((_ extract 12 12) t)))
       (let ((abs_s (ite (= msb_s #b0) s (bvneg s)))
             (abs_t (ite (= msb_t #b0) t (bvneg t))))
         (let ((u (bvurem abs_s abs_t)))
           (ite (= u (_ bv0 13))
                u
           (ite (and (= msb_s #b0) (= msb_t #b0))
                u
           (ite (and (= msb_s #b1) (= msb_t #b0))
                (bvadd (bvneg u) t)
           (ite (and (= msb_s #b0) (= msb_t #b1))
                (bvadd u t)
                (bvneg u)))))))))

(define-fun a () (_ BitVec 13) (_ bv30 13))
(define-fun b () (_ BitVec 13) (_ bv8190 13))

(assert (not (= (bvsmod_def a b) (bvsmod a b))))

(check-sat)

(exit)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback