REAS: Combining Numerical Optimization with SAT Solving
This addresses the challenge of program synthesis for hybrid systems, offering a novel solution for researchers and practitioners in formal methods and software engineering.
The authors tackled the problem of synthesizing unknowns in programs with discrete and floating-point computation by combining numerical optimization with SAT solving, resulting in ReaS, which successfully synthesized programs in 5 case studies that previous SMT approaches could not solve.
In this paper, we present ReaS, a technique that combines numerical optimization with SAT solving to synthesize unknowns in a program that involves discrete and floating point computation. ReaS makes the program end-to-end differentiable by smoothing any Boolean expression that introduces discontinuity such as conditionals and relaxing the Boolean unknowns so that numerical optimization can be performed. On top of this, ReaS uses a SAT solver to help the numerical search overcome local solutions by incrementally fixing values to the Boolean expressions. We evaluated the approach on 5 case studies involving hybrid systems and show that ReaS can synthesize programs that could not be solved by previous SMT approaches.