Shape and Content: Incorporating Domain Knowledge into Shape Analysis

The verification community has studied dynamic data structures primarily in a bottom-up way by analyzing pointers and the shapes induced by them. Recent work in fields such as separation logic has made significant progress in extracting shapes from program source code. Many real world programs however manipulate complex data whose structure and content is most naturally described by formalisms from object oriented programming and databases. In this paper, we attempt to bridge the conceptual gap between these two communities. Our approach is based on Description Logics (DLs), a widely used knowledge representation paradigm which gives a logical underpinning for diverse modeling frameworks such as UML and ER. We show how DLs can be used on top of an existing shape analysis to add content descriptions to the shapes. Technically, we assume that we have separation logic shape invariants obtained from a shape analysis tool, and requirements on the program data in terms of description logic. We show that the two-variable fragment of first order logic with counting and trees (whose decidability was presented at LICS 2013) can be used as a joint framework to embed suitable DLs and separation logic.

[1]  Franz Baader,et al.  Verification of Golog Programs over Description Logic Actions , 2013, FroCos.

[2]  Diego Calvanese,et al.  Reasoning on UML class diagrams , 2005, Artif. Intell..

[3]  Peter W. O'Hearn,et al.  BI as an assertion language for mutable data structures , 2001, POPL '01.

[4]  Shengchao Qin,et al.  Enhancing modular OO verification with separation logic , 2008, POPL '08.

[5]  Witold Charatonik,et al.  Two-Variable Logic with Counting and Trees , 2013, 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science.

[6]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 2002, TOPL.

[7]  Helmut Veith,et al.  On the concept of variable roles and its use in software analysis , 2013, 2013 Formal Methods in Computer-Aided Design.

[8]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[9]  R. Wilhelm,et al.  Parametric Shape Analysis via 3 - valued Logic TOPLAS , 2002 .

[10]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[11]  Sven Apel,et al.  Domain Types: Abstract-Domain Selection Based on Variable Usage , 2013, Haifa Verification Conference.

[12]  Xiaokang Qiu,et al.  Decidable logics combining heap structures and data , 2011, POPL '11.

[13]  Stephan Tobies,et al.  The Complexity of Reasoning with Cardinality Restrictions and Nominals in Expressive Description Logics , 2011, ArXiv.

[14]  Diego Calvanese,et al.  Evolving Graph Databases under Description Logic Constraints , 2013, Description Logics.

[15]  Ian Pratt-Hartmann Complexity of the Two-Variable Fragment with Counting Quantifiers , 2005, J. Log. Lang. Inf..

[16]  Diego Calvanese,et al.  The Description Logic Handbook: Theory, Implementation, and Applications , 2003, Description Logic Handbook.

[17]  Peter Lee,et al.  Automatic numeric abstractions for heap-manipulating programs , 2010, POPL '10.

[18]  Diego Calvanese,et al.  Reasoning over Extended ER Models , 2007, ER.

[19]  Alex Borgiday On the Relative Expressiveness of Description Logics and Predicate Logics , 1996 .

[20]  Thomas W. Reps,et al.  Symbolically Computing Most-Precise Abstract Operations for Shape Analysis , 2004, TACAS.

[21]  Patrick Maier,et al.  Description logics for shape analysis , 2005, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05).

[22]  Lukás Holík,et al.  Fully Automated Shape Analysis Based on Forest Automata , 2013, CAV.

[23]  Peter W. O'Hearn,et al.  Symbolic Execution with Separation Logic , 2005, APLAS.

[24]  Alexander Aiken,et al.  Data Structure Fusion , 2010, APLAS.

[25]  Edmund M. Clarke,et al.  Arithmetic Strengthening for Shape Analysis , 2007, SAS.

[26]  Anindya Banerjee,et al.  Local Reasoning for Global Invariants, Part I: Region Logic , 2013, JACM.

[27]  Franz Baader,et al.  Verifying Properties of Infinite Sequences of Description Logic Actions , 2010, ECAI.

[28]  Peter W. O'Hearn,et al.  A Decidable Fragment of Separation Logic , 2004, FSTTCS.

[29]  Gavin M. Bierman,et al.  Separation logic, abstraction and inheritance , 2008, POPL '08.

[30]  Peter W. O'Hearn,et al.  BI as an assertion language for mutable data structures , 2001, POPL '01.

[31]  Carsten Lutz,et al.  Temporal Description Logics: A Survey , 2008, 2008 15th International Symposium on Temporal Representation and Reasoning.

[32]  Mark R. Tuttle,et al.  Extracting models from design documents with mapster , 2008, PODC '08.

[33]  Giuseppe De Giacomo,et al.  Bounded Situation Calculus Action Theories and Decidable Verification , 2012, KR.