Skip to main content
×
Home
    • Aa
    • Aa

Making abstract models complete

  • ROBERTO GIACOBAZZI (a1) and ISABELLA MASTROENI (a1)
Abstract

Completeness is a key feature of abstract interpretation. It corresponds to exactness of the abstraction of fix-points and relies upon the need of absence of false alarms in static program analysis. Making abstract interpretation complete is therefore a major problem in approximating the semantics of programming languages. In this paper, we consider the problem of making abstract interpretations complete by minimally modifying the predicate transformer, i.e. the semantics, of a program. We study the mathematical properties of complete functions on complete lattices and prove the existence of minimal transformations of monotone functions to achieve completeness. We then apply minimal complete transformers to prove the minimality of standard program transformations in security, such as static program monitoring.

Copyright
Footnotes
Hide All

This is a revised and extended version of two papers that appeared in the Proceedings of SAS'08 (Giacobazzi and Mastroeni 2008) and SEFM'08 (Giacobazzi 2008).

Footnotes
Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

T. Ball , A. Podelski and S. Rajamani (2002) Relative completeness of abstraction refinement for software model checking. In: J.-P. Kaoen and P. Stevens (eds.) Proceedings of TACAS: Tools and Algorithms for the Construction and Analysis of Systems. Springer-Verlag Lecture Notes in Computer Science 2280 158172.

T. Blyth and M. Janowitz (1972) Residuation Theory, Pergamon Press.

E. M. Clarke , O. Grumberg , S. Jha , Y. Lu and H. Veith (2003) Counterexample-guided abstraction refinement for symbolic model checking. Journal of the ACM 50 (5) 752794.

C. Collberg and C. D. Thomborson (1999) Software watermarking: Models and dynamic embeddings. In: POPL'99: Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM, New York, NY, USA 311324.

C. Collberg and C. D. Thomborson (2000) Watermarking, tamper-proofing, and obfuscation-tools for software protection. IEEE Transactions on Software Engineering 28 735746.

P. Cousot (2002) Constructive design of a hierarchy of semantics of a transition system by abstract interpretation. Theoretical Computer Science 277 (1–2) 47103.

P. Cousot and R. Cousot (1979b) Constructive versions of Tarski's fixed point theorems. Pacific Journal of Mathematics 82 (1) 4357.

P. Cousot and R. Cousot (1992a) Abstract interpretation frameworks. Journal of Logic and Computation 2 (4) 511547.

P. Cousot and R. Cousot (1992b) Comparing the Galois connection and widening/narrowing approaches to abstract interpretation (Invited Paper) In: M. Bruynooghe and M. Wirsing (eds.) Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming (PLILP'92). Springer-Verlag Lecture Notes in Computer Science 631 269295.

P. Cousot , P. Ganty and J.-F. Raskin (2007b) Fixpoint-guided abstraction refinements. In: G. Filé and H. Riis Nielson (eds.) Proceedings of the 14th International Symposium on Static Analysis, SAS '07, Kongens Lyngby, Denmark. Springer Lecture Notes in Computer Science 4634 333348.

M. Dalla Preda , M. Christodorescu , S. Jha and S. Debray (2007) A semantics-based approach to malware detection. In: POPL'07: Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM Press, New York, NY, USA 377388.

M. Dalla Preda and R. Giacobazzi (2009) Semantic-based code obfuscation by abstract interpretation. Journal of Computer Security 17 (6) 855908.

D. Dams , R. Gerth and O. Grumberg (1997) Abstract interpretation of reactive systems. ACM Transactions on Programming Languages and Systems 19 (2) 253291.

B. A. Davey and H. A. Priestley (1990) Introduction to Lattices and Order, Cambridge University Press, Cambridge, U.K.

G. Filé , R. Giacobazzi and F. Ranzato (1996) A unifying view of abstract domain design. ACM Computing Surveys 28 (2) 333336.

R. Giacobazzi and I. Mastroeni (2004) Abstract non-interference: Parameterizing non-interference by abstract interpretation. In: Proceedings of the 31st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '04), ACM-Press, New York 186197.

R. Giacobazzi and I. Mastroeni (2008) Transforming abstract interpretations by abstract interpretation. In: M. Alpuente (ed.) Proceedings of the 15th International Static Analysis Symposium, SAS'08. Springer-Verlag Lecture Notes in Computer Science 5079 117.

R. Giacobazzi and E. Quintarelli (2001) Incompleteness, counterexamples and refinements in abstract model-checking. In: P. Cousot (ed.) Proceedings of The 8th International Static Analysis Symposium (SAS'01). Springer-Verlag Lecture Notes in Computer Science 2126 356373.

R. Giacobazzi and F. Ranzato (1997) Refining and compressing abstract domains. In: P. Degano , R. Gorrieri and A. Marchetti-Spaccamela (eds.) Proceedings of the 24th International Colloquium on Automata, Languages and Programming (ICALP '97). Springer-Verlag Lecture Notes in Computer Science 1256 771781.

R. Giacobazzi and F. Ranzato (1998a) Optimal domains for disjunctive abstract interpretation. Science of Computer Programming 32 (1–3) 177210.

R. Giacobazzi and F. Ranzato (1998b) Uniform closures: Order-theoretically reconstructing logic program semantics and abstract domain refinements. Information and Computation 145 (2) 153190.

R. Giacobazzi , F. Ranzato and F. Scozzari (2000) Making abstract interpretations complete. Journal of the ACM 47 (2) 361416.

B. S. Gulavani and S. K. Rajamani (2006) Counterexample driven refinement for abstract interpretation. In: TACAS 06: Tools and Algorithms for Construction and Analysis of Systems. Springer Lecture Notes in Computer Science 3920 474488.

H. P. Gumm (1993) Another glance at the Alpern–Schneider theorem. Information Processing Letters 47 291294.

V. Laviron and F. Logozzo (2009) Refining abstract interpretation-based static analyses with hints. In: Proceedings of APLAS'09. Springer-Verlag Lecture Notes in Computer Science 5904 343358.

J. Nagra and C. D. Thomborson (2004) Threading software watermarks. In: Proceedings of 6th International Workshop on Information Hiding. Springer-Verlag Lecture Notes in Computer Science 3200 208233.

F. Nielson , H. Nielson and C. Hankin (1999) Principles of Program Analysis, Springer.

F. Ranzato and F. Tapparo (2007) Generalized strong preservation by abstract interpretation. Journal of Logic and Computation 17 (1) 157197.

X. Rival and L. Mauborgne (2007) The trace partitioning abstract domain. ACM Transactions on Programming Languages and Systems 29 (5) 26.

F. B. Schneider (2000) Enforceable security policies. Information and System Security 3 (1) 3050.

R. Venkatesan , V. Vazirani and S. Sinha (2001) A graph theoretic approach to software watermarking. In: Information Hiding. Lecture Notes in Computer Science 2137 157168.

M. Ward (1942) The closure operators of a lattice. Annals of Mathematical 43 (2) 191196.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Mathematical Structures in Computer Science
  • ISSN: 0960-1295
  • EISSN: 1469-8072
  • URL: /core/journals/mathematical-structures-in-computer-science
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
×

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 22 *
Loading metrics...

Abstract views

Total abstract views: 176 *
Loading metrics...

* Views captured on Cambridge Core between September 2016 - 20th September 2017. This data will be updated every 24 hours.