Tentative steps toward a development method for interfering programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the conversion of indirect to direct recursion
ACM Letters on Programming Languages and Systems (LOPLAS)
Computer
Inference rules for proving the equivalence of recursive procedures
Acta Informatica
Proceedings of the 46th Annual Design Automation Conference
Learning assumptions for compositional verification
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
Threader: a constraint-based verifier for multi-threaded programs
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Partition-based regression verification
Proceedings of the 2013 International Conference on Software Engineering
Precision reuse for efficient regression verification
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
Regression verification is the problem of deciding whether two similar programs are equivalent under an arbitrary yet equal context, given some definition of equivalence. So far this problem has only been studied for the case of single-threaded deterministic programs. We present a method for regression verification to establish partial equivalence (i.e., input/output equivalence of terminating executions) of multi-threaded programs. Specifically, we develop two proof-rules that decompose the regression verification between concurrent programs to that of regression verification between sequential functions, a more tractable problem. This ability to avoid composing threads altogether when discharging premises, in a fully automatic way and for general programs, uniquely distinguishes our proof rules from others used for classical verification of concurrent programs.