VLDB 2026 Research / reviewers in the wild / expert
Grigore Rosu
dblp:r/GrigoreRosu
· DBLP profile ↗
133ranked-venue papers
27as first author
9since 2021 · last 2026
0000-0002-3102-0421ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 89 · 14 first-author · 8 since 2021Theory of computation · 55 · 16 first-author · 3 since 2021Systems, architecture and hardware · 6 · 2 first-author · 1 since 2021Security and privacy · 2Databases, data management, data science and information retrieval · 1Applied, interdisciplinary, general and emerging computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | $\mathbb {K}$ Definitions as Matching Logic Theories, Formally
Xiaohong Chen 0002, Horatiu Cheval, Dorel Lucanu, Grigore Rosu |
FoSSaCS | 4 |
| 2026 | A matching logic theory of multi-hole contexts
Xiaohong Chen 0002, Horatiu Cheval, Dorel Lucanu, Grigore Rosu |
J. Log. Algebraic Methods Program. | 4 |
| 2026 | A unifying logical foundation for initial algebra semantics and inductionabstractInitial algebra semantics provides a generic and principled framework to study induction. In this paper, we give a complete formalization of ini- tial algebra semantics and inductive reasoning using matching logic—a small and unifying logic for formal semantics of programming languages. Specifi- cally, we define initial algebra semantics as matching logic theories and derive induction/iteration/primitive-recursion principles as formal theorems within matching logic, using its proof system. This way, we obtain, for the first time, a rigorous logical foundation for general initial algebra semantics and induc- tion, both proof-theoretically and model-theoretically. As a bonus, matching logic admits the smallest known proof checker for a logic supporting inductive proofs, of only 240 lines of code. Xiaohong Chen 0002, Dorel Lucanu, Grigore Rosu |
Theor. Comput. Sci. | 3 |
| 2024 | A Logical Treatment of Finite AutomataabstractAbstract We present a sound and complete axiomatization of finite words using matching logic. A unique feature of our axiomatization is that it gives a shallow embedding of regular expressions into matching logic, and a logical representation of finite automata. The semantics of both expressions and automata are precisely captured as matching logic formulae that evaluate to the corresponding language. Regular expressions are matching logic formulae as is, while the embedding of automata is a structural analog—computational aspects of automata are captured as syntactic features. We demonstrate that our axiomatization is sound and complete by showing that runs of Brzozowski’s procedure for equivalence checking correspond to matching logic proofs. We propose this as a general methodology for producing machine-checkable formal proofs, enabled by capturing structural analogs of computational artifacts in logic. The proofs produced can be efficiently checked by the Metamath Zero verifier. Work presented in this paper contributes to the general scheme of achieving verifiable computing via logical methods, where computations are reduced to logical reasoning, encoded as machine-checkable proof objects, and checked by a trusted proof checker. Nishant Rodrigues, Mircea Sebe, Xiaohong Chen 0002, Grigore Rosu |
TACAS (1) | 4 |
| 2023 | Capturing constrained constructor patterns in matching logic
Xiaohong Chen 0002, Dorel Lucanu, Grigore Rosu |
J. Log. Algebraic Methods Program. | 3 |
| 2023 | Generating Proof Certificates for a Language-Agnostic Deductive Program VerifierabstractPrevious work on rewriting and reachability logic establishes a vision for a language-agnostic program verifier, which takes three inputs: a program, its formal specification, and the formal semantics of the programming language in which the program is written. The verifier then uses a language-agnostic verification algorithm to prove the program correct with respect to the specification and the formal language semantics. Such a complex verifier can easily have bugs. This paper proposes a method to certify the correctness of each successful verification run by generating a proof certificate. The proof certificate can be checked by a small proof checker. The preliminary experiments apply the method to generate proof certificates for program verification in an imperative language, a functional language, and an assembly language, showing that the proposed method is language-agnostic. Zhengyao Lin, Xiaohong Chen 0002, Minh-Thai Trinh, Grigore Rosu |
Proc. ACM Program. Lang. | 5 |
| 2021 | Language-parametric compiler validation with application to LLVMabstractWe propose a new design for a Translation Validation (TV) system geared towards practical use with modern optimizing compilers, such as LLVM. Unlike existing TV systems, which are custom-tailored for a particular sequence of transformations and a specific, common language for input and output programs, our design clearly separates the transformation-specific components from the rest of the system, and generalizes the transformation-independent components. Specifically, we present Keq, the first program equivalence checker that is parametric to the input and output language semantics and has no dependence on the transformation between the input and output programs. The Keq algorithm is based on a rigorous formalization, namely cut-bisimulation, and is proven correct. We have prototyped a TV system for the Instruction Selection pass of LLVM, being able to automatically prove equivalence for translations from LLVM IR to the MachineIR used in compiling to x86-64. This transformation uses different input and output languages, and as such has not been previously addressed by the state of the art. An experimental evaluation shows that Keq successfully proves correct the translation of over 90% of 4732 supported functions in GCC from SPEC 2006. Theodoros Kasampalis, Daejun Park 0001, Zhengyao Lin, Vikram S. Adve, Grigore Rosu |
ASPLOS | 5 |
| 2021 | Towards a Trustworthy Semantics-Based Language Framework via Proof GenerationabstractAbstract We pursue the vision of anideal language framework, where programming language designers only need to define the formalsyntaxandsemanticsof their languages, and all language tools are automatically generated by the framework. Due to the complexity of such a language framework, it is a big challenge to ensure its trustworthiness and to establish the correctness of the autogenerated language tools. In this paper, we propose an innovative approach based onproof generation. The key idea is to generate proof objects as correctness certificates for each individual task that the language tools conduct, on a case-by-case basis, and use a trustworthy proof checker to check the proof objects. This way, we avoid formally verifying the entire framework, which is practically impossible, and thus can make the language framework bothpracticalandtrustworthy. As a first step, we formalize program execution as mathematical proofs and generate their complete proof objects. The experimental result shows that the performance of our proof object generation and proof checking is very promising. Xiaohong Chen 0002, Zhengyao Lin, Minh-Thai Trinh, Grigore Rosu |
CAV (2) | 4 |
| 2021 | Matching logic explained
Xiaohong Chen 0002, Dorel Lucanu, Grigore Rosu |
J. Log. Algebraic Methods Program. | 3 |
| 2020 | End-to-End Formal Verification of Ethereum 2.0 Deposit Smart ContractabstractWe report our experience in the formal verification of the deposit smart contract, whose correctness is critical for the security of Ethereum 2.0, a new Proof-of-Stake protocol for the Ethereum blockchain. The deposit contract implements an incremental Merkle tree algorithm whose correctness is highly nontrivial, and had not been proved before. We have verified the correctness of the compiled bytecode of the deposit contract to avoid the need to trust the underlying compiler. We found several critical issues of the deposit contract during the verification process, some of which were due to subtle hidden bugs of the compiler. Daejun Park 0001, Grigore Rosu |
CAV (1) | 3 |
| 2020 | Matching logic: the foundation of the K framework (invited talk)abstractThe K framework (kframework.org) is an effort in realizing the ideal language framework, where programming languages must have formal semantics and all language tools are automatically generated from the formal semantics. Until recently, K has been developed as an engineering endeavor driven by challenges such as formalizing the complete semantics of large languages (C, Java, JavaScript, Python, etc), but deriving its semantics from translations to various formalisms, such as rewriting logic, graph transformations, or Coq. This semantics borrowing approach came not only at a notational cost, where the original language meaning was ``lost in translation'', but also at a foundational cost: the target formalisms were more complicated than necessary, yet more restricted due to their prescribed ways to define language semantics. Grigore Rosu, Xiaohong Chen 0002 |
CPP | 1 |
| 2020 | Towards a unified proof framework for automated fixpoint reasoning using matching logicabstractAutomation of fixpoint reasoning has been extensively studied for various mathematical structures, logical formalisms, and computational domains, resulting in specialized fixpoint provers for heaps, for streams, for term algebras, for temporal properties, for program correctness, and for many other formal systems and inductive and coinductive properties. However, in spite of great theoretical and practical interest, there is no unified framework for automated fixpoint reasoning. Although several attempts have been made, there is no evidence that such a unified framework is possible, or practical. In this paper, we propose a candidate based on matching logic, a formalism recently shown to theoretically unify the above mentioned formal systems. Unfortunately, the (Knaster-Tarski) proof rule of matching logic, which enables inductive reasoning, is not syntax-driven. Worse, it can be applied at any step during a proof, making automation seem hopeless. Inspired by recent advances in automation of inductive proofs in separation logic, we propose an alternative proof system for matching logic, which is amenable for automation. We then discuss our implementation of it, which although not superior to specialized state-of-the-art automated provers for specific domains, we believe brings some evidence and hope that a unified framework for automated reasoning is not out of reach. Xiaohong Chen 0002, Minh-Thai Trinh, Nishant Rodrigues, Lucas Peña, Grigore Rosu |
Proc. ACM Program. Lang. | 5 |
| 2020 | A general approach to define binders using matching logicabstractWe propose a novel definition of binders using matching logic, where the binding behavior of object-level binders is directly inherited from the built-in exists binder of matching logic. We show that the behavior of binders in various logical systems such as lambda-calculus, System F, pi-calculus, pure type systems, can be axiomatically defined in matching logic as notations and logical theories. We show the correctness of our definitions by proving conservative extension theorems, which state that a sequent/judgment is provable in the original system if and only if it is provable in matching logic, in the corresponding theory. Our matching logic definition of binders also yields models to all binders, which are deductively complete with respect to formal reasoning in the original systems. For lambda-calculus, we further show that the yielded models are representationally complete, a desired property that is not enjoyed by many existing lambda-calculus semantics. This work is part of a larger effort to develop a logical foundation for the programming language semantics framework K (http://kframework.org). Xiaohong Chen 0002, Grigore Rosu |
Proc. ACM Program. Lang. | 2 |
| 2019 | Matching mu-Logic: Foundation of K Framework (Invited Paper)abstractK framework is an effort in realizing the ideal language framework where programming languages must have formal semantics and all languages tools are automatically generated from the formal semantics in a correct-by-construction manner at no additional costs. In this extended abstract, we present matching mu-logic as the foundation of K and discuss some of its applications in defining constructors, transition systems, modal mu-logic and temporal logic variants, and reachability logic. Xiaohong Chen 0002, Grigore Rosu |
CALCO | 2 |
| 2019 | IELE: A Rigorously Designed Language and Tool Ecosystem for the Blockchain
Theodoros Kasampalis, Dwight Guth, Brandon M. Moore, Traian-Florin Serbanuta, Daniele Filaretti, Virgil Nicolae Serbanuta, Ralph Johnson, Grigore Rosu |
FM | 9 |
| 2019 | Techniques for Evolution-Aware Runtime VerificationabstractRuntime Verification (RV) can help find bugs by monitoring program executions against formal properties. Developers should ideally use RV whenever they run tests, to find more bugs earlier. Despite tremendous research progress, RV still incurs high overhead in (1) machine time to monitor properties and (2) developer time to wait for and inspect violations from test executions that do not satisfy the properties. Moreover, all prior RV techniques consider only one program version and wastefully re-monitor unaffected properties and code as software evolves. We present the first evolution-aware RV techniques that reduce RV overhead across multiple program versions. Regression Property Selection (RPS) re-monitors only properties that can be violated in parts of code affected by changes, reducing machine time and developer time. Violation Message Suppression (VMS) simply shows only new violations to reduce developer time; it does not reduce machine time. Regression Property Prioritization (RPP) splits RV in two phases: properties more likely to find bugs are monitored in a critical phase to provide faster feedback to the developers; the rest are monitored in a background phase. We compare our techniques with the evolution-unaware (base) RV when monitoring test executions in 200 versions of 10 open-source projects. RPS and the RPP critical phase reduce the average RV overhead from 9.4× (for base RV) to 1.8×, without missing any new violations. VMS reduces the average number of violations 540×, from 54 violations per version (for base RV) to one violation per 10 versions. Owolabi Legunsen, Milica Hadzi-Tanovic, Grigore Rosu, Darko Marinov |
ICST | 4 |
| 2019 | Matching μ-LogicabstractMatching logic is a logic for specifying and reasoning about structure by means of patterns and pattern matching. This paper makes two contributions. First, it proposes a sound and complete proof system for matching logic in its full generality. Previously, sound and complete deduction for matching logic was known only for particular theories providing equality and membership. Second, it proposes matching μ -Iogic, an extension of matching logic with a least fixpoint μ -binder, It is shown that matching μ -Iogic captures as special instances many important logics in mathematics and computer science, including first-order logic with least fixpoints, modal μ -Iogic as well as dynamic logic and various temporal logics such as infinite/finite-trace linear temporal logic and computation tree logic, and notably reachability logic, the underlying logic of the \mathbbk framework for programming language semantics and formal analysis. Matching μ -logic therefore serves as a unifying foundation for specifying and reasoning about fixpoints and induction, programming languages and program specification and verification. Xiaohong Chen 0002, Grigore Rosu |
LICS | 2 |
| 2019 | A complete formal semantics of x86-64 user-level instruction set architectureabstractWe present the most complete and thoroughly tested formal semantics of x86-64 to date. Our semantics faithfully formalizes all the non-deprecated, sequential user-level instructions of the x86-64 Haswell instruction set architecture. This totals 3155 instruction variants, corresponding to 774 mnemonics. The semantics is fully executable and has been tested against more than 7,000 instruction-level test cases and the GCC torture test suite. This extensive testing paid off, revealing bugs in both the x86-64 reference manual and other existing semantics. We also illustrate potential applications of our semantics in different formal analyses, and discuss how it can be useful for processor verification. Sandeep Dasgupta, Daejun Park 0001, Theodoros Kasampalis, Vikram S. Adve, Grigore Rosu |
PLDI | 5 |
| 2019 | How effective are existing Java API specifications for finding bugs during runtime verification?
Owolabi Legunsen, Nader Al Awar, Wajih Ul Hassan, Grigore Rosu, Darko Marinov |
Autom. Softw. Eng. | 5 |
| 2019 | All-Path Reachability LogicabstractThis paper presents a language-independent proof system for reachability properties of programs written in non-deterministic (e.g., concurrent) languages, referred to as all-path reachability logic. It derives partial-correctness properties with all-path semantics (a state satisfying a given precondition reaches states satisfying a given postcondition on all terminating execution paths). The proof system takes as axioms any unconditional operational semantics, and is sound (partially correct) and (relatively) complete, independent of the object language. The soundness has also been mechanized in Coq. This approach is implemented in a tool for semantics-based verification as part of the K framework (http://kframework.org) Andrei Stefanescu, Stefan Ciobaca, Radu Mereuta, Brandon M. Moore, Traian-Florin Serbanuta, Grigore Rosu |
Log. Methods Comput. Sci. | 6 |
| 2019 | First international Competition on Runtime Verification: rules, benchmarks, tools, and final results of CRV 2014abstractThe first international Competition on Runtime Verification (CRV) was held in September 2014, in Toronto, Canada, as a satellite event of the 14th international conference on Runtime Verification (RV’14). The event was organized in three tracks: (1) offline monitoring, (2) online monitoring of C programs, and (3) online monitoring of Java programs. In this paper, we report on the phases and rules, a description of the participating teams and their submitted benchmark, the (full) results, as well as the lessons learned from the competition. Ezio Bartocci, Yliès Falcone, Borzoo Bonakdarpour, Christian Colombo 0001, Normann Decker, Klaus Havelund, Yogi Joshi, Felix Klaedtke, Reed Milewicz, Giles Reger, Grigore Rosu, Julien Signoles, Daniel Thoma, Eugen Zalinescu |
Int. J. Softw. Tools Technol. Transf. | 11 |
| 2018 | KEVM: A Complete Formal Semantics of the Ethereum Virtual MachineabstractA developing field of interest for the distributed systems and applied cryptography communities is that of smart contracts: self-executing financial instruments that synchronize their state, often through a blockchain. One such smart contract system that has seen widespread practical adoption is Ethereum, which has grown to a market capacity of 100 billion USD and clears an excess of 500,000 daily transactions. Unfortunately, the rise of these technologies has been marred by a series of costly bugs and exploits. Increasingly, the Ethereum community has turned to formal methods and rigorous program analysis tools. This trend holds great promise due to the relative simplicity of smart contracts and bounded-time deterministic execution inherent to the Ethereum Virtual Machine (EVM). Here we present KEVM, an executable formal specification of the EVM's bytecode stack-based language built with the K Framework, designed to serve as a solid foundation for further formal analyses. We empirically evaluate the correctness and performance of KEVM using the official Ethereum test suite. To demonstrate the usability, several extensions of the semantics are presented. and two different-language implementations of the ERC20 Standard Token are verified against the ERC20 specification. These results are encouraging for the executable semantics approach to language prototyping and specification. Everett Hildenbrandt, Manasvi Saxena, Nishant Rodrigues, Xiaoran Zhu, Philip Daian, Dwight Guth, Brandon M. Moore, Daejun Park 0001, Andrei Stefanescu, Grigore Rosu |
CSF | 11 |
| 2018 | Program Verification by CoinductionabstractWe present a novel program verification approach based on coinduction, which takes as input an operational semantics. No intermediates like program logics or verification condition generators are needed. Specifications can be written using any state predicates. We implement our approach in Coq, giving a certifying language-independent verification framework. Our proof system is implemented as a single module imported unchanged into language-specific proofs. Automation is reached by instantiating a generic heuristic with language-specific tactics. Manual assistance is also smoothly allowed at points the automation cannot handle. We demonstrate the power and versatility of our approach by verifying algorithms as complicated as Schorr-Waite graph marking and instantiating our framework for object languages in several styles of semantics. Finally, we show that our coinductive approach subsumes reachability logic, a recent language-independent sound and (relatively) complete logic for program verification that has been instantiated with operational semantics of languages as complex as C, Java and JavaScript. These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves. Brandon M. Moore, Lucas Peña, Grigore Rosu |
ESOP | 3 |
| 2018 | A Language-Independent Approach to Smart Contract Verification
Xiaohong Chen 0002, Daejun Park 0001, Grigore Rosu |
ISoLA (4) | 3 |
| 2018 | A Language-Independent Program Verification Framework
Xiaohong Chen 0002, Grigore Rosu |
ISoLA (2) | 2 |
| 2018 | Runtime Verification - 17 Years Later
Klaus Havelund, Grigore Rosu |
RV | 2 |
| 2018 | A formal verification tool for Ethereum VM bytecodeabstractIn this paper, we present a formal verification tool for the Ethereum Virtual Machine (EVM) bytecode. To precisely reason about all possible behaviors of the EVM bytecode, we adopted KEVM, a complete formal semantics of the EVM, and instantiated the K-framework's reachability logic theorem prover to generate a correct-by-construction deductive verifier for the EVM. We further optimized the verifier by introducing EVM-specific abstractions and lemmas to improve its scalability. Our EVM verifier has been used to verify various high-profile smart contracts including the ERC20 token, Ethereum Casper, and DappHub MakerDAO contracts. Daejun Park 0001, Manasvi Saxena, Philip Daian, Grigore Rosu |
ESEC/SIGSOFT FSE | 5 |
| 2018 | Finite-trace linear temporal logic: coinductive completeness
Grigore Rosu |
Formal Methods Syst. Des. | 1 |
| 2017 | Matching LogicabstractThis paper presents matching logic, a first-order logic (FOL) variant for specifying and reasoning about structure by means of patterns and pattern matching. Its sentences, the patterns, are constructed using variables, symbols, connectives and quantifiers, but no difference is made between function and predicate symbols. In models, a pattern evaluates into a power-set domain (the set of values that match it), in contrast to FOL where functions and predicates map into a regular domain. Matching logic uniformly generalizes several logical frameworks important for program analysis, such as: propositional logic, algebraic specification, FOL with equality, modal logic, and separation logic. Patterns can specify separation requirements at any level in any program configuration, not only in the heaps or stores, without any special logical constructs for that: the very nature of pattern matching is that if two structures are matched as part of a pattern, then they can only be spatially separated. Like FOL, matching logic can also be translated into pure predicate logic with equality, at the same time admitting its own sound and complete proof system. A practical aspect of matching logic is that FOL reasoning with equality remains sound, so off-the-shelf provers and SMT solvers can be used for matching logic reasoning. Matching logic is particularly well-suited for reasoning about programs in programming languages that have an operational semantics, but it is not limited to this. Grigore Rosu |
Log. Methods Comput. Sci. | 1 |
| 2016 | RV-Match: Practical Semantics-Based Program Analysis
Dwight Guth, Chris Hathhorn, Manasvi Saxena, Grigore Rosu |
CAV (1) | 4 |
| 2016 | How good are the specs? a study of the bug-finding effectiveness of existing Java API specificationsabstractRuntime verification can be used to find bugs early, during software development, by monitoring test executions against formal specifications (specs). The quality of runtime verification depends on the quality of the specs. While previous research has produced many specs for the Java API, manually or through automatic mining, there has been no large-scale study of their bug-finding effectiveness. Owolabi Legunsen, Wajih Ul Hassan, Grigore Rosu, Darko Marinov |
ASE | 4 |
| 2016 | Semantics-based program verifiers for all languagesabstractWe present a language-independent verification framework that can be instantiated with an operational semantics to automatically generate a program verifier. The framework treats both the operational semantics and the program correctness specifications as reachability rules between matching logic patterns, and uses the sound and relatively complete reachability logic proof system to prove the specifications using the semantics. We instantiate the framework with the semantics of one academic language, KernelC, as well as with three recent semantics of real-world languages, C, Java, and JavaScript, developed independently of our verification infrastructure. We evaluate our approach empirically and show that the generated program verifiers can check automatically the full functional correctness of challenging heap-manipulating programs implementing operations on list and tree data structures, like AVL trees. This is the first approach that can turn the operational semantics of real-world languages into correct-by-construction automatic verifiers. Andrei Stefanescu, Daejun Park 0001, Shijiao Yuwen, Grigore Rosu |
OOPSLA | 5 |
| 2016 | Runtime Verification at Work: A Tutorial
Philip Daian, Dwight Guth, Chris Hathhorn, Edgar Pek, Manasvi Saxena, Traian-Florin Serbanuta, Grigore Rosu |
RV | 8 |
| 2016 | Finite-Trace Linear Temporal Logic: Coinductive Completeness
Grigore Rosu |
RV | 1 |
| 2016 | A language-independent proof system for full program equivalenceabstractAbstract Two programs are fully equivalent if, for the same input, either they both diverge or they both terminate with the same result. Full equivalence is an adequate notion of equivalence for programs written in deterministic languages. It is useful in many contexts, such as capturing the correctness of program transformations within the same language, or capturing the correctness of compilers between two different languages. In this paper we introduce a language-independent proof system for full equivalence, which is parametric in the operational semantics of two languages and in a state-similarity relation. The proof system is sound: a proof tree establishes the full equivalence of the programs given to it as input. We illustrate it on two programs in two different languages (an imperative one and a functional one), that both compute the Collatz sequence. The Collatz sequence is an interesting case study since it is not known whether the sequence terminates or not; nevertheless, our proof system shows that the two programs are fully equivalent (even if we cannot establish termination or divergence of either one). Stefan Ciobaca, Dorel Lucanu, Vlad Rusu, Grigore Rosu |
Formal Aspects Comput. | 4 |
| 2015 | GPredict: Generic Predictive Concurrency AnalysisabstractPredictive trace analysis (PTA) is an effective approach for detecting subtle bugs in concurrent programs. Existing PTA techniques, however, are typically based on adhoc algorithms tailored to low-level errors such as data races or atomicity violations, and are not applicable to high-level properties such as "a resource must be authenticated before use" and "a collection cannot be modified when being iterated over". In addition, most techniques assume as input a globally ordered trace of events, which is expensive to collect in practice as it requires synchronizing all threads. In this paper, we present GPredict: a new technique that realizes PTA for generic concurrency properties. Moreover, GPredict does not require a global trace but only the local traces of each thread, which incurs much less runtime overhead than existing techniques. Our key idea is to uniformly model violations of concurrency properties and the thread causality as constraints over events. With an existing SMT solver, GPredict is able to precisely predict property violations allowed by the causal model. Through our evaluation using both benchmarks and real world applications, we show that GPredict is effective in expressing and predicting generic property violations. Moreover, it reduces the runtime overhead of existing techniques by 54% on DaCapo benchmarks on average. Jeff Huang 0001, Qingzhou Luo, Grigore Rosu |
ICSE (1) | 3 |
| 2015 | Evolution-Aware Monitoring-Oriented ProgrammingabstractMonitoring-Oriented Programming (MOP) helps develop more reliable software by means of monitoring against formal specifications. While MOP showed promising results, all prior research has focused on checking a single version of software. We propose to extend MOP to support multiple software versions and thus be more relevant in the context of rapid software evolution. Our approach, called eMOP, is inspired by regression test selection -- a well studied, evolution-centered technique. The key idea in eMOP is to monitor only the parts of code that changed between versions. We illustrate eMOP by means of a running example, and show the results of preliminary experiments. eMOP opens up a new line of research on MOP -- it can significantly improve usability and performance when applied across multiple versions of software and is complementary to algorithmic MOP advances on a single version. Owolabi Legunsen, Darko Marinov, Grigore Rosu |
ICSE (2) | 3 |
| 2015 | Defining the undefinedness of CabstractWe present a ``negative'' semantics of the C11 language---a semantics that does not just give meaning to correct programs, but also rejects undefined programs. We investigate undefined behavior in C and discuss the techniques and special considerations needed for formally specifying it. We have used these techniques to modify and extend a semantics of C into one that captures undefined behavior. The amount of semantic infrastructure and effort required to achieve this was unexpectedly high, in the end nearly doubling the size of the original semantics. From our semantics, we have automatically extracted an undefinedness checker, which we evaluate against other popular analysis tools, using our own test suite in addition to a third-party test suite. Our checker is capable of detecting examples of all 77 categories of core language undefinedness appearing in the C11 standard, more than any other tool we considered. Based on this evaluation, we argue that our work is the most comprehensive and complete semantic treatment of undefined behavior in C, and thus of the C language itself. Chris Hathhorn, Chucky Ellison, Grigore Rosu |
PLDI | 3 |
| 2015 | KJS: a complete formal semantics of JavaScriptabstractThis paper presents KJS, the most complete and throughly tested formal semantics of JavaScript to date. Being executable, KJS has been tested against the ECMAScript 5.1 conformance test suite, and passes all 2,782 core language tests. Among the existing implementations of JavaScript, only Chrome V8's passes all the tests, and no other semantics passes more than 90%. In addition to a reference implementation for JavaScript, KJS also yields a simple coverage metric for a test suite: the set of semantic rules it exercises. Our semantics revealed that the ECMAScript 5.1 conformance test suite fails to cover several semantic rules. Guided by the semantics, we wrote tests to exercise those rules. The new tests revealed bugs both in production JavaScript engines (Chrome V8, Safari WebKit, Firefox SpiderMonkey) and in other semantics. KJS is symbolically executable, thus it can be used for formal analysis and verification of JavaScript programs. We verified non-trivial programs and found a known security vulnerability. Daejun Park 0001, Andrei Stefanescu, Grigore Rosu |
PLDI | 3 |
| 2015 | K-Java: A Complete Semantics of JavaabstractThis paper presents K-Java, a complete executable formal semantics of Java 1.4. K-Java was extensively tested with a test suite developed alongside the project, following the Test Driven Development methodology. In order to maintain clarity while handling the great size of Java, the semantics was split into two separate definitions -- a static semantics and a dynamic semantics. The output of the static semantics is a preprocessed Java program, which is passed as input to the dynamic semantics for execution. The preprocessed program is a valid Java program, which uses a subset of the features of Java. The semantics is applied to model-check multi-threaded programs. Both the test suite and the static semantics are generic and ready to be used in other Java-related projects. Denis Bogdanas, Grigore Rosu |
POPL | 2 |
| 2015 | Matching Logic - Extended Abstract (Invited Talk)abstractThis paper presents matching logic, a first-order logic (FOL) variant for specifying and reasoning about structure by means of patterns and pattern matching. Its sentences, the patterns, are constructed using variables, symbols, connectives and quantifiers, but no difference is made between function and predicate symbols. In models, a pattern evaluates into a power-set domain (the set of values that match it), in contrast to FOL where functions and predicates map into a regular domain. Matching logic uniformly generalizes several logical frameworks important for program analysis, such as: propositional logic, algebraic specification, FOL with equality, and separation logic. Patterns can specify separation requirements at any level in any program configuration, not only in the heaps or stores, without any special logical constructs for that: the very nature of pattern matching is that if two structures are matched as part of a pattern, then they can only be spatially separated. Like FOL, matching logic can also be translated into pure predicate logic, at the same time admitting its own sound and complete proof system. A practical aspect of matching logic is that FOL reasoning remains sound, so off-the-shelf provers and SMT solvers can be used for matching logic reasoning. Matching logic is particularly well-suited for reasoning about programs in programming languages that have a rewrite-based operational semantics. Grigore Rosu |
RTA | 1 |
| 2015 | RV-Android: Efficient Parametric Android Runtime Verification, a Brief Tutorial
Philip Daian, Yliès Falcone, Patrick O'Neil Meredith, Traian-Florin Serbanuta, Shinichi Shiraishi, Akihito Iwai, Grigore Rosu |
RV | 7 |
| 2015 | Term-generic logic
Andrei Popescu 0001, Grigore Rosu |
Theor. Comput. Sci. | 2 |
| 2014 | A Language-Independent Proof System for Mutual Program Equivalence
Stefan Ciobaca, Dorel Lucanu, Vlad Rusu, Grigore Rosu |
ICFEM | 4 |
| 2014 | Maximal sound predictive race detection with control flow abstractionabstractDespite the numerous static and dynamic program analysis techniques in the literature, data races remain one of the most common bugs in modern concurrent software. Further, the techniques that do exist either have limited detection capability or are unsound, meaning that they report false positives. We present a sound race detection technique that achieves a provably higher detection capability than existing sound techniques. A key insight of our technique is the inclusion of abstracted control flow information into the execution model, which increases the space of the causal model permitted by classical happens-before or causally-precedes based detectors. By encoding the control flow and a minimal set of feasibility constraints as a group of first-order logic formulae, we formulate race detection as a constraint solving problem. Moreover, we formally prove that our formulation achieves the maximal possible detection capability for any sound dynamic race detector with respect to the same input trace under the sequential consistency memory model. We demonstrate via extensive experimentation that our technique detects more races than the other state-of-the-art sound race detection techniques, and that it is scalable to executions of real world concurrent applications with tens of millions of critical events. These experiments also revealed several previously unknown races in real systems (e.g., Eclipse) that have been confirmed or fixed by the developers. Our tool is also adopted by Eclipse developers. Jeff Huang 0001, Patrick O'Neil Meredith, Grigore Rosu |
PLDI | 3 |
| 2014 | ROSRV: Runtime Verification for Robots
Jeff Huang 0001, Cansu Erdogan, Brandon M. Moore, Qingzhou Luo, Aravind Sundaresan, Grigore Rosu |
RV | 7 |
| 2014 | RV-Monitor: Efficient Parametric Runtime Verification with Simultaneous Properties
Qingzhou Luo, Choonghwan Lee, Dongyun Jin, Patrick O'Neil Meredith, Traian-Florin Serbanuta, Grigore Rosu |
RV | 7 |
| 2014 | On the complexity of stream equalityabstractAbstract We study the complexity of deciding the equality of streams specified by systems of equations. There are several notions of stream models in the literature, each generating a different semantics of stream equality. We pinpoint the complexity of each of these notions in the arithmetical or analytical hierarchy. Their complexity ranges from low levels of the arithmetical hierarchy such as Π 0 2 for the most relaxed stream models, to levels of the analytical hierarchy such as Π 1 1 and up to subsuming the entire analytical hierarchy for more restrictive but natural stream models. Since all these classes properly include both the semi-decidable and co-semi-decidable classes, it follows that regardless of the stream semantics employed, there is no complete proof system or algorithm for determining equality or inequality of streams. We also discuss several related problems, such as the existence and uniqueness of stream solutions for systems of equations, as well as the equality of such solutions. Jörg Endrullis, Dimitri Hendriks, Rena Bakhshi, Grigore Rosu |
J. Funct. Program. | 4 |
| 2013 | EnforceMOP: a runtime property enforcement system for multithreaded programsabstractMultithreaded programs are hard to develop and test. In order for programs to avoid unexpected concurrent behaviors at runtime, for example data-races, synchronization mechanisms are typically used to enforce a safe subset of thread interleavings. Also, to test multithreaded programs, devel- opers need to enforce the precise thread schedules that they want to test. These tasks are nontrivial and error prone. Qingzhou Luo, Grigore Rosu |
ISSTA | 2 |
| 2013 | Efficient parametric runtime verification with deterministic string rewritingabstractEarly efforts in runtime verification show that parametric regular and temporal logic specifications can be monitored efficiently. These approaches, however, have limited expressiveness: their specifications always reduce to monitors with finite state. More recent developments showed that parametric context-free properties can be efficiently monitored with overheads generally lower than 12-15%. While context-free grammars are more expressive than finite-state languages, they still do not allow every computable safety property. This paper presents a monitor synthesis algorithm for string rewriting systems (SRS). SRSs are well known to be Turing complete, allowing for the formal specification of any computable safety property. Earlier attempts at Turing complete monitoring have been relatively inefficient. This paper demonstrates that monitoring parametric SRSs is practical. The presented algorithm uses a modified version of Aho-Corasick string searching for quick pattern matching with an incremental rewriting approach that avoids reexamining parts of the string known to contain no redexes. Patrick O'Neil Meredith, Grigore Rosu |
ASE | 2 |
| 2013 | One-Path Reachability LogicabstractThis paper introduces (one-path) reachability logic, a language-independent proof system for program verification, which takes an operational semantics as axioms and derives reachability rules, which generalize Hoare triples. This system improves on previous work by allowing operational semantics given with conditional rewrite rules, which are known to support all major styles of operational semantics. In particular, Kahn's big-step and Plotkin's small-step semantic styles are now supported. The reachability logic proof system is shown sound (i.e., partially correct) and (relatively) complete. Reachability logic thus eliminates the need to independently define an axiomatic and an operational semantics for each language, and the nonnegligible effort to prove the former sound and complete w.r.t. the latter. The soundness result has also been formalized in Coq, allowing reachability logic derivations to serve as formal proof certificates that rely only on the operational semantics. Grigore Rosu, Andrei Stefanescu, Stefan Ciobaca, Brandon M. Moore |
LICS | 1 |
| 2013 | The rewriting logic semantics project: A progress report
José Meseguer 0001, Grigore Rosu |
Inf. Comput. | 2 |
| 2012 | Executing Formal Semantics with the K Tool
David Lazar, Andrei Arusoaie, Traian-Florin Serbanuta, Chucky Ellison, Radu Mereuta, Dorel Lucanu, Grigore Rosu |
FM | 7 |
| 2012 | From Hoare Logic to Matching Logic Reachability
Grigore Rosu, Andrei Stefanescu |
FM | 1 |
| 2012 | A Truly Concurrent Semantics for the K Framework Based on Graph Transformations
Traian-Florin Serbanuta, Grigore Rosu |
ICGT | 2 |
| 2012 | Towards a Unified Theory of Operational and Axiomatic Semantics
Grigore Rosu, Andrei Stefanescu |
ICALP (2) | 1 |
| 2012 | JavaMOP: Efficient parametric runtime monitoring frameworkabstractRuntime monitoring is a technique usable in all phases of the software development cycle, from initial testing, to debugging, to actually maintaining proper function in production code. Of particular importance are parametric monitoring systems, which allow the specification of properties that relate objects in a program, rather than only global properties. In the past decade, a number of parametric runtime monitoring systems have been developed. Here we give a demonstration of our system, JavaMOP. It is the only parametric monitoring system that allows multiple differing logical formalisms. It is also the most efficient in terms of runtime overhead, and very competitive with respect to memory usage. Dongyun Jin, Patrick O'Neil Meredith, Choonghwan Lee, Grigore Rosu |
ICSE | 4 |
| 2012 | Checking reachability using matching logicabstractThis paper presents a verification framework that is parametric in a (trusted) operational semantics of some programming language. The underlying proof system is language-independent and consists of eight proof rules. The proof system is proved partially correct and relatively complete (with respect to the programming language configuration model). To show its practicality, the generic framework is instantiated with a fragment of C and evaluated with encouraging results. Grigore Rosu, Andrei Stefanescu |
OOPSLA | 1 |
| 2012 | An executable formal semantics of C with applicationsabstractThis paper describes an executable formal semantics of C. Being executable, the semantics has been thoroughly tested against the GCC torture test suite and successfully passes 99.2% of 776 test programs. It is the most complete and thoroughly tested formal definition of C to date. The semantics yields an interpreter, debugger, state space search tool, and model checker "for free". The semantics is shown capable of automatically finding program errors, both statically and at runtime. It is also used to enumerate nondeterministic behavior. Chucky Ellison, Grigore Rosu |
POPL | 2 |
| 2012 | Maximal Causal Models for Sequentially Consistent Systems
Traian-Florin Serbanuta, Feng Chen 0006, Grigore Rosu |
RV | 3 |
| 2012 | Introduction to the special issue on runtime verification
Oleg Sokolsky, Grigore Rosu |
Formal Methods Syst. Des. | 2 |
| 2012 | An overview of the MOP runtime verification framework
Patrick O'Neil Meredith, Dongyun Jin, Dennis Griffith, Feng Chen 0006, Grigore Rosu |
Int. J. Softw. Tools Technol. Transf. | 5 |
| 2011 | The Rewriting Logic Semantics Project: A Progress Report
José Meseguer 0001, Grigore Rosu |
FCT | 2 |
| 2011 | Mining parametric specificationsabstractSpecifications carrying formal parameters that are bound to concrete data at runtime can effectively and elegantly capture multi-object behaviors or protocols. Unfortunately, parametric specifications are not easy to formulate by nonexperts and, consequently, are rarely available. This paper presents a general approach for mining parametric specifications from program executions, based on a strict separation of concerns: (1) a trace slicer first extracts sets of independent interactions from parametric execution traces; and (2) the resulting non-parametric trace slices are then passed to any conventional non-parametric property learner. The presented technique has been implemented in jMiner, which has been used to automatically mine many meaningful and non-trivial parametric properties of OpenJDK 6. Choonghwan Lee, Feng Chen 0006, Grigore Rosu |
ICSE | 3 |
| 2011 | Matching logic: a new program verification approachabstractMatching logic is a new program verification logic, which builds upon operational semantics. Matching logic specifications are constrained symbolic program configurations, called patterns, which can be matched by concrete configurations. By building upon an operational semantics of the language and allowing specifications to directly refer to the structure of the configuration, matching logic has at least three benefits: (1) One's familiarity with the formalism reduces to one's familiarity with the operational semantics of the language, that is, with the language itself; (2) The verification process proceeds the same way as the program execution, making debugging failed proof attempts manageable because one can always see the "current configuration" and "what went wrong', same like in a debugger; and (3) Nothing is lost in translation, that is, there is no gap between the language itself and its verifier. Moreover, direct access to the structure of the configuration facilitates defining subpatterns that one may reason about, such as disjoint lists or trees in the heap, as well as supporting framing in various components of the configuration at no additional costs. Grigore Rosu, Andrei Stefanescu |
ICSE | 1 |
| 2011 | Garbage collection for monitoring parametric properties
Dongyun Jin, Patrick O'Neil Meredith, Dennis Griffith, Grigore Rosu |
PLDI | 4 |
| 2011 | Improved multithreaded unit testingabstractMultithreaded code is notoriously hard to develop and test. A multithreaded test exercises the code under test with two or more threads. Each test execution follows some schedule/interleaving of the multiple threads, and different schedules can give different results. Developers often want to enforce a particular schedule for test execution, and to do so, they use time delays (Thread.sleep in Java). Unfortunately, this approach can produce false positives or negatives, and can result in unnecessarily long testing time. Vilas Jagannath, Milos Gligoric 0001, Dongyun Jin, Qingzhou Luo, Grigore Rosu, Darko Marinov |
SIGSOFT FSE | 5 |
| 2010 | Automating Coinduction with Case Analysis
Eugen-Ioan Goriac, Dorel Lucanu, Grigore Rosu |
ICFEM | 3 |
| 2010 | A formal executable semantics of VerilogabstractThis paper describes a formal executable semantics for the Verilog hardware description language. The goal of our formalization is to provide a concise and mathematically rigorous reference augmenting the prose of the official language standard, and ultimately to aid developers of Verilog-based tools; e.g., simulators, test generators, and verification tools. Our semantics applies equally well to both synthesizeable and behavioral designs and is given in a familiar, operational-style within a logic providing important additional benefits above and beyond static formalization. In particular, it is executable and searchable so that one can ask questions about how a, possibly nondeterministic, Verilog program can legally behave under the formalization. The formalization should not be seen as the final word on Verilog, but rather as a starting point and basis for community discussions on the Verilog semantics. Patrick O'Neil Meredith, Michael Katelman, José Meseguer 0001, Grigore Rosu |
MEMOCODE | 4 |
| 2010 | A Rewriting Logic Semantics Approach to Modular Program AnalysisabstractThe K framework, based on rewriting logic semantics, provides a powerful logic for defining the semantics of programming languages. While most work in this area has focused on defining an evaluation semantics for a language, it is also possible to define an abstract semantics that can be used for program analysis. Using the SILF language (Hills, Serbanuta and Rosu, 2007), this paper describes one technique for defining such a semantics: policy frameworks. In policy frameworks, an analysis-generic, modular framework is first defined for a language. Individual analyses, called policies, are then defined as extensions of this framework, with each policy defining analysis-specific semantic rules and an annotation language which, in combination with support in the language front-end, allows users to annotate program types and functions with information used during program analysis. Standard term rewriting techniques are used to analyze programs by evaluating them in the policy semantics. Mark Hills 0001, Grigore Rosu |
RTA | 2 |
| 2010 | Runtime Verification with the RV System
Patrick O'Neil Meredith, Grigore Rosu |
RV | 2 |
| 2010 | Efficient monitoring of parametric context-free patterns
Patrick O'Neil Meredith, Dongyun Jin, Feng Chen 0006, Grigore Rosu |
Autom. Softw. Eng. | 4 |
| 2009 | CIRC: A Behavioral Verification Tool Based on Circular Coinduction
Dorel Lucanu, Eugen-Ioan Goriac, Georgiana Caltais, Grigore Rosu |
CALCO | 4 |
| 2009 | Circular Coinduction: A Proof Theoretical Foundation
Grigore Rosu, Dorel Lucanu |
CALCO | 1 |
| 2009 | Circular Coinduction with Special Contexts
Dorel Lucanu, Grigore Rosu |
ICFEM | 2 |
| 2009 | Efficient Formalism-Independent Monitoring of Parametric PropertiesabstractParametric properties provide an effective and natural means to describe object-oriented system behaviors, where the parameters are typed by classes and bound to object instances at runtime. Efficient monitoring of parametric properties, in spite of increasingly growing interest due to applications such as testing and security, imposes a highly non-trivial challenge on monitoring approaches due to the potentially huge number of parameter instances. Existing solutions usually compromise their expressiveness for performance or vice versa. In this paper, we propose a generic, in terms of specification formalism, yet efficient, solution to monitoring parametric specifications. Our approach is based on a general algorithm for slicing parametric traces and makes use of static knowledge about the desired property to optimize monitoring. The needed knowledge is not specific to the underlying formalism and can be easily computed when generating monitoring code from the property. Our approach works with any specification formalism, providing better and extensible expressiveness. Also, a thorough evaluation shows that our technique outperforms other state-of-art techniques optimized for particular logics or properties. Feng Chen 0006, Patrick O'Neil Meredith, Dongyun Jin, Grigore Rosu |
ASE | 4 |
| 2009 | Runtime Verification of C Memory Safety
Grigore Rosu, Wolfram Schulte, Traian-Florin Serbanuta |
RV | 1 |
| 2009 | Parametric Trace Slicing and Monitoring
Feng Chen 0006, Grigore Rosu |
TACAS | 2 |
| 2009 | A rewriting logic approach to operational semantics
Traian-Florin Serbanuta, Grigore Rosu, José Meseguer 0001 |
Inf. Comput. | 2 |
| 2009 | A semantic approach to interpolation
Andrei Popescu 0001, Traian-Florin Serbanuta, Grigore Rosu |
Theor. Comput. Sci. | 3 |
| 2008 | jPredictor: a predictive runtime analysis tool for javaabstractjPredictor is a tool for detecting concurrency errors in Java programs. The Java program is instrumented to emit property-relevant events at runtime and then executed. The resulting execution trace is collected and analyzed by Predictor, which extracts a causality relation sliced using static analysis and refined with lock-atomicity information. The resulting abstract model, a hybrid of a partial order and atomic blocks, is then exhaustively analyzed against the property and errors with counter-examples are reported to the user. Thus, jPredictor can "predict" errors that did not happen in the observed execution, but which could have happened under a different thread scheduling. The analysis technique employed in jPredictor is fully automatic, generic (works for any trace property), sound (produces no false alarms) but it is incomplete may miss errors). Two common types of errors are investigated in this paper: dataraces and atomicity violations. Experiments show that jPredictor is precise (in its predictions), effective and efficient. After the code producing them was executed only once, jPredictor found all the errors reported by other tools. It also found errors missed by other tools, including static race detectors, as well as unknown errors in popular systems like Tomcat and the Apache FTP server. Feng Chen 0006, Traian-Florin Serbanuta, Grigore Rosu |
ICSE | 3 |
| 2008 | Efficient Monitoring of Parametric Context-Free PatternsabstractRecent developments in runtime verification and monitoring show that parametric regular and temporal logic specifications can be efficiently monitored against large programs. However, these logics reduce to ordinary finite automata, limiting their expressivity. For example, neither can specify structured properties that refer to the call stack of the program. While context-free grammars (CFGs) are expressive and well-understood, existing techniques for monitoring CFGs generate large runtime overhead in real-life applications. This paper shows, for the first time, that monitoring parametric CFGs is practical (with overhead on the order of 10% or lower for average cases, several times faster than the state-of-the-art). We present a monitor synthesis algorithm for CFGs based on an LR(1) parsing algorithm, modified with stack cloning to account for good prefix matching. In addition, a logic-independent mechanism is introduced to support matching against the suffixes of execution traces. Patrick O'Neil Meredith, Dongyun Jin, Feng Chen 0006, Grigore Rosu |
ASE | 4 |
| 2008 | Hardware Runtime Monitoring for Dependable COTS-Based Real-Time Embedded SystemsabstractCOTS peripherals are heavily used in the embedded market, but their unpredictability is a threat for high-criticality real-time systems: it is hard or impossible to formally verify COTS components. Instead, we propose to monitor the runtime behavior of COTS peripherals against their assumed specifications. If violations are detected, then an appropriate recovery measure can be taken. Our monitoring solution is decentralized: a monitoring device is plugged in on a peripheral bus and monitors the peripheral behavior by examining read and write transactions on the bus. Provably correct (w.r.t. given specifications) hardware monitors are synthesized from high level specifications, and executed on FPGAs, resulting in zero runtime overhead on the system CPU. The proposed technique, called BusMOP, has been implemented as an instance of a generic runtime verification framework, called MOP, which until now has only been used for software monitoring. We experimented with our technique using a COTS data acquisition board. Rodolfo Pellizzoni, Patrick O'Neil Meredith, Marco Caccamo, Grigore Rosu |
RTSS | 4 |
| 2008 | Synthesizing Monitors for Safety Properties: This Time with Calls and Returns
Grigore Rosu, Feng Chen 0006, Thomas Ball 0001 |
RV | 1 |
| 2007 | CIRC : A Circular Coinductive Prover
Dorel Lucanu, Grigore Rosu |
CALCO | 2 |
| 2007 | Parametric and Sliced Causality
Feng Chen 0006, Grigore Rosu |
CAV | 2 |
| 2007 | An Effective Algorithm for the Membership Problem for Extended Regular Expressions
Grigore Rosu |
FoSSaCS | 1 |
| 2007 | Mop: an efficient and generic runtime verification frameworkabstractMonitoring-Oriented Programming (MOP1) [21, 18, 22, 19] is a formal framework for software development and analysis, in which the developer specifies desired properties using definable specification formalisms, along with code to execute when properties are violated or validated. The MOP framework automatically generates monitors from the specified properties and then integrates them together with the user-defined code into the original system. The previous design of MOP only allowed specifications without parameters, so it could not be used to state and monitor safety properties referring to two or more related objects. In this paper we propose a parametric specification formalism-independent extension of MOP, together with an implementation of JavaMOP that supports parameters. In our current implementation, parametric specifications are translated into AspectJ code and then weaved into the application using off-the-shelf AspectJ compilers; hence, MOP specifications can be seen as formal or logical aspects. Our JavaMOP implementation was extensively evaluated on two benchmarks, Dacapo [14] and Tracematches [8], showing that runtime verification in general and MOP in particular are feasible. In some of the examples, millions of monitor instances are generated, each observing a set of related objects. To keep the runtime overhead of monitoring and event observation low, we devised and implemented a decentralized indexing optimization. Less than 8% of the experiments showed more than 10% runtime overhead; in most cases our tool generates monitoring code as efficient as the hand-optimized code. Despite its genericity, JavaMOP is empirically shown to be more efficient than runtime verification systems specialized and optimized for particular specification formalisms. Many property violations were detected during our experiments; some of them are benign, others indicate defects in programs. Many of these are subtle and hard to find by ordinary testing. Feng Chen 0006, Grigore Rosu |
OOPSLA | 2 |
| 2007 | KOOL: An Application of Rewriting Logic to Language Prototyping and Analysis
Mark Hills 0001, Grigore Rosu |
RTA | 2 |
| 2007 | An instrumentation technique for online analysis of multithreaded programsabstractAbstract This paper presents an automatic code instrumentation technique, based onmultithreaded vector clocks, for extracting the causal partial order on relevant state update events from a running multithreaded program. This technique is used in a formal testing environment, not only to detect, but especially topredict safety errorsin multithreaded programs. The prediction process consists of rigorously analyzing other potential executions that are consistent with the causal partial order: some of these can be erroneous despite the fact that the particular observed execution was successful. The technique has been implemented as part of a Java program analysis tool. Copyright © 2006 John Wiley & Sons, Ltd. Grigore Rosu, Koushik Sen |
Concurr. Comput. Pract. Exp. | 1 |
| 2007 | The rewriting logic semantics project
José Meseguer 0001, Grigore Rosu |
Theor. Comput. Sci. | 2 |
| 2006 | Allen Linear (Interval) Temporal Logic - Translation to LTL and Monitor Synthesis
Grigore Rosu, Saddek Bensalem |
CAV | 1 |
| 2006 | Static Analysis to Enforce Safe Value Flow in Embedded Control SystemsabstractEmbedded control systems consist of multiple components with different criticality levels interacting with each other. For example, in a passenger jet, the navigation system interacts with the passenger entertainment system in providing passengers the distance-to-destination information. It is imperative that failures in the non-critical subsystem should not compromise critical functionality. This architectural principle for robustness can, however, be easily compromised by implementation-level errors. We describe Safe- Flow, which statically analyzes core components in the system to ensure that they use non-core values communicated through shared memory only if they are run-time monitored for safety or recoverability. Using simple, local annotations and semantic restrictions on shared memory usage in the core component, SafeFlow precisely identifies accesses to unmonitored non-core values. With a few false positives, it identifies erroneous dependencies of critical data on noncore values that can arise due to programming errors, inadvertent accesses, or wrong assumptions regarding the absence of difficult-to-detect implementation errors such as data races and synchronization. We demonstrate the utility of SafeFlow by applying it to discover critical value flow dependencies in three prototype systems. Sumant Kowshik, Grigore Rosu, Lui Sha |
DSN | 2 |
| 2006 | A Semantic Approach to Interpolation
Andrei Popescu 0001, Traian-Florin Serbanuta, Grigore Rosu |
FoSSaCS | 3 |
| 2006 | Equality of streams is a Pi0 over 2-complete problemabstractThis paper gives a precise characterization for the complexity of the problem of proving equal two streams defined with a finite number of equations: Π0 over 2. Since the Π 0 over 2 class includes properly both the reursively enumerable and the corecursively enumerable classes, this result implies that neither the set of pairs of equal streams nor the set of pairs of unequal streams is recursively enumerable. Consequently, one can find no algorithm for determining equality of streams, as well as no algorithm for determining inequality of streams. In particular, there is no complete proof system for equality of streams and no complete system for inequality of streams. Grigore Rosu |
ICFP | 1 |
| 2006 | Decentralized runtime analysis of multithreaded applicationsabstractViolations of a number of common safety properties of multithreaded programs - such as atomicity and absence of dataraces - cannot be observed by looking at the linear execution trace. We characterize a class of such properties, called robust properties, and define a simple but expressive epistemic logic to specify them. We then develop an efficient algorithm to automatically monitor and predict violations of robust safety properties. Our algorithm is based on capturing the causal structure of a computation through a mechanism similar to vector clock updates. The algorithm automatically synthesizes decentralized monitors to evaluate the information at each thread and to detect and predict safety violations. Based on this approach, a tool named DAME has been developed and evaluated on some simple examples. Koushik Sen, Abhay Vardhan, Gul A. Agha, Grigore Rosu |
IPDPS | 4 |
| 2006 | Computationally Equivalent Elimination of Conditions
Traian-Florin Serbanuta, Grigore Rosu |
RTA | 2 |
| 2006 | Parametric and Termination-Sensitive Control Dependence
Feng Chen 0006, Grigore Rosu |
SAS | 2 |
| 2006 | Online efficient predictive safety analysis of multithreaded programs
Koushik Sen, Grigore Rosu, Gul A. Agha |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2005 | Behavioral Extensions of Institutions
Andrei Popescu 0001, Grigore Rosu |
CALCO | 2 |
| 2005 | Efficient Monitoring of omega-Languages
Marcelo d'Amorim, Grigore Rosu |
CAV | 2 |
| 2005 | Formally Defining and Verifying Master/Slave Speculative Parallelization
Pierre Salverda, Grigore Rosu, Craig B. Zilles |
FM | 2 |
| 2005 | A Tree Based Router Search Engine Architecture with Single Port MemoriesabstractPipelined forwarding engines are used in core router to meet speed demands. Tree-based searches are pipelined across a number of stages to achieve high throughput, but this results in unevenly distributed memory. To address this imbalance, conventional approaches use either complex dynamic memory allocation schemes or over-provision each of the pipeline stages. This paper describes the microarchitecture of a novel network search processor which provides both high execution throughput and balanced memory distributor by dividing the tree into subtrees and allocating each subtree separately, allowing searches to begin at any pipeline stage. The architecture is validated by implementing and simulating state of the art solutions for IPv4 lookup, VPN forwarding and packet classification. The new pipeline scheme and memory allocator can provide searches with a memory allocation, efficiency that is within 1% of non-pipelined schemes. Florin Baboescu, Dean M. Tullsen, Grigore Rosu, Sumeet Singh |
ISCA | 3 |
| 2005 | Java-MOP: A Monitoring Oriented Programming Environment for Java
Feng Chen 0006, Grigore Rosu |
TACAS | 2 |
| 2005 | Rewriting-Based Techniques for Runtime Verification
Grigore Rosu, Klaus Havelund |
Autom. Softw. Eng. | 1 |
| 2005 | Foreword
Klaus Havelund, Grigore Rosu |
Formal Methods Syst. Des. | 2 |
| 2005 | Combining test case generation and runtime verification
Cyrille Artho, Howard Barringer, Allen Goldberg, Klaus Havelund, Sarfraz Khurshid, Michael R. Lowry, Corina Pasareanu, Grigore Rosu, Koushik Sen, Willem Visser, Richard Washington |
Theor. Comput. Sci. | 8 |
| 2004 | Formal Analysis of Java Programs in JavaFAN
Azadeh Farzan, Feng Chen 0006, José Meseguer 0001, Grigore Rosu |
CAV | 4 |
| 2004 | Extensional Theories and Rewriting
Grigore Rosu |
ICALP | 1 |
| 2004 | A Formal Monitoring-Based Framework for Software Development and Analysis
Feng Chen 0006, Marcelo d'Amorim, Grigore Rosu |
ICFEM | 3 |
| 2004 | Efficient Decentralized Monitoring of Safety in Distributed SystemsabstractWe describe an efficient decentralized monitoring algorithm that monitors a distributed program's execution to check for violations of safety properties. The monitoring is based on formulae written in PT-DTL, a variant of past time linear temporal logic that we define. PT-DTL is suitable for expressing temporal properties of distributed systems. Specifically, the formulae of PT-DTL are relative to a particular process and are interpreted over a projection of the trace of global states that represents what that process is aware of. A formula relative to one process may refer to other processes' local states through remote expressions and remote formulae. In order to correctly evaluate remote expressions, we introduce the notion of Knowledge Vector and provide an algorithm which keeps a process aware of other processes' local states that can affect the validity of a monitored PT-DTL formula. Both the logic and the monitoring algorithm are illustrated through a number of examples. Finally, we describe our implementation of the algorithm in a tool called DIANA. Koushik Sen, Abhay Vardhan, Gul A. Agha, Grigore Rosu |
ICSE | 4 |
| 2004 | An Instrumentation Technique for Online Analysis of Multithreaded ProgramsabstractSummary form only given. A formal analysis technique aiming at finding safety errors in multithreaded systems at runtime is investigated. An automatic code instrumentation procedure based on multithreaded vector clocks for generating the causal partial order on relevant state update events from a running multithreaded program is first presented. Then, by means of several examples, it is shown how this technique can be used in a formal testing environment, not only to detect, but especially to predict safety errors in multithreaded programs. The prediction process consists of rigorously analyzing other potential executions that are consistent with the causal partial order: some of these can be erroneous despite the fact that the particular observed execution is successful. The proposed technique has been implemented as part of a Java program analysis tool. A bytecode instrumentation package is used, so the Java source code of the tested programs is not necessary. Grigore Rosu, Koushik Sen |
IPDPS | 1 |
| 2004 | Online Efficient Predictive Safety Analysis of Multithreaded Programs
Koushik Sen, Grigore Rosu, Gul A. Agha |
TACAS | 2 |
| 2004 | Foreword - Selected Papers from the First International Workshop on Runtime Verification held in Paris, July 2001 (RV'01)
Klaus Havelund, Grigore Rosu |
Formal Methods Syst. Des. | 2 |
| 2004 | An Overview of the Runtime Verification Tool Java PathExplorer
Klaus Havelund, Grigore Rosu |
Formal Methods Syst. Des. | 2 |
| 2004 | Efficient monitoring of safety properties
Klaus Havelund, Grigore Rosu |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2004 | Behavioral abstraction is hiding information
Grigore Rosu |
Theor. Comput. Sci. | 1 |
| 2003 | Certifying Optimality of State Estimation Programs
Grigore Rosu, Ram Prasad Venkatesan, Jon Whittle 0001, Laurentiu Leustean |
CAV | 1 |
| 2003 | Certifying Measurement Unit Safety PolicabstractMeasurement unit safety policy checking is a topic in software analysis concerned with ensuring that programs do not violate basic principles of units of measurement. Such violations can hide significant domain-specific errors which are hard or impossible to find otherwise. Measurement unit analysis by means of automatic deduction is addressed in this paper. We draw general design principles for measurement unit certification tools and discuss our prototype for the C language, which includes both dynamic and static checkers. Our approach is based on assume/assert annotations of code, which are properly interpreted by our deduction-based tools and ignored by standard compilers. We do not modify the language in order to support units. The approach can be extended to incorporate other safety policies without great efforts. Grigore Rosu, Feng Chen 0006 |
ASE | 1 |
| 2003 | Rule-Based Analysis of Dimensional Safety
Feng Chen 0006, Grigore Rosu, Ram Prasad Venkatesan |
RTA | 2 |
| 2003 | Testing Extended Regular Language Membership Incrementally by Rewriting
Grigore Rosu, Mahesh Viswanathan 0001 |
RTA | 1 |
| 2003 | Runtime safety analysis of multithreaded programsabstractFoundational and scalable techniques for runtime safety analysis of multithreaded programs are explored in this paper. A technique based on vector clocks to extract the causal dependency order on state updates from a running multithreaded program is presented, together with algorithms to analyze a multithreaded computation against safety properties expressed using temporal logics. A prototype tool implementing our techniques, is also presented, together with examples where it can predict safety errors in multithreaded programs from successful executions of those programs. This tool is called Java MultiPathExplorer (JMPaX), and available for download on the web. To the best of our knowledge, JMPaX is the first tool of its kind. Koushik Sen, Grigore Rosu, Gul A. Agha |
ESEC / SIGSOFT FSE | 2 |
| 2002 | A Total Approach to Partial Algebraic Specification
José Meseguer 0001, Grigore Rosu |
ICALP | 2 |
| 2002 | Towards Certifying Domain-Specific Properties of Synthesized CodeabstractWe present a technique for certifying domain-specific properties of code generated using program synthesis technology. Program synthesis is a maturing technology that generates code from high-level specifications in particular domains. For acceptance in safety-critical applications, the generated code must be thoroughly tested which is a costly process. We show how the program synthesis system AUTOFILTER can be extended to generate not only code but also proofs that properties hold in the code. This technique has the potential to reduce the costs of testing generated code. Grigore Rosu, Jon Whittle 0001 |
ASE | 1 |
| 2002 | Synthesizing Monitors for Safety Properties
Klaus Havelund, Grigore Rosu |
TACAS | 2 |
| 2002 | Institution MorphismsabstractAbstract. Institutions formalise the intuitive notion of logical system, including syntax, semantics, and the relation of satisfaction between them. Our exposition emphasises the natural way that institutions can support deduction on sentences, and inclusions of signatures, theories, etc.; it also introduces terminology to clearly distinguish several levels of generality of the institution concept. A surprising number of different notions of morphism have been suggested for forming categories with institutions as objects, and an amazing variety of names have been proposed for them. One goal of this paper is to suggest a terminology that is uniform and informative to replace the current chaotic nomenclature; another goal is to investigate the properties and interrelations of these notions in a systematic way. Following brief expositions of indexed categories, diagram categories, twisted relations and Kan extensions, we demonstrate and then exploit the duality between institution morphisms in the original sense of Goguen and Burstall, and the ‘plain maps’ of Meseguer, obtaining simple uniform proofs of completeness and cocompleteness for both resulting categories. Because of this duality, we prefer the name ‘comorphism’ over ‘plain map’; moreover, we argue that morphisms are more natural than comorphisms in many cases. We also consider ‘theoroidal’ morphisms and comorphisms, which generalise signatures to theories, based on a theoroidal institution construction, finding that the ‘maps’ of Meseguer are theoroidal comorphisms, while theoroidal morphisms are a new concept. We introduce ‘forward’ and ‘semi-natural’ morphisms, and develop some of their properties. Appendices discuss institutions for partial algebra, a variant of order sorted algebra, two versions of hidden algebra, and a generalisation of universal algebra; these illustrate various points in the main text. A final appendix makes explicit a greater generality for the institution concept, clarifies certain details and proves some results that lift institution theory to this level. Joseph A. Goguen, Grigore Rosu |
Formal Aspects Comput. | 2 |
| 2002 | Axiomatizability in Inclusive Equational LogicsabstractA categorical framework for equational logics is presented, together with axiomatizability results in the style of Birkhoff. The distinctive categorical structures used are inclusion systems, which are an alternative to factorization systems in which factorization is required to be unique rather than unique ‘up to an isomorphism’. In this framework, models are any objects, and equations are special epimorphisms in [Cfr ], while satisfaction is injectivity. A first result says that equations-as-epimorphisms define exactly the quasi-varieties, suggesting that epimorphisms actually represent conditional equations. In fact, it is shown that the projectivity/freeness of the domain of epimorphisms is what makes the difference between unconditional and conditional equations, the first defining the varieties, as expected. An abstract version of the axiom of choice seems to be sufficient for free objects to be projective, in which case the definitional power of equations of projective and free domain, respectively, is the same. Connections with other abstract formulations of equational logics are investigated, together with an organization of our logic as an institution. Grigore Rosu |
Math. Struct. Comput. Sci. | 1 |
| 2001 | Monitoring Programs Using RewritingabstractWe present a rewriting algorithm for efficiently testing future time Linear Temporal Logic (LTL) formulae on finite execution traces. The standard models of LTL are infinite traces, reflecting the behavior of reactive and concurrent systems which conceptually may be continuously alive. In most past applications of LTL, theorem provers and model checkers have been used to formally prove that down-scaled models satisfy such LTL specifications. Our goal is instead to use LTL for up-scaled testing of real software applications, corresponding to analyzing the conformance of finite traces against LTL formulae. We first describe what it means for a finite trace to satisfy an LTL formula and then suggest an optimized algorithm based on transforming LTL formulae. We use the Maude rewriting logic, which turns out to be a good notation and being supported by an efficient rewriting engine for performing these experiments. The work constitutes part of the Java PathExplorer (JPAX) project, the purpose of which is to develop a flexible tool for monitoring Java program executions. Klaus Havelund, Grigore Rosu |
ASE | 2 |
| 2001 | Certifying Domain-Specific PoliciesabstractProof-checking code for compliance to safety policies potentially enables a product-oriented approach to certain aspects of software certification. To date, previous research has focused on generic, low-level programming-language properties such as memory type safety. In this paper we consider proof-checking higher-level domain-specific properties for compliance to safety policies. The paper first describes a framework related to abstract interpretation in which compliance to a class of certification policies can be efficiently calculated. Membership equational logic is shown to provide a rich logic for carrying out such calculations, including partiality, for certification. The architecture for a domain-specific certifier is described, followed by an implemented case study. The case study considers consistency of abstract variable attributes in code that performs geometric calculations in Aerospace systems. Michael R. Lowry, Thomas Pressburger, Grigore Rosu |
ASE | 3 |
| 2001 | Equational axiomatizability for coalgebra
Grigore Rosu |
Theor. Comput. Sci. | 1 |
| 2000 | Circular Coinductive RewritingabstractCircular coinductive rewriting is a new method for proving behavioral properties, that combines behavioral rewriting with circular coinduction. This method is implemented in our new BOBJ (Behavioral OBJects) behavioral specification and computation system, which is used in examples throughout this paper. These examples demonstrate the surprising power of circular coinductive rewriting. The paper also sketches the underlying hidden algebraic theory and briefly describes BOBJ and some of its algorithms. Joseph A. Goguen, Grigore Rosu |
ASE | 3 |
| 1997 | Distributed Cooperative Formal Methods ToolsabstractThis paper describes some tools to support formal methods, and conversely some formal methods for developing such tools. We focus on distributed cooperative proving over the web. Our tools include a proof editor/assistant, servers for remote proof execution, a distributed truth protocol, an editor generator; and a new method for interface design called algebraic semiotics, which combines semiotics with algebraic specification. Some examples are given. Joseph A. Goguen, Akira Mori, Grigore Rosu, Akiyoshi Sato |
ASE | 4 |
| 1997 | Weak Inclusion SystemsabstractWe define weak inclusion systems as a natural extension of inclusion systems. We prove that several properties of factorisation systems and inclusion systems remain valid under this extension and we obtain new properties as algebraic tools in abstract model theory. Virgil Emil Cazanescu, Grigore Rosu |
Math. Struct. Comput. Sci. | 2 |