diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet
index ad7e7ff..d205772 100644
--- a/books/bookvol10.2.pamphlet
+++ b/books/bookvol10.2.pamphlet
@@ -7056,19 +7056,34 @@ These exports come from \refto{SetCategory}():
++ \tab{5}\spad{index(lookup(s)) = s}
Finite(): Category == SetCategory with
- size: () -> NonNegativeInteger
- ++ size() returns the number of elements in the set.
- index: PositiveInteger -> %
- ++ index(i) takes a positive integer i less than or equal
- ++ to \spad{size()} and
- ++ returns the \spad{i}-th element of the set.
- ++ This operation establishs a bijection
- ++ between the elements of the finite set and \spad{1..size()}.
- lookup: % -> PositiveInteger
- ++ lookup(x) returns a positive integer such that
- ++ \spad{x = index lookup x}.
- random: () -> %
- ++ random() returns a random element from the set.
+
+ size: () -> NonNegativeInteger
+ ++ size() returns the number of elements in the set.
+
+ index: PositiveInteger -> %
+ ++ index(i) takes a positive integer i less than or equal
+ ++ to \spad{size()} and
+ ++ returns the \spad{i}-th element of the set.
+ ++ This operation establishs a bijection
+ ++ between the elements of the finite set and \spad{1..size()}.
+
+ lookup: % -> PositiveInteger
+ ++ lookup(x) returns a positive integer such that
+ ++ \spad{x = index lookup x}.
+
+ random: () -> %
+ ++ random() returns a random element from the set.
+
+ enumerate: () -> List %
+ ++ enumerate() returns a list of elements of the set
+ ++
+ ++X enumerate()$OrderedVariableList([p,q])
+
+ add
+
+ random() == index((1+random(size()$%))::PositiveInteger)
+
+ enumerate() == [index(i::PositiveInteger) for i in 1..size()]
\end{chunk}
\begin{chunk}{FINITE.dotabb}
diff --git a/changelog b/changelog
index 95c21fc..bddbac9 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,13 @@
+20130422 tpd src/axiom-website/patches.html 20130422.01.tpd.patch
+20130422 tpd src/share/algebra/users.daase/users.daase/index.kaf FINITE
+20130422 tpd src/share/algebra/operation.daase add enumerate to FINITE
+20130422 tpd src/share/algebra/interp.daase add enumerate to FINITE
+20130422 tpd src/share/algebra/dependents.daase/dependents.daase/index.kaf
+20130422 tpd src/share/algebra/compress.daase add enumerate to FINITE
+20130422 tpd src/share/algebra/category.daase add enumerate to FINITE
+20130422 tpd src/share/algebra/browse.daase add enumerate to FINITE
+20130422 tpd src/algebra/Makefile add FINITE-
+20130422 tpd books/bookvol10.2 add enumerate to FINITE
20130418 jzc src/axiom-website/patches.html 20130418.01.jzc.patch
20130418 jzc books/bookvol0 fix Jenks book format issues
20130414 tpd src/axiom-website/patches.html 20130414.01.tpd.patch
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index f901569..4b628e5 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -700,7 +700,8 @@ LAYER1=\
${OUT}/BLMETCT.o \
${OUT}/COLOR.o ${OUT}/COMBOPC.o ${OUT}/COMM.o ${OUT}/COMPPROP.o \
${OUT}/DROPT1.o ${OUT}/ELTAGG.o ${OUT}/ELTAGG-.o ${OUT}/EQ2.o \
- ${OUT}/EXIT.o ${OUT}/FILECAT.o ${OUT}/FINITE.o ${OUT}/FNCAT.o \
+ ${OUT}/EXIT.o ${OUT}/FILECAT.o ${OUT}/FINITE.o ${OUT}/FINITE-.o \
+ ${OUT}/FNCAT.o \
${OUT}/FORMULA1.o ${OUT}/FORTCAT.o ${OUT}/IDPC.o ${OUT}/IEVALAB.o \
${OUT}/IEVALAB-.o ${OUT}/ITFUN2.o ${OUT}/ITFUN3.o ${OUT}/ITUPLE.o \
${OUT}/LIST3.o ${OUT}/LMODULE.o ${OUT}/LOGIC.o ${OUT}/LOGIC-.o \
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index e91ed76..16d73fb 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4139,5 +4139,7 @@ src/interp/Makefile, books/bookvol5 remove bc-matrix.lisp
src/axiom-website/documentation.html add quote
20130418.01.jzc.patch
books/bookvol0 fix Jenks book format issues
+20130422.01.tpd.patch
+books/bookvol10.2 add enumerate to FINITE