Synthesis in Uclid5

We describe an integration of program synthesis into Uclid5, a formal modelling and verification tool. To the best of our knowledge, the new version of Uclid5 is the only tool that supports program synthesis with bounded model checking, k-induction, sequential program verification, and hyperproperty verification. We use the integration to generate 25 program synthesis benchmarks with simple, known solutions that are out of reach of current synthesis engines, and we release the benchmarks to the community.

[1]  Jean-Baptiste Jeannin,et al.  I4: incremental inference of inductive invariants for verification of distributed protocols , 2019, SOSP.

[2]  Rastislav Bodík,et al.  Accelerating Syntax-Guided Invariant Synthesis , 2018, TACAS.

[3]  Pramod Subramanyan,et al.  Verification of Quantitative Hyperproperties Using Trace Enumeration Relations , 2020, CAV.

[4]  Sanjit A. Seshia,et al.  Combining Induction, Deduction, and Structure for Verification and Synthesis , 2015, Proceedings of the IEEE.

[5]  Sanjit A. Seshia,et al.  UCLID5: Integrating Modeling, Verification, Synthesis and Learning , 2018, 2018 16th ACM/IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE).

[6]  Armando Solar-Lezama,et al.  The Sketching Approach to Program Synthesis , 2009, APLAS.

[7]  Damien Zufferey,et al.  P: safe asynchronous event-driven programming , 2013, PLDI.

[8]  David Lo,et al.  S3: syntax- and semantic-guided repair synthesis via programming by examples , 2017, ESEC/SIGSOFT FSE.

[9]  Sharad Malik,et al.  Synthesizing Environment Invariants for Modular Hardware Verification , 2020, VMCAI.

[10]  Rajeev Alur,et al.  Syntax-guided synthesis , 2013, 2013 Formal Methods in Computer-Aided Design.

[11]  Cesare Tinelli,et al.  Satisfiability Modulo Theories , 2021, Handbook of Satisfiability.

[12]  Sarfraz Khurshid,et al.  Towards Practical Program Repair with On-demand Candidate Generation , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[13]  Mukund Raghothaman,et al.  Language to Specify Syntax-Guided Synthesis Problems , 2014, ArXiv.

[14]  Emina Torlak,et al.  Growing solver-aided languages with rosette , 2013, Onward!.

[15]  Daniel Kroening,et al.  Using Program Synthesis for Program Analysis , 2015, LPAR.