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...

Full description

Saved in:
Bibliographic Details
Main Authors: Sheng, Ying, Nötzli, Andres, Reynolds, Andrew, Zohar, Yoni, Dill, David, Grieskamp, Wolfgang, Park, Junkil, Qadeer, Shaz, Barrett, Clark, Tinelli, Cesare
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