2LS for Program Analysis

2LS ("tools") is a verification tool for C programs, built upon the CPROVER framework. It allows one to verify user-specified assertions, memory safety properties (e.g. buffer overflows), numerical overflows, division by zero, memory leaks, and termination properties. The analysis is perfo...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Kroening, Daniel, Malík, Viktor, Schrammel, Peter, Vojnar, Tomáš
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue
container_start_page
container_title
container_volume
creator Kroening, Daniel
Malík, Viktor
Schrammel, Peter
Vojnar, Tomáš
description 2LS ("tools") is a verification tool for C programs, built upon the CPROVER framework. It allows one to verify user-specified assertions, memory safety properties (e.g. buffer overflows), numerical overflows, division by zero, memory leaks, and termination properties. The analysis is performed by translating the verification task into a second-order logic formula over bitvector, array, and floating-point arithmetic theories. The formula is solved by a modular combination of algorithms involving unfolding and template-based invariant synthesis with the help of incremental SAT solving. Advantages of 2LS include its very fast incremental bounded model checking algorithm and its flexible framework for experimenting with novel analysis and abstraction ideas for invariant inference. Drawbacks are its lack of support for certain program features (e.g. multi-threading).
doi_str_mv 10.48550/arxiv.2302.02380
format Article
fullrecord <record><control><sourceid>arxiv_GOX</sourceid><recordid>TN_cdi_arxiv_primary_2302_02380</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2302_02380</sourcerecordid><originalsourceid>FETCH-LOGICAL-a670-61e02474e4a5ca0110d2e5ef7988f0968347d78ee7b5ca68d124ea5b9df8aeb53</originalsourceid><addsrcrecordid>eNotzksLgkAUhuHZtIhqX6v8A9qZmzMuRbqBUFB7OeaZEDRjhMh_33X1LV74eBhbcIiU1RpW6J_1IxISRARCWhizuchPget8cPTd1WMbpDdshr7up2zksOlp9t8JO2_W52wX5oftPkvzEGMDYcwJhDKKFOoLAudQCdLkTGKtgyS2UpnKWCJTvntsKy4UoS6TylmkUssJW_5uv7Ti7usW_VB8iMWXKF8ErDRa</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>2LS for Program Analysis</title><source>arXiv.org</source><creator>Kroening, Daniel ; Malík, Viktor ; Schrammel, Peter ; Vojnar, Tomáš</creator><creatorcontrib>Kroening, Daniel ; Malík, Viktor ; Schrammel, Peter ; Vojnar, Tomáš</creatorcontrib><description>2LS ("tools") is a verification tool for C programs, built upon the CPROVER framework. It allows one to verify user-specified assertions, memory safety properties (e.g. buffer overflows), numerical overflows, division by zero, memory leaks, and termination properties. The analysis is performed by translating the verification task into a second-order logic formula over bitvector, array, and floating-point arithmetic theories. The formula is solved by a modular combination of algorithms involving unfolding and template-based invariant synthesis with the help of incremental SAT solving. Advantages of 2LS include its very fast incremental bounded model checking algorithm and its flexible framework for experimenting with novel analysis and abstraction ideas for invariant inference. Drawbacks are its lack of support for certain program features (e.g. multi-threading).</description><identifier>DOI: 10.48550/arxiv.2302.02380</identifier><language>eng</language><subject>Computer Science - Logic in Computer Science ; Computer Science - Programming Languages ; Computer Science - Software Engineering</subject><creationdate>2023-02</creationdate><rights>http://creativecommons.org/licenses/by/4.0</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>228,230,776,881</link.rule.ids><linktorsrc>$$Uhttps://arxiv.org/abs/2302.02380$$EView_record_in_Cornell_University$$FView_record_in_$$GCornell_University$$Hfree_for_read</linktorsrc><backlink>$$Uhttps://doi.org/10.48550/arXiv.2302.02380$$DView paper in arXiv$$Hfree_for_read</backlink></links><search><creatorcontrib>Kroening, Daniel</creatorcontrib><creatorcontrib>Malík, Viktor</creatorcontrib><creatorcontrib>Schrammel, Peter</creatorcontrib><creatorcontrib>Vojnar, Tomáš</creatorcontrib><title>2LS for Program Analysis</title><description>2LS ("tools") is a verification tool for C programs, built upon the CPROVER framework. It allows one to verify user-specified assertions, memory safety properties (e.g. buffer overflows), numerical overflows, division by zero, memory leaks, and termination properties. The analysis is performed by translating the verification task into a second-order logic formula over bitvector, array, and floating-point arithmetic theories. The formula is solved by a modular combination of algorithms involving unfolding and template-based invariant synthesis with the help of incremental SAT solving. Advantages of 2LS include its very fast incremental bounded model checking algorithm and its flexible framework for experimenting with novel analysis and abstraction ideas for invariant inference. Drawbacks are its lack of support for certain program features (e.g. multi-threading).</description><subject>Computer Science - Logic in Computer Science</subject><subject>Computer Science - Programming Languages</subject><subject>Computer Science - Software Engineering</subject><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2023</creationdate><recordtype>article</recordtype><sourceid>GOX</sourceid><recordid>eNotzksLgkAUhuHZtIhqX6v8A9qZmzMuRbqBUFB7OeaZEDRjhMh_33X1LV74eBhbcIiU1RpW6J_1IxISRARCWhizuchPget8cPTd1WMbpDdshr7up2zksOlp9t8JO2_W52wX5oftPkvzEGMDYcwJhDKKFOoLAudQCdLkTGKtgyS2UpnKWCJTvntsKy4UoS6TylmkUssJW_5uv7Ti7usW_VB8iMWXKF8ErDRa</recordid><startdate>20230205</startdate><enddate>20230205</enddate><creator>Kroening, Daniel</creator><creator>Malík, Viktor</creator><creator>Schrammel, Peter</creator><creator>Vojnar, Tomáš</creator><scope>AKY</scope><scope>GOX</scope></search><sort><creationdate>20230205</creationdate><title>2LS for Program Analysis</title><author>Kroening, Daniel ; Malík, Viktor ; Schrammel, Peter ; Vojnar, Tomáš</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a670-61e02474e4a5ca0110d2e5ef7988f0968347d78ee7b5ca68d124ea5b9df8aeb53</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2023</creationdate><topic>Computer Science - Logic in Computer Science</topic><topic>Computer Science - Programming Languages</topic><topic>Computer Science - Software Engineering</topic><toplevel>online_resources</toplevel><creatorcontrib>Kroening, Daniel</creatorcontrib><creatorcontrib>Malík, Viktor</creatorcontrib><creatorcontrib>Schrammel, Peter</creatorcontrib><creatorcontrib>Vojnar, Tomáš</creatorcontrib><collection>arXiv Computer Science</collection><collection>arXiv.org</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Kroening, Daniel</au><au>Malík, Viktor</au><au>Schrammel, Peter</au><au>Vojnar, Tomáš</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>2LS for Program Analysis</atitle><date>2023-02-05</date><risdate>2023</risdate><abstract>2LS ("tools") is a verification tool for C programs, built upon the CPROVER framework. It allows one to verify user-specified assertions, memory safety properties (e.g. buffer overflows), numerical overflows, division by zero, memory leaks, and termination properties. The analysis is performed by translating the verification task into a second-order logic formula over bitvector, array, and floating-point arithmetic theories. The formula is solved by a modular combination of algorithms involving unfolding and template-based invariant synthesis with the help of incremental SAT solving. Advantages of 2LS include its very fast incremental bounded model checking algorithm and its flexible framework for experimenting with novel analysis and abstraction ideas for invariant inference. Drawbacks are its lack of support for certain program features (e.g. multi-threading).</abstract><doi>10.48550/arxiv.2302.02380</doi><oa>free_for_read</oa></addata></record>
fulltext fulltext_linktorsrc
identifier DOI: 10.48550/arxiv.2302.02380
ispartof
issn
language eng
recordid cdi_arxiv_primary_2302_02380
source arXiv.org
subjects Computer Science - Logic in Computer Science
Computer Science - Programming Languages
Computer Science - Software Engineering
title 2LS for Program Analysis
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-25T04%3A27%3A04IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-arxiv_GOX&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=2LS%20for%20Program%20Analysis&rft.au=Kroening,%20Daniel&rft.date=2023-02-05&rft_id=info:doi/10.48550/arxiv.2302.02380&rft_dat=%3Carxiv_GOX%3E2302_02380%3C/arxiv_GOX%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true