VLDB 2026 Research / reviewers in the wild / expert
Kenneth L. McMillan
dblp:m/KennethLMcMillan
· DBLP profile ↗
103ranked-venue papers
39as first author
10since 2021 · last 2026
0000-0003-4389-7471ORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 64 · 32 first-author · 7 since 2021Theory of computation · 50 · 23 first-author · 3 since 2021Systems, architecture and hardware · 18 · 2 first-authorComputer networks · 2 · 1 first-authorArtificial intelligence and machine learning · 1 · 1 since 2021Applied, interdisciplinary, general and emerging computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Simplifying Safety Proofs with Forward-Backward Reasoning and ProphecyabstractWe propose an incremental approach for safety proofs that decomposes a proof with a complex inductive invariant into a sequence of simpler proof steps. Our proof system combines rules for (i) forward reasoning using inductive invariants, (ii) backward reasoning using inductive invariants of a time-reversed system, and (iii) prophecy steps that add witnesses for existentially quantified properties. We prove each rule sound and give a construction that recovers a single safe inductive invariant from an incremental proof. The construction of the invariant demonstrates the increased complexity of a single inductive invariant compared to the invariant formulas used in an incremental proof, which may have simpler Boolean structures and fewer quantifiers and quantifier alternations. Under natural restrictions on the available invariant formulas, each proof rule strictly increases proof power. That is, each rule allows to prove more safety problems with the same set of formulas. Thus, the incremental approach is able to reduce the search space of invariant formulas needed to prove safety of a given system. A case study on Paxos, several of its variants, and Raft demonstrates that forward-backward steps can remove complex Boolean structure while prophecy eliminates quantifiers and quantifier alternations. Eden Frenkel, Kenneth L. McMillan, Oded Padon, Sharon Shoham |
Proc. ACM Program. Lang. | 2 |
| 2024 | Toward Liveness Proofs at ScaleabstractAbstract While the problem of mechanized proof of liveness of reactive programs has been studied for decades, there is currently no method of proving liveness that is conceptually simple to apply in practice to realistic problems, can be scaled to large problems without modular decomposition, and does not fail unpredictably due to the use of fragile heuristics. We introduce a method of liveness proof by relational rankings, implement it, and show that it meets these criteria in a realistic industrial case study involving a model of the memory subsystem in a CPU. Kenneth L. McMillan |
CAV (1) | 1 |
| 2024 | NeuroBack: Improving CDCL SAT Solving using Graph Neural NetworksabstractPropositional satisfiability (SAT) is an NP-complete problem that impacts many
research fields, such as planning, verification, and security. Mainstream modern
SAT solvers are based on the Conflict-Driven Clause Learning (CDCL) algorithm.
Recent work aimed to enhance CDCL SAT solvers using Graph Neural Networks
(GNNs). However, so far this approach either has not made solving more effective,
or required substantial GPU resources for frequent online model inferences. Aiming
to make GNN improvements practical, this paper proposes an approach called
NeuroBack, which builds on two insights: (1) predicting phases (i.e., values) of
variables appearing in the majority (or even all) of the satisfying assignments are
essential for CDCL SAT solving, and (2) it is sufficient to query the neural model
only once for the predictions before the SAT solving starts. Once trained, the
offline model inference allows NeuroBack to execute exclusively on the CPU,
removing its reliance on GPU resources. To train NeuroBack, a new dataset called
DataBack containing 120,286 data samples is created. Finally, NeuroBack is implemented
as an enhancement to a state-of-the-art SAT solver called Kissat. As a result,
it allowed Kissat to solve 5.2% more problems on the recent SAT competition
problem set, SATCOMP-2022. NeuroBack therefore shows how machine learning
can be harnessed to improve SAT solving in an effective and practical manner. Mohit Tiwari, Sarfraz Khurshid, Kenneth L. McMillan, Risto Miikkulainen |
ICLR | 5 |
| 2024 | Invariant Checking for SMT-Based Systems with QuantifiersabstractThis article addresses the problem of checking invariant properties for a large class of symbolic transition systems defined by a combination of SMT theories and quantifiers. State variables can be functions from an uninterpreted sort (finite but unbounded) to an interpreted sort, such as the integers under the theory of linear arithmetic. This formalism is very expressive and can be used for modeling parameterized systems, array-manipulating programs, and more. We propose two algorithms for finding universal inductive invariants for such systems. The first algorithm combines an IC3-style loop with a form of implicit predicate abstraction to construct an invariant in an incremental manner. The second algorithm constructs an under-approximation of the original problem and searches for a formula which is an inductive invariant for this case; then, the invariant is generalized to the original case and checked with a portfolio of techniques. We have implemented the two algorithms and conducted an extensive experimental evaluation, considering various benchmarks and different tools from the literature. As far as we know, our method is the first capable of handling in a large class of systems in a uniform way. The experiment shows that both algorithms are competitive with the state of the art. Gianluca Redondi, Alessandro Cimatti, Alberto Griggio, Kenneth L. McMillan |
ACM Trans. Comput. Log. | 4 |
| 2023 | Fixing Privilege Escalations in Cloud Access Control with MaxSAT and Graph Neural NetworksabstractIdentity and Access Management (IAM) is an access control service employed within cloud platforms. Customers must configure IAM to establish secure access control rules for their cloud organizations. However, IAM misconfigurations can be exploited to conduct Privilege Escalation (PE) attacks, resulting in significant financial losses. Consequently, addressing these PEs is crucial for improving security assurance for cloud customers. Nevertheless, the area of repairing IAM PEs due to IAM mis-configurations is relatively underexplored. To our knowledge, the only existing IAM repair tool called IAM-Deescalate focuses on a limited number of IAM PE patterns, indicating the potential for further enhancements. We propose a novel IAM Privilege Escalation Repair Engine called IAMPERE that efficiently generates an approximately minimal patch for repairing a broader range of IAM PEs. To achieve this, we first formulate the IAM repair problem into a MaxSAT problem. Despite the remarkable success of modern MaxSAT solvers, their scalability for solving complex repair problems remains a challenge due to the state explosion. To improve scalability, we employ deep learning to prune the search space. Specifically, we apply a carefully designed GNN model to generate an intermediate patch that is relatively small, but not necessarily minimal. We then apply a MaxSAT solver to search for a minimum repair within the space defined by the intermediate patch, as the final approximately minimum patch. Experimental results on both synthesized and real-world IAM misconfigurations show that, compared to IAM-Deescalate, IAMPERE repairs a significantly larger number of IAM misconfigurations with markedly smaller patch sizes. Sarfraz Khurshid, Kenneth L. McMillan, Mohit Tiwari |
ASE | 4 |
| 2023 | Synthesizing History and Prophecy Variables for Symbolic Model Checking
Cole Vick, Kenneth L. McMillan |
VMCAI | 2 |
| 2023 | Counterexample Driven Quantifier Instantiations with Applications to Distributed ProtocolsabstractFormally verifying infinite-state systems can be a daunting task, especially when it comes to reasoning about quantifiers. In particular, quantifier alternations in conjunction with function symbols can create function cycles that result in infinitely many ground terms, making it difficult for solvers to instantiate quantifiers and causing them to diverge. This can leave users with no useful information on how to proceed. To address this issue, we propose an interactive verification methodology that uses a relational abstraction technique to mitigate solver divergence in the presence of quantifiers. This technique abstracts functions in the verification conditions (VCs) as one-to-one relations, which avoids the creation of function cycles and the resulting proliferation of ground terms. Relational abstraction is sound and guarantees correctness if the solver cannot find counter-models. However, it may also lead to false counterexamples, which can be addressed by refining the abstraction and requiring the existence of corresponding elements. In the domain of distributed protocols, we can refine the abstraction by diagnosing counterexamples and manually instantiating elements in the range of the original function. If the verification conditions are correct, there always exist finitely many refinement steps that eliminate all spurious counter-models, making the approach complete. We applied this approach in Ivy to verify the safety properties of consensus protocols and found that: (1) most verification goals can be automatically verified using relational abstraction, while SMT solvers often diverge when given the original VC, (2) only a few manual instantiations were needed, and the counterexamples provided valuable guidance for the user compared to timeouts produced by the traditional approach, and (3) the technique can be used to derive efficient low-level implementations of tricky algorithms. Orr Tamir, Marcelo Taube, Kenneth L. McMillan, Sharon Shoham, Jon Howell, Guy Golan-Gueta, Shmuel Sagiv |
Proc. ACM Program. Lang. | 3 |
| 2022 | SymMC: approximate model enumeration and counting using symmetry information for Alloy specificationsabstractSpecifying and analyzing critical properties of software systems plays an important role in the development of reliable systems. Alloy is a mature tool-set that provides a first-order relational logic for writing specifications, and a fully automatic powerful backend for analyzing the specifications. It has been widely applied in areas including verification, security, and synthesis. Kenneth L. McMillan, Sarfraz Khurshid |
ESEC/SIGSOFT FSE | 3 |
| 2022 | Induction duality: primal-dual search for invariantsabstractMany invariant inference techniques reason simultaneously about states and predicates, and it is well-known that these two kinds of reasoning are in some sense dual to each other. We present a new formal duality between states and predicates, and use it to derive a new primal-dual invariant inference algorithm. The new induction duality is based on a notion of provability by incremental induction that is formally dual to reachability, and the duality is surprisingly symmetric. The symmetry allows us to derive the dual of the well-known Houdini algorithm, and by combining Houdini with its dual image we obtain primal-dual Houdini , the first truly primal-dual invariant inference algorithm. An early prototype of primal-dual Houdini for the domain of distributed protocol verification can handle difficult benchmarks from the literature. Oded Padon, James R. Wilcox, Jason R. Koenig, Kenneth L. McMillan, Alex Aiken |
Proc. ACM Program. Lang. | 4 |
| 2021 | Temporal prophecy for proving temporal properties of infinite-state systemsabstractAbstract Various verification techniques for temporal properties transform temporal verification to safety verification. For infinite-state systems, these transformations are inherently imprecise. That is, for some instances, the temporal property holds, but the resulting safety property does not. This paper introduces a mechanism for tackling this imprecision. This mechanism, which we call temporal prophecy, is inspired by prophecy variables. Temporal prophecy refines an infinite-state system using first-order linear temporal logic formulas, via a suitable tableau construction. For a specific liveness-to-safety transformation based on first-order logic, we show that using temporal prophecy strictly increases the precision. Furthermore, temporal prophecy leads to robustness of the proof method, which is manifested by a cut elimination theorem. We integrate our approach into the Ivy deductive verification system, and show that it can handle challenging temporal verification examples. Oded Padon, Jochen Hoenicke, Kenneth L. McMillan, Andreas Podelski, Shmuel Sagiv, Sharon Shoham |
Formal Methods Syst. Des. | 3 |
| 2020 | Ivy: A Multi-modal Verification Tool for Distributed AlgorithmsabstractIvy is a multi-modal verification tool for correct design and implementation of distributed protocols and algorithms, supporting modular specification, implementation and proof. Ivy supports proving safety and liveness properties of parameterized and infinite-state systems via three modes: deductive verification using an SMT solver, abstraction and model checking, and manual proofs using natural deduction. It supports light-weight formal methods via compositional specification-based testing and bounded model checking. Ivy can extract executable distributed programs by translation to efficient C++ code. It is designed to support decidable automated reasoning, to improve proof stability and to provide transparency in the case of proof failures. For this purpose, it presents concrete finite counterexamples, automatically audits proofs for decidability of verification conditions, and provides modular hiding of theories. Kenneth L. McMillan, Oded Padon |
CAV (2) | 1 |
| 2019 | Formal specification and testing of QUICabstractQUIC is a new Internet secure transport protocol currently in the process of IETF standardization. It is intended as a replacement for the TLS/TCP stack and will be the basis of HTTP/3, the next official version of the hypertext transfer protocol. As a result, it is likely, in the near future, to carry a substantial fraction of traffic on the Internet. We describe our experience applying a methodology of compositional specification-based testing to QUIC. We develop a formal specification of the wire protocol, and use this specification to generate automated randomized testers for implementations of QUIC. The testers effectively take one role of the QUIC protocol, interacting with the other role to generate full protocol executions, and verifying that the implementations conform to the formal specification. This form of testing generates significantly more diverse stimuli and stronger correctness criteria than interoperability testing, the primary method used to date to validate QUIC and its implementations. As a result, numerous implementation errors have been found. These include some vulnerabilities at the protocol and implementation levels, such as an off-path denial of service scenario and an information leak similar to the "heartbleed" vulnerability in OpenSSL. Kenneth L. McMillan, Lenore D. Zuck |
SIGCOMM | 1 |
| 2018 | Eager Abstraction for Symbolic Model CheckingabstractWe introduce a method of abstraction from infinite-state to finite-state model checking based on eager theory explication and evaluate the method in a collection of case studies. 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. Kenneth L. McMillan |
CAV (1) | 1 |
| 2018 | Learning Abstractions for Program SynthesisabstractMany example-guided program synthesis techniques use abstractions to prune the search space. While abstraction-based synthesis has proven to be very powerful, a domain expert needs to provide a suitable abstract domain, together with the abstract transformers of each DSL construct. However, coming up with useful abstractions can be non-trivial, as it requires both domain expertise and knowledge about the synthesizer. In this paper, we propose a new technique for learning abstractions that are useful for instantiating a general synthesis framework in a new domain. Given a DSL and a small set of training problems, our method uses tree interpolation to infer reusable predicate templates that speed up synthesis in a given domain. Our method also learns suitable abstract transformers by solving a certain kind of second-order constraint solving problem in a data-driven way. We have implemented the proposed method in a tool called Atlas and evaluate it in the context of the Blaze meta-synthesizer. Our evaluation shows that (a) Atlas can learn useful abstract domains and transformers from few training problems, and (b) the abstractions learned by Atlas allow Blaze to achieve significantly better results compared to manually-crafted abstractions. Xinyu Wang 0006, Greg Anderson 0003, Isil Dillig, Kenneth L. McMillan |
CAV (1) | 4 |
| 2018 | Temporal Prophecy for Proving Temporal Properties of Infinite-State SystemsabstractVarious verification techniques for temporal properties transform temporal verification to safety verification. For infinite-state systems, these transformations are inherently imprecise. That is, for some instances, the temporal property holds, but the resulting safety property does not. This paper introduces a mechanism for tackling this imprecision. This mechanism, which we call temporal prophecy, is inspired by prophecy variables. Temporal prophecy refines an infinite-state system using first-order linear temporal logic formulas, via a suitable tableau construction. For a specific liveness-to-safety transformation based on first-order logic, we show that using temporal prophecy strictly increases the precision. Furthermore, temporal prophecy leads to robustness of the proof method, which is manifested by a cut elimination theorem. We integrate our approach into the Ivy deductive verification system, and show that it can handle challenging temporal verification examples. Oded Padon, Jochen Hoenicke, Kenneth L. McMillan, Andreas Podelski, Shmuel Sagiv, Sharon Shoham |
FMCAD | 3 |
| 2018 | Modularity for decidability of deductive verification with applications to distributed systemsabstractProof automation can substantially increase productivity in formal verification of complex systems. However, unpredictablility of automated provers in handling quantified formulas presents a major hurdle to usability of these tools. We propose to solve this problem not by improving the provers, but by using a modular proof methodology that allows us to produce decidable verification conditions. Decidability greatly improves predictability of proof automation, resulting in a more practical verification approach. We apply this methodology to develop verified implementations of distributed protocols, demonstrating its effectiveness. Marcelo Taube, Giuliano Losa, Kenneth L. McMillan, Oded Padon, Shmuel Sagiv, Sharon Shoham, James R. Wilcox, Doug Woos |
PLDI | 3 |
| 2018 | Deductive Verification in Decidable Fragments with Ivy
Kenneth L. McMillan, Oded Padon |
SAS | 1 |
| 2018 | P^5 : Planner-less Proofs of Probabilistic Parameterized Protocols
Lenore D. Zuck, Kenneth L. McMillan, Jordan Torf |
VMCAI | 2 |
| 2017 | Synthesis of circular compositional program proofs via abduction
Isil Dillig, Thomas Dillig, Boyang Li 0002, Kenneth L. McMillan, Shmuel Sagiv |
Int. J. Softw. Tools Technol. Transf. | 4 |
| 2016 | Modular specification and verification of a cache-coherent interfaceabstractWe consider the problem of constructing a modular specification for a cache coherence protocol implementing a weakly consistent shared memory model. That is, we wish to specify the interface between components in a way that, if all components locally satisfy their interface specifications, the components collectively implement the desired memory semantics. The problem we face is that the semantics involves an existential quantifier over memory orderings that cannot be witnessed locally. We solve this problem using a specification idiom based on reference objects and circular assume-guarantee reasoning. The specification is written using a language and a tool called Ivy. We use Ivy to specify the TileLink coherent memory interface protocol and to prove compositionally that interconnections of TileLink components implement the memory semantics correctly. The specification is also used for modular specification-based testing of RTL components. Kenneth L. McMillan |
FMCAD | 1 |
| 2016 | Ivy: safety verification by interactive generalizationabstractDespite several decades of research, the problem of formal verification of infinite-state systems has resisted effective automation. We describe a system --- Ivy --- for interactively verifying safety of infinite-state systems. Ivy's key principle is that whenever verification fails, Ivy graphically displays a concrete counterexample to induction. The user then interactively guides generalization from this counterexample. This process continues until an inductive invariant is found. Ivy searches for universally quantified invariants, and uses a restricted modeling language. This ensures that all verification conditions can be checked algorithmically. All user interactions are performed using graphical models, easing the user's task. We describe our initial experience with verifying several distributed protocols. Oded Padon, Kenneth L. McMillan, Aurojit Panda, Shmuel Sagiv, Sharon Shoham |
PLDI | 2 |
| 2015 | Compositional Verification of Procedural Programs using Horn Clauses over Integers and ArraysabstractWe present a compositional SMT-based algorithm for safety of procedural C programs that takes the heap into consideration as well. Existing SMT-based approaches are either largely restricted to handling linear arithmetic operations and properties, or are non-compositional. We use Constrained Horn Clauses (CHCs) to represent the verification conditions where the memory operations are modeled using the extensional theory of arrays (ARR). First, we describe an exponential time quantifier elimination (QE) algorithm for ARR which can introduce new quantifiers of the index and value sorts. Second, we adapt the QE algorithm to efficiently obtain under-approximations using models, resulting in a polynomial time Model Based Projection (MBP) algorithm. Third, we integrate the MBP algorithm into the framework of compositional reasoning of procedural programs using may and must summaries recently proposed by us. Our solutions to the CHCs are currently restricted to quantifierfree formulas. Finally, we describe our practical experience over SV-COMP'15 benchmarks using an implementation in the tool SPACER. Anvesh Komuravelli, Nikolaj S. Bjørner, Arie Gurfinkel, Kenneth L. McMillan |
FMCAD | 4 |
| 2014 | Lazy Annotation Revisited
Kenneth L. McMillan |
CAV | 1 |
| 2013 | Beautiful Interpolants
Aws Albarghouthi, Kenneth L. McMillan |
CAV | 2 |
| 2013 | Inductive invariant generation via abductive inferenceabstractThis paper presents a new method for generating inductive loop invariants that are expressible as boolean combinations of linear integer constraints. The key idea underlying our technique is to perform a backtracking search that combines Hoare-style verification condition generation with a logical abduction procedure based on quantifier elimination to speculate candidate invariants. Starting with true, our method iteratively strengthens loop invariants until they are inductive and strong enough to verify the program. A key feature of our technique is that it is lazy: It only infers those invariants that are necessary for verifying program correctness. Furthermore, our technique can infer arbitrary boolean combinations (including disjunctions) of linear invariants. We have implemented the proposed approach in a tool called HOLA. Our experiments demonstrate that HOLA can infer interesting invariants that are beyond the reach of existing state-of-the-art invariant generation tools. Isil Dillig, Thomas Dillig, Boyang Li 0002, Kenneth L. McMillan |
OOPSLA | 4 |
| 2013 | On Solving Universally Quantified Horn Clauses
Nikolaj S. Bjørner, Kenneth L. McMillan, Andrey Rybalchenko |
SAS | 2 |
| 2013 | Differential assertion checkingabstractPrevious version of a program can be a powerful enabler for program analysis by defining new relative specifications and making the results of current program analysis more relevant. In this paper, we describe the approach of differential assertion checking (DAC) for comparing different versions of a program with respect to a set of assertions. DAC provides a natural way to write relative specifications over two programs. We introduce a novel modular approach to DAC by reducing it to safety checking of a composed program, which can be accomplished by standard program verifiers. In particular, we leverage automatic invariant generation to synthesize relative specifications for pairs of loops and procedures. We provide a preliminary evaluation of a prototype implementation within the SymDiff tool along two directions (a) soundly verifying bug fixes in the presence of loops and (b) providing a knob for suppressing alarms when checking a new version of a program. Shuvendu K. Lahiri, Kenneth L. McMillan, Rahul Sharma 0001, Chris Hawblitzel |
ESEC/SIGSOFT FSE | 2 |
| 2013 | Synthesis of Circular Compositional Program Proofs via Abduction
Boyang Li 0002, Isil Dillig, Thomas Dillig, Kenneth L. McMillan, Shmuel Sagiv |
TACAS | 4 |
| 2012 | Minimum Satisfying Assignments for SMT
Isil Dillig, Thomas Dillig, Kenneth L. McMillan, Alex Aiken |
CAV | 3 |
| 2011 | Interpolants from Z3 proofs
Kenneth L. McMillan |
FMCAD | 1 |
| 2011 | Widening and Interpolation
Kenneth L. McMillan |
SAS | 1 |
| 2011 | Invisible Invariants and Abstract Interpretation
Kenneth L. McMillan, Lenore D. Zuck |
SAS | 1 |
| 2010 | Lazy Annotation for Program Testing and Verification
Kenneth L. McMillan |
CAV | 1 |
| 2009 | Generalizing DPLL to Richer Logics
Kenneth L. McMillan, Andreas Kuehlmann, Shmuel Sagiv |
CAV | 1 |
| 2009 | What's in Common between Test, Model Checking, and Decision Procedures?
Kenneth L. McMillan |
FMICS | 1 |
| 2008 | Relevance heuristics for program analysisabstractRelevance heuristics allow us to tailor a program analysis to a particular property to be verified. This in turn makes it possible to improve the precision of the analysis where needed, while maintaining scalability. In this talk I will discuss the principles by which SAT solvers and other decision procedures decide what information is relevant to a given proof. Then we will see how these ideas can be exploited in program verification using the method of Craig interpolation. The result is an analysis that is finely tuned to prove a given property of a program. At the end of the talk, I will cover some recent research in this area, including the use of interpolants for verifying heap-manipulating programs. Kenneth L. McMillan |
POPL | 1 |
| 2008 | Quantified Invariant Generation Using an Interpolating Saturation Prover
Kenneth L. McMillan |
TACAS | 1 |
| 2008 | Automated assumption generation for compositional verification
Anubhav Gupta 0001, Kenneth L. McMillan, Zhaohui Fu |
Formal Methods Syst. Des. | 2 |
| 2007 | Toward Property-Driven Abstraction for Heap Manipulating Programs
Kenneth L. McMillan |
ATVA | 1 |
| 2007 | Automated Assumption Generation for Compositional Verification
Anubhav Gupta 0001, Kenneth L. McMillan, Zhaohui Fu |
CAV | 2 |
| 2007 | Array Abstractions from Proofs
Ranjit Jhala, Kenneth L. McMillan |
CAV | 2 |
| 2007 | Combining Abstraction Refinement and SAT-Based Model Checking
Nina Amla, Kenneth L. McMillan |
TACAS | 2 |
| 2007 | Interpolants and Symbolic Model Checking
Kenneth L. McMillan |
VMCAI | 1 |
| 2007 | Interpolant-Based Transition Relation ApproximationabstractIn predicate abstraction, exact image computation is problematic, requiring in the worst case an exponential number of calls to a decision procedure. For this reason, software model checkers typically use a weak approximation of the image. This can result in a failure to prove a property, even given an adequate set of predicates. We present an interpolant-based method for strengthening the abstract transition relation in case of such failures. This approach guarantees convergence given an adequate set of predicates, without requiring an exact image computation. We show empirically that the method converges more rapidly than an earlier method based on counterexample analysis. Ranjit Jhala, Kenneth L. McMillan |
Log. Methods Comput. Sci. | 2 |
| 2006 | Lazy Abstraction with Interpolants
Kenneth L. McMillan |
CAV | 1 |
| 2006 | Liveness by Invisible Invariants
Yi Fang 0001, Kenneth L. McMillan, Amir Pnueli, Lenore D. Zuck |
FORTE | 2 |
| 2006 | A Practical and Complete Approach to Predicate Refinement
Ranjit Jhala, Kenneth L. McMillan |
TACAS | 2 |
| 2005 | Interpolant-Based Transition Relation Approximation
Ranjit Jhala, Kenneth L. McMillan |
CAV | 2 |
| 2005 | Applications of Craig Interpolants in Model Checking
Kenneth L. McMillan |
TACAS | 1 |
| 2005 | Deciding Global Partial-Order Properties
Rajeev Alur, Kenneth L. McMillan, Doron A. Peled |
Formal Methods Syst. Des. | 2 |
| 2005 | An interpolating theorem prover
Kenneth L. McMillan |
Theor. Comput. Sci. | 1 |
| 2004 | A Hybrid of Counterexample-Based and Proof-Based Abstraction
Nina Amla, Kenneth L. McMillan |
FMCAD | 2 |
| 2004 | Abstractions from proofsabstractThe success of model checking for large programs depends crucially on the ability to efficiently construct parsimonious abstractions. A predicate abstraction is parsimonious if at each control location, it specifies only relationships between current values of variables, and only those which are required for proving correctness. Previous methods for automatically refining predicate abstractions until sufficient precision is obtained do not systematically construct parsimonious abstractions: predicates usually contain symbolic variables, and are added heuristically and often uniformly to many or all control locations at once. We use Craig interpolation to efficiently construct, from a given abstract error trace which cannot be concretized, a parsominous abstraction that removes the trace. At each location of the trace, we infer the relevant predicates as an interpolant between the two formulas that define the past and the future segment of the trace. Each interpolant is a relationship between current values of program variables, and is relevant only at that particular program location. It can be found by a linear scan of the proof of infeasibility of the trace.We develop our method for programs with arithmetic and pointer expressions, and call-by-value function calls. For function calls, Craig interpolation offers a systematic way of generating relevant predicates that contain only the local variables of the function and the values of the formal parameters when the function was called. We have extended our model checker Blast with predicate discovery by Craig interpolation, and applied it successfully to C programs with more than 130,000 lines of code, which was not possible with approaches that build less parsimonious abstractions. Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, Kenneth L. McMillan |
POPL | 4 |
| 2004 | An Interpolating Theorem Prover
Kenneth L. McMillan |
TACAS | 1 |
| 2003 | Interpolation and SAT-Based Model Checking
Kenneth L. McMillan |
CAV | 1 |
| 2003 | Methods for exploiting SAT solvers in unbounded model checkingabstractModern SAT solvers have proved highly successful in finding counterexamples to temporal properties of systems, using a method known as "bounded model checking". It is natural to ask whether these solvers can also be exploited for proving correctness. In fact, techniques do exist for proving properties using SAT solvers, but for the most part existing methods are either incomplete or have a low capacity relative to bounded model checking. In this paper we consider two new methods that exploit a SAT solver's ability to generate refutations in order to prove properties in an unbounded sense. Kenneth L. McMillan |
MEMOCODE | 1 |
| 2003 | Craig Interpolation and Reachability Analysis
Kenneth L. McMillan |
SAS | 1 |
| 2003 | Experimental Analysis of Different Techniques for Bounded Model Checking
Nina Amla, Robert P. Kurshan, Kenneth L. McMillan, Ricardo H. Medel |
TACAS | 3 |
| 2003 | Automatic Abstraction without Counterexamples
Kenneth L. McMillan, Nina Amla |
TACAS | 1 |
| 2002 | Applying SAT Methods in Unbounded Symbolic Model Checking
Kenneth L. McMillan |
CAV | 1 |
| 2001 | Microarchitecture Verification by Compositional Model Checking
Ranjit Jhala, Kenneth L. McMillan |
CAV | 2 |
| 2001 | Theory of latency-insensitive designabstractThe theory of latency-insensitive design is presented as the foundation of a new correct-by-construction methodology to design complex systems by assembling intellectual property components. Latency-insensitive designs are synchronous distributed systems and are realized by composing functional modules that exchange data on communication channels according to an appropriate protocol. The protocol works on the assumption that the modules are stallable, a weak condition to ask them to obey. The goal of the protocol is to guarantee that latency-insensitive designs composed of functionally correct modules behave correctly independently of the channel latencies. This allows us to increase the robustness of a design implementation because any delay variations of a channel can be "recovered" by changing the channel latency while the overall system functionality remains unaffected. As a consequence, an important application of the proposed theory is represented by the latency-insensitive methodology to design large digital integrated circuits by using deep submicrometer technologies. Luca P. Carloni, Kenneth L. McMillan, Alberto L. Sangiovanni-Vincentelli |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 2 |
| 2000 | Induction in Compositional Model Checking
Kenneth L. McMillan, Shaz Qadeer, James B. Saxe |
CAV | 1 |
| 2000 | Some Strategies for Proving Theorems with a Model Checker
Kenneth L. McMillan |
LICS | 1 |
| 2000 | Model-Checking of Correctness Conditions for Concurrent ObjectsabstractThe notions of serializability, linearizability, and sequential consistency are used in the specification of concurrent systems. We show that the model checking problem for each of these properties can be cast in terms of the containment of one regular language in another regular language shuffled using a semicommutative alphabet. The three model checking problems are shown to be, respectively, in P space , in E xpspace , and undecidable. Rajeev Alur, Kenneth L. McMillan, Doron A. Peled |
Inf. Comput. | 2 |
| 2000 | A methodology for hardware verification using compositional model checking
Kenneth L. McMillan |
Sci. Comput. Program. | 1 |
| 2000 | Sibling-substitution-based BDD minimization using don't caresabstractIn many computer-aided design tools, binary decision diagrams (BDDs) are used to represent Boolean functions. To increase the efficiency and capability of these tools, many algorithms have been developed to reduce the size of the BDDs. This paper presents heuristic algorithms to minimize the size of the BDDs representing incompletely specified functions by intelligently assigning don't cares to binary values. Experimental results show that new algorithms yield significantly smaller BDDs compared with existing algorithms yet still require manageable run-times. These algorithms are particularly useful for synthesis application where the structure of the hardware/software is derived from the BDD representation of the function to implement because the minimization quality is more critical than the minimization speed in these applications. Youpyo Hong, Peter A. Beerel, Jerry R. Burch, Kenneth L. McMillan |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 4 |
| 1999 | Latency Insensitive Protocols
Luca P. Carloni, Kenneth L. McMillan, Alberto L. Sangiovanni-Vincentelli |
CAV | 2 |
| 1999 | A methodology for correct-by-construction latency insensitive designabstractIn deep sub-micron (DSM) designs, performance will depend critically on the latency of long wires. We propose a new synthesis methodology for synchronous systems that makes the design functionally insensitive to the latency of long wires. Given a synchronous specification of a design, we generate a functionally equivalent synchronous implementation that can tolerate arbitrary communication latency between latches. By using latches we can break a long wire in short segments which can be traversed while meeting a single clock cycle constraint. The overall goal is to obtain a design that is robust with respect to delays of long wires, in a shorter time by reducing the multiple iterations between logical and physical design, and with performance that is optimized with respect to the speed of the single components of the design. We describe the details of the proposed methodology as well as report on the latency insensitive design of PDLX, an out-of-order microprocessor with speculative-execution. Luca P. Carloni, Kenneth L. McMillan, Alexander Saldanha, Alberto L. Sangiovanni-Vincentelli |
ICCAD | 2 |
| 1999 | Probabilistic state space searchabstractThis paper describes a probabilistic approach to state space search. The presented method applies a ranking of the design states according to their probability of reaching a given target state based on a random walk model. This ranking can be used to prioritize an explicit or partial symbolic state exploration to find a trajectory from a set of initial states to a set of target states. A symbolic technique for estimating the reachability probability is described which implements a smooth trade-off between accuracy and computing effort. The presented probabilistic state space search complements incomplete verification methods which are specialized in finding errors in large designs. Andreas Kuehlmann, Kenneth L. McMillan, Robert K. Brayton |
ICCAD | 2 |
| 1998 | Verification of an Implementation of Tomasulo's Algorithm by Compositional Model Checking
Kenneth L. McMillan |
CAV | 1 |
| 1998 | Approximation and Decomposition of Binary Decision DiagramsabstractEfficient techniques for the manipulation of Binary Decision Diagrams (BDDs) are key to the success of formal verification tools. Recent advances in reachability analysis and model checking algorithms have emphasized the need for efficient algorithms for the approximation and decomposition of BDDs. In this paper we present a new algorithm for approximation and analyze its performance in comparison with existing techniques. We also introduce a new decomposition algorithm that produces balanced partitions. The effectiveness of our contributions is demonstrated by improved results in reachability analysis for some hard problem instances. Kavita Ravi, Kenneth L. McMillan, Thomas R. Shiple, Fabio Somenzi |
DAC | 2 |
| 1998 | Minimalist Proof Assistants: Interactions of Technology and Methodology in Formal System Level Verification (abstract)
Kenneth L. McMillan |
FMCAD | 1 |
| 1998 | Proof Rules for Model Checking Systems with Data
Kenneth L. McMillan |
FSTTCS | 1 |
| 1998 | Deciding Global Partial-Order Properties
Rajeev Alur, Kenneth L. McMillan, Doron A. Peled |
ICALP | 2 |
| 1997 | A Compositional Rule for Hardware Design Refinement
Kenneth L. McMillan |
CAV | 1 |
| 1997 | Safe BDD Minimization Using Don't CaresabstractIn many computer-aided design tools, binary decision diagrams(BDDs) are used to represent Boolean functions. To increase theefficiency and capability of these tools, many algorithms have beendeveloped to reduce the size of BDDs. This paper presents heuristicalgorithms that minimize the size of BDDs representing incompletelyspecified functions by intelligently assigning don't cares tobinary values. The traditional algorithm, restrict [Verification of Synchronous Sequential Machines Based on Symbolic Execution], is often effectivein BDD minimization, but can increase the BDD size. We proposenew algorithms based on restrict which are guaranteed neverto increase the size of the BDD, thereby significantly reducing peakmemory requirements. Experimental results show that our techniquestypically yield significantly smaller BDDs than restrict. Youpyo Hong, Peter A. Beerel, Jerry R. Burch, Kenneth L. McMillan |
DAC | 4 |
| 1997 | Spectral Transforms for Large Boolean Functions with Applications to Technology Mapping
Edmund M. Clarke, Kenneth L. McMillan, Xudong Zhao 0005, Jerry Chih-Yuan Yang |
Formal Methods Syst. Des. | 2 |
| 1996 | Symbolic Model Checking
Edmund M. Clarke, Kenneth L. McMillan, Sérgio Vale Aguiar Campos, Vasiliki Hartonas-Garmhausen |
CAV | 2 |
| 1996 | A Conjunctively Decomposed Boolean Representation for Symbolic Model Checking
Kenneth L. McMillan |
CAV | 1 |
| 1996 | Engineering Change in a Non-Deterministic FSM Settingabstractpersonal or class-room use is granted without fee provided that copies are not made or distributed for profit or commercial advantage, the copyright notice, the title of the publication and its date appear, and notice is given that copying is Sunil P. Khatri, Amit Narayan, Sriram C. Krishnan, Kenneth L. McMillan, Robert K. Brayton, Alberto L. Sangiovanni-Vincentelli |
DAC | 4 |
| 1996 | Model-Checking of Correctness Conditions for Concurrent ObjectsabstractThe notions of serializability, linearizability and sequential consistency are used in the specification of concurrent systems. We show that the model checking problem for each of these properties can be cast in terms of the containment of one regular language in another regular language shuffled using a semi-commutative alphabet. The three model checking problems are shown to be, respectively, in PSPACE, in EXPSPACE, and undecidable. Rajeev Alur, Kenneth L. McMillan, Doron A. Peled |
LICS | 2 |
| 1995 | Using Formal Verification/Analysis Methods on the Critical Path in System Design: A Case Study
Ásgeir Th. Eiríksson, Kenneth L. McMillan |
CAV | 2 |
| 1995 | Trace Theoretic Verification of Asynchronous Circuits Using Unfoldings
Kenneth L. McMillan |
CAV | 1 |
| 1995 | Efficient Generation of Counterexamples and Witnesses in Symbolic Model CheckingabstractModel checking is an automatic technique for verifying sequential circuit designs and protocols. An efficient search procedure is used to determine whether or not the specification is satisfied. If it is not satisfied, our technique will produce a counterexample execution trace that shows the cause of the problem. We describe an efficient algorithm to produce counterexamples and witnesses for symbolic model checking algorithms. This algorithm is used in the SMV model checker and works quite well in practice. We also discuss how to extend our technique to more complicated specifications. Edmund M. Clarke, Orna Grumberg, Kenneth L. McMillan, Xudong Zhao 0005 |
DAC | 3 |
| 1995 | Fast discrete function evaluation using decision diagramsabstractAn approach for fast discrete function evaluation based on multi-valued decision diagrams (MDD) is proposed. The MDD for a logic function is translated into a table on, which function evaluation is performed by a sequence of address lookups. The value of a function for a given input assignment is obtained with at most one lookup per input. The main application is to cycle-based logic simulation of digital circuits, where the principal difference from other logic simulators is that only values of the output and latch ports are computed. Theoretically, decision-diagram based function evaluation offers orders-of-magnitude potential speedup over traditional logic simulation methods. In practice, memory bandwidth becomes the dominant consideration on large designs. We describe techniques to optimize usage of the memory hierarchy. Patrick C. McGeer, Kenneth L. McMillan, Alexander Saldanha, Alberto L. Sangiovanni-Vincentelli, Patrick Scaglia |
ICCAD | 2 |
| 1995 | Verification of the Futurebus+ Cache Coherence Protocol
Edmund M. Clarke, Orna Grumberg, Hiromi Hiraishi, Somesh Jha, David E. Long, Kenneth L. McMillan, Linda A. Ness |
Formal Methods Syst. Des. | 6 |
| 1995 | A Technique of State Space Search Based on Unfolding
Kenneth L. McMillan |
Formal Methods Syst. Des. | 1 |
| 1995 | A Structural Induction Theorem for Processes
Robert P. Kurshan, Kenneth L. McMillan |
Inf. Comput. | 2 |
| 1994 | Hierarchical Representations of Discrete Functions, with Application to Model Checking
Kenneth L. McMillan |
CAV | 1 |
| 1994 | Panel: Complex System Verification: The Challenge AheadabstractNo abstract available. Ronald Collett, Mike Gianfagna, Michel Courtoy, Martin Baynes, Johan Van Ginderdeuren, Kenneth L. McMillan, Stephen Ricca, Alberto L. Sangiovanni-Vincentelli, Steve Sapiro, Naeem Zafar |
DAC | 6 |
| 1994 | Fitting Formal Methods into the Design CycleabstractThis tutorial introduces several methods of formal hardware verification that could potentially have a practical impact on the design process. The measure of success in integrating these methods into a design methodology is arguably not the ability to provide formal guarantees of correctness, but rather to detect design errors in a timely manner, as the design evolves. Based on this criterion, and some limited practical experience, we consider where the various methods might fit into the life cycle of a design, what their capabilities and shortcomings are, and how the design process might change in order to accommodate formal methods. Kenneth L. McMillan |
DAC | 1 |
| 1994 | Symbolic model checking for sequential circuit verificationabstractThe temporal logic model checking algorithm of Clarke, Emerson, and Sistla (1986) is modified to represent state graphs using binary decision diagrams (BDD's) and partitioned transition relations. Because this representation captures some of the regularity in the state space of circuits with data path logic, we are able to verify circuits with an extremely large number of states. We demonstrate this new technique on a synchronous pipelined design with approximately 5/spl times/10/sup 120/ states. Our model checking algorithm handles full CTL with fairness constraints. Consequently, we are able to express a number of important liveness and fairness properties, which would otherwise not be expressible in CTL. We give empirical results on the performance of the algorithm applied to both synchronous and asynchronous circuits with data path logic.> Jerry R. Burch, Edmund M. Clarke, David E. Long, Kenneth L. McMillan, David L. Dill |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 4 |
| 1993 | Spectral Transforms for Large Boolean Functions with Applications to Technology MappingabstractThe Walsh transform has numerous applications in computer-aided design, but the usefulness of these tech-niques in practice has been limited by the size of the boolean functions that can be transformed. Currently available techniques limit the functions to less than 20 variables. In this paper, we show how to compute concise representations of the Walsh transform for functions with several hundred vari-ables. We have applied our techniques to boolean technolqy mapping and, in certain cases, we obtained a speed up of as much as 50 % for the matching phase. Edmund M. Clarke, Kenneth L. McMillan, Xudong Zhao 0005, Jerry Chih-Yuan Yang |
DAC | 2 |
| 1992 | Algorithms for Interface Timing VerificationabstractAlgorithms for analyzing systems of inequalities with min/max constraints that arise in interface timing specifications are examined. A general form of the inequality is shown to be NP-complete, but some interesting special cases can be solved efficiently. A branch-and-bound solution to the general case is developed and applied to a previously published example.> Kenneth L. McMillan, David L. Dill |
ICCD | 1 |
| 1992 | Symbolic Model Checking: 10^20 States and Beyond
Jerry R. Burch, Edmund M. Clarke, Kenneth L. McMillan, David L. Dill, L. J. Hwang |
Inf. Comput. | 3 |
| 1991 | Synthesizing Converters Between Finite State ProtocolsabstractA general approach for synthesizing inter-process communication devices by adapting labeled transition systems is proposed. An approach is also proposed to generate the finite state machine representing the protocol converter. It is assumed that the data path of the protocol converter is already given. The approach is illustrated by generating the communication process between a four phase master and a two phase slave.> Janaki Akella, Kenneth L. McMillan |
ICCD | 2 |
| 1991 | A language for compositional specification and verification of finite state hardware controllersabstractThe authors consider the state machine language (SML) for describing complex finite state hardware controllers. It provides many of the standard control structures found in modern programming languages. The state tables produced by the SML compiler can be used as input to a temporal logic model checker that can automatically determine whether a specification in the logic CTL is satisfied. The authors describe extensions to SML for the design of modular controllers. These extensions allow a compositional approach to model checking which can substantially reduce its complexity. To demonstrate these methods, the authors discuss the specification and verification of a simple central-processing-unit (CPU) controller.> Edmund M. Clarke, David E. Long, Kenneth L. McMillan |
Proc. IEEE | 3 |
| 1991 | Analysis of digital circuits through symbolic reductionabstractThe authors describe a semi-algorithmic method to extract finite-state models from an analog circuit-level model by means of homomorphic (behavior preserving) transformations. Properties to be verified are defined by omega -automata. Efficient algorithms for testing language containment of automata can then be applied to verify properties of the finite-state models. Proof of the property in the finite-state model guarantees the property in the analog circuit-level model over a continuous range of input waveforms and circuit parameters. While in practice this method applies directly only to smaller circuit components, it can be used to analyze larger circuits as well by deriving a hierarchy of increasingly abstract models, through repeated applications of homomorphic transformations. Examples of extraction, homomorphism, and verification are described.> Robert P. Kurshan, Kenneth L. McMillan |
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. | 2 |
| 1990 | Sequential Circuit Verification Using Symbolic Model CheckingabstractThe temporal logic model checking algorithm developed by Clarke, Emerson, and Sistla [9] is modified to represent a state graph using binary decision diagrams (BDD's) [4]. Because this representation captures some of the regularity in the state space of sequential circuits with data path logic, we are able to verify circuits with an extremely large number of states. We demonstrate this new technique on a synchronous pipelined design with approximately 5 x 1020 states. Our model checking algorithm handles full CTL with fairness constraints. Consequently, we are able to handle a number of important liveness and fairness properties, which would otherwise not be expressible in CTL. We give empirical results on the performance of the algorithm applied to both synchronous and asynchronous circuits with data path logic. Jerry R. Burch, Edmund M. Clarke, Kenneth L. McMillan, David L. Dill |
DAC | 3 |
| 1990 | Symbolic Model Checking: 10^20 States and BeyondabstractA general method that represents the state space symbolically instead of explicitly is described. The generality of the method comes from using a dialect of the mu-calculus as the primary specification language. A model-checking algorithm for mu-calculus formulas which uses R.E. Bryant's (1986) binary decision diagrams to represent relations and formulas symbolically is described. It is then shown how the novel mu-calculus model checking algorithm can be used to derive efficient decision procedures for CTL model checking, satisfiability of linear-time temporal logic formulas, strong and weak observational equivalence of finite transition systems, and language containment of finite omega -automata. This eliminates the need to describe complicated graph-traversal or nested fixed-point computations for each decision procedure. The authors illustrate the practicality of their approach to symbolic model checking by discussing how it can be used to verify a simple synchronous pipeline.> Jerry R. Burch, Edmund M. Clarke, Kenneth L. McMillan, David L. Dill, L. J. Hwang |
LICS | 3 |
| 1989 | Compositional Model CheckingabstractA method is described for reducing the complexity of temporal logic model checking in systems composed of many parallel processes. The goal is to check properties of the components of a system and then deduce global properties from these local properties. The main difficulty with this type of approach is that local properties are often not preserved at the global level. The authors present a general framework for using additional interface processes to model the environment for a component. These interface processes are typically much simpler than the full environment of the component. By composing a component with its interface processes and then checking properties of this composition, the authors can guarantee that these properties will be preserved at the global level. They give two example compositional systems based on the logic CTL.> Edmund M. Clarke, David E. Long, Kenneth L. McMillan |
LICS | 3 |
| 1989 | A Structural Induction Theorem for ProcessesabstractArticle Free Access Share on A structural induction theorem for processes Authors: R. P. Kurshan AT&T Bell Laboratories, Murray Hill, NJ AT&T Bell Laboratories, Murray Hill, NJView Profile , K. McMillan Carnegie Mellon University, Pittsburgh, PA Carnegie Mellon University, Pittsburgh, PAView Profile Authors Info & Claims PODC '89: Proceedings of the eighth annual ACM Symposium on Principles of distributed computingJune 1989 Pages 239–247https://doi.org/10.1145/72981.72998Online:01 June 1989Publication History 121citation550DownloadsMetricsTotal Citations121Total Downloads550Last 12 Months19Last 6 weeks5 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Robert P. Kurshan, Kenneth L. McMillan |
PODC | 2 |