Abstract
We propose an automated method for checking the validity of a formula of HFL(Z), a higher-order logic with fixpoint operators and integers. Combined with Kobayashi et al.'s reduction from higher-order program verification to HFL(Z) validity checking, our method yields a fully automated, uniform verification method for arbitrary temporal properties of higher-order functional programs expressible in the modal mu-calculus, including termination, non-termination, fair termination, fair non-termination, and also branching-time properties. We have implemented our method and obtained promising experimental results.
- Tewodros A. Beyene, Corneliu Popeea, and Andrey Rybalchenko. 2013. Solving Existentially Quantified Horn Clauses. In Computer Aided Verification - 25th International Conference, CAV 2013, Saint Petersburg, Russia, July 13-19, 2013. Proceedings, Natasha Sharygina and Helmut Veith (Eds.) (Lecture Notes in Computer Science, Vol. 8044). Springer, 869–882. https://doi.org/10.1007/978-3-642-39799-8_61
Google Scholar
Cross Ref
- Nikolaj Bjørner, Arie Gurfinkel, Kenneth L. McMillan, and Andrey Rybalchenko. 2015. Horn Clause Solvers for Program Verification. In Fields of Logic and Computation II - Essays Dedicated to Yuri Gurevich on the Occasion of His 75th Birthday (LNCS, Vol. 9300). Springer, 24–51. https://doi.org/10.1007/978-3-319-23534-9_2
Google Scholar
Cross Ref
- Nikolaj S. Bjørner, Kenneth L. McMillan, and Andrey Rybalchenko. 2013. On Solving Universally Quantified Horn Clauses. In Static Analysis - 20th International Symposium, SAS 2013, Seattle, WA, USA, June 20-22, 2013. Proceedings, Francesco Logozzo and Manuel Fähndrich (Eds.) (Lecture Notes in Computer Science, Vol. 7935). Springer, 105–125. https://doi.org/10.1007/978-3-642-38856-9_8
Google Scholar
Cross Ref
- Julian C. Bradfield and Igor Walukiewicz. 2018. The mu-calculus and Model Checking. In Handbook of Model Checking, Edmund M. Clarke, Thomas A. Henzinger, Helmut Veith, and Roderick Bloem (Eds.). Springer, 871–919. https://doi.org/10.1007/978-3-319-10575-8_26
Google Scholar
Cross Ref
- Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005. Linear Ranking with Reachability. In Computer Aided Verification, 17th International Conference, CAV 2005, Edinburgh, Scotland, UK, July 6-10, 2005, Proceedings, Kousha Etessami and Sriram K. Rajamani (Eds.) (Lecture Notes in Computer Science, Vol. 3576). Springer, 491–504. https://doi.org/10.1007/11513988_48
Google Scholar
Digital Library
- Toby Cathcart Burn, C.-H. Luke Ong, and Steven J. Ramsay. 2018. Higher-order constrained Horn clauses for verification. Proc. ACM Program. Lang., 2, POPL (2018), 11:1–11:28. https://doi.org/10.1145/3158099
Google Scholar
Digital Library
- Byron Cook, Alexey Gotsman, Andreas Podelski, Andrey Rybalchenko, and Moshe Y. Vardi. 2007. Proving that programs eventually do something good. In Proceedings of the 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2007, Nice, France, January 17-19, 2007, Martin Hofmann and Matthias Felleisen (Eds.). ACM, 265–276. https://doi.org/10.1145/1190216.1190257
Google Scholar
Digital Library
- Byron Cook and Eric Koskinen. 2013. Reasoning About Nondeterminism in Programs. In Proceedings of PLDI 2013. ACM Press, 219–230. https://doi.org/10.1145/2491956.2491969
Google Scholar
Digital Library
- Byron Cook, Abigail See, and Florian Zuleger. 2013. Ramsey vs. Lexicographic Termination Proving. In Tools and Algorithms for the Construction and Analysis of Systems - 19th International Conference, TACAS 2013, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2013, Rome, Italy, March 16-24, 2013. Proceedings, Nir Piterman and Scott A. Smolka (Eds.) (Lecture Notes in Computer Science, Vol. 7795). Springer, 47–61. https://doi.org/10.1007/978-3-642-36742-7_4
Google Scholar
Digital Library
- Giorgio Delzanno and Andreas Podelski. 2001. Constraint-based deductive model checking. Int. J. Softw. Tools Technol. Transf., 3, 3 (2001), 250–270. https://doi.org/10.1007/s100090100049
Google Scholar
Cross Ref
- Grigory Fedyukovich, Yueling Zhang, and Aarti Gupta. 2018. Syntax-Guided Termination Analysis. In Computer Aided Verification - 30th International Conference, CAV 2018, Held as Part of the Federated Logic Conference, FloC 2018, Oxford, UK, July 14-17, 2018, Proceedings, Part I (LNCS, Vol. 10981). Springer, 124–143. https://doi.org/10.1007/978-3-319-96145-3_7
Google Scholar
Cross Ref
- David Harel. 1986. Effective transformations on infinite trees, with applications to high undecidability, dominoes, and fairness. J. ACM, 33, 1 (1986), 224–248. https://doi.org/10.1145/4904.4993
Google Scholar
Digital Library
- Martin Hofmann and Wei Chen. 2014. Abstract interpretation from Büchi automata. In Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS), CSL-LICS ’14, Vienna, Austria, July 14 - 18, 2014, Thomas A. Henzinger and Dale Miller (Eds.). ACM, 51:1–51:10. https://doi.org/10.1145/2603088.2603127
Google Scholar
Digital Library
- Martin Hofmann and Wei Chen. 2014. Büchi types for infinite traces and liveness. CoRR, abs/1401.5107 (2014).
Google Scholar
- Naoki Iwayama, Naoki Kobayashi, Ryota Suzuki, and Takeshi Tsukada. 2020. Predicate Abstraction and CEGAR for ν HFL_Z Validity Checking. In Static Analysis - 27th International Symposium, SAS 2020, Virtual Event, November 18-20, 2020, Proceedings, David Pichardie and Mihaela Sighireanu (Eds.) (Lecture Notes in Computer Science, Vol. 12389). Springer, 134–155. https://doi.org/10.1007/978-3-030-65474-0_7
Google Scholar
Digital Library
- Joxan Jaffar, Andrew E. Santosa, and Razvan Voicu. 2006. A CLP Method for Compositional and Intermittent Predicate Abstraction. In Proceedings of VMCAI 2006 (Lecture Notes in Computer Science, Vol. 3855). Springer, 17–32. https://doi.org/10.1007/11609773_2
Google Scholar
Digital Library
- Hiroyuki Katsura, Naoki Iwayama, Naoki Kobayashi, and Takeshi Tsukada. 2020. A New Refinement Type System for Automated ν HFL_Z Validity Checking. In Programming Languages and Systems - 18th Asian Symposium, APLAS 2020, Fukuoka, Japan, November 30 - December 2, 2020, Proceedings, Bruno C. d. S. Oliveira (Ed.) (Lecture Notes in Computer Science, Vol. 12470). Springer, 86–104. https://doi.org/10.1007/978-3-030-64437-6_5
Google Scholar
Digital Library
- Naoki Kobayashi, Étienne Lozes, and Florian Bruse. 2017. On the relationship between higher-order recursion schemes and higher-order fixpoint logic. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, Paris, France, January 18-20, 2017, Giuseppe Castagna and Andrew D. Gordon (Eds.). ACM, 246–259. https://doi.org/10.1145/3009837.3009854
Google Scholar
Digital Library
- Naoki Kobayashi, Takeshi Nishikawa, Atsushi Igarashi, and Hiroshi Unno. 2019. Temporal Verification of Programs via First-Order Fixpoint Logic. In Static Analysis - 26th International Symposium, SAS 2019, Porto, Portugal, October 8-11, 2019, Proceedings, Bor-Yuh Evan Chang (Ed.) (Lecture Notes in Computer Science, Vol. 11822). Springer, 413–436. https://doi.org/10.1007/978-3-030-32304-2_20
Google Scholar
Digital Library
- Naoki Kobayashi, Ryosuke Sato, and Hiroshi Unno. 2011. Predicate abstraction and CEGAR for higher-order model checking. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2011, San Jose, CA, USA, June 4-8, 2011, Mary W. Hall and David A. Padua (Eds.). ACM, 222–233. https://doi.org/10.1145/1993498.1993525
Google Scholar
Digital Library
- Naoki Kobayashi, Takeshi Tsukada, and Keiichi Watanabe. 2017. Higher-Order Program Verification via HFL Model Checking. CoRR, abs/1710.08614 (2017), arxiv:1710.08614
Google Scholar
- Naoki Kobayashi, Takeshi Tsukada, and Keiichi Watanabe. 2018. Higher-Order Program Verification via HFL Model Checking. In Programming Languages and Systems - 27th European Symposium on Programming, ESOP 2018, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018, Thessaloniki, Greece, April 14-20, 2018, Proceedings, Amal Ahmed (Ed.) (Lecture Notes in Computer Science, Vol. 10801). Springer, 711–738. https://doi.org/10.1007/978-3-319-89884-1_25
Google Scholar
Cross Ref
- Eric Koskinen and Tachio Terauchi. 2014. Local temporal reasoning. In Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS), CSL-LICS ’14, Vienna, Austria, July 14 - 18, 2014, Thomas A. Henzinger and Dale Miller (Eds.). ACM, 59:1–59:10. https://doi.org/10.1145/2603088.2603138
Google Scholar
Digital Library
- Takuya Kuwahara, Ryosuke Sato, Hiroshi Unno, and Naoki Kobayashi. 2015. Predicate Abstraction and CEGAR for Disproving Termination of Higher-Order Functional Programs. In Computer Aided Verification - 27th International Conference, CAV 2015, San Francisco, CA, USA, July 18-24, 2015, Proceedings, Part II, Daniel Kroening and Corina S. Pasareanu (Eds.) (Lecture Notes in Computer Science, Vol. 9207). Springer, 287–303. https://doi.org/10.1007/978-3-319-21668-3_17
Google Scholar
Cross Ref
- Takuya Kuwahara, Tachio Terauchi, Hiroshi Unno, and Naoki Kobayashi. 2014. Automatic Termination Verification for Higher-Order Functional Programs. In Programming Languages and Systems - 23rd European Symposium on Programming, ESOP 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5-13, 2014, Proceedings, Zhong Shao (Ed.) (Lecture Notes in Computer Science, Vol. 8410). Springer, 392–411. https://doi.org/10.1007/978-3-642-54833-8_21
Google Scholar
Digital Library
- M. M. Lester, R. P. Neatherway, C.-H. Luke Ong, and S. J. Ramsay. 2011. Model checking liveness properties of higher-order functional programs. In Proceedings of ML Workshop 2011.
Google Scholar
- Akihiro Murase, Tachio Terauchi, Naoki Kobayashi, Ryosuke Sato, and Hiroshi Unno. 2016. Temporal verification of higher-order functional programs. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2016, St. Petersburg, FL, USA, January 20 - 22, 2016, Rastislav Bodík and Rupak Majumdar (Eds.). ACM, 57–68. https://doi.org/10.1145/2837614.2837667
Google Scholar
Digital Library
- Yoji Nanjo, Hiroshi Unno, Eric Koskinen, and Tachio Terauchi. 2018. A Fixpoint Logic and Dependent Effects for Temporal Property Verification. In Proceedings of the 33rd Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2018, Oxford, UK, July 09-12, 2018, Anuj Dawar and Erich Grädel (Eds.). ACM, 759–768. https://doi.org/10.1145/3209108.3209204
Google Scholar
Digital Library
- Flemming Nielson, Hanne Riis Nielson, and Chris Hankin. 1999. Principles of Program Analysis. Springer. https://doi.org/10.1007/978-3-662-03811-6
Google Scholar
Cross Ref
- C.-H. Luke Ong and Steven J. Ramsay. 2011. Verifying higher-order functional programs with pattern-matching algebraic data types. In Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2011, Austin, TX, USA, January 26-28, 2011, Thomas Ball and Mooly Sagiv (Eds.). ACM, 587–598. https://doi.org/10.1145/1926385.1926453
Google Scholar
Digital Library
- Jens Palsberg. 2001. Type-based analysis and applications. In Proceedings of the 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis For Software Tools and Engineering, PASTE’01, Snowbird, Utah, USA, June 18-19, 2001, John Field and Gregor Snelting (Eds.). ACM, 20–27. https://doi.org/10.1145/379605.379635
Google Scholar
Digital Library
- Zvonimir Pavlinovic, Yusen Su, and Thomas Wies. 2021. Data flow refinement type inference. Proc. ACM Program. Lang., 5, POPL (2021), 1–31. https://doi.org/10.1145/3434300
Google Scholar
Digital Library
- Andreas Podelski and Andrey Rybalchenko. 2004. Transition Invariants. In 19th IEEE Symposium on Logic in Computer Science (LICS 2004), 14-17 July 2004, Turku, Finland, Proceedings. IEEE Computer Society, 32–41. https://doi.org/10.1109/LICS.2004.1319598
Google Scholar
Cross Ref
- Patrick Maxim Rondon, Ming Kawaguchi, and Ranjit Jhala. 2008. Liquid types. In Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, Tucson, AZ, USA, June 7-13, 2008, Rajiv Gupta and Saman P. Amarasinghe (Eds.). ACM, 159–169. https://doi.org/10.1145/1375581.1375602
Google Scholar
Digital Library
- Ryosuke Sato, Hiroshi Unno, and Naoki Kobayashi. 2013. Towards a scalable software model checker for higher-order programs. In Proceedings of the ACM SIGPLAN 2013 Workshop on Partial Evaluation and Program Manipulation, PEPM 2013, Rome, Italy, January 21-22, 2013, Elvira Albert and Shin-Cheng Mu (Eds.). ACM, 53–62. https://doi.org/10.1145/2426890.2426900
Google Scholar
Digital Library
- Kento Tanahashi, Naoki Kobayashi, and Ryosuke Sato. 2022. Automatic HFL(Z) Validity Checking for Program Verification. CoRR, abs/2203.07601 (2022), https://doi.org/10.48550/arXiv.2203.07601 arXiv:2203.07601.
Google Scholar
- Tachio Terauchi. 2010. Dependent types from counterexamples. In Proceedings of the 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2010, Madrid, Spain, January 17-23, 2010, Manuel V. Hermenegildo and Jens Palsberg (Eds.). ACM, 119–130. https://doi.org/10.1145/1706299.1706315
Google Scholar
Digital Library
- Takeshi Tsukada. 2020. On Computability of Logical Approaches to Branching-Time Property Verification of Programs. In LICS ’20: 35th Annual ACM/IEEE Symposium on Logic in Computer Science, Saarbrücken, Germany, July 8-11, 2020, Holger Hermanns, Lijun Zhang, Naoki Kobayashi, and Dale Miller (Eds.). ACM, 886–899. https://doi.org/10.1145/3373718.3394766
Google Scholar
Digital Library
- Hiroshi Unno, Tachio Terauchi, and Naoki Kobayashi. 2013. Automating relatively complete verification of higher-order functional programs. In The 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’13, Rome, Italy - January 23 - 25, 2013, Roberto Giacobazzi and Radhia Cousot (Eds.). ACM, 75–86. https://doi.org/10.1145/2429069.2429081
Google Scholar
Digital Library
- Mahesh Viswanathan and Ramesh Viswanathan. 2004. A Higher Order Modal Fixed Point Logic. In CONCUR 2004 - Concurrency Theory, 15th International Conference, London, UK, August 31 - September 3, 2004, Proceedings, Philippa Gardner and Nobuko Yoshida (Eds.) (Lecture Notes in Computer Science, Vol. 3170). Springer, 512–528. https://doi.org/10.1007/978-3-540-28644-8_33
Google Scholar
Cross Ref
- Keiichi Watanabe, Ryosuke Sato, Takeshi Tsukada, and Naoki Kobayashi. 2016. Automatically disproving fair termination of higher-order functional programs. In Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming, ICFP 2016, Nara, Japan, September 18-22, 2016, Jacques Garrigue, Gabriele Keller, and Eijiro Sumii (Eds.). ACM, 243–255. https://doi.org/10.1145/2951913.2951919
Google Scholar
Digital Library
- Keiichi Watanabe, Takeshi Tsukada, Hiroki Oshikawa, and Naoki Kobayashi. 2019. Reduction from branching-time property verification of higher-order programs to HFL validity checking. In Proceedings of the 2019 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, [email protected] 2019, Cascais, Portugal, January 14-15, 2019, Manuel V. Hermenegildo and Atsushi Igarashi (Eds.). ACM, 22–34. https://doi.org/10.1145/3294032.3294077
Google Scholar
Digital Library
- He Zhu, Aditya V. Nori, and Suresh Jagannathan. 2015. Learning refinement types. In Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, ICFP 2015, Vancouver, BC, Canada, September 1-3, 2015. ACM, 400–411. https://doi.org/10.1145/2784731.2784766
Google Scholar
Digital Library
Index Terms
HFL(Z) Validity Checking for Automated Program Verification
Recommendations
Reduction from branching-time property verification of higher-order programs to HFL validity checking
PEPM 2019: Proceedings of the 2019 ACM SIGPLAN Workshop on Partial Evaluation and Program ManipulationVarious methods have recently been proposed for temporal property verification of higher-order programs. In those methods, however, either temporal properties were limited to linear-time ones, or target programs were limited to finite-data programs. In ...
A New Refinement Type System for Automated Validity Checking
Programming Languages and SystemsAbstractKobayashi et al. have recently shown that various verification problems for higher-order functional programs can naturally be reduced to the validity checking problem for , a higher-order fixpoint logic extended with integers. We propose a ...
Predicate Abstraction and CEGAR for Validity Checking
Static AnalysisAbstractWe propose an automated method for validity checking. is an extension of the higher-order fixpoint logic HFL with integers, and is a restriction of it to the fragment without the least fixpoint operator. The validity checking ...






Comments