Conseguenza logica ed insoddisfacibilità Semantica Dichiarativa Minimo modello di Herbrand FOL e clausole (generali) Una clausola(generale) è della forma A1 or … or Am ← B1 and … and Bn Teorema Una qualsiasi teoria FOL T si può riscrivere in un in sieme di clausole generali T' tali che T e T' sono equivalenti dal punto di vista della soddisfacibilità. Proposizione Una formula F è conseguenza logica di una teoria T se e solo se T ∪ not(F) è insoddisfacibile (non ha modelli). FOL e Clausole di Horn Esistono teorie che non si possono formulare con clausole di Horn insetto(x) or uccello(x) or pipistrello(x) ← vola(x) ma … è possibile definire un metodo di prova per le clausole di Horn molto più efficiente di quanto sia possibile fare per la FOL in generale. Soddisfacibilità di P Un insieme di formule S è soddisfacibile se esiste almeno una interpretazione in cui tutte le formule di S sono vere (modello). Interpretazioni ed assegnazioni Dato un dominio di interpretazione D, una interpretazione è una corrispondenza che associa Dimostreremo che ogni programma logico ammette sempre almeno un modello (il minimo modello di Herbrand) Interpretazioni e modelli Una formula atomica p(t1,..,tn) è vera in una interpretazione I se esiste una assegnazione delle variabili α tale che <[t1]α, …, [tn]α> ∈ pI Una interpretazione I è un modello per una formula chiusa A se A è vera in I (notazione: I |=A) ad ogni costruttore di arietà k una funzione da DK --> D (nel caso di costanti un elemento di D); ad ogni simbolo di predicato p di arietà k una relazione pI su DK . Dato un dominio di interpretazione D, una assegnazione è una funzione che associa ad ogni variabile un elemento di D. Interpretazione di Herbrand Una interpretazione di Herbrand è un qualsiasi sottoinsieme I della Base di Herbrand. Nota: E' una interpretazione sintattica dove la funzione di interpretazione è quella che mappa ogni simbolo in se stesso: il Dominio è l'Universo di Herbrand <t1,..,tn> ∈ pI sse p(t1,…,tn) ∈ I La relazione di soddisfacibilità per gli atomi ground è definita da: I |= A sse A ∈ I Modello di Herbrand Una interpretazione di Herbrand M è un modello di Herbrand se soddisfa tutte le clausole di P, viste come formule logiche: Per ogni clausola H <- B1,…,Bn e per ogni istanziazione ground (assegnazione di termini ground alle variabili) σ si ha che se M |= B1σ e …. M|=Bnσ allora M|= Hσ Esistenza modello di Herbrand Teorema 1. Dato un insieme di clausole di Horn, se esso ammette un modello allora ammette un modello di Herbrand. 2. Un programma logico (insieme di clausole di Horn definite) ammette sempre un modello di Herbrand minimo, che indicheremo con M(P). Dimostrazione - traccia Dato un modello M definiamo una interpretazione di Herbrand I: I = {p(t1,…,tn) | <[t1],…,[tn]> ∈ PM} Esiste sempre almeno un modello: la Base di Herbrand e' un modello per ogni programma logico. L'intersezione di tutti i modelli di Herbrand per P è un modello (di Herbrand) per P. Proprietà minimo modello Osserviamo che: Tutte le istanze ground dei fatti di P sono in M(P) Per ogni clausola H <- B1,…,Bn e per ogni istanziazione ground σ: se B1σ, …, Bnσ sono in M(P) allora anche Hσ deve stare in M(P) Niente altro sta in M(P) Esempio sum(0,y,y) sum(s(x),y,s(z)) ← sum(x,y,z) Semantica minimo modello M(P) contiene: sum(0,0,0), sum(0, s(0), s(0) ), sum(0, s(s(0)), s(s(0)) ), ….. Il minimo modello di Herbrand M(P) contiene tutti i teoremi (atomici) di P e può quindi essere propriamente considerato la semantica (dichiarativa) del programma logico P: semantica del minimo modello di Herbrand sum(s(0),0,s(0)), sum(s(0), s(0), s(s(0)) ), sum(s(0), s(s(0)), s(s(s(0))) ), ……… Costruzione modello minimo Definiamo l'operatore Tp nel seguente modo Tp(I) = {Hσ | H <- B1,…,Bn ∈ P σ è una istanziazione ground, B1σ, …, Bnσ ∈ I} Potenze di Tp Si può dimostrare che M(P) è il minimo punto fisso dell'operatore Tp e che questo si ottiene iterando le potenze di Tp. Sia C un insieme su cui è definita una relazione d'ordine e che contiene un elemento minimo ∅ Sia T: C -> C un operatore su C. T↑n (potenza n-esima di T) è l'elemento che si ottiene applicando n volte T a ∅: T↑0 = T0(∅) = ∅ T↑n = T(T↑(n-1)) = Tn(∅) , n>0 T↑ω = ∪n>=0T↑n Minimo punto fisso Un cpo (complete partial order) è formato da un insieme A su cui è definita una relazione d'ordine parziale ⊆ (riflessiva, antisimmetrica e transitiva) e tale che esiste un elemento minimo e ogni catena crescente ha un estremo superiore Sia C un cpo e T: C -> C un operatore continuo su C allora T↑ω è il minimo punto fisso di T continuo, monotono e finitario T è monotono: se I ⊆ J allora T(I) ⊆ T(J) T è finitario: per ogni catena infinita I0 ⊆ I1 ⊆ I2 … si ha T(∪In) ⊆ ∪T(In) T è continuo: per ogni catena infinita I0 ⊆ I1 ⊆ I2 … si ha T(∪In) = ∪T(In) Teorema: T è continuo sse è monotono e finitario Semantica di punto fisso Sia B la base di Herbrand e 2B il suo insieme delle parti 2B con la relazione d'ordine ⊆ è un cpo Tp: 2B -> 2B è monotono e finitario (e quindi continuo) sul cpo (2B, ⊆) e quindi il suo punto fisso è Tp↑ω Esempio sum(0,y,y) sum(s(x),y,s(z)) ← sum(x,y,z) Tp↑1 = {sum(0,0,0), sum(0, s(0), s(0) ), sum(0, s(s(0)), s(s(0)) ), …..} Tp↑2 = Tp↑1 ∪ {sum(s(0),0,s(0)), sum(s(0), s(0), s(s(0)) ), sum(s(0), s(s(0)), s(s(s(0))) ), …..} Tp↑3 = Tp↑2 ∪ {sum(s(0),0,s(0)), sum(s(0), s(0), s(s(0)) ), sum(s(0), s(s(0)), s(s(s(0))) ), …..} ……………..