Corneliu Popeea

dblp:78/3366 · DBLP profile ↗
← Back
22ranked-venue papers
9as first author
0since 2021 · last 2014
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 17 · 6 first-authorGraphics, computer vision, multimedia, augmented reality and games · 5 · 3 first-authorTheory of computation · 3 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
5 papers
Program verification · 81% Programming languages and type systems · 18% Program analysis · 1%
Theoretical computer science
2 papers
Automated reasoning and model checking · 56% Logic in computer science · 29% Algorithmic game theory and mechanism design · 15%

Topics — the 18 heaviest of 21, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Algorithmic game theory and mechanism design
graph games
0.212014
A constraint-based approach to solving games on infinite graphs · POPL 2014
Automated reasoning and model checking › game-based verification
infinite-state games
0.212014
A constraint-based approach to solving games on infinite graphs · POPL 2014
Automated reasoning and model checking › model checking
infinite-state model checking
0.212014
A constraint-based approach to solving games on infinite graphs · POPL 2014
Logic in computer science › temporal logic
linear temporal logic
0.212014
A constraint-based approach to solving games on infinite graphs · POPL 2014
Automated reasoning and model checking
program verification
0.212014
A constraint-based approach to solving games on infinite graphs · POPL 2014
Logic in computer science
temporal logic
0.212014
A constraint-based approach to solving games on infinite graphs · POPL 2014
Automated reasoning and model checking
constraint solving
0.212013
Solving Existentially Quantified Horn Clauses · CAV 2013
Program verification
abstraction refinement
0.112011
Predicate abstraction and refinement for verifying multi-threaded programs · POPL 2011
Program verification
concurrent program verification
0.112011
Threader: A Constraint-Based Verifier for Multi-threaded Programs · CAV 2011
Program verification
constraint-based verification
0.112011
Threader: A Constraint-Based Verifier for Multi-threaded Programs · CAV 2011
Program verification
deductive verification
0.112011
Threader: A Constraint-Based Verifier for Multi-threaded Programs · CAV 2011
Program verification › concurrent program verification
multithreaded program verification
0.112011
Predicate abstraction and refinement for verifying multi-threaded programs · POPL 2011
Program verification › abstraction-based verification
predicate abstraction
0.112011
Predicate abstraction and refinement for verifying multi-threaded programs · POPL 2011
Program verification
safety verification
0.112011
Predicate abstraction and refinement for verifying multi-threaded programs · POPL 2011
Programming languages and type systems
type systems
0.122006
A flow-based approach for variant parametric types · OOPSLA 2006
Verifying safety policies with size properties and alias controls · ICSE 2005
Programming languages and type systems › type theory
dependent types
0.112005
Verifying safety policies with size properties and alias controls · ICSE 2005
Program verification
type-based verification
0.112005
Verifying safety policies with size properties and alias controls · ICSE 2005
Program analysis › static analysis
pointer analysis
0.012005
Verifying safety policies with size properties and alias controls · ICSE 2005

Methods — techniques the papers use, named apart from their topics

constraint solving · 0.4horn clauses · 0.2deductive proof rules · 0.2recursive equations over auxiliary assertions · 0.1procedure summaries · 0.1inductive invariants · 0.1recursion-free horn clauses · 0.1environment transition discovery · 0.1type checking · 0.1
YearPublicationVenuePosition
2014 Reduction for compositional verification of multi-threaded programs
abstract
Automated verification of multi-threaded programs requires keeping track of a very large number of possible interactions between the program threads. Different reasoning methods have been proposed that alleviate the explicit enumeration of all thread interleavings, e.g., Lipton's theory of reduction or Owicki-Gries method for compositional reasoning, however their synergistic interplay has not yet been fully explored. In this paper we explore the applicability of the theory of reduction for pruning of equivalent interleavings for the automated verification of multi-threaded programs with infinite-state spaces. We propose proof rules for safety and termination of multi-threaded programs that integrate into an Owicki-Gries based compositional verifier. The verification conditions of our method are Horn clauses, thus facilitating automation by using off-the-shelf Horn clause solvers. We present preliminary experimental results that show the advantages of our approach when compared to state-of-the-art verifiers of C programs.
Corneliu Popeea, Andrey Rybalchenko, Andreas Wilhelm
FMCAD1
2014 A constraint-based approach to solving games on infinite graphs
abstract
We present a constraint-based approach to computing winning strategies in two-player graph games over the state space of infinite-state programs. Such games have numerous applications in program verification and synthesis, including the synthesis of infinite-state reactive programs and branching-time verification of infinite-state programs. Our method handles games with winning conditions given by safety, reachability, and general Linear Temporal Logic (LTL) properties. For each property class, we give a deductive proof rule that --- provided a symbolic representation of the game players --- describes a winning strategy for a particular player. Our rules are sound and relatively complete. We show that these rules can be automated by using an off-the-shelf Horn constraint solver that supports existential quantification in clause heads. The practical promise of the rules is demonstrated through several case studies, including a challenging "Cinderella-Stepmother game" that allows infinite alternation of discrete and continuous choices by two players, as well as examples derived from prior work on program repair and synthesis.
Tewodros A. Beyene, Swarat Chaudhuri, Corneliu Popeea, Andrey Rybalchenko
POPL3
2013 Solving Existentially Quantified Horn Clauses
Tewodros A. Beyene, Corneliu Popeea, Andrey Rybalchenko
CAV2
2013 Threader: A Verifier for Multi-threaded Programs - (Competition Contribution)
Corneliu Popeea, Andrey Rybalchenko
TACAS1
2013 Dual analysis for proving safety and finding bugs
Corneliu Popeea, Wei-Ngan Chin
Sci. Comput. Program.1
2012 Synthesizing software verifiers from proof rules
abstract
Automatically generated tools can significantly improve programmer productivity. For example, parsers and dataflow analyzers can be automatically generated from declarative specifications in the form of grammars, which tremendously simplifies the task of implementing a compiler. In this paper, we present a method for the automatic synthesis of software verification tools. Our synthesis procedure takes as input a description of the employed proof rule, e.g., program safety checking via inductive invariants, and produces a tool that automatically discovers the auxiliary assertions required by the proof rule, e.g., inductive loop invariants and procedure summaries. We rely on a (standard) representation of proof rules using recursive equations over the auxiliary assertions. The discovery of auxiliary assertions, i.e., solving the equations, is based on an iterative process that extrapolates solutions obtained for finitary unrollings of equations. We show how our method synthesizes automatic safety and liveness verifiers for programs with procedures, multi-threaded programs, and functional programs. Our experimental comparison of the resulting verifiers with existing state-of-the-art verification tools confirms the practicality of the approach.
Sergey Grebenshchikov, Nuno P. Lopes, Corneliu Popeea, Andrey Rybalchenko
PLDI3
2012 HSF(C): A Software Verifier Based on Horn Clauses - (Competition Contribution)
Sergey Grebenshchikov, Ashutosh Gupta 0001, Nuno P. Lopes, Corneliu Popeea, Andrey Rybalchenko
TACAS4
2012 Compositional Termination Proofs for Multi-threaded Programs
Corneliu Popeea, Andrey Rybalchenko
TACAS1
2011 Solving Recursion-Free Horn Clauses over LI+UIF
Ashutosh Gupta 0001, Corneliu Popeea, Andrey Rybalchenko
APLAS2
2011 Threader: A Constraint-Based Verifier for Multi-threaded Programs
Ashutosh Gupta 0001, Corneliu Popeea, Andrey Rybalchenko
CAV2
2011 Predicate abstraction and refinement for verifying multi-threaded programs
abstract
Automated verification of multi-threaded programs requires explicit identification of the interplay between interacting threads, so-called environment transitions, to enable scalable, compositional reasoning. Once the environment transitions are identified, we can prove program properties by considering each program thread in isolation, as the environment transitions keep track of the interleaving with other threads. Finding adequate environment transitions that are sufficiently precise to yield conclusive results and yet do not overwhelm the verifier with unnecessary details about the interleaving with other threads is a major challenge. In this paper we propose a method for safety verification of multi-threaded programs that applies (transition) predicate abstraction-based discovery of environment transitions, exposing a minimal amount of information about the thread interleaving. The crux of our method is an abstraction refinement procedure that uses recursion-free Horn clauses to declaratively state abstraction refinement queries. Then, the queries are resolved by a corresponding constraint solving algorithm. We present preliminary experimental results for mutual exclusion protocols and multi-threaded device drivers.
Ashutosh Gupta 0001, Corneliu Popeea, Andrey Rybalchenko
POPL2
2010 Non-monotonic Refinement of Control Abstraction for Concurrent Programs
Ashutosh Gupta 0001, Corneliu Popeea, Andrey Rybalchenko
ATVA2
2008 Analysing memory resource bounds for low-level programs
abstract
Embedded systems are becoming more widely used but these systems are often resource constrained. Programming models for these systems should take into formal consideration resources such as stack and heap. In this paper, we show how memory resource bounds can be inferred for assembly-level programs. Our inference process captures the memory needs of each method in terms of the symbolic values of its parameters. For better precision, we infer path-sensitive information through a novel guarded expression format. Our current proposal relies on a Presburger solver to capture memory requirements symbolically, and to perform fixpoint analysis for loops and recursion. Apart from safety in memory adequacy, our proposal can provide estimate on memory costs for embedded devices and improve performance via fewer runtime checks against memory bound.
Wei-Ngan Chin, Huu Hai Nguyen, Corneliu Popeea, Shengchao Qin
ISMM3
2008 A practical and precise inference and specializer for array bound checks elimination
abstract
Arrays are intensively used in many software programs, including those in the popular graphics and game programming domains. Although the problem of eliminating redundant array bound checks has been studied for a long time, there are few works that attempt to be both aggressively precise and practical. We propose an inference mechanism that achieves both aims by combining a forward relational analysis with a backward precondition derivation. Our inference algorithm works for a core imperative language with assignments, and analyses each method once through a summary-based approach. Our inference is precise as it is both path and context sensitive. Through a novel technique that can strengthen preconditions, we can selectively reduce the sizes of formulae to support a practical inference algorithm. Moreover, we subject each inferred program to a flexivariant specialization that can achieve good tradeoff between elimination of array checks and code explosion concerns. We have proven the soundness of our approach and have also implemented a prototype inference and specialization system. Initial experiments suggest that such a desired system is viable.
Corneliu Popeea, Dana N. Xu, Wei-Ngan Chin
PEPM1
2006 A flow-based approach for variant parametric types
abstract
10.1145/1167473.1167498
Wei-Ngan Chin, Florin Craciun, Siau-Cheng Khoo, Corneliu Popeea
OOPSLA4
2005 Verifying safety policies with size properties and alias controls
abstract
Many software properties can be analysed through a relational size analysis on each function's inputs and outputs. Such relational analysis (through a form of dependent typing) has been successfully applied to declarative programs, and to restricted imperative programs; but it has been elusive for object-based programs. The main challenge is that objects may mutate and they may be aliased. In this paper, we show how safety policies of programs can be analysed by tracking size properties of objects and be enforced by objects' invariants and the preconditions of methods. We propose several new ideas to allow both mutability and sharing of objects, whilst aiming for precision in our analysis. We introduce the concept of size-immutability to facilitate sharing, and also a set of alias controls to track unaliased objects whose size properties may change. We formalise our results through a set of advanced type checking rules for an object-based imperative language. We re-affirm the utility of the proposed type system by showing how a variety of software properties can be automatically verified according to size-inspired safety policies.
Wei-Ngan Chin, Siau-Cheng Khoo, Shengchao Qin, Corneliu Popeea, Huu Hai Nguyen
ICSE4
2004 A type system for resource protocol verification and its correctness proof
abstract
We present a new method, based on a form of dependent typing, to verify the correct usage of resources in a program. Our approach allows complex resources to be specified, whose properties are captured by annotated types and conditions on invariance and final states. The protocol itself is specified through a set of pre-defined methods, whose pre-condition and post-condition together, enforce the correct temporal usage of each resource type. We design a simple language together with a type system that shows how resource protocol verification can be achieved. We formalise an operational semantics for the language and provide a correctness proof which confirms that well-typed programs conform to the specified protocol of each resource type.
Corneliu Popeea, Wei-Ngan Chin
PEPM1
2003 Efficient state-space approach for FIR filter bank completion
Corneliu Popeea, Bogdan Dumitrescu, Boris Jora
Signal Process.1
2002 Accurate computation of compaction filters with high regularity
abstract
Regularity constraints may be added in the design of compaction filters in two ways, named by us explicit and implicit. Most of the previous work used the explicit approach. We show that the implicit form is much more appropriate in terms of numerical accuracy. We also integrate the implicit approach in the semidefinite programming (SDP) framework, guaranteeing thus global optimality.
Bogdan Dumitrescu, Corneliu Popeea
IEEE Signal Process. Lett.2
2001 An efficient algorithm for FIR filter bank completion
abstract
This paper presents an algorithm for designing an FIR paraunitary filter bank when one or several filters are given. The algorithm is based on the properties of the balanced state-space representation of the polyphase matrix. We show that this representation may be computed via a single RQ decomposition thus gaining significant efficiency with respect to previous work. Application of the algorithm to signal-adapted filter banks is also discussed.
Corneliu Popeea, Bogdan Dumitrescu, Boris Jora
ICASSP1
2001 Optimal compaction gain by eigenvalue minimization
Corneliu Popeea, Bogdan Dumitrescu
Signal Process.1
2000 A low complexity SDP method for designing optimum compaction filters
abstract
We propose a new technique for finding the optimum FIR compaction filter adapted to signal statistics. The main novelty of our approach is the transformation of the original problem into the maximum eigenvalue minimization of a parameterized Toeplitz matrix, with only O(N) variables. This is a typical application of semidefinite programming (SDP) and may be solved with reliable interior-point algorithms. Our algorithm is to be compared with the method of Tuqan and Vaidyanathan (1998), which has O(N/sup 2/) variables. The numerical experiments show that the optimum compaction filter is obtained with good numerical accuracy and convenient execution time for filters of order up to 100.
Bogdan Dumitrescu, Corneliu Popeea
ICASSP2