Relational Mathematics for Relative Correctness

In earlier work, we had presented a definition of software fault as being any feature of a program that admits a substitution that would make the program more-correct. This definition requires, in turn, that we define the concept of relative correctness, i.e., what it means for a program to be more-correct than another with respect to a given specification. In this paper we broaden our earlier definition to encompass non-deterministic programs, or non-deterministic representations of programs; also, we study the mathematical properties of the new definition, most notably its relation to the refinement ordering, as well as its algebraic properties with respect to the refinement lattice.

[1]  Harrie de Swart,et al.  Relational Methods in Computer Science , 2003, Lecture Notes in Computer Science.

[2]  Shuvendu K. Lahiri,et al.  Differential assertion checking , 2013, ESEC/FSE 2013.

[3]  Wolfram Kahl,et al.  Relational Methods in Computer Science , 1997, Advances in Computing Sciences.

[4]  Sam Blackshear,et al.  Verification modulo versions: towards usable verification , 2014, PLDI.

[5]  Jules Desharnais,et al.  Program Derivation by Correctness Enhacements , 2015, Refine@FM.

[6]  Claire Le Goues,et al.  Current challenges in automatic software repair , 2013, Software Quality Journal.

[7]  Gunther Schmidt,et al.  Relations and Graphs: Discrete Mathematics for Computer Scientists , 1993 .

[8]  Thomas Ball,et al.  Modular and verified automatic program repair , 2012, OOPSLA '12.

[9]  Ali Mili,et al.  Correctness and Relative Correctness , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[10]  Gunther Schmidt,et al.  Relational Mathematics , 2010, Encyclopedia of Mathematics and its Applications.

[11]  Claire Le Goues,et al.  Automatically finding patches using genetic programming , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[12]  Ali Mili,et al.  On Faults and Faulty Programs , 2013, RAMiCS.

[13]  Ali Mili,et al.  On the lattice of specifications: Applications to a specification methodology , 2005, Formal Aspects of Computing.

[14]  Dawei Qi,et al.  SemFix: Program repair via semantic analysis , 2013, 2013 35th International Conference on Software Engineering (ICSE).