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

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 ω automata manipulatio...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:International Journal on Software Tools for Technology Transfer (STTT) 2023-02, Vol.25 (1), p.77-94
Hauptverfasser: Kirszenberg, Alexandre, Martin, Antoine, Moreau, Hugo, Renault, Etienne
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 94
container_issue 1
container_start_page 77
container_title International Journal on Software Tools for Technology Transfer (STTT)
container_volume 25
creator Kirszenberg, Alexandre
Martin, Antoine
Moreau, Hugo
Renault, Etienne
description 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 ω 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 PSL R E C , 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.
doi_str_mv 10.1007/s10009-022-00692-w
format Article
fullrecord <record><control><sourceid>proquest_hal_p</sourceid><recordid>TN_cdi_proquest_journals_2784707012</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2784707012</sourcerecordid><originalsourceid>FETCH-LOGICAL-c327t-765437a5cbb42e42177418e3334c15fb7172ad1716c3488dd4b67eb18d7fc8603</originalsourceid><addsrcrecordid>eNp9kM1OAjEURhujiYi-gKsmbnQx2r-ZW9wRomAyCS5w3XRmWhiEKbYD6NtbHIM7N7c3zfm-3ByErim5p4TAQ4iTDBLCWEJINmDJ_gT1qOA8YSDh9LjD4BxdhLAkhEIGgx6ajh17rZvwiDW2Xq_N3vl3bJ3H7cLgfJbjnfG1rUvd1q7BzuKxwxvv5pEN-NZ8tqapTHWgQgTuLtGZ1atgrn7fPnp7fpqNJkk-Hb-MhnlScgZtAlkqOOi0LArBjGAUQFBpOOeipKktgALTFQWalVxIWVWiyMAUVFZgS5kR3kd3Xe9Cr9TG12vtv5TTtZoMc3X4IyKVhEu-o5G96dh498fWhFYt3dY38TwV7QggQCiLFOuo0rsQvLHHWkrUQbLqJKsoWf1IVvsY4l0oRLiZG_9X_U_qG4MdfOY</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2784707012</pqid></control><display><type>article</type><title>Go2Pins: a framework for the LTL verification of Go programs (extended version)</title><source>SpringerLink</source><creator>Kirszenberg, Alexandre ; Martin, Antoine ; Moreau, Hugo ; Renault, Etienne</creator><creatorcontrib>Kirszenberg, Alexandre ; Martin, Antoine ; Moreau, Hugo ; Renault, Etienne</creatorcontrib><description>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 ω 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 PSL R E C , 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.</description><identifier>ISSN: 1433-2779</identifier><identifier>EISSN: 1433-2787</identifier><identifier>DOI: 10.1007/s10009-022-00692-w</identifier><language>eng</language><publisher>Berlin/Heidelberg: Springer Berlin Heidelberg</publisher><subject>Black boxes ; Boxes ; Computer Science ; Formal Languages and Automata Theory ; Handles ; Interfaces ; Programming languages ; Reflexivity ; Software Engineering ; Software Engineering/Programming and Operating Systems ; Theory of Computation ; Verification</subject><ispartof>International Journal on Software Tools for Technology Transfer (STTT), 2023-02, Vol.25 (1), p.77-94</ispartof><rights>The Author(s), under exclusive licence to Springer-Verlag GmbH Germany, part of Springer Nature 2023. Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.</rights><rights>Distributed under a Creative Commons Attribution 4.0 International License</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c327t-765437a5cbb42e42177418e3334c15fb7172ad1716c3488dd4b67eb18d7fc8603</citedby><cites>FETCH-LOGICAL-c327t-765437a5cbb42e42177418e3334c15fb7172ad1716c3488dd4b67eb18d7fc8603</cites><orcidid>0000-0002-3263-7669 ; 0000-0001-9013-4413</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/s10009-022-00692-w$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/s10009-022-00692-w$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>230,314,780,784,885,27924,27925,41488,42557,51319</link.rule.ids><backlink>$$Uhttps://hal.science/hal-04580383$$DView record in HAL$$Hfree_for_read</backlink></links><search><creatorcontrib>Kirszenberg, Alexandre</creatorcontrib><creatorcontrib>Martin, Antoine</creatorcontrib><creatorcontrib>Moreau, Hugo</creatorcontrib><creatorcontrib>Renault, Etienne</creatorcontrib><title>Go2Pins: a framework for the LTL verification of Go programs (extended version)</title><title>International Journal on Software Tools for Technology Transfer (STTT)</title><addtitle>Int J Softw Tools Technol Transfer</addtitle><description>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 ω 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 PSL R E C , 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.</description><subject>Black boxes</subject><subject>Boxes</subject><subject>Computer Science</subject><subject>Formal Languages and Automata Theory</subject><subject>Handles</subject><subject>Interfaces</subject><subject>Programming languages</subject><subject>Reflexivity</subject><subject>Software Engineering</subject><subject>Software Engineering/Programming and Operating Systems</subject><subject>Theory of Computation</subject><subject>Verification</subject><issn>1433-2779</issn><issn>1433-2787</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2023</creationdate><recordtype>article</recordtype><sourceid>8G5</sourceid><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><sourceid>GNUQQ</sourceid><sourceid>GUQSH</sourceid><sourceid>M2O</sourceid><recordid>eNp9kM1OAjEURhujiYi-gKsmbnQx2r-ZW9wRomAyCS5w3XRmWhiEKbYD6NtbHIM7N7c3zfm-3ByErim5p4TAQ4iTDBLCWEJINmDJ_gT1qOA8YSDh9LjD4BxdhLAkhEIGgx6ajh17rZvwiDW2Xq_N3vl3bJ3H7cLgfJbjnfG1rUvd1q7BzuKxwxvv5pEN-NZ8tqapTHWgQgTuLtGZ1atgrn7fPnp7fpqNJkk-Hb-MhnlScgZtAlkqOOi0LArBjGAUQFBpOOeipKktgALTFQWalVxIWVWiyMAUVFZgS5kR3kd3Xe9Cr9TG12vtv5TTtZoMc3X4IyKVhEu-o5G96dh498fWhFYt3dY38TwV7QggQCiLFOuo0rsQvLHHWkrUQbLqJKsoWf1IVvsY4l0oRLiZG_9X_U_qG4MdfOY</recordid><startdate>20230201</startdate><enddate>20230201</enddate><creator>Kirszenberg, Alexandre</creator><creator>Martin, Antoine</creator><creator>Moreau, Hugo</creator><creator>Renault, Etienne</creator><general>Springer Berlin Heidelberg</general><general>Springer Nature B.V</general><scope>AAYXX</scope><scope>CITATION</scope><scope>3V.</scope><scope>7SC</scope><scope>7XB</scope><scope>8AL</scope><scope>8AO</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>8FK</scope><scope>8G5</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>GNUQQ</scope><scope>GUQSH</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K7-</scope><scope>L6V</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>M0N</scope><scope>M2O</scope><scope>M7S</scope><scope>MBDVC</scope><scope>P5Z</scope><scope>P62</scope><scope>PADUT</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>Q9U</scope><scope>1XC</scope><scope>VOOES</scope><orcidid>https://orcid.org/0000-0002-3263-7669</orcidid><orcidid>https://orcid.org/0000-0001-9013-4413</orcidid></search><sort><creationdate>20230201</creationdate><title>Go2Pins: a framework for the LTL verification of Go programs (extended version)</title><author>Kirszenberg, Alexandre ; Martin, Antoine ; Moreau, Hugo ; Renault, Etienne</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c327t-765437a5cbb42e42177418e3334c15fb7172ad1716c3488dd4b67eb18d7fc8603</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2023</creationdate><topic>Black boxes</topic><topic>Boxes</topic><topic>Computer Science</topic><topic>Formal Languages and Automata Theory</topic><topic>Handles</topic><topic>Interfaces</topic><topic>Programming languages</topic><topic>Reflexivity</topic><topic>Software Engineering</topic><topic>Software Engineering/Programming and Operating Systems</topic><topic>Theory of Computation</topic><topic>Verification</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Kirszenberg, Alexandre</creatorcontrib><creatorcontrib>Martin, Antoine</creatorcontrib><creatorcontrib>Moreau, Hugo</creatorcontrib><creatorcontrib>Renault, Etienne</creatorcontrib><collection>CrossRef</collection><collection>ProQuest Central (Corporate)</collection><collection>Computer and Information Systems Abstracts</collection><collection>ProQuest Central (purchase pre-March 2016)</collection><collection>Computing Database (Alumni Edition)</collection><collection>ProQuest Pharma Collection</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>ProQuest Central (Alumni) (purchase pre-March 2016)</collection><collection>Research Library (Alumni Edition)</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central</collection><collection>ProQuest Central Student</collection><collection>Research Library Prep</collection><collection>SciTech Premium Collection (Proquest) (PQ_SDU_P3)</collection><collection>ProQuest Computer Science Collection</collection><collection>Computer Science Database</collection><collection>ProQuest Engineering Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Computing Database</collection><collection>ProQuest research library</collection><collection>Engineering Database</collection><collection>Research Library (Corporate)</collection><collection>Advanced Technologies &amp; Aerospace Database</collection><collection>ProQuest Advanced Technologies &amp; Aerospace Collection</collection><collection>Research Library China</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><collection>ProQuest Central Basic</collection><collection>Hyper Article en Ligne (HAL)</collection><collection>Hyper Article en Ligne (HAL) (Open Access)</collection><jtitle>International Journal on Software Tools for Technology Transfer (STTT)</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Kirszenberg, Alexandre</au><au>Martin, Antoine</au><au>Moreau, Hugo</au><au>Renault, Etienne</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Go2Pins: a framework for the LTL verification of Go programs (extended version)</atitle><jtitle>International Journal on Software Tools for Technology Transfer (STTT)</jtitle><stitle>Int J Softw Tools Technol Transfer</stitle><date>2023-02-01</date><risdate>2023</risdate><volume>25</volume><issue>1</issue><spage>77</spage><epage>94</epage><pages>77-94</pages><issn>1433-2779</issn><eissn>1433-2787</eissn><abstract>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 ω 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 PSL R E C , 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.</abstract><cop>Berlin/Heidelberg</cop><pub>Springer Berlin Heidelberg</pub><doi>10.1007/s10009-022-00692-w</doi><tpages>18</tpages><orcidid>https://orcid.org/0000-0002-3263-7669</orcidid><orcidid>https://orcid.org/0000-0001-9013-4413</orcidid><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 1433-2779
ispartof International Journal on Software Tools for Technology Transfer (STTT), 2023-02, Vol.25 (1), p.77-94
issn 1433-2779
1433-2787
language eng
recordid cdi_proquest_journals_2784707012
source SpringerLink
subjects Black boxes
Boxes
Computer Science
Formal Languages and Automata Theory
Handles
Interfaces
Programming languages
Reflexivity
Software Engineering
Software Engineering/Programming and Operating Systems
Theory of Computation
Verification
title Go2Pins: a framework for the LTL verification of Go programs (extended version)
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-07T17%3A31%3A18IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_hal_p&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Go2Pins:%20a%20framework%20for%20the%20LTL%20verification%20of%20Go%20programs%20(extended%20version)&rft.jtitle=International%20Journal%20on%20Software%20Tools%20for%20Technology%20Transfer%20(STTT)&rft.au=Kirszenberg,%20Alexandre&rft.date=2023-02-01&rft.volume=25&rft.issue=1&rft.spage=77&rft.epage=94&rft.pages=77-94&rft.issn=1433-2779&rft.eissn=1433-2787&rft_id=info:doi/10.1007/s10009-022-00692-w&rft_dat=%3Cproquest_hal_p%3E2784707012%3C/proquest_hal_p%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2784707012&rft_id=info:pmid/&rfr_iscdi=true