Logica Matematica Corso di Laurea in Informatica ... - Mbox.dmi.unict.it
Logica Matematica Corso di Laurea in Informatica ... - Mbox.dmi.unict.it
Logica Matematica Corso di Laurea in Informatica ... - Mbox.dmi.unict.it
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
5.2. CLAUSOLE DI HORN E PROGRAMMAZIONE LOGICA 119<br />
meccanica, le varie clausole centrali generate, ma solo l’ultima, <strong>in</strong>sieme alle<br />
clausole orig<strong>in</strong>ali <strong>di</strong> S.<br />
Teorema 5.2.2 (Completezza). Se S è un <strong>in</strong>sieme <strong>in</strong>sod<strong>di</strong>sfacibile <strong>di</strong> clausole<br />
<strong>di</strong> Horn, esiste una <strong>in</strong>put-refutazione <strong>di</strong> S.<br />
Dimostrazione. Si consideri una refutazione l<strong>in</strong>eare or<strong>di</strong>nata <strong>di</strong> S che abbia<br />
come top un goal. una tale derivazione esiste, per la completezza della risoluzione<br />
l<strong>in</strong>eare or<strong>di</strong>nata, e supponendo S <strong>in</strong>sod<strong>di</strong>sfacibile m<strong>in</strong>imale, o <strong>di</strong> essersi<br />
ristretti a un suo sottonsieme <strong>in</strong>sod<strong>di</strong>sfacibile m<strong>in</strong>imale, esiste con top qualunque;<br />
ma ogni <strong>in</strong>sieme <strong>in</strong>sod<strong>di</strong>sfacibile <strong>di</strong> clausole <strong>di</strong> Horn contiene almeno<br />
un goal. Scegliamo un top negativo.<br />
La clausola top negativa non può che essere risolta con una clausola mista<br />
o pos<strong>it</strong>iva, ma la risolvente è <strong>di</strong> nuovo negativa. Iterando, tutte le centrali<br />
sono negative, e nessuna può essere risolta con una centrale precedente,<br />
anch’essa negativa.<br />
Qu<strong>in</strong><strong>di</strong> una refutazione l<strong>in</strong>eare or<strong>di</strong>nata <strong>di</strong> S con top una clausola negativa<br />
sod<strong>di</strong>sfa automaticamente la restrizione dell’<strong>in</strong>put.<br />
Si potrebbe def<strong>in</strong>ire una nozione duale rispetto alle clausole <strong>di</strong> Horn,<br />
clausole <strong>in</strong> cui occorre al più un letterale negativo. Anche per queste vale la<br />
completezza della <strong>in</strong>put-risoluzione, con derivazioni che hanno come top una<br />
clausola pos<strong>it</strong>iva.<br />
Nella programmazione logica si usano clausole <strong>di</strong> Horn, <strong>di</strong> l<strong>in</strong>guaggi pre<strong>di</strong>cativi,<br />
ma con un calcolo soggiacente che può essere illustrato con la logica<br />
proposizionale, e non è altro che la <strong>in</strong>put-risoluzione, <strong>in</strong> altra notazione.<br />
Si torna ad usare il con<strong>di</strong>zionale, anche se rovesciato, e una clausola mista<br />
¬qn ∨ . . . ∨ ¬q1 ∨ p, che è logicamente equivalente a qn ∧ . . . ∧ q1 → p, sarà<br />
rappresentata da<br />
p ← q1, . . . , qn<br />
anche se p fosse <strong>in</strong> un posto qualunque. p si chiama testa e q1, . . . , qn corpo<br />
della legge.<br />
Qu<strong>in</strong><strong>di</strong> per uniform<strong>it</strong>à <strong>di</strong> notazione una clausola un<strong>it</strong>aria p sarà rappresentata<br />
da<br />
e un goal ¬qn ∨ . . . ∨ ¬q1 da<br />
p ←<br />
← q1, . . . , qn