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