VLDB 2026 Research / reviewers in the wild / expert
Margus Veanes
dblp:42/6841
· DBLP profile ↗
71ranked-venue papers
26as first author
10since 2021 · last 2026
0009-0008-8427-7977ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 44 · 14 first-author · 8 since 2021Theory of computation · 28 · 11 first-author · 4 since 2021Computer networks · 4 · 4 first-authorDatabases, data management, data science and information retrieval · 4 · 4 first-authorSecurity and privacy · 3 · 1 since 2021Applied, interdisciplinary, general and emerging computing · 3 · 1 first-authorArtificial intelligence and machine learning · 1 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | EREQ: Regular Expressions with Quantifiers and Incremental Quantifier EliminationabstractWeak monadic second-order logic (wMSO) is a foundational tool for specifying regular properties. Traditional decision procedures for this logic typically translate wMSO formulas into finite automata. Although the logic is decidable, this approach incurs non-elementary complexity in the worst-case. Nearly thirty years ago, the state-of-the-art MONA tool showed that, despite these theoretical limits, wMSO can be decided efficiently in practice through carefully optimized automata constructions. We revisit wMSO from an algebraic perspective by introducing Extended Regular Expressions with Quantifiers (EREQ). Instead of relying on automata determinization, EREQ employs symbolic derivatives to perform incremental quantifier elimination, providing a compositional and symbolic alternative to classical automata-based approaches. We present a linear-time translation of wMSO into EREQ and a derivative-based decision procedure for EREQ. We prove the correctness of the translation and of the derivative construction in the Lean proof assistant. We implement our approach in Rust and evaluate it on a set of established MONA benchmarks, demonstrating competitive performance with state-of-the-art tools. Our results demonstrate the potential of derivative-based methods, opening new avenues for efficient decision procedures in EREQ. Ekaterina Zhuchko, Ian Erik Varatalu, Margus Veanes, Nikolaj S. Bjørner |
Proc. ACM Program. Lang. | 3 |
| 2025 | Regex Decision Procedures in Extended RE#abstractAbstract We develop decision procedures for extended regular expressions in the new $$\textbf{ERE} \texttt {\#}$$ ERE # framework that uses span semantics , utilizing the power of symbolic derivatives . We prove a normal form theorem in Lean for $$\textbf{ERE} \texttt {\#}$$ ERE # that is closed under all Boolean operations and provides the basis for the given decision procedures. The tool is evaluated on existing SMT benchmarks for regexes that shows it to be the fastest solver to date – often orders of magnitude faster than state-of-the-art – albeit specialized for the single-variable fragment of string theory. Ian Erik Varatalu, Margus Veanes, Ekaterina Zhuchko, Juhan P. Ernits |
CAV (3) | 2 |
| 2025 | Finiteness of Symbolic Derivatives in Lean
Ekaterina Zhuchko, Hendrik Maarand, Margus Veanes, Gabriel Ebner |
ITP | 3 |
| 2025 | RE#: High Performance Derivative-Based Regex Matching with Intersection, Complement, and Restricted LookaroundsabstractWe present a tool and theory RE # for regular expression matching that is built on symbolic derivatives, does not use backtracking, and, in addition to the classical operators, also supports complement, intersection and restricted lookarounds. We develop the theory formally and show that the main matching algorithm has input-linear complexity both in theory as well as experimentally. We apply thorough evaluation on popular benchmarks that show that RE # is over 71% faster than the next fastest regex engine in Rust on the baseline, and outperforms all state-of-the-art engines on extensions of the benchmarks often by several orders of magnitude. Ian Erik Varatalu, Margus Veanes, Juhan P. Ernits |
Proc. ACM Program. Lang. | 2 |
| 2025 | Symbolic Automata: Omega-Regularity Modulo TheoriesabstractSymbolic automata are finite state automata that support potentially infinite alphabets, such as the set of rational numbers, generally applied to regular expressions and languages over finite words. In symbolic automata (or automata modulo 𝒜), an alphabet is represented by an effective Boolean algebra 𝒜, supported by a decision procedure for satisfiability. Regular languages over infinite words (so called ω -regular languages) have a rich history paralleling that of regular languages over finite words, with well known applications to model checking via Büchi automata and temporal logics. We generalize symbolic automata to support ω -regular languages via transition terms and symbolic derivatives , bringing together a variety of classic automata and logics in a unified framework that provides all the necessary ingredients to support symbolic model checking modulo 𝒜. In particular, we define: (1) alternating Büchi automata modulo 𝒜( AB W 𝒜 ) as well (non-alternating) nondeterministic Büchi automata modulo 𝒜( NB W 𝒜 );(2) an alternation elimination algorithm Æ that incrementally constructs an NB W 𝒜 from an AB W 𝒜 , and can also be used for constructing the product of two NB W 𝒜 ; (3) a definition of linear temporal logic modulo 𝒜, LTL ⟨𝒜⟩, that generalizes Vardi's construction of alternating Büchi automata from LTL, using (2) to go from LTL modulo 𝒜 to NB W 𝒜 via AB W 𝒜 . Finally, we present RLTL ⟨ 𝒜 ⟩, a combination of LTL ⟨ 𝒜 ⟩ with extended regular expressions modulo 𝒜 that generalizes the Property Specification Language (PSL). Our combination allows regex complement , that is not supported in PSL but can be supported naturally by using transition terms. We formalize the semantics of RLTL ⟨ 𝒜 ⟩ using the Lean proof assistant and formally establish correctness of the main derivation theorem. Margus Veanes, Thomas Ball 0001, Gabriel Ebner, Ekaterina Zhuchko |
Proc. ACM Program. Lang. | 1 |
| 2024 | Lean Formalization of Extended Regular Expression Matching with LookaroundsabstractWe present a formalization of a matching algorithm for extended regular expression matching based on locations and symbolic derivatives which supports intersection, complement and lookarounds and whose implementation mirrors an extension of the recent .NET NonBacktracking regular expression engine. The formalization of the algorithm and its semantics uses the Lean 4 proof assistant. The proof of its correctness is with respect to standard matching semantics. Ekaterina Zhuchko, Margus Veanes, Gabriel Ebner |
CPP | 2 |
| 2023 | Incremental Dead State Detection in Logarithmic TimeabstractAbstract Identifying live and dead states in an abstract transition system is a recurring problem in formal verification; for example, it arises in our recent work on efficiently deciding regex constraints in SMT. However, state-of-the-art graph algorithms for maintaining reachability informationincrementally(that is, as states are visited and before the entire state space is explored) assume that new edges can be added from any state at any time, whereas in many applications, outgoing edges are added from each state as it is explored. To formalize the latter situation, we proposeguided incremental digraphs(GIDs), incremental graphs which support labelingclosedstates (states which will not receive further outgoing edges). Our main result is that dead state detection in GIDs is solvable in $$O(\log m)$$ amortized time per edge formedges, improving upon $$O(\sqrt{m})$$ per edge due to Bender, Fineman, Gilbert, and Tarjan (BFGT) for general incremental directed graphs. We introduce two algorithms for GIDs: one establishing the logarithmic time bound, and a second algorithm to explore a lazy heuristics-based approach. To enable an apples-to-apples experimental comparison, we implemented both algorithms, two simpler baselines, and the state-of-the-art BFGT baseline using a common directed graph interface in Rust. Our evaluation shows 110-530x speedups over BFGT for the largest input graphs over a range of graph classes, random graphs, and graphs arising from regex benchmarks. Caleb Stanford, Margus Veanes |
CAV (2) | 2 |
| 2023 | Derivative Based Nonbacktracking Real-World Regex Matching with Backtracking SemanticsabstractWe develop a new derivative based theory and algorithm for nonbacktracking regex matching that supports anchors and counting, preserves backtracking semantics, and can be extended with lookarounds. The algorithm has been implemented as a new regex backend in .NET and was extensively tested as part of the formal release process of .NET7. We present a formal proof of the correctness of the algorithm, which we believe to be the first of its kind concerning industrial implementations of regex matchers. The paper describes the complete foundation, the matching algorithm, and key aspects of the implementation involving a regex rewrite system, as well as a comprehensive evaluation over industrial case studies and other regex engines. Dan Moseley, Mario Nishio, Jose Perez Rodriguez, Olli Saarikivi, Stephen Toub, Margus Veanes, Tiki Wan, Eric Xu |
Proc. ACM Program. Lang. | 6 |
| 2022 | Counting in Regexes Considered Harmful: Exposing ReDoS Vulnerability of Nonbacktracking Matchers
Lenka Turonová, Lukás Holík, Ivan Homoliak, Ondrej Lengál, Margus Veanes, Tomás Vojnar |
USENIX Security Symposium | 5 |
| 2021 | Symbolic Boolean derivatives for efficiently solving extended regular expression constraintsabstractThe manipulation of raw string data is ubiquitous in security-critical software, and verification of such software relies on efficiently solving string and regular expression constraints via SMT. However, the typical case of Boolean combinations of regular expression constraints exposes blowup in existing techniques. To address solvability of such constraints, we propose a new theory of derivatives of symbolic extended regular expressions (extended meaning that complement and intersection are incorporated), and show how to apply this theory to obtain more efficient decision procedures. Our implementation of these ideas, built on top of Z3, matches or outperforms state-of-the-art solvers on standard and handwritten benchmarks, showing particular benefits on examples with Boolean combinations. Caleb Stanford, Margus Veanes, Nikolaj S. Bjørner |
PLDI | 2 |
| 2020 | Regex matching with counting-set automataabstractWe propose a solution to the problem of efficient matching regular expressions (regexes) with bounded repetition, such as (ab){1,100}, using deterministic automata. For this, we introduce novel counting-set automata (CsAs) , automata with registers that can hold sets of bounded integers and can be manipulated by a limited portfolio of constant-time operations. We present an algorithm that compiles a large sub-class of regexes to deterministic CsAs. This includes (1) a novel Antimirov-style translation of regexes with counting to counting automata (CAs) , nondeterministic automata with bounded counters, and (2) our main technical contribution, a determinization of CAs that outputs CsAs. The main advantage of this workflow is that the size of the produced CsAs does not depend on the repetition bounds used in the regex (while the size of the DFA is exponential to them). Our experimental results confirm that deterministic CsAs produced from practical regexes with repetition are indeed vastly smaller than the corresponding DFAs. More importantly, our prototype matcher based on CsA simulation handles practical regexes with repetition regardless of sizes of counter bounds. It easily copes with regexes with repetition where state-of-the-art matchers struggle. Lenka Turonová, Lukás Holík, Ondrej Lengál, Olli Saarikivi, Margus Veanes, Tomás Vojnar |
Proc. ACM Program. Lang. | 5 |
| 2019 | Succinct Determinisation of Counting Automata via Sphere Construction
Lukás Holík, Ondrej Lengál, Olli Saarikivi, Lenka Turonová, Margus Veanes, Tomás Vojnar |
APLAS | 5 |
| 2019 | Niijima: sound and automated computation consolidation for efficient multilingual data-parallel pipelinesabstractMultilingual data-parallel pipelines, such as Microsoft's Scope and Apache Spark, are widely used in real-world analytical tasks. While the involvement of multiple languages (often including both managed and native languages) provides much convenience in data manipulation and transformation, it comes at a performance cost --- managed languages need a managed runtime, incurring much overhead. In addition, each switch from a managed to a native runtime (and vice versa) requires marshalling or unmarshalling of an ocean of data objects, taking a large fraction of the execution time. This paper presents Niijima, an optimizing compiler for Microsoft's Scope/Cosmos, which can consolidate C#-based user-defined operators (UDOs) across SQL statements, thereby reducing the number of dataflow vertices that require the managed runtime, and thus the amount of C# computations and the data marshalling cost. We demonstrate that Niijima has reduced job latency by an average of 24% and up to 3.3x, on a series of production jobs. Guoqing Harry Xu, Margus Veanes, Michael Barnett 0001, Madan Musuvathi, Todd Mytkowicz, Benjamin G. Zorn |
SOSP | 2 |
| 2019 | Symbolic Regex MatcherabstractSymbolic regex matcher is a new open source .NET regular expression matching tool and match generator in the Microsoft Automata framework. It is based on the .NET regex parser in combination with a set based representation of character classes. The main feature of the tool is that the core matching algorithms are based on symbolic derivatives that support extended regular expression operations such as intersection and complement and also support a large set of commonly used features such as bounded loop quantifiers. The particularly useful features of the tool are that it supports full UTF16 encoded strings, the match generation is backtracking free, thread safe, and parallelizes with low overhead in multithreaded applications. We discuss the main design decisions behind the tool, explain the core algorithmic ideas and how the tool works, discuss some practical usage scenarios, and compare it to existing state of the art. Olli Saarikivi, Margus Veanes, Tiki Wan, Eric Xu |
TACAS (1) | 2 |
| 2018 | Simulation Algorithms for Symbolic Automata
Lukás Holík, Ondrej Lengál, Juraj Síc, Margus Veanes, Tomás Vojnar |
ATVA | 4 |
| 2018 | Theoretical Aspects of Symbolic Automata
Hellis Tamm, Margus Veanes |
SOFSEM | 2 |
| 2017 | The Power of Symbolic Automata and Transducers
Loris D'Antoni, Margus Veanes |
CAV (1) | 2 |
| 2017 | Minimization of Symbolic Transducers
Olli Saarikivi, Margus Veanes |
CAV (2) | 2 |
| 2017 | Symbolic Automata Theory with Applications (Invited Talk)abstractSymbolic automata extend classic finite state automata by allowing transitions to carry predicates over rich alphabet theories. The key algorithmic difference to classic automata is the ability to efficiently operate over very large or infinite alphabets. In this talk we give an overview of what is currently known about symbolic automata, what their main applications are, and what challenges arise when reasoning about them. We also discuss some of the open problems and research directions in symbolic automata theory. Margus Veanes |
CSL | 1 |
| 2017 | Fusing effectful comprehensionsabstractList comprehensions provide a powerful abstraction mechanism for expressing computations over ordered collections of data declaratively without having to use explicit iteration constructs. This paper puts forth effectful comprehensions as an elegant way to describe list comprehensions that incorporate loop-carried state. This is motivated by operations such as compression/decompression and serialization/deserialization that are common in log/data processing pipelines and require loop-carried state when processing an input stream of data. Olli Saarikivi, Margus Veanes, Todd Mytkowicz, Madan Musuvathi |
PLDI | 2 |
| 2017 | Monadic second-order logic on finite sequencesabstractWe extend the weak monadic second-order logic of one successor on finite strings (M2L-STR) to symbolic alphabets by allowing character predicates to range over decidable quantifier free theories instead of finite alphabets. We call this logic, which is able to describe sequences over complex and potentially infinite domains, symbolic M2L-STR (S-M2L-STR). We then present a decision procedure for S-M2L-STR based on a reduction to symbolic finite automata, a decidable extension of finite automata that allows transitions to carry predicates and can therefore model symbolic alphabets. The reduction constructs a symbolic automaton over an alphabet consisting of pairs of symbols where the first element of the pair is a symbol in the original formula’s alphabet, while the second element is a bit-vector. To handle this modified alphabet we show that the Cartesian product of two decidable Boolean algebras (e.g., the formula’s one and the bit-vector’s one) also forms a decidable Boolean algebras. To make the decision procedure practical, we propose two efficient representations of the Cartesian product of two Boolean algebras, one based on algebraic decision diagrams and one on a variant of Shannon expansions. Finally, we implement our decision procedure and evaluate it on more than 10,000 formulas. Despite the generality, our implementation has comparable performance with the state-of-the-art M2L-STR solvers. Loris D'Antoni, Margus Veanes |
POPL | 2 |
| 2017 | Forward Bisimulations for Nondeterministic Symbolic Finite Automata
Loris D'Antoni, Margus Veanes |
TACAS (1) | 2 |
| 2017 | Monadic DecompositionabstractMonadic predicates play a prominent role in many decidable cases, including decision procedures for symbolic automata. We are here interested in discovering whether a formula can be rewritten into a Boolean combination of monadic predicates. Our setting is quantifier-free formulas whose satisfiability is decidable, such as linear arithmetic. Here we develop a semidecision procedure for extracting a monadic decomposition of a formula when it exists. Margus Veanes, Nikolaj S. Bjørner, Lev Nachmanson, Sergey Bereg |
J. ACM | 1 |
| 2016 | Minimization of Symbolic Tree AutomataabstractSymbolic tree automata allow transitions to carry predicates over rich alphabet theories, such as linear arithmetic, and therefore extend finite tree automata to operate over infinite alphabets, such as the set of rational numbers. Existing tree automata algorithms rely on the alphabet being finite, and generalizing them to the symbolic setting is not a trivial task. In this paper we study the problem of minimizing symbolic tree automata. First, we formally define and prove the properties of minimality in the symbolic setting. Second, we lift existing minimization algorithms to symbolic tree automata. Third, we present a new algorithm based on the following idea: the problem of minimizing symbolic tree automata can be reduced to the problem of minimizing symbolic (string) automata by encoding the tree structure as part of the alphabet theory. We implement and evaluate all our algorithms against existing implementations and show that the symbolic algorithms scale to large alphabets and can minimize automata over complex alphabet theories. Loris D'Antoni, Margus Veanes |
LICS | 2 |
| 2016 | Prepose: Privacy, Security, and Reliability for Gesture-Based ProgrammingabstractWith the rise of sensors such as the Microsoft Kinect, Leap Motion, and hand motion sensors in phones (i.e., Samsung Galaxy S6), gesture-based interfaces have become practical. Unfortunately, today, to recognize such gestures, applications must have access to depth and video of the user, exposing sensitive data about the user and her environment. Besides these privacy concerns, there are also security threats in sensor-based applications, such as multiple applications registering the same gesture, leading to a conflict (akin to Clickjacking on the web). We address these security and privacy threats with Prepose, a novel domain-specific language (DSL) for easily building gesture recognizers, combined with a system architecture that protects privacy, security, and reliability with untrusted applications. We run Prepose code in a trusted core, and only return specific gesture events to applications. Prepose is specifically designed to enable precise and sound static analysis using SMT solvers, allowing the system to check security and reliability properties before running a gesture recognizer. We demonstrate that Prepose is expressive by creating gestures in three representative domains: physical therapy, tai-chi, and ballet. We further show that runtime gesture matching in Prepose is fast, creating no noticeable lag, as measured on traces from Microsoft Kinect runs. To show that gesture checking at the time of submission to a gesture store is fast, we developed a total of four Z3-based static analyses to test for basic gesture safety and internal validity, to make sure the so-called protected gestures are not overridden, and to check inter-gesture conflicts. Our static analysis scales well in practice: safety checking is under 0.5 seconds per gesture, average validity checking time is only 188ms, lastly, for 97% of the cases, the conflict detection time is below 5 seconds, with only one query taking longer than 15 seconds. Lucas Silva Figueiredo, Benjamin Livshits, David Molnar, Margus Veanes |
IEEE Symposium on Security and Privacy | 4 |
| 2015 | Program Boosting: Program Synthesis via Crowd-SourcingabstractIn this paper, we investigate an approach to program synthesis that is based on crowd-sourcing. With the help of crowd-sourcing, we aim to capture the "wisdom of the crowds" to find good if not perfect solutions to inherently tricky programming tasks, which elude even expert developers and lack an easy-to-formalize specification. Robert A. Cochran, Loris D'Antoni, Benjamin Livshits, David Molnar, Margus Veanes |
POPL | 5 |
| 2015 | Data-Parallel String-Manipulating ProgramsabstractString-manipulating programs are an important class of programs with applications in malware detection, graphics, input sanitization for Web security, and large-scale HTML processing. This paper extends prior work on BEK, an expressive domain-specific language for writing string-manipulating programs, with algorithmic insights that make BEK both analyzable and data-parallel. By analyzable we mean that unlike most general purpose programming languages, many algebraic properties of a BEK program are decidable (i.e., one can check whether two programs commute or compute the inverse of a program). By data-parallel we mean that a BEK program can compute on arbitrary subsections of its input in parallel, thus exploiting parallel hardware. This latter requirement is particularly important for programs which operate on large data: without data parallelism, a programmer cannot hide the latency of reading data from various storage media (i.e., reading a terabyte of data from a modern hard drive takes about 3 hours). With a data-parallel approach, the system can split data across multiple disks and thus hide the latency of reading the data. Margus Veanes, Todd Mytkowicz, David Molnar, Benjamin Livshits |
POPL | 1 |
| 2015 | Extended symbolic finite automata and transducers
Loris D'Antoni, Margus Veanes |
Formal Methods Syst. Des. | 2 |
| 2015 | Symbolic tree automata
Margus Veanes, Nikolaj S. Bjørner |
Inf. Process. Lett. | 1 |
| 2015 | Fast: A Transducer-Based Language for Tree ManipulationabstractTree automata and transducers are used in a wide range of applications in software engineering. While these formalisms are of immense practical use, they can only model finite alphabets. To overcome this problem we augment tree automata and transducers with symbolic alphabets represented as parametric theories. Admitting infinite alphabets makes these models more general and succinct than their classic counterparts. Despite this, we show how the main operations, such as composition and language equivalence, remain computable given a decision procedure for the alphabet theory. We introduce a high-level language called F ast that acts as a front-end for the preceding formalisms. Loris D'Antoni, Margus Veanes, Benjamin Livshits, David Molnar |
ACM Trans. Program. Lang. Syst. | 2 |
| 2014 | Monadic Decomposition
Margus Veanes, Nikolaj S. Bjørner, Lev Nachmanson, Sergey Bereg |
CAV | 1 |
| 2014 | Fast: a transducer-based language for tree manipulationabstractTree automata and tree transducers are used in a wide range of applications in software engineering, from XML processing to language type-checking. While these formalisms are of immense practical use, they can only model finite alphabets, and since many real-world applications operate over infinite domains such as integers, this is often a limitation. To overcome this problem we augment tree automata and transducers with symbolic alphabets represented as parametric theories. Admitting infinite alphabets makes these models more general and succinct than their classical counterparts. Despite this, we show how the main operations, such as composition and language equivalence, remain computable given a decision procedure for the alphabet theory. Loris D'Antoni, Margus Veanes, Benjamin Livshits, David Molnar |
PLDI | 2 |
| 2014 | Minimization of symbolic automataabstractSymbolic Automata extend classical automata by using symbolic alphabets instead of finite ones. Most of the classical automata algorithms rely on the alphabet being finite, and generalizing them to the symbolic setting is not a trivial task. In this paper we study the problem of minimizing symbolic automata. We formally define and prove the basic properties of minimality in the symbolic setting, and lift classical minimization algorithms (Huffman-Moore's and Hopcroft's algorithms) to symbolic automata. While Hopcroft's algorithm is the fastest known algorithm for DFA minimization, we show how, in the presence of symbolic alphabets, it can incur an exponential blowup. To address this issue, we introduce a new algorithm that fully benefits from the symbolic representation of the alphabet and does not suffer from the exponential blowup. We provide comprehensive performance evaluation of all the algorithms over large benchmarks and against existing state-of-the-art implementations. The experiments show how the new symbolic algorithm is faster than previous implementations. Loris D'Antoni, Margus Veanes |
POPL | 2 |
| 2013 | Equivalence of Extended Symbolic Finite Transducers
Loris D'Antoni, Margus Veanes |
CAV | 2 |
| 2013 | Operating System Support for Augmented Reality Applications
Loris D'Antoni, Alan M. Dunn, Suman Jana, Tadayoshi Kohno, Benjamin Livshits, David Molnar, Alexander Moshchuk, Eyal Ofek, Franziska Roesner, T. Scott Saponas, Margus Veanes, Helen J. Wang |
HotOS | 11 |
| 2013 | Static Analysis of String Encoders and Decoders
Loris D'Antoni, Margus Veanes |
VMCAI | 2 |
| 2013 | Applications of Symbolic Finite Automata
Margus Veanes |
CIAA | 1 |
| 2012 | Symbolic finite state transducers: algorithms and applicationsabstractFinite automata and finite transducers are used in a wide range of applications in software engineering, from regular expressions to specification languages. We extend these classic objects with symbolic alphabets represented as parametric theories. Admitting potentially infinite alphabets makes this representation strictly more general and succinct than classical finite transducers and automata over strings. Despite this, the main operations, including composition, checking that a transducer is single-valued, and equivalence checking for single-valued symbolic finite transducers are effective given a decision procedure for the background theory. We provide novel algorithms for these operations and extend composition to symbolic transducers augmented with registers. Our base algorithms are unusual in that they are nonconstructive, therefore, we also supply a separate model generation algorithm that can quickly find counterexamples in the case two symbolic finite transducers are not equivalent. The algorithms give rise to a complete decidable algebra of symbolic transducers. Unlike previous work, we do not need any syntactic restriction of the formulas on the transitions, only a decision procedure. In practice we leverage recent advances in satisfiability modulo theory (SMT) solvers. We demonstrate our techniques on four case studies, covering a wide range of applications. Our techniques can synthesize string pre-images in excess of 8,000 bytes in roughly a minute, and we find that our new encodings significantly outperform previous techniques in succinctness and speed of analysis. Margus Veanes, Pieter Hooimeijer, Benjamin Livshits, David Molnar, Nikolaj S. Bjørner |
POPL | 1 |
| 2012 | Symbolic Automata: The Toolkit
Margus Veanes, Nikolaj S. Bjørner |
TACAS | 1 |
| 2012 | Alternating simulation and IOCO
Margus Veanes, Nikolaj S. Bjørner |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2011 | Fast and Precise Sanitizer Analysis with BEK
Pieter Hooimeijer, Benjamin Livshits, David Molnar, Prateek Saxena, Margus Veanes |
USENIX Security Symposium | 5 |
| 2011 | An Evaluation of Automata Algorithms for String Analysis
Pieter Hooimeijer, Margus Veanes |
VMCAI | 2 |
| 2010 | Rex: Symbolic Regular Expression ExplorerabstractConstraints in form regular expressions over strings are ubiquitous. They occur often in programming languages like Perl and C#, in SQL in form of LIKE expressions, and in web applications. Providing support for regular expression constraints in program analysis and testing has several useful applications. We introduce a method and a tool called Rex, for symbolically expressing and analyzing regular expression constraints. Rex is implemented using the SMT solver Z3, and we provide experimental evaluation of Rex. Margus Veanes, Jonathan de Halleux, Nikolai Tillmann |
ICST | 1 |
| 2010 | Alternating Simulation and IOCO
Margus Veanes, Nikolaj S. Bjørner |
ICTSS | 1 |
| 2009 | Symbolic Query Exploration
Margus Veanes, Pavel Grigorenko, Jonathan de Halleux, Nikolai Tillmann |
ICFEM | 1 |
| 2009 | Input-Output Model Programs
Margus Veanes, Nikolaj S. Bjørner |
ICTAC | 1 |
| 2008 | An SMT Approach to Bounded Reachability Analysis of Model Programs
Margus Veanes, Nikolaj S. Bjørner, Alexander Raschke |
FORTE | 1 |
| 2008 | Protocol Modeling with Model Program Composition
Margus Veanes, Wolfram Schulte |
FORTE | 1 |
| 2008 | On Bounded Reachability of Programs with Set Comprehensions
Margus Veanes, Ando Saabas |
LPAR | 1 |
| 2007 | Composition of Model Programs
Margus Veanes, Colin Campbell, Wolfram Schulte |
FORTE | 1 |
| 2007 | State Isomorphism in Model Programs with Abstract Data Structures
Margus Veanes, Juhan P. Ernits, Colin Campbell |
FORTE | 1 |
| 2007 | Adapting Futures: Scalability for Real-World ComputingabstractCreating robust real-time embedded software is critical in combining the physical world with computing, such as in consumer electronics or robotics. One challenge is the complexity of dealing with time together with implementation details that often end up implicitly determining the temporal behavior of the program. In this paper we suggest deconstructing a program into two separate aspects, the functional implementation and a temporal pattern, each expressed separately in a different language. This separation enables independent specification, analysis and prediction of the temporal behavior without regard to the implementation. Meanwhile the implementation is optimized for platforms with different capabilities through a scalable programming model that automatically adapts the execution to the level of concurrency a platform can support. Finally the aspects are put together to create a working system. This paper presents the use of futures and partitures to achieve predictability and performance in embedded systems. A new real-time scheduler for partiture based futures execution is introduced, along with multiple implementations, including one for an 8-bit microcontroller. The paper explains how to create, model, and execute futures and partitures. Johannes Helander, Risto Serg, Margus Veanes |
RTSS | 3 |
| 2007 | Can abstract state machines be useful in language theory?
Yuri Gurevich, Margus Veanes, Charles Wallace 0001 |
Theor. Comput. Sci. | 2 |
| 2005 | Testing Concurrent Object-Oriented Systems with Spec Explorer
Colin Campbell, Wolfgang Grieskamp, Lev Nachmanson, Wolfram Schulte, Nikolai Tillmann, Margus Veanes |
FM | 6 |
| 2005 | Online testing with model programsabstractOnline testing is a technique in which test derivation from a model program and test execution are combined into a single algorithm. We describe a practical online testing algorithm that is implemented in the model-based testing tool developed at Microsoft Research called Spec Explorer. Spec Explorer is being used daily by several Microsoft product groups. Model programs in Spec Explorer are written in the high level specification languages AsmL or Spec\#. We view model programs as implicit definitions of interface automata. The conformance relation between a model and an implementation under test is formalized in terms of refinement between interface automata. Testing then amounts to a game between the test tool and the implementation under test. Margus Veanes, Colin Campbell, Wolfram Schulte, Nikolai Tillmann |
ESEC/SIGSOFT FSE | 1 |
| 2004 | Optimal strategies for testing nondeterministic systemsabstractThis paper deals with testing of nondeterministic software systems. We assume that a model of the nondeterministic system is given by a directed graph with two kind of vertices: states and choice points. Choice points represent the nondeterministic behaviour of the implementation under test (IUT). Edges represent transitions. They have costs and probabilities. Test case generation in this setting amounts to generation of a game strategy. The two players are the testing tool (TT) and the IUT. The game explores the graph. The TT leads the IUT by selecting an edge at the state vertices. At the choice points the control goes to the IUT. A game strategy decides which edge should be taken by the TT in each state. This paper presents three novel algorithms 1) to determine an optimal strategy for the bounded reachability game, where optimality means maximizing the probability to reach any of the given final states from a given start state while at the same time minimizing the costs of traversal; 2) to determine a winning strategy for the bounded reachability game, which guarantees that given final vertices are reached, regardless how the IUT reacts; 3) to determine a fast converging edge covering strategy, which guarantees that the probability to cover all edges quickly converges to 1 if TT follows the strategy. Lev Nachmanson, Margus Veanes, Wolfram Schulte, Nikolai Tillmann, Wolfgang Grieskamp |
ISSTA | 2 |
| 2004 | Instrumenting scenarios in a model-driven development environment
Wolfgang Grieskamp, Nikolai Tillmann, Margus Veanes |
Inf. Softw. Technol. | 3 |
| 2004 | Abstract Communication Model for Distributed SystemsabstractIn some distributed and mobile communication models, a message disappears in one place and miraculously appears in another. In reality, of course, there are no miracles. A message goes from one network to another; it can be lost or corrupted in the process. Here, we present a realistic but high-level communication model where abstract communicators represent various nets and subnets. The model was originally developed in the process of specifying a particular network architecture, namely, the Universal Plug and Play architecture. But, it is general. Our contention is that every message-based distributed system, properly abstracted, gives rise to a specialization of our abstract communication model. The purpose of the abstract communication model is not to design a new kind of network; rather, it is to discover the common part of all message-based communication networks. The generality of the model has been confirmed by its successful reuse for very different distributed architectures. The model is based on distributed abstract state machines. It is implemented in the specification language AsmL and is used for testing distributed systems. Uwe Glässer, Yuri Gurevich, Margus Veanes |
IEEE Trans. Software Eng. | 3 |
| 2002 | Modeling Software: From Theory to Practice
Margus Veanes |
FSTTCS | 1 |
| 2002 | Generating finite state machines from abstract state machinesabstractWe give an algorithm that derives a finite state machine (FSM) from a given abstract state machine (ASM) specification. This allows us to integrate ASM specs with the existing tools for test case generation from FSMs. ASM specs are executable but have typically too many, often infinitely many states. We group ASM states into finitely many hyperstates which are the nodes of the FSM. The links of the FSM are induced by the ASM state transitions. Wolfgang Grieskamp, Yuri Gurevich, Wolfram Schulte, Margus Veanes |
ISSTA | 4 |
| 2000 | On the Undecidability of Second-Order Unification
Jordi Levy, Margus Veanes |
Inf. Comput. | 2 |
| 2000 | Farmer's Theorem revisited
Margus Veanes |
Inf. Process. Lett. | 1 |
| 2000 | Decidability and complexity of simultaneous rigid E-unification with one variable and related results
Anatoli Degtyarev, Yuri Gurevich, Paliath Narendran, Margus Veanes, Andrei Voronkov |
Theor. Comput. Sci. | 4 |
| 1999 | Decidable Fragments of Simultaneous Rigid Reachability
Véronique Cortier, Harald Ganzinger, Florent Jacquemard, Margus Veanes |
ICALP | 4 |
| 1999 | The Two-Variable Guarded Fragment with Transitive RelationsabstractWe consider the restriction of the guarded fragment to the two-variable case where, in addition, binary relations may be specified as transitive. We show that (i) this very restricted form of the guarded fragment without equality is undecidable and that (ii) when allowing non-unary relations to occur only in guards, the logic becomes decidable. The latter subclass of the guarded fragments the one that occurs naturally when translating multi-modal logics of the type Kg/sub 4/ S/sub 4/ or S5 into first-order logic. We also show that the loosely guarded fragment without equality and with a single transitive relation is undecidable. Harald Ganzinger, Christoph M. Kirsch, Margus Veanes |
LICS | 3 |
| 1999 | Logic with Equality: Partisan Corroboration and Shifted Pairing
Yuri Gurevich, Margus Veanes |
Inf. Comput. | 2 |
| 1998 | The Relation Between Second-Order Unification and Simultaneous Rigid E-UnificationabstractSimultaneous rigid E-unification, or SREU for short, is a fundamental problem that arises in global methods of automated theorem proving in classical logic with equality. In order to do proof search in intuitionistic logic with equality one has to handle SREU as well. Furthermore, restricted forms of SREU are strongly related to word equations and finite tree automata. It was recently shown that second-order unification has a very natural reduction to simultaneous rigid E-unification, which constituted probably the most transparent undecidability proof of SREU. Here we show that there is also a natural encoding of SREU in second-order unification. It follows that the problems are logspace equivalent. So second-order unification plays the same fundamental role as SREU in automated reasoning in logic with equality. We exploit this connection and use finite tree automata techniques to present a very elementary undecidability proof of second-order unification, by reduction from the halting problem for Turing machines. It follows from that proof that second-order unification is undecidable for all nonmonadic second-order term languages having at least two second-order variables with sufficiently high arities. Margus Veanes |
LICS | 1 |
| 1998 | The Decidability of Simultaneous Rigid E-Unification with One Variable
Anatoli Degtyarev, Yuri Gurevich, Paliath Narendran, Margus Veanes, Andrei Voronkov |
RTA | 4 |
| 1996 | On the Number of Edges in Cycletrees
Margus Veanes, Jonas Barklund |
Inf. Process. Lett. | 1 |
| 1996 | Construction of Natural Cycletrees
Margus Veanes, Jonas Barklund |
Inf. Process. Lett. | 1 |
| 1996 | Natural Cycletrees: Flexible Interconnection Graphs
Margus Veanes, Jonas Barklund |
J. Parallel Distributed Comput. | 1 |