Steven M. German

dblp:65/723 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Automated reasoning and model checking › satisfiability modulo theories
equality logic with uninterpreted functions
0.011999
Exploiting Positive Equality in a Logic of Equality with Uninterpreted Functions · CAV 1999
Automated reasoning and model checking
satisfiability modulo theories
0.011999
Exploiting Positive Equality in a Logic of Equality with Uninterpreted Functions · CAV 1999
Processor architecture and microarchitecture › arithmetic unit
arithmetic unit design
0.011996
Verifying the SRT Division Algorithm Using Theorem Proving Techniques · CAV 1996
Automated reasoning and model checking
hardware verification
0.011996
Verifying the SRT Division Algorithm Using Theorem Proving Techniques · CAV 1996
Automated reasoning and model checking
theorem proving
0.011996
Verifying the SRT Division Algorithm Using Theorem Proving Techniques · CAV 1996
Distributed computing theory
concurrent systems
0.011992
Reasoning about Systems with Many Processes · J. ACM 1992
Automated reasoning and model checking
parameterized verification
0.011992
Reasoning about Systems with Many Processes · J. ACM 1992
Automated reasoning and model checking
temporal logic verification
0.011992
Reasoning about Systems with Many Processes · J. ACM 1992
Programming languages and type systems
language design
0.011989
Reasoning about Procedures as Parameters in the Language L4 · Inf. Comput. 1989
Program verification › program logic
hoare logic
0.021983
Effective Axiomatizations of Hoare Logics · J. ACM 1983
On Effective Axiomatizations of Hoare Logics · POPL 1982
Logic in computer science
concurrency theory
0.011987
Reasoning with Many Processes · LICS 1987
Logic in computer science
process algebra
0.011987
Reasoning with Many Processes · LICS 1987
Logic in computer science
proof theory
0.011986
True Relative Completeness of an Axiom System for the Language L4 (Abridged) · LICS 1986
Logic in computer science › proof systems
relative completeness
0.011986
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.011984
Monitoring for Deadlock and Blocking in Ada Tasking · IEEE Trans. Software Eng. 1984
Concurrent programming
concurrency bugs
0.011984
Monitoring for Deadlock and Blocking in Ada Tasking · IEEE Trans. Software Eng. 1984
Concurrent programming
deadlock detection
0.011984
Monitoring for Deadlock and Blocking in Ada Tasking · IEEE Trans. Software Eng. 1984
Program verification › correctness proof
partial correctness
0.021983
On Effective Axiomatizations of Hoare Logics · POPL 1982
Effective Axiomatizations of Hoare Logics · J. ACM 1983
Program verification
axiomatization
0.011983
Effective Axiomatizations of Hoare Logics · J. ACM 1983
Program verification › correctness proof
total correctness
0.011982
On Effective Axiomatizations of Hoare Logics · POPL 1982
Programming languages and type systems
language semantics
0.011989
Reasoning about Procedures as Parameters in the Language L4 · Inf. Comput. 1989
Software testing › test oracle › test oracle generation
assertion generation
0.011975
A Synthesizer of Inductive Assertions · IEEE Trans. Software Eng. 1975
Program verification
correctness proof
0.011975
A Synthesizer of Inductive Assertions · IEEE Trans. Software Eng. 1975
Compilers and program optimization
program transformation
0.011984
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.011983
Effective Axiomatizations of Hoare Logics · J. ACM 1983
Computational complexity
decidability
0.011983
Effective Axiomatizations of Hoare Logics · J. ACM 1983
Computational complexity › undecidability
halting problem
0.011983
Effective Axiomatizations of Hoare Logics · J. ACM 1983
Programming languages and type systems › programming paradigms › imperative languages
pascal
0.011978
Automating Proofs of the Absence of Common Runtime Errors · POPL 1978
Program analysis
symbolic execution
0.011975
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
YearPublicationVenuePosition
2011 A theory of abstraction for arrays
Steven M. German
FMCAD1
2007 Transaction Based Modeling and Verification of Hardware Protocols
abstract
Modeling 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
FMCAD2
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 logic
abstract
The 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
FMCAD2
1999 Exploiting Positive Equality in a Logic of Equality with Uninterpreted Functions
Randal E. Bryant, Steven M. German, Miroslav N. Velev
CAV2
1999 Microprocessor Verification Using Efficient Decision Procedures for a Logic of Equality with Uninterpreted Functions
Randal E. Bryant, Steven M. German, Miroslav N. Velev
TABLEAUX2
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
CAV2
1992 Programming in a General Model of Synchronization
Steven M. German
CONCUR1
1992 Reasoning about Systems with Many Processes
abstract
Methods 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. ACM1
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
LICS2
1986 True Relative Completeness of an Axiom System for the Language L4 (Abridged)
Steven M. German, Edmund M. Clarke, Joseph Y. Halpern
LICS1
1984 Monitoring for Deadlock and Blocking in Ada Tasking
abstract
We 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 Logics
abstract
For 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. ACM2
1982 On Effective Axiomatizations of Hoare Logics
abstract
For 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
POPL2
1978 Automating Proofs of the Absence of Common Runtime Errors
abstract
The 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
POPL1
1975 A Synthesizer of Inductive Assertions
abstract
Describes 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