Kenneth L. McMillan

dblp:m/KennethLMcMillan · DBLP profile ↗
← Back
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
YearPublicationVenuePosition
2026 Simplifying Safety Proofs with Forward-Backward Reasoning and Prophecy
abstract
We 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 Scale
abstract
Abstract 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 Networks
abstract
Propositional 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
ICLR5
2024 Invariant Checking for SMT-Based Systems with Quantifiers
abstract
This 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 Networks
abstract
Identity 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
ASE4
2023 Synthesizing History and Prophecy Variables for Symbolic Model Checking
Cole Vick, Kenneth L. McMillan
VMCAI2
2023 Counterexample Driven Quantifier Instantiations with Applications to Distributed Protocols
abstract
Formally 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 specifications
abstract
Specifying 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 FSE3
2022 Induction duality: primal-dual search for invariants
abstract
Many 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 systems
abstract
Abstract 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 Algorithms
abstract
Ivy 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 QUIC
abstract
QUIC 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
SIGCOMM1
2018 Eager Abstraction for Symbolic Model Checking
abstract
We 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 Synthesis
abstract
Many 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 Systems
abstract
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
FMCAD3
2018 Modularity for decidability of deductive verification with applications to distributed systems
abstract
Proof 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
PLDI3
2018 Deductive Verification in Decidable Fragments with Ivy
Kenneth L. McMillan, Oded Padon
SAS1
2018 P^5 : Planner-less Proofs of Probabilistic Parameterized Protocols
Lenore D. Zuck, Kenneth L. McMillan, Jordan Torf
VMCAI2
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 interface
abstract
We 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
FMCAD1
2016 Ivy: safety verification by interactive generalization
abstract
Despite 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
PLDI2
2015 Compositional Verification of Procedural Programs using Horn Clauses over Integers and Arrays
abstract
We 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
FMCAD4
2014 Lazy Annotation Revisited
Kenneth L. McMillan
CAV1
2013 Beautiful Interpolants
Aws Albarghouthi, Kenneth L. McMillan
CAV2
2013 Inductive invariant generation via abductive inference
abstract
This 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
OOPSLA4
2013 On Solving Universally Quantified Horn Clauses
Nikolaj S. Bjørner, Kenneth L. McMillan, Andrey Rybalchenko
SAS2
2013 Differential assertion checking
abstract
Previous 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 FSE2
2013 Synthesis of Circular Compositional Program Proofs via Abduction
Boyang Li 0002, Isil Dillig, Thomas Dillig, Kenneth L. McMillan, Shmuel Sagiv
TACAS4
2012 Minimum Satisfying Assignments for SMT
Isil Dillig, Thomas Dillig, Kenneth L. McMillan, Alex Aiken
CAV3
2011 Interpolants from Z3 proofs
Kenneth L. McMillan
FMCAD1
2011 Widening and Interpolation
Kenneth L. McMillan
SAS1
2011 Invisible Invariants and Abstract Interpretation
Kenneth L. McMillan, Lenore D. Zuck
SAS1
2010 Lazy Annotation for Program Testing and Verification
Kenneth L. McMillan
CAV1
2009 Generalizing DPLL to Richer Logics
Kenneth L. McMillan, Andreas Kuehlmann, Shmuel Sagiv
CAV1
2009 What's in Common between Test, Model Checking, and Decision Procedures?
Kenneth L. McMillan
FMICS1
2008 Relevance heuristics for program analysis
abstract
Relevance 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
POPL1
2008 Quantified Invariant Generation Using an Interpolating Saturation Prover
Kenneth L. McMillan
TACAS1
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
ATVA1
2007 Automated Assumption Generation for Compositional Verification
Anubhav Gupta 0001, Kenneth L. McMillan, Zhaohui Fu
CAV2
2007 Array Abstractions from Proofs
Ranjit Jhala, Kenneth L. McMillan
CAV2
2007 Combining Abstraction Refinement and SAT-Based Model Checking
Nina Amla, Kenneth L. McMillan
TACAS2
2007 Interpolants and Symbolic Model Checking
Kenneth L. McMillan
VMCAI1
2007 Interpolant-Based Transition Relation Approximation
abstract
In 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
CAV1
2006 Liveness by Invisible Invariants
Yi Fang 0001, Kenneth L. McMillan, Amir Pnueli, Lenore D. Zuck
FORTE2
2006 A Practical and Complete Approach to Predicate Refinement
Ranjit Jhala, Kenneth L. McMillan
TACAS2
2005 Interpolant-Based Transition Relation Approximation
Ranjit Jhala, Kenneth L. McMillan
CAV2
2005 Applications of Craig Interpolants in Model Checking
Kenneth L. McMillan
TACAS1
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
FMCAD2
2004 Abstractions from proofs
abstract
The 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
POPL4
2004 An Interpolating Theorem Prover
Kenneth L. McMillan
TACAS1
2003 Interpolation and SAT-Based Model Checking
Kenneth L. McMillan
CAV1
2003 Methods for exploiting SAT solvers in unbounded model checking
abstract
Modern 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
MEMOCODE1
2003 Craig Interpolation and Reachability Analysis
Kenneth L. McMillan
SAS1
2003 Experimental Analysis of Different Techniques for Bounded Model Checking
Nina Amla, Robert P. Kurshan, Kenneth L. McMillan, Ricardo H. Medel
TACAS3
2003 Automatic Abstraction without Counterexamples
Kenneth L. McMillan, Nina Amla
TACAS1
2002 Applying SAT Methods in Unbounded Symbolic Model Checking
Kenneth L. McMillan
CAV1
2001 Microarchitecture Verification by Compositional Model Checking
Ranjit Jhala, Kenneth L. McMillan
CAV2
2001 Theory of latency-insensitive design
abstract
The 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
CAV1
2000 Some Strategies for Proving Theorems with a Model Checker
Kenneth L. McMillan
LICS1
2000 Model-Checking of Correctness Conditions for Concurrent Objects
abstract
The 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 cares
abstract
In 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
CAV2
1999 A methodology for correct-by-construction latency insensitive design
abstract
In 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
ICCAD2
1999 Probabilistic state space search
abstract
This 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
ICCAD2
1998 Verification of an Implementation of Tomasulo's Algorithm by Compositional Model Checking
Kenneth L. McMillan
CAV1
1998 Approximation and Decomposition of Binary Decision Diagrams
abstract
Efficient 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
DAC2
1998 Minimalist Proof Assistants: Interactions of Technology and Methodology in Formal System Level Verification (abstract)
Kenneth L. McMillan
FMCAD1
1998 Proof Rules for Model Checking Systems with Data
Kenneth L. McMillan
FSTTCS1
1998 Deciding Global Partial-Order Properties
Rajeev Alur, Kenneth L. McMillan, Doron A. Peled
ICALP2
1997 A Compositional Rule for Hardware Design Refinement
Kenneth L. McMillan
CAV1
1997 Safe BDD Minimization Using Don't Cares
abstract
In 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
DAC4
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
CAV2
1996 A Conjunctively Decomposed Boolean Representation for Symbolic Model Checking
Kenneth L. McMillan
CAV1
1996 Engineering Change in a Non-Deterministic FSM Setting
abstract
personal 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
DAC4
1996 Model-Checking of Correctness Conditions for Concurrent Objects
abstract
The 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
LICS2
1995 Using Formal Verification/Analysis Methods on the Critical Path in System Design: A Case Study
Ásgeir Th. Eiríksson, Kenneth L. McMillan
CAV2
1995 Trace Theoretic Verification of Asynchronous Circuits Using Unfoldings
Kenneth L. McMillan
CAV1
1995 Efficient Generation of Counterexamples and Witnesses in Symbolic Model Checking
abstract
Model 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
DAC3
1995 Fast discrete function evaluation using decision diagrams
abstract
An 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
ICCAD2
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
CAV1
1994 Panel: Complex System Verification: The Challenge Ahead
abstract
No 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
DAC6
1994 Fitting Formal Methods into the Design Cycle
abstract
This 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
DAC1
1994 Symbolic model checking for sequential circuit verification
abstract
The 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 Mapping
abstract
The 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
DAC2
1992 Algorithms for Interface Timing Verification
abstract
Algorithms 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
ICCD1
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 Protocols
abstract
A 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
ICCD2
1991 A language for compositional specification and verification of finite state hardware controllers
abstract
The 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. IEEE3
1991 Analysis of digital circuits through symbolic reduction
abstract
The 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 Checking
abstract
The 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
DAC3
1990 Symbolic Model Checking: 10^20 States and Beyond
abstract
A 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
LICS3
1989 Compositional Model Checking
abstract
A 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
LICS3
1989 A Structural Induction Theorem for Processes
abstract
Article 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
PODC2