ISSN 2148-838Xhttps://doi.org/10.13069/jacodesmath.858732 J. Algebra Comb. Discrete Appl. 8(1) • 31–39 Received: 16 February 2020 Accepted: 13 September 2020 Journal of Algebra Combinatorics Discrete Structures and Applications A new construction of anticode-optimal Grassmannian codes Research Article Ben Paul Dela Cruz, John Mark Lampos, Herbert Palines, Virgilio Sison Abstract: In this paper, we consider the well-known unital embedding from Fqk into Mk(Fq) seen as a map of vector spaces over Fq and apply this map in a linear block code of rate ρ/` over Fqk . This natural extension gives rise to a rank-metric code with k rows, k` columns, dimension ρ and minimum distance k that satisfies the Singleton bound. Given a specific skeleton code, this rank-metric code can be seen as a Ferrers diagram rank-metric code by appending zeros on the left side so that it has length n−k. The generalized lift of this Ferrers diagram rank-metric code is a Grassmannian code. By taking the union of a family of the generalized lift of Ferrers diagram rank-metric codes, a Grassmannian code with length n, cardinality q n−1 qk−1 , minimum injection distance k and dimension k that satisfies the anticode upper bound can be constructed. 2010 MSC: 94B05, 94B60, 94B65 Keywords: Ferrers diagram, Rank-metric code, Grassmannian, Constant dimension, Anticode bound 1. Introduction Let Fq be the finite field of order q. The projective space of order n over Fq, denoted by Pq(n), is the set of all subspaces of Fnq . Given an integer k such that 0 ≤ k ≤ n, the set of all k-dimensional subspaces of Fnq is known as a Grassmannian, denoted by Gq(n,k). A subspace code is a nonempty subset of Pq(n), while a Grassmannian code is a nonempty subset of Gq(n,k). Subspace codes are used in network coding, a method that is far more efficient than classical coding. This paper aims to generalize the results of [4], i.e. to construct maximum rank distance (MRD) codes whose generalized lifts form an anticode-optimal Grassmannian code. The paper is organized as follows. The next section gives some preliminaries and the construction of subspace codes in [2]. Section 3 shows how to construct MRD codes from linear block codes. Given Ben Paul Dela Cruz (Corresponding Author), John Mark Lampos, Herbert Palines, Virgilio Sison; Institute of Mathematical Sciences and Physics, University of the Philippines, Los Baños, College, Laguna 4031, Philippines (email: bbdelacruz2@up.edu.ph, jtlampos@up.edu.ph, hspalines@up.edu.ph, vpsison@up.edu.ph). 31 https://orcid.org/0000-0002-0351-1231 https://orcid.org/0000-0002-8354-5772 https://orcid.org/0000-0002-7407-2539 https://orcid.org/0000-0003-2955-2311 B. P. Dela Cruz et al. / J. Algebra Comb. Discrete Appl. 8(1) (2021) 31–39 a specific skeleton code, these MRD codes turn out to be Ferrers diagram maximum rank distance (FDMRD) codes. In Section 4, anticode-optimal Grassmannian code will be constructed using these FDMRD codes and the multi-level construction in [2]. Instead of using pending dots, we will use the multi-level construction as presented in [6]. Lastly, we give our conclusion in Section 5. 2. Preliminaries A [k × `] matrix code over Fq is a nonempty subset of Mk×`(Fq). The rank distance between two k × ` matrices over Fq, say A and B, is given by dR(A,B) = rank(A−B). The minimum rank distance of a matrix code C, denoted by δ, is defined by δ = min{dR(A,B)|A,B ∈ C,A 6= B}. A [k × `,δ] rank-metric code is a [k × `] matrix code with minimum rank distance δ. It is worth noting that a linear code in Mk×`(Fq) is a subspace of the vector space Mk×`(Fq). A [k × `,ρ,δ] rank-metric code C is a linear code in Mk×`(Fq) with dimension ρ and minimum distance δ. The following theorem gives the relationship of the minimum distance of a rank-metric code with its minimum nonzero rank. Theorem 2.1. [4] Let C be a [k×`,ρ,δ] rank-metric code with minimum nonzero rank Ω. Then δ = Ω. Theorem 2.2. [1] For a [k × `,ρ,δ] rank−metric code C, ρ ≤ min{k(`−δ + 1),`(k −δ + 1)}. A code that attains the bound in Theorem 2.2 is called a maximum rank distance code or an MRD code. Before we go to Grassmannian codes, we first give two definitions which are vital to our construction. Let A ∈ Mk×`(Fq). The lift of A, denoted by L(A), is the standard matrix (Ik A). We adapted this definition from [4]. For a given matrix A, we denote the row space of A by 〈A〉. Example 2.3. Let A = ( 1 0 1 0 1 1 ) ∈ M2×3(F2). Then L(A) = ( 1 0 1 0 1 0 1 0 1 1 ) . Moreover, the rowspace generated by L(A) is the linear block code of length 5, rate 2/5 over F2. 〈L(A)〉 = {(0,0,0,0,0),(1,0,1,0,1),(0,1,0,1,1),(1,1,1,1,0)}. Definition 2.4. [4] Let C be a [k × `] rank-metric code. The set Λ(C) = {〈L(A)〉|A ∈ C} is called the lift of C. It is well known that the cardinality of Gq(n,k) is given by the q-ary Gaussian coefficient |Gq(n,k)| = [ n k ] q = k−1∏ i=0 qn−i − 1 qk−i − 1 . (1) Consequently, |Pq(n)| = |∪nk=0 Gq(n,k)|. Furthermore, the subspace distance and the injection distance, defined as dS(A,B) = dim(A + B) − dim(A∩B) 32 B. P. Dela Cruz et al. / J. Algebra Comb. Discrete Appl. 8(1) (2021) 31–39 and dI(A,B) = max{dim A, dim B}− dim(A∩B) respectively, for any A,B in Pq(n) are metrics on Pq(n), and so in Gq(n,k). It is clear that if A and B have the same dimension, then dI(A,B) = 1 2 dS(A,B). We say that C ⊆ Gq(n,k) is an (n,M,d,k)q code in the Grassmannian, or a constant-dimension code, if |C| = M and the minimum injection distance of C is d = min{dI(A,B)|A,B ∈ C,A 6= B}. Since dI(A,B) = 1 2 dS(A,B), then the minimum subspace distance of a Grassmannian code is twice of its minimum injection distance. Equivalently, one may opt to use the subspace distance instead of injection distance. The next theorem gives the parameters of the resulting Grassmannian code from a lifted rank-metric code. Theorem 2.5. [6] Let C be a [k×`,ρ,δ] rank-metric code. Then Λ(C) is a (k+`,qρ,δ,k)q Grassmannian code. The maximum number of codewords in an (n,M,d,k)q code is denoted by Aq(n,d,k). Bounds for Aq(n,d,k) were given in [7], [3] and [11]. The lift of maximum rank distance (MRD) codes in [10] asymptotically attains the bounds given in [3] and [7]. The next theorem gives the bound that were used to check the optimality of our constructed code. Theorem 2.6. [11] Anticode Bound. Aq(n,d,k) ≤ [ n k ] q[ n−k + d− 1 d− 1 ] q = [ n k −d + 1 ] q[ k k −d + 1 ] q (2) Etzion and Silberstein provided a multi-level construction of Grassmannian codes in [2]. The codes constructed using multi-level construction are called lifted Ferrers Diagram (FD) codes in [6]. Further- more, an alternative form of the construction of lifted FD codes which uses matrices instead of the usual pending dots were presented in [6]. In this paper, we opt to use the alternative form of the said con- struction. As defined in [6], for a nonzero X ∈ Mk×`(Fq), there corresponds a vector prof(X) ∈ {0, 1}n, called the profile vector of X, in which supp(prof(X)) is the set of column positions of the leading ones in the rows of the row reduced echelon form of X. If X = 0, then we set prof(X) to be the zero vector. Associated with a vector space U ∈Gq(n,k),k > 0, is a unique k ×n matrix XU in row reduced echelon form such that U = 〈XU〉. Now define the profile vector of U, denoted by prof(U), given by prof(U) = prof(XU ). In addition, prof(U) = 0 ∈ Fn2 if dim(U) = 0. Let b ∈ Fn2 , the Schubert cell in Pq(n) corresponding to b is the set Sq(b) = {U ∈Pq(n)|prof(U) = b}. Some papers denote this set as prof−1(b). Given any binary vector b of length n and Hamming weight k, the permutation matrix with respect to b, denoted by P(b), is the n×n permutation matrix whose rows indexed by supp(b) form P(b)supp(b) =( Ik 0k×(n−k) ) and the remaining rows of P(b) form P(b)supp(b̄) = ( 0(n−k)×k I(n−k) ) , where b + b̄ is the all one vector of length n. 33 B. P. Dela Cruz et al. / J. Algebra Comb. Discrete Appl. 8(1) (2021) 31–39 Example 2.7. Let b = (1, 0, 0, 1, 0). So b̄ = (0, 1, 1, 0, 1). P(b) =   1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1   We changed some notations in the next definition to be consistent with our earlier notations but the essence is exactly the same. Definition 2.8. [6] Let b be a binary vector of length n and Hamming weight k. For X ∈ Mk×(n−k)(Fq), define the generalized lifting of X with respect to b, denoted by Λb(X), as Λb(X) = 〈L(X)〉P(b)−1 = 〈L(X)P(b)−1〉. Definition 2.9. [6] Let b be a binary vector of length n, Hamming weight k and let Cb be a [k×(n−k)] rank-metric code. The set Λb(Cb) = {Λb(C)|C ∈Cb} is called the generalized lift of Cb. We now present some necessary conditions for the definition of lifted FD codes which were established in [6]. Let Q = [aij] be the n×n upper triangular matrix with aij = 1 if j ≥ i and aij = 0 otherwise. Given a binary profile vector b of length n and Hamming weight k, regarded as an element of Z1×n, define the vector c(b) ∈ Z1×n via c(b) = bQP(b). Let X = [xij] ∈ Mk×(n−k)(Fq). According to [6], Λb(X) is guaranteed to be in the Schubert cell corresponding to b provided that for 1 ≤ i ≤ k and 1 ≤ j ≤ n−k, i > c(b)j+k implies that xij = 0. (3) An FD(b) code is a rank-metric code Cb ⊆ Mk×(n−k)(Fq) in which each codeword satisfies (3) while the code Λb(Cb) is referred to as lifted FD(b) code. We now consider the minimum distance between elements in distinct Schubert cells. Let u,v ∈ Fn2 and u 6= v. Now define the logical AND of u and v, denoted by u∧v, as (u∧v)i = uivi. Also the asymmetric distance between u and v, denoted by da(u,v), is given by da(u,v) = max{wtH(u),wtH(v)}−wtH(u∧v). Theorem 2.10. [5] Let u,v ∈ Fn2 , u 6= v, U ∈ Sq(u) and V ∈ Sq(v) and d(U,V ) be the injection distance of U and V . Then d(U,V ) ≥ da(u,v). The following steps to construct an (n,M,d,k)q code C are from [5]. 1. Choose a binary constant weight code B of length n, Hamming weight k, and minimum asymmetric distance d. 2. For each b ∈B, consider an FD(b) code with minimum rank distance d. 3. Construct the lifted FD(b) code Λb(Cb) for each b ∈B. 4. Set C = ⋃ b∈B Λb(Cb) The cardinality M of C greatly depends on the choice of B. Theorem 2.11. [2] C is an (n,M,d,k)q constant-dimension code, where M = ∑ b∈B |Λb(Cb)|. 34 B. P. Dela Cruz et al. / J. Algebra Comb. Discrete Appl. 8(1) (2021) 31–39 3. Rank-metric codes and Grassmannian codes The following well-known theorem will be the cornerstone of our construction. Theorem 3.1. [9] Let f(x) = k∑ i=0 aix i ∈ Fq[x] be a monic irreducible polynomial and X be its companion matrix. Then the mapping π : Fq[x] → Mk(Fq),g(x) 7→ g(X) (4) induces a unital embedding τ : Fq[x]/(f) = Fqk → Mk(Fq). (5) Let n be a positive integer. Note that τ can be extended to the following monomorphism φ defined by φ : Fn qk → Mk×kn (Fq) where φ (α1,α2, ...,αn) = ( τ(α1) τ(α2) ... τ(αn) ) . Lemma 3.2. If C is a linear block code of length n over Fqk then C ∼= φ (C) as Fq−vector spaces. The following theorem is a generalization of Theorem 3.7 of [4]. Theorem 3.3. Let C be a linear block code of length n over Fqk and ρ its dimension as an Fq-vector space. Then i. φ (C) is a [k ×kn,ρ,k] rank-metric code, ii. Λ (φ (C)) is a (k + kn,qρ,k,k)q code, iii. the pairwise intersection of codewords of Λ (φ (C)) is trivial. Proof. Let C be a linear block code of length n over Fqk and ρ its dimension as an Fq-vector space. By Lemma 3.2, C and φ (C) are isomorphic as Fq−vector spaces. Hence, the dimension of φ (C) is ρ. Consider the case n = 1. Since Fqk is a field, then ∀α ∈ Fqk −{0},φ (α) = τ(α) ∈ Mk(Fq) is a unit and thus has rank k, where τ is as defined in (5). Thus, ( τ (α1) τ (α2) ... τ (αn) ) has rank k for any positive integer n where αi ∈ Fqk −{0} for some i, 1 ≤ i ≤ n. Therefore, by Theorem 2.1, the minimum distance of φ (C) is k. Clearly, ii. follows directly from Theorem 2.5 If Λ (φ (C)) is a (k + kn,qρ,k,k)q code, the minimum injection distance of Λ (φ (C)) is k. Let A,B ∈ Λ (φ (C)). We have k ≤ d (A,B) = max{dim A, dim B}−dim (A∩B) . Hence, k ≤ k−dim (A∩B) which makes dim (A∩B) to be equal to 0. Therefore, the pairwise intersection of codewords of Λ (φ (C)) is trivial. Note that for any positive integer n, the rank-metric code φ(Fn qk ) meets the Singleton bound as given in Theorem 9 of [7]. Example 3.4. Consider the irreducible polynomial x2 + x + 1 over F2 and its companion matrix X =( 1 1 1 0 ) , and the linear block code F24. Then φ(F 2 4) is a [2 × 4, 4, 2] rank-metric code which satisfies the Singleton bound. Moreover, Λ(φ(F24)) is a (6, 16, 2, 2)2−code. 35 B. P. Dela Cruz et al. / J. Algebra Comb. Discrete Appl. 8(1) (2021) 31–39 4. Anticode-optimal Grassmannian code Now we construct Grassmannian codes using the multi-level construction in [2] and the result in Theorem 3.3. Let n be a multiple of k and n > k. For the skeleton code B, choose B = {b` = (0, · · · , 0︸ ︷︷ ︸ n−k−k` , 1, · · · , 1︸ ︷︷ ︸ k , 0, · · · , 0︸ ︷︷ ︸ k` )|0 ≤ ` ≤ n−k k }. Clearly, B is a binary constant weight code of length n, weight k, and minimum asymmetric distance k. Then for 0 ≤ ` ≤ n−k k P(b`) =   In−k−k`Ik Ik`   . Let Q = [aij] be the n×n upper triangular matrix with aij = 1 if j ≥ i and aij = 0 otherwise. Then, c(b`) = b`QP(b`) = (0, · · · , 0︸ ︷︷ ︸ n−k−k` , 1, · · · , 1︸ ︷︷ ︸ k , 0, · · · , 0︸ ︷︷ ︸ k` )QP(b`) = (0, · · · , 0︸ ︷︷ ︸ n−k−k` , 1, 2, · · · ,k,k, · · · ,k︸ ︷︷ ︸ k` )P(b`) = (1, 2, · · · ,k, 0, · · · , 0︸ ︷︷ ︸ n−k−k` ,k, · · · ,k︸ ︷︷ ︸ k` ) . Lemma 4.1. Let n be a multiple of k, n > k and Cb` = {( 0k×(n−k−k`) φ(v) ) v ∈ F`qk } where 1 ≤ ` ≤ n−k k . Then, for 1 ≤ ` ≤ n−k k , Cb` is an FD(b`) code and has minimum rank distance k. Proof. Recall that for a rank-metric code C to be an FD(b) code, C must be a subset of Mk×(n−k)(Fq) and all of its codewords must satisfy (3). Let 1 ≤ ` ≤ n−k k . Clearly, Cb` ⊆ Mk×(n−k)(Fq). Now let X = [xij] ∈ Cb`. By (3), for 1 ≤ i ≤ k, 1 ≤ j ≤ n−k, i > c(b`)j+k implies that xij = 0. Notice that in (3), we only check the last n−k components of c(b`). Now c(b`)j+k = { 0 if 1 ≤ j ≤ n−k −k` k if n−k −k` < j ≤ n−k. Hence the entries in the first n − k − k` columns of the elements of Cb` must be all zero. Clearly, Cb` satisfies this. Lastly, by Theorem 3.3, φ(v) has minimum rank distance k. Clearly, Cb` has minimum rank distance k. Theorem 4.2. The rank-metric code Cb0 = {(0k×(n−k))} is an FD(b0) code. Although Cb0 does not have a minimum distance k as required in [2] and [6], it will not pose any problem since the resulting Grassmannian will still have a minimum distance k. Ironically, b0 is included in Example 10 of [2]. Note also that Cb0 is the only rank-metric code that will satisfy b0. Now we are ready to construct the lifted FD(b) code Λb(Cb). By Definition 2.8 and Definition 2.9, 36 B. P. Dela Cruz et al. / J. Algebra Comb. Discrete Appl. 8(1) (2021) 31–39 Λb` (Cb` ) =   {〈 0k×(n−k−k`) Ik φ(v) 〉 v ∈ F` qk } , 1 ≤ ` ≤ n−k k{〈 0k×(n−k) Ik 〉} , ` = 0. The lifted FD code, denoted by Ω(B), is given by Ω(B) = ⋃ b∈B Λb(Cb). As an immediate consequence of Lemma 4.1 and Theorem 4.2, we have the following theorem. Theorem 4.3. Ω(B) is an ( n, q n−1 qk−1 ,k,k ) q code. Since Cb0 does not have a minimum distance k and b0 appeared only as an example in [2], we will separate the case of b0 in our proof. Proof. For 1 ≤ ` ≤ n−k k , Cb` is an FD(b`) code with minimum rank distance k by Lemma 4.1. Now, Ω(B) = ⋃ b∈B Λb(Cb) =   ⋃ b∈B,b6=b0 Λb(Cb)  ∪ Λb(Cb0 ). By Theorem 2.11, ⋃ b∈B,b6=b0 Λb(Cb) is an (n,M,k,k)q code where M = ∑ b∈B,b 6=b0 |Λb(Cb)|. Clearly, Λb0 (Cb0 ) ⊆ Gq(n,k). Now we compute for the distance of codewords U ∈ ⋃ b∈B,b6=b0 Λb(Cb) and V ∈ Λb0 (Cb0 ). Since U ∈ ⋃ b∈B,b 6=b0 Λb(Cb), then U ∈ Λb` (Cb` ) for some b` ∈ B −{b0}. By Theorem 2.10, d(U,V ) ≥ da(b`,b0) ≥ k − 0 = k. Note that Λb0 (Cb0 ) has only one codeword. Therefore, Ω(B) has minimum distance k. Observe that Λb` (Cb` ) ∩ Λbj (Cbj ) = ∅, where ` 6= j. Hence, |Ω(B)| = ∑ b∈B |Λb(Cb)| = n−k k∑ i=0 qki = qn − 1 qk − 1 . Note that Ω(B) attains the Anticode bound. The following illustrates the construction of an Anticode-optimal Grassmannian code. Example 4.4. Consider the irreducible polynomial x3 + x + 1 over F2, its companion matrix X =  0 1 11 0 0 0 1 0  , φ1 : F23 → M3×3(F2),α1 7→ τ(α1), φ2 : F223 → M3×6(F2), (α1,α2) 7→ ( τ(α1) τ(α2) ) , and the skeleton code B = {b` = (0, · · · , 0︸ ︷︷ ︸ 6−3` , 1, · · · , 1︸ ︷︷ ︸ 3 , 0, · · · , 0︸ ︷︷ ︸ 3` )|0 ≤ ` ≤ 2}. 37 B. P. Dela Cruz et al. / J. Algebra Comb. Discrete Appl. 8(1) (2021) 31–39 Now, Cb0 = {03×6} Cb1 = {(03×3|φ1(v)) : v ∈ F23} Cb2 = {φ2(v) : v ∈ F 2 23}. So Λb0 (Cb0 ) = {〈03×6|I3〉} Λb1 (Cb1 ) = {〈03×3|I3|φ1(v)〉 : v ∈ F23} Λb2 (Cb2 ) = {〈I3|φ2(v)〉 : v ∈ F 2 23}. Finally, Ω(B) = Λb0 (Cb0 ) ∪ Λb1 (Cb1 ) ∪ Λb2 (Cb2 ) with cardinality 1 + 8 + 64 = 73 = A2(9, 3, 3). Theorem 4.3 is a generalization of Theorem 3.16 in [4] and is similar with the construction of spread codes in [8]. Note that by choosing v to be in a different linear block code C of length ` over Fqk instead of F` qk in Lemma 4.1, one may construct a Grassmannian code that is not a spread code. 5. Summary and conclusion We presented two constructions of Grassmannian codes for any length, over any finite field and whose dimension is equal to its minimum injection distance. These two constructions are generalizations of some constructions in [4]. The first construction uses a linear block code to construct a rank-metric code. The resulting rank-metric code was then used to create a Grassmannian code that meets the Singleton bound. The second construction uses the results in the first construction together with the concept of Ferrers diagram to get an anticode-optimal Grassmannian code. The resulting code from the second construction is similar to the construction of spread codes found in [8]. Acknowledgment: The authors would like to thank the reviewer for his/her valuable comments. References [1] T. Etzion, Subspace codes − bounds and constructions, 1st European Training School on Network Coding, Barcelona, Spain, (2013). [2] T. Etzion, N. Silberstein, Error-Correcting codes in projective spaces via rank-metric codes and Ferrers diagrams, IEEE Trans. Inform. Theory 55(7) (2009) 2909–2919. [3] T. Etzion, A. Vardy, Error-correcting codes in projective space, IEEE Trans. Inform. Theory 57(2) (2011) 1165–1173, [4] B. Hernandez, V. Sison, Grassmannian codes as lifts of matrix codes derived as images of linear block codes over finite fields, Global Journal of Pure and Applied Mathematics 12(2) (2016) 1801–1820. [5] A. Khaleghi, F. R. Kschischang, Projective space codes for the injection metric, In: Proc. 11th Canadian Workshop on Information Theory, Ottawa, 54(8) (2009) 9–12. [6] A. Khaleghi, D. Silva, F. R. Kschischang, Subspace codes, IMA Int. Conf. 49(4) (2009) 1–21. 38 https://doi.org/10.1109/TIT.2009.2021376 https://doi.org/10.1109/TIT.2009.2021376 https://doi.org/10.1109/TIT.2010.2095232 https://doi.org/10.1109/TIT.2010.2095232 http://www.ripublication.com/gjpam16/gjpamv12n2_52.pdf http://www.ripublication.com/gjpam16/gjpamv12n2_52.pdf https://doi.org/10.1109/CWIT.2009.5069509 https://doi.org/10.1109/CWIT.2009.5069509 https://doi.org/10.1007/978-3-642-10868-6_1 B. P. Dela Cruz et al. / J. Algebra Comb. Discrete Appl. 8(1) (2021) 31–39 [7] R. Koetter, F. R. Kschischang, Coding for errors and erasures in random network coding, IEEE Trans. Inform. Theory 54(8) (2008) 3579–3591. [8] F. Manganiello, E. Gorla, J. Rosenthal, Spread codes and spread decoding in network coding, In: Proc. 2008 IEEE ISIT, Toronto, Canada, (2008) 851–855. [9] A. J. Menezes, I. F. Blake, X. Gao, R. C. Mullen, S. A. Vanstine, T. Yaghoobian, Applications of finite fields, Boston, MA: Kluwer Academic Publishers 1993. [10] D. Silva, F. R. Kschischang, R. Koetter, A rank-metric approach to error control in random network coding, IEEE Trans. Inform. Theory 54(9) (2008) 3951–3967. [11] H. Wang, C. Xing, R. Safavi-Naini, Linear authentication codes: bounds and constructions, IEEE Trans. Inform. Theory 49(4) (2003) 866–872. 39 https://doi.org/10.1109/TIT.2008.926449 https://doi.org/10.1109/TIT.2008.926449 https://doi.org/10.1109/ISIT.2008.4595113 https://doi.org/10.1109/ISIT.2008.4595113 https://doi.org/10.1109/TIT.2008.928291 https://doi.org/10.1109/TIT.2008.928291 https://doi.org/10.1109/TIT.2003.809567 https://doi.org/10.1109/TIT.2003.809567 Introduction Preliminaries Rank-metric codes and Grassmannian codes Anticode-optimal Grassmannian code Summary and conclusion References