TY - GEN
T1 - Temporal verification of higher-order functional programs
AU - Murase, Akihiro
AU - Terauchi, Tachio
AU - Kobayashi, Naoki
AU - Sato, Ryosuke
AU - Unno, Hiroshi
N1 - Publisher Copyright:
© 2016 ACM.
PY - 2016/1/11
Y1 - 2016/1/11
N2 - We present an automated approach to verifying arbitrary omegaregular properties of higher-order functional programs. Previous automated methods proposed for this class of programs could only handle safety properties or termination, and our approach is the first to be able to verify arbitrary omega-regular liveness properties. Our approach is automata-theoretic, and extends our recent work on binary-reachability-based approach to automated termination verification of higher-order functional programs to fair termination published in ESOP 2014. In that work, we have shown that checking disjunctive well-foundedness of (the transitive closure of) the "calling relation" is sound and complete for termination. The extension to fair termination is tricky, however, because the straightforward extension that checks disjunctive well-foundedness of the fair calling relation turns out to be unsound, as we shall show in the paper. Roughly, our solution is to check fairness on the transition relation instead of the calling relation, and propagate the information to determine when it is necessary and sufficient to check for disjunctive well-foundedness on the calling relation. We prove that our approach is sound and complete. We have implemented a prototype of our approach, and confirmed that it is able to automatically verify liveness properties of some non-trivial higher-order programs.
AB - We present an automated approach to verifying arbitrary omegaregular properties of higher-order functional programs. Previous automated methods proposed for this class of programs could only handle safety properties or termination, and our approach is the first to be able to verify arbitrary omega-regular liveness properties. Our approach is automata-theoretic, and extends our recent work on binary-reachability-based approach to automated termination verification of higher-order functional programs to fair termination published in ESOP 2014. In that work, we have shown that checking disjunctive well-foundedness of (the transitive closure of) the "calling relation" is sound and complete for termination. The extension to fair termination is tricky, however, because the straightforward extension that checks disjunctive well-foundedness of the fair calling relation turns out to be unsound, as we shall show in the paper. Roughly, our solution is to check fairness on the transition relation instead of the calling relation, and propagate the information to determine when it is necessary and sufficient to check for disjunctive well-foundedness on the calling relation. We prove that our approach is sound and complete. We have implemented a prototype of our approach, and confirmed that it is able to automatically verify liveness properties of some non-trivial higher-order programs.
KW - Automata-theoretic verification
KW - Automatic verification
KW - Binary reachability analysis
KW - CEGAR
KW - Higher-order programs
KW - Temporal properties
UR - http://www.scopus.com/inward/record.url?scp=84962532121&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84962532121&partnerID=8YFLogxK
U2 - 10.1145/2837614.2837667
DO - 10.1145/2837614.2837667
M3 - Conference contribution
AN - SCOPUS:84962532121
T3 - Conference Record of the Annual ACM Symposium on Principles of Programming Languages
SP - 57
EP - 68
BT - POPL 2016 - Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
A2 - Majumdar, Rupak
A2 - Bodik, Rastislav
PB - Association for Computing Machinery
T2 - 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2016
Y2 - 20 January 2016 through 22 January 2016
ER -