1 Introduction

We assume some basic familiarity with combinatorial designs and algebraic coding theory (cf. e.g. [2, 4, 24]).

Let V be a set of v points and \(\mathcal{B}\) be a collection of k-subsets of V called blocks. The pair \(\mathcal{D}=(V,\mathcal{B})\) is a t-\((v,k,\lambda )\) design if every t-subset of V is contained in exactly \(\lambda\) blocks. The number of blocks of a t-\((v,k,\lambda )\) design \(\mathcal{D}=(V,\mathcal{B})\) is equal to \(b=|\mathcal{B}|\)=\(\lambda \left( {\begin{array}{c}v\\ t\end{array}}\right) / \left( {\begin{array}{c}k\\ t\end{array}}\right)\), and every point of V appears in \(r = \lambda \left( {\begin{array}{c}v - 1\\ t - 1\end{array}}\right) / \left( {\begin{array}{c}k - 1\\ t - 1\end{array}}\right)\) blocks. The number r is called the replication number of \(\mathcal{D}\). An isomorphism between two designs \({\mathcal{D}}'\), \({\mathcal{D}}''\) is a bijection \(\phi\) between their point sets that maps every block of \({\mathcal{D}}'\) to a block of \({\mathcal{D}}''\). An automorphism of a design \({\mathcal{D}}\) is any isomorphism of \({\mathcal{D}}\) to itself. The set of all automorphisms of a design \(\mathcal{D}\) is a permutation group called the automorphism group of \(\mathcal{D}\).

The incidence matrix \(A=( a_{i,j})\) of a design \(\mathcal{D}\) is a \(b\times v\) (0, 1)-matrix with rows indexed by the blocks and columns indexed by the points, where \(a_{i,j}=1\) if the ith block contains the jth point, and \(a_{i,j}=0\) otherwise.

If p is a prime number, the p-rank of a design is the rank of its incidence matrix A over the finite field \(\mathbb {F}_p\). A trivial upper bound on the p-rank of a design with \(k\equiv 0 \pmod p\) is \(v-1\). A design has low rank if its p-rank is strictly smaller than \(v-1\). The p-rank of a 2-\((v,k,\lambda )\) design with \(v>k>0\) can be smaller than \(v-1\) only if p divides \(r-\lambda\) [10, 24, Thm. 1.86]. The code of a design over \(\mathbb {F}_p\) is the linear code spanned by the rows of its incidence matrix. If C is the code of a 2-\((v,k,\lambda )\) design then the dual code \(C^\perp\) admits a majority logic decoding algorithm that can correct up to \([(r+\lambda -1)/(2\lambda )]\) errors (Rudolph [22], Ng [20]). This application motivates the interest in designs having low p-rank.

All codes in this paper are binary. Two codes \(L'\), \(L''\) that have the same length and dimension are equivalent if there is a permutation \(\phi\) of the n code coordinates that maps every codeword of \(L'\) to a codeword of \(L''\). An automorphism of a code L is any isomorphism of L to itself. Clearly, the codes of isomorphic designs are equivalent.

A unital in a projective plane \(\Pi\) of order \(q^2\) is a set U of \(q^3 +1\) points that intersects every line in either one or \(q+1\) points. The classical example is the Hermitian unital H(q), being the set of absolute points of a unitary polarity in \(PG(2,q^2)\). The line intersections with U of size \(q+1\) are the blocks of a 2-\((q^3 +1, q+1,1)\) design. More generally, any design with parameters 2-\((q^3 +1,q+1,1)\) is called a unital design, or unital for short, regardless of whether it arises from a projective plane of order \(q^2\) or not. An infinite class of unital designs with \(q=3^{2m+1}\) was found by Lüneburg [16] as designs invariant under the Ree groups of type \((G_2)\). Lüneburg proved that none of his unital designs can be embedded into a projective plane of order \(3^{4m+2}\) which is invariant under the corresponding Ree group.

A unital design with \(q=1\) is a trivial 2-(2, 2, 1) design consisting of a single block of size 2. A unital design with \(q=2\) is unique up to isomorphism, being the 2-(9, 3, 1) design of the points and lines of the affine plane of order 3, which also arises from a unitary polarity in the projective plane of order 4.

The unital designs for \(q=3\), namely the 2-(28, 4, 1) designs, have not been classified completely. The unitals in the four projective planes of order 9 were classified by Penttila and Royle [21]: up to isomorphism, there are two unitals in PG(2, 9), four unitals in the Hall plane and its dual plane, and eight unitals in the Hughes plane. The 2-(28, 4, 1) designs with nontrivial automorphisms were classified by Krčadinac [14]: there are 4466 such designs. In [3] Betten, Betten, and Tonchev used codes to classify all unitals containing a special spread and found that there are 909 such designs, 187 of which have a trivial automorphism group. In [12], Kaski and Östergård classified all resolvable 2-(28, 4, 1) designs: there are seven such designs. A blocking set in a design is a subset of the point set that intersects every block in at least one point, but does not contain any block. In [1], Al-Azemi, A. Betten and D. Betten classified all unital 2-(28, 4, 1) designs with blocking sets and showed that there are 68,806 such designs, 68,484 of which have a trivial automorphism group. In [19] Mezőfi and Nagy introduced a new technique called paramodification to construct new designs from known ones and found 173 new 2-(28, 4, 1) designs.

For the rest of the paper, we will focus on the case \(q=3\) and we will use the term unital synonymously for a 2-(28, 4, 1) design. Since \(r=9, \lambda =1\) and \(r-\lambda =8 = 2^3\), the p-rank of a 2-(28, 4, 1) design can be smaller than 27 only if \(p=2\), and we will write rank instead of 2-rank.

Another way to classify 2-(28, 4, 1) designs is according to their rank. In 1981, Brouwer [7] computed the ranks and the binary codes of the classical Hermitian unital that has rank 21, the unital found by Lüneburg which Brouwer called the Ree unital and has 2-rank 19, and 136 other unitals found by computer, with ranks ranging from 21 to 27.

In [18] McGuire, Tonchev, and Ward proved that the rank of a unital on 28 points is greater than or equal to 19, with equality achieved by the Ree unital only.

Although the unique 2-(28, 4, 1) design of rank 19 is not embeddable in any of the projective planes of order 9, this design has a nice geometric interpretation, namely, it is isomorphic to a design associated with a maximal arc of degree 4 in the projective plane of order 8. Recall that a maximal arc of degree d in a projective plane \(\Pi\) of order \(q=sd\) is a set \({\mathcal {A}}\) of \((s(d-1)+1)d\) points, such that every line is either disjoint from \({\mathcal {A}}\) or intersects \({\mathcal {A}}\) in exactly d points. If \(d>1\), the non-empty intersections of lines of \(\Pi\) with \({{\mathcal {A}}}\) are the blocks of a 2-\(((s(d-1)+1)d,d,1)\) design. The set of lines of \({\mathcal {P}}\) which have no points in common with \({\mathcal {A}}\) determine a maximal arc of degree s in the dual plane \(\Pi ^\perp\), called the dual arc \({{\mathcal {A}}}^\perp\). A hyperoval is a maximal arc of degree 2. In particular, if \({\mathcal {A}}\) is a hyperoval in the projective plane of order 8, then the dual arc \({\mathcal {A}}^\perp\) is a maximal arc of degree 4 that determines a 2-(28, 4, 1) design having 2-rank 19. This design is a member of an infinite class of 2-\((2^{2t-1} -2^{t-1}, 2^{t-1},1)\) designs associated with dual arcs of hyperovals in the Desarguesian plane of order \(2^t\), \(PG(2,2^t)\). It was proved by Mackenzie [17] that the 2-rank of any such design is greater than or equal to \(3^t - 2^t\), and Carpenter [8] proved that the 2-rank is equal to \(3^t -2^t\) if the related hyperoval is regular. It is conjectured that the 2-rank of every maximal arc of degree \(2^{t-1}\) in \(PG(2,2^t)\) is equal to \(3^t - 2^t\) [26].

In [11] Jaffe and Tonchev proved that there are no unitals of rank 20, and classified the unitals of rank 21. There are exactly four nonisomorphic unitals of rank 21. One of these unitals is the Hermitian unital H(3) with a full automorphism group of order 12,096, while the remaining three unitals have automorphism groups of order 192, 24, and 6, respectively. The four binary codes of dimension 21 of the four unitals of rank 21 are pairwise inequivalent.

In this paper, we report the classification of unitals of ranks 22, 23, and 24. There are 12 isomorphism classes of unitals of 2-rank 22, 78 isomorphism classes of unitals of 2-rank 23, four of which have a trivial automorphism group, and 298 isomorphism classes of unitals of 2-rank 24, 38 of which have a trivial automorphism group.

2 Classification method

Our classification method extends the work of Jaffe and Tonchev [11], but we used different software tools. An abstract description of the classification is given in Algorithm 1, where C denotes the binary \([28,{{\,\mathrm{rk}\,}}]\) code of a 2-(28, 4, 1) design of rank \({{\,\mathrm{rk}\,}}\), and d is the minimum weight of the dual code \(C^\perp\).

Algorithm 1

Input: A fixed rank \({{\,\mathrm{rk}\,}}\ge 19\).

Output: All non-isomorphic 2-(28, 4, 1) designs of rank \(\le {{\,\mathrm{rk}\,}}\).

  1. 1.

    Classify the binary linear \([28, 28-{{\,\mathrm{rk}\,}}, d\ge 10]\) codes \(C^\perp\) that meet all known restrictions.

  2. 2.

    For each code \(C^\perp\) from 1) do:

    1. a.

      Compute the set of all codewords of C of weight 4.

    2. b.

      Enumerate all unitals having incidence matrices with rows being codewords of C of weight 4.

    3. c.

      Classify the unitals obtained from C up to isomorphism.

  3. 3.

    Classify the unitals obtained from all codes obtained in 1).

Remark

We applied Algorithm 1 successively for \({{\,\mathrm{rk}\,}}=22, 23, 24\) and compared the outcome of each rank with the previous results on smaller ranks. The check if the determined numbers of unitals of rank \(< {{\,\mathrm{rk}\,}}\) are confirmed by known results is a necessary condition for the computer programs to be correct.

2.1 Code restrictions

A binary code is even if all codewords have even weight, and doubly-even if all codewords are of weight divisible by 4. An [nkd] code C is a linear code of length n, dimension k, and minimum weight d. The dual code \(C^\perp\) of an [nkd] code is the linear code of length n and dimension \(n-k\) consisting of all vectors that are orthogonal to every codeword of C. A code C is self-orthogonal if \(C\subseteq C^\perp\). A linear binary code is self-complementary if it contains the all-one vector. It was pointed out by Brouwer [7] that every codeword of weight 12 in the dual code of the binary code of any unital U on 28 points is the sum of the incidence vectors of three pairwise disjoint blocks of U.

The binary codes of 2-(28, 4, 1) designs have been studied in [7, 11, 18]. Here, we summarize the properties of such codes that we used in the computation.

Lemma 1

([11], Lemma 2.2)

  1. 1.

    The binary code C of a unital of 2-rank \({{\,\mathrm{rk}\,}}\) is an even self-complementary \([28, {{\,\mathrm{rk}\,}}]\) code.

  2. 2.

    Its dual code \(C^\perp\) is an even self-complementary \([28, 28-{{\,\mathrm{rk}\,}},d\ge 10]\) code.

  3. 3.

    The codewords of weight divisible by 4 form a doubly-even self-complementary [28, t, 12] code for some \(t\le 28-{{\,\mathrm{rk}\,}}\).

In order to determine the possible values of t the following result can be used.

Lemma 2

([11, Lemma 2.4]) Let C be an even binary linear [nk] code and D be the subset of codewords of weight divisible by 4 of C. If t denotes the maximum dimension of a doubly-even subcode in \(C^\perp\), then

$$\begin{aligned} |D| \in \{2^{k-1} - 2^t, 2^{k-1}, 2^{k+1}+2^{t-1} \}\,. \end{aligned}$$
(1)

Statement 3 of Lemmas 1 and 2 imply the following.

Corollary 1

If C is the binary code of a 2-(28, 4, 1) design then D is a doubly-even subcode of \(C^\perp\) of dimension smaller than or equal to t. This implies that \(2^t\) is one of the numbers in (1).

3 The computation

3.1 Unitals of rank 22

The code C of a 2-(28, 4, 1) design of rank 22 is a linear binary code of dimension 22 and its dual code \(C^\perp\) has dimension 6. It follows from Corollary 1 that the dimension of the self-complementary doubly-even subcode of \(C^\perp\) is greater than or equal to 4.

We classified the self-complementary doubly even [28, 4, 12] codes with the algorithm described in [6], using the software tools solvediophant by the second author [28, 29] and codecan by Feulner [9]. There are four equivalence classes of such codes.

These four codes can be extended to 128 self-complementary even \([28, 5, d\ge 10]\) codes. This was done with an algorithm similar to the one described in [5, 15] but with a less sophisticated approach to suppress the generation of isomorphic copies. Again, solvediophant and codecan were used. The 128 self-complementary even \([28, 5, d\ge 10]\) codes were extended to \(15\,007\) self-complementary even \([28, 6, d\ge 10]\) codes.

For each of these codes, the set of all codewords of weight 4 was constructed and tested if it contains unitals. Clearly, the incidence matrix of any unital consists of 63 codewords of weight 4 that form a constant weight code with minimum distance 6. Using the exact cover solver dlx by Knuth [13], it turns out that there are \(661\,504\) unitals that arise from 124 codes, and these unitals fall into 17 isomorphism classes. For the latter computation, the GAP design package by Soicher [23] was used.

The 17 isomorphism classes consist of one unital of rank 19, four unitals of rank 21, and 12 unitals of rank 22, confirming the results of [11, 18]. The 12 unitals of rank 22 all have nontrivial automorphisms and therefore appear already in [14].

The 12 unitals of rank 22 span ten inequivalent codes of dimension 22: nine codes contain a single isomorphism class of unitals of 2-rank 22, and one code contains three isomorphism classes of unitals of 2-rank 22. The distribution of unitals among the ten codes according to their rank and automorphism group order is given in Table 1, where the second column contains the order of the automorphism group and 2-rank of the unitals contained in the code. The entry \((48,22)^2\) in the last row of Table 1 indicates that the code contains two isomorphism classes of unitals of rank 22 having full automorphism group of order 48.

As a check of correctness, we computed the codes of all 17 unitals and searched for all unitals contained in these codes. The GAP design package reduced the list of unitals to the same set of 17 unitals.

Table 1 The codes of unitals of rank 22

3.2 Unitals of rank 23

The code C of a 2-(28, 4, 1) design of rank 23 is a linear binary code of dimension 23 and its dual code \(C^\perp\) has dimension 5.

It follows from Corollary 1 that the self-complementary doubly-even subcode of \(C^\perp\) has dimension 3.

Using the same approach as in the rank 22 case, we found that there are exactly two inequivalent self-complementary doubly-even [28, 3, 12] codes. The extension steps to determine all self-complementary even \([28, 5, d\ge 10]\) codes give 34 self-complementary even \([28, 4, d\ge 10]\) codes and 880 self-complementary even \([28, 5, d\ge 10]\) codes.

In contrast with the rank 22 case, a straightforward application of dlx for the search of unitals in the sets of codewords of weight 4 was not feasible for the codes of dimension 23, because the resulting exact cover problems were too time consuming. Instead, we first classified all derived 1-(27, 3, 1) designs with respect to point 28 under the stabilizer of the automorphism group of the code. In other words, all feasible, non-isomorphic combinations of 9 blocks through point 28 were enumerated, and each of these 9-block-configurations was extended to unitals using dlx.

Among the 880 [28, 23] codes, 126 codes contain together \(16\,911\) unitals which fall into 95 isomorphism classes. The set of 95 nonisomorphic unitals consists of one unital of rank 19, four unitals of rank 21, 12 unitals of rank 22, and 78 unitals of rank 23. Again, the results of [11, 18] and of the rank 22 case are confirmed. Among the 78 unitals of rank 23, there are exactly four unitals with trivial automorphism group.

The 78 unitals of rank 23 span 30 inequivalent [28, 23] codes, see Table 2, where an entry (ab) denotes a unital of rank b with a full automorphism group of order a, and \((a,b)^s\) denotes s nonisomorphic unitals of rank b with a full automorphism group of order a.

Table 2 The codes of unitals of rank 23

3.3 Unitals of rank 24

The code C of a 2-(28, 4, 1) design of rank 24 is a linear binary code of dimension 24 and its dual code \(C^\perp\) has dimension 4.

It follows from Corollary 1 that the self-complementary doubly-even subcode of \(C^\perp\) has dimension 2. It is easy to see that, up to equivalence, there is only one such code, and this code can be extended to nine self-complementary even \([28, 3, d\ge 10]\) codes and 82 self-complementary even \([28, 4, d\ge 10]\) codes.

The straightforward enumeration of unitals in the sets of codewords of weight 4 as in the rank 22 case was not possible here, and even the approach of the rank 23 case was too time consuming. In order to reduce the enumeration time even further, for each code we determined a transversal of all block orbits containing point 28 under the stabilizer of 28 of the automorphism group of the code, i.e. all possibilities were determined to fix one block. For each of these blocks, all 1-(27, 3, 1) designs that contain that block were enumerated, and all possibilities to fix nine blocks were classified. Finally, each of these sets of nine blocks is extended to unitals.

Among the 82 codes, 39 codes contain \(7\,663\,704\) unitals (with the appropriate 9-block-configurations) which fall into 393 isomorphism classes.

Again, the results of [11, 18] and the rank 22 and rank 23 cases were confirmed, leaving 298 unitals of rank 24. It turns out that 38 unitals of rank 24 have a trivial automorphism group. The 298 unitals of rank 24 span 31 inequivalent codes, see Table 3.

Table 3 The codes of unitals of rank 24

In all cases, computations involving groups were done with GAP [25]. The complete list of unitals up to rank 24 can be downloaded from [27].

4 Summary

The set of all pairwise nonisomorphic 2-(28, 4, 1) designs of 2-rank up to 24 consists of

  • the unital of rank 19 associated with a maximal arc of degree 4 in PG(2, 8);

  • four unitals of rank 21 (all non-rigid);

  • 12 unitals of rank 22 (all non-rigid);

  • 78 unitals of rank 23 (four rigid, 74 non-rigid);

  • 298 unitals of rank 24 (38 rigid, 260 non-rigid).

The distribution of the unitals according to their rank and order of the automorphism group is given Table 4. The numbers of unitals with non-trivial automorphism groups coincide with the results of Krčadinac [14], and that gives further confidence in the correctness of the computations.

The enumeration of unitals of rank 25 and 26, as well as a full classification seems to be still out of reach with the approach described in this paper.

Table 4 Distribution of unitals according to their rank and group order