• No results found

Funksjoner: f : Nat ! Int

In document Terminering av typeordnet omskriving (sider 58-62)

a : Int b : Nat

Regel:

b;!a

Termen f(b) kan her ikke skrives om til f(a) fordi denne siste ikke er velformet.

Dette kapitlet vil omhandle typeordnet omskrivning generelt, mens neste kapittel vil ta for seg typeordnet komplettering og egenskaper som naturlig hører med under komplettering.

Jeg vil peke på forskjeller mellom utypet og typeordnet omskrivning og komplettering uten å gå inn på spissndigheter vi også kjenner fra utypet omskrivning.

Siden jeg omtalertermomskrivning antar jeg at alle signaturene er regulære; dette fører til at termalgebraenT(;X) representerer alle-algebraer.

4.1 Den typeordnede omskrivningsrelasjonen

En likning (8X) l r kalles en omskrivningsregel dersom den brukes operasjonelt i en bestemt retning.

Denisjon 4.1 (Omskrivningsregel ([GKK90]))

Entypeordnet omskrivningsregel er en typeordnet likning(8X) lr som tilfredsstillerV(r)V(l)og skrives (8X) l;!r. I utypet omskrivning forlanger man ikke lengerV(r)V(l) og Waldmann ([Wal92]) sier ogsåwe do not restrict to rules whereV(r)V(l), following [DJ90] . [DJ90] omhandler utypet omskrivning, og jeg vil i avsnitt 8.2 vise at det i dette henseende er en fundamental forskjell mellom utypet og typeordnet omskrivning.

Denisjon 4.2 (Typeordnet omskrivningssystem)

Ettypeordnet omskrivningssystem er et parh ;Ri der er en typeordnet signatur og Rer en (endelig eller uendelig) meng-de Sni=1fli;!rig av omskrivningsregler der 8i 2 1::njli;ri 2 T(;X) for en typeordnet variabelmengde X.

Jeg skriver ofteRforh ;Rinår signaturenfremgår av signaturen eller er uten interesse i sammenhengen.

4.1 Den typeordnede omskrivningsrelasjonen Vi har allerede sett at kontekst-applikasjon kan føre til at en velformet term omskrives til en ikke-velformet term. Omskrivningsrelasjonen må opplagt omskrive en velformet til en ny velformet term, men er dette kravet tilstrekkelig? La oss vurdere

Eksempel 4.2

La den koherente (dvs. regulære og lokalt ltrerte) signaturenog regel-mengdenRvære

Typer:

s;s1;s2

s1 s s2 s

Funksjoner:

f : s1!s

f : s2!s a : s1 b : s2

Regel:

a;!b

Spørsmålet man kan vurdere er hvorvidt f(a);R!f(b) skal være en omskrivning i R samtidig som vi registrerer at både f(a) og f(b) er velformede termer.

For å besvare spørsmålet må man se på hva et omskrivningssystem egentlig er ment å være.

(Utypet) omskrivning bygger mye på kontekst-applikasjonsbegrepet. Representerer a;!b forholdet a'b må også t[a]p 't[b]p gjelde dersom t[a]p;!t[b]p.

Hvis a;!b fordi (a) = (b) for alle homomorer fra den aktuelle termelagebraen inn i enhver modell av systemet, så er også (t[a]p) = (t[b]p) i alle tilsvarende utypede systemer.

Omskrivningssystemer handler selvfølgelig ikke bare om likhetsrelasjoner, men uansett må det generelt gjelde at dersom a;R!b, så må samme f brukes på både f(:::;a;:::) og f(:::;b;:::).

Eksempel (forts. av eks. 4.2)

La A være en tolkning av signaturen i eksempel 4.2 gitt vedAs =Z; As1 =f:::;;2;;1;0g ogAs2 =f0;1;2;:::g. Både a og b tolkes i

Asom elementet 0. Funksjonssymbolet f tolkesAsf1!s= x2As1 :;12 ogAsf2!s= x2As2 : +55. AlgebraenAer en typeordnet -algebra.

Jeg vil i dette tilfellet at s;R!t skal representere (s) = (t) for den éntydige homo-moren :T()!A. AlgebraenA tilfredsstiller dette ønsket fordi (a) = (b) = 0.

Dersom f(a);R!f(b) så skulle også (f(a)) = (f(b)), men dette holder ikke fordi (f(a)) =;12 og (f(b)) = 55. Dermed bør vi ikke ha f(a);R!f(b) selv om a;R!b og både f(a) og f(b) er velformede termer.

Siden s1./ s2 er det faktisk ingensammenheng mellom Asf1!s ogAsf2!s. Deklarasjo-nen f : s2!s kunne like gjerne vært skrevet g : s2!s. Utifra dette hadde det også vært unaturlig å ha en omskrivning f(a);R!f(b).

Problemet oppstår fordi et funksjonssymbol kan tolkes på forskjellig måte avhengig av typene til argumentene, selv om argumentene har samme verdi, i dette tilfellet 0. Det ville gått bra dersomAsf1!sogAsf2!s hadde gitt samme resultat for samme argument.

Eksempel (forts. av eks. 4.2)

For å sikre atAsf1!s=Asf2!sAs1\As2 må signaturen

utvides med en deklarasjon f : s!s.

TolkningenAsf!små da tilfredsstilleAsf!s =Asf1!sAs1 ogAsf!s=Asf2!sAs2 som gir ønskedeAsf1!s =Asf!s =Asf2!sAs1\As2.

Rent konkret ville det i vårt tilfelle bety at dersom (a) = (b) = 0 ville også

As1!s(0) = As2!s(0) slik at man kunne si f(a);R!f(b) når man med ;R! vil mene likhet i -algebraer.

For at samme f blir brukt på f(:::;a;:::) og f(:::;b;:::) må det altså nnes en type s slik at f(:::;x:s;:::) er veldenert og a og b er med i T(;X)s. Dette blir sikret av krav 2 til den typeordnede omskrivningsrelasjonen som deneres på følgende måte:

Denisjon 4.3 (Typeordnet omskrivningsrelasjon)

En term t2T(;X)omskrives til en term t0 med en omskrivningsregel (8Y ) l;!r i et omskrivningssystem h;Ri i en posisjonp, som skrivest;R!Xt0, når

1. det ns en substitusjon : Y!T(;X)slik atl = tjp og t0= t[r]p og

2. det ns en typesslik att[x:s]p er en velformet term samtidig soml;r2T(;X)s. Når det ikke erheltnødvendig å eksplisitt nevne variabelmengdene vil jeg i denne innfør-ingen skrive ;R! for;R!X.

4.2 Typeminskende omskrivningssystemer (1)

Ovenstående krav 2 til omskrivningsrelasjoner gjør (som vi skal se mange eksempler på) det vanskelig å resonnere om omskrivningssystemer. Det hadde i mange tilfeller vært ønskelig med et krav til f. eks. regelmengden som er enklere å beregne enn krav 2 men som sikrer kontekstapplikasjon. Vi kaller derfor en regel (8Y ) l;!r kompatibel dersom bruk av denne regelen gjør at krav 2 til omskrivningsrelasjonen alltid er oppfylt2. Mer formelt er (8Y ) l;!r kompatibel hvis krav 2 til omskrivningsrelasjonen er tilfredsstilt for enhver term t2T(;X) og substitusjon :Y!T(;X) der l = tjp.

Et kriterium sikrer kompatibilitet ertypeminskningav reglene. En regel l;!r er typemins-kende dersom LS(l)LS(r) for alle instanser l;!r av regelen. Typen s i punkt 2 i denisjon 4.3 kan da være lik LS(l) siden LS(r)LS(r) impliserer r2T(;X)LS(l). Et omskrivningssystem er typeminskende når enhver regel i systemet er det. En typemins-kende regel l;!r ertypebevarendenår LS(l) = LS(r) for alle instanser l;!r av rege-len. En regel sies å væreekte typeminskendedersom den er typeminskende men ikke type-bevarende, mens en regelinstansl;!r er ekte typeminskende dersom LS(r) < LS(l).

En regel har imidlertid (oftest) uendelige mange instanser, slik at det er nødvendig å nne et enklere kriterium for typeminskning. Det er ikke tilstrekkelig at sjekke LS(l) og LS(r), men det er nok å sjekke l;!r for alle typer termer variable kan instansieres med.

2Med utypet tankegang betyr dette at en omskrivning alltid kan foretas dersom en regel matcher.

4.2 Typeminskende omskrivningssystemer (1)

Denisjon 4.4 (Spesialisering)

En spesialisering : X!X0 er en variabeltilordning =fx1:s1 7! x1:s01;:::;xn:sn7! xn:s0ng der s0i si for allei 21::n og X = Si21::nxi. Den homomorfe utvidelsen :T(;X)!T(;X0)av skrives også .

Jeg bruker stort sett samme navn på variable i spesialiseringer selv om de tilhører ulike variabelmengder. En spesialisering gir kort fortalt en variabel en mindre (eller like stor) type.

Eksempel 4.3

Anta at (S;) = s00 < s0 < s og X = fx1 : s; x2 : s0; x3 : s00g. Da er =fx17!x1:s00; x2 7!x2:s00; x3 7!x3:s00g og 0=fx1 7!x1:s0; x27!x2:s0; x37!

x3:s00g to spesialiseringer av X. Variabelen x1 kan gis typene s;s0 eller s00, x2typene s0eller s00mens x3 må beholde typen s00. Det ns følgelig 6 spesialiseringer av X.

En endelig variabelmengde har et endelig antall spesialiseringer sålenge enhver type har endelige mange typer mindre enn seg.

Teorem 4.5 ([GKK90])

Et omskrivningssystem Rer typeminskende dersom LS(l)LS(r)

for enhver regell;!r i Rog enhver spesialisering av variable il.

Jeg kaller l;!r for enregelspesialisering når l;!r er en regel og er en spesialisering av variable i l. For endelig systemer er altså typeminskning greit beregnbart.

Eksempel 4.4

La en signatur være gitt

Typer:

s;s0

s0s

Funksjoner:

f : s!s

f : s0!s0 g : s!s0 a : s

I denne signaturen ville en regel (8x : s) f(x);!g(x) vært typeminskende, mens en regel (8x : s) f(x);!aikkeville vært det, fordi dens spesialisering (8x : s0) f(x);!a er typeøkende.

Typeminskning synes å være et forholdsvis restriktivt krav. I eksempelet over ville faktisk alle muligeregler vært kompatible, men typeminskningskravet diskvaliserer ere av disse.

Det kan derfor synes litt underlig når både Gnaedig, Kirchner og Kirchner i [Gn92a] (som ikkedreier seg om komplettering), [GKK90] og [GKK87] og Waldmann i [Wal92] alle antar at regelmengdene er typeminskende, noe jeg også vil gjøre i del II av denne oppgaven.

Man kan spørre hvor restriktivt typeminskningskravet egentlig er. Gnaedig et al. påstår at det viser seg i praksis at regler i et omskrivningssystem (eller likninger under komplettering) gjerne er (evt. lar seg orientere slik at de blir) typeminskende. Følgende eksempel viser at det av og til kan dukke opp systemer som opplagt vil føre til typeøkende regler:

Eksempel 4.5 (av Lars With, sitert i [CH93])

Den naturlige måten å denere en funk-sjonsquare(som ganger et tall med seg selv) på (gitt spesikasjonen for Int og Nat og denisjonen av) er:

Typer:

Int;Nat

NatInt

In document Terminering av typeordnet omskriving (sider 58-62)