Introduzione alla logica matematica Paolo Bison Fondamenti di

annuncio pubblicitario
Introduzione alla logica matematica
Logica matematica
Paolo Bison
formalizzazione dei meccanismi di ragionamento
la logica studia proposizioni
una proposizione può essere vera o falsa
logica a due valori di verità
Fondamenti di Informatica
A.A. 2007/08
Università di Padova
lucidi basati su note della prof. S. Badaloni
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.1
Formalizzazione
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.2
Logica proposizionale
sintassi
in che modo scrivere le proposizioni
semantica
significato delle proposizioni
P1: Se fa caldo ed è umido allora pioverà
P2: Se è umido ed è estate allora fa caldo
P3: adesso è umido
P4: adesso è estate
si vuole verificare:
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.3
P5: pioverà
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.4
Logica proposizionale
Logica proposizionale
Ad ogni proposizione elementare viene associata una variabile
proposizionale
La rappresentazione per l’esempio è
F1: A ∧ B → D
A = fa caldo
F2: B ∧C → A
B = è umido
F3: B
C = è estate
F4: C
D = pioverà
si vuole dimostrare che da F1-F4 segue logicamente:
F5: D
∧ rappresenta la congiunzione (and)
→ rappresenta la implicazione logica
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.5
Sintassi
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.6
Connettivi logici
La logica proposizionale tratta formule.
Una formula è composta da:
formule atomiche o atomi (A, B, C, ...)
connettivi logici
parentesi ( )
¬ not
negazione
∨ or
disgiunzione
∧ and
congiunzione
→ if then
implicazione
↔ if and only if
bi-implicazione
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.7
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.8
Formule ben formate
Priorità dei connettivi
Una formula è ben formata (FBF) se e solo se essa è
ottenibile applicando le seguenti regole:
1. un atomo è una FBF
2. se F è una FBF, allora (¬F) è una FBF
3. se F e G sono FBF, allora lo sono anche (F ∨ G),
(F ∧ G), (F → G) e (F ↔ G)
Stabilendo un ordinamento tra i connettivi è possibile eliminare
alcune parentesi. L’ordine adottato è il seguente:
1. ¬
2. ∧, ∨
3. →, ↔
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.9
Semantica
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.10
Valore di verità di una formula
la semantica della logica proposizionale richiede
l’introduzione dei valori di verità
B = {T, F}
dare una interpretazione vuol dire trovare una funzione
V : F → {T, F}
essendo F l’insieme delle formule ben formate FBF del
Calcolo Proposizionale.
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.11
Si può calcolare il valore di verità di una espressione del
Calcolo Proposizionale a partire
dai valore di verità delle formule atomiche che la
compongono (interpretazioni) e
dalle tabelle di verità dei connettivi logici.
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.12
Tautologie
Tabelle di verità dei connettivi logici
A B (¬A) (A ∧ B) (A ∨ B) (A → B) (A ↔ B)
Alcune formule sono vere in tutte le interpretazioni.
T T
F
T
T
T
T
T F
F
F
T
F
F
F T
T
F
T
T
F
P
Q
(P → Q)
F F
T
F
F
T
T
T
T
T
T
T
T
F
F
F
T
F
T
T
F
T
F
F
T
F
T
((P ∧ (P → Q)) → Q)
P ∧ (P → Q) ((P ∧ (P → Q)) → Q)
Tautologie o formule valide.
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.13
Contraddizioni
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.14
Decidibilità della logica proposizionale
formule che sono false in tutte le interpretazioni.
Ogni formula è finita e contiene un numero finito di formule
atomiche:
quindi è sempre possibile determinare se essa è valida,
inconsistente o ne’ l’uno ne’ l’altro.
La logica proposizionale è decidibile.
((P → Q) ∧ P) ∧ (¬Q)
P Q (P → Q) (¬Q) ((P → Q) ∧ P) ∧ (¬Q)
T
T
T
F
F
T
F
F
T
F
F
T
T
F
F
F
F
T
T
F
Contraddizioni o formule inconsistenti.
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.15
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.16
Equivalenza Logica
Relazioni di equivalenza logica - I
Due formule F e G sono equivalenti, e si indica con
F ≡ G, se e solo se esse hanno lo stesso valore di verità in
tutte le interpretazioni.
Si può dimostrare che F ≡ G se e solo se la formula
(F ↔ G) è una tautologia.
F
≡
F
identità
¬(¬F)
≡
F
doppia negazione
(G ∧ G)
≡
G
idempotenza
(G ∨ G)
≡
G
idempotenza
(G∧T)
≡
G
legge dei neutri
(G∧F)
≡
F
legge dei neutri
(G∨T)
≡
T
legge dei neutri
(G∨F)
≡
G
legge dei neutri
(G ∧ ¬G)
≡
F
esclusione
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.17
Relazioni di equivalenza logica - II
(G ∨ ¬G)
≡
T
((F ∧ G) ∧ H)
≡
((F ∨ G) ∨ H)
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.18
Relazioni di equivalenza logica - III
complementarietà
(F ∨ (F ∧ G))
≡
F
assorbimento
((F ∧ (G ∧ H)
associatività
(F ∧ (F ∨ G))
≡
F
assorbimento
≡
((F ∨ (G ∨ H)
associatività
(F ∨ (¬F ∧ G))
≡
(F ∨ G)
assorbimento
(F ∧ G)
≡
(G ∧ F)
commutatività
(F ∧ (¬F ∨ G))
≡
(F ∧ G)
assorbimento
(F ∨ G)
≡
(G ∨ F)
commutatività
(F → G)
≡
(¬F ∨ G)
(F ∧ (G ∨ H))
≡
((F ∧ G) ∨ (F ∧ H))
distributività
(F → (G → H))
≡
(G → (F → H))
proprietà implicazione
(F ∨ (G ∧ H))
≡
((F ∨ G) ∧ (F ∨ H))
distributività
(F → (G → H))
≡
((F ∧ G) → H)
proprietà implicazione
¬(F ∨ G)
≡
(¬F ∧ ¬G)
legge di De Morgan
(F ↔ G)
≡
((F → G) ∧ (G → F))
¬(F ∧ G)
≡
(¬F ∨ ¬G)
legge di De Morgan
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.19
eliminazione implicazione
doppia implicazione
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.20
Esempio - I
Esempio - IIa
verificare che le seguenti formule sono equivalenti:
(a) (P ∧ Q) → ¬ (P ∧ R)
(b) ¬ (P ∧ Q ∧ R)
(a) (A → B) → ((A → ¬B) → ¬A)
(a)
≡
≡
≡
≡
Verificare se la seguente formula è una tautologia:
(P ∧ Q) → ¬(P ∧ R)
¬(P ∧ Q) ∨ ¬(P ∧ R)
¬(P ∧ Q ∧ P ∧ R)
¬(P ∧ P ∧ Q ∧ R)
¬(P ∧ Q ∧ R)
elimin.impl.
DeMorgan
commutativa
idempotenza
(b)
tabella di verità
A
B
(A → B)
(A → ¬B) ((A → ¬B) → ¬A)
T
T
T
F
T
T
T
F
F
T
F
T
F
T
T
T
T
T
F
F
T
T
T
T
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.21
Esempio - IIb
(a)
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.22
Do it yourself - I
relazione di equivalenza
(A → B) → ((A → ¬B) → ¬A) ≡
((A → B) ∧ ((A → ¬B)) → ¬A)
((¬A ∨ B) ∧ (¬A ∨ ¬B)) → ¬A
¬((¬A ∨ B) ∧ (¬A ∨ ¬B)) ∨ ¬A
¬(¬A ∨ (B ∧ ¬B)) ∨ ¬A
¬(¬A∨F) ∨ ¬A
¬(¬A) ∨ ¬A
A ∨ ¬A
≡
≡
≡
≡
≡
≡
≡
≡ T.
propr. impl.
elim. impl.
elim. impl.
¬P ∧ (P ∨ Q) ∧ (¬ (P ∨ Q) ∨ P) ∧ ¬ (P ∨ Q)
distributiva
doppia neg.
compl.
Si dica se le seguenti espressioni del calcolo proposizionale
sono o non sono equivalenti:
(a) (P ∧ Q) → R
neutri
neutri
Si dica se la seguente formula è una tautologia:
(b) P → ¬ (Q → R)
Si dica se la seguente formula del calcolo proposizionale
((R → T ) ∧ (T → R) ∧ T ) → R
è una contraddizione.
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.23
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.24
Tipo logical in Fortran
Semantica operatori logici
insieme dei valori di verità (falso, vero)
a
b
.not. a
a .and. b
a .or. b
a .eqv. b
a .neqv. b
operatori
.not. .and. .or. .eqv. .neqv.
F
F
T
F
F
T
F
F
T
T
F
T
F
T
costanti
le due parole chiave .FALSE. e .TRUE.
T
F
F
F
T
F
T
operatori di confronto
T
T
F
T
T
T
F
<
<= >
>=
/=
==
notazione equivalente
.lt. .le. .gt. .ge. .eq. .ne.
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.25
Esempi d’uso
Priorità operatori
ordine dal maggiore al minore
logical :: p,u,q
integer :: x=0,y=10
u= x >=0 .and. x <9 ! ERRATO 0<=x<9
p=.FALSE.;q=x>y;
u=x .gt. y .and. p
u=p .eqv. q ! test uguaglianza per logical,
! errato usare ==
**
* /
+ < <= > >= == /=
.not.
.and.
.or.
.eqv .neqv.
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.26
ordine di valutazione:
da sinistra a destra eccetto ** e .not.
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.27
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.28
pari.f90
Do it yourself - II
!
! pari.f90
! data una sequenza, terminata da 0, di numeri positivi in ingresso
! stampa T se sono tutti pari, F altrimenti
program pari
logical :: tuttiPari
integer :: n
tuttiPari=.TRUE.
do
read *,n
if (n<0) then; stop; end if ! dati in ingresso non corretti
if (n==0) then; exit; end if
tuttiPari= tuttiPari .and. n - (n/2)*2 == 0
end do
print *,tuttiPari
end program pari
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.29
esprimere il connettivo xor (or esclusivo) in termini degli altri
connettivi
A
B
A xor B
true
true
false
true
false
true
false
true
true
false false
false
Introduzione alla logica matematica, Paolo Bison, FI07, 2008-01-08 – p.30
Scarica