code: def BVAddNoOverflow(a: Union[BitVec, int], b: Union[BitVec, int], signed: bool) -> Bool:
      
      if not isinstance(a, BitVec):
          a = BitVec(z3.BitVecVal(a, 256))
      if not isinstance(b, BitVec):
          b = BitVec(z3.BitVecVal(b, 256))
      return Bool(z3.BVAddNoOverflow(a.raw, b.raw, signed))
docs: Creates predicate that verifies that the addition doesn't overflow.
  
      :param a:
      :param b:
      :param signed:
      :return: