Teorie kódování
Jan Volec, jan@ucw.cz
Materiály
Skripta od prof. Pelantové
Tři série domácích cvičení, vyřešit alespoň jednu v každé sérii. Může se na nich spolupracovat, ale sepsat je máme sami.
Zkouškový test na poslední přednášce
Motivace: Máme konečnou abecedu (většinou ) a nad ní chceme postavit kódová slova délky , tedy . Kód je nějaká množina možných slov .
Kódování pomocí paritního bitu: – lze rozpoznat jednu chybu
Definice. Nechť
je konečná abeceda,
a
. Potom
vzdálenost slov
je
Poznámka. Zjevně jde o metriku na množině .
Definice. Nechť
je konečná abeceda a
. Množina
je
-kód nad abecedou , pokud
Příklad. Nechť . Pokud , máme kód, kde dokážeme poznat chybu v jednom bitu. Pokud , máme kód, kde dokážeme opravit jednu chybu.
Ve zkouškovém testu bude za úkol pro dva dané z parametrů určit optimální hodnotu třetího.
Komunikace: Odesílatel odešle nějaké slovo , nepřítel ho nějak změní, příjemce dostane slovo a má odhadnout původní slovo . K tomu použije algoritmus dekódování:
(V případě, že je víc možností, budeme muset zvolit libovolně.)
Věta (oprava chyb). Nechť
je
-kód nad
a
jsou slova taková, že
. Potom
.
Důkaz. Triviální pomocí sporu a trojúhelníkové nerovnosti.
Věta (Hammingova). Nechť
je
-kód nad
a
. Potom platí
Hammingova nerovnost:
Důkaz. Nechť . Podle trojúhelníkové nerovnosti jsou koule disjunktní (kde koule značíme obráceně než Štampach a ještě navíc tím myslíme uzavřené koule, aby to bylo matoucí). Zjevně pro každé slovo je právě způsobů, jak v něm změnit nanejvýš znaků. To je tedy velikost koule kolem každého slova a z toho, že jsou disjunktní, plyne nerovnost.
Poznámka. Obecně má-li abeceda znaků, potom platí analogicky
Definice. Pokud v Hammingově nerovnosti platí rovnost, kód se nazývá
perfektní.
Příklad. Pro je koktavý/opakovací kód perfektní.
Lineární kódy
Definice. Je-li konečné těleso a kód je lineární podprostor, kód se nazývá lineární.
Poznámka. Kód nad je lineární, právě když obsahuje nulové slovo a je uzavřený na sčítání.
Poznámka. Je-li kód lineární, potom .
Definice. Generující matice lineárního kódu je matice, jejíž řádky tvoří bázi kódu. Značíme
Definice. Kontrolní matice lineárního kódu je matice, jejíž řádky tvoří jádro jeho generující matice.
Příklad. Paritní kód je lineární, jeho generující matice je například
a jeho kontrolní matice je
Příklad. Koktavý kód je lineární, jeho generující matice je
a jeho kontrolní matice je například
Tedy paritní a koktavý kód jsou k sobě duální.
Věta. Jsou-li
generující a kontrolní matice lineárního kódu, potom
.
Důkaz. Víceméně plyne z definice kontrolní matice.
Věta. Je-li
lineární kód,
jeho kontrolní matice a
, potom
.
Důkaz. Víceméně plyne z definice kontrolní matice.
Definice. Váha slova je .
Věta. Je-li
lineární kód, potom
.
Důkaz. Triviální.
Věta. Je-li
lineární kód, potom
.
Poznámka. To zní podobně jako hodnost, ale vlastně to s ní nemá moc společného.
Důkaz. Označme pravou stranu rovnosti . Víme, že existuje . Potom , tudíž nenulové složky určují lineárně závislé sloupce . Z toho plyne . Zbývá dokázat druhou nerovnost. Jakákoli lineární kombinace méně než sloupců jde vyjádřit jako , kde , tudíž a jde o nenulovou lineární kombinaci. Z toho plyne .
Definice. Nechť je konečné těleso velikosti a . -Hammingův kód je lineární kód, jehož kontrolní matice má jako sloupce právě všechny nenulové vektory z , jejichž první nenulový prvek je .
Věta. Pro Hammingův kód je
.
Důkaz. Podle věty o lineárně závislých sloupcích jednoduché.
Věta. Pro Hammingův kód je
.
Důkaz. Existuje přesně nenulových vektorů z a z nich má jako první nenulový prvek jedničku. Nebo se to dá natvrdo spočítat jako součet geometrické řady.
Věta. Pro Hammingův kód je
.
Důkaz. Kontrolní matice má řádků a obsahuje jako sloupce všechny jednotkové vektory, tedy nutně . Potom .
Věta. Hammingův kód je perfektní.
Důkaz. Dosazením do Hammingovy nerovnosti dostáváme
Použitím již známých tvrzení dostáváme
Snadnými úpravami zjistíme, že nastává rovnost, tedy kód je perfektní.
Definice. Nechť
jsou kódy délky
.
je
ekvivalentní , jestliže existuje permutace
taková, že
Poznámka. I někdo z KDAIZ by možná zvládl dokázat, že je to relace ekvivalence.
Definice. Lineární kód dimenze je systematický, pokud
Intuitivně: do prvních písmen můžeme zakódovat, co chceme, a poté jen správně doplníme.
Věta. Nechť
je systematický lineární kód dimenze
. Potom pro generující a kontrolní matici můžeme psát
Důkaz. Tvar matice plyne z definice systematického kódu. Stačí tedy ověřit, že .
Věta. Každý lineární kód je ekvivalentní nějakému systematickému.
Důkaz. Vezmeme nějakou bázi kódu, nastrkáme ji jako řádky do matice a tu upravíme pomocí řádkových úprav do horního trojúhelníkového tvaru. Tím samozřejmě dostaneme bázi toho samého kódu. Teď stačí přeházet sloupce tak, aby prvních sloupců samo o sobě tvořilo matici s plnou hodností. Tím dostaneme bázi nějakého ekvivalentního kódu. Matici si můžeme doupravit, aby těch prvních sloupců byla jednotková matice, z čehož je vidět, že jde o systematický kód.
Věta (Singletonova nerovnost). Nechť
je lineární kód dimenze
s minimální vzdáleností
. Potom
.
Důkaz. Z Frobeniovy věty nebo něčeho takového máme . Z definice hodnosti je minimální číslo takové, že každých tolik sloupců matice je lineárně závislých. Z toho a z naší věty o lineárně závislých sloupcích zjevně plyne . Odtud už nějak vyčupčíme žádanou nerovnost.
Věta (Gilbert-Varshamova mez pro binární kódy). Nechť
a platí
Potom existuje kontrolní matice
, jejíž kód má minimální vzdálenost alespoň
.
Důkaz. Budeme induktivně konstruovat matici po sloupcích. Nechť již máme sloupců a chceme přidat -tý. Ten musíme vybrat tak, aby to nebyl součet nanejvýš existujících sloupců. ( už nevadí, protože potom bychom společně s tím nově přidaným měli lineárně závislých a to je v pořádku.) Takových součtů existuje . Naše nerovnost nám přesně zajistí, že ještě nějaký povolený zbyde.
Definice. Pro označme minimální možnou délku lineárního binárního kódu dimenze s minimální vzdáleností .
Poznámka. Zjevně .
Lemma. Pro
je
Důkaz. Nechť je lineární kód délky . Víme, že pro nějaké je . Bez újmy na obecnosti předpokládejme . Generující matice bude mít tvar
Dokážeme, že . Kdyby ne, potom by její řádky byly lineárně závislé, tudíž z nich jde nakombinovat nulové slovo. Pokud nakombinujeme odpovídající řádky původní matice, dostaneme buď nulové slovo, což by znamenalo, že , nebo slovo začínající nulami a následně nenulové, kteréžto má vzdálenost od menší než . Každopádně jsme ve sporáku. TBD
Nechť je kód délky a dimenze s generující maticí a je jeho minimální vzdálenost. Dokážeme, že . Vezměme kódové slovo a nějaké další slovo ???
Věta (Griesmerova mez).
Důkaz. Indukcí podle . Základní případ již máme. Nechť . Z předchozího lemmatu máme
Vraťme se k binárnímu Hammingovu kódu. Definujme standardní tabulku, kde na nultém řádku jsou kódová slova a na -tém řádku jsou slova, která se liší od kódového slova v -tém bitu.
Věta. U binárního Hammingova kódu pro slova
je
právě tehdy, pokud leží ve stejném řádku kontrolní tabulky.
Důkaz. Máme . Potom . Toto se rovná nule právě tehdy, pokud , protože jinak , tedy .
Definice. Nechť je lineární kód a je slovo. Potom syndrom je .
Poznámka. Obecně definujeme standardní tabulku tak, že v každém řádku budou slova se stejným syndromem.
Věta. Nechť
je lineární binární kód s minimální vzdáleností
a
. Potom v každém řádku standardní tabulky je nanejvýš jedno slovo váhy
.
Důkaz. Nechť v -tém řádku jsou slova s vahou nanejvýš . Potom . Jelikož , musí být .
Cyklické kódy
Definice. Lineární kód délky je cyklický, pokud s každým slovem obsahuje i jeho cyklické permutace, neboli
Poznámka. Množinu slov
můžeme reprezentovat jako okruh polynomů
, kde budeme značit
formální proměnnou splňující
. Potom pro cyklický kód platí
.
Důsledek. Nechť je cyklický kód reprezentovaný jako polynomy a . Potom .
Příklad. Paritní kód délky 4 je cyklický:
Všimněme si, že jsou to všechno násobky .
Věta. Nechť
je cyklický kód délky
a dimenze
. Potom existuje
stupně
takový, že
- je báze
Důkaz. Za vezměme jakýkoli nenulový polynom v nejmenšího stupně . Nechť . Vydělíme se zbytkem (pro jednoduchost v celém okruhu ):
To samé platí i ve faktorokruhu. Z toho máme
Z toho plyne, že , neboli . Zároveň už víme, že pro každé , čímž je dokázán první bod věty. Druhý bod plyne z toho, že zapíšeme-li , dostáváme tím koeficienty pro lineární kombinaci polynomů , tudíž z těchto polynomů dokážeme nakombinovat jakýkoli polynom z . Zřejmě jsou také lineárně nezávislé, protože těžko nějaký z nich nakombinujeme z ostatních, když mají různé stupně. Zároveň z předpokladu plyne, že jich musí být , tedy . Zbývá třetí tvrzení, takže budeme zase dělit se zbytkem:
Ve faktorokruhu to znamená
Z toho naprosto analogicky jako předtím plyne , což v původním okruhu znamená . No a zřejmě .
Definice. Polynomy a z předchozí věty jsou generující polynom a kontrolní polynom kódu .
V důsledku předchozí věty se dá určit, kolik existuje cyklických kódů dané délky. Například , kde oba polynomy na pravé straně jsou ireducibilní, takže existují jen dva cyklické kódy délky 5 (plus dva triviální). Tudíž by nás zajímalo obecně, na co se rozloží , a to v nějakém obecném tělese se stejným počtem prvků jako . Ukazuje se, že to vyjde hezčeji, když místo něj budeme faktorizovat .
Definice. Nechť , kde je ireducibilní polynom. Potom minimální polynom prvku je polynom minimálního stupně s prvky ze takový, že .
Věta. Každé
má minimální polynom.
Důkaz. je těleso, takže má multiplikativní grupu. Tato grupa je navíc cyklická, protože je to konečné těleso, tudíž existuje nějaké takové, že . Nechť . Označme a dosaďme do polynomu :
Druhá rovnost plyne z toho, že multiplikativní grupa má prvků. Akorát je problém s tím, že pokud , tak to nefunguje. To vyřešíme tím, že vezmeme polynom , kterýžto má samozřejmě nulu jako kořen. Našli jsme polynom, který má jako kořen, a sice nemusí být minimální, ale to vyřešíme tím, že ho faktorizujeme.
Poznámka. Dokonce jsme našli univerzální polynom, který funguje pro všechna (i když není minimální). To se bude hodit později.
Příklad. Vezměme konečné těleso
. To má 8 prvků – všechny polynomy stupně menšího než 3. Zkusíme pro každý najít minimální polynom, tedy takový polynom, že když do něj za
dosadíme ten daný polynom, dostaneme polynom, který je násobek
:
| minimální polynom |
| |
| |
| |
| |
| |
| ? |
| ? |
| ? |
Vidíme, že to není úplně jednoduché.
Věta. Ke každému prvku
existuje právě jeden minimální polynom
. Ten je ireducibilní nad
a dělí každý polynom, který má kořen
, speciálně také
. Navíc je také kořenem
.
Důkaz. Nechť jsou dva různé minimální polynomy . Potom má taky za kořen a má menší stupeň, protože i začínají jedničkou. Z minimality tudíž plyne . Kdyby bylo reducibilní, potom by bylo kořenem jednoho z jeho faktorů, což je spor s minimalitou. Nechť je libovolný polynom, který má za kořen , potom můžeme vydělit se zbytkem , přičemž zbytek má stupeň menší než a taky má za kořen, tudíž je nulový. Nyní si rozepišme, jak vypadá :
Speciálně . Podle již dokázaného tvrzení musí minimální polynom dělit a jelikož je ireducibilní, je to jeho minimální polynom.
Věta. Je-li
ireducibilní polynom stupně
, potom
je součin všech různých minimálních polynomů prvků
.
Důkaz. Už jsme si dokázali, že každý minimální polynom dělí . Stačí tedy dokázat, že se tam nevyskytuje víckrát. Nechť je součin všech různých minimálních polynomů. Víme, že . Zároveň má za kořeny všechny prvky tělesa, kterých je , tudíž , z čehož plyne .
Věta. Nechť
a
ne nejmenší kladné číslo takové, že
. Potom minimální polynom
je
Důkaz. Víme, že minimální polynom má také za kořen , tudíž i a tak dále až do , tudíž jeho stupeň je alespoň stupeň . Víme tedy, že pokud je vůbec platný polynom, potom už musí být minimální k (protože je jeho kořen).
K tomu musíme ověřit, že koeficienty jsou ze . Máme
Pokud si to rozepíšeme a porovnáme po členech, máme , z čehož plyne .
Takže teď umíme rozložit , ale my chceme obecně . Co s tím? Z technických důvodů budeme s újmou na obecnosti uvažovat jen lichá .
Věta. Nechť
je liché. Potom existují
taková, že
.
Důkaz. Z Eulerovy-Fermatovy věty máme
Z toho přímo plyne tvrzení věty.
Vezměme tedy taková . Z algebry nějak víme, že existuje ireducibilní polynom stupně (tudíž je těleso) a takové, že jsou různé pro , přičemž pro je to rovno .
Polynomy pro jsou různé kořeny rovnice . Z toho plyne, že to musí být všechny kořeny. ??? je součin minimálních polynomů prvků , kde řád dělí .
Věta. Nechť
je cyklický kód liché délky
. Potom
je součin minimálních polynomů k prvkům
, kde
je prvek řádu
v nějakém tělese
.
Důkaz. Viz výše.
Definice. z předchozí věty jsou generující kořeny kódu .
Teď už máme nějaký cyklický kód a chceme vymyslet způsob, jak zakódovat nějakou informaci. Mějme nějaké datové slovo . Definujme polynom . Jako kódové slovo stačí vzít . To plyne z toho, že tyto výsledky pro různá právě dávají celý kód.
Ovšem pro pohodlnost by bylo hezké kód přepermutovat, aby byl systematický. To sice umíme pro obecný lineární kód, ale není zaručené, že tím vznikne cyklický kód. Definujme si tentokrát . Vydělíme se zbytkem . Jako kódové slovo vezmeme . Jelikož je menšího stupně než , nepoškodíme si tím bity na konci, ve kterých je zpráva. Tudíž máme kód, který je „obráceně“ systematický. V případě potřeby ho samozřejmě můžeme obrátit a pořád bude cyklický.
Zajímalo by nás, jestli je Hammingův kóď ekvivalentní cyklickému kódu. Ukazuje se, že pro obecné nemusí být, ale pro binární Hammingův kód to dokážeme. Máme tedy nějaké , které se rovná , a chceme najít cyklický kód se stejnými parametry jako Hammingův, tudíž dimenze .
BCH kódy
Definice. BCH kód je kód v tělese generovaný kořeny a , kde je prvek řádu .
Příklad. Méjme
. Vezmeme ireducibilní polynom
. Prvky
jsou všechny polynomy stupně nanejvýš
, to jest
Jako generátor můžeme vzít například
:
Mocnina | Hodnota | Minimální polynom |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
| | |
| |
| | |
| |
| | |
| |
| |
Protože chceme BCH kód, pro generující polynom vezmeme minimální polynomy pro
a
, tedy máme
Jelikož zároveň
, kontrolní polynom
má stupeň
, z čehož plyne, že máme
kódových slov. Teď by nás zajímalo, jaká je minimální vzdálenost. Spočteme si
Z toho plyne, že existuje kódové slovo váhy
, tudíž
. Pro dané slovo
vyjádřené jako polynom platí
Na základě tohoto poznatku si definujeme něco jako kontrolní matici tak, aby platilo
:
Každý prvek matice si vyjádříme jako čtyřsložkový sloupcový vektor odpovídající koeficientům u polynomu:
To už je skutečná kontrolní matice. Mějme nějaké slovo
, u kterého se staly dvě chyby, tudíž je ve vzdálenosti
od nějakého kódového slova:
. Potom
. Zároveň
Jelikož
je generátor, máme
a tedy
. Z binomické věty
Zavedeme-li ještě další formální proměnnou
, můžeme psát
Tudíž pokud umíme řešit takovouto kvadratickou rovnici, můžeme si snadno dopočíst, kde se staly chyby. Uvažujme ještě případ, kdy nastala jen jedna chyba, tedy
. Potom máme
a dostaneme přesně tu samou rovnici, akorát s nulou místo
. Tedy i tento případ dokážeme detekovat. Celkově umíme rozpoznat a opravit až dvě chyby, tudíž
.
Věta (Davenport). Nechť
je konečné těleso s
prvky (tedy
, kde
je ireducibilní polynom stupně
). Potom existuje
primitivní prvek takový, že
je báze
jakožto lineárního prostoru nad
.
Poznámka. Toto vůbec nesouvisí s generátorem cyklické grupy .
Příklad. Pro vezměme . Máme
Ve vektorové podobě máme množinu
Snadno ověříme, že je to báze.
Lemma. Mějme kvadratickou rovnici tvaru
. Potom bez újmy na obecnosti stačí řešit rovnici tvaru
.
Důkaz. Použijme substituce a . Potom rovnice pro má tvar
Vynásobením dostaneme původní rovnici.
Věta. Mějme v tělese
kvadratickou rovnici
, kterou můžeme substitucí
převést na tvar
. Nechť
, kde
je primitivní prvek z Davenportovy věty. Potom řešení rovnice je
Důkaz.
Důsledek. V konečném tělese charakteristiky 2 má každý prvek odmocninu.
Věta. Májme v tělese
kvadratickou rovnici
. Nechť
, kde
je primitivní prvek z Davenportovy věty. Potom rovnice má řešení, právě když
V takovém případě jsou dvě řešení ve tvaru
Důkaz. Nechť je nějaké řešení rovnice. Potom
Porovnáním po koeficientech a sečtením máme
Pro výraz spočteme koeficient u . Pro to bude ten, který byl původně u (nebo u , pokud ), takže máme pro
nebo pro
Když jsme jako generátor vzali , dostali jsme Hammingův kód, který umí opravovat jednu chybu. S generátory jsme dostali kód, který umí opravovat dvě chyby. Co kdybychom zkusili přidávat další liché mocniny?
Definice. Nechť jsou prvky nějakého tělesa. Potom Vandermondova matice je
Lemma.
Důkaz. Za domácí úkol.
Věta.
Důkaz. Indukcí z předchozího lemmatu.
Definice. Nechť
a
je prvek řádu
v tělese
.
BCH kód pro vzdálenost je cyklický kód délky
s generujícími kořeny
.
Poznámka. Pro bychom dostali čtyři generátory , ale jelikož generující polynomy pro jsou stejné jako pro , minimální polynom vyjde stejně, jako kdybychom vzali jenom .
Věta. BCH kód pro vzdálenost
má skutečně vzdálenost alespoň
, tedy spravuje
chyb.
Důkaz. Kontrolní matice pro BCH kód je z definice
Podle nějaké dávné věty stačí dokázat, že každých sloupců je lineárně nezávislých. Vyberme nějaké sloupce:
To je skoro Vandermondova matice, akorát nezačíná jedničkami, takže při počítání determinantu musíme nejdřív vytknout:
Teď je otázkou, jak nějak efektivně dekódovat BCH kód. Dejme tomu, že bylo vysláno slovo a přijato slovo . Pomocí kontrolní matice snadno spočteme syndrom . Je-li množina pozic, na kterých se staly chyby, potom z definice platí
Takže je snadné spočítat syndromy z indexů, ale my chceme udělat přesný opak – známe syndromy a máme určit indexy. Pro si označme a definujme lokátor:
Pokud najdeme kořeny lokátoru , můžeme spočíst a to si potom dohledáme v nějaké tabulce, čímž zjistíme . Takže úplně stačí najít kořeny lokátoru, který ale samozřejmě neznáme. Jen víme, že má nějaké koeficienty:
Zřejmě . Spočteme si z obou tvarů formální derivaci:
Porovnáme obě vyjádření:
Zapíšeme si to do matičkové podoby:
Akorát je tu trochu problém, že neznáme . Dá se dokázat, což tady dělat nebudeme, že pokud matici pro dané označíme , potom pro to správné je regulární, taky a všechny další už ne. Takže podle toho to už najdeme.
Plotkinova mez
Definice. Pro
označme
maximální
takové, že existuje
kód nad
.
Poznámka. Teď už nepožadujeme, aby kód byl lineární!
Lemma. Pro každé
je
.
Důkaz. Nechť je -kód, kde je maximální možné. Definujme kód, který je stejný, ale s přidaným paritním bitem:
Dokážeme, že je -kód. Nechť . Zjevně . Předpokládejme pro spor, že platí rovnost. V takovém případě mají nutně stejný paritní bit a liší se v „normálních“ bitech, což je liché číslo. Ale to je blbost. Naopak, máme-li -kód, kde , umazáním poslední souřadnice z něj vyrobíme -kód.
Lemma. Pro každé
je
.
Důkaz. Nechť je -kód, kde . Pro definujme
Jeden z zjevně musí mít velikost aspoň , takže je to alespoň -kód.
Lemma. Nechť
. Potom
Důkaz. Nechť je -kód, kde . Zjevně platí
Pro každé označme počet kódových slov, která mají na -tém bitu jedničku. Potom počet dvojic slov, která se v -tém bitu liší, je , z čehož plyne
Porovnáním a vydělením dvěma dostaneme
Snadno ověříme (třeba pomocí derivace), že , takže máme
Pro sudé máme
což snadno upravíme do tvaru
Jelikož je sudé číslo, můžeme pravou stranu bez obav zabalit do dolní celé části. Vynásobením dvěma dostaneme kýženou nerovnost. A co pro liché ?
Úpravami dostaneme
Jelikož , můžeme psát
Snadno ověříme, že pro libovolné je . Aplikací tohoto tvrzení dostaneme znění věty.
Věta (Plotkinova mez). Nechť
. Potom:
- Je-li sudé a , potom .
- Je-li sudé a , potom .
- Je-li liché a , potom .
- Je-li liché a , potom .
Důkaz. Použitím předchozích tří lemmat:
- Již dokázáno.
Definice. Hadamardova matice je matice
taková, že
.
Poznámka. Označíme-li sloupce , potom , neboli řádky musí být na sebe kolmé. Jinými slovy, každé dva řádky se musí lišit ve stejném počtu čísel jako shodovat.
Příklad. Pro je Hadamardova matice. Pro je Hadamardova matice.
Poznámka. Existuje domněnka, že Hadamardova matice existuje pro každé .
Lemma. Je-li
a existuje Hadamardova matice velikosi
, potom
je násobek
.
Důkaz. Zjevně pokud v Hadamardově matici vynásobíme nějaký řádek nebo sloupec , pořád to bude Hadamardova matice. Vynásobme všechny sloupce tak, aby v prvním řádku byly samé jedničky. Označme:
Zjevně platí . Z kolmosti prvního a druhého řádku plyne . Z kolmosti prvního a třetího řádku plyne . Z kolmosti druhého a třetího řádku plyne . Sečtením těchto rovností dostaneme .
Definice. Nechť
jsou čtvercové matice. Potom jejich
tenzorový součin je
Poznámka. Na TA jsme tomu říkali Kroneckerův součin.
Lemma. Důkaz. Rozepsáním.
Lemma. Důkaz. Na TA jsme to měli za domácí úkol.
Věta (Sylvesterova konstrukce). Jsou-li
a
Hadamardovy matice, potom
je Hadamardova matice.
Důkaz. Zřejmě . Podle předchozích lemmátek máme
Důsledek. Pro každé
existuje Hadamardova matice velikosti
.
Důkaz. Indukcí: Začneme s maticí a budeme ji postupně tenzořit .
Definice. Nechť je -kód a je -kód. Potom je -kód, který vytvoříme tak, že nějak seřadíme slova v obou kódech a spojíme ta na stejných indexech (pokud má jeden víc slov, přebytečná zahodíme).
Definice. Nechť je -kód a . Potom je -kód.
Vytvoříme-li kód , jehož kódová slova budou řádky Hadamardovy matice velikosti (s přemapováním ), zjevně to bude -kód.
Navíc pokud všechny řádky a sloupce vynásobíme tak, aby začínaly jedničkou, můžeme první sloupec beze strachu smazat a dostaneme tím -kód , který navíc obsahuje nulové slovo.
A pokud z něj vezmeme jen slova začínající nulou a tyto nuly smažeme, dostaneme -kód (to, že má přesně slov, plyne z toho, že druhý smazaný sloupec byl kolmý na první smazaný sloupec).
Teď se vraťme k a vytvořme kód tím, že přidáme ke všem slovům jejich negaci. S trochou přemýšlení ověříme, že je to -kód.
Věta (Levenshteinova, napsaná podle Volce). Plotkin s „=“, když Hadamard dá.
Věta (Levenshteinova, napsaná normálně). Nechť
. Potom
- Je-li sudé a a platí Hadamardova domněnka, potom .
- Je-li sudé, a existuje Hadamardova matice velikosti , potom .
- Je-li liché a a platí Hadamardova domněnka, potom .
- Je-li liché a a existuje Hadamardova matice velikosti , potom .
Důkaz. Podle jistého lemmatu víme, že stačí uvažovat
sudé. Pro
z kódu
vidíme, že
a podle Plotkinovy meze platí rovnost. Nechť
. Definujme
. Označme
. Potom z definice dolní celé části platí
Odečtením téchto rovností dostaneme
Vynásobením první rovností máme
Trochu si upravíme definici
a dosadíme do ní tuto rovnost:
Ted rozlišíme dva případy:
- Je-li sudé, vezměme kód . Spočteme si jeho parametry:
- Je-li liché, vezměme kód . Spočteme si jeho parametry: