Locally Recoverable Codes with Availability $t\geq 2$ from Fiber Products of Curves

We generalize the construction of locally recoverable codes on algebraic curves given by Barg, Tamo and Vl\u{a}du\c{t} to those with arbitrarily many recovery sets by exploiting the structure of fiber products of curves. Employing maximal curves, we create several new families of locally recoverable codes with multiple recovery sets, including codes with two recovery sets from the generalized Giulietti and Korchm\'{a}ros (GK) curves and the Suzuki curves, and new locally recoverable codes with many recovery sets based on the Hermitian curve, using a fiber product construction of van der Geer and van der Vlugt. In addition, we consider the relationship between local error recovery and global error correction as well as the availability required to locally recover any pattern of a fixed number of erasures.


Introduction
Codes for local recovery were introduced in the context of distributed storage systems, where there is a need to repair a single erasure or small number of erasures by accessing a few coordinates of the received word, rather than accessing the entire received word. A linear code is said to have locality r if for each coordinate i of a codeword, there is a set of r helper coordinates, called a recovery or helper set, so that in any codeword, the symbol in position i can be recovered from the symbols in the helper set.
If an element of a recovery set becomes unavailable, local recovery may not be possible. This leads to what is known as the availability problem and the need for multiple recovery sets. A code is said to have availability t if each coordinate has t disjoint recovery sets. In [4], the authors construct locally recoverable codes with availability t = 2 based on fiber products of curves and propose a group-theoretic perspective on the construction, whereby a curve can sometimes be expressed as a fiber product of its quotient curves by certain subgroups of the automorphism group of the curve; see [5] for an extended version. In particular, given a curve X with automorphism group Aut(X ) containing a semi-direct product of two subgroups, a locally recoverable code with availability 2 can be formed by considering the fixed fields of the function field of X of the subgroups in the semi-direct product. It is remarked that both perspectives can be extended in a straightforward way to provide multiple recovery sets, meaning t > 2.
In Section 3, we carry out the generalization of the fiber product approach for t ≥ 2. This also generalizes the group-theoretic perspective; however, we note that when t > 2, associativity of a particular semi-direct product is required. This issue does not arise in the case where t = 2, and, hence, is not addressed explicitly in [4]. See Remark 2 for more discussion.
A key difference in our work and that of [4] is that we employ a different method to bound the code parameters than in [4]. This results in new, potentially sharper bounds on minimum distance. The bounds in [4] require knowledge of the degree of a function x : X → P 1 where x generates a particular field extension. Practically, this function can be quite difficult to construct. Our bounds avoid the issue and do not require that this function is known. A more thorough discussion of this issue appears in Remark 3. We also consider properties of multiple local recovery sets such as the availability required to locally recover any pattern of a fixed number of erasures; this may be found in Section 4. There, the relationship between local error recovery and global error correction is investigated.
Sections 5, 6, and 7 demonstrate the 'top-down' (group-theoretic) and 'bottom-up' (fiber product-centered) approaches discussed in Section 3. In Section 5, we employ generalized GK curves in the fiber product construction. While the construction from GK curves is quite explicit, the recovery sets are unbalanced, meaning there is a large difference between the cardinalities of the two recovery sets associated with a particular coordinate; this may adversely impact other code parameters and may be less than optimal for applications. We illustrate the automorphism group perspective in Section 6, constructing theoretical codes on the Suzuki curve from its automorphism group that provide balanced recovery sets. However, this section highlights the difficulty of using the automorphism group construction to explicitly construct LRCs: even with knowledge of the quotient curves, constructing the necessary maps can be quite difficult. Finally, in Section 7, we obtain locally recoverable codes on the Hermitian curve H p t with availability t for arbitrarily large t ≥ 2, which are explicit in nature and balanced, using the full power of the LRC(t) construction. This differs from the recent work [3] which uses elliptic curves to construct LRC(2)s as well as surfaces and other curves to construct LRC(1)s.
The curves considered in this paper are maximal, meaning they have as many points as possible over a given finite field. Maximal curves have played an important role in the construction of algebraic geometry codes, as they support the construction of long codes over relatively small fields, with minimum distance bounded below based on geometric arguments. Their utility in the construction of locally recoverable codes comes from this as well. Though the constructions in this paper do not require the curves involved to be maximal, all examples in the paper are based on maximal curves.
Our findings are summarized in Section 8.

Notation and background
We use curves over finite fields and maps of curves to construct locally recoverable codes with multiple recovery sets. The following notation and background will be used throughout. See [14] and [12,Chapter 3] for more background and proofs.
Let p be a prime number, and let q = p s for some s ∈ N. Let F q be the field with q elements. For any natural number n, let [n] = {1, . . . , n}. A linear code C of length n over F q is a locally recoverable code, or LRC, with locality r if and only if for all c = (c 1 , c 2 , . . . c n ) ∈ C and for all i ∈ [n] there exists a set The idea is that the codeword symbol c i can be recovered from the symbols indexed by elements of A i without access to the other coordinates of the received word. The helper set A i is called a recovery set for the ith position.
We say that a locally recoverable code C ⊆ F n q has availability t with locality (r 1 , . . . , r t ) provided for Such a code is called an LRC(t), or a locally recoverable code with availability t, to emphasize that each coordinate has t disjoint recovery sets.
Let X be a smooth, projective, absolutely irreducible algebraic curve defined over F q , of genus g X . Let F q (X ) denote the field of functions on X defined over F q . For any i ∈ N, let X (F q i ) denote the set of F q i -rational points of X . A divisor D on X (F q ) is a formal integer sum of points on the curve, where a P ∈ Z for all P . Divisors on X (F q ) form a finite abelian group under formal addition. The degree of D is defined as deg(D) = P ∈X (Fq) a P . A divisor D with a P ≥ 0 for all P is said to be effective, denoted by D ≥ 0. The support of the divisor D is where ord P (f ) is the order of vanishing of f at the point P and is negative when f has a pole at point P . A divisor of a function is called a principal divisor. All principal divisors have degree 0, a very useful fact in bounding the minimum distance of the codes in this paper.
Given D, a divisor on X (F q ), define the Riemann-Roch space The set L(D) is an F q -vector space, with dimension denoted (D). The Riemann-Roch Theorem states that where equality holds if deg(D) ≥ 2g X − 1. This fact is useful in bounding the dimension of the codes in this paper.  Figure 1. A visualization of points on a fiber product of two curves. Points on the fiber product X may be thought of as tuples of points on the curves Y 1 and Y 2 which lie above the same point on Y.
The fiber product of curves is a geometric/combinatorial object that is at the center of the main code construction of this paper. Let Y, Y 1 , Y 2 , . . . , Y t be smooth projective absolutely irreducible algebraic curves over F q with rational, separable maps h j : and defined in the usual way as the universal object formed by the pullback of the maps h j . The fiber product of t curves is also an algebraic curve. Let Concretely, the F q -rational points of the fiber product X are given by See Figure 1 for a visualization when t = 2.
The fiber product construction defines natural projection maps g j : X → Y j . The degrees of the projection maps are given by . . . g Figure 2. The fiber product X of t curves Y j .
These maps have the property that h i • g i = h j • g j for all i, j, so let g : X → Y be the composite map, with deg(g) = deg(h j ). Thus, the diagram in Figure 2 commutes. Let i ∈ [t]. Define the curveỸ Denote the associated natural maps bỹ The degree ofg i must be equal to the degree of h i , denoted d hi .
The relationship of function fields in a fiber product is that F q (Y) naturally embeds into F q (Y i ) for each i, and F q (X ) is isomorphic to the compositum of all the fields F q (Y i ). In particular, fixing i, 1 ≤ i ≤ t, then g, h i , and g i give rise to maps One may consider g * , h * i and g * i as embeddings so that we have Since any finite, separable algebraic extension of function fields is generated by a primitive element, there exists some function Thus we may construct the following diagram of function fields for a fiber product as in Figure 3.

Construction of LRC(t)
Let Y, Y 1 , Y 2 , . . . , Y t be smooth, projective, absolutely irreducible algebraic curves over F q with rational, separable maps h j : Y j → Y, of degrees d hj and let X be the fiber product Y 1 × Y Y 2 × Y · · · × Y Y t . As in Section 2, we obtain a projection map g j : X → Y j of degree d gj for each j, 1 ≤ j ≤ t, and a rational, separable map g : X → Y of degree d g , so that the diagram in Figure 2 commutes.
For each j ∈ [t], let x j ∈ F q (Y j ) be a primitive element of F q (Y j )/h * j (F q (Y)) where x j is the root of a degree d hj polynomial with coefficients in g * j (F q (Y)). For convenience, denote g * j (x j ) ∈ F q (X ) by x * j . Let D j be the divisor of the function x * j ∈ F q (X ). Let D j = D j,+ − D j,− , where D j,+ and D j,− are both effective; that is, D j,+ = (x * j ) 0 is the zero divisor of x * j , and D j, consists of all points of Y which, for some i, are the image under h i of a point on Y i at which the function x i has a pole. Then choose D an effective divisor on Y(F q ) of degree deg(D) = l and S = {P 1 , . . . , P s } ⊂ Y(F q ) so that the following conditions are satisfied: . . , f m } be a basis for L(D), so m = (D). Note that since l < s, each non-zero function in L(D) will be non-zero when evaluated at some point in S. Then set Note that n = |B| = d g s. Order the points in B and denote them as The recovery set A ij defined in Section 2 can be obtained from A (j) (Q i ) as follows: This construction gives rise to the following theorem.
, a divisor D on Y(F q ), and sets S ⊂ Y(F q ) and B = g −1 (S) all as described above, where l = deg(D) ≤ |S| and the quantity d below is positive, the code Proof. The length of C(D, B) is given by definition. The minimum distance is bounded by considering the number of zeros that a function f ∈ V can have on the curve X . Note that where D has degree l, g −1 (D) has degree ld g , and g −1 j (D j,− ) has degree equal to d gj d xj . Thus the function f can have at most ld g + t j=1 (d hj − 2)d gj d xj poles on X (counted with multiplicity). As any principal divisor has degree 0, f may have at most this many zeros on X (counted with multiplicity). The dimension is as stated, because the evaluation map is injective for e i in the ranges described.
Next, we see how local recovery is achieved.
To use the jth recovery set to recover the value c i , consider that for some where a k , b k,e ∈ F q are constants depending on f . Rearranging the sum, where b ej , a ej ,k , b ej ,k,ẽ ∈ F q are new constants depending on f . Then By definition this is just Putting this together, Combining constants and redefining b ej appropriately, In this framework, c i can be seen as the evaluation at x * j (Q i ) of a polynomial in x: Then composing with Thus c r is the evaluation off at x = x * j (Q r ). Since it must be that there are no two points As observed in [4], applying the same construction with V ρ in place of V allows up to ρ erasures to be recovered by each recovery set, increasing the local distance of C(D, B). However, this also reduces the dimension of the code to m(d h1 − ρ)(d h2 − ρ) · · · (d ht − ρ), so this must be seen as a tradeoff between dimension and recovery. Throughout the rest of the paper, we use the maximal dimension construction from Theorem 3.1, but the modification above may be made to recover more erasures if desired.
and Y, as well as appropriate maps {h j } j∈[t] , Theorem 3.1 describes a code on the fiber product where knowledge of the parameters is built strictly on the understanding of these maps. This may be considered as a 'bottom-up' approach to building LRC(t)s. It is sometimes also possible to take a 'top-down' approach using the automorphism group of a curve X to create maps to quotient curves Y j . This approach is described in the following corollary.

Corollary 1.
Suppose that X is a curve such that Aut(X ) has subgroups T 1 , . . . , T t so that the subgroup generated by these groups is an associative semi-direct product within Aut(X ). Then Theorem 3.1 applies to give locally recoverable codes from X by taking the Y j to be the the associated quotient curves Y/T j and setting Y := X /(T 1 · · · T t ).
Remark 2. The semi-direct product must be associative so that the curve Y is well defined. For t > 2, the requirement that the semi-direct product is associative is far from trivial. Another difficulty with the 'top-down' approach of Corollary 1 is explicitly writing down equations for Y j , the functions x j , and the spaces L(D) when starting with a given model of X .
Remark 3. Our construction builds on that of [4,Theorem 5.2], where the authors construct LRC(2)s from fiber products and bound the parameters of the resulting codes. In addition to carrying out the generalization to LRC(t)s for t ≥ 2, the bounds in Theorem 3.1 differ in some key ways. First, [4, Theorem 5.2] relies on the parameter h, which is the degree (as a function to P 1 ) of a primitive element x generating the full extension F q (X )/g * (F q (Y)). This primitive element is not canonical. It is known that this primitive element can be generated as a linear combination of the primitive elements x * i of the extensions F q (Y i )/h * i (F q (Y)), but not every linear combination results in a primitive element. Also, the degree h may vary depending on the the primitive element chosen. The approach in Theorem 3.1 entirely avoids the issue of a primitive element for F q (X )/g * (F q (Y)) and relies only on the primitive elements for the intermediate extensions.
As mentioned in the Section 1, the curves considered in this paper are maximal. Precisely, this means their numbers of rational points meet the upper Hasse-Weil bound, so |C (F q ) | = q + 1 + 2g C √ q, where g C is the genus of the curve C. Maximal curves have played an important role in coding theory, especially in the construction of algebraic geometry codes, as they support the construction of long codes over relatively small fields, with minimum distance bounded below based on geometric arguments. Their utility in the construction of locally recoverable codes comes from this as well. Generally, if |X (F q )| is large, then the hope is that one can find appropriate map g : X → Y so that |B| is large. Focusing on the intermediate curves, if |Y j (F q )| is large for each j, and the maps h j have limited and aligned ramification, the set |B| can also be large. Moreover, some families of maximal curves (such as Hermitian and Suzuki) have large automorphism groups which may allow for more choices when constructing recovery sets (equivalently the maps g j : Y j → Y).
4. LRC(t) codes, erasure recovery, and error correction As described in Section 1, locally recoverable codes have been developed with the primary goal of facilitating convenient recovery of erasures, potentially created by server failure in distributed storage systems. The construction for C(D, B) described in Section 3 results in t disjoint recovery sets for each location. Since recovery sets are defined by fibers over points of the curvesỸ j , the position i is in the jth recovery set for the position k if and only if position k is in the jth recovery set for c i ; i.e., for all j ∈ [t], We say that such recovery sets are symmetric. Note that for each j ∈ [t] there exists some This section addresses two questions that arise from the recovery procedure for symmetric recovery sets. First, what benefit is provided by having a large number of recovery sets? Second, how does the number of recovery sets relate to minimum distance and global error correction?
First, we note that for erasure of a small fraction of locations in known positions, it can be much more efficient to use local recovery over global error correction, even if multiple local recovery sets are required. Consider a locally recoverable code C of length n and availability t with symmetric recovery sets. Say that erasures occur. For global error correction, we assume that all n − known locations must be consulted. In general, we see that if a code has locality t and symmetric recovery sets, then the fact that recovery sets are transverse implies that lcm {(r j + 1) : 1 ≤ j ≤ t} divides n. Let m t ( ) be the maximum number of positions that need to be consulted to recover erasures using local recovery. If there is a pattern of erasures that may not be locally recoverable by a code of availability t, then m t ( ) = ∞.
If only one position c P has been erased and C admits a single local recovery set of size r 1 for each position, then r 1 positions may be consulted to recover c P , and m 1 (1) ≤ r 1 . We may assume n = s(r 1 + 1) for some integer s > 1, so local recovery saves at least (s − 1)(r 1 + 1) consultations. Now consider the possibility that two positions c P and c Q were erased. If C has only one recovery set for each position and the recovery set of c P contains c Q (and vice versa, by symmetry), then c P and c Q are not recoverable using that recovery set. However, if C has availability 2, then C has two disjoint recovery sets for each position, and the fact that the first recovery set of c P contains c Q implies that the second recovery set does not (and similarly for c Q ). If C has locality (r 1 , r 2 ), then c P and c Q can both be recovered with at most r 1 + r 2 consultations. We have saved at least (s(r 1 + 1) − 2) − (r 1 + r 2 ) consultations.
Without loss of generality, assume r 1 = max 1≤j≤t {r j }. For a general code of availability t, assuming that t is sufficiently large to recover erasures, recovery will require at most recovery sets be consulted, resulting in a total number of m t ( ) ≤ r 1 consultations in local recovery, in comparison with at least s(r 1 + 1) − consultations for global error correction. This also assumes that the minimum distance of the code is sufficiently large to correct errors, which is not necessarily implied by the construction. Clearly, if s is close in size to , then there is little difference in the numbers of consultations required for local recovery and for error correction. However, our construction generally results in relatively large s. In all our examples, we have that t j=1 (r j + 1) divides n, so the savings are significant for moderate size .
In fact, the interplay between parameters becomes complicated as the number of potential failures grows. The following result demonstrates that more than two recovery sets become necessary rather quickly. Proposition 1. Let b( ) be the availability required for a locally recoverable code C with symmetric recovery sets to be capable of locally recovering any pattern of erasures. Then Proof. It is not difficult to see that b(1) = 1 and b(2) = 2 based on the situations described above. To see that b(3) = 2, assume without loss of generality that positions 1, 2, and 3 have been erased. Availability t = 1 is clearly not sufficient, because it could be that B 11 = B 21 = B 31 , in which case no A i1 is complete. However, t = 2 is sufficient; if B 11 = B 21 = B 31 , then since distinct recovery sets for a fixed position are disjoint. Thus, position 1 may be recovered from the recovery set A 12 , leaving two erased positions, which can be recovered with two recovery sets since b(2) = 2. If B 11 = B 21 but B 11 = B 31 , then position 2 can be recovered from A 21 , again leaving two erased positions and two recovery sets.
To see that b(4) > 3, consider the following scenario. WLOG, assume that positions 1, 2, 3, and 4 have been erased, and suppose that: Clearly, none of the three recovery sets can be used to recover any of the erased positions. Therefore b(4) > 3.
Note that the recovery procedure and all discussion to this point assumes that the positions of the erased locations are known. This is not the case in general error correction, so a code that is capable of restoring erasures may not be capable of correcting global errors. Minimum distance bounds give some indication of the global error correction capability of the code. The minimum distance bounds in Theorem 3.1 are based on the divisors of certain functions. For theoretical purposes, however, we would like to bound the minimum distance without explicitly constructing the given field extensions as in Section 3. More generally, one might wish to know if an LRC(t) is actually an error-correcting code, regardless of its construction. It is interesting to consider how the presence of recovery sets influences the potential error-correcting capability of a locally recoverable code, independent of how the code itself is defined. With this in mind, some very modest bounds on minimum distance can be derived by considering that, by construction, there exists an algorithm for correcting a certain number of erasures.
Proposition 2. Let C be a locally recoverable code of availability t with symmetric recovery sets and minimum distance d. Then Proof. Suppose that t = 1. Assume a codeword c has one error, in position i, resulting in the word c . Consider an experiment in which a single position is intentionally erased and is locally recovered using the recovery set for the position. If there were no errors, any position could be erased and correctly recovered from its recovery set. However, if c i is erased, the recovered word will be different than c , meaning that there must be an error in B i1 . Checking all positions using this procedure, one may detect any single error in c, so the minimum distance of C is at least 2. Figure 4. Generalized GK curve as a fiber product.
Suppose that t = 2. Assume a codeword c has one error, in position i, resulting in the word c . Consider an experiment in which a single position is intentionally erased, and is then locally recovered from each of its two disjoint recovery sets. Again, if there were no errors, any position could be erased and correctly recovered from either of its two recovery sets. However, if c i is erased, the words recovered using A i1 and A i2 will both be different from c , meaning that there must be an error in B i1 and in B i2 . Since there is only one error in c , the single error must be at the intersection of B i1 and B i2 , namely at position i. Once the position of the error is known, it may be erased and correctly recovered using either of the two recovery sets. Moreover, none of the other positions will register errors from both of their recovery sets, so position i can be uniquely identified.

LRC(2)s on generalized Giulietti-Korchmaros curves
Let q = p h for p a prime, and let N ≥ 3 be an odd natural number. We consider the family of generalized Giulietti-Korchmaros (GK) curves C N , which are maximal over the field F q 2N [7,10]. The curve C N is the normalization of the intersection of two surfaces H q and X N in P 3 , defined by the following affine equations: The intersection of these surfaces has a single point at infinity, denoted by ∞, which is a cusp singularity for N > 3 and is smooth when N = 3. The curve is smooth elsewhere. The number of F q 2N -rational points on C N is The curve C N can also be defined as the normalized fiber product over P 1 of the two curves in P 2 given by the same equations. As curves, both H q and X N are maximal over the field F q 2N [1], each with a single point at infinity, denoted by ∞ Hq and ∞ X N respectively. Let ∞ y denote the single point at infinity on P 1 y . Define h 1 : X N → P 1 y to be the natural degree q N +1 q+1 projection map onto the y coordinate for affine points, with ∞ X N → ∞ y . Similarly, let h 2 : H q → P 1 y be the natural degree q projection map onto the y coordinate for affine points, with ∞ Hq → ∞ y . We then have the fiber product construction depicted in Figure 4.
Then C N = X N × H q , the normalization of the fiber product described above. The map g : C N → P 1 y has degree d g := q(q N +1) q+1 and is ramified above ∞ y and a y with a ∈ F q 2 , where a y denotes the point on P 1 y with y = a [7,10]. Notice that d g1 = d h2 = q and d g2 = d h1 = q N +1 q+1 . To construct an LRC(2), we use the commutative diagram in Figure 4 and the construction detailed in Section 3. The degree of the function x : H q → P 1 is d x = q + 1. The degree of the function z : X N → P 1 is d z = q 2 . We take the divisor Q to be ∞ y and choose a parameter l so that D = l∞ y .
Theorem 5.1. The locally recoverable code C(l∞ y , B) constructed from the generalized GK curve C N as described above is an [n, k, d] code over F q 2N with availability 2 and locality q − 1, q N +1 q+1 − 1 where and l is any positive integer yielding 0 < k < n, l < q N +2 + q N +1 − q − 1, and d > 0.
Proof. The set B of evaluation points consists of points on the curve C N that are not above ramification points in the ground curve, P 1 y , over the field F q 2N . This means we let S = g(B). Since |g −1 ({∞ y , a y : a ∈ F q 2 })| = q 3 + 1, we calculate the size of the evaluation set B: Let D = l∞ y . Since the genus of Y = P 1 is 0, we know by the Riemann-Roch Theorem that (D) = l + 1, and we can realize these functions as polynomials in y of degree bounded by l. The set of evaluation functions for the code is denoted by V , where Then, by Theorem 3.1, we obtain a code with the claimed attributes.
Remark 4. As discussed in [10], the curves X N and H q are quotient curves of C N , and in this case the automorphism group construction in Corollary 1 could be applied, yielding the same codes.
Given the choice of l, we can construct codes with rate close to one, where the tradeoff is low minimum distance: where for maximal l and increasing N we have lim N →∞ R N,l = 1.

Example 1.
Taking N = 3, we consider codes from the curves C 3 over the field F q 6 . We obtain blocklength |B| = q 3 (q − 1)(q 2 − q + 1)(q + 1) 2 = q 8 − q 6 + q 5 − q 3 , as above, and the following bounds on the dimension and minimum distance: In Table 1, we consider q = 3 and provide bounds on the code parameters for different values of l.
In this section, we employed generalized GK curves to obtain LRC(2)s over F q 2N with recovery sets of sizes q − 1 and q N +1 q+1 − 1. While this addresses the availability problem, it leads to recovery sets of very different sizes if N > 2. In the next section, we construct LRC(2)s with recovery sets which are more balanced in size.  270 3252 215  260 3132 425  250 3012 635  240 2892 845  230 2772 1055  220 2652 1265  210 2532 1475  Table 1. The generalized GK curves C 3 over F 729 produce LRC(2)s of length n = 6048, with N = 3, q = 3, r 1 = 6, r 2 = 2, and D = l∞ y , with l determining k and d as above.

LRC(2)s on Suzuki curves
Let a ∈ N, q 0 = 2 a , and q = 2q 2 0 . The Suzuki group Sz(q) can be realized as a subgroup of GL 4 (q) as follows. Let a, c, d ∈ F q , d = 0, and define Let T = {T a,c : a, c ∈ F q } and M = {M d : d ∈ F * q }. Then Sz(q) = M, T, W . The Suzuki curve S q is the Deligne-Lusztig curve with automorphism group Sz(q). The curve S q has a singlular model in P 2 with affine equation The genus of S q is q 0 (q − 1) and it has q 2 + 1 points over F q , making it optimal over the field. Over F q 4 , S q is maximal, attaining the upper Weil bound [11]. Smooth models for S q in higher-dimensional spaces have been determined [2,6]. As in [9], a convenient model in P 4 can be defined by the affine equations y q + y = x q0 (x q + x), z = x 2q0+1 + y 2q0 , and w = xy 2q0 + z 2q+1 . Let [U : X : Y : Z : W ] be a set of projective coordinates for P 4 , where for all U = 0 we have affine coordinates given by For any (x, y) ∈ F 2 q satisfying y q + y = x q0 (x q + x), let P (x,y) denote the point [1 : x : y : z : w] ∈ S q (F q ). Let P ∞ = [0 : 0 : 0 : 0 : 1] ∈ S q (F q ).
Let Y 2 = S q /M . By [9,Theorem 4.1], the natural map g 2 : S q → Y 2 is degree q − 1 and fully ramified below two points, P (1,0) and P ∞ ∈ S 2 (F q ). Then Y 2 has genus q 0 and has an affine model as given in [9].
Let Y = S q /G. Since Y 1 covers Y, it must be that Y has genus 0 as well. Let g : S q → Y be the accompanying natural map. We then have the diagram of curves as shown in Figure 5.
In Case (1) In the construction from Theorem 3.1, we may choose l = 0, so L(D) is simply the set of constant functions on Y, giving (D) = 1 and yielding the stated dimension.

Remark 5.
In both Case (1) and Case (2), the bound on the minimum distance from Theorem 3.1 applies. However, without explicit generators for the given function field extensions, one cannot determine the degrees of the functions x i to give an explicit bound on d. Hence, some work around is required. Therefore we use the very modest bound from Proposition 2 to guarantee d ≥ 3 in both cases. This illustrates a drawback of the 'top-down' construction presented in Corollary 1 in that while the codes C(D, B) might have reasonable classical parameters n, k, and d, one might not have access to the information needed to provide a good estimate of the minimum distance d.

Remark 6.
There is no benefit to considering the code defined over F q 2 because |S m (F q 2 )| = |S m (F q )|. The field F q 4 is a good choice for increasing length and dimension of the code because, as mentioned above, S m is maximal over this field.
In this section, we used Suzuki curves to determine LRC(2)s with recovery sets which are more balanced in size than those constructed in Section 5. However, the quotient curve construction does not naturally provide explicit expressions for the bases of functions. In this case, equations and explicit realizations of their function fields are known for the quotient curves [9]. However, the necessary functions x 1 and x 2 that generate the function fields of the quotient curves are unknown, even for this very well-studied curve. This is a larger issue with the quotient curve construction-knowledge of the top curve and the existence, genera, and even models of the quotient curves does not give full information about the functions that generate the associated function field extensions, and their degrees as maps to P 1 . Hence, even given a curve X with many points and a large automorphism group, it can be difficult to generate useful codes from the quotients, and, as . . . Figure 6. Curves for locally recoverable codes with availability t mentioned in Section 3, extending this construction to more than two subgroups of Aut(X ) faces additional obstacles. This motivates us to seek good general examples for LRC(t)s from fiber product constructions.
In the next section, we consider a general fiber product construction that is both explicit and gives rise to balanced recovery sets. Moreover, it naturally leads to even more recovery sets for each position.

LRCs with multiple recovery sets from fiber products of Artin-Schreier curves
In [15], van der Geer and van der Vlugt develop several constructions of fiber products of Artin-Schreier curves with many points. In particular, they construct maximal curves via the fiber product of several smaller genus maximal curves, in both characteristic 2 and odd characteristic. These constructions are a very natural source of curves for locally recoverable codes with many recovery sets.
The simplest of these constructions is given in [15, Section 3, Method I]. Let p be prime, 2h an even natural number, and q = p 2h ; [15] also gives a similar construction odd powers of p. Let A = {a ∈ F q : a p h + a = 0}. As the kernel of the F p -linear trace map F q /F √ q , A is an h-dimensional F p vector space. Let {a 1 , a 2 , . . . , a h } generate A over F p . Then the curves √ q 2 and have pq + 1 points over F q , with one point ∞ Ya i at infinity. Let t be an integer with 1 ≤ t ≤ h. Then consider the natural map h i : Y ai → P 1 x given by projection onto the x coordinate, where ∞ x represents the point at infinity on the projective line P 1 x and ∞ Ya i → ∞ x . These are all degree-p Artin-Schreier covers of P 1 x , fully ramified above ∞ x . Define X to be the fiber product of these curves Y ai over P 1 x ; i.e., X = Y a1 × P 1 x Y a2 × P 1 x · · · × P 1 x Y at . The corresponding maps g i : X → Y ai are degree p t−1 , ramified only above ∞ Ya i . Let ∞ X be the single point above ∞ Ya i on X .
The divisor D in question is D = (q − tp t )∞ x , meaning L(D) is the set of polynomials in x over F q of degree ≤ q − tp t . Then functions leading to codewords are V = Span{x j y e1 1 y e2 2 . . . y et t : 0 ≤ j ≤ q − tp t , 0 ≤ e i ≤ p − 2}. Let P i = (α, β 1 , β 2 , . . . , β t ) ∈ B. Then, returning to the notation of Section 4, we have B ij is the set of positions corresponding to the points in {(α, y 1 , y 2 , . . . , y t ) ∈ B : y k = β k ∀ k = j}. We then have |B ij | = p.
On points corresponding to the positions in B ij , any function in V varies as a polynomial in y j of degree at most (p − 2) and can therefore be interpolated by knowing its values on any p − 1 points.
Theorem 7.1. The code C ((q − tp t )∞ x , B) constructed from the fiber product X of the Artin-Schreier curves above is a locally recoverable [n, k, d] code over F q with availability t and locality (p − 1, p − 1, . . . , p − 1) where n = p t q, k = (q − tp t + 1)(p − 1) t , and d ≥ 2tp t .
Proof. The construction in Theorem 3.1 gives rise to a code of length n = p t q, where B = X (F q ) \ {∞ X }. The set S = g(B) has size s = q. To achieve positive minimum distance, we then take l = q − tp, where g X = 0 so m = q − tp + 1, giving a code of dimension k = (q − tp + 1)(p − 1) t . Each coordinate has t disjoint recovery sets of size (p − 1), given by the fibersg −1 j (P ) for P ∈X aj where 1 ≤ j ≤ t. The minimum distance is bounded by d ≥ n − p t (q − tp) − t(p − 2)p t = 2tp t .

Remark 7.
Though it does not seem to have been remarked before, it is straightforward to see that when t = h, then the curve X has genus ( √ q−1) √ q 2 and is maximal over F q . Since the Hermitian curve H √ q is the only curve of this genus maximal over F q [13], we have that X ∼ = H √ q . Therefore the construction in Theorem 7.1 is yet another example of a code on the Hermitian curve with interesting properties.
Example 2. We construct a locally recoverable code with three recovery sets of size two for each position. Consider the field As the construction indicates, we need roots of the polynomial x 27 + x that generate a 3-dimensional vector space over F 3 . We choose the following roots: 2a 3 + a + 1 = a 350 := a 1 a 4 + a 2 + 1 = a 210 := a 2 2a 5 + a 3 + a 2 + 1 = a 490 := a 3 . Now the components of the fiber product are the curves Y a1 , Y a2 , Y a3 , given below: y 3 + y = a 350 x 28 y 3 + y = a 210 x 28 y 3 + y = a 490 x 28 .
The code has length n = 19683, dimension k = 5192, and minimum distance d ≥ 162.

Conclusion
In this paper, we detailed a construction of locally recoverable codes from fiber products of algebraic curves, building on the work of Barg et. al. [4]. This construction results in different bounds (from those in [4]) for minimum distance in the case t = 2 and allows for t > 2 recovery sets. This gives rise to several new families of locally recoverable codes, specifically those from generalized Giulietti and Korchmáros (GK) curves, Suzuki curves, and the maximal curves of van der Geer and van der Vlugt, including an LRC(t) from the Hermitian curve H p t . The code construction from generalized GK curves is explicit, but the recovery sets have vastly different cardinalities (an advantage or disadvantage, depending on the perspective taken). In contrast, the codes from the Suzuki curves provide balanced recovery sets, but the codes themselves are not easily explicitly constructed. The construction using the curves of van der Geer and van der Vlugt provides both explicit code construction and balanced recovery sets, of which arbitrarily many are available.