Go2Pins: a framework for the LTL verification of Go programs (extended version)

被引:1
作者
Kirszenberg, Alexandre [1 ]
Martin, Antoine [1 ]
Moreau, Hugo [1 ]
Renault, Etienne [1 ]
机构
[1] EPITA Res Lab LRE, Le Kremlin Bicetre, France
关键词
Golang model-checking; PSL; Abstractions; AUTOMATA;
D O I
10.1007/s10009-022-00692-w
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We introduce Go2Pins, a tool that takes a program written in Go and links it with two model checkers: LTSMin (Kant et al. Ltsmin: high-performance language-independent model checking. In: TACAS'15, pp. 692-707, 2015) and Spot (Duret-Lutz et al. Spot 2.0-a framework for LTL and omega automata manipulation. In: ATVA'16, vol. 9938 of LNCS, pp. 1294, 122-129, 2016) . Go2Pins is an effort to promote the integration of both formal verification and testing inside industrial-size projects. With this goal in mind, we introduce black-box transitions, an efficient and scalable technique for handling the Go runtime. This approach, inspired by hardware verification techniques, allows easy, automatic and efficient abstractions. Go2Pins also handles basic concurrent programs through the use of a dedicated scheduler. Moreover, in order to efficiently handle recursive programs, we introduce PSLREC, a formalism that augments PSL without changing the complexity of the underlying verification process. In this paper we demonstrate the usage of Go2Pins over benchmarks inspired by industrial problems and a set of LTL formulae. Even if Go2Pins is still at the early stages of development, our results are promising and show the benefits of using black-box transitions. This paper also shows how Go2Pins is able to work efficiently on two bugs coming from industrial problems Kubernetes and Trillian.
引用
收藏
页码:77 / 94
页数:18
相关论文
共 44 条
[1]   Model Checking of C and C plus plus with DIVINE 4 [J].
Baranova, Zuzana ;
Barnat, Jiri ;
Kejstova, Katarina ;
Kucera, Tadeas ;
Lauko, Henrich ;
Mrazek, Jan ;
Rockai, Petr ;
Still, Vladimir .
AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS (ATVA 2017), 2017, 10482 :201-207
[2]  
BERTHELOT G, 1986, LECT NOTES COMPUT SC, V222, P19
[3]   Counting Petri net markings from reduction equations [J].
Berthomieu, Bernard ;
Le Botlan, Didier ;
Dal Zilio, Silvano .
INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2020, 22 (02) :163-181
[4]   On Refinement of Buchi Automata for Explicit Model Checking [J].
Blahoudek, Frantisek ;
Duret-Lutz, Alexandre ;
Rujbr, Vojtech ;
Strejcek, Jan .
MODEL CHECKING SOFTWARE, SPIN 2015, 2015, 9232 :66-83
[5]   Multi-core SCC-Based LTL Model Checking [J].
Bloemen, Vincent ;
van de Pol, Jaco .
HARDWARE AND SOFTWARE: VERIFICATION AND TESTING, HVC 2016, 2016, 10028 :18-33
[6]  
Dekker J., 2014, THESIS RADBOUD U
[7]   Automated Verification of Go Programs via Bounded Model Checking [J].
Dilley, Nicolas ;
Lange, Julien .
2021 36TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING ASE 2021, 2021, :1016-1027
[8]   Bounded verification of message-passing concurrency in Go using Promela and Spin [J].
Dilley, Nicolas ;
Lange, Julien .
ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2020, (314) :34-45
[9]  
Dilley N, 2019, 2019 IEEE 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER), P377, DOI [10.1109/saner.2019.8668036, 10.1109/SANER.2019.8668036]
[10]   Spot 2.0-A Framework for LTL and ω-Automata Manipulation [J].
Duret-Lutz, Alexandre ;
Lewkowicz, Alexandre ;
Fauchille, Amaury ;
Michaud, Thibaud ;
Renault, Etienne ;
Xu, Laurent .
AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, ATVA 2016, 2016, 9938 :122-129