TY - GEN
T1 - Automatically disproving fair termination of higher-order functional programs
AU - Watanabe, Keiichi
AU - Sato, Ryosuke
AU - Tsukada, Takeshi
AU - Kobayashi, Naoki
PY - 2016/8/4
Y1 - 2016/8/4
N2 - We propose an automated method for disproving fair termination of higher-order functional programs, which is complementary to Murase et al.'s recent method for proving fair termination. A program is said to be fair terminating if it has no infinite execution trace that satisfies a given fairness constraint. Fair termination is an important property because program verification problems for arbitrary ω-regular temporal properties can be transformed to those of fair termination. Our method reduces the problem of disproving fair termination to higher-order model checking by using predicate abstraction and CEGAR. Given a program, we convert it to an abstract program that generates an approximation of the (possibly infinite) execution traces of the original program, so that the original program has a fair infinite execution trace if the tree generated by the abstract program satisfies a certain property. The method is a nontrivial extension of Kuwahara et al.'s method for disproving plain termination.We implemented a prototype verification tool based on our method and confirmed its effectiveness.
AB - We propose an automated method for disproving fair termination of higher-order functional programs, which is complementary to Murase et al.'s recent method for proving fair termination. A program is said to be fair terminating if it has no infinite execution trace that satisfies a given fairness constraint. Fair termination is an important property because program verification problems for arbitrary ω-regular temporal properties can be transformed to those of fair termination. Our method reduces the problem of disproving fair termination to higher-order model checking by using predicate abstraction and CEGAR. Given a program, we convert it to an abstract program that generates an approximation of the (possibly infinite) execution traces of the original program, so that the original program has a fair infinite execution trace if the tree generated by the abstract program satisfies a certain property. The method is a nontrivial extension of Kuwahara et al.'s method for disproving plain termination.We implemented a prototype verification tool based on our method and confirmed its effectiveness.
UR - http://www.scopus.com/inward/record.url?scp=85030572142&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85030572142&partnerID=8YFLogxK
U2 - 10.1145/2951913.2951919
DO - 10.1145/2951913.2951919
M3 - Conference contribution
AN - SCOPUS:85030572142
SN - 9781450342193
T3 - ICFP 2016 - Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming
SP - 243
EP - 255
BT - ICFP 2016 - Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming
A2 - Sumii, Eijiro
A2 - Garrigue, Jacques
A2 - Keller, Gabriele
PB - Association for Computing Machinery, Inc
T2 - 21st ACM SIGPLAN International Conference on Functional Programming, ICFP 2016
Y2 - 18 September 2016 through 24 September 2016
ER -