Implementing Hash-Consed Structures in Coq
We report on three different approaches to use hash-consing in programs certified with the Coq system, using binary decision diagrams (BDD) as running example. The use cases include execution inside Coq, or execution of the extracted OCaml code. There are different trade-offs between faithful use of pristine extracted code, and code that is fine-tuned to make use of OCaml programming constructs not available in Coq. We discuss the possible consequences in terms of performances and guarantees.
KeywordsGlobal State Hash Table Garbage Collection Decision Node Garbage Collector
Unable to display preview. Download preview PDF.
- 2.Conchon, S., Filliâtre, J.-C.: Type-safe modular hash-consing. In: ACM SIGPLAN Workshop on ML, Portland, Oregon (September 2006)Google Scholar
- 3.Knuth, D.E.: The Art of Computer Programming, Binary decision diagrams, vol. 4A, ch. 7.1.4. Addison-Wesley (2011)Google Scholar
- 4.Verma, K.N., Goubault-Larrecq, J.: Reflecting BDDs in Coq. Rapport de recherche RR-3859, INRIA (2000)Google Scholar