OFFSET
1,4
COMMENTS
The Heinz number of an integer partition (y_1, ..., y_k) is prime(y_1) * ... * prime(y_k).
A free pure symmetric multifunction f in EPSM is either (case 1) a positive integer, or (case 2) an expression of the form h[g_1, ..., g_k] where k > 0, h is in EPSM, each of the g_i for i = 1, ..., k is in EPSM, and for i < j we have g_i <= g_j under a canonical total ordering of EPSM, such as the Mathematica ordering of expressions.
EXAMPLE
The a(6) = 8 free pure symmetric multifunctions:
1[1[2]]
1[2[1]]
2[1[1]]
1[1][2]
1[2][1]
2[1][1]
1[1,2]
2[1,1]
MATHEMATICA
sps[{}]:={{}}; sps[set:{i_, ___}]:=Join@@Function[s, Prepend[#, s]&/@sps[Complement[set, s]]]/@Cases[Subsets[set], {i, ___}];
mps[set_]:=Union[Sort[Sort/@(#/.x_Integer:>set[[x]])]&/@sps[Range[Length[set]]]];
exprUsing[m_]:=exprUsing[m]=If[Length[m]==0, {}, If[Length[m]==1, {First[m]}, Join@@Cases[Union[Table[PR[m[[s]], m[[Complement[Range[Length[m]], s]]]], {s, Take[Subsets[Range[Length[m]]], {2, -2}]}]], PR[h_, g_]:>Join@@Table[Apply@@@Tuples[{exprUsing[h], Union[Sort/@Tuples[exprUsing/@p]]}], {p, mps[g]}]]]];
got[y_]:=Join@@Table[Table[i, {y[[i]]}], {i, Range[Length[y]]}];
primeMS[n_]:=If[n==1, {}, Flatten[Cases[FactorInteger[n], {p_, k_}:>Table[PrimePi[p], {k}]]]];
Table[Length[exprUsing[got[Reverse[primeMS[n]]]]], {n, 40}]
CROSSREFS
KEYWORD
nonn
AUTHOR
Gus Wiseman, Aug 03 2018
STATUS
approved