cp's OEIS Frontend

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.

A361720 Number of nonisomorphic right involutory Płonka magmas with n elements.

This page as a plain text file.
%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