Litcius/Paper detail

On the Expressive Power of String Constraints

Joel D. Day, Vijay Ganesh, Nathan Grewal, Florín Manea

2023Proceedings of the ACM on Programming Languages10 citationsDOIOpen Access PDF

Abstract

We investigate properties of strings which are expressible by canonical types of string constraints. Specifically, we consider a landscape of 20 logical theories, whose syntax is built around combinations of four common elements of string constraints: language membership (e.g. for regular languages), concatenation, equality between string terms, and equality between string-lengths. For a variable x and formula f from a given theory, we consider the set of values for which x may be substituted as part of a satisfying assignment, or in other words, the property f expresses through x. Since we consider string-based logics, this set is a formal language. We firstly consider the relative expressive power of different combinations of string constraints by comparing the classes of languages expressible in the corresponding theories, and are able to establish a mostly complete picture in this regard. Secondly, we consider the question of deciding whether the language or property expressed by a variable/formula in one theory can be expressed in another theory. We establish several negative results which are relevant to preprocessing and normalisation of string constraints in practice. Some of our results have strong connections to important open problems regarding word equations and the theory of string solving.

Topics & Concepts

String (physics)Concatenation (mathematics)MathematicsProperty (philosophy)Regular languageFormal languageSyntaxSet (abstract data type)Formal grammarDiscrete mathematicsPure mathematicsComputer scienceAlgebra over a fieldCombinatoricsTheoretical computer scienceAlgorithmRule-based machine translationArtificial intelligenceProgramming languageAutomatonEpistemologyPhilosophyMathematical physicsWeb Application Security VulnerabilitiesSoftware Testing and Debugging TechniquesNatural Language Processing Techniques