A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Detecting equality of variables in programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An efficient method of computing static single assignment form
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The design and implementation of a certifying compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Translation validation for an optimizing compiler
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
A Discipline of Programming
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Checking Java Programs via Guarded Commands
Proceedings of the Workshop on Object-Oriented Technology
Predicate abstraction for software verification
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Output-constraint specialization
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Invariant inference for static checking:
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
Invariant inference for static checking: an empirical evaluation
ACM SIGSOFT Software Engineering Notes
Thread-Modular Verification for Shared-Memory Programs
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Modular Static Program Analysis
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Houdini, an Annotation Assistant for ESC/Java
FME '01 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods for Increasing Software Productivity
A Modular Checker for Multithreaded Programs
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic software model checking via constraint logic
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
Program Adaptation via Output-Constraint Specialization
Higher-Order and Symbolic Computation
Interactive and Probabilistic Proof of Mobile Code Safety
Automated Software Engineering
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Generating error traces from verification-condition counterexamples
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
Efficient weakest preconditions
Information Processing Letters
Modular verification of multithreaded programs
Theoretical Computer Science
Weakest-precondition of unstructured programs
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Extended static checking for haskell
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Replayer: automatic protocol replay by binary analysis
Proceedings of the 13th ACM conference on Computer and communications security
Modular Pluggable Analyses for Data Structure Consistency
IEEE Transactions on Software Engineering
Reachability analysis for annotated code
Proceedings of the 2007 conference on Specification and verification of component-based systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering
A practical and precise inference and specializer for array bound checks elimination
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
SS'07 Proceedings of 16th USENIX Security Symposium on USENIX Security Symposium
Full functional verification of linked data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Efficient symbolic simulation of low level software
Proceedings of the conference on Design, automation and test in Europe
A Hoare Logic for Call-by-Value Functional Programs
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Generation of correctness conditions for imperative programs
Programming and Computing Software
Static contract checking for Haskell
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Symbolic program analysis using term rewriting and generalization
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
Machine-code verification for multiple architectures: an application of decompilation into logic
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
An integrated proof language for imperative programs
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Strongest postcondition of unstructured programs
Proceedings of the 11th International Workshop on Formal Techniques for Java-like Programs
ACM Computing Surveys (CSUR)
Inferring Dataflow Properties of User Defined Table Processors
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Faster and More Complete Extended Static Checking for the Java Modeling Language
Journal of Automated Reasoning
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Certifiable Specification and Verification of C Programs
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Efficient weakest preconditions
Information Processing Letters
Using history invariants to verify observers
ESOP'07 Proceedings of the 16th European conference on Programming
Automatic software model checking using CLP
ESOP'03 Proceedings of the 12th European conference on Programming
Structural abstraction of software verification conditions
CAV'07 Proceedings of the 19th international conference on Computer aided verification
A machine-checked soundness proof for an efficient verification condition generator
Proceedings of the 2010 ACM Symposium on Applied Computing
JACK: a tool for validation of security and behaviour of Java applications
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Exploiting shared structure in software verification conditions
HVC'07 Proceedings of the 3rd international Haifa verification conference on Hardware and software: verification and testing
An interpolation method for CLP traversal
CP'09 Proceedings of the 15th international conference on Principles and practice of constraint programming
Exploiting program dependencies for scalable multiple-path symbolic execution
Proceedings of the 19th international symposium on Software testing and analysis
To goto where no statement has gone before
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Formal Methods in System Design
Q: exploit hardening made easy
SEC'11 Proceedings of the 20th USENIX conference on Security
Computing preconditions and postconditions of while loops
ICTAC'11 Proceedings of the 8th international conference on Theoretical aspects of computing
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
SAS'06 Proceedings of the 13th international conference on Static Analysis
Verification condition generation via theorem proving
LPAR'06 Proceedings of the 13th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Generalized typestate checking for data structure consistency
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Formal methods for smartcard security
Foundations of Security Analysis and Design III
Science of Computer Programming
JReq: database queries in imperative languages
CC'10/ETAPS'10 Proceedings of the 19th joint European conference on Theory and Practice of Software, international conference on Compiler Construction
Exploiting traces in program analysis
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Development and evaluation of LAV: an SMT-based error finding platform
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Verification conditions for single-assignment programs
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Verification conditions for source-level imperative programs
Computer Science Review
Detecting inconsistencies via universal reachability analysis
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Almost-correct specifications: a modular semantic framework for assigning confidence to warnings
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Joogie: from Java through Jimple to Boogie
Proceedings of the 2nd ACM SIGPLAN International Workshop on State Of the Art in Java Program analysis
An overview of the Leon verification system: verification by translation to recursive functions
Proceedings of the 4th Workshop on Scala
PLDI 2002: Extended static checking for Java
ACM SIGPLAN Notices - Supplemental issue
Effectively-Propositional reasoning about reachability in linked data structures
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Sound input filter generation for integer overflow errors
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Automated Reasoning and Mathematics
Communications of the ACM
Hi-index | 0.02 |
Current verification condition (VC) generation algorithms, such as weakest preconditions, yield a VC whose size may be exponential in the size of the code fragment being checked. This paper describes 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.This two-stage VC generation algorithm has been implemented as part of the Extended Static Checker for Java. It has allowed us to check large and complex methods that would otherwise be impossible to check due to time and space constraints.