CLU reference manual
Methods and calculi for deduction
Handbook of logic in artificial intelligence and logic programming (vol. 1)
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
A decision procedure for bit-vector arithmetic
DAC '98 Proceedings of the 35th annual Design Automation Conference
GRASP: A Search Algorithm for Propositional Satisfiability
IEEE Transactions on Computers
Algorithms for solving Boolean satisfiability in combinational circuits
DATE '99 Proceedings of the conference on Design, automation and test in Europe
Efficiency of a Good But Not Linear Set Union Algorithm
Journal of the ACM (JACM)
A Practical Decision Procedure for Arithmetic with Function Symbols
Journal of the ACM (JACM)
Fast Decision Procedures Based on Congruence Closure
Journal of the ACM (JACM)
Variations on the Common Subexpression Problem
Journal of the ACM (JACM)
Deciding Combinations of Theories
Journal of the ACM (JACM)
Proceedings of the twelfth annual ACM symposium on Parallel algorithms and architectures
Simplification by Cooperating Decision Procedures
ACM Transactions on Programming Languages and Systems (TOPLAS)
An improved equivalence algorithm
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
The Cassowary linear arithmetic constraint solving algorithm
ACM Transactions on Computer-Human Interaction (TOCHI)
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Denali: a goal-directed superoptimizer
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Validity Checking for Combinations of Theories with Equality
FMCAD '96 Proceedings of the First International Conference on Formal Methods in Computer-Aided Design
A Generalization of Shostak's Method for Combining Decision Procedures
FroCoS '02 Proceedings of the 4th International Workshop on Frontiers of Combining Systems
RTA '02 Proceedings of the 13th International Conference on Rewriting Techniques and Applications
Checking Satisfiability of First-Order Formulas by Incremental Translation to SAT
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
PVS: A Prototype Verification System
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
SATO: An Efficient Propositional Prover
CADE-14 Proceedings of the 14th International Conference on Automated Deduction
Proof Generation in the Touchstone Theorem Prover
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
Complexity of finitely presented algebras
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
On the average behavior of set merging algorithms (Extended Abstract)
STOC '76 Proceedings of the eighth annual ACM symposium on Theory of computing
A Decision Procedure for an Extensional Theory of Arrays
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
Techniques for program verification
Techniques for program verification
Compiling with proofs
Automated theorem proving: A logical basis (Fundamental studies in computer science)
Automated theorem proving: A logical basis (Fundamental studies in computer science)
Strategies for combining decision procedures
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extended static checking for haskell
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Proceedings of the 5th international conference on Generative programming and component engineering
Soundness and completeness warnings in ESC/Java2
Proceedings of the 2006 conference on Specification and verification of component-based systems
Interpolation for data structures
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Bit level types for high level reasoning
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Denali: A practical algorithm for generating optimal code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic inference of optimizer flow functions from semantic meanings
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Programmed Strategies for Program Verification
Electronic Notes in Theoretical Computer Science (ENTCS)
Dynamic test input generation for database applications
Proceedings of the 2007 international symposium on Software testing and analysis
Proving Resource Consumption of Low-level Programs Using Automated Theorem Provers
Electronic Notes in Theoretical Computer Science (ENTCS)
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
Automated refinement checking of concurrent systems
Proceedings of the 2007 IEEE/ACM international conference on Computer-aided design
Back to the future: revisiting precise program verification using SMT solvers
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lightweight integration of the Ergo theorem prover inside a proof assistant
Proceedings of the second workshop on Automated formal methods
Using SMT solvers to verify high-integrity programs
Proceedings of the second workshop on Automated formal methods
Computing Properties of Numerical Imperative Programs by Symbolic Computation
Fundamenta Informaticae - Half a Century of Inspirational Research: Honoring the Scientific Influence of Antoni Mazurkiewicz
Model-based Theory Combination
Electronic Notes in Theoretical Computer Science (ENTCS)
Formal Verification of a C-like Memory Model and Its Uses for Verifying Program Transformations
Journal of Automated Reasoning
Verified Software: Theories, Tools, Experiments
Constraint Solving and Symbolic Execution
Verified Software: Theories, Tools, Experiments
Solving Quantified Verification Conditions Using Satisfiability Modulo Theories
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Efficient E-Matching for SMT Solvers
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
${\mathcal{T}}$-Decision by Decomposition
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Handling Polymorphism in Automated Deduction
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Architecting Solvers for SAT Modulo Theories: Nelson-Oppen with DPLL
FroCoS '07 Proceedings of the 6th international symposium on Frontiers of Combining Systems
Validating High-Level Synthesis
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
A Hoare Logic for Call-by-Value Functional Programs
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Using Dynamic Symbolic Execution to Improve Deductive Verification
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
Engineering DPLL(T) + Saturation
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
Boogie Meets Regions: A Verification Experience Report
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
Enforcing object protocols by combining static and runtime analysis
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Don't care words with an application to the automata-based approach for real addition
Formal Methods in System Design
New results on rewrite-based satisfiability procedures
ACM Transactions on Computational Logic (TOCL)
Expressive and modular predicate dispatch for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Equality saturation: a new approach to optimization
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Valigator: A Verification Tool with Bound and Invariant Generation
LPAR '08 Proceedings of the 15th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
Certification Using the Mobius Base Logic
Formal Methods for Components and Objects
Predicate Abstraction in a Program Logic Calculus
IFM '09 Proceedings of the 7th International Conference on Integrated Formal Methods
Deciding array formulas with frugal axiom instantiation
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
Term transformers: A new approach to state
ACM Transactions on Programming Languages and Systems (TOPLAS)
A theory-based decision heuristic for DPLL(T)
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
Reasoning about comprehensions with first-order SMT solvers
Proceedings of the 2009 ACM symposium on Applied Computing
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Proving Consistency of Pure Methods and Model Fields
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
A decision procedure for subset constraints over regular languages
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Proving optimizations correct using parameterized program equivalence
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Complete Instantiation for Quantified Formulas in Satisfiabiliby Modulo Theories
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Incremental Instance Generation in Local Reasoning
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Generating Verified Java Components through RESOLVE
ICSR '09 Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain Engineering
Modular Checking with Model Checking
Electronic Notes in Theoretical Computer Science (ENTCS)
Reducing False Positives by Combining Abstract Interpretation and Bounded Model Checking
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Annals of Mathematics and Artificial Intelligence
Solving quantified verification conditions using satisfiability modulo theories
Annals of Mathematics and Artificial Intelligence
Theory decision by decomposition
Journal of Symbolic Computation
Combination of convex theories: Modularity, deduction completeness, and explanation
Journal of Symbolic Computation
An Approach for Refactoring using ESC/Java2 ---A Simple Case Study ---
Proceedings of the 2009 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the Eighth SoMeT_09
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 7th International Workshop on Satisfiability Modulo Theories
HOL-Boogie--An Interactive Prover-Backend for the Verifying C Compiler
Journal of Automated Reasoning
A scalable decision procedure for fixed-width bit-vectors
Proceedings of the 2009 International Conference on Computer-Aided Design
Teaching Program Specification and Verification Using JML and ESC/Java2
TFM '09 Proceedings of the 2nd International Conference on Teaching Formal Methods
An Approach for Test Selection for EFSMs Using a Theorem Prover
TESTCOM '09/FATES '09 Proceedings of the 21st IFIP WG 6.1 International Conference on Testing of Software and Communication Systems and 9th International FATES Workshop
Verifying Cryptographic Software Correctness with Respect to Reference Implementations
FMICS '09 Proceedings of the 14th International Workshop on Formal Methods for Industrial Critical Systems
Design of a proof repository architecture
Proceedings of the 1st Workshop on Modules and Libraries for Proof Assistants
State of the union: type inference via Craig interpolation
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Guiding the correction of parameterized specifications
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
Proving programs incorrect using a sequent calculus for Java dynamic logic
TAP'07 Proceedings of the 1st international conference on Tests and proofs
Testing and verifying invariant based programs in the SOCOS environment
TAP'07 Proceedings of the 1st international conference on Tests and proofs
Generating unit tests from formal proofs
TAP'07 Proceedings of the 1st international conference on Tests and proofs
Verifying object-oriented programs with KeY: a tutorial
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
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
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Bringing extensibility to verified compilers
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Improving Coq propositional reasoning using a lazy CNF conversion scheme
FroCoS'09 Proceedings of the 7th international conference on Frontiers of combining systems
Translation validation of high-level synthesis
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
On theorem proving for program checking: historical perspective and recent developments
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Solving string constraints lazily
Proceedings of the IEEE/ACM international conference on Automated software engineering
Deductive verification of cryptographic software
Innovations in Systems and Software Engineering
Semantic subtyping with an SMT solver
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Representation dependence testing using program inversion
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
To goto where no statement has gone before
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
isl: an integer set library for the polyhedral model
ICMS'10 Proceedings of the Third international congress conference on Mathematical software
Refinement types for secure implementations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formal proof of SCHUR conjugate function
AISC'10/MKM'10/Calculemus'10 Proceedings of the 10th ASIC and 9th MKM international conference, and 17th Calculemus conference on Intelligent computer mathematics
Static checking of dynamically-varying security policies in database-backed applications
OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Test data generation for programs with quantified first-order logic specifications
ICTSS'10 Proceedings of the 22nd IFIP WG 6.1 international conference on Testing software and systems
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Applying PVS background theories and proof strategies in invariant based programming
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
Beyond quantifier-free interpolation in extensions of Presburger arithmetic
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Satisfiability solving and model generation for quantified first-order logic formulas
FoVeOOS'10 Proceedings of the 2010 international conference on Formal verification of object-oriented software
A decade of software model checking with SLAM
Communications of the ACM
Automatic decidability and combinability
Information and Computation
jSMTLIB: tutorial, validation and adapter tools for SMT-LIBv2
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Predicate abstraction in a program logic calculus
Science of Computer Programming
Mostly-automated verification of low-level programs in computational separation logic
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Satisfiability modulo theories: introduction and applications
Communications of the ACM
Automatic detection of feature interactions using the Java modeling language: an experience report
Proceedings of the 15th International Software Product Line Conference, Volume 2
TLCA'11 Proceedings of the 10th international conference on Typed lambda calculi and applications
Checking models, proving programs, and testing systems
TAP'11 Proceedings of the 5th international conference on Tests and proofs
Correct code containing containers
TAP'11 Proceedings of the 5th international conference on Tests and proofs
Equality-based translation validator for LLVM
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
On Deciding Satisfiability by Theorem Proving with Speculative Inferences
Journal of Automated Reasoning
Using Coq in specification and program extraction of hadoop mapreduce applications
SEFM'11 Proceedings of the 9th international conference on Software engineering and formal methods
Program compatibility approaches
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
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
Descriptive and relative completeness of logics for higher-order functions
ICALP'06 Proceedings of the 33rd international conference on Automata, Languages and Programming - Volume Part II
Underspecified harnesses and interleaved bugs
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An open extensible tool environment for event-b
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Considerate reasoning and the composite design pattern
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Abstract analysis of symbolic executions
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
An Instantiation Scheme for Satisfiability Modulo Theories
Journal of Automated Reasoning
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program verification in SPARK and ACSL: a comparative case study
Ada-Europe'10 Proceedings of the 15th Ada-Europe international conference on Reliable Software Technologies
Lemma learning in SMT on linear constraints
SAT'06 Proceedings of the 9th international conference on Theory and Applications of Satisfiability Testing
Predicate abstraction of programs with non-linear computation
ATVA'06 Proceedings of the 4th international conference on Automated Technology for Verification and Analysis
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
A polymorphic intermediate verification language: design and logical encoding
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Bugs, moles and skeletons: symbolic reasoning for software development
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Modular SMT proofs for fast reflexive checking inside coq
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Automatically verifying typing constraints for a data processing language
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Practical realisation and elimination of an ECC-Related software bug attack
CT-RSA'12 Proceedings of the 12th conference on Topics in Cryptology
Automating induction with an SMT solver
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Decision procedures for region logic
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Verifying invariant based programs in the SOCOS environment
TFM'06 Proceedings of the 2006 conference on Teaching Formal Methods: practice and experience
E-Matching with free variables
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Automatically proving thousands of verification conditions using an SMT solver: an empirical study
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Verification conditions for source-level imperative programs
Computer Science Review
Experience of improving the blast static verification tool
Programming and Computing Software
SMTInterpol: an interpolating SMT solver
SPIN'12 Proceedings of the 19th international conference on Model Checking Software
Computing Properties of Numerical Imperative Programs by Symbolic Computation
Fundamenta Informaticae - Half a Century of Inspirational Research: Honoring the Scientific Influence of Antoni Mazurkiewicz
Theories, solvers and static analysis by abstract interpretation
Journal of the ACM (JACM)
Proof tree preserving interpolation
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Instantiation Schemes for Nested Theories
ACM Transactions on Computational Logic (TOCL)
Barrier invariants: a shared state abstraction for the analysis of data-dependent GPU kernels
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
CADE'13 Proceedings of the 24th international conference on Automated Deduction
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Formal model-based validation for tally systems
Vote-ID'13 Proceedings of the 4th international conference on E-Voting and Identity
Automating theorem proving with SMT
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
SMELS: Satisfiability Modulo Equality with Lazy Superposition
Journal of Automated Reasoning
Hi-index | 0.04 |
This article provides a detailed description of the automatic theorem prover Simplify, which is the proof engine of the Extended Static Checkers ESC/Java and ESC/Modula-3. Simplify uses the Nelson--Oppen method to combine decision procedures for several important theories, and also employs a matcher to reason about quantifiers. Instead of conventional matching in a term DAG, Simplify matches up to equivalence in an E-graph, which detects many relevant pattern instances that would be missed by the conventional approach. The article describes two techniques, error context reporting and error localization, for helping the user to determine the reason that a false conjecture is false. The article includes detailed performance figures on conjectures derived from realistic program-checking problems.