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