skip to main content
10.1145/2603088.2603138acmconferencesArticle/Chapter ViewAbstractPublication PageslicsConference Proceedingsconference-collections
research-article

Local temporal reasoning

Published:14 July 2014Publication History

ABSTRACT

We present the first method for reasoning about temporal logic properties of higher-order, infinite-data programs. By distinguishing between the finite traces and infinite traces in the specification, we obtain rules that permit us to reason about the temporal behavior of program parts via a type-and-effect system, which is then able to compose these facts together to prove the overall target property of the program. The type system alone is strong enough to derive many temporal safety properties using refinement types and temporal effects. We also show how existing techniques can be used as oracles to provide liveness information (e.g. termination) about program parts and that the type-and-effect system can combine this information with temporal safety information to derive nontrivial temporal properties. Our work has application toward verification of higher-order software, as well as modular strategies for procedural programs.

References

  1. Alur, R., and Chaudhuri, S. Temporal reasoning for procedural programs. In Proceedings of the 11th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI'10) (2010), vol. 5944, pp. 45--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Ball, T., and Rajamani, S. K. Automatically validating temporal safety properties of interfaces. In Proceedings of the 8th International SPIN Workshop on Model Checking Software (2001), vol. 2057, pp. 103--122. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Barringer, H., Kuiper, R., and Pnueli, A. Now you may compose temporal logic specifications. In Proceedings of the 16th Annual ACM Symposium on Theory of Computing (STOC '84) (1984), pp. 51--63. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Beyene, T., Popeea, C., and Rybalchenko, A. Solving existentially quantified horn clauses. In Proceedings of the 25th International Conference on Computer Aided Verification (CAV'11) (2013). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Beyer, D., Henzinger, T. A., Jhala, R., and Majumdar, R. The software model checker blast. STTT 9, 5-6 (2007), 505--525. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bhargavan, K., Fournet, C., and Gordon, A. D. Modular verification of security protocol code by typing. In The 37th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'10) (2010), pp. 445--456. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Clarke, E. M., Grumberg, O., Jha, S., Lu, Y., and Veith, H. Counterexample-guided abstraction refinement. In Proceedings of the 12th International Conference on Computer Aided Verification (CAV'00) (2000), vol. 1855, pp. 154--169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Cook, B., Gotsman, A., Podelski, A., Rybalchenko, A., and Vardi, M. Y. Proving that programs eventually do something good. In Proceedings of the 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'07) (2007), pp. 265--276. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Cook, B., and Koskinen, E. Making prophecies with decision predicates. In Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'11) (2011), ACM, pp. 399--410. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cook, B., and Koskinen, E. Reasoning about nondeterminism in programs. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'13) (2013), ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cook, B., Koskinen, E., and Vardi, M. Temporal verification as a program analysis task {extended version}. Formal Methods in System Design (2012). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Cook, B., Koskinen, E., and Vardi, M. Y. Temporal property verification as a program analysis task. In Proceedings of the 23rd International Conference on Computer Aided Verification (CAV'11) (2011), vol. 6806, pp. 333--348. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Cook, B., Podelski, A., and Rybalchenko, A. Termination proofs for systems code. In Proceedings of the ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation (PLDI'06) (2006), pp. 415--426. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Cousot, P., and Cousot, R. Inductive definitions, semantics and abstract interpretation. In Proceedings of the 19th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (1992), R. Sethi, Ed., ACM Press, pp. 83--94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Gastin, P., and Oddoux, D. Fast LTL to Büchi automata translation. In Proceedings of the 15th International Conference on Computer Aided Verification (CAV'01) (2001), pp. 53--65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Jhala, R., Majumdar, R., and Rybalchenko, A. HMC: Verifying functional programs using abstract interpreters. In Proceedings of the 23rd International Conference on Computer Aided Verification (CAV'11) (2011). Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Johnsson, T. Lambda lifting: Transforming programs to recursive equations. In FPCA (1985), pp. 190--203. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Kobayashi, N., and Ong, C.-H. L. A type system equivalent to the modal mu-calculus model checking of higher-order recursion schemes. In Proceedings of the 24th Annual IEEE Symposium on Logic in Computer Science (LICS'09) (2009), pp. 179--188. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Kobayashi, N., Sato, R., and Unno, H. Predicate abstraction and cegar for higher-order model checking. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'11) (2011), pp. 222--233. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Koskinen, E., and Terauchi, T. Local temporal reasoning. Tech. Rep. 966, New York University, 2014.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Kuwahara, T., Terauchi, T., Unno, H., and Kobayashi, N. Automatic termination verification for higher-order functional programs. In Proceedings of the 22nd European Symposium on Programming (ESOP'14) (2014), vol. 7792, pp. 1--20.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Ledesma-Garza, R., and Rybalchenko, A. Binary reachability analysis of higher order functional programs. In Proceedings of the 19th International Symposium on Static Analysis (SAS'12) (2012), vol. 7460, pp. 388--404. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Leroy, X., and Grall, H. Coinductive big-step operational semantics. Inf. Comput. 207, 2 (2009), 284--304. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. McMillan, K. L. Lazy abstraction with interpolants. In CAV'06 (2006), T. Ball and R. B. Jones, Eds., vol. 4144, pp. 123--136. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Podelski, A., and Rybalchenko, A. A complete method for the synthesis of linear ranking functions. In Proceedings of the 5th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI'04) (2004), vol. 2937, Springer, pp. 239--251.Google ScholarGoogle ScholarCross RefCross Ref
  26. Rondon, P. M., Kawaguchi, M., and Jhala, R. Liquid types. In Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation (PLDI'08) (2008), ACM, pp. 159--169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Skalka, C., and Smith, S. F. History effects and verification. In Proceedings of Programming Languages and Systems: Second Asian Symposium, (APLAS 2004) (2004), W.-N. Chin, Ed., vol. 3302, Springer, pp. 107--128.Google ScholarGoogle ScholarCross RefCross Ref
  28. Skalka, C., Smith, S. F., and Horn, D. V. Types and trace effects of higher order programs. J. Funct. Program. 18, 2 (2008), 179--249. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Terauchi, T. Dependent types from counterexamples. In Proceedings of the 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'10) (2010), ACM, pp. 119--130. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Thomas, W. Handbook of theoretical computer science (vol. b). MIT Press, Cambridge, MA, USA, 1990, ch. Automata on Infinite Objects, pp. 133--191. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Unno, H., Terauchi, T., and Kobayashi, N. Automating relatively complete verification of higher-order functional programs. In Proceedings of the 40th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'13) (2013), pp. 75--86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Xi, H., and Pfenning, F. Dependent types in practical programming. In Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'99) (1999), pp. 214--227. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Local temporal reasoning

                    Recommendations

                    Comments

                    Login options

                    Check if you have access through your login credentials or your institution to get full access on this article.

                    Sign in
                    • Published in

                      cover image ACM Conferences
                      CSL-LICS '14: Proceedings of the 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)
                      July 2014
                      764 pages
                      ISBN:9781450328869
                      DOI:10.1145/2603088
                      • Program Chairs:
                      • Thomas Henzinger,
                      • Dale Miller

                      Copyright © 2014 ACM

                      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                      Publisher

                      Association for Computing Machinery

                      New York, NY, United States

                      Publication History

                      • Published: 14 July 2014

                      Permissions

                      Request permissions about this article.

                      Request Permissions

                      Check for updates

                      Qualifiers

                      • research-article

                      Acceptance Rates

                      CSL-LICS '14 Paper Acceptance Rate74of212submissions,35%Overall Acceptance Rate143of386submissions,37%

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader