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...
Gespeichert in:
Veröffentlicht in: | International Journal on Software Tools for Technology Transfer (STTT) 2023-02, Vol.25 (1), p.77-94 |
---|---|
Hauptverfasser: | , , , |
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 & Engineering Collection</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>Advanced Technologies & 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 & Aerospace Database</collection><collection>ProQuest Advanced Technologies & 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 |