This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A361720 #66 May 27 2023 22:38:41 %S A361720 1,1,2,4,12,37,164,849,6081,56164,698921 %N A361720 Number of nonisomorphic right involutory Płonka magmas with n elements. %C A361720 Alexandrul Chirvasitu and Gigel Militaru introduced the notion of a right Płonka magma as a magma X that satisfies (xy)z = (xz)y and x(yz) = xy for all x,y,z in X. It is called involutory, if it satisfies the additional property (xy)y = x for all x,y in X. %C A361720 A right Płonka magma (X,*) is associative if and only if there exists an idempotent self-map f = f^2: X -> X such that x*y = f(x) for all x,y in X (the rows of the corresponding Cayley table must necessarily be constant). Thus the total number of associative right Płonka magmas on a given set of n elements is A000248 with A000041 as the corresponding number of isomorphism classes. %D A361720 J. Płonka, "On k-cyclic groupoids", Math. Japon. 30 (3), 371-382 (1985). %H A361720 A. Chirvasitu and G. Militaru, <a href="https://arxiv.org/abs/2305.14138">A universal-algebra and combinatorial approach to the set-theoretic Yang-Baxter equation</a>, arXiv:2305.14138 [math.QA], 2023. %H A361720 Anna Romanowska and Barbara Roszkowska, <a href="https://doi.org/10.1515/dema-1987-1-224">On Some Groupoid Modes</a>, Demonstratio Mathematica, vol. 20, no. 1-2, 1987, pp. 277-290. %o A361720 (Sage) %o A361720 def right_involutory_plonka(n): %o A361720 G = Integers(n) %o A361720 Perm = SymmetricGroup(list(G)) %o A361720 M = [sigma for sigma in Perm if sigma == ~sigma] %o A361720 def is_compatible(r): %o A361720 return all([ r[i]*r[j] == r[j]*r[i] and r[r[i](j)] == r[j] for i in range(len(r)) for j in range(len(r)) if ZZ(r[i](j)) < len(r) ]) %o A361720 def possible_extensions(r): %o A361720 R = [] %o A361720 for m in M: %o A361720 r_new = r+[m] %o A361720 if is_compatible(r_new): %o A361720 R += [r_new] %o A361720 return R %o A361720 def extend(R): %o A361720 R_new = [] %o A361720 for r in R: %o A361720 R_new += possible_extensions(r) %o A361720 return R_new %o A361720 i = 0 %o A361720 R = [[]] %o A361720 while i < n: %o A361720 R = extend(R) %o A361720 i += 1 %o A361720 act = lambda sigma,r: [(~sigma)*r[(~sigma)(i)]*sigma for i in range(len(r))] # In Sage, the composition of permutations is reversed. %o A361720 orbits = [] %o A361720 while R: %o A361720 r = R.pop() %o A361720 orb = [] %o A361720 for sigma in Perm: %o A361720 orb += [tuple(act(sigma,r))] %o A361720 try: R.remove(act(sigma,r)) %o A361720 except: pass %o A361720 orbits += [set(orb)] %o A361720 return len(orbits) %o A361720 (Sage) %o A361720 def right_involutory_plonka(n): %o A361720 N = range(n) %o A361720 Perm = SymmetricGroup(N) %o A361720 M = [sigma for sigma in Perm if sigma == ~sigma] %o A361720 def is_compatible(r,r_new): %o A361720 length = len(r) %o A361720 inds = range(length) %o A361720 for i in inds: %o A361720 if not r[i]*r_new == r_new*r[i]: %o A361720 return [false] %o A361720 for i in inds: %o A361720 rni = r_new(i) %o A361720 if i < rni < length: %o A361720 if not r[rni] == r[i]: %o A361720 return [false] %o A361720 if rni == length: %o A361720 if not r_new == r[i]: %o A361720 return [false] %o A361720 for i in inds: %o A361720 for j in inds: %o A361720 if r[i](j) == length: %o A361720 if not r_new == r[j]: %o A361720 return [false] %o A361720 return true, r+[r_new] %o A361720 def possible_extensions(r): %o A361720 R = [] %o A361720 for m in M: %o A361720 r_potential = is_compatible(r,m) %o A361720 if r_potential[0]: %o A361720 R += [r_potential[1]] %o A361720 return R %o A361720 def extend(R): %o A361720 R_new = [] %o A361720 for r in R: %o A361720 R_new += possible_extensions(r) %o A361720 return R_new %o A361720 R = [[]] %o A361720 for i in N: %o A361720 R = extend(R) %o A361720 act = lambda sigma,r: [(~sigma)*r[(~sigma)(i)]*sigma for i in range(n)] # In Sage, the composition of permutations is reversed. %o A361720 orbits = [] %o A361720 while R: %o A361720 r = R.pop() %o A361720 orb = [] %o A361720 for sigma in Perm: %o A361720 r_iso = act(sigma,r) %o A361720 orb += [tuple(r_iso)] %o A361720 try: R.remove(r_iso) %o A361720 except: pass %o A361720 orbits += [set(orb)] %o A361720 return len(orbits) %Y A361720 A362821 is the labeled version. %Y A361720 Cf. A001329 (magmas), A000041, A362382, A362385, A362642, A362822. %K A361720 nonn,hard,more %O A361720 0,3 %A A361720 _Philip Turecek_, Apr 14 2023 %E A361720 a(8)-a(10) from _Andrew Howroyd_, Apr 17 2023