10. Základní typy důkazů
Michalův komentář
- materiály k Types and Proofs: http://www.paultaylor.eu/stable/prot.pdf
- povědomí o různých formálních systémech pro konstrukci důkazů:
- Hilbertův systém (viz Kleeneho metamatematika, ale je v řadě jiných), Gentzenova přirozená dedukce (viz Girard), tabla (viz např Smullyan nebo Nerode), rezoluce, atd. (asi netreba všetky, ale mať o tom povedomie)
- to google: „Proof calculus“ nebo „Proof systems“ (ale vynechte system ve smyslu počítačového systému).
Ešte môžeme tušiť, čo sa vlastne po nás chce odtiaľto: 3. otázka: http://www.fi.muni.cz/studies/szz/mgr_info.xhtml#teoreticka
Tento text předpokládá, že čtenář má nějaké obecné (byť matné) povědomí o výrokové a predikátové logice. Snaží se přitom dát tyto znalosti dohromady a poskytnout souvislosti.
Úvod nemá cenu se učit, spíše jen přečíst – je to úvaha o významu logiky pro matematiku (navíc určitě zkreslená autorovým vnímáním). Celkově je ta teorie kolem matematiky, formální logiky, Hilbertova programu a dalších věcí poměrně značně složitá.
Logika studuje způsob vyvozování závěrů z předpokladů. Důkaz je pak popis jednoho konkrétního odvození závěrů z předpokladů. V zásadě by mělo platit, že závěry už jsou obsažené v předpokladech (to, že 5+3=8, je jasně dáno aritmetikou přirozených čísel), jinak je při vyvození použita nějaké dodatečná informace – závěr nevychází z předpokladů. Na druhou stranu to neznamená, že je důkaz jako takový není užitečný – objasňuje, jakým způsobem jsme z předpokladů k závěru došli. Můžeme se na něj taky dívat jako na zkratku – pokaždé, když potřebujeme ověřit, že dané tvrzení platí, můžeme se na něj podívat. Z toho taky vychází základní pravidlo neformálních důkazů (a většinu důkazů provádíme neformálně) – důkaz je tak detailní, aby mu ten, komu je určen, rozuměl.
Formální logika studuje vyvozování jako práci se symboly popisující abstraktní modely založené na matematice. S matematikou je úzce svázána – to je dáno především historicky: formální logika je výsledkem snahy vyjasnit a formalizovat základy matematiky (v jistém smyslu se na ni můžeme dívat jako na normu) – způsob, jakým uvažovat o matematických strukturách. Jedná se především o to, abychom byli schopni pomocí konečného procesu schopni vytvořit platné úsudky o nekonečných strukturách.
Tato snaha probíhala v první polovině dvacátého století. Jejím cílem bylo vytvořit formální jazyk, ve kterém by bylo možné zapsat všechna matematická tvrzení, a definovat způsob, jakým je s ním možné manipulovat tak, aby z malé množiny předpokladů bylo možné odvodit celou matematiku a algoritmicky rozhodnout, jestli dané tvrzení platí (více viz Hilbertův program). Gödel později ukázal, že toto není možné (viz níže), přesto je logika důležitá, protože poskytuje jazyk pro práci s matematickými tvrzeními a návod, jak v něm vyvozovat důsledky.
Pokud definujeme formální logický systém, typicky máme následující (tento popis vychází z predikátové logiky):
Sémantika dobře utvořené formule je svázána s modely – matematickými strukturami. Proto, abychom mohli určit její pravdovostní hodnotu, musíme v ní obsažené mimologické symboly nějakým způsobem namapovat na matematické struktury, což bývá součástí modelu. Zvláštní místo mají proměnné, kterým můžou být objekty modelu přiřazeny nezávisle, o což se stará funkce valuace. Rozlišujeme pak tři možnosti:
Zavádíme také relaci vyplývání. Formule je sémantickým důsledkem množiny formulí (teorie) , psáno pokud v každém modelu splňujícím všechny formule z (také model teorie ) je splněna .
Sémantika svazuje formule s potenciálně nekonečnými matematickými objekty. Navíc udává pravdivostní hodnotu pouze pro jeden model (a jednu konkrétní evaluaci). Matematiku ale zajímají především obecně platné věty, popřípadě věty, které vyplývají z jiných. To však obnáší pravdivost pro velké, často nekonečné množství modelů. Člověk přitom není schopný s aktuálním nekonečnem pracovat.
Odvozovací systém se ideálním, nekonečným strukturám vyhýbá zavedením čistě syntaktické procedury – přepisováním symbolů – která modeluje vyvozování, abstraktní myšlenkovou činnost. Nenechte se mýlit, odvozovací systém musí odpovídat sémantice logiky, jeho operace však neobnáší žádnou práci s modely. Odvozovací systém je tedy nástrojem pro tvorbu důkazů.
Důkaz je posloupnost platných tvrzení (formulí), které končí tvrzením, které chceme dokázat, a dané tvrzení v posloupnosti vždy lze vyvodit z těch nalevo. Vyvozování se děje pomocí odvozovacích pravidel, která určují, jak z jednoho nebo více platných tvrzení odvodit další platné tvrzení. Samozřejmě je třeba od něčeho začít, proto jsou jeho součástí ještě axiomy. Axiomy i odvozovací pravidla jsou přitom závislá na sémantice logiky. Kromě toho mezi axiomy můžeme zahrnout další předpoklady.
Důkaz
Pokud existuje důkaz z (formule je dokazatelná z ), píšeme .
Požadujeme, aby odvozovací systém splňoval následující vlastnosti:
Poznamenejme, že pokud je odvozovací systém úplný, je částečně rozhodnutelný (rekurzívně vyčíslitelný), protože můžeme generovat platná tvrzení tak dlouho, dokud nenarazíme na vstupní tvrzení.
Bezespornost je poměrně jednoduché dokázat – stačí ukázat, že axiomy jsou platné formule (na základě jejich sémnatiky) a že odvozovací pravidla zachovávají platnost. Dokázat úplnost systému a nebo najít rozhodovací algoritmus už je značně komplikovanější.
Výroková logika je poměrně jednoduchý systém s omezenou vyjadřovací silou, na kterém jsou ale postaveny všechny ostatní logické systémy. To je dáno dvěmi věcmi:
Výroková logika nemá jiné mimologické výrazy než proměnné a jejím jediným modelem jsou dvě pravdivostní hodnoty3). To zároveň znamená, že lze použít společně s jakýmikoli jinými logickými konstrukcemi (které mají definovanou sémantiku).
Poznámka: Občas se označení „výroková logika“ používá logiku s predikáty a spojkami výrokové logiky. V tomto případě se nejedná o výrokovou logiku, ale prvořádovou logiku bez kvantifikátorů. Ve výrokové logice nás zajímají pouze pravdivostní hodnoty, nespojeme ji s žádnými soubory prvků a podobnými věcmi.
Sémantika výrokové logiky je dána funkcí valuace (také pravdivostního ohodnocení), která každé proměnné přiřadí pravdivostní hodnotu – 0 nebo 1. Ta lze rozšířit na výrokové spojky. Zde toto rozšíření definujeme úplným výčtem:
Sémantika výrokové logiky
Logika vychází z přirozeného jazyka, a logické spojky v zásadě odpovídají svému významu v přirozeném jazyce. Je dobré si ale pamatovat, že pokud je antecendent implikace (formule na levé straně) nepravdivá, implikace je pravdivá.
Formule je pro valuaci pravdivá, pokud , je splnitelná, pokud existuje valuace taková, že a je logicky pravdivá (tautologie, často pouze „pravdivá“), pokud je pravdivá pro libovolnou valuaci. Formule je logickým důsledkem množiny formulí , psáno právě tehdy pokud pro každou valuaci, pro kterou jsou pravdivé všechny formule v je pravdivá .
Pokud máme logickou formuli obsahující n různých proměnných, určuje nární funkci na pravdivostních hodnotách. Triviálně logické spojky určují výrokové funkce. Systém výrokových funkcí je plnohodnotný, pokud pomocí nich lze vyjádřit libovolná výroková funkce, a tedy v zásadě libovolná formule. Lze dokázat, že systémy , nebo jsou plnohodnotné. Proto se často definuje sémantika jen některou z dvojice spojek a ostatní se berou jako zkratky (syntaktický cukr).
Normální formy jsou standardní zápisy formulí. Jsou tvořeny:
Rozlišujeme:
Přitom platí, že každá formule lze zapsat v každé normální formě (jinak by to nebyla normální forma).
Disjunktivní normální forma je jednoznačná pro danou formuli, až na pořadí klauzulí a literálů uvnitř (duálních) klauzulí. Když ji srovnáme s tabulkami logických funkcí, lze ji zapsat jako disjunkci všech řádků, které dávají za výsledek jedničku. Rozhodnout splnitelnost formule v DNF je lineární – stačí najít (duální) klauzuli, kde není zároveň proměnná a její negace.
Konjunktivní normální forma není jednoznačná a rozhodnout splnitelnost formule v CNF je v NP. To může znít neintuitivně, ale pokud máme formuli v CNF a přepíšeme ji do DNF, může dojít až k exponenciálnímu zvětšení formule.
Výroková logika má jednu zásadní výhodu: je bezesporná, úplná a rozhodnutelná (byť rozhodnutelnost je v NP), respektive, existuje odvozovací systém, který je úplný a bezesporný. Její odvozovací systém je proto použit jako základ odvozovacích systémů pro všechny vyšší logiky (včetně například modálních logik). Proto jej uvedeme až u predikátové logiky.
Predikátová logika prvního řádu (nebo také prvořádová logika) rozšiřuje výrokovou logiku o kvantifikaci (která v zásadě vychází z Aristotelových sylogismů). Tím se ale váže na nějaké, potenciálně nekonečné soubory objektů. Predikátová logika je důležitá, protože formalizuje základy jazyka matematiky – pokud chceme nějaké tvrzení zapsat formálně, nejčastěji použijeme jazyk prvořádové logiky (nebo jejích víceřádových variant) – i když sémantika tvrzení nutně nemusí odpovídat sémantice predikátové logiky.
Modelem predikátové logiky je nějaký soubor objektů (množina). Predikátová logika je založena na predikátech, které přiřazují objektům nebo n-ticím objektů pravdivostní hodnoty. Ty tedy odpovídají množinám a relací(Setkáváme se zde s problémem slepice a vejce – chceme nadefinovat logiku v termínech teorie množin a na druhé straně bychom chtěli nadefinovat teorii množin pomocí axiomů, tedy logických formulí. V zásadě lze říct, že teorie množin a predikátová logika jsou velmi úzce svázány, obojí jsou to základy matematiky.)).
Jazyk
true
a false
– a nulární funkční symboly – konstanty). Například jazyk teorie grup jsou symboly (multiplikativní zápis) s aritami 2,0,1 (pro znalé: ano, to je definice podle univerzálních algeber – teorie grup ale taky lze zapsat například pouze se symbolem ).
Abeceda prvořádové logiky obsahuje:
Abeceda prvořádové logiky pro jazyk dále obsahuje predikátové a funkční symboly jazyka .
Syntax prvořádové logiky rozlišuje dva typy struktur:
Term
Term je uzavřený, pokud neobsahuje žádné proměnné (tedy musí obsahovat nějaké nulární funkční symboly – konstanty).
Termem teorie grup je například . Uzavřeným termem je například .
Formule
Existenciální kvantifikátor se typicky také definuje pomocí syntaktické zkratky . Pro zpřehlednění zápisů formulí se v praxi další konvence. Například široce rozšířený zápis je zcela formálně zapsán .
Pro definici sémantiky musíme rozlišit volné a vázané proměnné, přičemž vázané proměnné jsou ty, které jsou kvantifikované. Formálně mluvíme o tom, jestli je daný výskyt proměnné ve formuli volný, nebo vázaný (nemůže být obojí):
Jinak spojky zachovávají volnost a vázanost. Proměnná je volná (vázaná) ve formuli pokud je nějaký z jejích výskytů ve formuli volný (vázaný) – proměnná tedy může být zároveň volná i vázaná (ale její konkrétní výskyty ne). Například ve formuli je proměnná volná i vázaná, protože její první výskyt je volný a její druhý výskyt vázaný.
Pro formuli můžeme použít zápis , kde všechny volné proměnné v jsou mezi . Pokud formule neobsahuje volné proměnné, je uzavřená (takovým formulím se také říká sentence8)), jinak je otevřená. Pokud chceme z otevřené formule udělat uzavřenou, typicky se to dělá pomocí univerzálního uzávěru, tedy , což zachovává pravdivostní hodnotu formule (viz níže).
Substituce
Tedy například term není substituovatelný za v termu . Typicky používáme vícenásobnou (souběžnou) substituci značenou .
Predikátová logika operuje s množinami (soubory prvků), potřebujeme tedy nějakým způsobem svázat proměnné a daný jazyk s nějakou množinou.
Realizace
Ještě je potřeba přiřadit význam proměnným. V prvořádové logice proměnné zastupují jednotlivé prvky univerza (narozdíl například od druhořádové logiky – viz níže).
Valuace
Sémantika dané formule pak pracuje s těmito pojmy.
Sémantika prvořádové logiky
Realizace termu je definována induktivně (podle definice termu):
Relace splněnosti formule realizací a valuací je definována induktivně10):
Pokud je jazyk s rovností, platí pouze tehdy, označují-li a stejná individua.
Říkáme, že je pravdivá v , pokud pro libovolnou valuaci .
Všimněme si několika věcí. Zaprvé, formule je pravdivá v dané realizaci, pokud je pravdivá pro všechna možná ohodnocení. To se podobá sémantice univerzálního kvantifikátoru, a tedy univerzální uzávěr (viz výše) zachovává pravdivostní hodnotu. Za druhé, je třeba si všimnout role valuace v definici kvantifikátorů. Zatřetí, vezměme na vědomí jazyk, kterým sémantiku prvořádové logiky definujeme. Na rozdíl od výrokové logiky ji nemůžeme definovat úplným výčtem možností, a tedy musíme použít přirozený jazyk, protože nemáme žádný jiný formalismus pomocí kterého bychom sémantiku definovali. To v zásadě posiluje význam logiky jako standardu – stále ještě musíme vysvětlit v přirozeném jazyce, co tím myslíme. Na druhou stranu, odvozovací systém je vyloženě syntaktická záležitost, kterou lze vysvětlit pouze přepisováním slov (samozřejmě musíme v přirozeném jazyce vysvětlit, co to je „přepisování“).
Pro relaci sémantického vyplývání je důležitý pojem teorie. Pro jazyk (všechny predikátové formule se musí vztahovat k nějakému jazyku, narozdíl od výrokových) je teorie soubor formulí (i nekonečný) – axiomů teorie. Realizace je modelem teorie jestliže pro každou . Pokud pro danou teorii model existuje, říkáme, že je splnitelná. Formule je sémantickým důsledkem teorie , psáno právě tehdy, když je pravdivá v každém modelu teorie.
Vezměme si výše zmíněný jazyk teorie grup, symboly s aritami 2,0,1. Axiomy této teorie jsou (zřejmě používáme jazyk s rovností):
Jakákoli (číselná) množina s vhodným přiřazením operací je modelem teorie grup právě tehdy, když splňuje výše uvedené axiomy. Příkladem může být množina celých čísel s operací sčítání, nulou přiřazenou symbolu a změnou znaménka místo operace </math>^{-1}</math>. Existují ale i jiné modely této teorie (i konečné – modulární aritmetika).
Pojem teorie má v matematice zásadní význam. Typicky máme nějakou soustavu axiomů (například axiomatická teorie množin), ze které se snažíme odvodit další tvrzení. Samozřejmě, problém je, že nestačí ukázat, že tvrzení platí jen na jednom konkrétním modelu dané teorie. Je nutné ukázat, že platí pro všechny možné modely, kterých může být nekonečně mnoho. Proto existují odvozovací systémy.
Jak už bylo zmíněno výše, odvozovací systém se skládá z:
Důkaz je pak řetěz platných tvrzení, kde začínáme z axiomů nebo předpokladů a aplikujeme na ně odvozovací pravidla dokud nedostaneme formuli, kterou chceme. Většina odvozovací systémů prvořádové logiky vychází z odvozovacích systémů výrokové logiky, které rozšiřují o pravidla (nebo axiomy) pro práci s kvantifikátory. To je logické, protože dokázat bezespornost odvozovacích systémů výrokové logiky je velmi jednoduché (výroková logika je rozhodnutelná – úplným výčtem pravdivostních hodnot) a tato bezespornost se přenáší do vyšších logik. Odvozovací systémy výrokové logiky tedy vypadají stejně jako níže uvedené, pouze se vypustí axiomy a pravidla pracující s kvantifikátory.
To, že formule je dokazatelná z množiny předokladů (teorie) zapisujeme . Teorie je sporná (inkonzistentní), pokud z ní lze dokázat libovolnou formuli jazyka prvořádové logiky.
Existuje celá řada odvozovacích systémů. Většina z nich obsahuje odvozovací pravidlo modus ponens (také eliminace implikace), které vychází z jednoduchého principu: Pokud z A vyplývá B a A platí, platí také B.
Modus Ponens
Typicky pro odvozovací systémy platí důležitá věta, věta o dedukci.
Věta o dedukci
Tato věta formalizuje princip, jakým se běžně vede většina důkazů, kdy vybereme jeden předpoklad a dokazujeme implikaci. Podle toho, jakým způsobem se postupuje, rozlišujeme:
Tento odvozovací systém má především teoretický význam – typicky se používá k důkazům (meta)tvrzení o prvořádové logice. Má relativně malé množství axiomů – respektive, používá relativně malé množství schemat axiomů (axiomů jako takových je nekonečně mnoho), a malé množství odvozovacích pravidel. Prakticky se k vytváření důkazů používá poměrně špatně, protože je obtížné z axiomů dojít k požadovanému tvrzení. Skládá se z následujících axiomatických schemat:
a dvou odvozovacích pravidel, modu ponens a pravidla generalizace:
Navíc, pokud jazyk obsahuje rovnost, přidávají se ještě axiomy rovnosti (existuje více možných formulací):
Pro pohodlí si typicky budeme definovat další schemata axiomů (například ), které odvodíme už z existujících axiomů.
Tento odvozovací systém je bezesporný (což lze ověřit jednoduše) a úplný (což poprvé dokázal Gödel).
Systémy přirozené dedukce se oproti velmi formálnímu Hilbertovskému systému (se kterým je problém v praxi něco dokázat) snaží důkaz přiblížit tomu, jak přirozeně usuzujeme. Mívají minimum axiomů a oproti tomu hodně odvozovacích pravidel. Je také typické, že pro každou logickou spojku mají pravidlo, které ji zavádí a pravidlo, které ji eliminuje.
Následuje zjednodušený model Gentzenova sekvenčního kalkulu. Používá pouze jeden axiom:
a velké množství odvozovacích pravidel:
Problémem výše uvedených odvozovacích systémů je, že existuje mnoho různých axiomů nebo odvozovacích pravidel. Rezoluce používá pouze jedno pravidlo – rezoluční pravidlo, založené na odvození . Vyžaduje přitom, aby formule (jak teorie, tak dokazovaná formule) byly zapsány v CNF. Rezoluce je široce používaná především v logickém programování a automatickém dokazování.
Rezoluční pravidlo
Rezoluční důkaz – nebo spíše vyvrácení – je založené na důkazu sporem. Nejprve je nutné převést všechny axiomy teorie a negaci cílové formule do CNF. Protože , bereme teorii (a negaci cílové formule) jako množinu klauzulí – té se v kontextu logického programování říká znalostní báze. Rezoluční vyvrácení je pak konečná posloupnost klauzulí, přičemž každý její prvek je buď klauzule ze znalostní báze, nebo klauzule cílové formule, nebo rezolventa dvou předcházejících prvků. Posloupnost končí prázdnou klauzulí, která je vždy nepravdivá – sporem.
Výše uvedený důkaz funguje dobře pro výrokovou logiku. Predikátová logika přináší problém ve formě univerza, predikátu a kvantifikátorů. Klauzule je nutné definovat trochu jinak CNF:
Ne všechny formule jdou do převést na konjunkci klauzulí, konkrétně je problém s existenčními kvantifikátory (ty nelze vždy přepsat na univerzální kvůli přesunutí negace k literálům). Proto se provádí tak zvaná Skolemizace, kdy se formule převádí na jinou formuli, která je splněna za stejných podmínek. Při ní se existenčně kvantifikovaná proměnná nahrazuje:
Využívá se přitom následujících identit: , , pokud není volné v (a podobně pro a )11).
Příkladem Skolemizace klauzule je klauzule , kterou píšeme , kde je nová konstanta a je nová unární funkce.
Na takových klauzulích můžeme provádět rezoluci. Ta probíhá následovně:
Více o rezoluci a zefektivnění dokazovacího procesu se lze dočíst v materiálech předmětu IB013 Logické programování.
Prvořádová logika je bezesporná a úplná (a tedy i částečně rozhodnutelná), ale není rozhodnutelná (existuje spojitost s nerozhodnutelností problému zastavení). Dále pro ni platí následující věty:
Kompaktnost
To ve výsledku znamená, že pokud je formule logickým důsledkem teorie, je logickým důsledkem konečně mnoha jejích axiomů.
Löwenheimova-Skolemova věta
Což mimojiné znamená, že pomocí prvořádové logiky nelze sformulovat teorii přirozených čísel (respektive teorii, kterou by splňovala pouze přirozená čísla).
Pokud pracujeme s jazykem s rovností, můžeme definovat numerický kvantifikátor „existuje alespoň prvků, které splňují “. Požadujeme, aby existovalo prvků, které jsou po dvojicích různé:
Přitom existenci přesně individuí lze zřejmě vyjádřit jako . Není tak ale možné vyjádřit existenci nekonečného počtu predikátů.
Vyjadřovací možnosti prvořádové logiky jsou omezené – kvantifikátory se totiž mohou vztahovat pouze k prvkům univerza. Například tvrzení „každá neprázdná omezená množina má supremum“, není možné vyjádřit v prvořádové logice. Proto byla zavedena logika druhého řádu. Ta kromě individuí umožňuje kvantifikovat i predikáty a funkce (tedy proměnné jsou predikáty i funkce).
Druhořádová logika nemá odvozovací systém, který by byl zároveň bezesporný a úplný (jinak by byla prvořádová logika rozhodnutelná). Existuje několik různých odvozovacích systémů.
Zajímavou podtřídou druhořádové logiky je monadická druhořádová logika (MSOL), která umožňuje kvantifikaci pouze individuí a množin. Není bez zajímavosti, že formule MSOL se dají převádět na Büchiho automaty, avšak za cenu exponenciálního nárustu velikosti.
Predikátová logika vznikla na základě snahy vytvořit formální systém pro celou matematiku, tak že by mohl být použit k důkazu všech tvrzení (tak zvaný Hilbertův program). Následující dvě věty dokázané Gödelem ukázaly, že toto není možné12).
Gödelova první věta o neúplnosti
Konkrétně, pokud je takový dokazovací systém bezesporný, není úplný, tedy existuje pravdivé matematické tvrzení, které v něm nelze dokázat.13). Samozřejmě, pokud toto tvrzení přidáme jako axiom, opět najdeme jiné pravdivé nedokazatelné tvrzení. Jiná formulace této věty (možná bližší informatikům) je, že jazyk platných formulí pracující s Peanovou aritmetikou není rekurzívně vyčíslitelný (přitom víme, že jazyk generovaný libovolným dokazovacím systémem je rekurzívně vyčíslitelný).
Poznámka: Peanova aritmetika je relativně silná – obsahuje sčítání, násobení a indukci. Některé slabší teorie (například pouze se sčítáním) jsou úplné.
Gödelova druhá věta o neúplnosti
Pokud tedy chceme dokázat bezespornost teorie, musíme k tomu použít nějakou silnější teorii – o jejíž bezespornosti ovšem nemáme důkaz. V bezespornost tedy musíme věřit – respektive ji předpokládat.
Přes všechny tyto výsledky má prvořádová logika svůj význam. Ačkoliv nelze formalizovat veškerá matematika, jsou velké oblasti které jsou formalizovány. Zermelova-Fraenkelova teorie množin spolu s prvořádovou logikou je považována za základní formalismus pro většinu matematiky.
Existují netriviální teorie, které jsou rozhodnutelné – například existuje algoritmus pro teorii analytické geometrie (respektive, teorie uzavřených reálných komutativních těles je rozhodnutelná).
Matematická indukce je způsob jak dokázat, že nějaké tvrzení platí pro všechna přirozená čísla. Vždy se skládá ze
Pokud platí tyto dva kroky, tvrzení platí pro všechna přirozená čísla.
Toto základní schéma má více variant:
Na matematickou indukci lze také pohlížet z trochu jiného pohledu – jako rozhodování o platností výroků indexovaných přirozenými čísly . Pak lze základní princip indukce zapsat následující formulí:
Podobně lze zapsat i upravenou indukci.
Strukturní indukce je zobecnění matematické indukce, které lze použít pro libovolnou fundovanou uspořádanou množinu. Uspořádaná množina je fundovaná, pokud pro každou její neprázdnou podmnožinu existuje minimální prvek. Pak aby tvrzení platilo pro všechny prvky takové množiny stačí dokázat:
Typicky se setkáváme se strukturální indukcí u definic pomocí indukce – což je nejčastější konstruktivní způsob definice potenciálně nekonečných struktur. Konkrétně většinou půjde o:
Občas se říká, že indukce probíhá vzhledem k délce seznamu a výšce stromu.
Protože důkazy jsou v zásadě seznamy a formule jsou v zásadě stromy (abstraktní syntaktické stromy), tento typ důkazu se typicky používá i pro tyto struktury. Tímto způsobem se dokazuje úplnost dokazovacího systému (axiomy jsou platné a odvozovací pravidla zachovávají platnost). Pro formule typicky dokazujeme, že tvrzení platí pro predikáty (nebo výroky) a že se zachovává aplikací logických spojek.