INF3170 Logikk Dagens plan Forelesning 10: introduksjon, substitusjoner og uniisering Christian Mahesh Hansen 1 Institutt or inormatikk, Universitetet i Oslo 16. april 2007 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 2 / 39 i ørsteordens logikk Noen begreper Sekventkalkylen LK tilbyr et sett med regler or å bygge opp utledninger, og en egenskap som skiller bevis ra utledninger. Sunnhet sikrer oss at enhver bevisbar sekvent er gyldig. Kompletthet sikrer oss at det innes et bevis or enhver gyldig sekvent. Kalkylen sier imidlertid ingenting om hvordan man inner bevis or gyldige sekventer! Kompletthetsbeviset or LK gir hint om hvordan vi kan lage en søkealgoritme. La oss orsøke! En utledning er lukket hvis alle grenene er lukket. En utledning er utvidbar hvis det er mulig å anvende en regel på en ormel i en løvsekvent i utledningen. En søkealgoritme er komplett hvis den inner et bevis or enhver gyldig sekvent. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 3 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 4 / 39
Algoritme: gyldig?(γ ) π := Γ ; while (π ikke er lukket) do i (π ikke er utvidbar) then return ikke gyldig ; else ϕ := ikke-atomær ormel i løvsekvent i π; utvid π ved å anvende riktig LK-regel på ϕ; end i end while return gyldig ; Eektivitet Eektiviteten til algoritmen avhenger av tre ting: 1 Hvor eektivt er det å sjekke om utledningen er lukket? 2 Strategi or valg av utvidelse av utledningen. 3 Hvor eektiv er selve utvidelsen, dvs. regelanvendelsen? I ørste runde ser vi på punkt 1 og 3. Senere introduseres koblingskalkylen, som gir oppgav til en strategi or valg av utvidelser av utledningene. La oss starte med punkt 3 eektiviteten til regelanvendelsene. Algoritmen er komplett hvis utvelgelsen av ϕ er retterdig. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 5 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 6 / 39 Hvor kostbare er regelanvendelsene? γ-reglene α- og β-reglene henter ut delormler ra en sammensatt ormel: Γ, A, B Γ A, Γ B, L R Γ, A B Γ A B, All nødvendig inormasjon tilgjengelig i hovedormelen: kan utøres i konstant tid. Riktignok år vi en del ormelkopiering i β-regelen, men dette kan optimaliseres med.eks. pekere i en objektorientert implementasjon. δ-regelen setter inn en ny parameter or den bundne variabelen: Γ, ϕ[a/x] L Γ, xϕ Parametrene kan nummereres: utøres i konstant tid. La oss se på γ-reglene: Γ, xϕ, ϕ[t/x] Γ, xϕ, ϕ[t/x] L R Γ, xϕ Γ, xϕ Vi kan sette inn en vilkårlig lukket term t or x. For å å en komplett algoritme, må vi (ør eller senere) instansiere hver γ-ormel med alle termene i Herbranduniverset. Vi kan nummerere termene i Herbranduniverset og instansiere γ-ormlene i denne rekkeølgen. Hvilken rekkeølge er gunstig med tanke på å inne bevis så tidlig som mulig? xpx, Pa,..., Pa Pa, Qga. xpx, Pa Pa, Qga xpx Pa, Qga a, a, ga, a, ga,..., a,... 1 2 3 4 5 i Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 7 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 8 / 39
Utsette valg av γ-term δ-reglene En bedre idé: Utsette valg av term i γ-reglene til et senere tidspunkt. La γ-reglene sette inn rie variable: a/u xpx, Pu Pa xpx Pa b/v xpx, Pv Pb xpx Pb xpx Pa Pb Substituere termer or variable slik at løvnodene blir aksiomer. Hvilke substitusjoner vi kan anvende på løvnoder med rie variable slik at de blir aksiomer? Problemet kan løses med uniiseringsalgoritmer. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 9 / 39 Når vi setter inn variable i γ-reglene år vi imidlertid problemer med δ-reglene. Hvordan sikre at parameteren vi setter inn er ny når vi ennå ikke har satt inn termer or de rie variablene? b/u, a/v Lua Lbv yluy ylyv x ylxy x ylyx kan ikke lukkes Lu (u) Lg(v)v yluy ylyv x ylxy x ylyx Vi lar δ-reglene introdusere en Skolemterm: (u 1,..., u n ), der er et nytt unksjonssymbol, kalt en Skolemunksjon, og u 1,..., u n er alle variablene som orekommer ritt i δ-ormelen. På den måten sikrer vi at termen introdusert av δ-regelen er ny uansett hva slags verdi vi velger å instansiere de rie variablene med. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 10 / 39 Oppsummering Vi skal introdusere en ri-variabel sekventkalkyle og vise at den er sunn og komplett. γ-reglene introduserer nye rie variable og δ-reglene introduserer Skolemtermer. Ved hjelp av uniiseringsalgoritmer inner vi substitusjoner som lukker utledningen. 1 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 11 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 12 / 39
Vi har tidligere deinert ϕ[s/x] som ormelen vi år ved å erstatte alle rie orekomster av x i ϕ med s. I ri-variabel sekventkalkyle har vi behov or å erstatte lere orskjellige variable med termer samtidig. Vi skal nå deinere en bestemt type unksjoner substitusjoner som generaliserer én-variabel substitusjon til lere variable. Notasjon: Når vi anvender en substitusjon σ på en ormel ϕ eller en term t skriver vi ϕσ eller tσ istedenor σ(ϕ)/σ(t). Deinisjon (Substitusjon) En substitusjon er en unksjon σ ra mengden variable V til mengden av termer T i et gitt ørsteordens språk. Støtten (support) eller støttemengden (support set) til σ er mengden av variable x slik at xσ x. σ er grunn dersom xσ er en lukket term or alle variable x i støttemengden til σ. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 13 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 14 / 39 Notasjon En substitusjon σ med endelig støtte {x 1,..., x n } slik at x 1 σ = t 1,..., x n σ = t n skriver vi ote slik: σ = {t 1 /x 1,..., t n /x n } Substitusjonen ɛ slik at xɛ = x or alle variable x kalles identitetssubstitusjonen. Identitetssubstitusjonen kan skrives {} siden den har tom støttemengde. σ = {a/x, a/y} er en substitusjon slik at xσ = a yσ = a zσ = z or alle andre variable er en grunn substitusjon τ = {a/y, x/z} er en substitusjon slik at yσ = a zσ = x vσ = v or alle andre variable er ikke en grunn substitusjon Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 15 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 16 / 39
Substitusjon på termer Substitusjon på ormler Vi deinerer substitusjon på termer som tidligere. Deinisjon (Substitusjon på termer) Vi deinerer resultatet av å anvende en substitusjon σ på vilkårlige termer rekursivt ved: cσ = c or et konstantsymbol c. (t 1,..., t n )σ = (t 1 σ,..., t n σ) or en unksjonsterm (t 1,..., t n ). La σ = {gy/x, y/z}. (x, a)σ = (gy, a) h(y, z)σ = h(y, y) xσ = gy La τ = {y/x, x/y}. xτ = y (x, y)τ = (y, x) Som tidligere, ønsker vi at substitusjoner ikke skal endre bundne variable. Eksempel: or σ = {a/x, b/y} så vil x(px Qy)σ = xpx Qb. Vi begrenser substitusjonen på den bundne variabelen: Deinisjon (Begrenset substitusjon) La σ være en substitusjon. Substitusjonen σ begrenset på x, skrevet σ x, er deinert slik at { y hvis y = x yσ x = yσ ellers or enhver variabel y. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 17 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 18 / 39 Deinisjon (Substitusjon på ormler) ϕσ er deinert rekursivt ved: 1 R(t 1,..., t n )σ = R(t 1 σ,..., t n σ) 2 ψσ = (ψσ) 3 (ϕ 1 ϕ 2 )σ = (ϕ 1 σ ϕ 2 σ), hvor {,, } 4 (Qxψ)σ = Qx(ψσ x ), hvor Q {, } Vi antar, som tidligere, at ingen variable blir bundet som resultat av å anvende en substitusjon. Dette kan vi unngå ved å omdøpe bundne variable. La σ = {x/x, a/y, y/z} σ x = { x/x, a/y, y/z} σ y = {x/x, a/y, y/z} σ z = {x/x, a/y, y/z } P(x, y)σ = P(x, a) xp(x, y)σ = x(p(x, y)σ x ) = xp(x, a) z(px Qz)σ = z((px Qz)σ z ) = z(px Qz) Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 19 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 20 / 39
Komposisjon av substitusjoner Komposisjon av substitusjoner med endelig støtte La σ og τ være substitusjoner. Anta at vi ørst anvender σ og så τ på en ormel ϕ: (ϕσ)τ. Vi har av og til bruk or å snakke om den substitusjonen som tilsvarer å anvende σ etterulgt av τ. Deinisjon (Komposisjon av substitusjoner) La σ og τ være substitusjoner. Komposisjonen av σ og τ er en substitusjon skrevet στ slik at x(στ) = (xσ)τ or hver variabel x. Oppgave: vis at ϕ(στ) = (ϕσ)τ or alle ormler ϕ og alle substitusjoner σ og τ. Påstand La σ 1 = {s 1 /x 1,..., s n /x n } og σ 2 = {t 1 /y 1,..., t k /y k }. Da er σ 1 σ 2 = {(s 1 σ 2 )/x 1,..., (s n σ 2 )/x n, (z 1 σ 2 )/z 1,..., (z m σ 2 )/z m } der z 1,..., z m er de variablene blant y 1,..., y k som ikke er blant x 1,..., x n. La σ = {z/x, a/y} og τ = {b/y, a/z}. Da er στ = {(zτ)/x, (aτ)/y, (zτ)/z} = {a/x, a/y, a/z}. La σ = {y/x} og τ = {x/y}. Da er στ = {(yτ)/x, (yτ)/y} = {x/x, x/y} = {x/y}. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 21 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 22 / 39 1 I ri-variabel sekventkalkyle kan vi ha løvsekventer på ormen Γ, P(s 1,..., s n ) P(t 1,..., t n ), der hver s i og t i er termer som kan inneholde variable. For å lukke løvsekventen må vi inne en substitusjon σ slik at s i σ = t i σ or hver i. Det er ikke sikkert at noen slik substitusjon innes! sproblemet La s og t være termer. Finn alle substitusjoner som gjør s og t syntaktisk like, dvs. alle σ slik at sσ = tσ. En substitusjon som gjør termene s og t syntaktisk like, kalles en uniikator or s og t. To termer er uniiserbare hvis de har en uniikator. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 23 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 24 / 39
Er (x) og (a) uniiserbare? Ja. Vi ser at σ = {a/x} er en uniikator: (x)σ = (a) Er (x, b) og (a, y) uniiserbare? Kan være lettere å se hvis vi skriver termene som trær: Er (a, b) og g(a, b) uniiserbare? a b a b x b a y g Symbolene i posisjon 0 (rotposisjonen) er like. Symbolene i venstre barn er ulike, men kan uniiseres med {a/x}. Symbolene i høyre barn er ulike, men kan uniiseres med {b/y}. Symbolene i posisjon 0 er ulike, og kan ikke uniiseres! Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 25 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 26 / 39 Er x og (x) uniiserbare? Er (x, x) og (a, b) uniiserbare? x x a b Symbolene i posisjon 0 er like. Symbolene i venstre barn er ulike, men kan uniiseres med {a/x}. Vi må anvende {a/x} på x i både venstre og høyre barn. Symbolene i høyre barn er nå ulike, og kan ikke uniiseres! x x Symbolene i posisjon 0 er ulike, men kan uniiseres med { (x)/x}. Vi må samtidig anvende { (x)/x} på x i høyre tre. På posisjon 1 ser vi nå at symbolene x og er ulike. Hvis vi uniiserer med { (x)/x}, må vi igjen erstatte x i høyre tre. Sånn kan vi holde på en stund... Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 27 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 28 / 39
Generelt har vi: To ulike konstantsymboler eller unksjonssymboler er ikke uniiserbare. En variabel x er ikke uniiserbar med en term som inneholder x. Vi skal lage en uniiseringsalgoritme, som inner alle uniikatorer or to termer. Problem: To termer har potensielt uendelig mange uniikatorer! Vi kan ikke returnere alle... Løsning: Finne en representant σ or mengden av uniikatorer slik at alle andre uniikatorer kan konstrueres ra σ. En slik uniikator kalles en mest generell uniikator. Deinisjon (Mer generell substitusjon) La σ 1 og σ 2 være substitusjoner. Vi sier at σ 2 er mer generell enn σ 1 hvis det innes en substitusjon τ slik at σ 1 = σ 2 τ. Er { (y)/x} mer generell enn { (a)/x}? Ja, siden { (a)/x} = { (y)/x}{a/y}. Er { (a)/x} mer generell enn { (y)/x}? Nei, or det innes ingen substitusjon σ slik at { (y)/x} = { (a)/x}σ. Er { (y)/x} mer generell enn { (y)/x}? Ja, siden { (y)/x} = { (y)/x}ɛ. (Husk: ɛ er identitetssubstitusjonen.) Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 29 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 30 / 39 Deinisjon (Uniikator) La s og t være termer. En substitusjon σ er en uniikator or s og t hvis sσ = tσ. en mest generell uniikator (mgu) or s og t hvis den er en uniikator or s og t, og den er mer generell enn alle andre uniikatorer or s og t. Vi sier at s og t er uniiserbare hvis de har en uniikator. La s = (x) og t = (y). σ 1 = {a/x, a/y} er en uniikator or s og t σ 2 = {y/x} og σ 3 = {x/y} er også uniikatorer or s og t σ 2 og σ 3 er de mest generelle uniikatorene or s og t Variabelomdøping Fra det oregående eksempelet ser vi at to termer kan ha lere orskjellige mest generelle uniikatorer. Disse mgu-ene er imidlertid like opp til omdøping av variable. Deinisjon (Variabelomdøping) En substitusjon η er en variabelomdøping hvis 1 xη er en variabel or alle x V, og 2 xη yη or alle x, y V slik at x y. Er disse substitusjonene variabelomdøpinger? σ 1 = {z/x, x/y, y/z} Ja. σ 2 = {z/x, y/z} Nei, siden yσ 2 = zσ 2. σ 3 = {z/x, x/y, y/z, a/u} Nei, siden uσ 3 ikke er en variabel. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 31 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 32 / 39
Unikhet opp til omdøping av variable Deltermer Deinisjon (Deltermer) Påstand Hvis σ 1 og σ 2 er mest generelle uniikatorer or to termer s og t, så innes en variableomdøping η slik at σ 1 η = σ 2. Mengden av deltermer av en term t er den minste mengden T slik at t T, og hvis (t 1,..., t n ) T, så er hver t i T. Alle termer i T utenom t er ekte deltermer av t. Bevis som oppgave? La s = gx. Deltermer er: x, gx Ekte deltermer er: x La t = (x, a). Deltermer er: x, a, (x, a) Ekte deltermer er: x, a En term er altså en delterm av seg selv. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 33 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 34 / 39 Nummererte termtrær Vi har sett at termer kan representeres med trær. Når vi uniiserer er det gunstig å nummerere barna til noder i termtreet: a g x Slike trær kalles nummererte termtrær. c h a, 1 x, 2 g, 1, 0 c, 1 h, 2 Vi reerer til roten til det nummererte termtreet til en term t som rot(t). Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 35 / 39 Kritisk par Når vi skal uniisere to termer t 1 og t 2 er vi interessert i å inne par av deltermer som er ulike. Samtidig er det ønskelig å se på ulike deltermer så nærme roten som mulig. Deinisjon (Kritisk par) Et kritisk par or to termer t 1 og t 2 er et par k 1, k 2 slik at k 1 er en delterm av t 1 k 2 er en delterm av t 2 når vi tenker på termer som nummererte termtrær så er rot(k 1 ) orskjellig ra rot(k 2 ) stien ra rot(t 1 ) til rot(k 1 ) er lik stien ra rot(t 2 ) til rot(k 2 ) Merk: stiene kan være tomme, dvs. at termene er ulike allerede i rotsymbolet. Tomme stier er trivielt like... Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 36 / 39
Eksempel La s = (x, gb) og t = (a, hc). Vi år ølgende nummererte termtrær: x, 1 g, 2, 0 b, 1 a, 1 h, 2, 0 c, 1 Er b, c kritisk par or s og t? Nei, stien ra rot(s) til rot(b) er ulik stien ra rot(t) til rot(c). Er x, a kritisk par or s og t? Ja. Er gb, hc kritisk par or s og t? Ja. Algoritme: uniiser(t 1, t 2 ) σ := ɛ; while (t 1 σ t 2 σ) do velg et kritisk par k 1, k 2 or t 1 σ, t 2 σ; i (hverken k 1 eller k 2 er en variabel) then return ikke uniiserbare ; end i x := den av k 1, k 2 som er variabel (hvis begge er, så velg én); t := den av k 1, k 2 som ikke er x; i (x orekommer i t) then return ikke uniiserbare ; end i σ := σ{t/x}; end while return σ; Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 37 / 39 Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 38 / 39 Egenskaper ved uniiseringsalgoritmen Hvis termene t 1 og t 2 er uniiserbare, så returnerer algoritmen en mest generell uniikator or t 1 og t 2. Denne mgu-en er en representant or alle andre uniikatorer or t 1 og t 2. Hvis t 1 og t 2 ikke er uniiserbare, så returnerer algoritmen ikke uniiserbare. Institutt or inormatikk (UiO) INF3170 Logikk 16.04.2007 39 / 39