ACM Home Page
Please provide us with feedback. Feedback
A persistent union-find data structure
Full text PdfPdf (191 KB)
Source
International Conference on Functional Programming archive
Proceedings of the 2007 workshop on Workshop on ML table of contents
Freiburg, Germany
SESSION: Session 1 table of contents
Pages: 37 - 46  
Year of Publication: 2007
ISBN:978-1-59593-676-9
Authors
Sylvain Conchon  Université Paris-Sud, Orsay, France
Jean-Christophe Filliâtre  CNRS, Orsay, France
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 89,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1292535.1292541
What is a DOI?

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
The Coq Proof Assistant. http://coq.inria.fr/.
 
2
The Objective Caml Programming Language. http://caml.inria.fr/.
 
3
4
5
 
6
 
7
 
8
Sylvain Conchon and Evelyne Contejean. Ergo: A Decision Procedure for Program Verification. http://ergo.lri.fr/.
 
9
Sylvain Conchon and Jean-Christophe Filliâtre. Semi-Persistent Data Structures. Research Report, LRI, Université Paris Sud, 2007. http://www.lri.fr/~filliatr/publis/spds.ps.
 
10
 
11
 
12
13
 
14
 
15
16
17


Collaborative Colleagues:
Sylvain Conchon: colleagues
Jean-Christophe Filliâtre: colleagues