Efficient Data Model Verification with Many-Sorted Logic (T)

Misuse or loss of web application data can have catastrophic consequences in today's Internet oriented world. Hence, verification of web application data models is of paramount importance. We have developed a framework for verification of web application data models via translation to First Order Logic (FOL), followed by automated theorem proving. Due to the undecidability of FOL, this automated approach does not always produce a conclusive answer. In this paper, we investigate the use of many-sorted logic in data model verification in order to improve the effectiveness of this approach. Many-sorted logic allows us to specify type information explicitly, thus lightening the burden of reasoning about type information during theorem proving. Our experiments demonstrate that using many-sorted logic improves the verification performance significantly, and completely eliminates inconclusive results in all cases over 7 real world web applications, down from an 17% inconclusive rate.

[1]  Tevfik Bultan,et al.  Coexecutability for Efficient Verification of Data Model Updates , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[2]  Bruno Dutertre,et al.  A Fast Linear-Arithmetic Solver for DPLL(T) , 2006, CAV.

[3]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[4]  Christoph Weidenbach,et al.  SPASS Version 3.5 , 2009, CADE.

[5]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[6]  Geoff Sutcliffe,et al.  The state of CASC , 2006, AI Commun..

[7]  Tevfik Bultan,et al.  Bounded verification of Ruby on Rails data models , 2011, ISSTA '11.

[8]  Tevfik Bultan,et al.  Unbounded data model verification using SMT solvers , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[9]  Andrei Voronkov,et al.  First-Order Theorem Proving and Vampire , 2013, CAV.

[10]  Rupak Majumdar,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 1997, Lecture Notes in Computer Science.

[11]  Koen Claessen,et al.  Sort It Out with Monotonicity - Translating between Many-Sorted and Unsorted First-Order Logic , 2011, CADE.

[12]  K. Rustan M. Leino,et al.  Dafny: An Automatic Program Verifier for Functional Correctness , 2010, LPAR.

[13]  Tevfik Bultan,et al.  Inductive verification of data model invariants for web applications , 2014, ICSE.

[14]  Peter Baumgartner,et al.  The TPTP Typed First-Order Form with Arithmetic , 2012, LPAR.

[15]  Bor-Yuh Evan Chang,et al.  Boogie: A Modular Reusable Verifier for Object-Oriented Programs , 2005, FMCO.

[16]  Tevfik Bultan,et al.  An integrated data model verifier with property templates , 2013, 2013 1st FME Workshop on Formal Methods in Software Engineering (FormaliSE).

[17]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[18]  Herbert B. Enderton,et al.  A mathematical introduction to logic , 1972 .

[19]  Geoff Sutcliffe,et al.  The development of CASC , 2002, AI Commun..

[20]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[21]  Nikolaj Bjørner,et al.  Efficient E-Matching for SMT Solvers , 2007, CADE.

[22]  Andrei Popescu,et al.  More SPASS with Isabelle - Superposition with Hard Sorts and Configurable Simplification , 2012, ITP.

[23]  Michael R. Lowry,et al.  Deductive Composition of Astronomical Software from Subroutine Libraries , 1994, CADE.

[24]  Geoff Sutcliffe,et al.  The TPTP Problem Library , 1994, Journal of Automated Reasoning.

[25]  Greg Nelson,et al.  Extended static checking for Java , 2002, PLDI '02.

[26]  W. V. Quine,et al.  Quantification and the empty domain , 1954, Journal of Symbolic Logic.

[27]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[28]  José Meseguer,et al.  Order-Sorted Algebra I: Equational Deduction for Multiple Inheritance, Overloading, Exceptions and Partial Operations , 1992, Theor. Comput. Sci..