LIV: Loop-Invariant Validation Using Straight-Line Programs
Validation of program invariants (a.k.a. correctness witnesses) is an established procedure in software verification. There are steady advances in verification of more and more complex software systems, but coming up with good loop invariants remains the central task of many verifiers. While it ofte...
Uložené v:
| Vydané v: | IEEE/ACM International Conference on Automated Software Engineering : [proceedings] s. 2074 - 2077 |
|---|---|
| Hlavní autori: | , |
| Médium: | Konferenčný príspevok.. |
| Jazyk: | English |
| Vydavateľské údaje: |
IEEE
11.09.2023
|
| Predmet: | |
| ISSN: | 2643-1572 |
| On-line prístup: | Získať plný text |
| Tagy: |
Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
|
| Abstract | Validation of program invariants (a.k.a. correctness witnesses) is an established procedure in software verification. There are steady advances in verification of more and more complex software systems, but coming up with good loop invariants remains the central task of many verifiers. While it often requires large amounts of computation to construct safe and inductive invariants, they are more easy to automatically validate. We propose LIV, a new tool for loop-invariant validation, which makes it more practical to check if the invariant produced by a verifier is sufficient to establish an inductive safety proof. The main idea is to apply divide-and-conquer on the program level: We split the program into smaller, loop-free programs (a.k.a. straight-line programs) that form simpler verification tasks. Because the verification conditions are not encoded in logic syntax (such as SMT), but as programs in the language of the original program, any off-the-shelf verifier can be used to verify the generated straight-line programs. In case the validation fails, useful information can be extracted about which part of the proof failed (which straight-line programs are wrong). We show that our approach works by evaluating it on a suitable benchmark. Supplementary website: https://www.sosy-lab.org/research/liv/ |
|---|---|
| AbstractList | Validation of program invariants (a.k.a. correctness witnesses) is an established procedure in software verification. There are steady advances in verification of more and more complex software systems, but coming up with good loop invariants remains the central task of many verifiers. While it often requires large amounts of computation to construct safe and inductive invariants, they are more easy to automatically validate. We propose LIV, a new tool for loop-invariant validation, which makes it more practical to check if the invariant produced by a verifier is sufficient to establish an inductive safety proof. The main idea is to apply divide-and-conquer on the program level: We split the program into smaller, loop-free programs (a.k.a. straight-line programs) that form simpler verification tasks. Because the verification conditions are not encoded in logic syntax (such as SMT), but as programs in the language of the original program, any off-the-shelf verifier can be used to verify the generated straight-line programs. In case the validation fails, useful information can be extracted about which part of the proof failed (which straight-line programs are wrong). We show that our approach works by evaluating it on a suitable benchmark. Supplementary website: https://www.sosy-lab.org/research/liv/ |
| Author | Beyer, Dirk Spiessl, Martin |
| Author_xml | – sequence: 1 givenname: Dirk orcidid: 0000-0003-4832-7662 surname: Beyer fullname: Beyer, Dirk organization: LMU,Munich,Germany – sequence: 2 givenname: Martin orcidid: 0000-0002-9169-9130 surname: Spiessl fullname: Spiessl, Martin organization: LMU,Munich,Germany |
| BookMark | eNotjd1KwzAYQKMouM09gV70BTKTL83Pp1djTC0UFOZ2O5IuqZEtHWkRfHsLenU4N-dMyVXqkifkjrMF5wwflpu1VAC4AAZiwRjw8oLMUaMRkglAVOUlmYAqBeVSww2Z9v0XY3IUPSFPdbV7LOquO9MqfdscbRqKnT3Ggx1il4ptH1NbbIZsY_s50DomX7znrs321N-S62CPvZ__c0a2z-uP1Sut316q1bKmdtwPFFCB4dopF5wzzvPgLAMUzAkUjXGGeY9h1IMBpZvgS6u4R0QNjAfZiBm5_-tG7_3-nOPJ5p89HxtGlkb8AjcxSXQ |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK ESBDL RIE RIL |
| DOI | 10.1109/ASE56229.2023.00214 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Xplore POP ALL IEEE Xplore All Conference Proceedings IEEE Xplore Open Access Journals IEL IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEL url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 9798350329964 |
| EISSN | 2643-1572 |
| EndPage | 2077 |
| ExternalDocumentID | 10298548 |
| Genre | orig-research |
| GrantInformation_xml | – fundername: Deutsche Forschungsgem. (DFG) grantid: 378803395 funderid: 10.13039/501100001659 – fundername: Isaac Newton Institute funderid: 10.13039/100012112 |
| GroupedDBID | 6IE 6IF 6IH 6IK 6IL 6IM 6IN 6J9 AAJGR AAWTH ABLEC ACREN ADYOE ADZIZ AFYQB ALMA_UNASSIGNED_HOLDINGS AMTXH BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO ESBDL IEGSK IPLJI M43 OCL RIE RIL |
| ID | FETCH-LOGICAL-a329t-2962817b6bfbb8be1fba02930b393c8b80ee9f30bd8267cfe4a61e9997201f5c3 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001103357200201&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Jul 16 07:54:33 EDT 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-a329t-2962817b6bfbb8be1fba02930b393c8b80ee9f30bd8267cfe4a61e9997201f5c3 |
| ORCID | 0000-0003-4832-7662 0000-0002-9169-9130 |
| OpenAccessLink | https://ieeexplore.ieee.org/document/10298548 |
| PageCount | 4 |
| ParticipantIDs | ieee_primary_10298548 |
| PublicationCentury | 2000 |
| PublicationDate | 2023-Sept.-11 |
| PublicationDateYYYYMMDD | 2023-09-11 |
| PublicationDate_xml | – month: 09 year: 2023 text: 2023-Sept.-11 day: 11 |
| PublicationDecade | 2020 |
| PublicationTitle | IEEE/ACM International Conference on Automated Software Engineering : [proceedings] |
| PublicationTitleAbbrev | ASE |
| PublicationYear | 2023 |
| Publisher | IEEE |
| Publisher_xml | – name: IEEE |
| SSID | ssj0051577 ssib057256115 |
| Score | 2.2719 |
| Snippet | Validation of program invariants (a.k.a. correctness witnesses) is an established procedure in software verification. There are steady advances in verification... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 2074 |
| SubjectTerms | Automatic Verification Benchmark testing Data mining Formal Methods Logic Program Analysis Program Correctness Program Invariants Provers Safety Software engineering Software systems Software Verification Syntactics Verification Tools |
| Title | LIV: Loop-Invariant Validation Using Straight-Line Programs |
| URI | https://ieeexplore.ieee.org/document/10298548 |
| WOSCitedRecordID | wos001103357200201&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV07T8MwED7RioGpPIp4ywNrIH4ktmFCqBWVqqoSUHWrYseWWJKqr9_P2U0LCwNbkiGy7mx9d8l93wdwXxqHLRrPE-ozkwhhi6TgpkwUFg88M6xIyzSaTcjRSE2netyQ1SMXxjkXh8_cQ7iM__LL2q7DpzI84UwrLLFb0JIy35K1dpsnkwjelO5rX8RpKRuZIZrqx5f3HkI9C9wUFkRNWeDt_DJUiXjS7_xzJcfQ_WHmkfEec07gwFWn0NlZM5DmpJ7B83AweSLDup4ng2qD_TAGkEyw5t5aKJE4KUCCNG0UEsGONL43jGotu_DZ7328viWNTwKGlelVwnTOFJUmN94YZRz1psD18dRwza0yKnVOe7wtsZeQ1jtR5NTpQJlNMUWWn0O7qit3AUSownqecYOpFdIL5T31gokSq0CbUX4J3RCM2XwrhTHbxeHqj-fXcBTiHQYsKL2B9mqxdrdwaDerr-XiLibwG5tOmrY |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV07T8MwED5BQYKpPIp4k4E1ED-S2DAh1KoVoapEqbpVsWNLLEnV1-_n7KaFhYEtyRBZ39n67pL77gO4L5TBEo0lIbGxCjnXeZgzVYQCkwcWK5pHReTNJtJ-X4zHclCL1b0Wxhjjm8_Mg7v0__KLSi_dpzI84VQKTLF3Yc9ZZ9Vyrc32iVOkb0K22S8ydZrWg4ZIJB9fPtpI9tSpU6gba0qdcueXpYpnlE7zn2s5gtaPNi8YbFnnGHZMeQLNjTlDUJ_VU3jOeqOnIKuqadgrV1gRI4TBCLPutYlS4HsFAjec1o8SwZrUv9c1a81b8NlpD1-7Ye2UgMBSuQipTKggqUqUVUooQ6zKcX0sUkwyLZSIjJEWbwusJlJtDc8TYqQTzUYYJM3OoFFWpTmHgItcWxYzhcHlqeXCWmI55QXmgTom7AJaDozJdD0MY7LB4fKP53dw0B2-Z5Os13-7gkOHvWu3IOQaGovZ0tzAvl4tvuazWx_Mb952nf8 |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=IEEE%2FACM+International+Conference+on+Automated+Software+Engineering+%3A+%5Bproceedings%5D&rft.atitle=LIV%3A+Loop-Invariant+Validation+Using+Straight-Line+Programs&rft.au=Beyer%2C+Dirk&rft.au=Spiessl%2C+Martin&rft.date=2023-09-11&rft.pub=IEEE&rft.eissn=2643-1572&rft.spage=2074&rft.epage=2077&rft_id=info:doi/10.1109%2FASE56229.2023.00214&rft.externalDocID=10298548 |