- Oggetto:
- Oggetto:
Logica per l'Informatica
- Oggetto:
Logic for Computer Science
- Oggetto:
Anno accademico 2022/2023
- Codice dell'attività didattica
- INF0003
- Docente
- Luca Luigi Paolini (Docente)
- Corso di studi
- [008707] Laurea in Informatica
- Anno
- 3° anno
- Periodo didattico
- Secondo semestre
- Tipologia
- A scelta dello studente
- Crediti/Valenza
- 6 CFU - Numero di ore - Number of hours: 48 (in aula)
- SSD dell'attività didattica
- MAT/01 - logica matematica
- Modalità di erogazione
- Tradizionale
- Lingua di insegnamento
- Italiano/Inglese
- Modalità di frequenza
- Facoltativa
- Tipologia d'esame
- Orale
- Prerequisiti
-
Conoscenze elementari ed informali di logica, teoria degli insiemi e matematica discreta. Conoscenze elementari di linguaggi formali.
Insegnamenti propedeutici*:- Logica e Matematica Discreta
- Linguaggi Formali e Compilatori
* Che forniscono le competenze attese in ingresso.
Basic knowledge of informal logic, Set Theory and discrete mathematics. Basic knowledge of formal languages.
Preparatory Courses*:- Logics and discrete mathematics
- Formal Languages and Compilers
* Providing the expected entry skills
- Oggetto:
Sommario insegnamento
- Oggetto:
Obiettivi formativi
La laurea in Informatica ha l'obiettivo di formare figure professionali dotate di un solido nucleo scientifico e metodologico, arricchito con un'ampia preparazione tecnologica. In questo quadro, il corso fornisce agli studenti gli strumenti formali per il ragionamento rigoroso sia nel contesto informale dei linguaggi naturali che in quelli assistiti dal calcolatore. Sono affrontati approcci algoritmici per l'automazione di verifiche di soddisfacibilità e validità. In particolare, sono enfatizzate le potenzialità della logica come strumento per una descrizione rigorosa della specifica di un programma e per porre le basi della verifica automatica di proprietà di programmi.Gli obiettivi di questo insegnamento fanno parte degli Obiettivi formativi specifici del CdS in Informatica (L31). L’insegnamento sta tra gli insegnamenti a scelta libera.
The degree in Computer Science aims to train professionals with a solid scientific and methodological core, enriched by a broad technological preparation. In this framework, the course provides students with the formal tools for rigorous reasoning both in the informal context of natural and computer-aided languages. Algorithmic approaches for the automation of satisfiability and validity checks are addressed. In particular, the potential of logic as a tool for a rigorous description of the specification of a program and for laying the foundations for the automatic verification of program properties is emphasised.The training objectives of this course are part of the training objectives of the CdS in Informatica (L31) and the course is among the non-mandatory courses.
- Oggetto:
Risultati dell'apprendimento attesi
Il irsultato atteso è l'acquisizione dei principi fondamentali della logica formale ed in particolare, la capacità di sviluppare dimostrazioni in modo autonomo. Inoltre, apprende le idee alla base delle tecniche disponibili per il suo utilizzo per la specifica e la verifica della rappresentazione dei dati, dei programmi.
CONOSCENZA E CAPACITÀ DI COMPRENSIONE. Sintassi e semantica della logica classica. Procedure di decisione utili alla caratterizzazione di soddisfacibilità e validità delle formule.
CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE. Capacità di impostare dimostrazioni corrette delle proprietà del software. Capacità di formalizzare proprietà da verificare in maniera automatica.
AUTONOMIA DI GIUDIZIO. Acquisizione dei criteri di base per stabilire la correttezza della formalizzazione di un problema e della sua validità.
ABILITÀ COMUNICATIVE. Capacità di base su come impostare un ragionamento corretto e fluente.
CAPACITÀ DI APPRENDIMENTO. Acquisizione di capacità autonome di apprendimento e di autovalutazione della propria preparazione, teorica e pratica.
Student acquires the fundamental principles of formal logic and in particular, the ability to develop proofs independently. In addition, he learns the ideas behind the techniques available for its use for the specification and verification of data representation, programs.
KNOWLEDGE AND UNDERSTANDING. Syntax and semantics of classical logic. Decision procedures useful for the characterization of satisfiability and validity of formulas.
ABILITY TO APPLY KNOWLEDGE AND UNDERSTANDING. Ability to set up correct demonstrations of software properties. Ability to formalize properties to be verified automatically.
AUTONOMY OF JUDGMENT. Acquisition of the basic criteria to establish the soundness of a formalization its validity.
COMMUNICATION SKILLS. Basic skills on how to set up correct and fluent reasoning.
LEARNING ABILITY. Acquisition of autonomous learning skills and self-assessment of one's own theoretical and practical preparation.
- Oggetto:
Modalità di insegnamento
Le lezioni sono erogate in maniera tradizionale, ossia frontalmente. La presenza è seriamente consigliata (siccome statisticamente incrementa significativamente le possibilità di superare l'esame). La proiezione di diapositive viene usata per tracciare i contenuti, e queste vengono ampiamente integrate con dettagli su lavagna e/o tablet (ad esempio per le dimostrazioni).
Lectures are delivered in the traditional way, i.e. face-to-face. Attendance is seriously recommended (since statistically it significantly increases the chances of passing the exam). Slideshow is used to outline lecture contents, and these are extensively supplemented with details on whiteboard and/or tablet (e.g. for demonstrations).
- Oggetto:
Modalità di verifica dell'apprendimento
Esame orale in presenza. Lo studente viene interrogato sui contenuti del corso: (i) teoremi e dimostrazioni; (ii) algoritmi e proprietà; (iii) esercizi sugli approcci presentati.Oral exam in presence. The student is questioned about the contents of the course: (i) theorems and their proofs; (ii) algorithms and their properties; (iii) exercises on the presented approaches.- Oggetto:
Programma
- Linguaggio proposizionale, connettivi e basi.
- Metalinguaggio, induzione strutturale e semantica alla Tarski, interpretazioni.
- Equivalenze e sostituzione, SAT, UNSAT, tautologie e falsificabili.
- Tableaux: terminazione, correttezza e completezza.
- Sistemi deduttivi, Gentzen e corrispondenza con i tableaux.
- CNF, tseytin-transformation, risoluzione: terminazione, correttezza e completezza.
- BDD, DP and DPLL algoritms (SAT solver): terminazione, correttezza e completezza.
- Logica al primo-ordine: sistemi deduttivi, interpretazione e modelli, correttezza e completezza.
- Cenni ad altre sistemi logici.
- Propositional language, operators and basis
- Metalanguage, structural induction and Tarski's semantics, interpretations ans valuations.
- Logical equivalence and substitution, SAT, UNSAT, tautology and falsifiable formulas.
- Tableaux: termination, soundness and completeness.
- Deductive systems, Gentzen and relationship with Tableaux
- CNF, tseytin-transformation, resolution: termination, soundness and completeness.
- BDD, DP and DPLL algoritms (SAT solver): termination, soundness and completeness.
- First order logic: models, tableaux: termination, soundness and completeness.
- Conclusions and suggestions
Testi consigliati e bibliografia
- Oggetto:
- Libro
- Titolo:
- Mathematical Logic for Computer Science (3rd Ed.)
- Anno pubblicazione:
- 2012
- Editore:
- Springer-Verlag
- Autore:
- Ben-Ari, Mordechai
- ISBN
- Permalink:
- Note testo:
- Materiale a cura del docente verra distribuito nella pagina moodle del corso.
- Obbligatorio:
- Si
- Oggetto: