State Isomorphism in Model Programs with Abstract Data Structures

Modeling software features with model programs in C# is a way of formalizing software requirements that lends itself to automated analysis such as model-based testing. Unordered structures like sets and maps provide a useful abstract view of system state within a model program and greatly reduce the number of states that must be considered during analysis. Similarly, a technique called linearization reduces the number of states that must be considered by identifying isomorphic states, or states that are identical except for reserve element choice (such as the choice of object IDs for instances of classes). Unfortunately, linearization does not work on unordered structures such as sets. The problem turns into graph isomorphism, for which no polynomial time solution is known. In this paper we discuss the issue of state isomorphism in the presence of unordered structures and give a practical approach that overcomes some of the algorithmic limitations.

[1]  Julian R. Ullmann,et al.  An Algorithm for Subgraph Isomorphism , 1976, J. ACM.

[2]  Eugene M. Luks Isomorphism of Graphs of Bounded Valence Can Be Tested in Polynomial Time , 1980, FOCS.

[3]  Jacobo Torán,et al.  The graph isomorphism problem , 2020, Commun. ACM.

[4]  Yuri Gurevich,et al.  Evolving algebras 1993: Lipari guide , 1995, Specification and validation methods.

[5]  David L. Dill,et al.  Better verification through symmetry , 1996, Formal Methods Syst. Des..

[6]  B. Messmer Efficient graph matching algorithms , 1995 .

[7]  Egon Börger Specification and validation methods , 1995 .

[8]  David L. Dill,et al.  The Murphi Verification System , 1996, CAV.

[9]  Scott Fortin The Graph Isomorphism Problem , 1996 .

[10]  Mieke Massink,et al.  Theoretical and Practical Aspects of SPIN Model Checking , 1999, Lecture Notes in Computer Science.

[11]  Claudio Demartini,et al.  dSPIN: A Dynamic Extension of SPIN , 1999, SPIN.

[12]  Andreas Blass,et al.  Background, Reserve, and Gandy Machines , 2000, CSL.

[13]  Klaus Havelund,et al.  SPIN Model Checking and Software Verification , 2000, Lecture Notes in Computer Science.

[14]  Dragan Bosnacki,et al.  Symmetric Spin , 2000, SPIN.

[15]  Sarfraz Khurshid,et al.  Korat: automated testing based on Java predicates , 2002, ISSTA '02.

[16]  Margus Veanes,et al.  Generating finite state machines from abstract state machines , 2002, ISSTA '02.

[17]  Radu Iosif Symmetry reductions for model checking of concurrent dynamic software , 2004, International Journal on Software Tools for Technology Transfer.

[18]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[19]  Margus Veanes,et al.  State Exploration with Multiple State Groupings , 2005, Abstract State Machines.

[20]  Margus Veanes,et al.  Online testing with model programs , 2005, ESEC/FSE-13.

[21]  David Notkin,et al.  Symstra: A Framework for Generating Object-Oriented Unit Tests Using Symbolic Execution , 2005, TACAS.

[22]  David L. Dill,et al.  An Incremental Heap Canonicalization Algorithm , 2005, SPIN.

[23]  Margus Veanes,et al.  Testing Concurrent Object-Oriented Systems with Spec Explorer , 2005, FM.

[24]  Matthew B. Dwyer,et al.  Domain-specific Model Checking Using The Bogor Framework , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[25]  Chandrasekhar Boyapati,et al.  Efficient software model checking of data structure properties , 2006, OOPSLA '06.

[26]  Muffy Calder,et al.  Symmetry in temporal logic model checking , 2006, CSUR.

[27]  Nikolai Tillmann,et al.  XRT- Exploring Runtime for .NET Architecture and Applications , 2006, Electron. Notes Theor. Comput. Sci..

[28]  Margus Veanes,et al.  Composition of Model Programs , 2007, FORTE.

[29]  Jonathan Jacky,et al.  Model-Based Software Testing and Analysis with C#: Preface , 2007 .

[30]  Margus Veanes,et al.  Parallel and Serial Composition of Model Programs , 2007 .

[31]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[32]  Margus Veanes,et al.  Model-Based Testing of Object-Oriented Reactive Systems with Spec Explorer , 2008, Formal Methods and Testing.

[33]  Diego Reforgiato Recupero Efficient Graph Matching , 2009, Encyclopedia of Data Warehousing and Mining.