Learn More
The Stanford Temporal Prover, STeP, supports the computer-aided formal veriication of reactive (and, in particular, concurrent) systems based on temporal speciications. Reactive systems maintain an ongoing interaction with their environment; their speciications are typically expressed as constraints on their behavior over time. Unlike most systems for(More)
We review a number of formal verification techniques supported by STeP, the Stanford Temporal Prover, describing how the tool can be used to verify properties of several versions of the Bakery algorithm for mutual exclusion. We verify the classic two-process algorithm and simple variants, as well as an atomic parameterized version. The methods used include(More)
We present an algorithm that uses decision procedures to generate nite-state abstractions of possibly innnite-state systems. The algorithm compositionally abstracts the transitions of the system, relative to a given, xed set of assertions. Thus, the number of validity checks is proportional to the size of the system description, rather than the size of the(More)
The Stanford Temporal Prover, STeP, combines deductive methods with algorithmic techniques to verify linear-time temporal logic speciications of reactive and real-time systems. STeP uses veriication rules, veriication diagrams, automatically generated invariants, model checking, and a collection of decision procedures to verify nite-and innnite-state(More)
We compare two prominent decision procedures for propositional logic: Ordered Binary Decision Diagrams (obdds) and the Davis-Putnam procedure. Experimental results indicate that the Davis-Putnam procedure outperforms obdds in hard constraint-satisfaction problems, while obdds are clearly superior for Boolean functional equivalence problems from the circuit(More)
Many important applications are organized around long-lived, irregular sparse graphs (e.g., data and knowledge bases, CAD optimization, numerical problems, simulations). The graph structures are large, and the applications need regular access to a large, data-dependent portion of the graph for each operation (e.g., the algorithm may need to walk the graph,(More)
We present PLIANT, a learning system that supports adaptive assistance in an open calendaring system. PLIANT learns user preferences from the feedback that naturally occurs during interactive scheduling. It contributes a novel application of active learning in a domain where the choice of candidate schedules to present to the user must balance usefulness to(More)
Given a network that deploys multiple firewalls and network intrusion detection systems (NIDSs), ensuring that these security components are correctly configured is a challenging problem. Although models have been developed to reason independently about the effectiveness of firewalls and NIDSs, there is no common framework to analyze their interaction. This(More)
We present an extension of classical tableau-based model checking procedures to the case of innnite-state systems, using deductive methods in an incremental construction of the behavior graph. Logical formulas are used to represent innnite sets of states in an abstraction of this graph, which is repeatedly reened in the search for a counterexample(More)