Automatic verification of finite-state concurrent systems using temporal logic specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Statecharts: A visual formalism for complex systems
Science of Computer Programming
On-line algorithms for polynomially solvable satisfiability problems
Journal of Logic Programming
Hilbert's tenth problem
Model checking and abstraction
ACM Transactions on Programming Languages and Systems (TOPLAS)
GRASP—a new search algorithm for satisfiability
Proceedings of the 1996 IEEE/ACM international conference on Computer-aided design
Uniform approaches to the verification of finite state systems
Uniform approaches to the verification of finite state systems
Communicating and mobile systems: the &pgr;-calculus
Communicating and mobile systems: the &pgr;-calculus
Concurrency: state models & Java programs
Concurrency: state models & Java programs
Model checking
Communicating sequential processes
Communications of the ACM
Automatic predicate abstraction of C programs
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Chaff: engineering an efficient SAT solver
Proceedings of the 38th annual Design Automation Conference
Automatically validating temporal safety properties of interfaces
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
Tool-supported program abstraction for finite-state verification
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A system and language for building system-specific, static analyses
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Communication and Concurrency
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
CVC: A Cooperating Validity Checker
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
SATO: An Efficient Propositional Prover
CADE-14 Proceedings of the 14th International Conference on Automated Deduction
Boolean and Cartesian Abstraction for Model Checking C Programs
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Techniques for program verification
Techniques for program verification
Checking system rules using system-specific, programmer-written compiler extensions
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Consistency analysis of authorization hook placement in the Linux security modules framework
ACM Transactions on Information and System Security (TISSEC)
Assume-Guarantee Verification of Source Code with Design-Level Assumptions
Proceedings of the 26th International Conference on Software Engineering
Generating Tests from Counterexamples
Proceedings of the 26th International Conference on Software Engineering
Predicate Abstraction of ANSI-C Programs Using SAT
Formal Methods in System Design
Efficient Verification of Sequential and Concurrent C Programs
Formal Methods in System Design
Lessons Learned from Model Checking a NASA Robot Controller
Formal Methods in System Design
Inferring Specifications to Detect Errors in Code
Proceedings of the 19th IEEE international conference on Automated software engineering
Verifiable Concurrent Programming Using Concurrency Controllers
Proceedings of the 19th IEEE international conference on Automated software engineering
Decompositional Verification of Component-based Systems-A Hybrid Approach
Proceedings of the 19th IEEE international conference on Automated software engineering
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Scalable error detection using boolean satisfiability
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying safety policies with size properties and alias controls
Proceedings of the 27th international conference on Software engineering
Modular verification of concurrent assembly code with dynamic thread creation and termination
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Application of design for verification with concurrency controllers to air traffic control software
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Verification of C Programs using Slicing Execution
QSIC '05 Proceedings of the Fifth International Conference on Quality Software
Stuttering Abstraction for Model Checkin
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Perracotta: mining temporal API rules from imperfect traces
Proceedings of the 28th international conference on Software engineering
Modular verification of code with SAT
Proceedings of the 2006 international symposium on Software testing and analysis
Efficient software model checking of data structure properties
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Automatic data environment construction for static device drivers analysis
Proceedings of the 2006 conference on Specification and verification of component-based systems
Program verification as probabilistic inference
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Thorough static analysis of device drivers
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Component-based hardware/software co-verification for building trustworthy embedded systems
Journal of Systems and Software
Transition predicate abstraction and fair termination
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
A framework for the static verification of api calls
Journal of Systems and Software
Modular Pluggable Analyses for Data Structure Consistency
IEEE Transactions on Software Engineering
Inferring specifications to detect errors in code
Automated Software Engineering
Automated Software Engineering
Modular typestate checking of aliased objects
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Predicate abstraction with indexed predicates
ACM Transactions on Computational Logic (TOCL)
Rule-based static analysis of network protocol implementations
Information and Computation
SS'07 Proceedings of 16th USENIX Security Symposium on USENIX Security Symposium
A type system equivalent to a model checker
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formal Verification for C Program
Informatica
Model Checking: Back and Forth between Hardware and Software
Verified Software: Theories, Tools, Experiments
Regression Verification - A Practical Way to Verify Programs
Verified Software: Theories, Tools, Experiments
Using Predicate Abstraction to Generate Heuristic Functions in UPPAAL
Model Checking and Artificial Intelligence
Efficient software model checking of soundness of type systems
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Model checking sequential software programs via mixed symbolic analysis
ACM Transactions on Design Automation of Electronic Systems (TODAES)
A Scalable Memory Model for Low-Level Code
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
A new testability guided abstraction to solving bit-vector formula
SMT '08/BPR '08 Proceedings of the Joint Workshops of the 6th International Workshop on Satisfiability Modulo Theories and 1st International Workshop on Bit-Precise Reasoning
An approach to detection of UML-based ownership violation
Proceedings of the 2009 ACM symposium on Applied Computing
Verifying Multithreaded Recursive Programs with Integer Variables
Electronic Notes in Theoretical Computer Science (ENTCS)
Finding inconsistency for UML-based composition at program level
MISE '09 Proceedings of the 2009 ICSE Workshop on Modeling in Software Engineering
Subsumer-First: Steering Symbolic Reachability Analysis
Proceedings of the 16th International SPIN Workshop on Model Checking Software
Abstraction Refinement for Quantified Array Assertions
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parallel Assignments in Software Model Checking
Electronic Notes in Theoretical Computer Science (ENTCS)
Friends or foes? on planning as satisfiability and abstract CNF encodings
Journal of Artificial Intelligence Research
Finite differencing of logical formulas for static analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verification across intellectual property boundaries
CAV'07 Proceedings of the 19th international conference on Computer aided verification
SPADE: verification of multithreaded dynamic and recursive programs
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Integrated static analysis for Linux device driver verification
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
ACSAR: software model checking with transfinite refinement
Proceedings of the 14th international SPIN conference on Model checking software
Program analysis using weighted pushdown systems
FSTTCS'07 Proceedings of the 27th international conference on Foundations of software technology and theoretical computer science
Software model checking without source code
Innovations in Systems and Software Engineering
Efficient modular glass box software model checking
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Sysfier: Actor-based formal verification of SystemC
ACM Transactions on Embedded Computing Systems (TECS)
The localization reduction and counterexample-guided abstraction refinement
Time for verification
Correctness proofs for device drivers in embedded systems
SSV'10 Proceedings of the 5th international conference on Systems software verification
An assume guarantee approach for checking quantified array assertions
AMAST'10 Proceedings of the 13th international conference on Algebraic methodology and software technology
A decade of software model checking with SLAM
Communications of the ACM
A lightweight approach for loop summarization
ATVA'11 Proceedings of the 9th international conference on Automated technology for verification and analysis
Abstraction and refinement in model checking
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
A path sensitive type system for resource usage verification of c like languages
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Finding bugs in network protocols using simulation code and protocol-specific heuristics
ICFEM'05 Proceedings of the 7th international conference on Formal Methods and Software Engineering
Integration of a software model checker into isabelle
LPAR'05 Proceedings of the 12th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Stateful dynamic partial-order reduction
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Model-checking of specifications integrating processes, data and time
FM'05 Proceedings of the 2005 international conference on Formal Methods
Lazy abstraction with interpolants
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Using statically computed invariants inside the predicate abstraction and refinement loop
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
SMT techniques for fast predicate abstraction
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Localization and register sharing for predicate abstraction
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
SATABS: SAT-Based predicate abstraction for ANSI-C
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
A type system equivalent to a model checker
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Abstraction refinement for termination
SAS'05 Proceedings of the 12th international conference on Static Analysis
Smaller abstractions for ∀CTL* without next
Concurrency, Compositionality, and Correctness
ARMC: the logical choice for software model checking with abstraction refinement
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
State/Event software verification for branching-time specifications
IFM'05 Proceedings of the 5th international conference on Integrated Formal Methods
Enabling security testing from specification to code
IFM'05 Proceedings of the 5th international conference on Integrated Formal Methods
Counterexample-Guided abstraction refinement for the analysis of graph transformation systems
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Verifying concurrent message-passing c programs with recursive calls
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Abstraction refinement with craig interpolation and symbolic pushdown systems
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Bounded model checking of software using SMT solvers instead of SAT solvers
SPIN'06 Proceedings of the 13th international conference on Model Checking Software
SAFARI: SMT-based abstraction for arrays with interpolants
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
SAS'07 Proceedings of the 14th international conference on Static Analysis
Fixpoint-guided abstraction refinements
SAS'07 Proceedings of the 14th international conference on Static Analysis
Verification across Intellectual Property Boundaries
ACM Transactions on Software Engineering and Methodology (TOSEM)
Counterexample-Guided precondition inference
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Specification and verification of event detectors and responses
Proceedings of the 12th annual international conference on Aspect-oriented software development
Hi-index | 0.02 |
We present a new methodology for automatic verification of C programs against finite state machine specifications. Our approach is compositional, naturally enabling us to decompose the verification of large software system into subproblems of manageable complexity. The decomposition reflects the modularity in the software design. We use weak simulation as the notion of conformance between the program and its specification. Following the abstract-verify-refine paradigm, our tool MAGIC first extracts a finite model from C source code using predicate abstraction and theorem proving. Subsequently, simulation is checked via a reduction to Boolean satisfiability. MAGIC is able to interface with several publicly available theorem provers and SAT solvers. We report experimental results with procedures from the Linux kernel and the OpenSSL toolkit.