English

Ranking and Unranking of Hereditarily Finite Functions and Permutations

Logic in Computer Science 2008-08-06 v1 Mathematical Software

Abstract

Prolog's ability to return multiple answers on backtracking provides an elegant mechanism to derive reversible encodings of combinatorial objects as Natural Numbers i.e. {\em ranking} and {\em unranking} functions. Starting from a generalization of Ackerman's encoding of Hereditarily Finite Sets with Urelements and a novel tupling/untupling operation, we derive encodings for Finite Functions and use them as building blocks for an executable theory of {\em Hereditarily Finite Functions}. The more difficult problem of {\em ranking} and {\em unranking} {\em Hereditarily Finite Permutations} is then tackled using Lehmer codes and factoradics. The paper is organized as a self-contained literate Prolog program available at \url{http://logic.csci.unt.edu/tarau/research/2008/pHFF.zip}

Keywords

Cite

@article{arxiv.0808.0554,
  title  = {Ranking and Unranking of Hereditarily Finite Functions and Permutations},
  author = {Paul Tarau},
  journal= {arXiv preprint arXiv:0808.0554},
  year   = {2008}
}

Comments

unpublished draft