Blanc, RĂ©gisKuncak, Viktor2015-06-142015-06-142015-06-14201510.1145/2774975.2774980https://infoscience.epfl.ch/handle/20.500.14299/115084We extend the Leon verification system for Scala with support for bit-vector reasoning, thus addressing one of its fundamental soundness limitation with respect to the treatment of integers primitives. We leverage significant progresses recently achieved in SMT solving by developing a solver-independent interface to easily configure the back-end of Leon. Our interface is based on the emerging SMT-LIB standard for SMT solvers, and we release a Scala library offering full support for the latest version of the standard. We use the standard BigInt Scala library to represent mathematical integers, whereas we correctly model Int as 32-bit integers. We ensure safety of arithmetic by checking for division by zero and correctly modeling division and modulo. We conclude with a performance comparison between the sound representation of Ints and the cleaner abstract representation using mathematical integers, and discuss the trade-off involved.verificationsoftware reliabilitysmt solversSound reasoning about integral data types with a reusable SMT solver interfacetext::conference output::conference proceedings::conference paper