Teorie kódování
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 jePoznámka Zjevně jde o metriku na množině .Definice Nechť je konečná abeceda a . Množina je -kód nad abecedou , pokudPří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í analogickyDefinice 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říklada jeho kontrolní matice jePříklad Koktavý kód je lineární; jeho generující matice jea jeho kontrolní matice je napříkladTedy 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 .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ámePoužitím již známých tvrzení dostávámeSnadný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á, žePozná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ý, pokudIntuitivně: 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átDů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 jeDů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 tvarDokáž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ámeVrať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 neboliPozná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ámeZ 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 jeDů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ámePokud 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ámeZ 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 .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 jestJako 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ámeJelikož 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 siZ 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ětyZavedeme-li ještě další formální proměnnou , můžeme psátTudíž 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ámeVe vektorové podobě máme množinuSnadno 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á tvarVyná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 jeDů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 tvaruDůkaz - (⇒)
- Nechť je nějaké řešení rovnice. PotomPorovná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 jeLemma 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 definicePodle 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 definujmeJeden z zjevně musí mít velikost aspoň , takže je to alespoň -kód.Lemma Nechť . PotomDů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ž plynePorovnáním a vydělením dvěma dostanemeSnadno ověříme (třeba pomocí derivace), že , takže mámePro sudé mámecož snadno upravíme do tvaruJelikož 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 dostanemeJelikož , můžeme psátSnadno 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 jePoznámka Na TA jsme tomu říkali Kroneckerův součin.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ámeDů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 Levenštejnova, napsaná podle Volce Plotkin s „=“, když Hadamard dá.Věta Levenštejnova, 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í dostanemeVynásobením první rovností mámeTrochu 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: