Skip to main content

Reflecting BDDs in Coq

  • Conference paper
  • First Online:
Advances in Computing Science — ASIAN 2000 (ASIAN 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1961))

Included in the following conference series:

Abstract

We describe an implementation and a proof of correctness of binary decision diagrams (BDDs), completely formalized in Coq. This allows us to run BDD-based algorithms inside Coq and paves the way for a smooth integration of symbolic model checking in the Coq proof assistant by using reflection. It also gives us, by Coq’s extraction mechanism, certified BDD algorithms implemented in Caml. We also implement and prove correct a garbage collector for our implementation of BDDs inside Coq. Our experiments show that this approach works in practice, and is able to solve both relatively hard propositional problems and actual industrial hardware verification tasks.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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. S. F. Allen, R. L. Constable, D. J. Howe, and W. E. Aitken. The semantics of reflected proof. In LICS’90. IEEE Computer Society Press, June 1990.

    Google Scholar 

  2. B. Barras. Auto-validation d’un système de preuves avec familles inductives. PhD thesis, University Paris VII, Nov. 1999. Code and Coq proofs available at http://www.cl.cam.ac.uk/~bb236/home/coq-in-coq.tar.gz.

  3. B. Barras, S. Boutin, C. Cornes, J. Courant, Y. Coscoy, D. Delahaye, D. de Rauglaudre, J.-C. Filliâtre, E. Giménez, H. Herbelin, G. Huet, H. Laulhère, C. Muñoz, C. Murthy, C. Parent-Vigouroux, P. Loiseleur, C. Paulin-Mohring, A. Saïbi, and B. Werner. The Coq proof assistant reference manual. Version 6.2.41, available at http://coq.inria.fr/doc/main.html, Jan. 1999.

  4. D. A. Basin and R. Constable. Metalogical frameworks. In G. Huet and G. Plotkin, editors, Logical Environments, pages 1–29. Cambridge University Press, 1993. Also available as Technical Report MPI-I-92-205.

    Google Scholar 

  5. J.-P. Billon. Perfect normal forms for discrete functions. Technical Report 87019, Bull S. A. Research Center, June 1987.

    Google Scholar 

  6. S. Boutin. Using reflection to build efficient and certified decision procedures. In M. Abadi and T. Ito, editors, TACS’97. Springer-Verlag LNCS 1281, 1997.

    Google Scholar 

  7. R. Boyer and J. S. Moore. Metafunctions: Proving them correct and using them efficiently as new proof procedures. In The Correctness Problem in Computer Science, London, 1981. Academic Press.

    Google Scholar 

  8. K. S. Brace, R. L. Rudell, and R. E. Bryant. Efficient implementation of a BDD package. In DAC’90. ACM/IEEE, 1990.

    Google Scholar 

  9. R. E. Bryant. Graph-based algorithms for Boolean function manipulation. IEEE Transactions on Computers, C35(8), Aug. 1986.

    Google Scholar 

  10. O. Coudert. SIAM: Une Boîte à Outils Pour la Preuve Formelle de Systèmes Séquentiels. PhD thesis, Ecole Nationale Supérieure des Télécommunications, Paris, Oct. 1991.

    Google Scholar 

  11. H. Goguen, R. Brooksby, and R. Burstall. Memory management: An abstract formulation of incremental tracing. In Types’99. Springer Verlag LNCS, 1999. Submitted.

    Google Scholar 

  12. G. Gonthier. Verifying the safety of a practical concurrent garbage collector. In CAV’96. Springer Verlag LNCS 1102, July 1996.

    Google Scholar 

  13. M. Gordon. Programming combinations of deduction and BDD-based symbolic calculation. Technical Report 480, University of Cambridge Computer Laboratory, Dec. 1999.

    Google Scholar 

  14. M. Gordon and K. F. Larsen. Combining the Hol98 proof assistant with the BuDDy BDD package. Technical Report 481, University of Cambridge Computer Laboratory, Dec. 1999.

    Google Scholar 

  15. M. J. C. Gordon and T. F. Melham. Introduction to HOL: A theorem proving environment for higher order logic. Cambridge University Press, 1993.

    Google Scholar 

  16. M. J. C. Gordon, R. Milner, and C. Wadsworth. Edinburgh LCF, a mechanical logic of computation. Report CSR-11-77 (in 2 parts), Dept. of Computer Science, U. Edinburgh, 1977.

    Google Scholar 

  17. J. Goubault. Standard ML with fast sets and maps. In ML’94. ACM Press, June 1994.

    Google Scholar 

  18. J. Goubault-Larrecq. Satisfiability of inequality constraints and detection of cycles with negative weight in graphs. Part of the Coq contribs, available at http://pauillac.inria.fr/coq/contribs/graphs.html, 1998.

  19. J. Harrison. Binary decision diagrams as a HOL derived rule. The Computer Journal, 38, 1995.

    Google Scholar 

  20. G. Huet, G. Kahn, and C. Paulin-Mohring. The Coq Proof Assistant, A Tutorial. Coq Project, Inria, 1998. Draft, version 6.2.4. Available at http://coq.inria.fr/doc/tutorial.html.

  21. P. Jackson. Verifying a garbage collection algorithm. In TPHOL’98. Springer Verlag LNCS 1479, 1998.

    Google Scholar 

  22. R. Kumar, K. Schneider, and T. Kropf. Structuring and automating hardware proofs in a higher-order theorem-proving environment. Journal of Formal System Design, 1993.

    Google Scholar 

  23. Z. Luo and R. Pollack. The LEGO proof development system: A user’s manual. Technical Report ECS-LFCS-92-211, U. of Edinburgh, May 1992.

    Google Scholar 

  24. K. L. McMillan. Symbolic Model Checking: An Approach to the State Explosion Problem. Kluwer Academic Publishers, 1993.

    Google Scholar 

  25. G. Morrisett, M. Felleisen, and R. Harper. Abstract models of memory management. In Functional Programming and Computer Architecture, June 1995.

    Google Scholar 

  26. NIST. Common criteria for information technology security evaluation. ISO International Standard (IS) 15408, Jan. 2000. Version 2.1.

    Google Scholar 

  27. S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verification system. In D. Kapur, editor, CADE’92. Springer Verlag LNAI 607, June 1992.

    Google Scholar 

  28. F. J. Pelletier. Seventy-five problems for testing automatic theorem provers. Journal of Automated Reasoning, 2, 1986. Errata: Pelletier, Francis Jeffry, JAR 4, pp. 235–236 and Pelletier, Francis Jeffry and Sutcliffe, Geoff, JAR 18(1), p. 135.

    Article  MathSciNet  Google Scholar 

  29. D. M. Russino.. A mechanically verified garbage collector. Formal Aspects of Computing, 6, 1994.

    Google Scholar 

  30. A. Urquhart. Hard examples for resolution. Journal of the ACM, 34(1), 1987.

    Google Scholar 

  31. D. Verkest and L. Claesen. Special benchmark session on tautology checking. In L. Claesen, editor, IMEC-IFIP Workshop on Applied Formal Methods for Correct VLSI Design, 1990.

    Google Scholar 

  32. R. W. Weyhrauch. Prolegomena to a theory of mechanized formal reasoning. Artifical Intelligence, 13(1, 2), 1980.

    Google Scholar 

  33. S. Yu and Z. Luo. Implementing a model checker for LEGO. In J. Fitzgerald, C. B. Jones, and P. Lucas, editors, FME’97. Springer-Verlag LNCS 1313, Sept. 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Verma, K.N., Goubault-Larrecq, J., Prasad, S., Arun-Kumar, S. (2000). Reflecting BDDs in Coq. In: Jifeng, H., Sato, M. (eds) Advances in Computing Science — ASIAN 2000. ASIAN 2000. Lecture Notes in Computer Science, vol 1961. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44464-5_13

Download citation

  • DOI: https://doi.org/10.1007/3-540-44464-5_13

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41428-5

  • Online ISBN: 978-3-540-44464-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics