EDBT 2026 Demo / reviewers in the wild / expert
Stephen F. Siegel
dblp:50/540
· DBLP profile ↗
26ranked-venue papers
15as first author
4since 2021 · last 2025
0000-0001-9359-3332ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 22 · 11 first-author · 4 since 2021Theory of computation · 6 · 3 first-author · 3 since 2021Systems, architecture and hardware · 3 · 3 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Verifying PETSc Vector Components Using CIVLabstractAbstract This paper presents a modular approach to verifying the vector module of PETSc, a widely used library in scientific computing, using the CIVL model checker. Our approach relies on the creation of stub functions, which serve a dual purpose of specifying the intended behavior of individual PETSc functions and providing an abstraction for called functions to allow efficient verification of callers. This facilitates the use of symbolic execution and model checking to establish the correctness of isolated functions. Our work contributes to the ongoing effort to enhance the reliability of high-performance computing libraries and proposes an effective verification strategy for complex scientific software. Venkata Dhavala, Jan Hückelheim, Paul D. Hovland, Stephen F. Siegel |
CAV (1) | 4 |
| 2024 | Collective Contracts for Message-Passing Parallel ProgramsabstractAbstract Procedure contracts are a well-known approach for specifying programs in a modular way. We investigate a new contract theory for collective procedures in parallel message-passing programs. As in the sequential setting, one can verify that a procedure f conforms to its contract using only the contracts, and not the implementations, of the collective procedures called by f. We apply this approach to C programs that use the Message Passing Interface (MPI), introducing a new contract language that extends the ANSI/ISO C Specification Language. We present contracts for the standard MPI collective functions, as well as many user-defined collective functions. A prototype verification system has been implemented using the CIVL model checker for checking contract satisfaction within small bounds on the number of processes. Ziqing Luo, Stephen F. Siegel |
CAV (2) | 2 |
| 2023 | Model Checking Race-Freedom When "Sequential Consistency for Data-Race-Free Programs" is GuaranteedabstractAbstract Many parallel programming models guarantee that if all sequentially consistent (SC) executions of a program are free of data races, then all executions of the program will appear to be sequentially consistent. This greatly simplifies reasoning about the program, but leaves open the question of how to verify that all SC executions are race-free. In this paper, we show that with a few simple modifications, model checking can be an effective tool for verifying race-freedom. We explore this technique on a suite of C programs parallelized with OpenMP. Jan Hückelheim, Paul D. Hovland, Ziqing Luo, Stephen F. Siegel |
CAV (2) | 5 |
| 2022 | Verifying Fortran Programs with CIVLabstractAbstract Fortran is widely used in computational science, engineering, and high performance computing. This paper presents an extension to the CIVL verification framework to check correctness properties of Fortran programs. Unlike previous work that translates Fortran to C, LLVM IR, or other intermediate formats before verification, our work allows CIVL to directly consume Fortran source files. We extended the parsing, translation, and analysis phases to support Fortran-specific features such as array slicing and reshaping, and to find program violations that are specific to Fortran, such as argument aliasing rule violations, invalid use of variable and function attributes, or defects due to Fortran’s unspecified expression evaluation order. We demonstrate the usefulness of our tool on a verification benchmark suite and kernels extracted from a real world application. Jan Hückelheim, Paul D. Hovland, Stephen F. Siegel |
TACAS (1) | 4 |
| 2020 | Action-Based Model Checking: Logic, Automata, and ReductionabstractStutter invariant properties play a special role in state-based model checking: they are the properties that can be checked using partial order reduction (POR), an indispensable optimization. There are algorithms to decide whether an LTL formula or Büchi automaton (BA) specifies a stutter-invariant property, and to convert such a BA to a form that is appropriate for on-the-fly POR-based model checking. The interruptible properties play the same role in action-based model checking that stutter-invariant properties play in the state-based case. These are the properties that are invariant under the insertion or deletion of “invisible” actions. We present algorithms to decide whether an LTL formula or BA specifies an interruptible property, and show how a BA can be transformed to an interrupt normal form that can be used in an on-the-fly POR algorithm. We have implemented these algorithms in a new model checker named McRERS , and demonstrate their effectiveness using the RERS 2019 benchmark suite. Stephen F. Siegel, Yihao Yan |
CAV (2) | 1 |
| 2019 | What's Wrong with On-the-Fly Partial Order ReductionabstractPartial order reduction and on-the-fly model checking are well-known approaches for improving model checking performance. The two optimizations interact in subtle ways, so care must be taken when using them in combination. A standard algorithm combining the two optimizations, published over twenty years ago, has been widely studied and deployed in popular model checking tools. Yet the algorithm is incorrect. Counterexamples were discovered using the Alloy analyzer. A fix for a restricted class of property automata is proposed. Stephen F. Siegel |
CAV (2) | 1 |
| 2018 | Symbolic Execution and Deductive Verification Approaches to VerifyThis 2017 Challenges
Ziqing Luo, Stephen F. Siegel |
ISoLA (2) | 2 |
| 2018 | Evaluating Tools for Software Verification (Track Introduction)
Markus Schordan, Dirk Beyer 0001, Stephen F. Siegel |
ISoLA (2) | 3 |
| 2018 | Verifying Properties of Differentiable Programs
Jan Hückelheim, Ziqing Luo, Sri Hari Krishna Narayanan, Stephen F. Siegel, Paul D. Hovland |
SAS | 4 |
| 2017 | The RERS 2017 challenge and workshop (invited paper)abstractRERS is an annual verification challenge that focuses on LTL and reachability properties of reactive systems. In 2017, RERS was extended to a one day workshop that in addition to the original challenge program also featured an invited talk about possible future developments. As a satellite of ISSTA and SPIN, the 2017 RERS Challenge itself increased emphasis on the parallel benchmark problems which, like their sequential counterparts, were generated using property-preserving transformations in order to scale their level of difficulty. The first half of the RERS workshop focused on the 2017 benchmark profiles, the evaluation of the received contributions, and short presentations of each participating team. The second half comprised discussions about attractive problem scenarios for future benchmarks, like race detection, the topic of the invited talk, and about systematic ways to leverage a tool's performance based on competition benchmarks and machine learning. Marc Jasper, Maximilian Fecke, Bernhard Steffen, Markus Schordan, Jeroen Meijer, Jaco van de Pol, Falk Howar, Stephen F. Siegel |
SPIN | 8 |
| 2016 | CIVL: Applying a General Concurrency Verification Framework to C/Pthreads Programs (Competition Contribution)
Manchun Zheng, John G. Edenhofner, Ziqing Luo, Mitchell J. Gerrard, Michael S. Rogers, Matthew B. Dwyer, Stephen F. Siegel |
TACAS | 7 |
| 2016 | Connecting and Serving the Software Engineering CommunityabstractPresents an editorial discusses the current status and activities supported by this publication. Matthew B. Dwyer, Eric Bodden, Brian Fitzgerald 0001, Miryung Kim, Sunghun Kim 0001, Amy J. Ko, Emilia Mendes, Raffaela Mirandola, Ana Moreira 0001, Forrest Shull, Stephen F. Siegel, Tao Xie 0001 |
IEEE Trans. Software Eng. | 11 |
| 2015 | CIVL: Formal Verification of Parallel ProgramsabstractCIVL is a framework for static analysis and verification of concurrent programs. One of the main challenges to practical application of these techniques is the large number of ways to express concurrency: MPI, OpenMP, CUDA, and Pthreads, for example, are just a few of many "concurrency dialects" in wide use today. These dialects are constantly evolving and it is increasingly common to use several of them in a single "hybrid" program. CIVL addresses these problems by providing a concurrency intermediate verification language, CIVL-C, as well as translators that consume C programs using these dialects and produce CIVL-C. Analysis and verification tools which operate on CIVL-C can then be applied easily to a wide variety of concurrent C programs. We demonstrate CIVL's error detection and verification capabilities on (1) an MPI+OpenMP program that estimates π and contains a subtle race condition, and (2) an MPI-based 1d-wave simulator that fails to conform to a simple sequential implementation. Manchun Zheng, Michael S. Rogers, Ziqing Luo, Matthew B. Dwyer, Stephen F. Siegel |
ASE | 5 |
| 2015 | CIVL: the concurrency intermediate verification languageabstractThere are many ways to express parallel programs: message-passing libraries (MPI) and multithreading/GPU language extensions such as OpenMP, Pthreads, and CUDA, are but a few. This multitude creates a serious challenge for developers of software verification tools: it takes enormous effort to develop such tools, but each development effort typically targets one small part of the concurrency landscape, with little sharing of techniques and code among efforts. Stephen F. Siegel, Manchun Zheng, Ziqing Luo, Timothy K. Zirkel, Andre V. Marianiello, John G. Edenhofner, Matthew B. Dwyer, Michael S. Rogers |
SC | 1 |
| 2012 | Loop Invariant Symbolic Execution for Parallel Programs
Stephen F. Siegel, Timothy K. Zirkel |
VMCAI | 1 |
| 2012 | Transparent partial order reduction
Stephen F. Siegel |
Formal Methods Syst. Des. | 1 |
| 2011 | Automatic formal verification of MPI-based parallel programsabstractThe Toolkit for Accurate Scientific Software (TASS) is a suite of tools for the formal verification of MPI-based parallel programs used in computational science. TASS can verify various safety properties as well as compare two programs for functional equivalence. The TASS front end takes an integer n ≥ 1 and a C/MPI program, and constructs an abstract model of the program with n processes. Procedures, structs, (multi-dimensional) arrays, heap-allocated data, pointers, and pointer arithmetic are all representable in a TASS model. The model is then explored using symbolic execution and explicit state space enumeration. A number of techniques are used to reduce the time and memory consumed. A variety of realistic MPI programs have been verified with TASS, including Jacobi iteration and manager-worker type programs, and some subtle defects have been discovered. TASS is written in Java and is available from http://vsl.cis.udel.edu/tass under the Gnu Public License. Stephen F. Siegel, Timothy K. Zirkel |
PPoPP | 1 |
| 2011 | Formal Analysis of Message Passing - (Invited Talk)
Stephen F. Siegel, Ganesh Gopalakrishnan |
VMCAI | 1 |
| 2011 | Collective Assertions
Stephen F. Siegel, Timothy K. Zirkel |
VMCAI | 1 |
| 2008 | Combining symbolic execution with model checking to verify parallel numerical programsabstractWe present a method to verify the correctness of parallel programs that perform complex numerical computations, including computations involving floating-point arithmetic. This method requires that a sequential version of the program be provided, to serve as the specification for the parallel one. The key idea is to use model checking, together with symbolic execution, to establish the equivalence of the two programs. In this approach the path condition from symbolic execution of the sequential program is used to constrain the search through the parallel program. To handle floating-point operations, three different types of equivalence are supported. Several examples are presented, demonstrating the approach and actual errors that were found. Limitations and directions for future research are also described. Stephen F. Siegel, Anastasia Mironova, George S. Avrunin, Lori A. Clarke |
ACM Trans. Softw. Eng. Methodol. | 1 |
| 2007 | Model Checking Nonblocking MPI Programs
Stephen F. Siegel |
VMCAI | 1 |
| 2006 | Using model checking with symbolic execution to verify parallel numerical programsabstractWe present a method to verify the correctness of parallel programs that perform complex numerical computations, including computations involving floating-point arithmetic. The method requires that a sequential version of the program be provided, to serve as the specification for the parallel one. The key idea is to use model checking, together with symbolic execution, to establish the equivalence of the two programs. Stephen F. Siegel, Anastasia Mironova, George S. Avrunin, Lori A. Clarke |
ISSTA | 1 |
| 2005 | Modeling wildcard-free MPI programs for verificationabstractWe give several theorems that can be used to substantially reduce the state space that must be considered in applying finite-state verification techniques, such as model checking, to parallel programs written using a subset of MPI. We illustrate the utility of these theorems by applying them to a small but realistic example. Stephen F. Siegel, George S. Avrunin |
PPoPP | 1 |
| 2005 | Efficient Verification of Halting Properties for MPI Programs with Wildcard Receives
Stephen F. Siegel |
VMCAI | 1 |
| 2002 | Improving the Precision of INCA by Eliminating Solutions with Spurious CyclesabstractThe Inequality Necessary Condition Analyzer (INCA) is a finite-state verification tool that has been able to check properties of some very large concurrent systems. INCA checks a property of a concurrent system by generating a system of inequalities that must have integer solutions if the property can be violated. There may, however, be integer solutions to the inequalities that do not correspond to an execution violating the property. INCA thus accepts the possibility of an inconclusive result in exchange for greater tractability. We describe here a method for eliminating one of the two main sources of these inconclusive results. Stephen F. Siegel, George S. Avrunin |
IEEE Trans. Software Eng. | 1 |
| 2000 | Improving the precision of INCA by preventing spurious cyclesabstractThe Inequality Necessary Condition Analyzer (INCA) is a finite-state verification tool that has been able to check properties of some very large concurrent systems. INCA checks a property of a concurrent system by generating a system of inequalities that must have integer solutions if the property can be violated. There may, however, be integer solutions to the inequalities that do not correspond to an execution violating the property. INCA thus accepts the possibility of an inconclusive result in exchange for greater tractability. We describe here a method for eliminating one of the two main sources of these inconclusive results. Stephen F. Siegel, George S. Avrunin |
ISSTA | 1 |