1\chapter{Regole d'inferenza derivate} 2\label{derived-rules} 3 4La nozione di {\it dimostrazione\/} � stata definita in modo astratto nel manuale 5\LOGIC:\linebreak una dimostrazione di un sequente $(\Gamma,t)$ da un insieme di sequenti 6$\Delta$ (rispetto a un sistema deduttivo ${\cal D}$) � 7una catena di sequenti culminanti in $(\Gamma,t)$, tale che ogni 8elemento della catena o appartiene a $\Delta$ o altrimenti segue da 9$\Delta$ e dagli elementi precedenti della catena per deduzione. Anche la nozione 10di {\it teorema\/} � stata definita in \LOGIC: un teorema di un 11sistema deduttivo � un sequente che segue dall'insieme vuoto di 12sequenti per deduzione; cio�, � l'ultimo elemento di una dimostrazione 13dall'insieme vuoto di sequenti, nel sistema deduttivo. In questa sezione, 14le dimostrazioni e i teoremi sono resi concreti in \HOL. 15 16Il sistema deduttivo di \HOL\ 17� stato abbozzato nella Sezione~\ref{rules}, dove 18le otto famiglie d'inferenze primitive che compongono il 19sistema deduttivo sono state specificate da diagrammi. E' stato spiegato che 20queste famiglie d'inferenze sono rappresentate in \HOL\ attraverso 21funzioni \ML, e che i teoremi 22sono rappresentati da un tipo \ML\ astratto chiamato \ml{thm}\index{thm@\ml{thm}}. 23Le otto funzioni \ML\ corrispondenti alle inferenze 24sono operazioni sul tipo \ml{thm}, ed ognuna delle otto 25restituisce un valore di tipo \ml{thm}. E' stato spiegato che il 26tipo \ml{thm} ha dei de-costruttori primitivi, ma nessun costruttore 27primitivo; e che in questo modo, la logica � protetta contro 28la possibilit� di computare teoremi se non per mezzo di funzioni che rappresentano 29inferenze primitive, o loro composizioni. 30 31Infine, la logica \HOL\ primitiva � stata integrata di tre costanti 32primitive e quattro assiomi, per formare la logica base. Le inferenze 33primitive, insieme con le costanti primitive, i quattro assiomi, 34e una collezione di definizioni, forniscono un punto iniziale per 35costruire dimostrazioni, e di conseguenza computare teoremi. Tuttavia, dimostrare 36persino i teoremi pi� semplici a partire da questa base minimale costa uno sforzo 37considerevole. La base non fornisce immediatamente la transitivit� 38dell'eguaglianza, per esempio, o un mezzo per la quantificazione universale; entrambe 39devono a loro volta essere derivate. 40 41\section{Derivazioni Semplici} 42 43Come illustrazione di una dimostrazione in \HOL{}, la seguente catena di 44teoremi forma una dimostrazione (dall'insieme vuoto, nel sistema deduttivo 45\HOL{}), per i particolari termini \ml{``}$t_1$\ml{``}%'' 46e \ml{``}$t_2$\ml{``}, %'' 47entrambi del tipo \HOL\ \ml{``:bool``}:%'' 48 49\begin{enumerate} 50\item $t_1$\ml{ ==> }$t_2$\ml{ |- }$t_1$\ml{ ==> }$t_2$ 51 52\item $t_1$\ml{ |- }$t_1$ 53 54\item $t_1$\ml{ ==> }$t_2$\ml{, }$t_1$\ml{ |- }$t_2$ 55\end{enumerate} 56 57\noindent Cio�, il terzo teorema segue dal primo e dal secondo. 58 59Nella sessione di sotto, la dimostrazione � eseguita nel sistema \HOL, 60usando le funzioni \ML\ \ml{ASSUME}\index{ASSUME@\ml{ASSUME}} e 61\ml{MP}. 62 63\setcounter{sessioncount}{1} 64\begin{session} 65\begin{verbatim} 66- show_assums := true; 67> val it = () : unit 68 69- val th1 = ASSUME ``t1 ==> t2``; 70> val th1 = [t1 ==> t2] |- t1 ==> t2 : thm 71 72- val th2 = ASSUME ``t1:bool`` 73> val th2 = [t1] |- t1 : thm 74 75- MP th1 th2; 76> val it = [t1 ==> t2, t1] |- t2 : thm 77\end{verbatim} 78\end{session} 79 80\noindent Pi� in breve, si potrebbe valutare la seguente, e `contare'\index{contare le inferenze, nelle dimostrazioni HOL@contare le inferenze, nelle dimostrazioni \HOL{}} le 81invocazioni delle funzioni che rappresentano inferenze primitive. 82 83\begin{session} 84\begin{verbatim} 85#set_flag(`timing`, true);; 86false : bool 87Run time: 0.0s 88 89#MP(ASSUME "t1 ==> t2")(ASSUME "t1:bool");; 90t1 ==> t2, t1 |- t2 91Run time: 0.0s 92Intermediate theorems generated: 3 93\end{verbatim} 94\end{session} 95 96\noindent Ciascuno dei tre passi d'inferenza della dimostrazione astratta 97corrisponde all'applicazione % 98% 99\index{inferenze, nella logica HOL@inferenze, nella logica \HOL{}!come applicazioni di funzioni ML@come applicazioni di funzioni \ML}% 100\index{passi di dimostrazione, come applicazioni di funzioni ML@passi di dimostrazione, come applicazioni di funzioni \ML}% 101\index{dimostrazione!la nozione di, nel sistema HOL@la nozione 102 di, nel sistema \HOL}% 103% 104di una funzione \ML\ nell'esecuzione della dimostrazione in \HOL; e ciascuna 105delle funzioni \ML\ corrisponde a un'inferenza primitiva del 106sistema deduttivo. 107 108E' bene sottolineare che, in entrambi i casi, � fatta ogni 109inferenza primitiva nella catena di dimostrazione, nel senso 110che per ogni inferenza, � valutata la corrispondente funzione \ML. Cio�, 111\HOL\ non permette alcuna scorciatoia circa la necessit� di eseguire 112dimostrazioni complete. La scorciatoia fornita dalle regole 113d'inferenza derivate\index{inferenze, nella logica HOL@inferenze, nella logica \HOL{}!nelle regole derivate} 114(come implementate in \ML) riguarda la necessit� di 115\emph{specificare} ogni passo; un qualcosa che sarebbe impossibile per 116una dimostrazione di qualsiasi lunghezza. Si pu� vedere da questo che la regola 117derivata,% 118% 119\index{dimostrazioni, nella logica HOL@dimostrazioni, nella logica \HOL{}!come applicazioni di funzioni ML@come applicazioni di funzioni \ML} 120\index{dimostrazioni, nella logica HOL@dimostrazioni, nella logica \HOL{}!cos� come generate da regole derivate} 121\index{regole derivate, nella logica HOL@regole derivate, nella logica \HOL{}!importanza delle} 122% 123e la sua rappresentazione come una funzione \ML{}, � essenziale alla 124metodologia \HOL{}; la dimostrazione di teoremi altrimenti sarebbe impossibile. 125 126Ci sono, naturalmente, un numero infinito di dimostrazioni, della `forma' 127mostrata nell'esempio, che possono essere condotte in \HOL: una per ogni 128coppia di termini tipizzati \ml{``:bool``}. %'' 129Inoltre, ogni volta che � richiesto un teorema della forma 130 131$$t_1 \ \imp \ t_2, \ t_1 \ \vdash \ t_2,$$ 132 133\noindent la sua dimostrazione deve essere costruita da capo. Per catturare il 134pattern generale dell'inferenza, si pu� scrivere una funzione \ML\ per 135implementare una regola d'inferenza come una derivazione dalle inferenze primitive. 136Astrattamente, una \emph{regola d'inferenza derivata} 137\index{regole derivate, nella logica HOL@regole derivate, nella logica \HOL{}!giustificazione delle} 138% 139� una regola che pu� essere giustificata sulla base delle regole 140primitive\linebreak d'inferenza (e/o degli assiomi). Nel caso attuale, la regola 141ha richiesto lo `scaricamento' delle assunzioni. Essa � specificata per \HOL{} da 142 143\bigskip 144 145\begin{center} 146\begin{tabular}{c} 147$\Gamma${\small\verb% |- %}$t_1${\small\verb% ==> %}$t_2$\\ \hline 148$\Gamma\cup\{t_1\}${\small\verb% |- %}$t_2$ 149\end{tabular} 150\end{center} 151 152\bigskip 153 154\noindent Questa regola generale � valida perch� da un teorema \HOL\ della 155forma $\Gamma${\small\verb% |- %}$t_1${\small\verb%==>%}$t_2$, si pu� derivare il teorema 156$\Gamma\cup\{t_1\}${\small\verb% |- %}$t_2$ 157come nell'esempio specifico di sopra. 158La regola pu� essere implementata in \ML\ come una funzione (diciamo 159\ml{UNDISCH})\index{UNDISCH@\ml{UNDISCH}} che richiama la 160sequenza appropriata d'inferenze 161primitive. La definizione \ML\ di \ml{UNDISCH} � semplicemente 162 163\begin{session} 164\begin{verbatim} 165- val UNDISCH th = MP th (ASSUME(fst(dest_imp(concl th))));; 166> val UNDISCH = fn : thm -> thm 167\end{verbatim} 168\end{session} 169 170\noindent Questo fornisce una funzione che mappa un teorema a un teorema; 171cio�, esegue dimostrazioni in \HOL. 172La seguente sessione illustra l'uso della regola derivata, su 173una conseguenza dell'assioma \ml{IMP\_ANTISYM\_AX}. (Le inferenze sono 174contate.% 175\index{contare le inferenze, nelle dimostrazioni HOL@contare le inferenze, nelle dimostrazioni \HOL{}}% 176% 177) Assumiamo che la stampa dei teoremi sia stata aggiustata come di sopra e che 178\ml{th} sia legato come mostrato di sotto: 179 180\setcounter{sessioncount}{1} 181\begin{session} 182\begin{verbatim} 183#th;; 184|- (t1 ==> t2) ==> (t2 ==> t1) ==> (t1 = t2) 185Run time: 0.0s 186 187#set_flag(`timing`,true);; 188true : bool 189Run time: 0.0s 190 191#UNDISCH th;; 192t1 ==> t2 |- (t2 ==> t1) ==> (t1 = t2) 193Run time: 0.1s 194Intermediate theorems generated: 2 195 196#UNDISCH it;; 197t1 ==> t2, t2 ==> t1 |- t1 = t2 198Run time: 0.0s 199Intermediate theorems generated: 2 200\end{verbatim} 201\end{session} 202 203\noindent Ogni applicazione di successo di {\small\verb%UNDISCH%} 204a un teorema invoca un'applicazione 205di {\small\verb%ASSUME%}, seguita da un'applicazione di {\small\verb%MP%}; 206\ml{UNDISCH} costruisce la 207dimostrazione di due passi per qualsiasi teorema dato (della forma appropriata). 208Come si pu� 209vedere, essa fa affidamento sulla classe delle funzioni \ML\ che accedono alla sintassi \HOL: 210in particolare, \ml{concl} per produrre la conclusione 211del teorema, \ml{dest\_imp} per separare l'implicazione, e il 212selettore \ml{fst} per scegliere l'antecedente. 213 214Questo esempio particolare � molto semplice, ma una regola d'inferenza derivata 215pu� eseguire dimostrazioni di lunghezza arbitraria. Essa pu� fare anche uso di 216regole definite in precedenza. In questo modo, i normali pattern d'inferenza 217possono essere sviluppati molto pi� velocemente e facilmente; la transitivit�, 218la generalizzazione, e cos� via, supportano i pattern d'inferenza familiari. 219 220Quando si entra nel sistema \HOL\ sono pre-definite un numero di regole 221d'inferenza derivate (di cui \ml{UNDISCH} � una delle prime). Nella 222Sezione~\ref{avra_standard}, sono date le derivazioni astratte per 223le regole pre-definite che riflettono i pattern d'inferenza pi� usuali 224del calcolo predicativo (e del lambda calcolo). Come quelle mostrate, alcune delle 225regole derivate pre-definite in \HOL\ generano dimostrazioni relativamente corte. 226Altre invocano migliaia d'inferenze primitive, e chiaramente risparmiano una 227grande quantit� di sforzo. Inoltre, possono essere definite dall'utente regole per 228fare passi ancora pi� ampi, o per implementare pattern pi� specializzati. 229 230Tutte le regole derivate pre-definite in \HOL\ sono descritte 231in \REFERENCE. 232 233\section{Riscrittura} 234\label{avra_rewrite} 235 236\index{riscrittura!regole per|(} 237\index{REWRITE_RULE@\ml{REWRITE\_RULE}|(} 238Nell'insieme d'inferenze derivate che sono pre-definite in 239\HOL\ � incluso un gruppo di regole con delle definizioni complesse che eseguono una limitata 240quantit� di dimostrazione `automatica' di teoremi in forma di riscrittura. L'idea 241e l'implementazione furono sviluppate originariamente da 242Milner\index{Milner, R.} e Wadsworth\index{Wadsworth, C.} per 243l'\LCF\ di Edimburgo\index{LCF@\LCF!Edinburgh}, e furono successivamente implementate 244in modo pi� flessibile ed efficiente da Paulson\index{Paulson, L.} e 245Huet\index{Huet, G.} per l'\LCF\ di Cambridge\index{LCF@\LCF!Cambridge}. 246Esse appaiono in \HOL{} nella forma di Cambridge. La regola base di riscrittura 247� \ml{REWRITE\_RULE}. Tutte le regole di riscrittura sono descritte in 248dettaglio in \REFERENCE. 249 250\ml{REWRITE\_RULE} usa una lista di teoremi equazionali 251\index{teoremi equazionali, nella logica HOL@teoremi equazionali, nella logica \HOL{}!uso dei \ldots nella riscrittura} 252\index{teoremi, nella logica HOL@teoremi, nella logica \HOL{}!equazionali} 253(teoremi le cui conclusioni possono essere considerate avere la forma 254$t_1${\small\verb% = %}$t_2$) per sostituire 255qualsiasi sottotermine di un teorema oggetto che `matcha' $t_1$ con 256l'istanza corrispondente di $t_2$. La regola esegue un matching ricorsivo e a tutte le profondit�, 257fino a quando non possono essere fatte ulteriori sostituzioni, 258usando algoritmi di ricerca, matching e 259istanziazione\index{istanziazione di tipo, nella logica HOL@istanziazione di tipo, nella logica \HOL{}!nella regola di riscrittura} definiti internamente. La validit� 260 di \ml{REWRITE\_RULE} si appoggia 261in definitiva sulle regole primitive \ml{SUBST} (per eseguire le sostituzioni); 262\ml{INST\_TYPE}\index{INST_TYPE@\ml{INST\_TYPE}} (per istanziare i tipi); e le regole derivate per 263la generalizzazione e la specializzazione (si vedano le Sezioni~\ref{avra_gen} 264e \ref{avra_spec}) per istanziare i termini. La definizione 265di \ml{REWRITE\_RULE} in \ML\ 266si basa anche su un grande numero di funzioni \ML\ generali 267e \HOL-oriented. 268%The implementation is partly described in Chapter~\ref{avra_conv}. 269 270In pratica, la regola derivata \ml{REWRITE\_RULE} gioca un ruolo centrale 271nelle dimostrazioni, perch� prende il posto di un grande numero d'inferenze 272che potrebbero accadere in un ordine complesso e non prevedibile. E' diversa 273da qualsiasi altra regola primitiva o pre-definita, primo per il numero 274di inferenze che genera\footnote{Il numero di inferenze eseguite 275 da questa regola � in generale `inflazionato'; cio�, � in genere pi� grande della 276 lunghezza della dimostrazione stessa, se la dimostrazione si potesse `vedere'. Questo 277 accade perch�, nell'attuale implementazione, alcune inferenze sono fatte 278 durante la fase di ricerca che non necessariamente sostiene delle 279 sostituzioni di successo.}; e secondo perch� il suo risultato � spesso 280inaspettato. Il suo potere � accresciuto dal fatto che qualsiasi teorema 281equazionale esistente pu� essere fornito come una `regola di riscrittura', incluso un 282insieme \HOL\ standard di tautologie pre-dimostrate; e queste regole di riscrittura 283possono interagire l'una con l'altra nel processo di riscrittura per trasformare il 284teorema originale. 285 286L'applicazione di \ml{REWRITE\_RULE}, nella sessione di sotto, 287illustra che le sostituzioni sono eseguite a tutti i livelli della 288struttura di un termine. 289L'esempio � numerico; 290gli infissi {\small\verb%"$>"%} e {\small\verb%"$<"%} sono 291le usuali relazioni `maggiore di' e `minore di', rispettivamente, 292e \ml{"SUC"}, 293l'usuale funzione successore. 294Si usa la definizione pre-esistente di {\small\verb%"$>"%}: 295\ml{GREATER} (si veda \REFERENCE). 296Si usa di nuovo la funzionalit� di timinig\index{contare le inferenze, nelle dimostrazioni HOL@contare le inferenze, nelle dimostrazioni \HOL{}}, a titolo informativo, e la stampa 297di teoremi � aggiustata come sopra. 298 299 300\setcounter{sessioncount}{1} 301\begin{session} 302\begin{verbatim} 303#top_print print_all_thm;; 304- : (thm -> void) 305 306#set_flag(`timing`,true);; 307false : bool 308Run time: 0.0s 309 310#REWRITE_RULE 311 [GREATER] 312 (ASSUME "SUC 4 > 0 = (SUC 3 > 0 = (SUC 2 > 0 = (SUC 1 > 0 = SUC 0 > 0)))");; 313##Definition GREATER autoloaded from theory `arithmetic`. 314GREATER = |- !m n. m > n = n < m 315Run time: 1.5s 316Intermediate theorems generated: 1 317 318(SUC 4) > 0 = 319((SUC 3) > 0 = ((SUC 2) > 0 = ((SUC 1) > 0 = (SUC 0) > 0))) 320|- 0 < (SUC 4) = 321 (0 < (SUC 3) = (0 < (SUC 2) = (0 < (SUC 1) = 0 < (SUC 0)))) 322Run time: 0.3s 323Intermediate theorems generated: 23 324\end{verbatim} 325\end{session} 326 327\noindent Si noti che le equazioni 328di riscrittura possono essere estratte da 329teoremi quantificati universalmente. 330Costruire la 331dimostrazione passo passo, con tutte le istanziazioni, 332sostituzioni, ed usi della transitivit�, ecc, 333sarebbe un processo lungo. Le regole di riscrittura lo rendono facile, 334e lo fanno pur continuando a generare l'intera catena d'inferenze. 335\index{REWRITE_RULE@\ml{REWRITE\_RULE}|)} 336\index{riscrittura!regole per|)} 337 338\section{Derivazione delle Regole Standard} 339\label{avra_standard} 340 341\index{regole derivate, nella logica HOL@regole derivate, nella logica \HOL{}!pre-definite|(} 342% 343Il sistema \HOL{} fornisce tutte le regole standard d'introduzione ed 344eliminazione del calcolo dei predicato pre-definite come inferenze 345derivate. Sono queste regole, piuttosto che le regole 346primitive, che normalmente si usano in pratica. In questa sezione, sono date 347le derivazioni di alcune delle regole standard, in sequenza. 348Queste derivazioni usano solo gli assiomi e le definizioni nella teoria 349\theoryimp{bool} (si veda la Sezione~\ref{boolfull}), le otto regole 350d'inferenza primitive della logica \HOL, e le inferenze definite in precedenza nella 351sequenza. 352 353I teoremi,% 354% 355\index{teoremi, nella logica HOL@teoremi, nella logica \HOL{}!come regole d'inferenza}% 356% 357in accordo con la definizione data all'inizio di questo 358capitolo, sono trattati come regole senza ipotesi; cos� la derivazione 359di un teorema assomiglia alla derivazione di una regola eccetto per il fatto che non 360ha ipotesi. (La derivazione di \ml{TRUTH}, Sezione~\ref{avra_T}, � 361l'unico esempio dato di questo, ma ce ne sono molti altri in \HOL.) 362Ci sono anche alcune regole che sono intrinsecamente pi� generali dei 363teoremi. Per esempio, per ogni due termini $t_1$ e $t_2$, il teorema 364$\vdash(\lquant{x}t_1)t_2 = t_1[t_2/x]$ segue dala regola primitiva 365\rul{BETA\_CONV}. La regola \ml{BETA\_CONV} restituisce un teorema per ogni 366coppia di termini $t_1$ e $t_2$, ed � quindi equivalente a una 367famiglia infinita % 368% 369\index{famiglie d'inferenze, nella logica HOL@famiglie d'inferenze, nella logica \HOL{}}% 370% 371di teoremi. Nella logica \HOL{} non � possibile esprimere alcun teorema singolo 372che sia equivalente a \rul{BETA\_CONV}.% 373\index{teoremi, nella logica HOL@teoremi, nella logica \HOL{}!regole non esprimibili come} 374\index{beta-conversione, nella logica HOL@beta-conversione, nella logica \HOL{}!non esprimibile come un teorema}% 375% 376%(See Chapter~\ref{avra_conv} for further discussion of this point.) 377(\ml{UNDISCH} non � una regola di questo tipo, dal momento che pu�, di fatto, essere 378espressa come un teorema.) 379 380Per ogni derivazione data di sotto, c'� la definizione di una funzione \ML\ 381nel sistema \HOL\ che implementa la regola derivata come una procedura in 382\ML. L'attuale implementazione nel sistema \HOL\ differisce in qualche 383caso dalle derivazioni date qui, dal momento che il codice del sistema � stato 384ottimizzato per performance migliori. 385 386Inoltre per ragioni che sono pi� che altro storiche, non tutte le 387inferenze che sono derivate in termini della logica astratta sono 388di fatto derivate nella versione attuale del sistema \HOL. Pi� precisamente, 389ci sono attualmente circa quaranta regole che sono installate nel sistema 390su una base `assiomatica', ognuna delle quali dovrebbe essere derivata attraverso un'inferenza 391esplicita. Bench� lo stato attuale di queste regole non sia 392soddisfacente, ed � pianificato, con priorit� alta, di derivarle 393in modo appropriato in una versione futura, il loro stato attuale di fatto 394non compromette la coerenza della logica. In effetti, il sistema 395\HOL\ esistente ha un sistema deduttivo pi� comprensivo di quello 396presentato astrattamente, ma il modello delineato in \LOGIC{} si estenderebbe 397facilmente per coprirlo.% 398% 399\index{regole derivate, nella logica HOL@regole derivate, nella logica \HOL{}!pre-definite|)} 400 401A titolo informativo, nella Versione 2.0 di \HOL\ le seguenti regole che dovrebbero essere 402derivate 403% 404\index{regole d'inferenza, della logica HOL@regole d'inferenza, della logica \HOL{}!alcune \ldots non derivate in modo appropriato|(} 405\index{regole nella logica HOL, alcune \ldots non derivate in modo appropriato@regole nella logica \HOL{}, alcune \ldots non derivate in modo appropriato|(} 406% 407non sono derivate, ma (per questioni di efficienza) sono implementate come 408primitive. La lista include alcune conversioni e funzioni con valore 409di conversioni. % (conversions are discussed in Chapter~\ref{avra_conv}). 410\vfill \newpage 411 412\begin{hol} 413\index{regole derivate, nella logica HOL@regole derivate, nella logica \HOL{}!elenco di \ldots assiomatiche} 414\index{AP_TERM@\ml{AP\_TERM}} 415\index{AP_THM@\ml{AP\_THM}} 416\index{CCONTR@\ml{CCONTR}} 417\index{CHOOSE@\ml{CHOOSE}} 418\index{CONJ@\ml{CONJ}} 419\index{CONJUNCT1@\ml{CONJUNCT1}} 420\index{CONJUNCT2@\ml{CONJUNCT2}} 421\index{DISJ_CASES@\ml{DISJ\_CASES}} 422\index{DISJ1@\ml{DISJ1}} 423\index{DISJ2@\ml{DISJ2}} 424\index{EQ_IMP_RULE@\ml{EQ\_IMP\_RULE}} 425\index{EQ_MP@\ml{EQ\_MP}} 426\index{EQT_INTRO@\ml{EQT\_INTRO}} 427\index{ETA_CONV@\ml{ETA\_CONV}} 428\index{EXISTS@\ml{EXISTS}} 429\index{EXT@\ml{EXT}} 430\index{GEN@\ml{GEN}} 431\index{MK_ABS@\ml{MK\_ABS}} 432\index{MK_COMB@\ml{MK\_COMB}} 433\index{num_CONV@\ml{num\_CONV}} 434\index{SPEC@\ml{SPEC}} 435\index{SUBS@\ml{SUBS}} 436\index{SUBS_OCCS@\ml{SUBS\_OCCS}} 437\index{SUBST_CONV@\ml{SUBST\_CONV}} 438\index{SYM@\ml{SYM}} 439\index{TRANS@\ml{TRANS}} 440\begin{verbatim} 441 ADD_ASSUM CONTR IMP_ANTISYM_RULE 442 ALPHA DEF_EXISTS_RULE IMP_TRANS 443 AP_TERM DISJ_CASES INST 444 AP_THM DISJ1 MK_ABS 445 SUBS DISJ2 MK_COMB 446 SUBS_OCCS EQ_IMP_RULE MK_EXISTS 447 CCONTR EQ_MP NOT_ELIM 448 CHOOSE EQT_INTRO NOT_INTRO 449 CONJ ETA_CONV num_CONV 450 EXISTS SPEC TRANS 451 EXT SUBST_CONV CONJUNCT1 452 GEN SYM CONJUNCT2 453\end{verbatim}\end{hol} 454\index{regole d'inferenza, della logica HOL@regole d'inferenza, della logica \HOL{}!alcune \ldots non derivate in modo appropriato|(} 455\index{regole nella logica HOL, alcune \ldots non derivate in modo appropriato@regole nella logica \HOL{}, alcune \ldots non derivate in modo appropriato|(} 456 457\index{regole d'inferenza, della logica HOL@regole d'inferenza, della logica \HOL{}!derivate|(} 458Le derivazioni che seguono consistono di sequenze di passi numerati ciascuno dei 459quali 460\begin{enumerate} 461\item � un assioma, oppure 462\item � un'ipotesi della regola che si sta derivando, oppure 463\item segue da passi precedenti per una regola d'inferenza (o primitiva 464o precedentemente derivata). 465\end{enumerate} 466 467\noindent Si noti che l'abbreviazione \ml{conv} (che sta per 468`conversione') � usata per il tipo \ML\ \ml{term -> 469 thm}.% 470% \footnote{This stands for `conversion', as explained in 471% Chapter~\ref{avra_conv}.} 472 473\subsection{Aggiunta di un'assunzione} 474\index{regole derivate, nella logica HOL@regole derivate, nella logica \HOL{}!elenco e derivazioni di alcune|(} 475 476\begin{holboxed} 477\index{ADD_ASSUM@\ml{ADD\_ASSUM}|pin} 478\begin{verbatim} 479 ADD_ASSUM : term -> thm -> thm 480\end{verbatim}\end{holboxed} 481 482 483\vspace{12pt plus2pt minus1pt} 484 485$$\Gamma\turn t\over \Gamma,\ t'\turn t$$ 486 487\vspace{12pt plus2pt minus1pt} 488 489\begin{proof} 490\item $t'\turn t'$ \hfill [\rul{ASSUME}] 491\item $\Gamma\turn t$ \hfill [Ipotesi] 492\item $\Gamma\turn t'\imp t$ \hfill [\rul{DISCH} 2] 493\item $\Gamma,\ t'\turn t$ \hfill [\rul{MP} 3,1] 494\end{proof} 495 496 497 498%\subsection{Undischarging [\rul{UNDISCH}]} 499\subsection{Scaricamento} 500 501\begin{holboxed} 502\index{implicazione, nella logica HOL@implicazione, nella logica \HOL{}!regole d'inferenza per} 503\index{UNDISCH@\ml{UNDISCH}|pin} 504\begin{verbatim} 505 UNDISCH : thm -> thm 506\end{verbatim}\end{holboxed} 507 508 509\vspace{12pt plus2pt minus1pt} 510 511$$\Gamma\turn t_1\imp t_2 \over\Gamma,\ t_1\turn t_2$$ 512 513\vspace{12pt plus2pt minus1pt} 514 515\begin{proof} 516\item $t_1\turn t_1$ \hfill [\rul{ASSUME}] 517\item $\Gamma\turn t_1\imp t_2$ \hfill [Ipotesi] 518\item $\Gamma,\ t_1\turn t_2$ \hfill [\rul{MP} 2,1] 519\end{proof} 520 521 522 523 524\subsection{Simmetria dell'eguaglianza} 525 526 527\begin{holboxed} 528\index{SYM@\ml{SYM}|pin} 529\index{regola di simmetria dell'eguaglianza, nella logica HOL@regola di simmetria dell'eguaglianza, nella logica \HOL{}} 530\index{eguaglianza, nella logica HOL@eguaglianza, nella logica \HOL{}!regola di simmetria per} 531\begin{verbatim} 532 SYM : thm -> thm 533\end{verbatim}\end{holboxed} 534 535 536 537\vspace{12pt plus2pt minus1pt} 538 539$$\Gamma\turn t_1 = t_2\over \Gamma\turn t_2 = t_1$$ 540 541\vspace{12pt plus2pt minus1pt} 542 543\begin{proof} 544\item $\Gamma\turn t_1=t_2$\hfill [Ipotesi] 545\item $\turn t_1=t_1$ \hfill [\rul{REFL}] 546\item $\Gamma\turn t_2=t_1$\hfill [\rul{SUBST} 1,2] 547\end{proof} 548 549 550 551\subsection{Transitivit� dell'eguaglianza} 552 553 554\begin{holboxed} 555\index{regola di transitivit� dell'eguaglianza, nella logica HOL@regola di transitivit� dell'eguaglianza, nella logica \HOL{}} 556\index{eguaglianza, nella logica HOL@eguaglianza, nella logica \HOL{}!regola di transitivit� per} 557\index{TRANS@\ml{TRANS}|pin} 558\begin{verbatim} 559 TRANS : thm -> thm -> thm 560\end{verbatim}\end{holboxed} 561 562\vspace{12pt plus2pt minus1pt} 563 564$$\Gamma_1\turn t_1=t_2\qquad\qquad\qquad \Gamma_2\turn t_2=t_3 \over 565\Gamma_1\cup\Gamma_2\turn t_1=t_3$$ 566 567\vspace{12pt plus2pt minus1pt} 568 569\begin{proof} 570\item $\Gamma_2\turn t_2=t_3$\hfill [Ipotesi] 571\item $\Gamma_1\turn t_1=t_2$\hfill [Ipotesi] 572\item $\Gamma_1\cup\Gamma_2\turn t_1=t_3$\hfill [\rul{SUBST} 1,2] 573\end{proof} 574 575 576 577\subsection{Applicazione di un termine a un teorema}% 578\index{applicazione di funzione, nella logica HOL@applicazione di funzione, nella logica \HOL{}!regole d'inferenza per} 579 580\begin{holboxed} 581\index{AP_TERM@\ml{AP\_TERM}|pin} 582\begin{verbatim} 583 AP_TERM : term -> thm -> thm 584\end{verbatim}\end{holboxed} 585 586\vspace{12pt plus2pt minus1pt} 587 588$$\Gamma\turn t_1=t_2\over\Gamma\turn t\ t_1 = t\ t_2$$ 589 590\vspace{12pt plus2pt minus1pt} 591 592\begin{proof} 593\item $\Gamma\turn t_1=t_2$\hfill [Ipotesi] 594\item $\turn t\ t_1 = t\ t_1$ \hfill [\rul{REFL}] 595\item $\Gamma\turn t\ t_1 = t\ t_2$ \hfill [\rul{SUBST} 1,2] 596\end{proof} 597 598 599 600\subsection{Applicazione di un teorema a un termine} 601 602\begin{holboxed} 603\index{AP_THM@\ml{AP\_THM}|pin} 604\begin{verbatim} 605 AP_THM : thm -> conv 606\end{verbatim}\end{holboxed} 607 608\vspace{12pt plus2pt minus1pt} 609 610$$\Gamma\turn t_1=t_2\over \Gamma\turn t_1\ t = t_2\ t$$ 611 612\vspace{12pt plus2pt minus1pt} 613 614\begin{proof} 615\item $\Gamma\turn t_1=t_2$\hfill [Ipotesi] 616\item$\turn t_1\ t = t_1\ t$\hfill [\rul{REFL}] 617\item $\Gamma\turn t_1\ t = t_2\ t$\hfill [\rul{SUBST} 1,2] 618\end{proof} 619 620 621 622\subsection{Modus Ponens per l'eguaglianza} 623\label{avra_eq_mp} 624 625\begin{holboxed} 626\index{EQ_MP@\ml{EQ\_MP}|pin} 627\index{eguaglianza, nella logica HOL@eguaglianza, nella logica \HOL{}!regola MP per@regola \ml{MP} per} 628\begin{verbatim} 629 EQ_MP : thm -> thm -> thm 630\end{verbatim}\end{holboxed} 631 632\vspace{12pt plus2pt minus1pt} 633 634$$\Gamma_1\turn t_1=t_2\qquad\qquad\qquad \Gamma_2\turn t_1\over 635\Gamma_1\cup\Gamma_2\turn t_2$$ 636 637\vspace{12pt plus2pt minus1pt} 638 639\begin{proof} 640\item $\Gamma_1\turn t_1=t_2$ \hfill [Ipotesi] 641\item $\Gamma_2\turn t_1$ \hfill [Ipotesi] 642\item $\Gamma_1\cup\Gamma_2\turn t_2$ \hfill [\rul{SUBST} 1,2] 643\end{proof} 644 645 646 647 648\subsection{Implicazione dall'eguaglianza} 649\index{eguaglianza, nella logica HOL@eguaglianza, nella logica \HOL{}!altre regole per|(} 650\index{implicazione, nella logica HOL@implicazione, nella logica \HOL{}!regole d'inferenza per} 651\begin{holboxed} 652\index{EQ_IMP_RULE@\ml{EQ\_IMP\_RULE}|pin} 653\begin{verbatim} 654 EQ_IMP_RULE : thm -> (thm # thm) 655\end{verbatim}\end{holboxed} 656 657\vspace{12pt plus2pt minus1pt} 658 659$$\Gamma\turn t_1=t_2\over 660\Gamma\turn t_1\imp t_2 \qquad\qquad\qquad \Gamma\turn t_2\imp t_1$$ 661 662\vspace{12pt plus2pt minus1pt} 663 664\begin{proof} 665\item $\Gamma\turn t_1=t_2$ \hfill [Ipotesi] 666\item $t_1\turn t_1$ \hfill [\rul{ASSUME}] 667\item $\Gamma,\ t_1\turn t_2$ \hfill [\rul{EQ\_MP} 1,2] 668\item $\Gamma\turn t_1\imp t_2$ \hfill [\rul{DISCH} 3] 669\item $\Gamma\turn t_2=t_1$ \hfill [\rul{SYM} 1] 670\item $t_2\turn t_2$ \hfill [\rul{ASSUME}] 671\item $\Gamma,\ t_2\turn t_1$ \hfill [\rul{EQ\_MP} 5,6] 672\item $\Gamma\turn t_2\imp t_1$ \hfill [\rul{DISCH} 7] 673\item $\Gamma\turn t_1\imp t_2$ and $\Gamma\turn t_2\imp t_1$\hfill [4,8] 674\end{proof} 675 676 677 678\subsection{\T-Introduzione} 679\label{avra_T} 680 681\index{T@\holtxt{T}!regole d'inferenza per|(} 682\begin{hol} 683\begin{verbatim} 684 TRUTH 685\end{verbatim} 686\end{hol} 687 688\vspace{12pt plus2pt minus1pt} 689 690$$\turn\T$$ 691 692\vspace{12pt plus2pt minus1pt} 693 694\begin{proof} 695\item $\turn \T = ((\lquant{x}x)=(\lquant{x}x))$\hfill [Definizione di \T] 696\item $\turn ((\lquant{x}x)=(\lquant{x}x)) = \T$\hfill [\rul{SYM} 1] 697\item $\turn (\lquant{x}x)=(\lquant{x}x)$\hfill [\rul{REFL}] 698\item $\turn\T$ \hfill [\rul{EQ\_MP} 2,3] 699\end{proof} 700 701 702 703 704\subsection{Eguaglianza-con-\T\ eliminazione} 705 706\begin{holboxed} 707\index{EQT_ELIM@\ml{EQT\_ELIM}|pin} 708\begin{verbatim} 709 EQT_ELIM : thm -> thm 710\end{verbatim} 711\end{holboxed} 712 713\vspace{12pt plus2pt minus1pt} 714 715$$\Gamma\turn t = \T\over \Gamma\turn t$$ 716 717\vspace{12pt plus2pt minus1pt} 718 719\begin{proof} 720\item $\Gamma\turn t = \T$\hfill [Ipotesi] 721\item $\Gamma\turn \T = t$\hfill [\rul{SYM} 1] 722\item $\turn \T$\hfill [\rul{TRUTH}] 723\item $\Gamma\turn t$\hfill [\rul{EQ\_MP} 2,3] 724\end{proof} 725 726 727\subsection{\texorpdfstring{Specializzazione ($\forall$-eliminazione)}{Specializzazione (per ogni-eliminazione)}} 728 729\begin{holboxed} 730\index{SPEC@\ml{SPEC}|pin} 731\index{regola di specializzazione, nella logica HOL@regola di specializzazione, nella logica \HOL{}} 732\begin{verbatim} 733 SPEC : term -> thm -> thm 734\end{verbatim} 735\end{holboxed} 736 737\label{avra_spec} 738 739\vspace{12pt plus2pt minus1pt} 740 741$$\Gamma\turn \uquant{x}t\over \Gamma\turn t[t'/x]$$ 742\begin{itemize} 743\item $t[t'/x]$ denota il risultato della sostituzione di $t'$ per le occorrenze libere\index{variabili libere, nella logica HOL@variabili libere, nella logica \HOL{}} 744di $x$ in $t$, con la restrizione che nessuna variabile libera in $t'$ 745diventi legata dopo la sostituzione. 746\end{itemize} 747 748\vspace{12pt plus2pt minus1pt} 749 750\begin{proof} 751\item $\turn \forall = (\lquant{P}P = (\lquant{x}\T))$ \hfill 752[\rul{INST\_TYPE} applicata alla definizione di $\forall$] 753\item $\Gamma\turn \forall(\lquant{x}t)$\hfill [Ipotesi] 754\item $\Gamma\turn (\lquant{P}P=(\lquant{x}\T))(\lquant{x}t)$\hfill 755[\rul{SUBST} 1,2] 756\item $\turn (\lquant{P}P=(\lquant{x}\T))(\lquant{x}t) = 757((\lquant{x}t)=(\lquant{x}\T))$\hfill [\rul{BETA\_CONV}] 758\item $\Gamma\turn (\lquant{x}t)=(\lquant{x}\T)$\hfill [\rul{EQ\_MP} 4,3] 759\item $\Gamma\turn (\lquant{x}t)\ t' = (\lquant{x}\T)\ t'$ \hfill 760[\rul{AP\_THM} 5] 761\item $\turn (\lquant{x}t)\ t' = t[t'/x]$ \hfill [\rul{BETA\_CONV}] 762\item $\Gamma\turn t[t'/x] = (\lquant{x}t)\ t'$ \hfill [\rul{SYM} 7] 763\item $\Gamma\turn t[t'/x] = (\lquant{x}\T)\ t'$ \hfill [\rul{TRANS} 8,6] 764\item $\turn (\lquant{x}\T)\ t' = \T$ \hfill [\rul{BETA\_CONV}] 765\item $\Gamma\turn t[t'/x] = \T$ \hfill [\rul{TRANS} 9,10] 766\item $\Gamma\turn t[t'/x]$ \hfill [\rul{EQT\_ELIM} 11] 767\end{proof} 768 769 770 771 772\subsection{Eguaglianza-con-\T\ introduzione} 773 774\begin{holboxed} 775\index{EQT_INTRO@\ml{EQT\_INTRO}|pin} 776\begin{verbatim} 777 EQT_INTRO : thm -> thm 778\end{verbatim} 779\end{holboxed} 780 781 782\vspace{12pt plus2pt minus1pt} 783 784$$\Gamma\turn t\over\Gamma\turn t=\T$$ 785 786\vspace{12pt plus2pt minus1pt} 787 788\begin{proof} 789\item $\turn\uquant{b_1\ b_2}(b_1\imp b_2)\imp(b_2\imp b_1)\imp(b_1=b_2)$ 790\hfill [Assioma] 791\item $\turn\uquant{b_2}(t\imp b_2)\imp(b_2\imp t)\imp(t=b_2)$ 792\hfill [\rul{SPEC} 1] 793\item $\turn(t\imp\T)\imp(\T\imp t)\imp(t=\T)$\hfill [\rul{SPEC} 2] 794\item $\turn\T$\hfill [\rul{TRUTH}] 795\item $\turn t\imp\T$\hfill [\rul{DISCH} 4] 796\item $\turn(\T\imp t)\imp(t=\T)$\hfill [\rul{MP} 3,5] 797\item $\Gamma \turn t$\hfill [Ipotesi] 798\item $\Gamma\turn\T\imp t$\hfill [\rul{DISCH} 7] 799\item $\Gamma\turn t=\T$\hfill [\rul{MP} 6,8] 800\end{proof} 801\index{eguaglianza, nella logica HOL@v, nella logica \HOL{}!altre regole per|)} 802\index{T@\holtxt{T}!regole d'inferenza per|)} 803 804 805\subsection{\texorpdfstring{Generalizzazione ($\forall$-introduzione)}{Generalizzazione (per ogni-introduzione)}}% 806\index{quantificatore universale, nella logica HOL@quantificatore universale, nella logica \HOL{}!regole d'inferenza per} 807 808 809\begin{holboxed} 810\index{GEN@\ml{GEN}|pin} 811\index{regola di generalizzazione, nella logica HOL@regola di generalizzazione, nella logica \HOL{}} 812\begin{verbatim} 813 GEN : term -> thm -> thm 814\end{verbatim} 815\end{holboxed} 816 817\label{avra_gen} 818 819\vspace{12pt plus2pt minus1pt} 820 821$$\Gamma\turn t\over\Gamma\turn\uquant{x} t$$ 822\begin{itemize} 823\item Dove $x$ non � libera in $\Gamma$. 824\end{itemize} 825 826\vspace{12pt plus2pt minus1pt} 827 828\begin{proof} 829\item $\Gamma\turn t$\hfill [Ipotesi] 830\item $\Gamma\turn t = \T$\hfill [\rul{EQT\_INTRO} 1] 831\item $\Gamma\turn(\lquant{x}t)=(\lquant{x}\T)$\hfill [\rul{ABS} 2] 832\item $\turn \forall(\lquant{x}t) = \forall(\lquant{x}t)$\hfill [\rul{REFL}] 833\item $\turn \forall = (\lquant{P} P =(\lquant{x}\T))$\hfill 834[\rul{INST\_TYPE} applicata alla definizione di $\forall$] 835\item $\turn\forall(\lquant{x}t)=(\lquant{P} P=(\lquant{x}\T))(\lquant{x}t)$ 836\hfill [\rul{SUBST} 5,4] 837\item $\turn(\lquant{P} P=(\lquant{x}\T))(\lquant{x}t)=((\lquant{x}t) 838=(\lquant{x}\T))$\hfill [\rul{BETA\_CONV}] 839\item $\turn\forall(\lquant{x}t) = ((\lquant{x}t)=(\lquant{x}\T))$ 840\hfill [\rul{TRANS} 6,7] 841\item $\turn((\lquant{x}t)=(\lquant{x}\T)) = \forall(\lquant{x}\T)$ 842\hfill [\rul{SYM} 8] 843\item $\Gamma\turn\forall(\lquant{x}t)$\hfill [\rul{EQ\_MP} 9,3] 844\end{proof} 845 846 847 848\subsection{\texorpdfstring{$\alpha$-conversione semplice}{alfa-conversione semplice}} 849 850\begin{holboxed} 851\begin{verbatim} 852 SIMPLE_ALPHA 853\end{verbatim} 854\end{holboxed} 855 856\vspace{12pt plus2pt minus1pt} 857 858$$\turn(\lquant{x_1}t\ x_1) = (\lquant{x_2}t\ x_2)$$ 859\begin{itemize} 860\item Dove n� $x_1$ n� $x_2$ occorre libera in $t$\footnote{\ml{SIMPLE\_ALPHA} � 861inclusa qui perch� � 862usata in una derivazione successiva, ma di fatto non � nel 863sistema \HOL\ dal momento che � sussunta da altre funzioni.}. 864\end{itemize} 865 866\vspace{12pt plus2pt minus1pt} 867 868\begin{proof} 869\item$\turn(\lquant{x_1}t\ x_1)\ x = t\ x$\hfill [\rul{BETA\_CONV}] 870\item$\turn(\lquant{x_2}t\ x_2)\ x = t\ x$\hfill [\rul{BETA\_CONV}] 871\item $\turn t\ x = (\lquant{x_2}t\ x_2)\ x$\hfill [\rul{SYM} 2] 872\item $\turn (\lquant{x_1}t\ x_1)\ x = (\lquant{x_2}t\ x_2)\ x$ 873\hfill [\rul{TRANS} 1,3] 874\item $\turn(\lquant{x}(\lquant{x_1}t\ x_1)\ x) = 875(\lquant{x}(\lquant{x_2}t\ x_2)\ x)$\hfill [\rul{ABS} 4] 876\item $\turn\uquant{f}(\lquant{x}f\ x) = f$\hfill 877[Assioma con un'appropriata istanziazione dei tipi] 878\item $\turn(\lquant{x}(\lquant{x_1}t\ x_1)x) = \lquant{x_1}t\ x_1$ 879\hfill [\rul{SPEC} 6] 880\item $\turn(\lquant{x}(\lquant{x_2}t\ x_2)x) = \lquant{x_2}t\ x_2$ 881\hfill [\rul{SPEC} 6] 882\item $\turn (\lquant{x_1}t\ x_1) = (\lquant{x}(\lquant{x_1}t\ x_1)x)$ 883\hfill [\rul{SYM} 7] 884\item $\turn (\lquant{x_1}t\ x_1) = (\lquant{x}(\lquant{x_2}t\ x_2)x)$ 885\hfill [\rul{TRANS} 9,5] 886\item $\turn(\lquant{x_1}t\ x_1)=(\lquant{x_2}t\ x_2)$\hfill 887[\rul{TRANS} 10,8] 888\end{proof} 889 890 891 892 893\subsection{\texorpdfstring{$\eta$-conversione}{Eta-conversione}} 894 895\begin{holboxed} 896\index{ETA_CONV@\ml{ETA\_CONV}|pin} 897\begin{verbatim} 898 ETA_CONV : conv 899\end{verbatim} 900\end{holboxed} 901\vspace{12pt plus2pt minus1pt} 902 903$$\turn(\lquant{x'}t\ x') = t$$ 904\begin{itemize} 905\item Dove $x'$ non occorre libera\index{variabili libere, nella logica HOL@variabili libere, nella logica \HOL{}} in $t$ (usiamo $x'$ piuttosto che semplicemente $x$ 906per motivare l'uso di \rul{SIMPLE\_ALPHA} nella derivazione di sotto). 907\end{itemize} 908 909\vspace{12pt plus2pt minus1pt} 910 911\begin{proof} 912\item $\turn\uquant{f}(\lquant{x}f\ x) = f$\hfill 913[Assioma con un'appropriata istanziazione dei tipi] 914\item $\turn(\lquant{x}t\ x) = t$\hfill [\rul{SPEC} 1] 915\item $\turn(\lquant{x'}t\ x')=(\lquant{x}t\ x)$\hfill [\rul{SIMPLE\_ALPHA}] 916\item $\turn(\lquant{x'}t\ x')=t$\hfill [\rul{TRANS} 3,2] 917\end{proof} 918 919 920 921\subsection{Estensionalit�} 922\index{quantificatore universale, nella logica HOL@quantificatore universale, nella logica \HOL{}!regole d'inferenza per} 923 924\begin{holboxed} 925\index{EXT@\ml{EXT}|pin} 926\index{regola di estensionalit�, nella logica HOL@regola di estensionalit�, nella logica \HOL{}} 927\begin{verbatim} 928 EXT : thm -> thm 929\end{verbatim} 930\end{holboxed} 931 932\vspace{12pt plus2pt minus1pt} 933 934$$\Gamma\turn\uquant{x} t_1\ x = t_2\ x\over\Gamma\turn t_1=t_2$$ 935\begin{itemize} 936\item Dove $x$ non � libera\index{variabili libere, nella logica HOL@variabili libere, nella logica \HOL{}} in $t_1$ or $t_2$. 937\end{itemize} 938 939\vspace{12pt plus2pt minus1pt} 940 941\begin{proof} 942\item $\Gamma\turn\uquant{x}t_1\ x=t_2\ x$\hfill [Ipotesi] 943\item $\Gamma\turn t_1\ x'=t_2\ x'$\hfill [\rul{SPEC} 1 ($x'$ is a fresh)] 944\item $\Gamma\turn(\lquant{x'}t_1\ x') = (\lquant{x'}t_2\ x')$\hfill 945 [\rul{ABS} 2] 946\item $\turn(\lquant{x'}t_1\ x') = t_1$\hfill [\rul{ETA\_CONV}] 947\item $\turn t_1 = (\lquant{x'}t_1\ x')$\hfill [\rul{SYM} 4] 948\item $\Gamma\turn t_1 = (\lquant{x'}t_2\ x')$\hfill [\rul{TRANS} 5,3] 949\item $\turn(\lquant{x'}t_2\ x') = t_2$\hfill [\rul{ETA\_CONV}] 950\item $\Gamma\turn t_1=t_2$\hfill [\rul{TRANS} 6,7] 951\end{proof} 952 953 954 955 956\subsection{\texorpdfstring{$\hilbert$-introduzione}{Hilbert-introduzione}} 957 958\begin{holboxed} 959\index{operatore di scelta, nella logica HOL@operatore di scelta, nella logica \HOL{}!regole d'inferenza per} 960\index{SELECT_INTRO@\ml{SELECT\_INTRO}|pin} 961\begin{verbatim} 962 SELECT_INTRO : thm -> thm 963\end{verbatim}\end{holboxed} 964 965\vspace{12pt plus2pt minus1pt} 966 967$$\Gamma\turn t_1\ t_2\over\Gamma\turn t_1(\hilbert\ t_1)$$ 968 969\vspace{12pt plus2pt minus1pt} 970 971\begin{proof} 972\item $\turn\uquant{P\ x}P\ x\imp P(\hilbert\ P)$\hfill [Assioma con un'adatta 973istanziazione dei tipi] 974\item $\turn t_1\ t_2 \imp t_1(\hilbert\ t_1)$\hfill [\rul{SPEC} 1 (due volte)] 975\item $\Gamma\turn t_1\ t_2$\hfill [Ipotesi] 976\item $\Gamma\turn t_1(\hilbert\ t_1)$\hfill [\rul{MP} 2,3] 977\end{proof} 978 979 980 981 982\subsection{\texorpdfstring{$\hilbert$-eliminazione}{Hilbert-eliminazione}} 983 984\begin{holboxed} 985\index{operatore di scelta, nella logica HOL@operatore di scelta, nella logica \HOL{}!regole d'inferenza per} 986\index{SELECT_ELIM@\ml{SELECT\_ELIM}|pin} 987\begin{verbatim} 988 SELECT_ELIM : thm -> (term # thm) -> thm 989\end{verbatim}\end{holboxed} 990 991\vspace{12pt plus2pt minus1pt} 992 993$$\Gamma_1\turn t_1(\hilbert\ t_1)\qquad\qquad\qquad\Gamma_2,\ t_1\ v\turn t 994\over \Gamma_1\cup\Gamma_2\turn t$$ 995\begin{itemize} 996\item Dove $v$ non occorre da nessuna parte eccetto nell'assunzione $t_1\ v$ della seconda 997ipotesi. 998\end{itemize} 999 1000\vspace{12pt plus2pt minus1pt} 1001 1002\begin{proof} 1003\item $\Gamma_2,\ t_1\ v\turn t$ \hfill [Ipotesi] 1004\item $\Gamma_2\turn t_1\ v\imp t$\hfill [\rul{DISCH} 1] 1005\item $\Gamma_2\turn\uquant{v}t_1\ v\imp t$\hfill [\rul{GEN} 2] 1006\item $\Gamma_2\turn t_1(\hilbert\ t_1)\imp t$\hfill [\rul{SPEC} 3] 1007\item $\Gamma_1\turn t_1(\hilbert\ t_1)$\hfill [Ipotesi] 1008\item $\Gamma_1\cup\Gamma_2\turn t$\hfill [\rul{MP} 4,5] 1009\end{proof} 1010 1011 1012 1013 1014\subsection{\texorpdfstring{$\exists$-introduzione}{Esiste-introduzione}} 1015\index{quantificatore esistenziale, nella logica HOL@quantificatore esistenziale, nella logica \HOL{}!regole d'inferenza per|(} 1016 1017\begin{holboxed} 1018\index{EXISTS@\ml{EXISTS}|pin} 1019\begin{verbatim} 1020 EXISTS : (term # term) -> thm -> thm 1021\end{verbatim}\end{holboxed} 1022 1023\vspace{12pt plus2pt minus1pt} 1024 1025$$\Gamma\turn t_1[t_2]\over \Gamma\turn \equant{x}t_1[x]$$ 1026\begin{itemize} 1027\item Dove $t_1[t_2]$ denota un termine $t_1$ con qualche occorrenza libera\index{variabili libere, nella logica HOL@variabili libere, nella logica \HOL{}} 1028di $t_2$ 1029scelta, e $t_1[x]$ denota il risultato di sostituire queste 1030occorrenze di $t_1$ con $x$, con la restrizione che $x$ 1031non divenga legata dopo la sostituzione. 1032\end{itemize} 1033 1034\vspace{12pt plus2pt minus1pt} 1035 1036\begin{proof} 1037\item $\turn(\lquant{x}t_1[x])t_2= t_1[t_2]$\hfill [\rul{BETA\_CONV}] 1038\item $\turn t_1[t_2] = (\lquant{x}t_1[x])t_2$\hfill [\rul{SYM} 1] 1039\item $\Gamma\turn t_1[t_2]$\hfill [Ipotesi] 1040\item $\Gamma\turn(\lquant{x}t_1[x])t_2$\hfill [\rul{EQ\_MP} 2,3] 1041\item $\Gamma\turn(\lquant{x}t_1[x])(\hilbert(\lquant{x}t_1[x]))$\hfill 1042[\rul{SELECT\_INTRO} 4] 1043\item $\turn \exists = \lquant{P} P(\hilbert\ P)$\hfill 1044[\rul{INST\_TYPE} applicata alla definizione di $\exists$] 1045\item $\turn\exists(\lquant{x}t_1[x]) = 1046(\lquant{P}P(\hilbert\ P))(\lquant{x}t_1[x])$\hfill [\rul{AP\_THM} 6] 1047\item $\turn(\lquant{P}P(\hilbert\ P))(\lquant{x}t_1[x]) = 1048(\lquant{x}t_1[x])(\hilbert(\lquant{x}t_1[x]))$\hfill [\rul{BETA\_CONV}] 1049\item $\turn\exists(\lquant{x}t_1[x]) = 1050(\lquant{x}t_1[x])(\hilbert(\lquant{x}t_1[x]))$\hfill [\rul{TRANS} 7,8] 1051\item $\turn(\lquant{x}t_1[x])(\hilbert(\lquant{x}t_1[x])) = 1052\exists(\lquant{x}t_1[x])$\hfill [\rul{SYM} 9] 1053\item $\Gamma\turn\exists(\lquant{x}t_1[x])$\hfill [\rul{EQ\_MP} 10,5] 1054\end{proof} 1055 1056 1057 1058\subsection{\texorpdfstring{$\exists$-eliminazione}{Esiste-eliminazione}} 1059 1060\begin{holboxed} 1061\index{CHOOSE@\ml{CHOOSE}|pin} 1062\begin{verbatim} 1063 CHOOSE : (term # thm) -> thm -> thm 1064\end{verbatim}\end{holboxed} 1065 1066\vspace{12pt plus2pt minus1pt} 1067 1068$$\Gamma_1\turn\equant{x}t[x]\qquad\qquad\qquad \Gamma_2,\ t[v]\turn t' 1069\over \Gamma_1\cup\Gamma_2\turn t'$$ 1070\begin{itemize} 1071\item Dove $t[v]$ denota un termine $t$ con qualche occorrenza libera\index{variabili libere, nella logica HOL@variabili libere, nella logica \HOL{}} 1072della variabile $v$ 1073selezionata, e $t[x]$ denota il risultato di sostituire queste 1074occorrenze di $v$ con $x$, con la restrizione che $x$ non divenga 1075legata dopo la sostituzione. 1076\end{itemize} 1077 1078\vspace{12pt plus2pt minus1pt} 1079 1080\begin{proof} 1081\item $\turn \exists = \lquant{P} P(\hilbert\ P)$\hfill 1082[\rul{INST\_TYPE} applicata alla definizione di $\exists$] 1083\item $\turn\exists(\lquant{x}t[x]) = 1084(\lquant{P}P(\hilbert\ P))(\lquant{x}t[x])$\hfill [\rul{AP\_THM} 1] 1085\item $\Gamma_1\turn\exists(\lquant{x}t[x])$\hfill [Ipotesi] 1086\item $\Gamma_1\turn (\lquant{P}P(\hilbert\ P))(\lquant{x}t[x])$ 1087\hfill [\rul{EQ\_MP} 2,3] 1088\item $\turn(\lquant{P}P(\hilbert\ P))(\lquant{x}t[x]) = 1089(\lquant{x}t[x])(\hilbert(\lquant{x}t[x]))$\hfill [\rul{BETA\_CONV}] 1090\item $\Gamma_1\turn(\lquant{x}t[x])(\hilbert(\lquant{x}t[x])$\hfill 1091[\rul{EQ\_MP} 5,4] 1092\item $\turn(\lquant{x}t[x])v = t[v]$\hfill [\rul{BETA\_CONV}] 1093\item $\turn t[v] =(\lquant{x}t[x])v$\hfill [\rul{SYM} 7] 1094\item $\Gamma_2,\ t[v]\turn t'$\hfill [Ipotesi] 1095\item $\Gamma_2\turn t[v]\imp t'$\hfill [\rul{DISCH} 9] 1096\item $\Gamma_2\turn(\lquant{x}t[x])v\imp t'$\hfill [\rul{SUBST} 8,10] 1097\item $\Gamma_2,\ (\lquant{x}t[x])v\turn t'$\hfill [\rul{UNDISCH} 11] 1098\item $\Gamma_1\cup\Gamma_2\turn t'$\hfill [\rul{SELECT\_ELIM} 6,12] 1099\end{proof} 1100\index{quantificatore esistenziale, nella logica HOL@quantificatore esistenziale, nella logica \HOL{}!regole d'inferenza per|)} 1101 1102\subsection{Uso di una definizione} 1103 1104\begin{holboxed} 1105\index{RIGHT_BETA@\ml{RIGHT\_BETA}|pin} 1106\begin{verbatim} 1107 RIGHT_BETA : thm -> thm 1108\end{verbatim}\end{holboxed} 1109 1110\vspace{12pt plus2pt minus1pt} 1111 1112$$\Gamma\turn t = \lquant{x}t'[x] 1113\over \Gamma\turn t\ t = t'[t]$$ 1114\begin{itemize} 1115\item Dove $t$ non contiene $x$. 1116\end{itemize} 1117 1118\vspace{12pt plus2pt minus1pt} 1119 1120\begin{proof} 1121\item $\Gamma\turn t = \lquant{x} t'[x]$\hfill 1122[Ipotesi con un'adeguata istanziazione dei tipi] 1123\item $\Gamma\turn t\ t = 1124(\lquant{x}t'[x])\ t$\hfill 1125[\rul{AP\_THM} 1 ] 1126\item $\turn(\lquant{x}t'[x])\ t = 1127t'[t]$\hfill [\rul{BETA\_CONV}] 1128\item $\Gamma\turn t\ t = t'[t]$\hfill 1129[\rul{TRANS} 2,3] 1130\end{proof} 1131 1132 1133\subsection{Uso di una definizione} 1134 1135\begin{holboxed} 1136\index{RIGHT_LIST_BETA@\ml{RIGHT\_LIST\_BETA}|pin} 1137\begin{verbatim} 1138 RIGHT_LIST_BETA : thm -> thm 1139\end{verbatim}\end{holboxed} 1140 1141\vspace{12pt plus2pt minus1pt} 1142 1143$$\Gamma\turn t = \lquant{x_1\cdots x_n}t'[x_1,\ldots,x_n] 1144\over \Gamma\turn t\ t_1\cdots t_n = t'[t_1,\ldots,t_n]$$ 1145\begin{itemize} 1146\item Dove nessuno dei $t_i$ contiene alcuno degli $x_i$. 1147\end{itemize} 1148 1149\vspace{12pt plus2pt minus1pt} 1150 1151\begin{proof} 1152\item $\Gamma\turn t = \lquant{x_1\cdots x_n} t'[x_1,\ldots,x_n]$\hfill 1153[Ipotesi con un'adeguata istanziazione dei tipi] 1154\item $\Gamma\turn t\ t_1\cdots t_n = 1155(\lquant{x_1\cdots x_n}t'[x_1,\ldots,x_n])\ t_1\cdots t_n$\hfill 1156[\rul{AP\_THM} 1 (n volte)] 1157\item $\turn(\lquant{x_1\cdots x_n}t'[x_1,\ldots,x_n])\ t_1\cdots t_n = 1158t'[t_1,\ldots,t_n]$\hfill [\rul{BETA\_CONV} (n volte)] 1159\item $\Gamma\turn t\ t_1\cdots t_n = t'[t_1,\ldots,t_n]$\hfill 1160[\rul{TRANS} 2,3] 1161\end{proof} 1162 1163 1164 1165 1166 1167\subsection{\texorpdfstring{$\wedge$-introduzione}{Congiunzione-introduzione}} 1168\label{avra_conj} 1169 1170 1171\begin{holboxed} 1172\index{CONJ@\ml{CONJ}|pin} 1173\index{congiunzione, nella logica HOL@congiunzione, nella logica \HOL{}!regola d'inferenza per} 1174\begin{verbatim} 1175 CONJ : thm -> thm -> thm 1176\end{verbatim}\end{holboxed} 1177 1178\vspace{12pt plus2pt minus1pt} 1179 1180$$\Gamma_1\turn t_1\qquad\qquad\qquad\Gamma_2\turn t_2\over 1181\Gamma_1\cup\Gamma_2 \turn t_1\conj t_2$$ 1182 1183\vspace{12pt plus2pt minus1pt} 1184 1185\begin{proof} 1186\item $\turn \conj = \lquant{b_1\ b_2}\uquant{b}(b_1\imp(b_2\imp b))\imp b$ 1187\hfill [Definition of $\conj$] 1188\item $\turn t_1\conj t_2 = \uquant{b}(t_1\imp(t_2\imp b))\imp b$\hfill 1189[\rul{RIGHT\_LIST\_BETA} 1] 1190\item $t_1\imp(t_2\imp b)\turn t_1\imp(t_2\imp b)$\hfill [\rul{ASSUME}] 1191\item $\Gamma_1\turn t_1$\hfill [Ipotesi] 1192\item $\Gamma_1,\ t_1\imp(t_2\imp b)\turn t_2\imp b$\hfill [\rul{MP} 3,4] 1193\item $\Gamma_2\turn t_2$\hfill [Ipotesi] 1194\item $\Gamma_1\cup\Gamma_2,\ t_1\imp(t_2\imp b)\turn b$\hfill [\rul{MP} 5,6] 1195\item $\Gamma_1\cup \Gamma_2\turn(t_1\imp(t_2\imp b))\imp b$\hfill 1196[\rul{DISCH} 7] 1197\item $\Gamma_1\cup \Gamma_2\turn \uquant{b}(t_1\imp(t_2\imp b))\imp b$\hfill 1198[\rul{GEN} 8] 1199\item $\Gamma_1\cup \Gamma_2\turn t_1\conj t_2$\hfill 1200[\rul{EQ\_MP} (\rul{SYM} 2),9] 1201\end{proof} 1202 1203 1204 1205 1206\subsection{\texorpdfstring{$\wedge$-eliminazione}{Congiunzione-eliminazione}} 1207 1208 1209\begin{holboxed} 1210\index{CONJUNCT1@\ml{CONJUNCT1}|pin} 1211\index{CONJUNCT2@\ml{CONJUNCT2}|pin} 1212\begin{verbatim} 1213 CONJUNCT1 : thm -> thm, CONJUNCT2 : thm -> thm 1214\end{verbatim}\end{holboxed} 1215 1216\vspace{12pt plus2pt minus1pt} 1217 1218$$\Gamma\turn t_1\conj t_2\over 1219\Gamma\turn t_1\qquad\qquad\qquad \Gamma\turn t_2$$ 1220 1221\vspace{12pt plus2pt minus1pt} 1222 1223\begin{proof} 1224\item $\turn \conj = \lquant{b_1\ b_2}\uquant{b}(b_1\imp(b_2\imp b))\imp b$ 1225\hfill [Definizione di $\conj$] 1226\item $\turn t_1\conj t_2 = \uquant{b}(t_1\imp(t_2\imp b))\imp b$\hfill 1227[\rul{RIGHT\_LIST\_BETA} 1] 1228\item $\Gamma\turn t_1\conj t_2$\hfill [Ipotesi] 1229\item $\Gamma\turn \uquant{b}(t_1\imp(t_2\imp b))\imp b$\hfill 1230[\rul{EQ\_MP} 2,3] 1231\item $\Gamma\turn (t_1\imp(t_2\imp t_1))\imp t_1$\hfill [\rul{SPEC} 4] 1232\item $t_1\turn t_1$\hfill [\rul{ASSUME}] 1233\item $t_1 \turn t_2\imp t_1$\hfill [\rul{DISCH} 6] 1234\item $\turn t_1\imp(t_2\imp t_1)$\hfill [\rul{DISCH} 7] 1235\item $\Gamma\turn t_1$\hfill [\rul{MP} 5,8] 1236\item $\Gamma\turn (t_1\imp(t_2\imp t_2))\imp t_2$\hfill [\rul{SPEC} 4] 1237\item $t_2\turn t_2$\hfill [\rul{ASSUME}] 1238\item $\turn t_2\imp t_2$\hfill [\rul{DISCH} 11] 1239\item $\turn t_1\imp(t_2\imp t_2)$\hfill [\rul{DISCH} 12] 1240\item $\Gamma\turn t_2$\hfill [\rul{MP} 10,13] 1241\item $\Gamma\turn t_1$ and $\Gamma\turn t_2$\hfill [9,14] 1242\end{proof} 1243 1244 1245 1246 1247\subsection{\texorpdfstring{$\vee$-introduzione a destra}{Disgiunzione-introduzione a destra}}\index{disgiunzione, nella logica HOL@disgiunzione, nella logica \HOL{}!regola d'inferenza per|(} 1248 1249\begin{holboxed} 1250\index{DISJ1@\ml{DISJ1}|pin} 1251\begin{verbatim} 1252 DISJ1 : thm -> conv 1253\end{verbatim}\end{holboxed} 1254 1255\vspace{12pt plus2pt minus1pt} 1256 1257$$\Gamma\turn t_1\over \Gamma\turn t_1\disj t_2$$ 1258 1259\vspace{12pt plus2pt minus1pt} 1260 1261\begin{proof} 1262\item $\turn \disj = 1263\lquant{b_1\ b_2}\uquant{b}(b_1\imp b)\imp(b_2\imp b)\imp b$ 1264\hfill [Definizione di $\disj$] 1265\item $\turn t_1\disj t_2 = \uquant{b}(t_1\imp b)\imp(t_2\imp b)\imp b$ 1266\hfill [\rul{RIGHT\_LIST\_BETA} 1] 1267\item $\Gamma\turn t_1$\hfill [Ipotesi] 1268\item $t_1\imp b\turn t_1\imp b$\hfill [\rul{ASSUME}] 1269\item $\Gamma,\ t_1\imp b\turn b$\hfill [\rul{MP} 4,3] 1270\item $\Gamma,\ t_1\imp b\turn(t_2\imp b)\imp b$\hfill [\rul{DISCH} 5] 1271\item $\Gamma\turn (t_1\imp b)\imp(t_2\imp b)\imp b$\hfill [\rul{DISCH} 6] 1272\item $\Gamma\turn \uquant{b}(t_1\imp b) 1273\imp(t_2\imp b)\imp b$\hfill [\rul{GEN} 7] 1274\item $\Gamma\turn t_1\disj t_2$\hfill [\rul{EQ\_MP} (\rul{SYM} 2),8] 1275\end{proof} 1276 1277 1278 1279 1280\subsection{\texorpdfstring{$\vee$-introduzione a sinistra}{Disgiunzione-introduzione a sinistra}} 1281 1282 1283\begin{holboxed} 1284\index{DISJ2@\ml{DISJ2}|pin} 1285\begin{verbatim} 1286 DISJ2 : term -> thm -> thm 1287\end{verbatim}\end{holboxed} 1288 1289 1290\vspace{12pt plus2pt minus1pt} 1291 1292$$\Gamma\turn t_2\over \Gamma\turn t_1\disj t_2$$ 1293 1294\vspace{12pt plus2pt minus1pt} 1295 1296\begin{proof} 1297\item $\turn \disj = 1298\lquant{b_1\ b_2}\uquant{b}(b_1\imp b)\imp(b_2\imp b)\imp b$ 1299\hfill [Definizione di $\disj$] 1300\item $\turn t_1\disj t_2 = \uquant{b}(t_1\imp b)\imp(t_2\imp b)\imp b$ 1301\hfill [\rul{RIGHT\_LIST\_BETA} 1] 1302\item $\Gamma\turn t_2$\hfill [Ipotesi] 1303\item $t_2\imp b\turn t_2\imp b$\hfill [\rul{ASSUME}] 1304\item $\Gamma,\ t_2\imp b\turn b$\hfill [\rul{MP} 4,3] 1305\item $\Gamma\turn(t_2\imp b)\imp b$\hfill [\rul{DISCH} 5] 1306\item $\Gamma\turn (t_1\imp b)\imp(t_2\imp b)\imp b$\hfill [\rul{DISCH} 6] 1307\item $\Gamma\turn \uquant{b}(t_1\imp b) 1308\imp(t_2\imp b)\imp b$\hfill [\rul{GEN} 7] 1309\item $\Gamma\turn t_1\disj t_2$\hfill [\rul{EQ\_MP} (\rul{SYM} 2),8] 1310\end{proof} 1311 1312 1313\subsection{\texorpdfstring{$\vee$-eliminazione}{Disgiunzione-eliminazione}} 1314 1315\begin{holboxed} 1316\index{DISJ_CASES@\ml{DISJ\_CASES}|pin} 1317\begin{verbatim} 1318 DISJ_CASES : thm -> thm -> thm -> thm 1319\end{verbatim}\end{holboxed} 1320 1321\vspace{12pt plus2pt minus1pt} 1322 1323$$\Gamma\turn t_1\disj t_2\qquad\qquad\qquad\Gamma_1,\ t_1\turn t 1324\qquad\qquad\qquad \Gamma_2,\ t_2\turn t\over 1325\Gamma\cup\Gamma_1\cup\Gamma_2\turn t$$ 1326 1327\vspace{12pt plus2pt minus1pt} 1328 1329\begin{proof} 1330\item $\turn \disj = 1331\lquant{b_1\ b_2}\uquant{b}(b_1\imp b)\imp(b_2\imp b)\imp b$ 1332\hfill [Definizione di $\disj$] 1333\item $\turn t_1\disj t_2 = \uquant{b}(t_1\imp b)\imp(t_2\imp b)\imp b$ 1334\hfill [\rul{RIGHT\_LIST\_BETA} 1] 1335\item $\Gamma\turn t_1\disj t_2$\hfill [Ipotesi] 1336\item $\Gamma\turn\uquant{b}(t_1\imp b)\imp(t_2\imp b)\imp b$\hfill 1337[\rul{EQ\_MP} 2,3] 1338\item $\Gamma\turn(t_1\imp t)\imp(t_2\imp t)\imp t$\hfill [\rul{SPEC} 4] 1339\item $\Gamma_1,\ t_1\turn t$\hfill [Ipotesi] 1340\item $\Gamma_1\turn t_1\imp t$\hfill [\rul{DISCH} 6] 1341\item $\Gamma\cup \Gamma_1\turn (t_2\imp t)\imp t$\hfill [\rul{MP} 5,7] 1342\item $\Gamma_2,\ t_2\turn t$\hfill [Ipotesi] 1343\item $\Gamma_2\turn t_2\imp t$\hfill [\rul{DISCH} 9] 1344\item $\Gamma\cup \Gamma_1\cup \Gamma_2\turn t$\hfill [\rul{MP} 8,10] 1345\end{proof} 1346\index{disgiunzione, nella logica HOL@disgiunzione, nella logica \HOL{}!regola d'inferenza per|)} 1347 1348 1349 1350 1351\subsection{Regola classica di contraddizione} 1352\index{F (falsit�), la costante HOL@\holtxt{F} (falsit�), la costante \HOL{}!regole d'inferenza per} 1353 1354\begin{holboxed} 1355\index{CCONTR@\ml{CCONTR}|pin} 1356\index{regola di contraddizione, nella logica HOL@regola di contraddizione, nella logica \HOL{}} 1357\begin{verbatim} 1358 CCONTR : term -> thm -> thm 1359\end{verbatim}\end{holboxed} 1360 1361\vspace{12pt plus2pt minus1pt} 1362 1363$$\Gamma,\ \neg t\turn \F\over \Gamma\turn t$$ 1364 1365\vspace{12pt plus2pt minus1pt} 1366 1367\begin{proof} 1368\item $\turn \neg = \lquant{b}b\imp\F$\hfill [Definizione di $\neg$] 1369\item $\turn \neg t = t\imp\F$\hfill [\rul{RIGHT\_LIST\_BETA} 1] 1370\item $\Gamma,\ \neg t\turn\F$\hfill [Ipotesi] 1371\item $\Gamma\turn \neg t\imp\F$\hfill [\rul{DISCH} 3] 1372\item $\Gamma\turn (t\imp\F)\imp\F$\hfill [\rul{SUBST} 2,4] 1373\item $t = \F\turn t = \F$\hfill [\rul{ASSUME}] 1374\item $\Gamma,\ t=\F\turn (\F\imp\F)\imp\F$\hfill [\rul{SUBST} 6,5] 1375\item $\F\turn\F$\hfill [\rul{ASSUME}] 1376\item $\turn \F\imp\F$\hfill [\rul{DISCH} 8] 1377\item $\Gamma,\ t=\F\turn\F$\hfill [\rul{MP} 7,9] 1378\item $\turn \F = \uquant{b}b$\hfill [Definizione di $\F$] 1379\item $\Gamma,\ t=\F\turn \uquant{b}b$\hfill [\rul{SUBST} 11,10] 1380\item $\Gamma,\ t=\F\turn t$\hfill [\rul{SPEC} 12] 1381\item $\turn \uquant{b} (b = \T)\disj(b = \F)$\hfill [Axiom] 1382\item $\turn (t = \T)\disj(t = \F)$\hfill [\rul{SPEC} 14] 1383\item $t=\T\turn t=\T$\hfill [\rul{ASSUME}] 1384\item $t=\T\turn t$\hfill [\rul{EQT\_ELIM} 16] 1385\item $\Gamma\turn t$\hfill [\rul{DISJ\_CASES} 15,17,13] 1386\end{proof} 1387\index{regole derivate, nella logica HOL@regole derivate, nella logica \HOL{}!elenco e derivazioni di alcune|)} 1388\index{regole d'inferenza, della logica HOL@regole d'inferenza, della logica \HOL{}!derivate|)} 1389 1390 1391 1392%%% Local Variables: 1393%%% mode: latex 1394%%% TeX-master: "description" 1395%%% End: 1396