-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtfg-borrador.tex
More file actions
1886 lines (1576 loc) · 216 KB
/
tfg-borrador.tex
File metadata and controls
1886 lines (1576 loc) · 216 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\documentclass[11pt,spanish]{book}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{%
aacute={á},
eacute={é},
iacute={í},
oacute={ó},
uacute={ú},
ntilde={ñ},
Euro={€}
}
\usepackage{babel}
%\setmainfont{???}
\usepackage{amsmath}
\usepackage{color,soul}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage{tocloft,calc}
\usepackage{hyperref}
\chaptermark{Introduction}
\usepackage{float}
\usepackage{graphicx}
\usepackage[backend=bibtex]{biblatex}
\addbibresource{bibliografia.bib}
\usepackage{listings}
\usepackage[table,xcdraw]{xcolor}
\usepackage[left=3cm,right=3cm,top=2cm,bottom=3cm]{geometry}
\newcommand{\qed}{\begin{flushright} $\square$ \end{flushright}}
\newcommand{\X}{\mathbf{\mathcal{X}}}
\newcommand{\FR}[2]{\delta_{FR}^{#1}(#2)}
\newcommand{\fr}{\delta_{FR}^{r}(m)}
\newcommand{\la}{\lambda}
\DeclarePairedDelimiter\ceil{\lceil}{\rceil}
\DeclarePairedDelimiter\floor{\lfloor}{\rfloor}
\linespread{1.25}
\author{Jorge Angulo}
\title{TFG Borrador}
\setcounter{MaxMatrixCols}{16}
\begin{document}
\maketitle
\tableofcontents
\chapter*{Introducción:}
\addcontentsline{toc}{chapter}{Introducción:}
En este Trabajo de Fin de Grado vamos a introducir los conceptos básicos sobre semigrupos numéricos y sus ideales y cómo existen ciertas relaciones con los códigos algebraicos en un punto (en particular, a través del semigrupo de Weierstrass). En los primeros capítulos introduciremos los semigrupos numéricos y sus propiedades. Asimismo, veremos también que el concepto de ideal se puede generalizar a los semigrupos numéricos.\\
Con frecuencia, al transmitir información se producen errores por diversos motivos, lo que puede conllevar que el mensaje resulte ininteligible al receptor. Si introducimos redundancia en el mensaje es posible que, aunque sucedan errores, el receptor sea capaz de reconstruir el mensaje original. Por ejemplo, en una conversación es posible no escuchar cierta palabra de una frase, pero deducirla por el contexto. A grandes rasgos, esta es la idea básica detrás de los códigos correctores: extender un mensaje, añadiendo cierta redundancia, para poder corregir errores. Estudiaremos una forma de corregir errores, usando códigos correctores lineales (como veremos en el capítulo 3), donde trataremos un mensaje como un vector de dimensión $k$ sobre un cuerpo finito, $\mathbb{F}_q$, y codificar el mensaje consiste en multiplicar este vector por una matriz, que define el código (matriz generatriz). Así, un código es un subespacio vectorial de dimensión $k$ en un $\mathbb{F}_q$-espacio vectorial de dimensión $n$. El mensaje se codifica como un vector de tamaño $n$ y, por otra parte, tenemos un algoritmo de decodificación que nos permite recuperar el mensaje original.
Es deseable poder corregir el máximo número de errores posibles, que se pueda decodificar de forma eficiente y que el mensaje codificado no tenga una longitud mucho mayor que el original. Estudiaremos este tipo de características en los códigos y sus algoritmos de codificación.\\
Una posible aplicación de los códigos correctores es al problema de ``wire-tap channel II''. Nos encontramos ante un problema de criptografía en el que, al mandar un mensaje, un espía puede obtener información parcial del mismo, pudiendo leer $\mu$ bits del mensaje. Se plantea codificar el mensaje sin usar una clave, codificando el mensaje de tal forma que el espía tenga que tener acceso al mayor número posible de bits ($\mu$) para poder deducir información útil sobre el mensaje original. Se puede usar un código lineal para este propósito, en cuyo caso, a partir del concepto de peso de Hamming generalizado, podemos dar cotas sobre la cantidad de información que, del mensaje original, el espía es capaz de deducir.\\
Estudiaremos en más detalle un tipo particular de códigos correctores, los códigos algebraico geométricos (o AG) y una subclase de estos, los códigos AG en un punto. Estos códigos surgen como resultado de evaluar una curva algebraica en un conjunto de puntos, de forma que dichas evaluaciones constituyan un espacio vectorial. Es posible dar resultados genéricos sobre códigos lineales, pero, al estudiar una familia concreta de códigos, podemos dar resultados específicos. Entre otras cosas, estudiaremos la distancia mínima, dimensión y algoritmos de decodificación para estos códigos. La distancia mínima (denotada por $d$) nos interesa particularmente, pues conocerla nos permite saber la capacidad correctora de un código, que viene dada por la expresión $\lfloor \frac{d-1}{2}\rfloor$. Sin embargo, para los códigos AG no es fácil calcular esta distancia, por lo que se trabaja a menudo con cotas inferiores, que nos permitan estimarla. Veremos como podemos dar cotas para la distancia mínima.
También resulta difícil, en general, tener un algoritmo eficiente de decodificación. Veremos que existen tanto algoritmos genéricos como algoritmos específicos, en general más eficientes.\\
Los códigos en un punto resultan de particular interés, por su relación con los semigrupos numéricos. A partir de los polos de una curva algebraica (que solo presente polos en un punto), es posible definir un semigrupo numérico (el semigrupo de Weierstrass). Esto nos permite aplicar conceptos de semigrupos en el estudio de los códigos.
El semigrupo de Weierstrass, y otros conceptos de semigrupos, aparecerán cuando estudiemos un algoritmo de decodificación para los códigos AG en un punto (algoritmo de votación) y en el estudio de cotas para la distancia mínima (usando distancias de Feng-Rao y distancias de Feng-Rao generalizadas).
Veremos también, que las distancias de Feng-Rao se pueden relacionar con los pesos de Hamming generalizados, y que podemos usarlas para acotarlos; obteniendo así una aplicación de estos conceptos al problema de ``wire-tap channel II''. \\
\chapter{Introducción a semigrupos numéricos}
Los semigrupos, en particular los semigrupos numéricos, son uno de los conceptos fundamentales de este trabajo, por ello en este capítulo realizaremos una introducción de algunos de los conceptos más básicos sobre semigrupos.\\
\\ \textbf{Definición 1.1:} Sea $\mathbb{N}_0$ el conjunto delos números naturales con el $0$.
\begin{itemize}
\item Un \textbf{semigrupo} es un par $(S, +)$, donde $S$ es un conjunto y $\textbf{+}$ es una operación binaria y asociativa en $S$.\\ Además, en este trabajo consideraremos que, siempre que no se especifique lo contrario, dicha operación es conmutativa. En general denotaremos por $S$ a los semigrupos conmutativos (omitiendo también la operación en la notación).
\item Trataremos, principalmente, con los semigrupos numéricos, es decir, semigrupos cuyos elementos son números naturales y donde la operación $``+"$ es la suma habitual. Dicha operación tiene elemento unitario $0$. Pediremos como requisito que el cero forme parte del semigrupo. Consideramos además los semigrupos con la propiedad adicional de tener complemento finito en $\mathbb{N}_0$. Es decir, $S\subseteq\mathbb{N}_0$ es \textbf{un semigrupo numérico} si:
\begin{enumerate}
\item $0\in S$
\item Si $\forall s, s'\in S$, entonces $(s+s')\in S$
\item $|\mathbb{N}_0\setminus S|<\infty$
\end{enumerate}
\end{itemize}
\textbf{Ejemplos 1.1:}
\begin{itemize}
\item Los números naturales con la suma habitual $(\mathbb{N}, +)$ son un semigrupo.
\item También podemos ver un ejemplo usando la librería "NumericalSgps" para el sistema GAP:\\
\begin{lstlisting}[language=gap]
gap> s1 := NumericalSemigroup("generators",7,11,15);
Numerical semigroup with 3 generators
gap> SmallElementsOfNumericalSemigroup(s1);
[0,7,11,14,15,18,21,22,25,26,28,29,30,32,33,35,36,37,39]
\end{lstlisting}
\end{itemize}
La función "NumericalSemigroup ("generators ", 7, 11, 15)" define un objeto semigrupo numérico generado por 7, 11 y 15.\\
SmallElementsOfNumericalSemigroup muestra los elementos del semigrupo menores iguales al conductor (definimos conductor más adelante).\\
Es sencillo ver que la intersección de semigrupos es también un semigrupo:\\
Si $\{S_{i}\}_{i\in I}$ es una familia de semigrupos numéricos, $a, b \in\cap_{i\in I} S_{i}$ entonces $(a+b)\in \cap_{i\in I} S_{i}$\\
Para indicar que en un semigrupo numérico $S$ que todos los naturales a partir de un cierto elemento $\alpha_{h}\in S$ están en el semigrupo, usaremos la notación $\{\alpha_{1},\ldots,\alpha_{h},\rightarrow\}$ por ejemplo: $\{0,3,6,7,9,10,12,13,14,\ldots\}=\{0,3,6,7,9,10,12,\rightarrow \}$.\\
En general podemos definir el semigrupo generado por un subconjunto como:\\
\\ \textbf{Definición 1.2:} Dado un semigrupo $S$ y $A\subset S$ podemos definimos el semigrupo generado por dicho subconjunto como $\langle A\rangle=\{\lambda_{1}a_{1}+\ldots+\lambda_{n}a_{n}\quad |\quad n\in\mathbb{N}, \lambda_{1},\ldots,\lambda_{n}\in\mathbb{N}\quad y \quad a_{1},\ldots,a_{n}\in A\}$. Dado $S'=\langle A\rangle$, decimos que $A$ es un sistema de generadores de $S'$, y que es un sistema minimal si ningún subconjunto propio del mismo genera el semigrupo completo. Si se trata de semigrupos numéricos, consideramos que el $0$ está incluido.\\
\\ \textbf{Ejemplo 1.2: } Dado el conjunto $A=\{3,7\}$ obtenemos el semigrupo
$$S=\langle A\rangle =\{0,3,6,7,9,10,12,13,14,15,16,17,\ldots\}.$$
Dado que $\mathbb{N}_0\setminus S= \{1,2,4,5,8,11\}$, es finito, $S$ es un semigrupo numérico.\\
Notemos que, cuando hablemos de semigrupos numéricos, no todo conjunto de números naturales genera un semigrupo. La tercera condición en la definición, excluye, por ejemplo, el semigrupo generado por un solo elemento $a>1$, ya que se su complemento en $\mathbb{N}_0$ no es finito. La siguiente proposición describe en que casos un conjunto de de enteros no negativos engendra un semigrupo numérico:\\
\\ \textbf{Proposición 1.1:} Sea $A$ un conjunto no vacío de $\mathbb{N}_0$. Entonces, $\langle A\rangle$ es un semigrupo numérico, si, y solo si, $m.c.d(A)=1$.\\
\\ \textbf{Demostración:}
Sea $S=\langle A\rangle$ un semigrupo numérico. Entonces, si $d=m.c.d(A)$ y $s\in S$, se tiene que $d|s$ (Pues $d$ divide a todos los elementos de $A$). Por ser $S$ un semigrupo numérico, $\mathbb{N}_0\setminus S$ es un conjunto finito; y existe cierto $s\in S$ tal que $s+1\in S$, entonces $(d|s)\land(d|(s+1))\Rightarrow d=1$.\\
Para demostrar el recíproco, basta probar que $\mathbb{N}_0 \setminus\langle A\rangle$, es finito. Como $1=m.c.d(A)$, y si $A=\{a_1,\ldots,a_n\}$, existirán $\lambda_1,\ldots,\lambda_n\in\mathbb{Z}$, tales que $1=\sum_{i=1}^{n}\lambda_{i}a_{i}$ (Identidad de Bézout).
Si pasamos los términos con índice $i$ en el conjunto $I=\{i\in\{1,2,\ldots,n\}\;|\;\lambda_{i}<0\}$ a la izquierda de la igualdad, obtenemos que $-\sum_{i\in I}\lambda_{i}a_{i}+1=\sum_{i\in (\{1,2,\ldots,n\}\setminus I)} \lambda_{i}a_{i}\in S$. Por tanto $s=-\sum_{i\in I}\lambda_{i}a_{i}\in \langle A\rangle$ verifica que $s+1\in \langle A\rangle$. Vamos a demostrar ahora que si $n\geq (s-1)s+(s-1)$, entonces $n\in\langle A\rangle$. Sean $q$ y $r$ enteros tales que $n=qd+r$ con $0\leq r<s$ (división entera de $n$ entre $s$). Puesto que $n=qd+r\geq (s-1)s+(s-1)$ y $r\leq s$, deducimos que $q\geq s-1\geq r\Rightarrow (q-r)\geq 0$. Juntándolo todo, tenemos que $n=s(q-r+r)+r=(q-r)s+(rs+r)=r(s+1)+(q-r)s\in\langle A\rangle$.
\qed
\textbf{Definición 1.3:} Dados dos semigrupos $X$, $Y$, un homomorfismo entre $X$ y $Y$ es una aplicación $f:X\rightarrow Y$ que verifica la siguiente propiedad:\\
$$\quad f(a+b)=f(a)+f(b)\quad \forall a, b\in X$$
Decimos que dicho homomorfismo es un isomorfismo si la aplicación es biyectiva, monomorfismo si es inyectiva y epimorfismo si es sobreyectiva.\\
\\ \textbf{Definición 1.4:} Dado un semigrupo numérico $S$ y un elemento $n\in S\setminus\{0\}$, el conjunto de Apéry asociado a un subconjunto se define como:
$$ Ap(S,n) = \{s\in S | s-n\notin S\} $$\\
\textbf{Ejemplo 1.3: } Para el semigrupo anterior: $S:=\langle{3,7}\rangle$, podemos calcular el conjunto de Apéry usando la definición:
\begin{itemize}
\item $Ap(S,3)=\{0,3,14\}$
\item $Ap(S,7)=\{0,3,7,13,16,18,19\}$
\end{itemize}
\textbf{Lemma 1: } Dado $S$ un semigrupo y denotando $S^{*}=S\setminus \{0\}$, entonces $S^{*}\setminus (S^{*}+S^{*}) \;=\; \{s\in S^{*} \; |\; \nexists\; x,y\in S^{*} : s=x+y\}$ es un sistema de generadores de $S$. De echo, todo sistema de generadores contiene a este conjunto.\\
\\ \textbf{Demostración:} Dado $s\in S^{*}$, si $s\notin S^{*}\setminus (S^{*}+S^{*})$ entonces $\exists \; x,y\in S^{*}$ tales que $x+y=s$. Si $x, y\notin S^{*}\setminus (S^{*}+S^{*})$, podemos iterar el razonamiento sobre $x$ e $y$ y sobre los elementos en los que se descomponen hasta que, en un número finito de veces obtendremos una descomposición $s=s_{1}+\ldots+s_{n}$ donde $s_{i}\in S^{*}\setminus (S^{*}+S^{*}),\; i\in \{1,\ldots,n\}$. El proceso es finito, pues $x<s,\; y<s$. Esto demuestra que $S^{*}\setminus (S^{*}+S^{*})$ es un sistema de generadores.\\
Dado, un sistema de generadores $A$ de $S$, si tomamos $x\in S^{*}\setminus (S^{*}+S^{*})$, entonces existe $n\in \mathbb{N}\setminus\{0\}, \lambda_{1},\ldots,\lambda_{n}\in\mathbb{N}$ y $a_{1},\ldots,a_{n}\in A$ tales que $x=\lambda_{1}a_{1}+\ldots+\lambda_{n}a_{n}$. Como $x\notin S(S^{*}+S^{*})$, entonces existe $i\in\{1,\ldots,n\}\; |\; x=a_{i}$.
\qed
\textbf{Lemma 2:} Dado $n$ un elemento distinto de cero del semigrupo $S$, podemos caracterizar el conjunto de Apéry $Ap(S,n)$ como $\{0=w(0), w(1),\ldots,w(n-1)\}$, donde $w(i) = min_{\alpha\in S}\{\alpha = i\:(mod\: n)\}\quad \forall i\in\{0,1,\ldots,n-1\}$. \\ \\
\textbf{Demostración:} La demostración sigue del hecho que, $\exists k\in \mathbb{N}$ tal que $k\cdot n + i \in S,\: \forall i\in \{0,1,\ldots,n-1\}$
\qed
Del lemma anterior, tenemos que el cardinal de $Ap(S, n)$ es $n$\\ \\
\textbf{Lemma 3:} Dado un semigrupo numérico $S$ y $n\in S$, tenemos que, para todo $s\in S$, existe un único par $(k,w)\in \mathbb{N}\times Ap(S,n)$ tal que:
$$s=k\cdot n + w$$
\textbf{Demostración:}
\\ $s = i (mod\; n)$ para cierto $i\in \{0,1,\ldots,n-1\}$, luego $s=w(i)+k\cdot n$ para un cierto $k\in \mathbb{N}$ y donde $w(i)$ es como en el lema anterior.
\qed
En particular, este lemma dice que: $\langle Ap(S,n)\cup\{n\}\rangle =S$\\
\\ \textbf{Teorema 1.2: } Todo semigrupo admite un sistema minimal de generadores. Dicho sistema minimal de generadores es finito. \\
\\ \textbf{Demostración: } Sigue de los lemmas 1 y 3. El lemma 1 nos dice que $S^{*}\setminus (S^{*}+S^{*})$ es un sistema minimal de generadores y el lemma 3 que $\forall n\in S^{*},\; S=\langle Ap(S,n)\cup\{n\}\rangle $. Dado que $\langle Ap(S,n)\cup\{n\}\rangle $ es finito, $S^{*}\setminus (S^{*}+S^{*})$ también lo es.
\qed
\textbf{Definición 1.5:} Dado un semigrupo numérico $S$ con el siguiente sistema minimal de generadores: $\{n_{1}< n_{2}<\ldots<n_{p}\}$, definimos:
\begin{itemize}
\item $n_{1}$ como \textbf{multiplicidad de S}, que denotaremos por $\mathbf{m(S)}$
\item $p$ como \textbf{dimensión embebida} del semigrupo $S$ (en Inglés, "\textit{embedding dimension}"). La denotaremos por $\mathbf{e(S)}$
\end{itemize}
\textbf{Proposición 1.3} Dado $S$ un semigrupo numérico, tenemos que:
\begin{itemize}
\item $m(S) = min(S\setminus \{0\})$
\item $e(S)\leq m(S)$
\end{itemize}
\textbf{Demostración:} Por definición la multiplicidad es el menor de los generadores. Dicho elemento es el menor de los elementos distintos de $0$ del semigrupo, pues no se puede poner como suma de otros dos. \\
La segunda afirmación viene del hecho de que $\{m(S)\}\cup Ap(S,m(S))\setminus\{0\}$ es un sistema de generadores de S (dado por lemma 3) y cuyo cardinal es m(S) (lemma 2). Todo sistema minimal de generadores deberá, por tanto tener como mucho $m(s)$ elementos.
\qed
\textbf{Definición 1.6:} Dado un semigrupo numérico $S$, llamamos al mayor entero que no está en $S$ \textit{Número de Fröbenius} de $S$ y se denota por $F(S)$. También se usa el concepto del \textit{conductor}, que es el menor entero $C(S)$ tal que $C(S)+n\in S,\;\forall n\in \mathbb{N}$. El conducto es el número de Föbenius más uno. \\
\\ \hypertarget{def1.7}{\textbf{Definición 1.7:}} Dado un semigrupo numérico $S$, denominamos \textit{lagunas} o \textit{lagunas} de $S$ (gaps en ingles) al conjunto $G(S)=\mathbb{N}\setminus S$. La cardinalidad de dicho conjunto se llama \textit{género} o \textit{grado de singularidad} de $S$ y se denota por $g(S)$.\\
La siguiente proposición cubre el caso particular de semigrupos generados por dos elementos $S=\langle \{a,b\}\rangle$, pero es importante, pues cuando hablemos de curvas y semigrupos de Weierstrass volverá a aparecer.\\
\\ \hypertarget{semigrupo2elemntos}{\textbf{Proposición 1.4}} Sea $S$, el semigrupo numérico generado por los enteros $a,b$, co-primos entre si ($m.c.d(a,b)=1$)
\begin{itemize}
\item $F(\langle a,b \rangle) = ab -a -b$
\item $g(\langle a,b\rangle) = \frac{(ab-a-b+1)}{2}$
\end{itemize}
\textbf{Demostración:}
Podemos escribir el semigrupo como la unión de la siguiente familia de secuencias:
\begin{align*}
f_0 &= \{0+0,\;0+b,\;0+2b,0+3b,\ldots \}=\{n\cdot b\}_{i=1}^{\infty}\\
f_1 &= \{a+0,\;a+b,\;a+2b,a+3b,\ldots \}=\{a+n\cdot b\}_{i=1}^{\infty}\\
f_2 &= \{2a+0,\;2a+b,\;2a+2b,2a+3b,\ldots \}=\{2a+n\cdot b\}_{i=1}^{\infty}\\
&\ldots\\
f_{b-1} &= \{(b-1)a+0,\;(b-1)a+b,\;(b-1)a+2b,(b-1)a+3b,\ldots \}=\{(b-1)a+n\cdot b\}_{i=1}^{\infty }
\end{align*}
$S=\langle a,b\rangle =\cup_{k=1}^{b-1}f_k$. Si $s\in S$, $s=na+mb$, por lo que pertenece a la secuencia $f_{\{\overline{na}\;(mod\; b)\}}$. La otra contención es inmediata por como son los elementos de las secuencias.\\
Vamos a contar los elementos usando funciones generadoras, donde los exponentes de los términos distintos de cero representan los elementos de las series. En el caso de $f_{k}$, definimos la función ($0\leq k\leq b-1$):
$$ f_{k}(x) = x^{ka} +x^{ka+b}+\ldots +x^{ka+nb}+\ldots=\sum_{i=1}^{\infty} \frac{x^{ka}}{1-x^{b}}$$
Dicha función tiene como monomios no nulos a aquellos que tienen términos de $f_k$ por exponente. Para la unión de todas las series (y por tanto, tener en cuenta, todos los elementos del semigrupo) consideramos la función suma:
$$f(x)=\sum_{k=0}^{b-1}f_k=(\frac{1}{1-x^b})(1+x^a+x^{2a}+\ldots+x^{(b-1)a})=\frac{1-x^{ab}}{(1-x^{a})(1-x^{b})}$$
La función generadora es para los enteros no negativos es $g(x)=1+x+x^2+\ldots=1/(1-x)$. Por tanto, la diferencia $g-f$, es la función generadora de las lagunas ($\mathbb{N}_0\setminus S$):
$$h(x)=g(x)-f(x)=\frac{1}{(1-x)}-\frac{1-x^{ab}}{(1-x^{a})(1-x^{b})} = \frac{(1-x^{a})(1-x^{b})-(1-x)(1-x^{ab})}{(1-x)(1-x^{a})(1-x^{b})}$$
\begin{itemize}
\item El exponente del elemento de mayor grado de $h$ (es decir, el grado de $h$), es el mayor entero no negativo que no está en $S$. Vemos que $deg(h)=(ab+1)-a-b-1=ab-a-b$. Por tanto $F(\langle a,b\rangle) = ab-a-b$.
\item Puesto que $h(x)$ es la función generadora de las lagunas, debe tener una cantidad finita de monomios. Bastaría pues con, sustituir $x=1$ para conocer cuantos monomios hay, y por tanor, lagunas. Debido a que $h(x)$ no está bien definida en $x=1$, debemos tomar el límite. Al aplicar la regla de l'Hôpital, vemos que la tercera derivada de orden $3$ del denominador no es cero. Luego,
\begin{align*}
&g(\langle a,b\rangle)=Lim_{x\rightarrow 1}h(x) =\\
\\&Lim_{x\rightarrow 1}\frac{(d^{3}/dx^{3})[(1-x^{a})(1-x^{b})-(1-x)(1-x^{ab})]}{(d^{3}/dx^{3})[(1-x)(1-x^{a})(1-x^{b})]}=\\
\\&\frac{3ab((a-1)+(b-1)-ab-1)}{-6ab}
=\frac{ab-a-b+1}{2},
\end{align*}
tal y como queríamos demostrar.
\end{itemize}
\qed
\textbf{Ejemplos 1.4:} Podemos calcular las lagunas, el grado de singularidad y el número de Föbenius usando GAP:
\begin{lstlisting}[language=gap]
gap> s1 := NumericalSemigroup("generators",3,5,7);
gap>Numerical semigroup with 3 generators>
gap> GapsOfNumericalSemigroup( s1 );
[ 1, 2, 4 ]
gap> FrobeniusNumber( s1 );
4
gap> Genus(s1);
3
\end{lstlisting}
Aunque en general no se puede dar una formula para calcular el conjunto de lagunas o el número de Fröbenius, si se conoce el conjunto de Apéry se pueden dar formulas en función de este para calcularlos:\\ \\
\textbf{Proposición 1.5:} Dado un semigrupo numérico $S$ y $n\in S^{*}$ tenemos que:
\begin{itemize}
\item $F(S)=(max\;Ap(S,n))-n$
\item $g(S)=\frac{1}{n}(\sum_{w\in Ap(S,n)} w)-\frac{n-1}{2}$
\end{itemize}
\textbf{Demostración:}\\
Queremos ver que si $x>(max\;Ap(S,n))-n$, $x\in S$. Por definición de $Ap(S,n)$, $(max\;Ap(S,n))-n \notin S$. Dado $x>(max\;Ap(S,n))-n\Rightarrow x+n>(max\;Ap(S,n))$. Por el lemma 2, existe $w\in Ap(S,n)$ tal que es congruente con $x$ modulo $n$. Como $w<x+n$, existe un entero positivo $k$ tal que $w+n\cdot k\;=\; x+n $ y por tanto $x-n=w+(k-1)\cdot n$ pertenece a $S$\\
Para la segunda afirmación, nos basamos en el lemma 2 y la notación allí usada. Sabemos que para cada $w\in Ap(S,n)$ congruente con $i$ modulo $n$, con $i\in\{0,1,\ldots,n-1\},\;\exists k_{i}\in\mathbb{N}$ tal que $w=k_{i}\cdot n + i$. Es decir, que:
$$Ap(S,n)=\{w(0)=0, w(1)=k_{1}\cdot n + 1,\ldots,w(i)=k_{i}\cdot n +i,\ldots,w(n-1)=k_{n-1}\cdot n+n-1\}$$
Cualquier entero $x$ congruente con $w(i)$ modulo $n$ pertenece a $S$ si y solo si $w(i)\leq x$. En otras palabras hay $k_{i}$ enteros no negativos congruentes con $i$ modulo $n$ que no están en el semigrupo. Por tanto:
$$ g(S) = k_{1}+\ldots+k_{n-1} = \frac{1}{n}\sum_{i=1}^{n-1}(n\cdot k_{i}+i) -\frac{n-1}{2} = \frac{1}{n}\sum_{w\in Ap(S,n)}(w -\frac{n-1}{2})$$
\qed
\hypertarget{lema1.4}{\textbf{Lemma 4:} } Sea $S$ un semigrupo numérico con conductor $C(S)$ y grado de singularidad $g(S)$, entonces:
$$ 2g(S)\geq C(S)$$
\textbf{Demostración:} Supongamos que $ 2g(S)<C(S)$ es decir: $\alpha = (\#\{ ng\in S | ng<c \})> \frac{C(S)}{2}$. Podemos escribir $F(S) = C(S)-1$ como suma de dos enteros positivos de $\floor*{\frac{F(s)+1}{2}}\leq\frac{C(S)}{2} < \alpha$ formas distintas:
\begin{align*}
F(S) = F(S) + 0 &=\\
(F(S)-1) + 1 &= \\
\ldots \\
F(S) - \floor*{\frac{F(S)}{2}} + \floor*{\frac{F(S)}{2}} &=\\
F(S) - \floor*{\frac{F(S)}{2}} + (F(S)-\ceil*{\frac{F(S)}{2}}) &=\\
\floor*{\frac{F(S)}{2}} + \ceil*{\frac{F(S)}{2}} &=F(S)-\ceil*{\frac{F(S)}{2}}+\ceil*{\frac{F(S)}{2}}
\end{align*}
Por tanto, existen dos elementos del semigrupo $a,b$ tales que $F(S) = a+b\in S$, pero por definición $F(S)\notin S$
\qed
La proposición anterior establece, en cierto modo, el número mínimo de lagunas que un semigrupo puede tener en función de su conductor. El mínimo se da cuando hay igualdad: $C(S)=2g$. No en todos los semigrupos es cierto esto, pero en caso de que lo sea se les da un nombre especial:\\ \\
\textbf{Definición 1.8:} Decimos que un semigrupo numérico $S$ con grado de singularidad $g(S)$ y conductor $c$ es simétrico si: $C(S) = 2g(S)$\\
\\ \textbf{Ejemplo 1.5:} El grupo generado por $\{3,5\}$ es simétrico: $S=\langle\{0,3,5\}\rangle = \{0,3,5,6,8,9,10,\ldots\} = \{3,5,6,8,\rightarrow\}$. Por lo que tenemos que el conductor es $c=8$, y las lagunas son $G(S)=\{1,2,4,7\}\Rightarrow g(s)=|G(s)|=4$. Se verifica que $2g(S) = C(S)$, por lo que el semigrupo es simétrico.\\
A continuación tratamos sobre el concepto de irreducibilidad de semigrupos. El estudio de irreducibilidad de ideales de semigrupos es uno de los objetivos de estudio centrales de este trabajo y empezamos definiendo ese concepto para semigrupos:\\
\\ \textbf{Definición 1.9: } Decimos que un semigrupo numérico es irreducible si no puede ser expresado como intersección de dos semigrupos que lo contienen de forma propia.
%%% ----------------------------------------------------------------------------------------------------------------------------------------------%%%
%%% ----------------------------------------------------------------------------------------------------------------------------------------------%%%
%%% ---------------------------------------- Capítulo 2 ----------------------------------------------------------------------------------------- %%%
%%% ----------------------------------------------------------------------------------------------------------------------------------------------%%%
%%% ----------------------------------------------------------------------------------------------------------------------------------------------%%%
\chapter{Ideales de semigrupos numéricos}
El concepto de ideal se puede extender a semigrupos, como veremos en este capítulo. Estudiaremos los ideales de semigrupos, concepto que será más adelante necesario para tratar códigos, pero también serán los ideales parte del objeto de este trabajo. He trabajado para implementar funcionalidad relacionado con Ideales de semigrupos para librería "NumericalSgps" para el sistema GAP, en particular en lo que respecta a irreducibilidad de ideales. \\
\\ \textbf{Definición 2.1:} Sea $S$ un semigrupo numérico, decimos que $E\subset\mathbb{Z}$ es un \textit{ideal relativo} de $S$ si:
\begin{itemize}
\item $S+E=\{s+e\; |\; s\in S,\; e\in E\}\subset E$
\item Existe $s\in S$ tal que $s+E=\{s+e\; |\; e\in E\}\subset S$
\end{itemize}
La primera condición es similar a la condición tradicional de ideal en teoría de anillos, si bien en este caso no hay multiplicación.
La segunda condición asegura que E tiene mínimo que denotaremos por $m(E)$ y llamaremos \textit{multiplicidad} de $E$.\\
Para convencernos que esta condición implica que $E$ tiene mínimo, supongamos que no es así. Entonces existe $e<0$ con $|e|> s$ ($s$ como en la definición) entonces $s+e<0\Rightarrow s+e\notin S$, pues todos los elementos de $S$ son positivos. Pero esto contradice la definición de $s$.\\
Si $E\subseteq S$ diremos que $E$ es un \textit{ideal propio} o simplemente \textit{ideal} de $S$ \\
\\
\\ \textbf{Ejemplos 2.1:}
\begin{itemize}
\item Un ejemplo de ideal propio es $S$, que claramente es ideal de si mismo. \\
\item Dado un semigrupo numérico $S$, podemos definir ideales relativos de $S$ tomando un conjunto finito $A\subset \mathbb{Z}$ y definiendo $E:=A+S$. Por ejemplo, dado $S=\{0,3,6,7,9,10,12,\rightarrow\}$ y $A=\{-1\}$; $E:=\{-1\}+\{0,3,6,7,9,10,12\}=\{-1,2,5,6,8,9,11,\rightarrow\}$. La segunda condición se verifica, pues si $s=12$, $s+E\subseteq S$. La primera condición se verifica, pues $\forall e\in E,\;\exists s_{1}\in S,\; tal\; que\; e = -1+s_{1}$. Entonces para cualquier $s_{2}\in S$ tenemos $e+s_{2}=-1+s_{1}+s_{2}=-1+s\in E$, $s\in S$.
\item Veamos un ejemplo de ideal propio. Dado $\{0,3,6,7,9,10,12,\rightarrow\}S$ semigrupo numérico, podemos definir $D(12):=\{y\in S\;|\; 12-y\in S\}=\{0,3,6, 9, 12\}$ (veremos más sobre este tipo de conjuntos más adelante). Entonces $S\setminus D(12) = \{7,10,13,\rightarrow\}\subseteq S$. Vemos que verifica ambas condiciones.
\end{itemize}
\textbf{Definición 2.2:} Algunos ideales relativos importantes son:
\begin{enumerate}
\item $M = S^{*}=S\setminus\{0\}$, ideal propio de $S$ al que denotamos \textit{ideal maximal}.
\item El \textit{ideal conductor} es: $S-\mathbb{N} = \{z\in\mathbb{Z}\; |\; z+\mathbb{N}\subset S\} =\{C(S),\rightarrow\} = C(S)+\mathbb{N}$. Este es el mayor ideal común a $\mathbb{N}$ y $S$.
\item El \textit{ideal canónico estándar} se define como. $K(S) = \{x\in\mathbb{Z}\;|\;F(S)-x\notin S\}$.
\end{enumerate}
Vemos que los ideales anteriores verifican la definición de ideal relativo:
\begin{enumerate}
\item Que el ideal maximal es un ideal, es trivial.
\item El ideal conductor coincide con el semigrupo $\{C(S),\rightarrow\}$, luego $m(\{C(S),\rightarrow\}) = C(S)$ y $a+b\in C(S)+\mathbb{N},\;a\in \{C(S),\rightarrow\},\; b\in S$
\item El ideal canónico está acotado inferiormente, pues si $x\in \mathbb{Z}\;y\; x<0$ entonces $F(S)<F(S)-x\in S\Rightarrow x\notin K(S)$. Por otro lado, dado $k\in K(S)$ y $s\in S$, vemos que $k+s\in K(S)$:
Si no fuera así, $\alpha:=F(S)-(k+s)\in S$, pero entonces $\alpha+s\in S$, $\alpha+s=F(S)-k$, que no pertenece a $S$ por definición
\end{enumerate}
\textbf{Ejemplo 2.2: } Vemos un ejemplo con GAP:
\begin{lstlisting}[language=gap]
gap> s:=NumericalSemigroup(3,5,7);;
gap> k:=CanonicalIdeal(s);
<Ideal of numerical semigroup>
gap> SmallElements(k);
[ 0, 2, 3, 5 ]
gap> SmallElements(s);
[ 0, 3, 5 ]
gap> SmallElements(MaximalIdeal(s));
[ 3, 5 ]
\end{lstlisting}
Se pueden definir operaciones básicas entre ideales:\\
\\ \textbf{Definición 2.3: } Dados dos ideales relativos $E$ y $H$ de un semigrupo numérico $S$, definimos:
\begin{itemize}
\item $E + H = \{e+h\;|\; h\in H,\; e\in E \}$
\item $H-E = \{z\in\mathbb{Z}\;|\; z+E \subset H \}$
\end{itemize}
\textbf{Ejemplo 2.3:} Tomemos el semigrupo numérico $S=\langle 10, 13, 21, 22\rangle$:\\
Consideremos los ideales $E = \{10,11\}+S$ y $H=\{-1,2,3\}+S$. Operando (con ayuda de GAP):\\ $$E+H=\{9, 10, 12, 13, 14, 19, 20, 22, 23, 24, 25, 26, 27, 29, \rightarrow\}$$
$$E-H=\{21, 31, 34, 38, 41, 42, 43, 44, 47, 48, 50,\rightarrow\}$$
Veamos que las operaciones entre dos ideales de $S$ resultan en un ideal de $S$.\\
\\ \textbf{Proposición 1:} Sean $E$ y $H$ ideales relativos cualquiera de un semigrupo numérico $S$. Entonces $E+H$ y $H-E$ son también ideales relativos de $S$.\\ \\
\textbf{Demostración 2.1: }
\begin{enumerate}
\item Veamos que verifica la definición de ideal. Sea $x\in E+H$, entonces existen $e\in E,\; h\in H$ tales que $x=e+h$. Para un $s\in S$, $x+s=e+h+s\in E+H$ pues $h+s\in H$.\\
Para verificar la segunda condición de la definición de ideal, sean $s_{H}, s_{E}$ tales que $s_{H}+H\subset S$ y $s_{E}+E\subset S$ si tomamos $s=s_{H}+s_{E}$ entonces
$$ s+(E+H)=\{s+e+h\;|\; e\in E,\; h\in H\} =\{s_{H}+h+s_{E}+e\;|\; e\in E,\; h\in H\}\subset S$$
pues $s_{H}+h\in S$ y $s_{E}+E\in S$.
\item Verifiquemos que $H-E$ también cumple la definición. Dado $z\in H-E$, $\forall e\in E,\; \exists h\in H$ tales que $z+e=h$. Para cualquier $s\in S$, para cualquier $e$ y para el $h$ anterior tenemos $z+s+e=h+s\in H\Rightarrow (z+s)+H\subseteq E\Rightarrow (z+s)\in H-E$.\\
La segunda condición, tomemos $s=e+s_{E}+s_{H}\in S$, donde $s_{H}$ y $s_{E}$ son como en apartado anterior. $z\in H-E\Rightarrow\;\forall e\in E,\; \exists h\in H\;$ tal que $z+e=h\Rightarrow z = (h-e)$. Por tanto $z+s=(h-e)+s=(h-e)+s_{h}+e+s_{e}=h+s_{h}+s_{e}\in S$, verificándose así la segunda condición.
\end{enumerate}
\qed
Podemos probar algunas propiedades de estas operaciones:\\
\\ \textbf{Proposición 2.2: } Sean $E, G, H$ ideales relativos de un semigrupo numérico $S$ y $z$ cualquier elemento de $\mathbb{Z}$. Entonces tenemos que:
\begin{enumerate}
\item $(x+E)-H=x+(E-H)$ \ y \ $E-(x+H)=-x+(E-H)$
\item $E-(G\cup H) = (E-G)\cap(E-H)$ y $(E-G)\cup (E-H)\subseteq E-(G\cap H)$
\item Si $G\subseteq H$ entonces $E-H\subseteq E-G$ y $H-E\subseteq G-E$
\end{enumerate}
\textbf{Demostración:}
Las demostraciones son consecuencia de operar sobre las definiciones:
\begin{enumerate}
\item Para la primera proposición, partimos de $(x+E)-H$.\\
Sea $\overline{E}=x+E=\{x+e\;|\; e\in E\}$, primero computamos:
$$\overline{E}-H=\{z\in\mathbb{Z}\;|\; z+H\subset\overline{E}\}=\{z\in\mathbb{Z}\;|\;\forall h\in H,\;\exists e\in E \;tal\; que\; z+h=e+x\}.$$
Usando la expresión completa: $$x+(E-H)=x+\{z'\in\mathbb{Z}\;|\;z'+H\subset E\}=$$
$$x+\{z'\in\mathbb{Z}\;|\;\forall h\in H,\; e\in E,\; z'+h=e\}=\{x+z'\;|\; z'\in\mathbb{Z},\; h\in H,\; e\in E,\;z'+h=e\}.$$
Llamando $z=x+z'\Rightarrow z'=z-x$ obtenemos que el conjunto anterior es $\{z\in\mathbb{Z}\;|\; h\in H,\; e\in E,\;z-x+h=e\}$, por lo que la primera igualdad es cierta. La segunda igualdad se demuestra de forma análoga.
\item Para la primera: $$(E-G)\cap(E-H) = \{z\in\mathbb{Z}\;|\; z+G\subset E\}\cap \{z\in\mathbb{Z}\;|\; z+H\subset E\} =$$
$$\{z\in\mathbb{Z}\;|\; z+G\subset E \land z+H\subset E\} = \{z\in\mathbb{Z}\;|\; z+(G\cup H)\subset E\}$$\\
Para la segunda afirmación, dado $z\in E-G$ (respectivamente en $E-H$) entonces: $$z\in\{z'\in\mathbb{Z}\;|\; z'+G\subseteq E\}\;\Rightarrow\; \{z'\in\mathbb{Z}\;|\; z'+(H\cap G)\subseteq E\}=E-(E\cap H)$$
\item Si $z\in H-E=\{z\in\mathbb{Z}\;|\; z+ E\subseteq G\}$ entonces, como $G\subseteq H$ tenemos que: $z\in\{z\in\mathbb{Z}\;|\; z+E\subseteq G\subseteq H\}=G-H$. \\
Para la contención, dado $z\in E-H\Rightarrow\; z+g\in E\Rightarrow z\in E-G$
\end{enumerate}
\qed
A continuación, vemos que algunos conceptos de semigrupos pueden ser extendidos a ideales, como el de número Fröbenius:\\
\\ \textbf{Definición 2.4: } Dado un ideal relativo $E$ de un semigrupo numérico $S$, llamaremos número de Fröbenius de $E$ a $Max(\mathbb{Z}\setminus E)$ y lo denotaremos por $F(E)$.
El hecho que $E$ este acotado inferiormente asegura que el máximo existe. \\
También podemos definir para ideales un sistema de generadores:\\
\\ \textbf{Ejemplo 2.4:}
\begin{itemize}
\item Si consideramos a $S$ como ideal de sí mismo, vemos que la definición de número de Fröbenius coincide con la definición para semigrupos:\\ Si $S = \{3,6,7,9,10,12,\rightarrow\}$ entonces $F(S)=max(\mathbb{Z}\setminus S) = 11$
\item Para ideal $E=S\setminus D(12)$ n (ver el primer ejemplo de este capitulo), $F(E)=12$.
\end{itemize}
\textbf{Definición 2.5: } Dado un ideal relativo $E$ del semigrupo numérico $S$ decimos que un conjunto $\{e_{1},\ldots,e_{n}\}\subset E$ es un sistema de generadores de $E$ si podemos expresar un elemento cualquiera $e\in E$ como $e=e_{i}+s,\;s\in S,\; i\in\{1,2,\ldots,n\}$.\\
Vemos que todo ideal canónico tiene un sistema minimal de generadores:
\\ \textbf{Proposición 2.3:} Dado un ideal relativo $E$ de un semigrupo numérico, $E\setminus(M+E)$ es un sistema minimal de generadores de $E$.\\
\\ \textbf{Demostración:} La demostración sigue un argumento similar a demostrar que $S^{*}\setminus (S^{*}+S^{*})$ es un sistema de generadores de S:\\
Primero demostramos que es un sistema de generadores. Dado $e\in E$, si tenemos que $e\notin E\setminus(M+E)$ entonces existen $x\in E$ e $y\in M$ tales que $e=x+y$. Si $x\notin E\setminus(M+E)$. Podemos repetir el argumento y volver a descomponerlo: $\exists x'\in E,\;y'\in M\; |\; x = x' + y'$. De esta forma, podemos continuar la descomposición, llegando eventualmente a una descomposición finita de $e$:
$$e=e_{1}+s_{1}+e_{2}+s_{2}+\ldots+e_{m}+s_{m} = e_{1}+e_{2}+\ldots +e_{m}+s$$\\
Donde $s\in S$ y $e_{1}\in E\setminus(M+E),\; \forall i\in\{1,2,\ldots,m\}$. Esto es así pues $e>x,\; e>y$ y en cada descomposición obtenemos elementos de cardinal menor. Al al ser $E$ un ideal relativo, tiene un mínimo: $m(E)$, por lo que el proceso de descomposición es finito.\\
Para ver que todo sistema de generadores está contenido en este, sea $H=\{h_{1},\ldots,h_{n}\}$ un sistema de generadores de $E$. Dado $e\in E\setminus(E+M)$, tenemos que existen $h\in H,\; s\in S$ tales que $e=h+s$, pero $e \notin (E+M)$ y $h\in H\subset E$, luego $s=0$ y $e=h$.
\qed
\textbf{Ejemplo 2.5:}
Veamos un ejemplo, dado $S=\{3,6,7,9,10,12,\rightarrow\}$, computemos un sistema de generadores de $E=S\setminus D(12)=\{7,10,13,\rightarrow\}$. Como acabamos de ver, $E\setminus (E+M)$ es un sistema de generadores de $S$. $E+M=\{10,13,14,16,\rightarrow$\\
$E\setminus (E+M)=\{7,15\}$.
Podemos comprobar que todos los elementos de $E$ se pueden escribir como suma de $7$ ó $15$ más un elemento de $S$:\\
$7=7+0,\; 10=7+3,\; 13=7+6,\; 14 =7+7 \; 15=15+0,\;$\\
$16=7+9,\; 17=7+10,\; 18=15+3,\;19=7+12,\;\ldots$
\\
\\ \textbf{Proposición 2.4: } Sea $S$ un semigrupo numérico, $E$ un ideal relativo cualquiera y $K$ ideal canónico, tenemos que: $K-E=\{x\in \mathbb{Z}\;|\; F(S)-x\notin E\}$\\
\\ \textbf{Demostración: } Empezamos demostrando la primera contención. Sea $x\in K-E$, por la definición de resta de ideales, $x+E\subset K\Rightarrow \forall e\in E,\; x+e\in K\Rightarrow F(S)-(x+e)\notin S\Rightarrow F(S)-x\notin S+e\subset E$.\\
Por otro lado, si tenemos que $F(E)-x\notin E$ entonces, $\forall e\in E$ tenemos que $F(S)-(x+e)\notin S$, pues de lo contrario: $F(S)-(x+e) + e\in E\Rightarrow F(S)-x\in E$ que contradice la hipótesis. Como $F(S)-(x+e)\notin S, \forall e\in E$ entonces $\forall e\in E,\; x+e\in K\Rightarrow x+E\subset K\Rightarrow x\in K-E$
\qed
Una consecuencia inmediata de esta proposición es que $K-K = S$\\ \\
\textbf{Corolario 2.5:} Sean $S$ un semigrupo numérico, $K$ un ideal canónico y $H$, $E$ ideales relativos. Entonces se verifica la siguiente igualdad: $K-(H\cap E)\;=\; (K-E)\cup (K-H)$\\
\\ \textbf{Demostración: } En la proposición 1 ya demostramos que $(K-E)\cup (k-H)\subseteq K-(E\cap H)$\\
Para la segunda contención, dado $z\in K-(H\cap E)\; =\; \{z\in\mathbb{Z}\;|\; F(S)-z\notin (E\cap H)\}=\{z\in\mathbb{Z}\;|\; (F(S)-z\notin E)\; \lor\; (F(S)-z\notin H) \}\;=\;\{z\in\mathbb{Z}\;|\; F(S)-z\notin E\}\cup \{z\in\mathbb{Z}\;|\; F(S)-z\notin H)\}\;=\; (K-E)\cup (K-H)$
\qed
\textbf{Definición 2.6: } Decimos que dos ideales relativos $H$ y $E$ de $S$ son equivalentes si existe $x\in \mathbb{Z}$ tal que $E\;=\;x\;+\;H = \{x+h\; |\; h\in H\}$\\
Esto significa que todo ideal relativo de $S$ es equivalente a un ideal propio, pues basta con trasladar $E$ por $m(E)$ para obtener un ideal principal: $m(E)+E\subset S$. Esto define una relación de equivalencia entre ideales relativos de un determinado semigrupo.\\
En particular, dado un ideal $E$ de $S$, podemos tomar $\Tilde{E} = E-F(E)+F(S)$. Dicho ideal relativo es un ideal propio de $S$ equivalente a $E$ y con el mismo número de Fröbenius que $S$.\\
Usando esta notación, podemos introducir el siguiente resultado:\\
\\ \textbf{Proposición 2.7: } Sea $S$ un semigrupo numérico y $K$ su ideal canónico estándar. Todo ideal relativo de $S$ es equivalente a un ideal relativo $\Tilde{E}$ de modo que $S-\mathbb{N} = \{C(S),\rightarrow\}\subseteq \Tilde{E}\subseteq K$\\
\\ \textbf{Demostración:}
La primera inclusión viene dada por el hecho que el número de Fröbenius de $\Tilde{E}$ es $F(S)$, luego contiene al ideal conductor.\\
Para la segunda, supongamos que $x\in\Tilde{E},\; x\notin K$, esto significa que $F(S)-x\in S$. Por definición de ideal, $F(S) = (F(S)-x)+x\in \Tilde{E}$, lo cual contradice que el número de Fröbenius de $\Tilde{E}$ es $F(S)$.
\qed
Vemos que el ideal canónico juega un papel importante en el estudio de los ideales de $S$. Aparecerá más adelante cuando estudiemos la irreducibilidad de ideales.\\
\\ \textbf{Corolario 2.8:} No existe ningún ideal relativo de $S$ que contenga propiamente al ideal canónico estándar.\\
\\ \textbf{Demostración:} Dado $E$ ideal relativo de $S$ y $\Tilde{E}=E+\alpha$ ($\alpha = F(S)-F(E)$). Si $K\subsetneq E$, entonces, dado $B$ un sistema minimal de generadores de $E$ y $L$, un sistema minimal de generadores de $K$, $|B|>|L|$. Claramente $\Tilde{B}=B+\alpha$ es un sistema minimal de generadores de $\Tilde{E}$, pero por la proposición anterior, tenemos que $\Tilde{E}\subset K$, lo cual contradice que $|\Tilde{B}|=|B|>|L|$.
\qed
Mostramos a continuación un lema que necesitaremos más adelante para tratar irreducibilidad de ideales:
\\ \textbf{Lema 1: } Sea $K$ ideal canónico y $H$ un ideal relativo de $S$. Entonces se verifica la siguiente igualdad: $K-(K-H)=H$.\\
\\ \textbf{Demostración:} Por un lado, si $z\in K-(K-H) = k-\Delta$ por la proposición 2, $F(S)-z\notin \Delta$ por tanto (usando el lema de nuevo): $F(S)-(F(S)-z)\in H\Rightarrow z\in H$.\\
Por otro lado, dado $z\in H\Rightarrow F(S)-(F(S)-z)\in H\Rightarrow (F(S)-z)\notin \Delta \Rightarrow z\in K-\Delta = K-(K-H)$
\qed
El lema anterior se puede extender a una doble implicación, y en ese caso se conoce como Teorema de Jäger. Además, como una consecuencia simple del lema anterior, tenemos que: $K-S=\{x\in\mathbb{Z}\;|\;F(S)-x\notin S\} = K$\\
\\ \textbf{ Definición 2.7: } Dado un semigrupo numérico $S$, y $E$ un semigrupo numérico del mismo, decimos que $E$ es irreducible ($\mathbb{Z}-irreducible$) en $S$, si no puede ser expresado como intersección finita de otros ideales relativos (distintos de $E$) de $S$ que lo contienen.\\
Un ejemplo de un ideal irreducible es $K$, el ideal canónico. Como hemos visto, no hay ningún ideal relativo de $S$ que lo contenga de forma de propia. A continuación veremos que se trata del único ideal $\mathbb{Z}$-irreducible\\
\\ \textbf{Teorema 2.9: } Sea $S$ un semigrupo numérico y $E$ un ideal relativo del mismo. Sea $\{x_{1},\ldots,x_{h}\}$ un conjunto minimal de generadores del ideal $K-E$. Entonces:
$$E = (-x_{1}+K)\cap \ldots \cap (-x_{h}+K)$$\\
Además esta descomposición es no redundante y única. En particular, el ideal $E$ es irreducible si y solo si es canónico.\\
\\ \textbf{Demostración: } $\{x_{1},\ldots,x_{h}\}$ es un sistema minimal de generadores de $K-E$, luego $K-E=\cup_{i=1}^{h}(x_{i}+S)$ y $x_{i}-x_{j}\notin S,\;\forall i\neq j,\; i,j\in\{1,2,\ldots,h\}$ pues si fuera así $x_{j}+(x_{i}-x_{j})=x_{i}\in K-E$, lo cual contradice que es minimal.\\
Podemos escribir:
$$E\; =\; K-(K-E)\;=\; (K-(x_{1}+S))\cap(K-(x_{2}+S))\cap \ldots\cap (K-(x_{h}+S)) =$$ $$(-x_{1}+(K-S))\cap(-x_{2}+(K-S))\cap \ldots\cap(-x_{h}+(K-S))=(-x_{1}+K)\cap \ldots \cap (-x_{h}+K)$$\\
La primera igualdad viene del Lema 1, mientras que la segunda es una aplicación de las propiedades de las operaciones con ideales que vimos al principio del capítulo. La tercera igualdad viene de la propiedad: $K-(x_{i}+H) = -x_{i}+(E-H)$. La última igualdad viene del hecho que $K-S=K$. Con esto demostramos la primera parte del teorema.\\
La descomposición es no redundante, pues si hubiera un término de la intersección que pudiéramos eliminar, entonces $\bigcap_{j\neq i}(-x_{j}+K)\subseteq -x_{i}+K$, por la proposición 1 y dada la anterior contención se verifica que: $K-(-x_{i}+K)\subseteq K-\bigcap_{j\neq i} (-x_{j}+K)$. Por otro lado, por el corolario 1, $K -\bigcap_{j\neq i}(-x_{j}+K) = \bigcup_{j\neq i}(K-(-x_{j}+K))$. Juntándolo todo:
$$x_{i}\in x_{i}+S =x_{i} + (K-K) = K-(-x_{i}+K)\subseteq \bigcup_{j\neq i} K-(-x_{j}+K)=\bigcup_{j\neq i}(x_{j}+S)$$\\
La última igualdad viene dada por la proposición 1 y $(K-K)=S$.
$x_{i}\in\bigcup_{j\neq i}(x_{j}+S)\Rightarrow\;\exists s\in S, j\neq i$ tal que $x_{j}+s=x_{i}$ contradiciendo así que $\{x_{1},\ldots,x_{h}\}$ sea un sistema minimal de generadores.\\
Para demostrar que es único, supongamos que existen dos descomposiciones distintas: $E=(-x_{1}+K)\cap \ldots \cap (-x_{h_{1}}+K)=(-y_{1}+K)\cap \ldots \cap (-y_{h_{2}}+K)$. Dado que $\{x_{1},\ldots,x_{h_{1}}\}$ y $\{y_{1},\ldots,y_{h_{2}}\}$ son ambos sistemas de generadores minimales de $K-E$ tienen el mismo número de elementos ($h_{1}=h_{2}=:h$). Al ser conjuntos de generadores distintos, existirá un cierto $j\in\{1,2,\ldots,h\}$ tal que $x_{j}\notin \{y_{1},\ldots,y_{h}\}$.\\
Como $\bigcap_{i=1}^{h} (-y_{i}+K)\subseteq \bigcap_{i=1}^{h} (-x_{i}+K)\subseteq (-x_{j}+K)$, en particular, existirá un cierto $I\subseteq \{1,2,\ldots,h\}$ de mínimo cardinal tal que $\bigcap_{i\in I} (-y_{i}+K)\subseteq (-x_{j}+K)$ pues $I=\{1,2,\ldots,h\}$ es una opción válida; y con $|I|>1$ al tenerse que $x_{j}\notin \{y_{1},\ldots,y_{h}\}$. Podemos usar el mismo argumento que hemos utilizado con la no redundancia de la descomposición para llegar a una contradicción:
$$x_{j}\in x_{j}+S = x_{j} + (K-K) = K-(-x_{j}+K)\subseteq \bigcup_{i\in I} K-(-y_{i}+K)=\bigcup_{i\in I}(y_{i}+S)$$\\
Esto significa que $\exists k\in\{1,\ldots,h\},\;x_{j}=y_{k}+s\Rightarrow y_{k}=x_{j}-s$. Por tanto, dado $y'\in (-y_{k}+K)\Rightarrow \;\exists t\in K$ tal que $y'=-y_{k}+t\Rightarrow y'=-x_{j}+(s+t)\in (-x_{j}+K)$. Esto es una contradicción con la minimalidad de $I$, quedando así demostrada la minimalidad.
\qed
Antes hemos visto que el ideal canónico es irreducible, pero de este teorema deducimos que si $E$ es $\mathbb{Z}$-irreducible, entonces $E=-x_{i}+K$ para algún $x_{i}\in \mathbb{Z}$. Sabiendo la forma que toman los ideales $\mathbb{Z}$-irreducibles y que la descomposición del teorema anterior es única, podemos definir una noción de componente irreducible:\\
\\ \textbf{Definición 2.8: } Dado semigrupo numérico $S$ y un ideal relativo del mismo $E$, a cada uno de los ideales de la forma $(-x_{i}+K)$ en los que según el teorema anterior podemos descomponer $E$ los llamaremos \textbf{componentes $\mathbb{Z}$-irreducibles} de $E$ (la unicidad de la descomposición asegura que existe un único conjunto de componentes irreducibles para un ideal dado)\\
\\ \textbf{Ejemplo 2.6: } Veamos un ejemplo en GAP de la descomposición descrita en el teorema. Sea $S = \{3, 4, 5\}$, y consideremos el ideal $I=\{4,5\}+S$
\begin{lstlisting}[language=gap]
gap> S:=NumericalSemigroup(3,5,7);;
gap> I:=[4,5]+S;;
gap> K:=CanonicalIdeal(S);;
gap> MinimalGenerators(K-I);
[ -2, 2 ]
gap> MinimalGenerators(Intersection(-2+K,2+K));
[ 4, 5 ]
\end{lstlisting}
Por lo que $\{4,5\}+S = (-2 + K) \cap (2 + K)$. Como vemos, este teorema nos da un algoritmo para saber si un ideal es $\mathbb{Z}$-irreducible y nos da una descomposición en componentes irreducibles del ideal. Como parte de este trabajo de fin de grado he implementado este algoritmo en GAP.\\ \\
Tratamos ahora la irreducibilidad de ideales propios.\\
\\ \textbf{Definición 2.9: } Sea $S$ un semigrupo numérico y $E$ un ideal propio de $S$. Decimos que $E$ es \textbf{irreducible} si no puede ser expresado como intersección finita de ideales propios de $S$ que contengan a $E$ propiamente.\\
$S$ es ideal irreducible de si mismo, por lo que asumiremos en adelante que $0\notin E$\\
Queremos un teorema que nos permita obtener una descomposición en elementos irreducibles con el caso de $\mathbb{Z}$-irreducibilidad, por lo que vamos a tener que introducir nuevos conceptos y demostrar proposiciones básicas sobre los mismos:\\
\\ \hypertarget{def2.10}{\textbf{Definición 2.10: }} Sea $S$ un semigrupo numérico:
\begin{itemize}
\item Dados dos enteros $a$,$b\in S$, decimos que $a\leq_{S} b$ si $b-a\in S$.
\item Usando la notación anterior, definimos para $x\in S$, $D(x)=\{s\in S\;|\; s\leq_{S} x\}=\{s\in S\;|\; x-s\in S\}$. Al conjunto $D(x)$ lo denominaremos divisores de $x$ en $S$.
\item Diremos que un conjunto $X\subseteq\ S$ es cerrado por divisores (en $S$) si tiene la siguiente propiedad: $\forall x\in X$ y para todo $y\in S$ que verifique que $y\leq_{S} x$ entonces $y\in X$.
\end{itemize}
\textbf{Ejemplo 2.7: }
En otros ejemplos hemos visto que para el semigrupo numérico $S=\{0,3,6,7,9,10,12,\rightarrow\}$ tenemos el conjunto $D(12)=\{3,6,9,12\}$.\\
Más adelante demostraremos que todos los conjuntos de este tipo son cerrados por divisores, pero en este caso es sencillo computarlo manualmente.\\
\\ \textbf{Lema 2:} Un subconjunto $E$ de un semigrupo numérico $S$ es un ideal si y solo si su complementario en $S$ ($X=S\setminus E$) es cerrado por divisores. \\
\\ \textbf{Demostración: } Por un lado, si $E$ es un ideal de S veamos que $X=S\setminus E$ es cerrado por divisores. Sea $x\in X$, $y\in S$ con $y\leq_{S} x$. Si $y\in E$ entonces $y=x+s$ para algún $s\in S\Rightarrow x\in E$, llegado así a una contradicción. Por tanto, se verifica que $y\in X$ y entonces es cerrado por divisores.\\
Por otro lado, si partimos de que $X$ es cerrado por divisores, entonces veamos que $E=S\setminus E$ es un ideal de S. Dado $e\in E$ y $s\in S$, $s+e\in E$, pues de lo contrario $s+e\in X$. Dado que $e\in S$ y que $e\leq_{S} e+s$ (pues $(e+s)-e = s\in S$) entonces aplicando la definición de cerrado por divisores sobre $X$, deducimos que $e\in X$. Llegando así a una contradicción.
\qed
\textbf{Proposición 2.10: } Sea $S$ un semigrupo numérico y $x, a, b, c\in S$.
\begin{itemize}
\item Si $a\leq_{S} b$ y $b\leq_{S} c$ entonces $a\leq_{S} c$. Es decir, ( $\leq_{S}$ ) es una relación transitiva.
\item El conjunto $D(x)$ es cerrado por divisores.
\item El conjunto $S\setminus D(x)$ es un ideal propio de $S$.
\end{itemize}
\textbf{Demostración: }
\begin{itemize}
\item Para la primera afirmación debemos demostrar que $c-a\in S$.\\ $c-a = (c-b)+(b-a) = s_{1} +s_{2}$. De $a\leq_{S} b$ deducimos que $s_{2} = b-a\in S$ y de $b\leq_{S} c$ que $s_{1} = c-b\in S$. Como $S$ es un semigrupo $s_{1}+s_{2}= c-a\in S$.
\item Si $z\in D(x)$, y dado $y\in S$ con $y\leq_{S} z$ entonces por la transitividad de ( $\leq_{S}$ ) tenemos que $y\leq_{S} x$ y por definición de $D(x)$, $y\in D(x)$.
\item Como $D(x)$ es cerrado por divisores, podemos aplicar el lema 2 y concluir que $S\setminus D(x)$ es un ideal de $S$. Como $S\setminus D(x)\subseteq S$ es un ideal propio.
\end{itemize}
\qed
\hypertarget{lema3}{\textbf{Lema 3:}} Sea $S$ un semigrupo numérico, y $x\in S$. Entonces, para todo ideal propio $E$ de $S$, son equivalentes:
\begin{enumerate}
\item $x\notin E$.
\item $E\subseteq ( S\setminus D(x) )$
\end{enumerate}
\textbf{Demostración: }\\
$(1)\Rightarrow (2)$: si $x\notin E$, entonces, para todo $s\in E$, tenemos que $s\nleq_{S} x$, pues de ser así tendríamos que $x-s\in S$ y por definición de ideal $x=(x-s)+s\in E$, lo cual es una contradicción.
Como $s\nleq_{S} x$ entonces $s\in S\setminus D(x)$, quedando esta parte demostrada.\\
$(2)\Rightarrow (1)$ Es inmediata porque $x\in D(x)$
\qed
\hypertarget{prop7}{\textbf{Proposición 2.11: }} Las siguientes afirmaciones son equivalentes:
\begin{enumerate}
\item $E$ es irreducible
\item $E = S\setminus D(x)$ para algún $x\in S$
\end{enumerate}
\textbf{Demostración: }
Empezamos demostrando $(1)\Rightarrow (2)$. Recordemos que la definición de que $E$ es irreducible es que no puede ser expresado como intersección finita de ideales propios que lo contienen estrictamente. Denotemos por $H$ a la intersección de todos los ideales propios que contienen a $E$. Entonces $E\subsetneq H\Rightarrow \exists x\in H\setminus E$. Como $x\notin E$, podemos aplicar el lema 3 y deducimos que $E\subseteq S\setminus D(x)$. Si esta es una inclusión propia, entonces $E\subsetneq H\subset S\setminus D(x)$, contradiciendo que $x\in H$. Por tanto se da la igualdad.\\
$(2)\Rightarrow (1)$
Basta con darnos cuenta que todo ideal propio que contiene a $E$, debe contener a $x$. Si hubiera un ideal propio $I$ tal que $E\subsetneq I$ y $x\notin I$, por el lema 3 $I\subseteq S\setminus D(x) = E$, que contradice que $I$ contiene a $E$ estrictamente.\\
Como todo ideal propio que contiene a $E = S\setminus D(x)$ contiene a $x$, no podemos escribir $E$ como intersección finita de ideales propios que lo contienen estrictamente y, por tanto, es irreducible.
\qed
De la proposición anterior, podemos pensar que todo ideal irreducible es de la forma $S\setminus D(x)$ para un cierto $x\in S$. La proposición anterior y los lemas que vamos a ver ahora apuntan en esa dirección, todo con el objetivo de llegar a un Teorema que nos proporcione una descomposición en componentes irreducibles.\\
\\ \hypertarget{lema4}{\textbf{Lema 4: }} Sea $E$ un ideal propio de un semigrupo numérico $S$. Entonces:
\begin{enumerate}
\item Todo ideal irreducible que contiene a $E$ es de la forma $S\setminus D(x)$ con $x\in S\setminus E$
\item Todo ideal irreducible que contiene a $E$ y minimal con respecto a inclusión es de la forma $S\setminus D(x)$ con $x\in Maximales_{\leq_{S}}(S\setminus E)$
\end{enumerate}
\textbf{Demostración: }
\begin{enumerate}
\item La primera proposición sigue de la \hyperlink{prop7}{proposición 7}, pues si $I$ es un ideal irreducible que contiene a $E$, entonces por ser irreducible es de la forma $S\setminus D(x)$, con $x\in S\setminus I\subseteq S \setminus E$
\item Analizando la inclusión $S\setminus D(y) \subseteq S\setminus D(x)\Longleftrightarrow D(x)\subseteq D(y)$, para ciertos $x,y\in S$. $D(x)\subseteq D(y)$ supone que $x\in D(y)$ por lo que $x\leq_{S} y$. De lo cual concluimos la afirmación.
\end{enumerate}
\qed
\textbf{Lema 5: } Dados $E$ y $F$ ideales propios de $S$, el conjunto:
$$E-_{S}F=\{s\in S\;|\; s+F\subseteq E\}$$
es también un ideal propio de $S$.\\ \\
\textbf{Demostración:}
Por como está definido, $E-_{S}F$ es un subconjunto de S. Para ver que es un ideal, podemos usar la misma demostración que usamos para demostrar que $E-F$ es un ideal, veamos que verifica las dos condiciones de la definición de ideal.\\
La primera, que $\forall z\in E-_{S} F$, y cualquier $s\in S$ $s+z\in E-_{S} F$. Por definición $\forall f\in F,\;\exists e\in E$ tal que $z+f=e\Rightarrow z+s+f=e+s\in E\Rightarrow z+s\in E-_{S}F$.\\
Para la segunda condición, tenemos que ver que existe $s\in S$ tal que $s+(E-_{S}F)\subseteq S$. Tomemos $s=f+s_{F}+s_{E}\in S$ (Donde $s_{F}$ y $s_{E}$ son elementos de $S$ tales que $s_{E}+E\subseteq S$ y $s_{F}+F\subseteq S$). Dado $z\in E-_{S}F$, $\forall$, $\forall f\in F,\;\exists e\in E$ tal que $z+f=e\Rightarrow z=(e-f)\Rightarrow z+s = (e-f)+s_{e}+f+s_{f}=e+s_{e}\in S$.
\qed
\textbf{Teorema 2.12:} Sea $S$ un semigrupo numérico, $M$ ($M=S^{*}=S\setminus \{0\}$) su ideal maximal y sea $E$ un ideal propio de $S$. Si $(E-_{S}M)\setminus E = \{x_{1},\ldots,x_{h}\}$. Entonces:
$$E= (S\setminus D(x_{1}))\cap\ldots\cap(S\setminus D(x_{h}))$$\\
Y esta descomposición de $E$ en ideales de $S$ propios e irreducibles es única y no redundante.\\
\\ \textbf{Demostración: }
Empezamos demostrando que $E = \bigcap_{x\in S\setminus E} (S\setminus D(x))$.\\
Por un lado, por el \hyperlink{lema3}{lema 3}, tenemos que $E\subseteq S\setminus D(x)$, $\forall x\in S\setminus E$. Por tanto $E\subseteq \bigcap_{x\in S\setminus E} (S\setminus D(x))$.\\
Por otro lado, si $y\notin E\Rightarrow y\in D(y)\Rightarrow y\notin \bigcap_{x\in S\setminus E} (S\setminus D(x))$.
Podemos reducir la descomposición anterior: tenemos que siempre se verifica que $\bigcap_{x\in S\setminus E} (S\setminus D(x)) \subseteq \bigcap_{x\in Maximales_{\leq_{S}}(S\setminus E)} (S\setminus D(x)$.\\
De hecho, se da igualdad, pues usando el \hyperlink{lema4}{lema 4}, obtenemos que:
\\$\forall y\in S\setminus E,\;\exists x\in Maximales_{\leq_{S}}(S\setminus E)$ tal que $S\setminus D(y)\subseteq S\setminus D(x)$, luego obtenemos la otra contención.
$$E = \bigcap_{x\in S\setminus E} (S\setminus D(x)) = \bigcap_{x\in Maximales_{\leq_{S}}(S\setminus E)} (S\setminus D(x)$$
\\
Si demostramos ahora que $(E-_{S}M)\setminus E = Maximales_{\leq_{S}}\{S\setminus E\}$ habremos demostrado el teorema. Por definición de ``$-_{S}$'' tenemos que $x\in (E-_{S}M)\setminus E\Longleftrightarrow \forall y\in M,\; x+y\in S$. Vemos ahora que el lado izquierdo de la equivalencia es equivalente a que $x\in Maximales_{\leq_{S}}(S\setminus E)$:\\
Por un lado, si existe $y\in M$ tal que $x+y\notin S$ entonces $z:=x+y\in S\setminus E\Rightarrow z-x = y\in S\Rightarrow z\leq_{S} x\Rightarrow x\notin Maximales_{\leq_{S}}(S\setminus E)$.\\
Por otro lado, si $x$ no es máximal, entonces $\exists y\in S\setminus E$ tal que $y\geq_{S} x\Rightarrow z:=y-x\notin S\Rightarrow x+z=y\notin E$, demostrando la equivalencia.\\
Poniendo todo lo que tenemos hasta ahora:
$$E = \bigcap_{x\in S\setminus E} (S\setminus D(x)) = \bigcap_{x\in Maximales_{\leq_{S}}(S\setminus E)} (S\setminus D(x) = \bigcap_{x\in (E-_{S} M)\setminus E} (S\setminus D(x) = \bigcap_{x\in \{x_{1},\ldots,x_{h}\}} (S\setminus D(x)$$\\
La minimalidad y la no redundancia son garantizadas porque cada uno de los ideales de la forma $S\setminus D(x),\; x\in Maximales_{\leq_{S}}(S\setminus E)$ es maximal con respecto a la contención y es, además, irreducible. A mayores, los ideales $S\setminus D(x)$ son propios e irreducibles.
\qed
Veamos un ejemplo aplicando este teorema:\\
\\ \textbf{Ejemplo 2.8:}
Sean $S= \langle 3, 5, 7\rangle $ e $I = 10 + S$ . Vamos a usar el teorema anterior para obtener una descomposición en irreducibles:
\begin{lstlisting}[language=gap]
gap> S:=NumericalSemigroup(3,5,7);;
gap> I:=10+S;;
gap> Difference(Intersection(0+S,I-M),I);
[ 12, 14 ]
\end{lstlisting}
La penúltima línea calcula primero ``Intersection(0+S,I-M)'', que nos da $I-_{S} M$ (la intersección reduce la resta a elementos de $S$). Después con la función ``Diffence()'' nos da que $(I-_{S} M)\setminus I = \{12,14\}$. Por tanto: $$I=(S\setminus D(12))\cap (S\setminus D(14))$$\\
Podemos obtener una expresión más explicita para la descomposición:\\
Vamos usar ``d:=x->DivisorsOfElementInNumericalSemigroup(x,S)'' para definir una función ``$d(x)$'' que devuelve los divisores de $x$ en $S$.\\
``IdealByDivisorClosedSet(d(x),S)'' nos devuelve el ideal $S\setminus D(x)$. Usando ``MinimalGenerators()'' podemos obtener un sistema de generadores de este ideal:
\begin{lstlisting}[language=gap]
gap> d:=x->DivisorsOfElementInNumericalSemigroup(x,S);;
gap> MinimalGenerators(IdealByDivisorClosedSet(d(12),S));
[ 8, 10 ]
gap> MinimalGenerators(IdealByDivisorClosedSet(d(14),S));
[ 10, 12 ]
\end{lstlisting}
Por tanto: $I = (\{8, 10\} + S ) \cap (\{10; 12\} + S ).$ \\
Comprobamos que efectivamente, es cierto:
\begin{lstlisting}[language=gap]
gap> Intersection(IdealByDivisorClosedSet(d(12),S),
IdealByDivisorClosedSet(d(14),S)) = I;
true
\end{lstlisting}
%%% ----------------------------------------------------------------------------------------------------------------------------------------------%%%
%%% ----------------------------------------------------------------------------------------------------------------------------------------------%%%
%%% ---------------------------------------- Capítulo 3 ----------------------------------------------------------------------------------------- %%%
%%% ----------------------------------------------------------------------------------------------------------------------------------------------%%%
%%% ----------------------------------------------------------------------------------------------------------------------------------------------%%%
\chapter{Introducción a códigos correctores lineales}
En este capítulo dejamos los semigrupos numéricos por el momento para introducir las nociones básicas de códigos correctores de errores. En concreto, códigos lineales. Más adelante aplicaremos estos conceptos al contexto de semigrupo numéricos e ideales.\\
El objetivo de un código corrector de errores es detectar y corregir errores que se producen en el proceso de transmisión de información. En el contexto de este capitulo y en adelante pensaremos que los códigos que vamos a estudiar forman parte de un proceso de comunicación. En dicho proceso hay un emisor, que manda un mensaje a un receptor a través de un canal con ``ruido''. El mensaje será un vector $\mathbf{x}=(x_{1},\ldots,x_{n})\in \mathbb{F}_{q}^{n}$ (en este capítulo y en adelante, denotaremos por $\mathbb{F}_{q}$ al único cuerpo finito de $q$ elementos). Podemos pensar que el mensaje es un número binario con n-bits (aunque trabajaremos con cualquier cuerpo finito) transmitido a través de un medio digital y que el ``ruido'' del medio indica que hay una cierta probabilidad de que cualquier bit del mensaje pase de ser $0$ a un $1$ y viceversa.\\
\\ \textbf{Ejemplo 3.0.1:}\\
El ejemplo más sencillo de un código corrector consiste en mandar varias copias del mensaje. Pensando el caso de mandar un mensaje binario, el emisor puede mandar 3 copias del mensaje original. El receptor solo tiene que comparar bit a bit las copias y si existe alguna discrepancia entre las copias, asumirá que las dos copias con el mismo valor en ese bit son correctas y corregirá el bit discrepante. Por ejemplo, si el bit número $k\in\{1,\ldots ,n\}$ toma valor 1 para las dos primeras copias, pero 0 en la tercera, asumiremos que 1 es el valor correcto:\\
El emisor manda tres copias del mensaje $m\in\mathbb{F}_{2}^{n=3},\; m=\{1,1,1\}$ al receptor a través de un canal con ruido, el cual recibe lo siguiente:\\
Copia 1: $ m_{1}=\{1,\textcolor{red}{\textbf{\hl{1}}},1\}$\\
Copia 2: $ m_{2}=\{1,\textcolor{red}{\textbf{\hl{0}}},1\}$\\
Copia 3: $ m_{3}=\{1,\textcolor{red}{\textbf{\hl{1}}},1\}$\\
El emisor compara bit a bit las tres copias y observa una discrepancia en el bit número $2$. Según el protocolo que hemos descrito, el receptor asume que el valor correcto es $1$, pues es el que dos de las tres copias toman. Así corrige el error y recupera el mensaje original.\\
Este ejemplo es una primera aproximación al problema de corrección de errores. Notemos que si dos de las copias son alteradas, el receptor llegará a una conclusión errónea. Todos los códigos correctores tienen un límite de errores que pueden detectar y/o corregir, como veremos más adelante.\\
También observamos que este protocolo es muy poco eficiente, requiriendo triplicar el tamaño de cada mensaje. Esto es algo que podemos mejorar considerablemente.\\
\\ \hypertarget{ejemplo2}{\textbf{Ejemplo 3.0.2:}} \\
Otro ejemplo sencillo de un código que permite detectar errores (si bien no corregirlos) es un \textit{bit de paridad}. Dado un mensaje binario de longitud $n$, el emisor puede sumar en $\mathbb{F}_{2}$ todos los bits del mensaje y el resultado será $1$ si hay un número impar de bits con valor ``uno'' y $0$ si hay un número impar.\\
El emisor quiere mandar el mensaje $m\in\mathbb{F}_{2}^{n=8},\; m=\{1,0,1,1,1,0,0,0\}$, luego computa la suma de los dígitos (módulo 2): $$\overline{1+0+1+1+1+0+0+0}=\overline{0}\;\;(mod\;\; 2)$$
Para el mensaje $m$ decimos que el bit de paridad es $0$. Al receptor le llegará un mensaje codificado con nueve bits: $c=\{1,0,1,1,1,0,0,0,0\}$ donde los ocho primeros corresponden al mensaje y el último es el bit de paridad. Si la suma módulo 2 de los 8 primeros bits no coincide con el bit de paridad sabrá que se ha producido al menos un error.\\
Este método requiere muy poco espacio extra, pero solo permite detectar si se han producido errores (no corregirlos) y solo si el número de errores es impar. \\
%%--------------------------------Seción 1-------------------------------------%%
%%--------------------------------Seción 1-------------------------------------%%
En adelante, consideramos que el emisor manda un mensaje $m\in\mathbb{F}_{q}^{k}$. Veremos en el contexto de los códigos lineales lo que supone codificar el mensaje y cómo es el espacio de mensajes codificados.
\section{Conceptos básicos:}
Vamos a introducir a continuación las definiciones y conceptos básicos sobre códigos lineales. Empezamos dando la definición de código lineal:\\
\\ \textbf{Definición 3.1.1:} Un \textbf{código lineal} $\mathcal{C}$ sobre $\mathbb{F}_{q}$ es un subespacio vectorial de $\mathbb{F}_{q}^{n}$.\\
Además en referencia a un código lineal $\mathcal{C}$ consideramos los parámetros:
\begin{itemize}
\item \textbf{Longitud} si el código es subespacio de $\mathbb{F}_{q}^{n}$ entonces llamaremos a $n$ longitud de $\mathcal{C}$.
\item $k$, la \textbf{dimensión} del código como espacio vectorial.
\end{itemize}
Dado un código lineal, diremos que es de tipo $[n,k]$ ó $[n,k,d]$ (donde $d$ es la distancia mínima, que definiremos a continuación) y diremos que la redundancia es $r=n-k$\\
Vamos a definir la \textit{distancia mínima} y la \textit{distancia de Hamming}.\\
\\ \textbf{Definición 3.1.2: } Dados $\textbf{x,\; y}\in \mathbb{F}_{q}^{n}$, $\textbf{x}=(x_{1},\ldots ,x_{n})$ e $\textbf{y}=(y_{1},\ldots ,y_{n})$, la \textbf{distancia de Hamming} entre $\mathbf{x, y}$ es:
$$d(\mathbf{x},\;\mathbf{y})=\big{|}\big{\{}i\;|\; x_{i}\neq y_{i}, \;i\in\{1,2,\ldots ,n\}\big{\}}\big{|}$$\\
\\ \textbf{Proposición 3.1.1: } La distancia de Hamming es una distancia en $\mathbb{F}_{q}^{n}$.\\
\\ \textbf{Demostración: }
\begin{enumerate}
\item Vemos que $d$ es no negativa y que $d(\mathbf{x},\;\mathbf{y})=0\Longleftrightarrow \mathbf{x}\;=\;\mathbf{y}$:\\
La no negatividad sigue que $d(\mathbf{x},\mathbf{y})$ se define como el cardinal de un conjunto, por lo que no puede ser negativo.\\
Si $\mathbf{x}=(x_{1},\ldots ,x_{n}),\; \mathbf{y} = (y_{1},\ldots , y_{n})$ y $\mathbf{x}=\mathbf{y}$ entonces $\forall i\in\{1,2,\ldots ,n\},\; x_{i}=y_{i}\Rightarrow \; d(\mathbf{x},\;\mathbf{y})= 0$.\\
Por otro lado, si $0=d(\mathbf{x},\;\mathbf{y})$, entonces, por definición de ``$d$'', $x_{i} = y_{i},\;\forall i\in\{1,2,\ldots ,n\}\Rightarrow \textbf{y}=\textbf{x}$.
\item Claramente, $d(\mathbf{x},\;\mathbf{y}) = d(\mathbf{y},\;\mathbf{x})$ pues la definición es simétrica.
\item Finalmente, veamos que verifica la desigualdad triangular: $d(\mathbf{x},\;\mathbf{y})+d(\mathbf{y},\;\mathbf{z})\geq d(\mathbf{x},\;\mathbf{z})$:\\
Denotemos $I=\big{\{}i\;|\; x_{i}\neq y_{i}, \;i\in\{1,2,\ldots ,n\}\big{\}}$, $J=\big{\{}i\;|\; y_{i}\neq z_{i}, \;i\in\{1,2,\ldots ,n\}\big{\}}$ y $K = \big{\{}i\;|\; x_{i}\neq z_{i}, \;i\in\{1,2,\ldots ,n\}\big{\}}$
Si $i\in K$, por definición $x_{i}\neq z_{i}$. Entonces no puede ser que $(i\notin I)\land (i\notin J)$, pues si fuera así entonces $(x_{i}=y_{i})\land (y_{i}=z_{i})\Rightarrow x_{i}=z_{i}\Rightarrow i\neq K$, lo cual es una contradicción.\\
Entonces concluimos que $$i\in K\Rightarrow (i\in I)\lor (i\in K)\Rightarrow d(\mathbf{y},\;\mathbf{x})=|K|\leq |I|+|J| = d(\mathbf{y},\;\mathbf{x}) + d(\mathbf{y},\;\mathbf{z}) $$
\end{enumerate}
\textbf{Definición 3.1.3: } Usando la distancia de Hamming, podemos definir una norma en $\mathbb{F}_{q}^{n}$. Sea $\mathbf{0}=(0,\ldots,0)$, llamamos \textbf{peso de Hamming} de $\textbf{x}$ a:
$$w(\mathbf{x}):=d(\mathbf{x}, \mathbf{0})$$
De forma análoga a la demostración anterior, es fácil ver que el peso de Hamming define una norma en $\mathbb{F}_{q}^{n}$.\\
\\ \hypertarget{def3.14}{\textbf{Definición 3.1.4: }} Dado un código lineal $\mathcal{C}$.
\begin{itemize}
\item Llamaremos a $d$ la \textbf{distancia mínima} de $\mathcal{C}$ a: $$d=min\{d(\textbf{x},\textbf{y})\;|\;\textbf{x},\;\textbf{y}\in\mathcal{C},\;\textbf{x}\neq\textbf{y}\}$$
\item Llamaremos \textbf{peso mínimo} de $w(\mathcal{C})$ a:
$$w(\mathcal{C})=min\{w(c)\;|\;c\in \mathcal{C},\; c\neq \mathbf{0}\}$$
\item Dado $\textbf{x}=(x_{1},\ldots,x_{n})\in \mathbb{F}_{q}^{n}$, denominaremos \hypertarget{soporte}{\textbf{soporte}} de $\mathbf{x}$ a:
$$sop(\mathbf{x})=\Big{\{}i\;\Big{|}\; x_{i}\neq 0,\; i\in \{1,2,\ldots, n\}\Big{\}}$$
\end{itemize}
La distancia mínima, es una de las ideas centrales de los códigos correctores lineales. Si es $d$ es la distancia mínima de un código $\mathcal{C}$, y conocemos el conjunto de todos los mensajes codificados, entonces tenemos, automáticamente, un \hypertarget{algoritmo}{\textbf{algoritmo}} para decodificar cualquier código lineal (si bien uno no muy eficiente):
\begin{enumerate}
\item Al recibir un mensaje codificado por un código lineal, el receptor puede comparar el mensaje recibido con el conjunto de mensajes posibles (todo $\mathcal{C}$). Si el mensaje recibido coincide con un elemento de $\mathcal{C}$, asumirá que no se ha producido ningún error.
\item Si no coincide, entonces el receptor computará la distancia entre el mensaje-código recibido y cada uno de los códigos de $\mathcal{C}$. Asumirá que el que tenga la menor distancia al código recibido será el mensaje original.
\end{enumerate}
Este algoritmo no se puede usar en la práctica salvo para códigos con pocos elementos. Sin embargo, nos da una idea de cuál es la capacidad correctora de un código, pues está basado en la idea la idea de se producen, en general, pocos errores. Entonces, si recibimos una palabra que no está en el código, asumimos que la palabra del código que más se le asemeje es la palabra original. Si el número de errores es pequeño, esto es cierto. Podemos formalizar esto por medio de la idea de \textbf{capacidad correctora}:\\
Usando el algoritmo anterior, podemos corregir $t=\lfloor\frac{d-1}{2}\rfloor$ errores:\\
\\ \textbf{Proposición 3.1.2: } Un código lineal $\mathcal{C}$ cuya distancia mínima es $d$ puede corregir $t=\lfloor\frac{d-1}{2}\rfloor$ errores. A este número lo llamaremos $\textbf{capacidad correctora}$ del código y lo denotamos por $t$.\\
\\ \textbf{Demostración:}
Si el mensaje original $\mathbf{m}\in\mathcal{C}$ sufre $t$ o menos errores, llegará al receptor como $\mathbf{y}\in\mathbb{F}_q^{n}$. El receptor detectará que hay errores, pues $d(\mathbf{y},\mathbf{m})=s\leq t<d\Rightarrow \mathbf{y}\notin \mathcal{C}$. La palabra de $\mathcal{C}$ que tiene la mínima distancia de Hamming a $\mathbf{y}$, es el mensaje original $m$ (y no hay otra palabra de $\mathcal{C}$ a la misma distancia, $d(\mathbf{m},\mathbf{y})=s$). De lo contrario, existiría $\mathbf{z}\in \mathcal{C}$ tal que $d(\mathbf{z},\mathbf{y})=s'\leq s\leq t$. Aplicando la desigualdad triangular, $d(\mathbf{z},\mathbf{m})\leq d(\mathbf{z},\mathbf{y})+d(\mathbf{y},\mathbf{m})=s'+s\leq 2t<d$, lo cual contradice la hipótesis que la distancia mínima del código es $d$.\\
Por tanto, si se han cometido $t$ o menos errores, el algoritmo que hemos descrito nos permite decodificar el mensaje, pues el mensaje original, $m$, será aquel que esté a menor distancia de Hamming del mensaje con errores $y$.
\qed
Es deseable que la distancia mínima del código sea lo mayor posible con el fin de que la capacidad correctora sea lo mayor posible. También es deseable que $n-k$ sea lo menor posible, ya que así el mensaje codificado ocupará lo menos posible.\\
\\ \textbf{Lema 1} Sea $\mathcal{C}$ un código lineal, entonces su distancia mínima es igual a su peso mínimo.\\
\\ \textbf{Demostración:} Como $\mathcal{C}$ es un espacio vectorial, esta propiedad es consecuencia de la igualdad $w(\mathbf{x}-\mathbf{y})=d(\mathbf{x}-\mathbf{y},\mathbf{0})=|\{i\;|\;x_{i}-y_{i}\neq 0,\;i\in \{1,2,\ldots,n\}\}|=|\{i|x_{i}\neq y_{i},\;i\in \{1,2,\ldots,n\}\}|=d(\mathbf{x},\mathbf{y})$.
\qed
En el contexto de la definición anterior, podemos interpretar $\mathbb{F}_{q}^{n}$ como la imagen por una aplicación lineal $f$, del espacio vectorial $\mathbb{F}_{q}^{k}$ a $\mathbb{F}_{q}^{n}$. $f:\mathbb{F}_{q}^{k}\rightarrow\mathbb{F}_{q}^{n}$ puede ser entendida como una aplicación que codifica un mensaje que pertenece al espacio origen. Con esta idea damos la siguiente definición:\\
\\ \textbf{Definición 3.1.5:} Llamaremos \textbf{matriz generatriz} del código $\mathcal{C}$ a la matriz de una aplicación lineal inyectiva $f:\mathbb{F}_{q}^{k}\rightarrow\mathbb{F}_{q}^{n}$. Además, dada $G$, una matriz generatriz $k\times n$ y un mensaje $m\in \mathbb{F}_{q}^{k}$ diremos que $c=mG\in \mathbb{F}_{q}^{n}$ es el \textbf{mensaje codificado} (escribiendo los vectores en forma de fila). $c$ es el mensaje que recibirá el receptor. \\
Como la matriz generatriz define una base de $\mathcal{C}$, no es única. Dada $G$ una matriz generatriz de $\mathcal{C}$, cualquier matriz semejante a $G$ es también matriz generatriz de $\mathcal{C}$.\\
De la definición anterior podemos deducir varias cosas. Por una lado, el requisito de inyectividad lleva a que, en casos no triviales, $ n>k $. Es decir, que para que un código tenga capacidad correctora es necesario que el mensaje codificado ocupe más espacio del que el mensaje original ocupa de por sí.\\
Además, notamos que la matriz generatriz es una matriz $k\times n$ cuyas columnas forman una base de $\mathcal{C}$.\\
\\ \textbf{Ejemplo 3.1.3: } Consideremos el código lineal dado por la siguiente matriz generatriz (con cuerpo $\mathbb{F}_{2}$):
$$G=
\begin{pmatrix}
0 & 0 & 1 & 1\\
1 & 1 & 0 & 0\\
1 & 0 & 1 & 0
\end{pmatrix}$$
En este caso tenemos que $G:\mathbb{F}_{2}^{3}\rightarrow \mathbb{F}_{2}^{4}$, con longitud $n=4$ y dimensión $k=3$. Hay $2^{k}=2^{3}$ posibles mensajes o palabras que se pueden transmitir. Si consideramos la imagen de $G$, obtenemos que: $$\mathcal{C}=\{(0,0,1,1),\; (1,1,0,0),\;(1,0,1,0),\; (1,1,1,1),\; (1,0,0,1),\;(0,1,1,0),\; (0,1,0,1),\; (0,0,0,0)\}.$$
De lo anterior, podemos computar la distancia mínima, tomando la mínima distancia de las distancias entre todos los posibles pares de vectores de $\mathcal{C}$; en este caso es $2$.\\
Dado el mensaje $m=(1,0,1)$, su codificación es:\\
$$c=m\times G\;=\;(1,\;0,\;1)\times
\begin{pmatrix}
0 & 0 & 1 & 1\\
1 & 1 & 0 & 0\\
1 & 0 & 1 & 0
\end{pmatrix}
=(1,\;0,\;0,\;1)$$
Con lo estudiado hasta este punto podemos entender los fundamentos básicos de un código lineal y cómo se codifican mensajes. Lo que nos falta por ver es el proceso de decodificación. Existen algoritmos de decodificación genéricos (ver algoritmo del líder), pero, en general, no son prácticos para situaciones reales. Por ello, se suele estudiar familias de códigos lineales que tienen un algoritmo de decodificación propio. En nuestro caso, usaremos códigos algebraico-geométricos.
\section{Otros conceptos de códigos lineales}
Los conceptos anteriores nos valen para abordar los códigos AG, pero en esta sección vamos a explorar códigos lineales en más profundidad. En particular, vamos a analizar cómo podemos usar un algoritmo genérico de decodificación.\\
El primero es el de \textbf{matriz de control}. La matriz generatriz define el código dando una base, pero un espacio vectorial puede ser definido mediante ecuaciones implícitas.\\
\\ \textbf{Definición 3.2.6: } Diremos que la matriz $H$ es \textbf{matriz de control} del código $\mathcal{C}$ si para todo $\mathbf{x}\in\mathbb{F}_{q}^{n}$ se verifica que: $\mathbf{x}\in \mathcal{C}\Longleftrightarrow H\mathbf{x}^{t}=\mathbf{0}$\\
De esta definición podemos inferir que una matriz de control es la matriz de coeficientes de las ecuaciones implícitas que definen $\mathcal{C}$ como subespacio vectorial.\\
\\ \textbf{Ejemplo 3.2.4: } Para el ejemplo que hemos visto antes, $H=(1,\;1,\;1,\;1)$ es una matriz generatriz. \\
\\ \textbf{Proposición 3.2.3: } Dado un código lineal $\mathcal{C}$ definido en $\mathbb{F}_{q}$ de tipo $[n,k]$, entonces su matriz de control, $H$, también está definida en $\mathbb{F}_{q}$. Además:
\begin{itemize}
\item $H$ tiene rango $n-k$:
\item $H$ es una matriz $(n-k)\times n$.
\end{itemize}
\textbf{Demostración: }
\begin{itemize}
\item $\mathcal{C}$ es un subespacio de dimensión $k$ de $\mathbb{F}_{q}^{n}$, luego está determinado por $n-k$ ecuaciones implícitas y por tanto $H$ debe tener $n-k$ filas.
\item $H$ debe tener $n$ columnas para que la multiplicación por elementos de $\mathbb{F}_{q}^{n}$ sea posible.
\end{itemize}
\qed
\hypertarget{prop3.2.4}{\textbf{Proposición 3.2.4: }} Sea $\mathcal{C}$ un código lineal definido en $F_{q}^{n}$ y sean $G$ y $H$ su matriz generatriz y su matriz de control respectivamente. Entonces: $GH^{t} = 0.$\\
El recíproco también es cierto, dado un código lineal $\mathcal{C}$ con matriz generatriz $G$ y una matriz $H$ con la propiedad $GH^t=0$ entonces $H$ es matriz de control de $\mathcal{C}$.\\
\\ \textbf{Demostración: }
Si partimos de $(GH^{t})^{t} = HG^{t}$ entonces para todo $\mathbf{x}\in \mathbb{F}_{q}^{k}\Rightarrow \mathbf{y}^{t}=G^{t} \mathbf{x}^{t}\in \mathcal{C}\subseteq \mathbb{F}_{q}^{n}$, por tanto, $H \mathbf{y}^{t}=0$.\\
En particular, dada una base $\mathcal{B}=\{\mathbf{b_1},\ldots ,\mathbf{b_k}\}$ de $\mathbb{F}_{q}^{k}$ tenemos que $\forall b_{i}\in\mathcal{B},\; H\;G^{t} \mathbf{b_{i}}^{t}=0$. Dado que $H\;G^{t}$ es una matriz $(n-k)\times k$, la única opción es que sea la matriz nula.\\
Para el recíproco, cualquier mensaje codificado $\mathbf{c}\in\mathbb{F}^{n}_{q}$ es de la forma $\mathbf{c}=\mathbf{m}G$ con $\mathbf{c}\in\mathbb{F}_{q}^{k}$. Entonces $H\mathbf{c}^{t}=H(\mathbf{m}G)^{t}=HG^{t}\mathbf{m}^{t} = \mathbf{0}$ ($HG^{t}=0$ pues $HG^{t}=(GH^{t})^{t}=(0)^{t}$). Por tanto $H$ es matriz de control de $\mathcal{C}$
\qed
\textbf{Proposición 3.2.5: }Sea $\mathcal{C}$ un código lineal cuya matriz de control es $H$ y su distancia mínima es $d$. Entonces, $d>r$ si y solo si $r$ columnas cualquiera de $H$ son linealmente independientes.\\
\\ \textbf{Demostración:} Si existen $r$ columnas linealmente dependientes de $H$:\\
Sean $\mathbf{c_{1}},\ldots,\mathbf{c_{n}}\in \mathbb{F}_{q}^{n-k}$ las columnas de $H$. Consideremos $\mathbf{x}=(x_1,\ldots, x_n)\in \mathbb{F}_{q}^{n}$ un vector tal que $\sum_{i=1}^{n}(x_{i}\mathbf{c_{i}})=0$ y $x_{i}\neq 0 \Longleftrightarrow i\in I\subseteq \{1,2,\ldots, n\}, |I|=r$. Es decir, nos da los coeficientes para obtener una combinación lineal de $r$ columnas de $H$ que sea igual a \textbf{0}. Entonces, $H\textbf{x}^{t}=\textbf{0}$ y por tanto $\textbf{x}\in\mathcal{C}$. Por como hemos definido $\textbf{x}$, su peso es menor o igual que $r$ y al ser elemento del código, la distancia mínima, $d$, del código debe ser menor o igual que $r$.\\
Si partimos de la premisa que, $r$ columnas cualesquiera de $H$ son linealmente independientes, usando la argumentación anterior, no puede haber ningún vector con peso menor o igual que $r$ que pertenezca al código $\mathcal{C}$. Por tanto la distancia mínima será mayor que $r$.
\qed
\textbf{Corolario 3.2.6: } Sea $\mathcal{C}$ un código lineal y $H$ su matriz de control. Entonces, la distancia mínima, $d$, de $\mathcal{C}$ es cardinal del menor conjunto de columnas de $H$ linealmente dependientes.\\
\\ \textbf{Demostración:}
Por la proposición anterior sabemos que si $r+1$ es el cardinal del mayor conjunto de columnas de $H$ linealmente dependientes, entonces $d>r$. Además, la igualdad $d=r+1$ se alcanza, pues el vector que nos proporciona un combinación lineal igual a $0$, de $r+1$ columnas, debe tener $r+1$ coordenadas no nulas, por tanto su peso es $r+1$ y se alcanza la igualdad $d=r+1$.
\qed
\hypertarget{sigleton}{\textbf{Corolario 3.2.7(Cota de Singleton)}}: Si $\mathcal{C}$ es un código lineal de tipo $[n,k,d]$ sobre $\mathbb{F}_q$, entonces, $k+d\leq n+1$.\\
\\ \textbf{Demostración: } Sea $H$ la matriz de control del código $\mathcal{C}$. Por el corolario anterior, la distancia mínima, $d$, coincide con el número de mínimo columnas linealmente independientes de $H$. Puesto que $H$ tiene rango $n-k$, el número es a lo sumo $n-k+1$, luego $d\leq n-k+1\Rightarrow k+d\leq n+1$
\qed
\hypertarget{MDS}{\textbf{Definición 3.2.7: }} Los códigos que alcanza la cota de Singleton se dice que son de \textbf{máxima distancia de separación} o, para abreviar, \textbf{MDS}.\\
Que un código sea MDS es una propiedad deseable, pues para una elección de los parámetros $[k,d]$, un código MDS maximiza el valor de la distancia mínima y, en consecuencia, la capacidad correctora del código.\\
Sea $\mathcal{C}$ un código lineal $[n,k]$, con matriz generatriz $G$ y matriz de control $H$. Existe una dualidad entre matriz generatriz y matriz de control. La matriz generatriz es una matriz de rango máximo $(n-k)$, por tanto, define una aplicación lineal $H:\mathbb{F}_{q}^{n-k}\rightarrow \mathbb{F}_{q}^{n}$ y, en consecuencia, su imagen es un subespacio vectorial y, es decir, un código lineal.\\
\\ \hypertarget{codigodual}{\textbf{Definición 3.2.8: }}Dado $\mathcal{C}$ un código lineal y $H$ su matriz de control. Llamaremos \textbf{código dual} de $\mathcal{C}$, denotado por $\mathcal{C}^{\perp}$ al código lineal cuya matriz generatriz es $H$.\\
Además, debido a que $GH^{t} = 0$, entonces $HG^{t}=0$ y G es una matriz de control de $C^{t}$.\\
Ambos códigos son subespacios vectoriales de $\mathbf{F}_q^{n}$. De hecho, son espacios ortogonales. Efectivamente, si $\mathbf{c}\in \mathcal{C}$ y $H$ es la matriz de control de $\mathcal{C}$ y $G$ su matriz generatriz, entonces un elemento del dual, $\mathbf{c}'$, es siempre la imagen de un cierto $\mathbf{m'}\in \mathbb{F}^{n-k}_{q}$ por la matriz generatriz de $\mathcal{C}^{\perp}$, $H$, es decir $\mathbf{c}'=H(\mathbf{m'})^{t}$. Así mismo, $\mathbf{c}=G\mathbf{m}^{t}$, para cierto $\mathbf{m}\in \mathbb{F}^k_q$. Si consideramos el producto escalar:
$$\langle \mathbf{c}, \mathbf{c}'\rangle=\langle G\mathbf{m}^{t}, H\mathbf{m}'^{t} \rangle= (\mathbf{m}G)(H(\mathbf{m}')^{t})=\mathbf{m}0(\mathbf{m'})^{t}=0$$
Luego ambos espacios son ortogonales.
\section{Síndromes y líderes}
Los últimos conceptos que introduciremos sobre códigos lineales son los del de síndrome y líder. Si el emisor manda un mensaje codificado $\mathbf{c}\in \mathcal{C}\subseteq\mathbb{F}_{q}^{n}$ a través de un canal con ruido entonces se puede producir un error $\mathbf{e}\in \mathbb{F}_{q}^{n}$ ($\mathbf{e}$ puede ser $\mathbf{0}$) y el receptor recibirá $\mathbf{y}=\mathbf{c}+\mathbf{e}$.\\
\\ \hypertarget{def3.3.9}{\textbf{Definición 3.3.9:}} Sea $\mathcal{C}\subseteq\mathbb{F}_q^{n}$ un código lineal y $H$ su matriz de control. Sea $\mathbf{y}$ el un mensaje recibido por el receptor tal y como hemos descrito anteriormente. Entonces llamaremos \textbf{síndrome} de $\mathbf{y}$ al vector:
$$s(\mathbf{y})\;=\;H\mathbf{y}^{t}\;\in\;\mathbb{F}_{q}^{n-k}$$
Al recibir un mensaje, el receptor puede comprobar si el mensaje pertenece al código computando el síndrome, pues $H\textbf{x}^{t}\;=\;\mathbf{0},\;\forall \mathbf{x}\in\mathcal{C}$. Además, por ser $s(\mathbf{y})$ una aplicación lineal, tenemos que $s(\mathbf{y})=s(\mathbf{m}+\mathbf{e})=s(\mathbf{m})+s(\mathbf{e})=s(\mathbf{e})$, obtenido así el síndrome del error cometido (el receptor solo conoce $\mathbf{y}$, $\mathbf{e}$ y $\mathbf{m}$ son desconocidos).\\
\\ \textbf{Proposición 3.3.8: } El síndrome de un vector $\mathbf{y}$ es una combinación lineal de las columnas de $H$ a las combinaciones en las que han ocurrido errores.\\
\\ \textbf{Demostraciones: } Las posiciones del vector de error, $\mathbf{e}=(e_1,\ldots,e_n)$, que nos son cero son en las cuales se ha producido un error. Sea $I\subseteq \{1,2,\ldots,n\}$ el conjunto de índices tales que $e_{i}\neq 0,\;\forall i\in I$. Sabemos que $s(\mathbf{y})=s(\mathbf{e})=H\mathbf{e}^{t}$, si denotamos por $\mathbf{c}_1,\ldots,\;\mathbf{c}_n$ a las columnas de $H$, entonces:
$$s(\mathbf{y})\;=\;\sum_{i=1}^{n}e_{i}\mathbf{c}_{i}=\sum_{i\in I}e_{i}\mathbf{c}_{i}$$
\qed
Podemos combinar esta proposición con la propiedad de la matriz de control ($H$) que vimos anteriormente; por la cual si la distancia del código lineal es $d$, $d-1$ columnas cualesquiera de $H$ son linealmente independientes. Veamos un ejemplo sencillo de como el síndrome puede ayudar con el proceso de decodificación.\\
\\ \textbf{Ejemplo 3.3.5: } Supongamos un código lineal $\mathcal{C}\subseteq \mathbb{F}_{q}^{n}$ cuya distancia mínima es al menos $3$ y emisor que manda un mensaje codificado $c\in \mathcal{C}$ a través de un canal con ruido y el receptor recibe $\mathbf{y}$. Para este ejemplo, supongamos que se produce un único error $\mathbf{e}=(0,\ldots ,0,e_{i}\neq 0,\ldots ,0)$, $\mathbf{y}=\mathbf{c}+\mathbf{e}$. Tenemos que si $\mathbf{c}_i$ es la columna i-ésima de $H$, $s(\mathbf{y})\; =\; H\mathbf{e}^{t}\; =\;\mathbf{c}_{i} e_{i}$, basta ahora resolver y obtener $e_{i}$ (y por tanto $\mathbf{e}$). La proposición anterior nos asegura que $s(\mathbf{y})$ es combinación lineal de una, y solo una columna de $H$ ($\mathbf{c}_i$); por lo que el sistema será resoluble. El mensaje original será $\mathbf{c}=\mathbf{y}-\mathbf{e}$.\\
Este concepto de síndrome, lo podemos usar para proporcionar un algoritmo de decodificación. Se trata de una versión más refinada y más eficiente del \hyperlink{algoritmo}{algoritmo} describimos anteriormente.\\
\\ \textbf{Definición 3.3.10: } Consideremos la relación de equivalencia ($\sim$) para $\mathbf{u},\mathbf{v}\in\mathbf{F}^{n}_q,\;\mathbf{u}\sim \mathbf{v}\Leftrightarrow (u-v)\in\mathcal{C}$. Si existe un único representante de la case cuyo peso de Hamming es mínimo, lo denotaremos \textbf{líder} de la clase.\\
Notemos que $(\mathbf{u}-\mathbf{v})\in\mathcal{C}\Rightarrow s(\mathbf{u}-\mathbf{v})=H(\mathbf{u}-\mathbf{v})^{t}=0\Rightarrow s(u)=s(v)$. Es decir, todos los representantes de la case tienen el mismo síndrome; y por tanto, si recibimos un mensaje $\mathbf{y}$, al conocer $s(\mathbf{y})=s(\mathbf{e})$ conocemos la clase a la que pertenece el error cometido $e$.\\
Es importante notar que, en general, no toda clase tiene líder, hay dos elementos con el peso minimal, no existe líder. Pero si lo hay tenemos que:\\
\\ \hypertarget{prop3.10}{\textbf{Proposición: 3.3.9}} Cada clase de equivalencia de $\mathbb{F}^{n}_{q}/(\sim)$ posee un único elemento de peso $\;\leq t=\lfloor \frac{d-1}{2}\rfloor$.\\
\\ \textbf{Demostración:} Supongamos que existen dos elementos de la misma clase con peso menor o igual a la capacidad correctora. Es decir, sean $\mathbf{u}, \mathbf{v}\in \mathbb{F}^{n}_{q}$ tales que $\mathbf{u}-\mathbf{v}\in \mathcal{C}$ y $w(\mathbf{u})\leq t$, $w(\mathbf{v})\leq t$. Entonces $w(\mathbf{u}-\mathbf{v})\leq w(\mathbf{u})+w(\mathbf{v})\leq 2t < d$. Por definición de distancia mínima, concluimos que $\mathbf{u}-\mathbf{v}=0\Rightarrow \mathbf{u}=\mathbf{v}$.
\qed
\section{Algoritmo del líder:}
Vamos a dar un algoritmo de decodificación, algo más refinado que el primero que vimos. Se basa en los conceptos de síndrome y líder que acabamos de ver, así como en otros dos conceptos; que conocer el líder de una clase de equivalencia en $\mathbb{F}^{n}_{q}/(\sim)$ (si existe y su peso es menor que $t$) es lo mismo que conocer el error y que una clase de equivalencia se identifica por su síndrome (todos los elementos de la clase tienen el mismo síndrome).\\
Veamos lo primero. Siguiendo un razonamiento similar a cuando definimos la distancia de Hamming y dimos el primer \hyperlink{algoritmo}{algoritmo} de decodificación, decodificar consistirá en encontrar la palabra de $\mathcal{C}$, más próxima al vector recibido, $\mathbf{y}$ (solo se podrá decodificar si hay una única palabra). Es decir, $argmin_{\mathbf{x}\in\mathcal{C}}(d(\mathbf{y},\mathbf{x}))=argmin_{\mathbf{x}\in\mathcal{C}}(w(\mathbf{y}-\mathbf{x}))=:\mathbf{l}$, donde, $\mathbf{l}$ es, por definición, el líder de la clase $\{\mathbf{y}-\mathbf{x}\;|\;\mathbf{x}\in\mathcal{C}\}$. Si la clase tiene líder, y este tiene peso menor o igual a la capacidad correctora del código, $t$, entonces la \hyperlink{prop3.10}{proposición anterior} nos garantiza que es el único con esta propiedad. Trabajando sobre la idea de que no se han producido más de $t$ errores, concluimos que el líder de la clase ($\mathbf{l}=\mathbf{y}-\mathbf{x}$) es el error cometido, $\mathbf{e}$ (pues $\mathbf{c'}=\mathbf{y}+\mathbf{l}\in\mathcal{C}$ y es la palabra del código más cercana a $\mathbf{y}$; a distancia menor o igual a $t$).\\
Que una clase se identifica por su síndrome es sencillo, pues sabemos que $\forall \mathbf{x}\in\mathcal{C},\; s(\mathbf{y}-\mathbf{x})=s(\mathbf{y})+0$. Luego el síndrome del mensaje recibido, $\mathbf{y}$, coincide con el síndrome del líder de la clase. Con estas dos ideas, describimos el siguiente algoritmo de decodificación:
\begin{enumerate}
\item Fase inicial: preparamos una tabla de síndromes y líderes como se indica a continuación. Esta nos servirá para todas las decodificaciones.
\begin{enumerate}
\item Creamos una tabla de dos columnas y tantas filas como clases de equivalencia en $\mathbb{F}^{n}_{q}/(\sim)$ (Es decir, $q^{n-k}$ filas).
\item En la primera columna escribimos el síndrome de un elemento cualquiera de cada una de las clases, en la segunda, escribimos el líder de la clase.
\end{enumerate}
\item Con la tabla anterior guardada podemos decodificar cualquier mensaje. El emisor manda un mensaje $\mathbf{m}\in\mathbb{F}_q^{k}$, que codifica como $\mathbf{c}\in\mathbb{F}_q^{n}$, y el receptor recibe $\mathbf{y}\in\mathbb{F}_q^{n}$.
\begin{enumerate}
\item El receptor calcula $s(\mathbf{y})$ y lo busca en la columna de síndromes.
\item Si la clase no tiene líder, el algoritmo falla y finaliza el proceso.
\item Si la clase tiene líder, $\mathbf{e}$, se asume que $\mathbf{e}$ es el error cometido. Por tanto, la palabra decodificada asumimos que es $\mathbf{c'}=\mathbf{y}-\mathbf{e}$.
\end{enumerate}
\end{enumerate}
\textbf{Ejemplo 3.4.6: } Consideremos el código binario con matriz generatriz
$$G=
\begin{pmatrix}
1 & 0 & 1 & 1 & 1 & 1 & 0 & 0\\
0 & 1 & 0 & 1 & 1 & 1 & 1 & 1\\
\end{pmatrix}
$$
Donde $\mathcal{C}=\{G((0,0))=(0,0,0,0,0,0,0,0), G((1,0))=(1,0,1,1,1,1,0,0)$,\\ $G((0,1))=(0,1,0,1,1,1,1,1),\; G((1,1))=(1,1,1,0,0,0,1,1)\}$, y podemos computar la distancia mínima, que es $5$ y la capacidad correctora es $t=\lfloor \frac{5-1}{2}\rfloor = 2$. Una matriz de control es:
$$
H=((\mathbf{c}_3,\mathbf{c}_4,\ldots,\mathbf{c}_8)^{t}|Id_6)=
\begin{pmatrix}
1 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\
1 & 1 & 0 & 1 & 0 & 0 & 0 & 0\\
1 & 1 & 0 & 0 & 1 & 0 & 0 & 0\\
1 & 1 & 0 & 0 & 0 & 1 & 0 & 0\\
0 & 1 & 0 & 0 & 0 & 0 & 1 & 0\\
0 & 1 & 0 & 0 & 0 & 0 & 0 & 1\\
\end{pmatrix}
$$
Donde $\mathbf{c}_i$ es la columna i-ésima de $G$. Al final del ejemplo está la tabla de líderes y síndromes.\\
Consideremos 3 mensajes:
\begin{enumerate}
\item Al receptor le llega $\mathbf{y}=(1,1,0,1,1,0,1,1)$.
\begin{enumerate}
\item Computa $s(\mathbf{y})=H\mathbf{y}^t=(1,1,1,0,0,0)^t$.
\item Busca en la tabla de síndromes el líder de la clase, que es $\mathbf{e}=(1,0,0,0,0,1,0,0)$
\item Por tanto $\mathbf{c'}=\mathbf{y}-\mathbf{e}=(1,1,0,1,1,0,1,1)+(1,0,0,0,0,1,0,0)=(0,1,0,1,1,1,1,1)\in\mathcal{C}$, que es la palabra enviada. Como el líder tiene peso dos y $t=2$, entonces la corrección es correcta (si no ha habido más de $2$ errores).
\end{enumerate}
\item Al receptor le llega $\mathbf{y}=(0,1,1,1,0,0,1,0)$.
\begin{enumerate}
\item Computa $s(\mathbf{y})=(1,0,1,1,0,1)^t$.
\item Busca en la tabla de síndromes el líder de la clase, que es $\mathbf{e}=(1,0,0,1,0,0,0,1)$.
\item Por tanto $\mathbf{c'}=\mathbf{y}-\mathbf{e}=(0,1,1,1,0,0,1,0)+(1,0,0,1,0,0,0,1)=(1,1,1,0,0,0,1,1)\in\mathcal{C}$, que es la palabra enviada. En este caso, el peso del líder es $3$ (más que la capacidad correctora), pero aún así podemos decodificarlo ($[1,1,1,0,0,0,1,1]$ sigue siendo el vector más cercano). Sabemos que se han producido al menos $3$ errores.
\end{enumerate}
\item Al receptor le llega $\mathbf{y}=(0,1,0,1,1,0,0,0)$.
\begin{enumerate}
\item Computa $s(\mathbf{y})=(0,0,0,1,1,1)^t$.
\item Vemos que la clase no tiene líder, luego el algoritmo falla.
\item Sabemos que, por tener el síndrome peso $3$, se han producido al menos 3 errores.
\end{enumerate}
\end{enumerate}
\begin{table}[H]
\centering
\begin{tabular}{lllllllllll}
\cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|c|}{síndrome} & \multicolumn{1}{c|}{líder} & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{síndrome} & \multicolumn{1}{c|}{líder} & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{síndrome} & \multicolumn{1}{c|}{líder} & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{síndrome} & \multicolumn{1}{c|}{líder} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
& & & & & & & & & & \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{000000} & \multicolumn{1}{l|}{00000000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{001000} & \multicolumn{1}{l|}{00001000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{010000} & \multicolumn{1}{l|}{00010000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{011000} & \multicolumn{1}{l|}{00011000} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{000001} & \multicolumn{1}{l|}{00000001} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{001001} & \multicolumn{1}{l|}{00001001} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{010001} & \multicolumn{1}{l|}{00010001} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{011001} & \multicolumn{1}{l|}{} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{000010} & \multicolumn{1}{l|}{00000010} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{001010} & \multicolumn{1}{l|}{00001010} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{010010} & \multicolumn{1}{l|}{00010010} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{011010} & \multicolumn{1}{l|}{} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{000011} & \multicolumn{1}{l|}{00000011} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{001011} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{010011} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{011011} & \multicolumn{1}{l|}{01000100} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{000100} & \multicolumn{1}{l|}{00000100} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{001100} & \multicolumn{1}{l|}{00001100} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{010100} & \multicolumn{1}{l|}{00010100} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{011100} & \multicolumn{1}{l|}{10100000} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{000101} & \multicolumn{1}{l|}{00000101} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{001101} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{010101} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{011101} & \multicolumn{1}{l|}{01000010} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{000110} & \multicolumn{1}{l|}{00000110} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{001110} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{010110} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{011110} & \multicolumn{1}{l|}{01000001} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{000111} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{001111} & \multicolumn{1}{l|}{01010000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{010111} & \multicolumn{1}{l|}{00011000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{011111} & \multicolumn{1}{l|}{01000000} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\end{tabular}
\end{table}
\begin{table}[H]
\centering
\begin{tabular}{lllllllllll}
\cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|c|}{síndrome} & \multicolumn{1}{c|}{líder} & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{síndrome} & \multicolumn{1}{c|}{líder} & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{síndrome} & \multicolumn{1}{c|}{líder} & \multicolumn{1}{c|}{} & \multicolumn{1}{c|}{síndrome} & \multicolumn{1}{c|}{líder} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
& & & & & & & & & & \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{100000} & \multicolumn{1}{l|}{00100000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{101000} & \multicolumn{1}{l|}{00101000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{110000} & \multicolumn{1}{l|}{00110000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{111000} & \multicolumn{1}{l|}{10000100} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{100001} & \multicolumn{1}{l|}{00100001} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{101001} & \multicolumn{1}{l|}{00101001} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{110001} & \multicolumn{1}{l|}{00110001} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{111001} & \multicolumn{1}{l|}{10000101} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{100010} & \multicolumn{1}{l|}{00100010} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{101010} & \multicolumn{1}{l|}{00101010} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{110010} & \multicolumn{1}{l|}{00110010} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{111010} & \multicolumn{1}{l|}{10000110} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{110011} & \multicolumn{1}{l|}{00100010} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{101011} & \multicolumn{1}{l|}{11001000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{110011} & \multicolumn{1}{l|}{11010000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{111011} & \multicolumn{1}{l|}{01100100} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{100100} & \multicolumn{1}{l|}{00100100} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{101100} & \multicolumn{1}{l|}{10010000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{110100} & \multicolumn{1}{l|}{10001000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{111100} & \multicolumn{1}{l|}{10000000} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{100101} & \multicolumn{1}{l|}{00100101} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{101101} & \multicolumn{1}{l|}{10010001} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{110101} & \multicolumn{1}{l|}{10001001} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{111101} & \multicolumn{1}{l|}{10000001} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{100110} & \multicolumn{1}{l|}{00100110} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{101110} & \multicolumn{1}{l|}{10010010} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{110110} & \multicolumn{1}{l|}{10001010} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{111110} & \multicolumn{1}{l|}{10000010} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\multicolumn{1}{|l|}{100111} & \multicolumn{1}{l|}{11000100} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{101111} & \multicolumn{1}{l|}{01110000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{110111} & \multicolumn{1}{l|}{01101000} & \multicolumn{1}{l|}{} & \multicolumn{1}{l|}{111111} & \multicolumn{1}{l|}{01100000} \\ \cline{1-2} \cline{4-5} \cline{7-8} \cline{10-11}
\end{tabular}
\end{table}
El algoritmo del líder permite decodificar, teóricamente, cualquier código lineal, pero su utilidad, al igual que en el caso de primer algoritmo se limita a códigos de tamaño reducido; pues el algoritmo requiere almacenar una tabla con los $q^{n-k}$ síndromes distintos. Esto hace que el problema sea exponencial en cuanto a los requisitos de memoria. Vemos que el concepto de síndrome nos permite dar otra forma de decodificar.
\section{Decodificación con sistemas lineales de ecuaciones}
\hypertarget{sistemalinealcodigos}{}
Sea $\mathcal{C}$ un código lineal de parámetros $[n,k,d]$ definido en $\mathbb{F}_q$. Si el emisor codifica el mensaje $\mathbf{m}\in \mathbb{F}_q^{k}$, como $\mathbf{c}\in \mathbb{F}_q^{n}$, y este se transmite a través de un canal con ruido, de modo que el receptor recibe el mensaje $\mathbf{y}=\mathbf{c}+\mathbf{e}$ (donde $\mathbf{e}$ es el error que se ha producido). Entonces, vemos que es suficiente con encontrar un conjunto $I\subset \{1,2,\ldots,n\}$, con cardinal $|I|<d$, tal que \hyperlink{soporte}{$sop(\mathbf{e})\subseteq I$}. Efectivamente, si planteamos el sistema de ecuaciones:
\begin{equation}
\begin{cases}
s(\mathbf{x})\;=\;s(\mathbf{y})\\
x_{i}\;=\;0,\; \text{ si } i\notin I
\end{cases}\,.
\end{equation}
Vemos que $\mathbf{e}$ es un solución, $s(\mathbf{y})=s(\mathbf{c})+s(\mathbf{e})=0+s(\mathbf{e})$ y $sop(\mathbf{e})\subseteq I$. Además, si $\mathbf{e}'$ es otra solución al sistema,$(\mathbf{y}-\mathbf{e}), (\mathbf{y}-\mathbf{e}')\in \mathcal{C}$ (pues su síndrome es cero). Pero, si consideramos la distancia mínima entre ambas palabras-código, $d\big{(}(\mathbf{y}-\mathbf{e}), (\mathbf{y}-\mathbf{e}')\big{)}=d(\mathbf{e},\mathbf{e'})\leq |I|<d$. Pero esto contradice que $d$ sea la distancia mínima del código. Por tanto, $\mathbf{e}$ es la única solución del sistema, y resolver el sistema no permite decodificar cualquier mensaje.\\
Esta es también una solución genérica al problema decodificación. Sin embargo, resolver un sistema de ecuaciones $nxn$ tiene un coste $O(n^3)$ para algoritmos de eliminación gausiana, y no hay algoritmos que puedan dar una solución con coste $O(n^2)$ o inferior. Este coste sigue siendo alto, por lo que es común estudiar familias particulares de códigos que, por sus propiedades y estructura, tienen un algoritmo de decodificación más eficiente.
\section{Códigos de evaluación:}
El objetivo del capítulo siguiente, es introducir los códigos AG. Hasta ahora hemos introducido conceptos básicos de códigos lineales. Los códigos AG forman de un tipo más amplio de código llamado \textbf{códigos de evaluación}, los cuales introducimos ahora. Al final de esta sección veremos un ejemplo completo.\\
\\ \textbf{Definición 3.6.11: }\\
Sea $\mathcal{X}$ una ``objeto geométrico'' (seremos más específicos mas adelante), $\mathcal{P}=\{P_{1},\ldots,P_{n}\}$ un conjunto de puntos de $\mathcal{X}$ y $V$ el espacio vectorial de funciones $f:\mathcal{X}\rightarrow \mathbb{F}_{q}$. Llamaremos \textbf{evaluación en $\mathcal{P}$} a la aplicación:
$$ev_{\mathcal{P}}:V\longrightarrow\mathbb{F}_{q}^{n},\;ev_{\mathcal{P}}(f)=(f(P_{1}),\ldots,f(P_{n})). $$\\
Si $ev_{\mathcal{P}}$ es una aplicación lineal, su imagen es un subespacio vectorial de $F_{q}^{n}$ y, por tanto, un código lineal sobre $\mathbb{F}_{q}^{n}$ con longitud $n$. Los mensajes codificados son de la forma $ev_{\mathcal{P}}(f),\; f\in V$. Este tipo de código es un \textbf{código de evaluación}, pues lo hemos obtenido evaluando $\mathcal{P}$ en las funciones de $V$. Para códigos algebraicos $\mathcal{X}$ es una curva algebraica, pero dependiendo del tipo de objeto que sea $\mathcal{X}$ obtendremos diferentes familias de códigos de evaluación.\\
%%%%%%%%%%%%%%%%%%%%%%%3.7%%%%%%%%%%%%%%%%%%%%%%
\section{Pesos de Hamming Generalizados y ``Wire-Tap Channel II'':}
La noción de peso de Hamming se puede generalizar. Si los pesos de Hamming son importantes en el contexto de códigos correctores, los pesos generalizados aparecen en el problema de ``wiretap chanel'' en criptografía.\\
\\ \hypertarget{def3.7.12}{\textbf{Definición 3.7.12}}: El \textbf{peso de Hamming generalizado} $r$-ésimo, del código lineal $\mathcal{C}$, se define como:
$$d_{r}(\mathcal{C})=min\{|sop(D)\;\big{|}\;\mathcal{D} \text{ es un subcódigo lineal de } \mathcal{C} , dim(\mathcal{D}) =r\}$$
Donde $sop(D)$ es el soporte del código, es decir, $sop(\mathcal{D}) =\{i\;|\;c_i = 0,\;\text{para cierto }(c_1,\cdots,c_k)=\mathbf{c}\in\mathcal{D}\}$. \\
Notamos que, para $r=1$, el peso de Hamming generalizado coincide con la distancia mínima del código (definición \hyperlink{def3.14}{3.14}). \\
Efectivamente, para $r=1$, $d_1=min\{sop(\mathcal{D})\;|\;dim(\mathcal{D}) = 1,\;\mathcal{D}\text{ subcódigo de } \mathcal{C}\}$. Cómo $dim(\mathcal{D}) = 1$, existe un cierto $\mathbf{c}\in \mathcal{C}$ tal que $\mathcal{D}=\langle \mathbf{c}\rangle $. Por tanto,
$$sop(D) =\{i\;|\;c'_i \neq 0,\;(c'_1,\ldots,c'_k) =\mathbf{c}'\in\langle \mathbf{c}\rangle\}=\{i\;|\;c_i\neq 0,\;(c_1,\ldots,c_k) =\mathbf{c}\}=sop(\mathbf{c}).$$
Puesto que $w(\mathbf{c})=|sop(\mathbf{c})|$, tenemos que, $d_1=min\{w(\mathbf{c})|\mathbf{c}\in\mathcal{C}\}$, es decir, el peso mínimo del código (que coincide con la distancia mínima).\\
Computar la distancia mínima de un código corrector, es un problema computacionalmente intenso, y más aún es calcular los pesos de Hamming generalizados. Hablaremos más sobre el tema en el capítulo $5$, donde daremos la distancia de Feng-Rao para dar una cota inferior para $d_r$. \\
\\\textbf{El problema de ``Wire-Tap Channel II '':}\\
Como hemos dicho, una de las principales aplicaciones de los pesos de Hamming generalizados es en el problema de ``Wire-Tap Channel II''. Este es un problema de criptografía, que planteamos de forma similar a como hemos planteado la comunicación en el contexto de los códigos correctores. Un mensaje, representado por el vector $\mathbf{m}=(m_1,\ldots,m_k)\in\mathbb{F}_q^k$ es codificado como $\mathbf{c}=(c_1,\ldots,c_n)\in\mathbb{F}_q^n$, $n\geq k$. El mensaje es mandado por el emisor, a través de un canal (sin ruido), al que un tercer actor tiene acceso. El espía, puede leer $\mu < n$ coordenadas del vector codificado, las que elija. Asumiendo que el receptor (y presumiblemente, el espía) pueden reconstruir el mensaje original a partir de $\mathbf{c}$, se quiere que con $\mu$ posiciones del mensaje (bits), esto no sea posible. \\
Es decir, codificar el mensaje de tal forma que, se cause al espía, el mayor grado posible de incertidumbre, sin usar un cripto-sistema (y por tanto, sin usar una clave).\\
Es posible usar códigos correctores para resolver este problema. Si $H$ es la matriz de control de un código lineal $[n,k]$ (no necesariamente AG), y las columnas de dicha matriz son los vectores $\mathbf{h}_i\in \mathbb{F}_q^{n-k}$. \\
\\ \textbf{Lema 1: } Sea $\mathcal{C}$ un código lineal, con matriz de control $H$. Entonces, tenemos que:
$$d_r(\mathcal{C})=min\big{\{}|X|\;\big{|}\;r\leq |X|-dim(\langle \mathbf{h}_i\;\big{|}\; \in I\subseteq \{1,2,\ldots,n\}\rangle)\big{\}}$$
\\ \textbf{Demostración:}
Primero, consideremos, para $I\subsetneq\{1,2,\ldots,n\}$:
\begin{align*}
&S(I) = \langle\mathbf{h}_i\;|\; i\in I\rangle\\
&S^{\perp}(I)=\{\mathbf{x}\in\mathcal{C}\;|\;x_i=0\text{ para }i\notin I,\; \sum_{i\in I}x_i\mathbf{h}_i=0\}
\end{align*}
Por como está definido $S^{\perp}(I)$, tenemos que, $dim(S^{\perp}(I))+dim(S(I))=|I|$. \\
Denotemos por $d:=min\{|X|\;|\;|X|-dim(\langle \mathbf{h}_i\;|\; i\in I\rangle)\geq r\}$. Sea $I\subseteq\{1,2,\ldots,n\}$ tal que $|I|-dim(S(I))=r$ y $|I|=d$, entonces, $dim(S^{\perp}(I))=r$. Puesto que $S^{\perp}(I)$ es un subcódigo de $\mathcal{C}$, aplicamos la definición $d_r(\mathcal{C})$, y obtenemos que $d_r(\mathcal{C})\leq |sop(S^{\perp}(I))|=|I|=d$. Es decir, que $d_r(\mathcal{C})\leq d$.\\
Para la otra desigualdad, consideremos $\mathcal{D}$, un subcódigo de $\mathcal{C}$, tal que $dim(\mathcal{D})=r$ y $|sop(\mathcal{D})|=d_r(\mathcal{C})$.
Sea $I=sop(\mathcal{D})$, entonces $\mathcal{D}\subseteq sop(S^{\perp}(I))$.
Pero $dim(S(I))=|I|-dim(S^{\perp}(I))\leq |I|-r$, luego $|I|-dim(S(I))\geq r$.
Si suponemos que $ |I|-dim(S^{\perp}(I))=r'>r$, entonces, tenemos que $D\neq S^{\perp}(I)$, y $d_{r'}(\mathcal{C})\leq |sop(S^{\perp}(I))|=|I|$, lo cual es una contradicción. Por tanto, $I-dim(S(I))=r$, y en consecuencia, $d\leq d_r(\mathcal{C})$.
\qed
Además, tenemos, en lema 6 de \cite{Wire-tap}, se demuestra que:\\
\\ \textbf{Lema 2:} Si denotamos por $\Delta_{\mu}$ a la información que puede obtener el espía (las posiciones del mensaje original que deduce), tenemos que:
$$\Delta_{\mu} = min_{|I|=n-\mu}\;\big{(}dim\big{\{}\langle \mathbf{h}_i\;\big{|}\; i\in I\subseteq\{1,2,\ldots,n\}\rangle\big{\}}\big{)}$$
Con esto podemos dar el siguiente resultado:\\
\\ \textbf{Teorema 3.8.10: } Sea $\mathcal{C}$ el código con matriz de control $H$. Denotemos, para cierto $\mu$, $\Delta=\Delta_{\mu}$. Entonces, tenemos la siguientes cotas:
$$d_{n-\mu-\Delta}(\mathcal{C}^{\perp})\leq n-\mu<d_{n-\mu-\Delta +1}(\mathcal{C}^{\perp})$$
\\ \textbf{Demostración:}
Existe $I$ tal que $|I|=n-\mu$ y $dim(\langle H_i\;|\; i\in I\rangle)$. Por el lema 1, tenemos que $d_{n-\mu-\Delta}(\mathcal{C}^{\perp})\geq n-s$.\\
Para la otra desigualdad, supongamos que $n-\mu\geq d_{n-\mu+\Delta+1}(\mathcal{C}^{\perp})$. Por el lema 1, existe $I$, con $|I|=d_{n-\mu-\Delta+1}(\mathcal{C}^{\perp})=n-\mu-\epsilon$, para $\epsilon\geq 0$, y con $dim(\langle\mathbf{h}_i\;|\;i\in I \rangle)=|I|-(n-\mu-\Delta +1)=\Delta - \epsilon-1\leq \Delta -1$. Por tanto, $\Delta_{\mu}\leq \Delta_{\mu+\epsilon}\leq \Delta_{\mu}-1$, que es una contradicción.
\qed
Es decir, que para un cierto $n$, podemos elegir un $\Delta$ (nivel de información a la cual es espía tendrá acceso), y obtener una cota inferior y superior para $\mu$ (máximo número de ``bits'' que el espía puede conocer del mensaje codificado).
\\ Por supuesto, esta cota requiere poder calcular los pesos de Hamming generalizados. Esto puede hacerse (aunque sea costoso), pero en el capítulo $5$, veremos dos cotas para los pesos de Hamming generalizados, usando distancias de Feng-Rao.
\section{Un ejemplo completo, códigos de Hamming:}
Veamos un ejemplo con un tipo de código famoso: \textbf{Códigos de Hamming} (Extendido) $[16,11]$.\\
\\ \textbf{Código de Hamming de forma intuitiva:}\\
Los códigos de Hamming se basan en la misma idea del \hyperlink{ejemplo2}{bit de paridad} que vimos en el ejemplo al principio del capitulo. Consideramos mensajes binarios de $11$ bits, que codificaremos como un mensaje-código de 16 bits. Es decir, que la matriz generatriz será $11\times 16$. Sin embargo, los códigos de Hamming los podemos interpretar de una forma algo más intuitiva. Supongamos un mensaje $m\in \mathbb{F}_{2}^{11},\;m=(m_{1},\ldots,m_{11})=(1,1,1,0,1,0,0,0,1,1,1)$. El mensaje codificado tendrá 16 bits, escribamos el mensaje en una tabla de tamaño $4\times 4$ del siguiente modo: \\
\begin{table}[ht]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
\cellcolor[HTML]{9AFF99} $p$ & \cellcolor[HTML]{96FFFB}$p_{1}$ & \cellcolor[HTML]{96FFFB}$p_{2}$ & $m_{1} = 1$ \\ \hline
\cellcolor[HTML]{96FFFB}$p_{3}$ & $m_{2} = 1$ & $m_{3} = 1$ & $m_{4} = 0$ \\ \hline
\cellcolor[HTML]{96FFFB}$p_{4}$ & $m_{5} = 1$ & $m_{6} = 0$ & $m_{7} = 0$ \\ \hline
$m_{8} = 0$ & $m_{9} = 1$ & $m_{10} = 1$ & $m_{11} = 1$ \\ \hline
\end{tabular}
\end{table}
Usamos las casillas sombreadas en azul a modo de bits de paridad, pero en vez de hacerlo sobre todo el mensaje, lo haremos sobre partes de la tabla de forma que podamos encontrar la posición del bit en el cual se ha producido el error.
\begin{itemize}
\item El primer bit de paridad \textbf{$p_{1}$} es el bit de paridad de la \textbf{segunda y cuarta columna} $I=\{1,2,4,5,7,9,11\}$. $p_{1} =\overline{\sum_{i\in I}m_{i}}\;(mod\;2) = 1$.
\item El segundo bit de paridad \textbf{$p_{2}$} es el bit de paridad de la mitad izquierda de la tabla, o de de la \textbf{tercera y cuarta columna}. $I=\{1,3,4,6,7,10,11\}$ $p_{2} =\overline{\sum_{i\in I}m_{i}}\;(mod\;2) = 0$.
\item El tercer bit de paridad \textbf{$p_{3}$} es el bit de paridad de la \textbf{segunda y cuarta fila} $I=\{2,3,4,8,9,10,11\}$. $p_{1} =\overline{\sum_{i\in I}m_{i}}\;(mod\;2) = 1$.
\item El cuarto bit de paridad \textbf{$p_{4}$} es el bit de paridad de la mitad inferior de la tabla, o de de la \textbf{tercera y cuarta fila}. $I=\{5,6,7,8,9,10,11\}$ $p_{2} =\overline{\sum_{i\in I}m_{i}}\;(mod\;2) = 0$.
\item El bit $p$ es un bit de paridad para toda la tabla, $p=\overline{\sum_{i=1}^{11}m_{i}}=1$.
\end{itemize}
De esta forma, si se produce un error, podremos detectarlo; pues el receptor computará los valores de $p,p_1,\ldots,p_5$ y observará que hay alguna discrepancia respecto a los valores del mensaje, $\mathbf{c}$, recibido.\\
El mensaje codificado de la forma que acabamos de indicar se puede escribir como la secuencia: $$c=(p,p_{1},p_2,m_1,p_3,m_2,m_3,m_4,p_4,m_5,m_6,m_7,m_8,m_9,m_{10},m_{11}).$$
Supongamos que esta secuencia es mandada a través de un canal con ruido y el receptor recibe la secuencia $c=(1,1,0,1, 1,1,1,0, 0,1,1,0, 0,1,1,1)$. Dado que $p=1\neq \overline{\sum_{i=2}c_{i}}\;(mod\;2)=0$.
Supongamos para este ejemplo que no hay más de un error (aunque este tipo de código puede detectar hasta dos errores y corregir un error). El receptor colocar el mensaje en una tabla y realizara las comprobaciones: