TL;DR
This paper introduces canonical binary tries, an improved data structure for finite maps in pure functional languages, offering extensionality, better sparseness, and verified correctness, with practical benchmarks demonstrating advantages.
Contribution
The paper presents canonical binary tries with a natural extensionality property, verified correctness in Coq, and empirical benchmarks showing improved performance over existing structures.
Findings
Canonical binary tries are more efficient for sparse data.
They support extensionality, simplifying proofs.
Benchmarks show performance gains in real systems.
Abstract
Lookup tables (finite maps) are a ubiquitous data structure. In pure functional languages they are best represented using trees instead of hash tables. In pure functional languages within constructive logic, without a primitive integer type, they are well represented using binary tries instead of search trees. In this work, we introduce canonical binary tries, an improved binary-trie data structure that enjoys a natural extensionality property, quite useful in proofs, and supports sparseness more efficiently. We provide full proofs of correctness in Coq. We provide microbenchmark measurements of canonical binary tries versus several other data structures for finite maps, in a variety of application contexts; as well as measurement of canonical versus original tries in two big, real systems. The application context of data structures contained in theorem statements imposes unusual…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
