Illogica dei predicati, o del primo disordine

Documenti analoghi
Logica proposizionale

( x 1 )A 2 1 x2, f1 1 (x 1 ) )

Sistemi di dimostrazione

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

Logica per la Programmazione

Fondamenti di Logica Matematica versione 1.1.3

Esercizi di Logica Matematica

CALCOLO PROPOSIZIONALE

COMPITO di LOGICA PER INFORMATICA (fila 1) 24 giugno 2005

Logica: materiale didattico

Elementi di Algebra e Logica Determinare la tavola della verità di ciascuna delle seguenti forme proposizionali:

Logica per la Programmazione

Logica per la Programmazione

LOGICA MATEMATICA PER INFORMATICA

Logica proposizionale

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

Logica Proposizionale

Prerequisiti Matematici

Linguaggi. Claudio Sacerdoti Coen 03/12/ : Logica del prim ordine. Universitá di Bologna. Logica del prim ordine

15. Nozione di modello e verità di un predicato

9 Calcolo dei sequenti LC p

Teorema 1.1. (Teorema di Compattezza) Sia Γ un insieme di formule di un linguaggio proposizionale.

Esercitazioni per il corso di Logica Matematica

02 - Logica delle dimostrazioni

15. Nozione di modello e verità di un predicato

Algebra e Logica Matematica. Calcolo delle proposizioni Logica del primo ordine

13. Nozione di modello e verità di un predicato

Agenti Basati su Logica

Alberi di sequenti per un linguaggio predicativo L 1.

Ragionamenti e metodi di dimostrazione. Liceo Scientifico Statale S. Cannizzaro Prof.re E. Modica

1 Il linguaggio matematico

QUESITI DI ANALISI Derivate versione senza graci

Compito di logica 28 giugno 2007 SOLUZIONI Fornire una derivazione in LJ dei sequenti: A A A B, B A A A B B A A A

Linguaggi. Claudio Sacerdoti Coen 11/04/ : Semantica della logica del prim ordine. Universitá di Bologna

P : gli iscritti all università di Bari sono più di 1000

LOGICA PER LA PROGRAMMAZIONE a.a. 2017/18 Terza esercitazione 24/ Soluzioni Proposte

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

DIMOSTRAZIONI DI EQUIVALENZE, SUI CONNETTIVI E SULL'AMBIGUITA' DELLA SINTASSI. Corso di Logica per la Programmazione

Esercitazioni per il corso di Logica Matematica

Ragionamento Automatico Richiami di calcolo dei predicati

Intelligenza Artificiale I

Materiale didattico aggiuntivo - Analisi Matematica I CENNI DI LOGICA MATEMATICA. 1. Proposizioni. Valori logici. Connettivi logici. Tavole di verita.

14. Nozione di modello e verità di un predicato

DIMOSTRAZIONI DI EQUIVALENZE, SUI CONNETTIVI E SULL'AMBIGUITA' DELLA SINTASSI. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

Intelligenza Artificiale. Logica proposizionale: calcolo simbolico

Logica. 7: Conseguenza ed equivalenza logica in logica classica proposizionale. Claudio Sacerdoti Coen. Universitá di Bologna

Logica per la Programmazione

Logica per la Programmazione

Logica proposizionale

401 PREDICATI RICORSIVI PRIMITIVI

Fondamenti di Informatica 2

Errata corrige del libro Introduzione alla logica e al linguaggio matematico

LOGICA FUZZY, I LOGICA DI GÖDEL

Verità, tautologia e implicazione logica

CALCOLO DEL PRIMO ORDINE

Linguaggi. Claudio Sacerdoti Coen 04/03/ : Forme normali. Universitá di Bologna. Forme normali e canoniche

Precorsi di matematica

Ragionamento Automatico Richiami di tableaux proposizionali

RELAZIONI TRA SINTASSI E SEMANTICA

Logica per la Programmazione

Logica per la Programmazione

METODI MATEMATICI PER L INFORMATICA

METODI MATEMATICI PER L INFORMATICA

Teoremi fondamentali dell'analisi Matematica versione 1

INTRODUZIONE ALLA LOGICA DI HOARE. Corso di Logica per la Programmazione A.A. 2013/14

DIMOSTRAZIONI DI TAUTOLOGIE. Corso di Logica per la Programmazione

Linguaggi. Claudio Sacerdoti Coen 11/12/ : Logica del prim ordine. Universitá di Bologna. Logica del prim ordine

Cenni di logica matematica e di teoria degli insiemi. CORSI INTRODUTTIVI Dipartimento di Ingegneria di Perugia a.a. 2016/2017 Paola Rubbioni

TEN Radici quadrate modulo p e modulo p k. Radici quadrate modulo p, con p > 2.

Intelligenza Artificiale. Logica Prime definizioni

Introduzione alla logica matematica

Cenni di logica matematica e di teoria degli insiemi Paola Rubbioni

Cenni di logica e calcolo proposizionale

Esercizio 2. Spiegare perché è falsa la seguente affermazione: Se n è un numero negativo, allora anche n + 3 è negativo.

Capitolo 2 Spazi vettoriali Esercizi svolti Tutorato di geometria e algebra lineare. Marco Robutti

Corso di Logica I. Modulo sul Calcolo dei Sequenti. Dispensa Lezione III.

CALCOLO PROPOSIZIONALE. Corso di Logica per la Programmazione Andrea Corradini

Relazioni e Principio di Induzione

Teoria dei modelli. Alessandro Berarducci. 3 Marzo Dipartimento di Matematica Pisa

Equazioni di primo grado

Ricordiamo. 1. Tra le equazioni delle seguenti rette individua e disegna quelle parallele all asse delle ascisse:

NOZIONI DI LOGICA PROPOSIZIONI.

Precorso di Matematica

Istituzioni di Matematiche (V): Seconda Prova Parziale, 13 Gennaio 2015 (versione 1)

Semantica proposizionale. Unit 2, Lez 3 e 4 Corso di Logica

Prova scritta di Matematica Discreta e Logica del giorno 3 luglio 2017 Soluzione degli esercizi FILA D

Esercizi di Logica Matematica (parte 2)

George BOOLE ( ) L algebra booleana. (logica proposizionale)

Forma normale prenessa

INSIEMI. DEF. Un INSIEME è una qualsiasi collezione di oggetti.

Elementi di Logica Matematica

Sintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen

Transcript:

Illogica dei predicati, o del primo disordine November 9, 2008 1 Descrizione La logica dei predicati estende la logica proposizionale, con i seguenti concetti: Quanticatori: esistenziale ed univerale Predicati: esprimono proprietà e relazioni su insiemi di oggetti del dominio Termini: oggetti del dominio. Possono essere variabili o costanti Funzioni: esistenti permettono di denire nuovi oggetti in termini di quelli già 2 Induzione strutturale Ci sono due tipi di induzione strutturale, nella logica dei predicati. La prima è l'induzione strutturale sui termini, e la seconda è l'induzione strutturale e basta, che va bene per il resto dei predicati. 2.1 Induzione strutturale sui termini Per vericare che la solita proprietà P sia vericata per ogni termine t T ER, basta vericare queste cose: P è vericata per tutti i simboli di variabile e costante t 1, t 2,..., t n T ER allora per ogni f: P (t 1 ), P (t 2 ),..., P (t n ) P (f(t 1, t 2,..., t n )) 2.2 Induzione strutturale Invece, per vericare la proprietà P per tutte le fbf, occorre solamente dimostrare che: P vale per tutti i predicati, per F e per T Se valgono P(P) e P(Q), allora vale anche per P ( Q), P (P Q), P ( Q), P (P Q). Se vale P(P), allora vale anche per P ( xp ), P ( xp ) 1

3 Campo d'azione e variabili libere Il campo d'azione (scope) di un quanticatore è la fbf immediatamente alla sua destra: ha eetto solo su quella fbf e non altrove. Una variabile che si trova nello scope di un quanticatore è legata; altrimenti è libera. Una fbf è chiusa se non ha variabili libere; è aperta se invece ne ha almeno una. Da notare che una fbf può avere variabili sia libere che legate. Nella seguente fbf P = x(q(x, y) R(x)) y( Q(f(x, y)) zr(z)) l'insieme delle variabili libere è F V (P ) = {x, y}, e quello delle variabili legate è BV (P ) = {x, y, z}. 3.1 Ridenominazione Le variabili legate possono essere ridenominate, perché sono parametri formali (?), purché non andiamo a dargli il nome di altre variabili libere già presenti nella formula: dobbiamo dargli un nome nuovo, un po' come alla Principessa di Fantàsia. Per esempio, se ho x(q(x, z) S(y) xr(x)) posso decidere di scambiare x con y e quindi cambiare le x legate all' x in y. Ottengo quindi: e le due formule sono equivalenti. y(q(y, z) S(y) xr(x)) 4 Sostituzione 4.1 Sostituzione di termini Anche i termini possono essere sostituiti, se mi aggrada. I termini possono essere variabili o costanti. La notazione è un po' ostica ed OSCURA: consideri s e t due termini, e scrivo la mia volontà di sostituzione come s[t/x]: voglio usare la t al posto della x, nel termine s. Pertanto, ho i seguenti casi: se s è la variabile x, allora s[t/x] = x[t/x] = t se s è la variabile y, e quindi y x, allora s[t/x] = y[t/x] = y se s è una costante c, allora c[t/x] = c se invece s è una funzione, allora f(t 1,..., t n )[t/x] = f(t 1 [t/x],..., t n [t/x]). In pratica i parametri della funzione vengono tutti sostituiti. 2

4.2 Sostituzione La sostituzione si applica solo a variabili libere. Se P è una fbf, e t è un termine, allora la sostituzione P[t/x] si applica sostituendo man mano ogni cosa: F[t/x] = F; T[t/x] = T A(t 1,..., t n )[t/x] = A(t 1 [t/x],..., t n [t/x]) ( P )[t/x] = P [t/x] (P 1 P 2 )[t/x] = P 1 [t/x] P 2 [t/x] (P 1 P 2 )[t/x] = P 1 [t/x] P 2 [t/x] (P 1 P 2 )[t/x] = P 1 [t/x] P 2 [t/x] Bisogna stare attenti, quando si sostituisce, che si stiano sostituendo le variabili libere, e non quelle legate ai quanticatori, ed evitare di mettere gli stessi nomi. 5 Semantica 5.1 Struttura Una struttura è una coppia S=(D,I) dove D è un insieme non vuoto detto dominio, ed I è un assegnamento che serve per associare valori a costanti, funzioni e predicati. Le variabili invece non sono dentro una struttura, ma vengono gestite da un ambiente, senza motivi plausibili (vedi sotto). c s = I(c): alle costanti viene assegnato un valore I(c) D f s = I(f): alle funzioni di arità (numero di parametri) k>0 viene assegnata una funzione: I(f) : D k D, ovvero l'assegnamento della funzione f è una funzione che va da k elementi del dominio ad un elemento del dominio A s = I(A):ai predicati A di arità k>0 viene assegnata una cosa così: I(A) : D k {0, 1}. Questo signica che ad un predicato, in un certo dominio, viene assegnato un certo valore di verità. Le varie s all'esponente vogliono dire che sto parlando di assegnamenti all'interno della struttura S. Infatti, se cambio struttura, allora gli assegnamento possono essere ben diversi. Una conseguenza di questa faccenda è che il valore di verità di una fbf dipende dall'assegnamento fatto sulle variabili libere. Se una variabile può assumere inniti valori, allora anche la fbf potrà avere innite interpretazioni... 3

5.2 Ambiente L'ambiente è la stessa cosa di una struttura, solo che è riferito alle variabili. Un ambiente per S è una funzione ξ s : V AR D, ovvero una funzione che va dall'insieme delle variabili al dominio. L'insieme di tutti i possibili ambienti è detto ENV s = {ξ s : V AR D}. Quindi ci possono essere diversi ambienti legati ad una certa struttura e quindi ad un certo dominio. Pertanto, in linea di massima, le fbf assumeranno diversi valori a seconda dell'ambiente in cui si trovano. Posso anche operare delle sostituzioni delle variabili nell'ambiente. Abbiamo d D, e x V AR. L'ambiente ξ s [d/x] è denito in questo modo: se y x, allora ξ s [d/x](y) = ξ s (y) se y = x, allora ξ s [d/x](y) = d In altre parole, vuol dire che cambio il valore che la funzione ξ s assegna ad una certa variabile, e morta lì. 5.3 Interpretazione Quando abbiamo una struttura S ed un ambiente ξ S, allora siamo nalmente in grado di dare un'interpretazione alle fbf. L'interpretazione di un linguaggio proposizionale L è appunto una coppia (S, ξ s ). 5.3.1 Interpretazione: valore TER P è una fbf, e (S, ξ s ) è un'interpretazione. Per ogni termine t in P, il suo valore in (S, ξ s ) è denotato dalla funzione [ ] s,ξ s ) : T ER D. Vuol dire che prendo il termine, e la funzione [ ] s,ξs ) lo mapperà in un elemento del dominio. Ovviamente, come sopra, il valore di questo termine cambia a seconda che si tratti di una variabile, una costante od una funzione. 5.4 Funzione di valutazione Adesso che abbiamo la struttura, un ambiente per questa struttura, ed un'interpretazione con questa struttura e questo ambiente, possiamo nalmente arrivare ad una funzione di valutazione, che prende una fbf e restituisce o 0, o 1, in pratica, il valore di verità di tale fbf. Formalmente, è una cosa così: v (s,ξs) : F BF {0, 1} Come dicevamo anche sopra, senza dominio, struttura, ambiente ed interpretazione, non sappiamo dire se una fbf è vera o falsa; inoltre, se cambiamo dominio etc. la fbf può assumere un altro valore di verità. Questo dipende dal fatto che ci sono le variabili, che nella logica proposizionale non c'erano, e che non si può fare niente nché non si ssa quello che vogliono dire. Ma ocio: se il dominio non è nito, allora il valore di verità ce lo sogniamo: dovremmo controllare per ogni elemento del dominio... 4

5.5 Soddisfascibilità P è soddisfatta in una struttura S, rispetto all'ambiente ξ, se v (s,ξ) (P ) = 1. In questo caso si può anche scrivere (S, ξ) = P P è soddisfascibile in S se esiste un ambiente ξ tale che (S, ξ) = P P è vera in S se per ogni ambiente ξ si ha che (S, ξ) = P. Si dice che S è un modello per P P è soddisfascibile se esiste una struttura S tale che P sia soddisfascibile in S P è valida se è vera in ogni struttura. In questo caso si scrive = P P è falsa in una struttura S se e solo se non è soddisfascibile in S, e si scrive S P P è insoddisfacibile, o anche contraddittoria, se e solo se è falsa in ogni struttura In questi punti si può notare l'escalation della veridicità della nostra fbf P: si comincia col dire che è soddisfascibile o soddisfatta all'interno di una particolare struttura, e poi si nisce parlando della sua soddisfascibilità in tutte le strutture. Una P valida è come una tautologia proposizionale, solo che se per la tautologia bastava scrivere una tabella di verità (per quanto gigantesca) e controllare tutte le voci per vedere che fosse proprio una tautologia, qui è molto più ardua. 5.5.1 Insiemi soddisfascibili Prendiamo il nostro caro insieme Γ di fbf. Possiamo parlare di soddisfascibilità anche per lui. Se esiste una struttura S ed un ambiente ξ s tali che tutte le f Γ siano soddisfascibili, allora anche Γ è soddisfascibile S è un modello di Γ, e si scrive S = Γ, se S è un modello per ogni P Γ Γ è valido se ogni struttura è modello di Γ, e si scrive = Γ 5.5.2 Conseguenza semantica Anche il caro concetto di conseguenza semantica trova applicazione nell'illogica del primo disordine. Dato il solito insieme Γ e la fbf solitaria P, possiamo dire che P è una conseguenza semantica di Γ se, per ogni struttura S e per ogni ambiente ξ s che soddisfano Γ, si ha anche che (S, ξ s ) = P. In pratica S e ξ s devono rendere vere tutte le Q Γ e anche la P solitaria. 5

5.5.3 Lemma di soddisfascibilità Possiamo anche legare la denizione di soddisfascibilità al signicato intuitivo dei connettivi. Tanto per non riscrivere tutto, faccio un solo esempio: (S, ξ s ) = P Q sse (S, ξ s ) = P e (S, ξ s ) = Q. Questo vuol dire che la nostra struttura ed il nostro ambiente sono modelli di P Q se e solo se lo sono sia per P che per Q. Possiamo replicare questa cosa con tutti gli altri connettivi normali, e anche per i nuovi connettivi e : (S, ξ s ) = xp sse (S, ξ s [a/x]) = P per ogni a D (S, ξ s ) = xp sse (S, ξ s [a/x]) = P per qualche a D Queste due formulazioni si basano sul fatto che i quanticatori esistenziali prendono come argomento le variabili, qui indicate con x. Se alle x sostituiamo, uno alla volta, tutti gli elementi del dominio (indicato con [a/x] per ogni a D), allora abbiamo la denizione intuitiva di e. Tutto ciò va anche dimostrato, e sicuramente salterà fuori all'esame... 5.5.4 Equivalenza semantica Due fbf, le solite P e Q, sono semanticamente equivalenti se per tutte le interpretazioni (S, ξ s ), il valore di verità della P è uguale a quello della Q: v (S,ξs) (P ) = v (S,ξs) (Q). Possiamo anche riformulare sta cosa in questo modo: 5.6 Magie delle sostituzioni = P Q Prima parlavamo di sostituzioni, ed ora ci tocca introdurre certe proprietà che permettono di giostrare un po' con le variabili, così da facilitarci la vita in futuro, quando dovremo calcolare il vdv delle fbf, ppv 1! 5.6.1 Sostituzione variabili legate P è una fbf, e z è una variabile che NON occorre in P. Valgono le seguenti cose: xp = zp [z/x] xp = zp [z/x] E n qui niente di nuovo: sono le solite sostituzioni. 1 Porca P*****a Vacca! 6

5.6.2 Scambio dei quanticatori È anche possibile scambiare i quanticatori, similmente a come avveniva con le amate leggi di De Morgan, in cui si scambiano gli AND con gli OR portando qua e là le negazioni. Ecco le equivalenze: xp x P xp x P xp Ax P xp x P Ce ne sono anche altre: x yp y xp x yp y xp xp P se x / F V (P ) xp P se x / F V (P ) Ed eccone di ancora più allegre: x(p Q) xp xq x(p Q) xp xq x(p Q) xp xq se x / F V (Q) x(p Q) xp xq se x / F V (Q) Bisogna stare attenti a queste, soprattutto alle ultime due, perché se la condizione x / F V (Q) non è soddisfatta, allora in generale non sono aatto equivalenti! Per crederci, guardate a questo esempio. Se dico per ogni intero x, x è pari o x è dispari, dovrei scrivere x(p (x) D(x)) Se cercassi di staccare la congiunzione, otterrei xp (x) xd(x) il cui signicato è: ogni intero x è pari, o ogni intero x è dispari. Le cose sono ben diverse: questa è falsa e l'altra è vera. Il punto sta proprio che va specicata la condizione x / F V (Q). Ma se la x invece appartiene alle FV della Q, il trucco allora consiste nel ridenominare le variabili. 7

5.6.3 Proprietà relative all'implicazione Queste meritano un paragrafo a parte, vista la loro peculiarità. La condizione per TUTTE le equivalenze qui sotto è che x / F V (Q). Altrimenti, non sono buone xp Q x(p Q) xp Q x(p Q) Q xp x(q P ) Q xp x(q P ) La sostanza di queste robe è che si può spostare il quanticatore dentro o fuori l'implicazione, stando attenti che la variabile non sia libera. Infatti, le variabili libere sono concettualmente robe molto diverse dalle variabili legate (maggiori informazioni al riguardo in futuro). Al solito, la possibilità di ridenominare le variabili con un nome nuovo ci permette di eseguire ugualmente queste equivalenze. Per esempio, in una cosa come: xa(x) B(x) la x è sia legata all' x che libera. Ricordiamo che lo scope di un quanticatore è la fbf immediatamente alla sua destra. Se noi facessimo semplicemente una cosa così: x(a(x) B(x)) incorreremmo in un errore grave, perché ora la x sarebbe solo legata, e non apparirebbe più libera. Quindi, possiamo sostituire il nome della variabile legata x con un'altra variabile nuova, ad esempio y, e quindi possiamo scrivere: ya(y) B(x) A questo punto, è possibile applicare l'equivalenza di cui sopra, ovvero portar fuori il, scambiarlo con, e raggruppare l'implicazione: y(a(y) B(x)) Questo giochetto dello scambio di variabili ci verrà molto buono per il prossimo argomento: la forma normale prenessa delle fbf. 6 Forma normale prenessa Una fbf è in forma normale prenessa se ha tutti i quanticatori uno dopo l'altro all'inizio, e solo a destra ha una fbf P, e P non deve contenere quanticatori. Simbolicamente la possiamo scrivere come Q 1 x 1 Q 2 x 2... Q n x n P 8

in cui le varie Q n sono uno qualsiasi dei quanticatori, mentre in P non devono esistere. È sempre possibile trasformare una fbf nella sua forma normale prenessa? Come? Eseguendo le equivalenze della sezione precedente, per portar fuori tutti i quanticatori, previa sostituzioni delle variabili per evitare di legare ciò che prima non era legato. Siccome la forma normale prenessa è la base della forma di Skolem, tramite la quale si può calcolare una fbf del primo disordine, ne consegue che le belle equivalenze di cui sopra vanno imparate a memoria... sigh:( 6.1 Algoritmo di trasformazione 1. Occorre ridenominare con nomi nuovi tutte le variabili legate che hanno lo stesso nome di variabili libere nella P 2. Occorre ridenominare con nuovi nomi tutte le variabili legate che hanno lo stesso nome di altre variabili legate 3. Poi si tirano fuori i quanticatori con le proprietà che abbiamo visto sopra 6.1.1 Proprietà per il prenessaggio (?) di una formula Riassumiamo qui le nostre care formulette di estrazione di quanticatori, ricordando che i vari Q n sono i quanticatori: 1. xp x P 2. xp x P 3. Q 1 xp Q 2 yq Q 1 xq 2 y(p Q) 4. Q 1 xp Q 2 yq Q 1 xq 2 y(p Q) 5. xp Q x(p Q) 6. xp Q x(p Q) 7. P xq x(p Q) 8. P xq x(p Q) Attenzione: come scritto nei punti 1 e 2 dell'algoritmo, queste formule sono valide perché abbiamo già provveduto a ridenominare tutte le variabili libere e quelle legate con altri nomi! Altrimenti, non sarebbero valide, e vedi sopra per le condizioni di validità di queste equivalenze. 9

6.1.2 Esempio Abbiamo la fbf xa(x) xb(x) Possiamo vedere che la x di A(x) è legata al primo x, mentre quella di B(x) è legata al secondo x. Secondo il passo 2 dell'algoritmo, dovremmo cambiare i nomi delle variabili legate, così che non ce ne siano due con lo stesso nome ma legate a quanticatori diversi. Qui scegliamo di cambiare il nome alla seconda x, e otteniamo in questo modo: xa(x) yb(y) Adesso possiamo applicare la regola 2 pseudo-de Morgan, che serve per portare dentro la negazione. La parte a destra della nostra fbf ha una bella negazione davanti all' y. Se la portiamo dentro, occorre però trasformare il quanticatore nell'altro: xa(x) y B(y) Adesso siamo piuttosto felici. C'è la regola 5 riguardante l'implicazione, che mi dice che posso portar fuori dall'implicazione il primo quanticatore, invertendolo, e mettere il resto all'interno. La posso applicare perché le variabili legate hanno nome diverso, e quindi x diventa x: x(a(x) y B(y)) Inne, per arrivare alla tanto agognata forma prenessa, posso tirar fuori l' y dalla fbf, mettendo l'implicazione nel suo scope tramite la regola 7: x y(a(x) B(y)) 7 Forma di Skolem La forma di Skolem proviene da un'opportuna trasformazione di una fbf, ma per quanto riguarda il signicato non è ad essa equivalente. La cosa non è allegrissima, però c'è il teorema di Skolem che dice che la sua forma e quella normale sono legate: se una è soddisfascibile, lo è anche l'altra, e viceversa. Il punto è che se la forma di Skolem è più facile da calcolare, ed è soddisfascibile come quella normale, allora si può trasformare la fbf in forma di Skolem per avere la vita facilitata. La forma di Skolem si occupa di convertire gli x i in altre cose, a seconda di come sono messi all'interno della fbf. Ecco come si procede: se x i non è nello scope di un, allora al posto della x i mi invento una costante c, ed elimino x i se invece x i è nello scope di alcuni, per eliminare il mio x i devo introdurre una nuova funzione g(x i,1,..., x i,n ) al posto degli x i nella P. Qui n è il numero di nella P. 10

7.1 Esempi 7.1.1 Eliminazione di un x i non nello scope di un Vediamo un po' di vedere un esempio per la prima regola di trasformazione, quella che trasforma gli x i in costanti. Prendiamo la formula xa(x) La x è legata, e non c'è nessun incombente. Semplicemente, converto il mio x in una costante c, ed ottengo A(c) 7.1.2 Eliminazione di un x i nello scope di un In questa formula il mio y è sottoposto ad un : x yb(x, y) L'idea di Skolem è di convertire il y in una funzione nuova. Il ragionamento da fare è che B(x,y) è un predicato che stabilisce una qualche relazione tra x e tra y. La x appartiene a, e la y a. Questo vuole anche signicare che la y dipende dalla x, nel senso che il predicato stabilisce un rapporto tra x ed y, e che quindi ogni volta che cambio la x, la y cambia. Non posso quindi sostituire la y con una costante come nell'esempio precedente, perché non è aatto costante: cambia quando cambia la x, perché è in relazione con essa. E allora, Skolem introduce una funzione che dipende da x, e la usa per sostituire la y: xb(x, f(x)) Da notare bene che NON È equivalente come signicato alla fbf di prima: x yb(x, Y ) xb(x, f(x)) ma Skolem ci garantisce che se una è soddisfascibile, lo è anche l'altra e viceversa. E a noi va bene così perché c'è un quanticatore in meno. 7.1.3 Esempio cumulativo Partiamo da questa fbf: x y z tb(x, y, z, t) Vediamo subito che x non è sottoposto a nessun, e possiamo eliminarlo e convertirlo in una costante: y z tb(c, y, z, t) Invece, t è sottoposto ai quanticatori z e y. Dobbiamo quindi convertire la t in una funzione di y e z: ed ecco la forma di Skolem. y zb(c, y, z, g(y, z)) 11