skip to main content
10.1145/1926385.1926454acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Streaming transducers for algorithmic verification of single-pass list-processing programs

Published: 26 January 2011 Publication History

Abstract

We introduce streaming data string transducers that map input data strings to output data strings in a single left-to-right pass in linear time. Data strings are (unbounded) sequences of data values, tagged with symbols from a finite set, over a potentially infinite data domain that supports only the operations of equality and ordering. The transducer uses a finite set of states, a finite set of variables ranging over the data domain, and a finite set of variables ranging over data strings. At every step, it can make decisions based on the next input symbol, updating its state, remembering the input data value in its data variables, and updating data-string variables by concatenating data-string variables and new symbols formed from data variables, while avoiding duplication. We establish PSPACE bounds for the problems of checking functional equivalence of two streaming transducers, and of checking whether a streaming transducer satisfies pre/post verification conditions specified by streaming acceptors over input/output data-strings.
We identify a class of imperative and a class of functional programs, manipulating lists of data items, which can be effectively translated to streaming data-string transducers. The imperative programs dynamically modify a singly-linked heap by changing next-pointers of heap-nodes and by adding new nodes. The main restriction specifies how the next-pointers can be used for traversal. We also identify an expressively equivalent fragment of functional programs that traverse a list using syntactically restricted recursive calls. Our results lead to algorithms for assertion checking and for checking functional equivalence of two programs, written possibly in different programming styles, for commonly used routines such as insert, delete, and reverse.

Supplementary Material

MP4 File (54-mpeg-4.mp4)

References

[1]
R. Alur and P. Černý. Expressivness of streaming string transducers. Invited paper. In FSTTCS, 2010.
[2]
R. Alur, P. Černý, and S. Weinstein. Algorithmic analysis of array-accessing programs. In CSL, pages 86--101, 2009.
[3]
M. Bojańczyk, A. Muscholl, T. Schwentick, L. Segoufin, and C. David. Two-variable logic on words with data. In LICS, pages 7--16, 2006.
[4]
A. Bouajjani, B. Jonsson, M. Nilsson, and T. Touili. Regular model checking. In CAV, pages 403--418, 2000.
[5]
A. Bouajjani, P. Habermehl, P. Moro, and T. Vojnar. Verifying programs with dynamic 1-selector-linked structures in regular model checking. In TACAS, pages 13--29, 2005.
[6]
A. Bouajjani, M. Bozga, P. Habermehl, R. Iosif, P. Moro, and T. Vojnar. Programs with lists are counter automata. In CAV, pages 517--531, 2006.
[7]
M. Bozga and R. Iosif. On flat programs with lists. In VMCAI, pages 122--136, 2007.
[8]
P. Černý, A. Radhakrishna, D. Zufferey, S. Chaudhuri, and R. Alur. Model checking of linearizability of concurrent list implementations. In CAV, pages 465--479, 2010.
[9]
S. Chakraborty. Reasoning about heap manipulating programs using automata techniques. To appear in IISc-World Scientific Review Volume on Modern Applications of Automata Theory.
[10]
D. Distefano, P. O'Hearn, and H. Yang. A local shape analysis based on separation logic. In TACAS, pages 287--302, 2006.
[11]
J. Engelfriet and H. Hoogeboom. MSO definable string transductions and two-way finite-state transducers. ACM Trans. Comput. Log., 2 (2): 216--254, 2001.
[12]
W. Landi. Undecidability of static analysis. LOPLAS, 1 (4): 323--337, 1992.
[13]
R. Manevich, E. Yahav, G. Ramalingam, and S. Sagiv. Predicate abstraction and canonical abstraction for singly-linked lists. In VMCAI, pages 181--198, 2005.
[14]
R. Manevich, J. Berdine, B. Cook, G. Ramalingam, and M. Sagiv. Shape analysis by graph decomposition. In TACAS, pages 3--18, 2007.
[15]
F. Neven, T. Schwentick, and V. Vianu. Finite state machines for strings over infinite alphabets. ACM Trans. Comput. Logic, 5 (3): 403--435, 2004.
[16]
B. Pierce. Types and programming languages. MIT Press, 2002.
[17]
A. Podelski and T. Wies. Counterexample-guided focus. In POPL, pages 249--260, 2010.
[18]
G. Ramalingam. The undecidability of aliasing. ACM Trans. Program. Lang. Syst., 16 (5): 1467--1471, 1994.
[19]
S. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. ACM Trans. Program. Lang. Syst., 24 (3): 217--298, 2002.
[20]
T. Touili. Regular model checking using widening techniques. Electr. Notes Theor. Comput. Sci., 50 (4), 2001.

Cited By

View all
  • (2025)The Decision Problem for Regular First Order TheoriesProceedings of the ACM on Programming Languages10.1145/37048709:POPL(986-1012)Online publication date: 9-Jan-2025
  • (2024)Finite-valued Streaming String TransducersProceedings of the 39th Annual ACM/IEEE Symposium on Logic in Computer Science10.1145/3661814.3662095(1-14)Online publication date: 8-Jul-2024
  • (2023)Proving and Disproving Equivalence of Functional Programming AssignmentsProceedings of the ACM on Programming Languages10.1145/35912587:PLDI(928-951)Online publication date: 6-Jun-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '11: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2011
652 pages
ISBN:9781450304900
DOI:10.1145/1926385
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 1
    POPL '11
    January 2011
    624 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1925844
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 January 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. algorithmic software verification
  2. lists
  3. transducers

Qualifiers

  • Research-article

Conference

POPL '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 860 of 4,328 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)17
  • Downloads (Last 6 weeks)2
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2025)The Decision Problem for Regular First Order TheoriesProceedings of the ACM on Programming Languages10.1145/37048709:POPL(986-1012)Online publication date: 9-Jan-2025
  • (2024)Finite-valued Streaming String TransducersProceedings of the 39th Annual ACM/IEEE Symposium on Logic in Computer Science10.1145/3661814.3662095(1-14)Online publication date: 8-Jul-2024
  • (2023)Proving and Disproving Equivalence of Functional Programming AssignmentsProceedings of the ACM on Programming Languages10.1145/35912587:PLDI(928-951)Online publication date: 6-Jun-2023
  • (2023)A Robust Theory of Series Parallel GraphsProceedings of the ACM on Programming Languages10.1145/35712307:POPL(1058-1088)Online publication date: 11-Jan-2023
  • (2023)On the Growth Rates of Polyregular Functions2023 38th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1109/LICS56636.2023.10175808(1-13)Online publication date: 26-Jun-2023
  • (2023)Revisiting Membership Problems in Subclasses of Rational Relations2023 38th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1109/LICS56636.2023.10175722(1-14)Online publication date: 26-Jun-2023
  • (2022)Reasoning on Data Words over Numeric DomainsProceedings of the 37th Annual ACM/IEEE Symposium on Logic in Computer Science10.1145/3531130.3533354(1-13)Online publication date: 2-Aug-2022
  • (2021)Efficient Equivalence Checking Technique for Some Classes of Finite-State MachinesAutomatic Control and Computer Sciences10.3103/S014641162107018X55:7(670-701)Online publication date: 1-Dec-2021
  • (2021)On Bidirectional Runtime EnforcementFormal Techniques for Distributed Objects, Components, and Systems10.1007/978-3-030-78089-0_1(3-21)Online publication date: 8-Jun-2021
  • (2021)Pattern Eliminating TransformationsLogic-Based Program Synthesis and Transformation10.1007/978-3-030-68446-4_4(74-92)Online publication date: 13-Feb-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media