Skip to main content

A Coinduction Rule for Entailment of Recursively Defined Properties

  • Conference paper
Book cover Principles and Practice of Constraint Programming (CP 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5202))

Abstract

Recursively defined properties are ubiquitous. We present a proof method for establishing entailment \(\mathcal{G} \models \mathcal{H}\) of such properties \(\mathcal{G}\) and \(\mathcal{H}\) over a set of common variables. The main contribution is a particular proof rule based intuitively upon the concept of coinduction. This rule allows the inductive step of assuming that an entailment holds during the proof the entailment. In general, the proof method is based on an unfolding (and no folding) algorithm that reduces recursive definitions to a point where only constraint solving is necessary. The constraint-based proof obligation is then discharged with available solvers. The algorithm executes the proof by a search-based method which automatically discovers the opportunity of applying induction instead of the user having to specify some induction schema, and which does not require any base case.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 99.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 129.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Barras, B., Boutin, S., Cornes, C., Courant, J., Filliatre, J., Giménez, E., Herbelin, H., Huet, G., Noz, C.M., Murthy, C., Parent, C., Paulin, C., Saïbi, A., Werner, B.: The Coq proof assistant reference manual—version v6.1. Technical Report 0203, INRIA (1997)

    Google Scholar 

  2. Boyer, R.S., Moore, J.S.: Proving theorems about LISP functions. J. ACM 22(1), 129–144 (1975)

    Article  MATH  MathSciNet  Google Scholar 

  3. Craciunescu, S.: Proving equivalence of CLP programs. In: Stuckey, P.J. (ed.) ICLP 2002. LNCS, vol. 2401. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  4. Fribourg, L.: Automatic generation of simplification lemmas for inductive proofs. In: ISLP 1991, pp. 103–116. MIT Press, Cambridge (1991)

    Google Scholar 

  5. Gupta, G., Bansal, A., Min, R., Simon, L., Mallya, A.: Coinductive logic programming and its applications. In: Dahl, V., Niemelä, I. (eds.) ICLP 2007. LNCS, vol. 4670, pp. 27–44. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  6. Harrison, J.: HOL light: A tutorial introduction. In: Srivas, M.K., Camilleri, A.J. (eds.) FMCAD 1996. LNCS, vol. 1166, pp. 265–269. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  7. Hsiang, J., Srivas, M.: Automatic inductive theorem proving using Prolog. TCS 54(1), 3–28 (1987)

    Article  MATH  MathSciNet  Google Scholar 

  8. Hsiang, J., Srivas, M.K.: A PROLOG framework for developing and reasoning about data types. In: Ehrig, H., Floyd, C., Nivat, M., Thatcher, J. (eds.) TAPSOFT 1985. LNCS, vol. 186, pp. 276–293. Springer, Heidelberg (1985)

    Google Scholar 

  9. Jaffar, J., Maher, M.J.: Constraint logic programming: A survey. J. LP 19/20, 503–581 (1994)

    MathSciNet  Google Scholar 

  10. Jaffar, J., Santosa, A., Voicu, R.: A CLP proof method for timed automata. In: 25th RTSS, pp. 175–186. IEEE Computer Society Press, Los Alamitos (2004)

    Google Scholar 

  11. Jaffar, J., Santosa, A.E., Voicu, R.: Recursive assertions for data structures, http://www.comp.nus.edu.sg/~joxan/papers/rads.pdf

  12. Jaffar, J., Santosa, A.E., Voicu, R.: Relative safety. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, pp. 282–297. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  13. Kanamori, T., Fujita, H.: Formulation of induction formulas in verification of Prolog programs. In: Siekmann, J.H. (ed.) CADE 1986. LNCS, vol. 230, pp. 281–299. Springer, Heidelberg (1986)

    Google Scholar 

  14. Kanamori, T., Seki, H.: Verification of Prolog programs using an extension of execution. In: Shapiro, E. (ed.) ICLP 1986. LNCS, vol. 225, pp. 475–489. Springer, Heidelberg (1986)

    Google Scholar 

  15. Manna, Z., Ness, S., Vuillemin, J.: Inductive methods for proving properties of programs. Comm. ACM 16(8), 491–502 (1973)

    Article  MATH  MathSciNet  Google Scholar 

  16. McCarthy, J.: Towards a mathematical science of computation. In: Popplewell, C.M. (ed.) IFIP Congress 1962. North-Holland, Amsterdam (1983)

    Google Scholar 

  17. McPeak, S., Necula, G.C.: Data structure specifications via local equality axioms. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 476–490. Springer, Heidelberg (2005)

    Google Scholar 

  18. Mesnard, F., Hoarau, S., Maillard, A.: CLP(\(\cal X\)) for automatically proving program properties. In: Baader, F., Schulz, K.U. (eds.) 1st FroCoS. Applied Logic Series, vol. 3. Kluwer Academic Publishers, Dordrecht (1996)

    Google Scholar 

  19. Nguyen, H.H., David, C., Qin, S.C., Chin, W.N.: Automated verification of shape and size properties via separation logic. In: Cook, B., Podelski, A. (eds.) VMCAI 2007. LNCS, vol. 4349, pp. 251–266. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  20. Owre, S., Rajan, S., Rushby, J.M., Shankar, N., Srivas, M.K.: PVS: combining specification, proof checking, and model checking. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 411–414. Springer, Heidelberg (1996)

    Google Scholar 

  21. Pettorossi, A., Proietti, M.: Synthesis and transformation of logic programs using unfold/fold proofs. J. LP 41(2–3), 197–230 (1999)

    MATH  MathSciNet  Google Scholar 

  22. Roychoudhury, A., Kumar, K.N., Ramakrishnan, C.R., Ramakrishnan, I.V.: An unfold/fold transformation framework for definite logic programs. ACM TOPLAS 26(3), 464–509 (2004)

    Article  Google Scholar 

  23. Roychoudhury, A., Ramakrishnan, C.R., Ramakrishnan, I.V., Smolka, S.A.: Tabulation-based induction proofs with application to automated verification. In: 1st TAPD, April 1998, pp. 83–88 (1998), http://pauillac.inria.fr/~clerger/tapd.html

  24. Sagonas, K., Swift, T., Warren, D.S., Freire, J., Rao, P., Cui, B., Johnson, E., de Castro, L., Dawson, S., Kifer, M.: The XSB System Version 2.5 Volume 1: Programmer’s Manual (June 2003)

    Google Scholar 

  25. Stickel, M.E.: A Prolog technology theorem prover: A new exposition and implementation in prolog. TCS 104(1), 109–128 (1992)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Peter J. Stuckey

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jaffar, J., Santosa, A.E., Voicu, R. (2008). A Coinduction Rule for Entailment of Recursively Defined Properties. In: Stuckey, P.J. (eds) Principles and Practice of Constraint Programming. CP 2008. Lecture Notes in Computer Science, vol 5202. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85958-1_33

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-85958-1_33

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-85957-4

  • Online ISBN: 978-3-540-85958-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics