Introduction to abstract interpretation

Predicate Transformer (Sketchy) ̧P ‹ post[[X:=E]] ‹ ‚P(fq1; : : : ; qng) where fq1; : : : ; qng „ fp1; : : : ; pkg = ̧P ‹ post[[X:=E]]( n \ i=1 I[[qi]]) def. ‚P = ̧P(f[X=[[E]]] j  2 n \ i=1 I[[qi]]g) def. post[[X:=E]] = ̧P( n \ i=1 f[X=[[E]]] j  2 I[[qi]]g) def. \ = ̧P( n \ i=1 I[[qi[X=E]]]) def. substitution = fpj j I[[qi[X=E]) pj]]g def. ̧P ) fpj j theorem_prover[[qi[X=E]) pj]]g since theorem_prover[[qi[X=E]) pj]] implies I[[qi[X=E]) pj]] An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03— 3:18/121 —!!! """J [] ̈ ̃?I Idx, Toc 2.2.3 Local Completion See Sec. 9.2 of [POPL ’79]. Reference [POPL ’79] P. Cousot & R. Cousot. Systematic design of program analysis frameworks. In 6th POPL, pages 269–282, San Antonio, TX, 1979. ACM Press. 31 An Introduction to Abstract Interpretation, ľ P. Cousot, 23/3/03— 2:31/102 —!!! """J [] ̈ ̃?I Idx, Toc Non Distributivity [POPL ’79] › An abstraction  is [-complete or distributive, whenever the union of abstract properties is abstract: 8S „ }( ̊) : [ P2S (P ) = ([ P2S (P )) › Hence, the abstract union of abstract properties looses no information with respect to their concrete one; › Otherwise it is [-incomplete or non-distributive. Reference [POPL ’79] P. Cousot & R. Cousot. Systematic design of program analysis frameworks. In 6th POPL, pages 269–282, San Antonio, TX, 1979. ACM Press. 32 An Introduction to Abstract Interpretation, ľ P. Cousot, 23/3/03— 2:32/102 —!!! """J [] ̈ ̃?I Idx, Toc Example of Non Distributivity [POPL ’79] › Kildall’s constant propagation hf;;Zg [ ffig j i 2 Zg; „i g.2h g3h g4h g1h g2h g.3h g.4h