Reasoning About Vectors using an SMT Theory of Sequences
Dynamic arrays, also referred to as vectors, are fundamental data structures used in many programs. Modeling their semantics efficiently is crucial when reasoning about such programs. The theory of arrays is widely supported but is not ideal, because the number of elements is fixed (determined by it...
Saved in:
Main Authors: | , , , , , , , , , |
---|---|
Format: | Journal Article |
Language: | English |
Published: |
17-05-2022
|
Subjects: | |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Abstract | Dynamic arrays, also referred to as vectors, are fundamental data structures
used in many programs. Modeling their semantics efficiently is crucial when
reasoning about such programs. The theory of arrays is widely supported but is
not ideal, because the number of elements is fixed (determined by its index
sort) and cannot be adjusted, which is a problem, given that the length of
vectors often plays an important role when reasoning about vector programs. In
this paper, we propose reasoning about vectors using a theory of sequences. We
introduce the theory, propose a basic calculus adapted from one for the theory
of strings, and extend it to efficiently handle common vector operations. We
prove that our calculus is sound and show how to construct a model when it
terminates with a saturated configuration. Finally, we describe an
implementation of the calculus in cvc5 and demonstrate its efficacy by
evaluating it on verification conditions for smart contracts and benchmarks
derived from existing array benchmarks. |
---|---|
AbstractList | Dynamic arrays, also referred to as vectors, are fundamental data structures
used in many programs. Modeling their semantics efficiently is crucial when
reasoning about such programs. The theory of arrays is widely supported but is
not ideal, because the number of elements is fixed (determined by its index
sort) and cannot be adjusted, which is a problem, given that the length of
vectors often plays an important role when reasoning about vector programs. In
this paper, we propose reasoning about vectors using a theory of sequences. We
introduce the theory, propose a basic calculus adapted from one for the theory
of strings, and extend it to efficiently handle common vector operations. We
prove that our calculus is sound and show how to construct a model when it
terminates with a saturated configuration. Finally, we describe an
implementation of the calculus in cvc5 and demonstrate its efficacy by
evaluating it on verification conditions for smart contracts and benchmarks
derived from existing array benchmarks. |
Author | Nötzli, Andres Tinelli, Cesare Grieskamp, Wolfgang Sheng, Ying Park, Junkil Qadeer, Shaz Reynolds, Andrew Dill, David Barrett, Clark Zohar, Yoni |
Author_xml | – sequence: 1 givenname: Ying surname: Sheng fullname: Sheng, Ying – sequence: 2 givenname: Andres surname: Nötzli fullname: Nötzli, Andres – sequence: 3 givenname: Andrew surname: Reynolds fullname: Reynolds, Andrew – sequence: 4 givenname: Yoni surname: Zohar fullname: Zohar, Yoni – sequence: 5 givenname: David surname: Dill fullname: Dill, David – sequence: 6 givenname: Wolfgang surname: Grieskamp fullname: Grieskamp, Wolfgang – sequence: 7 givenname: Junkil surname: Park fullname: Park, Junkil – sequence: 8 givenname: Shaz surname: Qadeer fullname: Qadeer, Shaz – sequence: 9 givenname: Clark surname: Barrett fullname: Barrett, Clark – sequence: 10 givenname: Cesare surname: Tinelli fullname: Tinelli, Cesare |
BackLink | https://doi.org/10.48550/arXiv.2205.08095$$DView paper in arXiv |
BookMark | eNotj8tOwzAQRb2ABRQ-gBX-gYSxYzvjZVXxkoqQaMQ28mMCkcAGp0H071FbVke6i6N7ztlJyokYuxJQK9Qablz5HX9qKUHXgGD1GcMXclNOY3rjS5_nLX-lsM1l4vO031zim6eOd--Uy47ngW_oe6YUaLpgp4P7mOjynwvW3d12q4dq_Xz_uFquK2daXbkWozQWA3rABh1GjOSNjt47MMPgAZTAaIUSDXpvZVASBLXBBqHIuGbBro_aw_X-q4yfruz6fUJ_SGj-AM9UQhs |
ContentType | Journal Article |
Copyright | http://arxiv.org/licenses/nonexclusive-distrib/1.0 |
Copyright_xml | – notice: http://arxiv.org/licenses/nonexclusive-distrib/1.0 |
DBID | AKY GOX |
DOI | 10.48550/arxiv.2205.08095 |
DatabaseName | arXiv Computer Science arXiv.org |
DatabaseTitleList | |
Database_xml | – sequence: 1 dbid: GOX name: arXiv.org url: http://arxiv.org/find sourceTypes: Open Access Repository |
DeliveryMethod | fulltext_linktorsrc |
ExternalDocumentID | 2205_08095 |
GroupedDBID | AKY GOX |
ID | FETCH-LOGICAL-a675-a78d2698c8b0838a8d8deb65dbba06ffb00418d914138bb92c4201e7c9c14e6a3 |
IEDL.DBID | GOX |
IngestDate | Mon Jan 08 05:37:07 EST 2024 |
IsDoiOpenAccess | true |
IsOpenAccess | true |
IsPeerReviewed | false |
IsScholarly | false |
Language | English |
LinkModel | DirectLink |
MergedId | FETCHMERGED-LOGICAL-a675-a78d2698c8b0838a8d8deb65dbba06ffb00418d914138bb92c4201e7c9c14e6a3 |
OpenAccessLink | https://arxiv.org/abs/2205.08095 |
ParticipantIDs | arxiv_primary_2205_08095 |
PublicationCentury | 2000 |
PublicationDate | 2022-05-17 |
PublicationDateYYYYMMDD | 2022-05-17 |
PublicationDate_xml | – month: 05 year: 2022 text: 2022-05-17 day: 17 |
PublicationDecade | 2020 |
PublicationYear | 2022 |
Score | 1.8453137 |
SecondaryResourceType | preprint |
Snippet | Dynamic arrays, also referred to as vectors, are fundamental data structures
used in many programs. Modeling their semantics efficiently is crucial when... |
SourceID | arxiv |
SourceType | Open Access Repository |
SubjectTerms | Computer Science - Logic in Computer Science |
Title | Reasoning About Vectors using an SMT Theory of Sequences |
URI | https://arxiv.org/abs/2205.08095 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://sdu.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwdV07T8MwED6RTiwIBKg85YHV0DhOchkRtHQBJBKhbpHtsxFLQU2L-PnYTipYWH23-Czrvnt9B3BFqXFO-ugkzwRxqXPkKI3mUkqqHJFycbZqXpdPC7yfBpoctp2FUavv96-eH1h3N2EK9NpjmipPIBEitGw9PC_64mSk4hr0f_U8xoxHf5zEbB_2BnTHbvvnOIAduzwEfLGqi1lPFoosa_YaM-UdCz3nb0wtWf3YsH5Inn04Vm-7m4-gmU2buzkfFhZw5XE3VyWSKCo0qD2wQYWEZHWRk9ZqUjgXfkiKVKXecaDWlTDSu19bmsqk0hYqO4aRj_ntGJj2skK4sBsnBFBSidJkpJ0TE0vW5icwjtdsP3tOijZYoI0WOP1fdAa7InTvB_LR8hxG69XGXkDS0eYyGvYHPfR2eA |
link.rule.ids | 228,230,782,887 |
linkProvider | Cornell University |
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%3Ajournal&rft.genre=article&rft.atitle=Reasoning+About+Vectors+using+an+SMT+Theory+of+Sequences&rft.au=Sheng%2C+Ying&rft.au=N%C3%B6tzli%2C+Andres&rft.au=Reynolds%2C+Andrew&rft.au=Zohar%2C+Yoni&rft.date=2022-05-17&rft_id=info:doi/10.48550%2Farxiv.2205.08095&rft.externalDocID=2205_08095 |