náhled|Hod kostkou nebo mincí je jev, jehož výsledek nelze určit bez toho, aniž by se uskutečnil Ternární logika je vícehodnotová výroková logika, která definuje tři pravdivostní hodnoty - pravdu (T z angl. true), nepravdu (F z angl. false), a nebinární stav, jehož význam se liší mezi jednotlivými interpretacemi ternární logiky. Ternární logika se používá při práci s výroky, které jsou v závislosti na použité interpretaci třetí pravdivostní hodnoty subjektivně, momentálně, objektivně, či z hlediska binární logiky jinak nerozhodnutelné. Kromě širšího množství interpretací má ternární logika oproti binární logice též větší počet operátorů.

Ternární logika se také používá v obvodech ternárních počítačů. Ternární počítače jsou efektivnější než binární, protože základ ternární poziční soustavy je blíž základu přirozeného logaritmu, mají však (při použití konvenčních interpretací ternární logiky) komplikovanější návrhy obvodů. Proto byly navrženy interpretace - např. logika Dubrové, které tento problém co nejvíce kompenzují.

Existují i kvantové analogie ternárních počítačů, které jsou odolnější vůči dekoherenci, než binární kvantové počítače, hůř se s nimi však dělá entanglement.

V budoucnu by mohla být ternární logika použita třeba v nízkoenergetických čipech optimalizovaných pro potřeby umělé inteligence.

Někteří spisovatelé používají terminologii vícehodnotové logiky k vyvolání nebo podbarvení mystických prvků svého díla (podobně jako H. P. Lovecraft použil ve své povídce Volání Cthulhu termíny asociované s neeuklidovskou geometrií). Příkladem takového autorského počinu je románová trilogie The World of Null-A (česky Svět Nula-A nebo Svět non-A) amerického sci-fi autora A. E. van Vogta.

Historie První doložené pokusy o definici predikátové logiky pochází zejména z úvah logika a filosofa Aristotela, který prostřednictvím svých filosofických spisů položil základy exaktního zkoumání logiky jako takové. Aristotelés ve svých spisech za použití slovních sylogismů řešil negaci výroků, konjunkci, disjunkci a různé filosofické problémy jako například problém nahodilých výroků. Tyto úvahy pak byly v 19. století přepsány Georgem Boolem do podoby matematických symbolů a Booleovy algebry. Aristoteles však uznával jenom logiku založenou na dvou hodnotách, na logické pravdě (v binární logice jednička) a logické nepravdě (v binární logice nula).

Aristotelés si byl vědom toho, že pravdivostní hodnota některých výroků (např. Goldbachovy domněnky) může být subjektivně neznámá, přesto předpokládal, že objektivně je každý výrok (ať už tento či jiný) buď pravdivý nebo nepravdivý - neboli, že disjunkce výroku a jeho negace je vždy pravdivá (zákon o vyloučení třetího). Pro výroky, jejichž formulace je podmíněna časovým určením (např. při hodu mincí mi padne orel), Aristotelés považuje zákon o vyloučení třetího také za tautologický, ale aby se vyhnul deterministickému charakteru takového tvrzení, tak tento zákon považuje za platný v rámci možnosti uskutečnění nebo neuskutečnění takového výroku, ne pro výrok samotný.

V 30. letech 20. století však brněnský rodák Kurt Gödel dokázal, že některé výroky mohou být univerzálně nerozhodnutelné - nelze je potvrdit ani vyvrátit bez ohledu na míru znalosti axiomů, které vedly k formulaci takového výroku. Jinými slovy, na takový výrok nelze uplatnit zákon o vyloučení třetího, protože není a nemůže být z jakéhokoliv hlediska pravdivý ani nepravdivý.

Klasickým příkladem takového výroku je problém zastavení, který se nás ptá, jestli můžeme určit u daného algoritmu, pokud známe všechny jeho kroky a zařízení, které algoritmus vyhodnocuje (matematicky dobře popsaný Turingův stroj), zda se algoritmus po uplynutí nějakého času zastaví nebo ne.

V roce 1936 Alan Turing dokázal, že tento problém vyřešit nelze, tj. neexistuje způsob jak určit kdy se algoritmus zastaví nebo ne, takže pro problém zastavení neplatí zákon o vyloučení třetího.

Pro práci s tímto typem výroků je tak nutné zavést třetí pravdivostní hodnotu, pro kterou disjunkce takového výroku a jeho negace není pravdivá, a která vždy není pravdivá ani nepravdivá (viz Kleeneho logika).

Dalším podnětem pro vývoj ternární logiky byl důkaz toho, že Aristotelovo řešení problému nahodilých výroků je modálním klamem, což znamená, že není tautologické (ve skutečnosti je z hlediska binární logiky nerozhodnutelné).

Tento poznatek vedl na začátku 20. let 20. století polského matematika a logika Jana Łukasiewicze k práci na ternární Łukasiewiczově logice (později zobecněna ve spolupráci s Tarským na vícehodnotovou logiku, viz níže), ve které je třetí pravdivostní hodnota použita pro reprezentaci takového výroku, který není pravdivý ani nepravdivý, ale který při uskutečnění časově podmíněných okolností může být buď pravdivý nebo nepravdivý, tedy jednoznačně rozhodnutelný z hlediska binární logiky.

Postupem času pak matematici rozšířili výrokovou logikou na diskrétní počet pravdivostních hodnot (vícehodnotová nebo -hodnotová logika), a nakonec, motivováni Gödelovým důkazem z roku 1932 o nemožnosti charakterizovat logické uvažování vícehodnotovou logikou, na spojitý počet pravdivostních hodnot (nekonečněhodnotová nebo -hodnotová logika), z nichž nejznámější je fuzzy logika, jejíchž pravdivostní hodnoty leží v uzavřeném intervalu od nuly do jedné.

Definice

Kleeneho (K3) logika Nechť je číselná reprezentace pravdivostní hodnoty pravdivého výroku rovna 1, výroku s neznámým stavem rovna 0, a výroku nepravdivého rovna -1.

Dále definujme negaci jako změnu znaménka číselné reprezentace pravdivostní hodnoty výroku. Z toho plyne, že výrok s neznámým stavem je jediným výrokem, jehož negace je rovna sama sobě (). Zároveň také platí, že negací pravdivého výroku je nepravdivý výrok () a naopak (), což dokazuje, že je tato definice logicky konzistentní s předchozí, binární logikou.

Podle Gödelovy interpretace výrokové logiky je výsledkem konjunkce (operace AND) ten výrok, který má mezi operandy nejmenší pravdivostní hodnotu. Z toho plyne, že výsledkem konjunkce pravdivého výroku a výroku s neznámým stavem je výrok s neznámým stavem (). Zároveň platí, že konjunkce jakéhokoliv výroku s nepravdivým výrokem je vždy nepravdivá, což souhlasí s definicí konjunkce z binární logiky.

Podobným způsobem lze interpretovat výsledek disjunkce (operace OR) jako ten výrok, který má mezi operandy největší pravdivostní hodnotu. Z toho plyne, že výsledkem disjunkce nepravdivého výroku a výroku s neznámým stavem je výrok s neznámým stavem (). Zároveň platí, že disjunkce jakéhokoliv výroku s pravdivým výrokem je vždy pravdivá, což souhlasí s definicí disjunkce z binární logiky.

Další operátory známé z binární logiky (exkluzivní disjunkce, ekvivalence, implikace, atd.) se už můžou v Kleeneho logice díky předchozím definicím definovat stejnými operátory jako v binární logice.

Kleeneho interpretace ternární logiky se používá například v implementaci výrokové logiky dotazovacího jazyku SQL, kde je pro třetí pravdivostní hodnotu používáno označení NULL.

Priestova (P3) logika Priestova logika se od Kleeneho logiky liší v interpretaci pravdivostní hodnoty výroku s třetí pravdivostní hodnotou. Kleene definuje výrok s třetí pravdivostní hodnotou jako takový výrok, který není pravdivý, ani nepravdivý (v číselné reprezentaci není kladný, ani záporný — významově je nezjistitelný nebo neodvoditelný, resp. vždy neznámý), takže pro něj neplatí zákon o vyloučení třetího.

Priest však definuje výrok s třetí pravdivostní hodnotou jako takový výrok, který je zároveň pravdivý i nepravdivý (je množinou, která obsahuje obě pravdivostní hodnoty — významově je ambivalentní).

Podle Priesta je tak nositelem pravdivé hodnoty i výrok s třetí pravdivostní hodnotou, proto v Priestově logice platí zákon o vyloučeni třetího.

Vzhledem ke své dialetheické povaze však v Priestově logice (oproti klasické binární logice) neplatí zásada sporu, a tedy ani ex contradictione quodlibet (lat. z kontradikce lze odvodit cokoliv), čímž se řadí mezi parakonzistentní logiky.

Priestova logika se používá např. při práci s logickými paradoxy, které mají z definice ambivalentní charakter (proto se Priestově logice říká také logika paradoxu).

Takovým výrokem je např. věta Tato věta není pravdivá — pokud přijmeme tvrzení věty za pravdivé, tak tím rozporujeme obsah věty, který tvrdí, že je nepravdivá.

Pokud přijmeme větu za nepravdivou, tak tím opět rozporujeme obsah věty, protože kdyby věta potvrzovala svoji nepravdivost, tak by byla pravdivá, ne nepravdivá.

Místo toho je pravdivostní hodnota tohoto výroku právě tou třetí, Priestovou pravdivostní hodnotou — je tedy pravdivá i nepravdivá zároveň (což je v Priestově logice povolené, protože v ní neplatí zásada sporu).

Bočvarova logika Bočvarova logika (v angl. lit. Bochvar logic) se od Kleeneho logiky liší agresivitou třetí pravdivostní hodnoty v disjunkci nebo konjunkci s jiným výrokem, tj. výsledkem disjunkce nebo konjunkce jakéhokoliv výroku a výroku s třetí pravdivostní hodnotou je vždy výrok s třetí pravdivostní hodnotou. Tato vlastnost se projevuje i u dalších, nezákladních operátorů Bočvarovy logiky (např. implikace, exkluzivní disjunkce), protože jsou definovány stejně jako v Kleeneho logice jen za použití konjunkce, disjunkce a negace. Negace a ekvivalence má v Bočvarově logice stejnou pravdivostní tabulku jako v Kleeneho logice.

Łukasiewiczova (Ł3) logika Łukasiewicz považuje stejně jako Kleene za výrok s neznámým stavem takový výrok, který není pravdivý ani nepravdivý, takže pro něj neplatí zákon o vyloučení třetího.

Podle Łukasiewiczovy definice je však třetí pravdivostní hodnota momentálně, ne absolutně nerozhodnutelná, Łukasiewiczovo pojetí ternární logiky lze tím pádem použít pro reprezentaci temporálně podmíněných výroků.

Łukasiewicz ponechává na rozdíl od Kleeneho logiky definici (z binární logiky) pravdivostní hodnoty nepravdivého výroku jako logické nuly, a pravdivostní hodnoty pravdivého výroku jako logické jedničky. Pro Łukasiewicze je tak číselná reprezentace pravdivostní hodnoty výroku s neznámým stavem rovna jedné polovině.

Negace má v Łukasiewiczově logice stejnou pravdivostní tabulku jako v Kleeneho logice, podle Łukasiewicze je však negace výroku výsledkem aritmetického odečtu číselné reprezentace pravdivostní hodnoty výroku od jedničky (která je podle Łukasiewiczovy definice číselnou reprezentací logické pravdy).

Łukasiewiczovu definici negace lze použít i pro definování negace v binární logice. Tato skutečnost dokazuje, že Łukasiewiczova definice negace je logicky konzistentní s negací v binární logice.

Konjunkci a disjunkci lze v Łukasiewiczově logice definovat stejně jako v Kleeneho logice, nebo je zpětně definovat pomocí negace a Łukasiewiczovy interpretace implikace (viz níže).

Dalším rozdílem oproti Kleeneho logice je v Łukasiewiczově interpretaci implikace. Kleene definuje implikaci podle pravidel binární logiky jako výsledek disjunkce negovaného výroku a jiného výroku. Kleeneho definice implikace tím pádem odpovídá klasické materiální implikaci známé z binární logiky.

Łukasiewicz však definuje implikaci za použití číselných reprezentací pravdivostních hodnot operandů jako výsledek konjunkce logické pravdy s negovaným výrokem sečteným (aritmetickým operátorem sčítaní) s pravdivostní hodnotou jiného výroku.

Pravdivostní tabulka Łukasiewiczovy implikace se tak od Kleeneho implikace liší ve výsledku implikace dvou výroků s neznámým stavem. Podle Łukasiewiczovy definice je výsledkem této implikace pravdivý výrok, zatímco podle Kleeneho definice je výsledkem takové implikace výrok s neznámým stavem.

Łukasiewiczova logika je zajímavá tím, že pro definici disjunkce a ekvivalence (popř. zpětnou definici konjunkce) nepotřebuje Gödelovu interpretaci výrokové logiky, stačí ji jenom negace a Łukasiewiczova interpretace implikace.

Tímto způsobem lze definovat disjunkci výroku a výroku jako , konjunkci výroku a výroku pomocí de Morganových zákonů jako , a ekvivalenci výroku a výroku jako .