A persistent union-find data structure

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

The problem of disjoint sets, also known as union-find, consists in maintaining a partition of a finite set within a data structure. This structure provides two operations: a function find returning the class of an element and a function union merging two classes. An optimal and imperative solution is known since 1975. However, the imperative nature of this data structure may be a drawback when it is used in a backtracking algorithm. This paper details the implementation of a persistent union-find data structure as efficient as its imperative counterpart. To achieve this result, our solution makes heavy use of imperative features and thus it is a significant example of a data structure whose side effects are safely hidden behind a persistent interface. To strengthen this last claim, we also detail a formalization using the Coq proof assistant which shows both the correctness of our solution and its observational persistence.

Original languageEnglish
Title of host publicationML'07
Subtitle of host publicationProceedings of the 2007 Workshop on ML
Pages37-46
Number of pages10
DOIs
Publication statusPublished - 1 Dec 2007
Externally publishedYes
EventML'07: 2007 Workshop on ML - Freiburg, Germany
Duration: 5 Oct 20075 Oct 2007

Publication series

NameML'07: Proceedings of the 2007 Workshop on ML

Conference

ConferenceML'07: 2007 Workshop on ML
Country/TerritoryGermany
CityFreiburg
Period5/10/075/10/07

Keywords

  • Formal verification
  • Persistence
  • Union-find

Fingerprint

Dive into the research topics of 'A persistent union-find data structure'. Together they form a unique fingerprint.

Cite this