VLDB 2026 Research / reviewers in the wild / expert
Steven M. German
dblp:65/723
· DBLP profile ↗
21ranked-venue papers
11as first author
0since 2021 · last 2011
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Theory of computation · 15 · 7 first-authorSoftware engineering, systems software and programming languages · 9 · 4 first-authorApplied, interdisciplinary, general and emerging computing · 2 · 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.
| Theoretical computer science
6 papers |
Automated reasoning and model checking · 78% Logic in computer science · 14% Distributed computing theory · 7% | |
| Software engineering, system software, and programming languages
7 papers |
Program verification · 43% Programming languages and type systems · 34% Concurrent programming · 17% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Processor architecture and microarchitecture · 100% |
Topics — the 29 heaviest of 30, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Automated reasoning and model checking › satisfiability modulo theories
equality logic with uninterpreted functions |
0.0 | 1 | 1999 | Exploiting Positive Equality in a Logic of Equality with Uninterpreted Functions · CAV 1999 |
Automated reasoning and model checking
satisfiability modulo theories |
0.0 | 1 | 1999 | Exploiting Positive Equality in a Logic of Equality with Uninterpreted Functions · CAV 1999 |
Processor architecture and microarchitecture › arithmetic unit
arithmetic unit design |
0.0 | 1 | 1996 | Verifying the SRT Division Algorithm Using Theorem Proving Techniques · CAV 1996 |
Automated reasoning and model checking
hardware verification |
0.0 | 1 | 1996 | Verifying the SRT Division Algorithm Using Theorem Proving Techniques · CAV 1996 |
Automated reasoning and model checking
theorem proving |
0.0 | 1 | 1996 | Verifying the SRT Division Algorithm Using Theorem Proving Techniques · CAV 1996 |
Distributed computing theory
concurrent systems |
0.0 | 1 | 1992 | Reasoning about Systems with Many Processes · J. ACM 1992 |
Automated reasoning and model checking
parameterized verification |
0.0 | 1 | 1992 | Reasoning about Systems with Many Processes · J. ACM 1992 |
Automated reasoning and model checking
temporal logic verification |
0.0 | 1 | 1992 | Reasoning about Systems with Many Processes · J. ACM 1992 |
Programming languages and type systems
language design |
0.0 | 1 | 1989 | Reasoning about Procedures as Parameters in the Language L4 · Inf. Comput. 1989 |
Program verification › program logic
hoare logic |
0.0 | 2 | 1983 | Effective Axiomatizations of Hoare Logics · J. ACM 1983 On Effective Axiomatizations of Hoare Logics · POPL 1982 |
Logic in computer science
concurrency theory |
0.0 | 1 | 1987 | Reasoning with Many Processes · LICS 1987 |
Logic in computer science
process algebra |
0.0 | 1 | 1987 | Reasoning with Many Processes · LICS 1987 |
Logic in computer science
proof theory |
0.0 | 1 | 1986 | True Relative Completeness of an Axiom System for the Language L4 (Abridged) · LICS 1986 |
Logic in computer science › proof systems
relative completeness |
0.0 | 1 | 1986 | True Relative Completeness of an Axiom System for the Language L4 (Abridged) · LICS 1986 |
Programming languages and type systems › concurrent programming languages
ada tasking |
0.0 | 1 | 1984 | Monitoring for Deadlock and Blocking in Ada Tasking · IEEE Trans. Software Eng. 1984 |
Concurrent programming
concurrency bugs |
0.0 | 1 | 1984 | Monitoring for Deadlock and Blocking in Ada Tasking · IEEE Trans. Software Eng. 1984 |
Concurrent programming
deadlock detection |
0.0 | 1 | 1984 | Monitoring for Deadlock and Blocking in Ada Tasking · IEEE Trans. Software Eng. 1984 |
Program verification › correctness proof
partial correctness |
0.0 | 2 | 1983 | On Effective Axiomatizations of Hoare Logics · POPL 1982 Effective Axiomatizations of Hoare Logics · J. ACM 1983 |
Program verification
axiomatization |
0.0 | 1 | 1983 | Effective Axiomatizations of Hoare Logics · J. ACM 1983 |
Program verification › correctness proof
total correctness |
0.0 | 1 | 1982 | On Effective Axiomatizations of Hoare Logics · POPL 1982 |
Programming languages and type systems
language semantics |
0.0 | 1 | 1989 | Reasoning about Procedures as Parameters in the Language L4 · Inf. Comput. 1989 |
Software testing › test oracle › test oracle generation
assertion generation |
0.0 | 1 | 1975 | A Synthesizer of Inductive Assertions · IEEE Trans. Software Eng. 1975 |
Program verification
correctness proof |
0.0 | 1 | 1975 | A Synthesizer of Inductive Assertions · IEEE Trans. Software Eng. 1975 |
Compilers and program optimization
program transformation |
0.0 | 1 | 1984 | Monitoring for Deadlock and Blocking in Ada Tasking · IEEE Trans. Software Eng. 1984 |
Programming languages and type systems › language semantics › formal semantics
axiomatic semantics |
0.0 | 1 | 1983 | Effective Axiomatizations of Hoare Logics · J. ACM 1983 |
Computational complexity
decidability |
0.0 | 1 | 1983 | Effective Axiomatizations of Hoare Logics · J. ACM 1983 |
Computational complexity › undecidability
halting problem |
0.0 | 1 | 1983 | Effective Axiomatizations of Hoare Logics · J. ACM 1983 |
Programming languages and type systems › programming paradigms › imperative languages
pascal |
0.0 | 1 | 1978 | Automating Proofs of the Absence of Common Runtime Errors · POPL 1978 |
Program analysis
symbolic execution |
0.0 | 1 | 1975 | A Synthesizer of Inductive Assertions · IEEE Trans. Software Eng. 1975 |
Methods — techniques the papers use, named apart from their topics
theorem proving · 0.0positive equality · 0.0temporal logic · 0.0CCS · 0.0decision procedures · 0.0decision procedure · 0.0recursive enumerability · 0.0hoare axiom systems · 0.0program transformation · 0.0operational state graph model · 0.0weak interpretation · 0.0symbolic evaluation · 0.0proof-based strengthening · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2011 | A theory of abstraction for arrays
Steven M. German |
FMCAD | 1 |
| 2007 | Transaction Based Modeling and Verification of Hardware ProtocolsabstractModeling hardware through atomic guard/action transitions with interleaving semantics is popular, owing to the conceptual clarity of modeling and verifying the high level behavior of hardware. In mapping such specifications into hardware, designers often decompose each specification transition into sequences of implementation transitions taking one clock cycle each. Some implementation transitions realizing a specification transition overlap. The implementation transitions realizing different specification transitions can also overlap. We present a formal theory of refinement, showing how a collection of such implementation transitions can be shown to realize a specification. We present a modular refinement verification approach by developing abstraction and assume-guarantee principles that allow implementation transitions realizing a single specification transition to be situated in sufficiently general environments. Illustrated on a non-trivial VHDL cache coherence engine, our work may allow designers to design high performance controllers without being constrained by fixed automated synthesis scripts, and still conduct modular verification. Steven M. German, Ganesh Gopalakrishnan |
FMCAD | 2 |
| 2003 | Formal Design of Cache Memory Protocols in IBM
Steven M. German |
Formal Methods Syst. Des. | 1 |
| 2001 | Processor verification using efficient reductions of the logic of uninterpreted functions to propositional logicabstractThe logic of Equality with Uninterpreted Functions (EUF) provides a means of abstracting the manipulation of data by a processor when verifying the correctness of its control logic. By reducing formulas in this logic to propositional formulas, we can apply Boolean methods such as ordered Binary Decision Diagrams (BDDs) and Boolean satisfiability checkers to perform the verification. We can exploit characteristics of the formulas describing the verification conditions to greatly simplfy the propostional formulas generated. We identify a class of terms we call “p-terms” for which equality comparisons can only be used in monotonically positive formulas. By applying suitable abstractions to the hardware model, we can express the functionality of data values and instruction addresses flowing through an instruction pipeline with p-terms. A decision procedure can exploit the restricted uses of p-terms by considering only “maximally diverse” interpretations of the associated function symbols, where every function application yields a different value execept when constrainted by functional consistency. We present two methods to translate formulas in EUF into propositional logic. The first interprets the formula over a domain of fixed-length bit vectors and uses vectors of propositional variables to encode domain variables. The second generates formulas encoding the conditions under which pairs of terms have equal valuations, introducing propostional variables to encode the equality relations between pairs of terms. Both of these approaches can exploit maximal diversity to greatly reduce the number of propositional variables that need to be introduced and to reduce the overall formula sizes. We present experimental results demonstrating the efficiency of this approach when verifying pipelined processors using the method proposed by Burch and Dill. Exploiting positive equality allows us to overcome the experimental blow-up experienced previously when verifying microprocessors with load, store, and branch instructions. Randal E. Bryant, Steven M. German, Miroslav N. Velev |
ACM Trans. Comput. Log. | 2 |
| 2000 | Executable Protocol Specification in ESL
Edmund M. Clarke, Steven M. German, Yuan Lu 0004, Helmut Veith |
FMCAD | 2 |
| 1999 | Exploiting Positive Equality in a Logic of Equality with Uninterpreted Functions
Randal E. Bryant, Steven M. German, Miroslav N. Velev |
CAV | 2 |
| 1999 | Microprocessor Verification Using Efficient Decision Procedures for a Logic of Equality with Uninterpreted Functions
Randal E. Bryant, Steven M. German, Miroslav N. Velev |
TABLEAUX | 2 |
| 1999 | Verifying the SRT Division Algorithm Using Theorem Proving Techniques
Edmund M. Clarke, Steven M. German, Xudong Zhao 0005 |
Formal Methods Syst. Des. | 2 |
| 1999 | Introduction to the Special Issue on Verification of Arithmetic Hardware
Steven M. German |
Formal Methods Syst. Des. | 1 |
| 1996 | Verifying the SRT Division Algorithm Using Theorem Proving Techniques
Edmund M. Clarke, Steven M. German, Xudong Zhao 0005 |
CAV | 2 |
| 1992 | Programming in a General Model of Synchronization
Steven M. German |
CONCUR | 1 |
| 1992 | Reasoning about Systems with Many ProcessesabstractMethods are given for automatically verifying temporal properties of concurrent systems containing an arbitrary number of finite-state processes that communicate using CCS actions. TWo models of systems are considered. Systems in the first model consist of a unique control process and an arbitrary number of user processes with identical definitions. For this model, a decision procedure to check whether all the executions of a process satisfy a given specification is presented. This algorithm runs in time double exponential in the sizes of the control and the user process definitions. It is also proven that it is decidable whether all the fair executions of a process satisfy a given specification. The second model is a special case of the first. In this model, all the processes have identical definitions. For this model, an efficient decision procedure is presented that checks if every execution of a process satisfies a given temporal logic specification. This algorithm runs in time polynomial in the size of the process definition. It is shown how to verify certain global properties such as mutual exclusion and absence of deadlocks. Finally, it is shown how these decision procedures can be used to reason about certain systems with a communication network. Steven M. German, A. Prasad Sistla |
J. ACM | 1 |
| 1992 | Semantics and Reasoning with Free Procedures
Steven M. German |
Theor. Comput. Sci. | 1 |
| 1989 | Reasoning about Procedures as Parameters in the Language L4
Steven M. German, Edmund M. Clarke, Joseph Y. Halpern |
Inf. Comput. | 1 |
| 1987 | Reasoning with Many Processes
A. Prasad Sistla, Steven M. German |
LICS | 2 |
| 1986 | True Relative Completeness of an Axiom System for the Language L4 (Abridged)
Steven M. German, Edmund M. Clarke, Joseph Y. Halpern |
LICS | 1 |
| 1984 | Monitoring for Deadlock and Blocking in Ada TaskingabstractWe present a deadlock monitoring algodrithm for Ada tasking programs which is based on transforming the source program. The transformations introduce a new task called the monitor, which receives information from all other tasks about their tasking activities. The monitor detects deadlocks consisting of circular entry calls as well as some noncircular blocking situations. The correctness of the program transformations is formulated and proved using an operational state graph model of tasking. The main issue in the correctness proof is to show that the deadlock monitor algorithm works correctly without having simultaneous information about the state of the program. In the course of this work, we have developed some useful techniques for programming tasking applications, such as a method for uniformly introducing task identifiers. We argue that the ease of finding and justifying program transformations is a good test of the generality and uniformity of a programming language. The complexity of the full Ada language makes it difficult to safely apply transformational methods to arbitrary programs. We discuss several problems with the current semantics of Ada's tasks. Steven M. German |
IEEE Trans. Software Eng. | 1 |
| 1983 | Effective Axiomatizations of Hoare LogicsabstractFor a wtde class of programming languages P and expressive interpretations I, tt is shown that there exist sound and relauvely complete Hoare logics for both partiabcorrectness and termmatton assertions.In fact, under mild assumpUons on P and I it is shown that the assertions true in I are uniformly decidable in the theory of I (Th(I)) fit" the halting problem for P is decidable for fLmte interpretations.Moreover the set of true termination assertions is uniformly recursively enumerable m Th(1) even ff the halting problem for P ~s not dectdable for finite interpretations.Since total-correctness assertions coincide with termination assertions for deterministic programming languages, this last result unexpectedly suggests that good axiom systems for total correctness may exist for a wider spectrum of languages than is the case for partml correctness. Edmund M. Clarke, Steven M. German, Joseph Y. Halpern |
J. ACM | 2 |
| 1982 | On Effective Axiomatizations of Hoare LogicsabstractFor a wide class of programming languages P and expressive interpretations I, we show that there exist sound and relatively complete Hoare-like logics for both partial correctness and termination assertions. In fact, under mild assumptions on P and I, we show that the assertions true for P in I are uniformly decidable in the theory of I (Th(I)) iff the halting problem for P is decidable for finite interpretations. Moreover termination assertions are uniformly r.e. in Th(I) even if the halting problem for P is not decidable for finite interpretations. Since total correctness assertions coincide with termination assertions for deterministic programming languages, this last result unexpectedly suggests that the class of languages with good axiom systems for total correctness may be wider than for partial correctness. Edmund M. Clarke, Steven M. German, Joseph Y. Halpern |
POPL | 2 |
| 1978 | Automating Proofs of the Absence of Common Runtime ErrorsabstractThe Runcheck Verifier is a working system for proving the absence of common runtime errors. The language accepted is Pascal without variant records, side effects in functions, shared variable parameters to procedures, or functional arguments. The errors checked are: 1) accessing a variable that has not been assigned a value, 2) array subscripting out of range, 3) subrange type error, 4) dereferencing a NIL pointer, 5) arithmetic overflow, and 6) division by zero. Steven M. German |
POPL | 1 |
| 1975 | A Synthesizer of Inductive AssertionsabstractDescribes a prototype system Vista which provides assistance in synthesizing correct inductive assertions. Given only the source program, it is able to generate a useful class of assertions automatically. For a larger class, it is able to extend partial inductive assertions supplied by the programmer to form complete assertions from which it proves program correctness. Its synthesis methods include: symbolic evaluation in a weak interpretation, combining output assertions with loop exit information to obtain trail loop assertions, and extracting information from proofs which fail in order to determine how assertions should be strengthened. Steven M. German, Ben Wegbreit |
IEEE Trans. Software Eng. | 1 |