• No results found

Korrekthetsbevis for TT2- mpo -metoden

In document Terminering av typeordnet omskriving (sider 101-107)

TT2-metoden en forbedring av TT1-metoden

7.2 Korrekthetsbevis for TT2- mpo -metoden

lik TT0-mpo), mens TT1 som vi har sett ikke var en ekte utvidelse av TT0. Med TT2-mpo kan man vise terminering av systemet i eksempel 6.15 med presedensen fsFfs0F aF b.

Følgende eksempel viser at TT2-mpokan vise terminering av et system som hverken TT0-mpo(en utypetmpo-analyse) eller TT1-mpokan vise terminerer:

Eksempel 7.1

Omskrivningssystemet

terminerer, noe som på grunn av den første regelen ikke kan vises ved en utypet (TT0-) analyse.

Følgende må vises for speilingen R0: fs1(x) mpo fs2(gs1(x)) TT1-mpoikke kan vise terminering av eksemplet.

Bruker vi imidlertid TT2-mpogir for eksempel presedensen fsF fs1F fs11 F fs2 Fgs1FbFa

at de 4 reglene i speilingen gitt over er mpo-minskende samtidig som krav 7.1 er tilfredsstilt. Vi har dermed vist terminering av det typeordnede systemet.

7.2 Korrekthetsbevis for TT2- mpo -metoden

Jeg skal i dette avsnittet bevise at TT2-mpo-metoden er korrekt, dvs. at R virkelig ter-minerer dersom alle betingelsene til TT2-mpo-metoden i g. 7.1 er oppfylt. For å få til dette vil jeg vise at det ns en speiling hF;b c;R00i av et typeordnet systemh ;Ri som terminerer når TT2-mpo-betingelsene holder. Forskjellen fra TT1-speilingen er at F-like funksjonssymboler blir slått sammen i den nye speilingen R00, og at alle ekstraregler på formen fw(x1;:::;xn);!fw0(x1;:::;xn) fjernes dersom fwFfw0. Beviset vil innføre en ny termspeilingsfunksjon b c som bare brukes her. Bruken av TT-metodene vil som nevnt hele tiden basere seg på termspeilingsfunksjonenbcbeskrevet i forrige kapittel.

7.2.1 Speilingen

I dette avsnittet skal jeg denere en speiling hF;b c;R00i og vise at den virkelig er en speiling av et typeordnet systemh ;Ri.

Funksjonssymbolmengden

F

Den utypede funksjonssymbolmengden F vil være den samme som beskrevet i avsnitt 6.3 for TT1-metoden.

Termspeilingsfunksjonen

bc

Jeg har tidligere vist at F indusert av en kvasiordning %F er en ekvivalensrelasjon og dermed danner ekvivalensklasser over F. Hovedidéen bak TT2-speilingen er at F-like fw;fw0;fw00;::: skal representeres i speilingen av ett (felles) funksjonssymbol, dvs. av ett element i F -ekvivalensklassen [fw]F. Dersom [fw]F er en ekvivalensklasse, så kan den imidlertid inneholde både f'er og andre funksjonssymboler fra , f. eks. g. De utypede symbolene fw og gw0 kan ha forskjellig aritet. Noen reduksjonsordninger, som bl. a.lpo, er generelt ikke denert for utypede systemer der et funksjonssymbol kan ha variabel aritet, så vi må være litt forsiktige med å slå sammen funksjonssymboler med forskjellig aritet til ett symbol. For å være på den sikre siden, og for å ha et mer generelt bevis, denerer jeg enkanonisk representant utifra funksjonssymboler i. Det betyr for at for enhver f 2 velger jeg en f-kanonisk representant, kalt f-crep([fw]F) i [fw]F.

For enhver ekvivalensklasse og hvert funksjonssymbol i (som er representert i ekviva-lensklassen) nnes altså en f-crep([fw]F) 2 F. Denne f-kanoniske representanten for [fw]F velger jeg å kalle fw. Dersom [fw]F bare inneholder ett element som stammer fra en f i , skriver jeg av og til bare fw for den éntydige fw1. For å sammenfatte disse nye begrepene er altså fw = f-crep([fw]F) et funksjonssymbol fw0 i F der fwFfw0 og der fw og fw0 har lik aritet.

Eksempel (forts. av eks. 7.1)

Ekvivalensklassen [fs2]F indusert av presedensen %F denert tidligere i eksempel 7.1 består av elementene fs2;gs1 og b. Her vil da f-crep([fs2]F) = fs2, g-crep([fs2]F) = gs1 og b-crep([fs2]F) vil være lik b. Tilsvarende kunne vi ha f-crep([fs11]F) = fs11 = fs1.

La nå den nye termspeilingsfunksjonenb c :T(;X)!T(F;V ) være denert ved at btc er likbtcmed den forskjellen at ethvert symbol fw i t blir erstattet med symbolet fw. Mer formelt er en funksjonssymbolsmerkingsfunksjonbcF:S!F denert ved

bf;wcF= f-crep([bf;wcF]F)

derbcF er som denert i forrige kapittel. Funksjonen bc er på vanlig måte utvidelsen av

bcF til en termspeilingsfunksjon.

1Er man meget pirkete kanfta ulikt antall argumenter dersomf:s!sogf:s;s!ser to deklarasjoner i. Hvis nåfsFfs; svilfsta enten ett eller to argumenter. Dette kan bøtes på ved å denerefssom etF-symbol som tar ett argument ogfs; s som et annetF-symbol som tar to argumenter. Dette vil ikke forårsake problemer daF-sprang frafs tilfs0; s0 eller omvendt aldri kan forekomme.

7.2 Korrekthetsbevis for TT2-mpo-metoden

Eksempel (forts. av eks. 7.1)

Den eneste forskjellen mellom btc og btc ville være at enhver forekomst av fs11 ibtcville bli erstattet med fs1 ibtc. Eksempelvis erbf(b)c= fs11(b) mensbf(b)c= fs1(b).

Regelmengden

R00

Den speilende regelmengden R00 består som før av to mengder regler. De opprinnelige reglene blir som for TT1, dvs. for alle regler l;!r i R og for alle spesialiseringer for variablene i l erblc;!brc med i R00.

Ekstrareglene i R0beholdes også, unntatt de som i det tilfellet ville gitt en regel som ikke gjør noe som helst. Formalisert vil det si at mengden av ekstraregler i R00er gitt ved

R00=ffw(x1;:::;xn);!fw0(x1;:::;xn)jfw;fw0 2F ^s0< s^fw6= fw0g

R00er altså mengden av de opprinnelige reglene og ekstrareglene.

Eksempel (forts. av eks. 7.1)

Hvis vi denerer f-crep([fs1]F) = fs1 = fs1 = fs1 1 ville den speilende regelmengden R00 til systemet i eksempel 7.1 blitt som følger:

fs1(x);!fs2(gs1(x))

fs1(x);!fs2(gs1(x)) (fordi fs11 = fs1) fs1(b);!fs1(a) (også fordi fs11= fs1) fs1(y);!b (tilsvarende her)

Disse er de jeg kaller de opprinnelige reglene i R00. Ekstrareglene er da fs(x);!fs1(x)

fs(x);!fs2(x)

Her kan man legge merke til at ekstraregelen fs1(x);!fs11(x) som vi ville hatt i en TT1-speiling forsvinner. Med presedensen %F gitt tidligere kan man med hjelp av mpoellerlpovise at regelmengden R00terminerer, noe jeg snart vil vise også impliserer terminering avR.

Dersom t er en utypet term, vil jeg skrive t for termen som fremkommer når alle funk-sjonssymboler fw i t erstattes med tilhørende f-kanoniske representanten fw.

Det må nå vises athF;bc;R00ivirkelig er en speiling av et typeordnet omskrivningssystem

h ;Ri.

Teorem 7.1

8t;t02T(;X)jt;R!t0=)btc;R+!0 0 bt0c

Bevis:

Beviset tar utgangspunkt i speilingenhF;bc;R0i vi brukte i TT1-beviset. Husk at

btc bare erbtc med alle funksjonssymboler fw byttet ut med fw. Vi hadde i beviset for teorem 6.15 en omskrivningssekvens

btc;op pR!0 t1;eksR!0 t2;eksR!0 tn=bt0c

der n 1, og der symbolet ;op pR!0 står for bruk av én av de opprinnelige reglene i R0 og;eksR!0 står for bruk av en ekstraregel. Siden vi i R00 ikke har fjernet noen av de opprinnelige reglene i R0 og fordi enhver fw i bådebtc og R0opp erstattes med en fw i

btc og R00opp gjelder

btc;op pR!00 t1

Det er opplagt at dersom ti;eksR!0 ti+1 så er enten ti;eksR!00 ti+1 eller ti = ti+1 for alle termer ti;ti+12T(F;V ). Dette kommer av vi bare har fjernet ekstraregler som ikke forandrer på noe som helst i R00. Dermed kan ovenstående sekvens bli til

btc;oppR!00 t1eks;R!0 0 t2 eks;R!00 tn =bt0c

Siden vi harbtc;op pR!00 t1 inneholder ovenstående sekvens minst ett omskrivningssteg og kan derfor skrives på den ønskede formen

btc;R+!0 0 bt0c

2

7.2.2 Terminering av

R

Siden hF;b c;R00i er en speiling av h ;Ri er det tilstrekkelig å vise at R00 terminerer når TT2-mpo-betingelsene i g. 7.1 er oppfylt for å fastslå terminering R.

Følgende lemma, som såvidt er nevnt (uten bevis) i kapittel 2, vil vise seg være nyttig:

Lemma 7.2

8t2T(F;V )jtmpot

Bevis:

Beviset er ved induksjon på oppbygning av termen t.

t

variabel:

Dersom t = x er også t = x og x%mpox følger av regel mpo-3 siden xF x og;%multimpo ; ved regelmulti-1.

t

konstant eller sammensatt term:

Anta at t = f(t1;:::;tn) der n 0. Da er t = f(t1;:::;tn) og induksjonshypotesen gir oss timpoti for alle i. Der-som n > 0 gir multi-2 brukt n ganger at ft1;:::;tng%multimpo ft1;:::;tng og n nye tilfeller av multi-2 gir ft1;:::;tng%multimpo ft1;:::;tng. Hvis n = 0 er

;%multimpo ;. Siden fFf gir regelmpo-3både f(x1;:::;xn)%mpof(t1;:::;tn) og f(t1;:::;tn)%mpof(t1;:::;tn) som gir ønskede tmpot.

2

Det er da trivielt å vise

Lemma 7.3

For alle termer t;t0 i T(F;V )gjelder tmpot0=)tmpot0

hvor t er termen tder alle funksjonssymboler fw er erstattet medfw.

7.3 Generalisering av TT2

Bevis:

Følger trivielt av lemma 7.2 og egenskaper ved kvasiordninger siden tmpotmpot0mpot0.2

Jeg kan nå vise korrekthet av TT2-mpo-metoden.

Teorem 7.4 (Korrekthet av TT2-

mpo

)

Gitt en preregulær typeordnet signatur der ingen type har et uendelig antall typer under seg. Anta atR er et typeminskende omskriv-ningssystem iog atF ogbc er denert som i kapittel 6. La så %F være en kvasiordning overF slik at w0< w^fw;fw0 2F =)fw%Ffw0 og anta atblcmpo(%F)brc gjelder for alle regelspesialiseringerl;!ri R.

Da terminererRdersom enten R ellerer endelig eller %F er velfundert.

Bevis:

Dersom R00 beskrevet tidligere i dette kapittel terminerer, gir teorem 6.5 at R terminerer.

R00 består av en mengde opprinnelige regler

fblc;!brc j l;!r regelspesialisering i Rg og en mengde ekstraregler

ffw(x1;:::;xn);!fw0(x1;:::;xn) j w0 < w ^fw;fw0 2 F ^fw 6= fw0g. Kravet

blcmpo(%F)brc og lemma 7.3 gir blcmpo(%F)brc for alle opprinnelige reg-ler i R00 og kravene fw%F fw0 og fw6= fw0 gir fwFfw0 og følgelig

fw(x1;:::;xn)mpo(%F)fw0(x1;:::;xn) for alle ekstrareglene i R00. Alle reglene i R00 er dermed inneholdt i mpo(%F). Hviser endelig, er også F endelig og siden mpo(%F) er en forenklingsordning så terminerer R00. Når %F er velfundert er også mpo(%F)

velfundert og da terminerer også R00. I det siste tilfellet, nemlig at R er endelig, er enhver sekvens t1;R!0 0 t2;R!00 av grunntermer bygget opp av en endelig mengde funksjonssymboler2, slik at en uendelig sekvens av disse termene ville vært selvomslut-tende. Denne selvomsluttende sekvensen kan ikke nnes da;R!00 mpo(%F) .

I alle tre tilfellene terminerer R00og følgelig ogsåR.2

7.3 Generalisering av TT2

Metoden TT2-mpo kan generaliseres til å kunne brukes på alle utypede termineringsord-ninger, ved at man gir symbolene fw og fw0 lik vekt/verdi innenfor ordningen. Man må da huske på at alle F-funksjonssymbolene fw00 der w0 < w00 < w også blir tilordnet denne samme vekten. Når w0< w og symbolene fw og fw0 ikkehar samme vekt, må man også sikre at ekstraregelen fw(x1;:::;xn);!fw0(x1;:::;xn) er-minskende.

Det kan forøvrig bemerkes at forandringen fra TT1 til TT2 tok utgangspunkt i ulemper ved stiordningene. SpeilingenhF;bc;R00ier faktisk svakere enn TT1-speilingenhF;bc;R0i i termineringshenseende siden R0 alltid terminerer når R00 gjør det. For andre klasser av ordninger kan det derfor være aktuelt med andre forbedringer av TT1-speilingen, men TT2-metoden er alltid minst like sterk som TT0- og TT1-metodene for alle ordninger.

2noe som kan vises på samme måte som for TT1

TT3-metoden en utvidelse av

In document Terminering av typeordnet omskriving (sider 101-107)