Abstract
We present an automated approach to relatively completely verifying safety (i.e., reachability) property of higher-order functional programs. Our contribution is two-fold. First, we extend the refinement type system framework employed in the recent work on (incomplete) automated higher-order verification by drawing on the classical work on relatively complete "Hoare logic like" program logic for higher-order procedural languages. Then, by adopting the recently proposed techniques for solving constraints over quantified first-order logic formulas, we develop an automated type inference method for the type system, thereby realizing an automated relatively complete verification of higher-order programs.
Supplemental Material
- L. Augustsson. Cayenne - a language with dependent types. In ICFP, pages 239--250, 1998. Google Scholar
Digital Library
- C. Barrett and C. Tinelli. CVC3. In CAV, pages 298--302, 2007. Google Scholar
Digital Library
- E. M. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In CAV, pages 154--169, 2000. Google Scholar
Digital Library
- M. Colón, S. Sankaranarayanan, and H. Sipma. Linear invariant generation using non-linear constraint solving. In CAV, pages 420--432, 2003.Google Scholar
- W. Damm and B. Josko. A sound and relatively_ complete Hoarelogic for a language with higher type procedures. Acta Inf., 20:59--101, 1983.Google Scholar
Digital Library
- S. M. German, E. M. Clarke, and J. Y. Halpern. Reasoning about procedures as parameters. In Logic of Programs, pages 206--220, 1983. Google Scholar
Digital Library
- S. M. German, E. M. Clarke, and J. Y. Halpern. Reasoning about procedures as parameters in the language L4. Inf. Comput., 83(3):265--359, 1989. Google Scholar
Digital Library
- A. Goerdt. A Hoare calculus for functions defined by recursion on higher types. In Logic of Programs, pages 106--117, 1985. Google Scholar
Digital Library
- S. Gulwani, S. Srivastava, and R. Venkatesan. Program analysis as constraint solving. In PLDI, pages 281--292, 2008. Google Scholar
Digital Library
- C. A. R. Hoare. An axiomatic basis for computer programming. Commun. ACM, 12(10):576--580, 1969. Google Scholar
Digital Library
- K. Honda, M. Berger, and N. Yoshida. Descriptive and relative completeness of logics for higher-order functions. In ICALP (2), pages 360--371, 2006. Google Scholar
Digital Library
- R. Jhala and R. Majumdar. Software model checking. ACM Comput. Surv., 41(4), 2009. Google Scholar
Digital Library
- R. Jhala, R. Majumdar, and A. Rybalchenko. HMC: Verifying functional programs using abstract interpreters. In CAV, pages 470--485, 2011. Google Scholar
Digital Library
- R. Jhala and K. L. McMillan. A practical and complete approach to predicate refinement. In TACAS, pages 459--473, 2006. Google Scholar
Digital Library
- T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In FPCA, pages 190--203, 1985. Google Scholar
Digital Library
- N. Kobayashi. Types and higher-order recursion schemes for verification of higher-order programs. In POPL, pages 416--428, 2009. Google Scholar
Digital Library
- N. Kobayashi and C.-H. L. Ong. A type system equivalent to the modal mu-calculus model checking of higher-order recursion schemes. In LICS, pages 179--188, 2009. Google Scholar
Digital Library
- N. Kobayashi, R. Sato, and H. Unno. Predicate abstraction and CEGAR for higher-order model checking. In PLDI, pages 222--233, 2011. Google Scholar
Digital Library
- U. D. Lago and M. Gaboardi. Linear dependent types and relative completeness. In LICS, pages 133--142, 2011. Google Scholar
Digital Library
- J. Liu, N. Zhan, and H. Zhao. Computing semi-algebraic invariants for polynomial dynamical systems. In EMSOFT, pages 97--106, 2011. Google Scholar
Digital Library
- E.-R. Olderog. Correctness of programs with Pascal-like procedures without global variables. Theor. Comput. Sci., 30:49--90, 1984.Google Scholar
Cross Ref
- B. Reus and T. Streicher. Relative completeness for logics of functional programs. In CSL, pages 470--480, 2011.Google Scholar
- P. M. Rondon, M. Kawaguchi, and R. Jhala. Liquid types. In PLDI, pages 159--169, 2008. Google Scholar
Digital Library
- S. Sankaranarayanan, H. B. Sipma, and Z. Manna. Constraint-based linear-relations analysis. In SAS, pages 53--68, 2004.Google Scholar
Cross Ref
- S. Srivastava, S. Gulwani, and J. S. Foster. From program verification to program synthesis. In POPL, pages 313--326, 2010. Google Scholar
Digital Library
- T. Terauchi. Dependent types from counterexamples. In POPL, pages 119--130, 2010. Google Scholar
Digital Library
- H. Unno and N. Kobayashi. Dependent type inference with interpolants. In PPDP, pages 277--288, 2009. Google Scholar
Digital Library
- H. Unno, T. Terauchi, and N. Kobayashi. Automating relatively complete verification of higher-order functional programs, 2012. http://www.kb.is.s.u-tokyo.ac.jp/~uhiro/relcomp. Google Scholar
Digital Library
- A. K. Wright and M. Felleisen. A syntactic approach to type soundness. Inf. Comput., 115(1):38--94, 1994. Google Scholar
Digital Library
- H. Xi and F. Pfenning. Dependent types in practical programming. In POPL, pages 214--227, 1999.. Google Scholar
Digital Library
Index Terms
Automating relatively complete verification of higher-order functional programs
Recommendations
Relatively complete refinement type system for verification of higher-order non-deterministic programs
This paper considers verification of non-deterministic higher-order functional programs. Our contribution is a novel type system in which the types are used to express and verify (conditional) safety, termination, non-safety, and non-termination ...
Automating relatively complete verification of higher-order functional programs
POPL '13: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe present an automated approach to relatively completely verifying safety (i.e., reachability) property of higher-order functional programs. Our contribution is two-fold. First, we extend the refinement type system framework employed in the recent work ...
Verifying higher-order functional programs with pattern-matching algebraic data types
POPL '11Type-based model checking algorithms for higher-order recursion schemes have recently emerged as a promising approach to the verification of functional programs. We introduce pattern-matching recursion schemes (PMRS) as an accurate model of computation ...







Comments