OFFSET
0,3
COMMENTS
An antichain of multisets is a finite set of finite nonempty multisets, none of which is a submultiset of any other. The multiset-join of a multiset system has the same vertices with multiplicities equal to the maxima of the multiplicities in the edges.
LINKS
Goran Kilibarda and Vladeta Jovovic, Antichains of Multisets, Journal of Integer Sequences, Vol. 7 (2004).
EXAMPLE
Non-isomorphic representatives of the a(3) = 6 connected antichains of multisets:
(111),
(122), (12)(22),
(123), (13)(23), (12)(13)(23).
MATHEMATICA
stableSets[u_, Q_]:=If[Length[u]==0, {{}}, With[{w=First[u]}, Join[stableSets[DeleteCases[u, w], Q], Prepend[#, w]&/@stableSets[DeleteCases[u, r_/; r==w||Q[r, w]||Q[w, r]], Q]]]];
multijoin[mss__]:=Join@@Table[Table[x, {Max[Count[#, x]&/@{mss}]}], {x, Union[mss]}]
submultisetQ[M_, N_]:=Or[Length[M]==0, MatchQ[{Sort[List@@M], Sort[List@@N]}, {{x_, Z___}, {___, x_, W___}}/; submultisetQ[{Z}, {W}]]];
csm[s_]:=With[{c=Select[Tuples[Range[Length[s]], 2], And[OrderedQ[#], UnsameQ@@#, Length[Intersection@@s[[#]]]>0]&]}, If[c=={}, s, csm[Union[Append[Delete[s, List/@c[[1]]], multijoin@@s[[c[[1]]]]]]]]];
strnorm[n_]:=Flatten[MapIndexed[Table[#2, {#1}]&, #]]&/@IntegerPartitions[n];
sysnorm[m_]:=First[Sort[sysnorm[m, 1]]];
sysnorm[m_, aft_]:=If[Length[Union@@m]<=aft, {m}, With[{mx=Table[Count[m, i, {2}], {i, Select[Union@@m, #>=aft&]}]}, Union@@(sysnorm[#, aft+1]&/@Union[Table[Map[Sort, m/.{par+aft-1->aft, aft->par+aft-1}, {0, 1}], {par, First/@Position[mx, Max[mx]]}]])]];
cuu[m_]:=Select[stableSets[Union[Rest[Subsets[m]]], submultisetQ], And[multijoin@@#==m, Length[csm[#]]==1]&];
Table[Length[Union[sysnorm/@Join@@Table[cuu[m], {m, strnorm[n]}]]], {n, 5}]
CROSSREFS
KEYWORD
nonn,more
AUTHOR
Gus Wiseman, Jul 20 2018
STATUS
approved