Sunteți pe pagina 1din 69

UNIVERSIDADE ESTADUAL DE MARINGÁ

CENTRO DE CIÊNCIAS EXATAS


DEPARTAMENTO DE MATEMÁTICA
PROGRAMA DE PÓS-GRADUAÇÃO EM MATEMÁTICA
(Doutorado)

MAYCOW GONÇALVES CARNEIRO

CÓDIGOS SOBRE O SEMI-PLANO SUPERIOR FINITO

Maringá - PR
2018
MAYCOW GONÇALVES CARNEIRO

CÓDIGOS SOBRE O SEMI-PLANO SUPERIOR FINITO.


Tese apresentada ao Programa de Pós-
Graduação em Matemática do Departamento
de Matemática, Centro de Ciências Exatas,
da Universidade Estadual de Maringá como
requisito parcial para obtenção do título de
Doutor em Matemática.

Área de concentração: Matemática Aplicada.

Orientador: Prof. Dr. Eduardo Brandani da


Silva

Maringá - PR
2018
À minha esposa, minha mãe, irmão e irmãs.
Agradecimentos

Agradeço primeiramente à Deus por tudo! Agradeço também ao professor Eduardo Brandani por
aceitar me orientar sem me conhecer pessoalmente, e sabendo que eu só teria 2 anos de afastamento
para me dedicar em tempo integral ao doutorado. Também gostaria de agradecer ao professor Emer-
son Vitor Castelani pela ajuda com a parte computacional para gerar os exemplos apresentados.
Agradeço ainda à todo apoio recebido de amigos e familiares ao longo do processo de disciplinas,
qualificação e da preparação da tese. Por fim, e não menos importante, muito pelo contrário, agra-
deço à minha esposa, pela ajuda de todas as formas imagináveis para que eu conseguisse alcançar
meus objetivos!

ii
“O único lugar onde o sucesso vem antes do trabalho é no dicionário.”
Albert Einstein

“Se A é o sucesso, então A é igual a X mais Y mais Z.


O trabalho é X; Y é o lazer; e Z é manter a boca fechada.”
Albert Einstein

“Quanto mais aumenta nosso conhecimento, mais evidente fica nossa ignorância”
John F. Kennedy

“Talvez não tenha conseguido fazer o melhor, mas lutei para que o melhor fosse feito.
Não sou o que deveria ser, mas Graças a Deus, não sou o que era antes”
Marthin Luther King
Resumo

Desde que foi proposto por A. Terras em [13], o Semi-Plano Superior Finito só foi utilizado
em um trabalho, [35], como ambiente para gerar códigos corretores de erros. Neste trabalho,
analisamos algumas propriedades do modelo proposto por Terras para então gerar duas classes
de códigos corretores de erros: a primeira baseada no trabalho de Tiu e Wallace [35], sendo
lineares e binários e a segunda utilizando as propriedades geométricas do ambiente proposto
por A. Terras, gerando códigos não lineares e não binários sobre o Semi-Plano Superior Finito.

Palavras-chave: Semi-Plano Superior Finito, Códigos Lineres, Códigos não-Lineares

iv
Abstract

Since it was proposed by A. Terras in [13] , the finite upper half plane was used only once,
[35], as an environment in order to generate error correcting codes. In the present work, we
analize some properties of the model proposed by Terras to generate then two classes of error
correcting codes, the first one based in the work of Tiu and Wallace [35], being linear and
binary and the second one using the geometric properties of the environment proposed by A.
Terras, generating non linear and non binary codes over Finite Upper Half Planes.

Keywords: Finite Upper Half Planes, Linear Codes, Non-Linear Codes

v
Sumário

Resumo iv

Abstract v

Introdução 1

1 Códigos Corretores de Erros e Corpos Finitos 4


1.1 Códigos Corretores de erros . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Métrica de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Corpos Finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Modelo do Semi-Plano Superior Finito 19

3 Códigos Lineares Quase-Cíclicos sobre Hq 32


3.1 Códigos Quase-Cíclicos sobre Hq utilizando a norma . . . . . . . . . . . . . . 32
3.1.1 Construção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Códigos Quase-Cíclicos sobre Hq utilizando a distância . . . . . . . . . . . . 38
3.3 Decodificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.4 Melhorando a distância . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4 Códigos Não-Lineares e Não-Binários sobre Hq 46


4.1 Construção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.1.1 Decodificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5 Considerações Finais 52

A Linhas de Comando GAP e Julia 54

Referências Bibliográficas 58

vi
Introdução

Após o trabalho de C. E. Shannon [30] em 1948, a teoria dos códigos corretores de erros
passou a ser fortemente estudada por matemáticos e engenheiros.
Sempre que vamos transmitir ou armazenar dados, fazemos uso dos códigos corretores de
erros, os quais introduzem dados extras aos dados originais, a fim de que possamos recuperar
os dados originais de forma correta, mesmo que tenham ocorrido erros devido à ruídos durante
a transmissão ou armazenamento dos dados. O estudo concentra-se então em determinar uma
forma eficaz e eficiente de se introduzir tais dados extras nos dados originais.
Para se introduzir tais dados extras, tomamos um conjunto A com q elementos, chamado
alfabeto, e em seguida determinamos o conjunto Ak , com k natural, e identificamos cada dado
com um elemento de Ak . Tal conjunto é chamado código da fonte. Em seguida, introduzimos
redundâncias aos elementos do código da fonte, que permitam detectar e corrigir erros. O
novo código obtido após este processo, é então, um subconjunto próprio de An , com n natural
e n > k, chamado código de canal. O canal é o meio físico pelo qual se transmitirá os dados.
Neste sentido, da transmissão dos dados pelo canal, em um sistema de comunicação,
a informação transmitida é prejudicada, como mencionado, por um ruído agindo no canal
de transmissão. Apesar de suas características físicas, o ruído é tratado por um modelo
probabilístico, especificando sua função densidade de probabilidade. Assim, o sinal que será
transmitido é processado com o objetivo de controlar a ação do ruído. Um componente
muito importante do transmissor é o modulador. Para uma modulação eficiente do sinal, o
modulador utiliza uma constelação de sinais, a qual é um conjunto finito associado à uma
estrutura algébrica. Como mencionado, geralmente, o sistema é modulado em um ambiente
Euclidiano. Porém, considerar ambientes não Euclidianos também têm se mostrado ser uma
possibilidade promissora.
Uma destas possibilidades é considerar constelações de pontos no plano hiperbólico. O
trabalho [32] foi o primeiro a propor um sistema de comunicação tendo como ambiente o
plano hiperbólico. O principal potencial para a teoria dos códigos no plano hiperbólico é a

1
2

infinitude de tesselações essencialmente distintas, ao contrário do caso Euclidiano. Também


podemos encontrar um número infinito de grupos de isometrias propriamente descontínuos
que não são isomorfos uns aos outros como subgrupos abstratos. Além disso, para cada
grupo de isometrias co-compacto propriamente descontínuo G, existe um número incontável
de subgrupos isomorfos à G, embora não conjugados à este. Em outras palavras, para cada
subgrupo destes, existe uma situação similar à essencialmente única situação encontrada em
Rn .
Depois de [32], vários trabalhos conectando geometria hiperbólica com comunicação e
teoria de códigos foram publicados, [1], [9], [21], [7] entre outros. Em [10], é mostrado que é
possível conceber códigos corretores mais eficientes, em temos de probabilidade de erros, se
eles são elaborados a partir de uma variedade 2-dimensional com genus g ≥ 2. Sabe-se que
a geometria de tais superfícies é a geometria hiperbólica, [11].
Em meados dos anos 1980, A. Terras [13] definiu o Semi-Plano Superior Finito, o qual
é definido sobre corpos finitos como análogo do semi plano superior. Em sua construção,
um corpo finito de característica ímpar foi utilizado como o análogo finito da reta real e,
em seguida, foi-se utilizado a raíz de um elemento não quadrado do corpo finito para gerar
o Semi-Plano Superior Finito. Depois, em [14], [3], corpos com característica par foram
considerados. Muitas questões foram estudadas por ela e seus colegas, principalmente funções
especiais nesses planos ([4], [33]), e grafos finitos, dos quais vários resultados foram obtidos.
Em [35], Tiu e Wallace encontraram uma aplicação na teoria dos códigos. Os autores
geraram um código binário linear utilizando a norma neste modelo do Semi-Plano Supe-
rior Finito. Contudo, eles consideram apenas o caso onde o Semi-Plano Superior Finito foi
construído utilizando corpos finitos com característica ímpar e além disso, com p primo e
da apenas da forma p = 4m + 1. Assim, o estudo da possibilidade de se obter resultados
semelhantes, considerando-se corpos com característica par, na construção do Semi-Plano
Superior Finito, apresenta-se interessante. Além disso, em nenhum momento, Tiu e Wallace
levam em consideração a geometria deste novo ambiente, deixando assim esta área em aberto
para estudo dentro da teoria de códigos. Como não encontramos na literatura trabalhos
relacionando códigos com a estrutura geométrica do Semi-Plano Superior Finito, buscamos
neste trabalho, encontrar uma aplicação para a geometria deste ambiente na construção de
códigos. O trabalho está dividido da seguinte forma:
No Capítulo 1, apresentamos de forma breve alguns conceitos básicos sobre teorica dos
códigos corretores de erros e de corpos finitos, os quais serão utilizados ao longo do trabalho,
a fim de facilitar a compreensão do leitor que não está tão familiarizado com o tema.
No Capítulo 2, apresentamos os principais resultados sobre o Semi-Plano Superior tanto
3

para o caso onde o corpo finito tem característica ímpar, [13], [29], [34], quanto para o caso
onde a característica é par, [2], [14]. Além disso, provamos alguns resultados que só foram
considerados para o caso ímpar em [29] e [34] , mas que serão utilizados neste trabalho para
o caso par.
No capítulo 3, utilizamos a idéia do trabalho de Tiu e Wallace [35], onde os autores
geram um código linear binário considerando a norma dos elementos do Semi-Plano Superior
Finito com a característica ímpar, tomando a entrada da matriz igual a 1 se tal norma é um
não quadrado no corpo finito. Como para corpos de característica par tal construção não é
possível, apresentamos então, resultados que nos mostram que conseguimos gerar códigos de
forma semelhante também no caso par. Além disso, mostramos que os códigos que obtemos
neste caso, são códigos quase-cíclicos, algo não apresentado por Tiu e Wallace no caso ímpar.
Por fim, no Capítulo 4, apresentamos uma nova classe de códigos considerando a geometria
do Semi-Plano Superior Finito. Tais códigos não são lineares e não são binários e utilizam
grupos Fuchsianos, definidos dentro deste ambiente, para serem gerados.
Capítulo 1

Códigos Corretores de Erros e Corpos


Finitos

Neste capítulo, veremos alguns resultados básico sobre códigos corretores de erros bem
como sobre corpos finitos, os quais serão necessários no decorrer deste trabalho. Os resultados
apresentados neste capítulo sobre corpos finitos, podem ser encontrados em sua maioria em
[8], [22] e [31], enquanto que os resultados sobre os códigos corretores de erros podem ser
encontrados principalmente em [16], [18] e [23]

1.1 Códigos Corretores de erros


Para construirmos um código corretor de erros, precisamos de um conjunto finito A com q
elementos, chamado de alfabeto. Denotaremos o número de elementos de A por |A|.
Um código corretor de erros é um subconjunto próprio de An = A
|
× ·{z
· · × A}, para algum
n
número natural n.

1.1.1 Métrica de Hamming


Dada uma palavra de An , precisamos de uma forma de identificar a proximidade entre
esta e outras palavras de An . Para isso introduzimos o conceito de Métrica de Hamming.

Definição 1.1. Uma métrica em um conjunto X é uma função

d : X × X −→ R

4
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 5

satisfazendo as seguintes propriedades:

(i) (Positividade) d(x, y) ≥ 0 para todo x, y ∈ X; a igualdade vale ⇔ x = y;

(ii) (Simetria) d(x, y) = d(y, x) para todo x, y ∈ X;

(iii) (Desigualdade Triangular) d(x, y) ≤ d(x, z) + d(z, y) para todo x, y, z ∈ X.

Definição 1.2. Dados dois elementos u, v ∈ An , a distância de Hamming entre u e v é defi-


nida como

d(u, v) = |{i : ui 6= vi , 1 ≤ i ≤ n}|

Proposição 1.1. A distância de Hamming d(·, ·) definida acima é uma métrica.

Demonstração: Precisamos mostrar que a distância de Hamming satisfaz as três propriedades


da definição 1.1. De fato:

(i) Temos por definição d(u, v) = |{i : ui 6= vi , 1 ≤ i ≤ n}| ≥ 0. Caso d(u, v) = 0 teremos
ui = vi para i = 1, ..., n logo u = v. Por outro lado, se u = v então uj = vj para
j = 1, ..., n portanto d(u, v) = 0.

(ii) Pela definição temos d(u, v) = |{i : ui 6= vi , 1 ≤ i ≤ n}| = |{i : vi 6= ui , 1 ≤ i ≤ n}| =


d(v, u).

(iii) Para demonstrar esta propriedade podemos analisar apenas a i-ésima coordenada de u,
v e w. Temos dois casos para analisar, se a contribuição de ui e vi para d(u, v) é zero
ou um. Caso a contribuição seja zero, então a contribuição das i-ésimas coordenadas de
d(u, w) + d(w, v) certamente será maior ou igual à contribuição da i-ésima coordenada
de d(u, v). Por outro lado, se a contribuição é igual a 1 então ui 6= vi , logo, se wi = ui ,
teremos wi 6= vi , da mesma forma, se wi = vi , teremos wi 6= ui , portanto a contribuição
da i-ésima coordenada de d(u, w) + d(w, v) certamente será maior ou igual a 1 e temos
o resultado.

Assim a distância de Hamming entre elementos de An é uma métrica, também chamada


de métrica de Hamming.

Definição 1.3. Dados um elemento c ∈ An e um número real r > 0 definimos a bola e a esfera
de centro c e raio r como sendo, respectivamente, os conjuntos:
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 6

B(c, r) = {u ∈ An : d(u, c) ≤ r}
S(c, r) = {u ∈ An : d(u, c) = r}

Definição 1.4. Dado um código C , definimos a distância mínima de C por

d = min{d(u, v) : u, v ∈ C e u 6= v}

Um código C sobre um alfabeto A, possui três parâmetros fundamentais (n, M, d), os


quais se referem respectivamente, ao seu comprimento n, ou seja, o ambiente An onde está o
código C , o seu número de palavras M e a sua distância mínima d.
Quando trabalhamos com códigos corretores de erros, nos deparamos com duas classes
de códigos: os códigos lineares e os não lineares. Ainda podemos separar tais códigos em
binários ou não binários. A classe de códigos mais utilizada na prática é a dos códigos
lineares. Denotaremos por Fq um corpo com q elementos, o qual será tomado como alfabeto.
Temos assim que Fnq é um Fq -espaço vetorial de dimensão n com as operações de soma módulo
q entre as entradas dos vetores e produto por escalar. Neste trabalho, construiremos duas
famílias de códigos corretores de erros: a primeira, uma família de códigos lineares e binários
e a segunda, uma família de códigos não lineares e não binários.

Definição 1.5. Um código C ⊂ Fnq será chamado código linear se for um subespaço vetorial
de Fnq .

Como C é um subespaço vetorial de Fnq de dimensão finita, podemos considerar a dimensão


deste subespaço como sendo k, assim tomemos uma base para tal subespaço, formada pelos
vetores {v1 , v2 , . . . , vk }, logo para cada u ∈ C teremos u = λ1 v1 + λ2 v2 + · · · + λk vk , λi ∈
F, i = 1, . . . , k.
Assim, como para cada λi ∈ Fq temos q escolhas, teremos M = |C | = q k e consequente-
mente dimFq C = k = logq q k = logq M .

Definição 1.6. Dado x ∈ Fnq , definimos o peso de x como sendo o número inteiro

ωH (x) := |{i : xi 6= 0}|,

ou seja, ωH (x) = d(x, 0), onde d representa a métrica de Hamming.

Definição 1.7. O peso de um código linear C é o número inteiro

ωH (C ) := min{ωH (x) : x ∈ C \{0}}.


Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 7

Utilizaremos a notação com colchetes [n, M, d] para representar os parâmetros de um


código linear e com parênteses para representar os parâmetros de um (n, M, d)-código não
linear. Além disso, para um código linear C , o número de palavras depende da dimensão
do mesmo, visto que M = q k , assim podemos tomar os parâmetros desse código como sendo
[n, k, d] onde n é o comprimento do código, k é a dimensão e d é a distância mínima que, pela
Definição 1.7 é o mesmo que o peso do código. De fato, note que para todo par de elementos
x, y ∈ C , com x 6= y, temos z = x − y ∈ C \{0} e d(x, y) = ωH (z). Logo, d = ω(C ).
Uma das formas de se descrever um subespaço vetorial em álgebra linear, é tomando
o mesmo como imagem de uma transformação linear. Assim, consideremos uma base β =
{v1 , v2 , . . . , vk } de C e tomemos a matriz G cujas linhas são os vetores vi = vi1 , . . . , vin para
i = 1, . . . , k, isto é    
v1 v11 v12 · · · v1n
 .   . .. .. 
  
G =  ..  =  .. . . .

   
vk vk1 vk2 · · · vkn
A matriz G é chamada matriz geradora do código C referente à base β.
Consideremos a transformação linear definida por

T : Fkq −→ Fnq
x 7→ xG

Assim se x = (x1 , . . . , xk ), teremos que T (x) = x1 v1 + · · · + xk vk , ou seja, T (Fkq ) = C .


Lembrando que dada uma base de um espaço vetorial, podemos conseguir outra base
para este espaço vetorial, efetuando operações elementares sobre os elementos da primeira
base, dada uma matriz geradora G e acrescentando também as operações de permutação de
0
colunas e multiplicação de uma coluna por um escalar não nulo, obtemos uma matriz G
0
geradora de um código C equivalente ao código C , ou seja, com os mesmos parâmetros e
0
número de palavras, sendo que o número de palavras de peso i em C se mantém em C .
De fato, quando efetuamos as operações elementares juntamente com as duas operações
descritas acima em uma base de C , efetuamos em todas as palavras de C .

Exemplo 1.1. Código de Hamming [7,4,3]


Um exemplo de matriz geradora de um código é a matriz abaixo, geradora do código de
Hamming com parâmetros [7, 4, 3].

Definição 1.8. Dizemos que uma matriz geradora G de um código C está na forma padrão
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 8

se tivermos
G = (Idk |A),

onde Idk é a matriz identidade k × k e A é uma matriz k × (n − k).

Nem sempre conseguimos uma matriz geradora para um código C na forma padrão,
0
porém, conseguimos um código equivalente C com matriz geradora na forma padrão. Este
resultado é provado em [16], página 87.
Como visto na Definição 1.5, um código é linear se for um subespaço vetorial de Fnq .
Porém, se não tivermos tal restrição, ainda assim podemos ter um código com parâmetros
(n, M, d), onde n é o comprimento do código, M é o número de palavras e d é o maior
número tal que, quaisquer duas palavras do código diferem em pelo menos d coordenadas,
onde utilizamos a distância de Hamming vista em 1.2. Portante, neste caso, a soma de duas
palavras do código pode não ser uma palavra do mesmo, ao contrário do caso linear. Como
mencionado, neste trabalho obteremos uma família de códigos lineares, onde para isto, utili-
zaremos um corpo finito de caracterísca par para a construção do código, tornando-o binário
em seguida, conforme veremos, e uma família de códigos não lineares, onde utilizaremos um
corpo podendo ter característica par ou ímpar.

1.2 Corpos Finitos


Como mencionado, no decorrer deste trabalho a estrutura algébrica mais utilizada será a de
corpos finitos. Como este é um assunto exaustivamente estudado por todos os interessados
em teoria de códigos, apresentaremos de forma sucinta apenas definições e resultados que
serão utilizados ao longo deste trabalho.

Definição 1.9. Um Anel é um conjunto R munido de duas operações binarias denotadas + e


· que satisfazem:

i Para quaisquer elementos a, b, c ∈ R,

a + (b + c) = (a + b) + c;

ii Existe um elemento neutro e ∈ R com respeito à operação +, ou seja, tal que para todo
a ∈ R temos
a + e = e + a = a;
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 9

iii Para cada elemento a ∈ R existe um elemento d ∈ R tal que

a + d = d + a = e;

iv Para quaisquer elementos a, b ∈ R temos

a + b = b + a;

v Para quaisquer elementos a, b, c ∈ R,

a · (b · c) = (a · b) · c;

vi Para quaisquer elementos a, b, c ∈ R,

a · (b + c) = a · b + a · c e (a + b) · · · c = a · · · c + b · · · c.

Na definição acima, denotaremos o elemento neutro com respeito à operação +, que


chamaremos de soma, por 0. Em um anel R, se existe um elemento neutro, que denotaremos
por 1 com respeito à operação ·, chamada de multiplicação, ou seja, tal que a · 1 = 1 · a =
a ∀a ∈ R, dizemos que o anel R é um anel com unidade. Além disso, se a operação · é tal
que a · b = b · a ∀a, b ∈ R, dizemos que R é um anel comutativo.

Definição 1.10. Um corpo F é um anel comutativo com unidade tal que:

i Para quaisquer a, b ∈ F se a · b = 0 então a = 0 ou b = 0;

ii Para cada elemento a ∈ F existe um elemento a−1 ∈ F tal que a · a−1 = a−1 · a = 1.

Neste trabalho, utilizaremos apenas corpos finitos, ou seja, um corpo F com um número
finito de elementos.

Definição 1.11. Seja p primo, Fp o conjunto composto pelos números {0, 1, 2, . . . , p − 1} e


considere a aplicação φ : Z/(p) → Fp dada por φ([a]) = a. Então Fp munido da estrutura de
corpo induzida por φ é um corpo finito, chamado Corpo de Galois de ordem p.

Definição 1.12. A característica do corpo F é o menor inteiro n tal que n.a = 0 para todo
a ∈ F. Se não existe tal inteiro, dizemos que F tem característica 0.

Teorema 1.2. [22] Um corpo finito possui como característica um número primo.
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 10

Se p é primo, então a característica de Fp é o próprio p. Neste trabalho, utilizaremos


para a construção de uma família de códigos lineares, corpos finitos com q = 2r elementos,
ou seja, corpos com característica 2, enquanto que para a construção da família de códigos
não lineares a característica poderá ser ímpar.

Teorema 1.3. [23] Em qualquer corpo de característica p, temos que

(a + b)p = ap + bp .

n n n
O resultado anterior pode ser estendido para (a + b)p = ap + bp . Como mencionado
anteriormente, trabalharemos com corpos da forma F2r , ou seja, um corpo de característica
2. Assim, pelo teorema anterior, obtemos (x + y)2 = x2 + y 2 .
Pela Definição 1.11, para p primo, podemos tomar Fp = {0, 1, 2, . . . , p − 1}, ou seja, o
conjunto dos inteiros módulo p. Porém, como trabalharemos com Fpr , e pr não é primo para
r > 1, precisaremos de outra forma para representar os elementos do corpo Fpr . Para isto,
precisamos da noção de polinômios irredutíveis sobre corpos finitos.
Primeiramente, lembramos que um polinômio sobre o corpo F é uma expressão da forma
p(x) = a0 + a1 x + a2 x2 + · · · + an xn onde ai ∈ F para 0 ≤ i ≤ n e n ∈ N. O anel formado
por polinômios sobre F com as operações de soma e multiplicação de polinômios, é chamado
anel de polinômios sobre F e denotado por F[x].

Definição 1.13. Um polinômio p(x) ∈ F[x] é dito irredutível sobre F (ou irredutível em F[x]),
se p(x) tem grau positivo e p(x) = f (x)g(x) com f (x), g(x) ∈ F[x], implica que f (x) ou g(x)
é um polinômio constante.

Uma raíz de um polinômio p(x) ∈ F[x] em F é um elemento α ∈ F que satisfaz p(α) = 0.


Note que um polinômio irredutível sobre um corpo F não possui raíz sobre este corpo.

Definição 1.14. Seja p(x) = a0 + a1 x + a2 x2 + · · · + an xn ∈ F[x]. Então a derivada de p(x) é


0 0
dado por p (x) onde p (x) = a1 + 2a2 x + · · · + nan xn−1 ∈ F[x].

Teorema 1.4. [22] Um elemento α ∈ F é uma raíz múltipla de um polinômio p(x) ∈ F[x] se,
0
e somente se, é raíz de ambos, p(x) e p (x).

Definição 1.15. Um conjunto K ⊆ F, que munido das operações de F é ainda um corpo, é


chamado de subcorpo de F. Se K 6= F dizemos que K é um subcorpo próprio de F e ainda
neste contexto, dizemos que F é uma extensão de K.
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 11

Dizemos que um elemento ζ ∈ F é algébrico sobre K se este elemento satisfaz uma equação
polinomial não trivial sobre K, ou seja, a0 + a1 ζ + · · · + an−1 ζ n−1 + an ζ n = 0, com ai ∈ K
não todos nulos. Uma extensão L de K, onde todos os elementos são algébricos sobre K, é
chamada de extensão algébrica de K.
Afim de construirmos o corpo Fpr , utilizaremos estes conceitos conforme o resultado
abaixo.

Teorema 1.5. [22] Seja p(x) ∈ F[x] um polinômio irredutível sobre F. Então existe uma
extensão algébrica simples de F com uma raíz de p(x) como elemento definidor.

Assim, dado um polinômio irredutível de grau m sobre um corpo primo Fp , ou seja, um


corpo onde p é primo, podemos construir uma extensão algébrica simples de Fp adicionando
a raíz de tal polinômio, conseguindo assim um corpo finito com pm elementos.

Exemplo 1.2. Consideremos p(x) = x2 + x + 1 o qual é irredutível sobre F2 e consideremos


ζ uma raiz deste polinômio, ou seja, tal que ζ 2 + ζ + 1 = 0, então podemos considerar o
corpo F2 (ζ) que contém os elementos {0, 1, ζ, ζ + 1}. Temos então que F2 (ζ) é uma extensão
algébrica simples de F2 a qual é um corpo com 22 = 4 elementos.

Teorema 1.6. [23] Seja p(x) um polinômio irredutível de grau r sobre Fp . Então o conjunto
de todos os polinômios de grau menor ou igual a r − 1 com coeficientes em Fp e operações
realizadas módulo p(x), formam um corpo de ordem pr .

Se tomarmos por exemplo, um polinômio irredutível p(x) de grau r sobre o corpo Fp , o


conjunto de todos os polinômios mônicos de grau ≤ r − 1 com coeficientes em Fp , forma o
corpo Fpr .

Exemplo 1.3. Como exemplo, vejamos o caso de F8 = F23 , para isto consideremos o polinômio
p(x) = x3 + x + 1 que é irredutível sobre F2 , então os polinômios mônicos de grau menor ou
igual a 3 − 1 = 2 são: 0, 1, x, x2 , 1 + x, 1 + x2 , 1 + x + x2 , x + x2 e considerando as operações de
soma e multiplicação destes polinômios módulo p(x), obtemos a representação dos elementos
de F8 como polinômios, F8 = {0, 1, x, x2 , 1 + x, 1 + x2 , 1 + x + x2 , x + x2 }. Note que se
considerarmos ζ uma raíz do polinômio p(x) = x3 + x + 1 obtemos uma extensão algébrica
de F2 dada por F2 (ζ) = {0, 1, ζ, ζ 2 , 1 + ζ, 1 + ζ + ζ 2 , ζ + ζ 2 }.

Note que, no exemplo anterior, os corpos obtidos foram essencialmente os mesmo, apenas
representados de forma diferente. Além disso, se tomarmos outro polinômio irredutível para
construirmos o corpo, obteremos um corpo isomorfo ao anterior, o que é confirmado pelo
teorema a seguir.
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 12

Lembrando que a ordem de um corpo finito é o número de elementos deste corpo, temos
o seguinte resultado.

Teorema 1.7. [23] Todos os corpos de mesma ordem pr são isomorfos.

Consideremos o corpo finito Fq . Denotaremos por F∗q o conjunto dos elementos não nulos
de Fq .
Lembremos que um grupo multiplicativo finito é cíclico se o mesmo consiste dos elementos
1, a, a2 , . . . , aq−1 com aq = 1, onde a é um elemento não nulo do grupo. Neste caso, a é o
gerador do grupo e escrevemos G = hai.

Teorema 1.8. [23] F∗q é um grupo multiplicativo cíclico de ordem pr − 1, dado que q = pr .

Definição 1.16. Um gerador do grupo multiplicativo cíclico F∗q é chamado elemento primitivo
de Fq .

Teorema 1.9. [23] Todo corpo Fq possui um elemento primitivo.

Teorema 1.10. [22] Seja Fp um corpo finito e Fq uma extensão finita do corpo. Então Fq
é uma extensão algébrica simples de Fp e todo elemento primitivo de Fq serve como um
elemento definidor de Fq sobre Fp .

Pelos teoremas acima, se tomarmos α um elemento primitivo de Fpr , então este será
um elemento definidor de Fpr sobre Fp , ou seja, os elementos de Fpr serão dados por Fpr =
r
{0, α0 = 1, α, α2 , . . . , αp −2 }. Utilizaremos esta representação para os elementos de Fpr , ou
seja, como potências de um elemento primitivo.
Assim, para construirmos os elementos de Fpr , tomaremos um polinômio irredutível p(x)
de grau r sobre Fp cuja raíz, digamos α, em Fpr é um elemento primitivo de Fpr . Neste caso
teremos a representação desejada dos elementos de Fpr como potências de um único elemento.

Exemplo 1.4. Novamente, se utilizarmos p(x) = x3 +x+1 para construirmos o corpo F8 = F23 ,
então, tomando α uma raíz deste polinômio, podemos escrever os elementos de F8 como
sendo potências de α. Temos que F8 = {0, 1, α, α2 , α3 , α4 , α5 , α6 }. Note que, como p(α) = 0,
obtemos α3 = α + 1, α4 = α2 + α, α5 = α2 + α + 1 e α6 = α2 + 1, e assim podemos
representar os elementos de F8 como potências de α mais o elemento nulo, ou seja, F8 =
{0, 1, α, α2 , α3 , α4 , α5 , α6 } e este corpo é essencialmente o mesmo obtido no Exemplo 1.3.
Porém q(x) = x3 + x2 + 1 também é irredutível sobre F2 , logo também pode ser utilizado
para construir um corpo com 8 elementos, onde se γ é uma raíz de q(x), então os elementos
deste corpo serão {0, 1, γ, γ 2 , γ 3 = γ 2 + 1, γ 4 = 1 + γ + γ 2 , γ 5 = 1 + γ, γ 6 = γ + γ 2 }. Note
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 13

que γ 3 também é raíz de p(x), logo podemos tomar a aplicação que leva α ↔ γ 3 a qual é um
isomorfismo e assim os corpos são isomorfos.

Como vimos no exemplo acima, o corpo construído é essencialmente o mesmo, inde-


pendente do polinômio definidor escolhido, porém por praticidade nas contas desenvolvidas,
escolheremos o polinômio com base nos resultados que seguirão. No exemplo anterior, a
escolha do polinômio irredutível não fez diferença para escrevermos os elementos do corpo
como potências de uma raíz do polinômio, porém, como mencionado, a raíz precisa ser um
elemento primitivo, e nem sempre isto ocorre.

Exemplo 1.5. Consideremos o polinômio p(x) = x4 + x3 + x2 + x + 1 que é irredutível sobre


F2 , então podemos utilizar este polinômio para escrever uma extensão algébrica de grau 4
sobre F2 adicionando a raíz deste polinômio, ou seja, se α é uma raíz de p(x), temos que a
extensão algébrica de grau 4 será F2 (α) = {0, 1, α, α2 , α3 , 1 + α, 1 + α2 , 1 + α3 , α + α2 , α +
α3 , α2 + α3 , 1 + α + α2 , 1 + α + α3 , 1 + α2 + α3 , α + α2 + α3 , 1 + α + α2 + α3 }. Porém, não
podemos escrever os elementos deste corpo como potências de α visto que α5 = 1, ou seja,
uma raíz deste polinômio irredutível não é um elemento primitivo.
Se por outro lado tomarmos q(x) = x4 + x3 + 1, o qual também é irredutível sobre
F2 então podemos tomar α como sendo uma raíz deste polinômio e conseguiremos escrever
F16 = {0, 1, α, α2 , α3 , α4 , α5 , α6 , α7 , α8 , α9 , α10 , α11 , α12 , α13 , α14 }.

Na literatura existem diversos trabalhos sobre polinômios irredutíveis primitivos sobre


corpos finitos, os quais podem ser utilizados para a construção do corpo finito desejado
com os elementos dados por potências de uma raíz do mesmo. Neste trabalho, optaremos
por utilizar a representação de elementos de um corpo Fq como potências de um elemento
primitivo. Assim, vejamos mais alguns resultados que nos auxiliarão a determinar qual
polinômio irredutível escolher de forma a obtermos um elemento primitivo.
Primeiramente, lembremos que se m é um número inteiro positivo, então podemos fatorar
este número como produto de potências de números primos, m = pk11 pk22 · · · pkr r . Então, a
função de Euler do número m é dada por
! ! !
1 1 1
φ(m) = m 1 − 1− ··· 1 − .
p1 p2 pr

Assim conseguimos o seguinte resultado.

Teorema 1.11. [22] O corpo finito Fq possui φ(q − 1) elementos primitivos.


Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 14

Assim, utilizamos este resultado para determinar se podemos escolher qualquer polinômio
irredutível de grau r sobre Fp na construção do corpo Fpr .

Exemplo 1.6. Consideremos o corpo F8 . Então, pelo teorema anterior, este corpo possui
φ(7) = 7(1 − 71 ) = 6 elementos primitivos, como este corpo possui 8 elementos, se tirarmos
os elementos 0 e 1, todos os demais elementos serão elementos primitivos, logo para qualquer
polinômio irredutível de grau 3 sobre F2 que escolhermos, vamos ter que uma raíz será um
elemento primitivo.
Por outro lado, como vimos, F16 terá φ(15) = 15(1 − 13 )(1 − 15 ) = 8 elementos primitivos,
e como este corpo possui 16 elementos, não podemos escolher qualquer polinômio irredutível
para tomarmos uma raíz.

Caso não possamos escolher qualquer polinômio irredutível de grau r na construção de


Fpr , utilizaremos os seguintes resultados.

Teorema 1.12. [22] Seja q = pr . Então o corpo finito Fq é o (q − 1)-ésimo corpo ciclotômico
sobre Fp .

Temos que o (q − 1)-ésimo corpo ciclotômico sobre Fp é o corpo de divisão de xq−1 − 1


sobre Fp , ou seja, uma extensão Fq de Fp que possui todas as raízes deste polinômio, isto
é, tal que xq−1 − 1 pode ser escrito como produto de fatores lineares em Fq [x]. Assim, se
fatorarmos o polinômio xq−1 − 1 sobre Fp em polinômios irredutíveis sobre Fp conseguiremos
encontrar o polinômio desejado. Para isto, vamos utilizar os polinômios ciclotômicos.
Primeiramente, se Fq é o corpo de divisão de xq−1 − 1 sobre Fp , então as raízes de xq−1 − 1
em Fq são chamadas de raízes (q − 1)-ésimas da unidade. Além disso, temos que

xq−1 − 1 =
Y
Qd (x),
d|(q−1)

onde q − 1 não é divisível pela característica de Fq , ou seja, por p e Qd (x) é o d-ésimo polinô-
mio ciclotômico sobre Fq , com coeficiente no corpo Fp . Para encontrarmos tais polinômios
utilizaremos um resultado que necessita da Função de Moebius, a qual é definida como:





1 se n = 1
µ(n) = (−1) se n se escreve como produto de k primos distintos


0 se n se escreve como o quadrado de um primo

Assim, temos o seguinte resultado.


Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 15

Teorema 1.13. [22] Seja Fq um corpo com característica p e n um inteiro não divisível por
p. Então o n-ésimo polinômio ciclotômico Qn (x) sobre Fq satisfaz

(xd − 1)µ(n/d) = (xd/n − 1)µ(d) .


Y Y
Qn (x) =
d|n d|n

Exemplo 1.7. Consideremos o corpo F16 e n = 15, então temos que o polinômio ciclotômico
Q15 (x) sobre F16 é dado por

(x15 − 1)(x − 1)
(xd −1)µ(n/d) = (x−1)µ(15) (x3 −1)µ(5) (x5 −1)µ(3) (x15 −1)µ(1) =
Y
Q15 (x) = =
d|n
(x5 − 1)(x3 − 1)
x + x + x + x4 + x3 + x + 1.
8 7 5

Teorema 1.14. [22] Considere o (q − 1)-ésimo corpo ciclotômico Fq sobre Fp . Então este é
uma extensão algébrica simples sobre Fp e além disso, se M DC(p, q − 1) = 1 então Qq−1 (x)
se fatora em φ(q−1)
d
polinômios irredutíveis de mesmo grau d sobre Fp [x], onde d é tal que
pd = 1mod(q − 1) e assim Fq é o corpo de divisão sobre Fp de qualquer um desses fatores.

Pelo teorema anterior, para encontrarmos um elemento primitivo para gerarmos o corpo
Fq , basta encontramos Qq−1 (x) e fatorarmos este polinômio em polinômios irredutíveis de
grau r, onde q = pr , sobre F2 e tomarmos o elemento primitivo como sendo uma raíz de
qualquer um destes polinômios.

Exemplo 1.8. No exemplo anterior vimos que F16 é o 15-ésimo corpo ciclotômico. Como
16 = 24 e Q15 (x) = x8 + x7 + x5 + x4 + x3 + x + 1, o qual se fatora em φ(15)
4
= 2 polinômio
4 3
irredutíveis de grau 4 sobre F2 [x], e f (x) = x + x + 1 é irredutível sobre F2 [x] temos que
Q15 (x) = (x4 + x3 + 1)(x4 + x + 1) e podemos utilizar a raíz de qualquer um destes dois
polinômios como elemento primitivo.

Teorema 1.15. [22] Seja f um polinômio irredutível sobre Fp de grau r. Então f possui uma
raíz α na extensão Fpr e além disso todas as raízes de f são dadas pelos r elementos distintos
2 r−1
α, αp , αp , . . . , αp de Fpr .

No decorrer do trabalho estaremos interessados em particular, em polinômios de grau 2,


irredutíveis sobre um corpo Fq . Pois utilizaremos tais polinômios na construção do Semi-
Plano Superior Finito Hq quando q = 2r , apresentado no próximo capítulo. Assim, vejamos
alguns resultados específicos que nos auxiliarão.
Primeiramente, precisamos da noção de traço e norma de um elemento de um corpo finito.
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 16

2
Definição 1.17. Seja Fpr uma extensão de Fp e α ∈ Fpr . Então os elementos α, αp , αp , . . .,
r−1
αp são chamados conjugados de α com respeito a Fp .

Definição 1.18. Para α ∈ Fpr , onde Fp é o subcorpo primo de Fpr , o traço T rFp (α) de α sobre
Fp é dado por
r−1
T rF (α) = α + αp + · · · + αp .

Assim, o traço de um elemento α sobre Fp é a soma dos seus conjugados. Outra definição
importante é a da norma de um elemento, que nada mais é que o produto de seus conjugados.

Definição 1.19. Para α ∈ Fpr , onde Fp é o subcorpo primo de Fpr , a norma NF (α) de α sobre
Fp é dada por
r−1
NFp (α) = α · αp · · · · · αp .

De posse destas definições, podemos agora apresentar alguns resultados específicos para
polinômios de grau 2, como mencionado.

Teorema 1.16. [22] Seja Fq um corpo finito com característica p e a ∈ Fq . Então o trinômio
xp − x − a é irredutível em Fq [x] se, e somente se, T rF (a) 6= 0.

Como iremos trabalhar com o corpo F2r , cuja característica é 2, e em F2r temos que
−1 = 1, o resultado anterior nos diz que o polinômio x2 + x + a é irredutível sobre F2r se,
e somente se, T rF (a) 6= 0. Além disso, trabalharemos com a representação dos elementos de
F2r como potências de um elemento primitivo. Assim, o próximo resultados nos auxiliará na
escolha de tal elemento primitivo.

Teorema 1.17. [23] F2r contém um elemento primitivo de traço igual a 1.

Tal resultado aparece em [23] como um corolário e sua demonstração pode ser encontrada
em [26].
Assim, ao construirmos o corpo F2r , escolheremos como elemento definidor α, um elemento
primitivo com traço igual a 1, obtendo assim o polinômio irredutível p(x) = x2 + x + α sobre
F2r .

Exemplo 1.9. Pelo exemplo 1.8, temos duas opções de polinômios irredutíveis sobre F2 de
grau 4 para construirmos F16 , onde os elementos de F16 serão dados por potências de uma
raíz de um destes polinômios. Se tomarmos o polinômio f (x) = x4 + x + 1 e γ uma raíz
deste, então T rF2 (γ) = γ + γ 2 + γ 4 + γ 8 = 0, porém se tomarmos p(x) = x4 + x3 + 1 e α uma
raíz deste, teremos T rF2 (α) = α + α2 + α4 + α8 = 1. Logo escolheremos α para gerar F16 e
neste caso, pelo teorema anterior teremos que x2 + x + α será irredutível sobre F16 .
Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 17

Outros resultados relacionados à corpos finitos que utilizaremos em nosso trabalho são
apresentados a seguir.

Definição 1.20. Para qualquer corpo finito Fq , a função valor inteiro υ em Fq é definida por

υ(b) = −1, b ∈ F∗q e υ(0) = q − 1.

Lema 1.18. [22] Seja q par e a ∈ Fq com T rFq (a) = 1 e b ∈ Fq . Então o número de soluções
em Fq de x2 + xy + ay 2 = b é dado por q − υ(b).

Ao longo do trabalho, denotaremos o número de soluções de x2 + xy + ay 2 = b em Fq ,


com as hipóteses do teorema acima, por S(x2 + xy + ay 2 = b).
Além dos conceitos e resultados apresentados sobre corpos finitos, outra estrutura que
será muito utilizada ao longo do trabalho é a do Grupo Linear Geral, GL2 (Fq ) das matrizes
não singulares 2 × 2 com
 entradas
 em Fq . 
 a b 
Como GL2 (Fq ) =   , a, b, c, d ∈ Fq , ad − bc 6= 0 , então se a, b, c, d são todos
c d 
não nulos, basta tomarmos a 6= d−1 bc, o que nos dá (q − 1)3 (q − 2) escolhas, se exatamente
uma das entradas é nula, então as outras 3 podem ser qualquer elemento não nulo o que nos
dá um total de 4(q − 1)3 elementos, por fim, se duas entradas são nulas, elas devem estar
na posição oposta uma da outra para que a matriz seja inversível, e as outras duas podem
ser qualquer elemento não nulo, logo temos 2(q − 1)2 escolhas. Portanto o número total de
elementos de GL2 (Fq ) é

|GL2 (Fq )| = (q − 1)3 (q − 2) + 4(q − 1)3 + 2(q − 1)2 = (q 2 − 1)(q 2 − q).

Definição 1.21. Dados dois elementos x e y de um grupo G, dizemos que estes elementos são
conjugados se existe g ∈ G tal que gxg −1 = y.

Esta é uma relação de equivalência e assim podemos considerar classes de equivalência


com relação à conjugação. Temos que a classe de equivalência de x ∈ G com relação à
conjugação é dada por

Cx = {y ∈ G | ∃g ∈ G tal que gxg −1 = y}.

Se X é um conjunto qualquer e G um grupo, então uma ação de G sobre o conjunto X é


Capítulo 1. Códigos Corretores de Erros e Corpos Finitos 18

uma aplicação
G × X −→ X
.
(g, x) 7→ gx
Neste caso, se considerarmos X = GL2 (Fq ), G = GL2 (Fq ) e a ação dada pela conjugação,
G × G −→ G
ou seja, , teremos que as classes de equivalência serão as G-órbitas,
(a, b) 7→ aba−1
também chamadas de classes de conjugação. O número de classes de conjugação de G =
GL2 (Fq ) é o número de G-órbitas ou classes de conjugação distintas e pode ser determinado
analisando o polinômio característico p(x) e minimal m(x) de g ∈ G.

Proposição 1.19. [17] Seja G = GL2 (Fq ). Então:

a)2 e m(x) = x − a, um representante para a classe


(i) Se g ∈ GL2 (Fq ) é tal que p(x)= (x − 
a 0 
de conjugação de g é g =  e o número de classes é q − 1 cada uma com 1
0 a
elemento;
2
(ii) Se g ∈ GL2 (Fq ) é tal que  m(x) = (x − a) , um representante para a classe de
 p(x) =
a 1 
conjugação de g é g =  e o número de classes é q − 1 cada uma com (q 2 − 1)
0 a
elementos;

(iii) Se g ∈ GL2 (Fq ) é tal que p(x) = m(x)= (x −a)(x − b) com a 6= b, um representante
a 0 
para a classe de conjugação de g é g =  e o número de classes é 12 (q −1)(q −2)
0 b
2
cada uma com q + q elementos;

(iv) Se g ∈ GL2 (Fq ) é tal que p(x) = x2 + ax + b é irredutível sobre Fq , então considerando a
extensãoquadrática Fq2 e α ∈ Fq2 \Fq , um representante para a classe de conjugação de
0 αq+1  2
gég= 
q
e o número de classes é q 2−q cada uma com q 2 − q elementos.
−1 α + α
Capítulo 2

Modelo do Semi-Plano Superior Finito

O Semi-Plano Superior Finito foi introduzido por Terras em [13], e foi posteriormente
estudado em uma série de trabalhos, Celniker [12], Poulos [27], Angel e Velasquez [3], [4],
Terras [33], [34] onde consideram q = pr um número ímpar com p primo e Fq um corpo com
q elementos, e em seguida analisam as propriedades geométricas e analíticas do que chamam
de Semi Plano Superior Finito, o qual é obtido substituindo-se R por Fq no Semi Plano de
Poincaré. Angel [2] e Evans [14] também consideram os casos de corpos com característica
par. Inicialmente, veremos os resultados para p ímpar e em seguida para p = 2.
Quando estudamos geometria hiperbólica, nos deparamos com o modelo do Semi-Plano
Superior ou, também chamado por alguns como Semi-Plano Superior de Poincaré. Tal Semi-
Plano Superior é definido como

H = {x + iy, x, y ∈ R, y > 0}, onde i = −1.

Terras et al. [13] consideram então, um modelo semelhante, substituindo-se R por um



corpo finito Fp , com p ímpar e i por ς onde ς é um não quadrado em Fp e analisam as
propriedades de tal modelo. A seguir introduziremos os principais resultados obtidos em [13],
[34] e em seguida, apresentaremos nossos resultados para o caso par com destaque para o
Lema 2.6 e o Teorema 2.7.

Definição 2.1. Sejam p um número primo ímpar, q = pr , Fq um corpo finito com q elementos
e ς um não quadrado em Fq . Definimos o Semi-Plano Superior Finito Hq como


Hq = {x + y ς, x ∈ Fq , y ∈ F∗q }.

Note que, pela definição, Hq possui q(q − 1) elementos. Seguindo o modelo do Semi-Plano

19
Capítulo 2. Modelo do Semi-Plano Superior Finito 20


Superior, define-se uma ”pseudo-distância” em Hq . Considerando z = x + y ς ∈ Hq , assim
como no modelo do Semi-Plano Superior, dizemos que a parte imaginária de z é Im(z) = y.

Tomamos ainda z = x − y ς e consideramos a norma N (z) = zz. Com tais elementos
obtemos uma definição para uma distância neste modelo proposto.
Definição 2.2. Sejam z, w ∈ Hq . Definimos a ”distância” entre z e w por

N (z − w)
d(z, w) = .
Im(z)Im(w)

Vale ressaltar que esta distância retorna um elemento do corpo, por isso consideramos a
mesma como uma "pseudo-distância".
Exemplo 2.1. Consideremos F3 = {0, 1, 2}, então 2 é um não quadrado em F3 e temos
√ √ √ √ √
que H3 = {z1 = 2, z2 = 2 2, z3 = 1 + 2, z4 = √ 1 + 2 2, z
√5 = 2 + 2, z6 √
= 2+
√ N (z3 − z6 ) N ((1 + 2) − (2 + 2 2)) N (2 + 2 2)
2 2}. Logo, d(z3 , z6 ) = = = =
√ √ Im(z3 )Im(z4 ) 1.2 2
(2 + 2 2)(2 − 2 2)
= 1.
2

Considerando o grupo linear geral GL(2, Fq ) das matrizes 2 × 2 com entradas em Fq e


determinante não nulo, obtemos que a distância é invariante
  por transformações fracionárias
a b  az + b
lineares, ou seja, se g ∈ GL(2, Fq ), temos que g =  age em Hq por g(z) = e
c d cz + d
assim, d(z, w) = d(g(z), g(w)).

√ √
De fato, sejam z = x + y ς e w = u + v ς pertencentes a Hq . Então, pelas definições
az + b aw + b
dadas, temos que Im(z) = y, Im(w) = v, g(z) = , g(w) = , Im(g(z)) =
cz + d cw + d
(ad − bc)Im(z) (ad − bc)Im(w)
, Im(g(w)) = .
N (cz + d) N (cw + d)

Assim
 
(az+b)(cw+d)−(aw+b)(cz+d)
N (g(z) − g(w)) N (cz+d)(cw+d)
d(g(z), g(w)) = = (ad−bc)2 Im(z)Im(w)
=
Im(g(z))Im(g(w))
N (cz+d)N (cw+d)

N ((az + b)(cw + d) − (aw + b)(cz + d)) N ((ad − bc)(z − w))


= = =
(ad − bc) Im(z)Im(w)
2 (ad − bc)2 Im(z)Im(w)
N (z − w)
= = d(z, w).
Im(z)Im(w)
Capítulo 2. Modelo do Semi-Plano Superior Finito 21

O Semi-Plano Superior Finito está intimamente ligado à teoria dos grafos, e isso foi uma
das motivações para sua definição.

Definição 2.3. Fixe a ∈ Fq , com a 6= 0, 4ς. Define-se o grafo Xq (ς, a) como sendo o grafo
tendo como vértices os elementos de Hq e dois vértices z e w sendo adjacentes se d(z, w) = a.

Exemplo 2.2. Consideremos o Semi-Plano Superior Finito H3 , construído no exemplo 2.1.


Como ς = 2, e o único a ∈ F3 tal que a 6= 0, 4ς é a = 1, o único grafo que conseguimos neste
caso é o X3 (2, 1). Neste caso teremos dois vértices adjacentes se d(z, w) = 1 e obtemos o
seguinte grafo:
√ √
u 2
1+
HH  u2 2
1+
Q
@ 
QH 
@ QH
√@ Hu √
2 u
Q
@2 2
Q H
H
H
  HQ
 HQ@
u√ @u √

 HQH

 Q
2+ 2 2+2 2

Os artigos [13], [33], [34], trabalham em sua maioria, com propriedades destes grafos para
q ímpar. Como neste trabalho não utilizaremos tanto os conceitos de grafos, iremos omitir a
maioria dos resultados, apresentando apenas alguns a seguir.
Primeiramente vejamos alguns conceitos gerais sobre grafos. Dizemos que o grau de um
vértice v de um grafo é o número de vértices que são adjacentes à este vértice v no grafo.
Se este número é o mesmo, digamos k, para todos os vértices, dizemos que o grafo é k-
regular, além disso, se para quaisquer dois vértices v e u conseguirmos um caminho formado
por vértices adjacentes começando em v e terminando em u, dizemos que o grafo é conexo.
Temos ainda que se G é um grupo finitamente gerado e S é um subgrupo gerador, então o
grafo tendo como vértices os elementos de G e vértices adjacentes v e u se u = sv, com s ∈ S,
é chamado grafo de Cayley.
Agora colocaremos em um único teorema, vários resultados obtidos para os grafos cons-
truídos em Hq .

Teorema 2.1. [33] Sejam q = pr , com p primo ímpar, Fq um corpo com q elementos, ς um
não quadrado em Fq e a ∈ Fq .

i Se a 6= 0, 4ς, então Xq (ς, a) é um grafo (q + 1)−regular;

ii Os grafos Xq (ς, a) e Xq (ς.c2 , a.c2 ) são isomorfos;


Capítulo 2. Modelo do Semi-Plano Superior Finito 22

iii Seja τ um elemento do grupo de Galois Gal(Fq /Fp ), então os grafos Xq (ς, a) e Xq (τ (ς), τ (a)
são isomorfos;

iv Se a 6= 0, 4ς, o grafo Xq (ς, a) é conexo. Na verdade, Xq (ς, a) é um grafo de Cayley para o


grupo afim   
 y x 
Af f (q) =   |x, y ∈ Fq , y 6= 0
 0 1 

usando os geradores
  
 y x  
Sq (ς, a) =  |x, y ∈ Fq , y 6= 0, x2 = ay + ς(y − 1)2 .
 0 1 

Outro resultado importante obtido é o próximo teorema. Lembrando que um grafo conexo
k-regular é Ramanujan se o segundo maior auto-valor, em módulo, da matriz de adjacência

do grafo satisfaz |λ| ≤ 2 k − 1.

Teorema 2.2. [19] Seja ς um não quadrado em Fq , com q = pr potência de um primo ímpar
e a ∈ Fq , a 6= 0, 4ς. Então o grafo Xq (ς, a) é Ramanujan.

Muitos outros resultados analíticos e geométricos foram obtidos para os grafos em Hq ,


com muitos teoremas sobre a matriz de adjacência dos grafos, seus autovalores entre outros.
Não utilizaremos estes resultados neste trabalho. Assim, seguimos com o estudo de Hq para
q par.
Note que na definição do Semi-Plano Superior Finito Hq , é necessário um elemento não
quadrado em Fq . Tal elemento não existe se a característica do corpo é par.
De fato, como trabalharemos com F2r , a característica do corpo é 2, e neste caso todo
r
elemento a ∈ F2r satisfaz a2 = a, ou seja, para todo elemento do corpo, existe um elemento
r−1
que elevado ao quadrado resulta no anterior, neste caso, a = (a2 )2 . Assim, a fim de definir
o Semi-Plano Superior Finito para potências de 2, precisamos de algumas modificações.
Tais modificações foram apresentadas por Evans [14] e Angel [2], os resultados apresen-
tados a seguir podem ser encontrados nestas referências.
Primeiramente, para q = 2r , o corpo Fq não é isomorfo aos inteiros módulo q. Assim, a fim
de construir tal corpo, como visto no capítulo anterior, tomamos um polinômio irredutível
de grau r sobre F2 , cuja raíz é um elemento primitivo de F2r .
Considere então o corpo F2r assim obtido. Como não há um elemento não quadrado,
para contornar este ”problema”, consideramos então um novo polinômio irredutível, agora
quadrático, sobre F2r e θ uma raíz deste polinômio sobre a extensão quadrática de F2r e
definimos o Semi-Plano Superior Finito de forma análoga por:
Capítulo 2. Modelo do Semi-Plano Superior Finito 23

Definição 2.4. Seja x2 + tx + n um polinômio irredutível sobre Fq , com q = 2r e θ uma raíz


deste polinômio sobre a extensão quadrática Fq2 . O Semi-Plano Superior Finito Hq é definido
como
Hq = {x + θy| x, y ∈ Fq , y 6= 0}.
Note que, como θ é raíz de x2 + tx + n sobre Fq2 [x], então θq também é uma raíz. Assim,
podemos tomar n = θθq e t = θ + θq , uma vez que x2 + tx + n = (x + θ)(x + θq ) em Fq2 [x].
Pode-se mostrar que a escolha do polinômio quadrático irredutível não interfere nos re-
sultados obtidos. Sendo assim, uma vez que optamos no capítulo 1, após os resultados do
Teorema 1.16 e Teorema 1.17, construir o corpo F2r com os elementos sendo potências de um
elemento primitivo α, com T r(α) = 1 e vimos que neste caso x2 + x + α é irredutível sobre
F2r , optaremos por construir o Semi-Plano Superior H2r com θ raíz do polinômio x2 + x + α.
Neste caso teremos θθq = α e θ + θq = 1, o que facilitará nossas contas ao longo do trabalho.
Exemplo 2.3. Considere o corpo F8 = {0, 1, α, α2 , α3 , α4 , α5 , α6 } construído no exemplo 1.4
tendo α como raíz do polinômio irredutível x3 + x2 + 1 sobre F2 . Neste caso temos que
T r(α) = 1 e assim, pelo Teorema 1.16, x2 + x + α é irredutível sobre F8 . Logo, tomando
θ uma raíz deste polinômio sobre F82 construímos o Semi-Plano Superior Finito H8 como
sendo
H8 = {θ, θα, θα2 , θα3 , θα4 , θα5 , θα6 ,
1 + θ, 1 + θα, 1 + θα2 , 1 + θα3 , 1 + θα4 , 1 + θα5 , 1 + θα6 ,
α + θ, α + θα, α + θα2 , α + θα3 , α + θα4 , α + θα5 , α + θα6 ,
α2 + θ, α2 + θα, α2 + θα2 , α2 + θα3 , α2 + θα4 , α2 + θα5 , α2 + θα6 ,
α3 + θ, α3 + θα, α3 + θα2 , α3 + θα3 , α3 + θα4 , α3 + θα5 , α4 + θα6 ,
α4 + θ, α4 + θα, α4 + θα2 , α4 + θα3 , α4 + θα4 , α4 + θα5 , α4 + θα6 ,
α5 + θ, α5 + θα, α5 + θα2 , α5 + θα3 , α5 + θα4 , α5 + θα5 , α5 + θα6 ,
α6 + θ, α6 + θα, α6 + θα2 , α6 + θα3 , α6 + θα4 , α6 + θα5 , α6 + θα6 }.
r
Para z = x + θy ∈ H2r , utilizaremos a notação θ = θ2 e obtemos o "conjugado"de z como
sendo z = x + yθ. Então, assim como no caso q ímpar, temos Im(z) = y e se considerarmos
r
a ”norma” N (z) = zz = z 2 +1 , temos também a definição de uma ”pseudo-distância” dada
N (z−w)
por d(z, w) = Im(z)Im(w) . Neste caso também temos que o grupo GL(2, F2r ) age em H2r por
 
a b 
transformações lineares fracionárias, ou seja, se g =  então a ação de g em Hq é
c d
dada por g(z) = az+b
cz+d
e novamente temos d(z, w) = d(g(z), g(w)).
Definimos também o grafo X2r (θ, a) tendo como vértices os elementos de H2r e tendo dois
vértices z e w adjacentes se d(z, w) = a.
Capítulo 2. Modelo do Semi-Plano Superior Finito 24

Como as propriedades que utilizaremos, em sua maioria, valem para ambos os casos,
vamos considerar
 √
 ς, ς não quadrado em Fq se q é ímpar
Hq = {x + δy| x, y ∈ Fq , y 6= 0}, δ =
 θ, raíz de x2 + x + α em F 2 se q é par
q
(2.1)
No próximo capítulo construiremos nossas famílias de códigos, como mencionado anteri-
ormente, construiremos uma família de códigos lineares para o caso em que q é par, e uma
família de códigos não lineares considerando ambos os casos. Assim, vejamos mais alguns
resultados sobre Hq para ambos os casos. Primeiramente, vejamos um resultado sobre a
distância definida, provado por Evans em [14] para o caso par e por Terras em [13] para o
caso ímpar. Utilizaremos Hq como apresentado em (2.1), e vamos considerar como origem
de Hq o elemento z0 = δ.

Lema 2.3. Os elementos z = x + δy e z0 = δ pertencentes à Hq são adjacentes em Xq (δ, a)


se, e somente se,

 x2 + x(y − 1) + α(y − 1)2 = ya para q par
 x2 − δ 2 (y − 1)2 = ya para q ímpar

Demonstração: De fato, temos que Im(z) = y, Im(z0 ) = 1 e que por definição do grafo
Xq (δ, a), os elementos são adjacentes se, e somente se, d(z, z0 ) = a para ambos os casos.
Assim temos

N (z − z0 ) N (x + δy − δ)
a = d(z, z0 ) ⇔ a = ⇔a= ⇔ ay = N (x + δ(y − 1)).
Im(z)Im(z0 ) y.1

Agora, se q é par, temos δ = θ e assim

ay = N (x + δ(y − 1)) ⇔ ay = [x + θ(y − 1)][x + θq (y − 1)] ⇔


ay = x2 + (θ + θq )x(y − 1) + θθq (y − 1)2 ⇔
ay = x2 + x(y − 1) + α(y − 1)2 .

Se q é ímpar, temos

ay = [x + δ(y − 1)][x − δ(y − 1)] ⇔ ay = x2 − δ 2 (y − 1)2 .


Capítulo 2. Modelo do Semi-Plano Superior Finito 25

Em [2], Angel prova separadamente, vários resultados sobre os grafos para o caso p par,
entre eles os resultados do Teorema 2.1 para q par. Assim, como fizemos no Teorema 2.1,
colocaremos vários destes resultados como itens de um único teorema e utilizaremos o Semi-
Plano Superior Finito Hq apresentado em (2.1).

Teorema 2.4. [2] Seja q = 2r , F2r um corpo com 2r elementos, a ∈ F2r , H2r como em (2.1)
e considere o conjunto S(δ, a) = {z ∈ H2r |d(z, δ) = a}.

(i) Se a 6= 0, 1, então X2r (δ, a) é um grafo (q + 1)−regular;

(ii) Se δ1 = c + dδ2 , com c, d ∈ F2r , então X2r (δ1 , a) = X2r (δ2 , da2 );
τ (a)
(iii) Seja τ ∈ Gal(F2r /F2 ), então os grafos X2r (δ, a) e X2r (δ, (Imτ (δ))2
) são isomorfos;

(iv) Se z ∈ S(δ, a) então z ∈ S(δ, 1 + a);



(v) a + δ ∈ S(δ, a);

(vi) Se a 6= 0, 1, então o grafo X2r (δ, a) é conexo. Na verdade X2r (δ, a) é um grafo de Cayley
para o grupo afim, Aff(F2r ) usando os geradores
  
 y x  
S=  |x + δy ∈ S(δ, a)
 0 1

Teorema 2.5. [14] Seja a ∈ F2r com a 6= 0, 1. Então o grafo X(δ, a) é Ramanujan.

Para a construção da família de códigos não lineares e não binários que faremos no capítulo
4, utilizaremos os conceitos geométricos apresentados por Terras em [34] e Shaheen em [29],
[28]. Nos referidos trabalhos considera-se apenas o caso q ímpar, porém consideraremos
também o caso onde q é par, e por isso provaremos os resultados.
Quando estudamos a geometria hiperbólica no Semi-Plano Superior, nos deparamos com
os grupos fuchsianos e os domínios fundamentais para a ação destes grupos sobre o Semi-
Plano Superior. Nos referidos trabalhos [34], [29], [28], os autores adaptam estes conceitos
ao Semi-Plano Superior Finito. Como estamos trabalhando com corpos finitos, e qualquer
subconjunto finito de GL(2, Fq ) é discreto, estes serão grupos fuchsianos. Então, assim como
no caso do Semi-Plano Superior, podemos definir um domínio fundamental para a ação de
um grupo discreto Γ ⊆ GL(2, Fq ) sobre Hq .
Antes de falarmos sobre o domínio fundamental para Hq , precisamos definir uma ordem em
Fq . Para isto, consideremos α um elemento primitivo, logo, gerador do grupo multiplicativo
Capítulo 2. Modelo do Semi-Plano Superior Finito 26

F∗q e então, consideremos a ordem

0 < 1 < α < α2 < α3 < · · · < αq−2 . (2.2)

Agora, seja Γ ⊆ GL(2, Fq ) um subgrupo e Γ 0 o conjunto dos elementos não triviais de


Γ , ou seja, diferentes de múltiplos da identidade e z0 ∈ Hq um ponto que não é fixado por
nenhum elemento de Γ 0 , ou seja, tal que γ(z0 ) 6= z0 ∀γ ∈ Γ 0 , definimos os conjuntos:

DΓ (z0 ) = {w ∈ Hq |d(z0 , w) < d(γz0 , w), ∀γ ∈ Γ 0 },

DΓ (z0 ) = {w ∈ Hq |d(z0 , w) ≤ d(γz0 , w), ∀γ ∈ Γ 0 }.

Note que na definição dos conjuntos acima, precisamos de um elemento z0 ∈ Hq que não
é fixado por nenhum elemento de Γ 0 , o qual sempre existe.
De fato, pela Proposição 1.19 temos que os representantes para
 as classes
 de conjugação
 
a 1 a 0
de GL(2, Fq ), que não são múltiplos da identidade, são g1 =  , g2 =  
0 a 0 b
 
0 αq+1 
com a, b ∈ Fq , a 6= b e g3 =  com α ∈ Fq2 \Fq . Agora note que se γ
−1 α + αq
pertence à classe de conjugação de g1 ou g2 então nenhum elemento de Hq é fixado, pois
γ(z) = z ⇔ a0 z + b0 = c0 z 2 + d0 z a qual não tem solução nestes dois casos. Se γ pertence à
classe de conjugação de g3 , então γ(z) = z ⇔ z 2 − (α + αq )z + αq+1 = 0, a qual possui como
solução a origem de Hq e seu "conjugado". Portanto qualquer elemento de Hq diferente da
origem ou seu conjugado, não é fixado por nenhum elemento de Γ 0 .
Temos então que os conjuntos apresentados são os análogos às regiões de Dirichlet, para
o semi-plano superior finito. Outro resultado obtido por Terras em [34] nos ajuda a definir
um dominínio fundamental para Hq e o mesmo é provado pelos autores apenas para q ímpar,
assim apresentamos a demonstração considerando-se também o caso par.

Lema 2.6. Dado z ∈ Hq , existe γ ∈ Γ tal que γz ∈ DΓ (z0 ). Além disso, se z, w ∈ DΓ (z0 ) e
γz = w para algum γ ∈ Γ , então γ é um elemento trivial.
0 0
Demonstração: Seja γ ∈ Γ tal que d(z0 , γz) ≤ d(z0 , γ z) ∀γ ∈ Γ . Tal γ existe pois Γ é finito.
0
Como múltiplos da identidade fixam todos os elementos de Hq , podemos supor que γ ∈ Γ
ou que γ = I, onde I é a matriz identidade. Vamos provar que este é o γ procurado.
0 0
De fato, escolha outro elemento γ ∈ Γ , pela invariância de d sob a ação de Γ , temos que
0 0
d(γ z0 , γz) = d(z0 , (γ )−1 γz). Temos então dois casos para analisarmos:
Caso 1 : γ = I
Capítulo 2. Modelo do Semi-Plano Superior Finito 27

Neste caso, pela invariância de d sob a ação de Γ e pela escolha de γ = I, obtemos:

0 0
d(γ z0 , z) = d(z0 , (γ )−1 z) ≥ d(z0 , z).

Caso 2 : γ 6= I
0 0
Novamente, pela invariância de d sob a ação de Γ , temos d(γ z0 , γz) = d(z0 , (γ γz)).
0 0 0
Agora, se γ γ ∈ Γ ∪ {I}, pela escolha de γ, temos que d(z0 , γ γz) ≥ d(z0 , γz) e assim

0
d(z0 , γz) ≤ d(γ z0 , γz).

0 0 0
Agora, se γ γ = λI, então γ = γ ◦ (λI), donde segue que γ z = γz e então

0 0 0
d(γ z0 , γz) = d(γ z0 , γ z) = d(z0 , z) ≥ d(z0 , γz).

Portanto, γz ∈ DΓ (z0 ).
0
Para a segunda parte, suponha que z, w ∈ DΓ (z0 ) com w = γz e γ ∈ Γ . Então, d(z0 , z) <
0
d(γz0 , z) ∀γ ∈ Γ . Por outro lado, como γz ∈ DΓ (z0 ), então

d(γ −1 z0 , z) = d(z0 , γz) < d(γz0 , γz) = d(z0 , z),

absurdo. Portanto γ é trivial.

Com este lema, temos que DΓ (z0 ) é quase um domínio fundamental para a ação de Γ ⊆
GL(2, Fq ) sobre Hq , sendo necessário, em alguns casos, retirar alguns elementos de forma
a satisfazer as condições da seguinte definição, obtida a partir da definição no Semi-Plano
Superior.

Definição 2.5. Seja Γ ⊆ GL(2, Fq ) um subgrupo e z0 ∈ Hq um ponto que não é fixado por
nenhum γ ∈ Γ 0 . Diremos que D é um Domínio Fundamental para Γ sobre Hq , se D for um
menor subconjunto tal que DΓ (z0 ) ⊆ D ⊆ DΓ (z0 ) e satisfaz:
[
1. γ(D) = Hq ;
γ∈Γ

2. se z, w ∈ DΓ (z0 ) e γz = w para algum γ ∈ Γ , então γ é um elemento trivial, ou seja,


◦ ◦
0
D ∩γ(D) = ∅, ∀γ ∈ Γ .
Basicamente, um domínio fundamental conterá um elemento de cada γ-órbita. Exemplos
para o caso q ímpar podem ser encontrados em [28]. Vejamos um exemplo para q par.
Capítulo 2. Modelo do Semi-Plano Superior Finito 28

Exemplo 2.4. Seja q = 4 e considere F4 = {0, 1, α, α2 } onde α é raíz de x2 + x + 1, ou seja,


elemento primitivo de F4 . Então tomamos x2 + x + α, irredutível sobre F4 , e δ raíz deste.
Assim teremos:
H4 = {x + δy| x, y ∈ F4 , y 6= 0} = {δ, δα, δα2 , 1 + δ, 1 + δα, 1 + δα2 , α + δ, α +
δα, α + δα2 , α2 + δ, α2 + δα, α2 + δα2 }.   
 1 a 
Considere agora o subgrupo Γ ⊂ GL(2, F4 ) dado por Γ =   , a ∈ F4 e z0 = 1+δ.
 0 1 
Temos que:
        
 1 0  1 1  1 α  1 α2 
Γ = γ1 =  , γ2 =  , γ3 =  , γ4 =  ,
 0 1 0 1 0 1 0 1 

DΓ (z0 ) = {1 + δ} ,

DΓ (z0 ) = {z0 = 1 + δ, z1 = 1 + δα, z2 = 1 + δα2 , z3 = α + δα, z4 = α2 + δα2 }.

Então
Γ (z0 ) = {γ1 z0 = 1 + δ, γ2 z0 = δ, γ3 z0 = α2 + δ, γ4 z0 = α + δ},
Γ (z1 ) = {γ1 z1 = 1 + αδ, γ2 z1 = αδ, γ3 z1 = α2 + αδ, γ4 z1 = α + αδ},
Γ (z2 ) = {γ1 z2 = 1 + α2 δ, γ2 z2 = α2 δ, γ3 z2 = α2 + α2 δ, γ4 z2 = α + α2 δ},
Γ (z3 ) = {γ1 z3 = α + αδ, γ2 z3 = α2 + αδ, γ3 z3 = αδ, γ4 z3 = 1 + αδ},
Γ (z4 ) = {γ1 z4 = α2 + α2 δ, γ2 z4 = α + α2 δ, γ3 z4 = 1 + α2 δ, γ4 z4 = α2 δ}.

◦ ◦
γ(DΓ (z0 )) = H4 , D ∩γ(D) = ∅, ∀γ ∈ Γ 0 . Porém
[
Se tomarmos DΓ (z0 ), teremos que
γ∈Γ
visto que Γ (z1 ) = Γ (z3 ) e Γ (z2 ) = Γ (z4 ), então DΓ (z0 ) não é um menor subconjunto que
satisfaz as condições da definição, ou seja, precisamos excluir elementos.
Portanto, se tomarmos D = {1 + δ, 1 + δα, 1 + δα2 }, que é um conjunto com um
[ ◦ ◦
representante de cada γ-órbita, teremos que γ(D) = H4 e como D= {1 + δ} então D
γ∈Γ

0
∩γ(D) = ∅, ∀γ ∈ Γ e assim D será um menor subconjunto que satisfaz as propriedades da
definição. Logo obtemos um domínio fundamental para a ação de Γ sobre H4 .

Exemplo 2.5. Por outro lado, no exemplo


 anterior, seconsiderarmos 
 c + d cα 
Γ = K = {g ∈ GL(2, F4 )| g(δ) = δ} =   , c, d ∈ F4 , cd + d2 + c2 α 6= 0 =
 c d 
Capítulo 2. Modelo do Semi-Plano Superior Finito 29

            
 1 0  α 0  α2 0  1 α  0 α  α2 α 
γ1 =  , γ2 =  , γ3 =  , γ4 =  , γ5 =  , γ6 = 
 0 1 0 α 0 α2 1 0 1 1 1 α
         
α α  α α2  α2 α2  0 α2  1 α2 
γ7 =  , γ8 =  , γ9 =  , γ10 =  , γ11 =  ,
1 α2 α 0 α 1 α α α α2
       
α2 1  α 1  1 1  0 1 
γ12 = 2 , γ13 =  2 , γ14 =  2 , γ15 =  2 ,
α 0 α 1 α α α α2 

teremos que δ e 1 + δ serão fixados por todos os elementos de K, assim, tomando-se o


ponto z0 = α + δ, obtemos

DΓ (z0 ) = {α + δ, α2 + δ} , DΓ (z0 ) = {α + δ, α2 + δ, δ, 1 + δ}.

Assim, se tomarmos F = DΓ (z0 ) = {z0 = α+δ, z1 = δ, z2 = 1+δ, , z3 = α2 +δ}, teremos:

γ1 (F) = γ2 (F) = γ3 (F) = {α + δ, α2 + δ, δ, 1 + δ},

γ4 (F) = γ8 (F) = γ12 (F) = {α2 + α2 δ, α2 δ, δ, 1 + δ},

γ5 (F) = γ10 (F) = γ15 (F) = {1 + α2 δ, α + α2 δ, δ, 1 + δ},

γ6 (F) = γ11 (F) = γ13 (F) = {1 + αδ, α2 + αδ, δ, 1 + δ},

γ7 (F) = γ9 (F) = γ14 (F) = {α + αδ, αδ, δ, 1 + δ}.

Note que, neste caso, não podemos retirar pontos de DΓ (z0 ) pois a condição (1) da defi-
nição 2.5 não será satisfeita. Além disso, é fácil verificar que a condição (2) é satisfeita, logo
D = DΓ (z0 ) é um domínio fundamental para Γ = K sobre H4 .

Como mencionado, outros exemplos de domínios fundamentais para Hq com q ímpar,


podem ser encontrados em [28], [29], [34].
O resultado a seguir também é necessário neste trabalho. Observamos que originalmente
ele foi enunciado somente para q ímpar, e apresentamos a demonstração para q qualquer.
Primeiramente, acrescentamos à Hq os elementos de Fq e o elemento ∞. Seja T a aplica-
Capítulo 2. Modelo do Semi-Plano Superior Finito 30

ção, denominada de cross-ratio, dada por

(z − z1 )(z2 − z3 )
T (z, z1 , z2 , z3 ) = ,
(z − z3 )(z2 − z1 )

onde z1 , z2 , z3 ∈ Hq são três pontos distintos de Hq e neste caso, são levados respectivamente
em 0, 1, e∞. Com esta aplicação e considerando-se Fq2 = Fq (δ), onde δ é dado em (2.1),
conseguimos o seguinte resultado.

Teorema 2.7. Dados distintos z1 , z2 , z3 ∈ Hq e distintos u1 , u2 , u3 ∈ Hq existe γ ∈ GL(2, Fq2 )


tal que γz1 = u1 , γz2 = u2 e γz3 = u3 . Além disso, γ é única a menos de multiplicação por
constante e pode ser representada por
 ! ! 
u1 (z2 − z1 ) u3 (z2 − z3 ) u3 z1 (z2 − z3 ) u1 z3 (z2 − z1 )
− −
u2 − u1 u2 − u3 u2 − u3 u2 − u1
 
 
 
γ= 
 .

 ! ! 
 (z2 − z1 ) (z2 − z3 ) z1 (z2 − z3 ) z3 (z2 − z1 ) 

− − 
u2 − u1 u2 − u3 u2 − u3 u2 − u1

Demonstração: De fato, primeiramente acrescentamos Fq e ∞ à Hq e consideramos as aplica-


(z − z1 )(z2 − z3 ) (z − u1 )(u2 − u3 )
ções cross-ratio T (z, z1 , z2 , z3 ) = e G(z, u1 , u2 , u3 ) = ,
(z − z3 )(z2 − z1 ) (z − u3 )(u2 − u1 )
como T (z1 ) = 0, T (z2 ) = 1, T (z3 ) = ∞ e G(u1 ) = 0, G(u2 ) = 1, G(u3 ) = ∞, basta tomarmos
γ = G−1 ◦ T : Hq → Hq e teremos γz1 = u1 , γz2 = u2 e γz3 = u3 bem como a expressão apre-
0 0
sentada. Para a segunda afirmação, seja γ ∈ GL(2, Fq2 ) outra aplicação tal que γ z1 = u1 ,
0 0 0
γ z2 = u2 e γ z3 = u3 . Então temos que z1 , z2 , z3 são distintos e fixados por γ −1 ◦ γ . Note
az + b
que z ∈ Hq é fixado se, e somente se, satisfaz = z, a qual claramente possui 3 soluções
cz + d 0
se, e somente se, a = d e b = c = 0, de onde segue que γ = aγ, a ∈ Fq2 .

Exemplo 2.6. Consideremos os resultados obtidos no Exemplo 2.5 e tomemos os elementos


z1 = α + δ, z2 = α2 + δ, z3 = 1 + δ, u1 = α + αδ, u2 =αδ, u3 
= 1 + δ todos elementos de
a b 
H4 satisfazendo as condições do Teorema 2.7. Seja γ =  como no teorema, então,
c d
lembrando que em corpos de característica par, −1 = 1, temos:
(α + αδ)((α2 + δ) + (α + δ)) (1 + δ)((α2 + δ) + (1 + δ))
a= + = αδ
(αδ) + (α + αδ) (αδ) + (1 + δ)
(1 + δ)(α + δ)((α2 + δ) + (1 + δ)) (α + αδ)(1 + δ)((α2 + δ) + (α + δ))
b= + = αδ
(αδ) + (1 + δ) (αδ) + (α + αδ)
Capítulo 2. Modelo do Semi-Plano Superior Finito 31

(α2 + δ) + (α + δ) (α2 + δ) + (1 + δ)
c= + =δ
(αδ) + (α + αδ) (αδ) + (1 + δ)
(α + δ)((α2 + δ) + (1 + δ)) (1 + δ)((α2 + δ) + (α + δ))
d= + = α2 δ.
(αδ) + (α + αδ) (αδ) + (α + αδ)

Como γ é  única a menos


 de multiplicação por constante, podemos tomar γ ∈ GL(2, F4 )
α α 
dada por γ =  que é a aplicação γ7 no Exemplo 2.5 e vemos pelo Exemplo 2.5 que
1 α2
de fato γ7 (z1 ) = u1 , γ7 (z2 ) = u2 e γ7 (z3 ) = u3 . Se multiplicarmos γ por α ou por α2 obtemos
respectivamente γ9 e γ14 , confirmando novamente o que foi encontrado no Exemplo 2.5.

Terras [34], ainda comenta que podemos considerar Γ -tessalações ao tomarmos q = pr ,


com r > 1 e Γ ⊆ GL(2, Fp ) para o caso ímpar.
No capítulo 4, consideraremos este caso e também o caso par na construção de nossos
códigos não-lineares. Além disso, veremos que podemos considerar Γ = GL(2, Fq ) agindo
sobre Hq2 tanto para q ímpar quanto para q par e que os códigos não-lineares obtidos dessa
forma são os melhores para nosso método de construção.
Capítulo 3

Códigos Lineares Quase-Cíclicos sobre Hq

Neste capítulo veremos uma família de códigos quase-cíclicos que podem ser obtidos trabalhando-
se com o Semi-Plano Superior Finito Hq . Iremos considerar q = 2r e construiremos uma
família de códigos quase-cíclicos binários sobre Hq .

3.1 Códigos Quase-Cíclicos sobre Hq utilizando a norma


Em [35], Tiu e Wallace apresentaram uma nova família de códigos baseados no Semi-Plano
Superior Finito Hq com q ímpar. Esses códigos foram chamados de NQR, Resíduos Nâo
Quadráticos. Na construção de tais códigos, os autores consideram a norma dos elementos
de Hq e tomam aqueles cuja norma é um resíduo não quadrático módulo q. Porém, como
para q par, todo elemento do corpo Fq é um resíduo quadrático, não podemos utilizar o
mesmo método de construção para o Semi-Plano Superior Finito Hq com q par. Podemos no
entanto, considerar apenas a norma ou a distância até a "origem"de Hq e relacioná-las com
elementos previamente escolhidos do corpo Fq .

3.1.1 Construção
r
Consideremos o corpo F2r = {0, 1 = α0 , α, α2 , . . . , α2 −2 } construído como no capítulo an-
terior, α um elemento primitivo com T r(α) = 1. Como vimos, a fim de construirmos H2r ,
tomamos o polinômio x2 + x + α, que pelo Teorema 1.16 é irredutível sobre F2r , e consi-
derando θ uma raíz deste polinômio sobre a extensão quadrática de F2r . Assim temos que
H2r = {x + θy| x, y ∈ F2r , y 6= 0}. A fim de melhorarmos a notação ao longo do capítulo,
vamos identificar os elementos de H2r por zij = x + θy, onde i, j são as potência de α tais
que x = αi e y = αj , caso x = 0, tomaremos i = ∗, ou seja, representaremos 0 = α∗ .

32
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 33

Exemplo 3.1. Considere H4 como no Exemplo 2.4, então


H4 = {x + δy| x, y ∈ F4 , y 6= 0} =
{δ, δα, δα2 , 1+δ, 1+δα, 1+δα2 , α+δ, α+δα, α+δα2 , α2 +δ, α2 +δα, α2 +δα2 } =
{z∗0 , z∗1 , z∗2 , z00 , z01 , z02 , z10 , z11 , z12 , z20 , z21 , z22 }.
r
Como os elementos de F2r podem ser escritos da forma F2r = {0 = α∗ , 1 = α0 , α, α2 , . . . , α2 −2 },
vamos ordenar os elementos de H2r utilizando a ordem dada em 2.2 para elementos de F2r ,
r
ou seja, α∗ = 0 < α0 = 1 < α1 < α2 < · · · < α2 −2 . Note que αi < αj ⇔ i < j e estamos
considerando ∗ < 0. Então os elementos de H2r serão ordenados como:

zij < zuv ⇔ i < u ou j < v caso i = u. (3.1)

Note que no exemplo acima, os elementos estão ordenados segundo esta ordem.
Agora, para cada elemento αi ∈ Fq , consideremos o bloco:

Ci = {zi0 , zi1 , . . . , zi(2r −2) }

.
r r
Como θ + θ2 = 1 e θθ2 = α, temos que, para z = x + yθ ∈ H2r , N (x + yθ) =
x2 + (θ + θ)xy + θθy 2 = x2 + xy + αy 2 .
Podemos então passar à construção da Matriz G que utilizaremos para gerar nosso código.
Faremos isto da seguinte forma:
A primeira linha de G, denotada por L0 , será formada pelos blocos Ci ordenados da
seguinte maneira, L0 = [C∗ C0 C1 · · · C2r −2 ]. As próximas 2r −1 linhas serão obtidas através
de um shift para a direita, dos blocos da linha anterior, ou seja, L1 = [C2r −2 C∗ C0 · · · C2r −3 ],
· · · , L2r −1 = [C0 C1 C2 · · · C∗ ].
Assim, a matriz G será da forma:

 
C∗ C0 C1 C2 · · · C2r −2
 

 C2r −2 C∗ C0 C1 · · · C2r −3 

G= 
.. .. .. .. .. .. 
. . . . . .
 
 
 
C0 C1 C2 C3 · · · C∗
(3.2)

Teorema 3.1. Seja G a matriz (3.2). A matriz A2r ×2r construída tomando-se a coluna k,
com 1 ≤ k ≤ 2r − 1 e as colunas k + (2r − 1)m, com 1 ≤ m ≤ 2r − 1 é uma matriz circular.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 34

Demonstração: De fato, note primeiramente que, em blocos, G é circular. Temos ainda que
cada bloco Ci possui o mesmo comprimento 2r − 1 e, a entrada referente à coluna k em cada
bloco, é o elemento zi(k−1) . Assim, tomando em cada bloco a k-ésima coluna, obtemos a
matriz  
z∗(k−1) z0(k−1) z1(k−1) . . . z(2r −2)(k−1)
 
 z(2r −2)(k−1) z∗(k−1) z0(k−1) . . . z(2r −3)(k−1) 
 
Ak = 
.. .. .. .. .. , (3.3)
. . . . .

 
 
z0(k−1) z1(k−1) z2(k−1) . . . z∗(k−1)
que é circular.

Exemplo
 3.2. Se considerarmos
 o Exemplo 3.1 então a matriz G será dada por
 ∗
C C0 C1 C2 
 C2 C∗ C0 C1 
 
G= 
 C1 C2 C∗ C0 
 
 
C0 C1 C2 C∗
 

z∗0 z∗1 z∗2 z00 z01 z02 z10 z11 z12 z20 z21 z22 
z20 z21 z22 z∗0 z∗1 z∗2 z00 z01 z02 z10 z11 z12
 
 
=  
z10 z11 z12 z20 z21 z22 z∗0 z∗1 z∗2 z00 z01 z02
 
 
 
z00 z01 z02 z10 z11 z12 z20 z21 z22 z∗0 z∗1 z∗2
 
θ αθ α2 θ 1+θ 1 + αθ 1 + α2 θ α+θ α + αθ α + α2 θ α2 + θ α2 + αθ α 2 + α2 θ
 α2 + θ α2 + αθ α + α2 θ
2 θ αθ α2 θ 1+θ 1 + αθ 1 + α2 θ α+θ α + αθ α + α2 θ 
=
 α+θ α + αθ α + α2 θ α2 + θ α2 + αθ α2 + α2 θ θ αθ α2 θ 1+θ 1 + αθ 1 + α2 θ
.

1+θ 1 + αθ 1 + α2 θ α+θ α + αθ α + α2 θ α2 + θ α2 + αθ α 2 + α2 θ θ αθ α2 θ

Como consequência, o código linear gerado a partir de G será um código quasi-cíclico de


ordem 2r .
A partir da matriz G construída acima, podemos obter códigos lineares. Como mencio-
nado, tais códigos serão quasi-cíclicos de ordem 2r . A família de códigos que apresentaremos
será obtida utilizando-se a norma dos elementos. Tal código será um código binário e para
isto, escolheremos um elemento não nulo de F2r , digamos αl para um l fixado.
Para obtermos o código linear binário, vamos calcular a norma de cada elemento de G e,
se a norma do elemento for igual ao αl escolhido, colocaremos um 1 no lugar do elemento
correspondente na matriz G, caso contrário colocaremos um 0. Desta forma, ficaremos com
uma matriz que denotaremos por N (G), com todas as entradas sendo 1‘s ou 0‘s. Note que
tal matriz terá 2r (2r − 1) colunas e 2r linhas, porém ainda não tomaremos esta matriz como
a matriz geradora do código, visto que conseguiremos eliminar algumas colunas desta matriz,
diminuindo assim o comprimento do código.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 35

Lema 3.2. O peso da cada linha da matriz N (G) é igual a 2r .

Demonstração: De fato, note primeiramente que escolhemos α como elemento primitivo de


F2r com T r(α) = 1 e em cada linha da matriz G temos todos os blocos Ci , sem repetição,
com i ∈ {∗, 0, 1, . . . , 2r − 2}. Além disso, para cada elemento zij de cada bloco Ci fazemos j
percorrer todos os elementos de {0, 1, 2, . . . , 2r − 2}. Logo, estamos interessados em saber o
número de soluções da equação N (x + θy) = αl quando x e y percorrem os elementos de F2r
com y 6= 0. Mas N (x + θy) = αl ⇔ x2 + xy + αy 2 = αl .
Pelo Lema 1.18, o número de soluções de tal equação é : S(x2 + xy + αy 2 = αl ) =
2r − υ(αl ) = 2r + 1. Porém, como em F2r todo elemento pode ser escrito como quadrado
de outro então, para y = 0 temos que existe um elemento x ∈ F2r tal que x2 = αl , mas em
H2r tomamos y 6= 0, então devemos excluir este x. O número de soluções se torna então 2r
e portanto o peso de cada linha de N (G) é 2r

A partir do Lema 3.2 vemos que o número de 1’s tomando todos os blocos Ci é 2r . Agora,
se considerarmos a matriz N (G), vemos que verticalmente, a cada 2r − 1 colunas temos todos
os blocos Ci como linhas, logo o número de 1’s em cada bloco de linhas também é 2r . Assim
obtemos o próximo resultado.

Teorema 3.3. Seja N (G) a matriz obtida de G colocando-se um 1 na entrada do elemento


cuja norma é αl e 0 caso contrário. Então, dentre as 2r (2r − 1) colunas de N (G), apenas
22r−1 são não nulas. Além disso, as colunas nulas ocorrem na mesma posição em cada bloco.

Demonstração: Note que precisamos analisar apenas as primeiras 2r − 1 colunas, visto que
as mesmas se repetem a menos da ordem de seus elementos, umas vez que a matriz Ak
em (3.3) é circular. Agora, como consequência do lema anterior, temos que existem 2r 1’s
entre as entradas destas primeiras 2r − 1 colunas. Temos ainda que os elementos da k-ésima
coluna são da forma zi(k−1) , onde i percorre todos os elementos de {∗, 0, 1, . . . , 2r − 1}. Logo,
a k-ésima coluna terá um 1 na entrada zi(k−1) se (αi )2 + αi αk−1 + α2k−1 = αj , ou seja, se
considerarmos αi = x, temos uma equação de grau 2 em uma variável x e tal equação possui
duas ou nenhuma solução em F2r , uma vez que (a + b)2 = a2 + b2 em F2r . Assim, cada coluna
não nula possui 0 ou duas entradas não nulas. Agora, temos 2r entradas não nulas no bloco
r
analisado, portanto temos 22 = 2r−1 colunas não nulas entre as primeiras 2r − 1 colunas,
as quais se repetem nos blocos seguintes. Portanto, apenas 22r−1 colunas de N (G) são não
nulas. A segunda parte segue diretamente da matriz G ser circular por blocos.

Assim, podemos excluir as colunas nulas da matriz N (G) e conseguimos uma nova matriz
0
G com 2r linhas e 22r−1 colunas, a qual será a matriz geradora do código.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 36

Exemplo 3.3. Consideremos a matriz G obtida no Exemplo 3.2. Devemos escolher um ele-
mento αl ∈ F∗4 e em seguida colocar 1 na entrada zij se N (zij ) = αl e 0 caso contrário. Vamos
escolher o elemento α2 ∈ F∗4 . Então temos que os elementos zij ∈ H4 tais que N (zij ) = α2
são {z∗1 , z10, z20 , z22 }. Então, como 
 ∗0
z z ∗1 z∗2 z 00 z01 z02 z10 z11 z12 z20 z21 z22 
 z20 z21 z22 z∗0 z∗1 z∗2 z00 z01 z02 z10 z11 z12 
 
G=  , teremos
 z10 z11 z12 z20 z21 z22 z∗0 z∗1 z∗2 z00 z01 z02 

 
z00 z01 z02 z10 z11 z12 z20 z21 z22 z∗0 z∗1 z∗2
 

0 0 1 0 0 0 1 0 0 1 0 1 
1 0 1 0 0 1 0 0 0 1 0 0
 
 
N (G) =   e
1 0 0 1 0 1 0 0 1 0 0 0
 
 
 
0 0 0 1 0 0 1 0 1 0 0 1
 

0 1 0 0 1 0 1 1 
1 1 0 1 0 0 1 0
 
G0 =
 
 
1 0 1 1 0 1 0 0
 
 
 
0 0 1 0 1 1 0 1

Já sabemos que o comprimento do código é 22r−1 , vejamos resultados sobre os outros


parâmetros código.

Teorema 3.4. Seja G0 a matriz 2r × 22r−1 obtida de N (G). Então, entre as 2r linhas de G0 ,
quaisquer 2r − 1 linhas são linearmente independentes.

Demonstração: Com efeito, suponha que no processo de obtenção de G0 , a k-ésima coluna do


primeiro bloco de N (G) era não nula e considere a matriz Ak obtida em (3.3) a partir desta
coluna. Basta mostrarmos que tal matriz possui posto 2r −1 e assim, como encontramos uma
submatriz de G0 com posto 2r − 1, então o posto de G0 deve ser maior ou igual a 2r − 1. Por
outro lado, note que ao somarmos todas as linhas de G0 , obtemos o vetor nulo, uma vez que
cada coluna possui apenas dois 1’s, logo o posto de G0 é menor que 2r e assim, obteremos o
resultado desejado. Seja então A a matriz obtida tomando-se a k-ésima coluna (não nula) de
N (G) e as colunas k + (2r − 1)m, com 1 ≤ m ≤ 2r − 1, após trocarmos as entradas por 1’s e
0’s. Vimos que tal matriz é circular e por Macwillians e Sloane [23], página 201, considerando
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 37

a matriz de Vandermonde sobre GF (2r )


 

1 1 ··· 1 
a0 a1 · · · a2r −1
 
 
M=  ,
a20 a21 · · · a22r −1
 
 
 r −1 r −1 r

a20 a21 · · · a22r −1
−1

r
onde a0 = 1 e ai são as 2r -ésimas raízes da unidade, e sendo f (x) = f0 + f1 x + · · · + f2r −1 x2 −1
com a primeira linha de Ak sendo dada por [ f0 f1 · · · f2r −1 ], temos que M −1 Ak M é a
matriz diagonal M −1 Ak M = diag[f (a0 ), f (a1 ), . . . , f (a2r −1 )]. Agora, note que apenas dois
fi ’s são não nulos, logo f (a0 ) = 0 e f (ai ) 6= 0 para 1 ≤ i ≤ 2r − 1, visto que os ai ’s são as
2r -ésimas raízes da unidade. Logo a matriz Ak tem posto 2r − 1 e como encontramos uma
submatriz de G0 com posto 2r − 1 temos que 2r − 1 ≤ posto(G0 ) < 2r e portanto quaisquer
2r − 1 linhas de G0 são linearmente independentes.

De posse de tais resultados, conseguimos então nosso código.

Teorema 3.5. Seja C o código linear binário cuja matriz geradora é a matriz G0 obtida nos
resultados anteriores. Então C é um [22r−1 , 2r − 1, 2r ]-código quasi-cíclico.

Demonstração: De fato, pelo Teorema 3.3 temos que o comprimento do código é 22r−1 e
pelo Teorema 3.4 que a dimensão do código é 2r − 1. Além disso, pela forma como a matriz
foi construída, obtemos diretamente que o código é quasi-cíclico. Resta provarmos que a
distância mínima é 2r . Pelo Lema 3.2 temos que ω(C ) ≤ 2r . Assim, resta provarmos que
ω(C ) ≥ 2r . Para isto, considere as 2r−1 matrizes circulares Ak formadas como em 3.3, a
partir das 2r−1 primeiras colunas de G0 . Para cada uma dessas matrizes, temos que o peso
de cada linha e cada coluna é 2, e além disso, como o posto de cada uma destas matrizes é
2r − 1, a soma de quaisquer l linhas, 1 ≤ l ≤ 2r − 1, deve ter peso par. Assim, para cada
uma das 2r−1 matrizes circulares o peso deve ser maior que, ou igual a 2, ao considerarmos
todas as matrizes circulares obtidas, ao mesmo tempo, devemos ter ω(C ) ≥ (2r−1 )2 = 2r .
Portanto a distância mínima do código é 2r .

Apesar do código obtido não possuir uma distância mínima e um dimensão tão eleva-
dos a princípio, o método de decodificação torna-se muito simples como veremos a seguir.
Também veremos que conseguimos melhorar a distância mínima, chegando bem próximo dos
parâmetros dos melhores códigos quasi-cíclicos conhecidos.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 38

3.2 Códigos Quase-Cíclicos sobre Hq utilizando a distância


Na construção dos códigos quase-cíclicos da seção anterior, consideramos a norma dos ele-
mentos de Hq . Porém, podemos utilizar o mesmo método de construção para a matriz G e
para obtermos a matriz seguinte, utilizarmos a distância até um elemento fixo de Hq .
Consideremos então a matriz G obtida em (3.2). Fixado um elemento zuv ∈ Hq , vamos
construir uma matriz Dluv (G) a partir de G tomando as entradas da matriz Dluv (G) como
sendo 1 se d(zij , zuv ) = αl e 0 caso contrário.

Teorema 3.6. Se l 6= ∗, 0, então o peso de cada linha da matriz Dluv (G) é 2r + 1.

Demonstração: De fato, segue diretamente do Teorema 2.4, uma vez que o grafo X2r (δ, αl )
é um grafo (q + 1)−regular se αl 6= 0, 1.

Proposição 3.7. Entre as colunas não nulas de cada bloco da matriz Dluv (G), uma coluna
possui peso 1 e as demais possuem peso 2.

Demonstração: De fato, vamos analisar o primeiro bloco da matriz, assim como no caso da
norma. Primeiramente, note que se zij = x + δy e zuv = m + δn então

d(zij , zuv ) = αl ⇔ αl ny = (x + m)2 + (x + m)(y + n) + α(y + n)2 .

Agora, m = αu e n = αv são fixos, e se a k-ésima coluna é não nula então y = αk−1 também
é fixo, o que nos deixa com uma equação do segundo grau em uma variável. Tal equação
l
possui apenas uma solução se y = n, neste caso teremos αl n2 + m2 = x2 ⇔ (α 2 v + m)2 =
l
x2 ⇔ x = α 2 v + u, caso contrário a equação terá duas soluções, provando assim o resultado.

Como consequência deste resultado temos:

Corolário 3.8. O posto da matriz Dluv (G) é 2r .

Demonstração: De fato, considere a submatriz Ak formada tomando-se todas as colunas


com apenas um elemento não nulo. Então, como esta é uma matriz circular, seu posto é 2r
e consequentemente a matriz Dluv (G) também terá posto 2r .

Proposição 3.9. A matriz Dluv (G) possui 2r (2r−1 − 2) colunas nulas.


Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 39

Demonstração: De fato, pela Proposição 3.7, entre as colunas não nulas de cada bloco, uma
possui peso 1 e as outras peso 2. Agora, pelo Teorema 3.6, cada bloco tem 2r + 1 coordenadas
não nulas, o que nos fornece por bloco, 1 coluna com peso 1 e 2r−1 colunas com peso 2. Logo,
em cada bloco temos
2r − 1 − (1 + 2r−1 ) = 2r−1 − 2

colunas nulas e como temos 2r blocos, então a matriz possui 2r (2r−1 − 2) colunas nulas.

Vamos denotar por Dluv (G0 ) a matriz obtida ao se excluir as colunas nulas de Dluv (G).
Então conseguimos o seguinte resultado.

Teorema 3.10. Seja C o código linear binário cuja matriz geradora é a matriz Dluv (G0 ) obtida
nos resultados anteriores. Então C é um [2r (1 + 2r−1 ), 2r , 2r ]-código quasi-cíclico.

Demonstração: A demonstração é análoga ao caso da norma. Pelo Teorema 3.6 temos que
ω(C ) ≤ 2r + 1. Porém, ao somarmos todas as linhas, como existe uma coluna com peso 1 em
cada bloco, e as demais com peso 2, obteremos um elemento com peso 2r , portanto ω(C ) ≤
2r . Agora, considerando-se novamente as matrizes Ak , obtemos ω(C ) ≥ 2r , provando-se o
resultado.

Exemplo 3.4. Considere o corpo F8 = {α∗ = 0, α0 = 1, α2 , α3 , α4 , α5 , α6 } onde α é raíz do po-


linômio x3 +x2 +1, irredutível sobre F2 e tomemos θ raíz de x2 +x+α irredutível sobre F8 . En-
tão H8 = {zij = αi +θαj | j 6= ∗} = {z∗0 , z∗1 , z∗2 , z∗3 , z∗4 , z∗5 , z∗6 , z00 , z01 , z02 , z03 , z04 , z05 , z06 , z10 , z11 , z12 ,
z13 , z14 , z15 , z16 , z20 , z21 , z22 , z23 , z24 , z25 , z26 , z30 , z31 , z32 , z33 , z34 , z35 , z36 , z40 , z41 , z42 , z43 , z44 , z45 , z46 ,
z50 , z51 , z52 , z53 , z54 , z55 , z56 , z60 , z61 , z62 , z63 , z64 , z65 , z66 }. Então teremos
 

C∗ C0 C1 C2 C3 C4 C5 C6 
C6 C∗ C0 C1 C2 C3 C4 C5
 
 
 
C5 C6 C∗ C0 C1 C2 C3 C4
 
 
 
C4 C5 C6 C∗ C0 C1 C2 C3
 
 
G=  
C3 C4 C5 C6 C∗ C0 C1 C2
 
 
 
C2 C3 C4 C5 C6 C∗ C0 C1
 
 
 
C1 C2 C3 C4 C5 C6 C∗ C0
 
 
 
C0 C1 C2 C3 C4 C5 C6 C∗
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 40

C∗ = [z∗0 z∗1 z∗2 z∗3 z∗4 z∗5 z∗6 ]


C0 = [z00 z01 z02 z03 z04 z05 z06 ]
C1 = [z10 z11 z12 z13 z14 z15 z16 ]
C2 = [z20 z21 z22 z23 z24 z25 z26 ]
onde
C3 = [z30 z31 z32 z33 z34 z35 z36 ]
C4 = [z40 z41 z42 z43 z44 z45 z46 ]
C5 = [z50 z51 z52 z53 z54 z55 z56 ]
C6 = [z60 z61 z62 z63 z64 z65 z66 ]

Agora, se escolhermos o elemento z∗0 = θ e na matriz G colocarmos 1 no lugar do elemento


zij se d(zij , z∗0 ) = α e zero caso contrário, obteremos os blocos Ci dados por
C∗ = [0 0 0 0 0 0 0]
C0 = [0 0 1 0 0 1 0]
C1 = [0 0 0 0 1 0 0]
C2 = [0 0 1 0 1 0 0]
.
C3 = [0 0 0 0 0 0 0]
C4 = [1 0 0 1 0 0 0]
C5 = [0 0 0 1 0 1 0]
C6 = [0 0 0 0 0 0 0]
Assim, excluindo a segunda e a sétima coluna em cada bloco, obtemos a matriz D1∗0 (G0 )
com 40 colunas não nulas, cada linha tendo peso 9, à cada 5 colunas uma coluna com peso
1 e 4 com peso 2, o que nos deixa com um código com peso 8, confirmando os resultados
anteriores.

3.3 Decodificação
Vejamos então como decodificar nosso código para ambos os casos.
Suponha que temos o código C com paramêtros [22r−1 , 2r − 1, 2r ] construído como expli-
cado ao longo da primeira seção deste capítulo, ou seja, estamos utilizando a norma. Agora,
note que o peso de cada coluna da matriz G0 é 2 e considere as 2r−1 matrizes circulares Ak ,
1 ≤ k ≤ 2r−1 obtidas a partir das primeiras 2r−1 colunas de G0 . Temos que em cada uma
destas matrizes, se na primeira coluna temos as posições referentes às linhas Li e Lj não
nulas, 0 ≤ i, j ≤ 2r − 1, então na próxima coluna teremos as posições referentes às linhas
L(i+1)mod2r e L(j+1)mod2r sendo não nulas, e assim sucessivamente para as demais colunas de
cada uma destas matrizes circulares.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 41

Agora suponha que a palavra c foi codificada via matriz G0 e que recebemos a palavra
r = c + e, onde e foi o erro introduzido no decorrer da transmissão. Vamos representar cada
uma das 2r (2r − 1) entradas da palavra r por rxy onde x representa o bloco Cx e y a coluna
deste bloco, referente à primeira linha da matriz G0 . Assim, para cada matriz Ak , tomaremos
uma sequência de coordenadas da palavra r, sendo esta sequência dada por r∗k , r0k , r1k , . . . ,
r(2r −2)k e resolveremos o sistema




 (Li + Lj )mod2 = r∗k



 (L(i+1)mod2r + L(j+1)mod2r )mod2 = r0k
.. .. ..



 . . .

(L(i+2r−1 )mod2r + L(j+2r−1 )mod2r )mod2 = r(2r −2)k

Note que resolver tal sistema é muito simples, uma vez que nossa matriz Ak tem 2r linhas
e posto 2r−1 , ao somarmos todas as linhas temos a palavra nula. Assim, se r é combinação de
l linhas de N (G), também podemos escrever r como combinação das linhas complementares,
uma vez que ao somarmos as l linhas com as suas complementares o resultado deve ser a
palavra nula. Portanto, tanto faz a escolha que fazemos para começar a resolver o sistema.
Por exemplo, se r∗k = 1, tanto faz tomarmos Li = 1 e Lj = 0 ou Li = 0 e Lj = 1 e a
partir da solução escolhida para a primeira linha do sistema, determinamos as demais. Note
que Li = 1 e Lj = 0 significa que estamos tomando a linha i para escrever a combinação
linear que resulta na palavra r e não estamos tomando a linha j. Assim escolhemos uma das
opções e vamos substituindo nas demais linhas do sistema de forma a resolvermos o sistema.
Além disso, não precisamos, a princípio, resolver todos os sistemas. Podemos escolher um k
e resolver.
Agora, se para o k escolhido o sistema for possível e possuir apenas duas soluções, obtenha
a palavra c0 que é combinação das linhas de G0 referentes à uma das soluções do sistema e
j r k j r k
calcule c0 + r. Se ω(c0 + r) ≤ 2 2−1 , a palavra enviada foi c0 . Se ω(c0 + r) > 2 2−1 , ou
o sistema é impossível, repita o processo para outro k. Temos ainda a opção do sistema
possuir mais que duas soluções, neste caso encontramos as possíveis soluções e verificamos
j r k
qual destas soluções satisfaz ω(c0 + r) ≤ 2 2−1 ou escolhemos outro k.
j k j k
2r −1 2r −1
Como a distância mínima é 2r , temos que C corrige até 2
erros. Agora, <
j2 r k
r−1 r−1 0 2 −1
2 , e como temos 2 colunas em cada bloco da matriz G , conseguiremos corrigir até 2
j r k
erros. Se o sistema for impossível para todos os valores de k, ou possível mas ω(c0 +r) > 2 2−1
j r k
para toda solução do sistema, então ocorreram mais que 2 2−1 erros e não conseguimos
determinar a palavra enviada.
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 42

Exemplo 3.5. Considere a matriz G0 obtida no Exemplo 3.3, ou seja,


 

0 1 0 0 1 0 1 1 
1 1 0 1 0 0 1 0
 
G0 =
 
 
1 0 1 1 0 1 0 0
 
 
 
0 0 1 0 1 1 0 1

e suponha que a palavra r = [0 1 0 0 0 1 1 0] foi recebida.


Identificamos r = [r∗1 r∗2 r01 r02 r11 r12 r21 r22 ] e tomando k = 1 vemos que na primeira
0
coluna
 de G as linhas L1 e L2 são não nulas, logo montamos o sistema:




(L1 + L2 )mod2 = 0

 (L + L )mod2 = 0

2 3




(L3 + L0 )mod2 = 0

 (L + L )mod2 = 1

0 1
Assim, tomando L1 = 1 e L2 = 1 devemos ter L3 = 1, L0 = 1 e L1 = 0 um absurdo, logo
o sistema é impossível e ocorreu um erro em ao menos uma destas posições.
Agora tomando k = 2, obtemos o sistema





(L0 + L1 )mod2 = 1

 (L + L )mod2 = 0

1 2




(L2 + L3 )mod2 = 1

 (L + L )mod2 = 0

3 0
Então, se tomarmos L0 = 1 e L1 = 0 na primeira linha, obtemos L2 = 0, L3 = 1 e
L0 = 1, ou seja, sistema possível e obtemos a palavra c0 = L0 + L3 = [0 1 1 0 0 1 1 0].
Note que então temos r + c0 = [0 0 1 0 0 0 0 0] e como ω(r + c0 ) ≤ 1, a palavra enviada foi
e = [0 1 1 0 0 1 1 0].
Se a matriz foi construída utilizando a distância, então o procedimento se torna o mesmo
se o k escolhido for referente à uma coluna com peso 2.

3.4 Melhorando a distância


Como vimos nas seções anteriores deste capítulo, conseguimos construir códigos lineares
sobre o Semi-Plano Superior Finito Hq utilizando tanto a norma como a distância até um
elemento fixado e para isto escolhemos um elemento do corpo F2r para tomar a entrada da
matriz igual 1 se a norma ou distância até o elemento fixado for igual ao elemento do corpo
escolhido ou zero caso contrário. Com isto, utilizando a norma, vimos que obtemos um código
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 43

quasi-cíclico C com parâmetros [22r−1 , 2r − 1, 2r ] e se utilizarmos a distância, obtemos um


código quasi-cíclico C com parâmetros [22r−1 + 2r , 2r , 2r ].
Note que em ambos os métodos, escolhemos um elemento e apenas um elemento do corpo
F2r e neste caso restringimos a distância mínima a ser no máximo 2r . Porém, se ao invés de
escolhermos apenas um elemento, tomarmos mais elementos, podemos melhorar a distância,
porém, aumentaremos o comprimento do nosso código.
Se estivermos utilizando a norma para gerar a matriz N (G), então, se escolhermos colocar
1 na entrada cuja norma é igual a qualquer elemento de um conjunto com t elementos, então
nossa distância passará a ser limitada superiormente pelo número 2r .t.
A questão que fica agora é: que número t escolher de forma a se obter o melhor código
possível?
Em [35] Tiu e Wallace escolhem colocar 1 se a norma é um resíduo quadrático e 0 caso
contrário. Como provado em [23], metade dos elementos de um corpo com característica
ímpar são resíduos quadrático, logo Tiu e Wallace estão escolhendo o número t como sendo
t = 2q .
Naturalmente seguiremos a mesma idéia, porém como todo elemento é um resíduo quadrá-
tico em corpos com característica par, devemos escolher os elementos de outra forma. Com a
ajuda do professor Emerson Vitor Castelani, o qual escreveu um algoritmo no Software livre
Julia, para nos ajudar a determinar os elementos que fornecem a melhor distância possível
para alguns exemplos criados, somos levados a crer que este número t deve ser t = 2r−1 ou
t = 2r−1 − 1.
Na escolha destes números, vamos tomar os t elementos de forma que uma coluna ao
menos, tenho peso 2, garantindo assim a dimensão do código em 2r − 1. Também, não
tomaremos todos os elementos de uma mesma coluna, ou seja, em todas as colunas o peso
deve ser menor que 2r − 2.
Para construirmos alguns exemplos, utilizamos o software livre GAP para fazermos as
operações sobre os corpos finitos.

Exemplo 3.6. Vamos construir o corpo F16 com o polinômio x4 + x3 + 1 irredutível sobre F2 .
Em seguida encontraremos todas as soluções de N (x + θy) = αi para ∗ < 0 < i < 14 no GAP
conforme apresentado no apêndice A e construiremos a matriz G.
Agora, a partir da matriz G, utilizaremos o software Julia com as linhas de comando
apresentadas no apêndice A, elaboradas pelo professor Emerson, para obtermos todas as dis-
tâncias possíveis para escolhas de 8 dos 15 elementos não nulos de F16 para construirmos a
matriz N (G), e vemos que se escolhermos 8 elementos, aqueles que nos fornecem a melhor
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 44

distância, a qual é 100, são os elementos

1, α, α5 , α6 , α7 , α8 , α9 , α13 .

Obtemos ainda que se tomarmos apenas 7 elementos, também conseguimos a distância


100 e os elementos que podem ser escolhidos são:
1, α, α2 , α4 , α5 , α7 , α9 − [240, 15, 100]
α, α2 , α3 , α4 , α5 , α12 , α13 − [240, 15, 100]

Com este exemplo vemos que podemos melhorar a distância do nosso código, porém
teremos que utilizar todas as colunas, aumentando então o comprimento do nosso código.
Com isso, ficamos com a distância mínima muito próxima da distância do melhor código
binário quasi-cíclico conhecido com mesmo comprimento e dimensão que neste caso é 104.
Com o exemplo para q = 8, obtemos um código binário quasi-cíclico de comprimento 56,
dimensão 7 e distância mínima 24 se escolhemos 3 ou 4 elementos para construirmos a matriz
N (G). Os elementos escolhidos para obtermos estes resultados neste caso são:
3 elementos :
1, α, α3 − [56, 7, 24]
1, α2 , α4 − [56, 7, 24]
1, α3 , α4 − [56, 7, 24]
1, α3 , α5 − [56, 7, 24]
1, α5 , α6 − [56, 7, 24]
α, α2 , α3 − [56, 7, 24]
α, α2 , α4 − [56, 7, 24]
α, α4 , α6 − [56, 7, 24]
α2 , α3 , α4 − [56, 7, 24]
α3 , α4 , α6 − [56, 7, 24]

4 elementos
1, α, α3 , α5 − [56, 7, 24]
1, α, α4 , α6 − [56, 7, 24]
1, α2 , α4 , α6 − [56, 7, 24]
1, α4 , α5 , α6 − [56, 7, 24]
α, α2 , α3 , α4 − [56, 7, 24]
α, α3 , α4 , α6 − [56, 7, 24]
Capítulo 3. Códigos Lineares Quase-Cíclicos sobre Hq 45

α3 , α4 , α5 , α6 − [56, 7, 24]

Os exemplos mostram-se promissores com relação aos códigos binários já existentes. Po-
rém ainda não conseguimos uma relação entre os elementos que devem ser escolhidos.
Para o caso onde construímos a matriz G utilizando a distância, podemos fazer o mesmo
procedimento. Porém vemos que se escolhermos um número ímpar de elementos, a distância
será sempre fixa em q. Assim, podemos acrescentar como sendo 1 também a entrada cuja
distância até o elemento fixado é 0 ou 1, porém fazendo isto, reduzimos a dimensão do código
e também conseguimos obter os mesmos parâmetros do caso utilizando a norma.
Uma desvantagem de melhorarmos a distância desta forma é que o método de decodifi-
cação também não poderá mais ser utilizado, sendo necessário a busca por outro método.
Capítulo 4

Códigos Não-Lineares e Não-Binários


sobre Hq

Neste capítulo construiremos uma nova família de códigos sobre Hq porém, diferentemente
do capítulo anterior, estes códigos não são lineares, não são binários e q pode ser ímpar.
Além disso, aqui não utilizaremos a notação do capítulo anterior.

4.1 Construção
Seja Hq construído como em (2.1), Γ ⊆ GL(2, Fq ) e D um domínio fundamental para a
ação de Γ sobre Hq . Considerando a ordem apresentada em (2.2), iremos ordenar os elementos
de Hq da seguinte forma: dados z = x + δy, w = u + δv ∈ Hq , diremos que z < w se, e
somente se, x < u ou y < v caso x = u.
Agora, seja D um domínio fundamental para a ação de Γ sobre Hq e consideremos os
elementos de D ordenados em ordem crescente, ou seja, sejam z1 < z2 < · · · < zn os
elementos de D e tomemos o vetor c0 = [z1 , z2 , . . . , zn ], onde |D| = n. Tal vetor será o vetor
gerador de nosso código.
Para obtermos as palavras do código, tomaremos γ ∈ Γ e aplicaremos em todas as entradas
de c0 . Note, pelos exemplos no Capítulo 2, que podemos ter γi (c0 ) = γj (c0 ), para isto, basta
que γi−1 ◦ γj = c.Id. Então, tomaremos como palavras do código todos os elementos distintos
obtidos ao se aplicar γ ∈ Γ em c0 .

Exemplo 4.1. Consideremos o Exemplo 2.5 no capítulo 2. Encontramos que


DΓ (z0 ) = {α + δ, α2 + δ, δ, 1 + δ} é um domínio fundamental para a ação de Γ = K sobre
H4 . Ordenando estes elementos teremos c0 = [δ, 1 + δ, α + δ, α2 + δ] e então, aplicando os

46
Capítulo 4. Códigos Não-Lineares e Não-Binários sobre Hq 47

elementos de Γ em c0 obtemos as palavras distintas do código dadas por:


c1 = [δ, 1 + δ, α + δ, α2 + δ]
c2 = [δ, 1 + δ, α2 + α2 δ, α2 δ]
c3 = [δ, 1 + δ, 1 + α2 δ, α + α2 δ]
c4 = [δ, 1 + δ, 1 + αδ, α2 + αδ]
c5 = [δ, 1 + δ, , α + αδ, αδ]

Consideremos agora o código com parâmetros (n, M, d) criado, onde n é o comprimento,


M o número de palavras do código e d a distância mínima do código, utilizamos a distância
de Hamming. Vejamos alguns resultados sobre tais parâmetros.
Primeiramente, o comprimento do código será dado por n = |D|. Agora, temos pelo
Lema de Burnside, para um grupo finito Γ agindo em Hq com Fix(γ) = {z ∈ Hq |γ(z) = z},
1 X
que n = |Γ \Hq | = |Fix(γ)|.
|Γ | γ∈Γ
Assim, utilizaremos as classes de conjugação de GL(2, Fq ) apresentadas no Proposição
1.19 e determinaremos Fix(γ). Pela Proposição1.19 conseguimos construir a seguinte tabela:

Tabela 4.1: Tabela de Classes de Conjugação de GL(2, Fq )


#elementos
Tipo Representante
" #
# Classes na classe
a 0
1 , a ∈ Fq , a 6= 0 q−1 1
"
0 a #
a 1
2 , a ∈ Fq , a 6= 0 q−1 q2 − 1
"
0 a #
a 0 1
3 , a, b ∈ Fq , a 6= b 2
(q − 1)(q − 2) q(q + 1)
"
0 b #
0 wq+1
4 , w ∈ Fq2 \Fq 12 q(q − 1) q(q − 1)
−1 w + wq

Em [34] Terras apresenta uma tabela para o caso q ímpar. Porém, como neste trabalho
utilizamos ambos os casos, consideraremos a tabela acima.

Proposição 4.1. Seja γ ∈ GL(2, Fq ) e Hq dado em (2.1). Então







q(q − 1) se γ é do tipo 1
|Fix(γ)| = 0 se γ é do tipo 2 ou 3


 2

se γ é do tipo 4
Capítulo 4. Códigos Não-Lineares e Não-Binários sobre Hq 48

Demonstração: De fato, se γ é do tipo 1 então γ = a.Id, logo γ(z) = az a


= z, ou seja,
Fix(γ) = Hq ⇒ |Fix(γ)| = q(q − 1). Se γ é do tipo 2, então γ(z) = z ⇔ az + 1 = az, a
qual não possui solução, logo |Fix(γ)| = 0. Analogamente, se γ é do tipo 3, então γ(z) =
z ⇔ az = bz que não possui solução, uma vez que a 6= b. Para γ do tipo 4 temos que

γ(z) = z ⇔ z 2 − (w + wq )z + wq+1 = 0. Agora, em (2.1), se q é ímpar, tomamos δ = ς,

onde ς é um não quadrado, ou seja, x2 − ς é irredutível sobre Fq , logo ς ∈ Fq2 \Fq , e assim
√ √
podemos considerar w = ς de onde segue que w + wq = 0, wq+1 = ς e assim, ± ς são

as soluções da equação. Como ± ς ∈ Hq , temos que |Fix(γ)| = 2. Analogamente, se q é
par, então em (2.1) tomamos δ = θ onde θ é raíz do polinômio irredutível x2 + x + α sobre
Fq , ou seja, δ ∈ Fq2 \Fq , assim, tomando w = δ, teremos w + wq = 1, wq+1 = α, logo δ e δ q
satisfazem z 2 − (w + wq )z + wq+1 = 0, como δ, δ q ∈ Hq , então |Fix(γ)| = 2

Como consequência deste resultado temos:

Corolário 4.2. Um domínio fundamental D para a ação de Γ = GL(2, Fq ) agindo sobre Hq


contém apenas um elemento.

Demonstração: De fato, pelo Lema de Burnside e da tabela acima temos:


1 X
|D| = |Γ \Hq | = |Fix(γ)| =
|Γ | γ∈Γ
1 1
 
= 2 q(q − 1)(q − 1) + 0 + 0 + q(q − 1)q(q − 1)2 =
(q − 1)(q 2 − q) 2
(q − 1)2 (q 2 + q)
= =1
(q 2 − 1)(q 2 − q)

Vemos pelo Corolário 4.2 que não obtemos um bom código ao tomarmos Γ = GL(2, Fq )
agindo sobre Hq , visto que teremos n=1, mesmo se consideramos Γ ⊂ GL(2, Fq ), os parâme-
tros do código obtido não serão bons, visto que da forma como o código foi construído, o
número de palavras será baixo.

Exemplo 4.2. Consideremos os subgrupos


  
 1 a  
Γ1 = N =  , a ∈ Fq
 0 1 

Γ2 = K = {g ∈ GL(2, Fq ) | g(δ) = δ},

então, utilizando os resultados da Tabela 4.1 e o Lema de Burnside, sendo D1 e D2 os


Capítulo 4. Códigos Não-Lineares e Não-Binários sobre Hq 49

respectivos domínios fundamentais, teremos que |D1 | = |Γ1 \Hq | = q − 1 e |D2 | = |Γ2 \Hq | = q.
Agora, como Hq possui q(q −1) elementos, então teremos q palavras no código tomando-se D1
como domínio fundamental e distância mínima q, visto que neste caso, nenhum elemento de
D1 é fixado por elementos de Γ1 = N , logo o número de palavras é dado por M = q(q−1) q−1
=q
e tomamos apenas as palavras distintas, então temos que γi (zk ) 6= γj (zk ), logo d = q − 1.
Assim, conseguimos um código com parâmetros (q − 1, q, q − 1).
Se considerarmos D2 como domínio fundamental, como visto, temos dois elementos que
são fixados por γ do tipo 4, logo o número de palavras será M = q(q−1)−2
q−2
e neste caso a distân-
cia mínima será d = q − 2. Assim, conseguimos um código com parâmetros (q, q(q−1)−2
q−2
, q − 2),
o que se confirma no Exemplo 4.1.
O exemplo acima nos mostra que os parâmetros de fato não são bons devido ao baixo
número de palavras no código. Podemos melhorar tal número de palavras para até n − 1
vezes o número original, mantendo o comprimento n e distância mínima d obtidos. Aqui
estamos considerando a distância de Hamming. Para se obter tal aumento no número de
palavras, podemos considerar o vetor gerador do código c0 = [z1 , z2 , . . . , zn ] e obter mais
n − 2 vetores fazendo-se um "shift"para a direita em cada coordenada, obtendo-se os vetores
c1 = [zn , z1 , . . . , zn−1 ], . . . , cn−2 = [z2 , z3 , . . . , z1 ], em seguida, aplicamos o procedimento de
criação do código nesses vetores. Assim, teremos M (n − 1) palavras no novo código obtido.
Veremos mais adiante um método de decodificação para o primeiro caso, porém tal método
é perdido se fizermos tal procedimento no aumento do número de palavras, como veremos.
Contudo, se considerarmos Γ -Tesselações, por exemplo, Γ = GL(2, Fq ) agindo sobre Hq2
então teremos resultados melhores nos parâmetros e poderemos manter o método de decodi-
ficação que veremos.
Para analisarmos o caso de Γ -Tesselações, vamos considerar os corpos finitos Fq e Fq2 =
Fq (δ) onde δ é dado como em (2.1). Note que agora, para construirmos Hq2 , precisaremos
de um elemento δ1 raíz de um polinômio irredutível x2 + t1 x + n1 sobre Fq2 se q é par ou

δ1 = ς1 se q é ímpar, onde ς1 é um não quadrado em Fq2 , ou seja, Hq2 = {x + δ1 y | x, y ∈
Fq2 = Fq (δ), y 6= 0}.

Proposição 4.3. Sejam γ ∈ GL(2, Fq ) e Hq2 como acima. Então



 q 2 (q 2 − 1) se γ é do tipo 1
|F ix(γ)| =
 0 se γ é do tipo 2, 3 ou 4

Demonstração: De fato, a demonstração é essencialmente a mesma da Proposição 4.1. Porém


agora, como |Hq2 | = q 2 (q 2 − 1), se γ é do tipo 1, então |Fix(γ)| = q 2 (q 2 − 1) e como
Capítulo 4. Códigos Não-Lineares e Não-Binários sobre Hq 50

Hq2 = {x + δ1 y | x, y ∈ Fq2 = Fq (δ), y 6= 0}, os pontos fixados para γ do tipo 4, continuam


sendo ±δ para q ímpar e δ, δ q para q par, os quais não pertencem à Hq2 . Logo, |Fix(γ)| = 0.

Lema 4.4. Seja D um domínio fundamental para a ação de Γ = GL(2, Fq ) agindo sobre Hq2 .
Então
|D| = |Γ \Hq2 | = q

Demonstração: O resultado segue diretamente do Lema de Burnside e da Proposição 4.3.


1
Segue destes resultados que |D| = 2 [(q − 1)q 2 (q 2 − 1)] = q
(q − 1)(q − q)
2

Teorema 4.5. Sejam D um domínio fundamental para a ação de Γ = GL(2, Fq ) sobre Hq2
e c0 = [z1 , z2 , . . . , zn ] o vetor com elementos de D em ordem crescente. Então o código C
obtido tomando-se os elementos distintos, após aplicarmos os elementos de Γ em c0 , possui
parâmetros (n = q, M = q(q 2 − 1), d = q).

Demonstração: De fato, o comprimento n = q decorre diretamente do Lema 4.4. Para o


número de palavras, como tomamos D um domínio fundamental, temos que |Hq | = q 2 (q 2 − 1)
2 2
e, pela Proposição 4.3, segue que M = q (qq −1) = q(q 2 − 1). Para a distância mínima temos
que se γ ∈ Γ , então γ −1 ∈ Γ . Assim, suponha que existem γi , γj ∈ Γ com γi (zk ) = γj (zk ) para
algum zk ∈ D, então zk é fixado por γi−1 ◦ γj , e pela Proposição 4.3 temos que γi−1 ◦ γj = c.Id,
logo γi−1 ◦ γj fixa todos os elementos de D, ou seja, γi (zk ) = γj (zk ) ∀ zk ∈ D e assim
γi (c0 ) = γj (c0 ), absurdo pois tomamos as palavras distintas. Portanto a distância mínima
será d = q.

Note que novamente, neste caso, podemos aumentar o número de palavras do código para
até q − 1 vezes o número original fazendo o "shift"q − 1 vezes para a direita nas coordenadas
das palavras do código original. Porém, assim como mencionado anteriormente, perdemos o
método de decodificação que será apresentado a seguir.

4.1.1 Decodificação
Para decodificarmos uma palavra recebida r, utilizaremos a Proposição 2.7. Assim, sejam
e = [e1 , e2 , . . . , en ] e r = [r1 , r2 , . . . , rn ] as palavras enviada e recebida respectivamente. Note
que e = γ(c0 ), ou seja, ei = γ(zi ), i = 1, 2, . . . , n para alguma γ ∈ Γ . Logo, pela Proposição
0 0 0 0
2.7 basta tomarmos ri , rj , rk e determinarmos γ tal que γ (zi ) = ri , γ (zj ) = rj , γ (zk ) =
0
rk . Em seguida verificamos se γ ∈ GL(2, Fq ), em caso negativo, ao menos um erro ocorreu
Capítulo 4. Códigos Não-Lineares e Não-Binários sobre Hq 51

0 0
e tomamos outra combinação de ri , rj , rk . Se γ ∈ GL(2, Fq ), verificamos se ω(γ (c0 ) − r) ≤
j k
d−1
2
, onde ω(w) é o peso de Hamming de w. Em caso afirmativo a palavra enviada foi
0
e = γ (c0 ). Caso contrário as três coordenadas estão erradas e escolhemos outros elementos
ri , rj , rk diferentes destes. Em seguida realizamos o procedimento novamente. Note que, para
j k
que este método consiga corrigir até d−1 2
erros, precisamos tomar q ≥ 4 se n = d = q ou
q ≥ 5 se d = q − 2, pois neste caso existirão ao menos três elementos que foram enviados
corretamente e pela unicidade de γ dada na Proposição 2.7, conseguiremos determinar a
aplicação γ correta.
Utilizando este método, teremos no máximo q(q−1)(q−2)
6
comparações, se precisarmos fazer
todas as combinações de n = q elementos tomados 3 a 3.
Capítulo 5

Considerações Finais

Ao longo deste trabalho, estudamos o Semi-Plano Superior Finito proposto por A. Terras
[13] e encontramos duas classes de códigos corretores de erros obtidos sobre este modelo. A
primeira classe, dos códigos lineares e binários obtidos no Capítulo 3, considerando-se Hq
com q par e a segunda classe, dos códigos obtidos no Capítulo 4 considerando-se Hq com q
podendo ser par ou ímpar.
No que se refere aos códigos lineares obtidos, vemos que os parâmetros se aproximam
muito dos melhores códigos existentes com mesmo comprimento e dimensão quando toma-
mos 2q elementos para considerar na construção do código. Assim, essa classe de códigos
mostra-se promissora. Porém, como vimos, determinar quais são esses elementos que devem
ser escolhidos no caso geral ainda não foi possível. Além disso, perdemos o método de de-
codificação proposto quando aumentamos o número de elementos tomados. Logo, sugerimos
como possíveis trabalhos futuros, determinar uma ligação, caso exista, entre os elementos
que devem ser escolhidos bem como determinar um método de decodificação para o nosso
código, bem como para o código apresentado por Tiu e Wallace [35], visto que este também
não possui um método de decodificação específico.
Quanto aos códigos obtidos no Capítulo 4, não conseguimos comparar tais códigos com
outros devido às suas especificidades. Este códigos têm seus parâmetros facilmente determi-
nados, inclusive quanto à distância mínima, o que é uma vantagem. Além disso, o método de
decodificação proposto, apresenta um número reduzido de comparações em relação ao mé-
todo ML. Novamente, ao aumentarmos o número de palavras, perdemos o método utilizado
na decodificação. Assim como sugestão de trabalho futuro, propomos determinar um método
utilizando as propriedades geométricas de Hq para decodificar o código após o aumento do

52
Capítulo 5. Considerações Finais 53

número de palavras.
Vemos então que o modelo de Semi-Plano Superior Finito pode ser utilizado na construção
de códigos corretores de erros com bons parâmetros e que este ainda pode ser utilizado dentro
da teoria de códigos.
Apêndice A

Linhas de Comando GAP e Julia

Com mencionado no Capítulo 3, ainda não conseguimos dizer quais os elementos tomar na
melhora da distância através de uma relação entre os mesmos, assim, apresentamos aqui as
linhas de comando utilizadas no GAP para determinar a matriz G e também as linhas de
comando utilizadas no Julia para determinar quais elementos tomar.

H16

gap > x := X(GF (2), ”x”);


x
gap > def in := x4 + x3 + 1; ; F actors(def in);
[x4 + x3 + Z(2)0 ]
gap > RootsOf U P ol(GF (16), def in);
[Z(24 )7 , Z(24 )11 , Z(24 )13 , Z(24 )14 ]
gap > a := last[4];
Z(24 )14
gap > res1 := List(Elements(GF (16)), x− > [x, F iltered(Elements(GF (16)), y− > x2 +
x ∗ y + a ∗ y 2 = Z(2)0 )]);
gap > resa := List(Elements(GF (16)), x− > [x, F iltered(Elements(GF (16)), y− > x2 +
x ∗ y + a ∗ y 2 = a)]);
..
.
gap > resa14 := List(Elements(GF (16)), x− > [x, F iltered(Elements(GF (16)), y− >
x2 + x ∗ y + a ∗ y 2 = a14 )]);

54
Apêndice A. Linhas de Comando GAP e Julia 55

Em seguida, determinamos os elementos como pares (x, y) no GAP:

gap > Concatenation(List(res1, x− > List(x[2], y− > [x[1], y])));

[[0∗Z(2), Z(24 )8 ], [Z(2)0 , 0∗Z(2)], [Z(2)0 , Z(24 )], [Z(22 )2 , Z(24 )2 ], [Z(22 )2 , Z(24 )9 ], [Z(24 ), Z(24 )3 ],
[Z(24 ), Z(24 )6 ], [Z(24 )4 , Z(24 )], [Z(24 )4 , Z(24 )2 ], [Z(24 )8 , Z(24 )8 ], [Z(24 )8 , Z(24 )12 ], [Z(24 )9 , Z(24 )3 ],
[Z(24 )9 , Z(24 )12 ], [Z(24 )11 , Z(24 )4 ], [Z(24 )11 , Z(24 )6 ], [Z(24 )13 , Z(24 )4 ], [Z(24 )13 , Z(24 )9 ]]
..
.
gap > Concatenation(List(resa14, x− > List(x[2], y− > [x[1], y])));

[[0∗Z(2), Z(24 )], [Z(24 ), Z(22 )], [Z(24 ), Z(24 )], [Z(24 )2 , Z(22 )], [Z(24 )2 , Z(24 )11 ], [Z(24 )3 , Z(22 )2 ],
[Z(24 )3 , Z(24 )2 ], [Z(24 )4 , Z(24 )12 ], [Z(24 )4 , Z(24 )14 ], [Z(24 )6 , Z(24 )2 ], [Z(24 )6 , Z(24 )12 ], [Z(24 )8 , 0∗
Z(2)],
[Z(24 )8 , Z(24 )9 ], [Z(24 )9 , Z(24 )11 ], [Z(24 )9 , Z(24 )14 ], [Z(24 )12 , Z(22 )2 ], [Z(24 )12 , Z(24 )9 ]]

Agora tomamos os blocos Ci , e construindo a matriz G, podemos utilizar o algoritmo


criado pelo professor Emerson no software Julia, para obtermos os elementos que devem ser
escolhidos de forma a obtermos a melhor distância possível.
As linhas de comando do algoritmo são:

usingCombinatorics
include(”arvore.jl”)
f unctionsomamod2(ind, mat, n)
vs = zeros(n)
f oriinind
vs = vs + mat[i, :]
end
returnsum(mod.(vs, 2))
end

f unctionbusca(ent, mat)
(m, n) = size(mat)
saida = zeros(m, n)
f oriinent
Apêndice A. Linhas de Comando GAP e Julia 56

f ork = 1 : m
f orj = 1 : n
if i == mat[k, j]
saida[k, j] = 1
end
end
end
end
lista = buildtree(m)
aux_vsum = 0.0
vsum = 2000.0
f orelinlista
vi = f ind(el)
aux_vsum = somamod2(vi, saida, n)
if vsum > aux_vsum&&aux_vsum > 0.0
vsum = aux_vsum
end
end
returnvsum
end

f unctionmain(nc, mat)
v = [0, 1, ”a”, ”a2”, ”a3”, ”a4”, ”a5”, ”a6”, ”a7”, ”a8”, ”a9”, ”a10”, ”a11”, ”a12”, ”a13”, ”a14”]
output = ”output_combinations_$nc.dat”
outputg100 = ”output_combinations_g100_$nc.dat”
g = open(output, ”w”)
g100 = open(outputg100, ”w”)
list = combinations(v, nc)
f orcombinlist
sol = busca(comb, mat)
println(comb, , sol)
println(g, comb, , sol)
if sol >= 100
println(g100, comb, , sol)
end
Apêndice A. Linhas de Comando GAP e Julia 57

end
close(g)
close(g100)
end
A = readdlm(”tab1.csv”)
main(8, A)

Nesta última linha de comando especificamos quantos elementos estamos tomando para
gerar todas as combinações possíveis com estes elementos.
Referências Bibliográficas

[1] Albuquerque, C. D. Palazzo Jr., R., and Silva, E. B. Topological quantum codes on
compact surfaces with genus g > 2. Journal of Mathematical Physics vol. 50 (2009), p.
023513.

[2] Angel, J. Finite upper half planes over finite fields. Finite Fields and Their Applications
2, 1 (1996), 62 – 86.

[3] Angel, J. Celniker, N. P. S. T. A. T. C., and Velasquez, E. Special functions on finite


upper half planes. Contemp. Math. 138 (1992), 1–26.

[4] Angel, J. Poulos, S. T. A. T. C., and Velasquez, E. Spherical functions and transforms
on finite upper half planes: Eigenvalues of of the combinatorial laplacian, uncertainty,
traces. Contemp. Math. 173 (1994), 15–70.

[5] Baldi, M. QC-LDPC Code-Based Cryptography. Springer Publishing Company, Incor-


porated, 2014.

[6] Bhandari, M. C., Gupta, M. K., and Lal, A. K. Some results on nqr codes. Designs,
Codes and Cryptography 16, 1 (Jan 1999), 5–9.

[7] Blanco-Chacon, I. Rem ´ on, D. H. C., and Alsinac ´, M. Nonuniform fuchsian codes
for noisy channels. J. Frankl. Inst. 351 (2014), 5076–5098.

[8] Carmichael, R. D. Introducion to the Theory of Groups of Finite Order. Dover Publi-
cations, Inc., 2000.

[9] Carvalho, E. D., and Andrade, A. A. Hyperbolic lattices: A new propose for coding
theory. Internat. J. App. Math v. 24 (2011), p. 65–72.

[10] Cavalcante, R. G. Lazari, H. L. J. D., and R. Palazzo, . A new approach to the design
of digital communication systems. AMS-DIMACS Series v. 68 (2005), p. 145–177.

58
Referências Bibliográficas 59

[11] Cavalcante, R. G., and Palazzo Jr., R. Performance analysis of mpsk signal constellations
in riemannian varieties. Lect. Notes Comp. Science vol. 2643 (2003), 191–203.

[12] Celniker, N. Ph.D. thesis. PhD thesis, University of California, San Diego, 1991.

[13] Celniker, N., Poulos, S., Terras, A., Trimble, C., and Velasquez, E. Is there life on finite
upper half planes. Contemp. Math. 143 (01 1993), 65 – 88.

[14] Evans, R. Spherical functions for finite upper half planes with characteristic 2. Finite
Fields and Their Applications 1, 3 (1995), 376 – 394.

[15] HAMMING, R. W. Error detecting and error correcting codes. BELL SYSTEM TE-
CHNICAL JOURNAL 29, 2 (1950), 147–160.

[16] Hefez, A., and Villela, M. Códigos correctores de erros. Computação e matematica.
IMPA, 2008.

[17] Hesbo, O. E., and Oduor, O. M. On cunjugacy and order structure of certain classes
of finite groups. International Journal of Pure and Applied Mathematics 91, 4 (2014),
435–458.

[18] Huffman, W., and Pless, V. Fundamentals of Error-Correcting Codes. Cambridge, Ma


University Press, 2003.

[19] Katz, N. Estimates for soto–andrade sums. J. Reine Angew. Math. 438 (1993), 143–161.

[20] Lane, S., and Birkhoff, G. Algebra. Chelsea Publishing Series. Chelsea Publishing
Company, 1999.

[21] Lazari, H., and Palazzo Jr., R. Geometrically uniform hyperbolic codes. Comp. Appl.
Math vol. 24(2) (2005), 173–192.

[22] Lidl, R., and Niederreiter, H. Finite Fields. No. v. 20,pt. 1 in Encyclopedia of Mathe-
matics and its Applications. Cambridge University Press, 1997.

[23] MacWilliams, F., and Sloane, N. The Theory of Error-Correcting Codes, 2nd ed. North-
holland Publishing Company, 1978.

[24] Martin, P. A. Grupos, corpos e teoria de galois, vol. 2. Editora Livraria da Física, 2010.

[25] Medrano, A., Myers, P., Stark, H., and Terras, A. Finite analogues of euclidean space.
Journal of Computational and Applied Mathematics 68, 1 (1996), 221 – 238.
Referências Bibliográficas 60

[26] Moreno, O. On primitive elements of trace equal to 1 in gf(2m). Discrete Mathematics


41, 1 (1982), 53 – 56.

[27] Poulos, S. Ph.D. thesis. PhD thesis, University of California, San Diego, 1991.

[28] Shaheen, A. M. Finite Planes and Finite Upper Half Planes: Their Geometry, a Trace
Formula, Modular Forms, and Eisenstein Series. PhD thesis, University of California,
San Diego, 2005.

[29] Shaheen, A. M. A trace formula for finite upper half planes. J. Ramanujan Math. Soc.
4 (2006), 343–363.

[30] Shannon, C. E. A mathematical theory of communication. Bell System Technical Journal


27 (1948), 379–423.

[31] Shparlinski, I. Finite Fields: Theory and Computation The Meeting Point of Number
Theory, Computer Science, Coding Theory and Cryptography, 1st ed. Springer Pu-
blishing Company, Incorporated, 2010.

[32] Silva, E. B. Firer, M. C. S. R., and Palazzo Jr., R. Signal constellations in the hyperbolic
plane: A proposal for new communication systems. J. Franklin Inst. 343 (2006), 69–82.

[33] Terras, A. Fourier Analysis on Finite Groups and Applications. London Mathematical
Society St. Cambridge University Press, 1999.

[34] Terras, A. Harmonic Analysis on Symmetric Spaces - Euclidean Space, the Sphere, and
the Poincaré Upper Half-Plane. Springer New York, 2013.

[35] Tiu, P. D., and Wallace, D. I. Norm quadratic-residue codes. IEEE Transactions on
Information Theory 40, 3 (May 1994), 946–949.

[36] Yucas, J. L., and Mullen, G. L. Irreducible polynomials over gf(2) with prescribed
coefficients. Discrete Mathematics 274, 1 (2004), 265 – 279.

S-ar putea să vă placă și