Lecture notes in computer science on Foundations of logic and functional programming
The value flow graph: a program representation for optimal program transformations
Proceedings of the third European symposium on programming on ESOP '90
Efficient code motion and an adaption to strength reduction
TAPSOFT '91 Proceedings of the international joint conference on theory and practice of software development on Advances in distributed computing (ADC) and colloquium on combining paradigms for software development (CCPSD): Vol. 2
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Machine Learning
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Tutorial on Stålmarck‘s Proof Procedure for PropositionalLogic
Formal Methods in System Design - Special issue on formal methods for computer-added design
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
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
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Predicate Abstraction of ANSI-C Programs Using SAT
Formal Methods in System Design
HOIST: a system for automatically deriving static analyzers for embedded systems
ASPLOS XI Proceedings of the 11th international conference on Architectural support for programming languages and operating systems
A system for generating static analyzers for machine instructions
CC'08/ETAPS'08 Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction
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
Cover algorithms and their combination
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Range and Set Abstraction using SAT
Electronic Notes in Theoretical Computer Science (ENTCS)
Automatic abstraction for intervals using Boolean formulae
SAS'10 Proceedings of the 17th international conference on Static analysis
Abstract domains of affine relations
SAS'11 Proceedings of the 18th international conference on Static analysis
Automatic abstraction for congruences
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Scalable analysis of linear systems using mathematical programming
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Improving pushdown system model checking
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Extended weighted pushdown systems
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
A method for symbolic computation of abstract operations
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
A generalization of stålmarck's method
SAS'12 Proceedings of the 19th international conference on Static Analysis
TSL: A System for Generating Abstract Interpreters and its Application to Machine-Code Analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Symbolic optimization with SMT solvers
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Given a concrete domain $\mathcal{C}$, a concrete operation $\tau: \mathcal{C} \to \mathcal{C}$, and an abstract domain $\mathcal{A}$, a fundamental problem in abstract interpretation is to find the best abstract transformer$\tau^{\#}: \mathcal{A} \to \mathcal{A}$ that over-approximates τ. This problem, as well as several other operations needed by an abstract interpreter, can be reduced to the problem of symbolic abstraction: the symbolic abstraction of a formula ϕ in logic $\mathcal{L}$, denoted by $\widehat{\alpha}(\varphi)$, is the best value in $\mathcal{A}$ that over-approximates the meaning of ϕ. When the concrete semantics of τ is defined in $\mathcal{L}$ using a formula ϕτ that specifies the relation between input and output states, the best abstract transformer τ# can be computed as $\widehat{\alpha}(\varphi_\tau)$. In this paper, we present a new framework for performing symbolic abstraction, discuss its properties, and present several instantiations for various logics and abstract domains. The key innovation is to use a bilateral successive-approximation algorithm, which maintains both an over-approximation and an under-approximation of the desired answer.