Rezoluce v predikátové logice Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 1/16
Základní myšlenky 1 M = ϕ iff X = M { ϕ} nesplnitelná. (M musí být množina sentencí, ϕ sentence.) 2 X nesplnitelná iff X = ff. 3 Hledání kritických důsledků X syntakticky. K tomu je zapotřebí speciální tvar X. 4 Speciální tvar X je klausální tvar X. Vše budeme dělat pro konečnou množinu M. Pak i X je konečná. Tudíž: (syntaktický) algoritmus. V zásadě stejný algoritmus jako ve VL, některé kroky jsou však složitější dáno složitostí syntaxe PL. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 2/16
Sentence v CNF Řekneme, že ψ je v CNF, když má tvar bud tt nebo ψ 1... ψ n, kde 1 každé ψ i je sentence tvaru bud τ i nebo x 1. x 2... x mi.τ i 2 každé τ i (tzv. tělo klausule ψ i ) je bud ff nebo nebo l 1... l ki 3 každé l j (literál) je bud atom nebo negace atomu. Upozornění Nedefinujeme CNF jako synonymum. Při hledání CNF může dojít ke změně jazyka: tzv. Skolemovo rozšíření, neboli skolemisace. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 3/16
Převod sentence ϕ na CNF 1 Vyčištění výskytu proměnných: každý kvantifikátor musí vázat jinou proměnnou. (α-konverse, to může vyžadovat deklaraci fresh proměnných.) 2 Odstranění nepohodlných spojek. 3 Distribuce těsně před atomy (de Morganova pravidla). 4 Distribuce na nejnižší možnou hladinu (distributivní a asociativní zákony další strana). 5 Distribuce na nejvyšší možnou hladinu a eliminace existenčních kvantifikátorů (distributivní a asociativní zákony a skolemisace viz další strany). 6 Výslednou sentenci označíme cnf(ϕ). Obecně nedosáhneme ϕ = cnf(ϕ) Bude platit: ϕ a cnf(ϕ) jsou ekvisplnitelné. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 4/16
Nové distributivní a asociativní zákony Platí: 1 Asociativita a : x.(α β) = x.α x.β pro libovolné formule α, β. 2 Asociativita a : x.(α β) = x.α x.β pro libovolné formule α, β. 3 Distributivita a : x.(α β) = x.α β pro libovolné formule α, β, kde v β se nevyskytuje x. 4 Distributivita a : x.(α β) = x.α β pro libovolné formule α, β, kde v β se nevyskytuje x. Intuice: je nekonečné and a je nekonečné or. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 5/16
Skolemovo rozšíření Sentenci x 1... x m. y.α, m 0 nahrad te sentencí x 1... x m.α[y := f (x 1,..., x m )] kde f je fresh funkční symbol arity m. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 6/16
Příklad Najděte cnf(ϕ) pro sentenci ϕ ve tvaru ( ) x.(p(x) y.q(x, y)) x.(p(x) y.p(f (y))) Pozorování Zjevně pro obecnou sentenci ϕ platí: ϕ a cnf(ϕ) jsou ekvisplnitelné. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 7/16
Klausální tvar množiny sentencí α kt(x ) iff α je klausule nějaké cnf(ϕ) pro ϕ X. Upozornění kt(x ) není jednoznačně určen! Pozorování X a kt(x ) jsou ekvisplnitelné. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 8/16
Komplementární výskyt Dvě klausule ψ 1, ψ 2 pro CNF obsahují komplementární výskyt predikátu P, pokud se v ψ 1 vyskytuje P a v ψ 2 se vyskytuje P (nebo naopak). Příklady At f Pred arity 1, R Pred, arity 2 a x, y, u, v Var. 1 Klausule x y ( x = y R(x, y)), u v ( u = v R(u, v)). Komplementární výskyt predikátu R. 2 Klausule x y ( x = y R(x, f (y))), u v ( u = v R(u, v)). Komplementární výskyt predikátu R. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 9/16
Příklad, pokrač. 3 Klausule x y (x = y R(x, f (y))), u v ( u = f (v) R(u, v)). Komplementární výskyt predikátu = a komplementární výskyt predikátu R. 4 Klausule x y (x = y R(x, f (y))), u v (u = f (v) R(u, v)). Žádný komplementární výskyt predikátu. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 10/16
Jak utvořit resolventu dvou klausuĺı ψ 1 a ψ 2 1 Obsahují ψ 1 a ψ 2 komplementární výskyt predikátu? (Pokud ne, stop: resolventa neexistuje.) 2 Označte predikát s komplementárním výskytem jako P. 3 Existuje maximální unifikátor pro atomy vytvořené z P? (Pokud ne, stop: resolventa podle P neexistuje.) 4 Označte maximální unifikátor jako ϑ. 5 Spočítejte ψ 1 [ϑ] a ψ 2 [ϑ]. Těla těchto klausuĺı označte jako τ 1 a τ 2. 6 Vytvořte tělo, které obsahuje všechny literály obsažené v τ 1 a τ 2 kromě literálů začínajících P a P. Toto tělo označte τ. 7 Tělo τ doplňte obecnými kvantifikátory na sentenci. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 11/16
Příklady: nalezněte maximální unifikátor 1 P(x, y) a P(t, f (z)) (x, y, z, t st. proměnné, P predikát arity 2, f funkční symbol arity 1) 2 Q(a, y, f (y)) a Q(z, z, u) (x, y, z st. proměnné, Q predikát arity 3, f funkční symbol arity 1, a, u funkční symboly arity 0) 3 R(x, g(x)) a R(y, y) (x, y st. proměnné, R predikát arity 2, g funkční symbol arity 1) Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 12/16
Definice At X je konečná množina klausuĺı pro CNF. Posloupnost Res 0 (X ), Res 1 (X ), Res 2 (X ), Res 3 (X ),... definujeme takto: Res 0 (X ) = X Res n+1 (X ) = Res n (X ) {α α je resolventa nějaké dvojice z Res n (X )} Pozorování Ekvisplnitelnost je invariantem a tvorba posloupnosti množin se zastaví po konečně krocích. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 13/16
Důsledek: základní resoluční algoritmus 1 Rozhodněte, zda M = ϕ (M konečná). 2 Utvořte X = M { ϕ}. 3 At X = kt(x ). Potom X a X jsou ekvisplnitelné. 4 Existuje n 0 tak, že platí Res n0 +1(X ) = Res n0 (X ). Dále platí: 1 Množiny X a Res n0 (X ) jsou ekvisplnitelné. 2 Množina X není splnitelná právě tehdy, když platí ff Res n0 (X ). 5 M = ϕ platí iff X není splnitelná. Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 14/16
Pozor! Na přednášce bude zmíněna i mírná varianta klasického resolučního algoritmu, kterou v tomto textu nenajdete. Tuto variantu (zamítací stromy, anglicky refutation trees) naleznete ve skriptu M. Demlová a B. Ponděĺıček, Matematická logika, FEL ČVUT, Praha 1997 Formální nástroje Vyzkoušejte si například volně stažitelný theorem prover Prover9 a Mace4 od Williama McCunea http://www.cs.unm.edu/ mccune/prover9/ Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 15/16
Příklad Resolučním algoritmem rozhodněte, zda platí { x. y.((p(x) Q(x, y)) R(y)), x.q(f (x), g(x)), P(f (a))} = R(g(a)) (Samozřejmě: popište jazyk PL, ve kterém jde o sentence.) Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 16/16