Proof pearl: Braun trees
Paper in proceeding, 2020

Braun trees are functional data structures for implementing extensible arrays and priority queues (and sorting functions based on the latter) efficiently. Some well-known functions on Braun trees have not yet been verified, including especially Okasaki's linear time conversion from lists to Braun trees.We supply the missing proofs and verify all of these algorithms in Isabelle, including non-obvious time complexity claims. In particular we provide the first linear-time conversion from Braun trees to lists. We also state and verify a new characterization of Braun trees as the trees t whose index set is the interval {1, ⋯ size of t }.

Isabelle

Verification

Braun tree

Author

Tobias Nipkow

Technical University of Munich

Thomas Sewell

Chalmers, Computer Science and Engineering (Chalmers), Formal methods

CPP 2020 - Proceedings of the 9th ACM SIGPLAN International Conference on Certified Programs and Proofs, co-located with POPL 2020

18-31
978-145037097-4 (ISBN)

9th ACM SIGPLAN International Conference on Certified Programs and Proofs, CPP 2020, co-located with POPL 2020
New Orleans, USA,

Subject Categories

Language Technology (Computational Linguistics)

Bioinformatics (Computational Biology)

Mathematical Analysis

DOI

10.1145/3372885.3373834

More information

Latest update

7/11/2022