arXiv is now an independent nonprofit! Learn more
License: arXiv.org perpetual non-exclusive license
arXiv:2006.00562v1 [cs.IT] 31 May 2020

Decoding Reed-Solomon Skew-Differential CodesThanks: Research supported by grants A-FQM-470-UGR18 from Junta de Andalucía and FEDER and PID2019-110525GB-100 from AEI and FEDERThanks: The third author was supported by The National Council of Science and Technology (CONACYT) with a scholarship for a Postdoctoral Stay in the University of Granada.

José Gómez-Torrecillas Address: Department of Algebra, University of Granada Current address: Email address: gomezj@ugr.es , Gabriel Navarro Address: CITIC and Department of Computer Science and Artificial Intelligence, University of Granada Email address: gnavarro@ugr.es and José Patricio Sánchez-Hernández Address: Department of Algebra, University of Granada Email address: jpsanchez@correo.ugr.es
Date: August 24, 2026
Abstract.

A large class of MDS linear codes is constructed. These codes are endowed with an efficient decoding algorithm. Both the definition of the codes and the design of their decoding algorithm only require from Linear Algebra methods, making them fully accesible for everyone. Thus, the first part of the paper develops a direct presentation of the codes by means of parity-check matrices, and the decoding algorithm rests upon matrix and linear maps manipulations. The somewhat more sophisticated mathematical context (non-commutative rings) needed for the proof of the correctness of the decoding algorithm is postponed to the second part. A final section locates the Reed-Solomon skew-differential codes introduced here within the general context of codes defined by means of skew polynomial rings.

Introduction

The treatment of cyclic linear codes as ideals of a quotient of a polynomial ring inspired the extension of cyclic-like conditions to the realm of skew-polynomial (non-commutative) rings both from the perspective of block codes [1, 2, 3, 19] and convolutional codes [21, 22, 7, 18, 9, 10]. One of the nicest features of some (commutative) cyclic codes is the possibility of designing efficient algebraic decoding algorithms taking advantage of their rich algebraic structure [14, 20, 24]. These classic approaches have been adapted or, in some cases, inspire, decoding procedures for some families of cyclic-like codes based on non-commutative polynomial arithmetics [3, 17, 11, 12]. Dealing with these codes, presented in the language of left ideals and modules, requires a training in non-commutative rings which could limit their difusion and potential practical use among coding theorists and engineers.

In this paper we simplify and extend to a considerably broader class of codes the algebraic decoding algorithms designed in [12] and [13] for skew RS and convolutional differential RS codes, respectively. These codes were presented as left ideals of certain non-commutative polynomial rings, and their decoding algorithms make use of advanced algebraic tools like evaluation of non-commutative polynomials. In contrast, both the construction of the codes in this note, and the description and implementation of their decoding algorithm only require basic Linear Algebra over a field. The introduction of the (minimal) algebraic machinery needed to prove the correctness of the decoding algorithm is postponed till Section 3. In this way, the material of Section 1 is ready to use even without knowing what a non-commutative ring is.

We work over a general field KK, since our interests include block linear codes (K=𝔽qK=\mathbb{F}_{q}, a finite field) and convolutional codes (K=𝔽q(t)K=\mathbb{F}_{q}(t), the rational function field in a variable tt over 𝔽q\mathbb{F}_{q}).

We call our codes Reed-Solomon (RS) skew-differential codes because they are defined from a skew derivation of the field KK by means of parity check matrices (Definition 2). Each code C(φu,α,d)C_{(\varphi_{u},\alpha,d)} depends on the three parameters reflected in the notation. Concretely, φu\varphi_{u} is a transformation of KK, defined from an element uKu\in K and the skew derivation, that becomes linear with respect to a suitable subfield KφuK^{\varphi_{u}} of KK, α\alpha is a cyclic vector of φu\varphi_{u}, and dd is the designed minimum Hamming distance of the code. After the description of the code C(φu,α,d)C_{(\varphi_{u},\alpha,d)}, Section 1 proceeds to the design of the its algebraic decoding algorithm (see Algorithm 1). It runs at follows: from a word corrupted by up to τ=d12\tau=\lfloor\frac{d-1}{2}\rfloor errors, a matrix is computed recursively from the syndromes. The left kernel of this matrix contains a nonzero vector ρ\rho (Proposition 3). With this vector at hand, a second matrix LL is recursively computed. This matrix gives an easy procedure to get the positions of the errors (Theorem 4). Once these positions are known, the values of the errors are the solution of a linear system of equations.

Section 2 deals with the examples. We analyze when the finiteness condition (see Proposition 1) that grants the construction of the code C(φu,α,d)C_{(\varphi_{u},\alpha,d)} holds (Proposition 7 and Corollary 8). Its turns out that in the cases of interest (block and convolutional skew-differential codes), the code C(φu,α,d)C_{(\varphi_{u},\alpha,d)} is always built (Subsections 2.1 and 2.2). Concrete examples of application of Algorithm 1 are shown in both cases. The computations are done with the help of the SageMath symbolic computation system [23].

Section 3 is devoted to prove the mathematical results that ground Algorithm 1. Our algebraic setup requires from the ring of additive endomorphisms of KK generated by KK and the map φu\varphi_{u}, and the application of Jacobson-Bourbaki’s Correspondence to identify which maps φu\varphi_{u} are suitable for constructing skew-differential codes (Proposition 11). Jacobson-Bourbaki’s Correspondence is a more general version of Galois Correspondence that applies to additive maps (like φu\varphi_{u}) which are not necessarily field automorphisms (see [25] or [26]). We also use the non-commutative Wronskian and Vandermonde matrices investigated in [5]. Indeed, it turns out that \mathcal{R} is isomorphic to the factor ring of a skew polynomial ring by the minimal polynomial of φu\varphi_{u} (see Proposition 14). This isomorphism eases the conceptual manipulation of the elements of \mathcal{R} in Proposition 17 and Theorem 18. The section is closed with the proof of the correctness of Algorithm 1.

Section 4 gives a precise description of an RS skew-differential code C(φu,α,d)C_{(\varphi_{u},\alpha,d)} as a left ideal of \mathcal{R} (Corollary 25). From the practical point of view, this serves to see in detail how the codes investigated in [12] and [13] are obtained as particular cases of C(φu,α,d)C_{(\varphi_{u},\alpha,d)} (see Examples 28 and 29). Besides, a generator of C(φu,α,d)C_{(\varphi_{u},\alpha,d)} is explicitly given. On the theoretical side, Corollary 25 identifies RS skew-differential codes as members of the very general family of module (σ,δ)(\sigma,\delta)–codes defined in [3]. In fact, we precisely characterize the module (σ,δ)(\sigma,\delta)–codes with “word ambient” ring \mathcal{R} (Proposition 23 and Proposition 24), and describe which of these codes are RS skew-differential codes (Corollary 25), thus enjoying an efficient algebraic decoding algorithm.

1. Definition of the codes and specification of their algebraic decoding algorithm

Let KK be a field. For any additive map11 1 That is, it satisfies that ϕ(a+b)=ϕ(a)+ϕ(b)\phi(a+b)=\phi(a)+\phi(b) for all a,bKa,b\in K. ϕ:KK\phi:K\to K, set

Kϕ={bK:ϕ(ab)=ϕ(a)b for all aK}.K^{\phi}=\{b\in K:\phi(ab)=\phi(a)b\text{ for all }a\in K\}.

A straightforward argument shows that KϕK^{\phi} is a subfield of KK and, obviously, ϕ\phi becomes a KϕK^{\phi}–linear map. A tempting idea is to use good enough field extensions K/KϕK/K^{\phi} to design KK–linear error corrector codes with efficient algebraic decoding algorithms. In this note, we consider additive maps on KK stemming from skew derivations.

A skew derivation on KK is a pair (σ,δ)(\sigma,\delta), where σ\sigma is a field automorphism of KK, and δ:KK\delta:K\to K is an additive map subject to the condition

(1) δ(ab)=σ(a)δ(b)+δ(a)b,\delta(ab)=\sigma(a)\delta(b)+\delta(a)b,

for all a,bKa,b\in K.

Given uKu\in K, let φu:KK\varphi_{u}:K\to K be defined by

(2) φu(a)=σ(a)u+δ(a),\varphi_{u}(a)=\sigma(a)u+\delta(a),

for all aKa\in K.

Proposition 1.

Assume that the dimension of KK as a KφuK^{\varphi_{u}}–vector space is m<m<\infty. The minimal polynomial of the KφuK^{\varphi_{u}}–linear map φu\varphi_{u} has degree mm and, henceforth, it has at least a cyclic vector. Moreover αK\alpha\in K is such a cyclic vector if and only if the matrix

A=(αφu(α)φum1(α)φu(α)φu2(α)φum(α)φum1(α)φum(α)φu2m2(α))A=\left(\begin{array}[]{ccccc}\alpha&\varphi_{u}(\alpha)&&\cdots&\varphi_{u}^{m-1}(\alpha)\\ \varphi_{u}(\alpha)&\varphi_{u}^{2}(\alpha)&&\cdots&\varphi_{u}^{m}(\alpha)\\ \vdots&\vdots&&\ddots&\vdots\\ \varphi_{u}^{m-1}(\alpha)&\varphi_{u}^{m}(\alpha)&&\cdots&\varphi_{u}^{2m-2}(\alpha)\end{array}\right)

is invertible.

Proposition 1 establishes an adequate context to define our codes from the matrix AA. It is worth to mention that the computation of a cyclic vector α\alpha can be randomized and does not require the computation of KφuK^{\varphi_{u}} (see Remark 9 in Section 2).

Definition 2.

Given 2dm2\leq d\leq m, define the KK–linear code C(φu,α,d)KmC_{(\varphi_{u},\alpha,d)}\subseteq K^{m} of dimension md+1m-d+1 as the left kernel of the matrix

H=(αφu(α)φud2(α)φu(α)φu2(α)φud1(α)φum1(α)φum(α)φum+d3(α))H=\left(\begin{array}[]{ccccc}\alpha&\varphi_{u}(\alpha)&&\cdots&\varphi_{u}^{d-2}(\alpha)\\ \varphi_{u}(\alpha)&\varphi_{u}^{2}(\alpha)&&\cdots&\varphi_{u}^{d-1}(\alpha)\\ \vdots&\vdots&&\ddots&\vdots\\ \varphi_{u}^{m-1}(\alpha)&\varphi_{u}^{m}(\alpha)&&\cdots&\varphi_{u}^{m+d-3}(\alpha)\end{array}\right)

It can be proved (see Theorem 13 below) that the minimum Hamming distance of this code is dd, so it is an MDS code. We will call these codes Reed Solomon (RS) skew-differential codes. It is worth to mention that when KK is either a finite field or a rational function field over a finite field, its dimension as a KφuK^{\varphi_{u}}–vector space is finite for any choice of the skew derivation (σ,δ)(\sigma,\delta), of the element uu and of the cyclic vector α\alpha (see Section 2). Indeed, mm is always equal to the order mm of the automorphism σ\sigma, when the latter is not the identity map.

Next, let us describe the decoding algorithm for C(φu,α,d)C_{(\varphi_{u},\alpha,d)}, that corrects up to τ=d12\tau=\lfloor\frac{d-1}{2}\rfloor errors. Suppose that we receive a word

y=(y0,,ym1)Kmy=(y_{0},\dots,y_{m-1})\in K^{m}

with y=c+eKmy=c+e\in K^{m}, where cc is a codeword, and

e=(e0,,em1)e=(e_{0},\dots,e_{m-1})

is an error vector, which is assumed to be nonzero in the discussion below. Suppose that the nonzero components ek1,,ekvKe_{k_{1}},\dots,e_{k_{v}}\in K of ee occur at the positions 0k1<<kvm10\leq k_{1}<\dots<k_{v}\leq m-1. We assume that vτv\leq\tau.

We start by computing, for i=0,,d2i=0,\dots,d-2, the syndromes

(3) Si,0=j=0m1yjφui+j(α),S_{i,0}=\sum_{j=0}^{m-1}y_{j}\varphi_{u}^{i+j}(\alpha),

which are the components of the vector yHyH.

For every pair i,ki,k of nonnegative integers such that i+k2τ1i+k\leq 2\tau-1 we may compute Si,kKS_{i,k}\in K recursively from (3) according to the rule

(4) Si,k+1=σ1(δ(Si,k)Si+1,k).S_{i,k+1}=\sigma^{-1}(\delta(S_{i,k})-S_{i+1,k}).

We may thus compute the columns of the matrix

S=(S0,0S0,1S0,τ1S1,0S1,1S1,τ1Sτ,0Sτ,1Sτ,τ1).S=\left(\begin{array}[]{ccccc}S_{0,0}&S_{0,1}&&\cdots&S_{0,\tau-1}\\ S_{1,0}&S_{1,1}&&\cdots&S_{1,\tau-1}\\ \vdots&\vdots&&\ddots&\vdots\\ S_{\tau,0}&S_{\tau,1}&&\cdots&S_{\tau,\tau-1}\end{array}\right).

Next, for 1rτ1\leq r\leq\tau, let SrS_{r} denote the matrix formed by the rr first columns of SS and compute

θ=max{r:rankSr=r}.\theta=\max\{r:rank\,S_{r}=r\}.
Proposition 3.

The left kernel of the matrix

B=(S0,0S0,1S0,θ1S1,0S1,1S1,θ1Sθ,0Sθ,1Sθ,θ1)B=\left(\begin{array}[]{ccccc}S_{0,0}&S_{0,1}&&\cdots&S_{0,\theta-1}\\ S_{1,0}&S_{1,1}&&\cdots&S_{1,\theta-1}\\ \vdots&\vdots&&\ddots&\vdots\\ S_{\theta,0}&S_{\theta,1}&&\cdots&S_{\theta,\theta-1}\end{array}\right)

is a one dimensional vector subspace of Kθ+1K^{\theta+1} spanned by a vector ρ=(ρ0,,ρθ)\rho=(\rho_{0},\dots,\rho_{\theta}) with ρθ0\rho_{\theta}\neq 0.

The next step is the localization of the positions k1,,kv{0,,m1}k_{1},\dots,k_{v}\in\{0,\dots,m-1\} at which the error values ek1,,ekve_{k_{1}},\dots,e_{k_{v}} appear. This will be done with the help of a locator matrix built as follows.

For j=0,,m1j=0,\dots,m-1 and i=0,mθ1i=0,\dots m-\theta-1, set

(5) l0,j={ρjif j=0,,θ0if j=θ+1,,m1,li,1=0.l_{0,j}=\begin{cases}\rho_{j}&\text{if }j=0,\dots,\theta\\ 0&\text{if }j=\theta+1,\dots,m-1\end{cases},\qquad l_{i,-1}=0.

We may then construct a matrix

(6) L=(l0,0l0,1l0,m1l1,0l1,1l1,m1lmθ1,0lmθ1,1lmθ1,m1)L=\left(\begin{array}[]{ccccc}l_{0,0}&l_{0,1}&&\cdots&l_{0,m-1}\\ l_{1,0}&l_{1,1}&&\cdots&l_{1,m-1}\\ \vdots&\vdots&&\ddots&\vdots\\ l_{m-\theta-1,0}&l_{m-\theta-1,1}&&\cdots&l_{m-\theta-1,m-1}\end{array}\right)

by defining its entries recursively as

(7) li+1,j=σ(li,j1)+δ(li,j).l_{i+1,j}=\sigma(l_{i,j-1})+\delta(l_{i,j}).

For i=0,,m1i=0,\dots,m-1 let ϵi\epsilon_{i} denote the vector of KmK^{m} whose ii–th component equal to 11, and every other component is 00. By Row(LA)Row(LA) we denote the row space of the matrix LALA.

Theorem 4.

The error positions k1,,kvk_{1},\dots,k_{v} are, precisely, those

k{0,,m1}k\in\{0,\dots,m-1\}

such that ϵkRow(LA)\epsilon_{k}\notin Row(LA).

The error values ek1,,ekvKe_{k_{1}},\dots,e_{k_{v}}\in K are the unique solution of the linear system

Si,0=j=1vekjφui+kj(α),(0iv1).S_{i,0}=\sum_{j=1}^{v}e_{k_{j}}\varphi_{u}^{i+k_{j}}(\alpha),\qquad(0\leq i\leq v-1).

We are now ready to specify our decoding algorithm.

Algorithm 1.

Decoding algorithm for an RS skew-differential code C(φu,α,d)C_{(\varphi_{u},\alpha,d)}.

The input is a received word y=(y0,,ym1)Kmy=(y_{0},\dots,y_{m-1})\in K^{m} with no more than τ=d12\tau=\lfloor\frac{d-1}{2}\rfloor errors.

The output is an error vector e=(e0,,em1)Kme=(e_{0},\dots,e_{m-1})\in K^{m} such that yeC(φu,α,d)y-e\in C_{(\varphi_{u},\alpha,d)}.

The algorithm runs according to the following steps:

  1. 1.

    Compute Si,0S_{i,0} according to (3) for i=0,,d2i=0,\dots,d-2. If Si,0=0S_{i,0}=0 for every i=0,,d2i=0,\dots,d-2, then e=0e=0.

  2. 2.

    Compute recursively SrS_{r} for r2r\geq 2 by means of (4) until rankSr<rrank\,S_{r}<r. Set θ=r1\theta=r-1.

  3. 3.

    Compute a nonzero ρ=(ρ0,,ρθ)\rho=(\rho_{0},\dots,\rho_{\theta}) in the kernel of the matrix BB formed by the first θ+1\theta+1 rows of SθS_{\theta}.

  4. 4.

    Compute the matrix LL according to (5) and (7).

  5. 5.

    The error positions set T={k1,,kv}T=\{k_{1},\dots,k_{v}\} is determined by

    T={k{0,,m1}:ϵkRow(LA)}.T=\{k\in\{0,\dots,m-1\}:\epsilon_{k}\notin Row(LA)\}.
  6. 6.

    The error values ek1,,ekve_{k_{1}},\dots,e_{k_{v}} are the solutions of the linear system

    j=0m1yjφui+j(α)=j=1vekjφui+kj(α),(0iv1).\sum_{j=0}^{m-1}y_{j}\varphi_{u}^{i+j}(\alpha)=\sum_{j=1}^{v}e_{k_{j}}\varphi_{u}^{i+k_{j}}(\alpha),\qquad(0\leq i\leq v-1).
  7. 7.

    Set ei=0e_{i}=0 for iTi\notin T. The error is e=(e0,,em1)e=(e_{0},\dots,e_{m-1}).

Remark 5.

The location of the error positions from the matrix LALA in the fifth step of Algorithm 1 can be done by several methods. For instance, one may compute the reduced row echelon form of LALA, as we do in the examples exhibited in Section 2.

2. Examples

Before giving concrete examples, we discuss under which conditions the dimension of KK as a KφuK^{\varphi_{u}}–vector space is finite. Of course, we also would like to avoid the extreme case where K=KφuK=K^{\varphi_{u}}, so we also consider this situation. We first record separately an alternative description of KφuK^{\varphi_{u}}, which will used several times. Keep the notation introduced in Section 1.

Lemma 6.

The subfield KφuK^{\varphi_{u}} of KK admits the following description:

Kφu={bK|σ(b)u+δ(b)=ub}.K^{\varphi_{u}}=\{b\in K\,|\,\sigma(b)u+\delta(b)=ub\}.
Proof.

It follows from the identities

φu(ab)=σ(a)σ(b)u+σ(a)δ(b)+δ(a)b\varphi_{u}(ab)=\sigma(a)\sigma(b)u+\sigma(a)\delta(b)+\delta(a)b

and

φu(a)b=σ(a)ub+δ(a)b,\varphi_{u}(a)b=\sigma(a)ub+\delta(a)b,

valid for any a,bKa,b\in K. ∎

Proposition 7.
  1. (1)

    The equality K=KφuK=K^{\varphi_{u}} holds if and only if δ(a)=u(aσ(a))\delta(a)=u(a-\sigma(a)) for every aKa\in K.

  2. (2)

    If KKφuK\neq K^{\varphi_{u}} then

    Kφu={Kδ if σ=idKKσ if σidK.K^{\varphi_{u}}=\begin{cases}K^{\delta}&\text{ if }\sigma=id_{K}\\ K^{\sigma}&\text{ if }\sigma\neq id_{K}.\end{cases}
Proof.

Statement (1) follows immediately from Lemma 1.

As for statement (2) concerns, let us first observe that, since δ(ab)=δ(ba)\delta(ab)=\delta(ba) for every a,bKa,b\in K,

(8) δ(b)(σ(a)a)=δ(a)(σ(b)b),\delta(b)(\sigma(a)-a)=\delta(a)(\sigma(b)-b),

by virtue of (1). Now, since KKφuK\neq K^{\varphi_{u}}, we pick aKKφua\in K\setminus K^{\varphi_{u}}. If bKφub\in K^{\varphi_{u}}, then

δ(a)(σ(b)b)=δ(b)(σ(a)a)=(bσ(b))u(σ(a)a),\delta(a)(\sigma(b)-b)=\delta(b)(\sigma(a)-a)=(b-\sigma(b))u(\sigma(a)-a),

which is only possible if σ(b)b=0\sigma(b)-b=0, as δ(a)u(σ(a)a)\delta(a)\neq u(\sigma(a)-a). Therefore, bKσb\in K^{\sigma} and, henceforth, δ(b)=u(bσ(b))=0\delta(b)=u(b-\sigma(b))=0. We thus get that KφuKσKδK^{\varphi_{u}}\subseteq K^{\sigma}\cap K^{\delta}. The converse inclusion is easily checked, so that we obtain

(9) Kφu=KσKδ.K^{\varphi_{u}}=K^{\sigma}\cap K^{\delta}.

If σ=idK\sigma=id_{K}, then (9) obviously implies Kφu=KδK^{\varphi_{u}}=K^{\delta}. If σidK\sigma\neq id_{K}, we may already pick aKKσa\in K\setminus K^{\sigma}. Then, for bKσb\in K^{\sigma} we get form (8), that

δ(b)(σ(a)a)=δ(a)(σ(b)b)=0.\delta(b)(\sigma(a)-a)=\delta(a)(\sigma(b)-b)=0.

Hence, δ(b)=0\delta(b)=0 and KσKδK^{\sigma}\subseteq K^{\delta}, which implies, in view of (9), that Kφu=KσK^{\varphi_{u}}=K^{\sigma}. ∎

Given an automorphism σidK\sigma\neq id_{K} of the field KK, and vKv\in K, we may define

(10) δσ,v(a)=v(σ(a)a),\delta_{\sigma,v}(a)=v(\sigma(a)-a),

for all aKa\in K, thus obtaining a map δσ,v:KK\delta_{\sigma,v}:K\to K which is a σ\sigma–derivation. Indeed, it is already known (see, for instance, [15, Proposition 1.1.20]), that every σ\sigma–derivation of the commutative field KK can be expressed in this form (this fact is easily derived from (8)). With this notation, we derive the following consequence of Proposition 7.

Corollary 8.

Assume that σidK\sigma\neq id_{K} is an automorphism of KK of finite order mm, and that δ=δσ,v\delta=\delta_{\sigma,v}. If uvu\neq-v, then the dimension of KK over KφuK^{\varphi_{u}} is mm.

Remark 9.

In practice, the computation of one of the cyclic vectors α\alpha predicted by Proposition 1 can be implemented by a randomized search in KK until the matrix AA becomes invertible. This avoids in most cases the computation of the subfield KφuK^{\varphi_{u}}, since the parameter mm is either the order of the automorphism σ\sigma or, in the pure differential case of interest (namely K=𝔽(t)K=\mathbb{F}(t)), the characteristic of the finite field 𝔽\mathbb{F}.

Next, we discuss how our construction applies to block and convolutional codes. We also illustrate the execution of our decoding algorithm with some concrete examples.

2.1. Block codes

Let us assume here that K=𝔽K=\mathbb{F} is the finite field with prp^{r} elements for some prime pp, so our codes become linear block codes over the alphabet 𝔽\mathbb{F}. Every automorphism of 𝔽\mathbb{F} is a power of the Frobenius automorphism τ\tau and, consequently, has finite order. Additionally, any derivation on 𝔽\mathbb{F} is inner, this is to mean, it is given by (10), so Corollary 8 provides us plenty of non trivial examples. The steps of the design method of a RS skew-differential block code may be then enumerated as follows:

  1. (1)

    Choose a natural 0<h<r0<h<r, and set σ=τh\sigma=\tau^{h} and m=r(r,h)m=\frac{r}{(r,h)}, the order of σ\sigma.

  2. (2)

    Choose vv and uu in 𝔽\mathbb{F}, with u+v0u+v\not=0, in order to set the σ\sigma-derivation δ:𝔽𝔽\delta:\mathbb{F}\to\mathbb{F} as δ(c)=v(σ(c)c)\delta(c)=v(\sigma(c)-c) and the additive map φu\varphi_{u} as φu(c)=σ(c)u+δ(c)\varphi_{u}(c)=\sigma(c)u+\delta(c) for any c𝔽c\in\mathbb{F}.

  3. (3)

    By a random search, find a cyclic vector α\alpha (see Remark 9).

  4. (4)

    Finally, choose a designed distance 2dm2\leq d\leq m, and set the parity check matrix HH as in Definition 2.

The degrees of freedom of this process suggest how wide this class of block codes is. Furthermore, RS skew-differential block codes are not cyclic, see Section 4. Nevertheless, Algorithm 1 provides a decoding method as efficient as the classical Peterson-Gorenstein-Zierler algorithm.

Let us now describe a concrete example. Consider 𝔽=𝔽2(a)\mathbb{F}=\mathbb{F}_{2}(a) the field with 256=28256=2^{8} elements, where a8+a4+a3+a2+1=0a^{8}+a^{4}+a^{3}+a^{2}+1=0. For brevity, except for 0 and 1, we write the elements of 𝔽\mathbb{F} as powers of aa. Let σ\sigma be the Frobenius automorphism of 𝔽\mathbb{F}, that is, σ(c)=c2\sigma(c)=c^{2} for any c𝔽c\in\mathbb{F}, which has order m=8m=8. Then, Corollary 8 says that our code is of length 88. We set v=av=a, yielding the σ\sigma-derivation given by δ(c)=ac2+ac\delta(c)=ac^{2}+ac for every c𝔽c\in\mathbb{F}, and u=a2u=a^{2}, so φu(c)=a26c2+ac\varphi_{u}(c)=a^{26}c^{2}+ac for every c𝔽c\in\mathbb{F}.

We now choose α=a9\alpha=a^{9}. The matrix AA from Proposition 1 takes now the form

A=(a9a146a103a244a214a89aa200a146a103a244a214a89aa200a237a103a244a214a89aa200a237a95a244a214a89aa200a237a95a105a214a89aa200a237a95a105a175a89aa200a237a95a105a175a184aa200a237a95a105a175a184a21a200a237a95a105a175a184a21a159).A=\left(\begin{array}[]{llllllll}a^{9}&a^{146}&a^{103}&a^{244}&a^{214}&a^{89}&a&a^{200}\\ a^{146}&a^{103}&a^{244}&a^{214}&a^{89}&a&a^{200}&a^{237}\\ a^{103}&a^{244}&a^{214}&a^{89}&a&a^{200}&a^{237}&a^{95}\\ a^{244}&a^{214}&a^{89}&a&a^{200}&a^{237}&a^{95}&a^{105}\\ a^{214}&a^{89}&a&a^{200}&a^{237}&a^{95}&a^{105}&a^{175}\\ a^{89}&a&a^{200}&a^{237}&a^{95}&a^{105}&a^{175}&a^{184}\\ a&a^{200}&a^{237}&a^{95}&a^{105}&a^{175}&a^{184}&a^{21}\\ a^{200}&a^{237}&a^{95}&a^{105}&a^{175}&a^{184}&a^{21}&a^{159}\end{array}\right).

The determinant of AA equals a47a^{47}, so that α\alpha is a cyclic vector. Finally, we set a designed distance d=5d=5. Let then C=C(φu,a9,5)𝔽8C=C_{(\varphi_{u},a^{9},5)}\subseteq\mathbb{F}^{8} be the [8,4,5]256[8,4,5]_{256}-linear code defined as the left kernel of the following matrix HH. From HH, by standard methods, we have also computed a generating matrix GG.

H=(a9a146a103a244a146a103a244a214a103a244a214a89a244a214a89aa214a89aa200a89aa200a237aa200a237a95a200a237a95a105) and G=(1000a105a69a221a410100a109a25a232a1660010a145a54a104a360001a251a141a42a60).H=\left(\begin{array}[]{llll}a^{9}&a^{146}&a^{103}&a^{244}\\ a^{146}&a^{103}&a^{244}&a^{214}\\ a^{103}&a^{244}&a^{214}&a^{89}\\ a^{244}&a^{214}&a^{89}&a\\ a^{214}&a^{89}&a&a^{200}\\ a^{89}&a&a^{200}&a^{237}\\ a&a^{200}&a^{237}&a^{95}\\ a^{200}&a^{237}&a^{95}&a^{105}\end{array}\right)\text{ and }G=\left(\begin{array}[]{llllllll}1&0&0&0&a^{105}&a^{69}&a^{221}&a^{41}\\ 0&1&0&0&a^{109}&a^{25}&a^{232}&a^{166}\\ 0&0&1&0&a^{145}&a^{54}&a^{104}&a^{36}\\ 0&0&0&1&a^{251}&a^{141}&a^{42}&a^{60}\end{array}\right).

The reader may refer to Section 4 and Remark 26 for the explicit calculation of a non-commutative generator polynomial of CC so that the encoding can be performed in a similar way as for cyclic codes.

Let us exemplify the encoding-decoding process. We recall that the error-correcting capacity of CC is τ=2\tau=2. Suppose we want to transmit the message

M=(a61,a102,a182,a250),M=\left(a^{61},a^{102},a^{182},a^{250}\right),

so that we encode it to a codeword

c=MG=(a61,a102,a182,a250,a33,a126,a121,a226)C.c=MG=\left(a^{61},a^{102},a^{182},a^{250},a^{33},a^{126},a^{121},a^{226}\right)\in C.

During the transmission, cc is corrupted by adding the error vector

e=(0,a2,0,a2,0,0,0,0),e=\left(0,a^{2},0,a^{2},0,0,0,0\right),

yielding then the received word

y=c+e=(a61,a6,a182,a107,a33,a126,a121,a226).y=c+e=\left(a^{61},a^{6},a^{182},a^{107},a^{33},a^{126},a^{121},a^{226}\right).

Now, we run Algorithm 1. We first calculate the syndromes

yH=(a32,a96,a250,a236),yH=\left(a^{32},a^{96},a^{250},a^{236}\right),

so it is detected some error. The syndrome matrix is then

S=(a32a3a96a67a250a221).S=\left(\begin{array}[]{ll}a^{32}&a^{3}\\ a^{96}&a^{67}\\ a^{250}&a^{221}\end{array}\right).

The first column of SS is a multiple of its second column, so that SS has rank 11 and, henceforth, θ=1\theta=1. Therefore, the matrix BB in Algorithm 1 takes the form

B=(a32a96).B=\left(\begin{array}[]{ll}a^{32}\\ a^{96}\end{array}\right).

and a basis of its left kernel is provided by the vector

ρ=(a,a192).\rho=\left(a,a^{192}\right).

The matrix LL defined in (6) becomes

L=(aa192000000a27a125a12900000a132a44a148a30000a193a105a215a102a6000a222a134a212a108a134a1200a205a117a209a216a212a25a240a158a70a195a206a88a245a222a48),L=\left(\begin{array}[]{llllllll}a&a^{192}&0&0&0&0&0&0\\ a^{27}&a^{125}&a^{129}&0&0&0&0&0\\ a^{132}&a^{44}&a^{148}&a^{3}&0&0&0&0\\ a^{193}&a^{105}&a^{215}&a^{102}&a^{6}&0&0&0\\ a^{222}&a^{134}&a^{212}&a^{108}&a^{134}&a^{12}&0&0\\ a^{205}&a^{117}&a^{209}&a^{216}&a^{212}&a^{25}&a^{24}&0\\ a^{158}&a^{70}&a^{195}&a^{206}&a^{88}&a^{245}&a^{222}&a^{48}\end{array}\right),

and LALA results

LA=(a246a98a77a98a245a164a146a23a137a27a44a27a24a129a103a22a203a169a175a169a222a76a244a124a26a40a184a40a160a124a214a58a10a203a21a203a155a58a89a116a43a26a159a26a25a116aa169a61a10a198a10a28a169a200a40).LA=\left(\begin{array}[]{llllllll}a^{246}&a^{98}&a^{77}&a^{98}&a^{245}&a^{164}&a^{146}&a^{23}\\ a^{137}&a^{27}&a^{44}&a^{27}&a^{24}&a^{129}&a^{103}&a^{22}\\ a^{203}&a^{169}&a^{175}&a^{169}&a^{222}&a^{76}&a^{244}&a^{124}\\ a^{26}&a^{40}&a^{184}&a^{40}&a^{160}&a^{124}&a^{214}&a^{58}\\ a^{10}&a^{203}&a^{21}&a^{203}&a^{155}&a^{58}&a^{89}&a^{116}\\ a^{43}&a^{26}&a^{159}&a^{26}&a^{25}&a^{116}&a&a^{169}\\ a^{61}&a^{10}&a^{198}&a^{10}&a^{28}&a^{169}&a^{200}&a^{40}\end{array}\right).

The identification of the positions k{0,1,7}k\in\{0,1\dots,7\} such that ϵkRow(LA)\epsilon_{k}\notin\mathrm{Row}(LA) can be easily done if we compute the row reduced echelon form of LALA,

LArref=(10000000010100000010000000001000000001000000001000000001)LA_{rref}=\left(\begin{array}[]{llllllll}1&0&0&0&0&0&0&0\\ 0&1&0&1&0&0&0&0\\ 0&0&1&0&0&0&0&0\\ 0&0&0&0&1&0&0&0\\ 0&0&0&0&0&1&0&0\\ 0&0&0&0&0&0&1&0\\ 0&0&0&0&0&0&0&1\end{array}\right)

It is clear that ϵ1\epsilon_{1} and ϵ3\epsilon_{3} do not belong to Row(LA)\mathrm{Row}(LA). Therefore, there are errors at positions 1 and 3. We finally need to solve a linear system in order to recover the error values. Indeed, the error values are the solution of the system

(a146a103a244a214)(e1e3)=(a32a96).\left(\begin{array}[]{rr}a^{146}&a^{103}\\ a^{244}&a^{214}\end{array}\right)\left(\begin{array}[]{r}e_{1}\\ e_{3}\end{array}\right)=\left(\begin{array}[]{rr}a^{32}&a^{96}\end{array}\right).

The solution is, as expected, e1=a2e_{1}=a^{2} and e3=a2e_{3}=a^{2}.

2.2. Convolutional codes

Another case of interest is K=𝔽(t)K=\mathbb{F}(t), the field of rational functions over a finite field 𝔽\mathbb{F}. Linear codes over 𝔽(t)\mathbb{F}(t) are examples convolutional codes, see [6] for details. It is well-known that the group Aut𝔽𝔽(t)\mathrm{Aut}_{\mathbb{F}}{\mathbb{F}(t)} of all 𝔽\mathbb{F}–linear automorphisms of the field 𝔽(t)\mathbb{F}(t) can be identified with the projective general linear group PGL(2,𝔽)\operatorname{PGL}(2,\mathbb{F}) via the map Φ:PGL(2,𝔽)Aut𝔽𝔽(t)\Phi:\operatorname{PGL}(2,\mathbb{F})\to\mathrm{Aut}_{\mathbb{F}}{\mathbb{F}(t)}, which maps any matrix M=(σ1σ2σ3σ4)PGL(2,𝔽)M=\left(\begin{smallmatrix}\sigma_{1}&\sigma_{2}\\ \sigma_{3}&\sigma_{4}\end{smallmatrix}\right)\in\operatorname{PGL}(2,\mathbb{F}) to the automorphism Φ(M)\Phi(M) determined by the rule tσ1t+σ2σ3t+σ4t\mapsto\frac{\sigma_{1}t+\sigma_{2}}{\sigma_{3}t+\sigma_{4}}. Every automorphism of KK has then finite order and, on the other hand, the field of constants of any derivation of 𝔽(t)\mathbb{F}(t) has finite index. Thus, Proposition 7 says that virtually all choices of σ\sigma, δ\delta and uu lead to non trivial RS skew-differential convolutional codes to which the decoding algorithm 1 may be applied.

Remark 10.

Algorithm 1 deals with the Hamming metric, which is not the usual distance considered in convolutional codes. However, the use of Hamming distances in the convolutional setting might be of interest in the technology of distributed storage (see [13, Sect. 2]).

Let us now detail a specific example. Let 𝔽=𝔽2(a)\mathbb{F}=\mathbb{F}_{2}(a), where a2+a+1=0a^{2}+a+1=0, the field with four elements and set K=𝔽(t)K=\mathbb{F}(t) the field of rational functions with coefficients in 𝔽\mathbb{F}. We shall follow likewise the construction method in Subection 2.1.

As commented above, an automorphism of KK is determined by four elements σ1,σ2,σ3,σ4\sigma_{1},\sigma_{2},\sigma_{3},\sigma_{4} in 𝔽\mathbb{F} verifying σ1σ4σ2σ30\sigma_{1}\sigma_{4}-\sigma_{2}\sigma_{3}\not=0. Set σ1=0\sigma_{1}=0, σ2=1\sigma_{2}=1, σ3=1\sigma_{3}=1 and σ4=a\sigma_{4}=a yielding the automorphism σ:KK\sigma:K\to K determined by σ(t)=1/(t+a)\sigma(t)=1/(t+a), which has order m=5m=5. For simplicity, we fix v=1v=1, so that δ(c)=σ(c)c\delta(c)=\sigma(c)-c for any cKc\in K, and u=0u=0, and then φu=δ\varphi_{u}=\delta. Now, consider α=t\alpha=t. Since the matrix

A=(tt2+at+1t+at2+at+1t+1t4+at3+t2t3+1t2+at+1tt2+at+1t+at2+at+1t+1t4+at3+t2t3+1t2+at+1tt2+at+1a2t2+tt2+at+1t+1t4+at3+t2t3+1t2+at+1tt2+at+1a2t2+ta2t4+t3+at2+at+1a2t3+at2+tt4+at3+t2t3+1t2+at+1tt2+at+1a2t2+ta2t4+t3+at2+at+1a2t3+at2+tt2+at+1at2+tt2+at+1tt2+at+1a2t2+ta2t4+t3+at2+at+1a2t3+at2+tt2+at+1at2+tt2+at+1t+a+1)A=\left(\begin{array}[]{ccccc}t&\frac{t^{2}+at+1}{t+a}&\frac{t^{2}+at+1}{t+1}&\frac{t^{4}+at^{3}+t^{2}}{t^{3}+1}&\frac{t^{2}+at+1}{t}\\[3.44444pt] \frac{t^{2}+at+1}{t+a}&\frac{t^{2}+at+1}{t+1}&\frac{t^{4}+at^{3}+t^{2}}{t^{3}+1}&\frac{t^{2}+at+1}{t}&\frac{t^{2}+at+1}{a^{2}t^{2}+t}\\[3.44444pt] \frac{t^{2}+at+1}{t+1}&\frac{t^{4}+at^{3}+t^{2}}{t^{3}+1}&\frac{t^{2}+at+1}{t}&\frac{t^{2}+at+1}{a^{2}t^{2}+t}&\frac{a^{2}t^{4}+t^{3}+at^{2}+at+1}{a^{2}t^{3}+at^{2}+t}\\[3.44444pt] \frac{t^{4}+at^{3}+t^{2}}{t^{3}+1}&\frac{t^{2}+at+1}{t}&\frac{t^{2}+at+1}{a^{2}t^{2}+t}&\frac{a^{2}t^{4}+t^{3}+at^{2}+at+1}{a^{2}t^{3}+at^{2}+t}&\frac{t^{2}+at+1}{at^{2}+t}\\[3.44444pt] \frac{t^{2}+at+1}{t}&\frac{t^{2}+at+1}{a^{2}t^{2}+t}&\frac{a^{2}t^{4}+t^{3}+at^{2}+at+1}{a^{2}t^{3}+at^{2}+t}&\frac{t^{2}+at+1}{at^{2}+t}&\frac{t^{2}+at+1}{t+a+1}\end{array}\right)

is non-singular, we get from Proposition 1 that α\alpha is a cyclic vector for δ\delta. Finally, the designed distance is selected to be d=3d=3. So the skew-differential convolutional code C=C(δ,t,3)C=C_{(\delta,t,3)} can correct a single error, and a parity check matrix takes the form

H=(tt2+at+1t+at2+at+1t+at2+at+1t+1t2+at+1t+1t4+a2t3+t2t3+1t4+a2t3+t2t3+1t2+at+1tt2+at+1tt2+at+1a2t2+t)H=\left(\begin{array}[]{cc}t&\frac{t^{2}+at+1}{t+a}\\[3.44444pt] \frac{t^{2}+at+1}{t+a}&\frac{t^{2}+at+1}{t+1}\\[3.44444pt] \frac{t^{2}+at+1}{t+1}&\frac{t^{4}+a^{2}t^{3}+t^{2}}{t^{3}+1}\\[3.44444pt] \frac{t^{4}+a^{2}t^{3}+t^{2}}{t^{3}+1}&\frac{t^{2}+at+1}{t}\\[3.44444pt] \frac{t^{2}+at+1}{t}&\frac{t^{2}+at+1}{a^{2}t^{2}+t}\end{array}\right)

Let us briefly exemplify our decoding algorithm. Suppose that we receive the word

y=(0, 1,a2,t2+ta2t2+t+1, 0),y=\left(0,\,1,\,a^{2},\,\frac{t^{2}+t}{a^{2}t^{2}+t+1},\,0\right),

whose matrix of syndromes is as follows:

S=(t3+at2+tt4+at2+at+1t3+at2+ta2t5+t4+t3+a2t2+t+1).S=\left(\begin{array}[]{c}\frac{t^{3}+at^{2}+t}{t^{4}+at^{2}+at+1}\\[3.44444pt] \frac{t^{3}+at^{2}+t}{a^{2}t^{5}+t^{4}+t^{3}+a^{2}t^{2}+t+1}\end{array}\right).

Henceforth, the system detects errors during the transmission. Clearly θ=1\theta=1 and B=SB=S, and the vector ρ\rho becomes ρ=(1,at+1)\rho=\left(1,at+1\right). The matrix LL takes the form

L=(1a2t+10000a2t2+1t+at+1t+a000t2+at+1at+a1t+a+1at+a00t4+at3+t2at3+at2+at+1at2+at+a1a2t2+t+aa2tat+1).L=\left(\begin{array}[]{ccccc}1&a^{2}t+1&0&0&0\\[3.44444pt] 0&\frac{a^{2}t^{2}+1}{t+a}&\frac{t+1}{t+a}&0&0\\[3.44444pt] 0&\frac{t^{2}+at+1}{at+a}&1&\frac{t+a+1}{at+a}&0\\[3.44444pt] 0&\frac{t^{4}+at^{3}+t^{2}}{at^{3}+a}&\frac{t^{2}+at+1}{at^{2}+at+a}&\frac{1}{a^{2}t^{2}+t+a}&\frac{a^{2}t}{at+1}\end{array}\right).

We then compute LALA and its row reduced echelon form obtaining that

LArref=(10000010000010000010).LA_{\mathrm{rref}}=\left(\begin{array}[]{ccccc}1&0&0&0&0\\ 0&1&0&0&0\\ 0&0&1&0&0\\ 0&0&0&1&0\end{array}\right).

It is clear that ϵ4\epsilon_{4} does not belong to RowLA\mathrm{Row}LA, so we find an error at position 4. When computing the error value we find that

e4=t2t4+at2+at+1.e_{4}=\frac{t^{2}}{t^{4}+at^{2}+at+1}.

Therefore, the correction gives the codeword

c=(0, 1,a2,t2+ta2t2+t+1,t2t4+at2+at+1),c=\left(0,\,1,\,a^{2},\,\frac{t^{2}+t}{a^{2}t^{2}+t+1},\,\frac{t^{2}}{t^{4}+at^{2}+at+1}\right),

and the original message would be M=(0, 1,a2)M=\left(0,\,1,\,a^{2}\right).

3. Mathematical set up and proofs

The aim of this section is to prove the mathematical results that ground Algorithm 1. So, let (σ,δ)(\sigma,\delta) be a skew-derivation on a field KK, as defined in Section 1. Recall that, for each uKu\in K, we define

(11) φu(a)=σ(a)u+δ(a),\varphi_{u}(a)=\sigma(a)u+\delta(a),

for all aKa\in K, thus obtaining a map φu:KK\varphi_{u}:K\to K. This additive map becomes right KφuK^{\varphi_{u}}–linear, where

Kφu={bK:φu(ab)=φu(a)b for all aK}K^{\varphi_{u}}=\{b\in K:\varphi_{u}(ab)=\varphi_{u}(a)b\text{ for all }a\in K\}

is the φu\varphi_{u}–invariant subfield of KK.

Let End(K)\mathrm{End}(K) denote the ring of endomorphisms of KK as an additive group. Let \mathcal{R} be the subring of End(K)\mathrm{End}(K) generated by KK and φu\varphi_{u}. Here, KK is seen as a subring of End(K)\mathrm{End}(K) by considering each element aa of KK as the additive endomorphism given by multiplication by aa.

Proposition 11.

If the dimension of KK as a KφuK^{\varphi_{u}}–vector space is m<m<\infty, then the minimal polynomial of φu\varphi_{u} as a KφuK^{\varphi_{u}}–linear map has degree mm. Consequently, φu\varphi_{u} has at least a cyclic vector αK\alpha\in K. Moreover,

(12) =KKφuKφum1.\mathcal{R}=K\oplus K\varphi_{u}\oplus\cdots\oplus K\varphi_{u}^{m-1}.
Proof.

It easily follows from (1) that, in End(K)\mathrm{End}(K),

(13) φua=σ(a)φu+δ(a),\varphi_{u}a=\sigma(a)\varphi_{u}+\delta(a),

for all aKa\in K. This implies that =K+Kφu+Kφu2+\mathcal{R}=K+K\varphi_{u}+K\varphi_{u}^{2}+\cdots.

Now, since dimKφuK=m\dim_{K^{\varphi_{u}}}K=m, the minimal polynomial of φu\varphi_{u} as a KφuK^{\varphi_{u}}–linear map has degree nmn\leq m. This in particular implies that =K+Kφu++Kφun1\mathcal{R}=K+K\varphi_{u}+\cdots+K\varphi_{u}^{n-1}. Oh the other hand, by Jacobson-Bourbaki’s correspondence [25, Theorem 4.1], m=dimKm=\dim_{K}\mathcal{R}. We thus derive that n=mn=m and (12). ∎

In the rest of the paper, we assume that dimKφuK=m<\dim_{K^{\varphi_{u}}}K=m<\infty. According to Proposition 11, the minimal equation of φu\varphi_{u} over KφuK^{\varphi_{u}} has degree mm, that is, is of the form

(14) 0=φum+μm1φum1++μ1φu+μ00=\varphi_{u}^{m}+\mu_{m-1}\varphi_{u}^{m-1}+\cdots+\mu_{1}\varphi_{u}+\mu_{0}

with μiKφu\mu_{i}\in K^{\varphi_{u}} for i=0,,m1i=0,\dots,m-1.

Let αK\alpha\in K. For any subset {t1,,tn}{0,,m1}\{t_{1},\dots,t_{n}\}\subseteq\{0,\dots,m-1\}, define, following [5], the matrix

W(φut1(α),,φutn(α))=(φut1(α)φut2(α)φutn(α)φut1+1(α)φut2+1(α)φutn+1(α)φut1+n1(α)φut2+n1(α)φutn+n1(α)).W(\varphi_{u}^{t_{1}}(\alpha),\dots,\varphi_{u}^{t_{n}}(\alpha))=\left(\begin{array}[]{ccccc}\varphi_{u}^{t_{1}}(\alpha)&\varphi_{u}^{t_{2}}(\alpha)&&\cdots&\varphi_{u}^{t_{n}}(\alpha)\\ \varphi_{u}^{t_{1}+1}(\alpha)&\varphi_{u}^{t_{2}+1}(\alpha)&&\cdots&\varphi_{u}^{t_{n}+1}(\alpha)\\ \vdots&\vdots&&\ddots&\vdots\\ \varphi_{u}^{t_{1}+n-1}(\alpha)&\varphi_{u}^{t_{2}+n-1}(\alpha)&&\cdots&\varphi_{u}^{t_{n}+n-1}(\alpha)\end{array}\right).
Lemma 12.

Given αK\alpha\in K, the following conditions are equivalent.

  1. (1)

    α\alpha is a cyclic vector for the KφuK^{\varphi_{u}}–linear map φu\varphi_{u}.

  2. (2)

    W(α,φu(α),,φum1(α))W(\alpha,\varphi_{u}(\alpha),\dots,\varphi_{u}^{m-1}(\alpha)) is an invertible matrix.

  3. (3)

    W(φut1(α),,φutn(α))W(\varphi_{u}^{t_{1}}(\alpha),\dots,\varphi_{u}^{t_{n}}(\alpha)) is an invertible matrix for every subset {t1,,tn}{0,,m1}\{t_{1},\dots,t_{n}\}\subseteq\{0,\dots,m-1\}.

Proof.

For every nonzero cKc\in K, consider the conjugate of uu by cc:

uc=σ(c)uc1+δ(c)c1.{}^{c}u=\sigma(c)uc^{-1}+\delta(c)c^{-1}.

By Lemma 6,

Kφu={cK{0}|uc=u}{0};K^{\varphi_{u}}=\{c\in K\setminus\{0\}\;|\;{}^{c}u=u\}\cup\{0\};

the latter being the (σδ)(\sigma-\delta)–centralizer of uu in the terminology of [5]. Since α\alpha is a cyclic vector for φu\varphi_{u} precisely when {α,φu(α),,φum1(α)}\{\alpha,\varphi_{u}(\alpha),\dots,\varphi_{u}^{m-1}(\alpha)\} is a KφuK^{\varphi_{u}}–basis of KK, we may apply [5, Theorem 5.3] to deduce that the three conditions are equivalent. ∎

Proof of Proposition 1. It is a consequence of Proposition 11 and Lemma 12.

Fix a cyclic vector αK\alpha\in K of φu\varphi_{u}. Let A=W(α,φu(α),,φum1(α))A=W(\alpha,\varphi_{u}(\alpha),\dots,\varphi_{u}^{m-1}(\alpha)) which, by Lemma 12, is an invertible matrix with coefficients in KK.

Theorem 13.

For 2dm2\leq d\leq m, let C(φu,α,d)KmC_{(\varphi_{u},\alpha,d)}\subseteq K^{m} be the left kernel of the matrix

(15) H=(αφu(α)φud2(α)φu(α)φu2(α)φud1(α)φum1(α)φum(α)φum+d3(α)).H=\left(\begin{array}[]{ccccc}\alpha&\varphi_{u}(\alpha)&&\cdots&\varphi_{u}^{d-2}(\alpha)\\ \varphi_{u}(\alpha)&\varphi_{u}^{2}(\alpha)&&\cdots&\varphi_{u}^{d-1}(\alpha)\\ \vdots&\vdots&&\ddots&\vdots\\ \varphi_{u}^{m-1}(\alpha)&\varphi_{u}^{m}(\alpha)&&\cdots&\varphi_{u}^{m+d-3}(\alpha)\end{array}\right).

Then C(φu,α,d)C_{(\varphi_{u},\alpha,d)} is a KK–linear code of dimension md+1m-d+1 and minimum Hamming distance dd.

Proof.

Since HH consists of the first d1d-1 columns of the invertible matrix AA, we get that the dimension of the left KK–vector subspace C(φu,α,d)C_{(\varphi_{u},\alpha,d)} is md+1m-d+1. Every submatrix MM of order d1d-1 of HH is of the form

M=(φuk1(α)φuk1+1(α)φuk1+d2(α)φuk2(α)φuk2+1(α)φuk2+d2(α)φukd1(α)φukd1+1(α)φukd1+d2(α)),M=\left(\begin{array}[]{ccccc}\varphi_{u}^{k_{1}}(\alpha)&\varphi_{u}^{k_{1}+1}(\alpha)&&\cdots&\varphi_{u}^{k_{1}+d-2}(\alpha)\\ \varphi_{u}^{k_{2}}(\alpha)&\varphi_{u}^{k_{2}+1}(\alpha)&&\cdots&\varphi_{u}^{k_{2}+d-2}(\alpha)\\ \vdots&\vdots&&\ddots&\vdots\\ \varphi_{u}^{k_{d-1}}(\alpha)&\varphi_{u}^{k_{d-1}+1}(\alpha)&&\cdots&\varphi_{u}^{k_{d-1}+d-2}(\alpha)\end{array}\right),

where {k1,,kd1}{0,,m1}\{k_{1},\dots,k_{d-1}\}\subseteq\{0,\dots,m-1\}. We see that

M=W(φuk1(α),,φukd1(α))t,M=W(\varphi_{u}^{k_{1}}{(\alpha)},\dots,\varphi_{u}^{k_{d-1}}{(\alpha}))^{t},

which is, by Lemma 12, invertible. Hence, the Hamming distance of C(φu,α,d)C_{(\varphi_{u},\alpha,d)} is dd. ∎

The proof of Lemma 12 is based on a result from [5] in the realm of the theory of skew polynomials. Indeed, for some purposes, it is useful to understand the ring \mathcal{R} as a factor ring of a ring of skew polynomials. Let us derive such a description.

The skew derivation (σ,δ)(\sigma,\delta) leads to the construction of a non commutative polynomial ring R=K[x;σ,δ]R=K[x;\sigma,\delta], often called a skew polynomial ring (see, e.g., [15]). The elements of RR are polynomials in an indeterminate xx with coefficients from KK written on the left (that is, the monomials 1,x,x2,1,x,x^{2},\dots form a basis of RR as a left vector space over KK). The multiplication of RR is subject to the following rule:

(16) xa=σ(a)x+δ(a),xa=\sigma(a)x+\delta(a),

for all aKa\in K.

Proposition 14.

The map π:R\pi:R\to\mathcal{R} that sends ifixi\sum_{i}f_{i}x^{i} onto ifiφui\sum_{i}f_{i}\varphi_{u}^{i} is a surjective ring homomorphism whose kernel is Rμ=μRR\mu=\mu R, where

μ=xm+i=0m1μixi\mu=x^{m}+\sum_{i=0}^{m-1}\mu_{i}x^{i}

is a polynomial in RR built from the coefficients of the minimal equation of φu\varphi_{u}, see (14).

Hence, there is a KK–linear isomorphism of rings R/RμR/R\mu\cong\mathcal{R}.

Proof.

Observe that π\pi is clearly left KK–linear and, from Proposition 11, surjective. It is multiplicative since φu\varphi_{u} satisfies (13). Its kernel is an ideal II of RR which, as a left ideal, is generated by the monic polynomial hRh\in R in II of least degree, due to the left Euclidean division algorithm enjoyed by RR (see, e.g. [15]). Also, the degree of hh is the dimension of R/IR/I\cong\mathcal{R} as a left KK–vector space. By Proposition 11, this dimension equals mm. We see that μ\mu fits these requirements, so that h=μh=\mu, and I=RμI=R\mu. Finally, since II is an ideal, we get that I=μRI=\mu R as well. ∎

We may thus identify \mathcal{R} with R/RμR/R\mu, and, therefore, its elements with polynomials in RR with degree smaller than mm (this identification makes correspond φu\varphi_{u} with xx). This view makes more natural some concepts, like the degree of an element of \mathcal{R}.

The coordinate isomorphism of left KK–vector spaces

𝔳:Km,(i=0m1fixi(f0,f1,,fm1))\mathfrak{v}:\mathcal{R}\to K^{m},\qquad(\sum_{i=0}^{m-1}f_{i}x^{i}\mapsto(f_{0},f_{1},\dots,f_{m-1}))

allows the transfer of elements and vector subspaces between both KK–vector spaces.

We are ready to consider our decoding algorithm. Let cC(φu,α,d)c\in C_{(\varphi_{u},\alpha,d)} be a codeword that is transmitted through a noisy channel, and let

y=(y0,y1,,ym1)Kmy=(y_{0},y_{1},\dots,y_{m-1})\in K^{m}

be the received word. We may decompose y=c+ey=c+e, where

e=(e0,e1,,em1)Kme=(e_{0},e_{1},\dots,e_{m-1})\in K^{m}

is the error vector. By k1,,kv{0,1,,m1}k_{1},\dots,k_{v}\in\{0,1,\dots,m-1\} we denote the positions where the nonzero error values ek1,,ekvKe_{k_{1}},\dots,e_{k_{v}}\in K occur. We prove first that the latter can be computed from yy once the positions are known.

Proposition 15.

If 0id20\leq i\leq d-2, then

(17) j=0m1yjφui+j(α)=j=1vekjφui+kj(α).\sum_{j=0}^{m-1}y_{j}\varphi_{u}^{i+j}(\alpha)=\sum_{j=1}^{v}e_{k_{j}}\varphi_{u}^{i+k_{j}}(\alpha).

Therefore, if vd1v\leq d-1, then (ek1,,ekv)(e_{k_{1}},\dots,e_{k_{v}}) is the unique solution of the linear system of equations

(18) j=0m1yjφui+j(α)=j=1vekjφui+kj(α),(0iv1).\sum_{j=0}^{m-1}y_{j}\varphi_{u}^{i+j}(\alpha)=\sum_{j=1}^{v}e_{k_{j}}\varphi_{u}^{i+k_{j}}(\alpha),\qquad(0\leq i\leq v-1).
Proof.

The equations (17) hold because C(φu,α,d)C_{(\varphi_{u},\alpha,d)} is the left kernel of the matrix HH defined in (15). The linear system (18) has a unique solution since the matrix

(φuk1(α)φuk1+1(α)φuk1+v1(α)φuk2(α)φuk2+1(α)φuk2+v1(α)φukv(α)φukv+1(α)φukv+v1(α))=W(φuk1(α),,φukv(α))t\left(\begin{array}[]{ccccc}\varphi_{u}^{k_{1}}(\alpha)&\varphi_{u}^{k_{1}+1}(\alpha)&&\cdots&\varphi_{u}^{k_{1}+v-1}(\alpha)\\ \varphi_{u}^{k_{2}}(\alpha)&\varphi_{u}^{k_{2}+1}(\alpha)&&\cdots&\varphi_{u}^{k_{2}+v-1}(\alpha)\\ \vdots&\vdots&&\ddots&\vdots\\ \varphi_{u}^{k_{v}}(\alpha)&\varphi_{u}^{k_{v}+1}(\alpha)&&\cdots&\varphi_{u}^{k_{v}+v-1}(\alpha)\end{array}\right)=W(\varphi_{u}^{k_{1}}(\alpha),\dots,\varphi_{u}^{k_{v}}(\alpha))^{t}

is invertible by Lemma 12.

Our aim is then to design an algorithm for computing the positions k1,,kvk_{1},\dots,k_{v} where the errors ek1,,ekve_{k_{1}},\dots,e_{k_{v}} appear. We assume in our exposition that e0e\neq 0.

For every pair (i,k)(i,k) of non-negative integers, set

(19) Si,k=j=1vφui+kj(α)ψk(ekj),S_{i,k}=\sum_{j=1}^{v}\varphi_{u}^{i+k_{j}}(\alpha)\psi^{k}(e_{k_{j}}),

where

(20) ψ(a)=σ1(δ(a)ua)\psi(a)=\sigma^{-1}(\delta(a)-ua)

for all aKa\in K.

Lemma 16.

For all pairs (i,k)(i,k) of non-negative integers, we have

(21) σ(Si,k+1)=δ(Si,k)Si+1,k\sigma(S_{i,k+1})=\delta(S_{i,k})-S_{i+1,k}

Moreover,

(22) Si,0=j=0m1yjφui+j(α),S_{i,0}=\sum_{j=0}^{m-1}y_{j}\varphi_{u}^{i+j}(\alpha),

for every i=0,,d2i=0,\dots,d-2, and the values Si,kS_{i,k} can be computed recursively by means of (21) from the received word yy whenever i+kd2i+k\leq d-2.

Proof.

Observe that

(23) σ(aψ(b))=δ(ab)φu(a)b,\sigma(a\psi(b))=\delta(ab)-\varphi_{u}(a)b,

for all a,bKa,b\in K. Indeed,

σ(aψ(b))=(20)σ(a)(δ(b)ub)=(1)δ(ab)δ(a)bσ(a)ub=(11)δ(ab)φu(a)b.\begin{array}[]{rcl}\sigma(a\psi(b))&\stackrel{{\scriptstyle\eqref{psi}}}{{=}}&\sigma(a)(\delta(b)-ub)\\ &\stackrel{{\scriptstyle\eqref{torcida}}}{{=}}&\delta(ab)-\delta(a)b-\sigma(a)ub\\ &\stackrel{{\scriptstyle\eqref{varphi}}}{{=}}&\delta(ab)-\varphi_{u}(a)b.\end{array}

For every pair (i,k)(i,k),

σ(Si,k+1)=(19)j=1vσ(φui+kj(α)ψk+1(ekj))=(23)j=1vδ(φui+kj(α)ψk(ekj))j=1vφui+kj+1(α)ψk(ekj)=(19)δ(Si,k)Si+1,k.\begin{array}[]{rcl}\sigma(S_{i,k+1})&\stackrel{{\scriptstyle\eqref{Sik}}}{{=}}&\sum_{j=1}^{v}\sigma(\varphi_{u}^{i+k_{j}}(\alpha)\psi^{k+1}(e_{k_{j}}))\\ &\stackrel{{\scriptstyle\eqref{psiphi}}}{{=}}&\sum_{j=1}^{v}\delta(\varphi_{u}^{i+k_{j}}(\alpha)\psi^{k}(e_{k_{j}}))-\sum_{j=1}^{v}\varphi_{u}^{i+k_{j}+1}(\alpha)\psi^{k}(e_{k_{j}})\\ &\stackrel{{\scriptstyle\eqref{Sik}}}{{=}}&\delta(S_{i,k})-S_{i+1,k}.\end{array}

Finally, since KK is commutative, (22) follows from (17). ∎

Set T={k1,,kv}T=\{k_{1},\dots,k_{v}\}, and let ATA_{T} be the submatrix of A=W(α,φu(α),,φum1(α))A=W(\alpha,\varphi_{u}(\alpha),\dots,\varphi_{u}^{m-1}(\alpha)) formed by the columns at positions k1,,kvk_{1},\dots,k_{v}, that is

AT=(φuk1(α)φuk2(α)φukv(α)φuk1+1(α)φuk2+1(α)φukv+1(α)φuk1+m1(α)φuk2+m1(α)φukv+m1(α)).A_{T}=\left(\begin{array}[]{ccccc}\varphi_{u}^{k_{1}}(\alpha)&\varphi_{u}^{k_{2}}(\alpha)&&\cdots&\varphi_{u}^{k_{v}}(\alpha)\\ \varphi_{u}^{k_{1}+1}(\alpha)&\varphi_{u}^{k_{2}+1}(\alpha)&&\cdots&\varphi_{u}^{k_{v}+1}(\alpha)\\ \vdots&\vdots&&\ddots&\vdots\\ \varphi_{u}^{k_{1}+m-1}(\alpha)&\varphi_{u}^{k_{2}+m-1}(\alpha)&&\cdots&\varphi_{u}^{k_{v}+m-1}(\alpha)\end{array}\right).
Proposition 17.

Define, for every 1r1\leq r, the matrix

Er=(ek1ψ(ek1)ψr1(ek1)ek2ψ(ek2)ψr1(ek2)ekvψ(ekv)ψr1(ekv)).E_{r}=\left(\begin{array}[]{ccccc}e_{k_{1}}&\psi(e_{k_{1}})&&\cdots&\psi^{r-1}(e_{k_{1}})\\ e_{k_{2}}&\psi(e_{k_{2}})&&\cdots&\psi^{r-1}(e_{k_{2}})\\ \vdots&\vdots&&\ddots&\vdots\\ e_{k_{v}}&\psi(e_{k_{v}})&&\cdots&\psi^{r-1}(e_{k_{v}})\end{array}\right).

and set

θ=max{r:rankEr=r}.\theta=\max\{r:rank\,E_{r}=r\}.
  1. (1)

    If VKmV\subseteq K^{m} is the left kernel of the matrix ATEθA_{T}E_{\theta}, then 𝔳1(V)=ρ\mathfrak{v}^{-1}(V)=\mathcal{R}\rho for some ρ\rho\in\mathcal{R} of degree θ\theta.

  2. (2)

    If BB is the matrix formed by the first θ+1\theta+1 rows of ATEθA_{T}E_{\theta}, then we may choose ρ=ρ0+ρ1x++ρθxθ\rho=\rho_{0}+\rho_{1}x+\cdots+\rho_{\theta}x^{\theta}, for any nonzero vector (ρ0,ρ1,,ρθ)(\rho_{0},\rho_{1},\dots,\rho_{\theta}) in the left kernel of BB.

Proof.

(1) We will prove that the KK–vector subspace I=𝔳1(V)I=\mathfrak{v}^{-1}(V) of \mathcal{R} is a left ideal. To do this, we need just to check that xIIxI\subseteq I. Given i=0m1aixi\sum_{i=0}^{m-1}a_{i}x^{i}\in\mathcal{R} we get from (16), since μ=0\mu=0 in \mathcal{R}, that

(24) x(i=0m1aixi)=i=0m1(σ(ai1)+δ(ai)σ(am1)μi)xi,x(\sum_{i=0}^{m-1}a_{i}x^{i})=\sum_{i=0}^{m-1}(\sigma(a_{i-1})+\delta(a_{i})-\sigma(a_{m-1})\mu_{i})x^{i},

where we set a1=0a_{-1}=0.

Suppose that (a0,,am2,am1)ATEθ=0(a_{0},\dots,a_{m-2},a_{m-1})A_{T}E_{\theta}=0. The maximality of θ\theta ensures that the last column of Eθ+1E_{\theta+1} is a right linear combination of the former θ\theta columns. Hence,

(a0,,am2,am1)ATEθ+1=0.(a_{0},\dots,a_{m-2},a_{m-1})A_{T}E_{\theta+1}=0.

Observe that

ATEθ+1=(S0,0S0,1S0,θS1,0S1,1S1,θSm1,0Sm1,1Sm1,θ).A_{T}E_{\theta+1}=\left(\begin{array}[]{ccccc}S_{0,0}&S_{0,1}&&\cdots&S_{0,\theta}\\ S_{1,0}&S_{1,1}&&\cdots&S_{1,\theta}\\ \vdots&\vdots&&\ddots&\vdots\\ S_{m-1,0}&S_{m-1,1}&&\cdots&S_{m-1,\theta}\end{array}\right).

Therefore,

(25) i=0m1aiSi,k=0, for all 0kθ.\sum_{i=0}^{m-1}a_{i}S_{i,k}=0,\qquad\text{ for all }0\leq k\leq\theta.

For 0kθ10\leq k\leq\theta-1 we have

i=0m1(σ(ai1)+δ(ai))Si,k=(1)i=0m1{σ(ai1)Si,k+δ(aiSi,k)σ(ai)δ(Si,k)}=(25)i=0m1σ(ai1)Si,ki=0m1σ(ai)δ(Si,k)=(21)i=0m1σ(ai1)Si,ki=0m1σ(ai)[σ(Si,k+1)+Si+1,k]=i=0m1σ(ai1)Si,kσ(i=0m1aiSi,k+1)i=0m1σ(ai)Si+1,k=(25)i=0m1σ(ai1)Si,ki=0m1σ(ai)Si+1,k=σ(am1)Sm,k.\begin{array}[]{rcll}\sum_{i=0}^{m-1}(\sigma(a_{i-1})+\delta(a_{i}))S_{i,k}&\stackrel{{\scriptstyle\eqref{torcida}}}{{=}}&\sum_{i=0}^{m-1}\{\sigma(a_{i-1})S_{i,k}+\delta(a_{i}S_{i,k})-\sigma(a_{i})\delta(S_{i,k})\}\\ &\stackrel{{\scriptstyle\eqref{sumas}}}{{=}}&\sum_{i=0}^{m-1}\sigma(a_{i-1})S_{i,k}-\sum_{i=0}^{m-1}\sigma(a_{i})\delta(S_{i,k})&\\ &\stackrel{{\scriptstyle\eqref{Sik+1}}}{{=}}&\sum_{i=0}^{m-1}\sigma(a_{i-1})S_{i,k}\\ &&-\sum_{i=0}^{m-1}\sigma(a_{i})[\sigma(S_{i,k+1})+S_{i+1,k}]\\ &=&\sum_{i=0}^{m-1}\sigma(a_{i-1})S_{i,k}-\sigma(\sum_{i=0}^{m-1}a_{i}S_{i,k+1})\\ &&-\sum_{i=0}^{m-1}\sigma(a_{i})S_{i+1,k}\\ &\stackrel{{\scriptstyle\eqref{sumas}}}{{=}}&\sum_{i=0}^{m-1}\sigma(a_{i-1})S_{i,k}-\sum_{i=0}^{m-1}\sigma(a_{i})S_{i+1,k}\\ &=&-\sigma(a_{m-1})S_{m,k}.\\ \end{array}

Since, by (14), φum+i=0m1μiφui=0\varphi_{u}^{m}+\sum_{i=0}^{m-1}\mu_{i}\varphi_{u}^{i}=0, we get

Sm,k=j=1vφum+kj(α)ψk(ekj)=j=1v[i=0m1μiφukj+i(α)]ψk(ekj)=i=0m1μij=1vφukj+i(α)ψk(ekj)=i=0m1μiSi,k.\begin{array}[]{rcl}S_{m,k}&=&\sum_{j=1}^{v}\varphi_{u}^{m+k_{j}}(\alpha)\psi^{k}(e_{k_{j}})\\ &=&\sum_{j=1}^{v}[-\sum_{i=0}^{m-1}\mu_{i}\varphi_{u}^{k_{j}+i}(\alpha)]\psi^{k}(e_{k_{j}})\\ &=&-\sum_{i=0}^{m-1}\mu_{i}\sum_{j=1}^{v}\varphi_{u}^{k_{j}+i}(\alpha)\psi^{k}(e_{k_{j}})\\ &=&-\sum_{i=0}^{m-1}\mu_{i}S_{i,k}.\end{array}

Then i=0m1(σ(ai1)+δ(ai))Si,k=i=0m1σ(am1)μiSi,k\sum_{i=0}^{m-1}(\sigma(a_{i-1})+\delta(a_{i}))S_{i,k}=\sum_{i=0}^{m-1}\sigma(a_{m-1})\mu_{i}S_{i,k} and, therefore,

(b0,b1,,bm1)ATEθ=0,(b_{0},b_{1},\dots,b_{m-1})A_{T}E_{\theta}=0,

where bi=σ(ai1)+δ(ai)σ(am1)b_{i}=\sigma(a_{i-1})+\delta(a_{i})-\sigma(a_{m-1}) for i=0,,m1i=0,\dots,m-1.

We thus deduce from (24) that x(i=0m1aixi)Ix(\sum_{i=0}^{m-1}a_{i}x^{i})\in I whenever i=0m1aixiI\sum_{i=0}^{m-1}a_{i}x^{i}\in I. Hence, II is a left ideal of \mathcal{R} and I=ρI=\mathcal{R}\rho for some nonzero polynomial ρ\rho. As for its degree concerns, we have

degρ=dimKρ=dimKKmV=θ,\deg\rho=\dim_{K}\frac{\mathcal{R}}{\mathcal{R}\rho}=\dim_{K}\frac{K^{m}}{V}=\theta,

since ATEθA_{T}E_{\theta} is full rank.

(2) We know from (1) that, if ρ=ρ0++ρθxθ\rho=\rho_{0}+\cdots+\rho_{\theta}x^{\theta}, then the vector (ρ0,,ρθ,0,,0)Km(\rho_{0},\dots,\rho_{\theta},0,\dots,0)\in K^{m} belongs to the left kernel of ATEθA_{T}E_{\theta}. Now, the statement should be clear. ∎

Next, we will state the result that will allow the location of the error positions. We need to construct a matrix from the polynomial ρ\rho given in Proposition 17.

For j=0,,m1j=0,\dots,m-1 and i=0,mθ1i=0,\dots m-\theta-1, set

l0,j={ρjif j=0,,θ0if j=θ+1,,m1,li,1=0.l_{0,j}=\begin{cases}\rho_{j}&\text{if }j=0,\dots,\theta\\ 0&\text{if }j=\theta+1,\dots,m-1\end{cases},\qquad l_{i,-1}=0.

We may then construct a matrix

(26) L=(l0,0l0,1l0,m1l1,0l1,1l1,m1lmθ1,0lmθ1,1lmθ1,m1)L=\left(\begin{array}[]{ccccc}l_{0,0}&l_{0,1}&&\cdots&l_{0,m-1}\\ l_{1,0}&l_{1,1}&&\cdots&l_{1,m-1}\\ \vdots&\vdots&&\ddots&\vdots\\ l_{m-\theta-1,0}&l_{m-\theta-1,1}&&\cdots&l_{m-\theta-1,m-1}\end{array}\right)

by defining its entries recursively as

li+1,j=σ(li,j1)+δ(li,j).l_{i+1,j}=\sigma(l_{i,j-1})+\delta(l_{i,j}).

For i=0,,m1i=0,\dots,m-1, let ϵi\epsilon_{i} denote the vector of KmK^{m} whose ii–th component is equal to 11, and every other component is 00. By Row(LA)Row(LA) we denote the row space of the matrix LALA.

Theorem 18.

If T={k1,,kv}T=\{k_{1},\dots,k_{v}\} is the set of error positions, then

T={k{0,,m1}:ϵkRow(LA)}.T=\{k\in\{0,\dots,m-1\}:\epsilon_{k}\notin Row(LA)\}.
Proof.

Let us first prove that the rows of LL form a KK–basis of V=ker(ATEθ)V=\ker(\cdot A_{T}E_{\theta}), the left kernel of ATEθA_{T}E_{\theta}. According to Proposition 17, 𝔳(ρ)=V\mathfrak{v}(\mathcal{R}\rho)=V, where ρ=i=0θρixi\rho=\sum_{i=0}^{\theta}\rho_{i}x^{i}.

Observe that ρ,xρ,,xm1θρ\rho,x\rho,\dots,x^{m-1-\theta}\rho have different degrees θ,,m1\theta,\dots,m-1, so they are KK–linearly independent in \mathcal{R}. Since the dimension of ρ\mathcal{R}\rho is mρm-\rho, we get that they form a basis and, hence, the rows of

Mρ=(𝔳(ρ)𝔳(xρ)𝔳(xm1θρ))M_{\rho}=\left(\begin{array}[]{c}\mathfrak{v}(\rho)\\ \mathfrak{v}(x\rho)\\ \vdots\\ \mathfrak{v}(x^{m-1-\theta}\rho)\end{array}\right)

give a basis of 𝔳(ρ)\mathfrak{v}(\mathcal{R}\rho). Note that the first row of MρM_{\rho} is 𝔳(ρ)\mathfrak{v}(\rho). Indeed, a straightforward computation based on (1) lead to admit that the jj-th row of LL is, precisely, 𝔳(xjρ)\mathfrak{v}(x^{j}\rho), for j=0,,m1θj=0,\dots,m-1-\theta. Thus, L=MρL=M_{\rho}.

Let II be denote the identity matrix of size m×mm\times m, and denote by ITI_{T} the submatrix of II formed by the columns at positions k1,,kvk_{1},\dots,k_{v}. Note that AT=AITA_{T}=AI_{T}. This implies that Row(LA)=ker(ITEθ)Row(LA)=\ker(\cdot I_{T}E_{\theta}). Indeed, we have proved that Row(L)=ker(ATEθ)Row(L)=\ker(\cdot A_{T}E_{\theta}), so that

xRow(LA)xA1Row(L)xA1ker(ATEθ)xker(ITEθ).x\in Row(LA)\Leftrightarrow xA^{-1}\in Row(L)\Leftrightarrow xA^{-1}\in\ker(\cdot A_{T}E_{\theta})\Leftrightarrow x\in\ker(\cdot I_{T}E_{\theta}).

Let i{0,,m1}i\in\{0,\dots,m-1\}. If iTi\in T, then ϵiITEθ\epsilon_{i}I_{T}E_{\theta} is the ii-th row of EθE_{\theta}, while if iTi\notin T, then ϵiITEθ=0\epsilon_{i}I_{T}E_{\theta}=0. Since every row of EθE_{\theta} is non zero, we get that ϵiRow(LA)\epsilon_{i}\in Row(LA) if and only if iTi\notin T. ∎

In our decoding algorithm, we need to compute θ\theta from the received word yy. To this end, set

τ=d12,\tau=\lfloor\frac{d-1}{2}\rfloor,

the integer part of (d1)/2(d-1)/2.

Lemma 19.

For every r1r\geq 1, define the matrix

Sr=(S0,0S0,1S0,r1S1,0S1,1S1,r1Sτ,0Sτ,1Sτ,r1).S_{r}=\left(\begin{array}[]{ccccc}S_{0,0}&S_{0,1}&&\cdots&S_{0,r-1}\\ S_{1,0}&S_{1,1}&&\cdots&S_{1,r-1}\\ \vdots&\vdots&&\ddots&\vdots\\ S_{\tau,0}&S_{\tau,1}&&\cdots&S_{\tau,r-1}\end{array}\right).

If vτv\leq\tau, then θ=max{r:rankSr=r}.\theta=\max\{r:rank\,S_{r}=r\}.

Proof.

Observe that Sr=MErS_{r}=ME_{r}, where

M=(φuk1(α)φuk2(α)φukv(α)φuk1+1(α)φuk2+1(α)φukv+1(α)φuk1+τ(α)φuk2+τ(α)φukv+τ(α)).M=\left(\begin{array}[]{ccccc}\varphi_{u}^{k_{1}}(\alpha)&\varphi_{u}^{k_{2}}(\alpha)&&\cdots&\varphi_{u}^{k_{v}}(\alpha)\\ \varphi_{u}^{k_{1}+1}(\alpha)&\varphi_{u}^{k_{2}+1}(\alpha)&&\cdots&\varphi_{u}^{k_{v}+1}(\alpha)\\ \vdots&\vdots&&\ddots&\vdots\\ \varphi_{u}^{k_{1}+\tau}(\alpha)&\varphi_{u}^{k_{2}+\tau}(\alpha)&&\cdots&\varphi_{u}^{k_{v}+\tau}(\alpha)\end{array}\right).

Since vτv\leq\tau, the rank of MM is vv due to Lemma 12. We thus get that rkSr=rkErrk\,S_{r}=rk\,E_{r} for all r1r\geq 1, which gives the desired determination of θ\theta. ∎

Next, we derive the proofs of Proposition 3 and Theorem 4.

Proof of Proposition 3. Lemma 19 gives that, whenever vτv\leq\tau,

max{r:rankSr=r}=θ=max{r:rankEr=r}.\max\{r:rank\,S_{r}=r\}=\theta=\max\{r:rank\,E_{r}=r\}.

By Lemma 16, the matrix BB consists of the first θ+1\theta+1 rows of ATEθA_{T}E_{\theta}, as in Proposition 17.(2). Now, BB has rank θ\theta, so that its left kernel is of dimension 11 as a KK–vector space. Proposition 2 guarantees that (ρ0,ρ1,,ρθ)(\rho_{0},\rho_{1},\dots,\rho_{\theta}) belongs to this kernel and ρθ0\rho_{\theta}\neq 0.

Proof of Theorem 4. By Lemma 19, since we assume that vτv\leq\tau, we get that

max{r:rankSr=r}=θ=max{r:rankEr=r}.\max\{r:rank\,S_{r}=r\}=\theta=\max\{r:rank\,E_{r}=r\}.

Thus, Theorem 18 is of application to obtain the first part of Theorem 4. The second statement is given by Proposition 15.

We finally state and prove the main result in this paper.

Theorem 20.

Assume KK to be a commutative field and vτ=(d1)/2v\leq\tau=\lfloor(d-1)/2\rfloor. Then Algorithm 1 correctly computes the error vector.

Proof.

The output of Line 1 is e=0e=0 since C(φu,α,d)C_{(\varphi_{u},\alpha,d)} is the kernel of the matrix HH in Definition 2. Line 2 runs whenever e0e\neq 0. In such a case, since we are assuming the the number of errors is vτv\leq\tau, it follows from Proposition 15 that Si,00S_{i,0}\neq 0 for at least one 0iτ0\leq i\leq\tau, as the linear system (18) has a unique solution. This is to mean that S10S_{1}\neq 0 and, henceforth, always under the condition vτv\leq\tau, the number θ\theta computed in Line 22 equals max{r:rankSr=r}\max\{r:rank\,S_{r}=r\}. Proposition 3 guarantees the existence of a nonzero vector ρ\rho to be computed in Line 3, which serves as the initial datum to the calculation of the matrix LL in Line 4. Finally, Theorem 4 assures that the error positions and values computed in Lines 5 and 6 lead to a correct output in Line 7. ∎

4. Skew-differential codes as (σ,δ)(\sigma,\delta)–codes.

In Section 3, the ring \mathcal{R} was proved (Proposition 14) to be isomorphic to a factor ring of the skew-polynomial ring R=K[x;σ,δ]R=K[x;\sigma,\delta]. Indeed, as we will see later, the codes C(φu,α,d)C_{(\varphi_{u},\alpha,d)} are left ideals of \mathcal{R} and, henceforth, they constitute a class of (σ,δ)(\sigma,\delta)–codes in the sense of [3], which enjoys an efficient algebraic decoding algorithm (see Algorithm 1). In this section, our aim is to describe precisely how the codes C(φu,α,d)C_{(\varphi_{u},\alpha,d)} look like from the perspective of the ring RR, although this view, we think, is less practical, for our purposes, than our choice in the previous sections, which are independent from the forthcoming material.

Given uKu\in K we may consider the principal left ideal R(xu)R(x-u) of RR generated by xuRx-u\in R. Since KK is a subring of RR in the obvious way, the factor left RR–module R/R(xu)R/R(x-u) is a left KK–vector space of dimension 11. An explicit isomorphism

(27) R/R(xu)KR/R(x-u)\cong K

sends the equivalence class of g(x)Rg(x)\in R onto its right evaluation g[u]Kg[u]\in K, defined as the remainder of the left Euclidean division

(28) g(x)=q(x)(xu)+g[u],g(x)=q(x)(x-u)+g[u],

where q(x)Rq(x)\in R is a suitable polynomial.

The left RR–module structure of R/R(xu)R/R(x-u) is transferred to KK via the isomorphism (27), and it leads to a ring homomorphism

(29) λ:REnd(K),\lambda:R\longrightarrow\mathrm{End}(K),

where End(K)\mathrm{End}(K) is still denote the ring of all additive endomorphisms of KK. Recall that λ\lambda sends fRf\in R onto the map defined by left multiplication by ff according to the left RR–module structure of KK. A straightforward computation shows that λ\lambda sends f=ifixif=\sum_{i}f_{i}x^{i} onto ifiφui\sum_{i}f_{i}\varphi_{u}^{i}, so that it acts as the map π\pi from Proposition 14. Henceforth, the kernel of λ\lambda equals Rμ=μRR\mu=\mu R, and λ\lambda induces the isomorphism R/RμR/R\mu\cong\mathcal{R} from Proposition 14. We are assuming, as in Section 3, that μ0\mu\neq 0 and its degree is mm. Recall that a KK–basis of \mathcal{R} is {1,x,,xm1}\{1,x,\dots,x^{m-1}\} where we are identifying each element of \mathcal{R} with its unique representative in RR of degree smaller than mm. This natural basis of \mathcal{R} leads to the corresponding coordinate isomorphism

𝔳:Km.\mathfrak{v}:\mathcal{R}\to K^{m}.
Definition 21.

A KK–linear code CKmC\subseteq K^{m} is said to be a (σ,δ,u)(\sigma,\delta,u)–code if 𝔳1(C)\mathfrak{v}^{-1}(C) is a left ideal of \mathcal{R}. These codes will be referred to as skew-differential codes.

Remark 22.

In [3], a module (σ,δ)(\sigma,\delta)–code is defined as submodule of a left module of the form R/RfR/Rf, for some nonzero skew polynomial fRf\in R. Indeed, their definition is given for KK a finite field but, obviously, it makes sense for a general field. From this perspective, the (σ,δ,u)(\sigma,\delta,u)–codes are instances of module (σ,δ)(\sigma,\delta)–codes, when one sets f=μf=\mu, the minimal polynomial of φu\varphi_{u} over KφuK^{\varphi_{u}} (and, hence, R/Rf=R/Rf=\mathcal{R}).

Every (σ,δ,u)(\sigma,\delta,u)–code admits a nice presentation in terms of linear polynomials. Recall that, for any cKc\in K^{*}, we have the conjugate uc=σ(c)uc1+δ(c)c1.{}^{c}u=\sigma(c)uc^{-1}+\delta(c)c^{-1}.

Proposition 23.

Every (σ,δ,u)(\sigma,\delta,u)–code is of the form

C=𝔳(g),C=\mathfrak{v}(\mathcal{R}g),

where

(30) g=[xuc1,,xuck],g=[x-{}^{c_{1}}u,\dots,x-{}^{c_{k}}u]_{\ell},

the least common left multiple in RR of xuc1,,xuckx-{}^{c_{1}}u,\dots,x-{}^{c_{k}}u, for some c1,,ckKc_{1},\dots,c_{k}\in K^{*}.

Proof.

Observe that the left \mathcal{R}–module R/R(xu)R/R(x-u) is simple because it is of dimension 11 as a left KK–vector space. By Jacoboson-Bourbaki’s Theorem (see [25, Theorem 4.1]), λ\lambda gives a ring isomorphism End(KKφu),\mathcal{R}\cong\mathrm{End}(K_{K^{\varphi_{u}}}), so \mathcal{R} is isomorphic to a full matrix ring with coefficients in KφuK^{\varphi_{u}}. We know thus that every simple left \mathcal{R}–module is isomorphic to R/R(xu)R/R(x-u). This entails (see, e.g., [8, pp. 40-41]) that every maximal left ideal of \mathcal{R} is of the form (xuc)\mathcal{R}(x-{}^{c}u) for a suitable non-zero cKc\in K. Since every left ideal of \mathcal{R} is the intersection of finitely many maximal left ideals, we get the description (30). ∎

Our next aim is to discuss when the representation (30) is irredundant, which will also lead to the computation of a parity-check matrix of the code CC. We will use that the non-commutative evaluation defined in (28) obeys some rules, which are to be recalled.

Following [16] define by recursion, for aKa\in K:

N0(a)=1,N_{0}(a)=1,
Nn+1(a)=σ(Nn(a))a+δ(Nn(a)).N_{n+1}(a)=\sigma(N_{n}(a))a+\delta(N_{n}(a)).

If g(x)=igixiK[x;σ,δ]g(x)=\sum_{i}g_{i}x^{i}\in K[x;\sigma,\delta] then, by [16, Lemma 2.4],

(31) g[a]=igiNi(a).g[a]=\sum_{i}g_{i}N_{i}(a).

Following [5], define the Vandermonde matrix

Vn(c1,,ck)=(111c1c2ckN2(c1)N2(c2)N2(ck)Nn1(c1)Nn1(c2)Nn1(ck))V_{n}(c_{1},\dots,c_{k})=\left(\begin{array}[]{ccccc}1&1&&\cdots&1\\ c_{1}&c_{2}&&\cdots&c_{k}\\ N_{2}(c_{1})&N_{2}(c_{2})&&\cdots&N_{2}(c_{k})\\ \vdots&\vdots&&\ddots&\vdots\\ N_{n-1}(c_{1})&N_{n-1}(c_{2})&&\cdots&N_{n-1}(c_{k})\end{array}\right)

and the Wronskian matrix

Wnu(c1,,ck)=(c1c2ckφu(c1)φu(c2)φu(ck)φun1(c1)φun1(c2)φun1(ck))W_{n}^{u}(c_{1},\dots,c_{k})=\left(\begin{array}[]{ccccc}c_{1}&c_{2}&&\cdots&c_{k}\\ \varphi_{u}(c_{1})&\varphi_{u}(c_{2})&&\cdots&\varphi_{u}(c_{k})\\ \vdots&\vdots&&\ddots&\vdots\\ \varphi_{u}^{n-1}(c_{1})&\varphi_{u}^{n-1}(c_{2})&&\cdots&\varphi_{u}^{n-1}(c_{k})\end{array}\right)

for each n1n\geq 1. Then, by [5, Proposition 4.4],

(32) Vn(uc1,,uck)diag(c1,..,ck)=Wnu(c1,,ck),V_{n}({}^{c_{1}}u,\dots,{}^{c_{k}}u)diag(c_{1},..,c_{k})=W_{n}^{u}(c_{1},\dots,c_{k}),

where diag(c1,,ck)diag(c_{1},\dots,c_{k}) denotes the diagonal matrix built from the list c1,,ckc_{1},\dots,c_{k}.

Proposition 24.

Let {c1,,ck}K\{c_{1},\dots,c_{k}\}\subseteq K^{*} be a linearly independent set over KφuK^{\varphi_{u}}, with km1k\leq m-1, and set

g=[xuc1,,xuck].g=[x-{}^{c_{1}}u,\dots,x-{}^{c_{k}}u]_{\ell}.

Then deg(g)=kdeg(g)=k, gg is a right divisor of μ\mu, and 𝔳(g)\mathfrak{v}(\mathcal{R}g) is the left kernel of the Wronskian matrix

Wmu(c1,,ck).W_{m}^{u}(c_{1},\dots,c_{k}).

In other words, C=𝔳(g)C=\mathfrak{v}(\mathcal{R}g) is a KK–linear skew-differential code of dimension mkm-k with parity-check matrix Wmu(c1,,ck)W_{m}^{u}(c_{1},\dots,c_{k}).

Proof.

By [5, Theorem 5.3], deg(g)=kdeg(g)=k. On the other hand, f=k=0m1fkxkgf=\sum_{k=0}^{m-1}f_{k}x^{k}\in\mathcal{R}g if and only if xucjx-{}^{c_{j}}u right divides ff for all j=1,,mj=1,\dots,m. This is equivalent, by (28) and (31), to the condition

(f0,,fm1)Vm(uc1,,uck)=0.(f_{0},\dots,f_{m-1})V_{m}({}^{c_{1}}u,...,{}^{c_{k}}u)=0.

By (32), this is equivalent to the condition

(f0,,fm1)Wmu(c1,,ck)=0(f_{0},\dots,f_{m-1})W_{m}^{u}(c_{1},\dots,c_{k})=0

as required. ∎

We are now ready to locate our RS skew-differential codes within the class of all (σ,δ,u)(\sigma,\delta,u)–codes.

Corollary 25.

The code C(φu,α,d)C_{(\varphi_{u},\alpha,d)} is a (σ,δ,u)(\sigma,\delta,u)–code given by C(φu,α,d)=𝔳(g)C_{(\varphi_{u},\alpha,d)}=\mathfrak{v}(\mathcal{R}g), where

g=[xuα,xuφu(α),,xuφud2(α)].g=[x-{}^{\alpha}u,x-{}^{\varphi_{u}(\alpha)}u,\dots,x-{}^{\varphi_{u}^{d-2}(\alpha)}u].
Remark 26.

The code C(φu,α,d)C_{(\varphi_{u},\alpha,d)} was defined by means of its parity-check matrix HH (see Definition 2). Of course, in order to specify the encoding of messages, one may use the standard method for linear codes of constructing a generator matrix from HH, as done in Subsections 2.1 and 2.2.

An alternative is to use the arithmetic of the ring \mathcal{R}. Indeed, one may compute the skew polynomial gg from Corollary 25 and use it as an encoder similarly to the commutative cyclic case. As for the computation of gg concerns, one may use the non-commutative extended Euclidean algorithm (see, e.g. [4, Ch. I, Theorem 4.33]). For instance, in the example described in Subsection 2.1, the set of conjugates becomes

{αu,φu(α)u,φu2(α)u,φu3(α)u}={a137,a212,a141,a225},\{^{\alpha}u,^{\varphi_{u}(\alpha)}u,^{\varphi^{2}_{u}(\alpha)}u,^{\varphi^{3}_{u}(\alpha)}u\}=\{a^{137},a^{212},a^{141},a^{225}\},

so that a generator polynomial of this code is

g=[xa137,xa212,xa141,xa225]=x4+a187x3+a99x2+a98x+a218.g=\left[x-a^{137},x-a^{212},x-a^{141},x-a^{225}\right]_{\ell}=x^{4}+a^{187}x^{3}+a^{99}x^{2}+a^{98}x+a^{218}.
Remark 27.

Module (σ,δ)(\sigma,\delta)–codes over a finite field 𝔽\mathbb{F} generated be a polynomial of the form [xα1,,xαn]𝔽[x;σ,δ][x-\alpha_{1},\dots,x-\alpha_{n}]_{\ell}\in\mathbb{F}[x;\sigma,\delta] have been proved to be MDS in [3, Theorem 5] whenever α1,,αn𝔽\alpha_{1},\dots,\alpha_{n}\in\mathbb{F} are suitable powers of an element in the algebraic closure of 𝔽\mathbb{F} subject to additional conditions called “Hamming 1” and “Hamming 2”. These codes are different, in the case K=𝔽K=\mathbb{F}, from that of Corollary 25, which are known to be MDS by Theorem 13. Also, a decoding algorithm, different from Algorithm 1 was designed in [3], under the condition “Hamming 1” which, in particular, requires δ=0\delta=0.

Finally, we analyze how skew RS codes from [12] and RS differential convolutional codes [13] are particular examples of RS skew-differential codes. In this way, Algorithm 1 both extends to a considerable broader class of codes and, also, simplifies the decoding algorithms designed in [12] and [13].

Example 28.

Let σ\sigma be an automorphism of KK of finite order mm, and choose a cyclic vector α\alpha of σ\sigma as a vector space over KσK^{\sigma}. Set β=α1σ(α)\beta=\alpha^{-1}\sigma(\alpha) and

g=[xβ,xσ(β),,xσd2(β)],g=[x-\beta,x-\sigma(\beta),\dots,x-\sigma^{d-2}(\beta)]_{\ell},

the left least common multiple being computed in K[x;σ]K[x;\sigma]. Skew RS codes from [12] are defined as 𝔳(gCLOSE\mathfrak{v}(\mathcal{R}g), where

=K[x;σ]/xm1.\mathcal{R}=K[x;\sigma]/\langle x^{m}-1\rangle.

Since 1α=β1^{\alpha}=\beta, and φ1=σ\varphi_{1}=\sigma we see, after Corollary 25, that

𝔳(g)=C(σ,α,d).\mathfrak{v}(\mathcal{R}g)=C_{(\sigma,\alpha,d)}.

That is, for u=1u=1 and δ=0\delta=0, we obtain the skew RS codes from [12]. Thus, we may apply the decoding algorithm presented here, which is simpler than that of [12].

Example 29.

Let δ\delta be any 𝔽\mathbb{F}–linear derivation of the the field 𝔽(t)\mathbb{F}(t) of rational functions in the variable tt with coefficients in a finite field 𝔽\mathbb{F}. If pp is the characteristic of 𝔽\mathbb{F}, then the degree of 𝔽(t)\mathbb{F}(t) over the field of constants 𝔽(t)δ\mathbb{F}(t)^{\delta} is pp, and the minimal polynomial of δ\delta becomes μ=xpγx\mu=x^{p}-\gamma x, where γ=δp(t)/δ(t)\gamma=\delta^{p}(t)/\delta(t) (see [13] for details). For any c𝔽(t)c\in\mathbb{F}(t), the logarithmic derivative is defined as L(c)=c1δ(c)L(c)=c^{-1}\delta(c). Choose a cyclic vector α\alpha for the 𝔽(t)δ\mathbb{F}(t)^{\delta}–linear map δ\delta and set

g=[xL(α),xL(δ(α)),,xL(δd2(α))]𝔽(t)[x;δ].g=[x-L(\alpha),x-L(\delta(\alpha)),\dots,x-L(\delta^{d-2}(\alpha))]_{\ell}\in\mathbb{F}(t)[x;\delta].

In [13], the differential convolutional RS codes are defined as 𝔳(g)\mathfrak{v}(\mathcal{R}g), where, this time,

=𝔽(t)[x;δ]/xpγx.\mathcal{R}=\mathbb{F}(t)[x;\delta]/\langle x^{p}-\gamma x\rangle.

Since 0α=L(α)0^{\alpha}=L(\alpha) and φ0=δ\varphi_{0}=\delta, we deduce from Corollary 25 that

𝔳(g)=C(δ,α,d).\mathfrak{v}(\mathcal{R}g)=C_{(\delta,\alpha,d)}.

In other words, we obtain the differential convolutional RS codes from [13] by setting σ=id𝔽(t)\sigma=id_{\mathbb{F}(t)} and u=0u=0, to which we also may apply the decoding algorithm presented in this paper. Again, it results simpler than that from [13].

References

  • [1] D. Boucher, W. Geiselmann, and F. Ulmer. Skew-cyclic codes. Appl. Algebr. Eng. Comm 18 (2007), 379–389.
  • [2] D. Boucher, F. Ulmer. Coding with skew polynomial rings. J. Symb. Comp. 44 (2009), 1644–1656.
  • [3] D. Boucher, F. Ulmer. Linear codes using skew polynomials with automorphisms and derivations. Des. Codes Cryptogr. 70 (2014) 405–431.
  • [4] J. L. Bueso, J. Gómez-Torrecillas, and A. Verschoren. Algorithmic methods in Non-Commutative Algebras. Applications to Quantum Groups. Springer, Dordretch, 2003.
  • [5] J. Delenclos and A. Leroy. Noncommutative symmetric functions and W-polynomials. Journal of Algebra and Its Applications, 6 (2007), 815–837.
  • [6] G. D. Forney. Convolutional codes I: Algebraic structure. IEEE Trans. Inform. Theory, 16 (1970) 720–738.
  • [7] H. Gluesing-Luerssen and W. Schmale. On cyclic convolutional codes. Acta Appl. Math. 82 (2004), 183–237.
  • [8] J. Gómez-Torrecillas. Basic Module Theory over Non-commutative Rings with Computational Aspects of Operator Algebras. In: Algebraic and Algorithmic Aspects of Differential and Integral Operators, M. Barkatou, T. Cluzeau, G. Regensburger, M. Rosenkranz, eds. LNCS 8372, pages 23-82, Springer, 2014.
  • [9] J. Gómez-Torrecillas, F. J. Lobillo and G. Navarro. A new perspective of cyclicity in convolutional codes. IEEE Trans. Inform. Theory 62 (2016), 2702–2706.
  • [10] J. Gómez-Torrecillas, F. J. Lobillo, and G. Navarro. Ideal codes over separable ring extensions. IEEE Trans. Inform. Theory, 63 (2017), 2796–2813.
  • [11] J. Gómez-Torrecillas, F. J. Lobillo, and G. Navarro. A Sugiyama-like decoding algorithm for convolutional codes. IEEE Trans. Inform. Theory, 63 (2017) 6216–6226.
  • [12] J. Gómez-Torrecillas, F. J. Lobillo, and G. Navarro. Peterson-Gorenstein-Zierler algorithm for skew RS codes. Linear and Multilinear Algebra, 66 (2018) 469–487.
  • [13] J. Gómez-Torrecillas, F. J. Lobillo, G. Navarro. and P. Sánchez-Hernández. Peterson-Gorenstein-Zierler Algorithm for differential convolutional codes. Preprint arXiv:1910.11574
  • [14] D. Gorenstein, and N. Zierler. A class of error-correcting codes in pmp^{m} symbols. J. Soc. Ind. Appl. Math. 9 (1961), 207–214.
  • [15] N. Jacobson. Finite-dimensional division algebras over fields. Springer-Verlag, 1996. Corrected 2nd print 2010.
  • [16] T. Y. Lam, and A. Leroy. Vandermonde and wronskian matrices over division rings. J. Algebra, 119 (1988), 308–336.
  • [17] S. Liu, F. Manganiello, and F. R. Kschischang. Construction and decoding of generalized skew-evaluation codes. In: 2015 IEEE 14th CanadianWorkshop on Information Theory (CWIT), St. John’s, NL, pages 9–13, 2015.
  • [18] S. R. López-Permouth, and S. Szabo. Convolutional codes with additional algebraic structure. J. Pure Appl. Algebra 217 (2013), 958–972.
  • [19] U. Martínez-Peñas. Skew and linearized Reed-Solomon codes and maximum sum rank distance codes over any division ring. J. Algebra 504 (2018) 587-612.
  • [20] W. W. Peterson. Encoding and error-correction procedures for the Bose-Chaudhuri codes. IRE. Trans. Inform. Theory 6 (1960), 459–470.
  • [21] P. Piret. Structure and constructions of cyclic convolutional codes. IEEE Trans. Inform. Theory, 22 (1976), 147–155.
  • [22] C. Roos. On the structure of convolutional and cyclic convolutional codes. IEEE Trans. Inform. Theory, 25 (1979), 673–686.
  • [23] SageMath, the Sage Mathematics Software System (Version 8.2), The Sage Developers, 2019, http://www.sagemath.org.
  • [24] Y. Sugiyama, M. Kasahara, S. Hirasawa, and T. A. Namekawa. Method for solving key equation for decoding Goppa codes. Inform. Control, 27 (1975), 87–99.
  • [25] M. Sweedler. The predual theorem to the Jacobson-Bourbaki theorem. Transactions of the American Mathematical Society, 213 (1975) 391–406.
  • [26] D. J. Winter. The structure of fields. Springer-Verlag New York, 1974.