21.05.2014 Views

Důkazový asistent HOL a jeho logika

Důkazový asistent HOL a jeho logika

Důkazový asistent HOL a jeho logika

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Důkazový <strong>asistent</strong> <strong>HOL</strong> a <strong>jeho</strong> <strong>logika</strong><br />

Jiří Raclavský<br />

Abstract (Proof Assistant <strong>HOL</strong> and Its Logic): In the first part of this paper, I report on actual development of<br />

software called proof assistants or interactive theorem provers. In the second part of the paper, I focus on the<br />

description of logic inbuilt in one of the most known proof assistants, <strong>HOL</strong>, which is a kind of typed lambdacalculus.<br />

Keywords: proof assistants; theorem provers; <strong>HOL</strong>; typed lambda-calculus.<br />

Tento článek má dvě části. V prvé stručně referuji o softwarech nazývaných proof assistants<br />

či interactive theorem provers. V druhé části se soustředím na popis logiky, která je<br />

zabudována do jednoho z nejznámějších takovýchto softwarů, <strong>HOL</strong>. Ačkoli <strong>HOL</strong> je zkratkou<br />

za ‚higher-order logic‘, což by snad mohla být jistá predikátová <strong>logika</strong>, jedná se o lambda<br />

kalkul s typy.<br />

1. Důkazové <strong>asistent</strong>y<br />

Důkazové <strong>asistent</strong>y jako <strong>HOL</strong> nejsou primárně určeny pro logiky, ale pro matematiky.<br />

Ovšem predikátová <strong>logika</strong> prvního řádu bývá jejich součástí, což je pro <strong>logika</strong> zajímavé.<br />

Důkazové <strong>asistent</strong>y mají matematikům sloužit k dokazování jednak známých, jednak<br />

neznámých teorémů. Lidský uživatel má přitom možnost implementovat různé strategie,<br />

ukládat si mezivýsledky a rovněž přenechat rutinní práce na softwaru samotném. Je to tedy<br />

softwarový nástroj (prostředí, program) určený k provádění důkazů ve spolupráci s lidským<br />

operátorem.<br />

S oblastí počítačově podporovaného dokazování (computer-aided proofs) souvisí<br />

automated theorem proving (ATP), 1 resp. automated deduction. To nás nyní nezajímá, poněvadž<br />

tato oblast pokrývá programy, které mají na starosti např. prokázání rozhodnutelnosti<br />

logik, ověřování důkazů, apod., anebo třeba prověřování navržených logických obvodů. Pod<br />

tuto oblast spadá automated proof checking, 2 prý velmi rozvinutá oblast automatického<br />

1 Http://en.wikipedia.org/wiki/Automated_theorem_prover/.<br />

2<br />

Http://en.wikipedia.org/wiki/Automated_proof_checking/.<br />

1


uvažování (reasoning). Některé tyto programy mohou být velmi jednoduché. Některé jsou<br />

částmi programů jako <strong>HOL</strong>. Vzhledem k existenci těchto programů je tedy vhodné v případě<br />

programů, které zajímají nás, hovořit výslovně jako o interactive theorem provers, resp.<br />

proof assistants.<br />

Dostupné a přitom spolehlivé informace o problematice důkazových <strong>asistent</strong>ů<br />

překvapivě v současnosti chybí. Například relevantní heslo Wikipedie 3 je v současnosti<br />

téměř prázdné a některé údaje v něm dokonce chybné. Nezbývá než se opírat o sdělení<br />

příznivců jednotlivých <strong>asistent</strong>ů na jejich webech, anebo o snad příliš zobecňující<br />

přehledové texty, které se však věnují většinou poněkud jinému problému.<br />

Jistě není smyslem této stati suplovat čtenářovu schopnost získávat informace třeba<br />

na internetu, proto se omezím jen na hrst doporučení, o jaké informace se na internetu<br />

aspoň v počátku opřít. Historicky zajímavý je popis období od doby implementace λ-kalkulu<br />

Robinem Milnerem do jím vyvinutého jazyka LCF (Logic for Countable Functions) 4<br />

a sestavení důkazového <strong>asistent</strong>a LCF theorem prover ve Stanfordu a Edinburghu na<br />

počátku 70. let 20. století, viz k tomu (Gordon 1996).<br />

Dále je zajímavý vyhlášený projekt „převodu matematiky do počítačů“, Project QED 5<br />

a vůbec idea formalized mathematics. Cenné jsou v současnosti komentáře na blogu<br />

Formalized Mathematics 6 (mj. všechny tyto tři aktivity se točí kolem <strong>asistent</strong>a Mizar). Zdá<br />

se ovšem, že celkově tyto projekty zatím nemají žádné zázračné výsledky. Prý nemají ani<br />

všeobecnou podporu matematiků. 7<br />

Zajímavý je v této souvislosti seznam 100 významných teorémů, přičemž je uvedeno,<br />

v kterém <strong>asistent</strong>u (a kterým operátorem) byly dokázány. 8 Položka v tomto seznamu vypadá<br />

např. takto: „5. Prime Number Theorem: <strong>HOL</strong> Light (John Harrison), Isabelle (Jeremy Avigad<br />

et al.)“, anebo třeba: „6. Gödel‘s Incompleteness Theorem: <strong>HOL</strong> Light (John Harrison), Coq<br />

(contrib., Russell O‘Connor), nqthm (Natarajan Shankar)“. V současnosti prý bylo dokázáno<br />

87% oněch teorémů, přičemž úspěšnost <strong>asistent</strong>ů je aktuálně tato:<br />

3<br />

Http://en.wikipedia.org/wiki/Proof_assistant/.<br />

4 Http://en.wikipedia.org/wiki/Logic_for_Computable_Functions/.<br />

5 Http://en.wikipedia.org/wiki/QED_manifesto/.<br />

6 Http://slawekk.wordpress.com/2010/11/17/the-next-generation-of-proof-assistants-ten-questions/.<br />

7 Za tuto poznámku vděčím doc. Vítězslavu Švejdarovi.<br />

8 Viz Formalizing 100 Theorems, http://www.cs.ru.nl/~freek/100/. Srov. s The Hundred Greatest Theorems,<br />

http://pirate.shu.edu/~kahlnath/Top100.html.<br />

2


<strong>HOL</strong> Light 84<br />

Mizar 52<br />

Coq 49<br />

Isabelle 47<br />

ProofPower 42<br />

PVS 16<br />

nqthm/ACL 12<br />

NuPRL/MetaPRL 8<br />

<strong>HOL</strong> Light, Isabelle a ProofPower patří do rodiny <strong>HOL</strong>. Coq je vlastně také založen na<br />

λ-kalkulu, Nuprl ostatně rovněž. Nqhtm/ACL, avšak i PVS, jsou založeny na Lispu, a tím<br />

vlastně také na λ-kalkulu. Mizar je založen na predikátové logice prvního řádu.<br />

Na první pohled to tedy vypadá jako značné vítězství λ-kalkulu, resp. funkcionálního<br />

(a typového) přístupu k základům matematiky nad přístupem množinovým, predikátovou<br />

logikou. Takto by to ale nemělo být interpretováno bez výhrady. Poněvadž třeba<br />

Isabelle/<strong>HOL</strong> byla před cca 8 lety (kdy jsem se tématem začal zaobírat) prezentována jako<br />

implementace prvořádové logiky s jakýmsi λ-kalkulovým přívěskem; i jiné verze <strong>HOL</strong>u<br />

kolísají v míře, v jakém se podle vývojářů opírají o prvořádovou logiku. Může se ale jednat<br />

jen o způsob podání, kdy jsou tyto programy prezentovány pro většinové publikum, tedy<br />

jakožto založené víceméně na PL1 (FOL).<br />

Velmi stručně se nyní zmiňme o hlavních současných rivalech <strong>HOL</strong>u. Coq 9 vychází<br />

z kalkulu induktivních konstrukcí odvozeného od kalkulu konstrukcí Thierry Coquanda. 10<br />

Projekt je francouzský. Mizar 11 je v zásadě polský a je v současnosti zřejmě velmi tlačen<br />

nahoru soustředěným úsilím (např. před implementací je teorém diskutován v časopise<br />

příznivců Mizaru apod.). Opírá se o Tarski-Grothendieckovu teorii množin 12 a prvořádovou<br />

logiku. (Znovu zde opakuji, že je namístě být opatrný při zobecňování výsledků do<br />

budoucna. Před deseti lety byla Isabelle/<strong>HOL</strong> opěvována − mj. manuál tehdy vyšel knižně 13 −,<br />

9 Http://coq.inria.fr/.<br />

10 Http://en.wikipedia.org/wiki/Calculus_of_constructions/.<br />

11 Http://mizar.org/.<br />

12 Http://en.wikipedia.org/wiki/Tarski–Grothendieck_set_theory.<br />

13<br />

Srov. aspoň http://www4.in.tum.de/~nipkow/lncs2283/.<br />

3


v současnosti je to projekt spíš upadlý. 14 ) K Nuprlu, 15 nqhtm/ACL 16 a PVS 17 viz níže<br />

odkazované webové zdroje.<br />

Zajímavý je současný odhad budoucího vývoje od autora blogu Formalized<br />

Mathematics, Slaweka K. Ten mj. vyslovuje trend budoucích typově neutrálních základů,<br />

nad nimiž bude typová vrstva. Nemá dojít k omezování na ty nebo jiné základy (např. ZFC),<br />

aby byl daný <strong>asistent</strong> dík své neutralitě plausibilnější pro širší okruh uživatelů. Nedoufá či<br />

nerozumí otázce po implementaci parciality funkcí (ta v <strong>asistent</strong>ech chybí). Nemyslí si, že je<br />

třeba se věnovat pokrytí teorie kategorií.<br />

Jen některé z důkazových <strong>asistent</strong>ů jsou volně dostupné, jen některé jsou snadno<br />

instalovatelné např. pod Windows, jen některé mají obsáhlou dokumentaci. Také platí, že<br />

obsluha takového programu není triviální. Triviální a důvěrně známá není ani metoda<br />

dokazování. Zaznamenal jsem dokonce informaci, že provést první důkaz trvá studentovi<br />

matematiky asi měsíc studia. Proto jsou mu doporučeny úvodové kurzy, jaké jsou např. ve<br />

Spojeném království (UK) vypisovány. Využitelnost důkazových <strong>asistent</strong>ů i jako doplňku<br />

výuky je následně přinejmenším na humanitních oborech zcela vyloučena.<br />

Výše tu a tam naznačovaný pesimismus by však měl být ihned kompenzován<br />

vyjádřením celkového optimismu ve věci komputerové matematiky. K tomuto doporučuji<br />

např. text (Barendregt, Wiedijk 2005), který se blíže vyjadřuje nejen k implementované<br />

matematice, ale i k poměrům mezi důkazovými <strong>asistent</strong>y.<br />

2. <strong>HOL</strong> a <strong>jeho</strong> <strong>logika</strong><br />

Jak už bylo naznačeno, rodinu <strong>HOL</strong> představuje několik <strong>asistent</strong>ů. Nyní je to <strong>HOL</strong>4, 18<br />

s jazykem Moscow ML, 19 <strong>HOL</strong> Light 20 s jazykem OCaml, 21 Isabelle 22 i ProofPower 23 (z počátku<br />

14 Vděčím Mgr. Svatoplukovi Nevrklovi za informaci, že Brazilci ohlásili opětovný rozvoj projektu Isabelle.<br />

15 Http://www.nuprl.org/.<br />

16<br />

Http://en.wikipedia.org/wiki/Nqthm/, http://www.cs.utexas.edu/ftp/boyer/nqthm/,<br />

http://en.wikipedia.org/wiki/ACL2/, http://www.cs.utexas.edu/~moore/acl2/.<br />

17<br />

Http://en.wikipedia.org/wiki/Prototype_Verification_System/, http://pvs.csl.sri.com/.<br />

18 Http://hol.sourceforge.net/.<br />

19 Http://www.itu.dk/~sestoft/mosml.html.<br />

20 Http://www.cl.cam.ac.uk/~jrh13/hol-light/.<br />

21 Http://caml.inria.fr/ocaml/.<br />

22 Http://www.cl.cam.ac.uk/research/hvg/isabelle/.<br />

23<br />

Http://www.lemma-one.com/ProofPower/index/.<br />

4


komerční) jsou založeny na jazyku Standard ML. 24 Uváděné jazyky jsou verze jazyka ML<br />

(‚meta-language‘). Blíže k vývoji vedoucímu k rodině <strong>HOL</strong> viz např. (Gordon 1996).<br />

Z důvodů dostupnosti, jednoduché instalace pod Windows, nulové pořizovací ceny<br />

a přítomnosti obsáhlých manuálů (viz odkazy níže), jsem se v poslední době zabýval<br />

programem <strong>HOL</strong>4 (nadále jen <strong>HOL</strong>).<br />

Metajazykem tohoto systému je Moscow ML, objektovým jazykem je jazyk <strong>HOL</strong>u4; v rámci<br />

metajazyka uživatel manipuluje prvky objektového jazyka. V obou případech se jedná<br />

o poněkud specifický typovaný lambda kalkul. (Níže se budeme zajímat jen o jazyk <strong>HOL</strong>u).<br />

Jedná se očividně o:<br />

a) jazyk jednoduché teorie typů<br />

b) pouze s totálními funkcemi<br />

c) s explicitní práci s typy, resp. s typovou polymorfií.<br />

Níže se k tomuto vrátím detailněji. 25<br />

Systém dedukce v <strong>HOL</strong>, platí pro něj jako celek, je sekvenční systém. Uplatněno je 8<br />

pravidel inference: assumption introduction, reflexivity, beta-conversion, substituition,<br />

abstraction, type instantitation, discharging an assumption, modus ponens. Vidíme, že<br />

kromě známých pravidel (modus ponens, beta konverze) jsou tu i pravidla méně známá<br />

(např. type instantitation). Pravidla jsou formulována v manuálu velmi jednoduše. Nejde<br />

přitom ani tak o to, že tu nejsou komplikace s parcialitou (jaké jsou např. v teorii typů<br />

s parciálními funkcemi, viz Tichý 1982), ale o to, že jsou v manuálu posléze upřesněna.<br />

Kromě těchto pravidel jsou tu ještě nepodmíněná inferenční pravidla, axiómy. Ty jsou<br />

specifické pro každou z jednotlivých tzv. teorií, které jsou obsaženy v <strong>HOL</strong>u (teorií je např.<br />

teorie aritmetiky). Pro nás je zajímavá teorie LOG, která je teorií predikátové logiky prvního<br />

řádu, ovšem obohacenou o práci s typy. Axiómy LOG se nápadně podobají např. těm, co<br />

známe z Churchovských prací, zde např. |- T = ((λx bool . x)= (λx bool . x)), |- ∀ = λP α → bool . P=(λx α . T)<br />

(první axióm „definuje“ pravdivostní hodnotu pravda, druhý „definuje“ obecný<br />

kvantifikátor). Nějaké „normální“ axiómy PL1 (FOL) zde nejsou.<br />

24 Http://en.wikipedia.org/wiki/Standard_ML, http://standardml.org/.<br />

25<br />

Nechci však v tomto textu zacházet do detailů logické ortografie či nejostřejších distinkcí.<br />

5


Podívejme se nyní na jazyk <strong>HOL</strong>. 26 Připomeňme si nejdříve znění Churchovy (Church<br />

1940) jednoduché teorie typů, byť v zobecnění podle Tichého (např. Tichý 1982). Nechť bází B<br />

je množina vzájemně disjunktních kolekcí primitivních objektů:<br />

a) Každý prvek B je typem nad Β.<br />

b) Jestliže ξ, ξ 1 , ..., ξ n jsou (libovolnými) typy nad B, tak (ξξ 1 ...ξ n ), tj. kolekce totálních<br />

a parciálních funkcí z ξ 1 , ..., ξ n do ξ, je typem nad B.<br />

c) Nic jiného, co neplyne z a) nebo b), není typem nad B. 27<br />

Ve srovnání s tímto má Church specifickou bázi B, totiž B Ch ={ι,ο} (tj. individua, pravdivostní<br />

hodnoty). Church se rovněž omezil jen na totální funkce. To mu pak umožnilo uplatnit<br />

Schönfinkelovu redukci n-árních funkcí na unární. 28 Tato redukce neplatí, jak Tichý dokázal<br />

v úvodu statě (Tichý 1982), pro parciální funkce; tato skutečnost mj. znamená, že<br />

implementace parciality do důkazových <strong>asistent</strong>ů povede ke značným komplikacím už od<br />

samého začátku.<br />

V prostředí <strong>HOL</strong> jsou uznány jen totální funkce. Rozdíl proti Churchovi je však ten, že<br />

se <strong>HOL</strong> neomezuje na specifickou bázi B Ch . Výklad v manuálu je nejprve obecný, teprve<br />

později dochází ke specifikaci báze. Například je specifikován typ ο (typ bool, tj. obsahuje T<br />

a F). Specifikován je ovšem i typ pro formule (termy). Odtud mj. rychle dostáváme odpověď<br />

na otázku, zda přece jen není teorie typů v <strong>HOL</strong> rozvětvená: není, protože nejsou odlišeny<br />

λ-termy (formule) a jejich strukturované významy (např. ve smyslu Tichého konstrukcí,<br />

nikoli ve smyslu denotovaných množinových entit). 29 Manuál dále upřesňuje, že alespoň<br />

jeden prvek B (nejlépe typ ι) je nekonečnou množinou, že tu jsou rovněž typy pro<br />

uspořádané dvojice, apod., čímž se výklad přibližuje množinovým foundations.<br />

26<br />

Níže budeme pod manuálem rozumět pouze <strong>jeho</strong> část LOGIC, v němž lze místa, o nichž budu hovořit, snadno<br />

najít.<br />

27<br />

Připomínám zde, že v rámci teorie typů jsou množinami-třídami ξ-objektů rozuměny charakteristické<br />

funkce definované na ξ-objektech.<br />

28 Opakem oné redukce je curryfikace, která je oblíbená v prostředí computer science. (Filosofický logik<br />

důvěrně zná curryfikované funkce, jimiž jsou monadické zobecněné kvantifikátory jako ‚All‘, které jsou běžně<br />

převáděny na relace mezi třídami.)<br />

29 Hyperintenzionalitu lze v systému tedy jen (neúplně) simulovat – a to způsobem zavedeným již<br />

Richmondem Thomasonem (autor statě vysvětlí na požádání).<br />

6


Dalším rysem jazyka <strong>HOL</strong> je typová nespecifičnost, resp. důraz na typovou polymorfii.<br />

Tato skutečnost je pro čtenáře odchovaného v prostředí filosofické logiky poněkud<br />

nezvyklá. Jakmile totiž přijmeme myšlenku, že funkce jako např. identita = se aplikuje na<br />

specifický typ objektů – a tedy máme vždy typově specifickou funkci = ξ (kde ξ je konkrétní<br />

typ objektů na nichž = ξ operuje) –, tak je nesprávné uvažovat, že = je v jakémkoli smyslu<br />

typově nevyhraněná, polymorfní. Pocit nezvyku ovšem pramení už z toho, že v prostředí<br />

(filosofické) logiky jsme zvyklí takřka výlučně na Church-style theory of types, kdežto<br />

v computer science byla reflektována i Curry-style theory of types. 30 Zatímco první styl<br />

odpovídá původnímu, tj. vlastně Russellově výkladu myšlenek typů, 31 Curryho styl vychází<br />

z Curryho myšlenek, podle nichž např. ‚=‘ je i při typové nevyhraněnosti o sobě<br />

plnohodnotnou funkcí. Sám jazyk <strong>HOL</strong> je však bližší reálnému Churchovi (a též i např.<br />

Tichému), který např. teorém reflexivity identity (to je jen příklad) dokázal pro = ξ , tedy<br />

identitu s neurčeným typem, a tím měl teorém reflexivity dokázánu pro jakoukoli typově<br />

specifickou identitu. Neboli jazyk <strong>HOL</strong> je praxi bližší i v tomto směru. 32<br />

Do objektového jazyka, tj. do jazyka <strong>HOL</strong>, jsou explicitně zavedeny typy, formule<br />

(a další termy) obsahují znaky pro typy či proměnné pro typy. 33 Příkladem je výše uvedená<br />

λ-abstrakce λP α → bool . P = (λx α . T), v níž ‚α‘ indikuje libovolný typ a ‚bool‘ indikuje<br />

(pojmenovává) typ ο. 34 Z pohledu (filosofického) <strong>logika</strong> je však toto ilegální. Dle<br />

„conventional wisdom“ filosofické logiky přece nelze o typech v typové teorii „mluvit“ – již<br />

Kurt Gödel přece ukázal (Gödel 1944), že Russellova tvrzení o typových restrikcích tyto<br />

restrikce samy překračují, nedodržují je (a tudíž je celá teorie typů neodůvodněná). Tato<br />

skutečnost nemusí být zpozorována u <strong>HOL</strong>u hned, poněvadž popis implementované teorie<br />

30 K popisu blíže viz např. (Hindley 1997/2008).<br />

31 Viz (Russell 1903), mám zde však na mysli tam uvedenou „čistou“ teorii typů (kterou později převzal P. F.<br />

Ramsey), nikoli druhou tam uvedenou teorii, podle níž mohou být pro funkce sloučeny obory, pokud tak<br />

nedojde ke zhoubné sebeaplikaci funkce na sebe samu.<br />

32<br />

Hindley uvádí (Hindley 1997/2008), že jazyk ML vychází z jednoduché teorie typů a to ve variantě<br />

type-assignment theory (TA), která je studována např. právě v knize (Hindley 1997/2008). Manuál <strong>HOL</strong>u se<br />

však při popisu přijaté logiky neodvolává na (Hindley 1997/2008), ale na poněkud známější a též starší práci<br />

(Andrews 1986/2002). Pro kontrast s těmito knihami můžeme referovat na knihu (Kamareddine, Laan,<br />

Nederpelt 2006), která se snaží soustředit na popis λ-kalkulu, jak je implementován např. v <strong>asistent</strong>ech Nurpl,<br />

Coq, resp. v je předcházejícím jazyku Automath (viz http://www.win.tue.nl/automath/) Nicolaase Goverta de<br />

Bruijn.<br />

33 Dle manuálu je takto zavedl do jazyka PPλ systému LCF už Robin Miller.<br />

34<br />

Manuál to vysvětluje poněkud jinak, ale od toho zde abstrahuji.<br />

7


typů je v manuálu důsledně vyveden v syntaktickém módu. Takže samy typy nejsou podle<br />

tohoto popisu nějakými objekty samy o sobě, jsou to jen znaky, které denotují množiny<br />

entit. Vlastně je v tomto popisu zaveden, a to dříve než je uveden jazyk λ-notace, svébytný<br />

jazyk typů.<br />

V následujícím stručném výkladu ukážu, jak se Gödelově kritice vyhnout, resp. ukážu,<br />

v jakém přesně jazyce lze o typech mluvit. 35 Čili určím, jakým jazykem − jazykem jaké teorie<br />

typů − je jazyk <strong>HOL</strong>. Nejprve několik pomocných pojmů. Každá explikace nějakých<br />

intuitivních před-teoretických pojmů z oblasti PTP x pomocí rigorózních, teoretických<br />

pojmů z oblasti TP x − v našem případě tedy entit nějaké konkrétní teorie typů TT x − probíhá<br />

v nějakém explikačním rámci ER x . Například Tichý nebo Church konkretizují B TC , a tím pak i<br />

TT TC , jakožto obsahující typ individuí a typ pravdivostních hodnot. Entity z těchto dvou<br />

typů korespondují v daném ER TC jistým před-teoretickým individuím a před-teoretickým<br />

pravdivostním hodnotám, tj. entitám z PTP TC .<br />

Uvažme nyní ER R , kdy v části PTP R jsou před-teoretická individua a před-teoretické<br />

pravdivostní hodnoty jako u TT TC . Ovšem dále má ER R jako před-teoretické objekty entity,<br />

jež jsou v TP TC typy. Tyto pro nás předteoretické entity explikujeme v ER R pomocí logicky<br />

primitivních entit ι, ο, ..., které jsou v části TP R našeho ER R prvky specifického atomického<br />

typu δ. Teorii typů, mezi jejímiž atomickými typy je takovýto typ δ, říkejme třeba vyšší teorie<br />

typů. Je vhodné si uvědomit, že TT R je jakýmsi „metajazykem“ k TT TC .<br />

Všimněme si, že TT R je schopna mluvit o TT TC , poněvadž disponuje nejen jejími<br />

individui a pravdivostními hodnotami, a funkcemi nad nimi, ale i jejími typy (resp. jejich<br />

explikačními koreláty). Přes tyto typy jakožto objekty − samozřejmě, že ne přes své vlastní<br />

typy − lze v TT R kvantifikovat, apod. Právě kvantifikace přes typy, kdy tyto všechny jsou<br />

v oboru jisté proměnné d, je možná díky tomu, že typy jsou explikovány jako primitivní<br />

objekty náležící do jednoho typu δ. Takže sémantika formule ‚λP α → bool . P = (λx α . T)‘ je vlastně<br />

„ta funkce z funkcí P, jež α-objekty zobrazují na bool-objekty, do toho, co je výsledkem<br />

aplikace = na ...“, 36 kde ‚α‘ probíhá typ δ a ‚bool‘, tedy ‚ο‘, pojmenovává jeden prvek z δ, totiž<br />

ο.<br />

I tvrzení ‚Karel je typu ι‘, anebo třeba ‚X je typu ξ‘, je smysluplně (a bez rozporu<br />

s myšlenkou teorie typů) analyzovatelné ve vyšší teorii typů, kdy ‚ι‘ označuje δ-objekt ι<br />

35 Opírám se přitom o výsledky mnou prezentované již r. 2009 na konferenci Perspectives on Russell.<br />

36 Za onu sémantickou entitu, slovně vyjádřenou výrazem mezi dvojitými uvozovkami, mám Tichého tzv.<br />

konstrukci.<br />

8


a ‚typu‘ označuje určitou relaci mezi ι-objekty a δ-objekty. 37 Domnívám se tedy, že ač to<br />

z manuálu <strong>HOL</strong>u nemusí být patrné, jazyk <strong>HOL</strong>u je právě takovým jazykem vyšší teorie typů,<br />

který dokáže „mluvit o typech“. 38<br />

Literatura<br />

Andrews, Peter B. (1986/2002): An Introduction to Mathematical Logic and Type Theory: To Truth Through<br />

Proof. Springer (Applied Logic Series vol. 27).<br />

Barendregt, Henk, Wiedijk, Freek (2005): The Challenge of Computer Mathematics. Philosophical<br />

Transactions of The Royal Society A 363, 1835,<br />

http://rsta.royalsocietypublishing.org/content/363/1835/2351.<br />

Gordon, Michael J. C. (1996): From LCF to <strong>HOL</strong>: a Short History. Dostupné např. na<br />

http://www.cl.cam.ac.uk/~mjcg/papers/HolHistory.pdf.<br />

Gödel, Kurt (1944): Russell’s Mathematical Logic. In: Paul A. Schilpp (ed.), The Philosophy of Bertrand<br />

Russell, The Library of Living Philosophers, Evanston, Chicago: Northwestern University, 125-153.<br />

Hindley, J. Roger (1997/2008): Basic Simple Type Theory. Cambridge, New York: Cambridge University<br />

Press.<br />

Church, Alonzo (1940): A Formulation of the Simple Theory of Types. Journal of Symbolic Logic 5: 56-<br />

68.<br />

Kamareddine, Fairouz D., Laan, Twan, Nederpelt, Rob (2006): A Modern Perspective on Type Theory:<br />

From Its Origins Until Today. Dordrecht, Boston, London: Kluwer.<br />

Russell, Bertrand (1903/1996): Appendix B: The Doctrine of Types. In: Bertrand Russell, Principles of<br />

Mathematics, Cambridge: Cambridge University Press, 523-528.<br />

The <strong>HOL</strong> documentation (jmenovitě The <strong>HOL</strong> System DESCRIPTION, The <strong>HOL</strong> System LOGIC, The <strong>HOL</strong><br />

System TUTORIAL, The <strong>HOL</strong> System REFERENCE, aktuálně − únor 2012 − všechny ve verzi 7, byť<br />

ještě v létě 2011 to byla verze 6): http://hol.sourceforge.net/documentation.html.<br />

Tichý, Pavel (1982): The Foundations of Partial Type Theory. Reports on Mathematical Logic 14: 57-72.s<br />

37 Dodávám, že v této vyšší teorii typů můžeme názor, že typy jsou univerzální množiny-třídy určitých<br />

objektů, chápat jako významovou záměnu toho, co typy vskutku jsou − totiž že to jsou δ-objekty −, se samými<br />

těmito univerzálními množinami-třídami. Mezi těmito je samozřejmě vztah, např. univerzální množině-třídě<br />

typu (οι) koresponduje ι.<br />

38<br />

Svou analýzu typové teorie <strong>HOL</strong>u naneštěstí ještě nepokládám za definitivní.<br />

9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!