La corrispondenza Curry-Howard

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "La corrispondenza Curry-Howard"

Transcript

1 4 luglio 2009

2 Introduzione Logica e il paradigma proofs-as-programs (o formulae-as-types) da essa originatosi sono un importante esempio di transdisciplinarità, costituendo un notevole caso di interazione spontanea (scoperta a posteriori, non costruita ad hoc) tra due discipline scientifiche: LOGICA Teoria della dimostrazione Deduzione naturale INFORMATICA Teoria dei tipi λ-calcolo tipato

3 Introduzione Logica e il paradigma proofs-as-programs (o formulae-as-types) da essa originatosi sono un importante esempio di transdisciplinarità, costituendo un notevole caso di interazione spontanea (scoperta a posteriori, non costruita ad hoc) tra due discipline scientifiche: LOGICA Teoria della dimostrazione Deduzione naturale INFORMATICA Teoria dei tipi λ-calcolo tipato

4 Introduzione Logica e il paradigma proofs-as-programs (o formulae-as-types) da essa originatosi sono un importante esempio di transdisciplinarità, costituendo un notevole caso di interazione spontanea (scoperta a posteriori, non costruita ad hoc) tra due discipline scientifiche: LOGICA Teoria della dimostrazione Deduzione naturale INFORMATICA Teoria dei tipi λ-calcolo tipato

5 Contenuto Logica L interpretazione funzionale della logica La deduzione naturale 1 Logica L interpretazione funzionale della logica La deduzione naturale 2 Il λ-calcolo I sistemi di tipi 3

6 Denotazione e senso L interpretazione funzionale della logica La deduzione naturale Due diverse concezioni del significato dei connettivi logici: Realista (Tarski): il significato di un enunciato è dato dalle sue condizioni di verità l enunciato A B è vero quando se è vero A allora è vero B, cioè quando A è falso oppure B è vero (modelli semantica denotazione). Costruttivista (Heyting): il significato di un enunciato è dato dalle sue condizioni di asseribilità, cioè da cosa conta come una sua dimostrazione una dimostrazione di A B è una costruzione (ovvero, una funzione) che trasforma ogni dimostrazione di A in una dimostrazione di B (dimostrazioni sintassi senso).

7 Denotazione e senso L interpretazione funzionale della logica La deduzione naturale Due diverse concezioni del significato dei connettivi logici: Realista (Tarski): il significato di un enunciato è dato dalle sue condizioni di verità l enunciato A B è vero quando se è vero A allora è vero B, cioè quando A è falso oppure B è vero (modelli semantica denotazione). Costruttivista (Heyting): il significato di un enunciato è dato dalle sue condizioni di asseribilità, cioè da cosa conta come una sua dimostrazione una dimostrazione di A B è una costruzione (ovvero, una funzione) che trasforma ogni dimostrazione di A in una dimostrazione di B (dimostrazioni sintassi senso).

8 Estensione ed intensione L interpretazione funzionale della logica La deduzione naturale Il concetto di funzione, a sua volta, può essere inteso in due modi: Estensionale: una funzione f da A a B va identificata col suo grafo in senso insiemistico, cioè l insieme di tutte le coppie ordinate x, y dove x A e y = f (x) B. Intensionale: una funzione f da A a B è una regola (una procedura, un algoritmo, un programma) che prescrive una computazione da effettuare per ottenere f (x) da x, cioè che indica come trasformare un qualunque elemento di A in un elemento di B.

9 Estensione ed intensione L interpretazione funzionale della logica La deduzione naturale Il concetto di funzione, a sua volta, può essere inteso in due modi: Estensionale: una funzione f da A a B va identificata col suo grafo in senso insiemistico, cioè l insieme di tutte le coppie ordinate x, y dove x A e y = f (x) B. Intensionale: una funzione f da A a B è una regola (una procedura, un algoritmo, un programma) che prescrive una computazione da effettuare per ottenere f (x) da x, cioè che indica come trasformare un qualunque elemento di A in un elemento di B.

10 La deduzione naturale L interpretazione funzionale della logica La deduzione naturale L oggetto di studio della deduzione naturale (e del calcolo dei sequenti) sono le dimostrazioni e non solo la dimostrabilità. Nella deduzione naturale la regola di introduzione per un connettivo ne definisce il significato, mostrando quali sono le condizioni di asseribilità di un enunciato che ha quel connettivo come connettivo principale. La deduzione naturale è dunque il tipo si sistema logico maggiormente connesso con l interpretazione funzionale della logica, su cui si basa la corrispondenza Curry-Howard.

11 Il sistema NJ Logica L interpretazione funzionale della logica La deduzione naturale Il sistema di deduzione naturale NJ è dato dalle seguenti regole di inferenza: x A x. B A B I A B B A E Le dimostrazioni sono costruite a partire da assunzioni (etichettate dalle variabili x, y, z,... ) utilizzando le regole I e E. In un applicazione della regola I, tutte le assunzioni della forma A etichettate dalla variabile x vengono scaricate: la conclusione non dipende più da esse.

12 L interpretazione funzionale della logica La deduzione naturale Il sistema NJ S x : A A ASS Γ, x : A B I Γ A B Γ A B A E Γ, B Γ B Γ, x : A B W Γ, x : A, y : A B C Γ, z : A B Figura: Deduzione naturale in stile sequente

13 Normalizzazione Logica L interpretazione funzionale della logica La deduzione naturale La normalizzazione è la procedura che elimina certe deviazioni nelle dimostrazioni. Tali deviazioni consistono in applicazioni ridondanti di regole: tipicamente, l introduzione di un connettivo seguita immediatamente da un eliminazione di quello stesso connettivo. Le dimostrazioni normali hanno tutte la stessa forma (sono scomponibili in una parte analitica e in un a parte sintetica) e godono di importanti proprietà, tra cui la proprietà della sottoformula.

14 Regole di conversione L interpretazione funzionale della logica La deduzione naturale Una dimostrazione viene ridotta in forma normale mediante la ripetuta applicazione di certe regole di riscrittura, dette regole di conversione. Nel caso di NJ abbiamo quest unica regola: -conv: D 1 A A x D 2 B x I A B E B D 1 A D 2 B (la sottodimostrazione D 1 viene sostituita al posto di ognuna delle 0 o più occorrenze di A etichettate con x)

15 Contenuto Logica Il λ-calcolo I sistemi di tipi 1 Logica L interpretazione funzionale della logica La deduzione naturale 2 Il λ-calcolo I sistemi di tipi 3

16 Il λ-calcolo Logica Il λ-calcolo I sistemi di tipi Il λ-calcolo, nato come teoria generale delle funzioni, oggi è uno dei principali modelli di calcolo (insieme alla teoria della ricorsività e alle macchine di Turing), ovvero quegli insiemi di metodologie, modelli e teorie formali attraverso cui viene spiegato ed analizzato il concetto generale di computazione. Inoltre, grazie al suo misto di potenza espressiva e semplicità sintattica, esso funge da linguaggio paradigmatico di programmazione (soprattutto nel caso dei linguaggi di programmazione funzionale).

17 La λ-notazione Logica Il λ-calcolo I sistemi di tipi Gli oggetti studiati dal λ-calcolo sono i λ-termini, costruiti a partire da variabili mediante le seguenti operazioni: Astrazione: a partire dal termine t si può formare il termine λx. t astraendo dalla variabile x (di cui t contiene 0 o più occorrenze). Il termine λx. t rappresenta la funzione che, per ogni x, applicata a x dà come risultato t. Applicazione: a partire dai termini t e s si può formare il termine ts. Il termine ts rappresenta l applicazione della funzione t all argomento s.

18 La β-riduzione Logica Il λ-calcolo I sistemi di tipi La computazione (o β-riduzione) di un λ-termine ha luogo applicando ripetutamente ai suoi sottotermini della forma (λx. t)s (chiamati redex, ossia espressioni riducibili ) la seguente regola di riscrittura, detta regola di β-conversione: (λx. t)s t[s/x] Un passo di computazione dunque consiste semplicemente nella sostituzione dell argomento s al posto della variabile x nel corpo della funzione λx. t (cioè in t).

19 Programmare col λ-calcolo Il λ-calcolo I sistemi di tipi Per ogni n N, il numerale di Church n che rappresenta n è definito così: n λx. λy. x n y (t n s denota l applicazione di t a s iterata n volte). La funzione (il programma) che calcola il successore di un numerale di Church è definita così: Un esempio di computazione: succ λn. λx. λy. x(nxy) succ 1 succ λw. λz. wz λx. λy. x((λw. λz. wz)xy) λx. λy. x((λz. xz)y) λx. λy. x(xy) 2

20 Tipi di dati Logica Il λ-calcolo I sistemi di tipi Un tipo di dati è una classe di dati che hanno lo stesso comportamento computazionale. Per esempio, Int è il tipo degli interi, e Bool è il tipo dei booleani. Se A e B sono tipi, il tipo funzione A B rappresenta lo spazio delle funzioni da A a B. Così, Int Bool è il tipo di un programma che prende come input un intero e dà come output un booleano (per esempio il programma che calcola se un numero è primo oppure no). Il tipo di un programma ne costituisce dunque la specifica in un senso molto basilare. Questa permette di farlo interagire con altri programmi in modo coerente a prescindere dalla conoscenza del suo contenuto (il programma è un modulo, e il suo tipo è l interfaccia del modulo).

21 Il type-checking Logica Il λ-calcolo I sistemi di tipi Un sistema di tipi è una classificazione delle espressioni di un linguaggio di programmazione in base a tipi di dati, la quale serve a garantire che durante l esecuzione di un programma non si verifichino certi errori di natura molto basilare, gli errori di tipo. Essi avvengono quando si fanno interagire due programmi con tipi incompatibili (per esempio quando si usa l output di un programma di tipo Int Bool come input di un programma di tipo Int Int). Questo obiettivo è conseguito definendo delle regole di type-checking, che servono a calcolare i tipi delle espressioni che occorrono in un programma e a verificare che non ci siano delle discordanze tra essi.

22 Il λ-calcolo tipato Logica Il λ-calcolo I sistemi di tipi È possibile arricchire il λ-calcolo con un sistema di tipi, ottenendo il λ-calcolo tipato, in cui a ciascun λ-termine viene associato un tipo (scelto tra i tipi atomici e quelli formati a partire da questi mediante i costruttori di tipo, ad es. ). Un giudizio di tipo è un espressione della forma x 1 : A 1,..., x n : A n t : B Il suo significato è che, assumendo che le variabili x 1,..., x n (che eventualmente occorrono libere in t) siano rispettivamente di tipo A 1,..., A n, il λ-termine t è di tipo B. Una derivazione di tipo è una derivazione costruita mediante le regole di type-checking; essa corrisponde alla costruzione del λ-termine con cui si conclude, e all assegnazione a questo di un tipo conformemente con esse.

23 Il λ-calcolo I sistemi di tipi Il λ-calcolo tipato semplice λβ x : A x : A VAR Γ, x : A t : B Γ λx. t : A B ABS Γ t : A B s : A APP Γ, ts : B Γ t : B Γ, x : A t : B ENV-W Γ, x : A, y : A t : B Γ, z : A t[z/x, z/y] : B ENV-C Figura: Regole di type-checking per λβ

24 La β-riduzione in λβ Il λ-calcolo I sistemi di tipi La β-riduzione nel λ-calcolo tipato semplice è sostanzialmente immutata; ma ora può esser meglio analizzata come trasformazione delle derivazioni di tipo: β-conv: Γ, x : A D 1 t : B ABS λx. t : A B (λx. t)s : B D 2 s : A APP Γ, D 1 [D 2 /x] t[s/x] : B (la notazione D 1 [D 2 /x] rappresenta la derivazione D 1 in cui tutte le (eventuali) assunzioni etichettate con x sono state sostituite dalla derivazione D 2 avente conclusione s : A)

25 Contenuto Logica 1 Logica L interpretazione funzionale della logica La deduzione naturale 2 Il λ-calcolo I sistemi di tipi 3

26 Nascita della corrispondenza Curry-Howard si articola, sia concettualmente che storicamente, nei seguenti quattro punti: 1 Interpretazione funzionale della logica, o interpretazione BHK (Brouwer-Heyting-Kolmogorov). 2 Corrispondenza tra formule e tipi (logica combinatoria di Curry; interpretazione Dialectica di Gödel). 3 Corrispondenza tra eliminazione del taglio (normalizzazione) e β-riduzione (Tait). 4 Corrispondenza tra dimostrazioni e λ-termini (Howard). La corrispondenza che sussiste non solo tra dimostrazioni e λ-termini, ma anche tra le operazioni che si possono svolgere su di essi (normalizzazione e β-riduzione), permette di individuare un vero e proprio isomorfismo:

27 Nascita della corrispondenza Curry-Howard si articola, sia concettualmente che storicamente, nei seguenti quattro punti: 1 Interpretazione funzionale della logica, o interpretazione BHK (Brouwer-Heyting-Kolmogorov). 2 Corrispondenza tra formule e tipi (logica combinatoria di Curry; interpretazione Dialectica di Gödel). 3 Corrispondenza tra eliminazione del taglio (normalizzazione) e β-riduzione (Tait). 4 Corrispondenza tra dimostrazioni e λ-termini (Howard). La corrispondenza che sussiste non solo tra dimostrazioni e λ-termini, ma anche tra le operazioni che si possono svolgere su di essi (normalizzazione e β-riduzione), permette di individuare un vero e proprio isomorfismo:

28 Nascita della corrispondenza Curry-Howard si articola, sia concettualmente che storicamente, nei seguenti quattro punti: 1 Interpretazione funzionale della logica, o interpretazione BHK (Brouwer-Heyting-Kolmogorov). 2 Corrispondenza tra formule e tipi (logica combinatoria di Curry; interpretazione Dialectica di Gödel). 3 Corrispondenza tra eliminazione del taglio (normalizzazione) e β-riduzione (Tait). 4 Corrispondenza tra dimostrazioni e λ-termini (Howard). La corrispondenza che sussiste non solo tra dimostrazioni e λ-termini, ma anche tra le operazioni che si possono svolgere su di essi (normalizzazione e β-riduzione), permette di individuare un vero e proprio isomorfismo:

29 Nascita della corrispondenza Curry-Howard si articola, sia concettualmente che storicamente, nei seguenti quattro punti: 1 Interpretazione funzionale della logica, o interpretazione BHK (Brouwer-Heyting-Kolmogorov). 2 Corrispondenza tra formule e tipi (logica combinatoria di Curry; interpretazione Dialectica di Gödel). 3 Corrispondenza tra eliminazione del taglio (normalizzazione) e β-riduzione (Tait). 4 Corrispondenza tra dimostrazioni e λ-termini (Howard). La corrispondenza che sussiste non solo tra dimostrazioni e λ-termini, ma anche tra le operazioni che si possono svolgere su di essi (normalizzazione e β-riduzione), permette di individuare un vero e proprio isomorfismo:

30 Nascita della corrispondenza Curry-Howard si articola, sia concettualmente che storicamente, nei seguenti quattro punti: 1 Interpretazione funzionale della logica, o interpretazione BHK (Brouwer-Heyting-Kolmogorov). 2 Corrispondenza tra formule e tipi (logica combinatoria di Curry; interpretazione Dialectica di Gödel). 3 Corrispondenza tra eliminazione del taglio (normalizzazione) e β-riduzione (Tait). 4 Corrispondenza tra dimostrazioni e λ-termini (Howard). La corrispondenza che sussiste non solo tra dimostrazioni e λ-termini, ma anche tra le operazioni che si possono svolgere su di essi (normalizzazione e β-riduzione), permette di individuare un vero e proprio isomorfismo:

31 Nascita della corrispondenza Curry-Howard si articola, sia concettualmente che storicamente, nei seguenti quattro punti: 1 Interpretazione funzionale della logica, o interpretazione BHK (Brouwer-Heyting-Kolmogorov). 2 Corrispondenza tra formule e tipi (logica combinatoria di Curry; interpretazione Dialectica di Gödel). 3 Corrispondenza tra eliminazione del taglio (normalizzazione) e β-riduzione (Tait). 4 Corrispondenza tra dimostrazioni e λ-termini (Howard). La corrispondenza che sussiste non solo tra dimostrazioni e λ-termini, ma anche tra le operazioni che si possono svolgere su di essi (normalizzazione e β-riduzione), permette di individuare un vero e proprio isomorfismo:

32 L isomorfismo Curry-Howard DEDUZIONE NATURALE λ-calcolo TIPATO formule dimostrazioni normalizzazione tipi λ-termini β-riduzione

33 L isomorfismo Curry-Howard DEDUZIONE NATURALE λ-calcolo TIPATO formule dimostrazioni normalizzazione tipi λ-termini β-riduzione

34 L isomorfismo Curry-Howard DEDUZIONE NATURALE λ-calcolo TIPATO formule dimostrazioni normalizzazione tipi λ-termini β-riduzione

35 L isomorfismo Curry-Howard DEDUZIONE NATURALE λ-calcolo TIPATO formule dimostrazioni normalizzazione tipi λ-termini β-riduzione

36 La decorazione: dalle regole di NJ... x : A A ASS Γ, x : A B Γ A B I Γ A B A E Γ, B Γ B Γ, x : A B W Γ, x : A, y : A B Γ, z : A B C Figura: Il sistema NJ S

37 ... alle regole di type-checking per λβ x : A x : A ASS Γ, x : A t : B Γ λx. t : A B I Γ t : A B s : A E Γ, ts : B Γ t : B Γ, x : A t : B W Γ, x : A, y : A t : B Γ, z : A t[z/x, z/y] : B C Figura: Sistema di assegnazione di termini per NJ S

38 Curry-Howard: importanza pratica Il paradigma proofs-as-programs permette una fruttuosa interazione tra logica e informatica (teorica), consistente nello scambio di risultati e metodi tra le due discipline: Sul versante della logica, ha fatto sì che essa venisse studiata sempre di più con gli strumenti della semantica denotazionale e della teoria delle categorie. In particolare, la semantica denotazionale (la quale modellizza il concetto di dimostrazione e non solo quello di dimostrabilità) è alla base della nascita della logica lineare. Sul versante dell informatica, ha comportato un maggior rigore nella progettazione dei linguaggi di programmazione, dovuto al fatto che questa è sempre più guidata da un sistema logico sottostante. Inoltre, alcune tra le proprietà fondamentali dei linguaggi di programmazione (per esempio, la loro complessità computazionale) possono essere studiate come proprietà dei sistemi logici corrispondenti.

39 Curry-Howard: importanza pratica Il paradigma proofs-as-programs permette una fruttuosa interazione tra logica e informatica (teorica), consistente nello scambio di risultati e metodi tra le due discipline: Sul versante della logica, ha fatto sì che essa venisse studiata sempre di più con gli strumenti della semantica denotazionale e della teoria delle categorie. In particolare, la semantica denotazionale (la quale modellizza il concetto di dimostrazione e non solo quello di dimostrabilità) è alla base della nascita della logica lineare. Sul versante dell informatica, ha comportato un maggior rigore nella progettazione dei linguaggi di programmazione, dovuto al fatto che questa è sempre più guidata da un sistema logico sottostante. Inoltre, alcune tra le proprietà fondamentali dei linguaggi di programmazione (per esempio, la loro complessità computazionale) possono essere studiate come proprietà dei sistemi logici corrispondenti.

40 Curry-Howard: importanza pratica Il paradigma proofs-as-programs permette una fruttuosa interazione tra logica e informatica (teorica), consistente nello scambio di risultati e metodi tra le due discipline: Sul versante della logica, ha fatto sì che essa venisse studiata sempre di più con gli strumenti della semantica denotazionale e della teoria delle categorie. In particolare, la semantica denotazionale (la quale modellizza il concetto di dimostrazione e non solo quello di dimostrabilità) è alla base della nascita della logica lineare. Sul versante dell informatica, ha comportato un maggior rigore nella progettazione dei linguaggi di programmazione, dovuto al fatto che questa è sempre più guidata da un sistema logico sottostante. Inoltre, alcune tra le proprietà fondamentali dei linguaggi di programmazione (per esempio, la loro complessità computazionale) possono essere studiate come proprietà dei sistemi logici corrispondenti.

41 Curry-Howard: rilevanza filosofica 1 I sistemi logici a bassa complessità (tra cui principalmente le logiche leggere, tutte basate sulla logica lineare) permettono di dare una caratterizzazione puramente logica, attraverso la corrispondenza Curry-Howard, di alcune classi di complessità tra cui la classe P dei problemi algoritmici risolvibili in tempo polinomiale (ovvero in modo efficiente) La nostra via via maggiore comprensione della classe P ci avvicina alla soluzione di uno dei più affascinanti problemi del millennio, il problema P? = NP La soluzione di questo problema è strettamente collegata alla realizzabilità di una versione limitata del programma di Hilbert (cfr. lettera di Gödel a Von Neumann, 1956).

42 Curry-Howard: rilevanza filosofica 1 I sistemi logici a bassa complessità (tra cui principalmente le logiche leggere, tutte basate sulla logica lineare) permettono di dare una caratterizzazione puramente logica, attraverso la corrispondenza Curry-Howard, di alcune classi di complessità tra cui la classe P dei problemi algoritmici risolvibili in tempo polinomiale (ovvero in modo efficiente) La nostra via via maggiore comprensione della classe P ci avvicina alla soluzione di uno dei più affascinanti problemi del millennio, il problema P? = NP La soluzione di questo problema è strettamente collegata alla realizzabilità di una versione limitata del programma di Hilbert (cfr. lettera di Gödel a Von Neumann, 1956).

43 Curry-Howard: rilevanza filosofica 1 I sistemi logici a bassa complessità (tra cui principalmente le logiche leggere, tutte basate sulla logica lineare) permettono di dare una caratterizzazione puramente logica, attraverso la corrispondenza Curry-Howard, di alcune classi di complessità tra cui la classe P dei problemi algoritmici risolvibili in tempo polinomiale (ovvero in modo efficiente) La nostra via via maggiore comprensione della classe P ci avvicina alla soluzione di uno dei più affascinanti problemi del millennio, il problema P? = NP La soluzione di questo problema è strettamente collegata alla realizzabilità di una versione limitata del programma di Hilbert (cfr. lettera di Gödel a Von Neumann, 1956).

44 Bibliografia Logica [1] Jean Gallier. Constructive logics Part I: A tutorial on proof systems and typed -calculi. Theoretical Computer Science, 110: , [2] Jean-Yves Girard, Paul Taylor, e Yves Lafont. Proofs and types. Cambridge University Press, [3] Benjamin C. Pierce. Types and Programming Languages. The MIT Press, [4] Steven Rudich. Complexity Theory: From Gödel to Feynman. In Computational Complexity. A cura di Steven Rudich e Avi Wigderson. American Mathematical Society, [5] Philip Wadler. Proofs are Programs: 19th Century Logic and 21st Century Computing. Reperibile su

Aspetti computazionali della logica lineare

Aspetti computazionali della logica lineare Proof-nets, λ-calcolo e complessità computazionale implicita 26 febbraio 2009 Relatore: Prof. Stefano Guerrini Correlatore: Prof.ssa Adele Morrone Contenuto Introduzione 1 Introduzione 2 Corrispondenza

Dettagli

Dimostrazioni e programmi come oggetti geometrici. Simone Martini

Dimostrazioni e programmi come oggetti geometrici. Simone Martini Dimostrazioni e programmi come oggetti geometrici Simone Martini Dipartimento di Scienze dell Informazione Alma Mater Studiorum Università di Bologna 1 Dimostrazioni alla Hilbert Assiomi, che caratterizzano

Dettagli

Logica proposizionale

Logica proposizionale Definire un linguaggio formale Logica proposizionale Sandro Zucchi 2013-14 Definiamo un linguaggio formale LP (che appartiene a una classe di linguaggi detti linguaggi della logica proposizionale) Per

Dettagli

Logica proposizionale

Logica proposizionale Logica proposizionale Proposizione: frase compiuta che è sempre o vera o falsa. Connettivi Posti in ordine di precedenza: not, and, or, implica, doppia implicazione Sintassi Le proposizioni sono costituite

Dettagli

Valutazione Lazy. Prefazione alla lezione

Valutazione Lazy. Prefazione alla lezione Valutazione Lazy Aniello Murano Università degli Studi di Napoli Federico II 1 Prefazione alla lezione Nella lezione precedente abbiamo introdotto i linguaggi (funzionali) con tipi di ordine superiore.

Dettagli

Proposizioni e verità

Proposizioni e verità Proposizioni e verità Claudia Casadio Logica e Psicologia del Pensiero Laurea Triennale - Parte Istituzionale A.A. 2007-08 Contents 1 Proposizione.......................................... 3 2 Verità...............................................

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 8 Modelli, Formule Valide, Conseguenza Logica Proof Systems Regole di inferenza per Calcolo Proposizionale

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

November 13, sta ad indicare che la formula B dipende dalle assunzioni occorrenti nell insieme X.

November 13, sta ad indicare che la formula B dipende dalle assunzioni occorrenti nell insieme X. DEDUZIONE NTURLE November 3, 2006 Le regole di inferenza consistono di regole di introduzione (I) e regole di eliminazione (E) per ogni costante logica e per il simbolo del falso, se occorre nel linguaggio.

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1 Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1 Esercizio 1.12 Per dimostrare che per ogni funzione esiste una formula in cui compaiono le variabili tale che la corrispondente

Dettagli

Linguaggi di programmazione e astrazione

Linguaggi di programmazione e astrazione Linguaggi di programmazione e astrazione i linguaggi di programmazione ad alto livello moderni sono il più potente strumento di astrazione messo a disposizione dei programmatori che possono, con un solo

Dettagli

Logica: materiale didattico

Logica: materiale didattico Logica: materiale didattico M. Cialdea Mayer. Logica (dispense): http://cialdea.dia.uniroma3.it/teaching/logica/materiale/dispense-logica.pdf Logica dei Predicati (Logica per l Informatica) 01: Logica

Dettagli

Il Pensiero Computazionale: dai Concetti Generali alla Programmazione Software

Il Pensiero Computazionale: dai Concetti Generali alla Programmazione Software Il Pensiero Computazionale: dai Concetti Generali alla Programmazione Software Prof. Marco Bernardo Università di Urbino Dipartimento di Scienze Pure e Applicate Sezione di Scienze e Tecnologie dell Informazione

Dettagli

Silvia Crafa

Silvia Crafa Introduzione ai Sistemi di Tipi Silvia Crafa silvia@dsi.unive.it Come nascono i tipi in informatica Cos è un tipo? Perché servono i tipi nei linguaggi di programmazione? Vediamo come nascono i tipi partendo

Dettagli

Ragionamento Automatico Calcolo dei Sequenti. Lezione 5 Ragionamento Automatico Carlucci Aiello, 2004/05 Lezione 5 0. Il calcolo dei sequenti

Ragionamento Automatico Calcolo dei Sequenti. Lezione 5 Ragionamento Automatico Carlucci Aiello, 2004/05 Lezione 5 0. Il calcolo dei sequenti Il calcolo dei sequenti Ragionamento Automatico Calcolo dei Sequenti Materiale cartaceo distribuito in aula Il calcolo dei sequenti nella logica proposizionale Il calcolo dei sequenti nella logica predicativa

Dettagli

Sistemi di tipo e analisi statica

Sistemi di tipo e analisi statica Sistemi di tipo 1 Sistemi di tipo e analisi statica le tecniche di analisi statica approssimano (a tempo di compilazione) il comportamento di un programma (a tempo di esecuzione) con l obiettivo di scoprire

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

mio indirizzo 1 Sarò lieto di ricevere commenti o segnalazioni di errori presso il

mio indirizzo 1 Sarò lieto di ricevere commenti o segnalazioni di errori presso il INTRODUZIONE Purtroppo questo libro è rappresentato molto più dal sottotitolo che dal titolo. Infatti è una semplice trascrizione di miei appunti per vari corsi di logica che ho tenuto in passato all Università

Dettagli

La matematica intuizionista

La matematica intuizionista La matematica intuizionista Francesco Paoli Filosofia della scienza, 2016-17 Francesco Paoli (Filosofia della scienza, 2016-17) La matematica intuizionista 1 / 14 Henri Poincaré (1854-1912) Francesco Paoli

Dettagli

C1: L C1 C2: L C2 C: C1 C2

C1: L C1 C2: L C2 C: C1 C2 Abbiamo visto Gli agenti logici applicano inferenze a una base di conoscenza per derivare nuove informazioni. Concetti base della logica: sintassi: struttura formale delle sentenze semantica: verita` di

Dettagli

Introduzione alla Programmazione Funzionale

Introduzione alla Programmazione Funzionale Introduzione alla Programmazione Funzionale April 27, 2017 Paradigmi di Programmazione Programmi sviluppabili usando diversi paradigmi Imperativo: computazione come modifica di stato Funzionale: computazione

Dettagli

Intelligenza Artificiale. Logica proposizionale: calcolo automatico

Intelligenza Artificiale. Logica proposizionale: calcolo automatico Intelligenza Artificiale Logica proposizionale: calcolo automatico Marco Piastra Logica formale (Parte 3) - Parte 3 Calcolo automatico Forme normali ed a clausole Risoluzione e refutazione Forward chaining

Dettagli

Parole note, nuovi significati: linguaggio, determinismo e infinito

Parole note, nuovi significati: linguaggio, determinismo e infinito Parole note, nuovi significati: linguaggio, determinismo e infinito Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario Filosofico

Dettagli

Introduzione alla logica

Introduzione alla logica Corso di Intelligenza Artificiale 2011/12 Introduzione alla logica iola Schiaffonati Dipartimento di Elettronica e Informazione Sommario 2 Logica proposizionale (logica di Boole) Logica del primo ordine

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 Linguaggi e Complessità : Lezione 1 Corso Fondamenti di Informatica 2 Marco Schaerf, 2009-2010 Linguaggi e Complessità : Lezione 1 1 Logica proposizionale Linguaggio matematico

Dettagli

UNIVERSITÀ DEGLI STUDI LA SAPIENZA CORSO DI STUDI IN INFORMATICA ESERCITAZIONI AL CORSO DI LOGICA MATEMATICA LOGICA PROPOSIZIONALE

UNIVERSITÀ DEGLI STUDI LA SAPIENZA CORSO DI STUDI IN INFORMATICA ESERCITAZIONI AL CORSO DI LOGICA MATEMATICA LOGICA PROPOSIZIONALE UNIVERSITÀ DEGLI STUDI LA SAPIENZA CORSO DI STUDI IN INFORMATICA ESERCITAZIONI AL CORSO DI LOGICA MATEMATICA LOGICA PROPOSIZIONALE TAVOLE DI VERITÀ, COLETEZZA VERO-FUNZIONALE Esercizio 1. Calcola le tavole

Dettagli

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) DISPENSA N. 4 Sommario. Dimostriamo il Teorema di Completezza per il Calcolo dei Predicati del I ordine. 1. Teorema di Completezza Dimostriamo il Teorema

Dettagli

Logica proposizionale

Logica proposizionale Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Logica proposizionale Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli

Dettagli

Logiche devianti e logiche substrutturali: aspetti filosofici. C. Dalla Pozza (Università di Lecce)

Logiche devianti e logiche substrutturali: aspetti filosofici. C. Dalla Pozza (Università di Lecce) Logiche devianti e logiche substrutturali: aspetti filosofici C. Dalla Pozza (Università di Lecce) [Tra quadre i commenti: presentiamo qui lo schema della conferenza di Carlo Dalla Pozza. E' possibile

Dettagli

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29 Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Semantica dei giochi

Semantica dei giochi Semantica dei linguaggi, analisi dei programmi e verifica Semantica dei giochi DI MAURO PICCOLO mrpiccol@studenti.math.unipd.it Introduzione: La semantica formale dei linguaggi di programmazione e un area

Dettagli

CALCOLO PROPOSIZIONALE

CALCOLO PROPOSIZIONALE CALCOLO PROPOSIZIONALE UN PROBLEMA DI DEDUZIONE LOGICA (da un test d ingresso) Tre amici, Antonio, Bruno e Corrado, sono incerti se andare al cinema. Si sa che: Se Corrado va al cinema, allora ci va anche

Dettagli

Verifica di programmi

Verifica di programmi Verifica di programmi Informalmente, un programma è corretto se l output prodotto è quello atteso rispetto all input. La correttezza dei programmi può essere espressa mediante formule per la correttezza

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione (con linguaggio di riferimento C++) Gianfranco Rossi Università di Parma Dip. di Matematica e Informatica 43100 Parma (Italy) gianfranco.rossi@unipr.it Indice 1 Introduzione

Dettagli

Introduzione ad alcuni sistemi di logica modale

Introduzione ad alcuni sistemi di logica modale Introduzione ad alcuni sistemi di logica modale Laura Porro 16 maggio 2008 1 Il calcolo proposizionale Prendiamo come primitivi i simboli del Calcolo Proposizionale (PC) tradizionale a due valori 1 : un

Dettagli

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi Sommario Codifica dei dati Macchina Astratta Definizioni Esempi 1 2 Codifica dei dati È possibile introdurre la teoria della computabilità facendo riferimento ad algoritmi che elaborano numeri naturali

Dettagli

Maiuscole e minuscole

Maiuscole e minuscole Maiuscole e minuscole Abilità interessate Distinguere tra processi induttivi e processi deduttivi. Comprendere il ruolo e le caratteristiche di un sistema assiomatico. Riconoscere aspetti sintattici e

Dettagli

In passato, occuparsi di informatica era sinonimo di programmare computer

In passato, occuparsi di informatica era sinonimo di programmare computer Programmare =? In passato, occuparsi di informatica era sinonimo di programmare computer attività poco stimolante, atto finale di un processo dove le fasi creative - analisi e progetto - sono già avvenute

Dettagli

Capitolo 8: Teoria della complessitá

Capitolo 8: Teoria della complessitá Capitolo 8: Teoria della complessitá 1 La Teoria della calcolabilitá considera aspetti qualitativi della soluzione di problemi. Distingue il calcolabile dal non calcolabile. La Teoria della complessitá

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini LOGICA DEL PRIMO ORDINE: PROOF SYSTEM Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini LOGICA DEL PRIMO ORDINE: RIASSUNTO Sintassi: grammatica libera da contesto (BNF), parametrica rispetto

Dettagli

Le aree dell informatica

Le aree dell informatica Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

Espressività e limitazioni delle grammatiche regolari

Espressività e limitazioni delle grammatiche regolari Espressività e limitazioni delle grammatiche regolari Vantaggi: Le grammatiche regolari consentono di esprimere una significativa classe di linguaggi: linguaggi con un numero di sequenze infinito grazie

Dettagli

Lambda Calcolo. Luca Abeni. May 16, 2017

Lambda Calcolo. Luca Abeni. May 16, 2017 Lambda Calcolo May 16, 2017 Lambda? (λ!) Definizione di funzione: sintassi differente rispetto ad applicazione In ML, fn x => e x: identificatore per il parametro formale e: espressione (sperabilmente

Dettagli

ELEMENTI DI LOGICA PER IL CORSO DI LAUREA IN MATEMATICA. Prof. Giangiacomo Gerla Dipartimento di Matematica ed Informatica. Università di Salerno

ELEMENTI DI LOGICA PER IL CORSO DI LAUREA IN MATEMATICA. Prof. Giangiacomo Gerla Dipartimento di Matematica ed Informatica. Università di Salerno ELEMENTI DI LOGICA PER IL CORSO DI LAUREA IN MATEMATICA Prof. Giangiacomo Gerla Dipartimento di Matematica ed Informatica Università di Salerno gerla@unisa.it II INTRODUZIONE Sotto il termine di logica

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Organizzazione strutturata

Organizzazione strutturata Organizzazione strutturata Evoluzione storica a.a. 2002-03 L. Borrelli 1 Complessità dei Sistemi di Elaborazione Caratteristica dei Sistemi di Elaborazione: Complessità Per trattare sistemi complessi è

Dettagli

Ragionamento Automatico Richiami di calcolo dei predicati

Ragionamento Automatico Richiami di calcolo dei predicati Richiami di logica del primo ordine Ragionamento Automatico Richiami di calcolo dei predicati (SLL: Capitolo 7) Sintassi Semantica Lezione 2 Ragionamento Automatico Carlucci Aiello, 2004/05Lezione 2 0

Dettagli

Informatica e Comunicazione Digitale Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione

Informatica e Comunicazione Digitale Crediti formativi 9. No, ma la frequenza è fortemente consigliata Lingua di erogazione Principali informazioni sull insegnamento Titolo insegnamento Linguaggi di Programmazione Corso di studio Informatica e Comunicazione Digitale Crediti formativi 9 Denominazione inglese Programming Languages

Dettagli

Le aree dell informatica

Le aree dell informatica Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 6 Logica del Primo Ordine Motivazioni Sintassi Interpretazioni Formalizzazione pag. 1 Limiti del Calcolo Proposizionale Nella formalizzazione di enunciati dichiarativi,

Dettagli

Dispensa di Informatica II.1

Dispensa di Informatica II.1 ALGORITMI La dispensa di seguito proposta si pone come tutorial per poter porre le basi per la realizzazione di algoritmi che poi potranno eventualmente essere sviluppati in moduli software con metodologia

Dettagli

Linguaggi e Ambienti di Programmazione

Linguaggi e Ambienti di Programmazione Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica del Primo Ordine: Motivazioni, Sintassi e Interpretazioni Logica per la Programmazione Lezione 7 Formule Valide, Conseguenza Logica Proof System per la Logica del Primo Ordine Leggi per i Quantificatori

Dettagli

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Una (brevissima) introduzione alla logica lineare Relazione per il seminario Selp del

Una (brevissima) introduzione alla logica lineare Relazione per il seminario Selp del Una (brevissima) introduzione alla logica lineare Relazione per il seminario Selp del 12-06-09 Paolo Pistone 1 L' inazione dei connettivi Che dierenza c'è tra un enunciato della vita pratica come Con un

Dettagli

Università di Pisa Facoltà di Scienze Matematiche Fisiche e Naturali

Università di Pisa Facoltà di Scienze Matematiche Fisiche e Naturali Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica (classe 23/S: Informatica) Corso di Laurea Specialistica in Tecnologie Informatiche (classe 23/S: Informatica)

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algebra di Boole Stefano Cagnoni Algebra di Boole L algebra

Dettagli

Semantica proposizionale. Unit 2, Lez 3 e 4 Corso di Logica

Semantica proposizionale. Unit 2, Lez 3 e 4 Corso di Logica Semantica proposizionale Unit 2, Lez 3 e 4 Corso di Logica Sommario Semantica dei connettivi Costruzione delle tavole di verità Tautologie, contraddizioni e contingenze Semantica delle forme argomentative

Dettagli

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3

Dettagli

Calcolo dei sequenti I. Introduzione.

Calcolo dei sequenti I. Introduzione. Calcolo dei sequenti I. Introduzione. giovanni.casini@gmail.com 5 Maggio 2009 Introduzione Il calcolo dei sequenti è stato introdotto nel 1935 da Gerhard Gentzen in Untersuchungen über das logische Schliessen

Dettagli

Studio degli algoritmi

Studio degli algoritmi COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi

Dettagli

Calcolo di equilibri auto-confermanti

Calcolo di equilibri auto-confermanti Calcolo di equilibri auto-confermanti nei giochi in forma estesa con due giocatori Fabio Panozzo Politecnico di Milano 3 maggio 2010 Fabio Panozzo (Politecnico di Milano) Calcolo di equilibri auto-confermanti

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 2 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 09 Marzo 2010 Controlli automatici

Dettagli

Concetti di base sugli automi e sui linguaggi formali

Concetti di base sugli automi e sui linguaggi formali Concetti di base sugli automi e sui linguaggi formali Andrea Burattin 18 marzo 2005 Sommario Piccolo insieme di concetti sul funzionamento degli automi (a stati finiti, a pila,...), delle grammatiche libere

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 6 Logica del Primo Ordine Motivazioni Sintassi Interpretazioni Formalizzazione A. Corradini e F.Levi Dip.to Informatica Logica per la Programmazione a.a. 2015/16 pag.

Dettagli

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione Informatica 3 Informatica 3 LEZIONE 1: Introduzione Lezione 1- Modulo 1 Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Introduzione al corso Politecnico di Milano - Prof. Sara Comai

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi

Dettagli

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or )

Logica proposizionale classica. Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or ) Logica proposizionale classica Studia il comportamento dei connettivi proposizionali quali ( And ) e ( Or ) Parte da una famiglia di enunciati atomici di cui non analizziamo la struttura interna, che rappresentiamo

Dettagli

LOGICA DEL PRIMO ORDINE: MOTIVAZIONI, SINTASSI E INTERPRETAZIONI. Corso di Logica per la Programmazione A.A Andrea Corradini

LOGICA DEL PRIMO ORDINE: MOTIVAZIONI, SINTASSI E INTERPRETAZIONI. Corso di Logica per la Programmazione A.A Andrea Corradini LOGICA DEL PRIMO ORDINE: MOTIVAZIONI, SINTASSI E INTERPRETAZIONI Corso di Logica per la Programmazione A.A. 2013 Andrea Corradini LIMITI DEL CALCOLO PROPOSIZIONALE Nella formalizzazione di enunciati dichiarativi,

Dettagli

Alcune Tracce dei Precedenti Esami del Dottorato di Siena in Logica Matematica ed Informatica Teorica

Alcune Tracce dei Precedenti Esami del Dottorato di Siena in Logica Matematica ed Informatica Teorica Alcune Tracce dei Precedenti Esami del Dottorato di Siena in Logica Matematica ed Informatica Teorica Raccolti e curati da Luca Spada Indice 1 Temi 1 1.1 Logica Matematica.......................... 1 1.2

Dettagli

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale

Dettagli

Logiche descrittive Le logiche descrittive sono una famiglia di formalismi per la rappresentazione della conoscenza (KR) che descrivono ciò che è

Logiche descrittive Le logiche descrittive sono una famiglia di formalismi per la rappresentazione della conoscenza (KR) che descrivono ciò che è Logiche descrittive Le logiche descrittive sono una famiglia di formalismi per la rappresentazione della conoscenza (KR) che descrivono ciò che è noto in un dominio di applicazione definendo i concetti

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Scuola di Scienze e Tecnologie - Sezione di Informatica Università di Camerino Parte I Il concetto di Algoritmo Il

Dettagli

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

Programmazione Funzionale

Programmazione Funzionale Introduzione alla programmazione in un Programmazione Funzionale linguaggio funzionale Objective Caml di alto livello: un programma è una funzione; di tipo dichiarativo: il programmatore specifica che

Dettagli

Calcoli dei sequenti classici e lineare

Calcoli dei sequenti classici e lineare Calcoli dei sequenti classici e lineare Gianluigi Bellin November 5, 2009 Scheda per il compito 2, scadenza rinviata al marteedì 10 novembre 2009 1 Calcolo dei sequenti classico 1.1 Linguaggio ed interpretazione

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

METODI MATEMATICI PER L INFORMATICA

METODI MATEMATICI PER L INFORMATICA METODI MATEMATICI PER L INFORMATICA Tutorato Lezione 2 17/03/2016 Corso per matricole congrue a 1 Docente: Margherita Napoli Tutor: Amedeo Leo Applicazioni della logica proposizionale La logica ha una

Dettagli

Introduzione al Corso di Verifica Automatica dei Sistemi: Teoria e Applicazioni

Introduzione al Corso di Verifica Automatica dei Sistemi: Teoria e Applicazioni Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 1 Introduzione al Corso di Verifica Automatica dei Sistemi: Teoria e Applicazioni Angelo Montanari Dipartimento di Matematica e Informatica

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 06 Programmi e Oggetti Software Marzo 2010 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il

Dettagli

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd Fondamenti d Informatica: linguaggi formali Barbara Re, Phd Agenda } Introdurremo } La nozione di linguaggio } Strumenti per definire un linguaggio } Espressioni Regolari 2 Linguaggio } Da un punto di

Dettagli

PROGRAMMA PREVENTIVO

PROGRAMMA PREVENTIVO Settore Servizi Scolastici e Educativi PAGINA: 1 PROGRAMMA PREVENTIVO A.S. 2015/16 SCUOLA LICEO LINGUISTICO A. MANZONI DOCENTE: C. FRESCURA MATERIA: MATEMATICA Classe 5 Sezione B FINALITÀ DELLA DISCIPLINA

Dettagli

Marta Capiluppi Dipartimento di Informatica Università di Verona

Marta Capiluppi Dipartimento di Informatica Università di Verona Marta Capiluppi marta.capiluppi@univr.it Dipartimento di Informatica Università di Verona Algebra di Boole Opera con i soli valori di verità 0 o 1 (variabili booleane o logiche) L'algebra booleana risulta

Dettagli

Logica e Informatica: cosa i calcolatori possono e non possono fare. Simone Martini

Logica e Informatica: cosa i calcolatori possono e non possono fare. Simone Martini Logica e Informatica: cosa i calcolatori possono e non possono fare Simone Martini Dipartimento di Scienze dell Informazione Alma Mater Studiorum Università di Bologna 1 io Simone Martini Professore di

Dettagli

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE

Corso di Linguaggi e Traduttori 1 AA GRAMMATICHE Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla V, V, P S ( ) N T, dove: V N e l insieme dei simboli non

Dettagli

Esercitazioni per il corso di Logica Matematica

Esercitazioni per il corso di Logica Matematica Esercitazioni per il corso di Logica Matematica Luca Motto Ros 02 marzo 2005 Nota importante. Queste pagine contengono appunti personali dell esercitatore e sono messe a disposizione nel caso possano risultare

Dettagli

CALCOLO PROPOSIZIONALE. Corso di Logica per la Programmazione Andrea Corradini

CALCOLO PROPOSIZIONALE. Corso di Logica per la Programmazione Andrea Corradini CALCOLO PROPOSIZIONALE Corso di Logica per la Programmazione Andrea Corradini andrea@di.unipi.it UN PROBLEMA DI DEDUZIONE LOGICA (da un test d ingresso) Tre amici, Antonio, Bruno e Corrado, sono incerti

Dettagli

Fondamenti d Informatica: Linguaggio While. Barbara Re, Phd

Fondamenti d Informatica: Linguaggio While. Barbara Re, Phd Fondamenti d Informatica: Linguaggio While Barbara Re, Phd Il linguaggio WHILE } La computabilità come supporto ai moderni linguaggi di programmazione } Si può generalizzare rispetto ad una vasta famiglia

Dettagli

Esercizi di logica. Ivan Valbusa 5 dicembre 2012

Esercizi di logica. Ivan Valbusa 5 dicembre 2012 Esercizi di logica Ivan Valbusa 5 dicembre 2012 Gli esercizi proposti di seguito coprono solo una piccola parte del programma del corso. Sono mediamente più difficili di quelli presenti sul manuale di

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

PROGRAMMA CONSUNTIVO

PROGRAMMA CONSUNTIVO PAGINA: 1 PROGRAMMA CONSUNTIVO A.S.2014-2015 SCUOLA Liceo Linguistico Manzoni DOCENTE: Marina Barbàra MATERIA: Matematica e Informatica Classe 1 Sezione A OBIETTIVI: le parti sottolineate sono da considerarsi

Dettagli

Modelli e Metodi per la Simulazione (MMS)

Modelli e Metodi per la Simulazione (MMS) Modelli e Metodi per la Simulazione (MMS) adacher@dia.uniroma3.it Programma La simulazione ad eventi discreti, è una metodologia fondamentale per la valutazione delle prestazioni di sistemi complessi (di

Dettagli