Efficient Extensional Binary Tries

10/11/2021
by   Andrew Appel, et al.
0

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 a big, real system. The application context of data structures contained in theorem statements imposes unusual requirements for which canonical tries are particularly well suited.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/10/2018

Using ACL2 in the Design of Efficient, Verifiable Data Structures for High-Assurance Systems

Verification of algorithms and data structures utilized in modern autono...
research
02/17/2023

Triemaps that match

The trie data structure is a good choice for finite maps whose keys are ...
research
03/26/2018

Extra Space during Initialization of Succinct Data Structures and of Dynamical Initializable Arrays

Many succinct data structures on a word RAM require precomputed tables t...
research
03/26/2018

Extra Space during Initialization of Succinct Data Structures and Dynamical Initializable Arrays

Many succinct data structures on the word RAM require precomputed tables...
research
08/29/2019

FunSeqSet: Towards a Purely Functional Data Structure for the Linearisation Case of Dynamic Trees Problem

Dynamic trees, originally described by Sleator and Tarjan, have been stu...
research
09/19/2019

Proof Pearl: Magic Wand as Frame

Separation logic adds two connectives to assertion languages: separating...
research
08/28/2019

Performance Analysis of Zippers

A zipper is a powerful technique of representing a purely functional dat...

Please sign up or login with your details

Forgot password? Click here to reset