Premessa
Ciao! Se è la prima volta che capiti su questo sito, ti consiglio di consultare la pagina principale di questo cosiddetto Giardino Digitale per scoprire meglio cos’è e come navigarlo.
Lo stato di questa nota è al momento: 🔴 Bozza.
Logica PER l’informatica: perché PER?
Focus: sintassi e semantica (interpretazione semantica della sintassi)
Fare differenza tra matematici “puri” e “sporchi”
1 - Strumenti
Rocq = proof assistant (prima si chiamava Coq, cambiato nome per un motivo)
- funzionale
- si cerca dimostrazioni da formule
Z3 = SMT-solver = dimostra teoremi
- si dimostra che formule sono soddisfacibili
2 - Esempio
Abbiamo due affermazioni:
- “Se è un numero primo maggiore di , allora è dispari” che si rappresenta in simboli come:
- “Non esiste un caso in cui non è un numero primo maggiore di ”:
Domanda: è vero che non è dispari? In simboli:
Come facciamo a rispondere a questa domanda?
Procedimento:
- Astraiamo dal significato vero e proprio delle proposizioni
- Concentriamoci sulla struttura logica delle proposizioni:
- Introduciamo variabili proposizionali:
2. Riformuliamo il problema: "Possono le tre proposizioni logiche $A \implies B$, $\overline{\overline A}$ e $\overline B$ reggere?"
Cioè:
$$
A \implies B \land \overline{\overline A} \land \overline B \overset{?}{=} TRUE
$$
2.1 - Soluzione model-teorica/combinatoria
Esaminiamo tutte le possibili combinazioni:
[Tabella]
Non c’è un valore di verità che soddisfa tutte le formule proposizionali in una sola volta, quindi:
- il problema non ha un modello
- il problema è insoddisfacibile
2.2 - Soluzione deduttiva/proof-theoretic
Questa derivazione ha:
- Delle assunzioni di partenza:
- Delle regole:
- Una conclusione: falso
Quindi \notB non può essere compatibile con \not\notA e .
3 - Esempio 2
Fonti
- 🏫 Corso di Laurea in Informatica (
L-31 R) presso l’Università di Torino:
- Corso di Logica per l’Informatica, A.A. 2025-26 (pagina Moodle):
- Prof. Roversi Luca, slide del corso:
- Prof. Roversi Luca, videoregistrazioni del corso: