Sei sulla pagina 1di 25

LOGICA

LOGICA PURA (FOL)


Nella logica pura, non abbiamo bisogno di un contesto. Se nessun contesto è
specificato, stiamo ragionando nel campo della logica pura.

METODI PER ANALIZZARE VERITA’:

I. Ragionamento
E’ composto da una serie di frasi riferite ad un contesto in cui una conseguenza
segue da premesse.

Un ragionamento è logicamente valido sse la conseguenza è vera in tutte le


circostanze in cui le premesse sono vere.

Per dimostrare che un ragionamento non è valido, faccio uso di un controesempio.

Con premesse vere, arrivo ad una conclusione falsa.

II. Prove
Una prova dimostra la conseguenza a partire da premesse attraverso una
successione di passaggi la cui validità logica è evidente. Un passaggio, o
inferenza, introduce una nuova conseguenza logica dalle premesse.

LOGICA PROPOSIZIONALE
Si occupa dei connettivi linguistici vero-funzionali.

Una formula ben formata, ha una base contenente le atomiche e passi successivi
con dei costrutti da riempire. Es. (A ^ B), (A v B)..

LOGICA DEI CONNETTIVI

P è logicamente vera (in un contesto), sse P è vera in tutte le circostanze del


contesto.

Rappresentano proprietà generali valide nel contesto.

Es: 1. Tet(m) v Cube(m) v Dodec(m)

2. !(Tet(m) v Cube(m))

P è logicamente possibile se esiste una circostanza del contesto in cui P è vera

P è logicamente impossibile se P è falsa in tutte le circostanze del contesto

1
P è tautologicamente vera sse P è vera in tutte le interpretazioni booleane (tutte
le righe della tavola di verità).

Rappresentano leggi di ragionamento generale, sono vere in ogni circostanza.

Es: 1. P v !P (terzo escluso)

2. !(P ^ !P) (non contraddizione)

P è tautologicamente (proposizionalmente) possibile sse esiste una


interpretazione booleana in cui P è vera

P è tautologicamente (proposizionalmente) impossibile sse P è falsa in tutte le


interpretazioni booleane.

Se P è una tautologia (tabella verità tutti True), allora P è logicamente vera in ogni
contesto. Il contrario non si può dare per scontato

Se P è possibile in un contesto è anche proporzionalmente possibile. Viceversa


non garantito.

Due proposizioni sono tautologicamente equivalenti, e si scrive P T Q, sse


hanno lo stesso valore di verità in ogni contesto (tutte le interpretazioni booleane)

Due proposizioni sono logicamente equivalenti in un contesto, e si scrive P C Q

sse hanno lo stesso valore di verità in tutte le interpretazioni possibili nel contesto.

Alcuni esempi di equivalenze tautologiche notevoli.

Doppia negaz. ¬¬A TA

DeMorgan ¬(A ∧ B) T ¬A ∨ ¬B ¬(A ∨ B) T ¬A ∧ ¬B


Associatività (A ∧ B) ∧ C TA ∧ (B ∧ C) (A ∨ B) ∨ C TA ∨ (B ∨ C)
Commutatività A∧B TB ∧A A∨B TB ∨A
Idempotenza A∧A TA A∨A TA

Assorbimento A TA ∧ (A ∨ B) A TA ∨ (A ∧ B)
Distributività A ∧ (B ∨ C) T (A ∧ B) ∨ (A ∧ A ∨ (B ∧ C) T (A ∨ B) ∧ (A ∨
C) C)

2
CONSEGUENZE

Conseguenza logica
Si dice che Q segue logicamente da Pn in un contesto C, sse Q è vera in tutte le
interpretazioni del contesto in cui Pn sono vere e si indica con:

P1, …, Pn ⊨C Q

Conseguenza tautologica

Si dice che Q segue tautologicamente da Pn sse Q è vera in ogni interpretazione


booleana in cui Pn sono vere e si indica con:

P1, …, Pn ⊨T Q

Le interpretazioni possibili sono un sottoinsieme di quelle booleane. Quindi segue:

P1, …, Pn ⊨T Q implica che P1, …, Pn ⊨C Q

Esempio tipo di conseguenza logica:

Premesse
Tet(a) ∨ Cube(b)

Dodec(b)

Conseguenza
Tet(a)

3
Cerco i contro esempi. La linea 4 ne rappresenta uno (premesse vere e
conseguenza falsa).

Tet(a) non è conseguenza tautologica delle premesse ma è conseguenza


logica in TW.

Premesse
Tet(a) ∨ Cube(b)

¬Cube(b)

Conseguenza
Tet(a)

Non ho controesempi. Tet(a) è conseguenza tautologica delle premesse.

Conseguenze fondamentali per i connettivi

∧ Intro A, B ⊨T A ∧ B

∧ Elim A ∧ B ⊨T A A ∧ B ⊨T B

∨ Intro A ⊨T A ∨ B B ⊨T A ∨ B

⊥ Intro A, ¬A ⊨T ⊥

⊥ Elim ⊥ ⊨T P

∨ Elim Prova per casi

Reit A ⊨T A

4
L’eliminazione di OR (∨ Elim) corrisponde al ragionamento per casi.

Nel caso di A ∨ B, devo prendere A e B come premesse e arrivare ad una


conclusione.

P1 ∨ ….. ∨ Pn

P1

Pn

L’assurdo (⊥) è una proprietà logicamente impossibile, quindi falsa in ogni


contesto.

Ad esempio, P ∧ ¬P è sempre falsa in tutte le interpretazioni booleane.

In un contesto invece, ad esempio il mondo dei blocchi, un assurdo logico


potrebbe essere Tet(a) ∧ Cube(a).

Posso introdurre l’assurdo con la regola di Introduzione ⊥

¬P

⊥ ⊥Intro

Posso eliminarlo con la regola di Eliminazione ⊥

5
P ⊥Elim

TAUT CON e ANA CON


TAUT CON

Sia C1, …, Cn ⊨T D una conseguenza tautologica.

Taut Con è la “macro” regola di Fitch che ci aiuta a giustificare un passaggio


tautologicamente conseguente.

¬∨ Intro ¬P, ¬Q ⊨T ¬( P ∨ Q)

¬∨ Elim ¬(P ∨ Q) ⊨T ¬P ¬(P ∨ Q) ⊨T ¬Q

¬∧ Intro ¬P ⊨T ¬(P ∧ Q) ¬Q ⊨T ¬(P ∧ Q)


3° escluso ⊨T P ∨ ¬P
Non contraddizione ⊨T (P ∧ ¬P)

Risoluzione P∨A Q ∨ A ⊨T P ∨ Q

ANA CON

Sia C1, …, Cn ⊨T D una conseguenza logica nel mondo dei blocchi. Possiamo
infierire D dalle premesse Cn attraverso ANA CON, ma solo nel contesto TW.

6
DIMOSTRAZIONE PER ASSURDO
Posso dimostrare per assurdo che Q segue logicamente da P1, …, Pn assumendo
¬Q e dimostrando l’assurdo.

N.B.
Cube(a) ∧ Tet(b) è assurdo in TW ma non è un assurdo tautologico.

Le tautologie si provano SENZA premesse.

De Morgan per assurdo

7
L’IMPLICAZIONE
L’implicazione è un connettivo molto importante. Permette di costruire asserzioni
condizionali.

<<P ⇾ Q>> equivale a <<P solo se Q>> o <<se P allora Q>>

La definizione non è semplice. Vediamo degli esempi

Esempi:

Se n è pari allora n+1 è dispari


“Se 3 è pari allora 4 è dispari.” F ⇾ F = T

Se n è divisibile per 4 allora n è divisibile per 2

“Se 6 è divisibile per 4 allora 6 è divisibile per 2”. F ⇾ T = T

P⇾Q
P Q P⇾Q
T T T
T F F
F T T
F F T

Q⇾P
P Q Q⇾P
T T T

8
T F T
F T F
F F T

P Q
P Q P Q
T T T
T F F
F T F
F F T
L’implicazione P ⇾ Q si legge come:

“Ogni qualvolta P è vera, anche Q è vera”

ed è tautologicamente equivalente a (¬P) ∨ Q.

Esempio di Condizione Necessaria (P solo se Q).

“Posso prelevare solo se il bancomat funziona”


P solo se Q

P Q P⇾Q
T T T
T F F
F T T
F F T

I. Se posso prelevare è vero, il bancomat funziona deve essere vero. T

II. Se posso prelevare è vero, il bancomat funziona deve essere falso. F

III. Se posso prelevare è falso, il bancomat funziona deve essere vero. T

IV. Se posso prelevare è falso, il bancomat funziona deve essere falso. T

Esempio di Condizione Sufficiente (P se Q).

“Lo studente è ammesso all’orale se ha superato lo scritto”

P se Q

9
P Q Q⇾P
T T T
T F T
F T F
F F T

I. (Q)Se superato lo scritto è vero, (P)ammesso deve essere vero. T

II. Se superato lo scritto è falso, ammesso deve essere vero. T


“Ha superato i compitini ma non lo scritto”

III. Se superato lo scritto è falso, ammesso deve essere falso. F

IV. Se superato lo scritto è falso, ammesso deve essere falso. T

Esempio di Condizione Sufficiente e Sufficiente (P se e solo se Q).

P Q P Q
T T T
T F F
F T F
F F T

P ⇿ Q equivale a (Q ⇾ P) ∧ (P ⇾ Q)

P ⇿ Q è vera se P e Q sono entrambi veri o falsi.

P1, …, Pn ⊨ Q se e solo se ⊨ (P1 ∧…. ∧ Pn) ⇾ Q

Il Teorema di deduzione dice che P1,…., Pn ⊨ Q se e solo se ⊨(P1 ∧ …. ∧ Pn) ⇾ Q

L’implicazione “cattura” la conseguenza tautologica.

Le regole di eliminazione servono per utilizzare conoscenza in forma implicativa


sfruttando il principio detto Modus Ponens.

P, P ⇾ Q ⊨T Q

10
Le regole di introduzione servono per confezionare conoscenza in forma
implicativa e sfruttano il teorema di deduzione.
Se voglio dimostrare P ⇾ Q, assumo P e arrivo a Q.

Dal Teorema di deduzione ho che P ⊨T Q sse ⊨T P ⇾ Q

Contrapposizione e Modus Tollens

Conseguenze logiche

Contrapposizione:

⊨T (P ⇾ Q) ⇿ (¬Q ⇾ ¬P)

Esempio:

Se n2 è pari, allora n è pari

La contrapposta è ¬(n pari) ⇾ ¬(n2 pari), Quindi assumo ¬(n pari) e procedo..

Modus Tollens:

11
¬Q, P ⇾ Q ⊨T ¬P

Esempio:

Premessa: se a è un tetraedro, allora a è grande

Conclusione: se a è più piccolo di b, allora non è un tetraedro

Modus Tollens esteso a ⇿:

¬Q, P ⇿ Q ⊨T ¬P

¬Q, Q ⇿ P ⊨T ¬P

Teorema di validità e completezza


Un’argomentazione è provabile in Fitch se e solo se è validata da TAUT CON.

La notazione che mi indica l’esistenza di una prova nel calcolo logico (con
premesse P e conseguenza Q) è:

P1, …, Pn T Q

Da notare la differenza:

I. ⊨T indica una conseguenza tautologica

II. T indica che esiste una prova

Il Teorema di validità, ci dice che se P1, …, Pn T Q allora P1, …, Pn ⊨T Q

Il Teorema di completezza, ci dice che se P1, …, Pn ⊨T Q allora P1, …, Pn T Q

Segue che:

(Validità): Se abbiamo una prova di Q a partire da Pn, è certo che Q sia


conseguenza tautologica di Pn

(Contrapposta): Se sappiamo che Q non è conseguenza tautologica delle


premesse (ad es. attraverso la tabella di verità), allora non ci può essere una prova
di Q a partire da Pn.

(Completezza): Se sappiamo che Q è conseguenza tautologica delle premesse Pn


allora siamo certi che esista una prova di Q a partire dalle premesse.

(Contrapposta): Se facciamo vedere che non esiste una dimostrazione della prova
di Q a partire dalle premesse, è certo che Q non è conseguenza logica delle
premesse Pn.

12
Logica del Primo Ordine
Nella Logica Proposizionale, le proposizioni composte sono costruite combinando
le proposizioni atomiche attraverso connettivi vero-funzionali.

Nella Logica del Primo Ordine, invece, introduciamo variabili (come x) e


quantificatori (come ) per parlare di proprietà in modo quantitativo.

Il Calcolo preposizionale non valida l’argomentazione.

Fra i vari quantificatori, del linguaggio naturale, FOL si concentra su e .

: esiste, almeno un, qualche, un …

C’è un treno che collega Milano a Bergamo

Un cane sta abbaiando

: ogni, tutti, qualsiasi, un (nel senso di qualsiasi)

Tutti i passeggeri sono scesi dal treno

Un cane ha quattro zampe (nel senso di ogni cane)

Alcuni quantificatori del linguaggio naturale, non vengono presi in considerazione.

13
La maggior parte….

Molti….

Quasi tutti gli studenti…

A differenza della logica proposizionale, che considera il valore di verità di ogni


predicato, in FOL dobbiamo considerare l’esistenza o meno di qualcosa.

Esempio:

x y (Gatto(x) ∧ Gatta(y) ∧ Miagola(x) ∧ Miagola(y))

Non possiamo indicare gli individui con delle costanti, dal momento che
quantifichiamo. Quindi ci riferiamo a delle variabili. Stesso individuo in diverse parti
di una formula.

In generale, FOL ha i seguenti elementi:

I. Variabili: x, y, z

II. Connettivi: ∧, ∨, ⇾, ⊥, ⇿

III. Quantificatori: ,

IV. Costanti: a, b, c

V. Predicati (n-ari): per relazioni fra oggetti del discorso

VI. Funzioni (n-arie): per denotare oggetti in maniera indiretta

I predicati completamente stanziati (es. Tet(a), Between(c, d, e) si comportano


come lettere preposizionali (P, Q, …)

Termini del FOL


Sia L un linguaggio del primo ordine.

C(L) = {c1, c2, …} è l’insieme delle sue costanti

F(L) = {f1, f2, …} è l’insieme delle sue funzioni

P(L) = {p1, p2, …} è l’insieme dei predicati

Se P è un predicato e t sono i termini, allora P(t1, t2, …) è una formula ben formata
(atomica).

Se P e Q sono formule ben formate di L, lo saranno anche (P ∧ Q), (P ∨ Q), etc

Se P è una fbf di L, x è una variabile, allora ( x P) e ( x P) sono fbf.

Problema delle variabili libere.

Cube(x) non è o vera o falsa in una data circostanza. Il valore di verità dipende da
x, che però non è fissato.

L-struttura
14
Sia L un linguaggio (dato da C(L), F(L) e P(L)).

Allora si definisce L-struttura una coppia (U, I) dove:

U è un insieme non vuoto (Universo)

I è la funzione interpretazione, tale che per ogni c ∈ c(L), I(c) ∈ U e che per ogni
simbolo di funzione n-ario, I(f) è una funzione su U e lo stesso per ogni predicato.

Per ogni c ∈ C(L), I(c) è gia definita

Per ogni a ∈ U, I(ca) := a

Con la scrittura A[x:c], intendiamo la formula ottenuta da A rimpiazzando in A ogni


x con c.

Esempio

C(L) = {0, 1}

F(L) = {+, x} con arità 2

Sia N = (N, I) una L-struttura (con N numeri naturali)

I(0) = 0, I(1) = 1, I(+) = {a, b, a+b | a, b ∈N}, I(x) = {a, b, ab | a, b ∈N}

(1 + 0) x (1 + (1 + 1)) è un termine ground (termine chiuso o costante)

I((1 + 0) x (1 + (1 +1)) ) = 3 3 ∈N

Esempio

L- struttura:

S = (U, I)

U = {a0, a1}

I(a) = a0

I(b) = a0

I(c0) = a0

I(c1) = a1

I(Tet) = {a0}

15
I(Cube) = {a1}

I(Dodec) =

I(BackOf) = {(a1, a0)}

I(FrontOf) = {(a0, a1)}

………………………

x Tet(x) è vera in questo universo?

Si, perché Tet(c0) = Tet(x)[x:c0] è vera (rimpiazzo in Tet ogni x con c0)

I(c0) = a0 e a0 ∈ I(Tet)

x BackOf(x, a) è vera in questo universo?

BackOf(c1, a) = BackOf(x, a)[x:c1] è vera

I(c1) = a1, I(a) = a0, (a1, a0) ∈ I(BackOf)

Le quattro forme Aristoteliche

Ogni P è Q x (P(x) ⇾ Q(x))

Qualche P è Q x (P(x) ∧ Q(x))

Nessun P è Q x (P(x) ⇾ ¬Q(x))

Qualche P non è Q x (P(x) ∧ ¬Q(x))

Esempio: Tutti i cubi sono piccoli

∀x (Cube(x) ⇾ Small(x))

Verifica in L-struttura

S = (U, I) con U = {a0, a1, a2, a3, a4}

16
I( x (Cube(x) ⇾ Small(x)) = T se e solo se:

Per ogni a ∈ U:

I(Cube(c0) ⇾ Small(c0) = T

I(Cube(c1) ⇾ Small(c1) = T

I(Cube(c2) ⇾ Small(c2) = T

I(Cube(c3) ⇾ Small(c3) = T

I(Cube(c4) ⇾ Small(c4) = T

Quindi x (Cube(x) ⇾ Small(x)) = T

Conseguenze logiche e L-strutture

Q è conseguenza logica delle premesse Pn, scritto P1, …, Pn ⊨FO Q

sse è vera nella teoria {P1, …, Pn}.

Cioè per ogni L-struttura S = (U, I), se I(P1) = …. I(Pn) = T allora I(Q) = T

P e Q sono logicamente equivalenti, scritto P FO Q

sse i valori di verità di P e Q coincidono in ogni interpretazione.

Cioè per ogni L-struttura S = (U, I), I(P) = T sse I(Q) = T

Un contesto C è un insieme di L-strutture.

Q è conseguenza logica in C delle premesse Pn, sse Q è vera in tutte le L-


strutture S = (U, I) che appartengono a C.

P è logicamente vera in C, sse P è vera in tutte le L-strutture S= (U, I)


appartenenti a C.

Pe Q sono logicamente equivalenti in C, sse i valori di verità coincidono in ogni


L-struttura appartenente a C.

Un’atomica generalizzata, è una formula che al primo passo non può essere
scomposta con un connettivo.

A è un’atomica generalizzata se NON è della seguente forma: A = ¬B, A = B∧C, A


= B⇾C, A = ⊥, …

Dunque A è una formula atomica generalizzata se A è una atomica P(t1, …, tn) o è


della forma x B o x B

17
Regole per quantificatori

elim: da x S(x) posso infierire S(c) dove c è un termine chiuso (costante)

intro: da S(c) posso infierire x S(x) dove c è un termine chiuso

L’eliminazione di e l’introduzione di richiedono l’uso di sotto prove in cui si usa


un nuovo nome generico per denotare un generico elemento che:

esista ma non conosciamo in ∃ elim

sia rappresentativo di tutti in ∀intro

intro: assumiamo P(generico) e nel ragionamento generico deve essere


sinonimo di chiunque in modo da ottenere ∀x P(x)

elim: se proviamo S(c) su un elemento c, possiamo ottenere un risultato


eliminando ∃ x S(x)

Forma vero-funzionale ed equivalenza logica

Sia A un enunciato di L e B la sua forma vero-funzionale B = fvf(A).

Se B è tautologicamente equivalente a C, posso usare l’equivalenza B T C per


riscrivere in una forma logicamente equivalente.

Esempio

Sia A l’enunciato: x Rettangolo(x) ⇾ y Quadrato(y)

fvf(A) = P ⇾ Q

Ma io so che P ⇾ Q T ¬P ∨ Q

quindi posso dedurre che:

∀x Rettangolo(x) ⇾ ∃y Quadrato(y) T¬ ∀x Rettangolo(x) ∨ ∃y Quadrato(y)

Forma vero-funzionale ed equivalenza logica

Siano P1, ….., Pn, Q enunciati di L.

Se fvf(P1), …. , fvf(P2) ⊨T fvf(Q), allora P1, …., Pn ⊨T Q

Rimpiazzamento

Sia x (Tet(x) ⇾ Large(x))


La fvf(Tet(x) ⇾ Large(x) = P ⇾ Q

18
Ma dato che P ⇾ Q T ¬Q ⇾ ¬P

Allora posso rimpiazzare

∀x (Tet(x) ⇾ Large(x)) FO ∀x (¬Large(x) ⇾ ¬Tet(x))

Corrispondenza De Morgan e quantificatori

¬∀x P(x) FO ∃x ¬P(x)

¬∃x P(x) FO ∀x ¬P(x)

∀x P(x) FO ¬∃x ¬P(x)

∃x P(x) FO ¬∀x ¬P(x)

Corrispondenza De Morgan e forme aristoteliche

∀x (P(x) ⇾ ¬Q(x))

FO

∀x (¬P(x) ∨ ¬Q(x))

Nessun P è Q FO

∀x ¬(P(x) ∧ Q(x))

FO

¬∃x (P(x) ∧ Q(x))

∃x (P(x) ∧ ¬Q(x))

FO

∃x ¬(¬P(x) ∨ Q(x))

Qualche P non è Q
FO

∃x ¬(P(x) ⇾ Q(x))

FO

¬∀x (P(x) ⇾ Q(x))

In genere:

∀x (P(x) ∧ Q(x)) FO ∀x P(x) ∧ ∀x Q(x)

∀x (P(x) ∨ Q(x)) ⇎FO ∀x P(x) ∨ ∀x Q(x)

19
e

∃x (P(x) ∨ Q(x)) FO ∃x P(x) ∨ ∃x Q(x)

∃x (P(x) ∧ Q(x)) ⇎FO ∃x P(x) ∧ ∃x Q(x)

Su più quantificatori in genere:

∀x∀y P(x, y) FO ∀y∀x P(x, y)

∃x∃y P(x, y) FO ∃y∃x P(x, y)

∀x∃y P(x, y) ⇎FO ∃y∀x P(x, y)

Forma vero-funzionale ed equivalenza logica


Se la frase contiene più quantificazioni annidate, occorre trattare una
quantificazione alla volta (step-by-step).

Esempio: Ogni cubo è a sinistra di un tetraedro.

∀x (Cube(x) ⇾ (x a sinistra di un tetraedro)

∀x (Cube(x) ⇾ (c’è un tetraedro ed x è alla sua sinistra)

∀x (Cube(x) ⇾ ∃y (Tet(y) ∧ LeftOf(x, y)))

Esempio: Ogni blocco a destra di un cubo grande è piccolo.

Per ogni blocco x che è a destra di un cubo grande ⇾ x è piccolo

∀x (x a destra di un cubo grande) ⇾ (Small(x))

∀x (∃y (Cube(y) ∧ Large(y) ∧ (RightOf(x, y)) ⇾ (Small(x))

Esempio: Qualche cubo è posto a destra di tutti i tetraedri:

Esiste un cubo x che per ogni tetraedro y, x è alla sua destra.

∃x (Cube(x) ∧ ∀y(Tet(y) ⇾ RightOf(x, y)))

Esempio: Nessun blocco è più grande di ogni blocco

∀x ¬ ∀y Larger(x, y)

20
Quantificazione numerica
E’ possibile esprimere proposizioni di quantità esplicitate numericamente.

Esattamente uno, Uno e uno solo, Un unico

Esiste esattamente un x per cui vale la proprietà P:

“Esiste x per cui vale P e per ogni y per cui vale P, y è la stessa cosa di x”

∃x (P(x) ∧ ∀y(P(y) ⇾ y=x))

si può abbreviare con ∃!x P(x)

Almeno n

Esistono almeno n individui per cui vale la proprietà P

∃x1∃x2…. ∃xn (P(x1) ∧ P(x2) …. ∧ P(xn)) ∧ x1 ≠ x2 …. xn-1 ≠ xn)

si può abbreviare con ∃≥nx (P(x)

Al massimo n

Esistono al massimo n individui per cui vale P

∀x1∀x2 …..∀xn∀xn+1 (P(x1) ∧ P(x2) ∧ ….. ∧ P(xn+1)) ⇾ (x1 = x2 ∨ x2 = x3 ∨ … ∨x1 =


xn+1 ∨ …. ∨ xn = xn+1 ))

Si può abbreviare con

∃≤nx (P(x)

Esattamente n

Esistono esattamente n individui per cui vale la proprietà P

∃x1∃x2…. ∃xn ∀xn+1 (x1 ≠ x2 ∧ … ∧ xn-1 ≠ xn ∧ P(xn+1) ⇿ (xn+1 = x1 ∨ … ∨ xn+1 = xn))

Si abbrevia con∃≤nx (P(x) ∧ ∃≥nx (P(x)

Definizioni esplicite o ricorsive


Esempio:

Sia L un linguaggio definito da C(L) = {0, 1}

F(L) = {+/2, x/2, doppio/1, potenza/2}

P(L) = {=/2, </2, Pari/1, Dispari/1,≤/2

Sia N = (N, I) con N = {0, 1, 2, 3, ..}

21
Sia I(0) = 0, I(1) = 1, I(+) = {(a, b, ab) | a,b ∈ N}, I(x) = {a, b, ab | a, b ∈ N}

I(=) = {a, a | a ∈ N}

Le altre interpretazioni possono definirle tramite esplicite e ricorsive.

ESPLICITA

∀x doppio(x) = x + x

∀x potenza(x, 0) = 1

RICORSIVA

∀x ∀n potenza(x, n+1) potenza(x, n) × x

Una Struttura corretta deve soddisfare:

I(doppio) = {(a, b) | (a, a, b) ∈ I(+)} ponendo {(a, a+a) | a ∈ N}

Linguaggi multi - sortati:accenni


Se voglio dire: Ogni animale domestico appartiene a qualche proprietario:

∀x∃y Appartiene(x, y)

Ma dobbiamo specificare chi è l’animale e chi il proprietario.

La formula, quindi, diventa:

∀x (Animale(x) ⇾∃y (Persona(y) ∧ Appartiene(x, y)))

Con la tipizzazione possono ottenere qualcosa di più leggibile

∀x:Animale∃y:Persona Appartiene(x, y)
Nella struttura Appartiene/2 diventa Appartiene: Animale x Persona.

Animale e Persona sono chiamate sorte.

Esempio:

Arricchiamo il linguaggio TW specificando due sorte: Blocco e Coordinata.

I Blocchi rappresentano gli oggetti posti sulla scacchiera, mentre le Coordinate ne


individuano la posizione.

Assumiamo Coordinata = {1, 2, 3, 4, 5, 6, 7, 8}

Introduciamo nuove funzioni:

row: Blocco ⇾ Coordinata; col: Blocco ⇾ Coordinata

22
Possiamo definire i vecchi concetti attraverso i nuovi:

∀x:Blocco ∀y:Blocco (LeftOf(x, y) col(x) < col(y)

Assiomatizzazioni

Per poter dimostrare certe argomentazioni in FOL, bisogna aggiungere


un’assunzione supplementare, che affermi qualcosa in generale.

Il sistema assiomatico
Definiamo una teoria SH che assiomatizza i predicati TW che riguardano la forma
dei blocchi.

P(L(SH)) = {Tet/1, Cube/1, Dodec/1, SameShape/2}

Assiomi di TW(SH):

Nessun blocco ha due forme


¬∃x (Cube(x) ∧ Tet(x))
¬∃x (Tet(x) ∧ Dodec(x))
¬∃x (Dodec(x) ∧ Cube(x))

Ci sono solo tetraedri, cubi e dodecaedri


x (Tet(x) ∨ Dodec(x) ∨ Cube(x))

SameShape Intro
∀x∀y (Cube(x) ∧ Cube(y) ⇾ SameShape(x, y))
∀x∀y (Tet(x) ∧ Tet(y) ⇾ SameShape(x, y))
∀x∀y (Dodec(x) ∧ Dodec(y) ⇾ SameShape(x, y))

SameShape Elim
∀x∀y (SameShape(x, y) ∧ Cube(x)) ⇾ Cube(y)
∀x∀y (SameShape(x, y) ∧ Tet(x)) ⇾ Tet(y)
∀x∀y (SameShape(x, y) ∧ Dodec(x)) ⇾ Dodec(y)

Una dimostrazione in TW(SH) è una dimostrazione in FOL che, oltre alle premesse,
ha degli assiomi di TW(SH).

Def:

23
P1, …, Pn TW(SH) Q sse SH1, …, SH10, P1, …, Pn FO Q

Induzione e Ricorsione
Servono per definire linguaggi, dati ricorsivi, o in generale insieme infiniti. Un
principio di induzione associato, consente di dimostrare proprietà che valgono per
tutti gli elementi di S.

Esempio:
Parole su alfabeto A.

Consideriamo due sorte: A e A*.

C(L) = A ∪ {ℇ}, F(L) = {∙, A × A* ⇾ A*}, P(L) = {=/2}

Definizione induttiva della parola di A*

Base: la parola vuota ℇ è una parola di A*

Passo: se x ∈ A e p ∈ A*, allora xp A*

Chiusura: nient’altro ∈ A*

Le clausole Base e Passo si applicano per generare per strati le parole.

Esempio:
Generiamo aba ∈ {a, b}* per strati

1. ℇ ∈ {a, b}* per base

2. a ∈ {a, b}* a ∈ {a, b} e ℇ ∈ {a, b}* (per 1)

3. ab ∈ {a, b}* b ∈ {a, b} e a ∈ {a, b}* (per 2)

4. aba ∈ {a, b}* a ∈ {a, b} e ba ∈ {a, b}* (per 3)

La clausola di chiusura dice che, affinché aba ∈ A, deve essere ottenuta dalla
Base o ricorsivamente dal Passo.

Assioma di chiusura: ∀p:A* (p = ℇ ∨ ∃x:A∃q:A*(p=xq))

Posso applicare la chiusura per dimostrare che qualcosa non appartiene ad A*.

Esempio:
a1a {a, b}*

Deve essere, per chiusura:

1. a1a ∈ {a, b}

2. a ∈ {a, b} ∧ 1a ∈ {a, b}*

24
3. 1 ∈ {a, b}* ∧ a ∈ {a, b}*

4. E’ assurdo perché 1 {a, b}*…. Quindi a1a {a, b}*

Il principio di induzione è, però, più forte della semplice clausola di chiusura per
enunciati più complessi.

base: H(ℇ)

passo: ∀x:A∀q:A*(H(q) ⇾ H(xq))

Allora vale: ∀p:A* H(p)

Esempio funzione concat: A* x A ⇾ A*

Base: ∀x:A concat(ℇ, x) = x

Passo: ∀x:A ∀y:A ∀p:A* concat(xp, y) = x ∙ concat(p, y)

25