A relational framework for abstract interpretation
on Programs as data objects
Projections for strictness analysis
Proc. of a conference on Functional programming languages and computer architecture
Two-level semantics and abstract interpretation
Theoretical Computer Science
On the power and limitation of strictness analysis based on abstract interpretation
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Strictness analysis in logical form
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Abstract interpretation and application to logic programs
Journal of Logic Programming
Inductive definitions, semantics and abstract interpretations
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Higher-order strictness analysis in untyped lambda calculus
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Optimal Data Flow Analysis via Observational Equivalence
MFCS '89 Proceedings on Mathematical Foundations of Computer Science 1989
Strictness Logic and Polymorphic Invariance
TVER '92 Proceedings of the Second International Symposium on Logical Foundations of Computer Science
Combinations of abstract domains for logic programming
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Complementation in abstract interpretation
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the power and limitations of strictness analysis
Journal of the ACM (JACM)
A logical model for relational abstract domains
ACM Transactions on Programming Languages and Systems (TOPLAS)
Making abstract interpretations complete
Journal of the ACM (JACM)
Incompleteness, Counterexamples, and Refinements in Abstract Model-Checking
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Abstract interpretation of combinational asynchronous circuits
Science of Computer Programming
Decomposing bytecode verification by abstract interpretation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Internal and external logics of abstract interpretations
VMCAI'08 Proceedings of the 9th international conference on Verification, model checking, and abstract interpretation
Static analysis, abstract interpretation and verification in (constraint logic) programming
A 25-year perspective on logic programming
Comparing completeness properties of static analyses and their logics
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Observational Completeness on Abstract Interpretation
Fundamenta Informaticae - Logic, Language, Information and Computation
Hi-index | 0.00 |
Traditionally, the theory of abstract interpretation has concentrated on the study of when one interpretation is sound (also safe or correct) with respect to another. We consider the dual notion of when one interpretation is complete with respect to another. Under the usual formulation of abstract interpretation, undecidability in general implies that a finitely computable sound abstraction of the standard interpretation is not complete. (For example, if we simplify 643 * (-192) to (+) * (-) using the “rule of signs” we cannot expect to retrieve -123456 from the resulting (1), even though we are certain that the result is negative.) Based on the idea that compilers can only depend on a finite number of program properties, we augment interpretations with predicate symbols specifying properties of interest (thereby replacing algebraic interpretations with logic interpretations). Interpretation J being sound (resp. complete) with respect to I is now phrased as “all questions (formulae) yielding true for J (resp. I) also yield true for I (resp. J)”.The traditional “rule of signs” turns out to be sound and complete for multiplication but only sound for addition.Sometimes abstract interpretations have spurious domain elements. The state minimisation algorithm for finite deterministic automata can be used to produce a canonical (simplest) abstract interpretation which is sound and complete with respect to any given finite abstract interpretation but possibly simpler to compute.A homomorphism always yields a sound and complete abstraction. Moreover, we show that a sound and complete abstraction map is not necessarily a homomorphism, but its composition with the natural map to the canonical interpretation is a homomorphism,One side-effect of our formulation of abstract interpretation is that it de-emphasises the ordering on the abstract domain which is relegated to an (optional) proof basis.