A comprehensive study of real-world numerical bug characteristics
Numerical software is used in a wide variety of applications including safety-critical systems,
which have stringent correctness requirements, and whose failures have catastrophic …
which have stringent correctness requirements, and whose failures have catastrophic …
Testing probabilistic programming systems
Probabilistic programming systems (PP systems) allow developers to model stochastic
phenomena and perform efficient inference on the models. The number and adoption of …
phenomena and perform efficient inference on the models. The number and adoption of …
KLEE symbolic execution engine in 2019
C Cadar, M Nowack - International Journal on Software Tools for …, 2021 - Springer
KLEE is a popular dynamic symbolic execution engine, initially designed at Stanford
University and now primarily developed and maintained by the Software Reliability Group at …
University and now primarily developed and maintained by the Software Reliability Group at …
Encrypted databases made secure yet maintainable
State-of-the-art encrypted databases (EDBs) can be divided into two types: one that protects
the whole DBMS engine in a trusted domain, and one that protects only operators that …
the whole DBMS engine in a trusted domain, and one that protects only operators that …
Control behavior integrity for distributed cyber-physical systems
Cyber-physical control systems, such as industrial control systems (ICS), are increasingly
targeted by cyberattacks. Such attacks can potentially cause tremendous damage, affect …
targeted by cyberattacks. Such attacks can potentially cause tremendous damage, affect …
Efficient generation of error-inducing floating-point inputs via symbolic execution
Floating point is widely used in software to emulate arithmetic over reals. Unfortunately,
floating point leads to rounding errors that propagate and accumulate during execution …
floating point leads to rounding errors that propagate and accumulate during execution …
Building better bit-blasting for floating-point problems
An effective approach to handling the theory of floating-point is to reduce it to the theory of bit-
vectors. Implementing the required encodings is complex, error prone and requires a deep …
vectors. Implementing the required encodings is complex, error prone and requires a deep …
Just fuzz it: solving floating-point constraints using coverage-guided fuzzing
We investigate the use of coverage-guided fuzzing as a means of proving satisfiability of
SMT formulas over finite variable domains, with specific application to floating-point …
SMT formulas over finite variable domains, with specific application to floating-point …
Shadow symbolic execution for testing software patches
While developers are aware of the importance of comprehensively testing patches, the large
effort involved in coming up with relevant test cases means that such testing rarely happens …
effort involved in coming up with relevant test cases means that such testing rarely happens …
Speeding up SMT Solving via Compiler Optimization
SMT solvers are fundamental tools for reasoning about constraints in practical problems like
symbolic execution and program synthesis. Faster SMT solving can improve the …
symbolic execution and program synthesis. Faster SMT solving can improve the …