Decision procedures for path feasibility of string-manipulating programs with complex operations

The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such applications as symbolic execution of programs with strings and automated detection of cross-site scripting (XSS) vulnerabilities in web applications....

Full description

Saved in:
Bibliographic Details
Published inProceedings of ACM on programming languages Vol. 3; no. POPL; pp. 1 - 30
Main Authors Chen, Taolue, Hague, Matthew, Lin, Anthony W., Rümmer, Philipp, Wu, Zhilin
Format Journal Article
LanguageEnglish
Published New York, NY, USA ACM 01.01.2019
Subjects
Online AccessGet full text
ISSN2475-1421
2475-1421
DOI10.1145/3290362

Cover

Abstract The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such applications as symbolic execution of programs with strings and automated detection of cross-site scripting (XSS) vulnerabilities in web applications. A (symbolic) path is given as a finite sequence of assignments and assertions (i.e. without loops), and checking its feasibility amounts to determining the existence of inputs that yield a successful execution. Modern programming languages (e.g. JavaScript, PHP, and Python) support many complex string operations, and strings are also often implicitly modified during a computation in some intricate fashion (e.g. by some autoescaping mechanisms). In this paper we provide two general semantic conditions which together ensure the decidability of path feasibility: (1) each assertion admits regular monadic decomposition (i.e. is an effectively recognisable relation), and (2) each assignment uses a (possibly nondeterministic) function whose inverse relation preserves regularity. We show that the semantic conditions are expressive since they are satisfied by a multitude of string operations including concatenation, one-way and two-way finite-state transducers, replaceall functions (where the replacement string could contain variables), string-reverse functions, regular-expression matching, and some (restricted) forms of letter-counting/length functions. The semantic conditions also strictly subsume existing decidable string theories (e.g. straight-line fragments, and acyclic logics), and most existing benchmarks (e.g. most of Kaluza’s, and all of SLOG’s, Stranger’s, and SLOTH’s benchmarks). Our semantic conditions also yield a conceptually simple decision procedure, as well as an extensible architecture of a string solver in that a user may easily incorporate his/her own string functions into the solver by simply providing code for the pre-image computation without worrying about other parts of the solver. Despite these, the semantic conditions are unfortunately too general to provide a fast and complete decision procedure. We provide strong theoretical evidence for this in the form of complexity results. To rectify this problem, we propose two solutions. Our main solution is to allow only partial string functions (i.e., prohibit nondeterminism) in condition (2). This restriction is satisfied in many cases in practice, and yields decision procedures that are effective in both theory and practice. Whenever nondeterministic functions are still needed (e.g. the string function split), our second solution is to provide a syntactic fragment that provides a support of nondeterministic functions, and operations like one-way transducers, replaceall (with constant replacement string), the string-reverse function, concatenation, and regular-expression matching. We show that this fragment can be reduced to an existing solver SLOTH that exploits fast model checking algorithms like IC3. We provide an efficient implementation of our decision procedure (assuming our first solution above, i.e., deterministic partial string functions) in a new string solver OSTRICH. Our implementation provides built-in support for concatenation, reverse, functional transducers (FFT), and replaceall and provides a framework for extensibility to support further string functions. We demonstrate the efficacy of our new solver against other competitive solvers.
AbstractList The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such applications as symbolic execution of programs with strings and automated detection of cross-site scripting (XSS) vulnerabilities in web applications. A (symbolic) path is given as a finite sequence of assignments and assertions (i.e. without loops), and checking its feasibility amounts to determining the existence of inputs that yield a successful execution. Modern programming languages (e.g. JavaScript, PHP, and Python) support many complex string operations, and strings are also often implicitly modified during a computation in some intricate fashion (e.g. by some autoescaping mechanisms). In this paper we provide two general semantic conditions which together ensure the decidability of path feasibility: (1) each assertion admits regular monadic decomposition (i.e. is an effectively recognisable relation), and (2) each assignment uses a (possibly nondeterministic) function whose inverse relation preserves regularity. We show that the semantic conditions are expressive since they are satisfied by a multitude of string operations including concatenation, one-way and two-way finite-state transducers, replaceall functions (where the replacement string could contain variables), string-reverse functions, regular-expression matching, and some (restricted) forms of letter-counting/length functions. The semantic conditions also strictly subsume existing decidable string theories (e.g. straight-line fragments, and acyclic logics), and most existing benchmarks (e.g. most of Kaluza’s, and all of SLOG’s, Stranger’s, and SLOTH’s benchmarks). Our semantic conditions also yield a conceptually simple decision procedure, as well as an extensible architecture of a string solver in that a user may easily incorporate his/her own string functions into the solver by simply providing code for the pre-image computation without worrying about other parts of the solver. Despite these, the semantic conditions are unfortunately too general to provide a fast and complete decision procedure. We provide strong theoretical evidence for this in the form of complexity results. To rectify this problem, we propose two solutions. Our main solution is to allow only partial string functions (i.e., prohibit nondeterminism) in condition (2). This restriction is satisfied in many cases in practice, and yields decision procedures that are effective in both theory and practice. Whenever nondeterministic functions are still needed (e.g. the string function split), our second solution is to provide a syntactic fragment that provides a support of nondeterministic functions, and operations like one-way transducers, replaceall (with constant replacement string), the string-reverse function, concatenation, and regular-expression matching. We show that this fragment can be reduced to an existing solver SLOTH that exploits fast model checking algorithms like IC3. We provide an efficient implementation of our decision procedure (assuming our first solution above, i.e., deterministic partial string functions) in a new string solver OSTRICH. Our implementation provides built-in support for concatenation, reverse, functional transducers (FFT), and replaceall and provides a framework for extensibility to support further string functions. We demonstrate the efficacy of our new solver against other competitive solvers.
The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such applications as symbolic execution of programs with strings and automated detection of cross-site scripting (XSS) vulnerabilities in web applications. A (symbolic) path is given as a finite sequence of assignments and assertions (i.e. without loops), and checking its feasibility amounts to determining the existence of inputs that yield a successful execution. Modern programming languages (e.g. JavaScript, PHP, and Python) support many complex string operations, and strings are also often implicitly modified during a computation in some intricate fashion (e.g. by some autoescaping mechanisms). In this paper we provide two general semantic conditions which together ensure the decidability of path feasibility: (1) each assertion admits regular monadic decomposition (i.e. is an effectively recognisable relation), and (2) each assignment uses a (possibly nondeterministic) function whose inverse relation preserves regularity. We show that the semantic conditions are expressive since they are satisfied by a multitude of string operations including concatenation, one-way and two-way finite-state transducers, replaceall functions (where the replacement string could contain variables), string-reverse functions, regular-expression matching, and some (restricted) forms of letter-counting/length functions. The semantic conditions also strictly subsume existing decidable string theories (e.g. straight-line fragments, and acyclic logics), and most existing benchmarks (e.g. most of Kaluza’s, and all of SLOG’s, Stranger’s, and SLOTH’s benchmarks). Our semantic conditions also yield a conceptually simple decision procedure, as well as an extensible architecture of a string solver in that a user may easily incorporate his/her own string functions into the solver by simply providing code for the pre-image computation without worrying about other parts of the solver. Despite these, the semantic conditions are unfortunately too general to provide a fast and complete decision procedure. We provide strong theoretical evidence for this in the form of complexity results. To rectify this problem, we propose two solutions. Our main solution is to allow only partial string functions (i.e., prohibit nondeterminism) in condition (2). This restriction is satisfied in many cases in practice, and yields decision procedures that are effective in both theory and practice. Whenever nondeterministic functions are still needed (e.g. the string function split), our second solution is to provide a syntactic fragment that provides a support of nondeterministic functions, and operations like one-way transducers, replaceall (with constant replacement string), the string-reverse function, concatenation, and regular-expression matching. We show that this fragment can be reduced to an existing solver SLOTH that exploits fast model checking algorithms like IC3. We provide an efficient implementation of our decision procedure (assuming our first solution above, i.e., deterministic partial string functions) in a new string solver OSTRICH. Our implementation provides built-in support for concatenation, reverse, functional transducers (FFT), and replaceall and provides a framework for extensibility to support further string functions. We demonstrate the efficacy of our new solver against other competitive solvers.
ArticleNumber 49
Author Chen, Taolue
Hague, Matthew
Wu, Zhilin
Lin, Anthony W.
Rümmer, Philipp
Author_xml – sequence: 1
  givenname: Taolue
  surname: Chen
  fullname: Chen, Taolue
  email: taolue.chen@gmail.com
  organization: Birkbeck University of London, UK
– sequence: 2
  givenname: Matthew
  surname: Hague
  fullname: Hague, Matthew
  email: matthew.hague@rhul.ac.uk
  organization: Royal Holloway University of London, UK
– sequence: 3
  givenname: Anthony W.
  surname: Lin
  fullname: Lin, Anthony W.
  email: anthony.w.to@gmail.com
  organization: University of Oxford, UK
– sequence: 4
  givenname: Philipp
  surname: Rümmer
  fullname: Rümmer, Philipp
  email: philipp.ruemmer@it.uu.se
  organization: Uppsala University, Sweden
– sequence: 5
  givenname: Zhilin
  surname: Wu
  fullname: Wu, Zhilin
  email: wuzl@ios.ac.cn
  organization: Institute of Software at Chinese Academy of Sciences, China
BackLink https://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-398239$$DView record from Swedish Publication Index
BookMark eNp1kL1PwzAQxS1UJEqp2Jm8wUDAn008Vi1fUiUWYDWOYxejJI7sRKX_PSktFUIw3Z3e753u3jEY1L42AJxidIUx49eUCEQn5AAMCUt5ghnBgx_9ERjH-I4QwoKyjIoheJ0b7aLzNWyC16bogonQ-gAb1b5Ba1R0uStdu4bewtgGVy-TStWu6UrV9sPGtgyqinDleoP2VVOaD-gbE3rd1_EEHFpVRjPe1RF4vr15mt0ni8e7h9l0kSiKWZswMhEmzbnIuNDYFBRxVhCcG86UFZYRa0wqCotUlhZWp7m1OEt5LmgheGopHYGL7d6ubtR6pcpSNsFVKqwlRnITjtyF06OXWzSuTNPle84rJ-fuZSp9WMquk1RkhIoeT7a4Dj7GYKzUrv16rg3KlX-sP__F_3_I2ZZUutpD3-InMmSOEw
CitedBy_id crossref_primary_10_1145_3498707
crossref_primary_10_1002_smr_2647
crossref_primary_10_1145_3484198
crossref_primary_10_1016_j_jss_2023_111673
crossref_primary_10_1145_3428260
crossref_primary_10_1007_s00224_023_10154_8
crossref_primary_10_1007_s10270_020_00849_8
crossref_primary_10_1145_3632907
crossref_primary_10_4204_EPTCS_341_4
crossref_primary_10_1145_3571203
crossref_primary_10_1145_3373394_3373396
crossref_primary_10_1145_3622872
crossref_primary_10_1145_3649855
Cites_doi 10.1145/360248.360252
10.5555/2591370.2591389
10.1145/1064978.1065036
10.1145/3158092
10.1145/2837614.2837641
10.1145/3062341.3062384
10.1109/SP.2010.38
10.1145/2491411.2491447
10.1145/1081706.1081750
10.1145/2660267.2660372
10.1007/978-3-319-08867-9_43
10.1145/1180405.1180445
10.1145/2377656.2377662
10.1007/978-3-642-12002-2_13
10.1145/3158091
10.1145/2408776.2408795
10.1145/937555.937557
10.1007/978-3-319-08867-9_10
10.1145/371316.371512
10.1017/S0956796800003889
10.1145/2491411.2491456
10.1007/978-3-642-35873-9_14
10.1007/978-3-642-39611-3_21
10.1145/3040488
10.1007/978-3-642-00768-2_27
10.1145/1060745.1060809
10.1007/978-3-540-89439-1_20
10.1145/1995376.1995394
10.1145/2743014
10.1007/s10703-013-0189-1
10.1145/990308.990312
10.1145/876638.876642
10.1145/2643134
ContentType Journal Article
Copyright Owner/Author
Copyright_xml – notice: Owner/Author
DBID AAYXX
CITATION
ACNBI
ADTPV
AOWAS
D8T
DF2
ZZAVC
ADTOC
UNPAY
DOI 10.1145/3290362
DatabaseName CrossRef
SWEPUB Uppsala universitet full text
SwePub
SwePub Articles
SWEPUB Freely available online
SWEPUB Uppsala universitet
SwePub Articles full text
Unpaywall for CDI: Periodical Content
Unpaywall
DatabaseTitle CrossRef
DatabaseTitleList

CrossRef
Database_xml – sequence: 1
  dbid: UNPAY
  name: Unpaywall
  url: https://proxy.k.utb.cz/login?url=https://unpaywall.org/
  sourceTypes: Open Access Repository
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 30
ExternalDocumentID 10.1145/3290362
oai_DiVA_org_uu_398239
10_1145_3290362
3290362
GrantInformation_xml – fundername: H2020 European Research Council
  grantid: 759969
  funderid: http://dx.doi.org/10.13039/100010663
– fundername: Stiftelsen för Strategisk Forskning
  grantid: RIT17-0011
– fundername: National Natural Science Foundation of China
  grantid: 61472474,61572478,61872340
– fundername: Engineering and Physical Sciences Research Council
  grantid: EP/K009907/1,EP/P00430X/1
  funderid: http://dx.doi.org/10.13039/501100000266
– fundername: Australian Research Council
  grantid: DP160101652, DP180100691
  funderid: http://dx.doi.org/10.13039/100013102
– fundername: Vetenskapsrådet
  grantid: 2014-5484
  funderid: http://dx.doi.org/10.13039/501100004359
GroupedDBID AAKMM
AAYFX
ACM
ADPZR
AIKLT
ALMA_UNASSIGNED_HOLDINGS
EBS
GUFHI
LHSKQ
M~E
OK1
ROL
AAYXX
AEFXT
AEJOY
AKRVB
CITATION
ACNBI
ADTPV
AOWAS
D8T
DF2
ZZAVC
ADTOC
UNPAY
ID FETCH-LOGICAL-a314t-4269e7b59859c1ed3054d21be54af9f42fee79df0a87dfc7bff1875b93d957f33
IEDL.DBID UNPAY
ISSN 2475-1421
IngestDate Sun Oct 26 04:15:29 EDT 2025
Thu Aug 21 06:25:49 EDT 2025
Wed Oct 01 05:55:25 EDT 2025
Thu Apr 24 23:13:02 EDT 2025
Mon Feb 24 21:14:27 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue POPL
Keywords String Constraints
Transducers
Straight-Line Programs
Reverse
Decision Procedures
ReplaceAll
Language English
License This work is licensed under a Creative Commons Attribution International 4.0 License.
cc-by
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-a314t-4269e7b59859c1ed3054d21be54af9f42fee79df0a87dfc7bff1875b93d957f33
OpenAccessLink https://proxy.k.utb.cz/login?url=https://dl.acm.org/doi/pdf/10.1145/3290362
PageCount 30
ParticipantIDs unpaywall_primary_10_1145_3290362
swepub_primary_oai_DiVA_org_uu_398239
crossref_citationtrail_10_1145_3290362
crossref_primary_10_1145_3290362
acm_primary_3290362
ProviderPackageCode CITATION
AAYXX
PublicationCentury 2000
PublicationDate 2019-01-01
PublicationDateYYYYMMDD 2019-01-01
PublicationDate_xml – month: 01
  year: 2019
  text: 2019-01-01
  day: 01
PublicationDecade 2010
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationTitle Proceedings of ACM on programming languages
PublicationTitleAbbrev ACM PACMPL
PublicationYear 2019
Publisher ACM
Publisher_xml – name: ACM
References Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli. 2004. Abstract DPLL and Abstract DPLL Modulo Theories. In Logic for Programming, Artificial Intelligence, and Reasoning, 11th International Conference, LPAR 2004 (LNCS), Vol. 3452. Springer, 36–50.
Yan Chen. 2018a. Solving String Constraints with ReplaceAll Function. Master’s thesis. State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences, China.
Vijay Ganesh, Mia Minnes, Armando Solar-Lezama, and Martin C. Rinard. 2012. Word Equations with Length Constraints: What’s Decidable?. In Hardware and Software: Verification and Testing - 8th International Haifa Verification Conference, HVC 2012, Haifa, Israel, November 6-8, 2012. Revised Selected Papers. Springer, 209–226. 10.1007/978-3-642-39611-3_21
Clark W. Barrett, Roberto Sebastiani, Sanjit A. Seshia, and Cesare Tinelli. 2009. Satisfiability Modulo Theories. In Handbook of Satisfiability. IOS Press, 825–885.
Andrew van der Stock, Brian Glas, Neil Smithline, and Torsten Gigler. 2017. OWASP Top 10 – 2017. https://www.owasp. org/index.php/Top_10- 2017_Top_10 . Referred January 2018.
Minh-Thai Trinh, Duc-Hiep Chu, and Joxan Jaffar. 2014. S3: A Symbolic String Solver for Vulnerability Detection in Web Applications. In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, CCS 2014. ACM, 1232–1243. 10.1145/2660267.2660372
Taolue Chen, Matthew Hague, Anthony W. Lin, Philipp Rümmer, and Zhilin Wu. 2018b. Decision Procedures for Path Feasibility of String-Manipulating Programs with Complex Operations. CoRR abs/1811.03167 (2018). arXiv: 1811.03167 https://arxiv.org/abs/1811.03167
Nikolaj Bjørner, Nikolai Tillmann, and Andrei Voronkov. 2009. Path feasibility analysis for string-manipulating programs. In Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2009. Springer, 307–321. 10.1007/978-3-642-00768-2_27
Nicholas Pippenger. 2010. Theories of Computability. Cambridge University Press.
Koushik Sen, Swaroop Kalasapur, Tasneem G. Brutch, and Simon Gibbs. 2013. Jalangi: a selective record-replay and dynamic analysis framework for JavaScript. In Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE’13, Saint Petersburg, Russian Federation, August 18-26, 2013. ACM, 488–498. 10.1145/2491411.2491447
Fang Yu, Muath Alkhalaf, Tevfik Bultan, and Oscar H. Ibarra. 2014. Automata-based Symbolic String Analysis for Vulnerability Detection. Form. Methods Syst. Des. 44, 1 (2014), 44–70. 10.1007/s10703-013-0189-1
Taolue Chen, Yan Chen, Matthew Hague, Anthony W. Lin, and Zhilin Wu. 2018a. What is decidable about string constraints with the ReplaceAll function. PACMPL 2, POPL (2018), 3:1–3:29. 10.1145/3158091
Christophe Morvan. 2000. On Rational Graphs. In Foundations of Software Science and Computation Structures, Third International Conference, FOSSACS 2000. Springer, 252–266.
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Bui Phi Diep, Lukás Holík, Ahmed Rezine, and Philipp Rümmer. 2017. Flatten and conquer: a framework for efficient analysis of string constraints. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017, Barcelona, Spain, June 18-23, 2017. ACM, New York, NY, USA, 602–617. 10.1145/3062341.3062384
Christel Baier and Joost-Pieter Katoen. 2008. Principles of Model Checking (Representation and Mind Series). The MIT Press.
Hung-En Wang, Tzung-Lin Tsai, Chun-Han Lin, Fang Yu, and Jie-Hong R. Jiang. 2016. String Analysis via Automata Manipulation with Logic Circuit Representation. In Computer Aided Verification - 28th International Conference, CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I (Lecture Notes in Computer Science), Vol. 9779. Springer, 241–260.
Leonid Libkin. 2003. Variable independence for first-order definable constraints. ACM Trans. Comput. Log. 4, 4 (2003), 431–451. 10.1145/937555.937557
Olivier Carton, Christian Choffrut, and Serge Grigorieff. 2006. Decision problems among the main subfamilies of rational relations. ITA 40, 2 (2006), 255–275.
Joost Engelfriet and Hendrik Jan Hoogeboom. 2001. MSO definable string transductions and two-way finite-state transducers. ACM Trans. Comput. Log. 2, 2 (2001), 216–254. 10.1145/371316.371512
Artur Jez. 2016. Recompression: A Simple and Powerful Technique for Word Equations. J. ACM 63, 1 (2016), 4:1–4:51. 10.1145/2743014
Tianyi Liang, Andrew Reynolds, Cesare Tinelli, Clark Barrett, and Morgan Deters. 2014. A DPLL(T) Theory Solver for a Theory of Strings and Regular Expressions. In Computer Aided Verification - 26th International Conference, CAV 2014. Springer, 646–662. 10.1007/978-3-319-08867-9_43
Prateek Saxena, Devdatta Akhawe, Steve Hanna, Feng Mao, Stephen McCamant, and Dawn Song. 2010. A Symbolic Execution Framework for JavaScript. In 31st IEEE Symposium on Security and Privacy, S&P 2010, 16-19 May 2010, Berleley/Oakland, California, USA. IEEE, 513–528. 10.1109/SP.2010.38
Emmanuel Filiot, Olivier Gauwin, Pierre-Alain Reynier, and Frédéric Servais. 2013. From Two-Way to One-Way Finite State Transducers. In 28th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2013, New Orleans, LA, USA, June 25-28, 2013. IEEE Computer Society, 468–477.
Volker Diekert. 2002. Makanin’s Algorithm. In Algebraic Combinatorics on Words, M. Lothaire (Ed.). Encyclopedia of Mathematics and its Applications, Vol. 90. Cambridge University Press, Chapter 12, 387–442.
John E. Hopcroft and Jeffrey D. Ullman. 1979. Introduction to Automata Theory, Languages and Computation. Addison-Wesley.
Rajeev Alur and Jyotirmoy V. Deshmukh. 2011. Nondeterministic Streaming String Transducers. In Automata, Languages and Programming - 38th International Colloquium, ICALP 2011, Zurich, Switzerland, July 4-8, 2011, Proceedings, Part II. Springer, 1–20.
Michael Benedikt, Leonid Libkin, Thomas Schwentick, and Luc Segoufin. 2003. Definable relations and first-order query languages over strings. J. ACM 50, 5 (2003), 694–751. 10.1145/876638.876642
Yan Chen. 2018b. Z3-replaceall. https://github.com/TinyYan/z3- replaceAll . Referred in Jan 2018.
Margus Veanes, Nikolaj Bjørner, Lev Nachmanson, and Sergey Bereg. 2017. Monadic Decomposition. J. ACM 64, 2 (2017), 14:1–14:28. 10.1145/3040488
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Bui Phi Diep, Lukás Holík, Ahmed Rezine, and Philipp Rümmer. 2018. TRAU: SMT Solver for String Constraints. In Formal Methods in Computer Aided Design, FMCAD 2018. To appear.
Loris D’Antoni and Margus Veanes. 2013. Static Analysis of String Encoders and Decoders. In Verification, Model Checking, and Abstract Interpretation, VMCAI. Springer, 209–228. 10.1007/978-3-642-35873-9_14
Wojciech Plandowski. 2004. Satisfiability of word equations with constants is in PSPACE. J. ACM 51, 3 (2004), 483–496. 10.1145/990308.990312
Pablo Barceló, Diego Figueira, and Leonid Libkin. 2013. Graph Logics with Rational Relations. Logical Methods in Computer Science 9, 3 (2013).
J. Dénes. 1967. Connections between transformation semigroups and graphs. In Theory of Graphs. Gordon & Breach.
Yunhui Zheng, Xiangyu Zhang, and Vijay Ganesh. 2013. Z3-str: a Z3-based string solver for web application analysis. In Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2013, Saint Petersburg, Russian Federation, August 18-26, 2013. ACM, 114–124. 10.1145/2491411.2491456
Christian Choffrut. 2006. Relations over Words and Logic: A Chronology. Bulletin of the EATCS 89 (2006), 159–163.
Leonardo De Moura and Nikolaj Bjørner. 2011. Satisfiability modulo theories: introduction and applications. Commun. ACM 54, 9 (2011), 69–77. 10.1145/1995376.1995394
Thierry Cachat and Igor Walukiewicz. 2007. The Complexity of Games on Higher Order Pushdown Automata. CoRR abs/0705.0262 (2007). arXiv: 0705.0262 http://arxiv.org/abs/0705.0262
Dexter Kozen. 1997. Automata and Computability. Springer.
Christoph Kern. 2014. Securing the tangled web. Commun. ACM 57, 9 (2014), 38–47. 10.1145/2643134
Pieter Hooimeijer, Benjamin Livshits, David Molnar, Prateek Saxena, and Margus Veanes. 2011. Fast and Precise Sanitizer Analysis with BEK. In 20th USENIX Security Symposium, San Francisco, CA, USA, August 8-12, 2011, Proceedings. USENIX Association. http://static.usenix.org/events/sec11/tech/full_papers/Hooimeijer.pdf
J Richard Büchi and Steven Senger. 1990. Definability in the existential theory of concatenation and undecidable extensions of this theory. In The Collected Works of J. Richard Büchi. Springer, 671–683.
Yasuhiko Minamide. 2005. Static approximation of dynamically generated Web pages. In Proceedings of the 14th international conference on World Wide Web, WWW 2005. ACM, 432–441. 10.1145/1060745.1060809
K. L. McMillan. 1993. Symbolic model checking. Kluwer.
Lukás Holík, Petr Janku, Anthony W. Lin, Philipp Rümmer, and Tomás Vojnar. 2018. String constraints with concatenation and transducers solved efficiently. PACMPL 2, POPL (2018), 4:1–4:32. 10.1145/3158092
Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, and Dawson R. Engler. 2006. EXE: Automatically Generating Inputs of Death. In Proceedings of the 13th ACM Conference on Computer and Communications Security (CCS ’06). ACM, New York, NY, USA, 322–335. 10.1145/1180405.1180445
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Lukás Holík, Ahmed Rezine, Philipp Rümmer, and Jari Stenman. 2014. String Constraints for Verification. In Computer Aided Verification - 26th International Conference, CAV 2014. Springer, 150–166. 10.1007/978-3-319-08867-9_10
Minh-Thai Trinh, Duc-Hiep Chu, and Joxan Jaffar. 2016. Progressive Reasoning over Recursively-Defined Strings. In Computer Aided Verification - 28th International Conference, CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I. Springer, 218–240.
Anthony W. Lin and Pablo Barceló. 2016. String So
e_1_2_2_49_1
e_1_2_2_22_1
Berzish Murphy (e_1_2_2_9_1) 2017
e_1_2_2_41_1
Cachat Thierry (e_1_2_2_12_1) 2007
Choffrut Christian (e_1_2_2_21_1) 2006; 89
e_1_2_2_8_1
e_1_2_2_28_1
e_1_2_2_26_1
Zelinka Bohdan (e_1_2_2_61_1) 1981
e_1_2_2_60_1
Kroening Daniel (e_1_2_2_39_1)
Dénes J. (e_1_2_2_24_1)
Nieuwenhuis Robert (e_1_2_2_46_1) 2004; 3452
e_1_2_2_59_1
Abdulla Parosh Aziz (e_1_2_2_2_1) 2018
Kozen Dexter (e_1_2_2_38_1)
e_1_2_2_30_1
e_1_2_2_51_1
e_1_2_2_53_1
e_1_2_2_17_1
e_1_2_2_34_1
Alur Rajeev (e_1_2_2_4_1)
e_1_2_2_15_1
e_1_2_2_36_1
van der Stock Andrew (e_1_2_2_55_1) 2018
Barrett Clark W. (e_1_2_2_7_1)
Hooimeijer Pieter (e_1_2_2_31_1) 2011
Richard Büchi J (e_1_2_2_11_1)
Cadar Cristian (e_1_2_2_13_1) 2008
e_1_2_2_48_1
Weinberger Joel (e_1_2_2_58_1) 2011
Trinh Minh-Thai (e_1_2_2_54_1) 2016
e_1_2_2_23_1
e_1_2_2_1_1
e_1_2_2_3_1
e_1_2_2_40_1
e_1_2_2_63_1
Baier Christel (e_1_2_2_5_1)
e_1_2_2_42_1
e_1_2_2_29_1
e_1_2_2_44_1
e_1_2_2_27_1
Barceló Pablo (e_1_2_2_6_1) 2013
Hopcroft John E. (e_1_2_2_32_1) 1979
Carton Olivier (e_1_2_2_16_1) 2006; 40
McMillan K. L. (e_1_2_2_43_1)
Zheng Yunhui (e_1_2_2_62_1) 2015
Pippenger Nicholas (e_1_2_2_47_1)
e_1_2_2_14_1
e_1_2_2_37_1
e_1_2_2_10_1
Morvan Christophe (e_1_2_2_45_1) 2000
e_1_2_2_52_1
Wang Hung-En (e_1_2_2_57_1); 9779
Chen Yan (e_1_2_2_20_1) 2018
e_1_2_2_33_1
e_1_2_2_56_1
e_1_2_2_35_1
Diekert Volker (e_1_2_2_25_1)
Chen Taolue (e_1_2_2_18_1) 2018
e_1_2_2_50_1
Chen Yan (e_1_2_2_19_1)
References_xml – reference: Leonardo De Moura and Nikolaj Bjørner. 2011. Satisfiability modulo theories: introduction and applications. Commun. ACM 54, 9 (2011), 69–77. 10.1145/1995376.1995394
– reference: Taolue Chen, Matthew Hague, Anthony W. Lin, Philipp Rümmer, and Zhilin Wu. 2018b. Decision Procedures for Path Feasibility of String-Manipulating Programs with Complex Operations. CoRR abs/1811.03167 (2018). arXiv: 1811.03167 https://arxiv.org/abs/1811.03167
– reference: Vijay Ganesh, Mia Minnes, Armando Solar-Lezama, and Martin C. Rinard. 2012. Word Equations with Length Constraints: What’s Decidable?. In Hardware and Software: Verification and Testing - 8th International Haifa Verification Conference, HVC 2012, Haifa, Israel, November 6-8, 2012. Revised Selected Papers. Springer, 209–226. 10.1007/978-3-642-39611-3_21
– reference: Wojciech Plandowski. 2004. Satisfiability of word equations with constants is in PSPACE. J. ACM 51, 3 (2004), 483–496. 10.1145/990308.990312
– reference: Nikolaj Bjørner, Nikolai Tillmann, and Andrei Voronkov. 2009. Path feasibility analysis for string-manipulating programs. In Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2009. Springer, 307–321. 10.1007/978-3-642-00768-2_27
– reference: K. L. McMillan. 1993. Symbolic model checking. Kluwer.
– reference: Loris D’Antoni and Margus Veanes. 2013. Static Analysis of String Encoders and Decoders. In Verification, Model Checking, and Abstract Interpretation, VMCAI. Springer, 209–228. 10.1007/978-3-642-35873-9_14
– reference: Christoph Kern. 2014. Securing the tangled web. Commun. ACM 57, 9 (2014), 38–47. 10.1145/2643134
– reference: Dexter Kozen. 1997. Automata and Computability. Springer.
– reference: Murphy Berzish, Vijay Ganesh, and Yunhui Zheng. 2017. Z3str3: A string solver with theory-aware heuristics. In 2017 Formal Methods in Computer Aided Design, FMCAD 2017, Vienna, Austria, October 2-6, 2017. IEEE, 55–59.
– reference: John E. Hopcroft and Jeffrey D. Ullman. 1979. Introduction to Automata Theory, Languages and Computation. Addison-Wesley.
– reference: Neil D. Jones. 2001. The expressive power of higher-order types or, life without CONS. Journal of Functional Programming 11, 1 (2001), 55–94. http://journals.cambridge.org/action/displayAbstract?aid=68581 10.1017/S0956796800003889
– reference: J. Dénes. 1967. Connections between transformation semigroups and graphs. In Theory of Graphs. Gordon & Breach.
– reference: Anthony W. Lin and Pablo Barceló. 2016. String Solving with Word Equations and Transducers: Towards a Logic for Analysing Mutation XSS. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’16). Springer, 123–136. 10.1145/2837614.2837641
– reference: Fang Yu, Muath Alkhalaf, and Tevfik Bultan. 2010. Stranger: An Automata-Based String Analysis Tool for PHP. In Tools and Algorithms for the Construction and Analysis of Systems, 16th International Conference, TACAS 2010. Springer, 154–157. 10.1007/978-3-642-12002-2_13
– reference: Joost Engelfriet and Hendrik Jan Hoogeboom. 2001. MSO definable string transductions and two-way finite-state transducers. ACM Trans. Comput. Log. 2, 2 (2001), 216–254. 10.1145/371316.371512
– reference: Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli. 2004. Abstract DPLL and Abstract DPLL Modulo Theories. In Logic for Programming, Artificial Intelligence, and Reasoning, 11th International Conference, LPAR 2004 (LNCS), Vol. 3452. Springer, 36–50.
– reference: Christel Baier and Joost-Pieter Katoen. 2008. Principles of Model Checking (Representation and Mind Series). The MIT Press.
– reference: Adam Kiezun, Vijay Ganesh, Shay Artzi, Philip J. Guo, Pieter Hooimeijer, and Michael D. Ernst. 2012. HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars. ACM Trans. Softw. Eng. Methodol. 21, 4 (2012), 25. 10.1145/2377656.2377662
– reference: Nicholas Pippenger. 2010. Theories of Computability. Cambridge University Press.
– reference: Rajeev Alur and Jyotirmoy V. Deshmukh. 2011. Nondeterministic Streaming String Transducers. In Automata, Languages and Programming - 38th International Colloquium, ICALP 2011, Zurich, Switzerland, July 4-8, 2011, Proceedings, Part II. Springer, 1–20.
– reference: Olivier Carton, Christian Choffrut, and Serge Grigorieff. 2006. Decision problems among the main subfamilies of rational relations. ITA 40, 2 (2006), 255–275.
– reference: Yunhui Zheng, Xiangyu Zhang, and Vijay Ganesh. 2013. Z3-str: a Z3-based string solver for web application analysis. In Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2013, Saint Petersburg, Russian Federation, August 18-26, 2013. ACM, 114–124. 10.1145/2491411.2491456
– reference: Yasuhiko Minamide. 2005. Static approximation of dynamically generated Web pages. In Proceedings of the 14th international conference on World Wide Web, WWW 2005. ACM, 432–441. 10.1145/1060745.1060809
– reference: Koushik Sen, Darko Marinov, and Gul Agha. 2005. CUTE: a concolic unit testing engine for C. In Proceedings of the 10th European Software Engineering Conference held jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2005, Lisbon, Portugal, September 5-9, 2005, ESEC/SIGSOFT FSE 2005. ACM, 263–272. 10.1145/1081706.1081750
– reference: Pablo Barceló, Diego Figueira, and Leonid Libkin. 2013. Graph Logics with Rational Relations. Logical Methods in Computer Science 9, 3 (2013).
– reference: Yan Chen. 2018b. Z3-replaceall. https://github.com/TinyYan/z3- replaceAll . Referred in Jan 2018.
– reference: Philipp Rümmer. 2008. A Constraint Sequent Calculus for First-Order Logic with Linear Integer Arithmetic. In Logic for Programming, Artificial Intelligence, and Reasoning, 15th International Conference, LPAR 2008, LNCS 5330. Springer, 274–289. 10.1007/978-3-540-89439-1_20
– reference: Yan Chen. 2018a. Solving String Constraints with ReplaceAll Function. Master’s thesis. State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences, China.
– reference: Leonid Libkin. 2003. Variable independence for first-order definable constraints. ACM Trans. Comput. Log. 4, 4 (2003), 431–451. 10.1145/937555.937557
– reference: Clark W. Barrett, Roberto Sebastiani, Sanjit A. Seshia, and Cesare Tinelli. 2009. Satisfiability Modulo Theories. In Handbook of Satisfiability. IOS Press, 825–885.
– reference: Hung-En Wang, Tzung-Lin Tsai, Chun-Han Lin, Fang Yu, and Jie-Hong R. Jiang. 2016. String Analysis via Automata Manipulation with Logic Circuit Representation. In Computer Aided Verification - 28th International Conference, CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I (Lecture Notes in Computer Science), Vol. 9779. Springer, 241–260.
– reference: Emmanuel Filiot, Olivier Gauwin, Pierre-Alain Reynier, and Frédéric Servais. 2013. From Two-Way to One-Way Finite State Transducers. In 28th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2013, New Orleans, LA, USA, June 25-28, 2013. IEEE Computer Society, 468–477.
– reference: Andrew van der Stock, Brian Glas, Neil Smithline, and Torsten Gigler. 2017. OWASP Top 10 – 2017. https://www.owasp. org/index.php/Top_10- 2017_Top_10 . Referred January 2018.
– reference: Lukás Holík, Petr Janku, Anthony W. Lin, Philipp Rümmer, and Tomás Vojnar. 2018. String constraints with concatenation and transducers solved efficiently. PACMPL 2, POPL (2018), 4:1–4:32. 10.1145/3158092
– reference: Christian Choffrut. 2006. Relations over Words and Logic: A Chronology. Bulletin of the EATCS 89 (2006), 159–163.
– reference: Fang Yu, Muath Alkhalaf, Tevfik Bultan, and Oscar H. Ibarra. 2014. Automata-based Symbolic String Analysis for Vulnerability Detection. Form. Methods Syst. Des. 44, 1 (2014), 44–70. 10.1007/s10703-013-0189-1
– reference: Daniel Kroening and Ofer Strichman. 2008. Decision Procedures. Springer.
– reference: Minh-Thai Trinh, Duc-Hiep Chu, and Joxan Jaffar. 2016. Progressive Reasoning over Recursively-Defined Strings. In Computer Aided Verification - 28th International Conference, CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I. Springer, 218–240.
– reference: Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, and Dawson R. Engler. 2006. EXE: Automatically Generating Inputs of Death. In Proceedings of the 13th ACM Conference on Computer and Communications Security (CCS ’06). ACM, New York, NY, USA, 322–335. 10.1145/1180405.1180445
– reference: Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Bui Phi Diep, Lukás Holík, Ahmed Rezine, and Philipp Rümmer. 2017. Flatten and conquer: a framework for efficient analysis of string constraints. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017, Barcelona, Spain, June 18-23, 2017. ACM, New York, NY, USA, 602–617. 10.1145/3062341.3062384
– reference: Thierry Cachat and Igor Walukiewicz. 2007. The Complexity of Games on Higher Order Pushdown Automata. CoRR abs/0705.0262 (2007). arXiv: 0705.0262 http://arxiv.org/abs/0705.0262
– reference: Volker Diekert. 2002. Makanin’s Algorithm. In Algebraic Combinatorics on Words, M. Lothaire (Ed.). Encyclopedia of Mathematics and its Applications, Vol. 90. Cambridge University Press, Chapter 12, 387–442.
– reference: J Richard Büchi and Steven Senger. 1990. Definability in the existential theory of concatenation and undecidable extensions of this theory. In The Collected Works of J. Richard Büchi. Springer, 671–683.
– reference: Koushik Sen, Swaroop Kalasapur, Tasneem G. Brutch, and Simon Gibbs. 2013. Jalangi: a selective record-replay and dynamic analysis framework for JavaScript. In Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE’13, Saint Petersburg, Russian Federation, August 18-26, 2013. ACM, 488–498. 10.1145/2491411.2491447
– reference: Prateek Saxena, Devdatta Akhawe, Steve Hanna, Feng Mao, Stephen McCamant, and Dawn Song. 2010. A Symbolic Execution Framework for JavaScript. In 31st IEEE Symposium on Security and Privacy, S&P 2010, 16-19 May 2010, Berleley/Oakland, California, USA. IEEE, 513–528. 10.1109/SP.2010.38
– reference: Joel Weinberger, Prateek Saxena, Devdatta Akhawe, Matthew Finifter, Eui Chul Richard Shin, and Dawn Song. 2011. A Systematic Analysis of XSS Sanitization in Web Application Frameworks. In Computer Security - ESORICS 2011 - 16th European Symposium on Research in Computer Security, Leuven, Belgium, September 12-14, 2011. Proceedings. Springer, 150–171.
– reference: Bohdan Zelinka. 1981. Graphs of semigroups. Časopis pro pěstování matematiky 106, 4 (1981), 407–408. http://eudml.org/ doc/19323
– reference: Michael Benedikt, Leonid Libkin, Thomas Schwentick, and Luc Segoufin. 2003. Definable relations and first-order query languages over strings. J. ACM 50, 5 (2003), 694–751. 10.1145/876638.876642
– reference: Minh-Thai Trinh, Duc-Hiep Chu, and Joxan Jaffar. 2014. S3: A Symbolic String Solver for Vulnerability Detection in Web Applications. In Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, CCS 2014. ACM, 1232–1243. 10.1145/2660267.2660372
– reference: Margus Veanes, Nikolaj Bjørner, Lev Nachmanson, and Sergey Bereg. 2017. Monadic Decomposition. J. ACM 64, 2 (2017), 14:1–14:28. 10.1145/3040488
– reference: Patrice Godefroid, Nils Klarlund, and Koushik Sen. 2005. DART: Directed Automated Random Testing. SIGPLAN Not. 40, 6 (June 2005), 213–223. 10.1145/1064978.1065036
– reference: Taolue Chen, Yan Chen, Matthew Hague, Anthony W. Lin, and Zhilin Wu. 2018a. What is decidable about string constraints with the ReplaceAll function. PACMPL 2, POPL (2018), 3:1–3:29. 10.1145/3158091
– reference: Tianyi Liang, Andrew Reynolds, Cesare Tinelli, Clark Barrett, and Morgan Deters. 2014. A DPLL(T) Theory Solver for a Theory of Strings and Regular Expressions. In Computer Aided Verification - 26th International Conference, CAV 2014. Springer, 646–662. 10.1007/978-3-319-08867-9_43
– reference: Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Bui Phi Diep, Lukás Holík, Ahmed Rezine, and Philipp Rümmer. 2018. TRAU: SMT Solver for String Constraints. In Formal Methods in Computer Aided Design, FMCAD 2018. To appear.
– reference: Yunhui Zheng, Vijay Ganesh, Sanu Subramanian, Omer Tripp, Julian Dolby, and Xiangyu Zhang. 2015. Effective Search-Space Pruning for Solvers of String Equations, Regular Expressions and Length Constraints. In Computer Aided Verification -27th International Conference, CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part I. Springer, 235–254.
– reference: Christophe Morvan. 2000. On Rational Graphs. In Foundations of Software Science and Computation Structures, Third International Conference, FOSSACS 2000. Springer, 252–266.
– reference: Parosh Aziz Abdulla, Mohamed Faouzi Atig, Yu-Fang Chen, Lukás Holík, Ahmed Rezine, Philipp Rümmer, and Jari Stenman. 2014. String Constraints for Verification. In Computer Aided Verification - 26th International Conference, CAV 2014. Springer, 150–166. 10.1007/978-3-319-08867-9_10
– reference: James C. King. 1976. Symbolic Execution and Program Testing. Commun. ACM 19, 7 (1976), 385–394. 10.1145/360248.360252
– reference: Pieter Hooimeijer, Benjamin Livshits, David Molnar, Prateek Saxena, and Margus Veanes. 2011. Fast and Precise Sanitizer Analysis with BEK. In 20th USENIX Security Symposium, San Francisco, CA, USA, August 8-12, 2011, Proceedings. USENIX Association. http://static.usenix.org/events/sec11/tech/full_papers/Hooimeijer.pdf
– reference: Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and Automatic Generation of High-coverage Tests for Complex Systems Programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI’08). USENIX Association, Berkeley, CA, USA, 209–224. http://dl.acm.org/citation.cfm?id=1855741. 1855756
– reference: Cristian Cadar and Koushik Sen. 2013. Symbolic Execution for Software Testing: Three Decades Later. Commun. ACM 56, 2 (Feb. 2013), 82–90. 10.1145/2408776.2408795
– reference: Artur Jez. 2016. Recompression: A Simple and Powerful Technique for Word Equations. J. ACM 63, 1 (2016), 4:1–4:51. 10.1145/2743014
– ident: e_1_2_2_37_1
  doi: 10.1145/360248.360252
– volume-title: Eui Chul Richard Shin, and Dawn Song
  year: 2011
  ident: e_1_2_2_58_1
– volume-title: The Collected Works of J. Richard Büchi
  ident: e_1_2_2_11_1
– ident: e_1_2_2_27_1
  doi: 10.5555/2591370.2591389
– volume-title: Third International Conference, FOSSACS
  year: 2000
  ident: e_1_2_2_45_1
– ident: e_1_2_2_29_1
  doi: 10.1145/1064978.1065036
– ident: e_1_2_2_30_1
  doi: 10.1145/3158092
– ident: e_1_2_2_42_1
  doi: 10.1145/2837614.2837641
– ident: e_1_2_2_1_1
  doi: 10.1145/3062341.3062384
– ident: e_1_2_2_50_1
  doi: 10.1109/SP.2010.38
– volume-title: Fast and Precise Sanitizer Analysis with BEK. In 20th USENIX Security Symposium
  year: 2011
  ident: e_1_2_2_31_1
– ident: e_1_2_2_51_1
  doi: 10.1145/2491411.2491447
– ident: e_1_2_2_52_1
  doi: 10.1145/1081706.1081750
– ident: e_1_2_2_53_1
  doi: 10.1145/2660267.2660372
– volume-title: Solving String Constraints with ReplaceAll Function. Master’s thesis. State Key Laboratory of Computer Science
  ident: e_1_2_2_19_1
– volume-title: 38th International Colloquium, ICALP 2011, Zurich, Switzerland, July 4-8, 2011, Proceedings, Part II. Springer, 1–20
  ident: e_1_2_2_4_1
– ident: e_1_2_2_40_1
  doi: 10.1007/978-3-319-08867-9_43
– ident: e_1_2_2_14_1
  doi: 10.1145/1180405.1180445
– volume: 40
  start-page: 255
  year: 2006
  ident: e_1_2_2_16_1
  article-title: Decision problems among the main subfamilies of rational relations
  publication-title: ITA
– volume-title: Principles of Model Checking (Representation and Mind Series)
  ident: e_1_2_2_5_1
– ident: e_1_2_2_36_1
  doi: 10.1145/2377656.2377662
– volume-title: FMCAD
  year: 2018
  ident: e_1_2_2_2_1
– volume-title: FMCAD 2017
  year: 2017
  ident: e_1_2_2_9_1
– ident: e_1_2_2_59_1
  doi: 10.1007/978-3-642-12002-2_13
– ident: e_1_2_2_17_1
  doi: 10.1145/3158091
– volume-title: Decision Procedures for Path Feasibility of String-Manipulating Programs with Complex Operations. CoRR abs/1811.03167
  year: 2018
  ident: e_1_2_2_18_1
– volume-title: Graph Logics with Rational Relations. Logical Methods in Computer Science 9, 3
  year: 2013
  ident: e_1_2_2_6_1
– ident: e_1_2_2_15_1
  doi: 10.1145/2408776.2408795
– volume-title: Symbolic model checking
  ident: e_1_2_2_43_1
– ident: e_1_2_2_41_1
  doi: 10.1145/937555.937557
– ident: e_1_2_2_3_1
  doi: 10.1007/978-3-319-08867-9_10
– volume-title: Theories of Computability
  ident: e_1_2_2_47_1
– volume-title: Theory of Graphs. Gordon &amp
  ident: e_1_2_2_24_1
– volume-title: CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I. Springer, 218–240
  year: 2016
  ident: e_1_2_2_54_1
– volume-title: Graphs of semigroups. Časopis pro pěstování matematiky 106, 4
  year: 1981
  ident: e_1_2_2_61_1
– volume-title: The Complexity of Games on Higher Order Pushdown Automata. CoRR abs/0705.0262
  year: 2007
  ident: e_1_2_2_12_1
– ident: e_1_2_2_26_1
  doi: 10.1145/371316.371512
– ident: e_1_2_2_34_1
  doi: 10.1017/S0956796800003889
– volume-title: CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part I. Springer, 235–254
  year: 2015
  ident: e_1_2_2_62_1
– ident: e_1_2_2_63_1
  doi: 10.1145/2491411.2491456
– ident: e_1_2_2_22_1
  doi: 10.1007/978-3-642-35873-9_14
– ident: e_1_2_2_28_1
  doi: 10.1007/978-3-642-39611-3_21
– volume: 89
  start-page: 159
  year: 2006
  ident: e_1_2_2_21_1
  article-title: Relations over Words and Logic: A Chronology
  publication-title: Bulletin of the EATCS
– volume-title: Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI’08)
  year: 2008
  ident: e_1_2_2_13_1
– volume-title: https://github.com/TinyYan/z3- replaceAll . Referred
  year: 2018
  ident: e_1_2_2_20_1
– volume-title: https://www.owasp. org/index.php/Top_10- 2017_Top_10 . Referred
  year: 2018
  ident: e_1_2_2_55_1
– volume-title: Handbook of Satisfiability
  ident: e_1_2_2_7_1
– volume: 3452
  volume-title: 11th International Conference, LPAR 2004 (LNCS)
  year: 2004
  ident: e_1_2_2_46_1
– ident: e_1_2_2_56_1
  doi: 10.1145/3040488
– ident: e_1_2_2_10_1
  doi: 10.1007/978-3-642-00768-2_27
– ident: e_1_2_2_44_1
  doi: 10.1145/1060745.1060809
– ident: e_1_2_2_49_1
  doi: 10.1007/978-3-540-89439-1_20
– ident: e_1_2_2_23_1
  doi: 10.1145/1995376.1995394
– ident: e_1_2_2_33_1
  doi: 10.1145/2743014
– ident: e_1_2_2_60_1
  doi: 10.1007/s10703-013-0189-1
– volume-title: Ullman
  year: 1979
  ident: e_1_2_2_32_1
– volume-title: Decision Procedures
  ident: e_1_2_2_39_1
– ident: e_1_2_2_48_1
  doi: 10.1145/990308.990312
– volume-title: Algebraic Combinatorics on Words
  ident: e_1_2_2_25_1
– volume-title: Automata and Computability
  ident: e_1_2_2_38_1
– volume: 9779
  volume-title: CAV 2016, Toronto, ON, Canada, July 17-23, 2016, Proceedings, Part I (Lecture Notes in Computer Science)
  ident: e_1_2_2_57_1
– ident: e_1_2_2_8_1
  doi: 10.1145/876638.876642
– ident: e_1_2_2_35_1
  doi: 10.1145/2643134
SSID ssj0001934839
Score 2.3940833
Snippet The design and implementation of decision procedures for checking path feasibility in string-manipulating programs is an important problem, with such...
SourceID unpaywall
swepub
crossref
acm
SourceType Open Access Repository
Enrichment Source
Index Database
Publisher
StartPage 1
SubjectTerms Automated reasoning
Complexity classes
Computational complexity and cryptography
Computer Science
Datavetenskap
Decision Procedures
Formal languages and automata theory
Logic
Logic and verification
Program reasoning
Program verification
Regular languages
ReplaceAll
Reverse
Semantics and reasoning
Straight-Line Programs
String Constraints
Theory of computation
Transducers
SubjectTermsDisplay Theory of computation -- Computational complexity and cryptography -- Complexity classes
Theory of computation -- Formal languages and automata theory -- Regular languages
Theory of computation -- Logic -- Automated reasoning
Theory of computation -- Logic -- Logic and verification
Theory of computation -- Semantics and reasoning -- Program reasoning -- Program verification
Title Decision procedures for path feasibility of string-manipulating programs with complex operations
URI https://dl.acm.org/doi/10.1145/3290362
https://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-398239
https://dl.acm.org/doi/pdf/10.1145/3290362
UnpaywallVersion publishedVersion
Volume 3
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2475-1421
  dateEnd: 99991231
  omitProxy: true
  ssIdentifier: ssj0001934839
  issn: 2475-1421
  databaseCode: M~E
  dateStart: 20170101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1NbxMxEB1BegAOFAoVobQyEnBzidf2en2M-qEKqRUHgspp8dqeqmq6iUhWUA78duzYCaVVpd5Ho5Vn7Hn2zrwH8E44z60ukTKvLBWGN1Rrx6hXCgtuWOUwDgofn5RHI_HpVJ5mmpw4C-PGwc_l4hd-3NNTh5nQVn7khU7H7VopA-7uwdro5PPwW1SPE0pSJgqWpmKvW8eiYy__KzqZEvQJPOraqbn6acbjayXlcD1pE80WTISxk-Rit5s3u_b3DZ7G-33tM3iakSUZplR4Dg98uwHrS9UGkjfxC_i-n2V1yKJ4uS5cuEmAriSKExP0JjfMXpEJkqjq0Z7RSJKRhL7aM5JbumYkvuGSRU-6_0UmU5-SafYSRocHX_aOaNZZoIYzMadxmtWrRupKasu8C0eAcAVrvBQGNYoCvVfa4cBUyqFVDSIL15xGc6elQs43oddOWv8KSMAnVjRYuoFA4QJ2QRRlYQeVQVdV0vdhIyxYPU1MGnVepD58WIantpmaPCpkjOs0Ni3_GZKV4dLHLZP3Kb4rg0igvX_-dViHMNVdV3NdFVz34e0q_Hf5en0Pmy14HDCUTq8yb6A3_9H57YBT5s0OPDz-c7CT0_QvSQLnFQ
linkProvider Unpaywall
linkToUnpaywall http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LTxsxELZQONAeeJWK8JIr0d4M8dper48RDyEkUA8E0dPitT2oathEJCsevx47dgIFIXEfjVaeseezd-b7ENrl1jGjciDUSUO4ZhVRylLipISMaVpYCIPCZ-f5SY-fXomrRJMTZmFs3_u5nfzCD3t6aCER2op9lql43M7nwuPuFprvnf_u_gnqcVwKQnlG41Tsa-tQdMztf0UnUYJ-RQtNPdSP97rff1VSjpeiNtFowkQYOkn-7TXjas88veFp_NzXLqPFhCxxN6bCCppz9Spamqo24LSJv6HrwySrgyfFyzb-wo09dMVBnBiD06lh9hEPAAdVj_qGBJKMKPRV3-DU0jXC4Q0XT3rS3QMeDF1MptEa6h0fXRyckKSzQDSjfEzCNKuTlVCFUIY6648AbjNaOcE1KOAZOCeVhY4upAUjKwDqrzmVYlYJCYx9R616ULt1hD0-MbyC3HY4cOuxCwDPM9MpNNiiEK6NVv2ClcPIpFGmRWqjX9PwlCZRkweFjH4Zx6bFiyGeGU59vDP5GeM7MwgE2od_L7ulD1PZNCVTRcZUG_2Yhf8jXxufsNlEXzyGUvFVZgu1xneN2_Y4ZVztpAR9BuMA5eQ
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=Decision+procedures+for+path+feasibility+of+string-manipulating+programs+with+complex+operations&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Chen%2C+Taolue&rft.au=Hague%2C+Matthew&rft.au=Lin%2C+Anthony+W.&rft.au=R%C3%BCmmer%2C+Philipp&rft.date=2019-01-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=3&rft.issue=49&rft_id=info:doi/10.1145%2F3290362&rft.externalDocID=oai_DiVA_org_uu_398239
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon