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