• No results found

(Leksikogrask utvidelse av partiell ordning) Gitt en mengde S og en partiell ordning over S deneres den leksikograske utvidelsen lex over sekvenser av

In document Terminering av typeordnet omskriving (sider 29-32)

S ved

hs1;:::;smilexht1;:::;tni

hvis og bare hvis

9j21::mj(j = n + 1_sj tj)^(8i < jjsi= ti)

Eksempelvis er postene i en telefonkatalog ordnet av en leksikogrask ordning over tegn-sekvenser indusert av en alfabetisk ordning over enkelttegn. Hvis (S;) er en velfundert partielt ordnet mengde så er lex velfundert over mengden av S-sekvenser med lengde mindre eller lik et tall n. Den leksikograske varianten av stiordninger kan da deneres (som i bl. a. [Kir92]):

Denisjon 2.21 (Leksikogrask stiordning som partiell ordning)

La F være en partiell ordning over en mengde funksjonssymboler F. Den leksikograske stiordningen

lpo(F) indusert av F er denert rekursivt over termer iT(F) ved

lpo-1: ti lpo(F)t0

f(:::;ti;:::)lpo(F)t0

lpo-2: fFg 8i21::njf(t1;:::;tm)lpo(F)t0i f(t1;:::;tm)lpo(F)g(t01;:::;t0n)

lpo-3: ht1;:::;tnilexlpo(F)ht01;:::;t0ni 8i22::njf(t1;:::;tn)lpo(F)t0i

f(t1;:::;tn)lpo(F)f(t01;:::;t0n)

Jeg skriver på vanlig måte lpo for lpo(F) når F fremkommer av sammenhengen eller er uinteressant.

I punkt 3 er det denne gangen nødvendig å vise 8i 2 2::njf(:::)lpo t0i fordi selv om t1lpot01, så kunne en annen t0i være veldig stor.

Eksempel (forts. av eks. 2.6)

La F og presedensen F være som i eksempel 2.6. Ilpo gjelder imidlertid den omvendte g(a;f(a;b;b))lpo f(b;a;a) fordi

aF b

alpo b a = a

ha;b;bilexlpohb;a;ai f(a;b;b)lpo a f(a;b;b)lpof(b;a;a)

g(a;f(a;b;b))lpof(b;a;a)

Det er lett å se at den leksikograske stiordningen, lpo, innehar subtermegenskapen og er ikke-reeksiv, mens det er litt verre å vise at lpo er transitiv. Beviset for transitivitet går som tilsvarende bevis for transitivitet avmpoi [Der82], slik at lpodenert over er en forenklingsordning.

2.3.7 Stiordninger med variable

Ordningenelpoogmpoer bare denert for variabelfrie termer, noe som gir å vise lpor

for uendelig mange grunnsubstitusjoner for enhver l;!r i en regelmengde R for å påvise at R terminerer. Denne situasjonen er selvfølgelig ikke holdbar og ordningene må løftes opp til å klare å behandle termer med variable slik at

lpo r =)lpor

for alle grunnsubstitusjoner . Dette gjøres ved å se på regelvariable som konstanter i stiordningene, der en variabel x er ikke sammenlignbar med noe annet symbol i ordningen

F . Dette er antatt implisitt i mange artikler, og gyldigheten av lpor =)lpo r kan vises ved induksjon på oppbygningen av beviset for lmpo r (alternativt llpo r).

Det er også mulig å kombinere lpoogmpout i fra den generelle denisjonen av stiordnin-ger. For noen funksjonssymboler kan 0po være en multiset sammenligning, for andre en leksikogrask sammenligning og for atter andre kan 0po sammenligne leksikogrask i en annen rekkefølge. Eksempelet nedenfor illustrerer dette.

Eksempel 2.7

La F =fa;b;f;ggog et terminerende omskrivningssystem R være gitt ved reglene

f(a;b);!f(b;a) (1)

g(x;a);!g(b;x) (2)

h(x;a;x);!h(a;b;x) (3)

R viser for det første at lpoogmpo ikke er sammenlignbare i styrke fordi termene i regel 1 ikke ermpo-sammenlignbare samtidig som aF b gir f(a;b)lpof(b;a). Det omvendte er tilfelle med regel 2. Hverkenlpo ellermpokan brukes på regel 3.

Det er mulig å vise at R terminerer ved å sette 0po liklexpo dersom hovedfunksjons-symbolet er f, og la 0po være multipo dersom hovedsymbolet er g og til sist la 0po

være en leksikogrask sammenligning i rekkefølge 2. element, 1. element og 3. element når hovedsymbolet er en h.

Denne stiordningen gir da at alle reglene er po-minskende når aFb.

2.3.8 Ordningene som prosedyrer

Vi søkte etter prosedyrer som kan fastslå terminering og må følgelig vise at det alltid er beregnbart hvorvidt tmpot0 og tlpot0. For begge ordningene gjelder at en inferensregel-applikasjon (brukt oppover) minsker totalstørrelsen av det største termparet, samtidig

2.3 Forenklingsordninger som som vi ikke introduserer uendelige mange nye termpar som må vurderes. Det kan imidlertid dukke opp problemer fordi vi ikke vet nøyaktighvilkenregelapplikasjon som skal utføres til enhver tid, slik at metoden involverer prøving og feiling.

Ordningenmpohar den vakre egenskapen at vi ved ethvert tidspunkt vet nøyaktig hvilken av reglene mpo-1, mpo-2 eller mpo-3 som skal brukes, fordi mpo-1 bare trenger å brukes dersom f 6F g for hovedsymboler f og g i termene t og t0. Valgets kvaler i mpo ligger i mpo-3der vi ikke vet hvilke subtermer som skal sammenlignes med hverandre. Heldigvis er det bare et endelig antall kombinasjoner som kan prøves mot hverandre.

Den leksikograske stiordningen har ikke egenskapen at man hele tiden vet hvilken infer-ensregel som skal velges. Gitt aF b kan ikke regellpo-2velges for å vise

f(b;f(a;b))lpof(a;b)

Ordningenlpo involverer altså prøving og feiling med hensyn til hvilke inferensregler man skal bruke, menlpo-3slipper å nne ut hvilke subtermer som skal sammenlignes, men har i tillegg den ulempen at at alle subtermer i t0 må sammenlignes med t. Siden denne testen ligger implisitt impo-3vil jeg likevel si atlpoer en anelse raskere, og brukes kanskje derfor mest i implementasjoner, mens mpokan sies å være mer elegant. Ordningene er som vist heller ikke sammenlignbare i styrke.

Stiordningene har videre den fordelen at man bare trenger å denere et forhold mellom funksjonssymboler, noe som gjør dem veldig implementeringsvennlige. Til sist har de den nyttige egenskapen at de er inkrementérbare. Det betyr at presedensen F kan utvides un-derveis, slik at lpo(F)r medfører lpo(0F)r dersom0F er en utvidelse av F (dvs. f F g impliserer fF0g for alle f;g 2 F). Dette gjør at man bare trenger å utvide presedensen mellom funksjonssymbolene etter hvert som foreløpig ikke-orienterbare likninger dukker opp f. eks. i en kompletterings-prosedyre uten at man ødelegger tidligere viste resultater.

Til slutt kan det bemerkes at stiordninger generelt ikke er velfunderte. Gitt en uendelig mengde konstanter F = fa1;a2;a3;:::g og en presedens a1Fa2F ns det uende-lig sekvens a1poa2poa3po ved regel 2. Stiordningene er imidlertid velfunderte for avledninger, fordi en endelig regelmengde R ikke kan gi opphav til en uendelig omskriv-ningssekvens a1;R!a2;R!a3;R!.

2.3.9 Andre forenklingsordninger Polynomiske og eksponensielle ordninger

Polynomiske ordninger tilordner enhver grunnterm en positiv heltallig vekt ved at ethvert n-ært funksjonssymbol f blir tilordnet et heltallspolynom F(x1;:::;xn). Koesientene må velges slik at monotoniegenskapen og subtermegenskapen opprettholdes, noe som eksem-pelvis kan oppnås med å bare bruke positive koesienter i polynomet.

Dersom vekt(l) > vekt(r) for alle regler l;!r i et omskrivningssystem R så innebærer t;R!t0 at vekt(t) > vekt(t0). Siden enhver grunnterm må ha ikke-negativ heltallig vekt kan det ikke nnes en uendelig omskrivningssekvens

t1;R!t2;R!t3;R!

Eksempel 2.8

La F bestå av bl. a. funksjonssymbolene a;f og g med aritet hhv. 0, 2 og 1. Anta at det er gitt en regel

g(f(x;y));!f(g(x);y)

Tilordner man a;f og g hhv. polynomene A = 1, F(x;y) = 2x + y og G(x) = 2x er vekt(g(f(x;y))) = 4vekt(x) + 2vekt(y) alltid større enn vekt(f(g(x);y)) = 4vekt(x)+vekt(y) fordi enhver grunnterm alltid har positiv vekt slik at 2vekt(y) er større enn vekt(y) for enhver grunnterm y. Systemet er derfor terminerende.

Polynomiske ordninger tilordner en vekt i det velfunderte domenetN til hver term. Forenk-lingsordningsbegrepet gjør at man like gjerne kan tilordne reelle tall til en term. Selv om >

ikke er velfundert over mengdenRav alle reelle tall holder det (fordi > overRer transitiv og ikke-reeksiv) å vise at vektleggingen er monoton, dvs.

xi > x0i=)F(:::;xi;:::) > F(:::;x0i;:::) og innehar subtermegenskapen

F(:::;xi;:::) > xi

for alle reelle tall xi;x0i. Ordningen indusert av vektleggingen ved t t0()vekt(t) >

vekt(t0) er da en forenklingsordning og kan brukes til å vise terminering av endelige system-er. Funksjonen F trenger naturligvis ikke heller være et polynom, men kan være en vilkårlig eksponensiell funksjon som oppfyller kravene over. På denne måten får vi eksponensielle ordninger.

Polynomiske ordninger er ikke så implementeringsvennlige, fordi det ikke er så lett å denere de nødvendige polynomene. De er heller ikke inkrementérbare i samme utstrekning som stiordningene, noe som medfører at de egner seg dårligere i kompletteringsprosedyrer. Jeg vil derfor ikke se mer på slike ordninger.

In document Terminering av typeordnet omskriving (sider 29-32)