_neq3 = _dec != 0xaa

    _add0 = b.Add(_inc, _dec)
    _add1 = b.Add(128, _dec)
    _add2 = b.Add(_dec, 0xaa)
    _add3 = _dec + 0xaa

    _uaddo0 = b.Uaddo(_inc, _dec)
    _uaddo1 = b.Uaddo(128, _dec)
    _uaddo2 = b.Uaddo(_dec, 0xaa)

    _saddo0 = b.Saddo(_inc, _dec)
    _saddo1 = b.Saddo(128, _dec)
    _saddo2 = b.Saddo(_dec, 0xaa)

    _mul0 = b.Mul(_inc, _dec)
    _mul1 = b.Mul(128, _dec)
    _mul2 = b.Mul(_dec, 0xaa)
    _mul3 = _dec * 0xaa

    _umulo0 = b.Umulo(_inc, _dec)
    _umulo1 = b.Umulo(128, _dec)
    _umulo2 = b.Umulo(_dec, 0xaa)

    _smulo0 = b.Smulo(_inc, _dec)
    _smulo1 = b.Smulo(128, _dec)
    _smulo2 = b.Smulo(_dec, 0xaa)

    _ult0 = b.Ult(_inc, _dec)
    _ult1 = b.Ult(128, _dec)
    _ult2 = b.Ult(_dec, 0xaa)
Beispiel #2
0
        zero = btor.Const(0, 8)
        hundred = btor.Const(100, 8)
        # 0 < x
        ult_x = btor.Ult(zero, x)
        btor.Assert(ult_x)
        # x <= 100
        ulte_x = btor.Ulte(x, hundred)
        btor.Assert(ulte_x)
        # 0 < y
        ult_y = btor.Ult(zero, y)
        btor.Assert(ult_y)
        # y <= 100
        ulte_y = btor.Ulte(y, hundred)
        btor.Assert(ulte_y)
        # x * y
        mul = btor.Mul(x, y)
        # x * y < 100
        ult = btor.Ult(mul, hundred)
        btor.Assert(ult)
        umulo = btor.Umulo(x, y)
        numulo = btor.Not(umulo)  # prevent overflow
        btor.Assert(numulo)

        res = btor.Sat()
        print("Expect: sat")
        print("Boolector: ", end='')
        if res == btor.SAT:
            print("sat")
        elif res == btor.UNSAT:
            print("unsat")
        else: