A Galois Connection Calculus for Abstract Interpretation⇤ Patrick Cousot Radhia Cousot CIMS⇤⇤, NYU, USA
[email protected] CNRS Emeritus, ENS, France s
[email protected] rfru Abstract We introduce a Galois connection calculus for language independent 3. Basic GC semantics Basic GCs are primitive abstractions of specification of abstract interpretations used in programming language semantics, properties. Classical examples are the identity abstraction 1[ , formal verification, and static analysis. This Galois connection calculus and its type λ Q . Q S hC system are typed by abstract interpretation. ] , , , , the top abstraction [ , vi hC vi −− − λ − −P − − −. − −P !−!− − hC vi S > hC Categories and Subject Descriptors D.2.4 [Software/Program Verification] λ Q . J General Terms Algorithms, Languages, Reliability, Security, Theory, Verification. , ] , , > , , the join abstraction [C] vi K> hC vi −−−−−λ P . hC vi S J[ Keywords Abstract Interpretation, Galois connection, Static Analysis, Verification. −−−−−!γ} > }(}(C)), }(C), with ↵}(P ) P , γ}(Q) In Abstract , } , , 1. Galois connections in Abstract Interpretation h K ✓i −−! −−↵ h ✓i J K interpretation [3, 4, 6, 7] concrete properties (for example (e.g.) }(Q), the complement abstraction [C] , }(SC), ¬ of computations) are related to abstract properties (e.g. types). The S ¬ h ✓i −−! −¬ }(C), , the finite/infinite sequence abstraction [C] , abstract properties are always sound approximations of the con- h ◆i γ S 1 1 J K crete properties (abstract proofs/static analyzes are always correct }(C1), }(C), with ↵1(P ) , σi σ P i h ✓i ↵ −1 −− h ✓i { | 2 ^ 2 in the concrete) and are sometimes complete (proofs/analyzes of −− − −! J K dom(σ) and γ1(Q) , σ C1 i dom(σ):σi Q , the abstract properties can all be done in the abstract only).