Automatically validating temporal safety properties of interfaces

@inproceedings{Ball2001AutomaticallyVT,
  title={Automatically validating temporal safety properties of interfaces},
  author={T. Ball and S. Rajamani},
  booktitle={SPIN '01},
  year={2001}
}
We present a process for validating temporal safety properties of software that uses a well-defined interface. [...] Key Method The process is realized in the SLAM toolkit, which consists of a model checker, predicate abstraction tool and predicate discovery tool. We have applied the SLAM toolkit to a number of Windows NT device drivers to validate critical safety properties such as correct locking behavior. We have found that the process converges on a set of predicates powerful enough to validate properties…Expand
Verification of safety requirements for program code using data abstraction
TLDR
A method by which systems with a high degree of parallelism can be verified by creating an over-approximation of the behaviour by abstracting from the values of program variables. Expand
Dynamically inferring temporal properties
TLDR
A dynamic approach to automatically infer a program's temporal properties based on a set of property pattern templates is proposed, and the experience of using it to discover interesting temporal properties of a small program is reported. Expand
Flow analysis for verifying properties of concurrent software systems
TLDR
It is indicated that sufficient precision for proving system properties can usually be achieved and that the cost for such analysis typically grows as a low-order polynomial in the size of the system. Expand
Formal Verification for C Program
TLDR
This work presents an approach for automatically verifying C programs against safety specifications based on finite state machine, and automatically extracts an initial abstract model from C source code using predicate abstraction and theorem proving. Expand
Automated Verification of Specifications with Typestates and Access Permissions
TLDR
An approach to formally verify Plural specifications of concurrent programs based on access permissions and typestates, by model-checking automatically generated abstract state-machine construction rules by generating and verifying models as a freely available plug-in of the Plural tool, called Pulse. Expand
Proofs from Tests
TLDR
A new refinement operator WPα is introduced that uses only the alias information obtained by symbolically executing a test to refine abstractions in a sound manner and is implemented in a tool called YOGI that plugs into Microsoft's Static Driver Verifier framework. Expand
Proofs from Tests
TLDR
A new refinement operator WPα is introduced that uses only the alias information obtained by symbolically executing a test to refine abstractions in a sound manner and is implemented in a tool called YOGI that plugs into Microsoft's Static Driver Verifier framework. Expand
Software model checking without source code
  • S. Chaki, J. Ivers
  • Computer Science
  • Innovations in Systems and Software Engineering
  • 2010
TLDR
A framework, called air, for verifying safety properties of assembly language programs via software model checking, which allows verification of programs for which source code is unavailable and programs that use features that are problematic for source-level software verification tools. Expand
Modular verification of software components in C
TLDR
This work presents a new methodology for automatic verification of C programs against finite state machine specifications using weak simulation as the notion of conformance between the program and its specification. Expand
Modular verification of software components in C
TLDR
This work presents a new methodology for automatic verification of C programs against finite state machine specifications that uses weak simulation as the notion of conformance between the program and its specification. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 56 REFERENCES
Data flow analysis for verifying properties of concurrent programs
TLDR
An approach, based on data flow analysis, that can provide cost-effective analysis of concurrent programs with respect to explicitly stated correctness properties and implemented a prototype toolset that automates the analysis for programs with explicit tasking and rendezvous style communication. Expand
Using predicate abstraction to reduce object-oriented programs for model checking
TLDR
This paper investigates the use of abstraction techniques to reduce the state-space of a real-time operating system kernel written in C++ and introduces some extensions to predicate abstraction that all allow it to be used within the class-instance framework of object-oriented languages. Expand
Tool-supported program abstraction for finite-state verification
TLDR
This paper describes how several different program analysis and transformation techniques are integrated into the Bandera toolset to provide facilities for abstracting Java programs to produce compact, finite-state models that are amenable to verification for example via model checking. Expand
Logic Verification of ANSI-C Code with SPIN
We describe a tool, called AX, that can be used in combination with the model checker Spin to efficiently verify logical properties of distributed software systems implemented in ANSI-standard CExpand
Counterexample-guided abstraction refinement
TLDR
Counterexample-guided abstraction refinement is an automatic abstraction method where the key step is to extract information from false negatives ("spurious counterexamples") due to over-approximation. Expand
A static analyzer for finding dynamic programming errors
TLDR
A compile‐time analyzer that detects these dynamic errors in large, real‐world programs, and provides valuable contextual information to the programmer who needs to understand and repair the defects. Expand
Extended static checking
TLDR
This talk reports on some of the research results of and the current state of the Extended Static Checking project at DEC SRC. Expand
Bandera: extracting finite-state models from Java source code
Finite-state verification techniques, such as model checking, have shown promise as a cost-effective means for finding defects in hardware designs. To date, the application of these techniques toExpand
Avoiding exponential explosion: generating compact verification conditions
TLDR
A two-stage VC generation algorithm that generates compact VCs whose size is worst-case quadratic in the size of the source fragment, and is close to linear in practice. Expand
Safety checking of machine code
TLDR
The safety checker was able to either prove that an example met the necessary safety conditions, or identify the places where the safety conditions were violated, and the checking times ranged from less than a second to 14 seconds on an UltraSPARC machine. Expand
...
1
2
3
4
5
...