ARS MATHEMATICA CONTEMPORANEA ISSN 1855-3966 (printed edn.), ISSN 1855-3974 (electronic edn.) ARS MATHEMATICA CONTEMPORANEA 17 (2019) 535-554 https://doi.org/10.26493/1855-3974.1884.5cb (Also available at http://amc-journal.eu) The finite embeddability property for IP loops and local embeddability of groups into finite IP loops Martin Vodicka Max-Planck-Institut für Mathematik in den Naturwissenschaften, Inselstrasse 22, 04103 Leipzig, Germany Pavol Zlatos * Faculty of Mathematics, Physics and Informatics, Comenius University, Mlynska dolina, 842 48 Bratislava, Slovakia Received 19 December 2018, accepted 11 September 2019, published online 29 November 2019 We prove that the class of all loops with the inverse property (IP loops) has the Finite Embeddability Property (FEP). As a consequence, every group is locally embeddable into finite IP loops. The first one of these results is obtained as a consequence of a more general embeddability theorem, contributing to a list of problems posed by T. Evans in 1978, namely, that every finite partial IP loop can be embedded into a finite IP loop. Keywords: Group, IP loop, finite embeddability property, local embeddability. Math. Subj. Class.: 20E25, 20N05, 05B07, 05B15, 05C25, 05C45 The Finite Embeddability Property (briefly FEP), was introduced by Henkin [17] for general algebraic systems already in 1956. For groupoids (i.e., algebraic structures (G, ■) with a single binary operation), which is sufficient for our purpose, it reads as follows: A class K of groupoids has the FEP if for every algebra (G, ■) G K and each nonempty finite subset X C G there is a finite algebra (H, *) G K extending (X, ■), i.e., X C H and x ■ y = x * y for all x, y G X, such that x ■ y G X. Using this notion an earlier result of Henkin [16] can be stated as follows: The class of all abelian groups has the FEP (see also Gratzer [14]). A more general notion of local embeddability can be traced back to even earlier papers by Mal'tsev [21, 22] (see also the posthumous monograph [23]). It was explicitly *The second author acknowledges with thanks the support by the grant no. 1/0333/17 of the Slovak grant agency VEGA. E-mail addresses: vodicka@mis.mpg.de (Martin Vodicka), zlatos@fmph.uniba.sk (Pavol Zlatos) Abstract ©® This work is licensed under https://creativecommons.Org/licenses/by/4.0/ 535 Ars Math. Contemp. 17 (2019) 493-514 (re)introduced and studied in detail mainly for groups by Gordon and Vershik [28]: A groupoid (G, ■) is locally embeddable into a class of groupoids M if for every nonempty finite set X C G there is (H, *) G M such that X C H and x ■ y = x * y for all x,y G X satisfying x ■ y G X. Informally this means that every finite cut-out from the multiplication table of (G, ■) can be embedded into an algebra from M. A standard model-theoretic argument shows that this condition is equivalent to the embeddability of (G, ■) into an ultraproduct of algebras from M (for the ultraproduct construction see, e.g., Chang, Keisler [3]). Thus a class K has the FEP if and only if every (G, ■) G K is locally embeddable into the class Kfin of all finite members in K. As proved by Evans [9], for a variety (equational class) K this is equivalent to the condition that every finitely presented algebra in K is residually finite, i.e., embeddable into a direct product of finite algebras from K. The groups locally embeddable into (the class of all) finite groups were called LEF groups in [28]. The authors also noticed that, unlike the abelian ones, not all groups are LEF, in other words, the class of all groups doesn't have the FEP. As examples of finitely presented groups which are not residaully finite, hence not locally embeddable into finite groups, can serve the Baumslag-Solitar groups BS(m,n) = (a,b | a-1bma = bn) for |m|, |n| > 1, |m| = |n| (see Meskin [24]). A complete list of minimal partial Latin squares embeddable into a closely related infinite group but not embeddable into any finite group, even under a weaker concept of embedding, was recently described by Dietrich and Wanless [6]. This immediately raises the question of finding some classes of finite grupoids into which all the groups were locally embeddable and which, at the same time, would be "as close to groups as possible". The question is of interest for various reasons: The class of all LEF groups properly extends the class of all locally residually finite groups and plays an important role in dynamical systems, cellular automata, etc. (see, e.g., Ceccherini-Silberstein, Coornaert [2], Gordon, Vershik [28]). Glebsky and Gordon [13] have shown that a group is locally embeddable into finite semigroups if and only if it is an LEF group. It follows that looking for a class of finite groupoids into which one could locally embed all the groups one has to sacrifice the associativity condition. They also noticed that the results about extendability of partial Latin squares to (complete) Latin squares imply that every group is locally embeddable into finite quasigroups. Refining slightly the original argument they have shown that every group can even be locally embedded into finite loops (see also their survey article [12]). A further decisive step in this direction was done by Ziman [30]. Building upon the methods of extension of partial Latin squares preserving some symmetry conditions (see Cruse [4] and Lindner [20]), he has shown that the class of all loops with antiautomor-phic inverses, i.e., loops with two-sided inverses satisfying the identity (xy)-1 = y-1x-1 (briefly AAIP loops), has the FEP (though he didn't use this notion explicitly). As a consequence, every group is locally embeddable into finite AAIP loops. Quasigroups and loops experts consider the class of all AAIP loops still as a "rather far going extension" of the class of all groups. On the other hand, they find the class of all loops with the inverse property, i.e., loops with two-sided inverses satisfying the identities x-1(xy) = y = (yx)x-1 (briefly IP loops), which is a proper subclass of the class of all AAIP loops, a much more moderate extension of the class of all groups (Dripal [8]). In the present paper we are going to show that Ziman's result can indeed be strengthened in this sense. Using mainly graph-theoretical methods and Steiner triple systems, we will prove that the class of all IP loops still has the FEP. As a consequence, every group is locally M. Vodicka and P. Zlatos: The finite embeddability property for IP loops and local. 537 embeddable into finite IP loops. When the original version of this paper was already submitted, A. Dripal turned our attention towards the point that the problem we are solving was implicitly formulated in Evans' paper [10] in the last line of the table on page 798. At the same time he remarked that we have proved even more, namely that every finite partial IP loop can be embedded into a finite IP loop. Later on, the same point was made by the anonymous referee. We will discuss these issues in the next section, after introducing the respective notions and formulating our results more precisely. For basic definitions and facts about quasigroups and loops the reader is referred to the monographs Belousov and Belyavskaya [1] and Pflugfelder [26]. 1 Formulation of the main results, discussion and plan of the proof In order to guarantee that the class of all IP loops forms a variety, we define an IP loop as an algebra (L, •, 1, -1) with a binary operation of multiplication •, a distinguished element 1 denoting the unit, and a unary operation -1 of taking inverses, satisfying the identities 1x = x = x1, and x-1(xy) = y = (yx)x-1. Then the identities x-1x = 1 = xx-1 and (x-1) 1 = x easily follow. Also it is clear that, for any a, b e L, the equations ax = b, ya = b have unique solutions x = a-1b, y = ba-1 in L. Since the unit element 1 and the inverse map x ^ x-1 in every IP loop are uniquely determined by the multiplication •, referring to an IP loop (L, •, 1, -1) as just (L, •) is unambiguous. However, usually it will be denoted simply by L. A partial IP loop (P, •) is a set P endowed with a partial binary operation • defined on a subset D(P, •) C P x P, called the domain of the operation •, satisfying the following three conditions: (1) there is an element 1 e P, called the unit of P, such that (1, x), (x, 1) e D(P, •) and 1x = x1 = x for all x e P; (2) for each x e P there is a unique y e P, called the inverse of x and denoted by y = x-1, such that (x, y), (y, x) e D(P, •) and xy = yx = 1; (3) for any x,y e P such that (x,y) e D(P, •), we have (x-1,xy), (xy,y-1) e D(P, •) and x-1(xy) = y, (xy)y-1 = x. In most cases we will denote a partial IP loop (P, •) as P and its domain as D(P), only; the more unambiguous notation (P, •) and D(P, •) will be used mainly in case we need to distinguish the operations on two or more (partial) IP loops. A partial IP loop (Q, *) is called an extension of a partial IP loop (P, •) if P C Q, D(P, •) C D(Q, *) and x • y = x * y for each pair (x, y) e D(P). Suppressing the names of the operations, we write P < Q or Q > P. Alternatively we say that the partial IP loop P is embedded in the partial IP loop Q. Obviously, the relation < between partial IP loops is reflexive, antisymmetric and transitive. Our main results are the following three theorems. Theorem 1.1. Every finite partial IP loop P can be embedded into some finite IP loop L. Given an IP loop L and a finite set X C L, we can form the finite partial IP loop p = X u{1}u X-1, 538 Ars Math. Contemp. 17 (2019) 493-514 where X 1 = {x 1 : x G X}, by restricting the original loop operation on L to the set D(P) = {(x, y) G P x P : xy G P}. Then, obviously, P < L. Thus Theorem 1.1 readily implies our next, already announced result. Theorem 1.2. The class of all IP loops has the Finite Embeddability Property. Equiva-lently, every finitely presented IP loop is residually finite. As a special case of Theorem 1.2 we obtain Theorem 1.3. Every group can be locally embedded into the class of all finite IP loops. Equivalently, every group can be embedded into some ultraproduct of finite IP loops. The second, equivalent formulation of Theorem 1.2 answers in affirmative the question posed by Evans [10] in the IP loop row and R. F. column of the table on page 798. In order to discuss the relation of our results to Evans' table we recall the following three abbreviations used in [10]. Unlike the author, who used them for various classes of algebras, we apply them just to the class of all IP loops. E1: Every finite partial IP loop can be embedded into some finite IP loop. E2: Every finite partial IP loop can be embedded into some (finite or infinite) IP loop. E3: Every finite partial IP loop which can be embedded into some IP loop, can be embedded into some finite IP loop. Obviously, condition E3 is equivalent to the FEP for IP loops, and condition E1 is equivalent to the conjunction E2 A E3, depicted (among other relations) in the chart on the top of page 798 in [10] (the equivalence E1 A E2 ^ E3 on page 797 is clearly a typo). Theorem 1.1 seems to contradict the sign "X" (meaning "No") in the IP loop row and E1 column of the table in the middle of page 798 in [10]. Evans, however, considered a seemingly weaker notion of a partial IP loop (hence a stronger concept of embeddability) there. Paraphrasing and slightly adapting his definition to apply to our situation, we obtain a rather vague formulation: "A partial IP loop is a set P in which the operations of multiplication and taking inverses are defined on some subsets D(P) C P x P and D'(P) C P, respectively, which satisfies the defining IP loop identities, insofar as they can be applied to the partial operations on P" (cf. [10, §3, page 796]). In particular it is not clear (though not crucial) whether P has to contain the unit element 1 or not. Thus, at least at a glance, it seems possible that there could exist some finite partial IP loop in his sense, which is not embeddable into any finite IP loop. However, the responses "X" (i.e. "No") to E1 and " (meaning "Yes") to E2 in Evans' table, together with our Theorem 1.2 responding E3 affirmatively, still contradict the equivalence E1 ^ E2 A E3, regardless of the details of the definition of a partial IP loop. Unfortunately, Evans provided neither any counterexample to E1 nor any proof or reference in favor of E2 in [10]. A possible clue to resolving this problem lies in the PhD thesis [27] by Evans' student C. Treash from 1969. Her definition of the concept of an incomplete IP loop on page 27 is namely equivalent to that of our partial IP loop (cf. our Lemma 2.1). According to her Theorem 1, stated and proved on page 28: Every (finite or infinite) incomplete IP loop can be embedded into some IP loop, which implies E2 as a special case. Thus Evans' negative response to E1 seems to be indeed a shortcoming or just another typo. M. Vodicka and P. Zlatos: The finite embeddability property for IP loops and local. 539 After this digression we are returning to the main theme of our paper. From the course of our arguments it is clear that it suffices to prove just Theorem 1.1. We divide its proof into three steps consisting of the three propositions below. Their formulation requires some additional notions and notation. In the absence of associativity there is no obvious way how to define the order of an element. Nonetheless, the sets of elements of order 2 and 3, respectively, can still be defined for any partial IP loop P : O2(P) = {x G P : x =1, (x,x) G D(P) andxx = 1}, O3(P) = {x G P : x =1, (x, x), (x, xx), (xx, x) G D(P) and x(xx) = (xx)x = 1}. In other words, for x = 1 in P we have x G O2(P) if and only if x-1 = x, and x G O3(P) if and only if (x, x) G D(P) and x-1 = xx. The number of elements of the sets O2(P), O3(P) in a finite partial IP loop P will be denoted by o2(P), o3(P), respectively. The number of elements of any finite set A is denoted by #A. Proposition 1.4. Let (P, •) be a finite partial IP loop. Then there exists a finite partial IP loop (Q, *) such that P < Q and 3 | o3(Q). A pair (x, y) in a partial IP loop P will be called a gap if (x, y) G D(P). The set of all gaps in P will be denoted by r(P, •) = (P x P) \ D(P, •) = {(x, y) G P x P : (x, y) G D(P, •)}, or just briefly by r (P ). Obviously, both D(P ), r (P ) are binary relation on the set P, and a partial IP loop P is an IP loop if and only if it contains no gaps, i.e., r(P) = 0. Proposition 1.5. Let P be a finite partial IP loop such that 3 | o3 (P). Then there exists a finite partial IP loop Q > P satisfying the following four conditions: (4) 3 | o3(Q), #Q > 10, #Q = 4 (mod 6) and r (Q) Ç O2(Q) x O2(Q). Proposition 1.6. Let P be a finite partial IP loop satisfying the above conditions (4), such that r(P) = 0. Then there exists a finite partial IP loop Q > P satisfying the conditions (4), as well, such that #r(Q) < #r(P). Theorem 1.1 follows from Propositions 1.4, 1.5 and 1.6. Indeed, if P is a finite partial IP loop (such that r(P) = 0, because otherwise there is nothing to prove) then, using Proposition 1.4, we can find a finite partial IP loop Q > P such that 3 | 03 (Q). If r(Q) = 0 then L = Q is already a finite IP loop extending P, and we are done. Otherwise, applying Proposition 1.5, we obtain a finite partial IP loop Q1 > Q satisfying conditions (4) from Proposition 1.5. If r(Q1) = 0 then we are done, again. Otherwise, we can apply Proposition 1.6 and get a finite partial IP loop Q2 > Q1 satisfying conditions (4), as well, such that #r(Q2) < #r(Q1). Iterating this step finitely many times we finally arrive at some finite partial IP loop Qn extending P such that r(Qn) = 0. Then L = Qn > P is a finite IP loop we have been looking for. Thus it is enough to prove Propositions 1.4, 1.5 and 1.6. This will take place in the next four sections. 540 Ars Math. Contemp. 17 (2019) 493-514 2 Some preliminary results In this section we list the auxiliary results we will use in the proofs of Propositions 1.4, 1.5 and 1.6. Lemma 2.1. Let P be a partial IP loop and x, y, z G P. Then the following six conditions are equivalent: (i) (x,y) G D(P) and xy = z; (ii) (z,y-1) G D(P) and zy-1 = x; (iii) (x-1, z) G D(P) and x-1z = y; (iv) (y,z-1) G D(P) and yz-1 = x-1; (v) (z-1,x) G D(P) and z-1x = y-1; (vi) (y-1, x-1) G D(P) and y-1x-1 = z-1. Proof. Using property (3) from the definition of partial IP loops and (if necessary) the fact that (a-1) = a for any a G P, we can get the following cycle of implications: (i) (ii) (v) (vi) (iv) (iii) (i). We show just the first implication, leaving the remaining ones to the reader. If (x, y) G D(P) and xy = z then, according to (3), (z, y-1) = (xy, y-1) G D(P) and zy-1 = x. □ In particular, we will frequently use the fact that, as a consequence of Lemma 2.1, the conditions (x, y) G D(P) and (y-1, x-1) G D(P) are equivalent for any x, y G P. In the generic case all the six equivalent conditions in Lemma 2.1 are different. There are just two kinds of exceptions: first the trivial ones, when at least one of the elements x, y, z equals the unit 1 (which never produce gaps), and second, if x = y G O3(P), when the six conditions reduce to just two: (i3) (x, x) G D(P) and xx = x-1, (ii3) (x-1,x-1) G D(P) and x-1x-1 = x. Since the first condition is satisfied by the definition of order 3 elements, so is the second one, hence this situation produces any gap, neither. From now on we will preferably use a more relaxed language: when writing xy = z for elements x, y, z of some partial IP loop P we will automatically assume that (x, y) G D(P), without mentioning it explicitly. The number of gaps in any finite partial IP loop P is related to the size of P and that of the set O3(P) of order three elements through a congruence modulo 6. Lemma 2.2. Let P be a finite partial IP loop. Then #r(P) = (#P - 1)(#P - 2) - 03(P) (mod 6). M. Vodicka and P. Zlatos: The finite embeddability property for IP loops and local... 541 Proof. We know that (x, 1), (1, x), (x, x G D(P) for any x G P .At the same time, (a, a) G D(P) for all a G O3(P), as well. Except for these pairs, there are other (#P - 1)(#P - 2) - o3(P) pairs which can be either in D(P) or in r(P). Those which are in D(P) can be split into sixtuples according to Lemma 2.1, hence their number is divisible by 6, proving the above congruence. □ We will also use the Dirac's theorem from [7], giving a sufficient condition for the existence of a Hamiltonian cycle in a graph. For our purpose, the term graph always means an undirected graph without loops and multiple edges. For the basic graph-theoretical concepts the reader is referred to Diestel [5]. Lemma 2.3. Let G be a graph with n > 3 vertices in which every vertex has degree at least n/2. Then G has a Hamiltonian cycle. 3 Extensions of partial IP loops and the proof of Proposition 1.4 All the three Propositions 1.4, 1.5 and 1.6 deal with extensions (Q, *) of a partial IP loop (P, •), which can be combined using two more specific types of this construction: first, extensions preserving (the domain of) the binary operation • on the original partial IP loop P and extending the base set of P, and, second, extensions preserving the base set P and extending (the domain of) the binary operation on P. In symbols, the extending partial IP loop Q > P satisfies D(P) = D(Q) n (P x P) in the first case, while P = Q and D(P, •) c D(Q, *) in the second. We start with the first type of extensions. Let P, Q be two partial IP loops such that P n Q = {1}, i.e., their base sets have just the unit element 1 in common. Then, obviously, the set P U Q can be turned into a partial IP loop, which we denote by P U Q, extending both P and Q, with domain D(P U Q) = D(P) U D(Q), i.e., preserving the original operations on both P and Q, and leaving undefined all the products xy, yx, for x G P \ {1}, y G Q \ {1}. The partial IP loop P U Q is called the direct sum of the partial IP loops P and Q. Let us fix the notation for some particular cases of this construction, considered as extensions of the IP loop P fixed in advance. In all the particular cases below A denotes a nonempty set disjoint from P. Then the set A U {1} will be turned into a partial IP loop (A U {1}, •), depending on some map a: A ^ A. Let a: A ^ A be an involution, i.e., a(a(a)) = a for any a G A. Then the minimal partial IP loop [A, a] has the base set A U {1} and the partial binary operation given by 1 • 1 = 1, and 1a = a1 = a, aa(a) = a(a)a = 1, for any a G A, leaving the operation result ab undefined for any other pair of elements a, b G A. The reader is asked to realize that [A, a] is indeed a partial IP loop, and that it is minimal (concerning its domain) among all partial IP loops with the base set A U {1}, which satisfy a -1 = a(a) for any a G A. Then, obviously, O2[A, a] = {a G A : a(a) = a}, 542 Ars Math. Contemp. 17 (2019) 493-514 i.e., order two elements in [A, a] coincide with the fixpoints of the map a. The direct sum of the partial IP loops P and [A, a] is denoted by P[A, a] = P U [A, a]. Order two elements in P[A, a] split into two disjoint easily recognizable parts O2(P[A, a]) = O2(P) U O2 [A, a]. If a = idA: A ^ A is the identity on A, we write P [A, idA] = P [A], in which case O2(P[A]) = O2(P) U A. If A = jai,..., an} is finite, we write P [A] = P [ai,...,a„]. In particular, if A = {a} is a singleton (and a = idA is the unique map A ^ A), then P [ja}]= P [a]. If A = ja, a'} where a = a', and a is the transposition exchanging a and a', we denote P[A, a] = P[a ^ a']. From among the second type of extensions of a partial IP loop P, preserving its base set P and extending just (the domain of) its operation the simplest ones attempt at filling in just a single gap in P. This type of extension will be called a simple extension through the relation xy = z. More precisely, having x, y, z G P such that (x, y) G r(P), we want to put xy = z. From Lemma 2.1 it follows that then we have to satisfy the remaining five relations, too. This is possible only if all the pairs (x, y), (z, y-1), (x-1, z), etc., occurring there are gaps in P. This is a sufficient condition, as well, since in that case we can define all the products as required by Lemma 2.1. Thus filling in the gap (x, y) enforces to fill in some other related gaps, too. In that case we automatically assume that the remaining five relations are defined in accord with Lemma 2.1. Iterating simple extensions through particular relations we have to check in each step whether any new relation uv = w (and its equivalent forms) does not interfere not only with the pairs in D(P) but also with the gaps already filled in by previous simple extensions. In other words, we are interested in situations when we can fill in a whole set of gaps at once. If (P, •) is a partial IP loop and * is a partial operation on the set P with domain T C P x P, such that T C r(P) then, since D(P) n T = 0, we can extend the original operation • to the set D(P) U T by putting xy = x * y for (x,y) G T. The resulting structure will be called the extension of the IP loop P through the operation * and denoted by P*. The next lemma tells us when such an extension gives us a partial IP loop, again. In its formulation x-1 denotes the inverse of the element x G P with respect to the original operation • in P. M. Vodicka and P. Zlatos: The finite embeddability property for IP loops and local... 543 Lemma 3.1. Let (P, ■) be a partial IP loop and * be a partial binary operation on the set P with domain T C r (P). Then the extension of the operation ■ through the operation * to the set D(P) U T yields a partial IP loop extending P if and only if T and * satisfy the following condition: (5) for any x,y,z G P, if (x, y) G T and x * y = z then also all the pairs (z,y-1), (x-1 ,z), (y, z-1), (z-1,x), (y-1,x-1) belong to T and satisfy all the relations z * y-1 = x, x-1 * z = y, y * z-1 = x-1, z-1 * x = y-1, y-1 * x-1 = z-1. Proof. In view of Lemma 2.1, condition (5) obviously is necessary. By the same reason, condition (5) implies that each of the particular relations xy = x * y, for (x, y) G T, can be separately added to P. Since T C r(P), no particular relation xy = x * y can interfere with the remaining added relations uv = u * v. □ The following simple combination of both the types of extensions will be used in the proof of Proposition 1.4. Let A be a set (disjoint from P) and a: A ^ A be a fixpointfree involution (i.e., a(a) = a for every a G A). Then [A, a]3 denotes the extension of the minimal partial IP loop [A, a] through (just) the additional relations aa = a(a) for any a G A. Formally, [A, a}3 is the extension of [A, a] through the operation * defined on the set T = {(a, a) : a G A} by a * a = a (a) for any a G A. It is clear that each pair (a, a) is indeed a gap in [A, a] and that the condition (5) from Lemma 3.1 is satisfied. Hence [A, a}3 is a partial IP loop extending [A, a] in which a-1 = a(a) = aa for each a G A, i.e., every element a G A has order three. For the direct sum P[A,a]3 = P U [A,a]3 we have O3(P [A,a]3)= O3(P) U A. If A = {a, a'}, where a = a', then the denotations [A, a ^ a']3 and P[a ^ a']3 = P[A, a ^ a!]3 are already self-explanatory, and similarly for [A, a ^ a',b ^ b'}3 and P[a ^ a',b ^ b']3 = P[A, a ^ a',b ^ b']3 where the set A consists of four distinct elements a, a', b, b'. Proof of Proposition 1.4. Let a, a', b, b' be four distinct elements not belonging to P. Let us form the extensions Q = P[a ^ a']3 and R = P[a ^ a',b ^ b']3. Obviously, 03(Q) = 03(P ) + 2 and o3(R) = 03 (P) + 4. Since one of the numbers o3(P), o3(P) + 2, o3(P) + 4 is divisible by 3, one of the partial IP loops P, Q, R has the desired property. □ 544 Ars Math. Contemp. 17 (2019) 493-514 4 The proof of Proposition 1.5 A more subtle combination of the two types of extensions introduced in Section 3 will be required in the proof of Proposition 1.5. Proof of Proposition 1.5. Let P be a finite partial IP loop such that 3 | o3 (P), and A be a finite set disjoint from P with the number of its elements satisfying #A > max{5(#P) - 1, #r(P)/2} and 10 < #P + #A = 4 (mod 6). First we construct the minimal extension P[A], in which every element a of A has order two, while O3(P [A]) = O3(P). Hence the partial IP loop P [A] has the base set P U A with the required number of elements and the same number of elements of order three as P. Next, we construct an extension of P [A] in which all the original gaps in r(P) will be filled. We take T = r(P) C r(P[A]) and introduce a binary operation * on T, assigning to each pair of gaps (x, y), (x-1, y-1) G T a (self-inverse) element x * y = y-1 * x-1 = (x * y)-1 from A. At the same time we arrange that (with the above exception) x * y = u * v whenever (x, y) and (u, v) are different gaps in P. This is possible, as #A > #r(P)/2. Since all the pairs (x, y) G P[A] such that x G A or y G A, except for (1, a), (a, 1) and (a, a) where a G A, are gaps in P[A], condition (5) of Lemma 3.1 is obviously satisfied. Thus we can construct the partial IP loop P [A]*, extending P [A] through the operation *. It still has the base set P U A, while r(p[A]*) n (P x P) = 0. At the same time, D(P[A]*) n (A x A) = {(a, a) : a G A}, so that ab =1 G P for any (a, b) G D(P[A]*) n (A x A). Finally, we construct an extension Q of P[A]* with the same base set P U A, such that r(Q) c O2(Q) x O2(Q). As all the elements of A are of order two, and P[A] * has no gap (x, y) G P x P, it suffices to manage that (x, a), (a, x) G D(Q) for all a G A, x G P \ O2(P), x =1. We will proceed by an induction argument. To this end we represent the set P \ (O2 (P) U{1}) = {x1,x-1,...,xn,x-1}, in such a way that each pair of mutually inverse elements x, x-1 G P \ (O2(P) U {1}) occurs in this list exactly once. To start with we put Q0 = P[A] *. Now we assume that, for some 0 < k < n, we already have an IP loop Qk > P[A]* with the same base set P U A, satisfying the following three conditions: (6) au, va G A for any a G A, u, v G P \ {1} such that (a, u), (v, a) G D(Qk), (7) ab G P for any (a, b) G D(Qfc) n (A x A), and (8) (x;, a), (a, x;) G D(Qk) for all 0 < l < k, a G A. M. Vodicka and P. Zlatos: The finite embeddability property for IP loops and local... 545 Observe that Qo trivially satisfies all these conditions (with k = 0), and condition (8) jointly with Lemma 2.1 imply that (x-1, a), (a, x-1) G D(Qk) for all 0 < l < k, a G A, too. For x = xk+1, we have to fill in all the gaps in Qk in which x occurs, preserving all the conditions (6), (7), (8) with k replaced by k +1. That way all the gaps in Qk containing x-1 will be filled in, as well. Let us introduce the sets Lx = {a G A : (a, x) G r(Qk)} and Rx = {a G A : (x, a) G r(Qk)}. Then Lemma 2.1 implies that (a, x) G r(Qk) if and only if (x-1, a) G r(Qk) for each a G A, hence Lx = Rx-i and Rx = Lx-i. Claim 1. We have #Lx = #Rx. Proof. Since xu = v implies v-1x = u-1 for any u, v G P U A, we have a bijection between the sets (P U A) \ Lx = {u G P U A : (x, u) G D(Qfc)}, (P U A) \ Rx = {v G P U A : Cv-1,x) G D(Qfc)}, which implies that the sets Lx and Rx have the same number of elements. □ Thus there exists a bijective map n : Lx ^ Rx (with inverse map n-1 : Rx ^ Lx); latter on we will specify some additional requirements concerning it. We intend to use n in defining the extending operation * on the set Tx = CLx x {x}) U C{x} x Rx) U CRx x {x-1}) U C{x-1} x Lx) U {(a, n(a)) : a G Lx} U {(n(a), a) : a G Lx} by putting a * x = n(a) for any a G Lx. Then we have to satisfy the remaining five conditions of Lemma 3.1, i.e. (remembering that the elements of A are self-inverse), a * n(a) = x, x-1 * a = n(a), n(a) * a = x-1, n(a) * x-1 = x * n(a) = a. The substitution b = n(a) into the last two relations yields b * x-1 = x * b = n-1 (b) for any b G Rx. Thus we have to guarantee that each pair (a, n(a)), where a G Lx, will be a gap in Qk. Since (a, a) G D(Qk ) for all a G A, this will imply n(a) = a for a G Lx n Rx (if any). Additionally, n should avoid any "crossing", i.e., the situation that n(a) = b and n(b) = a for some distinct a, b G Lx n Rx. This namely, according to Lemma 2.1, would imply that a * b = x = b * a, and, since (a * b)-1 = b * a, produce a contradiction x = x-1. Now it is clear that once we succeed to satisfy all the above requirements, the partial IP loop Qk+1, to be obtained as the extension of Qk through the operation * constructed from the 546 Ars Math. Contemp. 17 (2019) 493-514 bijection n as described, will satisfy all the conditions (6), (7), (8) (with k +1 in place of k). Thus it is enough to show that there is indeed a "crossing avoiding" bijection n: Lx ^ Rx such that (a, n(a)) € r(Qfc) for each a € Lx. To this end we denote the common value of #Lx = #Rx by m, enumerate the sets Lx = {ai, .. ., am}, Rx = {bi, .. ., bm} in such a way that i = j whenever aj = bj € Lx n Rx, and introduce the graph Gx on the vertex set V = {1,..., m}, joining two vertices i, j by an edge if and only if i = j and both (aj, bj), (aj, bj) € r(Qfc). Claim 2. The graph Gx has a Hamiltonian cycle. Proof. According to Lemma 2.3, it suffices to show that m > 3 and that the minimal degree of vertices in Gx is at least m/2. We keep in mind that both the right side and the left side multiplication in Qk by a fixed element are injective maps. Since ax € P \ {1} for every a € A such that (a, x) € D(Qk), there are at most #P - 1 pairs (a, x) in D(Qk). Hence m = #Lx > #A - #P +1 > 4(#P) > 3. Let i be any vertex in Gx. Then i is not adjacent to a vertex j if and only if at least one of the pairs (aj, bj), (aj, bj) belongs to D(Qk). However, for fixed aj or bj, all such products ajbj or ajbj belong to P and, in both cases, every element of P occurs as a result at most once. Thus there are at most 2(#P) vertices in Gx not adjacent to i. Therefore, mm deg(i) > m - 2(#P) > m - — = —. □ Let n be a cyclic permutation of the set V such that (1,n(1),... ,nm-1(1)) isaHamil-tonian cycle in Gx. We define n: Lx ^ Rx by n(aj) = bn(j) for any i € V. Obviously, n is bijective, (aj, n(aj)) € r(Qk) for each i € V, and, since m > 3, it avoids any crossing. It follows that in the extension Qk+1 of the partial IP loop Qk through the operation * all the gaps from the set Tx are filled in, and the conditions (6), (7), (8) are preserved. The last partial IP loop Q = Qn satisfies already all the requirements of Proposition 1.5. □ 5 Steiner triples and the proof of Proposition 1.6 In the proof of Proposition 1.6 we will make use of Steiner loops and Steiner triple systems. A Steiner loop is an IP loop satisfying the identity xx = 1, i.e., an IP loop in which every element x = 1 has order two. Steiner loops are closely related to Steiner triple systems, which are systems S of three element subsets of a given base set X such that each two element subset {x, y} of X is contained in exactly one set {x, y, z} G S. Namely, if L is a Steiner loop L then X = L \ {1} becomes a base set of the Steiner triple system Sl = {{x, y, xy} : x, y G X}. M. Vodicka and P. Zlatos: The finite embeddability property for IP loops and local... 547 Conversely, if S is a Steiner triple system with the base set X then, adjoining to X a new element 1 G X, we obtain a Steiner loop with the base set X + = X U {1}, the unit 1 and the operation given by the casework {1, if x = y, z, where {x, y, z} G S, if x = y, for x, y G X. Based on this definition, we will call a Steiner triple any three-element set {x, y, z} C O2 (P) in any partial IP loop P, such that the product of any two of its elements equals the third one. It is well known that there exists a Steiner triple system S on an n-element set X if and only if n = 1 or n = 3 (mod 6) (see, e.g., Hwang [18]). The construction reducing eventually the number of gaps in a given partial IP loop P, satisfying certain conditions which will be emerging gradually, is composed of several simpler steps, we are going to describe, now. At the same time, it depends on a six term progression a = (a0, ai, a2, a3, a4, a5) of pairwise distinct order two elements of P chosen in advance; the criteria for its choice will be clarified later on. The first step is the triplication construction, which uses Steiner loops heavily. Given an arbitrary finite partial IP loop P such that #P = 2 or #P = 4 (mod 6) we denote n = #P - 1. Then Steiner triple systems on n-element sets, as well as Steiner loops on (n + 1)-element sets exist; assume that Y, Z are two n-element sets, such P, Y, Z are pairwise disjoint, and that both the sets Y + = Y U {1}, Z + = Z U {1} are equipped with binary operations turning them into Steiner loops. In rather an ambiguous way, we denote by 3P = P U Y + U Z+ the direct sum of the partial IP loop P with the Steiner loops Y + and Z + (see Section 4). It is a partial IP loop with the base set P U Y U Z, consisting of 3n +1 elements, and the domain D(3P) = D(P) U (Y x Y) U (Z x Z) U ({1} x (Y U Z)) U ((Y U Z) x {1}). We will extend the partial operation on 3P by filling in all the gaps consisting of pairs of elements of different sets P, Y, Z. That way we'll obtain an extension 3P* of 3P with the same base set P U Y U Z, such that r(3P*) = r(P). The extending operation * is defined on the set T = (P0 x (Y U Z)) U ((Y U Z) x P0) U (Y x Z) U (Z x Y) C r(P U Y+ U Z+), where P0 = P \ {1}. It depends on some arbitrary fixed enumerations Po = {xo, ...,xn_i}, Y = {yo,... ,y„_i}, Z = {zo,..., z„_i} of the sets P0, Y, Z, respectively. Once having them we put yi * zi+fc = xi+2fc for 0 < i, k < n, with the addition of subscripts modulo n. Then, in order to satisfy the conditions of Lemma 2.1, we define xi+2k * zi+k = yi, yi * xi+2k = zi+k, x_i2fc * yi = zi+k, zi+k * x_+2k = yi, zi+k * yi = x_+2k, 548 Ars Math. Contemp. 17 (2019) 493-514 using the fact that all the elements of Y and Z are self-inverse. As all the pairs (x, y), (y, x), (x, z), (z, x), (y, z), (z, y), where x G P0, y € Y, z G Z, are gaps in 3P, Lemma 3.1 guarantees that the extension 3P * of the partial IP loop 3P through the operation * is a partial IP loop, again. For lack of better terminology we will call it a Steiner triplication of the partial IP loop P and suppress the Steiner loops Y +, Z + and the particular enumerations in its notation. The Steiner triplication 3P* of P satisfies r(3P*) = r(P), hence it still has the same number of gaps as P. However, Proposition 1.6 requires us to decrease this number. This will be achieved in a roundabout way. First we cancel some pairs in the domain D(3P*), creating that way the potential to fill in more gaps than we have added. In order to allow for this next step, P has to satisfy some additional conditions, namely, #P > 10 (i.e., n > 9) and o2(P) > 6. Though the enumerations of the sets P0, Y, Z, used in the definition of the extending operation *, could have been arbitrary, we now assume that these sets were enumerated in such a way that the six term progression a = (a0, a^ a2, a3, a4, a5) chosen in advance coincides with the sixtuple (x0, x2, xi, x5, x3, xn-3) and that {y0, yi, y3} is a Steiner triple in Y +. This artificial trick will facilitate us the description of the next step of our construction. As special cases of the above defining relations for the operation * in 3P* we get zo = yoxo = y3x„_3, zi = yox2 = yixi and z3 = yix5 = y3x3. In other words, we have the following seven Steiner triples in 3P*: {xo,yo,zo}, {x2,yo,zi}, {xi,yi,zi}, {x5 ,yi,z3}, {x3,y3,z3}, {x„_3,y3,zo}, {yo,yi,y3}. We delete these triples from the domain of 3P *. More precisely, for any one of these three-element sets we delete from D(3P*) all the six pairs consisting of its distinct elements. That way we obtain a partial IP loop 3P- < 3P *, called the reduction of 3P*, which still is an extension of P, however, it has 42 more gaps than 3P* (6 for each Steiner triple), and, since r(P) = r(3P*), than P, as well. Instead we introduce some new triples consisting of the same elements, namely which are intended to become Steiner triples, after we define a partial operation o on the set {x0, x2, xi, x5, x3, xn-3, y0, yi, y3, z0, zi, z3} by putting the product of any pair of distinct elements of a given three-element set from this list equal to the third one. That way we obtain an extending operation of the partial IP loop 3P- if and only if all the pairs entering this new operation are gaps in 3PThis is obviously true for the 18 pairs arising from the three triples in the last row above. However, this need not be the case for the pairs arising from the six triples in the first two rows. The problem can be reduced to the question which of the pairs (x0,x2), (x2,xi), (xi,x5), (x5,x3), (x3,xn-3), (xn-3,x0) belong to r(P). If, e.g., (x0,x2) G r(P) then we cannot put x0 o x2 = y0, so that {x0,x2,y0} cannot become a Steiner triple. Therefore, we include just those triples {xj, xj, yk} or {x4, xj, zk} for which the pair (xj, xj) is a gap in P. Every such "good" triple results in filling in six gaps. We already have 18 gaps filled in thanks to the last row. Thus we need at least five "good" triples in the {xo,x2,yo}, {x5,x3,z3}, {yo ^i^iL {x2, xi, zi}, {x3,x„_3,y3}, {yi,y3, z3}, {xi,x5,yi}, {x„_3,xo, zo}, {y3,yo, zo}, M. Vodicka and P. Zlatos: The finite embeddability property for IP loops and local... 549 first two rows in order to fill in additional 30 gaps; this would give 18 + 30 = 48 > 42 gaps, while having just four "good" triples results in refilling back 42 gaps, only. In general, we can fill in 6(3 + g) gaps, where 0 < g < 6 is the number of gaps (xj, Xj) in the list. We refer to this last step of the construction as to "filling in the gaps along the path" a and denote the final resulting extension of the reduction 3P- by 3P(a). Obviously, 3P(a) is an extension of the original IP loop P, as well, having 6(3 + g) - 42 = 6(g - 4) less gaps than P. This number can be negative, 0 or positive, depending on whether g < 4, g = 4, or g > 4. That's why we are interested just in the case when g > 4. After all these preparatory accounts we can finally approach the proof of Proposition 1.6. Proof of Proposition 1.6. Let P be a finite partial IP loop satisfying the conditions (4), i.e., 3 | o3(P), #P > 10, #P = 4 (mod 6) and r(P) C O2(P) x O2(P), such that r(P) = 0. We are to show that there is a finite partial IP loop Q > P satisfying these conditions, as well, with less gaps than P. Since r(P) C O2 (P) x O2 (P), it is an antireflexive and symmetric relation on the set O2(P). Thus we can form the gap graph G(P) = (V, E) with the set of vertices V = {x € O2(P) : (x, y) G r(P) for some y G O2(P)} and the set of edges E = {{x, y} : (x, y) G r(P)}. From the definition of the set of vertices V it follows there are no isolated vertices in G(P). Let's record some less obvious useful facts about this graph. Claim 3. (a) The degree of each vertex in G(P) is even. (b) The number of edges in G(P) is divisible by three. Proof. (a): Let x G O2(P). Then the conditions xy = z and xz = y are equivalent for any y, z G P. Additionally, as x = 1, from xy = z it follows that y = z. Thus the elements y G P such that (x, y) G D(P) can be grouped into pairs, hence their number is even. As #P is even, too, so is the degree deg(x) = #{y G O2(P) : (x,y) G r(P)} = #P - #{y G P : (x,y) G D(P)}. (b): By Lemma 2.2 we have #r(P) = (#P - 1)(#P - 2) - 03(P) = 0 (mod 6). On the other hand, #P = 4 (mod 6) and 3 | 03 (P), yielding 3 | #r(P). Obviously, the number of edges in G(P) is half of the number of gaps #r(P), hence the number of edges in G(P) must be divisible by three. □ The structure of connected components in G(P) obeys the following alternative. 550 Ars Math. Contemp. 17 (2019) 493-514 Claim 4. Let C be a connected component of the graph G(P). Then either C contains a triangle or a path of length five, or, otherwise, C is isomorphic to one of the following graphs: the cycle C4 of length four, the cycle C5 of length five or the complete bipartite graph K2,m where m > 4 is even. Proof. Let C be any connected component in G(P). As G(P) has no isolated vertices and the degree of every vertex in C is even (and therefore at least two), there is a cycle in C. Assume that C contains no triangle and no path of length five. Then the length of this cycle must be bigger than three and less than six. Thus there are just the following two options: (a) There is a cycle of length five in C. Then there cannot be any other edge coming out from its vertices since then there would be a path of length five contained in C. Thus C coincides with this cycle. (b) There is a cycle of length four in C; let us denote it by (v0, v1, v2, v3). Then, as G(P) contains no triangle, neither {v0, v2} nor {v1, v3} is an edge in G(P). If there are no more vertices in C then C is a cycle of length four. Otherwise, we can assume, without loss of generality, that there is a fifth vertex u0 g C adjacent to v0. As u0 has an even degree, it must be adjacent to some other vertex, too. If it were adjacent to some vertex u1, distinct from all the vertices v0, v1, v2, v3, there would be apath (u1, u0, v0, v1, v2, v3) of length five in C. If u0 were adjacent to v1 or to v3, there would be a triangle (u0, v0, v1) or (u0, v0, v3) in C. That means that {u0, v2} must be an edge in G(P) and deg(u0) = 2. It follows that every other vertex in C must have degree two and it must be adjacent either to v0 and v2 or to v1 and v3. However, the second option is impossible, since in that case (u0, v0, v1, u1, v3, v2) would be a path of length five. This means that C is isomorphic to the complete bipartite graph K2,m, where one term of this partition is formed by the set {v0, v2} and the second one by the rest of the vertices in C. Since every vertex has an even degree, m must be even. At the same time, m > 4, as K2 2 has just four vertices (and it is isomorphic to the cycle C4). □ Thus the proof of Proposition 1.6 will be complete once we show how to construct the extension Q in each of the cases listed in Claim 4. (a) G(P) contains a triangle, i.e., a three-element set of vertices {x, y, z} such that all its two-element subsets are edges. Then we can extend P through the operation * turning {x, y, z} into a Steiner triple. The corresponding extension Q of P has all the properties required and six less gaps than P. (b) G(P) contains a path a = (a0, a1, a2, a3, a4, a5) of length five. Then we can form the Steiner triplication 3P* of P and, filling in the gaps along the path a in its reduction 3Pwe obtain the final extension Q = 3P (a) satisfying the condition (4), again. If (a5, a0) is a gap in P (i.e., if a is a cycle of length five in G(P)) then Q has twelve gaps less than P, otherwise it still has six gaps less than P. We still have to prove Proposition 1.6 in the case there is neither any triangle nor any path of length five in G(P). To this end it is enough to construct, in each of the remaining cases listed in Claim 4, an extension Q of P such that the graph G(Q) has the same number of edges as G(P), however, there is a path b of length five in G(Q). From such a Q we can construct another extension 3Q (b) > Q > P with a smaller number of gaps and still M. Vodicka and P. Zlatos: The finite embeddability property for IP loops and local... 551 satisfying the condition (4), similarly as we did in the case (b). So let us have a closer look at the remaining cases. (c) G(P) contains a connected component isomorphic to K2,m, where m > 4. Let {w0, ui} be the two-element partition set and {v0, vi, v2, v3} be any four-element subset of the m-element partition set in that component of G(P). We denote by a the six-term progression (v0, w0, v1, v2, u1, v3) and construct the extension Q = 3P(a) of the partial IP loop P with the gap graph G(Q). Then {v0, w0}, {w0, v1}, {v2, u1}, and {u1, v3} are edges in G(P), while {v1, v2} and {v3, v0} are not. Hence the new graph G(Q) has the same number of edges as G(P) and Q has the same number of gaps as P. At the same time, there are two distinct new vertices y1, z3 in G(Q), occurring in the enumerations of the sets Y, Z, respectively. Now, one can easily verify that b = (v0, u1, v1, y1, v2, w0) is a path of length five in G(Q). (d) There are two distinct connected components C and D in G(P), each of them isomorphic to the cycle C4 or C5. Let m and l denote any of the numbers 4 or 5. We assume that (w0, u1,..., wm-1) and (v0, v1,..., v;-1) are the cycles forming the components C = Cm and D = C;, respectively. Now we take the six term progression a = (w0, w1, w2, v0, v1, v2) and form the extension Q = 3P(a). Once again, {w0, w1}, {u1,u2}, {v0,v1} and {v1,v2} are edges in G(P), while {w2,v0} and {v2, w0} are not. Hence G(Q) has the same number of edges as G(P) and Q has the same number of gaps as P. Now, picking the new distinct vertices y1 G Y, z3 G Z, we obtain the path b = (w3, w2, y1, v0, v;-1, v;-2) of length five in G(Q). (e) G(P) consists of a single connected component isomorphic either to C4 or to C5. However, this is impossible, since the number of edges in G(P) is divisible by three. This concludes the proof of Proposition 1.6, as well as of Theorems 1.1, 1.2 and 1.3. 6 Final remarks The discussion from the introduction together with Theorem 1.3 naturally lead to the following question. Problem 6.1. Is there some minimal (ore even the least) axiomatic class K of IP loops such that every group is locally embeddable into Kfin? Does this class (if it exists) satisfy the Finite Embeddability Property? The first candidate which should be examined in this connection seems to be the class of all Moufang loops introduced in [25]: A Moufang loop is a loop satisfying one (hence all) of the following four equivalent identities cf. Pflugfelder [26], Kunnen [19]. It is well known that every Moufang loop is an IP loop. The following is not the usual definition of the concept of a sofic group (see Gromov [15], Weiss [29], Ceccherini-Silberstein, Coornaert [2]), however, as proved by Gordon and Glebsky [12], it is equivalent to it. A group (G, •, 1) is sofic if for every nonempty □ x(y(xz)) = ((xy)x)z, x(y(zy)) = ((^y»^ (xy)(zx) = (x(yz))x, (xy)(zx) = x((yz)x), 552 Ars Math. Contemp. 17 (2019) 493-514 finite set X C G and every e > 0 there exists a finite quasigroup (Q, *) such that X C Q, for all x,y e X satisfying xy e X we have xy = x * y, as well as No example of a non-sofic group is known up today, however, there is a general belief that not every group is sofic. Theorem 1.3 together with the above description of sofic groups indicate that the sofic groups could perhaps be characterized as groups locally em-beddable into some "nice" subclass of the class of finite IP loops, fulfilling some "reasonable amount of associativity". A natural candidate is the class of all finite Moufang loops, once again. For some additional reasons in favor of this choice see [11]. As already indicated, one should start with trying to clarify the following question. Problem 6.2. Does the class of all Moufang loops have the FEP? If the answer is negative then it would make sense to elaborate on the following problem. Problem 6.3. Characterize those groups which are locally embeddable into finite Moufang loops. Finally, let us formulate two possible responses to Problem 6.3. Conjecture 6.4. Every group is locally embeddable into finite Moufang loops. Conjecture 6.5. A group G is sofic if and only if it is locally embeddable into finite Moufang loops. Unless every group is sofic, these two conjectures contradict each other. Let us remark that we find the first one more probable to be true than the second one. This would follow from the affirmative answer to Problem 6.2, however it might be true even if the class of Moufang loops failed to have the FEP. References [1] V. D. Belousov and G. B. Belyavskaya, Latin Squares, Quasigroups and Their Applications (in Russian), Shtiintsa, Kishinev, 1989. [2] T. Ceccherini-Silberstein and M. Coornaert, Cellular Automata and Groups, Springer Monographs in Mathematics, Springer-Verlag, Berlin, 2010, doi:10.1007/978-3-642-14034-1. [3] C. C. Chang and H. J. Keisler, Model Theory, volume 73 of Studies in Logic and the Foundations of Mathematics, North-Holland, Amsterdam, 3rd edition, 1990. [4] A. B. Cruse, On embedding incomplete symmetric Latin squares, J. Comb. Theory Ser. A 16 (1974), 18-22, doi:10.1016/0097-3165(74)90068-5. [5] R. Diestel, Graph Theory, volume 173 of Graduate Texts in Mathematics, Springer, Berlin, 5th edition, 2018, http://diestel-graph-theory.com/. #{q € Q : (x * y) * q = x * (y * q)} #Q < £ and, finally, #{q € Q : 1 * q = q} #Q < £. M. Vodicka and P. Zlatos: The finite embeddability property for IP loops and local... 553 [6] H. Dietrich and I. M. Wanless, Small partial Latin squares that embed in an infinite group but not into any finite group, J. Symbolic Comput. 86 (2018), 142-152, doi:10.1016/j.jsc.2017.04. 002. [7] G. A. Dirac, Some theorems on abstract graphs, Proc. London Math. Soc. 2 (1952), 69-81, doi:10.1112/plms/s3-2.1.69. [8] A. Drdpal, personal communication, 2004. [9] T. Evans, Some connections between residual finiteness, finite embeddability and the word problem, J. London Math. Soc. 1 (1969), 399-403, doi:10.1112/jlms/s2-1.1.399. [10] T. Evans, Word problems, Bull. Amer. Math. Soc. 84 (1978), 789-802, doi:10.1090/ s0002-9904-1978-14516-9. [11] S. M. Gagola, III, How and why Moufang loops behave like groups, Quasigroups Related Systems 19 (2011), 1-22, http://quasigroups.eu/contents/download/2011/ 19_1.pdf. [12] L. Yu. Glebskii and E. I. Gordon, On the approximation of amenable groups by finite quasigroups, Zapiski Nauchnykh Seminarov (POMI) 326 (2005), 48-58, doi:10.1007/s10958-007-0446-1, ftp://ftp.pdmi.ras.ru/pub/publicat/znsl/ v326/p048.ps.gz. [13] L. Yu. Glebsky and E. I. Gordon, On approximation of topological groups by finite quasigroups and finite semigroups, Illinois J. Math. 49 (2005), 1-16, doi:10.1215/ijm/1258138303. [14] G. Gratzer, Universal Algebra, University Series in Higher Mathematics, Van Nostrand, Princeton, New Jersey, 1968. [15] M. Gromov, Endomorphisms of symbolic algebraic varieties, J. Eur. Math. Soc. (JEMS) 1 (1999), 109-197, doi:10.1007/pl00011162. [16] L. Henkin, Some interconnections between modern algebra and mathematical logic, Trans. Amer. Math. Soc. 74 (1953), 410-427, doi:10.2307/1990810. [17] L. Henkin, Two concepts from the theory of models, J. Symb. Logic 21 (1956), 28-32, doi: 10.2307/2268482. [18] F. K. Hwang and S. Lin, A direct method to construct triple systems, J. Comb. Theory Ser. A 17 (1974), 84-94, doi:10.1016/0097-3165(74)90030-2. [19] K. Kunen, Moufang quasigroups, J. Algebra 183 (1996), 231-234, doi:10.1006/jabr.1996.0216. [20] C. C. Lindner, Embedding theorems for partial Latin squares, in: J. Dines and A. D. Keedwell (eds.), Latin Squares: New Developments in the Theory and Applications, North-Holland, Amsterdam, volume 46 of Annals of Discrete Mathematics, 1991 pp. 217-265, doi: 10.1016/s0167-5060(08)70968-3. [21] A. I. Mal'tsev, On a general method for obtaining local theorems in group theory (in Russian), Uchen. Zap. Ivanovsk. Ped. Inst. 1 (1941), 3-9. [22] A. I. Mal'tsev, On homomorphisms onto finite groups (in Russian), Uchen. Zap. Ivanovsk. Ped. Inst. 18 (1958), 49-60. [23] A. I. Mal'tsev, Algebraic Systems (in Russian), Izdat. "Nauka", Moscow, 1970. [24] S. Meskin, Nonresidually finite one-relator groups, Trans. Amer. Math. Soc. 164 (1972), 105114, doi:10.2307/1995962. [25] R. Moufang, Zur Struktur von Alternativkorpern, Math. Ann. 110 (1935), 416-430, doi:10. 1007/bf01448037. [26] H. O. Pflugfelder, Quasigroups and Loops: Introduction, volume 7 of Sigma Series in Pure Mathematics, Heldermann Verlag, Berlin, 1990. 554 Ars Math. Contemp. 17 (2019) 493-514 [27] A. C. C. Treash, Inverse Property Loops and Related Steiner Triple Systems, Ph.D. thesis, Emory University, Atlanta, Georgia, 1969, https://search.proquest.com/ docview/3 02 4 98 451. [28] A. M. Vershik and E. I. Gordon, Groups that are locally embeddable in the class of finite groups, Algebra iAnaliz 9 (1997), 71-97, http://mi.mathnet.ru/eng/aa751. [29] B. Weiss, Sofic groups and dynamical systems, Sankhya Ser. A 62 (2000), 350-359. [30] M. Ziman, Extensions of Latin subsquares and local embeddability of groups and group algebras, Quasigroups Related Systems 11 (2004), 115-125, http://www.quasigroups. eu/contents/download/2004/11_13.pdf.