Logica. Claudio Sacerdoti Coen 29/09/ : Paradossi (meta)linguistici. Universitá di Bologna. Paradossi (meta)linguistici

Documenti analoghi
Logica. Claudio Sacerdoti Coen 02/10/ : Teoria Assomatica degli Insiemi (cenni) Universitá di Bologna

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

Logica. Claudio Sacerdoti Coen 07/10/ : Connotazione, denotazione, invarianza per sostituzione. Universitá di Bologna

Linguaggi. Claudio Sacerdoti Coen 23/02/ : Logica a Informatica. Universitá di Bologna. Logica a informatica

Problemi decidibili, semidecidibili, indecidibili

Linguaggi. Claudio Sacerdoti Coen 16/03/ : Teorema di Compattezza. Universitá di Bologna. Teorema di Compattezza

Linguaggi. Claudio Sacerdoti Coen 13/12/ : I connettivi della logica proposizionale classica. Universitá di Bologna

Linguaggi. Claudio Sacerdoti Coen 29,?/10/ : La struttura dei numeri naturali. Universitá di Bologna

Fondamenti teorici e programmazione

Linguaggi. Claudio Sacerdoti Coen 04/03/ : La struttura dei numeri naturali. Universitá di Bologna

T1: Logica, discorso e conoscenza. Logica classica

Introduzione all algebra di Boole. Introduzione all'algebra di Boole

Programmazione A.A Fondamenti di programmazione. ( Lezione IX ) Notazione Lineare Strutturata. Prof. Giovanni Gallo Dr.

Sintassi. Logica. Sintassi di Matita. Claudio Sacerdoti Coen. Universitá di Bologna 16,18/10/2017. Claudio Sacerdoti Coen

Logica. Claudio Sacerdoti Coen 13-15/11/ : Semantica classica della logica proposizionale. Universitá di Bologna

Introduzione alla programmazione

Architetture data-flow

Ragionamento formalei. Ragionamento formale

Linguaggi. Claudio Sacerdoti Coen 15/04/ : Deduzione naturale per la logica del prim ordine. Universitá di Bologna

Linguaggi di programmazione: sintassi e semantica Sintassi fornita con strumenti formali: Semantica spesso data in modo informale

Logica per la Programmazione

Linguaggi. Claudio Sacerdoti Coen 28/03/ : Deduzione naturale. Universitá di Bologna. Deduzione naturale

Caratteristiche di un calcolatore elettronico

Logica. Claudio Sacerdoti Coen 09,11/10/ : Relazioni, Funzioni,... Universitá di Bologna. Claudio Sacerdoti Coen

ELEMENTI DI LOGICA MATEMATICA LEZIONE I

Lezione 6 Introduzione al C++ Mauro Piccolo

Logica. III parte. Intelligenza Artificiale - Problem Solving 2 1

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Verifica di programmi

Descrizione di un algoritmo

Una Breve Introduzione alla Logica

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Logica per la Programmazione

Programmazione II. Lezione 3. Daniele Sgandurra 26/10/2010.

Teoria della Calcolabilità!

Istituzioni di Logica Matematica

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati

T1: Logica, discorso e conoscenza. Logica classica

2. Che cosa significa che due insiemi sono uguali? La parola uguale e il simbolo = hanno un unico significato in matematica? 13

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

Logica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2018/19

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

Introduzione alla Programmazione Funzionale

Linguaggi di programmazione. Paradigmi di programmazione

Matroidi, algoritmi greedy e teorema di Rado

Il linguaggio di programmazione Python

1 Richiami di logica matematica

Cosa si intende con stato

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

Fondamenti. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione [010194] 7 mar, 2016

Esercitazioni di Algoritmi e Strutture Dati

Le parole dell informatica: algoritmo e decidibilità

INDUZIONE MATEMATICA

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome

Sviluppo di programmi

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if

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

Algoritmi e Strutture Dati

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Fondamenti d Informatica: Linguaggio While. Barbara Re, Phd

LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI

T1: Logica, discorso e conoscenza. Logica classica

1 Richiami di logica matematica

Fondamenti di Informatica

Fondamenti teorici e programmazione

Semantiche dei linguaggi di programmazione

Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output

Linguaggi di Programmazione

Logica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2016/17

La matematica non è un opinione, lo è oppure...?

PASCAL LA SELEZIONE: IF TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica

La matematica intuizionista

Logica per la Programmazione Corso di Laurea in INFORMATICA a.a. 2015/16

ELEMENTI DI LOGICA MATEMATICA LEZIONE VII

Matematica. Corso integrato di. per le scienze naturali ed applicate. Materiale integrativo. Paolo Baiti 1 Lorenzo Freddi 1

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

Logica booleana, Costrutto IF

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Logica. Claudio Sacerdoti Coen 16,23,25,30/10/2017, 06/11/ : Sintassi. Universitá di Bologna.

Maiuscole e minuscole

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. !

LINGUAGGI DI ALTO LIVELLO

Grammatiche e Linguaggi Liberi da Contesto

Precedenza degli operatori

Logica per la Programmazione

Controllo PID con saturazione

Che cos è l Informatica?

Sistemi Deduttivi. Marco Piastra. Intelligenza Artificiale I. Intelligenza Artificiale I - A.A Sistemi Deduttivi[1]

Logica per la Programmazione

Il problema dello zaino

Informatica 3. LEZIONE 9: Introduzione ai linguaggi funzionali. Modulo 1: Introduzione ai linguaggi funzionali Modulo 2: LISP

INTRODUZIONE ALLA LOGICA DI HOARE. Corso di Logica per la Programmazione

Università di Bologna

Transcript:

Logica 1: Paradossi (meta)linguistici <sacerdot@cs.unibo.it> Universitá di Bologna 29/09/2017

Outline Paradossi (meta)linguistici 1 Paradossi (meta)linguistici

Paradossi ( antinomie) Antinomia: una conclusione inaccettabile, che deriva da premesse accettabili per mezzo di un ragionamento accettato Talvolta Antinomia = << definizione precedente >> Paradosso = conclusione contraria all intuizione che deriva da premesse accettabili per mezzo di un ragionamento accettato Nel corso parlerò di paradossi intendendo antinomie. Falso paradosso (trova l errore): x = 1 x 2 = x x 2 1 = x 1 (x + 1)(x 1) = x 1 x + 1 = 1 x = 0 1 = 0

Linguaggio naturale Linguaggio naturale (italiano, francese, arabo,... ) alla base della comunicazione e del ragionamento umano. Massimamente espressivo; spesso esteso e specializzato: Filosofia Diritto Politica Matematica informale Possiamo usarlo anche per descrivere procedure di calcolo (informatica) e dimostrazioni (logica)?

Ambiguità del linguaggio naturale Il linguaggio naturale è: 1 Ambiguo 2 Fortemente dipendente dal contesto La vecchia porta la sbarra Lucia ha perso la testa... if la vecchia porta la sbarra then amputa(gamba,dx) else amputa(gamba,sx)

Paradossi del linguaggio naturale Il linguaggio naturale: 1 Ammette paradossi Io mento io mento se e solamente se ciò che dico non è vero io mento se e solamente se io mento non è vero io mento se e solamente se io non mento A cosa è dovuto il paradosso?

Paradossi del linguaggio naturale Il linguaggio naturale: 1 Ammette paradossi Aggettivo autologico = aggettivo che si applica a se stesso (p.e. polisillabico) Aggettivo eterologico = aggettivo che non si applica a se stesso (p.e. monosillabico) Eterologico è eterologico eterologico è eterologico sse non si applica a se stesso eterologico è eterologico sse eterologico non è eterologico A cosa è dovuto il paradosso?

Paradossi del linguaggio naturale Il linguaggio naturale: 1 Ammette paradossi Definizione: sia x il più piccolo numero non definibile in meno di 1000 parole x è definito sse x è il più piccolo numero non definibile in meno di 1000 parole x è definito (in meno di 1000 parole) sse x non è definito (in meno di 1000 parole) A cosa è dovuto il paradosso?

Paradossi del linguaggio naturale La causa di tutti i paradossi precedenti è comune: 1 l uso meta-linguistico del linguaggio naturale 2 l auto-applicazione di un concetto meta-linguistico a se stesso 3 l uso della negazione per concludere qualcosa e la sua negazione meta-linguistico = applicato al linguaggio, che parla del linguaggio Cfr: meta-motore di ricerca = motore di ricerca che cerca su altri motori di ricerca Cfr: meta-teoria = teoria che spiega un altra teoria

Paradossi del linguaggio naturale Come evitare i paradossi del linguaggio naturale? 1 Non si può impedire l uso della negazione 2 Non si può impedire l auto-applicazione 3 Come impedire l uso meta-linguistico del linguaggio naturale? Logica matematica (formale): si abbandona il linguaggio naturale in favore di linguaggi artificiali (linguaggi logici, linguaggi di programmazione)

Paradossi in matematica Nel linguaggio matematico: 1 È semplice introdurre ulteriori paradossi 2 È necessario (e possibile?) evitare i paradossi Paradosso di Russell: sia X = {Y Y Y } X X sse X X A cosa è dovuto il paradosso?

Paradossi in matematica Come evitare il paradosso di Russell: 1 Non è possibile formare liberamente {Y P(Y )} dove P è una proprietà qualunque (assioma errato di comprensione). p.e. {Y Y è un ragazzo ed è biondo} 2 Ma è possibile selezionare elementi da un insieme esistente X (assioma di separazione): {Y X P(Y )} p.e. {Y insieme degli studenti Y è biondo} se si sa già che la collezione di tutti gli studenti forma un insieme 3 La collezione di tutti gli insiemi NON è un insieme (ma una classe propria) (No all uso meta-linguistico della nozione di insieme) Quindi {Y classe di tutti gli insiemi Y Y } non è un insieme, ma una classe propria. Quindi Y Y.

Paradossi in informatica Linguaggi funzionali higher order (O Caml, Haskell, Lisp, Scheme, Miranda,... ): una funzione può prendere in input/dare in output altre funzioni (uso meta-linguistico delle funzioni) Linguaggi imperativi e/o ad oggetti (C, Pascal, C++, Java,... ): una funzione/metodo può prendere in input/dare in output puntatori/reference a funzioni/oggetti (e quindi metodi) Linguaggio assembler: è possibile passare l esecuzione a un indirizzo (parola) qualsiasi Uso meta-linguistico delle funzioni inevitabile! Auto-applicazione inevitabile Negazione inevitabile paradossi inevitabili

Paradossi in informatica Supponiamo che tutte le funzioni f, g, h,... scrivibili in un linguaggio di programmazione P dato un input, restituiscano un output in un tempo finito (totalità) Sia f(g) = not(g(g)) Allora f(f) = not(f(f))!!! Assurdo. Pertanto: O f non è scrivibile in P e quindi P è altamente inespressivo Oppure f non è totale ovvero f (f ) diverge (= non restituisce alcun output in un tempo finito) Ovvero le funzioni dei linguaggi di programmazione non sono funzioni matematiche.

Paradossi in informatica Supponiamo per assurdo che esista un programma f che, dato un programma g, determini se g converga su x ( ovvero restituisca un output in tempo finito) o diverga su x ( ): f(g,x) = true iff g(x) Sia h(g) = if f(g,g) then else Esempio: h(g) = if f(g,g) then while(true) do nothing else return 0 h(h) sse f(h,h) = true sse h(h) Assurdo: non esiste nessun programma che decida se un altro diverga

Paradossi in informatica Consideriamo un linguaggio di programmazione non tipato (p.e. Perl). Sia T l insieme di tutti i valori possibili (interi, booleani, funzioni, etc.) Supponiamo che una funzione del nostro linguaggio sia una funzione matematica e viceversa. T = {0, 1} T T (T contiene almeno i booleani e le funzioni da un T qualunque a un T qualunque) Assurdo! in quanto T < 2 + T T (teorema della diagonalizzazione di Cantor) Quindi ogni linguaggio di programmazione non può esprimere tutte le funzioni matematiche!

Metodo di diagonalizzazione Cantor La dimostrazione del teorema di Cantor è rimandata alla lezione su funzioni e relazioni in teoria degli insiemi.

Conclusioni Paradossi (meta)linguistici Esiste una classe molto ampia di antinomie linguistiche dovute a 1 l uso meta-linguistico del linguaggio naturale 2 l auto-applicazione di un concetto meta-linguistico a se stesso 3 l uso della negazione per concludere qualcosa e la sua negazione Esse si manifestano come paradossi ineludibili in informatica Esse tendono a manifestarsi in matematica, dove vanno evitate I linguaggi logici (e linguaggi di programmazione) usati per rendere il linguaggio non ambiguo e privo di antinomie Matematica formale = matematica espressa in un linguaggio logico (formale)