Ask Your Question

Constructor for InfiniteEnumeratedSet?

asked 2012-03-08 15:43:19 -0500

darijgrinberg gravatar image

updated 2012-04-04 16:10:31 -0500

Imagine I want to rewrite from scratch the "Permutations()" and "Permutations(n)" (for n integer) enumeratedsets and the coercion of the latter into the former. How do I do this?

(This is not the first time I am asking for the constructor of a class. The last time I was looking for the constructor of a graded algebra, and the answer was in some example code. I can't believe there is no documentation for these things!)

PS. I am not really rewriting permutations; I just want to know the constructor so that I can create enumeratedsets similar to permutations (currently, ordered rooted forests a la Loic Foissy).

EDIT: Maybe I should be more concrete. Say I want to encode permutations as n-tuples of integers from {1,2,...,n} for which a certain function returns true. I know how to get the n-tuples of integers from {1,2,...,n}, but I don't even know how to "filter" out the ones for which my function returns false, let alone make them into an EnumeratedSet.

EDIT #2: Thanks to John Palmieri, this question is partially solved: I was able to code the CombinatorialClass of ordered rooted forests on n vertices: HTML file / SWS file. However, I still don't see how to get the CombinatorialClass (or EnumeratedSet or whatever; I don't understand the difference) of all ordered rooted forests, just as there is a class Permutation() of all permutations. This should be as easy as taking a disjoint union, but if I just take DisjointUnionEnumeratedSets(OForestsFamily), then the resulting enumerated set does not know how to test membership (unsurprisingly).

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2012-03-09 06:17:19 -0500

The first thing I would try would be to look in the following files in SAGE_ROOT/devel/sage/sage/combinat/:,,, etc. From the documentation for IntegerListsLex from

A combinatorial class `C` for integer lists satisfying certain
sum, length, upper/lower bound and regularity constraints.


This is a generic low level tool. The interface has been designed
with efficiency in mind. It is subject to incompatible changes in
the future. More user friendly interfaces are provided by high
level tools like Partitions or Compositions.

I know you asked about permutations, not partitions, but this might help anyway.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-03-08 15:43:19 -0500

Seen: 99 times

Last updated: Apr 04 '12