ELEMENTI DI LOGICA
PER IL CORSO DI LAUREA IN INFORMATICA
Anno 2006-2007
Prof. Giangiacomo Gerla
Università di Salerno
INTRODUZIONE
La logica matematica studia le "asserzioni", cioè le espressioni linguistiche per cui abbia
senso dire se siano vere o false. Supponiamo che invece di dire che una asserzione è vera
affermiamo che ha “valore di verità 1”, invece di dire che è falsa affermiamo che ha “valore
di verità 0”. Allora il primo compito della logica matematica è:
stabilire come il valore di verità di una asserzione composta possa essere calcolato a partire
dai valori di verità delle asserzioni che la compongono
Questa parte della logica viene chiamata semantica.
Il secondo compito della logica matematica è quello di formalizzare e riprodurre le forme
di ragionamento dell'essere umano, cioè quei processi mentali che permettono di ottenere a
partire da asserzioni considerate vere (premesse) nuove asserzioni (conclusioni). Questa parte
della logica prende il nome di teoria della dimostrazione. Ecco alcuni esempi di ragionamento
che vengono studiati.
Se ritengo che siano vere le asserzioni
"2 è pari"
e
"3 non è pari"
allora appare naturale affermare anche che l'asserzione
"2 è pari e 3 non è pari"
sia vera.
Un altro esempio di ragionamento è il seguente: se ritengo che siano vere le asserzioni
tutti gli uomini sono mortali
e
Socrate è un uomo
allora posso concludere che Socrate è mortale.
In origine la logica matematica si è occupata solo dei ragionamenti di tipo matematico in quanto
il suo scopo doveva essere quello di dare un sicuro fondamento alla matematica. Attualmente la
logica matematica si occupa dell’attività del ragionare in tutti i contesti, anche in quello della
vita quotidiana. In tale senso è diventato un settore importante dell'informatica utile in modo
particolare per l'intelligenza artificiale. Ad esempio le idee della logica matematica sono
importanti per:
- i sistemi esperti,
- il linguaggio di programmazione Prolog
- i data-base intelligenti
- la robotica.
Inoltre la logica matematica entra come “un pezzo” importante di ogni linguaggio di
programmazione. Infatti in ogni linguaggio di programmazione esistono istruzioni condizionate
del tipo
Se A è vero allora fai B altrimenti fai C.
Oppure, visto che usualmente ci si riferisce alla lingua inglese:
IF A THEN B ELSE C.
In questo caso B e C sono procedure da applicare mentre la lettera A denota una asserzione e
quindi appartiene all’universo della logica.
In questo brevissimo corso ci limiteremo a dare qualche elemento su due importanti parti
della logica matematica: il calcolo proposizionale ed il calcolo dei predicati.
INDICE
Introduzione
CAPITOLO 1
Il calcolo proposizionale.
1.
2.
3.
4.
5.
6.
7.
8.
9.
Il calcolo proposizionale
Linguaggio e semantica del calcolo proposizionale
Equivalenze logiche e conseguenze logiche
Un esempio di intelligenza artificiale: i tableaux semantici
Il teorema di completezza funzionale
La logica per costruire calcolatori: le porte logiche
Circuiti in serie ed in parallelo
Un esempio: le addizionatrici a base due
Logiche a più valori di verità (solo lettura)
CAPITOLO 2
Il calcolo dei predicati
1. Linguaggi formali e grammatiche
2. I linguaggi del calcolo dei predicati: l’alfabeto
3. I linguaggi del calcolo dei predicati: le formule
4. Interpretazioni di un linguaggio
5. Conseguenze logiche ed equivalenze logiche
6. L'aritmetica è indecidibile: non esiste un interprete tale che …
7. Strutture algebriche, reticoli, algebre di Boole (facoltativo)
8. Relazioni e grafi (facoltativo)
9. Relazioni d'ordine, relazioni di equivalenza (facoltativo)
10. Quozienti, l'algebra di Boole delle formule (facoltativo)
1.
2.
3.
4.
5.
6.
CAPITOLO 3
Trasformare formule e dedurre da teorie
Sistemi di trasformazione
Riduzioni a forma normale nel calcolo proposizionale
Riduzione a forma normale nel calcolo dei predicati
Eliminazione dei quantificatori esistenziali
I sistemi deduttivi
Dimostrare tramite un calcolatore: la programmazione logica
Programma.
Linguaggio e semantica del calcolo proposizionale. Il teorema di completezza funzionale e
forme normali. Il metodo dei tableaux semantici. Porte logiche. Logiche a più valori di verità.
Linguaggi formali e grammatiche. Strutture algebriche, reticoli algebre di Boole. Relazioni.
Relazioni d'ordine, relazioni di equivalenza.
Quozienti, l'algebra di Boole delle formule. Linguaggi del calcolo dei predicati.
Interpretazioni di un linguaggio. Conseguenze logiche ed equivalenze logiche. Sistemi di
trasformazione. Riduzioni a forma normale nel calcolo proposizionale. Riduzione a forma
normale nel calcolo dei predicati. Eliminazione dei quantificatori esistenziali. I sistemi
deduttivi. Calcolare con gli insiemi: operatori algebrici e punti uniti. Dimostrare tramite un
calcolatore: i programmi.
Bibliografia.
Negli appunti dal corso può essere trovato tutto quanto detto a lezione. Possono essere
scaricate anche alcune delle prove date negli anni precedenti. Per un maggior
approfondimento un classico manuale di logica matematica è:
- Mendelson, Introduzione alla logica matematica, Boringhieri.
che risulta anche un po' noioso e troppo formale.
Libri più vicini all'informatica sono:
- S. J. Russell, P. Norving, Intelligenza Artificiale, Ed. Prentice Hall International.
- M. L. Schagrin, W. J. Rapaport, R.R. Dipert, Logica e computer, Ed. McGraw-Hill.
- A. Asperti, A. Ciabattoni, Logica a Informatica, Ed. McGraw-Hill.
Per una affascinante e semplice storia della logica in rapporto all'intelligenza artificiale:
- Y. Castelfranchi, O. Stock, Macchine come noi, Ed. Laterza.
In particolare se si vogliono approfondire gli studi nella direzione della programmazione
logica:
- J.W.Lloyd, Fondamenti di programmazione logica, Franco Muzzio Ed.
(in inglese esiste una edizione aggiornata e migliorata di tale libro).