Exponentially larger affine and projective caps

Abstract In spite of a recent breakthrough on upper bounds of the size of cap sets (by Croot, Lev and Pach and by Ellenberg and Gijswijt), the classical cap set constructions had not been affected. In this work, we introduce a very different method of construction for caps in all affine spaces with odd prime modulus p. Moreover, we show that for all primes p≡5mod6 with p⩽41, the new construction leads to an exponentially larger growth of the affine and projective caps in AG(n,p) and PG(n,p). For example, when p=23, the existence of caps with growth (8.0875…)n follows from a three‐dimensional example of Bose, and the only improvement had been to (8.0901…)n by Edel, based on a six‐dimensional example. We improve this lower bound to (9−o(1))n.

maximal caps are also called ovaloids. In PG (3, ) with odd , these maximal caps come from elliptic quadrics, see [33]. A representative for such a cap is the set {( 2 + + 2 , , , 1)| , ∈ } ∪ {(1, 0, 0, 0)}, where 2 + + is irreducible over . In the corresponding affine space, the point (1,0,0,0) is removed. As a consequence, we obtain the bound , ≫ 2 ∕3 by simply taking products of this cap. This result can be considered classical, as the determination of the size of caps in PG(3, q) for odd prime powers goes back to Bose [10] in 1947.
There are several computational results on caps in small dimension; see [15,26]. However, the only known asymptotic improvement over Bose's result on the lower bound when ⩾ 5 is due to Bierbrauer and Edel [17,Theorem 11] for projective caps and Edel [16] for affine caps, and is based on a product construction of a large cap in dimension 6. If is a multiple of 6, then Edel's construction yields pr , ⩾ , ⩾ ( 4 + 2 − 1) ∕6 . If is not a multiple of 6, one can modify the construction slightly, but in any case this only influences a constant in , ⩾ ( 4 + 2 − 1) ⌊ ∕6⌋ . It is known that the limit = lim →∞ ( , ) 1∕ exists and is in the interval [2, ); see, for example, [19,Proposition 3.8]. Numerically, Edel's construction gives only a small improvement of the earlier bound 2 ∕3 . For example, when = 17, then the bound 6.611 … is improved to 6.615 …. In this paper, we will improve this to 7. When = 23, a lift of Bose's result gives a constant 8.087 …, which Edel improved to 8.090 …. We improve this to 9. However, while Edel's construction works for all primes, our construction has to be optimized for individual primes. For = 5, Edel's construction gives 5 ⩾ 649 1∕6 = 2.942 … . Recently, Elsholtz and Pach [19] have constructed large progression-free sets and it emerged that in ℤ 5 , their construction is asymptotically better than Edel's bound; Edel's lower bound was improved to 5 ⩾ 3. In the case modulo 4 (that is, working in ℤ 4 rather than 4 ), Elsholtz and Pach [19] gave a much more substantial improvement from 4 ⩾ 2.519 … to 4 ⩾ 3. Improvements in the case of a prime base seem to be much more difficult, since the existing construction of Edel seems to be good.
Another important measure for the size of caps is the exponent ( ) = lim →∞ (log , )∕ in the representation of the size as ( ) . The mentioned result , ≫ 2 ∕3 clearly implies ( ) ⩾ 2∕3. The recent breakthrough of Ellenberg and Gijswijt [18] shows that ( ) < 1. Indeed, their method yields the bound see [9]. It is known that ( ) is decreasing and lim →∞ ( ) = 0.8414 …, see [9, eq. (4.11)]. Besides the mentioned product constructions, also another approach is known: In an unpublished work of Lev [29], he describes an elegant method to 'globally' construct large caps in 3 . TA B L E 1 Comparison of previously known best lower bounds for to our new ones, and new lower bounds for the exponent ( ). Figures in bold constitute new records. The ≥-sign is meant to indicate cases in which we cannot ensure that our method is not able to produce better results than the stated ones. These caps have basically the form

Lower bounds for
where ∈ is a fixed non-square, is a multiple of 3 and = 3 ∕3 . However, these sets have size 3 2 ∕3 = (2.08008 …) , which is of the same quality as Bose's construction lifted to higher dimension.

Overview of our work
In this paper, we extend the combinatorial method of Elsholtz and Pach [19] from the case of sets avoiding arithmetic progressions to affine caps (with prime modulus larger than 4). In particular, we introduce some new directions for finding good digit sets, which are crucial for our constructions of large caps; see Section 3.
Our results improve the lower bounds of for ∈ {11, 17, 23, 29, 41}, and the improvements in these cases are indeed substantial. Especially the case = 23 with an exponent of (23) ⩾ 0.70075 … comes quite close to the case of = 3, where a construction is known based on a large cap in dimension 480, giving (3) ⩾ 0.72485 … ; see [16,Section 5]. Table 1 compares our new lower bounds to those by Edel [16].

RESULTS AND CONSTRUCTION
In the following, we use Vinogradov's notation, where ( ) ≫ g( ) means that there exists some > 0 such that ( ) ⩾ g( ) holds for all > 0 . We directly start by stating our main result. Since every subset of AG( , ) can be embedded into PG( , ), this directly implies the following corollary. Moreover, our improved bounds on caps can also be transformed into improved bounds on linear codes. For details we refer to [17,Theorem 1].
These new bounds are based on a 'global' construction of affine caps: We take a set ofdimensional points, where the set depends on in a much stronger way than taking a tensor product construction of a small (local) cap. The idea is, for a fixed prime , to find a large set of digits ⊆ ℤ and a subset ′ ⊆ such that the set is a cap in AG( , ) for all ∈ ℕ with | | | . If this is the case, then we say that ( , ′ ) is admissible. Moreover, we say that is admissible if there is some ′ ⊆ such that ( , ′ ) is admissible. Note that if ′ 1 ⊆ ′ 2 ⊆ , then the admissibility of ( , ′ 1 ) implies the admissibility of ( , ′ 2 ). Next, we combinatorially determine the cardinality of the set ( , ′ , ) and then asymptotically estimate it by applying Stirling's formula, which leads to The form of the parameter comes from the fact that fixing the frequencies of | | digits leads to the same result as fixing the frequencies of | | − 1 digits, because then the frequency of the last digit is fixed automatically. With the usual interpretation 0 0 = 1, (2.2) also holds true for ′ = .
In order to obtain a large cap, (2.2) implies that, first of all, we need to • choose the digit set as large as possible, and then • find a corresponding set ′ ⊆ of digits with fixed frequencies which is as small as possible.
However, the minimization of the set ′ is restricted by the fact that the frequency conditions are crucial to ensure that the resulting set is indeed a cap. More details can be found in Section 3. Finally, we give some additional comments on the construction.
(a) For simplicity, the reader can assume in the first reading that ′ = . This still covers all the main improvements, and only slightly weakens the exponent of in the denominators of our results. (b) It is not crucial for our method that the frequencies of the digits in (2.1) are exactly ∕| |.
Other constants which can also vary depending on the digit and add up to also work. However, if we want to maximize the size of the cap ( , ′ , ), then ∕| | is the best choice, in view of the multinomial distribution. (c) If the dimension is not a multiple of | |, then we can trivially extend the set ( , ′ , − ( mod | |)) to a subset of ℤ by filling the remaining coordinates with a good cap in dimension mod | |. As a consequence, (2.2) holds for all ∈ ℕ, understood as an asymptotic lower bound with a slightly weaker constant . (d) One could also think of restrictions other than fixing the frequency of some digits, for example, fixing the 'radius' of the points (compare Behrend's construction for progression-free sets, the application to the multidimensional setting as explained by Petrov and Poahata [34] in the case modulo 8 and by Elsholtz and Pach [19] more generally). Or one could think of fixing the frequency of multiple digits together (as mentioned in [19, proof of Theorem 3.11]). Both approaches do not seem to work for caps in general. However, we have refrained from further optimizing the denominators in Theorem 1. (e) It turned out that if is admissible, then the corresponding set ′ can be chosen in such a way that | ′ | ⩽ | | − 2 holds. We believe that this is always possible. (f) So far, our method only leads to an improvement for small primes with ≡ 5 mod 6. It would be nice to have improved constructions for many primes. (g) It seems to be possible to add some smaller caps to a large cap constructed in this way so that the union of all points is still a cap. This would improve the constant by a small factor (probably less than 2). For some details see [19, Theorem 3.2 and Corollary 3.4].

APPROACHES FOR FINDING ADMISSIBLE SETS
As already mentioned in the introduction, for = ∈ {3, 4, 5} the cap set condition can be verified by only ensuring that no three points , and from the set satisfy + = 2 (which describes arithmetic progressions). For > 5, the cap set condition is not only based on this equation, but also on the other equations + + = 0, where , , ∈ ℤ with + + = 0. If = is a prime, then without loss of generality, it is enough to assume that = 1. With = −( + 1) we can assume that ∈ {1, … , − 2}. (If = 0, then = −1 simply means that , and are distinct. If = − 1, then we have = 0 with the same consequence.)

Modeling the problem
For the moment, let ∈ {1, … , − 2} be fixed and = −( + 1). Moreover, let be the set of non-trivial 'weighted progressions' corresponding to . Assume that there is some ∈ ℕ with | | | such that there are three points = ( 1 , … , ) ⊤ , = ( 1 , … , ) ⊤ , = ( 1 , … , ) ⊤ ∈ ( , ′ , ) which lie on a line. For each weighted progression = ( 1 , 2 , 3 ) ∈ ( ), we introduce a variable which describes the number of occurrences of in the components of these three points, that is, Because every digit in ′ has to occur the same number of times, we find the equations for each ∈ ′ . Now it is easy to see that the non-existence of a non-negative non-trivial integral solution = ( | ∈ ( )) for the equations above for all ∈ {1, … , − 2} is equivalent to the nonexistence of three points on a line, that is, the fact that ( , ′ , ) is a cap. So in order to prove the admissibility of some ( , ′ ), we have to ensure that the polyhedron only contains the zero vector for all ∈ {1, … , − 2}, where the system of linear equations = 0 describes the equations given in (3.1) and clearly depends on and = | ( )|. This can be done by methods of linear integer programming, for example, with a standard IP solver. For this article, we have used the MILP packages of SageMath [35] as well as JuMP, an optimization package of Julia [6]. A complete list of all admissible digit sets of maximal size for small can be found at https://gitlab.com/galipnik/large-caps.
One way of ensuring that an admissible digit set has largest size, say size , among all admissible digit sets for fixed is to find a feasible solution of the IP for all † possible digit sets of size + 1 for at least one (which implies that all these sets cannot be admissible). We have done this for ⩽ 23; see also Table 1. In order to give an idea of the computation times, our implementation took about 95 min for the case = 23 (and + 1 = 10), while it was executed on an Intel(R) Core(TM) i7-7500U CPU at 2.70 GHz. In other words, showing the non-admissibility of thousands of individual digit patterns each took only a fraction of a second.
Unfortunately, deciding if a polyhedron contains an integer point is NP-complete [21], which implies, together with the fact that the number of possible digit sets also grows exponentially for increasing , that checking admissibility for all possible digit sets modulo can only be done for small . Hence, it is very natural to look for simpler ways of checking whether digit sets are admissible. Two such approaches are described in the following section.
For an illustration of setting up the equations given in (3.1) as well as the corresponding constraint matrix , we refer to the case = 23 in Section 4. † However, some equivalent digit sets can be neglected. For example, we can always assume without loss of generality that an admissible digit set contains the digits 0 and 1.

Digit-reducibility as a sufficient condition
Besides the computational method presented in the previous section, we next give a sufficient condition for the admissibility of a digit set, which allows us to verify very easily that a set is admissible. A pair ( , ′ ) with ′ ⊆ ⊆ ℤ is said to be digit-reducible if for every ∈ {1, … , − 2} and = −( + 1) the following recursively defined algorithm results in the empty set: If there exists a position ∈ {1, 2, 3} and a digit ∈ ′ such that does not occur at position in any of the triples in ( ) but it occurs at one of the other positions in at least one of the triples in ( ), then remove all weighted progressions from ( ) which contain at any position. Recursively apply this rule to the remaining set ( ) again. If there do not exist an ∈ {1, 2, 3} and a digit ∈ ′ such that does not occur in any of the triples in ( ) at position but it occurs in at least one triple at any position, then stop the process.
We now explain why the reducibility of ( , ′ ) implies that ( , ′ , ) is a cap for all ∈ ℕ with | | | . Assume that ( , ′ ) is reducible and there are three pairwise different vectors = ( 1 , … , ) ⊤ , = ( 1 , … , ) ⊤ , = ( 1 , … , ) ⊤ ∈ ( , ′ , ) for some ∈ ℕ and ∈ ℤ ⧵ {0, −1} such that + + = 0 with = −( + 1). This implies that there exists some with 1 ⩽ ⩽ such that the component ( , , ) of the vectors is a non-trivial weighted progression, that is, it is in ( ). However, the test above says that there is no triple in ( ) which can occur, due to the fact that every digit in ′ has to occur | |∕ times in each vector. This is a contradiction to the assumption that the vectors are pairwise different. Thus, the set ( , ′ , ) is a cap for all suitable ∈ ℕ, and is admissible.
For detailed examples, we refer to Section 4, cases = 11 and = 17.

Matrix-reducibility as a sufficient condition
In order to show that a digit set is admissible for some set ′ ⊆ of digits with fixed frequency, we can also use the following sufficient condition based on the matrix , which represents the linear constraints given in (3.1) via = 0. Again, we consider each equation + + = 0 separately and fix ∈ {1, … , − 2}. Let be the reduced row echelon form of the matrix . For each row of which only contains non-negative, respectively, non-positive entries, it is clear that the variables corresponding to non-zero entries of this row have to be zero (otherwise, the equation that corresponds to the said row cannot be fulfilled). This is due to the fact that we only search for non-negative solutions .
Thus, we can delete the columns of that belong to these variables, and proceed with the next non-negative or non-positive row. Note that the deletion of columns can bring out new nonnegative or non-positive rows. Naturally, this process determines if no such row is left in . If at the end all columns of are deleted, then all variables have to be zero. If this is the case for all ∈ {1, … , − 2}, then we say that ( , ′ ) (or simply ) is matrix-reducible, which implies that the digit set is admissible.
Remark 3.1. This procedure described here and the algorithm that we use for digit-reducibility in the previous subsection are essentially of the same shape: While we start with the reduced row echelon form of here, we can reformulate the algorithm of Section 3.2 in such a way that it is the same as this one but with itself as initial matrix instead of its echelon form. The reason for the different descriptions of the two algorithms is our belief that it is easier and more convenient to handle with digits and weighted progressions instead of the corresponding matrices -at least if one wants to understand it and do it by hand.
One can also think of other transformations of as initial matrices for the reduction than the reduced row echelon form or itself, and even combine them. However, we refrained from optimizing this point because it works fine for our purpose.
For an example, we refer to Section 4, case = 23.
We remark that reducibility (both via digits or matrices) is only a sufficient condition for to be admissible, but not necessary. The system of equations involved could have a more sophisticated structure, and there are indeed admissible digit sets which are not reducible. However, it turned out that these algorithmically simple tests are in fact very useful. They help to keep the proofs for the admissibility of digit sets simple and readable.
Moreover, digit-and matrix-reducibility are not equivalent: There exist digit sets which are digit-but not matrix-reducible (see case = 17 in Section 4) and vice versa (see case = 23 in Section 4).
Finally, it is of course also possible to combine the latter two approaches: We can choose between the digit-and matrix-reducibility algorithm depending on the parameter . Indeed, there are digit sets which are neither digit-nor matrix-reducible, but if we combine the two approaches, then the reducibility of the digit set can be shown.

Elimination of some equations
So far, it seems that admissibility (respectively, reducibility) of a fixed digit set has to be checked in − 2 cases, namely for all equations + + ≠ 0 with , ∈ ℤ ⧵ {0, −1} and + = −1. This is in fact not necessary: The following two observations help to significantly reduce the cases that have to be studied later on. We say that two equations + 1 + 1 = 0 and + 2 + 2 = 0 are equivalent if either 2 = −1 1 1 (case (a) above) or 1 = 2 (case (b) above). Hence, only representatives of non-equivalent equations have to be tested for the cap set property.
For the primes considered in Theorem 1, the iterated application of the two cases of Remark 3.2 implies an immense simplification in our proof: It reduces the number of relevant equations from − 2 to ( + 1)∕6.
We have 1 ∈ ′ and thus, the frequency of this digit has to be equal in any of the three positions. However, 1 does not occur in any of the triples in the second position, and as a consequence, the digits 1 can only occur in the trivial progression (1,1,1). So the triples (1,3,5) and (5,3,1) cannot occur in any component of a potential weighted progression in ( , ′ , ). Hence, we delete (1,3,5) and (5,3,1) from the above list and (3,4,5), (5,4,3) remain. None of these two triples has the digit 3 in the second position. Thus, we delete both of them, and no triple from the set −2 ( ) remains. By Remark 3.2 (b), this also solves the case + 9 = 10 . Moreover, as 5 is the inverse of 9 modulo 11, also the equation + 5 = 6 is covered due to Remark 3.2 (a). As 0 never occurs in the first position and 1 never occurs in the last position, we can remove all triples with any occurrence of 0 or 1. Therefore, again no non-trivial solutions in remain. By Remark 3.2 (a) with 2 −1 ≡ 6 mod 11, also the equation + 6 = 7 has no non-trivial solution in . By Remark 3.2 (b), this moreover solves the cases + 8 = 9 and + 4 = 5 . Again applying the observation from Remark 3.2 (a) to the latter two equations with 8 −1 ≡ 7 mod 11, respectively, 4 −1 ≡ 3 mod 11, also the equations + 7 = 8 and + 3 = 4 are covered.
Here, the digit 1 does not occur in the third position. So all triples can be removed, which implies that there is no non-trivial solution of + 2 = 3 in 3 .
Furthermore, the digits 2 and 4 do not occur in any triple in the first position, which leads to (8,13,9) as the only remaining triple. A single triple leads to the empty set. By Remark 3.2, this also solves the cases Only one representative of each class has to be considered.
The reduced row echelon form of is given by Now we look for non-zero rows of in which all entries are either non-negative or non-positive. The indices of these rows are given by 1 = {8, 12, 14, 15} (and are framed in green in the following matrix). Next, we delete all columns of in which any row with ∈ 1 has some non-zero entry (symbolized by red lines). This means that we eliminate the variable which corresponds to this column. As a result, the first reduction step looks like The rows for ∈ 1 are zero now. Next, we proceed the same way with the resulting smaller matrix on the right-hand side. The only non-negative, respectively, non-positive non-zero row in this matrix is row 13. So we delete the corresponding two columns, and again proceed with the smaller matrix, and so on. The full remaining reduction is given by where the last step trivially follows.
All other equations can be handled analogously. Only one representative of each of these classes has to be considered.
This concludes the proof of Theorem 1. □

NON-EQUIVALENT CAPS
Two caps are equivalent if there is an affine transformation from one cap to the other. In some cases, two caps in AG( , ) based on the above digit constructions but with different digit sets 1 and 2 are equivalent, while in other cases they are not. We briefly discuss this in the cases = 5 and = 11. If a digit set 1 ⊆ ℤ can be mapped by an affine transformation ( ) = + to another digit set 2 ⊆ ℤ , then the corresponding caps are equivalent.
A simple criterion to see that two digit sets are not equivalent is as follows: For a given digit set write the multiset of differences (including the gap from the largest digit to ). If the multiset of differences of two digit sets 1 and 2 contain different frequencies of differences, then the two digit sets are not equivalent.
Another criterion is that the order of gaps of the same frequencies must also be preserved: 4 = {0, 1, 2, 6, 7} is different from the earlier three digit sets, as 4 does not contain four elements in an arithmetic progression, which would be preserved by an affine map. We leave it to the reader to argue why 5 = {0, 1, 2, 6, 8} and 6 = {0, 1, 2, 8, 9} lead to further non-equivalent digit sets.
For larger primes, the number of admissible digit sets is typically much larger than the number ( − 1) of affine transformations of the digit sets. Hence, our digit-based constructions typically indicate the existence of many non-equivalent caps with the same number of points. (However, we do not formally prove these caps are non-equivalent.) In any case, this seems to be of interest even for those primes for which these caps are not larger than previously known ones.