**4.2 Hypervector spaces over hyperfields**

We give some properties related to the hypervector space as it is done by Sanjay Roy and Samanta [23] and all these will allow us to characterize linear codes over a Krasner hyperfield.

From now on, and for the rest of this section, by F we mean a Krasner hyperfield.

**Definition 4.9.** [23] Let F be a Krasner hyperfield. A commutative hypergroup ð Þ <sup>V</sup>, <sup>⊕</sup> <sup>V</sup> together with a map � : F �V <sup>Ð</sup> ! V <sup>Ð</sup> , is called a hypervector space over F if for any *<sup>a</sup>*, *<sup>b</sup>*<sup>∈</sup> <sup>F</sup> and *<sup>x</sup>*, *<sup>y</sup>*∈<sup>V</sup> <sup>Ð</sup> , the following conditions hold:

$$\begin{aligned} \text{1.} &a \cdot \left(\boldsymbol{\pi} \oplus\_{\boldsymbol{\vee}} \boldsymbol{\mathcal{Y}}\right) = a \cdot \boldsymbol{\pi} \oplus\_{\boldsymbol{\vee}} a \cdot \boldsymbol{y} \text{ (right distributive law)}, \\\\ \text{2.} &\left(a \oplus\_{\boldsymbol{\vee}} b\right) \cdot \boldsymbol{\pi} = a \cdot \boldsymbol{\pi} \oplus\_{\boldsymbol{\vee}} b \cdot \boldsymbol{\pi} \text{ (left distributive law)}, \end{aligned}$$

3.*a* � ð Þ¼ *b* � *x* ð Þ� *ab x* (associative law),

$$\mathbf{4}. \mathbf{a} \cdot (\mathbf{x}') = (\mathbf{a}') \cdot \mathbf{x} = (\mathbf{a} \cdot \mathbf{x})',$$

5.*x* ¼ 1 � *x*.

Let us give that trivial example of a hypervector space.

**Example 4.10.** *Let n* <sup>∈</sup> *,* <sup>F</sup>*<sup>n</sup> is a hypervector space over* <sup>F</sup> *where the composition of elements are as follows:*

*<sup>x</sup>* <sup>⊕</sup> *<sup>y</sup>* <sup>¼</sup> *<sup>z</sup>*<sup>∈</sup> <sup>F</sup>*<sup>n</sup>*; *zi* <sup>∈</sup> *xi* <sup>⊕</sup> *yi* , *<sup>i</sup>* <sup>¼</sup> <sup>1</sup> … *<sup>n</sup>* � � and *<sup>a</sup>* � *<sup>x</sup>* <sup>¼</sup> ð Þ *<sup>a</sup>* � *<sup>x</sup>*1, *<sup>a</sup>* � *<sup>x</sup>*2, … , *<sup>a</sup>* � *xn* for any *<sup>x</sup>*, *<sup>y</sup>*<sup>∈</sup> <sup>F</sup>*<sup>n</sup>* and *<sup>a</sup>*<sup>∈</sup> <sup>F</sup>.

**Definition 4.11.** [23] Let <sup>V</sup> <sup>Ð</sup> , <sup>⊕</sup> , � , 1 � � be a hypervector space over <sup>F</sup>. A subset *<sup>A</sup>* <sup>⊆</sup><sup>V</sup> <sup>Ð</sup> is called a subhypervector space of <sup>V</sup> <sup>Ð</sup> if:

1.*A* 6¼ 0,

2. for all *x*, *y*∈ *A*, then *x* ⊕ *y*<sup>0</sup> ⊆ *A*,

3. for all *a*∈ F, for all *x*∈ *A*, then *a* � *x*∈ *A*.

**Definition 4.12.** [23] Let <sup>S</sup> be a subset of a hypervector space <sup>V</sup> <sup>Ð</sup> over F. S is said to be linearly independent if for every *x*1, *x*2, … , *xn* in S and for every *a*1, *a*2, … , *an* in F, (*n* ∈ nf g 0, 1 ) such that 0 ∈*a*<sup>1</sup> � *x*<sup>1</sup> þ *a*<sup>2</sup> � *x*<sup>2</sup> þ ⋯ þ *an* � *xn* implies that *a*<sup>1</sup> ¼ *a*<sup>2</sup> ¼ ⋯ ¼ *an* ¼ 0.

If S is not linearly independent, then we said that S is linearly dependent.

If <sup>S</sup> is a nonempty subset of <sup>V</sup> <sup>Ð</sup> , then the smallest subhypervector space of V containing S is the set define by

$$\begin{aligned} l\langle \mathcal{S} \rangle &= \cup \left\{ \sum\_{i=1}^{n} a\_i \cdot \boldsymbol{\varkappa}\_i \, | \, \boldsymbol{\varkappa}\_i \in \mathcal{S}, a\_i \in \mathcal{F}, n \in \mathbb{N} \backslash \{0, 1\} \right\} \cup l(\mathcal{S}), \text{ (where } l(\mathcal{S}) = \{1, \dots, n\} \text{ are the same sets} \\ l\{a \cdot \boldsymbol{\varkappa} \, | \, a \in \mathcal{F}, \boldsymbol{\varkappa} \in \mathcal{S}\} ). \end{aligned}$$

**Definition 4.13.** [23] Let <sup>V</sup> <sup>Ð</sup> be a hypervector space over <sup>F</sup>. A vector *<sup>x</sup>*<sup>∈</sup> <sup>V</sup> <sup>Ð</sup> is said to be a linear combination of the vectors *<sup>x</sup>*1, *<sup>x</sup>*2, … , *xn* <sup>∈</sup> <sup>V</sup> <sup>Ð</sup> if there exist *a*1, *a*2, … , *an* ∈ F such that *x*∈*a*<sup>1</sup> � *x*<sup>1</sup> þ *a*<sup>2</sup> � *x*<sup>2</sup> þ ⋯ þ *an* � *xn* in the hypervector spaces, the notion of basis exists and he have the following definition.

**Definition 4.14.** *[23] Let* <sup>V</sup> <sup>Ð</sup> *be a hypervector space over* <sup>F</sup> *and* <sup>B</sup> *be a subset of* <sup>V</sup> <sup>Ð</sup> *. The set* <sup>B</sup> *is said to be a basis for* <sup>V</sup> <sup>Ð</sup> *if,*


#### **4.3 Polynomial hyperring**

We assume that <sup>F</sup> is such that for all *<sup>a</sup>*, *<sup>b</sup>*<sup>∈</sup> <sup>F</sup>, *<sup>a</sup>* � *<sup>b</sup>*<sup>0</sup> � � <sup>¼</sup> *<sup>a</sup>*<sup>0</sup> ð Þ� *<sup>b</sup>* <sup>¼</sup> ð Þ *<sup>a</sup>* � *<sup>b</sup>* <sup>0</sup> . Let denote by F½ � *x* the set of all polynomials in the variable *x* over F. Let the polynomials *f x*ð Þ¼ <sup>P</sup>*<sup>n</sup> <sup>i</sup>*¼<sup>0</sup>*aix<sup>i</sup>* and *g x*ð Þ¼ <sup>P</sup>*<sup>m</sup> <sup>i</sup>*¼<sup>0</sup>*bixi* in F½ � *<sup>x</sup>* .

Let us define the set <sup>P</sup><sup>∗</sup> ð Þ <sup>F</sup> ½ �¼f *<sup>x</sup>* <sup>P</sup>*<sup>n</sup> <sup>k</sup>*¼<sup>0</sup>*Akx<sup>k</sup>*; where *Ak* <sup>∈</sup>P<sup>∗</sup> ð Þ <sup>F</sup> , *<sup>n</sup>* <sup>∈</sup> g, the hypersum and hypermultiplication of *f x*ð Þ and *g x*ð Þ are defined as follows:

$$\overline{\oplus} : \mathcal{F}[\mathfrak{x}] \times \mathcal{F}[\mathfrak{x}] \to \mathcal{P}^\* \left( \mathcal{F} \right)[\mathfrak{x}] \tag{1}$$

$$(f(\mathbf{x}), \mathbf{g}(\mathbf{x})) \mapsto (f \overline{\oplus} \mathbf{g})(\mathbf{x}) = (a\_0 \oplus b\_0) + (a\_1 \oplus b\_1)\mathbf{x} + \dots + (a\_M \oplus b\_M)\mathbf{x}^M,\tag{2}$$

$$where \, M = \max\left\{ n, m \right\}. \tag{3}$$

$$\tau: F[\mathfrak{x}] \times F[\mathfrak{x}] \to \mathcal{P}^\*(F)[\mathfrak{x}] \tag{4}$$

$$(f(\mathbf{x}), \mathbf{g}(\mathbf{x})) \mapsto (f\mathbf{g})(\mathbf{x}) = \sum\_{k=0}^{m+n} \left( \sum\_{l+j=k} a\_l \cdot b\_j \right) \mathbf{x}^k, \text{if } \deg(f) \ge 1 \text{ and } \deg(\mathbf{g}) \ge 1 \quad \text{(5)}$$

The following remark is from Jančic-Rašović [24].

**Remark 4.15.** The algebraic hyperstructure ð Þ F½ � *x* , ⊕ , � is an additivemultiplication hyperring.

#### **4.4 Linear codes and cyclic codes over finite hyperfields**

In this section we shall define and discuss about the concept of linear and cyclic codes over the finite Krasner hyperfield F<sup>2</sup> from the **Example 4.6**. Let us recall some basics from code theory. Let C be a linear code, the Hamming distance *dH*ð Þ *x*, *y* between two vectors *x*, *y*∈C is defined to be the number of coordinates in which *x* differs from *y*. The minimum distance of a code C, denoted by *d*ð Þ C , is *d*ð Þ¼ C min f*dH*ð Þ *x*, *y* ∣ *x*, *y*∈C and *x* 6¼ *y*g. In this case we can also compute for a code word *x*∈C, the integer *wH*ð Þ *x* which is the number of nonzero coordinates in *x* also called Hamming weight of *x*.

We denoted by *k* ¼dimð Þ C the dimension of C and the code C is called an ð Þ *n*, *k*, *d* -code which can be represented by his generator matrix [25].

Let us define linear code over F2.

**Definition 4.16.** A subhypervector space of the hypervector space <sup>F</sup>*<sup>n</sup>* <sup>2</sup> is called a linear code C of length *n* over F2.

The concept of dual code is a very useful in the coding theory. Let us define it on the Krasner hyperfield F2.

**Definition 4.17.** Let C be a linear code of length *n* (*n* ≥2) over F2. The dual of C is also a linear code defined by <sup>C</sup>⊥≔ *<sup>y</sup>*<sup>∈</sup> <sup>F</sup>*<sup>n</sup>* <sup>2</sup> <sup>j</sup> <sup>0</sup><sup>∈</sup> *<sup>x</sup>* � *<sup>y</sup><sup>t</sup>* , <sup>∀</sup>*x*∈<sup>C</sup> .

The code <sup>C</sup> is self-dual if C¼C<sup>⊥</sup>.

Here is an basic example of a linear code and his dual.

**Example 4.18.** *Let C* ¼ f g 000, 101, 011, 110, 111 *be a linear code of length* 3 *over F*2*. It's easy to check that the dual of C is defined by C*<sup>⊥</sup> <sup>¼</sup> f g 000, 111 *.*

As in the classical case, the notion of cyclic code on hyperstructures still works with polynomials. So i that way the polynomial *f x*ð Þ¼ *<sup>a</sup>*<sup>0</sup> <sup>þ</sup> *<sup>a</sup>*1*x*<sup>1</sup> <sup>þ</sup> *<sup>a</sup>*2*x*<sup>2</sup> <sup>þ</sup> <sup>⋯</sup> <sup>þ</sup> *an*�<sup>1</sup>*xn*�<sup>1</sup> of degree at most *<sup>n</sup>* � 1 over <sup>F</sup><sup>2</sup> may be considered as the sequence *<sup>a</sup>* <sup>¼</sup> ð Þ *<sup>a</sup>*0, *<sup>a</sup>*1, *<sup>a</sup>*2, … , *an*�<sup>1</sup> of length *<sup>n</sup>* in *<sup>F</sup><sup>n</sup>* <sup>2</sup> . In fact, there is a correspondence between <sup>F</sup>*<sup>n</sup>* 2 and the residue class hyperring <sup>F</sup>2½ � *<sup>x</sup> <sup>x</sup>*ð Þ *<sup>n</sup>*�<sup>1</sup> [25].

$$\begin{aligned} \xi &: \mathcal{F}\_2^n \to \frac{\mathcal{F}\_2[\mathbf{x}]}{(\mathbf{x}^n - \mathbf{1})} \\\\ \mathcal{L} &= (c\_0, c\_1, c\_2, \dots, c\_{n-1}) \mapsto c\_0 + c\_1 \mathbf{x}^1 + c\_2 \mathbf{x}^2 + \dots + c\_{n-1} \mathbf{x}^{n-1}. \end{aligned}$$

Using Theorem 3.7 in [26], the multiplication of *x* by any element of <sup>F</sup>2½ � *<sup>x</sup> <sup>x</sup>*ð Þ *<sup>n</sup>*�<sup>1</sup> is equivalent to applying the shift map *s* of the Definition?? to the corresponding element of <sup>F</sup>*<sup>n</sup>* <sup>2</sup> , so we use the polynomial to define cyclic code.

We are now going to define a distance relation on linear codes over the finite hyperfield F2, which will allow us to detect if there is an error in a received word.

**Proposition 4.19.** *The mapping define by*

$$\begin{aligned} \lceil \mathcal{H} : \mathcal{F}\_2^n \times \mathcal{F}\_2^n \to \mathbb{N} \\ (\varkappa, \jmath) \mapsto \lceil \_{\mathcal{H}} (\varkappa, \jmath) = \operatorname{card} \{ i \in \mathbb{N} \, | \, \varkappa\_i \neq \jmath\_i \} \end{aligned}$$

is a distance on <sup>F</sup>*<sup>n</sup>* <sup>2</sup> , called the Hamming distance.

**Proof**. The proof is similar to the classical case. □

The following remark will be helpful to define Hamming weight.

**Remark 4.20.** For an *<sup>x</sup>*<sup>∈</sup> <sup>F</sup>*<sup>n</sup>* <sup>2</sup> , we write *x* ¼ ð Þ f g *x*<sup>1</sup> , … , f g *xn* such that *x* belongs now to the cartesian product <sup>P</sup> <sup>∗</sup> ð Þ ð Þ <sup>F</sup><sup>2</sup> *<sup>n</sup>* . Hence we can compute *wH*ð Þ¼ *x card i* f g ∈ j 0 ∉ *xi* ¼ *dH*ð Þ 0, *x* .

The following map denoted by *wH* on the cartesian product <sup>P</sup> <sup>∗</sup> ð Þ ð Þ <sup>F</sup><sup>2</sup> *<sup>n</sup>* :

$$\begin{aligned} w\_H &: \left(\mathcal{P}^\*\left(\mathcal{F}\_2\right)\right)^n \to \mathbb{N} \\ a &= \left(a\_1, \ldots, a\_n\right) \mapsto \operatorname{card}\left\{i \in \mathbb{N} \, | \, \mathbf{0} \notin a\_i\right\}. \end{aligned}$$

is the Hamming weight on <sup>F</sup>*<sup>n</sup>* 2. So for all *<sup>x</sup>*, *<sup>y</sup>*<sup>∈</sup> <sup>F</sup>*<sup>n</sup>* 2, we have dHð Þ¼ *x*, *y wH x* ⊕ *y*<sup>0</sup> ð Þ. If C is a linear code over F2, the integer number d ¼ min f g *wH*ð Þj *x x*∈C is called the minimal distance of the code C.

To characterized a linear code of length *n* over F<sup>2</sup> as a subhypervector space of F*n* <sup>2</sup> , it is sufficient to have a basis of that linear code. This basis can often be represented by a *k* � *n*-matrix over F<sup>2</sup> (where *k* is the dimension of the code).

We denoted by M Fð Þ<sup>2</sup> be the set of all matrices over F2.

**Definition 4.21.** Let C be a linear code over F2. We called a generator matrix of C any matrix from M Fð Þ<sup>2</sup> where the rows form a basis of the code C.

**Proposition 4.22.** *Let* B˩ ∈M*<sup>k</sup>*�*<sup>n</sup>*ð Þ F<sup>2</sup> *be a generating matrix of the linear code* C *over* <sup>F</sup>2*, then* C ¼ *<sup>c</sup>*∈*<sup>a</sup>* � B˩<sup>j</sup> *<sup>a</sup>*<sup>∈</sup> <sup>F</sup>*<sup>k</sup>* 2 *.*

**Proof.** Let C be a ½ � *n*, *k* -linear code over F<sup>2</sup> and B˩ a generating matrix of C. Then the rows of B˩ ∈M*k*�*n*ð Þ F<sup>2</sup> form a basis of C. So C consists of all linear combinations of the rows of <sup>B</sup>˩, therefore C ¼ *<sup>c</sup>*∈*<sup>a</sup>* � B˩ <sup>j</sup> *<sup>a</sup>*<sup>∈</sup> <sup>F</sup>*<sup>k</sup>* 2 � �. □.

It is know that the dual code <sup>C</sup><sup>⊥</sup> of the linear code <sup>C</sup> over <sup>F</sup><sup>2</sup> is also linear, so <sup>C</sup><sup>⊥</sup> has a generating matrix called a parity check matrix.

Here and until the end of this paper, we will denoted by B˩ the generating matrix and by H˩ the parity check matrix of the linear code C over F2.

**Example 4.23.** *Let* <sup>B</sup>˩ <sup>¼</sup> 1 01 01 1 � � *be a generating matrix of the linear code C from Example 4.18. Then the parity check matrix of* C *is* H˩ ¼ ð Þ 111 *.*

**Theorem 4.24.** *Let* C *be a linear code of length n (n*≥2*) and dimension k over* F2*. Then* H˩ ∈Mð Þ� *<sup>n</sup>*�*<sup>k</sup> <sup>n</sup>*ð Þ F<sup>2</sup> *and* 0∈ B˩ � H˩ *t . (It should be noted that* H˩ *<sup>t</sup> means the transpose of* H˩*).*

**Proof.** Let the generating matrix and the parity check matrix be denoted

respectively by B˩ ¼ *g*1 ⋮ *gk* 0 B@ 1 CA and <sup>H</sup>˩ <sup>¼</sup> *h*1 ⋮ *hn*�*<sup>k</sup>* 0 B@ 1 CA, where *gi* <sup>∈</sup> <sup>F</sup>*<sup>n</sup>* <sup>2</sup> and *<sup>h</sup> <sup>j</sup>* <sup>∈</sup> <sup>F</sup>*<sup>n</sup>* <sup>2</sup> (for *i* ¼ 1⋯*k* and *j* ¼ 1⋯*n* � *k*). Then, B˩ � H˩ *t* ¼ *<sup>g</sup>*<sup>1</sup> � *<sup>h</sup><sup>t</sup>* <sup>1</sup> *<sup>g</sup>*<sup>1</sup> � *ht* <sup>2</sup> <sup>⋯</sup> *<sup>g</sup>*<sup>1</sup> � *ht n*�*k <sup>g</sup>*<sup>2</sup> � *ht* <sup>1</sup> *<sup>g</sup>*<sup>2</sup> � *<sup>h</sup><sup>t</sup>* <sup>2</sup> <sup>⋯</sup> *<sup>g</sup>*<sup>2</sup> � *<sup>h</sup><sup>t</sup> n*�*k* ⋮ ⋮⋮ ⋮ *gk* � *<sup>h</sup><sup>t</sup>* <sup>1</sup> *gk* � *<sup>h</sup><sup>t</sup>* <sup>2</sup> <sup>⋯</sup> *gk* � *ht n*�*k* 0 BBBBBB@ 1 CCCCCCA . Thus, by the definition of <sup>C</sup><sup>⊥</sup>,

0∈B˩ � H˩ *t* . □

We now give some examples of linear codes over F<sup>2</sup> and we make some comparison between the linear codes over the finite field with two elements <sup>2</sup> and the linear code over the Krasner hyperfield F2.

**Example 4.25.** *Let* <sup>F</sup><sup>3</sup> <sup>2</sup> *be a hypervector space over* F<sup>2</sup> *and* C *be a subhypervector space of* <sup>F</sup><sup>3</sup> <sup>2</sup>*, with dimensional k* ¼ 2*. Then* C *is a linear code of length n* ¼ 3 *and dimension k* ¼ 2 *over* F2*.*

1.*Let* <sup>B</sup><sup>1</sup> <sup>¼</sup> <sup>010</sup> <sup>101</sup> � � *be a generating matrix of the linear code* <sup>C</sup><sup>1</sup> <sup>¼</sup>

f g 000, 010, 101, 111 *over* F2*.* B<sup>1</sup> *is also a generating matrix of a linear code* C<sup>2</sup> ¼ f g 000, 010, 101, 111 *of length 3 and dimension 2 over the finite field* 2*. These two codes* C<sup>1</sup> *and* C<sup>2</sup> *have the same parameters and card*ð Þ¼ C<sup>1</sup> *card*ð Þ C<sup>2</sup> *.*

2.*Let* <sup>B</sup><sup>2</sup> <sup>¼</sup> <sup>110</sup> <sup>101</sup> � � *be another generating matrix of the linear code* <sup>C</sup> *over* <sup>F</sup>2*.* B<sup>2</sup> *is also a generating matrix of a linear code* C<sup>0</sup> <sup>2</sup> *of length 3 and dimension 2 over the finite field* 2*.*

Here we have that C<sup>1</sup> ¼ f g 000, 110, 101, 011, 111 , C<sup>0</sup> <sup>2</sup> ¼ f g 000, 110, 101, 011 , so these two codes have the same parameters but *card*ð Þ C<sup>1</sup> >*card* C<sup>0</sup> 2 � �.

$$\text{3. Let } \mathcal{B}\_{\text{min}} = \begin{pmatrix} \text{Id}\_k & \text{Id}\_{n-k} \\ \cdot & \mathbf{0} \end{pmatrix} \text{ (where } \text{Id}\_k \text{ is the } k \times k \text{-identity matrix)}.$$

B*min* is a generating matrix of a linear code C*min* of length *n* and dimension *k* over F<sup>2</sup> (with *n* � *k*≤*k*). The linear code C*min* over F<sup>2</sup> generated by B*min* has the minimal number of code words, *card*ð Þ¼ <sup>C</sup>*min* <sup>2</sup>*k*.

4.Let B*max* ¼ ð Þ *Idk* 1*n*�*<sup>k</sup>* (where *Idk* is the identity matrix and 1*n*�*<sup>k</sup>* is the matrix such that every element is equal to 1).

B*max* is a generating matrix of a hyperlinear code C*max* of length *n* and dimension *k*>2 over F2. The linear code C*max* over F<sup>2</sup> generated by G*max* has the maximal

$$\text{number of code words, } card(\mathcal{C}\_{\text{max}}) = 2^{n-k} + \sum\_{i=2}^{k-1} \binom{k}{i} + k + 1.$$

This remark is deduce from the previous example.

**Remark 4.26.** There exists a finite hyperfield such that for any other finite field of the same cardinality, the linear codes over the hyperfield are always better than the classical linear code over the finite field. (i.e., they have more code words).

In classical coding theory, one of the most important problems mentioned by MacWilliams and Sloane in their book *The Theory of Error-Correcting Codes* [27] is to find a code with a large number of words knowing the parameters (length, dimension and minimal distance). So the hyperstructure theory may help to increase the number of code words. That is the subject of the next theorem.

**Theorem 4.27.** *Let* C *be a linear code of length n and dimension k over* F2*. If M is the*

$$\text{cardinality of } \mathcal{C} \text{, then } \mathfrak{2}^{k} \le \mathbf{M} \le \begin{cases} \mathfrak{2}^{n-k} + k + \mathbf{1}, & \text{if } k \le 2; \\\\ \mathfrak{2}^{n-k} + \sum\_{i=2}^{k-1} \binom{k}{i} + k + \mathbf{1}, & \text{if } k > 2. \end{cases}$$

**Proof.** Since a generating matrix contains a basis of the linear code C as rows, it is sufficient to give a way how to construct a generator matrix for the code where the cardinality is maximal.

If *k*≤2, this is trivial.

If *k*>2, then we choose a generator matrix such that:


Therefore, the maximal number of code words is 2*<sup>n</sup>*�*<sup>k</sup>* <sup>þ</sup> <sup>P</sup>*<sup>k</sup>*�<sup>1</sup> *i*¼2 *k i* � � <sup>þ</sup> *<sup>k</sup>* <sup>þ</sup> 1. □

We deduce from the Theorem 4.27 what is follow, which mean that a linear code over the hyperfield *F*<sup>2</sup> satisfies the Singleton bound.

**Corollary 4.28.** *Let* C *be a linear code of length n and dimension k over* F2*, and* C<sup>0</sup> *be a linear code of length n and dimension k over the finite field* 2*. Then d*≤ *d*<sup>0</sup> ≤ *n* � *k* þ 1 *(where d is the minimal distance of* C *and d*<sup>0</sup> *is the minimal distance of* C<sup>0</sup> *).*

The following next propositions give some characterization of the linear codes over F<sup>2</sup> using their generating matrix and their parity check matrix.

**Proposition 4.29.** *Let* C *be a linear code of length n and dimension k over* F2*, then c*∈C *if and only if* 0∈*c* � H˩ *t .*

**Proof.** )): Let *c*∈ C and H˩ ¼ *h*1 ⋮ *hn*�*<sup>k</sup>* 0 B@ 1 CA be the parity check matrix of the code <sup>C</sup>.

Then *c* � H˩ *<sup>t</sup>* <sup>¼</sup> *<sup>c</sup>* � *ht* 1,*<sup>c</sup>* � *<sup>h</sup><sup>t</sup>* 2, <sup>⋯</sup>,*<sup>c</sup>* � *<sup>h</sup><sup>t</sup> n*�*k* � �, thus by definition of <sup>C</sup><sup>⊥</sup>, 0<sup>∈</sup> *<sup>c</sup>* � H˩ *t* . *t*

() Assume that 0 ∈*c* � H˩ , then *c* belongs either to B˩, or to a linear combination of rows of <sup>B</sup>˩. Therefore *<sup>c</sup>*<sup>∈</sup> <sup>C</sup>. □

**Proposition 4.30.** *Let* C *be a linear code of length n over* F2*, then the double dual of* <sup>C</sup> *is equals to* <sup>C</sup>*, that is* <sup>C</sup><sup>⊥</sup> � �<sup>⊥</sup> ¼ C*.*

**Proof.** Using Proposition 4.3 in [26], <sup>C</sup><sup>⊥</sup> � �<sup>⊥</sup> is a linear code of length *<sup>n</sup>* over <sup>F</sup>2, so it is sufficient to show that C¼ C<sup>⊥</sup> � �<sup>⊥</sup> . By definition we have <sup>C</sup><sup>⊥</sup> � �<sup>⊥</sup> <sup>¼</sup> <sup>f</sup>*a*<sup>∈</sup> <sup>F</sup>2<sup>∣</sup> <sup>0</sup><sup>∈</sup> *<sup>y</sup>* � *<sup>a</sup><sup>t</sup>* ; for all *<sup>y</sup>*∈C<sup>⊥</sup>g, so it is straightforward that <sup>C</sup> <sup>⊆</sup> <sup>C</sup><sup>⊥</sup> � �<sup>⊥</sup> . Now, let *<sup>a</sup>*<sup>∈</sup> <sup>C</sup><sup>⊥</sup> � �<sup>⊥</sup> . Let H˩ ¼ *h*1 ⋮ *hn*�*<sup>k</sup>* 0 B@ 1 CA be the parity check matrix of the code <sup>C</sup>, then *a* � H˩ *<sup>t</sup>* <sup>¼</sup> <sup>P</sup>*<sup>n</sup> i*¼1 *ai* � *h*1,*<sup>i</sup>*, ⋯, P*n i*¼1 *ai* � *hn*�*k*,*<sup>i</sup>* � � <sup>¼</sup> <sup>X</sup>*<sup>n</sup> i*¼1 *h*1,*<sup>i</sup>* � *ai*, ⋯, X*n i*¼1 *hn*�*k*,*<sup>i</sup>* � *ai* ! <sup>¼</sup> <sup>X</sup>*<sup>n</sup> i*¼1 *<sup>h</sup>*1,*<sup>i</sup>* � *at* , ⋯, X*n i*¼1 *hn*�*k*,*<sup>i</sup>* � *at* !*:*

Thus 0∈ *a* � H˩ *<sup>t</sup>* by definition of <sup>C</sup><sup>⊥</sup> � �<sup>⊥</sup> , therefore *a*∈C. We conclude the proof by using Proposition 4.29. □

It is known from [26] that cyclic code in <sup>F</sup>*<sup>n</sup>* <sup>2</sup> has only one generating polynomial, so it is clear that this polynomial divides the polynomial *xn* � 1.

**Proposition 4.31.** *If g x*ð Þ¼ *<sup>a</sup>*<sup>0</sup> <sup>þ</sup> *<sup>a</sup>*1*<sup>x</sup>* <sup>þ</sup> <sup>⋯</sup> <sup>þ</sup> *akxk* <sup>∈</sup> <sup>F</sup>2½ � *<sup>x</sup> , is the generating polyno-*

$$\text{minimal for a cyclic code } \mathcal{C} \text{ over } \mathcal{F}\_2 \text{, then } \mathcal{B}\_{\downarrow} = \left( \begin{array}{ccccc} a\_0 & \cdots & a\_k & 0 & 0 & \cdots & 0 \\ 0 & a\_0 & \cdots & a\_k & 0 & \cdots & 0 \\ 0 & 0 & a\_0 & & a\_k & \cdots & \vdots \\ \vdots & \vdots & \ddots & \ddots & \cdots & \ddots & 0 \\ 0 & 0 & \cdots & 0 & a\_0 & \cdots & a\_k \end{array} \right) \text{ is the } \mathcal{C}$$

*generator matrix of the cyclic code* C*.*

**Proof.** Let *<sup>g</sup>*<sup>1</sup> <sup>¼</sup> ð Þ *<sup>a</sup>*0, … , *ak*, 0, … , 0 <sup>∈</sup> <sup>F</sup>*<sup>n</sup>* <sup>2</sup> , then B˩ can also be write as

$$\mathcal{B}\_{\downarrow} = \begin{pmatrix} \mathbf{g}\_1 \\ \mathbf{s(g\_1)} = \mathbf{g\_2} \\ \mathbf{s^2(g\_1)} = \mathbf{g\_3} \\ \vdots \\ \mathbf{s^{k-1}(g\_1)} = \mathbf{g\_k} \end{pmatrix} \\ \text{(where } \mathbf{s} \text{ is the shift function and } \mathbf{s}^k = \mathbf{s} \circ \boldsymbol{\circ} \cdots \circ \boldsymbol{\circ}, \text{ } k\text{-successive})$$

shifts).

Since the polynomial *g* generates C, we have C ¼ < *g x*ð Þ>. Let *c*∈ C, then ð Þ *ci <sup>i</sup>*¼1⋯*<sup>n</sup>* <sup>¼</sup> *<sup>c</sup>*∈*g x*ð Þ� *p x*ð Þ (where *<sup>b</sup>*<sup>0</sup> <sup>þ</sup> *<sup>b</sup>*1*<sup>x</sup>* <sup>þ</sup> <sup>⋯</sup> <sup>þ</sup> *bn*�<sup>1</sup>*xn*�<sup>1</sup> <sup>¼</sup> *p x*ð Þ<sup>∈</sup> <sup>F</sup>2½ � *<sup>x</sup> <sup>x</sup>*ð Þ *<sup>n</sup>*�<sup>1</sup> ) implies that *ci* ∈P *l*þ*j al* � *b <sup>j</sup>* if *i*≤*k* and *ci* ¼ 0 else if (*i*>*k*).

Focus on *g x*ð Þ and *p x*ð Þ, the element *c* belongs to the sum *b*<sup>0</sup> � *g x*ð Þþ *b*1*x* � *g x*ð Þþ <sup>⋯</sup> <sup>þ</sup> *bn*�<sup>1</sup> � *<sup>x</sup><sup>n</sup>*�<sup>1</sup> � *g x*ð Þ because this sum can also be written as *<sup>e</sup>*<sup>1</sup> � *<sup>g</sup>*<sup>1</sup> <sup>þ</sup> *<sup>e</sup>*<sup>2</sup> � *<sup>g</sup>*<sup>2</sup> <sup>þ</sup> <sup>⋯</sup> <sup>þ</sup> *ek* � *gk* (*<sup>e</sup>* <sup>¼</sup> ð Þ *<sup>e</sup>*1, … ,*ek* <sup>∈</sup> <sup>F</sup>*<sup>n</sup>* <sup>2</sup> ), and <sup>C</sup> is a cyclic code generated by *g x*ð Þ. □

The following Proposition use same notations as in Proposition 4.31.

*Non Classical Structures and Linear Codes DOI: http://dx.doi.org/10.5772/intechopen.97471*

**Proposition 4.32.** *[28] Let h x*ð Þ<sup>∈</sup> <sup>F</sup>2½ � *<sup>x</sup> <sup>x</sup>*ð Þ *<sup>n</sup>*�<sup>1</sup> *be a polynomial such that x<sup>n</sup>* � <sup>1</sup>∈*h x*ð Þ� *g x*ð Þ*, then*

1.*The linear code* C *over* F<sup>2</sup> *can be represented as* C ¼ *p x*ð Þ<sup>∈</sup> <sup>F</sup>2½ � *<sup>x</sup> <sup>x</sup>*ð Þ *<sup>n</sup>*�<sup>1</sup> <sup>j</sup> <sup>0</sup>∈*p x*ð Þ� *h x*ð Þ n o.

2.*h x*ð Þ *is the generating polynomial for the linear code* <sup>C</sup><sup>⊥</sup>.

To illustrate what is doing for cyclic codes and polynomials, we have this example.

**Example 4.33.** *Let* C *be a linear code over* F<sup>2</sup> *generate by the polynomial g x*ð Þ¼

<sup>1</sup> <sup>þ</sup> *<sup>x</sup>*<sup>2</sup> <sup>∈</sup> <sup>F</sup>2½ � *<sup>x</sup> <sup>x</sup>*ð Þ <sup>3</sup>�<sup>1</sup> *. Then the generator matrix of the code* <sup>C</sup> *is given by* <sup>B</sup>˩ <sup>¼</sup> <sup>101</sup> <sup>110</sup> � �*.*

Since *<sup>x</sup>*<sup>3</sup> � <sup>1</sup><sup>∈</sup> <sup>1</sup> <sup>þ</sup> *<sup>x</sup>*<sup>2</sup> ð Þ⊙\_} <sup>1</sup> <sup>þ</sup> *<sup>x</sup>* <sup>þ</sup> *<sup>x</sup>*<sup>2</sup> ð Þ, then the polynomial *h x*ð Þ¼ <sup>1</sup> <sup>þ</sup> *<sup>x</sup>* <sup>þ</sup> *<sup>x</sup>*<sup>2</sup> is the parity check polynomial of the code C, and the parity check matrix is given by H˩ ¼ ð Þ 111 .

Thus C ¼ *p x*ð Þ<sup>∈</sup> *<sup>F</sup>*2½ � *<sup>x</sup> <sup>x</sup>*ð Þ <sup>3</sup>�<sup>1</sup> <sup>j</sup> *<sup>x</sup>*<sup>3</sup> � <sup>1</sup><sup>∈</sup> *p x*ð Þ⊙\_} <sup>1</sup> <sup>þ</sup> *<sup>x</sup>* <sup>þ</sup> *<sup>x</sup>*<sup>2</sup> ð Þ n o <sup>¼</sup> 0, 1 <sup>þ</sup> *<sup>x</sup>*2, 1 <sup>þ</sup> *<sup>x</sup>*, 1 <sup>þ</sup> *<sup>x</sup>* <sup>þ</sup> *<sup>x</sup>*2, *<sup>x</sup>* <sup>þ</sup> *<sup>x</sup>*<sup>2</sup> � �.
