Dispense del corso di Linguaggi di programmazione e

Dispense del corso di Linguaggi di
programmazione e laboratorio
Linguaggi formali
Francesco Sisini
Eccezionale: a chi trova e corrregge più di 10 errori in regalo un
pallone di cuoio se maschio o una bellssima bambola che parla e
dice solo tautologie se femmina. Tutti in caccia!!!
Indice
Convenzioni tipografiche
Nel testo saranno utilizzate le convenzioni tipografiche di seguito elencate
grassetto usato per evidenziare i nuovi termini man mano che verranno introdotti
nel testo.
inclinato usato per evidenziare le espressioni sulle quali si vuol porre lattenzione.
monospaced usato per indicare linput/output del sistema (ci che digitato con la tastiera
e che visualizzato sullo schermo dal sistema), i nomi ed il contenuto dei
file, gli indirizzi di pagine web e quelli di posta elettronica.
Glossario (da wikipedia)
Assioma In epistemologia, un assioma è una proposizione o un principio che
viene assunto come vero perchè ritenuto evidente o perch fornisce il punto di partenza di un quadro teorico di riferimento.
L’insieme degli assiomi e dei concetti primitivi costituiscono il fondamento, il punto di partenza, o l’inizio, di ogni teoria deduttiva che si presenti
come sistema assiomatico.
Un assioma in ambito geometrico viene chiamato postulato.
Un postulato si differenzia da un assioma in quanto introdotto per dimostrare proposizioni che altrimenti non potrebbero essere dimostrate.
In altri termini si pu definire come una semplicissima teoria ad hoc, accettata grazie alla sua utilit.
In matematica il termine postulato invece ha il significato pi preciso di assioma non-logico, cio di assioma specifico di una particolare teoria matematica. Gli assiomi e i postulati, proprio per loro natura, non sono mai
dimostrati.
Assioma logico Sono formule valide, cio formule che sono soddisfatte da ogni
modello (ovvero da ogni struttura) per ogni assegnamento delle variabili.
1
In termini pi colloquiali, gli assiomi sono enunciati che sono veri in ogni possibile universo, nell’ambito di ogni possibile interpretazione e con
ogni assegnamento di valori.
Per poter affermare che una formula un assioma logico, dobbiamo sapere
che valida. Dunque dovrebbe essere necessario fornire una dimostrazione
della sua verit in ogni modello. Questo si trova in conflitto con la nozione
classica di assioma e costituisce almeno una delle ragioni per le quali,
in logica matematica, gli assiomi non sono considerati come enunciati
ovviamente veri o evidenti di per s.
Gli assiomi logici, essendo mere formule, sono privi di ogni significato; il punto che quando sono interpretati in ogni universo, essi valgono sempre, quali che siano i valori assegnati alle variabili. Dunque
questa nozione di assioma forse la pi vicina al significato che si intende
attribuire alla parola: gli assiomi sono veri, al di l di tutto.
Un esempio di assioma, utilizzato virtualmente in ogni sistema deduttivo, è:
Assioma di uguaglianza.
∀x(x = x)
Su questo esempio (dall’aspetto scarno), perch non cada nella vaghezza
e in una cascata senza fine di nozioni primitive, si danno due possibilit:
o si deve stabilire in partenza una nozione precisa di quello che intendiamo con il segno = (ovvero per quello che conta, con l’espressione essere
uguale); oppure si deve imporre un utilizzo puramente formale e sintattico del simbolo = - e la logica matematica fa proprio questo, delegando
giustamente il significato di = alla teoria assiomatica degli insiemi.
Un altro esempio pi interessante :
Assioma di istanziazione universale. Data una formula φ in un linguaggio del primo ordine L, una variabile x e un termine t che risulta sostituibile per x in φ, la formula
∀ xφ → φtx è valida..
Questo assioma stabilisce semplicemente che se sappiamo che ∀ xP( x )
per qualche propriet P e t è un particolare termine nel linguaggio (cio
rappresenta un particolare oggetto nella struttura che stiamo trattando),
allora dovremo essere in grado di affermare P(t).
Un esempio simile :
Assioma di generalizzazione esistenziale. Data una formula phi in un
linguaggio del primo ordine L, una variabile x e un termine t che sostituibile per x in phi la formula
φtx → ∃ xφ
2
è valida.
Assioma non logico Nell’ambito di una teoria sono formule che svolgono il
ruolo delle assunzioni specifiche della teoria stessa. Si possono sviluppare le analisi di due differenti strutture, per esempio i numeri naturali
e gli interi, servendosi degli stessi assiomi logici; gli assiomi non-logici
hanno il compito di catturare quello che specifico di una particolare struttura (o di una specie di strutture, come i gruppi algebrici). Dunque gli assiomi non-logici, contrariamente agli assiomi logici, non sono tautologie.
Termine spesso considerato sinonimo di assiomi non-logici postulato.
Quasi ogni teoria matematica moderna parte da un dato sistema di assiomi non-logici. Si pensava che in linea di principio ogni teoria potesse
essere assiomatizzata in questo modo e potesse essere formalizzata fino
a un puro linguaggio di formule logiche. Questa prospettiva si rivelata
impossibile.
Da questo segue il ruolo degli assiomi non-logici, che devono semplicemente costituire un punto di partenza in un sistema logico. Dato che sono
fondamentali nello sviluppo di una teoria, in genere risulta opportuno
che nel discorso matematico essi siano chiamati semplicemente gli assiomi della teoria, ma, va ribadito, non per esprimere che essi sono enunciati
veri e neppure per significare che essi sono assunzioni dotate di verit.
Un esempio ben chiaro: in alcuni gruppi l’operazione di moltiplicazione
commutativa, in altri non lo .
Dunque un assioma una base elementare per un sistema logico formale
e insieme alle regole di inferenza definisce un sistema deduttivo.
proposizione
Concetto primitivo In molte presentazioni di nozioni matematiche per concetto primitivo o nozione primitiva si intende un concetto che, per la
propria semplicit ed intuitivit, si rinuncia a definire mediante termini e
concetti gi definiti all’interno di un sistema formale, e che al contrario si
sceglie di sfruttare per formulare la definizione di altri concetti; pertanto
un concetto primitivo si accetta senza spiegazioni perch il suo significato
ovvio.
In molte esposizioni della teoria degli insiemi, l’insieme stesso è considerato un concetto primitivo. Infatti è pressoch impossibile darne una
definizione che non ricorra a impegnative nozioni della logica matematica senza usare termini come lista, complesso di, aggregato, raggruppamento, ecc. che, in realtà++, non sarebbero altro che sinonimi di tale
concetto.
Anche molte esposizioni della geometria fanno riferimento a entit fondamentali che svolgono il ruolo dei concetti primitivi. Nella geometria
euclidea sono il punto, la retta e il piano; questi di solito vengono suggeriti passando da una visione di entit sensibili ad una visione immaginativa con un processo di idealizzazione che conduce ad entit formali con
3
il ruolo di modelli delle corrispondenti sensibili. Per esempio il concetto di punto viene suggerito dall’osservazione di un granello di sabbia o
dalla punta di uno spillo; il concetto di retta da un sottile filo di seta o da
un raggio di luce; il concetto di piano dalla superficie tranquilla di uno
specchio d’acqua.
4
Capitolo 1
Basi della logica e altezze
dell’intelletto
1.1
1.1.1
Le basi della logica
Il processo dicotomico di Platone e Aristotele - Metafisica
Il processo dicotomico nasce dal pensiero che per poter produrre una corretta
definizione di una idea (Platone) o di un concetto (Aristotele) si debba fornire
una corretta relazione tra il concetto stesso e che si vuol definire e altri concetti
che si danno per definiti. L’esempio tipitco è la definizione del concetto uomo. Un uomo può essere definito come un vivente, animale, terrestre e bipede.
Come di giunge a questa definizione anzichè alla definizione eretto, onnivoro,
intelligente e sensibile?
Il procedimento consiste nel riconoscere in prima istanza l’insieme di apparteneza
del concetto (il suo genere) poi nel classificare il concetto secondo uno degli
elementi di tale insieme e ripere questo procedimento fino ad una completa
definizione. Per esempio, l’uomo appartiene anzi tutto al genere dei viventi,
quindi questo l’insieme di partenza. L’insieme dei viventi contiene due elementi (senza pretesa di precisione biologica) gli animali e i vegetali. L’uomo
è un animale quindi diciamo vivente di specie animale. L’insieme degli animali di divide in volatili, acquatici e terrestri. L’insieme dei terrestri si divide
in stiscianti, bipedi, quadrupedi, a sei zampe e a otto zampe. L’uomo è bipede
e siccome è l’unico bipede (senza sempre pretese di precisione biologica) allora la sequenza dicotomica vivente-animale-bipede è una definizione corretta
di uomo. Un risultato di questo processo é la definizione di gerarchie la cui
relazione d’ordine si basa sull’inclusione (si noti come la definizione di gerarchia sia ripresa nel concetto di ereditarietà). Se un dato insieme (l’insieme
degli animali terrestri) è incluso in un altro insieme (insieme degli animali) allora il primo è di ordine gerarchico superiore al secondo. Secondo Aristotele
per dare una definizione di un concetto è necessario che questa porti ad un in-
5
sieme che ha esattamente la stessa estensione del concetto che si vuol definire.
Per esempio il concetto di uomo (inteso come essere umano) si può applicare
a tutti gli abitanti umani della Terra quindi ad un ben definito numero. La
definizione di uomo deve identificare un insieme cha abbia la stessa estensione.
La definizione animale terrestre bipede biondo non ha la stessa estensione del
concetto uomo. Sempre secondo Aristotele per produrre una definizione corretta di un concetto si iscrive il concetto nel genere immediatamente superiore e
poi se ne da una nota caratteristica che lo distingue: uomo → animale-terrestre
bipede (si noti l’analogia con il namespace). Le definizioni vengono date in
forma di predicati: l’uomo è un animale terrestre è un predicato.
1.1.2
La matematica entra nell’analisi del linguaggio
Forziamo un po’ la storia e reinterpretiamo il passato a uso del presente e,
senza pretesa di rigore storico, possiamo affermare che gli sofrzi di Platone e
Aristotele nascevano dall’obiettivo di analizzare il linguaggio naturale (nel loro
caso la lingua greca), ricerca che sarebbe risultata poi nella logica. Il problema
risiedeva nel fatto che per analizzare il linguaggio naturale si faceva ricorso al
linguagio stesso e quindi la dimostrazione di quali costrutti linguistici fossere
coerenti e quali no era comunque affetta da una difficoltà insormontabile di
fondo, la mancanza di uno strumento di analisi la cui coerenza fosse riconosciuta a priori. Lo sforzo di Aristotele di identificare il processo di definizione
delle categorie con le operazioni matematiche sugli insiemi fornisce esattamente questo strumento. La matematica, la cui coerenza non aveva bisogno
di dimostrazione (si parlava di aritmetica elementare e geometrica descrittiva)
poteva essere usata per analizzare il linguaggio, esisteva quindi uno strumento
esterno al linguaggio che permetteva di verificare, come vedremo ora, se i ragionamenti espressi attraverso il linguaggio erano o meno verità matematiche.
In questo modo viene inventata la logica.
1.1.3
I sillogismi
Sillogismo significa sostanzialmente concatenazione di ragionamenti o ragionamento concatenato. Il modo di ragionare porposto con i sillogismo si basa sul
concetto intuitivo di insieme, di inclusione, di intersezione e di esclusione. Il
successo della formulazione dei sillogismi è che la coerenza di ogni sillogismo
è verificabile semplicemente in termini della coereza delle relazioni matematiche che il sillogismo esprime.
Aristotele introduce i sillogismi relativamente a tre concetti che indica come
il minore, il medio e il maggiore. Ogni sillogismo è composto da due premesse,
dette maggiore e minore, e una conclusione. Il termine maggiore e minore
compaiono nella conclusione del sillogismo come predicato e soggetto mentre
il medio no. Per esempio nella conclusione:
tutti gli studenti fanno i furbi
6
furbi è un predicato, gli studenti sono il soggetto mentre il medio non compare.
Il sillogismo completo poteva essere:
tutti gli studenti sono giovani,
tutti i giovani fanno i furbi,
tutti gli studenti fanno i furbi.
I tipi di proposizioni usati nei sillogismo aristotelici sono quattro e si identificano con le prime quattro vocali:
A Tutti i S sono P (universale affermativa)
E Tutti i S non sono P (universale negativa)
I Alcuni S sono P (particolare affermativa)
O Alcuni S non sono P (particolare negativa)
La combinazione di tipi all’interno di un sillogismo (i.e. AAA, AEA, AIO ecc.)
viene detta modo. Ci sono quindi in totale 43 diversi modi in cui può presentarsi
un sillogismo.
Le proposizioni formanti un sillogismo si classificano in figure e dipendono
dalla posizione che ha il termine medio nelle premesse:
prima figura : il termine medio è soggetto della premessa maggiore e predicato della premessa minore;
seconda figura : il termine medio è predicato di entrambe le premesse;
terza figura : il termine medio è soggetto di entrambe le premesse;
quarta figura : il termine medio è predicato della premessa maggiore e soggetto della premessa minore.
Ci sono quindi 64 modi diversi per ogni figura, in totale con i vincoli posti
fin’ora si possono formulare 44 sillogismi distinti. In realtà solo un sottogruppo
limitato è considerato valido in logica. Per capire come selezionare i sillogismi
validi dobiamo introdurre il concetto di termine distribuito. In una proposizione
di un sillogismo i due termini sogetto e predicato sono detti ciascuno distribuito
o non distribuito a seconda che tutti o solo alcuni dei membri della classe identificata dal termine sono interessati o meno dalla proposizione. In particolare
un termine di dice distribuito se se è il soggetto di una proposizione universale
(Tutti gli S sono P, Nessun S è P) o predicato di una negativa (Nessun S è P,
Qualche S non è P).
Essendoci in ogni proposizione un soggetto e un predicato esistono 4 possibili combizazioni di distribuzione. Le distribuzioni per i 4 tipi di proposizioni
sono: Secondo la teoria di distribuzione dei termini, un sillogismo è valido se
nessun termine che non è distribuito nelle premesse non lo è nenache nelle
conclusioni.
7
Tipo
Propsizione
A
E
I
O
Tutti i S. sono P.
Tutti S. non sono P.
Alcuni S. sono P.
Alcuni S. non sono P.
Distribuzione
Soggetto
Distribuito
Distribuito
Non distribuito
Non distribuito
Predicato
Non distribuito
Distribuito
Non distribuito
Distribuito
Prima figura: AAA -1 (Barbara)
EAE -1 (Celarent)
AII -1 (Darii)
EIO -1 (Ferio)
Seconda figura: AEE -2 (Camestres)
EAE -2 (Cesare)
AOO -2 (Baroco)
EIO -2 (Festino)
Terza figura: AII -3 (Datisi)
AAI -3 (Daratpti)
IAI -3 (Disarmis)
EIO -3 (Ferison)
OAO -3 (Bocardo)
EAO -3 (Felapton)
Quarta figura: AEE -4 (Camenes)
IAI -4 (Dimaris)
EIO -4 (Fresison)
EAO -4 (Fesapo)
Esempio: prima figura BARBARA:
Tutti i gatti sono felini
Tutti i soriani gatti
Tutti i soriani sono felini.
Esempio: seconda figura BAROCO:
Tutti i gatti sono felini
Alcuni animali non sono felini
Alcuni animali non sono gatti.
Esempio: terza figura DATISI:
Tutti i gatti sono felini
Alcuni gatti sono animali glabri
Alcuni animali glabri sono felini.
Esempio: quarta figura FRESISON:
8
Tutti i gatti non sono fumatori
Alcuni gatti sono bevitori
Alcuni bevitori non sono fumatori.
Esercitazioni
1. Produrre un sillogismo valido per per le quattro figure, in particolare:
Celarent, Festino, Disarmis e Camene.
1.2
1.2.1
Le origini dei linguaggi formali
Il sogno di Leibniz
Io penso che mai le controversie possono essere
condotte a termine e che mai si pu imporre
silenzio alle sette se
non siamo ricondotti dai
ragionamenti complicati ai calcoli semplici, dai
vocaboli di significato in
certo e vago a caratteri
determinati
[...]
Si deve fare in modo
che ogni paralogismo non
sia nullaltro che un errore di calcolo
[...]
Fatto ci , quando sorgano controversie non ci
sar pi bisogno di dispute fra due filosofi di
quanto non ce ne sia fra due computisti.
Baster infatti prendere la penna, sedersi
allabaco e dirsi vicendevolmente: calcoliamo!
Gottfried W. Leibniz
1.2.2
La logica di Boole
La logica di Boole era un nuovo ramo della matematica da sviluppare usando
i consueti metodi della matematica tra i quali il ragionamento logico. La logica
di Boole per essere sviuppata richiede quindi l’uso della logica. L’idea di base
è che i valori logici VERO e FALSO possono essere rappresentati da numeri e
che i connettivi logici possono essere degli operatori algebrici che agiscono su
questi numeri. Boole introduce l’algebra costituita da l’insieme K = {0, 1} e
gli operatori ∗, + e ! che rappresentano la congiunzione, la disgiunzione e la
negazione.
x: la classe X
1 − x: la classe non-x (tutti i memb ri del dominio che non sono x)
9
xy: la classe i cui membri sono sia x che y
x + y: la classe i cui membri sono X o Y
xy = yx: proprietà commutativa del prodotto
x + y: =y+x proprietà commutativa della addizione
z( x + y) = zx + zy: proprietà distributiva della moltiplicazione rispetto all’addizione
x2 = x: idempotenza, da cui deriva la non contradditorietà: x ( x − 1) = 0
Nell’algebra di Boole si costruiscono espressioni o funzioni Booleane usando variabili che hanno valore in K e gli operatori sopra visti. Un esempio di
funzione booleana costruita usando una espressione booleana è la seguente:
y = A ∗ (B + C) + A
y
1
1
1
1
0
0
0
A
1
1
1
1
0
0
0
0
B
1
1
0
0
1
1
0
0
(1.1)
C
1
0
1
0
1
0
1
0
I valori della funzione y sono riportati nella tabella sopra. A cosa serve l’algebra di Boole e a cosa non serve? L’algebra di Boole permette di esprimere
matematicamente alcune forme di ragionamento. Prediamo l’esempio di una
mamma che raccomanda il figlio circa l’uso dell’obrello:
• Se stai in casa non serve l’ombrello
• Se esci ed è nuvolo oppure piove prendi l’ombrello
• Se esci e fa bello ma programmi di restare fuori per più di due ore prendi
l’ombrello
La madre ha richiesto al figlio di eseguire costantemente una verifica riguardo alla necessità o meno di prendere l’obrello. Il figlio dovrebbe far uso del
ragionamento e prendere questa decisione. Fino alla definizione o costruzione
dell’algebra di Boole, per predere questa decisione era necessario ragionare.
10
Con l’algebra di Boole, il ragionamento precedente si sintetizza nella funzione
ombrello come segue:
ombrello =!casa ∗ ((nuvolo + piove) + (!nuvolo ∗ f uorialungo ))
(1.2)
Proposizioni esistenziali come: esiste un numero tra i reali il cui quadrato sia
−1 non sono modellabili come espressioni booleane ne proposzioni universali
come ogni numero naturale è la somma di quattro quadrati di numeri naturali?. Vediamo un esempio con uno dei sillogismo visti prima: Esempio: prima
figura BARBARA:
Tutti i gatti sono felini
Tutti i soriani gatti
Tutti i soriani sono felini.
Se usiamo la variabile x per indicare lo stato di gatto, la y quello di felino e la
z quello di soriano, possiamo riscrivere la prima proposizione come: x = xy,
la seconda diventa z = zx e quindi z = zxy. L’equazione x = xy ha come
soluzioni: {0,0}, {0,1} e {1,1} il che equivale a dire che se x = 1 allora y = 1
cioè la prima delle proposizioni. Analogamente la seconda e la terza ci portano
a dimostrare z = 1, cioè se z è un soriano, allora z è un felino.
Per modellare queste domande era necessario un formalismo logico più
esteso.
1.2.3
Il linguaggio formale di Frege
L’obiettivo di Frege era di dimostrare che tutta la matematica poteva essere
basata sulla logica. Vale a dire che la matematica sia una conseguenza logica
di asserzioni considerate vere (assiomi non logici).
Questo obiettivo richiedeva di rinunciare ai risultati ottenuti dalla logica
Aristotelica che si fondava sulle veritá matematiche. Se vogliamo dimostrare
che la matematica ha una coerenza logica non possiamo usare la matematcia
per dimostrare la logica.
Per dimostrare che la matematica era una teoria logica aveva prima bisogno di sviluppare la logica senza usare la logica stessa, cioè diversamente da
come avevano fatto Boole e Aristotele. La soluzione per Frege fu di creare un
linguaggio artificiale con proprie regole sintattiche. Queste idee vennero pubblicate nel suo libro Begriffsschrift. L’idea di base era di presentare le inferenze
logiche come operazioni meccaniche condotte per mezzo di regole che riguardavano solo la configurazione in cui erano disposti i simboli. Gli elementi
dell’ideografia di Frege sono:
∀: quantificatore universale
∃: quantificatore esistenziale
⊃: l’implicazione
∨: disgiunzione
11
∧: congiunzione
¬: negazione
usando l’ideografia i tipi AEIO possono essere riscritti come:
• ∀ x (S( x ) ⊃ P( x ))
• ∀ x (S( x ) ⊃ ¬ P( x ))
• ∃ x (S( x ) ∧ P( x ))
• ∃ x (S( x ) ∧ ¬ P( x ))
∃ x : x2 = −1 ∀ x ∃ a, b, c, d : a2 + b2 + c2 + d2 = x
Per esempio consideriamo la seguente regola: siano dati i due enunciati A
e B della Begriffsschrift, se se A è asserito (asserire A significa intuitivamente
considerare A vero) ed è asserito anche A ⊃ B allora è asserito anche B:
` ( A ⊃ B)
`A
`B
L’aspetto chiave di questa regola è che per applicarla non c’è bisogno di capire
il significato di ⊃. Rispetto all’algebra di Boole Frege realizza una logica non
basata sulla matematica. La logica di Frege ha però un limite, nel caso che una
data proposizione non si riesca a dimostrare vera rimane il dubbio se essa sia
falsa o se semplicemente se non si sia trovato il modo di dimostrarla vera. Non
fornisce una procedura per dimostrare una asserzione.
Per raggiungere il suo obiettivo, Frege, intendeva costruire una teoria dei numeri basata solo sulla logica. Frege voleva definire i numeri naturali come
proprietà degli insiemi e in questo modo non avrebbe fatto uso di concetti
matematici. Purtroppo la sua fondazione fu dimostrata autocontradditoria da
Bertrnad Russel.
1.2.4
I Principia Mathematica
Bertrand Russel e Alfred North Whitehead riprendono il proposito di Frege di
formalizzare la matematica in termini puramente logici e codificano i Principia
Mathematica. In questa opera gli autori codificano i principi matematici partendo da un insieme definiti di assiomi (non logici) e di regole di inferenza. Il
loro obiettivo era di completare l’opera di Frege evitando l’uso della teoria dei
sottoinsiemi che lo avevano portato ai paradossi indicati da Russel.
1.2.5
Il programma di Hilbert
Hilbert, come Frege e Russel, provò a definire i numeri in termini logici ma
abbandonò questo proposito pur continuando a considerare la logica simbolica un elemento cruciale. Egli aveva un programma che prevedeva che sia la
12
matematica che la logica sarebbero state sviluppate insieme come linguaggio
simbolico. Tale linguaggio (sommma dei due linguaggi) era puramente formale e poteva essere visto sia dall’interno che dall’esterno. La visione dall’interno consisteva nell’interpretazione del linguaggio a livello semantico, quindi
con cognizione di causa. La visione dall’esterno prescindeva dal significato e si
limitava alle regole sintattiche del linguaggio. L’idea di Hilbert era che con un
tale linguaggio fosse impossibile arrivare a dimostrare una asserzione (per esempio una formula) e a dimostrarne anche la sua negazione. Questo approccio
di Hilbert fu criticato da Poincaré e Brower che sostenevano che da una prova
di non contradditorietà basata sugli stessi metodi che avrebbe dovuto garantire, non sarebbe risultato nulla di interessante. Questo suggerı̀ ad Hilbert di
sviluppare una teoria della dimostrazione basata su metodi matematici non attaccabili.
Hilbert si chiedeva se le regole deduttive di Frege fossere complete, cioè si
chiedeva se date delle premesse corrette esistevano tutte le regole che ci permettono di inferire le giuste conclusioni. Questo è come chiedersi se ci siano
delle verità non dimostrabili in quanto mancano gli strumenti formali per dimostrarle:
Occhio: nella realtà quotidiana siamo abituatia questo, per esempio ci sono
azioni che vengono compiute, come un crimine, ma di cui non è possibile identificare un colpevole. Se un crimine è stato compiuto allora un colpevole esiste
ma questo non vuol dire che il sistema investigativo sia in grado di trovarlo.
Hilbert credeva e voleva dimostrare che il sistema di Frege era completo (o
almeno completabile). Dire che il sistema è completo significa che se date certe
premesse e data una conclusione, questa risulta vera ogni qual volta sono vere
le premesse, allora è possibile passare dalle premesse alla conclusione usando
le regole di Frege (ora regole Frege-Russel-Hilbert). In parole semplici la problematica riguarda il riuscire a dimostrare che una certa inferenza è vera quando
essa è è evidente all’intelletto umano. In questo caso diciamo che l’inferenza
è dimostrabile vera dall’interno (cioè dall’interno del sistema) e che vogliamo
dimostrarla vera dall’esterno, cioè per mezzo delle regole da cui il sistema è
definitito.
1.2.6
Göedel
La prova che il sistema di Frege era completo fu fornita da Göedel e come rilevò
lui stesso il suo risultato non era che una consegueza dei risultati contenuti in
un articolo del logico Thoralf Skolem. Si era quindi dimostrata la completezza di un sistema formale (il sistema logico di Frege) utilizzando dei metodi
matematici meccanici.
Il secondo problema che Göedel si trovò ad affrontare fu la ricerca prova che
la matematica non è contradditoria. Questo problema era stato posto sempre
da Hilbert. Questa prova doveve essere portata senza far ricorso alle stesse
verit matematiche che si volevano dimostrare vere. Questo significava consid13
erare un sistema formale dall’esterno anzichè dall’interno, non si poteva infatti
far ricorso ai metodi matematici per dimostrare che essi stessi non erano contradditori. La differenza tra interno ed esternp consiste nel valutare il sistema
facendo uso o meno dell’intelletto.
Göedel analizzò la problematica di considerare un sistema logico formale dall’esterno invece che dall’interno (lo stesso che aveva fatto Frege con la sola
logica) e pensò quindi che questo compito richiedeva di sviluppare la stessa
matematica all’interno di un sistema logico formale. Visto dall’esterno un sistema logico formale consiste in siboli e stringhe di simboli e da relazioni tra
queste, dall’interno invece stringhe e simboli rappresentano proposizioni sugli
oggetti matematici come in numeri natuarali. Una idea importante di Göedel
fu quella di rappresentare le stringhe di siboli del sistema formale (cioè della
matematica vista dall’esterno) per mezzo degli stessi numeri naturali. Cons
14
1.3
1.3.1
Linguaggio proposizionale
Sistemi formali
Una logica Λ può essere definita come segue:
• Un alfabeto A detto alfabeto di Λ. L’alfabeto deve essere non vuoto, finito
o al più numerabile. Una sequenza finita di siboli di A è detta essere una
espressione di Λ.
• Un sottoinsieme F delle formule di Λ detto l’insieme delle formule ben
formate.
• Un sottoinsieme Ax di F , detto insieme degli assiomi logici o semplicemente assiomi di Λ.
• Un insieme finito R di relazioni R1 , ..., Rn di formule di Λ dette regole di
inferenza. Si richiede inoltre che per ciascuna regola Ri esista un unico intero positivo j tale che per ogni insieme costituito da j formule (premesse)
e per ogni formula A si può effettivamente decidere se le j formule sono
in relazione Ri con A oppure no. In caso positivo, A è detta conseguenza
diretta delle j formule mediante Ri .
Le regole di inferenza possono essere scritte come segue:
A1 ...An
A
Le formule scritte sopra la riga sono dette premesse mentre quella sotto è detta
conclusione. Un esempio di regola di inferenza è il modus ponens (MP), in questo
caso abbiamo due formule che costituiscono le premesse e una conclusione.
Consideriamo che l’alfabeto sia costituito dalle lettere dell’alfabeto e dal simbolo della freccia. Rispetto al formalismo precedente definiamo le premesse A1
e A2 come: A1 = P → C, A2 : P, la conclusione A = C. La regola si esprime
come:
P → C, P
C
Una seconda regola di inferenza è la sostituzione uniforme (SU)
F [ p]
F [ X/p]
Teoremi e dimostrazioni
Una dimostrazione o prova in Λ è un insieme di formule A1 , ..., An . Perchè sia
una dimostrazione ognuna delle Ai deve essere o un assioma di Λ, cioè appartenere a Ax oppure essere una conseguenza diretta di alcune delle formule
che precedono mediante una delle regole di R.
L’ultima formula An è detta teorema. Indichiamo con ` A che A è un teorema
di Λ.
15
I teoremi sono quindi delle conseguenze formali degli assiomi logici
Se si assumono come assiomi le seguenti formule:
A → ( B → A)
( A → ( B → C )) → (( A → B) → ( A → C )))
(¬ A → ¬ B) → ( A → B)
si ha che i teoremi della logica sono i seguenti:
A → Alegge dell’identità
¬(¬ A) ↔ Alegge della doppia negazione
A ∨ ¬ Alegge del terzo escluso
¬( A ∧ ¬ A)legge di non contraddizione
( A → B) ↔ (¬ B → ¬ A)legge di contrapposizione
( A ∧ ( A → B)) → Bmodus ponens o legge di disgiunzione
(¬ B ∧ ( A → B)) → ¬ Amodus tollens
( A → B) ∧ ( B → C ) → ( A → C )sillogismo ipotetico oppure noto come propriet transitiva dell’implicazione
A ∧ ( B ∧ C ) ↔ ( A ∧ B) ∧ Cpropriet associativa di ∧
A ∨ ( B ∨ C ) ↔ ( A ∨ B) ∨ Cpropriet associativa di ∨
A ∧ B ↔ B ∧ Apropriet commutativa di ∧
A ∨ B ↔ B ∨ Apropriet commutativa di ∨
A ∧ ( B ∨ C ) ↔ ( A ∧ B) ∨ ( A ∧ C )propriet distributiva della congiunzione rispetto alla disgiunzione
A ∨ ( B ∧ C ) ↔ ( A ∨ B) ∧ ( A ∨ C )propriet distributiva della disgiunzione rispetto alla congiunzioneA ∧ ¬ A
A → (¬ A → B)seconda legge di Pseudo Scoto
A ∧ B ↔ ¬(¬ A ∨ ¬ B)prima legge di De Morgan
A ∨ B ↔ ¬(¬ A ∧ ¬ B)seconda legge di De Morgan
(( A → B) → A) → Alegge del Pollice
(¬ A → A) → Aconsequentia mirabilis
Diverso è il caso in cui una formula A discenda da una serie di premesse
(altre formule) che sono assunte. Se per esempio si assumono le formule (Γ)
B1 , ..., Bn ⊆ F e da queste si ha che l’insieme di formule A1 , ..., An è tale che ogni formula o appartiene agli assiomi, o conseguenza delle formule precedenti o
appartiene a Γ. Detta A l’ultima formula di A1 , ..., An scriviamo: B1 , ..., Bn ` A.
L’insieme di tutte le formule che possono essere dedotte da Γ è detto chiusura
deduttiva e si indica con Cn(Γ). La definizione di chiusura deduttiva è quindi:
Cn(Γ) = A|Γ ` A
.
Fin’ora non abbiamo posto sulle formule A1 , ..., An la richiesta che esse siano
vere. Abbiamo quindi sviluppato un sistema deduttivo indipendente da ció. Prima di proseguire analizziamo anche gli aspetto legati al valore di verità delle
formule.
16
1.3.2
Linguaggio e semantica
Il linguaggio L della logica Λ è l’insieme F delle formule ben formate. Ci
poniamo l’ obiettivo di chiarire in modo formale come il significato degli elementi di F sia esteso alle formule apparteneti ad F per mezzo dei costrutturi
del linguaggio. Centrare questo obiettivo significa dotare il linguaggio di una
semantica. Vediamo un esempio. Consideriamo l’alfabeto
A = {soleggia, piove, tira − vento, nevica, f a − nebbia} + {∧, ∨}
. Definiamo le formule ben formate come tutte le formule composte da un
numero abitraro di elementi del primo insieme a patto che per ogni formula
formata da più di uno di questi elemti, questi siano intercalati da un elemento
del secondo insieme. Per esempio:
• soleggia : ben formata
• soleggia piove : non ben formata
• piove ∨ soleggia ∧ nevica : ben formata
A livello informale, possiamo dire che gli elementi del primo insieme sono le
parole del linguaggio mentre quelli del secondo sono i costruttori. lo scopo
della semantica è quello di attribuire un signiicato ad una proposizione costruita una volta noti i significati delle sinngole parole. Nella teoria dei linguaggi
formali, per definire una semantica si considera un insieme B detto dei valori
di verità ed un suo sottoinsieme T che rappresenta il vero. Un esmpio tipico è B = {t, f }. La semantica è l’insieme di regole che permette di associare
una proposizione costruita ad un valore di B una volta che siano note le relazioni tra le singole proposizioni e gli elementi di B . Per esempio se piove è
vera (piove : t) e tira − vento è vera (tira − vento : t) le regole della semantica
debbono fornire il valore di verità della proposizione piove ∨ tira − vento.
1.3.3
Modelli e teorie
Un altro modo per definire una semantica è l’utilizzo dei modelli. In logica
il termine modello viene usato diversamente che nellse scienze. Nella logica
un modello è la realtà che viene appunto presa a modello. Alternativamente
al termine di realtà possiamo usare il termine di struttura. Indichiamo una
realtà o struttura con il simbolo M. La struttura M rappresenta una specifica
configurazione del significato delle proposizioni che caratterizzano cio che si
sta esaminando. Supponiamo che una data formula A sia inclusa in M allora
diremo che M modella A e scriviamo M |= A, se poi questa relazione è vera
per tutti gli M allora diremo che A è valida.
Esempio: consideriamo un tiro con un dado che in termini di modelli puó
essere rappresentato come segue:
risultato={6, 1}; {1, 6}; {5, 2}; {2, 5}; {4, 3}; {3, 4}
La formula {6∧} ha quindi uno di questi a modello ma non è valida in quanto
17
esistono modelli in cui essa non verificata. La formula x ∧ (7 − x ) con 1 ≤
x ≤ 6 è valida.
1.3.4
Sintassi
Diamo qui una definizione formale della sintassi della logica proposizionale.
Definiamo anzitutto il suo alfabeto Σ come:
• I connettivi proposizionali ¬, ∨, ∧, → e ↔;
• Le costanti proposizionali > e ⊥;
• Un insime finito o numerabile di simboli che rappresentano proposizioni
P = { A, B, C...Z };
• I simboli ( e );
Ora diamo una definizione induttiva delle formule ben formate di Σ come
segue:
• I simboli proposizionali e le costanti sono formule;
• Se A è una formula (¬ A) è una formula;
• Se A e B sono due formule e ◦ è un connettivo, ( A ◦ B) è una formula.
• I simboli ( e );
1.3.5
Semantica
Definiamo allora la semantica come un sistema di valutazione S:
• B = {0, 1}
• T = {1}
• O p = {O p¬ , O p∨ , O p∧ , O p→ , O p↔ } con O p¬ : B 7→ B e O p◦ : B × B 7→ B
Le funzioni O p sono definite analogamente ai corrispettivi operatori logici.
Quello che ancora manca è un sistema per assegnare un valore di B ad una
formula (proposizione). Definiamo quindi l’assegnazione booleana V
V : P 7→ {1, 0}
18
1.3.6
Considerazioni
Gli aspetti interessanti di una logica Λ sono:
• la possibilità di stabilire se una data formula A sia o non sia un teorema
della logica
• la possibilità di stabilire se una data formula sia o non sia vera.
Un apparato deduttivo R si dice corretto se per ogni formula ben formata A si
ha che `R A implica |= A, questo significa che i teoremi devono essere delle
tautologie, cioè devono essre validi o in altri termini devono essere sempre
veri.
Si dice invece che è completo (rispetto ad un insieme di formule Γ) se per
ogni formula ben formata A ∈ Γ si ha che |= A implica `R A, cioè ogni
tautologia deve essere dimostrabile a partire dagli assimoni della teoria.
1.3.7
Decidibilità della logica proposizionale
Una formula logica è decidibile se esiste una procedura effettiva per dimostrare
se essa è valida, cioè se è o meno una tautologia. Nel caso in questione del calcolo proposizionale, per verificare se una formula A è una tautologia bisogna
verificare le tabelle di verità per ogni assegnazione ai simboli proposizionali
presenti in A (variabili). Se prendiamo l’assioma A → ( B → A) abbiamo due
sole variabili quindi 22 combinazioni:
A
1
1
0
0
→
1
1
1
1
B
1
0
1
0
→
1
1
0
1
A
1
1
0
0
Il calcolo proposizionale è quindi sembre decidibile in quanto è banalmente
sempre possibile produrre la tavola di verità di una qualsiasi formula e verificare che il valore di verità del connettivo principale sia una colonna di 1 (o
>).
1.4
Sistemi deduttivi proposizionali: sistema assiomatico hilbertiano
Prendiamo come esempio ora un sistema composto dai seguneti assiomi:
• A → ( B → A)
• ( A → ( B → C )) → (( A → B) → ( A → C )))
19
• (¬ A → ¬ B) → ( A → B)
e dalle seguenti regole di inferenza:
•
P → C, P
C
•
F [ p]
F [ X/p]
Ora vediamo il teorema di deduzione: sia Gamma un insieme di formule proposizionali con A ∈ Γ e B ∈ Γ, si ha allora:
Γ, B ` A sse Γ ` B → B
Vediamo che il teorema permette di spostare una formula da una parte all’altra della relazine ` inserendo o eliminado a seconda del caso il connettivo →.
Una conseguenza rilevante di questo teorema è che esso ci permette di trattare
le formule derivate da Γ come teoremi, infatti, posto Γ = { A1 , ..., An } e dato
Γ ` B possiamo sempre scrivere: ` A1 → ( A2 → (...( An → B)...)).
Un insieme di formule Γ è detto consistente se è verificata una delle segueni
condizioni:
• Non esiste A tale che Γ ` A e Γ ` ¬ A
• Esiste una proposzione A tale che Γ 0 A
1.4.1
Completezza e correttezza
La relazione tra completezza e correttezza riguarda la relazione tra i teoremi e
le tautologie. Il sistema in questione è completo se ogni tautologia è dimostrata
come teorema e altresı̀ il sistema è corretto se ogni teorema è una tautologia. La
dimostrazione che il sistema hilbertiano proposizionale è corretto e completo è
ridotta alla dimostrazione delle relazione seguente:
` H A → B sse |= A → B
Per dimostrare la correttezza è sufficiente dimostrare:
• Gli schemi di assiomi iniziali sono tautologie
• MP e SU sono chiusi, cioè se le premesse delle regole MP e SU sono
tautologie allora anche le conseguenze sono tautologie.
Per dimostrare la completezza invece la dimostrazione è più complessa e qui
non viene affrontata.
Il sistema hilbertiano proposizionale è quindi un sistema completo e corretto.
20