j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/jhannay.pdf · k ed j er.d et...
TRANSCRIPT
![Page 1: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/1.jpg)
Generalisert algebraisk spesi�kasjon med en
anvendelse på indirekte semantikk
Jo Erskine Hannay
joh@i�.uio.no
29. september 1995
![Page 2: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/2.jpg)
![Page 3: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/3.jpg)
Sammendrag
Abstrakte datatyper har lenge representert et paradigme innen program-design
og program-veri�kasjon. Abstrakt representasjon og spesi�kasjon av program-
mer tillater matematisk resonnering om vesentlige egenskaper ved programmer
uten brysomme implementatoriske detaljer. Det har blitt sett at algebraiske me-
toder kan tas ibruk for abstrakt representasjon og spesi�kasjon av programmer,
og algebraisk spesi�kasjon ved ligninger tilbyr en abstrakt men konstruktiv måte
å spesi�sere funksjoner på: Ligninger kan sees på som abstrakte programmer.
Denne hovedoppgaven er bygget rundt følgende to punkter: 1) Vi skal ge-
neralisere algebraisk spesi�kasjon på en måte som åpner for en spesiell type
modulær spesi�kasjon. 2) Vi skal innføre en spesi�kasjonsmåte som vi skal kalle
indirekte spesi�kasjon, som en variant av algebraisk spesi�kasjon. Vi skal se at
indirekte spesi�kasjon innfører en inhomogen spesi�kasjonssituasjon i forhold til
vanlig algebraisk spesi�kasjon. Den modulære egenskapen ved vår generaliserte
spesi�kasjonsmåte kan så brukes for å fange opp denne inhomogene spesi�ka-
sjonssituasjon. Konsistens er et gjennomgangstema i diskusjonen.
![Page 4: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/4.jpg)
Innhold
1 Innledning 1
2 Abstrakte og formelle datatyper 9
2.1 Grunnleggende begreper : : : : : : : : : : : : : : : : : : : : : : : 9
2.2 Algebra : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12
2.2.1 Formelt språk : : : : : : : : : : : : : : : : : : : : : : : : : 12
2.2.2 Tolking av formelt språk : : : : : : : : : : : : : : : : : : : 13
2.2.3 Homomor�er og term-algebraer : : : : : : : : : : : : : : : 14
2.2.4 Full uttrykkbarhet : : : : : : : : : : : : : : : : : : : : : : 15
2.2.5 Formulering av matematiske påstander : : : : : : : : : : : 16
2.2.6 Omskrivningssystemer og ligningslogikk : : : : : : : : : : 17
2.2.7 Termunivers : : : : : : : : : : : : : : : : : : : : : : : : : : 19
2.2.8 Algebraisk spesi�kasjon : : : : : : : : : : : : : : : : : : : 19
2.2.9 Formell resonnering : : : : : : : : : : : : : : : : : : : : : 21
2.3 Semantikk : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 22
2.3.1 Implementasjon : : : : : : : : : : : : : : : : : : : : : : : : 22
2.3.2 Initialsemantikk : : : : : : : : : : : : : : : : : : : : : : : 24
2.3.3 Finalsemantikk : : : : : : : : : : : : : : : : : : : : : : : : 26
2.3.4 Alternativ de�nisjon av �nalsemantikk : : : : : : : : : : : 30
2.3.5 Initialsemantikk generalisert : : : : : : : : : : : : : : : : : 31
2.3.6 Konsistens : : : : : : : : : : : : : : : : : : : : : : : : : : 32
2.3.7 Sammenheng mellom initial- og �nalsemantikk : : : : : : 33
2.3.8 Inkonsistens og tolkninger : : : : : : : : : : : : : : : : : : 44
2.3.9 Inkonsistens sett som inkongruens : : : : : : : : : : : : : 44
2.3.10 Modulær oppbygging av semantikk : : : : : : : : : : : : : 46
2.4 Mot mekanisk resonnering : : : : : : : : : : : : : : : : : : : : : : 47
2.4.1 Induktive vs. logiske konsekvenser : : : : : : : : : : : : : 47
2.4.2 Konvergente omskrivningssystemer : : : : : : : : : : : : : 49
2.4.3 Resolusjonsmetoder for basis-semantikker : : : : : : : : : 50
2.4.4 Knuth&Bendix-komplettering : : : : : : : : : : : : : : : : 51
2.4.5 Induktiv komplettering : : : : : : : : : : : : : : : : : : : 56
2.4.6 Metoder som søker generell resolusjon : : : : : : : : : : : 57
2.4.7 Algoritmisk oppdagbarhet av inkonsistens : : : : : : : : : 58
2.5 Oppsummering : : : : : : : : : : : : : : : : : : : : : : : : : : : : 61
3 Semantikkgivende syntaktiske funksjoner 63
3.1 Syntaktiske funksjoner : : : : : : : : : : : : : : : : : : : : : : : : 63
3.2 Funksjonsspesi�kasjon over kanoniske representanter : : : : : : : 68
3.2.1 Mekanisk generering av kanoniske representanter : : : : : 69
3.2.2 Eksempler på funksjonsspesi�kasjon : : : : : : : : : : : : 71
3.2.3 Utledning og resolusjon : : : : : : : : : : : : : : : : : : : 73
3.3 Algebraiske spesi�kasjoner av syntaktiske funksjoner : : : : : : : 74
ii
![Page 5: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/5.jpg)
3.4 Reduksjon til basis-semantikker : : : : : : : : : : : : : : : : : : : 82
3.4.1 Kongruens og indirekte spesi�kasjon : : : : : : : : : : : : 83
3.4.2 Formell omgivelse... : : : : : : : : : : : : : : : : : : : : : 84
3.4.3 ...og formelle datatyper : : : : : : : : : : : : : : : : : : : 87
3.4.4 Reduksjon til basis-�nalsemantikk : : : : : : : : : : : : : 88
3.4.5 Reduksjon til basis-initialsemantikk : : : : : : : : : : : : 90
3.5 Inkonsistens i tilknytning til indirekte algebraisk spesi�kasjon : : 107
3.6 Komplettering av id-utvidelser. : : : : : : : : : : : : : : : : : : : 111
3.6.1 id-utvidelser og mangel på kjernebevaring : : : : : : : : : 115
3.6.2 Synliggjøring av kjernebevaring : : : : : : : : : : : : : : : 120
3.6.3 Kjernebevaring av id-utvidelser og inkonsistens : : : : : : 121
3.6.4 Synliggjøring av kjernesemantikk : : : : : : : : : : : : : : 122
3.6.5 id-utvidelser og inkongruens : : : : : : : : : : : : : : : : : 123
3.6.6 Nytten av id-utvidelser som basis-initialsemantikk spesi-
�katorer : : : : : : : : : : : : : : : : : : : : : : : : : : : : 124
3.7 Skjuling av hjelpefunksjoner : : : : : : : : : : : : : : : : : : : : : 125
3.7.1 Operasjonell skjuling : : : : : : : : : : : : : : : : : : : : : 126
3.7.2 Operasjonell skjuling i resolusjonsmetoder : : : : : : : : : 131
3.7.3 Skjuling på spesi�kasjonsnivå : : : : : : : : : : : : : : : : 133
3.7.4 Skjuling på spesi�kasjonsnivå og reduksjon til basis-initial-
semantikk : : : : : : : : : : : : : : : : : : : : : : : : : : : 135
3.7.5 Skjuling ved innføring av typer : : : : : : : : : : : : : : : 136
3.8 Alternativ til id-utvidelser under konsistens : : : : : : : : : : : : 138
3.9 Veri�kasjon av indirekte algebraiske spesi�kasjoner : : : : : : : : 139
3.9.1 Program-analyse : : : : : : : : : : : : : : : : : : : : : : : 139
3.9.2 Veri�kasjon relativt til en direkte algebraisk spesi�kasjon 140
3.10 Andre temaer : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 141
3.10.1 Generaliserte id-utvidelser : : : : : : : : : : : : : : : : : : 141
3.10.2 id-utvidelser og �nalsemantikk : : : : : : : : : : : : : : : 142
3.10.3 Fikspunkt-semantikk : : : : : : : : : : : : : : : : : : : : : 143
3.11 Oppsummering : : : : : : : : : : : : : : : : : : : : : : : : : : : : 144
4 Sekvens-utvidet Knuth&Bendix-komplettering 147
4.1 De�nisjon av sekvens-utvidet Knuth&Bendix-komplettering : : : 147
4.1.1 Utledningssekvenser : : : : : : : : : : : : : : : : : : : : : 148
4.1.2 Utvidelsen : : : : : : : : : : : : : : : : : : : : : : : : : : : 151
4.1.3 Godtgjørelse for sekvens-utvidet Knuth&Bendix-kom-
plettering : : : : : : : : : : : : : : : : : : : : : : : : : : : 151
4.2 Anvendelser av sekvens-utvidet Knuth&Bendix-komplettering : : 154
4.2.1 id-utvidelser og kjernebevaring igjen : : : : : : : : : : : : 154
4.2.2 Skjuling av hjelpefunksjoner : : : : : : : : : : : : : : : : : 158
4.2.3 Basis-initialsemantikk og induktive konsekvenser : : : : : 161
4.2.4 Basis-initialsemantikk og konsistens : : : : : : : : : : : : 162
5 Konklusjon og videre arbeid 163
A Surjektivitet og grunnterm-algebraer 167
A.1 Mer om formelle datatyper og semantikk : : : : : : : : : : : : : : 167
A.1.1 Bevis av (2.2) side 17 : : : : : : : : : : : : : : : : : : : : 167
A.1.2 Semantikk, initialalgebra og �nalalgebra : : : : : : : : : : 167
A.1.3 Elementær ekvivalens og isomor� : : : : : : : : : : : : : : 169
A.1.4 Semantikk på termer med variable : : : : : : : : : : : : : 172
A.2 Induktive konsekvenser og surjektivitet : : : : : : : : : : : : : : : 173
A.3 Omskrivningssystemer og konvergens : : : : : : : : : : : : : : : : 175
A.3.1 Bevis for (2.16) side 49 : : : : : : : : : : : : : : : : : : : : 175
A.3.2 Delvis konvergens vs. full konvergens : : : : : : : : : : : : 175
iii
![Page 6: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/6.jpg)
Figurer
1.1 Implementasjon via formelle datatyper : : : : : : : : : : : : : : : 2
1.2 Svak simulering og implementasjon av abstrakt datatype ved mo-
duldeklarasjon : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6
2.1 Sammenhenger mellom initial- og �nal-semantikk : : : : : : : : : 34
2.2 Del-bevisskisse for sats 2.7 : : : : : : : : : : : : : : : : : : : : : 36
2.3 Inkonsistens sett på to måter. Inversjon : : : : : : : : : : : : : : 37
2.4 Inferensregler i Knuth&Bendix-komplettering : : : : : : : : : : : 54
3.1 Syntaktiske funksjoner : : : : : : : : : : : : : : : : : : : : : : : : 67
3.2 <Uprogrammert> og <pre-programmert> maskin : : : : : : : : : 70
3.3 Illustrasjon til eksempel 42 : : : : : : : : : : : : : : : : : : : : : 75
3.4 Möbius-bånd. Sammenbrudd av skillet mellom syntaks og seman-
tikk : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 77
3.5 Semantikkspesi�kasjon på to nivåer : : : : : : : : : : : : : : : : : 82
3.6 Semantikkspesi�kasjon på ett nivå og sammenslåtte funksjons-
spesi�kasjoner/beskrivelser : : : : : : : : : : : : : : : : : : : : : 83
3.7 Formell omgivelse for reduksjon til basis-semantikker : : : : : : : 85
4.1 Inferensregler i sekvens-utvidet Knuth&Bendix-komplettering : : 152
4.2 Figur til eksempel 87 : : : : : : : : : : : : : : : : : : : : : : : : : 159
iv
![Page 7: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/7.jpg)
Forord
Dette er en hovedfagsrapport for graden Cand. Scient. i informatikk, studie-
retning databehandling ved Universitet i Oslo. Her er det på sin plass å rette
en stor takk til min veileder Olav Lysne for tålmodig, samvittighetsfull og god
veiledning. Takk også til Henrik Linnestad og Peter Ølveczky som har funnet
tid til å kommentere denne rapporten.
Takk til Marit med sitt nesten uknekkelige humør og morsomme lyder som
har holdt ut en frustrert og irritabel Jo, og som har vært 3550 m.o.h. og på
mange fjelltopper. Takk til Kjetil og Rune; poeten Kjetil med hans underfundige
mentale bilder og Rune med sin morsomme absurde fantasi og sitt forsøk på
teselskap på Dyrehaugsryggen. Takk til Peter og hans dyktighet som guide i
Egypt. Hadde det ikke vært for at Peter �kk meg til å ta 200-kurs, hadde
jeg sikkert aldri tatt sikte på informatikk hovedfag (jeg hadde bare pause fra
Musikkhøgskolen). Men takk til de ovenstående først og fremst sommine venner
og takk til alle de venner jeg ikke har nevnt. En takk til Skiforeningen og til
skogene rundt Oslo som gir mulighet for rask oppladning og gjenoppbygging
av fragmenterte hovedfagsstudentsjeler. Jeg vil også få lov til å uttrykke stor
takknemlighet for Jotunheimen.
Hva er min presentasjon av kjent sto� og hva er nye tanker? Jeg har ikke
skrevet med tanke på å få dette skillet klart frem, fordi jeg �nner det distrahe-
rende (og faglig uinteressant) å måtte tenke på å fremheve eget åndsverk. Men
grovt sett kan man regne at alt fra og med avsnitt 2.3.3 side 26 er (til mitt
kjennskap) nytt sto�. Ting som etter dette ikke er nytt sto� er da eksplisitt
fremstilt som presentasjon av kjent sto�. I det sto�et som er før avsnitt 2.3.3
presenteres stort sett kjente begreper, men jeg nevner at presentasjonen til ti-
der, på både godt og vondt, er sterkt preget av min følelse for sto�et og den
vinkling jeg synes er hensiktsmessig for diskusjonen. Det �nnes her også mindre
resonnementer og observasjoner som er egne, men som muligens ikke står frem
som sådane.
Tilleggskapitlene er egenhendig utført. Noen av resultatene er her kjent sto�,
selv om måten jeg har vist disse på muligens er ny. Andre resultater er sann-
synligvis kjent sto�, men for å spare tid har jeg vist slike resultater selv.
Jeg har i referanselisten tatt med referanser til to arbeidsnotater som jeg
har skrevet til veileder underveis. De er tatt med fordi de inneholder ting jeg
har tenkt på i forbindelse med sto�et i denne rapporten, og fordi en av dem
omhandler noen tanker som tar for seg et morsomt sidetema til diskusjonen.
På side 177 �nnes en symboltabell, i tilfelle symbolbruken blir for voldsom.
Det er ingen dårlig idé å rive den ut. Bakerst �nnes også et stikkordsregister.
God lesing!
Oslo, mai 1995 Jo Erskine Hannay
v
![Page 8: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/8.jpg)
![Page 9: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/9.jpg)
Kapittel 1
Innledning
Vi er, selvsagt, interessert i at de datamaskinprogrammer vi skriver er <rik-
tige>. Desverre kan det være svært vanskelig å gå god for at et program av
vesentlig størrelse eller kompleksitet er korrekt; i den forstand at det eksekverte
programmet alltid gir det output man tilsiktet for ethvert input.
Her er det to viktige sider. For det første kan det meget godt tenkes at man
ikke har en presis forestilling om hva man ønsker at et program skal gjøre. For
det andre overlates ofte veri�kasjon av programmer mht. eventuelle slike presise
forestillinger til synsing; eller utelates helt og overlates til testing og debugging
(som gjerne varer ut et programs levetid).
Slik <intuitiv> programmering er ofte tilstrekkelig. I kritiske situasjoner kan
derimot et programs uforutsette oppførsel være katastrofal.1 Metoder for presis
spesi�sering av hva et program gjør eller skal gjøre, samt metoder for på en
strukturert måte å resonnere om hvorvidt programmer er korrekte mht. slike
spesi�kasjoner, er derfor svært viktige. Dette sier ikke at metoder som garante-
rer <riktigheten> av programmer �nnes eller engang er mulige. Ved forskjellige
metoder kan imidlertid visse egenskaper ved programmer spesi�seres og vises å
holde. Presis spesi�kasjon er også essensiell for modularisering av programmer
og for gjenbruk av moduler; trekk som begge kan lette oversikten i programme-
ringen og således også bidra til <riktige> programmer.
Matematisk terminologi kan være svært presis, og �ere spesi�kasjons- og ve-
ri�kasjonsstrategier bruker matematiske vendinger for å beskrive presist hva et
program gjør eller skal gjøre. Felles for mange slike strategier, er å avbilde prog-
ramtekst (syntaks) til en form for meningsfull (semantisk) matematisk størrelse
som på en eller annen måte sier noe om hva programmet gjør. Å beskrive et
program ved denotasjonell semantikk (se f.eks. [Mos90]) går eksempelvis ut på
å avbilde programmer til matematiske funksjoner. Beskrivelse ved aksiomatisk
semantikk (ved f.eks. såkalt <Hoare-analyse> [Hoa69]) avbilder predikatlogiske
utsagn og programtekst til matematiske påstander om programmet. Vår disku-
sjon utover er først og fremst tilknyttet aksiomatisk semantikk.
Sentralt for oss er begrepet datatype. Programmering innbefatter generelt
datastrukturer som variable, lister, trær, grafer, databaser osv. og operasjoner
på disse som sortering av lister eller trær, pruning av grafer m.m. For resonner-
ingsformål er det hensiktsmessig å betrakte datastrukturer og deres tilhørende
operasjoner på et abstrakt nivå, uten tanke på implementasjonsdetaljer. Dette
kan gjøres ved å innse at en programmerer sannsynligvis forestiller seg at data-
strukturer lagrer matematiske verdier; i en vid forstand. Vi kan da betrakte en
1`Uforutsett oppførsel' har her ingenting med maskiner som <tenker på egenhånd>, eiheller med ikke-determinisme å gjøre. `Uforutsett oppførsel' er snarere en detalj i programmetprogrammereren ikke visste han programmerte.
1
![Page 10: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/10.jpg)
1. Innledning
mengde matematiske verdier tenkt lagret i datastrukturen og en mengde mate-
matiske funksjoner svarende til operasjonene på strukturen. En samling av en
slik matematisk verdimengde, tilhørende funksjonsmengde samt de�nisjoner av
funksjonene, utgjør grovt sett hva vi kaller en abstrakt datatype.
En abstrakt datatype er da en <utkrystallisering> av et lettfattelig mate-
matisk objekt som formodentlig søkes implementert i et program. Den virkelige
fortre�elighet av abstrakte datatyper vises likevel først når et programmerings-
språk har mekanismer som tilbyr en måte å <implementere> abstrakte dataty-
per. Eksempelvis tillater modul-konstruksjonene i f.eks. SIMULA [DMN70] og
Smalltalk [GR83] (modulkonstruksjonene kalles i disse språkene `klasser'), blant
mye annet, at datastrukturer og tilhørende operasjoner kan deklareres og brukes
som en enhet i programteksten. Abstrakte datatyper sammen med slike meka-
nismer oppfordrer da til en modulær tankegang ved utvikling av programmer.
Et ideelt scenario for datatype-tankegangen, ville være om enhver program-
meringsoppgave kunne resonneres om og uttrykkes utelukkende ved hjelp av
abstrakte datatyper. Dette ville gi presis matematisk spesi�kasjon på et nivå
hvor forstyrrende implementasjonsdetaljer er abstrahert vekk. Siden implemen-
teres de abstrakte datatyper i et (imperativt) programmeringsspråk ved f.eks.
modulkonstruksjoner. Programmeringsoppgaven er da korrekt løst i den grad
implementasjonene av de abstrakte datatyper er korrekt. I hvilken grad og hvor-
dan det er mulig å <høy>-programmere utelukkende ved abstrakte datatyper
skal ikke være vårt tema. Vår diskusjon hører til under problemstillingen korrekt
implementasjon av abstrakte datatyper.
Anta vi vil vise at en moduldeklarasjon i et (imperativt) programmerings-
språk er en `korrekt implementasjon' av en gitt abstrakt datatype. Dette burde
kunne gjøres ved strategien å avbilde programtekst på semantiske matematiske
objekter; dvs. her fortrinnsvis å avbilde moduldeklarasjoner på abstrakte data-
typer. Vi skal gjøre dette, men avbildningen skal gå via noe vi skal kalle formelle
datatyper . Formelle datatyper fungerer i to roller: Som syntaktiske formelle ut-
trykk for abstrakte datatyper men også som abstrakte uttrykk for (imperative)
moduldeklararsjoner. Formelle datatyper utgjør således et (toveis) grensesnitt
mellom moduldeklarasjoner og abstrakte datatyper. Formelle datatyper er syn-
taktiske objekter, så det semantiske spranget fra syntaks til semantikk be�nner
seg her mellom formelle og abstrakte datatyper. Dette spranget er trivielt sam-
menlignet med et direkte semantisk sprang fra moduldeklarasjon til abstrakt
datatype. Se ellers �gur 1.1.
Moduldeklarasjon
SYNTAKS
SEMANTIKK
Abstrakt datatype
IMPLEMENTASJON
Formell datatype
Figur 1.1: Implementasjon av abstrakt datatype ved moduldeklarasjon. Implementa-
sjonen går via en formell datatype.
2
![Page 11: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/11.jpg)
En formell datatype består essensielt av en mengde termer og en mengde
ligninger. Det er dessuten forbundet et formelt system kalt ligningslogikk til
formelle datatyper. Termene er bl.a. ment å være symbolske representasjoner
av elementer i verdimengden til en abstrakt datatype. Ligningene sammen med
ligningslogikk gir en formell beskrivelse av funksjonene i en abstrakt dataty-
pe. Implementasjonsdetaljer er, som i abstrakte datatyper, abstrahert vekk i
formelle datatyper.
Det er stor interesse for å mekanisere deler av programveri�kasjon. Ved siden
av å fungere somgrensesnittmellommoduldeklarasjoner og abstrakte datatyper,
be�nner i den forbindelse formelle datatyper seg på et abstraksjonsnivå som
egner seg for formell resonnering.
�
Ved matematisk resonnering kan man tidvis ta seg i å bedrive <bevisstløs>
symbolmanipulasjon etter mer eller mindre implisitte regler. <Bevisstløs> i den
forstand at både betydningen til de matematiske symboler som manipuleres
og opphavet til reglene de manipuleres etter, er glemt. Formell resonnering er
rendyrket symbolmanipulasjon utfra eksplisitt gitte regler for hvordan symbo-
lene kan manipuleres. Formelle systemer som predikatkalkyler, ligningslogikk,
�-kalkyle m.m. er beskrivelser av forskjellige typer formell resonnering.
Symboler er i formell resonnering ment å representere matematiske objekter,
og for å få noe nytte ut av formell resonnering må resultater av symbolmani-
pulasjonen (f.eks. et bevistre med aksiomer som blader eller en omskrivning i
�-kalkyle) også tolkes. Men gitt regler og symboler kan selve symbolmanipula-
sjonen eller <resonneringen> skje uten annen viten om de matematiske objekter
symbolene representerer, enn den viten som er nedfelt i reglene. Det er ikke
vanskelig å forestille seg mekaniserbare aspekter ved formell resonnering.
Abstrakte maskiner som endelige automater, Pushdown-automater og i yt-
terste instans Turing maskiner, er matematiske beskrivelser av hva man fore-
stiller seg at `mekaniske prosesser' er. Abstrakte maskiner egner seg for å bli
resonnert matematisk om, og gir da en mulighet for å resonnere matematisk om
mekaniske prosesser. (Abstrakte maskiner er på den annen side ofte lite egnet
for programmering i praksis.) Også abstrakte maskiner er symbolmanipulator-
er, og symboler sett som <maskindeler> er helt strippet for mening: Maskiner
kan kun skjelne syntaks eller <form> og ikke semantikk eller <mening>. Mange
formelle systemer kan naturlig betraktes og beskrives som abstrakte maskiner,
noe vi kommer til å gjøre i diskusjonen fremover, siden vi skal være interessert
i å resonnere matematisk om mekaniserbare aspekter ved formell resonnering. 2
I forbindelse med formelle datatyper, kreves symbolsk representasjon av ele-
menter i muligens uendelige verdimengder. Vi kunne ha et symbol for hvert
element i aktuell verdimengde, men vi skal insistere på å ha abstrakte maskiner
med endelig mange <deler>. Verdimengder skal derfor betraktes som generert
av endelig mange generatorfunksjoner . F.eks. kan de naturlige tall genereres av
konstanten 0 og etterfølgerfunksjonen succ. Dersom symbolene 0 og succ repre-
senterer 0 og succ hhv., kan ethvert naturlig tall representeres av en term på
formen succ(succ(� � �(0)� � �)). Vi betrakter således kun abstrakte datatyper med
2At en oppgave kan mekaniseres betyr i praktisk forstand at et datamaskinprogram kanskrives for å utføre oppgaven. Tilsynelatende er vi tilbake i programmeringsverdenen igjen,snarere enn i den matematiske. I siste instans er det jo ønskelig å implementere et formelt
system på en datamaskin. Men vårt fokus her på formelle systemer og abstrakte maskiner erprimært å demonstrere at en gitt resonneringsprosess er mekaniserbar. Derfor holder vi oss(eller be�nner oss fortsatt) på det matematiske nivå med abstrakte matematiske beskrivelseri form av formelle systemer og abstrakte maskiner.
3
![Page 12: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/12.jpg)
1. Innledning
rekursivt tellbare (mekanisk beregnbare) verdimengder. Vi skal også kun be-
trakte abstrakte datatyper med endelige funksjonsmengder. Termuniverset�
mengden av alle representasjoner av funksjonsapplikasjoner�sikres da også å
være rekursivt tellbart. Mengden av generatortermer i en formell datatype ut-
gjør generatoruniverset som representerer verdimengden i en gitt abstrakt da-
tatype. I eksemplet med de naturlige tall er generatoruniverset i et en-til-en
forhold med den korresponderende verdimengden. Dette er ikke alltid tilfellet.
En naturlig måte å generere f.eks. de hele tall på, er med generatorfunksjonene
0, succ og forgjengerfunksjonen pred. Da vil f.eks. termene succ(pred(0)) og 0
representere samme element i verdimengden.
Den type formelle resonnering vi skal befatte oss med er avleding av ligning-
er fra gitte initialligninger eller aksiomer. Det grunnleggende formelle systemet
skal være det som er forbundet med formelle datatyper; nemlig ligningslogikk.
Ligningslogikk kan gis en spesielt enkel og intuitiv beskrivelse som direkte for-
maliserer den velkjente matematiske resonneringen vi gjør når vi resonnerer
utfra ligninger. Eksempelvis kan vi fra Peano-aksiomene
x+0 = x og x+succ(y) = succ(x+y)
for addisjon i de naturlige tall, avlede ligningen
succ(0)+succ(succ(0)) = succ(succ(0))+succ(0)
ved å starte på hhv. venstre og høyre side i ligningen og erstatte <like for like>
til vi får syntaktisk like termer på følgende måte:
succ(0)+succ(succ(0)) succ(succ(0))+succ(0)
; succ(succ(0)+succ(0))
; succ(succ(succ(0)+0)) � succ(succ(succ(0)+0));
En formell spesi�kasjon av en funksjon kan utrykke en egenskap ved funksjo-
nen; f.eks. kommutativitet x+y = y+x. Vårt mål er imidlertid implementasjon
av abstrakte datatyper, så vi skal være interessert i å �nne konstruktive spesi�-
kasjoner av funksjoner som forteller hvordan verdien av en funksjonsapplikasjon
evalueres. Aksiomene over for addisjon i naturlige tall er konstruktive i så måte.
F.eks. kan man <regne ut> 2+ 1 ved å avlede:
succ(succ(0))+succ(0) ; succ(succ(succ(0)+0)) ; succ(succ(succ(0)))
I tillegg til å implementere funksjoner i en abstrakt datatype, er det svært
relevant å implementere likhets-/identitetsrelasjonen for datatypen. (Dette er
relevant for betingede kontrollstrukturer i programmeringsspråket, men også for
formell resonnering.) I den forbindelse kan det gis ligninger somgir likhet mellom
generatortermer i tilfellet mange-til-en generatorunivers. For generatoruniverset
for de hele tall som over kan vi eksempelvis gi ligningene
succ(pred(x)) = x og pred(succ(x)) = x
for å utrykke hvilke generatortermer som skal forstås som like.
Formelle datatyper har altså et formelt språk og et formelt system knyttet
til seg. Dette språket kan sies å være et abstrakt programmeringsspråk i hvil-
ket abstrakte programmer kan skrives. Slik kan formelle datatyper abstrahere
moduldeklarasjoner skrevet i et mer konkret programmeringsspråk.
Alle som har drevet med formelle systemer eller matematisk bevisføring over-
hodet vet at det ofte er forbundet strategiske vanskeligheter med hvordan man
skal gå frem underveis. Ligningslogikk har dette iboende i og med at det ofte
4
![Page 13: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/13.jpg)
er �ere ligninger som er anvendbare ved et gitt bevissteg. Et uheldig valg fører
kanskje ikke fram, eller kanskje bevisføringen går i det uendelige. Noen ligninger
er imidlertid slik at de kan orienteres og alltid brukes én vei og likevel beholde
den samme bevisstyrken. Videre kan de ha egenskapen at enhver utledning er
endelig og forskjellige valg av anvendte ligninger alltid fører til samme resultat.
Slike ligninger utgjør det vi kaller et konvergent omskrivningssystem og er essen-
sielle for mekaniserbarheten av ligningslogikk; og derved for mekaniserbarheten
av vår formelle resonnering i formelle datatyper. Ligningene succ(pred(x)) = x
og pred(succ(x)) = x orientert mot høyre utgjør et konvergent omskrivningssys-
tem. I lys av at ikke-determinisme er latent i ligningslogikk, utgjør konvergente
omskrivningssystemer en deterministisk del av ligningslogikk; i den forstand at
konvergente omskrivningssystemer sett på som abstrakte deterministiske prog-
rammer gir samme output for et gitt input.
�
Formelle datatyper representerer et <minste steg> fra abstrakte datatyper
inn i den syntaktiske formelle verden. Ved programutvikling tilbyr således for-
melle datatyper en meget presis uttrykksform for matematiske idéer som søkes
implementert, uten forstyrrende og på dette nivå uvesentlige detaljer. Det �nnes
programmeringsspråk som søker å forene slik høynivå spesi�kasjon ved formelle
datatyper og mer implementatoriske mekanismer. Eksempler på slike formelle
spesi�kasjons- og programmeringsspråk er ABEL [DO91] og OBJ [GW88]. Merk
også at applikative programmeringsspråk kan sies å ligge nær opp til abstrak-
sjonsnivået til formelle datatyper.
Veri�kasjonen av at en moduldeklarasjon implementerer en abstrakt dataty-
pe består nå av to hoveddeler. For det første må et samsvar mellom den (impe-
rative) moduldeklarasjonen og den korresponderende formelle datatypen vises.
Dette er beskrevet utfyllende i [Dah92]. (En modul kan vises å imperativt simu-
lere en formell datatype. Dette gjøres ved å identi�sere en såkalt typeekvivalent
til modulen, som så vises å simulere den formelle datatypen. Sentralt er å �nne
e�ektfunksjoner som beskriver (funksjons-)prosedyrers e�ekt på datastrukturen
i modulen. `Hoare-logikk' [Hoa69] kan brukes til å vise korrespondanse mellom
e�ektfunksjon og (funksjons-)prosedyre.) Dette samsvaret kalles svak simuler-
ing og tar bl.a. i betraktning motsetningen mellom fysiske begrensninger på
en fysisk datamaskin og den abstraherte og idealiserte situasjon forbundet med
teoretiske abstrakte maskiner.
Gitt at en moduldeklarasjon således simulerer en formell datatype, tilbyr
den formelle datatypen muligheten å resonnere formelt om modulen: En modul
som tenkes å implementere naturlige tall og addisjon, har kanskje en prosedyre
pluss(x nat, y nat) som vises å ha de abstrakte egenskaper beskrevet ved Peano-
aksiomene over. Ved formell resonnering (ved f.eks. såkalt generatorinduksjon;
ren ligningslogikk er her for <svak>) kan vi avlede x+y = y+x, som da gir i en
passende forstand at pluss(m,n) = pluss(n,m), for alle aktualparametre m,nav type nat; under forutsetning av at evaluering av applikajonene av pluss ikkefører til run-time feil.
Slike resultater om en modul kan brukes i Hoare-analyse av progamtekst der
instanser av modulen blir brukt; det være i et evt. hovedprogram eller f.eks. i
deklarasjonen av en annen modul.3
Den andre delen av veri�kasjonsoppgaven består i å vise at den formelle
3De �este programmeringsspråk tilbyr jo datatypen `naturlige tall med addisjon' ferdigimplementert med korrekt semantikk. Med mekanismer for implementasjon av abstraktedatatyper, kan imidlertid programmereren implementere egne datatyper, og det er danødvendig å etablere <oppførselen>, eller semantikken, til disse.
5
![Page 14: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/14.jpg)
1. Innledning
endmodule;
<>;
module C
F : hG; Ei -syntaktisk formelt uttrykk for A
-abstrakt uttrykk for C
-formell resonnering om C
SYNTAKS
SEMANTIKK
A: hV;F i
SVAK SIMULERING
IMPLEMENTASJON
Figur 1.2: Svak simulering og implementasjon av abstrakt datatype A ved
moduldeklarasjon C og formell datatype F .
datatypen i en presis forstand er en implementasjon av den abstrakte datatypen.
Kriteriet vi skal bruke utrykkes i begrepet induktiv ekvivalens, og ligningslogikk
er sentral for dette. I tilnærmelser til induktiv ekvivalens, vil formell resonnering
være sentral. Figur 1.2 oppsummerer litt av fremstillingen så langt.
Vi skal ikke snakke mer om samsvar mellom moduldeklarasjoner og formelle
datatyper (nedre del av �gur 1.2). Vår diskusjon skal dreie seg om formelle
datatyper og formell resonnering og om samsvar mellom formell- og abstrakt
datatype (øvre del av �gur 1.2).
�
Ligninger deler termuniverset opp i klasser; hver klasse bestående av termer
som kan vises <like> ved ligningslogisk utledning. En slik klasseinndeling kan
vi kalle å gi semantikk til termer. Det at en formell datatype implementerer en
abstrakt datatype, hviler da i essens på en riktig klasseinndeling av termuniver-
set. For formell resonnering er det sentralt at semantikk spesi�seres på en måte
som er tilnærmbar for formelle systemer. Ligninger og ligningslogikk er som sagt
våre midler her.
Ligningslogisk omskrivning til syntaktisk like termer er én måte å gi seman-
tikk på. Det �nnes andre måter å gi semantikk på enn ved slik direkte om-
skrivning. Især for semantikkgiving av generatortermer fra mange-til-en genera-
torunivers, �nnes det en rekke teknikker foruten den direkte metoden. Eksem-
pelvis kan man de�nere semantikk på basis av observatorfunksjoner ved å spesi-
�sere at to generatortermer g; g0 er semantisk like hvis og bare hvis h(g) = h(g0)
for gitte observatorsymboler h, er utledbart fra gitte ligninger.
En av de større diskusjonene i denne hovedoppgaven tar for seg nok en meto-
de: En utledning fra en term g i et konvergent omskrivningssystem gir alltid en
unik normalform. Et konvergent omskrivningssystem kan således sies å beregne
en syntaktisk funksjon synt som gitt en term g, gir dennes normalform. En slik
funksjon gir for hver term g en unik representant for klassen til g ifølge seman-
tikken gitt av ligningene i omskrivningssystemet. Vi kan derfor gi semantikk til
termer ved å bestemme at to termer g; g0 skal forstås som like hvis og bare hvis
synt(g) = synt(g0) (�)
6
![Page 15: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/15.jpg)
dvs. dersom deres normalformer er like. Sålangt er jo dette ikke annet enn
semantikken gitt direkte av ligningene i omskrivningssystemet som implemen-
terer synt . Imidlertid kan semantikkgiving etter prinsipp (�) generaliseres til
semantikkgivende syntaktiske funksjoner som ikke er beregnbare ved konver-
gente omskrivningssystemer i den forstand som over.
En syntaktisk funksjon som implementeres av et konvergent omskrivnings-
system, gir altså for hver term g en unik representant for klassen til g. Denne
representanten er selv et medlem av klassen; en egenskap vi essensielt skal la kva-
li�sere til navnet kanonisk representant for klassen. Alle syntaktiske funksjon-
er implementert av konvergente omskrivningssystemer i ovenstående forstand,
er slike kanonisk-representant funksjoner. Men ikke alle kanonisk-representant
funksjoner kan implementeres på den måten: En vanlig symbolsk representa-
sjon for mengder av naturlige tall, er sekvenser induktivt bygget opp av sym-
bolene 0, succ, Ø og add. Mengden f0; 1g kan f.eks. representeres av termen
add(add(add(Ø,succ(0)),0),succ(0)). Det er klart at vi her har et mange-til-en
generatorunivers, og den ønskete semantikk (klasse-inndeling) til disse termer
gis av ligningene
add(add(s,x),x) = add(s,x) og add(add(s,x),y) = add(add(s,y),x)
For en klasse, kunne en naturlig kanonisk representant være den sorterte term-
en uten repetisjon; for klassen til termen over: add(add(Ø,0),succ(0)). Det �nnes
imidlertid intet konvergent omskrivningssystem som implementerer en syntak-
tisk funksjon som gitt en <mengde>-term, gir den kanoniske representanten til
termens klasse. Grunnen til dette ligger i at ligningen
add(add(s,x),y) = add(add(s,y),x)
ikke kan orienteres uten at beviskraft mistes. Utbygginger av ligningslogikk som
f.eks. betingete og ordnede omskrivningssystemer kan dog bøte på orienterbar-
hetsproblemet i akkurat dette tilfellet.
Syntaktiske funksjoner som ikke er kanonisk-representant funksjoner, kan
også gi semantikk til termer ved prinsipp (�). Også slike syntaktiske funksjoner
går ut over det som er implementerbart av konvergente omskrivningssystemer i
ovennevnte forstand.
Generelle semantikkgivende syntaktiske funksjoner løfter idéen om semantik-
kgiving ved omskriving til syntaktisk like termer ut av det begrensende domenet
til ren ligningslogikk. I lys av orienterbarhetsproblemet over, kan styrken til be-
tingete og ordnede omskrivningssystemer også sies å være innlemmet i generelle
semantikkgivende syntaktiske funksjoner.
Som andre funksjoner, kan semantikkgivende syntaktiske funksjoner spesi�-
seres ved ligninger og ligningslogikk. Ligninger som spesi�serer semantikkgiven-
de syntaktiske funksjoner gir opphav til det vi skal kalle indirekte spesi�kasjon av
semantikk. Indirekte spesi�kasjon spesi�serer semantikk på en måte avledet fra
vanlige måter ligninger gir semantikk på. Via indirekte spesi�kasjon innplantes
dermed ligningslogikk med kraften til generelle semantikkgivende syntaktiske
funksjoner.
Klassen av semantikkgivende syntaktiske funksjoner er altså større enn klas-
sen av funksjoner implementerbare av konvergente omskrivningssystemer. Indi-
rekte spesi�kasjon har derfor et potensiale for å utvide området av semantikk-
spesi�sering som det er mulig å få mekanisk grep på ved konvergente omskriv-
ningssystemer (i sin enkleste versjon).
Vi skal se at spesi�kasjon av semantikkgivende syntaktiske funksjoner be-
grepsmessig kan forestilles å være på et <meta>-nivå forskjellig fra den abstrakte
datatypen om hvilken det i utgangspunktet skal resonneres. Vi må i prinsipp da
7
![Page 16: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/16.jpg)
1. Innledning
behandle indirekte spesi�kasjon separat fra ligninger som de�nerer funksjoner
(i den opprinnelige abstrakte datatypen). Vanlige måter å spesi�sere semantikk
på er ikke tilstrekkelige for å uttrykke slik sammensatt semantikk. Vi utvikler
derfor nye generaliserte semantikker. Dette er en annen hoveddiskusjon i denne
oppgaven. Vår generaliserte semantikk har en modulær oppbygning, og åpner
for en modulær oppbygging av formelle datatyper. Denne modularitet er for oss
essensiell når indirekte spesi�kasjon skal sees som del av en større spesi�kasjons-
omgivelse.
En stor del av diskusjonen skal også gå til å vise at indirekte spesi�kasjon,
under visse interessante forutsetninger faktisk kan integreres med ligninger for
vanlige funksjoner.
Indirekte spesi�kasjon skal vise seg å være et interessant supplement til al-
gebraisk spesi�kasjon. Ett særtrekk ved indirekte spesi�kasjon er en operasjonell
spesi�kasjonsstil som faktisk gjør spesi�kasjoner tilgjengelige for programveri�-
kasjons-metoder.
Konsistens er et gjennomgangstema. Konsistens er relatert til grunnleggen-
de oppfatninger om den semantiske verden som nedfelles som forutfatninger i
semantikkspesi�kasjon og som ikke ønskes rørt ved. Eksempelvis nedfelles vår
oppfatning om at en matematisk påstand ikke både kan være sann og gal i
predikatlogikk ved prede�nerte (forutfattede) tolkninger av symbolene true og
false, samt ved å kalle en aksiommengde for inkonsistent dersom true = false
er utledbart fra mengden. (In)konsistens må således alltid sees relativt til slike
forutfatninger.
Vi skal sammen med utviklingen av generaliserte semantikker, utvikle til-
hørende konsistensbegreper. Vi skal se hvordan inkonsistens kan oppdages og
hvordan konsistens kan etableres.
Vi skal dessuten innføre begrepet kunstig inkonsistens. Dette er inkonsistens
med opphav i hjelpefunksjoner ; funksjoner som er nyttige hjelpemidler under
implementasjon men som begrepsmessig kan sees ikke å høre hjemme på det
semantiske plan. Vi skal søke å skjule hjelpefunksjoner og dermed kunstig in-
konsistens fra den formelle resonnering, slik at de implementatoriske fordeler
ved bruken av hjelpefunksjoner likevel kan utnyttes.
*
Universell algebra fanger inn mange begreper relatert til formelle og abstrak-
te datatyper. I kapittel 2 presenteres noen for oss vesentligere deler av universell
algebra, innledet av en kort oppsummering av grunnleggende matematiske be-
greper. Presentasjonen av algebra går så over i et avsnitt om semantikk. Vi
utvikler generaliserte måter å spesi�sere semantikk på vha. ligningslogikk�
vårt grunnleggende formelle system. Vi utvikler også konsistens-begreper knyt-
tet til disse spesi�kasjonsmåtene. Kapitlet avsluttes med mekanisering av lig-
ningslogikk og relevante formelle systemer bygget på ligningslogikk for formell
resonnering i formelle datatyper.
I kapittel 3 tar vi så for oss semantikkgivende syntaktiske funksjoner. Vi
lar slike funksjoner motiveres som en eksplisittgjøring av konvergente omskriv-
ningssystemer. Vi generaliserer den semantikkgivende egenskapen og anerkjen-
ner kanonisk-representant funksjoner som et viktig spesialtilfelle. Vi studererer
så spesi�kasjoner av semantikkgivende syntaktiske funksjoner og bruker disse i
indirekte spesi�kasjon. Disse benyttes i anvendelser av semantikkbegrepene ut-
viklet i kapittel 2. I dette kapitlet utvikles også begrepet kunstig inkonsistens,
og vi utvikler teori og antyder metoder for skjuling av kunstig inkonsistens.
I kapittel 4 de�nerer vi en utvidelse av Knuth&Bendix-komplettering. Denne
utvidelsen er interessant i sammenheng med konstruktive bevis. Vi relaterer
dessuten denne utvidelsen til temaer i kapittel 2 og kapittel 3.
8
![Page 17: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/17.jpg)
Kapittel 2
Abstrakte og formelle
datatyper
I dette kapitlet de�neres begrepene abstrakt datatype og formell datatype. Vi
etablerer hva vi mener med at en formell datatype er en korrekt implementasjon
av en abstrakt datatype.
Vi presenterer forskjellige måter å de�nere formelle datatyper på ved hjelp
av ligningslogikk. Slike ulike måter fremkommer ved ulike metoder for å dele
opp et termunivers i klasser, slik at hver klasse består av termer vi ønsker skal
representere samme matematiske objekt i en abstrakt datatype.
Kjente måter som initialsemantikk og �nalsemantikk presenteres. Vi innfører
generaliseringer av initialsemantikk og �nalsemantikk. Disse generaliseringer gir
oss et begrepsapparat som gjør oss istand til å uttrykke vesentlige egenskaper
ved spesi�kasjonen av formelle datatyper.
Konsistens er her en sentral egenskap. Ved hjelp av generalisert initial- og
�nalsemantikk, knytter vi konsistens til en intensjon bak måtene å spesi�sere
forskjellige formelle datatyper på.
Våre generaliseringer av initial- og �nalsemantikk er også en forberedelse til
diskusjonen i kapittel 3.
Vi er interessert i formell men ogsåmekanisk resonnering. Kapitlet avsluttes
med en presentasjon av sentrale begreper for mekanisk resonnering.
2.1 Grunnleggende begreper
Vi oppfrisker her noen grunnleggende matematiske begreper som brukes utover
i den videre diskusjon. Vi bygger det hele opp ved begrepet mengde.
Mengder
Vi antar en intuitiv forståelse av begrepet mengde. Vi antar også en grunnlegg-
ende kjennskap til notasjoner og begreper knyttet til mengder. Vi skal her likevel
gi noen avledninger og konvensjoner som vi kommer til å bruke i det følgende.
Vi skal alltid (implisitt eller eksplisitt) se matematiske objekter som elemen-
ter i mengder. Dersom a; a0 betegner samme element i en mengde, skal vi si
de er identiske. Vi skriver da a = a0. Vi bruker denne notasjon kun for slik
elementidentitet. Vi skriver a 6= a0 når a og a0 ikke er identiske.
9
![Page 18: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/18.jpg)
2. Abstrakte og formelle datatyper
n-tupler
Et n-tuppel ha1; : : : ; ani for et naturlig tall n, er en ordnet mengde1. Et m-
tuppel hb1; : : : ; bmi og et n-tuppel ha1; : : : ; ani er identiske hvis og bare hvis
m = n og ai = bi for 1 � i � n. Vi kaller ai for i-te komponent i ha1; : : : ; ani.
En sekvens q er et n-tuppel for en uspesi�sert n og der n er lengden av q.
En sekvens kan dessuten ha uendelig lengde. Vi betegner sekvenser av lengde 0
med ". Vi betegner lengden av en sekvens s med lens.
For vilkårlige mengder A1; : : : ; An, er mengden betegnet A1 � � � � � An �
det n-foldige kartesiske produkt av A1; : : : ; An �mengden av n-tupler
ha1; : : : ; ani slik at a1 2 A1; : : : ; an 2 An. Dersom alle A1; : : : ;An er identis-
ke med en mengde A, betegner vi ofte A1 � � � � � An med An, der A0 = ;.
Relasjoner
En n-ær relasjon < på A1; : : : ;An for et naturlig tall n, er en delmengde av
A1 � � � � � An for gitte mengder A1; : : : ; An. Dersom A1; : : : ;An alle er iden-
tiske med en mengde A, sier vi bare at < er en relasjon på A og kaller da A
relasjonsdomenet (eller bare domenet) til <. Restriksjonen av en relasjon
< � A1 � � � � � An til A01 � � � � � A0n (eller til A0 for A01 = � � � = A0n = A0) for
A01 � A1; : : : ;A0n � An, er relasjonen <\A
01� � � � �A
0n og betegnes <A01�����A0n
(eller <A0 for A01 = � � � = A0n = A0).
Vi skal i vår diskusjon fremover snakke mye om binære (2-ære) relasjoner. La
< � A�B og<0 � B�C være vilkårlige binære relasjoner for vilkårlige mengder
A;B;C. < sin invers <�1, er relasjonen slik at hb; ai 2 <�1 hvis og bare hvis
ha; bi 2 <. Enhver binær relasjon har en entydig invers. Sammensetningen
<�<0 av < og <0 er relasjonen fha; ci j 9b 2 B j ha; bi 2 < og hb; ci 2 <0g. For
< � A�A kan vi de�nere<0 = fha; ai j a 2 Ag,<1 = < og<n = <n�1�<;n > 1.
(Denne notasjonen skal ikke forveksles med den for kartesiske produkt.)
La < være en vilkårlig binær relasjon på A for en eller annen mengde A
(altså < � A �A). < kalles
re�eksiv dersom ha; ai 2 <, for alle a 2 A.
symmetrisk dersom ha; bi 2 < ) hb; ai 2 <. (Dvs. < = <�1.)
transitiv dersom ha; bi 2 < og hb; ci 2 < ) ha; ci 2 <.
En ekvivalens-relasjon er en (binær) relasjon som er re�eksiv, symmetrisk og
transitiv.
For en vilkårlig binær relasjon < på en eller annen mengde A, de�nerer vi
forskjellige tillukninger av < slik:
<+ = <0 [ <, den re�eksive tillukning av <.
<+ =Sn>0<
n, den transitive tillukning av <.
M.a.o. ha; ci 2 <+ , ha; ci 2 < eller det �nnes en b slik at ha; bi 2
< og hb; ci 2 <+.
<� = <0 [ <+, den re�eksiv-transitive tillukning av <.
<� = < [ <�1, den symmetriske tillukning av <.
< er velfundert dersom det ikke �nnes noen uendelig sekvens ha; b; c; : : : i
for a; b; c; : : : 2 A slik at ha; bi 2 <; hb; ci 2 <; : : : .
Den universelle relasjon på enA1�� � ��An er mengden fha1; : : : ; ani j ai 2
Ai; 1 � i � ng. Vi skal ofte skrive a < b og a 6< b i stedet for ha; bi 2 < og
ha; bi 62 < hhv.
1En ordnet mengde er mengde-teoretisk ikke en ny type objekt, men de�neres utfra(vanlige)mengder. Paret ha; bi de�neres i mengde-teori sommengden ffag; fa; bgg. Et vilkårlign-tuppel ha1; : : : ; ani;n > 2 de�neres som paret hha1; : : : ; an�1i; ani.
10
![Page 19: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/19.jpg)
2.1. Grunnleggende begreper
Funksjoner
En funksjon f fra A til B for vilkårlige mengder A og B, er en binær relasjon
<f � A �B slik at det �nnes nøyaktig ett tuppel (2-tuppel) i <f slik at a 2 A
er første komponent, for alle a 2 A. For hver a 2 A kan vi da identi�sere en unik
b 2 B�verdien av a under f�slik at a <f b og som vi skal betegne f(a). Vi
kaller A og B hhv. funksjonsdomenet (eller bare domenet) og kodomenet
til f . Vi skal tidvis forestille oss funksjoner som operatorer på sitt domene.
For en vilkårlig funksjon f fra A til B for mengder A og B, sier vi da at f tar
elementer fra A og gir elementer fra B. Vi skal da kalle f(a) en applikasjon
av f på a for en a 2 A. Vi betegner mengden av alle funksjoner med domene A
og kodomene B med (A! B).
La f 2 (A ! B) være en vilkårlig funksjon for mengder A og B. For en
A0 � A sier vi at f(A0) = ff(a) j a 2 A0g er bildet av A0 under f . En funksjon
f 2 (A! B) er injektiv dersom for alle a; a0 2 A: a 6= a0 ) f(a) 6= f(a0). En
funksjon f 2 (A ! B) er surjektiv dersom det for alle b 2 B �nnes en a 2 A
slik at f(a) = b; dvs. at B er identisk med bildet av A under f . En bijektiv
funksjon er en funksjon som er både injektiv og surjektiv. Alle binære relasjoner
har som sagt en invers. Bijektive funksjoner (spesielle binære relasjoner) har
dessuten alltid en invers som selv er en bijektiv funksjon. Sammensetningen
av funksjoner er en funksjon. Sammensetninger av bijektive funksjoner er en
bijektiv funksjon.
Et �kspunkt til en funksjon f er et element a i domenet til f slik at f(a) = a.
En konstantfunksjon fa er en funksjon slik at for en a så er fa(x) = a for
alle x i domenet til fa. En mengde A er lukket under en funksjon f , dersom
f(a) 2 A for alle a 2 A.
La f 2 (A1�� � ��An ! B); n > 0. Vi sier at f er n-ær. La a1 2 A1; : : : ; an 2
An. Vi skal lette skrivemåten for f(ha1; : : : ; ani) ved å skrive f(a1; : : : ; an).
Funksjoner er relasjoner, så relasjon-språkbruken `en n-ær funksjon f på A'
for en mengde A, henspeiler på en delmengde av An+1. Funksjonsdomenet til f
er da An. Videre er begrepene `restriksjon', `sammensetning' samt notasjonen
fn for funksjoner de�nert ved relasjoner.
Vi kommer til å bruke ordene funksjon og avbildning om hverandre.
*
Vi har de�nert relasjoner som en spesiell type mengde og funksjoner som en
spesiell type relasjon. Dette de�nisjonshierarkiet skal vi ha nytte av å snu på
hodet som følger: Vi kan betrakte en n-ær relasjon < på mengder A1; : : : ;An
som en n-ær funksjon f<�funksjonsvarianten til <�fra domenet A1 �
� � ��An til kodomenet Bool = f?;>g hvor f<(a1; : : : an) = > hvis og bare hvis
ha1; : : : ; ani 2 <, for a1 2 A1; : : : ; an 2 An. (Men merk at f< jo selvfølgelig igjen
er en (spesiell) n+ 1-ær relasjon <f< på A1; : : : ; An;Bool.)
Vi skal også tidvis se på elementer som konstantfunksjoner; dvs. et vilkårlig
element a 2 A sees på som en konstantfunksjon med kodomene fag.
Store mengder
Vi betegner mengden av alle mengder med S. Mengden av alle delmengder av
en mengde A betegnes med P(A) . Mengden av alle funksjoner betegnes med
F.2
2`Mengden av alle mengder' er ikke et uproblematisk begrep (jf. `Russels paradoks'), menfor vår diskusjon lar vi dette ligge.
11
![Page 20: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/20.jpg)
2. Abstrakte og formelle datatyper
Avgjørbarhet
En egenskap P sies å være (e�ektivt) avgjørbar , dersom det �nnes en deter-
ministisk mekanisk prosess (deterministisk abstrakt maskin) som i endelig tid
(i et endelig antall diskrete steg) gir en bestemt symbolkon�gurasjon S(P) hvis
og bare hvis P holder.
En mengde sies å være avgjørbar, dersom medlemskap i mengden er avgjør-
bar.
En oppgave O er algoritmisk, dersom det �nnes en deterministisk mekanisk
prosess som i endelig tid i en passende forstand utfører O.
2.2 Algebra
Fra det grunnleggende begrep `mengde' har vi de�nert <høyere-nivå> begreper
som n-tupler, relasjoner og funksjoner som spesielle typer mengder. Vi de�nerer
nå et begrep på et enda høyere nivå.
En algebra er essensielt et tuppel hA;F i, der A er en mengde og F er en
mengde funksjoner på A. En algebra kan således avgrense et interesse-område.
Ønsker man f.eks. å studere trigonometriske funksjoner på de reelle tall, vil man
kanskje betrakte algebraen hR;f+; �; sin; cosgi. Vi skal med begrepet algebra
presisere begrepet abstrakt datatype og også begrepet formell datatype.
Vi søker å implementere abstrakte datatyper ved formelle datatyper. Ved
å implementere en abstrakt datatype menes her 1) å representere verdimeng-
den i datatypen symbolsk, og 2) å modellere funksjonene i datatypen formelt.
Implementasjon kan altså sees som bestående av en representasjonell del og
en operasjonell del. Vi ønsker også å resonnere formelt og i siste instans også
mekanisk ved hjelp av formelle datatyper. Til dette trengs også symbolske re-
presentasjoner og/eller et formelt språk.
Vi gir her først det formelle språket. Deretter de�neres avbildninger som
<tolker> språket til semantiske størrelser.
2.2.1 Formelt språk
Det formelle språket skal være typet. Typeuniverset er imidlertid svært enkelt
og en delmengde av f.eks. typeuniverset i typet �-kalkyle.
La GType være en gitt symbolmengde av grunntyper. Vi de�nerer en meng-
de Type av typer fra GType og symbolmengden f�;!g som den minste meng-
den av symbolsekvenser (skrives tettløpende) som tilfredstiller:
� GType � Type
� T1; : : : ; Tn; T 2 GType;n � 1 ) T1� � � ��Tn!T 2 Type
(Merk at denne de�nisjonen av typer ikke er induktiv. De typer vi her befatter
oss med, kan derfor ikke være av vilkårlig kompleksitet.)
En funksjonspro�l er en symbolsekvens på formen
f : T
der f er et funksjonsymbol og T er en type. Vi sier at f her er av type T .
DersomT = T1� � � ��Tn!TC ;n � 1, sier vi at f har aritet n. Hvis T 2 GType,
kalles f en konstant.
En (funksjons)signatur � er en endelig mengde funksjonspro�ler3. Et
funksjonsymbol kan høyst forekomme én gang i en signatur. Dersom det kun
3Vi lar informasjon om ariteter og om hvilke grunntyper som er involvert fremgå implisittgjennom pro�lene i signaturen.
12
![Page 21: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/21.jpg)
2.2. Algebra
forekommer én grunntype i en signatur, skal vi tidvis forkorte skrivemåten av
signaturen ved å bare angi funksjonsymbolene (og deres ariteter) uten fullsten-
dig pro�l. Denne skrivemåten inspirerer til å kalle en slik en-typet situasjon for
utypet. Vi skal også bruke denne forkortede skrivemåten ellers, hvis typeinfor-
masjon er over�ødig for diskusjonen.
En variabelpro�l er en symbolsekvens på formen
x : T
der x er et variabel(symbol) og T er en grunntype. Vi sier at x er av type T . En
variabelsignatur V er en endelig mengde variabelpro�ler. Et variabelsymbol
kan kun forekomme én gang i en variabelsignatur. Dersom det kun forekommer
én grunntype i en variabelsignatur, eller hvis det ellers er hensiktsmessig, skal
vi tidvis angi bare variabelsymbolene, uten fullstendig pro�l.
La � og V være en vilkårlig funksjonssignatur og variabelsignatur hhv. Vi
de�nerer mengden T�(V) av termer over � og V som den minste mengden av
symbolsekvenser induktivt bygget over � og V (samt noen skillesymboler) som
tilfredstiller følgende:
� V � T�(V)
� Hvis k : T 2 � og T 2 GType, så er k 2 T�(V).
� Hvis f : T1� � � ��Tn!T 2 � og ti 2 T�(V) og ti er av type Ti for
0 < i � n, så er f(t1, : : : ,tn) 2 T�(V). Vi sier at f(t1, : : : ,tn) er av type T .
Vi betegner mengden av grunntermer T�(;) med G�.
2.2.2 Tolking av formelt språk
En typetolk er en avbildning �T 2 (Type ! Sn ;), slik at for vilkårlige
T0; T1; : : : ; Tn; T 2 GType;n � 1:
� �T (T0) 2Sn ;.
� �T (T1� � � ��Tn!T ) = (�T (T1)� � � � � �T (Tn)! �T (T )).
For en vilkårlig T 2 Type, sier vi at �T (T ) er en tolkning av T .
En funksjonspro�ltolk er en avbildning �F slik at for en vilkårlig pro�l
f : T :
�F(f : T ) 2 �T (T )
for en (forutbestemt) tolk av typer �T . Vi sier at�F(f : T ) er en tolkning av f ,for et vilkårlig funksjonssymbol f ; underforstått en tilhørende funksjonspro�l.
Vi sier at �T her inngår i (de�nisjonen av) �F .
*
En�-algebraA for en signatur� er et r+1-tuppel hD1; : : : ; Dr; F i 2Sr�P(F),
slik atDi = �AT(Ti); 1 � i � r for en typetolk�
ATog der fT1; : : : ; Trg er mengden
av alle grunntyper som forekommer i �. For 1 � i � r kalles Di tolkningen
av Ti i A. Videre er F en mengde funksjoner (også konstanter) slik: For hver
funksjonspro�l f : T i � skal det være en tolkning fA = �AF (f : T ) i F for en
funksjonspro�ltolk �AF hvori �AT inngår. Vi sier at fA er tolkningen av f i A.
Algebraen A er en tolkning av � og er entydig bestemt av �ATog �A
F. Som regel
skal vi ikke eksplisitt nevne tolkene som inngår i de�nisjonen av en �-algebra.
13
![Page 22: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/22.jpg)
2. Abstrakte og formelle datatyper
Dersom vi snakker om en �-algebra for en eller annen ikke nærmere spesi�-
sert signatur �, skal vi bare bruke benevnelsen algebra. Vi kaller Di;1 � i � r,
bæremengder tilA, ogF kalles funksjonsmengden tilA. Vi skal ofte betrakte
bæremengdene til en algebra under ett og da som unionen av alle bæremengd-
ene. Denne unionen refereres da til som algebraens domene. Vi betegner ofte
en algebra og dens domene med det samme; altså A = hA;F i. Vi betegner da
bæremengden Di � A for en 1 � i � r tidvis med ATi .
Eksempel 1 Betrakt den (utypete) signaturen Int = f0,succ,predg. Ariteter er
hhv. 0, 1 og 1. En mulig tolkning av Int er algebraen Int = hZ;f0; succ; predgi
der succ og pred er hhv. etterfølger- og forgjengerfunksjonen for hele tall. Disse
er tolkningene i Int av hhv. succ og pred. Konstantfunksjonen 0 er tolkningen i
Int av 0.d
Et redukt av en �-algebra A = hDA; FAi er en �0-algebra B = hDB ; FBi for
en �0 � � slik at DB � DA; FB � F0A, der F
0A er restriksjonene av funksjonene
i FA til DB . Spesialtilfellet for FB = F 0A kalles en subalgebra av A. Et redukt
av A som ikke er en subalgebra av A er et ekte redukt av A.
Eksempel 2 For signaturen Int+ = f0; succ; pred;+g med ariteter 0;1; 1; 2
hhv., betrakt Int+-algebraen Int+ = hZ;f0; succ; pred;+Zgi for +Zaddisjon
på hele tall. For Nat+ = f0; succ;+g � Int
+, er Nat+-algebraen Nat+ =
hN;f0; succ;+Ngi for +Naddisjon på hele tall, et ekte redukt av Int+.d
Med en `abstrakt datatype' skal vi nå mene en `algebra'�tolkningen av en
funksjonssignatur; altså en tolkning av et syntaktisk objekt. Vi har nå etablert
et grunnlag for vårt semantiske sprang mellom syntaks og semantikk.
Grunntermer er delen av det formelle språk som skal representere elementer
og funksjonsapplikasjoner i en algebra. Gitt en �-algebra A, følger en grunn-
termtolk naturlig utfra typetolken og funksjonspro�ltolken i de�nisjonen av A.
Vi skal imidlertid generelt ha bruk for mer <abstrakte> termtolker. Til det
trengs et par begreper til.
2.2.3 Homomor�er og term-algebraer
La A;B være to vilkårlige �-algebraer for en signatur �. En homomor� � fra
A til B er en avbildning fra A sitt domene til B sitt domene slik at for alle
f : T1� � � ��Tn!T 2 �;n � 1
�(fA(a1; : : : ; an)) = fB(�(a1); : : : ; �(an))
for alle ha1; : : : ; ani 2 A1� � � � �An, der Ai er tolkningen av Ti;1 � i � n, i A,
og fA og fB er tolkningene av f i A og B hhv. Vi krever at h�(a1); : : : ; �(an)i 2
B1 � � � � �Bn der Bi er tolkningen av Ti;1 � i � n, i B.
Vi skriver av og til �BA for en homomor� fra en algebra A til en algebra
B. Mengden av homomor�er fra A til B betegnes med HomBA . Dersom det
�nnes en surjektiv homomor� fra A til B, kalles B et homomorft bilde av A.
Sammensetningen av homomor�er er en homomor�.
La K være en klasse (mengde) algebraer. En algebra A 2 K kalles initiell i
K hvis det for alle algebraer B 2 K �ns nøyaktig én homomor� fra A til B. På
den annen side kalles A �nal i K hvis det for alle algebraer B 2 K �ns nøyaktig
én homomor� fra B til A.
For en gitt � og variabelsignatur V de�nerer vi en term-algebra fra � og
V som �-algebraen med bæremengde T�(V) og med den minste funksjonsmeng-
de slik at det for hver funksjonspro�l f : T1� � � ��Tn!T 2 �;n � 1, �nnes
14
![Page 23: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/23.jpg)
2.2. Algebra
en tolkning fT av f slik at fT (t1; : : : ; tn) = f(t1, : : : ,tn) for alle ti av type
Ti;0 � i � n. Funksjonene i en term-algebra kan, om man vil, betraktes som
bestanddelene til den algoritmiske oppbyggingen fra funksjonsymboler og va-
riable, av et rekursivt tellbart univers av termer. Term-algebraer betegnes, som
andre algebraer, ofte med deres bæremengde.
En homomor� � fra en term-algebra T�(V) til en eller annen �-algebra A er
entydig bestemt av sin restriksjon �0 til V �A. Det følger da at for en gitt �, så
er G� initiell i klassen av �-algebraer. Betrakt derfor nå den unike homomor�
�AG� for en vilkårlig �-algebra A. For en vilkårlig term f(t1, : : : ,tn) 2 G�; n � 0,
har vi
�AG�(f(t1, : : : ,tn)) = �AG�(fT (t1; : : : ; tn)) = fA(�AG�(t1); : : : ; �
AG�(tn))
Denne unike homomor� utgjør en grunntermtolk for G�.4
Eksempel 3 For signaturen Int og algebraen Int som i eksempel 1, betrakt
grunnterm-algebraen GInt. Den unike homomo�en �IntGInttolker hver grunnterm
g 2 GInt til et element i Int . F.eks. er �IntGInt
(succ(pred(0))) = succ(pred(0)) = 0.d
Grunnterm-algebraer utgjør grunnlaget for de�nisjonen av formelle datatyper.
Før vi de�nerer formelle datatyper, skal vi fullføre presentasjonen av symbolsk
representasjon.
2.2.4 Full uttrykkbarhet
Ifølge de�nisjonen, kan en �-algebra A ha andre <ekstra> funksjoner i sin
funksjonsmengde enn dem som er tolkninger av en pro�l i �. Domenet kan
dessuten ha elementer som ikke er nåbare fra G�, i den forstand at det ikke
�nnes noen g 2 G� slik at �AG�(g) = a for et ikke-nåbart element a 2 A. Vi
kaller her a skrot i forhold til �.
Eksempel 4 Betrakt igjen signaturen Nat+ = f0; succ;+g. La a 62 N.
Algebraen Nat+a = hN[ fag;f0; succa;+agi, der 0, succa og +a er tolkningene
av hhv. 0, succ og +, er en Nat+-algebra der a er skrot i forhold til Nat+.
Funksjonene succa og +a er utvidelser av succ og + på N til N[fag; f.eks. slik
at succa(a) = a, a + x = a og x+ a = x.d
Vi vil implementere abstrakte datatyper, og er da interessert i at det formelle
språket kan uttrykke mest mulig av den abstrakte datatypen. Hvis grunnterm-
tolken �AG� fra en G� til en �-algebra A er surjektiv, er alle elementer nåbare.
Siden signaturer er endelige, er ethvert termunivers rekursivt tellbart. Dette er
viktig, fordi formell resonnering i formelle datatyper ved de metoder vi skal snak-
ke om, avhenger av rekursivt tellbare termunivers. Dersom grunntermtolken er
surjektiv, må domenet til A være rekursivt tellbart. Ønsker vi å kunne uttrykke
alle elementer i bæremengder til algebraer, avgrenses da de algebraer som vi
4De svært enkle sammensatte typer i vårt utsnitt av universell algebra, representerer
en begrenset uttrykkskraft i forhold til det fulle språket til typet �-kalkyle. Det er ikkehvilke algebraer som kan representeres som begrenses, men heller graden av detalj med
hvilken elementer og funksjonsapplikasjoner i enkelte algebraer kan representeres. Betraktervi eksempelvis signaturen � = fk : T; f : T!Tg, så kan typen T tolkes til for eksempel enmengde A�B. En gitt term i G� vil da representere et element ha; bi 2 A�B, men uttrykker
ikke at ha; bi er et tuppel med to komponenter a og b. Denne begrensningen i detaljnivågjelder også når T tolkes til en mengde på formen (A ! B). Imidlertid er vår kontekstimplementasjon av, og resonnering om programmer. I den forbindelse skal vi ikke behøve merenn dette begrensete detaljnivå.
15
![Page 24: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/24.jpg)
2. Abstrakte og formelle datatyper
kan implementere til dem som er homomorfe bilder av grunnterm-algebraer, og
altså har rekursivt tellbare domener.
Merk at selv om �AG� er surjektiv, kan A fortsatt ha <ekstra> funksjoner.
Men har man først surjektiv grunntermtolk, kan slike funksjoner symboliseres
ved å bruke en fornuftigere signatur.
La A være en �-algebra for en �. Dersom grunntermtolken �AG� er surjektiv
og det ikke �nnes funksjoner i A som ikke er en tolkning av et symbol i �, skal
vi si at vi har full uttrykkbarhet (for A).
2.2.5 Formulering av matematiske påstander
Termer med variable kan benyttes for å uttrykke matematiske påstander. For en
signatur � betegner vi mengden fhs; ti j s; t 2 T�(V) og s; t er av samme typeg
med E(T�(V)). Vi kaller elementer i E(T�(V)) ligninger; skrevet s = t.5
For vilkårlige s = t 2 E(T�(V)) og en �-algebra A, skriver vi A j= s = t for
å antyde at �(s) = �(t) for alle � 2 HomAT�(V)
og sier da at A tilfredstiller
ligningen s = t eller at s = t er sann i A. Hver � 2 HomAT�(V)
er som sagt
entydig bestemt av sin restriksjon til V � A. Følgelig sier påstanden A j= s = t
at s og t representerer samme element i A for hver tolkning til elementer i A av
variablene i s og t.6
Eksempel 5 For Int-algebraen Int fra eksempel 1, sier påstanden Int j=
succ(pred(x)) = x at succ(pred(x)) = x for alle x 2Z.d
Merk at for alle � 2 HomAT�(V)
og g 2 G� � T�(V) har vi �(g) = �AG�(g). For
g; g0 2 G� har vi da
A j= g = g0 , �AG�(g) = �AG�(g0) (2.1)
En substitusjon er en funksjon som gitt en term instansierer variablene
i termen med andre termer. Mer presist er en substitusjon en homomor� � 2
HomT�(V)T�(V)
. Her er � entydig bestemt av sin restriksjon til V � T�(V), m.a.o.
entydig bestemt av verdiene den tilordner variablene i sitt domene. Vi skriver t�
for applikasjonen av en substitusjon � på en term t. En substitusjon i HomG�T�(V)
kalles en grunnsubstitusjon (for �).
Eksempel 6 (Her og andre steder der det er visuelt hensiktsmessig, benyttes
mix�x-notasjon for enkelte termer.) Betrakt signaturen Nat+ = f0; succ;+g.
La � 2 HomTNat+(V)
TNat+(V)for V = fx; yg, entydig bestemt ved �(x) = succ(x) og
�(y) = succ(y). Da er (x+y)� = x�+y� = succ(x)+succ(y).
La så � være en grunnsubstitusjon for Nat+ entydig bestemt ved �(x) = 0
og �(y) = succ(0). Da er (x+y)� = x�+y� = 0+succ(0).d
En substitusjon er altså entydig bestemt av verdiene den tilordner variablene
i sitt domene. Den til enhver tid aktuelle variabelsignatur er ofte implisitt el-
ler gitt utfra kontekst. Derfor skal vi istedenfor � 2 HomT�(V)T�(V)
heller skrive
5Vi de�nerer ligninger som tupler dvs. ordnete mengder. Dette fordi ligninger for oss ersyntaktiske konstruksjoner som skal behandles av abstrakte maskiner. Abstrakte maskinerbehandler ikke syntaks som uordnet. De må isåfall programmeres til det. (F.eks. må kalkylerfor logikk eksplisitt ha inferensregler som uttrykker eventuelle symmetri-egenskaper.) Merkforresten at vi bruker et fett likhetstegn `=' i ligninger i motsetning til tegnet `=' for
elementidentitet.6Dette tilsvarer tolkningen av det analoge predikatlogiske utsagnet 8x : s = t, der x
er en variabelliste som inkluderer variable forekommende i s og t. Merk at vi ikke harallkvantorsymbol og at likhetssymbolet i våre ligninger ikke tolkes eksplisitt.
16
![Page 25: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/25.jpg)
2.2. Algebra
� 2 SbstT�(V), og si at � er en T�(V)-substitusjon. Vi skal dessuten skrive
SbstT�0 (V0) for �0 � �, med den forståelse at en � 2 SbstT�0(V
0) sin restrik-
sjon til V � T�(V) er inneholdt i V � T�0(V0). Det skal følgelig forståes at
SbstT�0 (V0) � Hom
T�(V)
T�(V).
En påstand som A j= s = t er også en påstand om funksjonsapplikasjoner i
A i kraft av tolken av funksjonssymboler som inngår i tolken av � til A. Dersom
A har skrot i forhold til �, og s; t har variable, er A j= s = t en påstand om
funksjonsapplikasjoner også på skrotet. Men en påstand om identitet med skrot
kan ikke uttrykkes ved ligninger i grunntermer:
Eksempel 7 For Nat+-algebraen Nat+a fra eksempel 4, sier påstanden
Nat+a j= x+y = y+x at x +a y = y +a x ikke bare for alle x; y 2 N, men
endog for alle x; y 2 N[ fag. Påstanden sier f.eks. at a +a 0 = 0 +a a. Denne
delpåstanden kan ikke uttrykkes ved en ligning i grunntermer fra GNat+.d
Hvis derimot �AG� er surjektiv, forstår vi intuitivt, siden alle elementer i bære-
mengden til A er nåbare fra G��altså uttrykkbare ved grunntermer�at
A j= s = t , 8� 2 SbstG� j A j= s� = t� (2.2)
for alle s; t 2 T�(V). Dvs. at alle identiteter i A kan uttrykkes ved ligninger i
grunntermer. (For et bevis av (2.2), se avsnitt A.1.1 i tilleggskapittel A.)
Nå kan det virke som om de�nisjonen av algebra er uhensiktsmessig, siden
vi stadig må forfekte surjektivitet av grunntermtolken. I forbindelse med lig-
ningslogikk og logisk gyldighet skal vi imidlertid siden se det meningsfylte i at
en tolkning av en signatur ikke er et homomorft bilde av den korresponderende
grunnterm-algebraen.
Vi avslutter avsnittet med noen begreper som for oss skal bli sentrale:
De�nisjon 2.1 La A og B være to �-algebraer for en vilkårlig signatur �. B
er induktivt implisert av A dersom for alle g; g0 2 G�
A j= g = g0 ) B j= g = g0
B er elementært implisert av A dersom for alle s; t 2 T�(V)
A j= s = t ) B j= s = t
Dersom A og B er gjensidig induktivt/elementært implisert av hverandre sier
vi at A og B er induktivt/elementært ekvivalente.
2.2.6 Omskrivningssystemer og ligningslogikk
Vi har de�nert et formelt språk. Representasjons-delen av implementasjon er så-
ledes beskrevet. Nå skal den operasjonelle delen av formelle datatyper beskrives.
Vi trenger nå litt mer detaljerte begreper om termer.
Vi de�nerer en posisjon i t for en vilkårlig term t som en sekvens av positive
heltall slik:
� " er en posisjon i t.
� For t = f(t1, : : : ,tn) er p = i:q en posisjon i t, hvis 1 � i � n og q er en
posisjon i ti.
(Merk her forkortet skrivemåte for sekvenser av tall.) For en vilkårlig term t og
en posisjon p i t de�nerer vi en funksjon jp slik:
17
![Page 26: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/26.jpg)
2. Abstrakte og formelle datatyper
� tj" = t
� tji:q = tijq for t = f(t1, : : : ,tn);1 � i � n.
For en term t og en posisjon p i t kalles tjp en subterm av t. Dersom p 6= ",
kalles tjp en ekte subterm av t.
Det er tidvis hensiktsmessig å visualisere termer som trær7, med funksjons-
symboler med aritet større enn 1 som intern-noder, og med variable og konstan-
ter som blader. En (ekte) subterm svarer da til et (ekte) subtre. For en term
t = f(t1, : : : ,tn) sies den viste forekomsten av f å være rot i termen (treet) t.
En konstant k er rot i k. Vi sier at en subterm s er på dybde d i en term t,
dersom tjp = s for en posisjon p og lenp = d.
For vilkårlige termer t; s og posisjon p i t de�nerer vi en erstatter-funksjon
[]p slik:
� t[s]" = s
� f(t1, : : : ,ti, : : : ,tn)[s]i:q = f(t1, : : : ,ti[s]q, : : : ,tn) for t = f(t1, : : : ,tn);1 �
i � n.
Dvs. t[s]p er termen t, men med subtermen i posisjon p erstattet med s. En
kontekst er en term bygget over funksjonssymboler og den spesielle konstanten
2; kalt et hull. La c være en kontekst med n forekomster av hull. Vi betegner c
med hullene substituert (fylt) med termene s1; : : : ; sn, ved c[s1; : : : ; sn]. (Vi skal
her aldri fylle kun noen hull i en kontekst.) Dersom c[s] = s sier vi at konteksten
c er tom. Vi skriver c 2 T�(V) istedenfor c 2 T�[f2g(V).
Et termomskrivningssystem eller her bare omskrivningssystem, er et
formelt system og en abstrakt maskin. Et omskrivningssystem hT�(V);Ri har
et univers T�(V) for en signatur � og en endelig mengde R � E(T�(V)) av
tupler, nå kalt regler, skrevet v! h. (Merk at tupler er ordnede.) For vilkårlige
s; t 2 T�(V) sier vi at hT�(V);Ri omskriver s til t i ett steg dersom det �nnes
en v!h 2 R slik at sjp = v� og t = s[h�]p, for en posisjon p i s og substitusjon
� på T�(V). Deloppgaven å �nne en � slik at sjp = v� kalles matching og er
algoritmisk.
Eksempel 8 For signaturen Nat+ = f0; succ;+g, betrakt følgende regelmengde
fra E(TNat+(V)):
R =
�+(x,0) ! x;
+(x,succ(y)) ! succ(+(x,y))
�
Da kan termen +(succ(succ(0)),succ(0)) omskrives til succ(+(succ(succ(0)),0)),
ved regelen +(x,succ(y)) ! succ(+(x,y)) i posisjon " og substitusjonen � slik at
�(x) = succ(succ(0)) og �(y) = 0. Videre kan succ(+(succ(succ(0)),0)) omskrives
til succ(succ(succ(0))).d
Når universet fremgår av diskusjonen, betegner vi ofte et omskrivningssystem
kun ved dets regelmengde.
En binær relasjon < på T�(V) for en signatur � er monoton mhp. substi-
tusjon dersom s < t ) s� < t� for alle s; t 2 T�(V) og alle substitusjoner � på
T�(V).< ermonoton mhp. kontekstapplikasjon dersom s < t ) c[s]< c[t]
for alle c; s; t 2 T�(V). Dersom < er monoton på begge disse måter, kalles < en
omskrivningsrelasjon. En <-utledning i T , for < en omskrivningsrelasjon
7I stil med vår oppsummering av grunnleggende begreper i avsnitt 2.1, kan trær de�neressom spesielle typer sekvenser. Her er det imidlertid mer hensiktsmessig å hvile på en intuitivvisuell forestilling av trær.
18
![Page 27: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/27.jpg)
2.2. Algebra
og T et vilkårlig redukt av T�(V), er en sekvens ht0; t1; t2; : : :i av termer i T slik
at ti < ti+1 for alle i = 0;1; 2; : : : . En omskrivningsrelasjon som er velfundert
kalles en reduksjonsordning.
Betrakt nå en vilkårligM � E(T�(V)). Vi betrakterM som en binær relasjon
på T�(V). Vi betegner den monotone tillukning fhc[s�]; c[t�]i j hs; ti 2 Mg
for alle (etthulls-)kontekster c 2 T�(V) og substitusjoner � på T�(V), avM med!M. Den inverse til !
Mskriver vi som
Mog den symmetrisk-monotone tillukning
av M som $M. En $
M-utledning kalles bare en M-utledning. En !
M-utledning
kalles en ensrettet M-utledning. Dersom det for en ligning s = t �nnes en
M-utledning hs; : : : ; ti sier vi at s = t er utledbar i M . Vi sier også at s er
omskrivbar til t iM .
Det er lett å se for alle s; t 2 T�(V) at s!R t hvis og bare hvis omskrivnings-
systemet hT�(V); Ri omskriver s til t i ett steg. Videre har vi s$R t hvis og bare
hvis hT�(V); Ri omskriver s til t eller t til s i ett steg. At s�$Rt betyr da at s
og t kan omskrives til hverandre (i ingen eller �er steg) i omskrivningssystemet
R[R�1, som for hver regel v!h iR, også har en invers h!v. Et slikt symmet-
risk omskrivningssystem utgjør en for våre formål hensiktsmessig beskrivelse av
ligningslogikk. Ligningslogikk er det grunnleggende formelle system for oss.
2.2.7 Termunivers
Vi skyter her inn en generell kommentar. I de�nisjonen av monoton tilluk-
ning av en M � E(T�(V)), betraktet vi M som en relasjon på T�(V). Men
M kan også betraktes som en relasjon på en vilkårlig T�0(V0) � T�(V). Utfra
dette kan vi få forskjellige tillukninger�$M. I tillegg fås forskjellige tilluknin-
ger fhc[s�]; c[t�]i j hs; ti 2 Mg på vilkårlige T�0(V0) � T�(V) ved å betrakte
� 2 SbstT�0 (V0) og kontekster c 2 T�0(V
0).
Vi antar imidlertid alltid gitt, implisitt eller eksplisitt, en signatur som be-
stemmer det aktuelle termunivers for diskusjonen. Eksempler på dette har
vært i de�nisjonene av substitusjoner, omskrivningssystemer, monoton tilluk-
ning samt i de�nisjonen av induktiv/elementær implikasjon/ekvivalens. Vi skal
etterhvert se �ere eksempler hvor det er nødvendig å anta et slikt avgrensende
termunivers.
2.2.8 Algebraisk spesi�kasjon
Vi skal nå bruke ligninger og ligningslogikk til å gi konstruktive spesi�kasjoner
av funksjoner i abstrakte datatyper. Med `konstruktiv' spesi�kasjon/de�nisjon
av en funksjon mener vi her en spesi�kasjon som gir nok informasjon om funk-
sjonen til at verdien under funksjonen av et vilkårlig element i domenet til
funksjonen, kan fremska�es (fra spesi�kasjonen). Vi presiserer:
De�nisjon 2.2 La A være en �-algebra. La E være en endelig ligningsmengde.
For en n-ær funksjon fA i A er E en (algebraisk funksjons-)spesi�kasjon
av fA, dersom følgende to krav er oppfylt:
1. Kompletthet:
fA(a1; : : : ; an) = b for a1; : : : ; an; b 2 A
+
det �ns en f 2 � og g1; : : : ; gn; g 2 G�, slik at fA er tolkningen av f i A,
og a1; : : : ; an; b er tolkningene av hhv. g1; : : : ; gn; g, og slik at
f(g1, : : : ,gn)�$Eg
19
![Page 28: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/28.jpg)
2. Abstrakte og formelle datatyper
2. Sunnhet:
For vilkårlige f 2 � og g1; : : : ; gn; g 2 G�
f(g1, : : : ,gn)�$Eg ) A j= f(g1, : : : ,gn) = g
Hvis punkt 2 er oppfylt, kalles E en (algebraisk funksjons-)beskrivelse av
fA.
Ved modellering av funksjoner i en abstrakt datatype, er altså målet å �nne al-
gebraiske spesi�kasjoner av funksjonene. Merk at punkt 1 i de�nisjon 2.2 fordrer
full uttrykkbarhet.
Eksempel 9 Følgende ligningsmengde
EP =
�x+0 = x;
x+succ(y) = succ(x+y)
�
er en algebraisk spesi�kasjon av funksjonen + i Nat+-algebraenNat+ fra eksem-
pel 2. Dette er lett å vise ved induksjon over termoppbygningen til grunntermer
i GNat+: Vi viser at alle ligninger
succn(0)+succ
m(0) = succ
p(0)
er utledbare i EP for p = n+m, og ikke utledbare i EP for p 6= n+m. Spesielt
sistnevnte oppgave forenkles kraftig ved å innse at EP er konvergent (se avsnitt
2.4.2 på side 49). Grunntermtolken �Nat+
GNat+er selvfølgelig surjektiv.
d
Det er mange relasjoner som kan de�neres på verdimengden til en abstrakt
datatype. (Ved de�nisjonen har algebraer kun funksjoner assosiert med seg. Men
enhver relasjon har en funksjonsvariant i en algebra utvidet med en bæremeng-
de Bool = f?;>g.) Alle datatyper har imidlertid naturlig en identitetsrelasjon
knyttet til seg. Det er vesentlig i programmering at identitetsrelasjonen på en
datatype er implementert. Implementasjonen av identitetsrelasjonen er også ve-
sentlig for den formelle resonnering vi er interessert i. For en �-algebra A, er
identitetsrelasjonen på A implementert av en ligningsmengde E hvis vi har full
uttrykkbarhet og
g�$Eg0 , A j= g = g0 (2.3)
for alle g; g0 2 G�. I tilfellet en-til-en generatorunivers, har vi at identitetsrela-
sjonen er implementert av E, hvis og bare hvis E er en algebraisk spesi�kasjon
av alle funksjonene i A. Dette sees lett ved å observere at punkt 1 i de�nisjon
2.2 gitt full uttrykkbarhet og en-til-en generatorunivers, kan uttrykkes ved
1'. For vilkårlige f 2 � og g1; : : : ; gn; g 2 G�
f(g1, : : : ,gn)�$Eg ( A j= f(g1, : : : ,gn) = g
Eksempel 10 Umiddelbart kan vi altså si at Peano-aksiomene EP ogNat+ fra
eksempel 9 tilfredstiller (2.3), dvs.
g�$EP
g0 , Nat+ j= g = g0
for alle g; g0 2 GNat+ .d
20
![Page 29: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/29.jpg)
2.2. Algebra
I tilfellet mange-til-en generatorunivers, vil en ligningsmengde E implemen-
tere identitetsrelasjonen på A hvis og bare hvis E er en algebraisk spesi�kasjon
av alle funksjonene i A, og E i tillegg spesi�serer hvilke generatortermer som
skal forstås som like, dvs. for alle generatortermer gc; g0c 2 G�:
gc�$Eg0c , A j= gc = g0c (2.4)
Isåfall kan punkt 1 i de�nisjon 2.2 gitt full uttrykkbarhet også nå uttrykkes ved
punkt 1'.
Eksempel 11 Betrakt Int+ og Int+ fra eksempel 2. Betrakt følgende lignings-
mengder
E+Z=
8<:
x+0 = x;
x+succ(y) = succ(x+y);
x+pred(y) = pred(x+y)
9=;
EIntc =
�succ(pred(x)) = x;
pred(succ(x)) = x
�
E+Zer en algebraisk spesi�kasjon av addisjon på hele tall, og EIntc tilfredstiller
(2.4), dvs.
gc�$
EIntcg0c , Int+ j= gc = g0c
for alle gc; g0c 2 GInt. Grunntermtolken er her surjektiv, så da er det lett å se at
identitetsrelasjonen på Int+ er implementert ved EInt+ = E+Z[ EIntc . D.v.s.
vi har (2.3):
g�$
EInt+
g0 , Int+ j= g = g0
for alle g; g 2 GInt+ .d
Ialt er det da for en �-algebra A rimelig å si at G� og en ligningsmengde E
som tilfredstiller (2.3) er, gitt full uttrykkbarhet, en korrekt implementasjon av
A.
Ligninger sammen med ligningslogikk utgjør på denne måten den opera-
sjonelle delen av implementasjon: Ligninger sammen med ligningslogikk imple-
menterer funksjoner og identitetsrelasjoner for abstrakte datatyper. I tråd med
dette er det naturlig å se på ligninger som (ikke-deterministiske) abstrakte
programmer.
2.2.9 Formell resonnering
Vårt mål for en ligningsmengde er i vår sammenheng, korrekt implementasjon
uttrykt ved (2.3) på side 20. Vi vet f.eks. at Peano-aksiomene EP fra eksempel
9 er en algebraisk spesi�kasjon av addisjon på de naturlige tall, og er således en
korrekt implementasjon av algebraen Nat+ (eksempel 10).
Men det er ikke alltid like lett å avgjøre om en ligningsmengde er en korrekt
implementasjon som det er for Peano-aksiomene og algebraen Nat+ i eksempel
10. I tilnærminger til korrekt implementasjon av en abstrakt datatype, vil man
derfor generelt ta utgangspunkt i viten om visse (semantiske) egenskaper i den
abstrakte datatypen, og så søke å veri�sere at en ligningsmengde implementerer
disse egenskaper (i det minste).
Sett f.eks. at vi ikke allerede visste at EP tilfredstiller
g�$EP
g0 , Nat+ j= g = g0
21
![Page 30: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/30.jpg)
2. Abstrakte og formelle datatyper
for alle g; g0 2 GNat+. Siden vi vet at addisjon på naturlige tall er f.eks. kommuta-
tiv; altså at n+m = m+n for alle naturlige tallm;n, dvs.Nat+ j= x+y = y+x,
må EP for å være en korrekt implementasjon av Nat+ i det minste tilfredstille
x�+y��$EP
y�+x�
for hver instansiering � 2 SbstGNat+ . Fra ligningene EP er det derfor interes-
sant å kunne utlede kommutativitets-ligningen x+y = y+x formelt og aller helst
mekanisk.
Så generelt; dersom vi vet for en abstrakt datatype A at
A j= s = t
så er det for en ligningsmengde E interessant å etablere påstander som
8� 2 SbstG� j s��$Et� (2.5)
i tilknytning til veri�seringen av om E er del av en korrekt implementasjon av
A.
Således resonnerer vi formelt om abstrakte programmer i håp om å kunne
etablere korrekt implementasjon av abstrakte datatyper. For å videreføre dette
(ned) til konkrete programmer, anta eksempelvis en funksjonsprosedyre pluss(x:nat, y: nat) ment å implementere addisjon på naturlige tall. Anta vi har vist
at pluss(x: nat, y: nat) har de abstrakte egenskaper uttrykt i EP (ved svak
simulering (se kapittel 1). Det å etablere x�+y��$EP
y�+x� for alle grunnsubs-
titusjoner (instansieringer) � 2 SbstGNat+ , tilsvarerer da å vise at pluss(m,n) ogpluss(n,m) evaluerer til det samme for alle aktualparametre m,n av type nat(under forutsetning av ingen runtime-feil).
2.3 Semantikk
I dette avsnitt skal vi presisere og utvikle begrepet `formell datatype'.
Mens vi holder fast ved den konstruktive måten å spesi�sere funksjoner på
gitt ved algebraisk funksjons-spesi�kasjon (de�nisjon 2.2), skal vi betrakte and-
re måter å spesi�sere identitet mellom generatortermer på, enn den ved direkte
omskrivning til syntaktisk like termer. Vi �nner derfor en generalisering av kra-
vet for `korrekt implementasjon' (2.3) på side 20. Vi de�nerer så utfra denne en
entitet som skal fungere som en mal for de formelle datatyper som de�neres.
2.3.1 Implementasjon
Grunnterm-algebraer er utgangspunktet for formelle datatyper. En grunnterm-
algebra med sine noe uinteressante funksjoner kan betraktes, omman vil, som en
<rå-maskin> uten annen evne enn å generere (ved sine funksjoner) det rekursivt
tellbare antall termer fra en endelig signatur. Siden vi vil implementere abstrakte
datatyper ved formelle datatyper, skal vi prøve å <programmere> slike <rå-
maskiner>. Først ser vi hvordan grunnterm-algebraer kan tilføres mer struktur.
La A være en vilkårlig �-algebra for en signatur �. En kongruensrelasjon
' på A er en ekvivalensrelasjon på A som er kongruent, dvs. tilfredstiller for
hvert funksjonssymbol f med aritet n i �:
a1 ' b1; : : : ; an ' bn ) fA(a1; : : : ; an) ' fA(b1; : : : ; bn)
for vilkårlige ai; bi 2 A, 1 � i � n, der fA er tolkningen av f i A. Vi skal her
de�nere kongruensrelasjoner kun i tilknytning til algebraer.
22
![Page 31: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/31.jpg)
2.3. Semantikk
Kvotient-algebraen av A over ', skrevet A=' for en vilkårlig kongru-
ensrelasjon ', er �-algebraen med bæremengde f[a]' j a 2 Ag der [a]' = fb 2
A j b ' ag kalt kongruensklassen til a, og med funksjonsmengde bestående av
en funksjon fA=' for hver f i � slik at fA='([a1]'; : : : ; [an]') = [f(a1; : : : ; an)]'for vilkårlige a1; : : : ; an 2 A. Merk at fA=' er velde�nert i kraft av at ' er en
kongruensrelasjon. Vi har
A=' j= a = a0 , a; a0 er i samme q 2 A=' , a ' a0 (2.6)
for alle a; a0 2 A.
Vi skal nå betrakte en spesiell type kongruensrelasjon:
Sats 2.1 La A og B være vilkårlige �-algebraer for en signatur �. For en homo-
mor� �BA fra A til B, er relasjonen ' i A slik at
a ' a0 , �BA(a) = �BA(a0)
en kongruensrelasjon.
Godtgjørelse: Ekvivalensegenskapene følger fra at identitetsrelasjonen i B er en
ekvivalensrelasjon. Kongruensegenskapen følger fra de�nisjonen av homomor�.
3
Relasjonen ' i sats 2.1 kalles kongruensrelasjonen indusert (i A) av �BA .
Spesielt, la A være en vilkårlig �-algebra for en signatur �, og betrakt
kongruensrelasjonen 'AG� indusert i G� av den unike grunntermtolk �AG� . Denne
relasjon er ved (2.1) på side 16 slik at for alle g; g0 2 G�
g 'AG� g0, �AG�(g) = �AG�(g
0) , A j= g = g0 (2.7)
Betrakt så kvotientalgebraen G�='AG�. Bæremengden i algebraen G�='
AG�
be-
står av klasser av termer. Hver klasse består av termer som tolkes likt i A av
grunntermtolken �AG� . For �AG�
surjektiv, kaller vi G�='AG�
implementasjonen
av A. Algebraen G�='AG�
skal fungere som en mal og et mål ved de�nisjonen av
formelle datatyper.
Vi skal etablere noen egenskaper ved implementasjoner. Generelt har vi for
en kongruensrelasjon ' på en G� følgende:
1. G�=' j= g = g0 , g ' g0, for alle g; g0 2 G� (Følger ved (2.6).)
2. G�=' j= s = t , 8� 2 SbstG� j s� ' t� (Følger ved (2.2) på side 17,
siden homomor�en fra G� til G�=' er surjektiv.)
For en G�='AG�
og en �-algebra A, har vi derfor ved punkt 1 og (2.7) induktiv
ekvivalens med A:
G�='AG�j= g = g0 , A j= g = g0 (2.8)
for alle g; g0 2 G�. Dersom G�='AG�
er implementasjonen av A (surjektiv �AG�),
har vi dessuten ved punkt 2 og (2.2) side 17 elementær ekvivalens:
G�='AG�j= s = t , A j= s = t (2.9)
for alle s; t 2 T�(V). Dette innebærer en strukturlikhet mellom en algebra A og
implementasjonen av A til den grad at enhver påstand uttrykt ved ligninger er
sann i implementasjonen hvis og bare hvis påstanden er sann i A. Strukturen i
algebraene G�='AG�
og A er dessuten like i den forstand at det kun er navnene
på komponentene som er forskjellige (isomor�).
23
![Page 32: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/32.jpg)
2. Abstrakte og formelle datatyper
Kongruensrelasjoner er i kraft av kongruensklassene de induserer i term-
algebraer, istand til å beskrive hvilke termer i et termunivers som skal forstås
som like. Vi skal derfor si at en kongruensrelasjon på en G� utgjør en seman-
tikk for G�. (Ekvivalens- og kongruensegenskapene ved en kongruensrelasjon er
essensielle for slik semantikkgiving. Det er innlysende at ekvivalensegenskapene
i denne sammenheng er essensielle. Kongruensegenskapen sikrer at funksjons-
symboler (alltid) kan tolkes til funksjoner. Anta nemlig for en relasjon < ment å
utgjøre en semantikk, at g < g0 men f(g) 6< f(g0). M.a.o. g og g0 skal tolkes til
samme objekt, men f(g) og f(g0) skal tolkes til forskjellige objekter. Da kan ikke
funksjonssymbolet f tolkes til en funksjon.) Semantikken der alle termer skal
tolkes forskjellig (;0G��den re�eksive tillukning av ; på G�), skal vi kalle fri.
Vi skal ofte også si at funksjonssymboler gis semantikk av en kongruensrelasjon.
En detalj: I diskusjonen utover skal ligninger og ligningslogikk være sentral
i forskjellige måter å de�nere semantikk på. I den forbindelse fremmer vi et
krav om at termer av ulik type ikke skal stå i relasjon til hverandre i en seman-
tikk. Dette kravet oppfylles sålenge domenet til semantikken ikke kun består av
konstanter. I motsatt fall krever vi:
k ' k0 og k; k0 er konstanter ) k; k0 er av samme type (2.10)
Ofte vil de semantikker vi spesi�serer oppfylle (2.10) automatisk, men noen
ganger skal vi bli nødt til presisere (2.10) eksplisitt.
I avsnitt A.1 i tilleggskapittel A utvikles noen �ere begreper og utdypende
sammenhenger omkring semantikk, induktiv og elementær ekvivalens og iso-
mor�, men som ikke har essensiell betydning for vår diskusjon videre her.
Konguensrelasjoner tilfører struktur på term-algebraer. Den ønskede struk-
tur i en grunnterm-algebra G� i forhold til en algebra A, gis altså ved kongru-
ensrelasjonen 'AG� indusert av den unike grunntermtolken �AG� . Vi skal nå se
hvordan slik struktur kan gjøres tilgjengelig for mekanisk håndtering.
2.3.2 Initialsemantikk
Den første <instansensieringen> av vårt nå presise begrep `implementasjon' føl-
ger lett fra diskusjonen om `korrekt implementasjon' i avsnitt 2.2.8 og uttrykt i
(2.3) på side 20. Følgende resultat er essensielt:
Sats 2.2 La � være en vilkårlig signatur. For en vilkårlig E � E(T�(V)) er�$E
en kongruensrelasjon på T�(V).
Bevis: Siden�$E
er en re�eksiv-symmetrisk-transitiv tillukning, er det inn-
lysende at�$E
er re�eksiv, symmetrisk og transitiv på T�(V). La så fT være
en vilkårlig funksjon i T�(V). Anta fT er n-ær. Anta si�$Eti for vilkårlige
si; ti 2 T�(V); 1 � i � n. Ved monotonitet mhp. kontekstapplikasjon får vi
fT (s1; : : : ; sn)�$EfT (t1; : : : ; tn), og
�$E
er en kongruensrelasjon på T�(V).
2
For et vilkårlig redukt T av T�(V) er så restriksjonen�$E T av
�$E, ved sats A.12
side 173, en kongruensrelasjon på T . Vi skriver T =E for kvotient-algebraen av
T over�$E T .
De�nisjon 2.3 For en signatur � og ligningsmengde E, kaller vi kvotiental-
gebraen G�=E den formelle basis-initielle datatypen spesi�sert av � og E.
Relasjonen�$E G� kalles basis-initialsemantikken spesi�sert av � og E.
Det viktige er nå at ligningsmengder sammen med ligningslogikk gir en formell-
syntaktisk måte å spesi�sere kongruensrelasjoner i grunnterm-algebraer på.
24
![Page 33: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/33.jpg)
2.3. Semantikk
De�nisjon 2.4 La ' være en vilkårlig kongruensrelasjon på (domenet til) en
term-algebra T . En endelig ligningsmengde E er en (direkte) algebraisk spe-
si�kasjon av ' dersom�$E T = '
Gitt en �-algebra A, er vårt mål å �nne en ligningsmengde som er en algebraisk
spesi�kasjon av 'AG� . Dersom �AG� er surjektiv, er nemlig den formelle datatypen
G�=E i så fall implementasjonen av A.
Eksempel 12 Ligningsmengden EInt+ = E+Z[EIntc fra eksempel 11 side 21
er en algebraisk spesi�kasjon av 'IntGInt+. Dette siden
g�$EInt+
g0 , Int+ j= g = g0
for alle g; g 2 GInt+ . Altså er restriksjonen�$EInt+
GInt+av
�$EInt+
identisk med 'IntGInt+.
Den formelle datatypen GInt+=EInt+ er da implementasjonen av Int+.d
*
Vi skal nå de�nere andre typer semantikk. Diskusjonen kommer nå i hovedsak
til å relatere seg til det syntaktiske plan. Vi skal da �nne det hensiktsmessig
å identi�sere de funksjonssymboler i en signatur med tilsiktet tolkning gene-
ratorfunksjoner og de symboler med tilsiktet tolkning funksjoner på mengden
generert av generatorfunksjonene. En signatur � skal da sees som delt disjunkt i
�c bestående generator(pro�l)er, og �d bestående av de�nerte funksjons-
symbol(pro�l)er.
Følgende de�nisjon ekstraherer syntaktiske egenskaper fra begrepet `algebra-
isk funksjonsspesi�kasjon' de�nert i de�nisjon 2.2 på side 19.
De�nisjon 2.5 (en utvidelse av et begrep i [Gut77]) La � være en signatur som
her bestemmer termuniverset. La �c � � være mengden av alle generatorpro�ler
i �. La videre �x � �c, og la Typex � Type være mengden av typer som termene
i G�x er av.
For en ligningsmengde E og en �f � �, er E tilstrekkelig �f -komplett
mhp. G�x , dersom det for enhver g 2 G�c[�f , g av en type i Typex, �nnes en
gx 2 G�x slik at g�$Egx. Dersom E er tilstrekkelig �-komplett mhp. G�x , sier vi
bare at E er tilstrekkelig komplett mhp. G�x.
Eksempel 13 Vi deler signaturen Nat+ = f0; succ;+g inn i generatorer Nat =
f0; succg og de�nerte funksjonssymboler f+g. LigningsmengdenEP fra eksempel
9 på side 20 er da tilstrekkelig f+g-komplett mhp. GNat, siden enhver term i GNat+
kan omskrives i EP til en generatorterm i GNat.d
Tilstrekkelig kompletthet uttrykker den syntaktiske del av konstruktiv funk-
sjonsde�nisjon (se begynnelsen av avsnitt 2.2.8 side 19). Tilstrekkelig komp-
letthet mhp. generatorer innebærer en fullstendig de�nerthet av de�nerte
funksjonssymboler; i den forstand at et funksjonssymbol kan tolkes til høyst én
funksjon i en gitt algebra. M.a.o. semantikk til funksjonssymboler er spesi�sert
til en slik grad, at det ikke er rom for �er enn én tolkning av et gitt funk-
sjonssymbol. Vi presiserer: Anta gitt et funksjonssymbol f 2 �, si av en type
TD!TC der TC er en generatortype, og anta gitt en ligningsmengde E tilstrek-
kelig f -komplett mhp. G�TC (husk fra de�nisjonen av algebra at G�TC betegner
tolkningen av TC i G�; altså mengden av alle generatorer av type TC). Anta så
25
![Page 34: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/34.jpg)
2. Abstrakte og formelle datatyper
at E inneholder en kopi av spesi�kasjonen for f , men der alle forekomster av
f er byttet ut med et annet symbol f 0 av samme type som f . Anta nå at det
�nnes en algebra A slik at g�$Eg0 ) A j= g = g0 for alle g; g0 2 G� (A sies å
realisere semantikken på G� gitt av E. Se ellers avsnitt A.1 i tillegg A). Vi skal
vise at at tolkningene fA og f 0A i A av f og f 0 ikke er identiske.
For enhver g slik at f(g) og f 0(g) er av type TC , er det lett å se at
f(g)�$Egc
og
f 0(g)�$Egc
for en gc 2 G�TC . Betrakt så en vilkårlig a i domenet til fA og f 0A. An-
tar vi surjektiv grunnterm-tolk �AG� , har vi fra dette spesielt f(ga)�$Egac og
f 0(ga)�$Egac for en ga slik at �
AG�(ga) = a. Vi har altså
f(ga)�$Egac
�$Ef 0(ga)
Siden A realiserer semantikken gitt av E, må derfor fA(a) = f 0A(a). Følgelig må
tolkningene av f og f 0 i A være identiske.
Dette begrepet om fullstendig de�nerthet er beslektet med begrepet implisitt
de�nerthet fra predikatlogikk. Se f.eks [GJ67].
Det rake motsatte av tilstrekkelig kompletthet skal senere være av interesse
for oss, og de�neres som følger:
De�nisjon 2.6 La som i de�nisjon 2.5 � være en signatur som bestemmer vårt
termunivers. La �c � � være mengden av alle generatorpro�ler i �. La videre
�x � �c, og la Typex � Type være mengden av typer som termene i G�x er av.
For en ligningsmengde E og en �f � �, er E fullstendig �f -ukomplett
mhp. G�x , dersom det ikke for noen g 2 G�c[�f n G�c , g av en type i Typex,
�nnes noen gx 2 G�x slik at g�$Egx. Dersom E er fullstendig �-ukomplett mhp.
G�x sier vi bare at E er fullstendig ukomplett mhp. G�x.
Eksempel 13 (forts.) Ligningsmengden
Eass = fx+y = y+xg
er fullstendig f+g-ukomplett mhp. GNat, siden ingen term i GNat+ med forekom-
ster av symbolet + kan omskrives ved Eass til en generatorterm i GNat.d
2.3.3 Finalsemantikk
Ligninger sammen med ligningslogikk gir initialsemantikk ved direkte omskriv-
ning til syntaktisk like termer. Semantikk kan også bestemmes ved følgende prin-
sipp: La ' være en kongruensrelasjon på en G�. Vi har da for alle c; g; g0 2 G�:
c[g] 6' c[g0] ) g 6' g0 (2.11)
Det faktum at c[g] ikke er kongruent med c[g0] bestemmer at g 6' g0. En del av
semantikken blir her bestemt av en annen bestemmende del av semantikken.
Abstrakte maskiner skjelner kun syntaks. Elementene i bæremengden til en
term-algebra er symbolene i en <rå-maskin>, og hver term er forskjellig fra
enhver annen term. Hvilke termer som skal forstås som like må eksplisitt <pro-
grammeres> inn i <rå-maskinen>. Algebraisk spesi�kasjon gjør nettopp dette
26
![Page 35: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/35.jpg)
2.3. Semantikk
(i form av abstrakte programmer). I tråd med dette kan man si at initialse-
mantikk spesi�serer to termer som semantisk ulike med mindre den algebraiske
spesi�kasjonen spesi�serer dem som semantisk like.
En annen tilnærmingsmåte er å først gi den universelle semantikk for hver
type til <rå-maskinen>, for deretter å spesi�sere ulikheter. M.a.o. for hver type,
spesi�seres to termer som semantisk like med mindre de blir tvunget semantisk
ulike ved prinsippet i (2.11). Følgende de�nisjon beskriver en pseudo-semantikk
gitt på dennemåten. Denne pseudo-semantikken er ikke nødvendigvis en kongru-
ensrelasjon. Den formelle maskin er også her ligningslogikk.
De�nisjon 2.7 Betrakt en vilkårlig G�. La G�x � G�. La 'x være en gitt
semantikk på G�x . For en ligningsmengde E de�neres en relasjon '! på G�slik: For alle g; g0 2 G�
g '! g0 ,
�g; g0 er av samme type og
:9c 2 G�;g1; g2 2 G�x j c[g]�$Eg1 6'
x g2�$Ec[g0]
Vi kaller '! den �nale pseudo-semantikk relativ til 'x spesi�sert av � og
E. Vi kaller 'x kjernen i '!.
Final (pseudo-)semantikk med fri eller basis-initiell kjerne spesi�sert av E,
skal vi kalle basis-�nal (pseudo-)semantikk.
Semantikken 'x er den bestemmende semantikk. Semantikken 'x gir <anker-
fester> i hvilke semantisk ulikhet <trekkes ut av> den universelle kongruensre-
lasjon på G�T , for hver type T som forekommer i �. Vi har at '! er maksimal i
den forstand at '! ikke spesi�serer andre semantiske ulikheter enn dem som er
tvingende nødvendige utfra typing, 'x og (2.11). Vi legger merke til følgende:
Observasjon 2.3 For en �, 'x på G�x � G� og E � E(T�(V)), la '! være
den �nale pseudo-semantikk relativ til 'x spesi�sert av � og E. Alle ulikheter i
'x er bevart i '!, dvs.
g 6'x g0 ) g 6'! g0
Vi nevnte at '! i de�nisjon 2.7 ikke nødvendigvis er en kongruensrelasjon.
Nærmere bestemt er ikke re�eksivitet og transitivitet nødvendigvis tilfredsstilt:
Eksempel 14 La 'x være den frie semantikk på Gfa;bg for konstanter a; b. La
E = fa = bg. Da har vi a�$Ea 6'x b
�$Ea, så a 6'! a.
d
Eksempel 15 La så 'x på Gfa;b;c;dg være slik at a 6'x b, c 'x d og d 'x e.
La E = ff(c) = a; f(e) = bg. Da har vi f(c)$Ea 6'x b
�$Ef(e), så c 6'! e. Men
c '! d og d 'x e. (Dette sees for c '! d ved 1) c 'x d og 2) det ikke �nnes
noen � 2 Gfa;b;c;dg slik at f(d)�$E�.)
d
Vi har dog:
Sats 2.4 Relasjonen '! i de�nisjon 2.7 er symmetrisk og kongruent.
Bevis: La signaturer, relasjoner og E være som i de�nisjon 2.7. Symmetri for
'! følger trivielt ved at både�$E
og 'x er symmetriske. Anta så at g '! g0
for vilkårlige g; g0 2 G�. Anta derimot at c[g] 6'! c[g0] for en kontekst c 2 G�.
M.a.o. det �nnes c0 2 G�; g1; g2 2 G�c slik at
c0[c[g]]�$Eg1 6'
x g2�$Ec0[c[g0]]
27
![Page 36: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/36.jpg)
2. Abstrakte og formelle datatyper
Altså gir konteksten c00 = c[c0] at g 6'! g0; som er en motsigelse.
2
Final pseudo-semantikk er altså ikke nødvendigvis en kongruensrelasjon, og er
derfor generelt ubrukelig om ønsket er å oppnå en implementasjon av en abstrakt
datatype. Imidlertid er det i vår spesi�kasjonssammenheng naturlig at følgende
kriterier er oppfylt for signaturer, relasjoner og ligningsmengde E fra de�nisjon
2.7:
KONSERV:�$E G�x � '
x
TK: E er tilstrekkelig komplett mhp. G�x .
Eksempelvis er KONSERV oppfylt hvis E spesi�serer 'x basis-initialsemantisk.
Vårt ønske om konstruktiv algebraisk funksjonsspesi�kasjon fordrer at TK er
oppfylt.
Sats 2.5 Under antagelsene KONSERV og TK, er relasjonen '! i de�nisjon 2.7
en kongruensrelasjon.
Bevis: Vi trenger kun å vise re�eksivitet og transitivitet. La signaturer, rela-
sjoner og E være som i de�nisjon 2.7. Anta g 6'! g for en g 2 G�. Altså
c[g]�$Eg1 6'
x g2�$Ec[g]
Men da har vi g1�$Ec[g]
�$Eg2 som ved KONSERV gir g1 '
x g2. Dette er en
motsigelse, så g '! g.
Anta så at g '! g0 og g0 '! g00, men g 6'! g00 for vilkårlige g; g0; g00 2 G�.
Observer at g; g0; g00 må være av samme type, så g 6'! g00 er ikke resultatet av
at g og g0 er av forskjellige typer. Vi har derfor
c[g]�$Eg1 6'
x g2�$Ec[g00]
for noen c 2 G�; g1; g2 2 G�x . (Vi observerer da at dersom E er fullstendig
ukomplett mhp. G�x , så er dette ikke mulig, så transitivitet følger i så fall
umiddelbart.)
Ved TK �nnes, siden c[g0] er av en type av hvilken termer i G�x er, en g3 2 G�x
slik at c[g0]�$Eg3. Nå må g1 '
x g3, ellers var ikke g '! g0. På samme måte må
g3 'x g2. Men da har vi g1 '
x g2 som gir en motsigelse. Følgelig må g '! g00.
2
Kriteriet TK er en sterkere enn nødvendig betingelse for sats 2.5, men vi skal
ikke gå i mer detalj her enn å påpeke det som parentetisk ble antydet i beviset
for sats 2.5, om at fullstendig ukompletthet mhp. G�x kan avløse TK som et
tilstrekkelig kriterium for transitivitet. Vi kan nå de�nere:
De�nisjon 2.8 La '! være de�nert som i de�nisjon 2.7. Anta '! er en kon-
gruensrelasjon. Vi kaller '! den �nale semantikken relativ til 'x spesi�sert
av � og E, og vi kaller kvotientalgebraen G�='! den formelle �nale dataty-
pen relativ til 'x spesi�sert av � og E.
En spesi�seringsstrategi som naturlig faller inn under �nalsemantikk, er se-
mantikkgiving ved observatorer. En observator er et de�nert funksjonssymbol
f : T1� � � ��Tn!T slik at T 6= Ti;1 � i � n. La nå G�xc være generatorter-
mer av en type T x med semantikk 'xc. La G�yc være generatortermer av en
type T y som ønskes gitt en semantikk. La �o være en signatur med minst en
observator h : T1� � � ��Ty� � � ��Tni!T x. Med grunnlag i semantikken 'xc
skal nå semantikken 'yc på G�yc bestemmes. Både 'xc og 'yc skal betraktes
som en del av en semantikk '! på G� der � = �xc [�yc [�o, slik at
28
![Page 37: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/37.jpg)
2.3. Semantikk
'xc= '!G�xc
og
'yc= '!G�yc .
Semantikken'yc bestemmes nå bl.a. ved at vi for alle generatorer gyc; g0yc 2 G�yc
nødvendigvis har:
9h : � � ��T y� � � �!T x 2 �o j h(� � �,gyc,� � �) 6'xc h(� � �,g0yc,� � �)
+
gyc 6'yc g0yc
AntaE � E(T�(V)) er tilstrekkelig komplett mhp. G�xc . Anta videre at�$E G�xc �
'xc. Ved sats 2.5 kan vi da betrakte den �nale semantikken '! relativ til 'xc:
g '! g0 , :9c 2 G�;g1; g2 2 G�xc j c[g]�$Eg1 6'
xc g2�$Ec[g0]
Eksempel 16 Vi betrakter binære trær. Signaturer er som følger:
�yc =
�" : Tre;node : Tre�Tre!Tre
�
�xc =
8<:
0 : Int;succ : Int!Int;
pred : Int!Int
9=;
�o =
�blns : Tre!Int;
+ : Int�Int!Int
�
Følgende ligningsmengde E er algebraiske spesi�kasjoner av
� en funksjon som �nner di�eransen mellom antall venstre-noder og høyre-
noder i et tre
� addisjon på hele tall, samt
� en spesi�kasjon av initialsemantikk i G�xc :
E =
8>>>>>>>>>>>><>>>>>>>>>>>>:
blns(") = 0;
blns(node(t,t')) = succ(blns(t))+pred(blns(t'));
x+0 = x;
x+succ(y) = succ(x+y);
x+pred(y) = pred(x+y);
succ(pred(x)) = x;
pred(succ(x)) = x
9>>>>>>>>>>>>=>>>>>>>>>>>>;
Basis-�nalsemantikken '! på G� for � = �xc [�yc [�o slik at
g '! g0 , :9c 2 G�;g1; g2 2 G�xc j c[g]�$Eg1
�6$Eg2
�$Ec[g0]
gir da ved observatoren blns og initialsemantikken i G�xc , at generatortermer
over G�yc er semantisk like hvis og bare hvis de representerer trær med samme
forhold i antallet venstre- og høyrenoder.d
I implementasjonssammenheng, kan en naturlig bakenforliggende tanke eller in-
tensjon ved generell �nalsemantisk spesi�kasjon være følgende:
29
![Page 38: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/38.jpg)
2. Abstrakte og formelle datatyper
Intensjon A
1. Kjernesemantikken er semantikk på generatortermer av typer T x1 ; : : : ; Txn .
2. Ligningsmengden E gir semantikk til generatortermer av typer Ty1 ; : : : ; T
ym
ved prinsipp (2.11) på side 26.
3. Ligningsmengden E gir semantikk til de�nerte funksjonssymboler av både
typer T x1 ; : : : ; Txn og T
y1 ; : : : ; T
ym.
Således kan en spesi�kasjonsoppgave sees på som bestående av avgrensede de-
ler. Kjernesemantikken kan her være en initialsemantikk, eller igjen en �nal-
semantikk�eller andre former for semantikk. Vi skal i kapittel 3 spesi�sere
kjernesemantikk såkalt indirekte.
2.3.4 Alternativ de�nisjon av �nalsemantikk
I [Lys92] de�neres følgende semantikk, her restriktert til grunntermer: For sig-
naturer, relasjoner og E som i de�nisjon 2.7
g '� g0 , :9c 2 G�;gx 2 G�x j c[g]�$Egx
�6$Ec[g0]
Denne semantikken ligner vår basis-�nal (pseudo)semantikk, men har den ve-
sentlige egenskap å være en kongruensrelasjon umiddelbart. Vi kan, inspirert av
dette, de�nere en generalisert �nalsemantikk '!0: For signaturer, relasjoner og
E som i de�nisjon 2.7
g'!0g0 , :9c 2 G�;g1; g2 2 G�x j c[g]
�$Eg1 '
x g2�6$Ec[g0] (2.12)
Under TK eller fullstendig ukompletthet mhp. G�x , er '!0 og '! identiske.
Forskjellen på '!0 og '! oppstår altså i <gråsonen> mellom fullstendig ukom-
pletthet og tilstrekkelig kompletthet.
Eksempel 17 Betrakt Gfa;b;c;dg, 'x og E som i eksempel 15. For den �nale
pseudo-semantikk '! har vi c '! d siden det ikke �nnes noen � 2 Gfa;b;c;dg slik
at f(d)�$E�. For '!0 som de�nert i (2.12), har vi derimot f(c) 6'!0f(d), siden
det �nnes en � 2 Gfa;b;c;dg slik at f(c)�$E�. Dermed har vi c 6'!0d.
d
Når vi fra nå av velger å bruke pseudo-semantikken '! istedenfor den mer ele-
gante '!0 de�nert i (2.12) og inspirert utifra semantikken de�nert i [Lys92],
er det i hovedsak på grunnlag av følgende: 1) Det er for våre formål lette-
re å resonnere om og med '!. 2) Fullstendig ukompletthet samt <gråsonen>
mellom fullstendig ukompletthet og tilstrekkelig kompletthet, er interessant i
forbindelse med resonnering utfra egenskaper til en funksjon, i motsetning til
resonnering utfra en konstruktiv spesi�kasjon av funksjonen. Eksempelvis til-
fredstiller algebraen Int+ = hZ;f0; succ; pred;+Zgi fra eksempel 2 utvidet med
inversfunksjonen �, de ligningslogiske aksiomer for Abelske grupper:
fx+(y+z) = (x+y)+z; x+0 = 0; x+(�x) = 0; x+y = y+xg
For slik resonnering er trolig en semantikk basert på uttrekking av ulikheter
fra en universell semantikk ikke det som ønskes for de�nerte funksjonssymboler.
Dette fordi slik semantikk og også initialsemantikk gir fullstendig semantikk,
i den forstand at likheter og ulikheter spesi�seres (initialsemantikk: alt som
ikke spesi�seres som likt er ulikt, �nalsemantikk: alt som ikke spesi�seres som
ulikt er likt). Det som er ønskelig i tilfellet resonnering utfra ikke-konstruktive
30
![Page 39: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/39.jpg)
2.3. Semantikk
egenskaper er heller såkalt løs semantikk. For aksiomene for Abelske grupper,
ville vi eksempelvis trolig ønske å spesi�sere to termer som semantisk like hvis
de kan vises like ligningslogisk, men unnlate å spesi�sere termer som semantisk
ulike hvis de ikke kan vises like ligningslogisk. Semantikk som de�nert ved (2.12)
synes i noen tilfeller (f.eks. for aksiomene over) å takle <gråsoner> bra, men for
tilfellet fullstendig ukompletthet fungerer begge varianter av �nalsemantikk like
dårlig. I anerkjennelsen av at det først og fremst er under TK at �nalsemantikk
er ment å fungere, kan vi argumentere for å velge den semantikken som er mest
<kompromissløs>: '! som de�nert i de�nisjon 2.7 er som sagt maksimal i den
forstand at '! ikke spesi�serer andre semantiske ulikheter enn dem som er
tvingende nødvendige utfra typing, kjernesemantikken 'x og (2.11) på side 26.
2.3.5 Initialsemantikk generalisert
En �nalsemantikk de�neres ved å spesi�sere ulikhet med grunnlag i en (annen)
gitt semantikk. Analogt skal vi nå de�nere generalisert initialsemantikk ved å
spesi�sere likhet med utgangspunkt i en (annen) gitt semantikk.
De�nisjon 2.9 Betrakt en vilkårlig G�. La G�x � G�. La 'x være en gitt se-
mantikk på G�x. La E være en vilkårlig ligningsmengde. Betrakt omskrivnings-
relasjonen < på G� slik at for alle g; g0 2 G�
g < g0 ,
�g$
Eg0 eller
9g1; g2 2 G�x ;c 2 G� j g = c[g1]; g0 = c[g2]; g1 '
x g2
Vi de�nerer så '� på G� som
'�= <�
Vi kaller '� den initielle semantikken relativ til 'x spesi�sert av � og E,
og vi kaller kvotientalgebraen G�='� den formelle initielle datatypen relativ
til 'x spesi�sert av � og E. Vi kaller 'x kjernen i '�.
(Lesere med sans for subtiliteter vil nå ha merket at vi bruker � (alpha) og !
(omega) som superskript på initial- hhv. �nalsemantikk. Videre vil (ikke nær-
mere spesi�sert) kjernesemantikk generelt ha superskriptet x.)
Relasjonen '� i de�nisjon 2.9 er opplagt en kongruensrelasjon. Spesialtilfel-
let 'x=�$E G�x i de�nisjon 2.9 gir basis-initialsemantikk som de�nert i de�nisjon
2.3 på side 24.
I implementasjonssammenheng, er en naturlig bakenforliggende tanke eller
intensjon ved generell initialsemantisk spesi�kasjon følgende:
Intensjon B
1. Kjernesemantikken er semantikk på generatortermer.
2. Ligningsmengden E gir semantikk til de�nerte funksjonssymboler.
En spesi�kasjonsoppgave deles således opp i avgrensede deler. Som for vår ge-
nerelle �nalsemantikk, kan kjernesemantikken her være en �nalsemantikk, eller
igjen en initialsemantikk, eller en helt annen type semantikk. Dette siste er et
hovedpoeng med både generell initialsemantikk og generell �nalsemantikk. Vi
holder fast ved konstruktiv funksjonsspesi�kasjon for de�nerte funksjonssym-
boler, men har �ere måter å spesi�sere generatorsemantikk på (vi skal som
sagt utvikle nok en måte i kapittel 3). Ofte kan spesi�kasjon utføres ved basis-
semantikker. Men våre generelle semantikker åpner for spesi�kasjon der dette
ikke er mulig�et konkret eksempel får vi i kapittel 3. Vi kan og skal i de nes-
te avsnittene utvikle viktige begreper for generell semantikk uten å behøve å ta
31
![Page 40: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/40.jpg)
2. Abstrakte og formelle datatyper
stilling til hvordan kjernesemantikken er spesi�sert. Et annet poeng ved generell
semantikk som er verdt å fremheve er den modulære oppbygging. Dette skal vi
komme kort tilbake til om en stund. Merk at selv om basis-semantikker kan sees
på som degenererte generelle semantikker, så kan basis-semantikker også <heves
opp> og uttrykkes i form av generell semantikk. Slik gir generell semantikk en
mulighet til å betrakte vanlige basis-semantikker på en modulær måte.
Før vi går igang med resten av diskusjonen, gir vi den initialsemantiske
analoge observasjon til observasjon 2.3 på side 27:
Observasjon 2.6 For en �, 'x på G�x � G� og E � E(T�(V)), la '� være
initialsemantikken relativ til 'x spesi�sert av � og E. Alle likheter i 'x er
bevart i '�, dvs.
g 'x g0 ) g '� g0
2.3.6 Konsistens
Ved spesi�sering ved basis-initialsemantikk, er det naturlig å spesi�sere seman-
tikk til generatorer ved ligninger mellom generatortermer. Men ved (2.11) på
side 26 kan også semantikk av de�nerte funksjonssymboler gi semantikk til ge-
neratorer. I en viss forstand, kan vi da få uønsket semantikkspesi�kasjon:
Eksempel 18 Betrakt generatorsignaturen
Int =
8<:
0;
succ;
pred
9=;
La f være et de�nert funksjonssymbol. Betrakt ligningsmengden
E f =
8<:
f(0) = 0;
f(succ(x)) = succ(f(x));
f(pred(x)) = f(x)
9=;
Relativt til basis-initialsemantikken spesi�sert av
EIntc =
�succ(pred(x)) = x;
pred(succ(x)) = x
�
gir E f initialsemantisk
f(succ(pred(0))) '� succ(0) og f(0) '� 0
og dermed
succ(0) '� 0.
Vi har ikke basis-initialsemantisk succ(0)�$
EIntc0. Ligningsmengden Ef gir således
ikke bare semantikk til det de�nerte funksjonssymbol f, men også semantikk til
generatorer.
Gitt at vi ønsker at generatorsemantikk skal være den basis-initielle gitt av
EIntc , har vi her at Ef innfører uønsket semantikk på generatorene.d
De�nisjon 2.10 (se også [Gut77]) La �c være en signatur av generatorer. LaE
være en vilkårlig ligningsmengde og la Ec � E være slik at Ec = E\E(T�c(V)).
E er initielt konsistent for �c dersom�$E G�c =
� !Ec G�c .
Vi utvikler et generalisert konsistensbegrep for initialsemantikk:
32
![Page 41: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/41.jpg)
2.3. Semantikk
De�nisjon 2.11 For en �, 'x på G�x � G� og E � E(T�(V)), la '� være
initialsemantikken relativ til 'x spesi�sert av � og E. E er initielt konsistent
relativt til 'x dersom
'x = '�G�x
De�nisjon 2.10 er spesialtilfellet av de�nisjon 2.11 for 'x en semantikk på ge-
neratortermer spesi�sert algebraisk ved en ligningsmengde Ec � E.
Vi utvikler nå konsistensbegrep for �nal (pseudo)-semantikk. Det er naturlig
å identi�sere en mengde de�nerte funksjonssymboler som er tilsiktet alene å gi
semantikk ved prinsipp (2.11) på side 26.
De�nisjon 2.12 For en �, la �c � � være generatorene i �. La �o � � være
en signatur av de�nerte funksjonssymboler, og la 'x være en gitt semantikk på
G�x , for �x � �. Betrakt pseudo-semantikken 'o på G� slik at
g 'o g0 ,
�g; g0 er av samme type og
:9c 2 G�o[�c n G�c ;g1; g2 2 G�x j c[g]�$Eg1 6'
x g2�$Ec[g0]
For den �nale pseudo-semantikk '! relativ til 'x bestemt av � og E, er E
� �nalt konsistent mhp. �o relativt til 'x, dersom 'o = '!.
� indre �nalt konsistent (mhp. �o) relativt til 'x, dersom 'oG�x =
'!G�x .
� �nalt kjernebevarende relativt til 'x, dersom '!G�x = 'x.
Signaturen �o i de�nisjon 2.12 består av pro�ler til de de�nerte funksjonssym-
boler som er ment å gi semantikk ved prinsipp (2.11) på side 26. I den forstand
er 'o den tilsiktede �nale (pseudo-)semantikk ifølge �o. Dersom'o 6= '! �nnes
derfor funksjonssymboler i�n�o hvis semantikk gitt av E bidrar til å spesi�sere
�ere ulikheter ved prinsipp (2.11) enn det som er tilsiktet.
2.3.7 Sammenheng mellom initial- og �nalsemantikk
Vi skal nå vise noen sammenhenger mellom begreper knyttet til initial- og �-
nalsemantikk. Foruten å etablere resultater for diskusjonen videre, er hensikten
å styrke intuisjonen på disse semantikkene, samt å vise at disse semantikkene,
under konsistens, ivaretar den for implementasjon tilsiktede hensikt som uttrykt
i intensjonene A side 30 og B side 31. Sistnevnte viser vi via noe vi skal kalle en
separabel semantikk.
Vår reiserute skal være som følger: Vi skal vise ekvivalens under visse forut-
setninger mellom
1. initial konsistens og �nal kjernebevaring
2. �nal kjernebevaring og indre �nal konsistens, for en degenerert form for
�nalsemantikk
3. indre �nal konsistens og �nal konsistens, for nok en degenerert form for
�nalsemantikk.
Deretter viser vi identitet under visse forutsetninger mellom
4. initial semantikk og den siste formen for degenerert �nalsemantikk.
Sistnevnte skal vi gjøre indirekte ved å vise identitet under konsistens mellom
5. initial semantikk og separabel semantikk og mellom degenerert �nalse-
mantikk og separabel semantikk.
Sammenhengene er også vist i �gur 2.1.
33
![Page 42: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/42.jpg)
2. Abstrakte og formelle datatyper
separabel semantikkinitial semantikkdegenerert
�nal semantikk= =
K O N S I S T E N S
�nal konsistens
indre �nal konsistens
�nal kjernebevaringinitial konsistens
,degenerasjon 2
,degenerasjon 1
,
Initialsemantikk �nal semantikk
Figur 2.1: Sammenhenger mellom begreper knyttet til initial- og �nal-semantikk.
1. Kjernebevaring
Final kjernebevaring betyr konservering av kjerne-semantikken 'x i den �na-
le pseudo-semantikken '!. Initialkonsistens betyr på sin side konservering av
kjerne-semantikken 'x i initialsemantikken '�. Intuisjonen på de�nisjonene av
initiell- og �nalsemantikk og deres konsistensbegreper, vil at �nal kjernebevaring
og initialkonsistens skal være ekvivalente begreper. Denne intuisjon viser seg å
stemme; ihvertfall dersom den aktuelle ligningsmengde er tilstrekkelig komplett
(TK) eller fullstendig ukomplett mhp. G�x .
Merk at antagelsen KONSERV (side 28) allerede utelukker en direkte kilde til
ikke kjernebevaring. Denne kilde er forskjellig fra den representert av prinsipp
(2.11) på side 26:
Eksempel 19 Betrakt generatorsignaturen
Int =
8<:
0;
succ;
pred
9=;
La f være et de�nert funksjonssymbol. Betrakt ligningsmengden
E0f =
�f(0) = 0;
f(0) = succ(0)
�
eller for den saks skyld
Ex =�
0 = succ(0)
Relativt til basis-initialsemantikken gitt av
EIntc =
�succ(pred(x)) = x;
pred(succ(x)) = x
�
gir både E0f og Ex initialsemantisk
34
![Page 43: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/43.jpg)
2.3. Semantikk
succ(0) '� 0.
Slike direkte opphav til initial inkonsistens som E0f og Ex representerer, uteluk-
kes av KONSERV.d
Før vi viser ekvivalens av �nal kjernebevaring og initialkonsistens, bemer-
ker vi for ordens skyld: Vi kan ikke vise ekvivalens av �nal kjernebevaring og
initialkonsistens ved å vise at '!G�x = '�G�x . Dette fordi '!G�x 6= '�G�x
med
mindre vi har både �nal kjernebevaring og initialkonsistens. Sistnevnte faktum
er motstykket til observasjonene 2.6 og 2.3: Ikke �nal kjernebevaring vil si
'!G�x � 'x
mens initiell inkonsistens betyr
'x � '�G�x
Således er initiell inkonsistens og ikke �nal kjernebevaring inversjoner av hver-
andre: Initiell inkonsistens <kollapser> kjernen; dvs. tilfører kjernen �ere ele-
menter (elementene i kjernen er tupler som representerer identiteter), mens ikke
�nal kjernebevaring <oppløser> kjernen; dvs. fjerner elementer fra kjernen.
Eksempel 20 Betrakt E f og EIntc fra eksempel 18. Relativt til basis-initialse-
mantikken ' gitt av EIntc , er E f både initielt inkonsistent og ikke �nalt kjerne-
bevarende. For '� og '!�initial- og �nalsemantikkene relativ til ' (bestemt
av � [ ffg og E f ), gir dette seg bl.a. tilkjenne på den ene side i at
succ(0) '�0
og på den annen side i at
succ(pred(0)) 6'!0
Relasjonene '� og'! er ikke identiske: Vi har nemlig succ(0) 6'! 0; og dessuten
også succ(pred(0)) '� 0.d
Vi viser nå ekvivalens av �nal kjernebevaring og initialkonsistens under TK på
side 28. Vi trenger her ikke antagelsen KONSERV.
Sats 2.7 Anta TK. For �x, 'x og E i de�nisjonene 2.11 og 2.12 har vi at E
er �nalt kjernebevarende relativt til 'x hvis og bare hvis E er initielt konsistent
relativt til 'x.
Bevis: La '� være den initielle semantikken relativ til 'x.
Anta at E er ikke �nalt kjernebevarende relativt til 'x. Ved (2.10) side 24
og ved observasjon 2.3 side 27 må det da �nnes c 2 G� og gx; g0x; g1; g2 2 G�x
slik at
c[gx]�$Eg1 6'
x g2�$Ec[g0x] men gx '
x g0x
Siden gx 'x g0x har vi ved observasjon 2.6 gx '
� g0x, og da har vi c[gx] '� c[g0x].
Siden c[gx]�$Eg1 og g2
�$Ec[g0x], får vi da g1 '
� g2. Men g1 6'x g2, så E kan ikke
være initielt konsistent relativt til 'x.
For den motsatte implikasjon, anta først at KONSERV ikke holder. Da �nnes
gx; g0x 2 G�x slik at
gx�$Eg0x men gx 6'
x g0x
Men da har vi gx 6'x g0x
�$Egx, og E er trivielt ikke �nalt kjernebevarende.
35
![Page 44: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/44.jpg)
2. Abstrakte og formelle datatyper
Anta derfor KONSERV. Anta E ikke er initielt konsistent relativt til 'x. Ved
observasjon 2.6 �nnes da gx; g0x 2 G�x slik at
gx '� g0x men gx 6'
x g0x
Vi skriver g$x g0 dersom g '� g0, og ikke g�$Eg0. M.a.o.
g$x g0 ,
�g
�6$Eg0 og
9c 2 G�;g1; g2 2 G�x j g = c[g1]; g0 = c[g2]; g1 '
x g2
Betrakt en vilkårlig '�-utledning hgx; : : : ; g0xi i G�. Ved KONSERV må gx
�6$Eg0x,
så det må �nnes minst ett $x -steg i utledningen. Og siden gx 6'x g0x, må det
også �nnes minst ett $E-steg i utledningen. Vi kan anta at dette steget er slik
at g$Eg0 der minst en av g; g0 ikke er i G�x ; ellers var dette steget ved KONSERV
et $x -steg. Det �nnes altså en term g 62 G�x i utledningen. Men da må det
�nnes to $E-steg; siden et $x -steg ikke kan være mellom en term som ikke er
i G�x og en term som er i G�x (og gx 6= g0x, siden '� er re�eksiv). Begge disse
to $E-steg må være mellom en term i G�x og en term ikke i G�x . Utledningen
må altså ha formen:
gx�$x gx0
+$Ec1[g1]
�$x c1[g
01]
�$E� � �
:
� � ��$Eck[gk]
+$x ck[g
0k]
�$Eck+1[gk+1]
+$x ck+1[g
0k+1]
�$E� � �
:
� � ��$Ecn[gn]
�$x cn[g
0n]
+$Egxn
�$x g0x
for gx0; gxn; gi; g0i 2 G�x og ci 2 G�; 1 � i � n. Ved TK har vi imidlertid
ci[g0i]
�$Egxi
�$Eci+1[gi+1]
for noen gxi 2 G�x ; 1 � i � n. (Dette har vi ved at at hver komponent i '�-
utledningen må være av samme type som gx og g0x.) Nå kan ikke gx0 '
x � � � 'x
gxk 'x � � � 'x gxn, da det ville innebære gx '
x g0x. Altså må det �nnes en
0 � l < n slik at
gxl 6'x gxl+1
(Se �gur 2.2.) Men da har vi
cl+1[gl+1]�$Egxl 6'
x gxl+1�$Ecl+1[g
0l+1]
Siden gl+1 'x g0l+1, er derfor E ikke �nalt kjernebevarende relativt til 'x.
2
cl+1[gl+1]cl[g0l] cl+1[g
0l+1] cl+2[gl+2]
gxl gxl+16'x
�
E
�x
�
E
�E
�E
�E
�E
Figur 2.2: Del-bevisskisse for sats 2.7. Ved TK har vi ci[g0i]
�$E
gxi�$E
ci+1[gi+1] for noen
gxi 2 G�x ; 1 � i � n. Det må �nnes en 0 � l < n slik at gxl 6'x gxl+1.
36
![Page 45: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/45.jpg)
2.3. Semantikk
Kommentar:
Det er i �ere konkrete tilfeller mulig å vise at dersom E ikke er
initielt konsistent relativt til 'x, så vil det for to gx; g0x 2 G�x slik at
gx '� g0x men gx 6'
x g0x, alltid �nnes en '�-utledning hgx; : : : ; g0xi
på formen beskrevet i beviset for sats 2.7, men slik at n = 1. Det-
te henger sammen med den generatorinduktive måten å spesi�sere
konstruktive funksjons-spesi�kasjoner på. Ligninger i slike spesi�-
kasjoner vil ofte ha formen c[fc(x)] = c0[x], der fc er en generator.
Dette kan brukes til å redusere en evt. lang utledningskjede (stor n)
ned til n = 1.
Med bakgrunn i sats 2.7, er sammenhengen mellom �nal kjernebevaring og
initiell konsistens under KONSERV og for tilfellet `n = 1', illustrert i �gur 2.3.
g1 c[gx] c[g0x] g2
g1 g2
�
E
� !x
�
E
� E�E
6'x
a)
c[gx]
c[gx] c[g0x]
c[g0x]g1 g2�
E
� !x
�
E
�E� E
6'x
b)
Figur 2.3: Inversjon. Inkonsistens sett på to måter. Final kjernebevaring og initiell
konsistens er under KONSERV to sider av samme sak. I a) ser vi inkonsistens tilkjennegitt
som initial inkonsistens, i og med at g1 6'x g2, men g1 '
� g2. I b) sees inkonsistens
manifestert i ikke �nal kjernebevaring, idet gx 6'! gx, men gx '
x gx.
Sats 2.7 hevder ekvivalens mellom �nal kjernebevaring og initialkonsistens,
forutsatt TK. Hvis vi har det rake motsatte av TK; nemlig fullstendig �-ukomp-
letthet mhp. G�x , kan vi også slå fast denne ekvivalens. Men dette er fordi
fullstendig �-ukompletthet garanterer kjernebevaring:
Sats 2.8 Anta KONSERV. For �x, 'x og E i de�nisjonene 2.11 og 2.12, anta
E fullstendig �-ukomplett mhp. G�x . Da har vi at E er �nalt kjernebevarende
relativt til 'x, og at E er initielt konsistent relativt til 'x.
Bevis: Anta gx '� g0x, for gx; g
0x 2 G�x . Siden E er fullstendig �-ukomplett
mhp. G�x , må enhver '�-utledning hgx; : : : ; g0xi være en utledning i G�x . Ved
KONSERV har vi da for enhver gi; gi+1 i en slik utledning slik at gi $E gi+1, at
gi 'x gi+1. Følgelig har vi gx '
x g0x, så E er initielt konsistent relativt til 'x.
37
![Page 46: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/46.jpg)
2. Abstrakte og formelle datatyper
Anta at E er ikke �nalt kjernebevarende relativt til 'x. Da �ns c 2 G� og
g1; g2 2 G�x slik at
c[gx]�$Eg1 6'
x g2�$Ec[g0x] til tross for at gx '
x g0x
Men siden E er fullstendig �-ukomplett mhp. G�x , må c 2 G�x . Ved KONSERV
får vi da
c[gx] 'x g1 6'
x g2 'x c[g0x]
Ved kongruens har vi c[gx] 'x c[g0x], og dermed g1 '
x g2, som gir en motsigelse.
Altså er E �nalt kjernebevarende relativt til 'x.
2
Final kjernebevaring er triviell i en semantikk der kjernen er fri:
Observasjon 2.9 Dersom en �nal pseudo-semantikk er en kongruensrelasjon
og dens kjerne 'x er fri, har vi, ved observasjon 2.3 side 27, �nal kjernebevaring
relativt til 'x.
Vi kan da merke oss følgende interessante korollar til satsene 2.7 og 2.8:
Korollar 2.10 Anta TK eller fullstendig �-ukompletthet mhp. G�x . Dersom en
�nal pseudo-semantikk er en kongruensrelasjon og dens kjerne 'x er fri, har vi
initialkonsistens relativt til 'x (for den korresponderende initialsemantikk).
Kommentar:
Mange av de resultater vi etablerer som antar (full) tilstrekke-
lig kompletthet og evt. fullstendig ukompletthet kan også formuleres
som partielle resultater i korrelasjon til antagelser om partiell til-
strekkelig kompletthet. Å gjennomføre diskusjonen med slike parti-
elle resultater, ville forkludre fremstillingen veldig. Motivasjon for å
se på tilfeller mellom ytterpunktene (full) tilstrekkelig kompletthet
og fullstendig ukompletthet er på dette tidspunkt heller ikke til ste-
de. Derfor velger vi en linje som forenkler bildet, ved å anta (full)
tilstrekkelig kompletthet eller evt. fullstendig ukompletthet. Det kan
dog tenkes at disse antagelser ofte er mer enn nødvendig sterke. Med
dette sagt, skal vi i neste kapittel �nne motivasjon for partielle re-
sultater om konsistens, og i avsnitt 3.7 skal vi vise noen slike.
2. Første degenerasjon. Final kjernebevaring og indre �nal konsistens
Betrakt nå spesialtilfellet�o = ; for�o i de�nisjon 2.12 (side 33). Dette betyr at
vi ikke ønsker at semantikk gis ved prinsipp (2.11) på side 26. Dette kjennetegner
jo også initialkonsistens. Men nå er ikke �nal- og initialkonsistens ekvivalente
generelt; selv ikke under antagelsen �o = ;. Initialkonsistens sier kun noe om
kjernesemantikken 'x. Dette er jo ikke tilfellet for �nalkonsistens:
Eksempel 21 Betrakt eksempel 16 på side 29. Her er ligningsmengden E ikke
�nalt konsistent mhp. �o = ; relativt til initialsemantikken i G�xc , pga. �nalse-
mantikken gitt til generatortermer i G�yc . Men E er jo initielt konsistent relativt
til initialsemantikken i G�xc .d
Og på den annen side sier �nalkonsistens kun noe om semantikk gitt ved prinsipp
(2.11). Det er lett å �nne ligningsmengder som er �nalt konsistente men initielt
inkonsistente.
38
![Page 47: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/47.jpg)
2.3. Semantikk
Under antagelsen �o = ; bør imidlertid indre �nal konsistens og initiell
konsistens være nært knyttet. Vi viser dette ved å stadfeste en knytning mellom
indre �nal konsistens og �nal kjernebevaring. Knytningen videre mellom �nal
kjernebevaring og initiell konsistens viste vi i forrige delavsnitt. Betrakt først
følgende ikke overraskende lemma:
Lemma 2.11 Anta KONSERV. For signaturer, relasjoner og E som i de�nisjon
2.12, anta �o = ;. Da er 'oG�x = 'x.
Bevis: Vi har trivielt 'oG�x � 'x. Anta derfor at det �nnes gx; g
0x 2 G�x slik
at gx 'x g0x, men gx 6'
o g0x. Siden gx; g0x må være av samme type, �nnes altså
c 2 G� og g1; g2 2 G�x slik at
c[gx]�$Eg1 6'
x g2�$Ec[g0x]
Siden �o = ;, reduserer dette seg til
gx�$Eg1 6'
x g2�$Eg0x
Videre gir KONSERV gx 'x g1 og g2 '
x g0x. Dette gir da ialt g1 'x g2 som er
absurd.
2
(Antagelsen KONSERV var her nødvendig for å sikre re�eksivitet av'oG�x .) Forbin-
delsen mellom indre �nal konsistens og �nal kjernebevaring følger umiddelbart:
Sats 2.12 Anta KONSERV. For signaturer, relasjoner og E som i de�nisjon 2.12,
anta �o = ;. Da er E indre �nalt konsistent hvis og bare hvis E er �nalt
kjernebevarende.
Bevis: Anta 'oG�x = '!G�x . Ved lemma 2.11 har vi 'oG�x = 'x, så '!G�x = 'x
følger umiddelbart.
Anta '!G�x = 'x. Vi får umiddelbart ved lemma 2.11 'oG�x = '
!G�x
.
2
Under antagelsene KONSERV, TK og �o = ;, følger det således gjennom sats
2.12 og sats 2.7, at indre �nal konsistens og initiell konsistens er ekvivalente
begreper. (Dette følger altså gjennom forbindelser mellom initiell konsistens og
�nal kjernebevaring og mellom �nal kjernebevaring og indre �nal konsistens.
Se �gur 2.1 side 34. Vi kunne vise forbindelsen mellom indre �nal konsistens
og initiell konsistens direkte. Men merk at en antagelse (lignende KONSERV) er
nødvendig for å sikre re�eksivitet av den �nale pseudo-semantikken.)
3. Annen degenerasjon. Indre �nal konsistens og �nal konsistens
Betrakt nå følgende kriterium:
DEGEN: Alle generatorene i � �ns i �x, for �x og � i de�nisjonene 2.9 side 31
og 2.7 side 27.
Observasjon 2.13 For �x og � i de�nisjonene 2.9 og 2.7, innebærer kriteriet
DEGEN at alle termer i G� er av typer som termene i G�x er av.
I tilknytning til �nalsemantikk utelukker DEGEN semantikkgiving til generatorer
ad prinsipp (2.11) side 26 uten inkonsistens. Dette fjerner oss fra en av hovedin-
tensjonene med �nalsemantikk, nemlig å beskrive situasjoner hvor generatorer
39
![Page 48: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/48.jpg)
2. Abstrakte og formelle datatyper
(av en type) gis semantikk utifra ankerfester i andre generatortermer (av en
annen type). Se punkt 2 på side 30.
På den annen side skal vi se at under DEGEN, kan �nalsemantikk gi et annet
uttrykk for initialsemantikk. Vi går veien om en forbindelse mellom indre �nal
konsistens og (full) �nal konsistens:
Under antagelsen �o = ; og DEGEN, er det ikke unaturlig å forestille seg at
indre �nal konsistens er ekvivalentmed (full) �nal konsistens. Følgende eksempel
illustrerer imidlertid at dette ikke er tilfellet:
Eksempel 22 La 'x være den frie semantikk på Gfa;bg. Betrakt
E =
�h(f(a)) = a;
h(f(b)) = b
�
For den �nale pseudo-semantikk '! relativ til 'x bestemt av fa; b; f; hg og E,
er KONSERV oppfylt, så '! er re�eksiv. Videre er det lett å sjekke at '! er
transitiv. Ved sats 2.4 er da '! en kongruensrelasjon. Ved observasjon 2.9 side
38 er da E �nalt kjernebevarende relativt til 'x. Ved sats 2.12 er så E indre
�nalt konsistent relativt til 'x. Derimot er E ikke �nalt konsistent mhp. �o = ;
relativt til 'x. Vi har nemlig f(a) 'o f(b), men ikke f(a) '! f(b), siden
h(f(a))�$Ea 6'x b
�$Eh(f(b))
d
Ligningsmengden E i eksempel 22 tilfredstiller ikke TK. Imidlertid har vi:
Sats 2.14 Under antagelsene �o = ;, DEGEN, samt TK, er �nal konsistens ek-
vivalent med indre �nal konsistens.
Bevis: La signaturer, semantikker og E være som i de�nisjon 2.12.
For den ikke-trivielle implikasjonen, anta ikke �nal konsistens for en lignings-
mengde E mhp. �o relativt til en 'x. Vi har da opplagt '! � 'o (pr. def.). Så
anta g 6'! g0, men g 'o g0 for noen g; g0 2 G�. Da �nnes altså, siden g; g0 må
være av samme type, c 2 G� og g1; g2 2 G�x slik at
c[g]�$Eg1 6'
x g2�$Ec[g0]
Ved DEGENmed observasjon 2.13, og TK har vi g�$Egx og g
0 �$Eg0x for gx; g
0x 2 G�x .
Vi får da
c[gx]�$Ec[g]
�$Eg1 6'
x g2�$Ec[g0]
�$Ec[g0x]
Dette gir gx 6'! g0x. Imidlertid må vi ha gx '
x g0x, ellers ville g 6'o g0 ved
g�$Egx 6'
x g0x�$Eg0
Altså er ikke E �nalt kjernebevarende relativt til 'x, og ved sats 2.12 har vi da
at E ikke er indre �nalt konsistent.
2
4./5. Møte mellom initial- �nal- og separabel semantikk
For degenerert �nalsemantikk ifølge �o = ; og DEGEN, følger det under KONSERV
og TK, nå at initial- og �nalkonsistens er ekvivalente begreper. Ikke overraskende
kan vi gjøre følgende oppsummering:
Proposisjon 2.15 For signaturer, semantikker og ligningsmengde som i de�ni-
sjonene 2.11 og 2.12, har vi under antagelsene �o = ; og DEGEN, samt KONSERV
og TK, ved konsistens:
'� = '!
40
![Page 49: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/49.jpg)
2.3. Semantikk
Vi kan vise proposisjonen direkte. Imidlertid ønsker vi å etablere samt gjøre
et poeng av at initialsemantikk og degenerert �nalsemantikk under konsistens
ivaretar intensjonene A side 30 og B side 31. Merk at for den her degenererte
�nalsemantikk forsvinner punkt 2 og typene Ty1 ; : : : ; T
ym på side 30.
Intensjonene A og B forfekter (bl.a.) en modulær sammensetting av to kom-
ponenter; nemlig semantikk for generatorer og semantikk for de�nerte funksjons-
symboler. I kortene ligger også et ønske omat den resulterende sammensetningen
ikke skal gi annen semantikk til generatorene og de de�nerte funksjonssymboler
enn den som spesi�seres (hver for seg) av komponentene. Sistnevnte har vi jo
sett at ikke nødvendigvis er tilfellet, i og med at semantikk for de�nerte funk-
sjonssymboler kan gi (ytterligere) semantikk til generatorer og altså gi det vi
kaller inkonsistens. Tilfellet inkonsistens viser at en modulær sammensetting av
semantikker kan gi semantikk som på et vis er mer enn summen av sine deler.
Det vi altså nå skal vise er at under konsistens vil modulære sammensetting-
er som forfektet i intensjoner A og B, ikke gi annen semantikk enn den som
spesi�seres av sine komponenter. Vi skal gå veien om en relasjon som vi viser
har egenskapen å være en <ren> sum av sine deler og som vi derfor skal kal-
le separabel. Denne relasjonen skal ved �ere anledninger vise seg å spille en
grunnleggende rolle.
Her kommer den: Betrakt relasjonen
('x [�$E G�)
� [den re�eksiv-transitive tillukning av unionen] (2.13)
Vi skal vise at ('x [�$E G�)
� gir nøyaktig den semantikk som spesi�seres av sine
komponenter 'x og�$E G� . Følgende lemma sier at ('
x [�$E G�)
� under KONSERV
alltid er <kjernebevarende>.
Sats 2.16 For en semantikk 'x på G�x og en ligningsmengde E, har vi under
KONSERV
('x [�$E G�)
�G�x
= 'x
Bevis: Anta tvert imot at ('x[�$E G�)
�G�x6= 'x. Siden vi opplagt har 'x� ('x[
�$E G�)
�G�x
, må det da �nnes gx; g0x 2 G�x slik at gx 6'
x g0x, men gx('x[
�$E G�)
�g0x.
Men da må vi ha
gx 'x g1
�$Eg01 '
x g2�$Eg02 '
x� � � gi
�$Eg0i � � � '
x gn�$Eg0n '
x g0x
for noen gi; g0i 2 G�x ; 1 � i � n. Ved KONSERV må gi '
x g0i for hver 1 � i � n.
Da får vi gx 'x g0x, som er en motsigelse, og satsen følger.
2
Vi viser så at ('x [�$E G�)
� bevarer semantikk gitt ved�$E. Først viser vi at
('x [�$E G�)
� i en viss forstand er komplett for�$E:
Sats 2.17 For signaturer, semantikker og ligningsmengde som i de�nisjonene
2.9 og 2.7, har vi for g 2 G� n G�x og gx 2 G�x
g�$Eg0 ) g('x [
�$E G�)
�g0
Bevis: Satsen holder trivielt siden�$E G� � ('x [
�$E G�)
�.
2
Vi viser så sunnhet av ('x [�$E G�)
� med hensyn til en konstruktiv funksjons-
spesi�kasjon E:
41
![Page 50: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/50.jpg)
2. Abstrakte og formelle datatyper
Sats 2.18 For signaturer, semantikker og ligningsmengde som i de�nisjonene
2.9 og 2.7, har vi under TK for vilkårlige g 2 G� og gx 2 G�x
g('x [�$E G�)
�gx ) g�$Eg0x
for en g0x 2 G�x slik at gx 'x g0x.
Bevis: Anta g('x [�$E G�)
�gx for vilkårlige g 2 G�; gx 2 G�x . Observer at g må
være av samme type som gx. Ved TK har vi da g�$Eg0x for en g
0x 2 G�x . Da får vi
gx('x [
�$E G�)
�g�$Eg0x
m.a.o. gx('x [
�$E G�)
�g0x. Men ved sats 2.16 har vi da gx 'x g0x.
2
La Typex være mengden av typer som termer i G�x er av. Sats 2.18 sier i en viss
forstand at enhver konstruktiv funksjonsspesi�kasjon i ('x [�$E G�)
� i Typex-
typer �nnes i E. Men med mindre vi antar DEGEN, kan det også �nnes annen
(konstruktiv) funksjonsbeskrivelse i E som ikke relaterer seg til typer i Typex.
Følgende sats sier at ('x [�$E G�)
� er sunn også for slik funksjonsbeskrivelse,
samt i tilfellet E fullstendig �-ukomplett mhp. G�x (beviset av satsen gir her
innsikt):
Sats 2.19 For signaturer, semantikker og ligningsmengde som i de�nisjonene
2.9 og 2.7, har vi for E fullstendig �-ukomplett mhp. G�x , for vilkårlige g; g0 2
G�
g('x [�$E G�)
�g0 ) g�$Eg0
Bevis: Anta g('x[�$E G�)
�g0 for vilkårlige g; g0 2 G�. Observer at g må være av
samme type som g0, og at enhver komponent i en vilkårlig ('x[�$E G�)
�-utledning
hg; : : : ; g0i er av samme type som g; g0.
Observer også at ethvert ('x [�$E G�)
�-utledningssteg er på formen gi =
gx 'x g0x = gi+1, for gx; g
0x 2 G�x ; eller på formen gi$E gi+1 (for gi; gi+1 2 G�).
La Typex være mengden av typer som termer i G�x er av. Anta g; g0 ikke er
av en type i Typex. Men da kan vi ikke ha gi 'x gi+1 for noen komponenter
gi; gi+1 i noen ('x [�$E G�)
�-utledning hg; : : : ; g0i. Følgelig har vi g�$Eg0, og
satsen følger.
Anta så at g; g0 er av en type i Typex. Dersom en av g; g0 er i G�x , følger
satsen fra sats 2.18 over. Anta derfor g; g0 2 G� n G�x . Siden E er fullstendig �-
ukomplett mhp. G�x , kan vi heller ikke nå ha gi 'x gi+1 for noen komponenter
gi; gi+1 i noen ('x [�$E G�)
�-utledning hg; : : : ; g0i. Følgelig har vi igjen g�$Eg0.
2
Satsene 2.16, 2.17, 2.18 og 2.19 uttrykker tilsammen at ('x [�$E G�)
� gir
nøyaktig den semantikk som spesi�seres av sine komponenter 'x og�$E G� (se-
parabel semantikk).
Vi viser nå at initialsemantikk og degenerert �nalsemantikk gir separabel
semantikk under konsistens.
Teorem 2.20 Anta DEGEN. For initialsemantikken '� relativ til en kjerne 'x
bestemt av en � og en ligningsmengde E, har vi under KONSERV og TK
('x [�$E G�)
� = '�
m
E er initielt konsistent relativt til 'x
42
![Page 51: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/51.jpg)
2.3. Semantikk
Bevis: Anta først at E er initielt inkonsistent relativt til 'x. Da er ('x [�$E G�)
� 6= '� ved sats 2.16 over.
Anta så initiell konsistens. At ('x [�$E G�)
� � '� er innlysende. Vi konsent-
rerer oss derfor om tilfellet ('x [�$E G�)
� � '�. Induksjon på lengden n av en
vilkårlig '�-utledning hg; : : : ; g0i i G�:
n = 1: Trivielt har vi g('x [�$E G�)
�g.
n = k+1;k � 1: Da har vi en utledning hg; : : : ; gk; g0i. Induksjonshypotesen
gir g('x [�$E G�)
�gk. Anta gk $E g0. Da har vi gk('x [
�$E G�)
�g0 og teoremet
følger trivielt. Anta gk = c[g0k] og c[g00] = g0 og g0k '
x g00, for noen g0k; g00 2 G�x .
Ved DEGEN med observasjon 2.13, gir TK at c[g0k]�$Egx og c[g00]
�$Eg0x for noen
gx; g0x 2 G�x .
Vi har antatt initiell konsistens eller det ved sats 2.7 side 35 ekvivalente
begrep �nal kjernebevaring. Vi har derfor
:9c0 2 G�;g1; g2 2 G�x j c0[g0k]
�$Eg1 6'
x g2�$Ec0[g00]
Men da får vi altså
gk = c[g0k]�$Egx '
x g0x�$Ec[g00] = g0
m.a.o. gk('x [
�$E G�)
�g0 og teoremet følger.
2
Teorem 2.21 Anta �h = ; og DEGEN. For �nalsemantikken '! relativ til en
kjerne 'x bestemt av en � og en ligningsmengde E, har vi under KONSERV og
TK
('x [�$E G�)
� = '!
m
E er �nalt konsistent relativt til 'x
Bevis: Anta først at E er �nalt inkonsistent relativt til 'x. Ved satsene 2.14
(side 40) og 2.12 (side 39) har vi at E er ikke �nalt kjernebevarende. Da er
('x [�$E G�)
� 6= '! ved sats 2.16 over.
Anta så �nal konsistens. Anta g('x [�$E G�)
�g0 for vilkårlige g; g0 2 G�. At
g '! g0 kan vises ved induksjon på lengden n av en vilkårlig ('x [�$E G�)
�-
utledning hg; : : : ; g0i.
n = 1: Ved KONSERV og TK er '! re�eksiv ved sats 2.5 på side 28. Følgelig
er g '! g.
n = k+1;k � 1: Da har vi en utledning hg; : : : ; gk; g0i. Induksjonshypotesen
gir g '! gk. Ethvert ('x [
�$E G�)
�-utledningssteg er på formen gi = gx 'x
g0x = gi+1, for gx; g0x 2 G�x ; eller på formen gi$E gi+1 (for gi; gi+1 2 G�). Anta
gk = gx 'x g0x = g0 for gx; g
0x 2 G�x : Siden E er �nalt konsistent og da ved
satsene 2.14 og 2.12 �nalt kjernebevarende, har vi gk = gx '! g0x = g0, og
teoremet følger.
Anta gk$E g0: Anta gk 6'! g0. Siden gk$E g0, må gk; g
0 være av samme type.
For at gk 6'! g0 må det derfor �nnes c 2 G� og g1; g2 2 G�x , slik at
c[gk]�$Eg1 6'
x g2�$Ec[g0]
Men siden gk�$Eg0, har vi
c[gk]�$Ec[g0]
som gir g1�$Eg2. Ved KONSERV er dette umulig; så vi må ha gk '
! g0. Dette
konkluderer inklusjonen ('x [�$E G�)
� � '!.
Anta så g '! g0. Ved DEGEN og TK har vi g�$Egx og g
0 �$Eg0x for gx; g
0x 2 G�x .
Siden g '! g0, har vi
:9c 2 G�;g1; g2 2 G�x j c[g]�$Eg1 6'
x g2�$Ec[g0]
43
![Page 52: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/52.jpg)
2. Abstrakte og formelle datatyper
Spesielt har vi da
g�$Egx '
x g0x�$Eg0
og dermed g('x [�$E G�)
�g0.
2
Vi har nå vist at initialsemantikk og degenerert �nalsemantikk gir separabel
semantikk under konsistens. Således har vi vist at initialsemantikk og degene-
rert �nalsemantikk under konsistens bevarer semantikken til sine komponenter. I
den grad ønsket generatorsemantikk er den gitt av kjerne-semantikken og ønsket
semantikk til de�nerte funksjonssymboler er den (konstruktive) gitt av lignings-
mengden E, er det derfor under konsistens rimelig å si at initialsemantikk og
degenerert �nalsemantikk gir ønsket semantikk.
Videre gir teoremene 2.20 og 2.21 proposisjon 2.15.
2.3.8 Inkonsistens og tolkninger
Et de�nert funksjonssymbol hvis semantikk gir inkonsistens i forhold til en til-
tenkt semantikk 'x på et generatorunivers, kan ikke tolkes som en funksjon i
noen algebra A, som er slik at gx 6'x g0x ) A 6j= gx = g0x (A sies å begrense
denne tiltenkte semantikken. Se ellers avsnitt A.1 i tillegg A). F.eks. kan ikke
symbolet f fra eksempel 18 (side 32) tolkes til noen funksjon f i en algebra A
som begrenser� !EIntc
G� . Dette siden succ(pred(0)) og 0 da tolkes til samme ele-
ment a i A, mens succ(0) tolkes til et element b 6= a. Dermed har vi f(a) = a
men også f(a) = b, og f er følgelig ingen funksjon.
Således generaliserer våre inkonsistensbegrep inkonsistensbegrepet i predi-
katlogikk som er ekvivalent med at den inkonsistente predikatmengden ikke har
noen modell. Predikatlogisk inkonsistens vil si at true = false er bevisbart i pre-
dikatkalkylen. Ved en prede�nert standard tolkning av true og false, kan det da
ikke �nnes noen modell hvor `sant' er lik `usant'. Vi har således en prede�n-
ert semantikk på ftrue; falseg. Hos oss er det kjernesemantikken 'x som spiller
rollen som prede�nert semantikk.
2.3.9 Inkonsistens sett som inkongruens
Det kan se ut som om sats 2.16 på side 41 viser at relasjonen ('x [�$E G�)
�
er ufølsom for inkonsistens. Dette er ikke riktig. Selv om ('x [�$E G�)
� (all-
tid) bevarer sine komponenter, gir inkonsistens her andre symptomer; nemlig
inkongruens:
Sats 2.22 Anta DEGEN. Anta KONSERV og TK. La '! være �nalsemantikken re-
lativ til en 'x bestemt av en � og en E. Vi har
E er �nalt kjernebevarende relativt til 'x
m
('x [�$E G�)
� er inkongruent
Bevis: Anta E er ikke �nalt kjernebevarende. Ved (2.10) side 24 og observasjon
2.3 side 27 må det da �nnes c 2 G� og gx; g0x; g1; g2 2 G�x slik at
c[gx]�$Eg1 6'
x g2�$Ec[g0x] men gx '
x g0x
Siden gx 'x g0x har vi ved sats 2.16 at gx('
x [�$E G�)
�g0x. Anta så at
c[gx]('x [
�$E G�)
�c[g0x]
44
![Page 53: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/53.jpg)
2.3. Semantikk
Vi kan ikke ha c[gx]�$Ec[g0x] siden det ville gi g1
�$Eg2 som er umulig ved KONSERV.
Enhver ('x [�$E G�)
�-utledning hc[gx]; : : : ; c[g0x]i i G� må derfor ha formen
c[gx]�$Egx1 '
x gx01
�$Egx2 '
x gx02
�$E� � �
:
� � ��$Egxi '
x gx0i
�$E� � �
:
� � ��$Egxn '
x gx0n
�$Ec[g0x]
(2.14)
for n � 2 og gxi; gx0i 2 G�x ; 1 � i � n. Ved KONSERV må gx
0i '
x gxi+1 for
1 � i � n. Men siden g1�$Ec[gx] og c[g
0x]
�$Eg2 får vi da g1 '
x g2 som er en
motsigelse. Følgelig har vi
c[gx]('x 6 [
�$E G�)
�c[g0x]
og ('x [�$E G�)
� er ikke kongruent.
Anta så at g('x[�$E G�)
�g0 men c[g]('x 6[�$E G�)
�c[g0]. Ved DEGEN og TK har
vi g�$Egx og g
0 �$Eg0x for gx; g
0x 2 G�x . Vi har således
gx('x [
�$E G�)
�g0x
og ved sats 2.16 på side 41
gx 'x g0x
Ved DEGEN og TK har vi også c[g]�$Eg1 og c[g
0]�$Eg2 for g1; g2 2 G�x . Nå kan
ikke g1 'x g2, ellers var jo c[g]('
x [�$E G�)
�c[g0]. Vi har altså
c[g]�$Eg1 6'
x g2�$Ec[g0]
og da
c[gx]�$Ec[g]
�$Eg1 6'
x g2�$Ec[g0]
�$Ec[g0x]
Vi har altså gx 6'! g0x, men gx '
x g0x. Følgelig er E ikke �nalt kjernebevarende.
2
Følgende korollar følger ved sats 2.7 (side 35):
Korollar 2.23 Anta DEGEN. Anta KONSERV og TK. La '� være initialsemantik-
ken relativ til en 'x bestemt av en � og en E. Vi har
E er initielt inkonsistent relativt til 'x
m
('x [�$E G�)
� er inkongruent
Eksempel 23 Betrakt generatorsignaturen
Int =
8<:
0;
succ;
pred
9=;
Betrakt E f og EIntc fra eksempel 18 på side 32.
La � = Int [ ffg. La 'x være basis-initialsemantikken spesi�sert av EIntc .
La '� være initialsemantikken relativ til 'x spesi�sert av E f og �. Vi hadde
f(succ(pred(0))) '� succ(0) og f(0) '� 0
og dermed
45
![Page 54: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/54.jpg)
2. Abstrakte og formelle datatyper
succ(0) '� 0.
og dermed initial inkonsistens relativt til 'x.
Betrakt så relasjonen ('x [�$E f
G�)�. Vi har
succ(pred(0)) ('x [�$E f
G�)�0
men altså
f(succ(pred(0))) ('x 6[�$E f
G�)�f(0)
d
2.3.10 Modulær oppbygging av semantikk
I implementasjonssammenheng er det naturlig å assosiere kjernesemantikken i
initial- og �nalsemantikk til generatorsemantikk. Den relative delen av initial-
/�nalsemantikken er da ment å spesi�sere de�nerte funksjonssymboler.
Kjernesemantikken kan igjen være en semantikk relativ til en annen kjerne.
Således kan semantikker bygges opp fra enklere semantikker. Ved dette får vi
en oppbygging av formelle datatyper fra enklere/andre formelle datatyper.
Nå fungerer formelle datatyper som <grensesnitt> mellom abstrakte data-
typer og eventuelle implementasjoner i et programmeringsspråk. Oppbygging
av formelle datatyper fra andre formelle datatyper, svarer da til oppbygging av
moduler fra andre moduler.
For våre generelle initial- og �nalsemantikker er en slik generell oppbygging
av semantikker fra enklere semantikker alltid ved hjelp av ligningslogikk. Gitt
et formelt grep om kjernen i en semantikk til en formell datatype, utgjør den
formelle datatypen en formell omgivelse for formell resonnering; sett på <øverste
nivå>, bestående av et term-univers og et formelt ligningslogisk system relativ
til en kjerne.
Den <innerste> kjerne i en semantikk ' skal vi kalle den atomære seman-
tikk i '. En atomær semantikk er ikke de�nert relativt til en annen semantikk.
For å ha et formelt ligningslogisk grep om hele semantikken, kan vi kreve at
atomær semantikk skal de�neres over en ligningsmengde og slik at lignings-
logikk mer eller mindre umiddelbart har et grep om semantikken. F.eks. er
basis-initialsemantikk og fri semantikk således velegnet til atomære semantikk-
er. I neste kapittel skal vi se på en annen semantikk som er egnet som atomær
semantikk.
Det ermange interessante sider knyttet til enmodulær oppbygging av formel-
le datatyper. Hvilke kriterier må til for at konsistens overlever fra den atomære
semantikken og oppover? Hvilke kriterier skal til for å unngå at inkonsistens
skal bli skjult av en senere påbygging? Plasshensyn gjør at vi utsetter denne
diskusjonen til en senere anledning.
Imidlertid de�nerer vi nå følgende nyttige begrep:
De�nisjon 2.13 Det er mulig å assosiere en formell omgivelse til en seman-
tikk som følger:
� For en atomær semantikk 'a de�nert over en Ea � E(T�a(V)), er
hG�a ;Eai
den formelle omgivelse for 'a.
46
![Page 55: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/55.jpg)
2.4. Mot mekanisk resonnering
� La 'x være en semantikk, og la X være den formelle omgivelse for 'x.
For en semantikk ' relativ til 'x bestemt av en � og en ligningsmengde
E � E(T�(V)), er
X [ fhG�;Eig
den formelle omgivelse for '.
En formell omgivelse for en semantikk består av bestanddeler for de grunnleg-
gende ligningslogiske maskiner som er involvert i de�nisjonen av semantikken.
Den ytterste eller øverste komponent i en formell omgivelse for en semantikk�
i de�nisjon 2.13 hG�a ;Eai for 'a og hG�; Ei for '�skal vi i noen anledninger
kalle den logiske omgivelse eller grensesnitt-omgivelsen for semantikken.
* * *
Vi har nå de�nert ulike typer semantikk og utfra disse, forskjellige typer
formelle datatyper. Oppbyggingen av semantikkene er ved ligningslogikk. Gitt
atomær semantikk de�nert direkte ved ligningslogikk, har vi derved et formelt
grep på våre semantikker.
I neste avsnitt søker vi å videreføre dette formelle grep til mekaniserbarhet.
2.4 Mot mekanisk resonnering
Generaliserer vi diskusjonen for basis-initialsemantikk i avsnitt 2.2.9 (side 21)
til generell initial- og �nalsemantikk, er det på det rene at vi er interessert i
påstander som
8� 2 SbstG� j s� ' t� (2.15)
for en gitt initial-/�nalsemantikk ' på en G�. (Påstanden (2.15) generaliserer
(2.5) på side 22.) Vi har
G�=' j= s = t , 8� 2 SbstG� j s� ' t�
(punkt 2 på side 23), så vi er altså interessert i påstander som er sanne i den
formelle datatypen G�='. Vi skal kalle det å �nne ut for en vilkårlig ligning s = t
om G�=' j= s = t, for resolusjon8 av ' i G�='. I dette avsnittet presenterer
vi noen i datatype-sammenheng, eksisterende sentrale tilnærmelser til algoritm-
isk resolusjon for basis-initial- og basis-�nalsemantikker. Vi drøfter muligheten
for resolusjon av våre generelle initial- og �nalsemantikker. Vi ser også litt på
algoritmisk etablering av (in)konsistens.
I forbindelse med resolusjon av semantikk skal vi imidlertid først påpeke en
begrensning i beviskraft hos ligningslogikk i forholdet til formelle datatyper.
Selv om det er assosiert en formell ligningslogisk omgivelse med enhver formell
datatype, er ligningslogikk i seg selv generelt ikke <sterk nok> for resolusjon i
formelle datatyper. Dette skal vi nå se i forbindelse med basis-initialsemantikk.
2.4.1 Induktive vs. logiske konsekvenser
For en vilkårlig E � E(T�(V)) er en vilkårlig algebra A enmodell for E dersom
A tilfredstiller hver ligning i E. Vi betegner klassen av �-algebraer som er
8`Resolusjon' brukes her ikke i betydningen forbundet med en bevisstrategi som ligger tilgrunn for implementasjoner (f.eks. Prolog) av såkalt Logic Programming ([Rob65] og f.eks.[Apt90]). Vi ønsker at `resolusjon' her skal ha konnotasjonen `løsning' (på et problem); evt.`oppløsning', i den forstand at god oppløsning lar oss se en semantikks enkelte bestanddelersom er par av termer, m.a.o. ligninger.
47
![Page 56: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/56.jpg)
2. Abstrakte og formelle datatyper
modeller for E, med Mod�(E). For en vilkårlig s = t 2 E(T�(V)) skriver vi
E j= s = t for å antyde at s = t er tilfredstilt av samtlige elementer iMod�(E).
Dvs. at s = t er tilfredstilt i alle tilfeller der alle ligningene iE er tilfredstilt; altså
hvis alle ligningene i E er tilfredstilt, må nødvendigvis s = t være tilfredstilt.
Vi sier da at s = t er en logisk konsekvens av E. Den logiske teori for E�
mengden av alle logiske konsekvenser av E betegnes med Teo(E).
Ligningslogikk kan brukes til å utlede eller veri�sere logiske konsekvenser
av en gitt ligningsmengde. Følgende teorem stadfester at det formelle systemet
ligningslogikk for en ligningsmengde E er sunt; i den forstand at enhver ligning
utledet av systemet er en logisk konsekvens av E, og komplett; i den forstand
at alle logiske konsekvenser av E er utledbare i systemet:
Teorem 2.24 (Birkho� [Bir35]) La � være en vilkårlig signatur. For en vil-
kårlig E � E(T�(V)) har vi for alle s; t 2 T�(V):
E j= s = t , s�$Et
For gitte � og E, er vi basis-initialsemantisk interessert i resolusjon i den
basis-initielle datatypen G�=E. Algebraen G�=E er en modell for E (vises i av-
snitt A.2). Dette vil si at vi, snarere enn å være interessert i mengden av ligninger
tilfredstilt av samtlige modeller for E, er interessert i mengden av ligninger til-
fredstilt av én slik modell; nemlig G�=E. Mengden av induktive konsekvenser
av E�ligninger tilfredstilt av G�=E�betegnes med Ind(E). Mengden Ind(E)
kalles den induktive teorien for E. Det er lettere å tilfredstille én modell
enn mange modeller, så ikke uventet er generelt Teo(E) en ekte delmengde av
Ind(E):
Eksempel 24 Nat+-algebraen Nat+a fra eksempel 4 side 15 er en modell for
Peano-aksiomene EP i eksempel 9 side 20. Ligningen x+y = y+x er ikke tilfreds-
tilt i Nat+a siden a+a 0 = a 6= 0 = 0+a a. Ergo er x+y = y+x 62 Teo(EP ).
I eksempel 10 side 20 så vi at�$EP GNat+
= 'Nat+
GNat+. Siden �Nat+
GNat+er surjektiv,
har vi at GNat+='Nat+
GNat+= GNat+=EP og Nat+ er elementært ekvivalente. Lignin-
gen x+y = y+x er tilfredstilt i Nat+. Dermed er x+y = y+x også tilfredstilt i
GNat+=EP . Altså er Teo(EP ) 6= Ind(EP ).d
Ligningsmengdermed egenskapen Teo(E) = Ind(E) kalles !-komplette [Tar68];
en egenskap som altså eksempel 24 demonstrerer at ikke holder generelt.
Generelt unnslipper altså påstander som G�=E j= s = t det formelle grepet
til ligningslogikk. I avsnitt A.2 i tilleggskapittel A utdypes dette nærmere.
For formell resonnering i basis-initielle formelle datatyper, er derfor andre
klasser av formelle systemer nødvendige. En tilnærming er å innføre en induk-
sjonsregel, som formaliserer allkvantoriseringen i (2.5) på side 22. Dette e�ek-
tuerer bevis ved induksjon over syntaktisk oppbygging av grunntermer, og kalles
ofte strukturell induksjon [Bur69] eller også generator induksjon bla. [Gut75]. En
nødvendig (men ikke tilstrekkelig) betingelse for kompletthet av slike induktive
systemer, er et rekursivt tellbart term-univers.
�
Selv om ligningslogikk generelt er for svak for resolusjon i formelle datatyper,
er ligningslogikk likefullt en del av formelle systemer rettet mot formelle data-
typer. Ligningslogikk er dessuten sentral i oppbygningen av formelle datatyper.
For tilnærmelser til mekanisk formell resonnering�her algoritmisk resolu-
sjon av (basis-)semantikk�spiller derfor en deterministisk form for ligningslo-
gikk en sentral rolle:
48
![Page 57: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/57.jpg)
2.4. Mot mekanisk resonnering
2.4.2 Konvergente omskrivningssystemer
Vi betrakter en gitt R � E(T�(V)). Termuniverset for diskusjonen er her T�(V).
La T � T�(V) være en termmengde.
� R er T -terminerende dersom det ikke �nnes noen uendelig utledning
ht; : : :i i T�(V) for noen t 2 T .
� R er T -Church-Rosser dersom for alle s; t 2 T
s�$Rt ) 9u 2 T�(V) j s
�!Ru
� Rt
For vilkårlige s; t skriver vi s!!Rt dersom s
�!Rt og t 6!
Ru for alle u 2 T�(V) og
kaller t en normalform for s.
� R har entydige T -normalformer dersom for alle t 2 T ; u; v 2 T�(V)
u! Rt
!!Rv ) u = v
Dersom det �nnes nøyaktig en normalform for en vilkårlig s 2 T�(V), betegner
vi denne med s!R.
Anta at R er T -terminerende, har entydige T -normalformer og er T -Church-
Rosser. Vi sier da at R er T -konvergent. Da �nnes s!R og t!R for vilkårlige
s; t 2 T , og
s�$Rt , s!R = t!R (2.16)
(Bevis i avsnitt A.3 i tilleggskapittel A).
Det er lett å se at omskrivningssystemet utgjort av R da kan brukes til å
avgjøre hvorvidt s�$Rt, for vilkårlige s; t 2 T . M.a.o. er da mengden Teo(R)T
avgjørbar.
I lys av ligningslogikk er det da interessant gitt en vilkårlig ligningsmengdeE,
å �nne en T -konvergent regelmengde R slik at�$R T =
�$E T . En slik regelmengde
kalles T -komplett for E. Dette kompletthetsbegrepet for en T -konvergent R
deles opp i
T -Sunt for E:�$R T �
�$E T
T -Adekvat for E:�$E T �
�$R T
Dersom T er identisk med termuniverset i diskusjonen, sløyfes pre�kset T - fra
begrepene ovenfor. Dersom T består av grunntermer over en signatur gitt utfra
diskusjonen, pre�kser vi ofte begrepene med grunn-.
For bevis av (2.16) og mer om konvergens, se avsnitt A.3 i tilleggskapittel
A.
Eksempel 25 Ligningsmengden EInt+ = E+Z[EIntc fra eksempel 11 side 21
er, sett som regelmengde (RInt+), allerede konvergent og derfor trivielt komplett
for EInt+ .d
Ligninger sammen med ligningslogikk utgjør den operasjonelle delen av en for-
mell datatype. I lys av dette ser vi på ligninger som (ikke-deterministiske)
abstrakte programmer. Konvergente omskrivningssystemer er da en determi-
nistisk form for slike abstrakte programmer, i den forstand at konvergente
omskrivningssystemer gir samme output for et gitt input.
Det er naturlig å tenke konstruktivt ved algebraisk funksjonsspesi�kasjon.
Dette fører ofte naturlig til at den algebraiske funksjonsspesi�kasjonen er kon-
vergent.
49
![Page 58: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/58.jpg)
2. Abstrakte og formelle datatyper
Generelt er det imidlertid ikke-trivielt å �nne en komplett regelmengde for
en gitt ligningsmengde. Knuth&Bendix-komplettering i form av Knuth&Ben-
dix-prosesser [KB70]�abstrakte maskiner�gir i noen tilfeller en komplett re-
gelmengde gitt en ligningsmengde E.
Eksempel 26 Betrakt de ligningslogiske gruppe-aksiomer:
EG =
8<:
1�x = x;
x-1�x = 1;
(x�y)�z = x�(y�z)
9=;
EG er ikke konvergent. En mulig for EG komplett regelmengde er denne ikke-
intuitive RG framkommet ved komplettering [KB70]:
RG =
8>>>>>>>>>>>>>><>>>>>>>>>>>>>>:
1�x! x;
x-1�x! 1;
(x�y)�z! x�(y�z);
x-1�(x�y)! y;
x�1! x;
1-1! 1;
(x-1)-1! x;
x�x-1! 1;
x�(x-1�y)! y;
(x�y)-1! x
-1�y-1
9>>>>>>>>>>>>>>=>>>>>>>>>>>>>>;
d
I avsnitt 2.4.4 presenteres Knuth&Bendix-prosesser.
Det �nnes ligningsmengder for hvilke ingen endelig komplett regelmengde
�nnes:
Eksempel 27 I forbindelse med implementasjon av den abstrakte datatypen
`mengder av naturlige tall', er vi interessert i den formelle basis-initielle dataty-
pen spesi�sert av følgende SetNat og ESetNat:
SetNat =
8>><>>:
0 : nat;succ : nat!nat;
Ø : setnat;add : setnat�nat!setnat
9>>=>>;
ESetNat =
�add(add(s,x),x) = add(s,x);
add(add(s,x),y) = add(add(s,y),x)
�
Imidlertid �nnes ingen endelig regelmengde som er komplett for ESetNat, ei heller
GSetNat-komplett.9
d
2.4.3 Resolusjonsmetoder for basis-semantikker
Vi nevner her noen tilnærmelser til algoritmisk resolusjon. Metoder som i ulik
grad søker algoritmisk resolusjon, skal vi kalle resolusjonsmetoder.
For !-komplette ligningsmengder, er det klart at konvergente omskrivnings-
systemer umiddelbart gir full algoritmisk resolusjon. Men generelt trengs imid-
lertid en sterkere form for formelt system, og med dette sterkere resolusjonsme-
toder.
9Det �nnes dog varianter av omskrivningssystemer, f.eks. betingete omskrivningssystemerog ordnede omskrivningssystemer (se f.eks. [DJ90]), i hvilke det ville være mulig å restriktereanvendelsen av den andre ligningen til grunn-instanser på en slik måte at termineringgaranteres.
50
![Page 59: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/59.jpg)
2.4. Mot mekanisk resonnering
Ligningslogikk styrket med strukturell- eller generator-induksjon er et for-
melt system. Men som for mange formelle systemer, kreves ofte en viss form for
innsikt (intelligens) for å lykkes med et bevis i systemet. Mekanisk resonnering
kan derfor ofte bare oppnås delvis; som en interaktiv prosess med en menneske-
lig bruker. Den mekaniske delen av strukturell-/generator-induksjonssystemer
er naturlig ivaretatt delvis av grunn-konvergent omskriving. Resten av bevis-
prosessen skjer interaktivt med bruker. Se f.eks. [Lys93] og [Lys94b].
Implementerte eksempler på slike interaktive bevis-førere basert delvis på
ligningslogikk, er LP [GG91] og RRL [HZ89]. En implementasjon av �ere (andre)
bevisstrategier er beskrevet i [BM88].
Det �nnes metoder som søker en tilnærming til hel-mekanisk resolusjon av
basis-semantikker. For basis-initialsemantikk �nnes eksempelvis induktiv komp-
lettering (induksjonsløs induksjon) [Mus80] og bl.a. [HH82, JK89, KM87], samt
en videreutvikling av induktiv komplettering beskrevet i [Bac88]. Tilfellet basis-
�nalsemantikk (�nalsemantikk med basis-initiell eller fri kjerne) er behandlet i
[Lys92] og [Lys94a]. Alle disse resolusjonsmetoder er i sine generelle former av-
hengige av grunn-konvergens.
Resolusjon er generelt uavgjørbart, siden mengden Teo(E) generelt er uav-
gjørbar [Mar47, Pos47], så generell algoritmisk resolusjon er umulig.10
Men refutering er her algoritmisk for basis-semantikker, i det minste for
konvergent spesi�serende ligningsmengde. M.a.o. dersom G�=' 6j= s = t for en
ligning s = t og en basis formell datatype G�=', så kan dette oppdages mekanisk
og i endelig tid, gitt konvergent spesi�serende ligningsmengde E.
For basis-initialsemantikk vil det da nemlig �nnes en � 2 SbstG� , slik at
s� !E 6= t� !E; og for basis-�nalsemantikk vil det �nnes en � 2 SbstG� og en
kontekst c 2 G�, slik at c[s�]!E 6= c[t�]!E.
Disse fakta kan oppdages ved systematiske søk i hhv. Sbst� og (essensielt)
Sbst� � G�. Det er her essensielt at våre term-univers er rekursivt tellbare.
(Kartesiske produkt over tellbare mengder er også tellbare.) Et systematisk søk
kan uttrykkes ved fairness. For basis-initialsemantikk:
Søket er slik at dersom prosessen var uendelig, så oversees ingen
� 2 Sbst� i det uendelige.
og for basis-�nalsemantikk:
Søket er slik at dersom prosessen var uendelig, så oversees intet par
hc; �i av kontekster c 2 G� og � 2 Sbst� i det uendelige.
Metodene over som søker en tilnærming til hel-mekanisk resolusjon, er al-
le påbygginger på Knuth&Bendix-prosesser. Vi presenterer nå Knuth&Bendix-
prosesser. Vi skal også presentere induktiv komplettering for å illustrere grunn-
prinsippet i utbygningene av Knuth&Bendix-prosesser som metodene over re-
presenterer.
2.4.4 Knuth&Bendix-komplettering
Hoved-mekanismen i Knuth&Bendix-komplettering er utleding av såkalte kritis-
ke par. For å snakke om kritiske par, må vi imidlertid først si noe om uni�kasjon.
10 At resolusjon generelt er uavgjørbart, kan her ikke vises direkte via Gödels berømteufullstendighetsteorem [Göd31], [EN58]. Dette teoremet etablerer at det �nnes et utsagn i 1.
ordens predikatlogikk som er sant i modellen (algebraen) Nat+�; altså de naturlige tall med
addisjon og multiplikasjon, men som ikke kan vises sant i noen konsistent predikatkalkyle forNat
+� (og heller ikke usant ved sunnhet). Man kan ikke overføre dette argumentet til den
ligningslogiske verden, fordi ligningslogikk (gjerne utvidet med induksjonsregler) har et språkmed (mye) mindre uttrykkskraft. Faktisk er resolusjon i en passende formell datatype forNat
+� avgjørbar! (Vises f.eks. ved transformasjon til problemet om avgjørbarhet av sannhetav polynomiske ligninger med naturlige tall som kvotienter.)
51
![Page 60: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/60.jpg)
2. Abstrakte og formelle datatyper
Uni�kasjon
For vilkårlige termer s og t, er substitusjonen � en uni�kator for s og t, hvis
s� = t�
Termene s og t sies å være uni�serbare hvis s og t har en uni�kator �. To gitte
termer kan ha ingen uni�kator:
Eksempel 28 Det �nnes ingen instansiering � av x, slik at (x�x)� = 0�.d
To gitte termer kan ha �ere uni�katorer:
Eksempel 29 Termene (u�v)+w og x+y har bl.a. uni�katorene � og � slik at
�(x) = (u�v), �(w) = y og identitet for u,v og y.
�(x) = 1�z, �(u) = 1, �(v) = z, �(w) = �(y) = 0.
d
Merk at i eksemplet over, er � en spesialisering av �, i den forstand at det �nnes
en substitusjon � slik at ��� = � ; nemlig enhver substitusjon � slik at
�(u) = 1, �(v) = z, �(w) = 0.
(f.eks. � selv.)
En uni�kator � for to termer s og t , er en mest generell uni�kator for s
og t, hvis enhver annen uni�kator � for s og t er slik at det �nnes en � slik at
��� = �
Ethvert unifserbare term-par har en unik (opptil omnavning av variable) mest
generelle uni�kator. Å avgjøre om et term-par er uni�serbart og isåfall å �nne
den mest generelle uni�kator, kan gjøres algoritmisk.
Kritiske par
Anta nå et omskrivningssystem hT�(V);Ri. La vi ! hi og vj ! hj være to
vilkårlige (muligens like) regler i R. Vi antar at
1. enhver regel i R er slik at ingen høyreside har forekomster av variable
som ikke forekommer i venstresiden. Denne antagelsen er nødvendig for
terminering av hT�(V);Ri
2. Mengdene av variable forekommende i hhv. vi og vj er disjunkte; dvs.
enhver variabel som forekommer i vi forekommer ikke i vj og omvendt.
Dette kan tilfredstilles for en vilkårlig regelmengde, ved en passende om-
navning av variable i reglene. Denne antagelsen endrer ingen egenskaper
mht. omskriving i hT�(V);Ri.
Anta nå at det �nnes en posisjon p i vi slik at vijp ikke er en variabel, og at
vijp og vj er uni�serbare. La � være den mest generelle uni�kator for vijp og
vj. Da kan termen vi� omskrives på to måter som involverer reglene vi! hi og
vj ! hj:
vi�[hj�]p R vi�!R hi�
Paret hvi�[hj�]p; hi�i kalles et kritisk par for R. Dersom det �nnes en u slik
at
vi�[hj�]p�!Ru
� Rhi�
52
![Page 61: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/61.jpg)
2.4. Mot mekanisk resonnering
kalles hvi�[hj�]p; hi�i et trivielt kritisk par. Hvis ingen slik u �nnes kalles
det kritiske paret ekte. (Grunnen til at vijp over presiseres til ikke å være en
variabel, er fordi i motsatt fall fås umiddelbart et trivielt kritisk par. Interessen
ligger først og fremst i ekte kritiske par.)
Uni�kasjon fungerer her som en slags dobbel matching: Det er her to regler i
R involvert. Eksistensen av et kritisk par uttrykker at det eksisterer en term som
kan omskrives (innebærer matching) på to måter i R. Denne termen uttrykkes
i generell form som den mest generelle uni�kasjonen av de to venstresidene i
reglene (subterm av den ene); nemlig vi�jp.
Et omskrivningssystem hT�(V); Ri er lokalt kon�uent, dersom
s� Rw
�!Rt ) 9u j s!
Ru
Rt
Et omskrivningssystem hT�(V); Ri er globalt kon�uent, dersom
s� Rw
�!Rt ) 9u j s
�!Ru
� Rt
Vi har:
Lemma 2.25 (Newman (avledet av et resultat i [New42])) Et terminerende
omskrivningssystem er lokalt kon�uent hvis og bare hvis det er globalt kon�uent.
Lemma 2.26 Et terminerende omskrivningssystem er konvergent hvis og bare
hvis det er globalt kon�uent.
Det sentrale for hvordan Knuth&Bendix-komplettering fungerer er nå:
Lemma 2.27 (�Critical Pair Lemma� [KB70]) Et omskrivningssystem er
lokalt kon�uent hvis og bare hvis det ikke har noen ekte kritiske par.
Å �nne alle ekte kritiske par i et omskrivningssystem kan gjøres algoritmisk.
Det følger således fra lemmaene 2.25 og 2.26 at konvergens for terminerende
omskrivningssystemer er avgjørbart.
Menmerk at terminering generelt ikke er avgjørbart (vises ved uavgjørbarhet
av stoppeproblemet [Tur36] og transformasjon fra Turing-maskiner til omskriv-
ningssystemer).
Komplettering
Vi beskriver nå Knuth&Bendix-prosesser. Den opprinnelige beskrivelse �nnes i
[KB70]. Vår beskrivelse er inspirert av [Kir94].
Hensikten er altså å transformere en gitt muligens ikke-konvergent lignings-
mengde E til en for E komplett regelmengde R.
Idéen er å generere for E sunne regler sålenge det �nnes kritiske par for den
(hittil) genererte regelmengden. Ligningsmengden E og en kandidat-regelmeng-
de R opplever således transformasjoner gjennom kompletteringen. Invarianter
gjennom kompletteringen er at�$E[R
forblir uendret og at R alltid er terminer-
ende.
Som sagt er terminering av omskrivningssystemer generelt ikke avgjørbart.
Knuth&Bendix-prosesser forsynes av den grunn med en reduksjonsordning på
termuniverset i tillegg til input-ligningsmengden. Reduksjonsordningen brukes
til å sikre terminering av det genererte regelsettet. Knuth&Bendix-kompletter-
ing er beskrevet som et formelt system i �gur 2.4.
De�ner relasjonen `KB over E(T�(V))�E(T�(V)) slik at hE;Ri `KB hE0;R0i
hvis og bare hvis hE0;R0i fås fra hE;Ri i ett skritt ved å bruke inferensreglene
i �gur 2.4. Vi har:
53
![Page 62: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/62.jpg)
2. Abstrakte og formelle datatyper
Datastruktur:
hE;Ri � E(T�(V))�E(T�(V)). Relasjonen � er den gitte reduksjonsordning.
Inferensregler:
Init: For en E0 � E(T�(V)):
hE0; ;i
Forenkle1:
hE [ fs = tg;Ri
hE [ fr = tg; Ri, s!
Rr
Forenkle2:
hE [ fs = tg; Ri
hE [ fs = rg;Ri, t!
Rr
Slett:
hE [ fs = sg;Ri
hE;Ri
Orienter1:
hE [ fs = tg; Ri
hE;R [ fs! tgi, s � t
Orienter2:
hE [ fs = tg; Ri
hE;R [ ft! sgi, t � s
Sammensett:
hE;R [ fs! tgi
hE;R [ fs! rgi, t!
Rr
Kollaps:
hE;R [ fs! tgi
hE [ fr = tg; Ri, s!
R0 r
for R0 � R n fs! tg.
Utled:
hE;Ri
hE [ fs = tg;Ri
for hs; ti et ekte kritisk par i R.
Figur 2.4: Inferensregler i Knuth&Bendix-komplettering.
54
![Page 63: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/63.jpg)
2.4. Mot mekanisk resonnering
Lemma 2.28 Dersom
hE;Ri `�KB hE0; R0i
har vi at
��$E[R
=�$
E0[R0
� For reduksjonsordningen � gitt til prosessen har vi�!R� � )
�!R0� �.
En Knuth&Bendix-prosess kan gå i det uendelige. Men dersom ingen inferens-
regel er anvendbar på en gitt hE;Ri, sier vi at prosessen er terminerende.
Teorem 2.29 Dersom
hE; ;i `�KB h;;Ri
og ingen inferensregel er anvendbar på h;;Ri, har vi at R er komplett for E.
Teorem 2.29 er nå enkel å veri�sere: Ved lemma 2.28 har vi�$E
=�$R
og at R er
terminerende. Siden ingen regel er anvendbar på h;; Ri, er spesielt ikke Utled
anvendbar. Følgelig �nnes ingen ekte kritiske par i R. Ved lemmaene 2.27, 2.25
og 2.26 er da R konvergent. Ialt er altså R komplett for E. Vi kaller en Knuth-
&Bendix-prosess som terminerer i en kon�gurasjon h;;Ri for terminerende
vellykket.
En Knuth&Bendix-prosess kan også terminere i en kon�gurasjon hE 6= ;;Ri.
Dette skjer dersom en ligning i E ikke kan orienteres ved noen av inferensreglene
Orienter1 ellerOrienter2. Vi kaller en Knuth&Bendix-prosess som terminerer
i en slik kon�gurasjon for terminerende mislykket.
Ikke-terminering
Knuth&Bendix-prosesser kan være ikke-terminerende, og likevel interessante.
Betrakt en muligens uendelig sekvens
hhE0; R0i; : : : ; hEi;Rii; : : :i
slik at hEi;Rii `KB hEi+1;Ri+1i. En slik sekvens kan sees å representere en
særskilt Knuth&Bendix-prosess, dvs. en særskilt anvedelsesrekkefølge av infe-
rensreglene i �gur 2.4. Den induktive grense til en slik sekvens er de�nert
som
E1 =
1[j�0
1\i�j
Ei og R1 =
1[j�0
1\i�j
Ri
LigningsmengdenE1 består av alle ligninger generert av denne særskilte Knuth-
&Bendix-prosessen, som ikke senere forsvinner fra en eller annen Ei. Vi kaller
E1 mengden av vedvarende ligninger for prosessen. Likeledes erR1mengden
av vedvarende regler for prosessen.
En muligens uendelig Knuth&Bendix-prosess kalles vellykket dersomE1 =
; og R1 er konvergent. Tilfellet terminerende vellykket er her et spesialtilfelle
for hEi;Rii = hEn; Rni; i � n for et eller annet naturlig tall n.
For uendelige Knuth&Bendix-prosesser skal det for oss være interessant å
avgjøre bl.a. følgende:
1. om en gitt generert regel er vedvarende
2. om R1 er endelig
3. hvisR1 er uendelig, om en endelig mengde regel-skjemaer kan konstrueres
som uttrykker alle regler i R1
55
![Page 64: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/64.jpg)
2. Abstrakte og formelle datatyper
Arbeid under det siste punktet er presentert i bl.a. [Her92].
Et sentralt resultat i forbindelse med Knuth&Bendix-komplettering er:
Teorem 2.30 (Bachmair [Bac87]) Anta en Knuth&Bendix-prosess med en as-
sosiert muligens uendelig sekvens
hhE0;R0i; : : : ; hEi;Rii; : : :i
slik at hEi;Rii `KB hEi+1; Ri+1i. Anta prosessen er `fair' mht. kritisk par-
testing, dvs. ingen regel i R1 blir oversett i det uendelige for anvendelse av
inferensregelen Utled. Da har vi for vilkårlige termer s og t:
s�$E0
t , 9j j s!Rj = t!Rj
2.4.5 Induktiv komplettering
La E være en vilkårlig ligningsmengde. Som sagt er generelt Teo(E) en ekte
delmengde av Ind(E). Gitt en for E komplett regelmengde R, �nnes en reso-
lusjonsmetode for de ligninger som er logiske konsekvenser av E. Men generelt
kan det altså �nnes induktive konsekvenser som ikke er logiske konsekvenser, og
vanlig omskriving i R blir da utilstrekkelig for resolusjon.
Vi beskriver nå meget kort induktiv komplettering som er et forsøk på å
resolvere �ere ligninger enn dem som også er logiske konsekvenser av E.
La G være en subalgebra av en G�. En term t 2 T er G-(grunn)redusibel
i et omskrivningssystem R dersom
8� 2 SbstG j 9u j t�+!Ru
Grunnredusibilitet er avgjørbart [Pla85, KNZ87].
La T�(V) være vårt term-univers. La E være en ligningsmengde og R en
G�-komplett regelmengde for E. La s = t være en vilkårlig ligning. Vi har da:
Teorem 2.31 Anta en Knuth&Bendix-prosess slik at
hfs = tg; Ri `�KB h;;R0i
Hvis enhver regel v! h generert i prosessen er slik at v er G�-redusibel av R,
så er s = t en induktiv konsekvens av E.
Teorem 2.32 Anta en uendelig Knuth&Bendix-prosess gitt hfs = tg;Ri. Hvis
enhver regel v ! h generert i prosessen er slik at v er G�-redusibel av R, så er
s = t en induktiv konsekvens av E.
Teorem 2.33 Anta en Knuth&Bendix-prosess slik at
hfs = tg; Ri `�KB hEk;Rki `�KB : : :
der Rk inneholder en regel v ! h slik at v ikke er G�-redusibel av R. Da er
s = t ikke en induktiv konsekvens av E.
En viss intuisjon over teoremene 2.31, 2.32 og 2.33 kan fås ved å observere at
dersom en regel v ! h genereres og v ikke er G�-redusibel av R, så kollapser
v ! h kongruensklasser i G�=R = G�=E. I tilfellet tilstrekkelig kompletthet
mhp. generatortermer, vil en slik kollaps kunne vise seg i inkonsistens relativt
til generatorsemantikk i G� gitt av E:
I konteksten av implementasjon av abstrakte datatyper, betrakt en signatur
� disjunkt delt i generatorer �c og de�nerte funksjonssymboler �d. I implemen-
tasjonssammenheng er det naturlig å anta at
56
![Page 65: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/65.jpg)
2.4. Mot mekanisk resonnering
1. R er tilstrekkelig �d-komplett mhp. G�c .
2. reduksjonsordningen på termer i kompletteringsprosessen er slik at enhver
u 2 T�d[�c(V) n T�c(V) er større i ordningen enn alle v 2 T�c(V).
Så anta altså at en regel v ! h genereres og v ikke er G�-redusibel av R. Da
�nnes � 2 SbstG� slik at v� = v�!R. Ved 1 må følgelig v� være en generator-
term, og ved 2 er da også h� en generatorterm. Ved 2 har vi videre h��6!Rv�,
og siden v� ikke er redusibel av R, har vi også v��6!Rh�.
Generatortermene v� og h� er således i hver sin E-kongruensklasse. Lignin-
gen v = h�vitnet som viser at s = t ikke er en induktiv konsekvens av E�
er også et vitne på at s = t innfører initiell inkonsistens relativt til generatorse-
mantikken spesi�sert av E. Vi har altså initialsemantisk
v��$
E[fs=tg h� til tross for at v��6$Eh�
Dersom den tilførte ligningen (hypotesen) s = t vises ved induktiv komp-
lettering å være en induktiv konsekvens, kan dette da sies å skje ved å vise
at s = t ikke fører til slik inkonsistens. Dette bevis ved konsistens prinsipp er
gjennomgående i metodene beskrevet i [JK89], [Bac88], [Lys92] og [Lys94a].
2.4.6 Metoder som søker generell resolusjon
Hva så medmetoder som søker resolusjon av generell initial- og �nalsemantikk? I
avsnitt 2.3.10 tok vi til orde for en modulær oppbygging av formelle datatyper.
Kan det tenkes at en analog modulær sammensetting av resolusjonsmetoder
er mulig? Dvs. kunne det tenkes at en resolusjonsmetode for en kjerne 'x,
og en resolusjonsmetode for�$E G� for en ligningsmengde E, tilsammen gir en
resolusjonsmetode for en semantikk relativ til 'x bestemt av � og E? Dette er
ikke åpenbart; spesielt ikke for metoder som baserer seg på utleding av kritiske
par.
En grunn til dette er at initial-/�nalsemantikk er på sett og vis mer enn
summen av sine deler: Initialsemantikk er eksempelvis ikke bare <summen>
av kjernen og semantikken utgjort av den tilhørende ligningsmengden, for ved
inkonsistens oppstår nye likheter i kjernen. Inkonsistens er således en egenskap
i initialsemantikken, men ikke i delene som semantikken er bygget opp av. De
forskjellige logiske maskiner i den formelle omgivelse for en semantikkmå følgelig
samarbeide på en eller annen inn�økt måte.
Gitt konsistens kan vi imidlertid ved teoremene 2.20 side 42 og 2.21 side 43,
derimot betrakte den separable relasjonen
('x [�$E G�)
�
som stedfortreder for initialsemantikk og degenerert �nalsemantikk. Denne re-
lasjonen er modulær i sin oppbygning i forhold til initial- og �nalsemantikker.
Denne relasjonen kan derfor være interessant i en videre diskusjon om mulig-
heten av modulære metoder som søker resolusjon av generell initial- og �nalse-
mantikk.
Vi kan iallefall under konsistens og under visse forutsetninger slå fast at refu-
tering er algoritmisk for generell initialsemantikk og degenerert �nalsemantikk.
Anta nemlig en initialsemantikk eller degenerert �nalsemantikk ' relativ til
en kjerne 'x spesi�sert av en � og en E. Under konsistens kan vi ved teoremene
2.20 side 42 og 2.21 side 43, altså betrakte relasjonen
('x [�$E G�)
�
57
![Page 66: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/66.jpg)
2. Abstrakte og formelle datatyper
Anta G�=' 6j= s = t for en vilkårlig ligning s = t. Da skulle vi altså ha
s�('x 6 [�$E G�)
�t�
for en substitusjon � 2 SbstG� . La oss anta at E er konvergent og at 'x er
avgjørbar. Vi antar KONSERV og TK, og i tillegg at E-normalformer er i G�x .
Anta i tillegg at E er fri mhp. G�x ; dvs. E har ingen ligninger fra E(T�x(V)).
Da må enhver ('x [�$E G�)
�-utledning i G� ha formen g!!Egx '
x g0x! Eg0.
Dette følger fra at enhver ('x [�$E G�)
�-utledning under KONSERV har formen
beskrevet i (2.14) på side 45, samt at alle gx0i
�$Egxi+1 forsvinner ved antagelsen
om frihet mhp. G�x .
For refutering under konsistens kan vi følgelig søke systematisk (`fair') i
universet SbstG� inntil
s� !E 6'x t� !E
Enmulig innfallsvinkel til å �nne generelle resolusjonsmetoder (uavhengig av
konsistens), kan være gjennom klasse- og utvidet (extended) omskriving (se f.eks.
[DJ90]). Klasse-omskrivning er omskriving modulo kongruensklasser. Utvidet
omskriving er en beregningsmessig sterkere, men logisk svakere type omskriving
enn klasse-omskriving, og brukes i utvidet komplettering [DJ90] og dessuten i
forbindelse med resolusjon av basis-initialsemantikk [JK89] i noen tilfeller der
det ikke er mulig å �nne et komplett regelsett pga. uorienterbarhet. Det er
klart at at klasse-omskriving i noen tilfeller kan overføres til omskriving modulo
kjernesemantikk. Avhengig av hvordan en slik kjernesemantikk er spesi�sert,
kan det da tenkes at utvidet komplettering kan gi idéer til resolusjonsmetoder
for våre generelle semantikker.
Det ville være interessant å gi en skikkeligere drøfting av generelle resolu-
sjonsmetoder sammen med en mer utfyllende diskusjon om pragmatiske sider
ved generell semantikk (modulær oppbygging, i hvilken grad modulær oppbyg-
ging av formelle datatyper samsvarer med fornuftige programmeringsstrategier
osv.). Det har vi ikke plass til her. Linjen videre med hensyn til generell se-
mantikk skal være i form av en anvendelse, hvor atomær semantikk spesi�seres
på en ny måte (kaptittel 3). Det er ikke opplagt at utvidet komplettering kan
danne grunnlaget for en resolusjonsmetode til slik semantikk. Istedet skal vi se
at slik semantikk av og til kan reduseres til basis-semantikker med tilhørende
eksisterende resolusjonsmetoder.
2.4.7 Algoritmisk oppdagbarhet av inkonsistens
Anta en initial- eller �nalsemantikk ' relativ til en kjerne 'x spesi�sert av en
� og en E. DersomE er konvergent og 'x er avgjørbar, kan initial inkonsistens
og mangel på �nal kjernebevaring oppdages algoritmisk. Vi antar TK, og at E-
normalformer er i G�x . Ikke �nal kjernebevaring vil da si at det �nnes c 2 G�og gx; g
0x; g1; g2 2 G�x slik at
c[gx]!!Eg1 6'
x g2! Ec[g0x] men gx '
x g0x
Dette faktum kan nå, siden 'x er avgjørbar, oppdages algoritmisk ved et sys-
tematisk (`fair') søk i (essensielt) universet G�x � G�x � G�. Vi minner så om
ekvivalensen mellom initiell konsistens og �nal kjernebevaring ved sats 2.7 (side
35).
Merk at dette ved sats 2.22 side 44 er det samme som å oppdage inkongruens
i relasjonen ('x [�$E G�)
�.
På den annen side kan selvfølgelig ikke et slikt uttømmende søk i seg selv
brukes generelt for å etablere konsistens: Generelt er termuniverset uendelig.
58
![Page 67: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/67.jpg)
2.4. Mot mekanisk resonnering
Eksempel 30 La oss betrakte en vilkårlig basis-initialsemantikk spesi�sert ved
en signatur � og en ligningsmengde E. Vi antar � disjunkt delt i �c og �d
av hhv. generatorer og de�nerte funksjonssymboler. Likeledes antar vi E delt
disjunkt i Ec og Ed som spesi�serer hhv. basis-initialsemantikk på G�c og se-
mantikk til de de�nerte funksjonssymboler.
Anta Ec og Ed begge er hver for seg konvergente, på en slik måte at alle Ed-
normalformer er i G�c . Da kan vi anvende det naïve prinsipp om uttømmende
søk over, for å oppdage inkonsistens. Gitt inkonsistens, må det nemlig �nnes
gc; g0c; g1; g2 2 G�c og c 2 G� slik at
gc!!Ecgc! = g0c!
! Ecg0c
til tross for at
c[gc]!!Edg1
!!Ecg1! 6= g2!
! Ecg2
! Edc[g0c]
(Eller (c[gc]!Ed)Ec! 6= (c[g0c]!E
d)Ec! til tross for at gc!Ec = g0c!E
c.)
Å etablere konsistens, blir på den annen side det samme som å etablere at
gc�$Ecg0c ) c[gc]
!!Edg1
!!Ecg1! = g2!
! Ecg2
! Edc[g0c]
for noen g1; g2 2 G�c for alle gc; g0c 2 G�c og c 2 G�; som vil si det samme som
å etablere kongruens for relasjonen
(�$Ec G�c [
�$Ed
G�)�
d
Eksempel 31 Betrakt initialsemantikken '� relativ til�$Ex G�x spesi�sert av
� = �x [�d og Ed som følger:
�x = SetNat =
8>><>>:
0 : nat;succ : nat!nat;
Ø : setnat;add : setnat�nat!setnat
9>>=>>;
�d =
�mpc : setnat!nat
Ex = ESetNat =
�add(add(s,x),x) = add(s,x);
add(add(s,x),y) = add(add(s,y),x)
�
Ed =
�mpc(Ø)= 0;
mpc(add(s,x)) = succ(mpc(s))
�
Vi kan også betrakte �nalsemantikken'! relativ til, og spesi�sert av samme.
Siden
mpc(add(add(Ø,0),0))�$Ed
succ(succ(0))�6$Ex succ(0)
�$Ed
mpc(add(Ø,0))
er Ed initielt og �nalt inkonsistent relativt til�$Ex G�x . (E
d er �nalt inkonsistent
mhp. �o = ; (se de�nisjon 2.12 side 33). Vi har DEGEN og TK og KONSERV, så da
er altså Ed heller ikke �nalt kjernebevarende.)
Nå er Ed konvergent. Det er ikke Ex, men hadde det eksistert en for Ex
komplett regelmengde R, kunne et systematisk søk oppdage inkonsistensen, på
analog måte som i eksempel 30. I tråd med det som er sagt i begynnelsen av
dette avsnittet, kan inkonsistensen også oppdages hvis�$Ex G�x på annen måte
kan gjøres avgjørbar. Dette kommer vi tilbake til i kapittel 3.d
59
![Page 68: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/68.jpg)
2. Abstrakte og formelle datatyper
Konsistens er generelt uavgjørbart, siden konsistens for spesialtilfellet basis-
initialsemantikk er generelt uavgjørbart [Gut77].
La oss imidlertid etablere et lite resultat for basis-initialsemantikk som knyt-
ter konvergens direkte til konsistens:
Sats 2.34 Betrakt en vilkårlig basis-initialsemantikk spesi�sert ved en signa-
tur � og en ligningsmengde E, slik at � er disjunkt delt i �c og �d av hhv.
generatorer og de�nerte funksjonssymboler. Anta E delt disjunkt i Ec og Ed
som spesi�serer hhv. basis-initialsemantikk på G�c og semantikk til de de�nerte
funksjonssymboler.
Anta videre at E er konvergent på en slik måte at enhver u 2 T�d[�c(V) n
T�c(V) er større i reduksjonsordningen�!E
enn alle v 2 T�c(V). (M.a.o. u�!Ev).
Da er E initielt konsistent.
Bevis: Anta nemlig gc�$Eg0c. Da har vi gc
!!Egc!
! Eg0c. Men da må vi ha ved
antagelsen om reduksjonsordningen, at gc!!Ecgc!
! Ecg0c.
2
Det at E her er konvergent er selvfølgelig meget forskjellig fra at Ec og Ed hver
for seg er konvergente (jfr. eksempel 30).
Kommentar:
En konsekvens av Gödels ufullstendighetsteorem [Göd31], [EN58]
sier at et hvis en 1. ordens predikatkalkyle for Nat+� er konsistent,
så kan ikke dennes konsistens bevises i kalkylen selv. Dette inne-
bærer dessuten at konsistensen heller ikke kan bevises ved et meta-
matematisk bevis, dersom sistnevnte kan representeres av et bevis
i kalkylen. Dette utelukker ikke eksistensen av meta-matematiske
bevis for konsistens av 1. ordens predikatkalkyler for Nat+�, men
antyder at et slikt (meta-matematisk) bevis for konsistens må følge
bevisprinsipper som er mer kompliserte enn dem som kan nedfel-
les i kalkylen som skal vises konsistent. Disse bevisprinsippers egne
konsistens kan følgelig være under mer tvil enn konsistensen til den
opprinnelige objekt-kalkylen.
Men kan det tenkes at det �nnes enklere bevisprinsipper? Dette
var Hilberts håp. Han søkte å å �nne �nistiske bevisprinsipper som
kunne etablere konsistens; dvs. bevisprinsipper som kun involverer
referanse til endelige strukturer og et endelig antall operasjoner på
strukturer. Et slikt �nistisk bevis vil typisk være en uttømende de-
monstrasjon for <alle mulige instanser>. Konsistensen til �nistiske
bevisprinsipper kan i denne sammenheng ansees som så godt som
hevet over enhver tvil. Men ved Gödels resonnement kan et slikt �-
nistisk bevis for konsistens av en 1. ordens predikatkalkyle forNat+�
som kan representeres i kalkylen ikke eksistere. Og på den annen side
er det vanskelig å forestille seg et slikt �nistisk bevis som ikke kan
representeres i kalkylen.
Flere meta-matematiske bevis �nnes for konsistens som ikke opp-
fyller Hilberts program. De er likevel nyttige og er på sett og vis det
beste man har. Se [EN58] for en meget god forklaring til både Gödels
ufullstendighetsteorem og for mer om de tingene vi har snakket om
her.
Hvilken relevans har dette til vår diskusjon? Gödels ufullstend-
ighetsteorem er knyttet til 1. ordens predikatlogikk. Ligningslogikk
60
![Page 69: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/69.jpg)
2.5. Oppsummering
(evt. styrket med induksjonsregler) har som sagt svakere uttrykks-
kraft, og som nevnt også i fotnote 10 på side 51, kan vi ikke umid-
delbart overføre Gödels resultater til spesialtilfellet ligningslogikk.
Men Gödels resultater kaster et bevisstgjørende lys over oppgaven å
etablere konsistensen til formelle kalkyler. Akkurat hvor mye av det-
te lys som også kastes over konsistensproblemet for ligningslogiske
systemer, er ukjent for meg.
2.5 Oppsummering
I dette kapitlet har vi ved hjelp av universell algebra de�nert begrepene abstrakt
og formell datatype. Vi har de�nert hva vi mener med at en formell datatype er
en implementasjon av en abstrakt datatype.
Vi har så sett på forskjellige måter å de�nere formelle datatyper på ved ulike
typer semantikk. Semantikker bygges opp ved hjelp av ligninger og ligningslo-
gikk. Vi har presentert algebraisk spesi�kasjon som en grunnleggende måte å
spesi�sere semantikk på. Algebraisk spesi�kasjon gir såkalt initialsemantikk.
Vi har også nevnt en grunnleggende �nalsemantikk presentert i [Lys92]. Vi har
innført generaliserte semantikker som spesi�seres relativt til kjernesemantikker.
Dette gir en mulighet for modulær oppbygging av formelle datatyper fra enkle-
re/andre formelle datatyper.
Vi har ikke gått videre inn på slik oppbygging, men det at en semantikk kan
spesi�seres relativt til en kjernesemantikk er essensielt for diskusjonen i neste
kapittel.
Vi har introdusert forskjellige konsistensbegreper. Spesielt interessant er
kjernebevaring. Vi har knyttet kjernebevaring til en intensjon ved våre gene-
relle semantikker i forbindelse med implementasjon. Denne intensjon forfekter
en modulær sammensetting av delsemantikker på en slik måte at sammensetnin-
gen bevarer delsemantikkene nøyaktig. Videre har vi vist at en degeneret form
for generell �nalsemantikk under konsistens gir et annet uttrykk for generell ini-
tialsemantikk, samt at begge disse under konsistens ivaretar nevnte intensjon.
Sentralt i utviklingen av teorien omkring konsistens har vært det vi har kalt
separabel semantikk. Denne skal dukke opp igjen i diskusjonen senere.
Konsistens og inkonsistens er syntaktiske egenskaper. Vi har sett at våre
begreper om inkonsistens kan sees i et modell-teoretisk perspektiv ved ikke-
eksistens av tolkninger. Vi har også sett at inkonsistens kan sees som inkongru-
ens.
Formell resonnering�her utledning av ligninger�er interessant. Dette som
et steg mot presis og muligens mekanisk programveri�kasjon. Vi har nevnt og
så vidt presentert noen eksisterende resolusjonsmetoder for basis-semantikker.
Vi har også antydet at resolusjonsmetoder for våre generelle semantikker ikke
umiddelbart kan oppnås ved sammensetting av eksisterende resolusjonsmetoder.
Avslutningsvis har vi såvidt sett på muligheter for å etablere konsistens og
inkonsistens mekanisk.
61
![Page 70: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/70.jpg)
![Page 71: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/71.jpg)
Kapittel 3
Semantikkgivende
syntaktiske funksjoner
I dette kapitlet introduserer vi semantikkgiving ved syntaktiske funksjoner.
Dette overfører vi til en ny måte å spesi�sere semantikk på ved hjelp av
ligningslogikk; nemlig det vi skal kalle indirekte spesi�kasjon. Vi skal bruke in-
direkte spesi�kasjon som atomær kjernesemantikk. Semantikk med en slik indi-
rekte spesi�sert kjerne, er en reell anvendelse av våre generaliserte semantikker
fra kapittel 2; idet slik semantikk ikke er basis-semantikk.
Siden vi ikke har utviklet resolusjonsmetoder for generell semantikk, utgjør
resolusjon av semantikk med en indirekte spesi�sert kjerne således et problem.
Imidlertid viser vi at semantikk med en indirekte spesi�sert kjerne under visse
omstendigheter kan reduseres til basis-semantikker, og er på den måten tilgjen-
gelig for eksisterende resolusjonsmetoder.
Vi anvender også våre inkonsistensbegreper utviklet i kapittel 2. Vi går mere
i detalj og viser hvordan inkonsistens kan oppdages. Problemet med inkongruens
oppsøkes også.
Vi introduserer dessuten begrepet kunstig inkonsistens. Dette er inkonsistens
innført av hjelpefunksjoner som begrepsmessig burde være skjult for logikken. Vi
viser hvordan slik kunstig inkonsistens på en operasjonell måte kan elimineres fra
ligningslogikken. Denne skjuling fra logikken av hjelpefunksjoner i formelle da-
tatyper svarer på sett og vis til skjuling av interne hjelpeprosedyrer/funksjoner
i moduldeklarasjoner på programmeringsspråk-nivå.
Vi ser også hvordan eliminering av kunstig inkonsistens kan gjøres på spesi-
�kasjonsnivå.
Våre indirekte spesi�kasjoner viser seg å ha et sterkt operasjonelt program-
aktig særpreg. Vi diskuterer hvordan indirekte spesi�kasjoner kan veri�seres.
3.1 Syntaktiske funksjoner
En syntaktisk funksjon er en funksjon hvis domene og kodomene er symbol-
mengder. I lys av abstrakte maskiner, kan konvergente omskrivningssystemer
sies å beregne syntaktiske funksjoner: For et omskrivningssystem hT�(V); Ri
konvergent på en term-mengde T , betrakt relasjonenT !!R
= fht; t!Ri j t 2 T g.
RelasjonenT !!R
er en funksjon i (T ! T�(V)). En syntaktisk funksjon synt på en
term-mengde T er da her termomskrivningsberegnbar eller bare omskriv-
ningsberegnbar, hvis det �ns et T -konvergent omskrivningssystem R slik at
T !!R
= synt (3.1)
63
![Page 72: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/72.jpg)
3. Semantikkgivende syntaktiske funksjoner
Dersom�$R T = ' for en kongruensrelasjon ' på T (T antas da å være en
term-algebra), har vi videre
s ' t , s�$Rt , s!R = t!R
for alle s; t 2 T . M.a.o. verdiene av s og t under funksjonenT !!R
er identiske
hvis og bare hvis s og t er i samme '-kongruensklasse. Vi kan derfor si atT !!R
spesi�serer kongruensrelasjonen ' ved at
' =T !!R�T ! R
Generelt kan da vilkårlige syntaktiske funksjoner (ikke bare de som er om-
skrivningsberegnbare) brukes til å spesi�sere kongruensrelasjoner på termer ved
følgende prinsipp:
s ' t , synt(s) = synt(t) (3.2)
En nødvendig (og tilstrekkelig) betingelse for at en syntaktisk funksjon skal
kunne bestemme en kongruensrelasjon på denne måten, er monotonitet mhp.
kontekstapplikasjon:
synt(s) = synt(t) ) synt(c[s]) = synt(c[t]) (3.3)
for alle kontekster c og termer s; t i domenet til '. Vi skal kalle syntaktiske
funksjoner som spesi�serer kongruensrelasjoner på termer ved prinsipp (3.2)
semantikkgivende.
Alle syntaktiske funksjoner på term-algebraer som er omskrivningsberegn-
bare, er såkalte kanonisk-representant funksjoner.
De�nisjon 3.1 For en �-algebra A og en kongruensrelasjon ' på A, la � 2
(A! A) være slik at det for alle q 2 A=' �nnes en unik b 2 q slik at �(a) = b
for alle a 2 q. Vi kaller � en kanonisk-representant funksjon for ', og
elementene i bildet �(A) kanoniske representanter for ' bestemt av �.
Eksempel 32 For
Int =
8<:
0 : int;succ : int!int;
pred : int!int
9=;
betrakt <standardtolkningen> Int fra eksempel 1 side 14. La 'IntGIntvære kongru-
ensrelasjonen indusert av den unike surjektive homomor� �IntGInt. Det konvergente
omskrivningssystemet utgjort av regelmengden:
RInt =
�succ(pred(x))! x
pred(succ(x))! x
�
beregner følgende kanonisk-representant funksjon �Int for 'IntGInt
: La ng være dif-
feransen mellom antall succ'er og antall pred'er i en term g 2 GInt. La �Int være
slik at for vilkårlig g 2 GInt så er �Int(g) termen succng(0) dersom ng > 0 og
termen pred�ng(0) ellers.
d
En annen måte å karakterisere kanonisk-representant funksjoner på, er ved
funksjoner hvis kodomene består kun av �kspunkter. En slik �kspunktfunk-
sjon kan karakteriseres ved egenskapen
f(f(a)) = f(a) for alle a i domenet til f (3.4)
64
![Page 73: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/73.jpg)
3.1. Syntaktiske funksjoner
Sats 3.1 La synt være en syntaktisk funksjon på en G�, og la ' være en kongru-
ensrelasjon på G�. Vi har:
synt er en kanonisk-representant funksjon for '
m
synt er en �kspunktfunksjon, og synt er semantikkgivende og spesi�serer '
Bevis: Vi minner om (2.6) på side 23.
Anta synt er en kanonisk-representant funksjon for '. For hver kongruens-
klasse q 2 G�=' �ns da en unik g� 2 q slik at synt(g) = g� for alle g 2 q. M.a.o.
har vi ved (2.6) for alle g; g0 2 G�:
synt(g) = g� = synt(g0) , g ' g0
så synt er semantikkgivende og spesi�serer'. Siden synt nå er semantikkgivende
har vi videre at synt(g�) = synt(g) for g� = synt(g), siden g� er i samme
kongruensklasse som g. Altså har vi for alle g; g0 2 G�:
synt(synt(g)) = synt(g)
så synt er en �kspunktfunksjon.
Anta synt er en �kspunktfunksjon og at synt er semantikkgivende og spesi�-
serer ' ved prinsippet (3.2). Ved egenskapen (3.4), har vi for vilkårlige g 2 G�,
synt(synt(g)) = synt(g) som da gir synt(g) ' g. Ved (2.6) er altså de to ele-
mentene synt(g) og g alltid i samme kongruensklasse. Videre må alle g; g0 i en
klasse q ha samme (unike) verdi under synt, ved at synt(g) = synt(g0). Altså er
synt en kanonisk-representant funksjon for '.
2
Det er lett å se at enhver omskrivningsberegnbar syntaktisk funksjon på
(bæremengden til) en term-algebra, er en kanonisk-representant funksjon. Men
ikke alle syntaktiske kanonisk-representant funksjoner er omskrivningsberegn-
bare, siden omskrivningsberegnbarhet fordrer konvergens:
Eksempel 33 Betrakt basis-initialsemantikken� !ESetNat
GSetNatspesi�sert av signa-
turen SetNat og ligningsmengden
ESetNat =
�add(add(s,x),x) = add(s,x);
add(add(s,x),y) = add(add(s,y),x)
�
fra eksempel 27 side 50. La �SetNat være en kanonisk-representant funksjon for� !ESetNat
GSetNatslik at �SetNat gir <sorterte> termer uten <repetisjon> og slik at �SetNat
er identitet på termer av type nat. F.eks. er
�SetNat(add(add(add(Ø,succ(0)),0),succ(0))) = add(add(Ø,0),succ(0))
Det �nnes intet omskrivningssystem som beregner �SetNat ved (3.1). (Vi har
de�nert et omskrivningssystem til å ha en endelig regelmengde. Vi ser også bort
fra mer avanserte former for omskrivningssystemer.)d
Alle kanonisk-representant funksjoner for kongruensrelasjoner på termer er
ved sats 3.1 semantikkgivende. Imidlertid behøver ikke en semantikkgivende
funksjon være en kanonisk-representant funksjon:
Eksempel 34 La signaturen Int, algebraen Int og kongruensrelasjonen 'IntGInt
være som i eksempel 32. Vi de�nerer en semantikkgivende funksjon som de�ni-
sjonsmessig bare avviker litt fra �Int i eksempel 32: La igjen ng være di�eransen
65
![Page 74: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/74.jpg)
3. Semantikkgivende syntaktiske funksjoner
mellom antall succ'er og antall pred'er i en term g 2 GInt. La imidlertid Int være
slik at for vilkårlig g 2 GInt så er Int(g) termen succng+1(0) dersom ng > 0 og
termen pred�ng+1(0) ellers. F.eks. er Int(succ(0)) = succ(succ(0)). Det er lett
å overbevise seg om at
g'IntGIntg0 , Int(g) = Int(g
0)
for alle g; g0 2 GInt, så Int er semantikkgivende. Leggmerke til at Int( Int(g)) 6=
Int(g) for alle g, så Int er ikke en �kspunktfunksjon, og da ved sats 3.1 ingen
kanonisk-representant funksjon.d
Vi skal nå generalisere begrepet kanonisk-representant funksjon som følger:
De�nisjon 3.2 For en �-algebra A og en kongruensrelasjon ' på A, la 2
(A! A) være slik at det for alle q 2 A=' �nnes en unik b 2 A slik at (a) = b
for alle a 2 q, og slik at for a; a0 2 A og q; q0 2 A='
a 2 q; a0 2 q0; q 6= q0 ) (a) 6= (a0)
Vi kaller en klasserepresentant funksjon for ', og elementene i bildet
(A) klasserepresentanter for ' bestemt av . Vi de�nerer -reduksjonen
av A=', skrevet A= som �-algebraen med (A) som bæremengde og med funk-
sjonsmengde bestående av en funksjon fA= for hver f i �, slik at
fA= ( (a1); : : : ; (an)) = (fA(a1; : : : ; an))
for tolkningen fA av f i A og vilkårlige a1; : : : ; an 2 A.
Dersom (a) 2 q , a 2 q for alle a 2 A; q 2 A=' i de�nisjon 3.2, har vi
spesialtilfellet kanonisk-representant funksjon.
Sats 3.2 La synt være en syntaktisk funksjon på en G�, og la ' være en kongru-
ensrelasjon på G�. Vi har:
synt er en semantikkgivende funksjon som spesi�serer '
m
synt er en klasserepresentant-funksjon for '
Bevis: Vi minner igjen om (2.6) på side 23.
Anta synt spesi�serer ' ved prinsipp (3.2). Anta for vilkårlige g; g0 2 G� at
g; g0 er i samme q 2 G�='. Ved (2.6) har vi da g ' g0, og da har vi synt(g) =
synt(g0). Altså �nnes en unik g� 2 G� slik at synt(g) = g� for alle g 2 q. Videre
har vi ved (3.2) g 6' g0 ) synt(g) 6= synt(g0), så ved (2.6) har vi direkte
g 2 q; g0 2 g0; q 6= q0 ) synt(g) 6= synt(g0)
for q; q0 2 G�='; så synt er en klasserepresentant-funksjon for '.
Anta synt er en klasserepresentant-funksjon for '. For vilkårlige g; g0 2 G�,
hvis g; g0 er i samme q 2 G�=', så �nnes en unik g� 2 G� slik at synt(g) = g� =
synt(g0). Hvis g; g0 ikke er i samme q 2 G�=', har vi derimot synt(g) 6= synt(g0).
Ved (2.6) er da ialt synt en semantikkgivende funksjon som spesi�serer ' ved
prinsipp (3.2).
2
Litt av landskapet oppsummeres i �gur 3.1.
Blant klasserepresentanter for en kongruensrelasjon, er de kanoniske repre-
sentanter spesielle. De er �kspunkter til kanonisk-representant funksjoner, og da
66
![Page 75: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/75.jpg)
3.1. Syntaktiske funksjoner
Semantikkgivende-/
klasserepresentant-
Omskrivnings-
beregnbare-
Fikspunkt-
Kanonisk-rep.-
Figur 3.1: Vår oppdeling av syntaktiske funksjoner. Av særlig interesse
for oss er snittet mellom semantikkgivende-/klasserepresentantfunksjoner og
�kspunktfunksjoner; nemlig kanonisk-representant funksjoner.
i noen henseende lettere å håndtere mekanisk. Men den egenskapen vi ønsker å
fremheve nå, har med menneskelig håndtering av symbolikk å gjøre. Kanoniske
representanter har den viktige egenskapen at de selv er i klassen de representer-
er. <De står for det de representerer.> Denne egenskapen må sies å være sentral
for enhver naturlig representant av hva som helst. I vår kontekst kan vi i tillegg
komme med to ytterlige krav til naturlige representanter for kongruensklass-
er: For en kanonisk-representant funksjon � vil vi at de kanoniske representanter
bestemt av � er:
1. generator-termer
2. i tilfellet mange-til-en generatorunivers, de <enkleste> generator-termer i
en eller annen praktisk forstand.1
I vårt oppsett ivaretas symbol-tolking av grunntermtolker. Tolkingen er det <se-
mantiske sprang> fra syntaks til semantikk, og det er essensielt at tolkingen er
umiddelbar eller direkte. Det ville f.eks. være ufornuftig om en lomme-kalkulator
eller et kalkulator-program gitt symbolsekvensen 1+1, ga svaret cos(0)+sin(�2),
eller om den symbolske representasjonen for tallet 1 var succ(succ(0)) (sett bort
fra at unær representasjon i seg selv er ufornuftig for nær sagt alt utenom for-
melle betraktninger).
Kommentar:
Slike naturlige klasserepresentanter kan brukes til å supplere be-
grepet konstruktiv funksjons-spesi�kasjon (se tekstavsnittet før de-
1Kvali�katoren `kanonisk' henspeiler på noe som er et mål eller en målestokk for andre(ting i en klasse); en beste versjon.
67
![Page 76: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/76.jpg)
3. Semantikkgivende syntaktiske funksjoner
�nisjon 2.2 side 19). For at en formell datatype skal være implemen-
tasjonen (avsnitt 2.3.1, side 22) av en algebra A, kreves algebra-
isk spesi�kasjon av alle funksjoner i A, samt at riktig semantikk
må gis til generatortermer. Det er naturlig å forvente i tillegg at
de algebraiske funksjons-spesi�kasjonene er konvergente. Da har vi
ved termomskrivning et abstrakt deterministisk program (algoritme)
med hvilket verdien av et element under en funksjon kan <regnes>
ut. Dessuten bør nå en slik funksjonsverdi presenteres på en enkles-
te form, i form av en naurlig representant. (Disse krav må ihvertfall
innfris i det endelige (imperative) program.)
Anta da en kanonisk-representant funksjon � for en semantikk '
på en G� som tilfredstiller punktene 1 og 2 over. Våre tilleggskrav
for en formell datatype er da i lys av disse punktene, med andre ord:
Gitt en vilkårlig term g 2 G� ønsker vi å beregne �(g)
(mekanisk).
Punktene 1 og 2 kan realiseres helt for tilfellet basis-initialsemantikk,
dersom ligningsmengden er konvergent og beregner � ved prinsipp
(3.1) på side 63. For generelle semantikker som beskrevet i avsnitt
2.3, kan ihvertfall punkt 1 innfris.
*
Vi skal bruke semantikkgivende syntaktiske funksjoner til å de�nere atomær
semantikk. Siden konvergente omskrivningssystemer kan sies å beregne kanon-
isk-representant funksjoner, har vi gjort dette på en implisitt måte tidligere;
ved basis-initialsemantikk, gitt at den aktuelle ligningsmengden er konvergent.
Vi skal imidlertid studere algebraiske beskrivelser av de semantikkgivende syn-
taktiske funksjoner. Disse i sin tur skal brukes til å spesi�sere semantikk.
Men før vi gjør dette skal vi, som et sidespor til vår diskusjon om syntaktiske
funksjoner som semantikkgivende, se på en annen anvendelse av klasserepresen-
tant-funksjoner.
3.2 Funksjonsspesi�kasjon over kanoniske repre-
sentanter
Mange-til-en generatorunivers er litt problematiske. Funksjonsspesi�kasjoner
over mange-til-en generatorunivers kan gi inkonsistens, og i allefall må genera-
tortermene på en eller annen måte gis semantikk. Vi har i avsnitt 2.3 i kapittel 2
sett et par måter å gjøre sistnevnte på, og vi skal senere også bruke algebraiske
beskrivelser av semantikkgivende syntaktiske funksjoner til å gi generatortermer
semantikk.
I dette avsnittet ser vi kort på en-til-en <generatorunivers> bestående av
klasserepresentanter. Vi ser på funksjonsspesi�kasjoner over klasserepresentan-
ter. `Mange-til-en'-problematikken løses således ikke på spesi�kasjonsnivå ved
f.eks. basis-initialsemantikk, men snarere <bak kulissene>�før spesi�kasjon tar
til.
Vi fører diskusjonen her for kanoniske representanter. Det ville bryte sterkt
mot symbolers brukervennlighet å prøve å spesi�sere funksjoner over andre klas-
serepresentanter enn kanoniske.
68
![Page 77: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/77.jpg)
3.2. Funksjonsspesi�kasjon over kanoniske representanter
3.2.1 Mekanisk generering av kanoniske representanter
Vi kan tenke oss at kanoniske representanter for en semantikk skal genereres
<bak kulissene> av et mekanisk system på et <lavere> nivå enn det vi program-
merer våre implementasjoner av abstrakte datatyper på. Hvordan genereres så
en term-mengde bestående av kanoniske representanter mekanisk? Vi ser på to
måter.
For den første måten, betrakt en formell datatype G�=' for en signatur�. La
� være en kanonisk-representant funksjon for '. Betrakt så �-reduksjonen G�=�
av G�='. Det er nå G�=� som tar rollen G� ellers har som utgangspunkt for <pro-
grammering>. Men nå har funksjonene i <term>-algebraen <pre-programmert>
semantikk og er langt mer avanserte enn funksjoner i en term-algebra. Bære-
mengden til G�=� er mekanisk genererbar dersom � f.eks. er beregnbar ved et
konvergent omskrivningssystem. Se �gur 3.2. Denne første måten er beslektet
med begrepet semantisk subtype (se f.eks. [Dah92]).
Et alternativ til denne måten å generere en bæremengde bestående av ka-
noniske representanter på, er ved syntaktiske subtyper.
For typer T og U , la T være en subtype av U , skrevet T � U . En term av
type T er en term av type U , mens en term av type U kan være, men er ikke
nødvendigvis, en term av type T . Dette bestemmer oppbyggingen av termer
beskrevet i avsnitt 2.2 i lys av subtyper. En tolk av typer �T skal tilfredstille
�T (T ) � �T (U)
for T � U . I noen tilfeller kan så kanoniske representanter <tvinges fram>
syntaktisk:
Eksempel 35 Betrakt følgende signatur:
Int0 =
8<:
0 : zero;succ : intposzero!intpos;
pred : intnegzero!intneg
9=;
der subtyperelasjonen er som følger (den maksimale supertypen int er tatt med
for estetikkens skyld):
int
intposzerointnegzero
zero intposintneg
� � ��
� �
Fra Int0 kan vi nå eksempelvis bygge termene succ(succ(0)) og pred(pred(0)), men
ikke termen succ(pred(0)), siden pred(0) ikke er av type intposzero eller intpos.
Det er lett å se at grunnterm-algebraen GInt0 er isomorf med �Int-reduksjonen
til GInt='IntGInt
, for 'IntGIntog kanonisk-representant funksjonen �Int fra eksempel 32
side 64.d
Ved syntaktiske subtyper overlates genereringen av kanoniske representanter til
typingsalgoritmen som sørger for termoppbygging slik at uekte typegale <ter-
mer> ikke kan genereres. En slik typingsalgoritme tenkes å underligge enhver
formell datatype.
Det er imidlertid ikke så lett i det generelle tilfelle å �nne en signatur ut-
fra hvilken ønskede kanoniske representanter genereres (tvinges frem). Hvordan
skulle en slik signatur se ut for tilfellet `mengder av naturlige tall'?
69
![Page 78: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/78.jpg)
3. Semantikkgivende syntaktiske funksjoner
01
2�1
succsucc
pred
predpred
succ
0
s0
ss0
ps0p0
sp0spss0
psspss0
sT
sT
pT
pT
sT pT
��
�
�
�
�
��
a)
01
2�1
succsucc
pred
predpred
succ
0
s0
ss0p0
s�Ts�T
s�T
p�T
p�T
s�T
��
��
�� ��
b)
Figur 3.2: <Uprogrammert> og <pre-programmert> maskin. I nedre del av a) seeset utsnitt av (ikke)-strukturen i grunnterm-algebraen GInt for Int = f0; succ;predg.Symbolene succ og pred er forkortet til s og p hhv., og parenteser er utelatt i termer.Tolkningene av succ og pred i GInt er betegnet sT og pT . I øvre del av a) sees detkorresponderende utsnitt av algebraen Int . Den unike homomor�en fra GInt til Int erbetegnet �.
I nedre del av b) sees til sammenligning et utsnitt av strukturen i �Int -reduksjonen til
GInt='IntGInt
, for 'IntGInt
og kanonisk-representant funksjonen �Int for 'IntGInt
fra eksempel
32 side 64. Tolkningene av succ og pred er her betegnet s�T og p�T . (Vi minner
om de�nisjon 3.2 side 66 for de�nisjonene av s�T og p�T .) Funksjonene i GInt=�Inter avanserte i forhold til funksjonene i GInt. F.eks. er s�T (p0) = �Int(sp0). GInt=�Int er
mekanisk genererbar hvis �Int er beregnbar. Den unike (lett å vise) homomor�en fra
GInt=�Int til Int er betegnet ��.
70
![Page 79: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/79.jpg)
3.2. Funksjonsspesi�kasjon over kanoniske representanter
3.2.2 Eksempler på funksjonsspesi�kasjon
Vi skal gi noen eksempler på funksjonsspesi�kasjon over kanoniske representan-
ter. Først presenteres for referanse et par eksempler på funksjonsspesi�kasjon
over mange-til-en generatorunivers:
Eksempel 36 For den abstrakte datatypen `mengder av naturlige tall' har vi
i en passende formell datatype generatorene:
SetNat =
8>><>>:
0 : nat;succ : nat!nat;
Ø : setnat;add : setnat�nat!setnat
9>>=>>;
For `element-funksjonen' 2 på mengder av naturlige tall spesi�serer vi så:
E2 =
�x 2 Ø = false;
x 2 add(s,y) = eq(x,y) _ x 2 s
�
for
E_ =
�true_u = true;
false_u = u
�
og
E=Nat =
8>><>>:
eq(0,0) = true;
eq(0,succ(x)) = false;
eq(succ(x),0) = false;
eq(succ(x),succ(y)) = eq(x,y)
9>>=>>;
d
Eksempel 37 For addisjon på hele tall spesi�serer vi
E+Z=
8<:
x+0 = x;
x+succ(y) = succ(x+y);
x+pred(y) = pred(x+y)
9=;
d
Her følger så noen eksempler på funksjonsspesi�kasjon over kanoniske represen-
tanter:
Eksempel 38 For kanoniske representanter som de�nert av �Int fra eksempel
32, er spesi�kasjonen av addisjon på hele tall E+Zi eksempel 37 ikke kanonisk-
representant-bevarende, i den forstand at det �nnes kanoniske representanter g
og g0, men g00 ikke kanonisk slik at g+g0�!E+Z
g00. Eksempelvis har vi
succ(0)+pred(0)�!E+Z
pred(succ(0))
En kanonisk-representant-bevarende spesi�kasjon er følgende:
E0+Z=
8>>>>>><>>>>>>:
x+0 = x;
0+x = x;
succ(x)+succ(y) = x+succ(succ(y));
pred(x)+pred(y) = x+pred(pred(y));
succ(x)+pred(y) = x+y;
pred(x)+succ(y) = x+y
9>>>>>>=>>>>>>;
d
71
![Page 80: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/80.jpg)
3. Semantikkgivende syntaktiske funksjoner
Eksempel 39 For kanoniske representanter som de�nert av �SetNat i eksempel
33 side 65, er det mulig å spesi�sere `element-funksjonen' 2 på mengder av
naturlige tall beregningsmessig mer e�ektivt enn i eksempel 36, ved å benytte
seg av strukturen til de kanoniske representanter:
E02 =
8<:
x 2 Ø = false;
x 2 add(s,y) = eq(x,y) _
if x < y then x 2 s else false
9=;
for
Eite =
�if true then b else b' = b;
if false then b else b' = b'
�
og
E<Nat =
8>><>>:
0 < 0 = false;
0 < succ(x) = true;
succ(x) < 0 = false;
succ(x) < succ(y) = x < y
9>>=>>;
E�ektiviseringen svarer til det å prøve å �nne et gitt element i en sortert liste
framfor å prøve å �nne elementet i en usortert liste. Legg merke til at fokuse-
ringen her på term-oppbygging til kanoniske representanter, trekker oss noe ut
av abstraksjonsnivået vi ønsker å oppnå i formelle datatyper og formell reson-
nering.d
Eksempel 40 Vi kan spesi�sere `mindre-enn' relasjonen (funksjonsvarianten
av denne) på hele tall over kanoniske representanter som de�nert av �Int fra
eksempel 32, som følger:
E<Int =
8>>>>>>>><>>>>>>>>:
0 < 0 = false;
0 < succ(x) = true;
succ(x) < 0 = false;
succ(x) < succ(y) = x < y;
0 < pred(x) = false;
pred(x) < 0 = true;
pred(x) < pred(y) = x < y
9>>>>>>>>=>>>>>>>>;
d
Funksjonsspesi�kasjoner som <utnytter> egenskaper ved kanoniske representan-
ter, vil ofte ikke fungere korrekt i det korresponderende mange-til-en universet.
Dette er ikke uventet, bl.a. siden mange-til-en univers er en grunnleggende kilde
til inkonsistens.
Eksempel 41 Betrakt mange-til-en generatoruniverset over signaturen
Int = f0; succ;predg.
Vi spesi�serer basis-initialsemantisk
EIntc =
�succ(pred(x)) = x;
pred(succ(x)) = x
�
Relativt til den frie semantikk på ftrue; falseg gir spesi�kasjonen E<Int [ EIntcfor E<Int fra eksempel 40, initial inkonsistens ved
true '�pred(0) < 0 '
�succ(pred(pred(0))) < 0 '
�false
72
![Page 81: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/81.jpg)
3.2. Funksjonsspesi�kasjon over kanoniske representanter
Således er ligninger som 0 < succ(x) = true og succ(x) < 0 = false, ikke <rik-
tige> for x ikke kanonisk, men kan dersom x er kanonisk, e�ektivisere beregnin-
gen av < som i eksempel 40.d
At funksjonsspesi�kasjoner således fungerer korrekt, men også at en funk-
sjonsspesi�kasjon er kanonisk-representant-bevarende, forutsetter dessuten ge-
nerelt at enhver subterm av en kanonisk representant er en kanonisk represen-
tant. Denne subterm-egenskap for kanoniske representanter kan sees som en
egenskap ved den aktuelle kanonisk-representant funksjon. Vi merker oss følg-
ende:
Observasjon 3.3 Enhver omskrivningsberegnbar syntaktisk funksjon har denne
subterm-egenskapen. Anta nemlig det motsatte�at det �nnes en c[g] som er en
kanonisk representant bestemt av en kanonisk-representant funksjon beregnbar
av et omskrivningssystem R, men at g ikke er en kanonisk representant. Siden
c[g] er en kanonisk representant, har vi c[g] = c[g]!R. Men siden g ikke er
en kanonisk representant har vi g+!Rg0 for en eller annen g0, og da kan ikke
c[g] = c[g]!R. Dette er en motsigelse.
Dersom vi velger å beskrive et en-til-en kanonisk-representant term-univers ved
en semantisk subtype, kan altså subterm-egenskapen garanteres dersom den
aktuelle kanonisk-representant funksjon er omskrivningsberegnbar.
Merk at ikke alle kanonisk-representant funksjoner som har subterm-egen-
skapen for kanoniske representanter, er omskrivningsberegnbare. Se f.eks. ek-
sempel 33 på side 65. For å supplere til �gur 3.1 på side 67, har vi da
Omskrivningsberegnbare � subterm-egenskap- � kanonisk-representant-
Dersom vi velger å beskrive et en-til-en kanonisk-representant term-univers
ved syntaktiske subtyper, er det ved et induktivt argument lett å se at dette
termuniverset har subterm-egenskapen for kanoniske representanter.
3.2.3 Utledning og resolusjon
Uten å gå nærmere inn på det her, kan det tenkes at eksisterende resolusjonsme-
toder kan modi�seres til å håndtere resolusjon i formelle datatyper med en-til-en
kanonisk-representant term-univers.
Vi har sett to måter å beskrive et en-til-en kanonisk-representant term-
univers på: Som tolkningen av en semantisk subtype, og ved hjelp av syntaktiske
subtyper. Vi skal her bare peke på at det ikke er vilkårlig hvilke av disse vi vel-
ger når vi snakker om tilfredsstillbarhet, grunnredusibilitet og kritiske par i
forbindelse med resolusjonsmetoder.
La eksempelvis � 2 HomGInt=�IntTInt(V)
være slik at �(x) = pred(0). Skjeler vi til
eksempel 40, får vi ved de�nisjon av funksjonene i GInt=�Int (vi minner om de�-
nisjonen av homomor� side 14 og de�nisjonen av klasserepresentant funksjoner
3.2 side 66)
(0 < succ(x))� = 0 < �Int(succ(pred(0))) = 0 < 0
Følgelig er påstanden
8� 2 HomGInt=�IntTInt(V)
j Int j= (0 < succ(x))� = true
gal. Betrakt deriomt Int0 fra eksempel 35 på side 69. Påstanden
8� 2 HomGInt0
TInt0(V)j Int j= (0 < succ(x))� = true
er da riktig. (F.eks. er funksjonen � slik at �(x) = pred(0) ikke en funksjon i
HomGInt0
TInt0(V)
, siden x her er av type intposzero.)
73
![Page 82: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/82.jpg)
3. Semantikkgivende syntaktiske funksjoner
3.3 Algebraiske spesi�kasjoner av syntaktiske
funksjoner
Vi vender nå tilbake til det somskal være hovedtemaet i dette kapittel; nemlig se-
mantikkspesi�kasjon ved syntaktiske funksjoner. I særdeleshet skal generatorse-
mantikk spesi�seres på denne måten. Problematikken forbundet med mange-til-
en generatorunivers skal ikke løses som i forrige avsnitt, ved underliggende me-
kanismer som typingsalgoritmer eller beregnbare klasserepresentant-funksjoner.
`Mange-til-en'-problematikken skal her søkes løst på spesi�kasjonsnivå. Vi skal
derfor ikke bruke semantikkgivende syntaktiske funksjoner per se, men betrakte
algebraiske spesi�kasjoner/beskrivelser av slike funksjoner.
For å lage en algebraisk spesi�kasjon av en hvilken som helst funksjon, trengs
en symbolsk representasjon av funksjonen og dens domene og kodomene. Dette
gjelder selvsagt også for syntaktiske funksjoner. Siden domene og kodomene for
syntaktiske funksjoner er termer, trengs i prinsipp termer som representerer ter-
mer. Vi begynner diskusjonen med noen betraktninger omkring representasjon
av syntaktiske funksjoner. Selv om vi primært er opptatt av syntaktiske funk-
sjoner på grunnterm-mengder, gjør vi, i håp om at visse poenger blir klarere,
disse betraktningene vha. syntaktiske funksjoner på bæremengder til vilkårlige
term-algebraer. Merk at teorien i dette avsnittet er mer for bevisstgjøring enn
for bruk senere.
De�nisjon 3.3 La A = hDA; FAi være en �-algebra for en signatur �. La F
være en mengde funksjoner på DA. Betrakt algebraen A0 = hDA; FA [ F i. Vi
kaller A0 F -utvidelsen av A.
For en signatur�, la Synt være en mengde syntaktiske funksjoner over T�(V). La
T være Synt-utvidelsen av T�(V). La�S være en minste signatur som inneholder
en passende funksjonspro�l for hver funksjon i Synt. Da er T en �[�S-algebra.
Merk at T imidlertid ikke er en term-algebra; bl.a. fordi symbolene i �S ikke
forekommer i noen elementer (altså termer) i bæremengden til T .
For å lage algebraiske spesi�kasjoner/beskrivelser av funksjoner i Synt trengs
termer som kan representere elementer og funksjonsapplikasjoner i T . For å
gjøre dette fullstendig, trengs en �0 slik at den unike grunnterm-tolken �TG�0er surjektiv. Generelt holder ikke � [ �S til dette formål: Dersom V 6= ;, vil
enhver variabel i V være skrot i forhold til �[�S . La derfor C være en minste
signatur inneholdende en passende funksjonspro�l for hver variabel i V . Dvs.
hver variabel i V er tolkningen av en konstant i C. For �0 = � [C [�S er da
�TG�0 surjektiv.
Siden T�(V) �gurerer som bæremengde i T , vil hver term i G�0 som også er
i G� tolkes til seg selv av �TG�0. Vårt valg for �0 innebærer at vi lar grunntermer
være sin egen symbolske representasjon: Det er unødvendig å lage nye termer
for å representere termer. I praksis skal vi da også la C = V ; dvs. pro�lene i
V fungerer både som variabel-pro�ler og som konstantfunksjons-pro�ler. Da vil
hver term i G�0 som også er i T�(V) tolkes til seg selv av �TG�0. Merk dog at
et symbol i C = V vil før tolking være en konstant, men etter tolking være et
variabelsymbol.
Eksempel 42 Betrakt signaturene
Int =
8<:
0 : int;succ : int!int;
pred : int!int
9=;
C = V = fxg
74
![Page 83: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/83.jpg)
3.3. Algebraiske spesi�kasjoner av syntaktiske funksjoner
La � være en syntaktisk funksjon på TInt(V), og la T være �-utvidelsen av TInt(V).
For et funksjonssymbol deltamed passende pro�l, er T en Int[C[fdeltag-algebra.
Termen delta(succ(pred(x))) er en grunnterm i GInt[C[fdeltag, og tolkes av
grunntermtolken �TGInt[C[fdeltagtil elementet �((succ(pred(x)))) i T . Merk at termen
(succ(pred(x))) nå ikke er en grunnterm i bæremengden TInt(V) til T .
For en �IntTInt(V)
2 HomIntTInt(V)
er �IntTInt(V)
(�((succ(pred(x))))) et element i Z.
Se �gur 3.3. En algebraisk beskrivelse av � vil trolig måtte være en E �
E(TInt[C[fdeltag(V0)) for en eller annen V 0 6= C.
delta(succ(pred(x)))
�(succ(pred(x)))
z
GInt[C[fdeltag
TInt(V)
Z
�TGInt[C[fdeltag
�IntTInt(V)
Figur 3.3: Illustrasjon til eksempel 42. Grunntermen delta(succ(pred(x))) ibæremengden til grunntermalgebraen GInt[C[fdeltag tolkes til elementet �(succ(pred(x)))i TInt(V), som er bæremengden til T . Merk at termen succ(pred(x)) tolkes til segselv i T . Men i GInt[C[fdeltag er succ(pred(x)) en grunnterm, mens den som elementi bæremengden til T ikke er en grunnterm.
Elementet �(succ(pred(x))) kan så tolkes (ikke-unikt) til et element z i bæremengden
til Int.
d
Eksempel 42 illustrerer symbolsk representasjon av termer ved seg selv. Men
eksemplet illustrerer også at utvidelser av term-algebraer med syntaktiske funk-
sjoner be�nner seg på et semantisk nivå mellom den syntaktiske verden og det
<ekte> semantiske plan. Vi har to semantiske nivåer, men har valgt å bruke
samme representasjon for begge der dette er mulig. Dette betyr at termer i
dette tilfellet representerer både termer og <ekte> semantiske objekter.
Eksempel 42 (forts.) Termen succ(0) i GInt[C[fdeltag kan tolkes både til ele-
mentet succ(0) i bæremengden til T og til elementet 1 iZd
Ved å bruke samme representasjon for to semantiske nivåer på denne måten,
kan en hvilken som helst algebraisk spesi�kasjon av en funksjon også sees som
en algebraisk spesi�kasjon av en syntaktisk funksjon:
Eksempel 43 Peano-aksiomene for addisjon på naturlige tall (nå skrevet pre-
�x) �+(x,0) = x;
+(x,succ(y))= succ(+(x,y))
�
75
![Page 84: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/84.jpg)
3. Semantikkgivende syntaktiske funksjoner
kan sees som en algebraisk spesi�kasjon av den syntaktiske funksjonen som gitt
to termer succn(0) og succm(0) i Gf0;succg gir termen succ
n+m(0).
d
Det motsatte gjelder selvfølgelig også: Enhver algebraisk spesi�kasjon av en
syntaktisk funksjon kan også sees som en algebraisk spesi�kasjon av en <ekte>
semantisk funksjon.
Kommentar:
Det er naturlig å tenke på en abstrakt datatype som noe seman-
tisk, som søkes representert symbolsk og implementert av en formell
datatype. Term-algebraer er i denne sammenheng ikke semantiske,
men hører til den syntaktiske verden som er gjenstand for tolking
til semantiske objekter. Det er begrepsmessig tilfredstillende å ha et
skille mellom syntaks og semantikk. Syntaks på den ene side er noe
som tolkes, og semantiske objekter på den andre side er noe som
er tolkninger av og gir mening til syntaks. Vi føler kanskje at vår
matematiske verden straks blir litt mer ryddig.
Men enhver algebra kan i prinsipp fungere som en abstrakt data-
type; også syntaktiske algebraer som f.eks. term-algebraer�eller for
oss mer interessant�utvidelser av term-algebraer med syntaktiske
funksjoner. Termer kan således fungere i to roller: som syntaks og
gjenstand for tolking; og som semantikk og selv fortolkninger av syn-
taks. Man skjønner at skillet mellom syntaks og semantikk avhenger
av rollen de involverte objektene til enhver tid spiller.
Så videre er det ingenting i veien for å tilordne ikke-syntaktiske
objekter en <sekundær> mening. Symboler kan forestilles å være
<mening-løse>. Symboler passer derfor naturlig inn i begreper som
abstrakte maskiner og egner seg for å tilordnes <mening>. Men det
er ingenting i veien for å tolke f.eks. tall til f.eks. symboler.
Å arbeide på tvers av et kanskje etablert skille mellom syn-
taks og semantikk er en del av essensen i f.eks. Gödels bevis for u-
fullstendighet av elementære tallteorier [Göd31], [EN58]. Syntaks�
predikatlogiske utsagn tolkes i utgangspunktet til matematiske på-
stander om naturlige tall. Med Gödel-nummerering kodet Gödel pre-
dikatlogiske utsagn ved tall. Tall representerer altså predikatlogiske
utsagn og predikatlogiske utsagn representerer matematiske påstan-
der om tall. Følgelig kan et predikatlogisk utsagn representere en
matematisk påstand om predikatlogiske utsagn; som igjen represen-
terer matematiske påstander om tall. Ved siden av å kunne tolkes
som påstander omnaturlige tall, kan altså predikatlogisk utsagn også
tolkes som påstander om påstander om naturlige tall.
Et predikatlogisk utsagn G konstrueres så slik at dens tolkning
som påstand om påstander om naturlige tall er <Det predikatlogiske
utsagn med Gödel-nummer n er ikke utledbart fra aksiomer for ele-
mentær tallteori>; hvor utsagnet med Gödel-nummer n er G selv(!)
Hverken G eller negasjonen :G kan være utledbart i elementær tall-
teori. Imidlertid representerer G (også) et utsagn om naturlige tall
som er sant (bevises enkelt, men selvfølgelig utenfor predikatkalky-
len). Ergo er elementær tallteori ufullstendig.
Dette er juks, kan man fristes til å si. Det er ikke meningen at
selvreferende påstander om systemet selv�og langt mindre påstan-
der som endog snakker om seg selv�skal få være med i <leken>,
76
![Page 85: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/85.jpg)
3.3. Algebraiske spesi�kasjoner av syntaktiske funksjoner
Figur 3.4: Möbius-bånd. Sammenbrudd av skillet mellom syntaks og semantikk.<Hvilken side er jeg på?> En �ate i rommet med én side; uten evne til å dele rommeti to.
og følgelig kan hele ufullstendighetsbeviset forkastes ved å anta for-
nuftige meta-nivåer.
Poenget er imidlertid at meta-nivåene er der og overlever hele
ufullstendighetsbeviset. Det er aldri snakk om noe annet enn lovli-
ge predikatlogiske utsagn som er ment å tolkes til påstander (innen
ett meta-nivå) om naturlige tall. Cruxet er imidlertid at det er in-
gen ting i veien for å de�nere en alternativ snedig avbildning (ved
Gödel-nummerering) av predikatlogiske utsagn til påstander om på-
stander om naturlige tall, på en slik måte at altså ufullstendighet
demonstreres.
Et annet <legendarisk> resultat hvis bevis tilsynelatende overtrer
etablerte meta-nivåer, er uavgjørbarhet av stoppeproblemet [Tur36].
Her tar en Turing-maskin kodinger av andre Turing-maskiner og
spesielt av seg selv som input.
Det er nyttig med rigide forestillinger om skiller mellom meta-
nivåer, mellom syntaks og semantikk, mellom påstander og det som
det påstås noe om, mellom maskiner og programmer osv. Men det
er også viktig å kunne betrakte ting som et homogent landskap av
mengder og avbildninger. Noen meta-nivåer kan dessuten være for
strenge: Mange problematiske, men morsomme paradoks, f.eks. det
før nevnte `Russels paradoks', elimineres ved å innføre (u)passende
metanivåer. Noen av skillene vi setter opp er kun for å hjelpe oss
begrepsmessig i gitte situasjoner; som i betrakninger tilknyttet imp-
lementasjon av abstrakte datatyper.
Vi presenterer nå noen eksempler på algebraiske beskrivelser av semantikk-
givende syntaktiske funksjoner.
Eksempel 44 Betrakt kanonisk-representant funksjonen �Int fra eksempel 32
77
![Page 86: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/86.jpg)
3. Semantikkgivende syntaktiske funksjoner
på side 64. Den (konvergente) ligningsmengden E�Int under er en en algebraisk
spesi�kasjon av �Int .
Int =
8<:
0 : int;succ : int!int;
pred : int!int
9=;
�Int =
8>>>><>>>>:
delta : int!int;
#s : int!int;
#p : int!int;
� : int�int!int;
+ : int�int!int
9>>>>=>>>>;
E�Int =
8>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>:
delta(x) = #s(x)�#p(x);
#s(0) = 0;
#s(succ(x)) = succ(0)+#s(x);
#s(pred(x)) = #s(x);
#p(0) = 0;
#p(pred(x)) = succ(0)+#p(x);
#p(succ(x)) = #p(x)
succ(x)�succ(y) = x�y;
0�succ(x) = pred(0�x);
x�0 = x;
x+succ(y) = succ(x+y);
x+0 = x
9>>>>>>>>>>>>>>>>>>>>>>=>>>>>>>>>>>>>>>>>>>>>>;
En naturlig tolkning av #s er en funksjon som tar en term i GInt og gir antallet
(et naturlig tall) succ'er i termen. Analogt for #p og antall pred'er. Di�eransen
�nnes så ved tolkningen av � til `minus' på naturlige tall. Disse tolkningene gjør
jo tolkningen av delta til en funksjon med kodomene de hele tall, og da ikke
til en syntaktisk kanonisk-representant funksjon. For å forklare virkemåten av
E�Int er disse tolkningene hensiktsmessige. Over nevnte vi at enhver algebra-
isk spesi�kasjon av en funksjon også kan sees som en algebraisk spesi�kasjon
av en syntaktisk funksjon. Så gitt intuisjonen for E�Int fremska�et ved tolknin-
gene som over av #s, #p osv., kan nå E�Int sees som algebraiske beskrivelser
av syntaktiske funksjoner. Bl.a. tolkes da de nevnte #s, #p og � til passende
syntaktiske funksjoner.d
Eksempel 45 Vi presenterer en algebraisk spesi�kasjon av �SetNat fra eksempel
33 side 65.
SetNat =
8>><>>:
0 : nat;succ : nat!nat;
Ø : setnat;add : setnat�nat!setnat
9>>=>>;
�SetNat =
8>>>>>><>>>>>>:
delta : setnat!setnat;
mem : setnat�setnat!setnat;
sort : nat�setnat�setnat�nat!setnat;
close : setnat�setnat!setnat;
� : nat�nat!nat;
pred : nat!nat
9>>>>>>=>>>>>>;
78
![Page 87: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/87.jpg)
3.3. Algebraiske spesi�kasjoner av syntaktiske funksjoner
V =
�s; t : setnat;w;x; y; z : nat
�
(Merk forkortet skrivemåte i variabelsignaturen V.)
E�SetNat =8>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:
1 : delta(s) = mem(s,Ø);
2 : mem(add(s,0),Ø) = mem(s,sort(0,Ø,Ø,pred(0)�0));
3 : mem(add(s,succ(x)),Ø) = mem(s,sort(succ(x),Ø,Ø,0�succ(x)));
4 : mem(add(s,x),add(t,y)) = mem(s,sort(x,add(t,y),Ø,y�x));
5 : mem(Ø,s) = s;
6 : sort(x,s,t,0) = close(t,s);
7 : sort(x,s,t,pred(y)) = close(t,add(s,x));
8 : sort(w,add(add(s,x),y),t,succ(z)) = sort(w,add(s,x),add(t,y),x�w);
9 : sort(w,add(Ø,x),t,succ(z)) = close(t,add(add(Ø,w),x));
10 : close(Ø,s) = s;
11 : close(add(s,x),t) = close(s,add(t,x));
12 : x�0 = x;
13 : 0�succ(x) = pred(0�x);
14 : 0�pred(x) = succ(0�x);
15 : succ(x)�succ(y) = x�y;
16 : pred(x)�pred(y) = x�y
9>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>;
Intuisjon for E�SetNat :E�SetNat er konvergent, så vi behandler E�SetNat som et abstrakt
deterministisk program.
En input-term til delta plasseres umiddelbart i hukommelsen mem (ligning
1). Prosesseringen av en term på formen
add(add(� � �(add(Ø,g1))� � �,gn�1),gn)
i mem foregår ved å lese termen utenfra og inn, og over i mems 2. argument.
Overføringen til mems 2. argument skjer via sort. Det 2. argument i mem er da
invariant kanonisk (dvs. sortert).
Overføringen til mems 2. argument skjer vanligvis ved ligning 4. Ligningene
2 og 3 tar seg av initieringen som vi kommer tilbake til.
Subprosedyren sort fungerer slik: 1. argument inneholder en GNat-generator-
term, som skal plasseres i riktig posisjon i termen gitt i 2. argument. Termen
gitt i 2. argument åpnes opp, dvs. leses over i 3. argument til riktig posisjon
er lokalisert. Riktig posisjon bestemmes av beregningen gjort i 4. argument.
Denne beregning er intuitivt beregningen av di�eransen mellom verdien av GNat-
generatortermen i posisjonen som sees på for øyeblikket, og verdien av kandidat-
termen som skal plasseres. Når kandidat-termen er plassert, lukkes termen ved
subprosedyren close.
Ligning 6: Di�eransen er 0. Altså �ns verdien fra før, og vi kan lukke.
Ligning 7: Di�eransen er negativ. Kandidat-termen skal inn her, og vi lukker.
Ligning 8: Di�eransen er positiv. Vi må lete videre.
Ligning 9: Nå har vi lett gjennom hele. Kandidat-termens verdi er mindre
enn alle andre verdier i mengden. Kandidat-termen skal inn innerst, og vi lukker.
Ligningene 2 og 3 initierer prosessering i sort. Spørsmålet er hvordan be-
regningen i sorts 4. argument skal initieres, siden det ikke ennå �nnes noen
for øyeblikket lest GNat-generatorterm å sammenligne den aller første kandidat-
termen med. Et naturlig og riktig valg for en �ktiv sammenligningsterm, er 0
79
![Page 88: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/88.jpg)
3. Semantikkgivende syntaktiske funksjoner
(ligning 3); bortsett fra i tilfellet der kandidat-termen selv er 0. Isåfall løses pro-
blemet ved å velge pred(0) som �ktiv term (ligning 2). Ligningene 12�16 tar
seg av beregningen i 4. argument av sort.
Vi har gjort et poeng her av å ikke innføre nye typer. Imidlertid kan en mer
lesbar spesi�kasjon skrives ved hjelp av ting som if then else og <. Merk at vi i
dette eksemplet ikke anser pred som et generatorsymbol.d
Eksempel 46 Det er lett å modi�sere E�Int fra eksempel 44 til en algebraisk
spesi�kasjon E Int av Int fra eksempel 34 side på 65. Dette kan gjøres på �ere
måter. Endre f.eks. ligningen #s(0) = 0 til #s(0) = succ(0).d
Vimerker oss at disse spesi�kasjonene av semantikkgivende syntaktiske funk-
sjoner har involvert hjelpefunksjon(symbol)er (#s, #p, �, +, mem og sort for
å nevne noen.) Mange funksjoner kan med fordel spesi�seres ved hjelp av hjel-
pefunksjoner, og dersom presis matematisk spesi�kasjon (f.eks. algebraisk) er
ønskelig, er det kanskje(?) noen ganger nødvendig med hjelpefunksjoner. Hjel-
pefunksjoner og hjelpeprosedyrer er imidlertid svært sentrale i programmering
og bidrar vesentlig til oppdeling av programmeringsoppgaver (<splitt og hersk>).
La nå synt være en syntaktisk funksjon som spesi�serer en kongruensrelasjon
' på en G� ved prinsipp (3.2) på side 64. For Es en algebraisk spesi�kasjon av
synt , er det innlysende at
s(g)�$Ess(g0) , g ' g0 (3.5)
for alle g; g0 2 G�, der s 62 � er et funksjonsymbol med passende pro�l slik at
synt er tolkningen av s (i synt-utvidelsen av G�). Det er dog ikke nødvendig at
Es er en (fullstendig) algebraisk spesi�kasjon av synt for å tilfredstille 3.5:
Eksempel 47 Betrakt følgende ligningsmengde:
Esynt =
8>><>>:
synt(succ(x)) = synt(succ(synt(x)));
synt(pred(x)) = synt(pred(synt(x)));
synt(succ(synt(pred(x)))) = synt(x);
synt(pred(synt(succ(x)))) = synt(x)
9>>=>>;
For signaturen Int og EIntc fra eksempel 11 side 21, har vi at Esynt tilfredstiller
synt(g)�$Esynt
synt(g0) , g�$
EIntcg0
for alle g; g0 2 GInt.
Intuisjonen for Esynt er som følger: For to termer synt(g); synt(g0) for g; g0 2
GInt slik at synt(g)�$Esynt
synt(g0), er det mulig å omskrive begge termene til en term
<mettet>med synt-forekomster; i den forstand at det ikke �nnes to umiddelbart
etterfølgende symboler fra GInt i termen. Vi har f.eks.
synt(succ(succ(succ(pred(0)))))�$Esynt
� � �
:
� � ��$Esynt
synt(succ(synt(succ(synt(0)))))�$Esynt� � �
:
� � ��$Esynt
synt(succ(succ(0)))
i tråd med at succ(succ(succ(pred(0))))�$
EIntcsucc(succ(0)).
Men Esynt er ikke tilstrekkelig synt-komplett mhp. GInt. Dermed er ikke Esynt
en algebraisk spesi�kasjon av �Int fra eksempel 32. MenEsynt er dog en algebraisk
beskrivelse av �Int (se de�nisjon 2.2 side 19).
80
![Page 89: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/89.jpg)
3.3. Algebraiske spesi�kasjoner av syntaktiske funksjoner
Merk at Esynt ikke er en algebraisk beskrivelse av Int fra eksempel 34. Dette
siden
synt(succ(0))�$Esynt
synt(succ(synt(0)))
men
G 6j= synt(succ(0)) = synt(succ(synt(0)))
for Int-utvidelsen G av GInt, siden
Int(succ(0)) = succ(succ(0))
mens
Int(succ( Int(0))) = succ(succ(succ(0)))
og succ(succ(0)) og succ(succ(succ(0))) jo er to (ikke identiske) elementer i bæ-
remengden til G.d
De�nisjon 3.4 La ' være en kongruensrelasjon spesi�sert av en syntaktisk
funksjon synt. Vi kaller en ligningsmengde Es som for ' tilfredstiller (3.5), en
(algebraisk) spesi�kasjon av ' mhp. synt .
En algebraisk spesi�kasjon av en kongruensrelasjon mhp. en syntaktisk funksjon,
gir tydelig et (nesten) like direkte ligningslogisk grep om kongruensrelasjonen
som en (vanlig) algebraisk spesi�kasjon ville ha gjort: Nå trengs bare symbolet
s settes som rot før ligningslogikk kan slippes til. Algebraiske spesi�kasjoner av
kongruensrelasjoner mhp. syntaktiske funksjoner egner seg derfor som atomære
semantikker.
Vi er istand til å gi algebraiske spesifkasjoner/beskrivelser for semantikk-
givende funksjoner som ikke er omskrivningsberegnbare. Således gir algebraisk
spesi�kasjon mhp. syntaktiske funksjoner muligheten for et deterministisk lig-
ningslogisk grep om �ere semantikker (kongruensrelasjoner) enn dem som kan
spesi�seres ved konvergente direkte algebraiske spesifkasjoner.
Eksempel 48 Betrakt
SetNat =
8>><>>:
0 : nat;succ : nat!nat;
Ø : setnat;add : setnat�nat!setnat
9>>=>>;
ESetNat =
�add(add(s,x),x) = add(s,x);
add(add(s,x),y) = add(add(s,y),x)
�
La 'x være semantikken på GSetNat spesi�sert direkte algebraisk av ESetNat.
Siden ingen endelig regelmengde er komplett for ESetNat, ei heller GSetNat-
komplett, er ikke 'x avgjørbar ved noen direkte algebraisk spesi�kasjon.
Derimot er 'x avgjørbar ved den algebraiske spesi�kasjonE�SetNat mhp. �SetNatfra eksempel 45 side 78.
Vi minner da om siste tekstavsnitt i eksempel 31 side 59.d
Ved algebraisk spesi�kasjon mhp. syntaktiske funksjoner spesi�seres seman-
tikk begrepsmessig på to nivåer: En algebraisk beskrivelse spesi�serer (noe av)
semantikken til en syntaktisk funksjon som i sin tur spesi�serer semantikken til
termer. Figur 3.5 illustrerer situasjonen.
Vi har ikke utviklet metoder som søker resolusjon av generell initial- og
�nalsemantikk. Imidlertid skal vi se at semantikk relativ til semantikk spesi�sert
81
![Page 90: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/90.jpg)
3. Semantikkgivende syntaktiske funksjoner
AA
G�='rG�='r
's
G�c
G
synt
G�c[�s=Es hG�c[�s ; Esi
G�; E
d�
Figur 3.5: Semantikkspesi�kasjon på to nivåer. Her er det en �-algebra A somsøkes implementert, og '
A
G��kongruensrelasjonen indusert av �AG��søkes derfor
spesi�sert på en formelt tilnærmbar måte. � er her delt i �c og �d bestående avgeneratorer og de�nerte funksjonssymboler hhv.Nedre nivå: Es � E(T�s(V)) er en algebraisk beskrivelse av en syntaktisk funksjonsynt i synt-utvidelsen G av G�c .Øvre nivå: Generatorsemantikken '
s spesi�seres av synt. Semantikken 'r er en
semantikk relativ til 's bestemt av � og en ligningsmengde Ed som gir semantikktil symboler i �d.
Den formelle omgivelse for 's er hG�c[�s ; Esi. Den formelle omgivelse for 'r er
mengden av hG�c[�s ; Esi ogG�; E
d�. Grensesnitt-omgivelsen/den logiske omgivelse
for 'r erG�; E
d�.
mhp. syntaktiske funksjoner i noen tilfeller kan reduseres til basis-initial/basis-
�nalsemantikk og er således tilgjengelig for eksisterende resolusjonsmetoder.
Det er mulig å delvis bruke en og samme representasjon på tvers av vå-
re to semantikkgivende nivå. Det er derfor mulig å betrakte den algebraiske
beskrivelsen av den syntaktiske funksjonen på samme nivå som algebraisk spe-
si�kasjon av <ekte> semantiske funksjoner, og disse to algebraiske beskrivels-
er/spesi�kasjoner kan så slås sammen. Dette skal vi utnytte i reduksjonen til
basis-initial/basis-�nalsemantikk. Figur 3.6 illustrerer situasjonen.
3.4 Reduksjon til basis-semantikker
I dette avsnittet viser vi at semantikker relative til semantikker spesi�sert mhp.
semantikkgivende syntaktiske funksjoner, under visse omstendigheter, kan re-
duseres til basis-semantikker.
Som et ledd i dette, betrakter vi algebraiske beskrivelser av semantikkgiven-
82
![Page 91: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/91.jpg)
3.4. Reduksjon til basis-semantikker
AA
G�='rG�='r
's
G�c
G
synt
G�c[�s ; Es [E
d�
Figur 3.6: Semantikkspesi�kasjon på ett nivå og sammenslåtte funksjonsspesi�kasjo-ner/beskrivelser.
Den algebraiske beskrivelsen Es av den semantikkgivende syntaktiske funksjonen synt
og den algebraiske spesi�kasjon Ed deler representasjon. Dermed er det mulig å se Es
og Ed som del av én formell (logisk) omgivelseG�c[�s ; Es [E
d�for 'r, der 'r er
en basis-initial eller en basis-�nal semantikk.
de syntaktiske funksjoner på samme <spesi�kasjonsnivå> som øvrig algebraisk
beskrivelse/spesi�kasjon.
Det er da av og til naturlig å <glemme> at algebraiske beskrivelser av se-
mantikkgivende syntaktiske funksjoner har noe med de syntaktiske funksjoner
å gjøre, da sistnevnte for oss er ledd i en <to-nivå-spesi�kasjon>.
Istedet skal vi �nne det hensiktsmessig å snakke om ligningsmengder som er
ment å være semantikkspesi�kasjoner mhp. syntaktiske funksjoner, på et helt
og holdent syntaktisk nivå. For dette de�neres først noen relevante begreper.
Deretter setter vi opp rammen rundt selve diskusjonen om reduksjon til basis-
semantikker.
3.4.1 Kongruens og indirekte spesi�kasjon
Dersom Es er en algebraisk spesi�kasjon av en kongruensrelasjon ' mhp. en
syntaktisk funksjon synt, har vi nødvendigvis for alle kontekster c og termer
g; g0 i domenet til ' og et passende symbol s ment å representere synt,
s(g)�$Ess(g0) ) s(c[g])
�$Ess(c[g0]) (3.6)
for alle c; g; g0 i domenet til ' og et passende symbol s. (Se også (3.3) side 64.)
Å lage algebraiske spesi�kasjoner/beskrivelser av semantikkgivende syntaktiske
funksjoner er ikke alltid så lett, så i diskusjonen fremover skal vi ikke alltid
ta for gitt at en ligningsmengde som er ment å være en spesi�kasjon av en
kongruensrelasjon ' mhp. en syntaktisk funksjon, nødvendigvis er det. Spesi�kt
skal vi betrakte en <feil> som inkongruens' for mulig.
83
![Page 92: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/92.jpg)
3. Semantikkgivende syntaktiske funksjoner
Eksempel 49 Betrakt følgende forsøk på en spesi�kasjon av 'IntGIntmhp. kanon-
isk-representant funksjonen �Int fra eksempel 32.
E0�Int
=
8>>>>>>>><>>>>>>>>:
delta(succ(pred(x))) = delta(x);
delta(pred(succ(x))) = delta(x);
delta(succ(succ(x))) = succ(delta(succ(x)));
delta(pred(pred(x))) = pred(delta(pred(x)));
delta(succ(0)) = succ(0);
delta(pred(0)) = pred(0);
delta(0) = 0
9>>>>>>>>=>>>>>>>>;
E0�Int
er konvergent, og vi har
delta(pred(succ(succ(0))))!!E0�Int
succ(0)! E0�Int
delta(succ(0))
men
delta(pred(pred(succ(succ(0)))))!!E0�Int
pred(succ(0)) 6= 0! E0�Int
delta(pred(succ(0)))
Altså oppfyller ikke E (3.6) og er således inkongruent' og ubrukelig for seman-
tikkspesi�kasjon etter prinsipp 3.5 side 80.d
De�nisjon 3.5 La � være en signatur inneholdende et unært funksjonssymbol
s. La Es 2 E(T�(V)) være en ligningsmengde. Betrakt relasjonen <s slik at for
alle g; g0 2 G�g <s g0 , s(g)
�$Es
s(g0)
For ethvert redukt G av G� er Es indirekte G-kongruent (mhp. s) dersom
<sG er en kongruensrelasjon.
Isåfall kaller vi Es en indirekte (algebraisk) spesi�kasjon av <sG. Terme-
ne i G sier vi gis indirekte semantikk, og symbolet s sier vi er spesi�serende.
3.4.2 Formell omgivelse...
Vi de�nerer nå formelle datatyper ved bruk av indirekte spesi�kasjon. Vi skal
benytte oss av teorien i avsnitt 2.3 i kapittel 2. Vi skal følge intensjonene A side
30 og B side 31.
Vi antar i de følgende avsnitt signaturer og ligningsmengder som vist i �gur
3.7.
Vi skal i det følgende foreløpig anta at
INDKONG: Es er indirekte G�c -kongruent.
INDDEGEN: Det �ns ingen andre generatorer i G�� enn dem i G�c .
(Alle slike merkede antagelser �nnes i registret bakerst.) Antagelsen INDDEGEN
er en presisering for tilfellet her av DEGEN på side 39 i avsnitt 2.3.6. Ved INDKONG
har vi at den indirekte semantikken 's spesi�sert av Es �nnes.
Andre kriterier vi kommer til å anta er:
DISJ: Ed � E(T�d[�c(V)) og Es � E(Tfsg[�h[�c(V)).
EsVARBEVAR: Alle ligninger v = h i Es er variabelbevarende, dvs. ingen va-
riabel forekommer kun i en av v og h.
EdVARBEVAR: Alle ligninger v = h i Ed er variabelbevarende.
84
![Page 93: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/93.jpg)
3.4. Reduksjon til basis-semantikker
Vi antar gitt følgende signaturer og ligningsmengder:
� =S �
c : generatorer
�d : de�nerte funksjonssymboler
�s =S fsg : spesi�serende symbol
�h : de�nerte hjelpefunksjonssymboler
�� = � [�s
Samtlige �c;�d; fsg;�h er parvis disjunkte.
Ed : algebraisk beskrivelse for funksjonssymboler i �d
Es : formodet indirekte algebraisk spesi�kasjon med
spesi�serende symbol s av en generatorsemantikk 's
�E = Ed [Es
Den formelle omgivelse er nåDG��;
�EE.
Men: Det er G� som først og fremst skal gis semantikk.
Figur 3.7: Formell omgivelse for reduksjon til basis-semantikker.
Antagelsen DISJ har betydning ved den parvise disjunkthet av samtlige �c, �d,
fsg og �h som vi postulerte over, og sier da at Es og Ed har kun generator-
symboler felles. Dette er en rimelig antagelse i lys av Ed og Es som opprinnelig
separate beskrivelser (på to separate <semantiske nivåer>).
Antagelsen EdVARBEVAR er en rimelig antagelse i lys av konstruktiv funk-
sjonsspesi�kasjon. Antagelsen EsVARBEVAR er ikke urimelig, men er ikke alltid
naturlig oppfylt ved våre algebraiske spesi�kasjoner av semantikkgivende syn-
taktiske funksjoner. F.eks. oppfyller ikke E�SetNat fra eksempel 45 på side 78 Es-
VARBEVAR (f.eks. ligning 6).
Merk også at EsVARBEVAR og EdVARBEVAR er uorienterte versjoner av an-
tagelsen 1 gjort på side 52 om regler i omskrivningssystemer i forbindelse med
Knuth&Bendix-komplettering.
Andre antagelser er videre:
T�K: �E er tilstrekkelig �-komplett mhp. G�c .
TsK: �E er tilstrekkelig fsg-komplett mhp. G�c .
T�hK: �E er tilstrekkelig �h-komplett mhp. G�c .
T��K: �E er tilstrekkelig ��-komplett mhp. G�c .
Kriteriet T��K er presiseringen her av TK på side 28 i avsnitt 2.3.3.
Vi minner om de�nisjonen 2.5 av tilstrekkelig kompletthet på side 25. Merk
at eksempelvis TsK betyr at det for hver term g 2 Gfsg[�c �nnes en term gc 2 G�c
slik at g�$�Egc. TsK betyr f.eks. ikke at det �nnes en gc 2 G�c for enhver term
s(�g) for �g 2 G��, slik at s(�g)�$�Egc.
Intuitivt bør T�K, TsK og T�hK tilsammen gi T��K. Følgende lemma bekrefter
dette.
85
![Page 94: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/94.jpg)
3. Semantikkgivende syntaktiske funksjoner
Lemma 3.4 La � være disjunkt delt i �x, �d og �d0. La E � E(T�(V)) være
tilstrekkelig �d-komplett mhp. �x og tilstrekkelig �d0-komplett mhp. �x. Da er
E tilstrekkelig �d [�d0-komplett mhp. �x.
Bevis: Induksjon over antall n symboler fra �d [�d0i en vilkårlig g 2 G�.
n = 0: Trivielt.
n = k + 1;k � 0: Da er g = c[f(g1, : : : ,gm)] for c 2 G�; g1; gm 2 G�x
og en f 2 �d [ �d
0. Vi betrakter altså et i g dypest forekommende symbol
fra �d [ �d0. Siden E er tilstrekkelig �d-komplett mhp. G�x og tilstrekkelig
�d0-komplett mhp. G�x , har vi g = c[f(g1, : : : ,gm)]
�$�Ec[g0] for en g0 2 G�x .
Induksjonshypotesen gir så c[g0]�$�Egx for en gx 2 Gx og lemmaet følger.
2
To meget kraftige, men i spesi�kasjonssammenheng rimelige antagelser er følg-
ende:
KONVERG: �E er konvergent
KONSTR: Enhver ligning v = h 2 �E er slik at v har formen
f(t1, : : : ,tn)
der f er et de�nert symbol i �� og alle ti 2 T�c(V); 1 � i � n.
Merk dog at ligning 7 i eksempel 45 side 78 ikke tilfredstiller KONSTR.
Presiseringen her av KONSERV (side 28) blir:
INDKONSERV:�$�E G�c � '
s.
M.a.o. gc�$�Eg0c ) s(gc)
�$Es
(g0c) for alle gc; g0c 2 G�c
Vi har umidelbart for alle gc; g0c 2 G�c
gc�$Esg0c ) s(gc)
�$Es
(g0c) (3.7)
så det kan virke som om INDKONSERV ville være oppfylt dersom
gc�$Edg0c ) s(gc)
�$Es
(g0c)
og da spesielt hvis gc�$Ed g
0c ) gc = g0c. Dette er ikke tilfellet:
Eksempel 50 Anta
succ(pred(0)) 's 0
succ(0) 6's 0
succ(pred(0))�$Es
0
f(succ(pred(0)))�$Ed succ(0)
f(0)�$Ed
0
Vi får da
succ(0)�$Ed
f(succ(pred(0)))�$Es
f(0)�$Ed
0
M.a.o. succ(0)�$�E0 selv om succ(0) 6's 0.
d
Betrakt da følgende antagelser:
86
![Page 95: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/95.jpg)
3.4. Reduksjon til basis-semantikker
EsFRIc: Es er fri mhp. �
c; dvs. Es har ingen ligninger fra E(T�c(V)); utenom
muligens ligninger på formen v = v.
EdFRI
c: Ed er fri mhp. �c; utenom muligens ligninger på formen v = v.
Antagelsene EsFRIc og Ed
FRIc er rimelige ved indirekte spesi�kasjon; formodet
at generatorsemantikk kun ønskes å bli gitt ved indirekte spesi�kasjon.
Sats 3.5 INDKONSERV følger fra EsFRIc, Ed
FRIc, KONVERG og KONSTR
Bevis: Betrakt to vilkårlige gc; g0c 2 G�c slik at gc 6= g0c og slik at gc
�$�Eg0c. Ved
KONVERG har vi da gc!!�Egc!
! �Eg0c. Ved KONSTRmå enhver komponent i vilkårlige
ensrettede �E-utledninger hgc; : : : ; gc!i og hg0c; : : : ; gc!i være i G�c . Men dette er
umulig ved EsFRIc og Ed
FRIc. Altså må gc
�6$�Eg0c. INDKONSERV følger da trivielt.
2
Dersom KONVERG ikke er oppfylt, blir det mer problematisk å etablere INDKON-
SERV. Vi skal ikke gå inn på detaljer, men betrakt følgende antagelser:
EsKONSERV+: gc�$Esg0c ) gc = g0c for alle gc; g
0c 2 G�c .
EdKONSERV+: gc
�$Edg0c ) gc = g0c for alle gc; g
0c 2 G�c .
Antagelsene EsKONSERV+ og EdKONSERV+ er rimelige, formodet at generatorse-
mantikk kun ønskes å bli gitt ved indirekte spesi�kasjon og i lys av konstruktiv
funksjonsspesi�kasjon. Merk at
EsKONSERV+ ) EsFRIc og Ed
KONSERV+ ) EdFRI
c
EsKONSERV+ og EdKONSERV+ sammen med DISJ, gir at enhver subterm gf av
en komponent i en vilkårlig Ed- eller Es-utledning hgc; : : :i i G �E fra en vilkårlig
gc 2 G�c , har en unik gfc 2 G�c slik at gf �$Edgfc eller gf
�$Esgfc .
Dette kan brukes sammen med forskjellige antagelser til å vise at enhver
komponent �g i en en vilkårlig �E-utledning hgc; : : :ii G �E fra en vilkårlig gc 2 G�c ,
har en unik �gc 2 G�c slik at �g�$�E�gc. Siden �gc er unik, har vi følgelig
gc�$�Eg0c ) gc = g0c
for alle gc; g0c 2 G�c , og INDKONSERV er oppfylt. Siden KONVERG i vår sammenheng
er en rimelig og avgjørbar egenskap, viser vi som sagt ikke detaljene her.
3.4.3 ...og formelle datatyper
Mens INDDEGEN og INDKONG i de nærmeste avsnitt vanligvis alltid skal antas å
holde, skal vi eksplisitt si når de andre kriterier skal antas.
Fra elementene i �gur 3.7 kan vi bygge opp initial- eller �nalsemantikk relativ
til indirekte semantikk.
Finalsemantikk relativ til en indirekte semantikk 's kan uttrykkes som føl-
ger: For alle g; g0 2 G��
g '! g0 ,
�g; g0 er av samme type og
:9c 2 G��;g1; g2 2 G�c j c[g]�$�Eg1 6'
s g2�$�Ec[g0]
(3.8)
<Ankerfestene> gis her ved den indirekte semantikk spesi�sert av Es på G�c .
Det er også naturlig å benytte initialsemantikk, ved her å la '� være ini-
tialsemantikken relativ til 's spesi�sert av �� og �E.
Antar vi INDKONSERV og T��K og konsistens, følger det fra diskusjonen i av-
snitt 2.3.7 (se slutten av avsnittet på side 44) at både '!G� og '�G� gir oss ønsket
87
![Page 96: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/96.jpg)
3. Semantikkgivende syntaktiske funksjoner
semantikk på G�, i den grad ønsket generatorsemantikk er den gitt av 's og
ønsket semantikk til de�nerte funksjonssymboler er den gitt i �E.
I forbindelse med indirekte spesi�kasjon av generatorsemantikk, er initial- og
�nalsemantikk ikke de eneste alternativer for oppbygging av semantikk. Vi kun-
ne f.eks. ganske enkelt la den indirekte spesi�kasjon omfatte hele term-universet
og ikke kun generator-termene: Dersom �E er G�-kongruent, kan vi betrakte se-
mantikken <s på G�� slik at for alle g; g0 2 G��:
g <s g0 , s(g)�$�Es(g0) (3.9)
Men det er �ere omstendigheter som hindrer G�-kongruens av �E. Dersom �E
ikke er tilstrekkelig �d-komplett mhp. G�c , kan vi ha for c 2 �d
s(g)�$�Es(g0) men s(c[g])
�6$�Es(c[g0])
hvis den indirekte spesi�kasjon Es inneholdt i �E ikke (tilfeldigvis) er slik at den
eksplisitt gir ønsket semantikk også til de�nerte funksjonssymboler. Dette er
kanskje mindre trolig, ettersom Es formodentlig opprinnelig var en algebraisk
beskrivelse av en (semantikkgivende syntaktisk) funksjon på G�c .
Dette opphavet til inkongruens her er også et opphav til inkongruens av �nal
pseudosemantikk. Begge inkongruenssituasjoner reddes imidlertid av antagelser
om tilstrekkelig kompletthet. Senere vil vi se andre mer tungtveiende grunner
til at �E ikke er G�-kongruent.
I de neste to avsnittene reduserer vi semantikkene '! og '� til basis-
semantikker.
3.4.4 Reduksjon til basis-�nalsemantikk
Vi vil nå redusere �nalsemantikken '! i (3.8) til en basis-�nalsemantikk. Be-
trakt følgende kriterium:
ASSS: Es er en algebraisk spesi�kasjon av en semantikkgivende syntaktisk funk-
sjon synt .
Kriteriet ASSS medfører TsK.
Teorem 3.6 La '!0 være relasjonen over G�� slik at
g'!0g0 ,
�g; g0 er av samme type og
:9c 2 G��;g1; g2 2 G�c=synt j c[g]�$�Eg1 6= g2
�$�Ec[g0]
(3.10)
For spesialtilfellet ASSS, har vi for '! i (3.8):
'!0 = '!
Bevis: Vi antar g; g0 av samme type, ellers følger teoremet trivielt. Merk at vi
ved sats 3.2 (side 66) har at synt er en klasserepresentant-funksjon; og siden Es
er en algebraisk spesi�kasjon av synt, spesi�kt en klasserepresentant-funksjon
for 's. Følgelig eksisterer synt-reduksjonen G�c=synt.
Anta g 6'!0g0. Da �nnes c 2 G�� og g1; g2 2 G�c=synt slik at
c[g]�$�Eg1 6= g2
�$�Ec[g0]
Nå er g1 og g2 klasserepresentanter for 's. Siden g1 6= g2 må g1 6's g2, ellers
var ikke synt en klasserepresentant-funksjon for 's. Men da har vi
c[g]�$�Eg1 6'
s g2�$�Ec[g0]
88
![Page 97: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/97.jpg)
3.4. Reduksjon til basis-semantikker
og dermed g 6'! g0.
Anta så g 6'! g0. M.a.o. det �nnes c 2 G�� og g1; g2 2 G�c slik at
c[g]�$�Eg1 6'
s g2�$�Ec[g0]
Nå er ikke nødvendigvis g1; g2 2 G�c=synt , men siden Es er en spesi�kasjon
av synt og synt er en klasserepresentant-funksjon for 's, har vi at det �nnes
g01; g02 2 G�c=synt slik at g
01 6= g02 og slik at s(g1)
�$�Eg01 og s(g2)
�$�Eg02, og vi får
s(c[g])�$�Es(g1)
�$�Eg01 6= g02
�$�Es(g2)
�$�Es(c[g0])
og dermed g 6'!0g0.
2
<Ankerfestene> for (3.10) er G�c=synt med fri (preprogrammert) semantikk.
Resolusjon i den formelle datatypen G�='!0 kan så gjøres, under T��K og IND-
KONSERV, ved f.eks. metodene for basis-�nalsemantikk beskrevet i [Lys92] og
[Lys94a] for spesialtilfellet fri kjerne-semantikk.
<Ankerfestene> for (3.10) <fungerer> ikke med mindre �E er tilstrekkelig
fsg-komplett mhp. G�c ; altså med mindre vi antar TsK:
Eksempel 51 For Esynt fra eksempel 47 er <ankerfestene> i GInt=�Int til ingen
nytte. Finalsemantikken på GInt relativ til den frie semantikk i GInt=�Int blir den
universelle.d
Pga. den frie kjernesemantikken i (3.10), kan man videre bli fristet til å
forenkle (3.10) til
g'!00g0 ,
�g; g0 er av samme type og
:9c 2 G�� j c[g]�6$�Ec[g0]
(3.11)
Men for at (3.11) skal tilsvare (3.10), må �E være tilstrekkelig �d-komplett mhp.
synt-reduksjonen G�c=synt for ikke umiddelbart å motsi 's:
Eksempel 52 La E være unionen av den algebraiske spesi�kasjonen av �Int fra
eksempel 32 på side 64, med f.eks. E+Zfra eksempel 37 side 71. Vi har da
succ(pred(0)))+0�$E
succ(pred(0)) og 0+0�$E
0
som gir succ(pred(0)) ikke semantisk lik 0 ifølge (3.11). Denne ulikheten spe-
si�seres ikke i følge (3.10), siden succ(pred(0)) 62 GInt=�Int . (Det hjelper ikke å
istedet bruke E0+Zfra eksempel 38 side 71.)
d
Kommentar:
Finalsemantikken i (3.10) er relativ til fri semantikk på en en-til-
en termmengde av klasserepresentanter�bildet av en semantikk-
givende syntaktisk funksjon. Det er �ere måter å betrakte en slik
mengde på:
� Som et <skyggeunivers> bestående av kopier av klasserepresen-
tantene og av en ny type. Hvis f.eks.E er en algebraisk beskriv-
else av �Int fra eksempel 32, og delta : int!int er pro�len tolket
til �, de�nerer vi en type int 6= int og pro�ler
89
![Page 98: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/98.jpg)
3. Semantikkgivende syntaktiske funksjoner
0 : int,succ : int! int
pred : int! int
Pro�len til delta endres til
delta : int!int
Evt. hjelpefunksjonpro�ler samt E endres i tråd med dette. I
forbindelse med �nalsemantikken i (3.10), gjør dette her delta
til en observator i tradisjonell forstand, som beskrevet i avsnitt
2.3.3. Merk at termer med nestinger av delta nå ikke er velfor-
mede.
� Som en delmengde av mange-til-en termuniverset. Fortsetter vi
eksemplet over, innføres da en type int' � int, og pro�len til
delta endres til delta : int!int'. Nå er nesting av delta lovlig,
men en ligning som succ(pred(0)) = 0 er ikke lovlig ifølge tradi-
sjonelle typingsregler siden ligningen innebærer at succ(pred(0))
er av type int', som jo er galt. Merk likevel at �IntT (int) =
�IntT
(int'), for standard-typetolken �IntT
. Derfor gir ligningen
succ(pred(0)) = 0 likevel semantisk mening.
� Klasserepresentantene kan spesi�serers til å være av en type-
sum T+U. Vi har ikke snakket om type-sum og sum-algebraer,
men motstykket i programmeringsspråk ivaretas av konstruk-
sjonen ofte kalt union. Litt upresist betyr dette for vårt eksem-
pel at f.eks. termen 0 kan sees som av type int og av type int'.
Da er en ligning som succ(pred(0)) = 0 lovlig.
� Ingen ny type brukes. Pro�ler og den algebraiske beskrivelsen
av den syntaktiske funksjonen endres ikke.
Disse �re punktene representerer forskjellige måter å betrakte meng-
der av klasserepresentanter på og går fra svært eksplisitt i første
punkt til helt implisitt i siste punkt. Vi skal imidlertid være prag-
matiske og kun være interessert i hvilke syntaktiske forskjeller disse
betraktnings-måtene gir og hvordan disse forskjellene innvirker på
spesi�kasjon og resolusjon av semantikk. Vi har hittil ført diskusjo-
nen i tråd med siste punkt. Dette skal vi foreløpig fortsette med.
3.4.5 Reduksjon til basis-initialsemantikk
En initialsemantikk relativ til en kjernesemantikk 'x er en omskrivningsrela-
sjon. Men en slik initialsemantikk er ikke generelt tilgjengelig for eksisteren-
de resolusjons-metoder, da disse er for basis-initialsemantikk. Vårt tilfelle�
initialsemantikk relativ til en indirekte semantikk 's�er imidlertid slik at en
enkel utvidelse av ligningsmengden involvert opplagt antyder muligheten for
tilbakeføring til basis-initialsemantikk og eksisterende resolusjonsmetoder.
Vi antar fortsatt signaturer og ligningsmengder som de�nert i �gur 3.7 på
side 85. Vi antar også fortsatt INDDEGEN og INDKONG.
La '� være den initielle semantikk relativ til 's spesi�sert av �� og �E (se
de�nisjon 2.9 av initialsemantikk side 31). Betrakt en '�-utledning i G�� på
formen
hg; : : : ; c[g1]; c[g2]; : : : ; g0i
der
g�$�Ec[g1], g1 '
s g2, c[g2]�$�Eg0
Nå betyr g1 's g2 at s(g1)
�$�Es(g2). Betrakter vi nå ligningsmengden
90
![Page 99: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/99.jpg)
3.4. Reduksjon til basis-semantikker
�Eid = �E [ fs(x) = xg�s-id-utvidelsen av �E
kan vi umiddelbart lage �Eid -utledningen i G��
hg; : : : ; c[g1]; c[s(g1)]; c[s(g2)]; c[g2]; : : : ; g0i
Det er derfor ikke fullstendig unaturlig å tenke seg muligheten for at
'� =�$�EidG��
(3.12)
Resolusjon i G��='� kan i så fall overføres til resolusjon i basis-datatypen G��=
�Eid ;
og er således i prinsipp tilgjengelig for resolusjons-metoder for basis-initialsem-
antikk. Desverre skal vi se at (3.12) ikke holder generelt. Likevel kan (3.12) vises
å holde i interessante spesialtilfeller og for interessante restriksjoner av '�.
Det er kun den ene av inklusjonene i (3.12) som er problematisk. Vi har
nemlig uten videre:
Lemma 3.7
'� ��$�Eid
G��
Bevis: Induksjon på lengden n av en vilkårlig '�-utledning hg; : : : ; g0i i G��.
n = 1: Trivielt.
n = k+1;k � 1: Da har vi en utledning hg; : : : ; gk; g0i. Induksjonshypotesen
gir g�$�Eid
gk. Anta så gk $�E g0. Trivielt får vi da g�$�Eid
g0. Anta gk = c[g1] og
g0 = c[g2] og g1 's g2. Vi har ved sistnevnte s(g1)
�$�Es(g2), og kan da lage �Eid-
utledningen hgk = c[g1]; c[s(g1)]; c[s(g2)]; c[g2] = g0i, og induksjonssteget følger
ved transitivitet.
2
Resten av dette avsnittet tilegner seg til oppgaven å vise
'�G�0�
�$�Eid
G�0
og følgelig ved lemma 3.7
'�G�0 =�$�EidG�0
for forskjellige redukt G�0 av G��, under forskjellige kriterier. Domenet G�0 for vår
reduksjon til basis-initialsemantikk innskrenkes i takt med lettelse av kriteriene.
� Reduksjon på hele G��:
Vi skal her vise under visse antagelser
'�G�� ��$�EidG��
Vi snakker her hele tiden om ligningen s(x) = x. Ikke overraskende trenger vi
en antagelse om at den semantikkgivende syntaktiske funksjon som Es er en
beskrivelse av, er en kanonisk-representant funksjon. Det er �ere måter dette
kan tilkjennegi seg i Es på, hvorav en er:
KREP1: For alle gc 2 G�c :
s(gc)�$Ess(s(gc))
Antagelsen KREP1 fordrer at Es er en algebraisk beskrivelse av en �kspunkt-
funksjon (se (3.4) side 64). Antagelsen INDKONG fordrer at Es er en algebraisk
91
![Page 100: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/100.jpg)
3. Semantikkgivende syntaktiske funksjoner
beskrivelse av en semantikkgivende funksjon. Ved sats 3.1 (side 65), er en �ks-
punktfunksjon som er semantikkgivende også en kanonisk-representant funk-
sjon. Følgelig er Es en algebraisk beskrivelse av en kanonisk-representant funk-
sjon.
Vi kan også se dette på følgende rent syntaktiske måte: Under TsK, har vi
s(gc)�$Es
�gc, for en �gc 2 G�c . Ifølge KREP1 har vi da s(gc)�$Es
s( �gc), eller m.a.o.
under INDKONG:
gc 's �gc (3.13)
Merk at under TsKmedfører dessuten KREP1 at Es er en algebraisk spesi�kasjon
av en kanonisk-representant funksjon (ikke bare en beskrivelse).
Antar man T��K kan i noen tilfeller KREP1 veri�sereres ved å bekrefte den
sterkere påstand at s(x) = s(s(x)) er en induktiv konsekvens av Es. Resolu-
sjonsmetoder for basis-initialsemantikk kan tas i bruk til dette. Vi kan nå vise:
Teorem 3.8 Under antagelsene T��K og KREP1 har vi
'� =�$�EidG��
Lemma 3.7 gir umiddelbart
'� ��$�EidG��
Den andre inklusjon er altså mer arbeidsom å vise. Vi skal trenge mer notasjon.
For en g 2 G��, la
� g betegne en term i G�c slik at
g�$�Eg
� �gc for en generatorterm gc, betegne en generatorterm slik at s(gc)�$Es
�gc.
Under antagelsen T��K �nnes slike g og �gc alltid.
Lemma 3.9 Anta T��K og KREP1. Da har vi
�$�EidG��
� '�
Bevis: Induksjon over lengden n til en vilkårlig �Eid-utledning hg; : : : ; g0i i G��.
n = 1: Trivielt har vi g '� g.
n = k + 1;k � 1: Da har vi en �Eid -utledning hg; : : : ; gk; g0i. Induksjonshy-
potesen gir g '� gk. Anta gk $�E g0. Induksjonssteget følger da trivielt. Anta
gk !fs(x)=xg g0. Da er gk = c[g0k] og g
0 = c[s(g0k)], eller gk = c[s(g0k)] og g0 = c[g0k].
For begge tilfeller har vi ved (3.13)
g0k�$�Eg0k '
s �g0k
�$�Es(g0k)
�$�Es(g0k) (3.14)
og induksjonssteget følger ved monotonitet mhp. kontekstapplikasjon og transi-
tivitet (og evt. symmetri).
2
Teorem 3.8 følger så ved lemma 3.7 og 3.9.
Er det rimelig å forvente at T��K er oppfylt? Det er rimelig å forvente i imp-
lementasjonssammenheng at T�K i det minste er oppfylt. Gitt at den indirekte
spesi�kasjonen i �E er en algebraisk spesi�kasjon av en syntaktisk funksjon, vil
også TsK være oppfylt. Men det er ikke sikkert at T�hK gjelder, selv om TsK er
oppfylt:
92
![Page 101: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/101.jpg)
3.4. Reduksjon til basis-semantikker
Eksempel 53 Betrakt E�Int fra eksempel 44 side 77. Her er E�Int tilstrek-
kelig fdeltag-komplett mhp. GInt (dvs. TsK er oppfylt). Men E�Int er ikke til-
strekkelig f�g-komplett mhp. GInt (T�hK er ikke oppfylt), siden f.eks. termen
pred(0)�pred(0) ikke kan omskrives ved E�Int til en term i GInt. (Men merk
at pred(0)�pred(0) aldri vil forekomme som komponent i en E�Int -utledning
hdelta(g); : : :i.)
Imidlertid kan vi gjøre en for spesi�kasjonen av �Int harmløs utvidelse av
E�Int , ved å legge til ligningene:
Ekompl =
8<:
0�pred(x) = succ(0�x);
pred(x)�pred(y) = x�y;
x+pred(y) = pred(x+y)
9=;
Det er ikke vanskelig å overbevise seg om at E�Int [ Ekompl er tilstrekkelig
Int[�Int-komplett mhp. GInt (dvs. at T��K er oppfylt) (ved hjelp av lemma 3.4
side 85). Ved et langt induksjonsbevis med mange induksjonsnivåer, kan vi også
vise at
delta(gc)�$E�Int
delta(delta(gc))
(altså at KREP1 er oppfylt). Dermed har vi ved teorem 3.8, for delta-id-utvidelsen
Eid av E�Int [Ekompl , at�$EidG��
= '�
der �� = Int [�Int, og '� er den initielle semantikk spesi�sert av �� og E�Int [
Ekompl relativ til 'delta, hvor 'delta er indirekte spesi�sert ved E�Int .
d
Problemet med at T�hK ikke var oppfylt, løstes i eksempel 53 ved å legge til
ligninger slik at T�hK ble oppfylt. Imidlertid skal vi senere se eksempler der
en slik løsning ikke er tilfredstillende. Vi skal derfor nå behandle reduksjon til
basis-initialsemantikk for tilfellet TsK oppfylt, men T�hK ikke oppfylt.
� T�hK ikke oppfylt. Reduksjon på Gfsg[� � G��:
Anta nå at T�hK ikke er oppfylt. Da gjelder ikke (3.12):
Eksempel 53 (forts.) Betrakt delta-id-utvidelsen Eid 0 av E�Int . Vi har
pred(0)�pred(0) $Eid
0 delta(pred(0)�pred(0))
Men verken pred(0)�pred(0) eller delta(pred(0)�pred(0)) kan omskrives ved E�Int ,
så vi har
pred(0)�pred(0)�6$E�Int
delta(pred(0)�pred(0))
Videre kan disse fakta brukes til å overbevise seg om at
pred(0)�pred(0) 6'�delta(pred(0)�pred(0))
d
Hvis T�hK ikke er oppfyllt, er det altså generelt ikke samsvar mellom
�$�Eid
G��
og '�; ihvertfall ikke i termer som inneholder symboler fra �h. Det er ikke
sikkert dette er så ille. Den semantikken vi her egentlig er interessert i, er jo
restriksjonen av '� ('!) til
'�G� ('!G�)
Vi skal nå vise en restriktert versjon av teorem 3.8 som dekker semantikken vi
er interessert i. Vi skal vise under visse antagelser at
�$�EidGfsg[�
= '�Gfsg[�
93
![Page 102: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/102.jpg)
3. Semantikkgivende syntaktiske funksjoner
Vi skal anta T�K og TsK, men ikke T�hK. Men det er åpenbart at �E ikke kan
være fullstendig �h-ukomplett, sålenge TsK avhenger av symboler i �h.
Eksempel 53 (forts.) Vi har jo for alle gc 2 GInt delta(gc)�$E�Int
g0c for en
g0c 2 GInt og E�Int fra eksempel 44 side 77, og det er lett å se at enhver ut-
ledning hdelta(gc); : : : ; g0ci må ha komponenter med forekomster av symboler fra
�Int. (f.eks. hdelta(succ(pred(0)));#s(succ(pred(0)))�#p(succ(pred(0))); : : : ;0i).
På den annen side forekommer aldri f.eks. pred(0)�pred(0) i en E�Int -utledning
der delta(g) for en eller annen g, er første komponent.d
Gitt TsK, altså, må vi ihvertfall ha såpass <�h-kompletthet> at det abstrakte
program Es fungerer for all riktig input. M.a.o.: Gitt TsK må vi ha for gc 2 G�c
og gh 2 G�� med forekomster av symboler fra �h:
s(gc)�$Esgh ) 9g0c 2 G�c j gh
�$Esg0c (3.15)
Siden vi i en viss forstand har <�h-kompletthet for alle praktiske formål>,
er det nærliggende å se om å bevisstrategien for beviset av lemma 3.9 på side 92
kan brukes under vår overskrift her. Betrakt nemlig en vilkårlig �Eid-utledning
hg; : : : ; g0i, for g; g0 2 Gfsg[�. Anta at
h: : : ; c[gi]; c[s(gi)]; : : :i
er et enkeltsteg i utledningen, der c[gi] !fs(x)=xg c[s(gi)]. I tråd med (3.14) side 92,
ser vi at vi bare må godtgjøre at enhver slik term gi er omskrivbar i �E til en
generatorterm gi. Det kunne tenkes at (3.15) sammen med T�K og TsK, er sterk
nok til å garantere dette. Desverre stemmer dette ikke:
Eksempel 53 (forts.) Vi har
0�$E�Int
0�0
!fdelta(x)=xg 0�delta(0)
�$E�Int
0�delta(succ(pred(0))) !fdelta(x)=xg
0�succ(pred(0)) !fdelta(x)=xg delta(0�succ(pred(0)))
for E�Int fra eksempel 44 side 77. Men termen 0�succ(pred(0))) er ikke omskri-
vbar i E�Int til noen term i GInt.d
Vi må derfor benytte et mer ra�nert resonnement. Vi skal fortsatt ha i sikte å
bruke bevisstrategien for beviset av lemma 3.9.
Betrakt da en vilkårlig �Eid-utledning hg; : : : ; g0i for g; g0 2 Gfsg[�, med en-
keltsteg på formen h: : : ; c[gi]; c[s(gi)]; : : :i, der c[gi] !fs(x)=xg c[s(gi)], og slik at at
gi ikke er omskrivbar i �E til en generatorterm gi. Vi skal vise at utledningen
hg; : : : ; g0i kan transformeres til en �Eid -utledning hg; : : : ; g0i0, der enhver g0i i et
enkeltsteg på formen h: : : ; c[g0i]; c[s(g0i)]; : : :i
0 er omskrivbar i �E til en generator-
term g0i.
For å gjøre ting mer oversiktlig, skal vi begrense situasjonen ved følgende
antagelse:
hROT: Enhver ligning l = r 2 Es er slik at l og r hver har høyst én forekomst
av et symbol fra �h, og dette symbolet er i så fall rot i l hhv. r.
Kriteriet hROT gir en ganske kraftig innsnevring av den generelle situasjon. F.eks.
tilfredstiller ikke E�Int fra eksempel 44 side 77 hROT. Imidlertid skal vi senere se
andre eksempler på indirekte spesi�kasjoner som tilfredstiller dette kriteriet (og
for hvilke denne diskusjonen er interessant, siden de ikke tilfredstiller T�hK).
Disse spesi�kasjoner vil dessuten tilfredstille
94
![Page 103: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/103.jpg)
3.4. Reduksjon til basis-semantikker
�h = fhg: �h inneholder kun én funksjonspro�l.
Vi skal også se at en med E�Int fra eksempel 44 ekvivalent indirekte spesi�kasjon
kan gis som tilfredstiller hROT (og �h = fhg).
Før vi går videre, skal vi danne oss et nytt begrep: Vi skal ha nytte av å
snakke om utledningsforekomster av funksjonssymboler i en utledning. Idéen
er å holde rede på eller merke forekomster av funksjonssymboler gjennom en
utledning på en slik måte som f.eks. å snakke om at en utledningsforekomst f�
av et funskjonssymbol f oppstår i en komponent gi i utledningen for senere å
opphøre i en komponent gi+k. Det er da nødvendig å �nne en måte å identi�sere
entydig utledningsforekomsten f� i komponentene gi+j; i � j � i + k. Dette er
ikke problematisk, og �ere merkingsstrategier er mulige. Hvilken vi for vårt
formål velger er ikke viktig, men vi skal presisere til en viss grad:
Anta en E-utledning U med et enkeltsteg h: : : ; g; g0; : : :i. Anta for et funk-
sjonssymbol f at g0 har �ere forekomster av f enn g. Leser vi U fra venstre mot
høyre, sier vi at utledningsforekomster av f har oppstått i g0. Leser vi U fra
høyre mot venstre, sier vi at utledningsforekomster av f har opphørt i g. Den
symmetriske variant der g har �ere forekomster av f enn g0 er opplagt.
Anta så at regelen l = r 2 E ble brukt ved omskrivingen mellom g og g0.
I tillegg skal vi dersom l har �ere forekomster av f enn r, si at utledningsfo-
rekomster av f har opphørt i g0. Merk at g og g0 i dette tilfellet kan ha like
mange forekomster av f ; det har da oppstått like mange utledningsforekomst-
er av f som det har opphørt i g0. Spesi�kt hvilke utledningsforekomster som
har opphørt og oppstått avhenger av den aktuelle merkingsstrategien. For Es
i forbindelse med hROT er dette entydig: Anta gjp = l� og l = h(t1,: : : ,tn) for
en h 2 �h. Da er g = g[h�(g1,: : : ,gn)]p (for gi = ti�;1 � i � n), for en utled-
ningsforekomst h� av h. Dersom r ikke har noen forekomst av h, følger det da
at utledningsforekomsten h� i g opphører i g0.
I motsatt fall; altså hvis r har en forekomst av h, har r ifølge hROT sin ene
forekomst av h som rot. En naturlig merkingsstrategi ville innebære at utled-
ningsforekomsten hy i g0 = g[hy(g01,: : : ,g0n)]p da sees å være den samme utled-
ningsforekomst som h�. Begrepet `samme utledningsforekomst' kan de�neres på
mange måter avhengig av den aktuelle merkingsstrategi. Detaljer er ikke viktige
for oss her.
Imidlertid har begrepet `samme utledningsforekomst' for to forekomster av
et funksjonssymbol i to nabokomponenter i en utledning, en opplagt transitiv
forlengelse. Vi skal i lys av dette si at en utledningsforekomst h� i en term g er
opphørbar ved en E0 � E, dersom det �nnes en E0-utledning hg; : : : ; g0i for en
g0 slik at h� opphører i g0. Dersom en utledningsforekomst i en term g ikke er
opphørbar (ved E0), sier vi at forekomsten er en (E0-)kritisk forekomst i g.
*
Vi har nå som overordnet mål å vise:
Teorem 3.10 Anta TsK, T�K og KREP1. Anta i tillegg EsVARBEVAR, EdVARBE-
VAR og DISJ, samt hROT. Da har vi
�$�EidGfsg[�
= '�Gfsg[�
95
![Page 104: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/104.jpg)
3. Semantikkgivende syntaktiske funksjoner
Nå gir lemma 3.7 umiddelbart
'�Gfsg[��
�$�EidGfsg[�
Det er den andre inklusjonen vi skal arbeide med. Vi viser først at den ovenfor-
nevnte transformasjon av utledninger er mulig:
Lemma 3.11 Anta TsK og T�K. Anta i tillegg EsVARBEVAR, EdVARBEVAR og
DISJ, samt hROT. En vilkårlig �Eid-utledning hg; : : : ; g0i for g; g0 2 Gfsg[�, kan
transformeres til en �Eid-utledning hg; : : : ; g0i0, der alle gi i enkeltsteg på formen
h: : : ; c[gi]; c[s(gi)]; : : :i0
og h: : : ; c[s(gi)]; c[gi]; : : :i0
der c[gi] !fs(x)=xg c[s(gi)], er omskrivbare i�E til en generatorterm gi.
Vi trenger følgende lemma:
Lemma 3.12 Anta EsVARBEVAR, EdVARBEVAR og DISJ. Anta også hROT.
Anta
g = c[h(g1, : : : ,gn)] $fl=rg c0[h(g01, : : : ,g
0n)] = g0
ved en ligning l = r 2 �Eid, slik at de viste forekomstene av h i g og g0 er samme
utledningsforekomst h�. Da har vi
enten:
1.
h�(g1, : : : ,gn) $fl=rg h�(g01, : : : ,g
0n) og c = c0
eller:
2.
h�(g1, : : : ,gn) = h�(g01, : : : ,g0n) og c[t] $fl=rg c
0[t]
for en vilkårlig term t.
M.a.o.: Den omskriving som skjer mellom g og g0, skjer enten lokalt i subtermen
h�(g1, : : : ,gn) og uten kraft av at h�(g1, : : : ,gn) er i konteksten c, eller omskri-
vingen skjer i konteksten c og uten kraft av at h�(g1, : : : ,gn) er en subterm i g;
eller kan erstattes ved en omskrivning ved l = r som er slik.
Bevis: Det �nnes altså en ligning l = r (r = l) 2 �E slik at gjp = l� for en posi-
sjon p i g og en substitusjon �. La q være posisjonen slik at gjq = h�(g1, : : : ,gn).
Anta først at q er en disjunkt posisjon fra p; dvs. gjp og gjq er ikke subtermer
av hverandre. Da er det opplagt at omskrivingen ikke berører h�(g1, : : : ,gn) og
at 2 gjelder.
Anta så at gjp er en ekte subterm av gjq. Da skjer omskrivingen i en av
g1; : : : ; gn. Dvs. gijp0 = l� for en 1 � i � n og en posisjon p0, og g0i = gi[r�]p0 .
Det er da opplagt at 1 gjelder.
Anta at gjq er en ekte subterm av gjp. Vi har to tilfeller: l har forekomster
av h, og l har ikke forekomster av h. Anta først at l har forekomster av h. Ved
DISJ må l = r 2 Es. Ved hROT har l kun én forekomst av h, og den er rot i l.
Siden gjq er en ekte subterm av gjp, må derfor l = cl[x] for en variabel x og
kontekst cl, slik at x� = ch[h(g1; : : : ; gn)], for en kontekst ch. Altså
l� = c0l[ch[h(g1; : : : ; gn)]] (3.16)
der c0l = cl�. Ved EsVARBEVAR må da r = cr[x] for en kontekst cr. Da er altså
r� = c0r[ch[h(g1; : : : ; gn)]]
96
![Page 105: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/105.jpg)
3.4. Reduksjon til basis-semantikker
for c0r = cr�. Vi har altså at h�(g1, : : : ,gn) = h�(g01, : : : ,g
0n). Siden h(g1; : : : ; gn)
er substituert inn av �, er det videre innlysende at vi for en eller annen substi-
tusjon � , har
l� = c0l[ch[t]] og c0r[ch[t]] = r�
og dermed c[t] $fl=rg c0[t] for en vilkårlig term t. Altså er 2 oppfylt.
Anta så at l ikke har forekomster av h. Men da må l = cl[x] for en variabel
x og kontekst cl, slik at x� = ch[h(g1; : : : ; gn)], for en kontekst ch. Altså har vi
(3.16). Vi kan så etablere at 2 er oppfylt, ved et analogt resonnement som over.
Men nå er ikke nødvendigvis l = r 2 Es, så vi må argumentere med Ed og Ed
-
VARBEVAR i stedet for Es og EsVARBEVAR, eller med observasjonen at ligningen
s(x) = x er variabelbevarende.
Anta til slutt at p = q. Vi har pga. DISJ og hROT to muligheter: Enten er
l = h(t1, : : : ,tn), eller l = x for en variabel x. For sistnevnte kan 2 etableres, ved
resonnementet over for ch og cl tomme.
Dersom nå l = h(t1, : : : ,tn), er da l = r 2 Es ved DISJ. Dersom r ikke
har noen forekomst av h, opphører h� i g0. Dette er mot antagelse, så r må
ha en forekomst av h. Ved hROT må videre r = h(t01, : : : ,t0n). Følgelig har vi
h�(g1, : : : ,gn) $fl=rg h�(g01, : : : ,g
0n) og c = c0, så 1 er oppfylt.
2
Vi kan nå vise:
Lemma 3.13 Anta EsVARBEVAR, EdVARBEVAR og DISJ. Anta også hROT.
Anta en vilkårlig �Eid -utledning
U = hc[h�(g1, : : : ,gn)]; : : : ; c0[h�(g01, : : : ,g
0n)]i
for en utledningsforekomst h� av h. La E(U) � �Eid være mengden av ligninger
brukt ved en omskriving representert av U .
Da har vi �Eid -utledninger
U1 = hh�(g1, : : : ,gn); : : : ; h
�(g01, : : : ,g
0n)i
og
U2 = hc[t]; : : : ; c0[t]i
for en vilkårlig t, på en slik måte at U1 og U2 representerer omskrivinger hvor
nøyaktig ligninger fra E(U) er brukt, og slik at lenU1 + lenU2 = lenU. Videre har
samtlige komponenter i U1 h� som rot.
Bevis: Induksjon på lengden n av U .
n = 1: Trivielt.
n = k+1;k � 1: Da har vi hc[h�(g1, : : : ,gn)]; : : : ; gk; c0[h�(g01, : : : ,g
0n)]i. Siden
de to viste forekomster av h er samme utledningsforekomst, må (også) gk =
ck[h�(g1k, : : : ,gnk)].
La E(Uk) være mengden av ligninger brukt ved en omskriving representert
av delutledningen Uk = hc[h�(g1, : : : ,gn)]; : : : ; gki. Induksjonshypotesen gir del-
utledninger
Uk1 = hh�(g1, : : : ,gn); : : : ; h
�(g1k, : : : ,gnk)i
og
Uk2 = hc[t]; : : : ; ck[t]i
for en vilkårlig t, slik at Uk1 og Uk2 representerer omskrivinger hvor nøyak-
tig ligninger fra E(Uk) er brukt, og slik at lenUk1 + lenUk2 = lenUk . Samtlige
komponenter i Uk1 har dessuten h� som rot.
97
![Page 106: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/106.jpg)
3. Semantikkgivende syntaktiske funksjoner
Betrakt nå enkeltsteget
h: : : ; ck[h�(g1k, : : : ,gnk)]; c
0[h�(g01, : : : ,g0n)]i
La l = r være ligningen brukt i omskrivingen representert av U , slik at
ck[h�(g1k, : : : ,gnk)] $fl=rg c
0[h�(g01, : : : ,g0n)]
Ved lemma 3.12 har vi nå: Enten
h�(g1k, : : : ,gnk) $fl=rg h�(g01, : : : ,g
0n) og ck = c0
Da har vi umiddelbart ved induksjonshypotesen og transitivitet en utledning
U1 = hh�(g1, : : : ,gn); : : : ; h
�(g01, : : : ,g
0n)i
med lengde lenUk1 +1, og slik at hver komponent i U1 har h� som rot.
Videre har vi umiddelbart en utledning
U2 = hc[t]; : : : ; c0[t]i
med lengde lenUk2 , for en vilkårlig t, ved induksjonshypotesen, og siden ck = c0.
Vi har ved induksjonshypotesen nå ialt kun brukt E(Uk)[fl = rg = E(U).
Vi har dessuten lenU1 + lenU2 = n = lenU og lemmaet følger.
Eller så gir lemma 3.12 at vi har
h�(g1k, : : : ,gnk) = h�(g01, : : : ,g0n) og ck[t] $fl=rg c
0[t]
for en vilkårlig term t. Umiddelbart har vi da ved induksjonshypotesen
U1 = hh�(g1, : : : ,gn); : : : ; h
�(g01, : : : ,g
0n)i
slik at lenU1 = lenUk1 . Ved induksjonshypotesen har vi trivielt at hver kompo-
nent i U1 har h� som rot.
Videre gir induksjonshypotesen og transitivitet direkte en utledning
U2 = hc[t]; : : : ; c0[t]i
med lengde lenUk2 + 1. Igjen har vi ved induksjonshypotesen nå ialt kun brukt
E(Uk) [ fl = rg = E(U), og lenU1 + lenU2 = n = lenU , så lemmaet følger.
2
Vi har nå kommet dithen at vi kan presentere hva som skal være et transfor-
masjons-steg for lemma 3.11. Betrakt en vilkårlig �Eid-utledning U = hg; : : : ; g0i
for g; g0 2 Gfsg[�. La n være lengden av U . Anta det �nnes et enkeltsteg
h: : : ; c[gi]; c[s(gi)]; : : :i
i U , der c[gi] !fs(x)=xg c[s(gi)], og slik at gi = cgi [h�(g1, : : : ,gn)], der utledningsfo-
rekomsten h� av et symbol h 2 �h ikke er opphørbar ved �E; altså der h� er en�E-kritisk forekomst i c[gi].
Siden siste komponent g0 i U er i Gfsg[� og altså ikke har forekomster av
noen h 2 �h, kan vi imidlertid garantere at utledningsforekomsten h� vil opphøre
før eller siden i en komponent gi+k;1 � k � n� i av U .
Det er åpenbart at en utledningsforekomst av en h 2 �h ikke kan opp-
høre ved regelen s(x)=x. Dette innebærer at det �nnes en komponent gl =
c�[h�(g�1, : : : ,g�n)] for en i < l < i+ k, der h� kan opphøres ved omskriving i �E.
98
![Page 107: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/107.jpg)
3.4. Reduksjon til basis-semantikker
Kjernen i transformasjonen er nå denne: Vi har altså i U delutledningen Uh� :
h: : : ; c[cgi [h�(g1, : : : ,gn)]];
c[s(cgi [h�(g1, : : : ,gn)])]; : : : ; c
�[h�(g�1, : : : ,g�n)]; : : :i
Lemma 3.13 sier da at vi har delutledninger
hh�(g1, : : : ,gn); : : : ; h�(g�1, : : : ,g
�n)i
der hver komponent har h� som rot, og
hc[s(cgi [h�(g�1, : : : ,g
�n)])]; : : : ; c
�[h�(g�1, : : : ,g�n)]i
Fra disse delutledninger kan vi så umiddelbart lage delutledningen U 0h�
h: : : ; c[cgi [h�(g1, : : : ,gn)]]; : : : ; c[cgi [h
�(g�1, : : : ,g
�n)]];
c[s(cgi [h�(g�1, : : : ,g
�n)])]; : : : ; c
�[h�(g�1, : : : ,g�n)]; : : :i
Vi kan altså i U bytte ut delutledningen Uh� med delutledningen U 0h� . La
E(Uh�) � �Eid være mengden av ligninger brukt ved en omskriving represen-
tert av Uh� . Lemma 3.13 gir da dessuten at U 0h� representerer en omskriving
hvor nøyaktig ligninger fra E(Uh�) er brukt, samt at lengdene til Uh� og U0h� er
identiske. Argumentasjonen er analog for det symmetriske tilfellet
h: : : ; c[s(gi)]; c[gi]; : : :i
Vi leser da U mot venstre istedenfor. En slik delutlednings-substitusjon utgjør
ett transformasjonssteg.
Vi skal nå vise at en prosess bestående av slike transformasjonssteg før eller
siden vil eliminere samtlige kritiske forekomster av symboler h 2 �h. Prosessen
terminerer når samtlige slike kritiske forekomster er eliminert.
Observasjon 3.14 Anta en vilkårlig E-utledning hg; : : : ; g0i av lengde n, for en
endelig ligningsmengde E. En vilkårlig komponent i utledningen har termdybde
begrenset av
Kn+ d0
hvor K er en konstant avhengig av E og d0 er termdybden til den av g og g0
med minst termdybde.
Betrakt så en vilkårlig �Eid-utledning Uj = hg; : : : ; g0i for g; g0 2 Gfsg[�. La n
være lengden til Uj . La E(Uj) � �Eid være mengden av ligninger brukt ved en
omskriving representert av Uj. Siden Uj er endelig, er E(Uj) endelig.
La maxd være den øvre grense for komponenters termdybde i en vilkårlig
E(Uj)-utledning av lengde n. (Ved observasjon 3.14 �nnes maxd.)
La så Uj+1 være en �Eid -utledning framkommet ved ett transformasjonssteg
som over. Merk at Uj+1 representerer en omskriving hvor nøyaktig ligninger fra
E(Uj) er brukt, og merk at lengden til Uj+1 er n.
Ved observasjon 3.14 er damaxd en øvre grense for komponenters termdybde
i både Uj og Uj+1. (Merk at ved å anta med rimelighet at �E er endelig, kunne vi
her ha resonnert ved hjelp av en maksdybde utifra �E istedenfor utifra E(Uj).)
Betrakt så maxd-tuppelet Dn1j ; : : : ; nmaxdj
E
99
![Page 108: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/108.jpg)
3. Semantikkgivende syntaktiske funksjoner
La nå ndj være det totale antall kritiske forekomster av symboler fra �h som
forekommer på dybde d i komponenter c[gi] av Uj, der
c[gi] !fs(x)=xg c[s(gi)]
Vi skal vise at Dn1j+1; : : : ; nmaxd j+1
E�lex
Dn1j ; : : : ; nmaxdj
E(3.17)
der �lex er en leksikogra�sk ordning på Nmaxd , som følger:
hn1; : : : ; nmaxdi �lex
n01; : : : ; n
0maxd
�m
n1 < n01eller
n1 = n01; : : : ; ni = n0i; 1 � i < maxd ) ni+1 < n0i+1
Det er velkjent at denne ordningen er en velfundert relasjon.
La oss betrakte transformasjonen over av delutledningen Uh� til delutlednin-
gen U 0h� . Vi antar at Uh� er en delutledning i en Uj og at U
0h� er en delutledning
i Uj+1. Merk at Uj og Uj+1 er identiske, utenom delutledningene Uh� og U0h� .
Anta h� forekommer på dybde d i c[gi]. Det er da klart at
ndj+1 = ndj � 1
Da vil (3.17) holde, dersom
nd0j+1 � nd0 j (3.18)
for enhver d0 < d. Vi godtgjør nå (3.18) ved å inspisere delen av Uj+1 som er
forskjellig fra Uj.
Anta at det er kritiske forekomster av symboler h 2 �h i komponenter i
delutledningen
h: : : ; c[cgi [h�(g1, : : : ,gn)]]; : : : ; c[cgi [h
�(g�1, : : : ,g
�n)]]; : : :i
av U 0h� . Disse kritiske forekomster har korresponderende kritiske forekomster
i Uh� . Disse kan i U 0h� ha fått mindre dybde, siden den viste anvendelsen av
s(x)=x er <forsinket>. Men ved at delutledningen over er konstruert ved delut-
ledningen
hh�(g1, : : : ,gn); : : : ; h�(g�1, : : : ,g
�n)i
der hver komponent har h� som toppsymbol, har vi at de nevnte kritiske fo-
rekomster må be�nne seg i ekte subtermer av disse komponentene. Følgelig vil
disse kritiske forekomster ha dybde større enn d.
Betrakt så eventuelle kritiske forekomster i g�1; : : : ; g�n introdusert ved steget
hc[cgi [h�(g�1, : : : ,g
�n)]]; c[s(cgi [h
�(g�1, : : : ,g
�n)])]i
i U 0h� . Disse har også dybde større enn d.
Anta til slutt at det er kritiske forekomster av symboler h 2 �h i kompo-
nenter i delutledningen
hc[s(cgi [h�(g�1, : : : ,g
�n)])]; : : : ; c
�[h�(g�1, : : : ,g�n)]i
Her foregår all omskriving alle andre steder enn i h�(g�1, : : : ,g�n). Enhver krit-
isk forekomst har da en korresponderende kritisk forekomst på samme dybde i
delutledningen Uh� . Altså har vi (3.18).
100
![Page 109: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/109.jpg)
3.4. Reduksjon til basis-semantikker
Vi har dermed vist (3.17). Det er da på det rene at en slik transformasjons-
prosess vil terminere med en utledning Um slik at
n1m = � � � = nmaxdm = 0
Vi har nå vist at vi kan eliminere alle kritiske forekomster av symboler
h 2 �h. For å etablere lemma 3.11 på side 96, gjenstår det bare å vise følgende
forbindelse:
Lemma 3.15 Anta TsK og T�K. Anta det �nnes et enkeltsteg
h: : : ; c[gi]; c[s(gi)]; : : :i eller h: : : ; c[s(gi)]; c[gi]; : : :i
i en �E-utledning U , der c[gi] !fs(x)=xg c[s(gi)], og slik at gi ikke er omskrivbar i�E
til en generatorterm gi. Da �nnes en kritisk forekomst av en h 2 �h i c[gi].
Bevis: Siden vi antar TsK og T�K, må det �nnes en forekomst av en h 2 �h i
gi. Spesi�kt må gi = cgi [h(g1, : : : ,gn)] for en kontekst cgi , slik at h(g1, : : : ,gn)
ikke er omskrivbar i �E til en generatorterm h(g1, : : : ,gn). Det må videre �nnes
en (blant �ere) dypeste slik h; dvs. vi kan anta at g1; : : : ; gn alle er omskrivbare
i �E til generatortermer g1; : : : ; gn. Men da er den viste utledningsforekomsten
av h ikke opphørbar ved �E. (Merk at den viste utledningsforekomsten av h godt
kunne være opphørbar ved �E, dersom vi ikke betrakter en dypeste h.)
2
Med lemma 3.11 således etablert, kan vi gi oss i kast med beviset av teorem 3.10
på side 95. Teorem 3.10 følger ved neste lemma som følger strategien i beviset
av lemma 3.9 side 92:
Lemma 3.16 Anta TsK, T�K og KREP1. Anta i tillegg EsVARBEVAR, EdVARBE-
VAR og DISJ, samt hROT. Da har vi
�$�EidG�[fsg
� '�G�[fsg
Bevis: La hg; : : : ; g0i være en vilkårlig �E-utledning i G�� for g; g0 2 Gfsg[�. Ved
lemma 3.11 �nnes en �Eid-utledning hg; : : : ; g0i0, der alle g0i i enkeltsteg
h: : : ; c[g0i]; c[s(g0i)]; : : :i
0og h: : : ; c[s(gi)]; c[gi]; : : :i
0
der c[gi] !fs(x)=xg c[s(gi)], er omskrivbare i�E til en generatorterm g0i.
Vi induserer nå over lengden n til hg; : : : ; g0i0.
n = 1: Trivielt har vi g '� g.
n = k+1;k � 1: Da har vi hg; : : : ; gk; g0i0. Induksjonshypotesen gir g '� gk.
Anta gk $�E g0. Induksjonssteget følger da trivielt. Anta gk !fs(x)=xg g0. Da er gk =
c[g0k] og g0 = c[s(g0k)], eller gk = c[s(g0k)] og g
0 = c[g0k]. For begge tilfeller har vi
nå ved (3.13) på side 92:
g0k�$�Eg0k '
s �g0k
�$�Es(g0k)
�$�Es(g0k)
og induksjonsteget følger ved monotonitet mhp. kontekstapplikasjon og transi-
tivitet (og evt. symmetri).
2
Dette konkluderer vår behandling av reduksjon til basis-initialsemantikk for
tilfellet T�hK ikke oppfylt, men likevel TsK oppfylt.
101
![Page 110: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/110.jpg)
3. Semantikkgivende syntaktiske funksjoner
� TsK ikke oppfylt. Reduksjon på G� � G��:
Hva nå hvis TsK ikke er tilfredsstilt? Vi viser at (3.12) på side 91 da umiddelbart
kan gjendrives ved å �nne et eksempel på at
g $�Eid
s(g) men g 6'� s(g)
Eksempel 54 Betrakt E�Int fra eksempel 44 side 77. La her
Edelta = E�Int n fx�0 = x;0�succ(x) = pred(0�x)g
Edelta er altså E�Int gjort fullstendig fdeltag-ukomplett mhp. GInt. Vi påstår at
Edelta er indirekte GInt-kongruent, så den indirekte semantikk 'delta �nnes. La '�
betegne initialsemantikken relativ til 'delta. Vi har
succ(pred(0)) $Eiddelta
delta(succ(pred(0)))
For å se at
succ(pred(0)) 6'�delta(succ(pred(0)))
observer først at for alle gc 2 GInt, må enhver g slik at delta(gc)�$Edelta
g, ha
delta eller � som rot. Dette gjelder også om generatortermer byttes med andre
generatortermer underveis i utledningen; dvs. at dette gjelder for alle gc 2 GIntog g slik at delta(gc) '
� g.
Observer deretter atEdelta er fullstendig fdelta; �g-ukomplett mhp. GInt. (Man
blir altså ikke kvitt funksjonssymbolet delta.)d
Hvis TsK ikke er oppfyllt er det altså generelt ikke samsvar mellom�$�Eid
G��og
'�; ihvertfall ikke i termer som inneholder det spesi�serende symbol s. Igjen er
dette ikke så ille: Vi er interessert i restriksjonen av '� til
'�G�
Vi skal igjen vise en restriktert versjon av teorem 3.8 som dekker semantikken
vi er interessert i. Vi antar ikke TsK og heller ikke T�hK. Vi antar dog T�K. La
oss først betrakte situasjonen for �h = ;.
- Tilfellet �h = ;
Vi trenger mer notasjon:
� La g\s stå for termen identisk med g, men med alle forekomster av det
spesi�serende symbol s fjernet.
Vi betrakter følgende antagelse:
KREP2: For alle g; g0 2 G�c[fsg:
g�$Esg0 ) s(g\s)
�$Ess(g0\s)
Antagelsen KREP2 er som KREP1 en manifestasjon av at den syntaktiske funksjon-
en somEs er en algebraisk beskrivelse av, er en kanonisk-representant funksjon.
Teorem 3.17 Under antagelsene T�K, samt KREP2, DISJ og EsVARBEVAR har
vi for �h = ;
'�G� =�$�EidG�
102
![Page 111: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/111.jpg)
3.4. Reduksjon til basis-semantikker
Inklusjonen '�G� ��$�Eid
G� følger fra lemma 3.7, og igjen er den andre inklusjonen
mer vrien. Teorem 3.17 følger da fra lemma 3.7 og følgende lemma:
Lemma 3.18 Anta T�K, KREP2, DISJ og EsVARBEVAR. Da har vi dersom �h =
;�$�Eid
G� � '�G�
For å vise lemma 3.18, viser vi:
Lemma 3.19 Anta T�K, KREP2, DISJ og EsVARBEVAR. Da har vi dersom �h =
;
g�$�Eg0 ) g\s '
� g0\s
for alle g; g0 2 G��
Bevis: Anta g�$�Eg0 for vilkårlige g; g0 2 G��.
Anta g$Edg0. Da har vi gjp = v� og g0 = g[h�]p, for en v=h eller h=v 2 Ed,
posisjon p i g og substitusjon � 2 SbstG�� .
For en substitusjon � , la nå �\s betegne substitusjonen slik at for alle x 2 V :
x�\s = (x�)\s
(husk at en substitusjon � med domene bæremengden til en term-algebra T�(V),
er entydig bestemt av bildet �(V)). Merk at vi for en term t har
t�\s = (t�)\s , t\s = t (3.19)
Nå er altså (gjp)\s = (v�)\s. Ved DISJ �nnes ingen forekomster av s i v;
m.a.o.: v\s = v, så ved (3.19) får vi (gjp)\s = v�\s. Det er videre innlysende at
det �nnes en posisjon q i g\s slik at g\sjq = (gjp)\s. Da har vi altså
g\sjq = v�\s (3.20)
Betrakt så termen g\s[h�\s]q. Ved DISJ �nnes ingen forekomster av s i h;
m.a.o.: h\s = h, så ved (3.19) får vi h�\s = (h�)\s, og dermed g\s[h�\s]q =
g\s[(h�)\s]q . Det er opplagt at g\s[(h�)\s]q = (g[(h�)\s]p)\s, som igjen er ident-
isk med (g[h�]p)\s = g0\s. Altså har vi
g\s[(h�)\s]q = g0\s (3.21)
Tilsammen får vi ved (3.21) og (3.20) at g\s�$Ed g
0\s, og altså g\s '
� g0\s.
Anta så at g$Es g0. Da har vi gjp = v� og g0 = g[h�]p, for en v=h (h=v) 2 Es,
posisjon p i g og substitusjon � 2 SbstG�� . Vi deler opp i de to tilfellene:
1. gjp 2 G�c[fsg
2. gjp 2 G�� n G�c[fsg
1) Anta først gjp = v� 2 G�c[fsg. Ved DISJ og siden �h = ;, må også h� 2
G�c[fsg. Vi har jo v��$Esh�, så KREP2 gir under INDKONG (v�)\s '
s (h�)\s. Nå
er g\s = c[(v�)\s] og c[(h�)\s] = g0\s, for en c 2 G�c[�d , og vi får
g\s = c[(v�)\s] '� c[(h�)\s] = g0\s
2) Anta så gjp 2 G�� n G�c[fsg. Da er
gjp = v� = c[gf1 ; : : : ; gfm ]
103
![Page 112: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/112.jpg)
3. Semantikkgivende syntaktiske funksjoner
for en c 2 G�c[fsg og gf1 ; : : : ; gfn 2 G��, slik at et funksjonssymbol fi 2 �d
forekommer i gfi for alle 1 � i � m. Husk at �h = ;. Vi presiserer her c 2
G�c[fsg; vi ser altså på termer gfi på tilstrekkelig liten dybde i v�. Vi skal vise
at
h� = c0[gf1 ; : : : ; gfm ]
også for en c0 2 G�c[fsg. Ved DISJ �nnes ingen forekomster av fi i v; 1 � i � m.
Derfor må v = cv[x1; : : : ; xm] for variabler x1; : : : ; xm og kontekst cv, slik at for
1 � i � m, xi� = cfi [gfi ], for en kontekst cfi . Merk at hver cfi 2 G�c[fsg, siden
c = cv[cfi ; : : : ; cfm ], og c 2 G�c[fsg.
Ved EsVARBEVAR er h = ch[x1; : : : ; xm] for en kontekst ch. Dermed er h� =
c0h[cf1 [gf1 ]; : : : ; cfm [gfm ]] for c0h = ch�. Ved DISJ er ch 2 G�c[fsg. Følgelig er
h� = c0[gf1 ; : : : ; gfm ]
for en c0 2 G�c[fsg.
La nå gfi 2 G�c være termen slik at under T�K, gfi\s�$�Egfi , for 1 � i � m.
Betrakt substitusjonen �0 2 HomG�c[fsg
T��(V)slik at xi�
0 = cfi [gfi ]; 1 � i � m (og
identitet for andre variable). Vi har
v�0 = cv[cf1 [gf1 ]; : : : ; cfn [gfn ]] = c[gf1 ; : : : ; gfn ]
og
h�0 = ch[cf1 [gf1 ]; : : : ; cfn [gfn ]] = c0[gf1 ; : : : ; gfn ]
Videre har vi selvfølgelig v�0�$Esh�0. Ved at c; c0 2 G�c[fsg, får vi da ved KREP2
(v�0)\s 's (h�0)\s
Ialt får vi da
(v�)\s = c\s[gf1\s; : : : ; gfm\s]
�$�Ec\s[gf1 ; : : : ; gfn ] = (v�0)\s '
s (h�0)\s = c0\s[gf1 ; : : : ; gfn ]�$�E
c0\s[gf1\s; : : : ; gfm\s] = (h�)\s
Ved kongruens følger da at
g\s = g\s[(v�)\s]q '� g\s[(h�)\s]q = g0\s
2
Det er nå trivielt å vise:
Lemma 3.20 Anta T�K, KREP2, DISJ og EsVARBEVAR. Da har vi dersom �h =
;
g�$�Eid
g0 ) g\s '� g0\s
for alle g; g0 2 G��
Bevis: Induksjon over lengden n til en vilkårlig �Eid-utledning hg; : : : ; g0i i G��.
n = 1: Trivielt har vi g\s '� g\s.
n = k + 1;k � 1: Da har vi en �Eid -utledning hg; : : : ; gk; g0i. Induksjonshy-
potesen gir g\s '� gk\s. Anta gk $�E g0. Ved lemma 3.19 har vi gk\s '
� g0\s, og
induksjonssteget følger ved transistivitet. Anta gk !fs(x)=xg g0. Da er gk\s = g0\s, så
induksjonssteget følger trivielt.
2
104
![Page 113: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/113.jpg)
3.4. Reduksjon til basis-semantikker
Lemma 3.18 følger så som et spesialtilfelle av lemma 3.20, og teorem 3.17 følger
så ved lemmata 3.7 og 3.18.
�
Flere av antagelsene vi gjør i dette avsnittet er lette å veri�sere og er na-
turlig oppfylt ved konstruktiv algebraisk spesi�kasjon av funksjoner. Antagels-
ene KREP1 og KREP2 kan imidlertid begge innebære bevisbyrder; som dog ikke
nødvendigvis er spesielt vanskelige, men gjerne litt langtekkelige. Vi viser et
eksempel hvor en mindre langtekkelig godtgjørelse av KREP2 inngår.
Eksempel 55 BetraktEsynt fra eksempel 47 side 80. La her �E væreEsynt i union
med f.eks. følgende Ed:
Ed =
�#s(0) = 0; x+0 = x;
#s(succ(x)) = succ(0)+#s(x); x+succ(y) = succ(x+y)
�
Vi lar �� være mengden av alle (pro�ler til) funskjonssymboler forekommende i�E.
Betrakt initialsemantikken '� relativ til den indirekte semantikk spesi�sert
av Esynt bestemt av �� og �E. Vi ønsker å vise at '�, eller en fornuftig restriksjon
av denne, kan reduseres til en basis-initialsemantikk. Vi lar
�c = f0; succ;predg
og
�d = � n (�c [ fsyntg)
Det er ingen hjelpe-funksjonssymboler til synt, så vår �h = ;. Siden �E ikke
tilfredstiller TsK skal vi appellere til teorem 3.17. Vi <ser lett at> �E tilfredstiller
T�K, DISJ ogEsVARBEVAR. Vi skal derimot godtgjøre atEsynt tilfredstiller KREP2:
Godtgjørelse: Siden �E tilfredstiller DISJ og�h = ; samt EsVARBEVAR, vil enhver
Esynt-utledning hg; : : : ; g0i i G�� hvor g; g0 2 G�c[fsyntg, være en Esynt-utledning i
G�c[fsyntg. Vi kan derfor se helt bort ifra Ed og kan enkelt vise at Esynt tilfreds-
tiller KREP2 ved induksjon på lengden av en slik utledning. Induksjonsbasisen er
triviell. Induksjonssteget består i å vurdere hver regel i Esynt.
Så la gk; g0 2 G�c[fsyntg slik at gk
�$Esynt
g0. Anta regelen
synt(succ(x)) = synt(succ(synt(x)))
er brukt. Da har vi gk = c[synt(succ(g00))] og g0 = c[synt(succ(synt(g00)))] (eller
analogt omvendt). Men da er gk\synt = g0\synt, så trivielt har vi
synt(gk\synt)�$Esynt
synt(g0\synt)
Tilfellet for regelen
synt(pred(x)) = synt(pred(synt(x)))
er analogt. Anta regelen
synt(succ(synt(pred(x)))) = synt(x)
er brukt. Da har vi gk = c[synt(succ(synt(pred(g00))))] og g0 = c[synt(g00)] (eller
analogt omvendt), og vi har
gk\synt = c\synt[succ(pred(g00))] og g0\synt = c\synt[g
00]
105
![Page 114: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/114.jpg)
3. Semantikkgivende syntaktiske funksjoner
Vi fortsetter nå ved induksjon på posisjonen p i c\synt hvori subtermene
succ(pred(g00)) og g00 forekommer.
p = ": Vi må vise synt(succ(pred(g00)))�$Esynt
synt(g00). Det er greit; vi har:
synt(succ(pred(g00)))�$Esynt
synt(succ(synt(pred(g00))))�$Esynt
synt(g00)
p = i:q;1 � i: Siden gk; g0 2 G�c[fsyntg, og alle ikke-konstanter i G�c[fsyntg
har aritet 1, er gk\synt = f(c0[succ(pred(g00))]q) og g0\synt = f(c0[g00]q), for en
f 2 �c [ fsyntg. Vi må vise synt(f(c0[succ(pred(g00))]q))�$Esynt
synt(f(c0[g00]q)).
Dersom f = synt har vi ved induksjonshypotesen direkte at
f(c0[succ(pred(g00))]q)�$Esynt
f(c0[g00]q)
så induksjonssteget følger trivielt ved monotonitet mhp. kontekstapplikasjon.
For tilfellet f = succ har vi
synt(succ(c0[succ(pred(g00))]q))�$Esynt
synt(succ(synt(c0[succ(pred(g00))]q)))
og
synt(succ(c0[g00]q))�$Esynt
synt(succ(synt(c0[g00]q)))
Induksjonshypotesen gir da synt(c0[succ(pred(g00))]q)�$Esynt
synt(c0[g00]q), og induk-
sjonssteget følger ved monotonitet mhp. kontekstapplikasjon. Tilfellet f = pred
er analogt. Dette avslutter p-induksjonen.
Situasjonen for regelen
synt(pred(synt(succ(x)))) = synt(x)
er analog med situasjonen for regelen synt(succ(synt(pred(x)))) = synt(x).
3
Dermed har vi ved teorem 3.17 at
�$�Eid
G�c[�d
= '�G�c[�d
d
Merk at dersom vi vet at Es er en algebraisk spesi�kasjon av en kanonisk-repre-
sentant funksjon, så vet vi også at KREP1 og KREP2 er oppfylt. Da vet vi dessuten
at INDKONG er oppfylt. Vi diskuterer veri�kasjon av algebraiske spesi�kasjoner
av semantikkgivende syntaktiske funksjoner i avsnitt 3.9.
- Tilfellet �h 6= ;
Vi ser nå avslutningsvis i dette avsnittet kort på tilfellet �h 6= ;. I tråd med
at TsK ikke antas å holde, må vi rimeligvis anta at �E ikke nødvendigvis er til-
strekkelig �h-komplett mhp. G�c . I eksempel 54 side 102 viste vi at (3.12) side
91 ikke generelt gjelder for termer i G�c[fsg. Ligningsmengden Edelta i eksempel
54, er imidlertid også et eksempel på at (3.12) ikke gjelder generelt for term-
er i G�c[�h . Ved en videreføring av argumentasjonen for at succ(pred(0)) 6'�
delta(succ(pred(0))), kan vi vise at
succ(pred(0)) 6'�#s(succ(pred(0)))�#p(succ(pred(0)))
til tross for at
succ(pred(0))�$Eiddelta
#s(succ(pred(0)))�#p(succ(pred(0)))
Igjen er dette ikke så farlig, siden vi igjen primært er opptatt av restriksjonen
'�G� . Vi kunne være fristet til å fremføre følgende påstand:
106
![Page 115: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/115.jpg)
3.5. Inkonsistens i tilknytning til indirekte algebraisk spesi�kasjon
Påstand 3.21 Under visse interessante betingelser, men uten å anta TsK eller
�h = ; eller T�hK, gjelder
'�G� =�$�EidG�
(3.22)
Imidlertid skal vi senere i forbindelse med konsistens, se eksempler der
� �h 6= ;
� �E er fullstendig fsg [�h-ukomplett mhp. G�c
og der (3.22) ikke holder.
* * *
I dette avsnittet har vi vist at semantikk relativ til indirekte semantikk under
forskjellige rimelige antagelser, kan reduseres til basis-initialsemantikk. Dette
har vi gjort ved å betrakte id-utvidelser av indirekte spesi�kasjoner.
Vi har sett at lettelser av antagelsene naturlig nok resulterer i innsnevringer
av domenet reduksjonen kan foretas på. De reduksjonene vi har vist, er likevel
alle på domener som inkluderer termuniverset som i utgangspunktet skal gis
semantikk.
Videre beskriver de antagelser vi har gjort, interessante tilfeller som vi har
sett, eller skal se eksempler på i den videre diskusjon.
Vi nevnte i begynnelsen av dette avsnittet at restriksjonene '�G� og '!G� av
'� og '! under konsistens gir oss ønsket semantikk på G�, i den grad ønsket
generatorsemantikk er den gitt av 's og ønsket semantikk til de�nerte funk-
sjonssymboler er den gitt i �E. For initialsemantikk følger dette bl.a. fra teorem
2.20 side 42 under bl.a. antagelsen T��K. Men vi har jo ikke nødvendigvis T��K i
alle våre reduksjoner av initialsemantikk. Imidlertid er det mulig å veri�sere en
generisk form av teorem 2.20 for restriksjoner av initialsemantikk ved forskjel-
lige grader av tilstrekkelig kompletthet. Se også kommentaren på side 38. Det
er ikke hensiktsmessig å gjøre dette i detalj her, men vi kan slå fast at '�G� un-
der konsistens er den ønskede semantikk i den grad ønsket generatorsemantikk
er den gitt av 's og ønsket semantikk til de�nerte funksjonssymboler er den
(konstruktive) gitt i �E.
3.5 Inkonsistens i tilknytning til indirekte al-
gebraisk spesi�kasjon
Vi skal nå se på inkonsistens i tilknytning til indirekte algebraisk spesi�kasjon.
Nærmere bestemt skal vi se på bevaring av kjernen i semantikk de�nert relativt
til indirekte semantikk. Vi skal altså se på initiell konsistens; eller det ved sats
2.7 ekvivalente begrep, �nal kjernebevaring (ekvivalent under KONSERV og TK).
I avsnitt 2.3.6 så vi hvordan spesi�kasjoner over mange-til-en generatoruni-
vers av de�nerte funksjoner kunne gi inkonsistens mhp. en gitt semantikk. Så-
ledes er selvfølgelig faren for initiell inkonsistens relativt til indirekte semantikk
også tilstede.
Men det er i tillegg en mulighet for inkonsistens som så og si er iboende hos
indirekte spesi�kasjon.
Anta at en algebraisk beskrivelse Es av en syntaktisk funksjon gir indirek-
te semantikk til et mange-til-en generatorunivers. En konsekvens av kollapsen
av to semantikkgivende nivåer til ett nivå, er at spesi�kasjonen Es nå blir en
spesi�kasjon/beskrivelse av funksjoner over et mange-til-en termunivers. (Våre
algebraiske beskrivelser av syntaktiske funksjoner, er til sammenligning, alltid
107
![Page 116: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/116.jpg)
3. Semantikkgivende syntaktiske funksjoner
over en-til-en univers. Vi har ikke to termer som representerer samme term.)
Muligheten for inkonsistens ved selve spesi�kasjonen/beskrivelsen Es er således
introdusert.
Inkonsistens relativt til en indirekte semantikk kan ikke ha opphav i det
aktuelle spesi�serende de�nerte symbol: Det er jo nettopp spesi�kasjonen av
semantikken til det spesi�serende symbol som fungerer som spesi�kasjon av
indirekte semantikk ved (3.5) side 80.
Men dersom den underliggende semantikkgivende syntaktiske funksjon som
den indirekte spesi�kasjonen Es er en beskrivelse av, er de�nert vha. hjelpe-
funksjoner, vil disses beskrivelse i Es kunne gi inkonsistens mhp. 's:
Eksempel 56 Betrakt E�Int fra eksempel 44 på side 77. Siden
delta(succ(pred(0)))�$E�Int
delta(0)
har vi
succ(pred(0)) 'delta
0
for 'delta den indirekte semantikk spesi�sert av E�Int . Men vi har også
#s(succ(pred(0)))�$E�Int
succ(0) og #s(0)�$E�Int
0
Relativt til 'delta, gir dette initialsemantisk succ(0) '� 0 og �nalsemantisk
succ(pred(0)) 6'! 0. Siden succ(0) 6'delta0 har vi altså at E�Int er initielt inkon-
sistent relativt til 'delta, og ved <inversjon>, ikke �nalt kjernebevarende relativt
til 'delta.
Følgende spesi�kasjon er derimot initielt konsistent og �nalt kjernebevarende
relativt til 'delta:
Edelta =
8>>>>>>>>>><>>>>>>>>>>:
delta(x) = mem(x,0);
mem(succ(x),0) = mem(x,succ(0));
mem(pred(x),0) = mem(x,pred(0));
mem(succ(x),pred(y)) = mem(x,y);
mem(pred(x),succ(y)) = mem(x,y);
mem(succ(x),succ(y)) = mem(x,succ(succ(y)));
mem(pred(x),pred(y)) = mem(x,pred(pred(y)));
mem(0,x) = x
9>>>>>>>>>>=>>>>>>>>>>;
Intuisjon for Edelta: Edelta er konvergent, så vi behandler Edelta som et determi-
nistisk program.
En grunntermterm i GInt <prosesseres> funksjonssymbol for funksjonssymbol
og leses initielt inn i <hukommelsen> mem. Prosesseringen skjer ved å �ytte
symboler fra 1. til 2. argument av mem. Det 2. argument er invariant kanonisk.
Således er Edelta en algebraisk spesi�kasjon av kanonisk-representant funk-
sjonen �Int fra eksempel 32 på side 64.
Merk at vi her <inkorporerer> #s og #p inn i én funksjon mem. Således
unngås inkonsistens innført av #s (og #p).
Merk også at i motsetning til E�Int , er Edelta en indirekte spesi�kasjon som
tilfredstiller �h = fhg og hROT på side 94.d
Eksempel 57 Den samme historien som i eksempel 56 fortaltes om E�Int , kan
også fortelles om E Int fra eksempel 46 på side 80. E Int er inkonsistent relativt
til 'gamma for 'gamma den indirekte semantikk spesi�sert av E Int . (Vi antar
gamma som spesi�serende symbol i E Int ). Vi har f.eks.
gamma(succ(pred(0)))�$
E Intgamma(0)
108
![Page 117: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/117.jpg)
3.5. Inkonsistens i tilknytning til indirekte algebraisk spesi�kasjon
så
succ(pred(0)) 'gamma
0
Men vi har også
#s(succ(pred(0)))�$
E Intsucc(succ(0)) og #s(0)
�$
E Intsucc(0)
Relativt til 'gamma, gir dette initialsemantisk succ(succ(0)) '� succ(0) og der-
med initiell inkonsistens; og �nalsemantisk succ(pred(0)) 6'! 0 og dermed ikke
�nal kjernebevaring.
Følgende spesi�kasjon er derimot initielt konsistent og �nalt kjernebevarende
relativt til 'gamma:
Egamma =
8>>>>>>>>>><>>>>>>>>>>:
gamma(x) = mem(succ(x),0);
mem(succ(x),0) = mem(x,succ(0));
mem(pred(x),0) = mem(x,pred(0));
mem(succ(x),pred(y)) = mem(x,y);
mem(pred(x),succ(y)) = mem(x,y);
mem(succ(x),succ(y)) = mem(x,succ(succ(y)));
mem(pred(x),pred(y)) = mem(x,pred(pred(y)));
mem(0,x) = x
9>>>>>>>>>>=>>>>>>>>>>;
Her er alle ligninger bortsett fra den første, identiske med ligningene i Edelta fra
eksempel 56.d
En indirekte spesi�kasjon av en kjernesemantikk kan altså (selv) introdusere
inkonsistens relativt til kjernesemantikken. Vi antydet innledningsvis i dette
avsnittet at inkonsistens ikke kan ha opphav i det spesi�serende symbol alene.
Vi gir her én presisering av hva som menes med dette (i avsnitt 4.2 kapittel 4
skal vi komme med en ytterligere presisering):
Sats 3.22 For en �� = �c [ fsg; s 62 �c, anta at Es � E(T��(V)) er en indirekte
spesi�kasjon med spesi�serende symbol s av 's på G�c (vi antar altså dermed
INDKONG). Da er Es �nalt kjernebevarende relativt til 's.
Bevis: Vi minner om (3.7) på side 86.
Anta så tvert imot at det �nnes en c 2 G�� og gc; g0c; g1; g2 2 G�c slik at
c[gc]�$Esg1 6'
s g2�$Esc[g0c] (3.23)
til tross for at gc 's g0c. Nå kan ikke c 2 G�c , siden vi da får c[gc] '
s c[g0c],
og ved (3.7) også g1 's c[gc] og c[g
0c] '
s g2. Ialt får vi da g1 's g2 som er en
motsigelse.
Det må derfor være en forekomst av s i c. Merk da at dersomEs er fullstendig
fsg-ukomplett mhp. �c, så har vi umiddelbart en motsigelse til (3.23), og satsen
følger.
Anta dog for det generelle tilfellet at c = c0[s(c00)] for en c00 2 G�c . (Vi ser
altså på en dypest forekommende s i c.) Ved INDKONG får vi da c00[gc] 's c00[g0c],
dvs. s(c00[gc])�$Ess(c00[g0c]), som ved monotonitet gir c[gc]
�$Esc[g0c]. Men da har vi
g1�$Esg2. Da gir (3.7) g1 '
s g2, som er en motsigelse, og satsen følger.
2
Vi kan altså ved sats 3.22 i noen tilfeller direkte slå fast kjernebevaring:
109
![Page 118: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/118.jpg)
3. Semantikkgivende syntaktiske funksjoner
Eksempel 58 Betrakt beskrivelsen Esynt fra eksempel 47 side 80. La 'synt være
semantikken på GInt spesi�sert indirekte ved Esynt (med spesi�serende symbol
synt). Ved sats 3.22 er Esynt �nalt kjernebevarende relativt til 'synt.
Dette fordi det i Esynt ikke forekommer andre de�nerte funksjonssymbol-
er enn det spesi�serende symbol. Men vi kan også bruke bemerkningen om
fullstendig fsg-ukompletthet i beviset for sats 3.22, siden Esynt er fullstendig
fsyntg-ukomplett mhp. GIntd
Eksempel 59 Imidlertid kan også sats 2.8 side 37 benyttes for å slå fast kjer-
nebevaring for Esynt fra forrige eksempel. Siden Esynt er fullstendig fsyntg-ukom-
plett (eller Int[ fsyntg-ukomplett) mhp. GInt, er Esynt �nalt kjernebevarende og
initielt konsistent relativt til 'synt.d
Avslutningsvis i dette avsnitt ser vi kort på relasjonen <s de�nert i (3.9) på
side 88. Vi adopterer den formelle omgivelse gitt i �gur 3.7 på side 85. Vi skal
bare antyde at inkonsistens gjør at <s ikke uten videre spesi�serer semantikk:
Sats 3.23 Anta INDKONSERV og DISJ. For �E og Es som i �gur 3.7, anta at Es
er indirekte G�c -kongruent (INDKONG). At �E er indirekte G��-kongruent medfører
at �E er �nalt kjernebevarende relativt til 's
Bevis: Anta �E er ikke �nalt kjernebevarende mhp. 's. Da �nnes gc; g0c; g1; g2 2
G�c og c 2 G�� slik at
c[gc]�$�Eg1 6'
s g2�$�Ec[g0c]
selv om gc 's g0c. Nå betyr g1 6'
s g2 at s(g1)�6$Es
s(g2), og ved INDKONSERV altså
g1�6$�Eg2. Siden nå verken s(g1)
�$Es
s(g2) eller g1�$�Eg2, kan ved DISJ heller ikke
s(g1)�$�Es(g2). Altså har vi s(g1)
�6$�Es(g2). Ved monotonitet mhp. kontekstappli-
kasjon får vi da
s(c[gc])�$�Es(g1)
�6$�Es(g2)
�$�Es(c[g0c])
som gir s(c[gc])�6$�Es(c[g0c]), og dermed mangel på indirekte G��-kongruens, siden
gc 's g0c , s(gc)
�$Ess(g0c) ) s(gc)
�$�Es(g0c)
2
At �E ikke er �nalt kjernebevarende relativt til 's, medfører altså at relasjonen
<s på G�� slik at
g <s g0 , s(g)�$�Es(g0)
ikke er en kongruensrelasjon på G��. Det kan dog tenkes at <s restriktert til G�
likevel er en kongruensrelasjon. Vi skal komme tilbake til relasjonen <s i avsnitt
3.8.
* * *
Vi har introdusert id-utvidelser av indirekte spesi�kasjoner. Vi har vist reduk-
sjon til basis-initialsemantikk ved id -utvidelser, og vi har demonstrert at in-
direkte spesi�kasjon i seg selv kan være en kilde til inkonsistens relativt til
semantikken indirekte spesi�sert.
Vi skal nå i de nærmeste avsnitt studere id-utvidelser av indirekte spesi�ka-
sjoner videre. Vi skal introdusere begrepet kjernebevaring også for id-utvidelser.
110
![Page 119: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/119.jpg)
3.6. Komplettering av id-utvidelser.
Ved samsvar mellom id-utvidelse og basis-initiell semantikk, vil kjernebevaring
for id -utvidelser kunne overføres til initiell konsistens i basis-initial semantikken.
Vi skal se på noen måter for å etablere kjernebevaring og for å oppdage ikke
kjernebevaring i id-utvidelser.
3.6 Komplettering av id-utvidelser.
Initiell inkonsistens relativt til en semantikk indirekte spesi�sert ved en lignings-
mengde Es med spesi�serende symbol s, kan av og til tilkjennegi seg i reglene
produsert av en Knuth&Bendix-prosess gitt s-id -utvidelsen av Es. At selve se-
mantikken indirekte spesi�sert er riktig, kan også tilkjennegi seg i slike regler.
Vi skal derfor studere id -utvidelser videre i sammenheng med Knuth&Ben-
dix-komplettering. Vi minner om at `vellykket Knuth&Bendix-prosess' betyr at
mengden av vedvarende ligninger er tom og at mengden av vedvarende omskriv-
ningsregler er komplett for initialligningene (se avsnitt 2.4.4).
De�nisjon 3.6 For en s-id-utvidelse Eids av en under INDKONG indirekte spe-
si�kasjon Es med spesi�serende symbol s, kaller vi 's kjernen til Eids . Videre
kalles Eids kjernebevarende dersom
�$Eids
G�c = 's
for G�c �domenet til 's.
Det viser seg at en vellykket Knuth&Bendix-komplettering av s-id-utvidelsen
Eids av en indirekte spesi�kasjon Es med spesi�serende symbol s, kan gi en
spesi�kasjon av�$Eids
G�c i form av en regelmengde med regler utelukkende fra
E(T�c(V)). Dette skal være vårt grunnleggende resultat i dette avsnittet.
De�nisjon 3.7 La R være en vilkårlig regelmengde. La r være en vilkårlig regel.
� R er høyreredusert med hensyn på r dersom for hver regel v! h 2 R
så kan h ikke omskrives ved r.
� R er innbyrdes høyreredusert dersom R er høyreredusert med hensyn
på alle regler i R.
Lemma 3.24 Anta `fairness' mht. inferensregelanvendelse i Knuth&Bendix-
prosesser. Dvs. ingen inferens oversees i det uendelige i en prosess. Dersom
en Knuth&Bendix-prosess er vellykket, så er mengden av vedvarende regler inn-
byrdes høyreredusert.
Godtgjørelse: Dette er lett å se ved inspeksjon av inferensreglene for Knuth-
&Bendix-prosesser i �gur 2.4 på side 54, og da i særdeleshet inferensregelen
Sammensett.
3
Teorem 3.25 La � være en vilkårlig signatur, og la s 62 � være et funksjons-
symbol med aritet 1. La �� = � [ fsg. La �E � E(T��(V)).
Anta at en Knuth&Bendix-prosess er vellykket gitt s-id-utvidelsen �Eid av�E, og la R være mengden av vedvarende ligninger til denne prosessen. Dersom
semantikken�$�Eid T�(V)
ikke er fri, �nnes en konvergent R0 � R slik at
R0 � E(T�(V)) (dvs. R0 har ingen forekomster av s)
og
111
![Page 120: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/120.jpg)
3. Semantikkgivende syntaktiske funksjoner
�$R0
=�$�Eid T�(V)
Bevis: Anta t�$�Eid
u for vilkårlige t; u 2 T�(V). Siden R er komplett for �Eid ,
har vi t�$Ru. Ved at
�$�EidT�(V)
ikke er fri, er det interessante tilfellet t 6= u; og
dermed t+$Ru.
Anta nå at en slik R0 � E(T�(V)) ikke �nnes. Siden t; u 2 T�(V) og t 6= u,
må det da �nnes en regel v ! h 2 R slik at v 2 T�(V) og h = c[s(h0)] for en
c 2 T��(V) og en h0 2 T�(V). (Vi ser altså på en dypeste forekomst av s i h.)
Men siden R er komplett for �Eid , har vi s(h0)�!R
�h� Rh0 for s(h)! = �h = h0!. Nå
kan ikke �h = s(h0), siden det ville medføre h0+!Rs(h0) (siden s(h0) 6= h0), og altså
ikke-terminerende R. Altså må vi ha s(h0)+!R�h. Men da er ikke regelen v ! h
høyreredusert, og det strider mot lemma 3.24.
2
Eksempel 60 Betrakt Esynt fra eksempel 47 side 80. I overensstemmelse med
teorem 3.25 gir her en terminerende vellykket Knuth&Bendix-prosess gitt Esynt[
fsynt(x)=xg, regelmengden
RKBsynt
=
8<:
synt(x)! x;
succ(pred(x))! x;
pred(succ(x))! x
9=;
d
I det generelle tilfelle der den aktuelle ligningsmengden �E inneholder spesi-
�kasjoner av �ere funksjoner, skal vi gjøre en for oss ikke urimelig antagelse om
reduksjonsordningen på termuniverset for Knuth&Bendix-prosessen i tillegg:
Observasjon 3.26 La � og �0 være vilkårlige signaturer slik at �\�0 = ;. La�� = � [�0. La �E � E(T��(V)). Anta at en Knuth&Bendix-prosess startes med�E og en reduksjonsordning som er slik at enhver u 2 T��(V) n T�(V) er større
i ordningen enn alle v 2 T�(V). Da vil ingen regel v ! h slik at v 2 T�(V) og
h 2 T��(V) n T�(V) noensinne bli generert av prosessen.
Vi kan nå forsterke teorem 3.25:
Teorem 3.27 La � og �0 være vilkårlige signaturer slik at � \ �0 = ;. La
s 62 � [ �0 være et funksjonssymbol med aritet 1. La �� = � [ �0 [ fsg. La�E � E(T��(V)).
Anta at en Knuth&Bendix-prosess er vellykket gitt s-id -utvidelsen �Eid av �E,
og la R være mengden av vedvarende ligninger til denne prosessen. Anta dessuten
at reduksjonsordningen i prosessen er slik at enhver u 2 T�0[�(V) n T�(V) er
større i ordningen enn alle v 2 T�(V). Dersom�$�Eid T�(V)
ikke er fri, �nnes en
konvergent R0 � R slik at
R0 � E(T�(V)) (dvs. R0 har ingen forekomster av symboler fra
fsg [�0)
og
�$R0
=�$�Eid T�(V)
Bevis: Anta t�$�Eid
u for vilkårlige t; u 2 T�(V). Siden R er komplett for �Eid ,
har vi t�$Ru. Ved at
�$�EidT�(V)
ikke er fri, er det interessante tilfellet t 6= u; og
dermed t+$Ru.
Anta nå at en slik R0 � E(T�(V)) ikke �nnes. Siden t; u 2 T�(V) og t 6= u,
må det da �nnes en regel v! h 2 R slik at v 2 T�(V) og h 2 T��(V). Men ved
112
![Page 121: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/121.jpg)
3.6. Komplettering av id-utvidelser.
teorem 3.25 kan ikke s forekomme i h, og ved observasjon 3.26 kan heller ikke
noen symboler fra �0 forekomme i h, så en slik regel v! h 2 R �nnes ikke, og
vi har en motsigelse.
2
De�nisjon 3.8 La �� og � være signaturer slik at � � ��. La �E være en
vilkårlig ligningsmengde. For en id -utvidelse �Eid av �E og en ligningsmengde
E0 2 E(T�(V)), anta at�$E0 G�
=�$�Eid
G�
Da sier vi at E0 er et �-manifest for �Eid. Dersom G� er domenet til kjernen
til �Eid , kaller vi E0 et kjerne-manifest for �Eid .
For �, �Eid og R0 i teoremene 3.25 og 3.27, er således R0 et �-manifest for �Eid .
Eksempel 60 (forts.) Delmengden av RKBsynt
Rmansynt
=
�succ(pred(x))! x;
pred(succ(x))! x
�
er et GInt-manifest for Esynt [ fsynt(x)=xg.d
Eksempel 61 Betrakt Edelta fra eksempel 56 på side 108. La
�h = fmemg
�c = f0; succ;predg
Vår eksekvering av en Knuth&Bendix-prosess gitt Edelta [ fdelta(x)=xg og en
reduksjonsordning der enhver u 2 T�h[�c(V) n T�c(V) er større i ordningen
enn alle v 2 T�c(V), terminerer ikke, men er vellykket og gir den vedvarende
regelmengden
RKBdelta =
8>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>:
delta(x)! x;
succ(pred(x))! x;
pred(succ(x))! x;
mem(x,0)! x;
mem(x,succi(0))! succ
i(x); 1 � i;
mem(x,predi(0))! pred
i(x);1 � i;
mem(succ(x),y)!mem(x,succ(y));
mem(pred(x),y)!mem(x,pred(y));
mem(0,x)! x
9>>>>>>>>>>>>>>>>=>>>>>>>>>>>>>>>>;
(Det er lett å se eksempelvis, at det uendelige antall regler
mem(x,succi(0))! succ
i(x); 1 � i
vil bli generert: Reglene
mem(succ(x),y)!mem(x,succ(y)) og mem(x,succi(0))! succ
i(x)
gir det ekte kritiske par mem(x,succi+1
(0))! succi+1
(x). Følgelig terminerer
ikke prosessen.
Det er også lett å se at RKBdelta må være vedvarende: Regelskjemaene
113
![Page 122: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/122.jpg)
3. Semantikkgivende syntaktiske funksjoner
mem(x,succi(0))! succ
i(x);1 � i;
mem(x,predi(0))! pred
i(x); 1 � i
uttrykker alle nye regler som vil genereres. Ingen andre ekte kritiske par er muli-
ge, enn dem som gir opphav til regler uttrykt ved disse skjemaene.) Delmengden
av RKBdelta
Rmandelta =
�succ(pred(x))! x;
pred(succ(x))! x
�
er da ifølge teorem 3.27 et GInt-manifest for Edelta [ fdelta(x)=xg. (Dette rett-
ferdiggjøres i dette ikke-terminerende tilfellet ved at det jo ikke vil bli generert
nye regler i E(TInt(V)).)d
Eksempel 62 Betrakt E�Int fra eksempel 44 på side 77. La
�h = f#s;#p;+;�g
�c = f0; succ;predg
En terminerende vellykket eksekvering av en Knuth&Bendix-prosess gitt E�Int [
fdelta(x)=xg og en reduksjonsordning der enhver u 2 T�h[�c(V) n T�c(V) er
større i ordningen enn alle v 2 T�c(V), gir regelmengden
RKB�Int
=
8>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>:
delta(x)! x;
succ(x)! x;
pred(x)! x;
#s(0)! 0;
#p(0)! 0;
#s(x)�#p(x)! x;
x�0! x;
x+0! x;
0+#p(x)!#s(x);
0+#s(x)!#s(x)
9>>>>>>>>>>>>>>>>>>=>>>>>>>>>>>>>>>>>>;
Ved teorem 3.27 er delmengden av RKB�Int
Rman�Int
=
�succ(x)! x;
pred(x)! x
�
et GInt-manifest for E�Int [ fdelta(x)=xg.
En terminerende vellykket Knuth&Bendix-prosess gitt delta-id-utvidelsen av
E�Int [ Ekompl (se eksempel 53 side 93) og en reduksjonsordning som over, gir
også GInt-manifestet Rman�Int
.d
Vi kan således bruke Knuth&Bendix-komplettering somet verktøy for lettere
å se generatorsemantikken spesi�sert av id-utvidelsen av en indirekte spesi�ka-
sjon, i form av et kjerne-manifest. Et slikt kjerne-manifest kan gjøre det enklere
å etablere hvorvidt en id -utvidelse er kjernebevarende eller ikke.
Gitt at en id-utvidelse kan reduseres til basis-initialsemantikk (se avsnitt
3.4.5), kan så kjernebevaring av id -utvidelsen direkte overføres til initiell kon-
sistens.
114
![Page 123: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/123.jpg)
3.6. Komplettering av id-utvidelser.
Dersom en id -utvidelse er kjernebevarende, er det også mulig å bruke kjerne-
manifest til lettere å se om kjernesemantikken er den man faktisk ønsker. Disse
ting skal vi se på i de nærmeste avsnitt.
En forutsetning for at Knuth&Bendix-komplettering av id-utvidelser skal gi
et kjerne-manifest for en id-utvidelse, er selvfølgelig eksistensen av et et slikt
kjerne-manifest. Et kjerne-manifest R generert ved Knuth&Bendix-kompletter-
ing må dessuten, siden Knuth&Bendix-prosesser er basert på søk av kritiske
par�m.a.o. utleding av logiske konsekvenser�være slik at
hver regel v! h i R er en logisk konsekvens av id-utvidelsen.
Et kjerne-manifest for en id-utvidelse består ikke nødvendigvis av logiske kon-
sekvenser av id-utvidelsen:
Eksempel 63 Betrakt den indirekte spesi�kasjonen E�SetNat fra eksempel 45 på
side 78. Betrakt så den direkte spesi�kasjon
ESetNat =
�add(add(s,x),x) = add(s,x);
add(add(s,x),y) = add(add(s,y),x)
�
fra eksempel 27 side 50.
Anta en Knuth&Bendix-prosess startes gitt E�SetNat [ fdelta(x) = xg Det �ns
ingen komplett regelmengde for ESetNat, så vi kan med en gang si at manifestet
ESetNat ikke vil bli generert som regelmengde.
Det kunne dog tenkes at ESetNat vil dukke opp som ligninger under prosessens
gang. Men dette vil heller ikke skje. ESetNat er nemlig ikke logiske konsekvenser
av E�SetNat [ fdelta(x) = xg.
Imidlertid er ESetNat induktive konsekvenser av E�SetNat[fdelta(x) = xg. (Full-
stendig sortering fungerer kun på grunntermer.) Termene
delta(add(add(s,x),y)) og delta(add(add(s,y),x))
er eksempelvis altså ikke E�SetNat-like, selv om alle grunninstanser av disse to
termene er det.d
3.6.1 id-utvidelser og mangel på kjernebevaring
Vi ser her på muligheter for å oppdage/etablere mangel på kjernebevaring i
id -utvidelser.
Først et resultat som bekrefter noe som sikkert allerede er innlysende; nemlig
at kjerne-manifest for id-utvidelser kan brukes til å vise mangel på kjernebeva-
ring for id -utvidelser.
Sats 3.28 La igjen �c være en signatur av generatorer. Anta en vilkårlig �E �
E(T��(V)) inneholdende en indirekte spesi�kasjon Es av en semantikk 's på G�c
med spesi�serende symbol s. Anta vi har tilgjengelig et �c-manifest �Eman av�Eid .
Anta det �nnes en ligning/regel v = h i �Eman og en � 2 SbstG�c , slik at
s(v�)�6$Ess(h�)
Da er �Eid ikke kjernebevarende.
Bevis: Vi har jo selvsagt v��$
�Emanh�, og siden �Eman er et �c-manifest for �Eid ,
har vi v��$�Eid
h�. Men dermed er �Eid ikke kjernebevarende.
2
115
![Page 124: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/124.jpg)
3. Semantikkgivende syntaktiske funksjoner
Og siden Knuth&Bendix-komplettering kan generere kjerne-manifest for id -
utvidelser, kan altså mangel på kjernebevaring i id-utvidelser av og til etableres
vha. Knuth&Bendix-komplettering.
Eksempel 64 Betrakt E�Int (evt. E�Int [Ekompl) fra eksempel 44 side 77. Be-
trakt GInt-manifestet
Rman�Int
=
�succ(x)! x;
pred(x)! x
�
for delta-id-utvidelsen E�Int [ fdelta(x)=xg (E�Int [ Ekompl) fra eksempel 62
side 114. Vi kan da straks konstatere at delta-id-utvidelsen av E�Int (E�Int [
Ekompl) ikke er kjernebevarende. Vi har nemlig delta(succ(0))�6$E�Int
delta(0). E�Int
er konvergent, så dette vises ved å observere at
delta(succ(0))!E�Int 6= delta(0)!E�Int
d
Eksempel 65 Betrakt en abstrakt datatype Intposn med bæremengde
f: : : ;�4;�3;�2;�1;0;1; : : : ; ng;n � 1
dvs. bestående av samtlige negative tall med 0 og de positive tall 1; : : : ; n. Vi
har altså modulo n + 1 på de positive tall. En mulig formell datatype er den
initielle bestemt av
Int =
8<:
0 : Int;succ : Int!Int;
pred : Int!Int
9=;
og
En =
8>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>:
1 : delta(x) = mem(x,0,0);
2 : mem(succ(x),y,0) = mem(x,succ(y),0);
3 : mem(pred(x),y,0) = mem(x,pred(y),0);
4 : mem(0,pred(x),0) = mem(0,x,pred(0));
50 : mem(0,succ(x),0) = mem(0,x,succ(0));
51 : mem(0,succ(x),succ(0)) = mem(0,x,succ(succ(0)));
: :
5i : mem(0,succ(x),succi(0)) = mem(0,x,succ
i+1(0));
: :
5n : mem(0,succ(x),succn(0))) = mem(0,x,0);
6 : mem(0,succ(x),pred(y)) = mem(0,x,y);
7 : mem(0,pred(x),succ(y)) = mem(0,x,y);
8 : mem(0,pred(x),pred(y)) = mem(0,x,pred(pred(y)));
9 : mem(0,0,x) = x
9>>>>>>>>>>>>>>>>>>>>>>=>>>>>>>>>>>>>>>>>>>>>>;
og relativ til den indirekte semantikk spesi�sert av En.
Betrakt kongruensrelasjonen 'Intpos
nInt indusert av den unike �Int
pos
nInt . Bl.a. for
å gi intuisjon om En, godtgjør vi at En er en spesi�kasjon av en kanonisk-re-
presentant funksjon for 'Intpos
nInt , der de kanoniske representanter er termer uten
forekomster av både succ og pred.
En er konvergent, så vi behandler En som et deterministisk program. En
grunnterm i GInt <prosesseres> funksjonssymbol for funksjonssymbol og leses
initielt inn i <hukommelsen> mem (ligning 1). Pga. asymmetri, er det her ikke
likegyldig i hvilken rekkefølge succ'er og pred'er prosesseres. F.eks. ønskes at
116
![Page 125: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/125.jpg)
3.6. Komplettering av id-utvidelser.
succ(pred(succn(0))) representerer n,
men at
pred(succ(succn(0))) representerer �1
(Antallet succ'er og pred'er er identisk i disse to termene.)
Prosesseringen av en term må derfor foregå <innenfra og ut>. (Som mate-
matisk funksjonsapplikasjons-evaluering.) Ligningene 2 og 3 <reverserer> derfor
termen.
Anta så at en reversert term foreligger i 2. argument avmem. Det 3. argument
av mem er invariant kanonisk, og er den kanoniske <historie> til subtermen
prosessert hittil. Dette er lett å veri�sere for ligninger som fører symboler fra 2.
til 3. argument.
Betrakt så reglene 50 �5n. Leses en succ og den kanoniske historie er succn(0),
sløyfes alle n+1 succ'er i tråd med modulo n+1 på de positive tall.
De øvrige regler skulle da være greie.
SidenEn er en spesi�kasjon av en kanonisk-representant funksjon for'IntposnInt ,
er En en indirekte spesi�kasjon av 'Intpos
nInt .
En terminerende vellykket Knuth&Bendix-prosess gitt delta-id -utvidelsen av
En for n = 2, gir følgende GInt-manifest:
Rman2 =
�succ(succ(succ(x)))! x;
pred(x)! succ(succ(x))
�
Vi kan så vise mangel på kjernebevaring ved
delta(pred(0))!E2 = pred(0) 6= succ(succ(0)) = delta(succ(succ(0)))!E2
d
Eksempel 66 Betrakt basis-initialsemantikken ' på GInt spesi�sert av den ene
ligning
Ea =�
succ(pred(x)) = x
Vi presenterer en indirekte spesi�kasjon av ':
Eb =
8>>>>>>>>>><>>>>>>>>>>:
1 : delta(x) = mem(x,0,0,0);
2 : mem(succ(x),y,0,0) = mem(x,succ(y),0,0);
3 : mem(succ(x),y,pred(z),0) = mem(x,succ(y),pred(z),0);
4 : mem(pred(x),0,z,0) = mem(x,0,pred(z),0);
5 : mem(pred(x),succ(y),z,0) = mem(x,y,z,0);
6 : mem(0,succ(y),z,w) = mem(0,y,z,succ(w));
7 : mem(0,0,pred(z),w) = mem(0,0,z,pred(w));
8 : mem(0,0,0,w) = w
9>>>>>>>>>>=>>>>>>>>>>;
Intuisjon for Eb: Eb er konvergent, så vi behandler Eb som et deterministisk
program.
Termer <leses> sekvensielt utenfra og inn, og plasseres initielt i 1. argument
av mem. Enhver succ havner i 2. argument av mem. Enhver pred havner i 3.
argument av mem.
Betrakt ligninger 4 og 5: Leses en pred og det er er en overskudds-succ i 2.
argument, kan pred'en og succ'en sløyfes. Dette ivaretar rollen til ligningen i Ea.
Betrakt ligninger 2 og 3: Leses en succ skal ingenting sløyfes, til tross for at
det er en overskudds-pred i 3. argument. (Merk at vi i tillegg lett kan <implemen-
tere> basis-initialligningen pred(succ(x)) = x ved å endre ligning 3. Men her og
nå kan ligning 2 og 3 slås sammen til mem(succ(x),y,z,0) = mem(x,succ(y),z,0).)
117
![Page 126: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/126.jpg)
3. Semantikkgivende syntaktiske funksjoner
Betrakt ligninger 6, 7 og 8: Ligningsmengden Ea er en spesi�kasjon av en
kanonisk-representant funksjon for '. De kanoniske representanter er termer på
formen prednsucc
m0. Annet argument i mem består nå kun av succ'er, og 3.
argument bare av pred'er. Ligningene 6, 7 og 8 sørger da for kanoniske termer.
Hva skjer så ved komplettering av Eb [ fdelta(x) = xg? Vår komplettering
terminerer ikke (ved et ligninende argument som det parentetiske i eksempel
61), men følgende regler blir blant andre, generert:
Rb =
8>>>>>><>>>>>>:
:
delta(x)! x;
:
succ(pred(x))! x;
pred(succ(x))! x
:
9>>>>>>=>>>>>>;
Det følger fra lemma 2.28 side 55 at enhver regel generert under en Knuth&-
Bendix-komplettering vil være en logisk konsekvens av initialligningene. Følgelig
vil den induktive teorien for et fullstendig GInt-manifest inkludere den induktive
teorien for
Rmanb =
�succ(pred(x))! x;
pred(succ(x))! x
�
Altså kan vi vise mangel på kjernebevaring ved
delta(pred(succ(0)))!Eb = pred(succ(0)) 6= 0 = delta(0)!Eb
d
Kjerne-manifest kan altså brukes til å vise mangel på kjernebevaring for id -
utvidelser.
Faktisk er det slik at dersom en id -utvidelse ikke er kjernebevarende, så vil
et kjerne-manifest for id -utvidelsen alltid inneholde informasjon som viser dette
faktum; gitt at manifestet er variabelbevarende:
Sats 3.29 La �c være en signatur av generatorer inneholdt i en signatur ��.
Anta en vilkårlig �E � E(T��(V)) inneholdende en indirekte spesi�kasjon Es av
en semantikk 's på G�c med spesi�serende symbol s. Anta vi har tilgjengelig et
�c-manifest �Eman for �Eid . Anta at �Eman er variabelbevarende.
Anta �Eid ikke er kjernebevarende. Da �nnes en ligning/regel v = h i �Eman
og en � 2 SbstG�c , slik at
s(v�)�6$Ess(h�)
Bevis: Siden �Eid ikke er kjernebevarende, �nnes gc; g0c 2 G�c slik at
gc�$�Eidg0c men s(gc)
�6$Ess(g0c)
Ved at �Eman er et �c-manifest for �Eid , har vi også
gc�$
�Eman g
0c
Anta så tvert imot at for alle ligninger l = r i �Eman :
8� 2 SbstG�c j s(l�)�$Ess(r�)
Siden Es er en indirekte spesi�kasjon av 's, er Es indirekte G�c-kongruent. Det
er da lett å se at
s(gc)�$Ess(g0c)
118
![Page 127: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/127.jpg)
3.6. Komplettering av id-utvidelser.
ved induksjon på lengden n av en vilkårlig �Eman -utledning hgc; : : : ; g0ci:
n = 1: Trivielt.
n = k + 1;k � 1: Da har vi en �Eman -utledning hgc; : : : ; gk; g0ci. Merk at
gk 2 G�c , siden �Eman 2 E(T�c(V)) og gc 2 G�c og �Eman er variabelbevarende.
Induksjonshypotesen gir s(gc)�$Es
s(gk). Vi har så gk = c[l�] og g0c = c[r�], for
en regel l = r (r = l) 2 �Eman , en � 2 SbstG�c og en kontekst c 2 G�c . Men
siden vi antar s(l�)�$Es
s(r�), får vi siden Es er indirekte G�c -kongruent, at
s(c[l�])�$Ess(c[r�]). Dermed har vi
s(gc)�$Ess(g0c)
Vi har altså en motsigelse, og satsen følger.
2
Så hvis en s-id-utvidelse �Eid ikke er kjernebevarende, �nnes ved sats 3.29
i ethvert variabelbevarende kjerne-manifest for id-utvidelsen en ligning/regel
v = h, slik at
s(v�)�6$Ess(h�)
for en � 2 SbstG�c .
Det å oppdage en slik ligning/regel og substitusjon kan gjøres algoritmisk
dersom kjerne-manifestet �Eman er endelig og Es er konvergent. Dette kan gjø-
res ved et systematisk søk i universet av alle par hl = r; � i for ligninger/regler
l = r 2 �Eman og G�c-substitusjoner � . Det er her essensielt at våre term-univers
er rekursivt tellbare. Et systematisk søk kan uttrykkes ved fairness:
Søket er slik at dersom prosessen er uendelig, så oversees intet par
hl = r; � i i det uendelige.
Sats 3.29 sammen med en slik systematisk gjennomgang av universet av alle
par hl = r; � i kan selvfølgelig generelt ikke alene brukes for å veri�sere at en �Eid
er kjernebevarende, siden søkerommet generelt er uendelig.
Men �nnes det muligheter for å avskjære et slikt søk etter endelig tid med
visshet om kjernebevaring? En slik avskjæring kunne være bestemt av komplek-
siteten på grunntermene substituert inn av G�c-substitusjonene � , forutsatt at
det systematiske søket foregår med stigende slik kompleksitet.
Våre eksempler 64, 65 og 66 på ikke kjernebevarende id -utvidelser, er alle slik
at det �nnes en regel i de ved Knuth&Bendix-komplettering genererte kjerne-
manifestene, slik at den minst komplekse G�c -substitusjonen er tilstrekkelig for
å etablere mangel på kjernebevaring.
Man kan spekulere om det alltid er slik for Knuth&Bendix-komplettering
genererte kjerne-manifest. Isåfall ville kjernebevaring av id-utvidelser være av-
gjørbart, gitt endelige kjerne-manifest generert ved komplettering og konvergent
indirekte spesi�kasjon.
Merk at det �nnes tenkbare kjerne-manifest hvor den minst komplekse sub-
stitusjon ikke er tilstrekkelig for å vise mangel på kjernebevaring. Vi kan gi et
eksempel; men manifestet er ikke generert ved komplettering og har her heller
ikke opphav i en spesi�k indirekte spesi�kasjon:
Eksempel 67 Anta en konvergent indirekte spesi�kasjon E0n for 'Int
pos
nInt
fra
eksempel 65. Anta så følgende GInt-manifest for den aktuelle id-utvidelse av E0n:
Eman 0
n =
8<:
succ(pred(x)) = x;
pred(succ(x)) = x;
succn(x) = x
9=;
119
![Page 128: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/128.jpg)
3. Semantikkgivende syntaktiske funksjoner
Det er her ikke tilstrekkelig å instansiere x med 0. For en gitt n kan likevel
id -utvidelsen av E0n vises å være ikke kjernebevarende, ved å konstatere at
delta(pred(succ(succn(0))))!E0
n 6= delta(succn(0))!E0
n
Men merk også at vi kan sette grensen for en slik test vilkårlig høyt ved å velge
vilkårlig stor n.d
Uansett om hypotesen om tilstrekkelighet av minst komplekse substitusjon
for å vise mangel på kjernebevaring vha. Knuth&Bendix-komplettering generer-
te manifest holder eller ikke, kan man undres om det �nnes en dynamisk øvre
grense på søketiden som kun avhenger av den aktuelle indirekte spesi�kasjon og
det genererte manifest.
Spesielt interessant er dette, hvis en slik øvre grense kan bestemmes algorit-
misk utfra f.eks. syntaktiske egenskaper ved de aktuelle ligningsmengder.
Merk at vi her snakker om avgjørbarhet av kjernebevaring av id-utvidelser,
gitt endelige kjerne-manifest generert ved komplettering og konvergent indirekte
spesi�kasjon, og på ingen måte generell avgjørbarhet av kjernebevaring av id -
utvidelser.
3.6.2 Synliggjøring av kjernebevaring
Et kjerne-manifest kan i en viss forstand også åpenbare direkte at en id-utvidelse
er kjernebevarende. Dette er tilfellet dersom vi vet at kjernen til id -utvidelsen er
identisk med semantikken spesi�sert av manifestet. Altså at vi vet for en kjerne
's på en G�c , en id-utvidelse �Eid og et kjerne-manifest �Eman for �Eid , at
's =�$
�EmanG�c
Ialt har vi da
's =�$
�EmanG�c =�$�EidG�c
som gir at �Eid er kjernebevarende.
Viten om at 's =�$
�EmanG�cer ingen selvfølgelighet. Denne viten fordrer at
man vet hva kjernen 's faktisk er, dvs. at man i en viss forstand har veri�sert
den aktuelle indirekte spesi�kasjon.
Eksempel 68 Betrakt Edelta fra eksempel 56 på side 108.
Ved den intuisjon gitt for Edelta i eksemplet, har vi mer eller mindre godtgjort
at Edelta er en algebraisk spesi�kasjon av kanonisk-representant funksjonen �Intfra eksempel 32 på side 64. I sistnevnte eksempel konstaterte vi også at
RInt =
�succ(pred(x))! x
pred(succ(x))! x
�
beregner �Int ved prinsipp (3.1) på side 63. Altså spesi�serer den indirekte spe-
si�kasjon Edelta og den direkte spesi�kasjon RInt den samme semantikk (kall den
her 'delta) på GInt.
Betrakt nå delta-id-utvidelsen Eiddelta
av Edelta. Fra eksempel 61 side 113 har
vi følgende GInt-manifest for Eiddelta:
Rmandelta =
�succ(pred(x))! x;
pred(succ(x))! x
�
Men nå vet vi jo at
'delta =�$RIntGInt
=�$
Rmandelta
GInt
120
![Page 129: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/129.jpg)
3.6. Komplettering av id-utvidelser.
Og Rmandelta er jo et GInt-manifest for E
iddelta:
�$
Rmandelta
GInt=
�$EiddeltaGInt
Følgelig må Eiddelta være kjernebevarende.
d
3.6.3 Kjernebevaring av id-utvidelser og inkonsistens
Omen id -utvidelse er kjernebevarende er her først og fremst interessant, dersom
id -utvidelsen er reduserbar til basis-initialsemantikk (avsnitt 3.4.5). Isåfall kan
nemlig kjernebevaring av id -utvidelsen direkte overføres til initiell konsistens,
siden vi da har
�$�EidG�c
= 's , '�G�c = 's
for �c en signatur av generatorer og �E � E(T��(V)) inneholdende en indirekte
spesi�kasjon av en 's på G�c med spesi�serende symbol s.
Da representerer dessuten eventuelle metoder for å etablere kjernebevaring/
oppdage mangel på kjernebevaring av id -utvidelser alternativer og suppleringer
til metoder for å etablere/oppdage initiell konsistens/inkonsistens.
Eksempel 69 Betrakt signaturene Int og �Int og spesi�kasjonen E�Int fra ek-
sempel 44 side 77. La �� = Int [�Int.
I eksempel 53 side 93 argumenterte vi for at�$Eid G��
= '�, for delta-id-
utvidelsen�$Eid
av E�Int [ Ekompl , og for den initielle semantikk '� relativ til
'delta bestemt av �� og E�Int . Her er 'delta på GInt indirekte spesi�sert ved E�Int .
Da kan kjernebevaring av�$Eid
overføres til initiell konsistens av E�Int [Ekompl
relativt til 'delta.
I eksempel 64 side 116 konstaterte vi at�$Eid
ikke er kjernebevarende. Ergo er
ikke E�Int [Ekompl initielt konsistent relativt til 'delta.
d
Eksempel 70 Betrakt den indirekte spesi�kasjonen En fra eksempel 65 på side
116. Vi konstaterte mangel på kjernebevaring for delta-id -utvidelsen av En (for
n = 2). Vi kan overføre dette til initiell inkonsistens, ved å vise at delta-id -
utvidelsen av En kan reduseres til basis-initialsemantikk:
Merk at En er delta-komplett, men ikke mem-komplett mhp. GInt: Termen
mem(succ(0),succ(0),succ(0)) er eksempelvis ikke omskrivbar iEn til noen term i
GInt. Dette er i tråd med vår her sekvensielle tenkemåte at et steg i prosesseringen
av en term gjøres unna før neste steg settes igang: En term reverseres fullstendig
før videre prosessering.
Ønsker vi å vise reduksjon av delta-id-utvidelsen av En til basis-initialse-
mantikk, kan vi ty til teorem 3.10 på side 95, siden En oppfyller kriteriene for
satsen. Merk spesielt her det <strenge> kriteriet hROT.
Vi kunne i prinsipp også modi�sere En til å være mem-komplett og bruke
teorem 3.8 på side 92 istedet. En slik modi�kasjon er her ikke så lett (i motset-
ning til modi�kasjonen gjort i eksempel 53 side 93). Vi kunne forsøke en rett
121
![Page 130: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/130.jpg)
3. Semantikkgivende syntaktiske funksjoner
fram modi�kasjon av En til en mem-komplett Enkompl som følger:
Enkompl =
8>>>>>>>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>:
1 : delta(x) = mem(x,0,0);
2 : mem(succ(x),0,y) = mem(x,succ(0),y);
3 : mem(pred(x),0,y) = mem(x,pred(0),y);
4 : mem(w,pred(x),0) = mem(w,x,pred(0));
50 : mem(w,succ(x),0) = mem(w,x,succ(0));
51 : mem(w,succ(x),succ(0)) = mem(w,x,succ(succ(0)));
: :
5i : mem(w,succ(x),succi(0)) = mem(w,x,succ
i+1(0));
: :
5n : mem(w,succ(x),succn(0))) = mem(w,x,0);
6 : mem(w,succ(x),pred(y)) = mem(w,x,y);
7 : mem(w,pred(x),succ(y)) = mem(w,x,y);
8 : mem(w,pred(x),pred(y)) = mem(w,x,pred(pred(y)));
9 : mem(0,0,x) = x
9>>>>>>>>>>>>>>>>>>>>>>=>>>>>>>>>>>>>>>>>>>>>>;
Dette er katastrofalt, siden vi da får Enkompl -utledningen
hdelta(pred(succ(succ(succ(0)))));
mem(pred(succ(succ(succ(0))))),0,0);
mem(succ(succ(succ(0)))),pred(0),0);
mem(succ(succ(succ(0)))),0,pred(0));
mem(succ(succ(0))),succ(0),pred(0));
mem(succ(succ(0))),0,0); : : :
: : : ; succ(succ(0))i
Det er nemlig essensielt for idéen bak En, at termer reverseres fullstendig før
videre prosessering. (Vi kan ikke åpne opp for parallell prosessering.) En mer
gjennomtenkt utvidelse av En; eller en annen strategi enn En, må altså til for
å oppnå mem-komplett mhp. GInt. Men heldigvis har vi altså teorem 3.10.d
Eksempel 71 Betrakt den indirekte spesi�kasjonen Eb fra eksempel 66 på side
117. Vi konstaterte mangel på kjernebevaring for delta-id -utvidelsen av Eb. Vi
kan overføre dette til initiell inkonsistens, ved å vise at delta-id -utvidelsen av
Eb kan reduseres til basis-initialsemantikk:
Merk også her at Eb er et tilfelle der teorem 3.10 på side 95 med stor for-
del kan benyttes for å vise reduksjon til basis-initialsemantikk. Eksempelvis er
termen mem(succ(0),succ(0),succ(0),succ(0)) ikke omskrivbar i Eb til noen term
i GInt. Forsøker vi igjen en rett fram utvidelse for å oppnå mem-komplett mhp.
GInt, får vi problemer lignende dem som oppsto i eksempel 70.d
3.6.4 Synliggjøring av kjernesemantikk
Dersomvi vet at en id-utvidelse av en indirekte spesi�kasjon er kjernebevarende,
kan et kjerne-manifest bidra til å synliggjøre kjernesemantikken i form av en
direkte algebraisk spesi�kasjon uten <fremmede> symboler. Dette er på sett og
vis speilvendingen av diskusjonen i avsnitt 3.6.2.
La �c være en signatur av generatorer. Anta �E � E(T��(V)) inneholder en
indirekte spesi�kasjon av en 's på G�c med spesi�serende symbol s. Anta et
�c-manifest �Eman for �Eid . Anta altså at �E er kjernebevarende. Da har vi
�$�EidG�c = '
s
122
![Page 131: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/131.jpg)
3.6. Komplettering av id-utvidelser.
På den annen side har vi�$�EidG�c
=�$
�EmanG�c
og dermed�$�EmanG�c
= 's
Vi kan da betrakte �Eman , og det kan muligens bli åpenbart hvorvidt 's er den
generator-/kjernesemantikk vi er ute etter:
Eksempel 72 Vi godtgjorde i eksempel 55 side 105 at �E = Esynt [Ed tilfreds-
tiller KREP2. Men ved DISJ er denne godtgjørelse også en godtgjørelse for at
Esynt alene tilfredstiller KREP2. Dessuten oppfylte �E kriteriene DISJ og EsVAR-
BEVAR, samt �h = ;. Disse ting er selvfølgelig også oppfylt for Esynt alene. For
Int = f0; succ; predg er derfor ved teorem 3.17 side 102
�$EidsyntGInt
= '�GInt
for den initielle semantikken '� spesi�sert av Int [ fsyntg og Esynt relativ til
'synt, hvor 'synt er den indirekte semantikken spesi�sert av Esynt.
Fra eksempel 59 side 110 har vi at Esynt er initielt konsistent relativt til 'synt.
Altså har vi at Eidsynt er kjernebevarende, dvs.
�$EidsyntGInt
= 'synt
Nå vet vi altså at�$EidsyntGInt
=�$
Rmansynt
GIntfor
Rmansynt =
�succ(pred(x))! x;
pred(succ(x))! x
�
fra eksempel 60 side 113.
Vi kan nå si at Esynt er en korrekt indirekte spesi�kasjon av semantikk på
GInt, i den grad vi vet at�$
Rmansynt
GInter semantikken vi ønsker.
d
Vi sier mer om dette i avsnitt 3.9.
3.6.5 id-utvidelser og inkongruens
Vi har til nå, både i teori og i eksempler, antatt INDKONG; altså at den aktuelle
Es faktisk er en indirekte spesi�kasjon av en eller annen kongruensrelasjon 's.
Anta en Es ment å spesi�sere en indirekte semantikk på en G�c , ikke er indirekte
G�c -kongruent. Likevel er selvfølgelig�$Eids
en kongruensrelasjon. Spesielt er da
også restriksjonen�$EidsG�c en kongruensrelasjon. Hvis INDKONG ikke er etablert,
kan man da i en viss forstand ikke stole på det man ser:
Eksempel 73 Betrakt E0�Int
fra eksempel 49 side 83. Vi husker at E0�Int
ikke
er indirekte GInt-kongruent. Men en terminerende vellykket komplettering av
E0�Int[ fdelta(x) = xg, gir regelmengden
R0�Int =
8<:
delta(x)! x;
succ(pred(x))! x;
pred(succ(x))! x
9=;
d
Eksempel 74 Betrakt følgende
E =
�delta(succ(pred(x))) = x;
delta(pred(succ(x))) = x
�
123
![Page 132: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/132.jpg)
3. Semantikkgivende syntaktiske funksjoner
E er ikke indirekte GInt-kongruent. Men en terminerende vellykket komplettering
av E [ fdelta(x) = xg, gir igjen regelmengden
R =
8<:
delta(x)! x;
succ(pred(x))! x;
pred(succ(x))! x
9=;
d
Disse eksemplene illustrerer viktigheten av å kunne etablere INDKONG. Visste vi
ikke bedre kunne vi i farten tro at manifestet�succ(pred(x))! x;
pred(succ(x))! x
�
for id -utvidelsene av E0�Int
og E i eksemplene 73 og 74 synliggjør kjernebevaring
for disse id -utvidelser. Merk dessuten at inkonsistens i disse eksemplene i prin-
sipp kan utelukkes ved sats 3.22 side 109. Da kunne man også tro at manifestet
over synliggjør kjernesemantikken. Dette er selvfølgelig uten mening, siden det
her ikke �nnes noen kjerne.
Men merk likevel at id -utvidelsene av disse <feilaktige> indirekte spesi�ka-
sjonene faktisk gir en (fornuftig) semantikk.
Mangel på indre kongruens kan oppdages algoritmisk; gitt konvergent indi-
rekte spesi�kasjon som er tilstrekkelig s-komplett for spesi�serende symbol s.
Dette kan gjøres ved å beregne og lagre normalformer s(g)! på en systematisk
måte helt til følgende inntre�er:
s(c[g])! 6= s(c[g0])! og s(g)! = s(g0)!
Det systematiske søket i termuniverset må være slik:
Ingen term må oversees uendelig lenge, og dersom s(g)! for en term g
beregnes, må s(g0)! for alle subtermer g0 av g allerede være beregnet.
Igjen er det essensielt at våre term-univers er rekursivt tellbare.
Og igjen er det selvfølgelig umulig generelt å bruke utelukkende et slikt sys-
tematisk søk til å etablere et positivt resultat; dvs. at en indirekte spesi�kasjon
er indre kongruent.
3.6.6 Nytten av id-utvidelser som basis-initialsemantikk
spesi�katorer
Flere (semi-)mekaniske resolusjonsmetoder for basis-initial- og basis-�nalseman-
tikker forutsetter at ligningsmengden som spesi�serer semantikken er grunnkon-
vergent.
Vi har redusert initialsemantikk relativ til indirekte semantikk til basis-
initialsemantikk ved hjelp av id -utvidelser. For å bruke resolusjonsmetoder som
fordrer grunnkonvergente spesi�kasjons-ligninger, må da en for id-utvidelsen
grunnkomplett og altså grunnkonvergent regelmengde fremska�es.
Ved Knuth&Bendix-komplettering av id-utvidelser under de forutsetninger
beskrevet i sats 3.27 på side 112, vil ifølge sats 3.27 en komplett regelmengde
for en id-utvidelse kun genereres dersom det �nnes en direkte algebraisk spesi-
�kasjon av den indirekte semantikken.
I lys av resolusjonsmetoder som fordrer konvergente spesi�kasjons-ligninger,
og dersom Knuth&Bendix-komplettering brukes for å fremska�e slike konver-
gente ligninger, er således bruken av id -utvidelser noe søkt: Man kunne heller
brukt en (vanlig) direkte algebraisk spesi�kasjon.
124
![Page 133: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/133.jpg)
3.7. Skjuling av hjelpefunksjoner
Indirekte spesi�kasjon og id -utvidelser er i denne sammenheng likevel hen-
siktsmessig dersom det er lettere å spesi�sere en semantikk indirekte enn di-
rekte. Vår indirekte spesi�kasjon ser ut til å representere en operasjonell stil
innen spesi�kasjon. Dette er ikke rart, siden vi stort sett har tatt utgangspunkt
i spesi�kasjoner/beskrivelser av syntaktiske funksjoner, og syntaktiske funksjon-
er opererer på term-struktur. Det er en smaksak, men har man vendt seg til den
operasjonelle måten å spesi�sere semantikk på som indirekte spesi�kasjon ser
ut til å representere, kan man i noen situasjoner synes indirekte spesi�kasjon
er lettere enn direkte spesi�kasjon.
Eksempel 75 Betrakt den indirekte spesi�kasjonen En i eksempel 65 side 116.
En tilsvarende direkte algebraisk spesi�kasjon er
Edirn =
8>>>><>>>>:
pred(succ(0)) = 0;
:
pred(succn(0)) = succ
n�1(0);
succn+1
(0) = 0;
succ(pred(x)) = x
9>>>>=>>>>;
Personlig synes jeg at det falt lettere å spesi�sere den indirekte spesi�kasjonen
En enn den direkte spesi�kasjonen Edirn . Det er muligens også lettere å se at
den indirekte spesi�kasjonen er korrekt, enn å se at den direkte spesi�kasjonen
er korrekt. (Nå er vel i utgangspunktet ingen av disse to spesi�kasjoner spesielt
kompliserte.)
Merk dog at id-utvidelsen av den indirekte spesi�kasjonen jo desverre ikke
er kjernebevarende (eksempel 65).d
Det er også verd å merke seg at at slike operasjonelle indirekte spesi�kasjoner
også naturlig er tilgjengelige for metoder innen programveri�kasjon. Se avsnitt
3.9.
Indirekte spesi�kasjoner (alene eller i id -utvidelse) er også spesielt hensikts-
messige dersom man kan spesi�sere �ere, eller andre semantikker indirekte enn
man kan ved direkte spesi�kasjon.
3.7 Skjuling av hjelpefunksjoner
Utgangspunktet for indirekte spesi�kasjon har vært algebraiske spesi�kasjon-
er/beskrivelser av semantikkgivende syntaktiske funksjoner. Disse beskrivelser
av syntaktiske funksjoner har ofte involvert beskrivelser av hjelpefunksjoner til
den semantikkgivende syntaktiske funksjonen, og vi har sett at disses beskriv-
elser kan innføre inkonsistens relativt til den indirekte semantikk.
Den inkonsistens som på denne måten blir innført pga. disse hjelpefunksjo-
ner, er på en måte kunstig. Hjelpefunksjonene er opprinnelig tenkt som imp-
lementatoriske tekniske hjelpemidler, og burde være skjult fra logikken. Hjel-
pefunksjoner er ikke nødvendigvis kun knyttet til syntaktiske funksjoner, men
vår tanke om at hjelpefunksjoner burde skjules i en passende forstand er spe-
sielt nærliggende i lys av den operasjonelle stilen vi har sett i våre algebraiske
beskrivelser av semantikkgivende syntaktiske funksjoner.
La oss igjen adoptere den formelle omgivelse som de�nert i �gur 3.7 på side
85. Vi ønsker å gi semantikk til G� for � = �c [ �d. Vi ønsker å spesi�sere
generatorsemantikk ved 's og semantikk til de�nerte symboler i �d ved Ed.
Det er da naturlig å betrakte
initialsemantikken '�0 relativ til 's spesi�sert av Ed og �
125
![Page 134: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/134.jpg)
3. Semantikkgivende syntaktiske funksjoner
med grensesnitt-/logisk omgivelse
G�; E
d�
I våre reduksjoner til basis-�nal- og basis-initialsemantikker benyttet vi oss av
en utvidet formell omgivelse hG��;�Ei, og så på semantikker ('� og '!) relative
til 's spesi�sert av �E og ��. Den formelle omgivelsen hG��;�Ei gjør oss istand
til å utføre reduksjonene; bl.a. kan vi de�nere id-utvidelser. Men i forhold til
den logiske omgivelse hG�;Edi innføres en ny mulighet for inkonsistens, ved at
de�nerte symboler i Es nå deltar i spesi�seringen av semantikken på G�. I lys av
tanken om at slik inkonsistens er kunstig, er da den utvidete omgivelse hG��;�Ei
ikke den logiske omgivelse vi ønsker. (Se også �gurene 3.5 side 82 og 3.6 side
83.)
Vi ser i dette avsnittet på to måter å <avvæpne>, eller skjule, hjelpefunk-
sjonssymboler med hensyn på inkonsistens. Den ene måten er operasjonell. Den
andre måten skal utføres på spesi�kasjonsnivå.
3.7.1 Operasjonell skjuling
Vi skal innføre en operasjonell restriksjon i basis-initialsemantikk spesi�sert av
id -utvidelser av indirekte spesi�kasjoner. Vi skal dessuten arbeide mer med re-
lasjonen de�nert i (2.13) på side 41. Vi fører diskusjonen med signaturer, lig-
ningsmengder osv. som i �gur 3.7 side 85.
Vi skal vise hvordan s-id-utvidelser sammen med en restriktert form for
omskrivning, kan gi initialsemantikken '�0 relativ til 's spesi�sert av Ed og �.
Betrakt først relasjonen
('s [�$�E G��
)�
Dette er en re�eksiv-transitiv relasjon, og et steg gi('s [
�$�E G��
)gi+1 i en ('s [�$�E G��
)�-utledning er slik at enten
gi 's gi+1
eller
gi�$�Egi+1
Ingen kontekstapplikasjon er mulig. (Substistusjon er selvfølgelig uaktuell på
grunntermer.)
Vi skal nå de�nere delvis monoton tillukning:
De�nisjon 3.9 For en relasjon < på en T�(V) de�nerer vi den �0-monotone
tillukning
<��0
av < for en �0 � � som den minste relasjon som er
1. monoton mhp. substitusjon for alle substitusjoner i SbstT�0(V).
2. monoton mhp. kontekstapplikasjon for alle kontekster c 2 T�0(V).
Anvendt på ('s [�$�E G��
)� kan delvis monotonitet således gi forskjellige grader
av kontekstapplikasjon; sagt billedlig: forskjellige grader av samarbeid mellom
's og�$�E G��
.
Eksempelvis er full monotonitet ('s [�$�E G��
)��� av ('s [
�$�E G��
)� identisk
med initialsemantikk relativ til 's spesi�sert av �E og ��. Se de�nisjon 2.9 på
side 31.
Vi de�nerer så
126
![Page 135: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/135.jpg)
3.7. Skjuling av hjelpefunksjoner
De�nisjon 3.10 For en ligningsmengde E, betrakt s-id -utvidelsen Eid = E [
fs(x) = xg. Vi de�nerer �0-s-id-restriksjonen
�0�s!
Eid
av�$Eid
, som relasjonen�$Eid
, men med den restriksjon som følger av at ligningen
s(x) = x kun anvendes i kontekster c 2 T�0(V) ved omskriving.
Følgende sats er sentral:
Sats 3.30 Anta T��K og KREP1. La �0 � ��. Vi har
�0�s!�Eid G��
= ('s [�$�E G��
)��0
Bevis: For inklusjonen
�0�s!�Eid G��
� ('s [�$�E G��
)��0
betrakt en vilkårlig �0�s!�Eid
-utledning hg; : : : ; g0i i G��, for vilkårlige g; g0 2 G��. Vi
induserer over lengden på en slik utledning. Basisen er triviell. For induksjons-
steget gir induksjonshypotesen
g ('s [�$�E G��
)��0 gk
for en gk i utledningen slik at hg; : : : ; gk; g0i. Anta gk
�$�Eg0. Da har vi trivielt
gk ('s[
�$�E G��
)��0g0
og induksjonssteget følger.
Anta gk !fs(x)=xg g0. Da er gk = c[g0k] og g
0 = c[s(g0k)], eller gk = c[s(g0k)] og
g0 = c[g0k], for en c 2 G�0 . Resten går på samme måte som i beviset for lemma
3.9 på side 92: Siden vi antar T��K og KREP1, og siden vi implisitt antar INDKONG
ved å nevne 's, har vi ved (3.13) side 92:
g0k�$�Eg0k '
s �g0k
�$�Es(g0k)
�$�Es(g0k)
Vi kan applisere konteksten c rundt dette og vi får:
c[g0k]�$�Ec[g0k]
og
c[�g0k]
�$�Ec[s(g0k)]
�$�Ec[s(g0k)]
der altså g0k 's �g0k. Nå var c 2 G�0 , så vi har altså (evt. ved symmetri)
gk ('s[
�$�E G��
)��0 g0
og induksjonssteget følger. Inklusjonen
�0�s!�Eid G��
� ('s [�$�E G��
)��0
er også grei å vise: Vi induserer over lengden n av en vilkårlig ('s [�$�E G��
)��0 -
utledning hg; : : : ; g0i i G��. Basis er triviell. For induksjonssteget gir induksjons-
hypotesen
g �0�s!�Eidgk
127
![Page 136: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/136.jpg)
3. Semantikkgivende syntaktiske funksjoner
for en gk 2 G��. Anta
gk$�E g0
Da er trivielt gk�0�s!
Eidg0, og induksjonssteget følger. Anta så at
gk = c[g0k] og c[g00] = g0 og g0k 's g00
for en vilkårlig (muligens tom) kontekst c 2 G�0 . Vi har da, siden g0k 's
g00 , s(g0k)�$Ess(g00)
gk = c[g0k] !fs(x)=xg c[s(g0k)]
�$Esc[s(g00)] !fs(x)=xg c[g
00] = g0
Konteksten c er i G�0 , så vi har gk�0�s!
Eidg0, og induksjonssteget følger.
2
Merk at vi kan vise sats 3.30 for antagelsene TsK, hROT, samt EsVARBEVAR, Ed-
VARBEVAR og DISJ, istedenfor antagelsen T��K. Der linjen i beviset for sats 3.30
følger tråden i beviset for lemma 3.9 på side 92, skal heller tråden i beviset
for lemma 3.16 på side 101 følges. Man må dessuten forsikre seg om at rela-
sjonen �0�s!�Eid
er lukket mhp. transformasjonen for lemma 3.11 på side 96. Dette
gjøres enkelt ved å observere at ved et transformasjonssteg forblir kontekstene
rundt anvendelser av ligningen s(x)=x uforandrede, eller blir delkontekster av
de opprinnelige. Vi kan altså slå fast:
Sats 3.30b Anta TsK og KREP1. Anta i tillegg hROT, samt EsVARBEVAR, Ed-
VARBEVAR og DISJ. La �0 � ��. Vi har
�0�s!�Eid
G��= ('s [
�$�E G��
)��0
�
For initialsemantikken '�0 relativ til 's spesi�sert av Ed og �, skal vi så
vise vårt hovedresultat i dette avsnittet:
Teorem 3.31 Anta T��K, DISJ og KREP1. Anta i tillegg KONVERG og KONSTR. Da
har vi��s!�Eid G�
= '�0 (3.24)
Antagelsene KONVERG og KONSTR gjør ting svært mye lettere for oss. Vi kan også
vise
Teorem 3.31b Anta TsK og KREP1. Anta i tillegg hROT, samt EsVARBEVAR,
EdVARBEVAR og DISJ. Anta også KONVERG og KONSTR. Da har vi
��s!�Eid
G� = '�0
Når det er sagt, viser vi likevel kun teorem 3.31. Hvordan teorem 3.31b vises,
vil fremgå svært tydelig.
Teorem 3.31 følger fra følgende tre lemmata:
Lemma 3.32 Anta T��K og KREP1. Da har vi
��s!�Eid G��
� ('s [�$�E G��
)��
Bevis: Lemma 3.32 følger fra sats 3.30.
2
128
![Page 137: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/137.jpg)
3.7. Skjuling av hjelpefunksjoner
Lemma 3.33 Anta KONVERG, KONSTR og DISJ. Da har vi
('s [�$�E G��
)��
G�� ('s [
�$Ed
G�)��
Bevis: Betrakt en vilkårlig ('s [�$�E G��
)�� -utledning hg; : : : ; g0i i G�� for g; g0 2
G�. En slik utledning består av
1) enkeltsteg h: : : ; gi; gi+1; : : :i slik at
gi = c[g0i] og c[g0i+1] = gi+1 og g0i 's g0i+1
for vilkårlige (muligens tomme) kontekster c 2 G�; samt
2) delsekvenser hgi; : : : ; gi+ki slik at
gi�$�Egi+k
Enkeltstegene under 1) er umiddelbart også ('s [�$Ed
G�)�� -steg.
Vi konsentrerer oss om 2): Betrakt en vilkårlig delsekvens hgi; : : : ; gi+ki
slik at gi�$�Egi+k og slik at eventuelle gi�1; gi+k+1 er slik at enkeltstegene
h: : : ; gi�1; gi; : : :i og h: : : ; gi+k; gi+k+1; : : :i ikke er $�E -steg. Merk at gi og gi+kda må være i G�, ved den �-monotone tillukning.
Ialt følger derfor lemmaet nå ved å vise at
�$�E G� �
�$Ed G�
Anta så at g�$�Eg0 for vilkårlige g; g0 2 G�. Ved KONVERG har vi g
!!�Eg!
! �Eg0. Vi vis-
er under DISJ og KONSTR at enhver ensrettet �E-utledning hg; : : : ; g!i (hg0; : : : ; g!i)
må være en (ensrettet) Ed-utledning i G�: Induksjon på lengden n av hg; : : : ; g!i.
n = 1: Trivielt, siden g 2 G�.
n = k+1;k � 1: Induksjonshypotesen gir g�$Edgk for en gk 2 G�. Ved KONSTR
er hver venstreside av ligninger i Es på formen f(t1, : : : ,tn), der f er et de�nert
symbol i �� og alle ti 2 T�c(V); 1 � i � n. Ved DISJ må f 2 �h, eller f er det
spesi�serende symbol s. Siden gk 2 G�, �ns da ingen ligning v = h 2 Es slik at
gkjp = v� for noen posisjon p eller substitusjon �. Følgelig må gk�$Ed
g!; og ved
DISJ og KONSTR må g! 2 G�.
2
Nå er pr. de�nisjon
('s [�$Ed
G�)�� = '�0
så det gjenstår bare å vise:
Lemma 3.34
'�0�
��s!�Eid G�
Bevis: Anta g'�0g0 for vilkårlige g; g0 2 G�. Vi induserer over lengden n av en
vilkårlig '�0-utledning hg; : : : ; g0i i G�. Basis er triviell. For induksjonssteget gir
induksjonshypotesen g��s!�Eid
gk for en gk 2 G�. Anta
gk $Ed g0
Da er trivielt gk��s!�Eid
g0, og induksjonssteget følger. Anta så at
gk = c[g0k] og c[g00] = g0 og g0k 's g00
for en vilkårlig (muligens tom) kontekst c 2 G�. Vi har da, siden g0k 's g00
, s(g0k)�$Ess(g00)
gk = c[g0k] !fs(x)=xg c[s(g0k)]
�$Es
c[s(g00)] !fs(x)=xg c[g00] = g0
129
![Page 138: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/138.jpg)
3. Semantikkgivende syntaktiske funksjoner
Konteksten c er i G�, så vi har gk��s!�Eid
g0, og induksjonssteget følger.
2
Lemmata 3.32, 3.33 og 3.34 gir da ialt teorem 3.31. Teorem 3.31 sier altså at��s!�Eid G�
er identisk med initialsemantikken '�0 relativ til 's spesi�sert av Ed og
�. Inkonsistens innført ved symboler i �h er utelukket, siden �h ikke �nnes i
'�0 sin logiske omgivelse.
Nå er ikke��s!�Eid G� noen basis-initialsemantikk i vanlig forstand. Men siden
��s!�Eid G�
er en operasjonell restriksjon av basis-initialsemantikken�$�Eid, er det likevel
tenkelig at resolusjonsmetoder for basis-initialsemantikk kan modi�seres til å
være anvendbare på slike id-restriksjoner. I såfall kan resolusjonsmetoder for
basis-initialsemantikk brukes for (generell) initialsemantikk med indirekte kjer-
ne, der semantikkens formelle omgivelse er den som er i tråd med den abstrakte
datatypen som skal implementeres, og ikke en utvidet formell omgivelse (en
utvidelse som altså i en viss forstand kan innføre kunstig inkonsistens).
Merk at vår operasjonelle skjuling av hjelpefunksjonssymboler i formelle da-
tatyper, kan sies å svare til skjuling av interne hjelpeprosedyrer/funksjoner i
moduldeklarasjoner på programmeringsspråk-nivå.
*
Denne idéen omoperasjonell skjuling av hjelpefunksjon(symbol)er synes jeg kun-
ne være interessant for algebraisk spesi�kasjon generelt; ikke bare for vårt tilfelle
her med id-utvidelser. Det kan av og til være fordelaktig (og kanskje nødvend-
ig) å spesi�sere funksjoner ved hjelp av hjelpefunksjoner; våre semantikkgivende
syntaktiske funksjoner er jo et godt eksempel på dette. I programmering er hjel-
pefunksjoner en vesentlig del av fornuftige (modulære) utviklingsstrategier. Slike
hjelpefunksjoner mener vi hører til på det implementatoriske syntaktiske nivå
og ikke på det semantiske nivå (jf. �gur 1.2 side 6). Ved formell resonnering
om abstrakte datatyper bør i dette lys interne hjelpefunksjoner kun sees som
implementatoriske hjelpemidler og på en eller annen måte skjules fra logikken.
Følgende er et eksempel på hjelpefunksjoner brukt i de�nisjonen av en (van-
lig) de�nert funksjon.
Eksempel 76 Vi skal lage en algebraisk funksjonsde�nisjon av absoluttverdi-
funksjonen abs på de hele tall, der
abs(x) =
�x for x � 0
�x for x < 0
Vi skal ta en operasjonell tilnærming: Vi skal bevege oss ned et abstraksjonsnivå
til det semantiske nivå der syntaktiske funksjoner be�nner seg. (Det nivået som
er mellom den syntaktiske verden og det <ekte> semantiske nivå. Jf. diskusjonen
rundt eksempel 42 side 74.) Vi skal spesi�sere en syntaktisk funksjon syntabs som
tar en term g i GInt og gir en term som representerer (i�g. grunnterm-tolken �IntGInt
absolutt-verdien til verdien som g representerer. Vi de�nerer syntabs vha. syntak-
tiske hjelpefunksjoner; nærmere bestemt kanonisk-representant funksjonen �Intfra eksempel 32 side 64, og funksjonen pos som gitt en kanonisk representant
bestemt av �Int skifter alle pred'er til succ'er. Altså:
syntabs(g) = pos(�Int(g))
La altså
Int =
8<:
0 : int;succ : int!int;
pred : int!int
9=;
130
![Page 139: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/139.jpg)
3.7. Skjuling av hjelpefunksjoner
Abs =
�abs : int!int;
pos : int!int
�[�Int =
�delta : int!int;
:
�
Eabs =
8>>>><>>>>:
abs(x) = pos(delta(x));
pos(0) = 0;
pos(succ(x)) = succ(x);
pos(pred(x)) = succ(pos(x))
9>>>>=>>>>;[E�
der �Int og E� er en signatur og en spesi�kasjon for og av �Int .
Selvfølgelig er Eabs en algebraisk spesi�ksjon av abs hvis Eabs er en algebra-
isk spesi�ksjon av syntabs . (Resonneringen i forbindelse med konstruksjon av
algebraiske spesi�kasjoner er ofte fokusert på syntaktisk manipulering. Vi gjør
dette her helt eksplisitt ved å snakke via spesi�kasjoner av syntaktiske funk-
sjoner.) Poenget er nå at vi har
succ(succ(0))�$Eabs
pos(pred(succ(0))) 'IntGInt
pos(0)�$Eabs
0
som gir (kunstig) initiell inkonsistens relativt til 'IntGInt. Det er naturlig å betrak-
te hjelpefunksjonene �Int og pos og deres spesi�kasjoner som implementatoriske
hjelpemidler, og ikke tilhørende den abstrakte datatype hZ;f0; succ; pred; absgi
som søkes implementert. Disse hjelpefunksjoner er jo også best forstått og for-
klart som syntaktiske funksjoner, og faktisk er det jo slik at ihvertfall pos ikke
kan tolkes til noen funksjon overZ. Jf. avsnitt 2.3.8 (Inkonsistens og tolkninger)
side 44. Likevel faller det naturlig�eller vi kunne ønske �å bruke pos og �Inttil hjelp for å implementere abs.d
Hjelpefunksjoner tilbyr implementatoriske fordeler, men kan samtidig innføre
inkonsistens. Vi ønsker å dra nytte av de implementatoriske sidene, uten at
hjelpefunskjoner spiller noen rolle i logikken. Dette ønsket søker vi å imøtekom-
me ved skjuling av hjelpefunksjoner.
Den operasjonelle skjuling for id -utvidelser over, kan på en lignende måte
gjøres for algebraisk spesi�kasjon generelt.
3.7.2 Operasjonell skjuling i resolusjonsmetoder
I dette avsnitt skal vi foreslå hvordan vår operasjonelle skjuling kan inlem-
mes i resolusjonsmetoder. Stringente bevis for påstandene som fremsettes er
ikke gjennomført, og diskusjonen i dette avsnittet skal kun ansees som fornuftig
spekulasjon og reising av åpne spørsmål.
For resolusjonsmetoder bygget på komplettering (f.eks. induktiv kompletter-
ing avsnitt 2.4.5 side 56) kan det se ut til at den operasjonelle skjuling beskrevet
over så og si direkte kan overføres til en restriksjon på hvilke kritiske par som
betraktes under komplettering. I forbindelse med id-utvidelser foreslår vi at
skjuling kanskje kan implementeres ved følgende endring:
For inferensregelenUtled fra �gur 2.4 side 54 gjør vi følgende restrik-
sjon (E0 er initial-ligningsmengden) :
RI-Utled:
hE;Ri
hE [ fs = tg;Ri
for hs; ti = hvi�[hj�]p; hi�i et ekte kritisk par i R fra vi� for to
regler vi!hi og vj! hj , der ikke både vi�[2]p har forekomster
av hjelpefunksjonssymboler og samtidig vj ! hj 62�$
E0nfs(x)=xg.
131
![Page 140: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/140.jpg)
3. Semantikkgivende syntaktiske funksjoner
Ved et induktivt resonnement kan vi fastslå at et kritisk par ikke blir generert
med mindre det er i relasjonen �0�s!E0
, der �0 er � uten hjelpefunksjonssymboler.
Hvordan det kan avgjøres hvorvidt vj ! hj 62�$
E0nfs(x)=xgskal vi se i kapittel 4.
Vi antar at hjelpefunksjonssymboler kun �nnes i forbindelse med den indirekte
spesi�kasjonen.
La oss kalle en Knuth&Bendix-prosess med denne restriksjonen på Utled
for en RI-restriktert Knuth&Bendix-prosess.
Påstand 3.35 La signaturer osv. være som i �gur 3.7 side 85. La RRI væ-
re resultatet av en vellykket RI-restriktert Knuth&Bendix-komplettering gitt en
ligningsmengde �Eid inneholdende en indirekte spesi�kasjon med spesi�serende
symbol s.
Anta at reduksjonsordningen i prosessen er slik at enhver u 2 T��(V)nT�c(V)
er større i ordningen enn alle v 2 T�c(V). Da �nnes en konvergent R0RI� RRI
slik at
R0RI� E(T�c(V))
og
�$R0RI
=��s!
Eid �c
Videre �nnes en operasjonell restriksjon�$RRI
op av relasjonen�$RRI
som er termi-
nerende og slik at
�$RRI
op =��s!�Eid
og
s�$RRI
op t , s!op = t!op
der s!op betegner en entydig normalform i den velfunderte ordningen�$RRI
op.
En skisseaktig begrunnelse for vår fremsetting av påstand 3.35, gis i avsnitt 4.2.2
i kapittel 4.
Påstand 3.35 hevder at en vellykket RI-restriktert komplettering gir det vi
kan kalle et kjernemanifest for �Eid i henhold til��s!�Eid
. Dersom påstand 3.35
er riktig kan nå et slikt kjernemanifest sammenholdes med diskusjonen forøvrig
om kjernemanifest (synliggjøring av kjernebevaring, bevis av mangel på kjer-
nebevaring og synliggjøring av kjernesemantikk); men nå relatert, ved teorem
3.31 side 128, til initialsemantikken '�0 relativ til 's spesi�sert av Ed og �
(og ikke til initialsemantikken '� relativ til 's spesi�sert av �E og ��.) Kunst-
ig inkonsistens grunnet symboler i �h er således holdt skjult i genereringen av
kjernemanifestet.
Eksempel 77 Vi har ingen implementasjon av RI-restriktert komplettering,
men for delta-id-utvidelsen av E�Int fra eksempel 44 side 77, ville RI-restriktert
komplettering muligens gi følgende kjernemanifest i henhold tilInt�delta!Eid
�Int:
Rman�IntRI
=
�succ(pred(x))! x;
pred(succ(x))! x
�
d
Eksempel 78 RI-restriktert komplettering av delta-id -utvidelsen av En fra ek-
sempel 65 side 116 kunne gi kjernemanifestet
132
![Page 141: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/141.jpg)
3.7. Skjuling av hjelpefunksjoner
RmannRI =
8>>>><>>>>:
pred(succ(0))! 0;
:
pred(succn(0))! succ
n�1(0);
succn+1
(0)! 0;
succ(pred(x))! x
9>>>>=>>>>;
i henhold tilInt�delta!Eidn
.d
Like, eller kanskje mer interessant, er at påstand 3.35 hevder en avgjør-
bar relasjon�$RRI
op som kan brukes som grunnlag i f.eks. RI-restriktert induktiv
komplettering.
Når det gjelder direkte spesi�kasjon, antar vi hjelpefunksjoner i forbindelse
med de�nerte funksjoner, og ikke i forbindelse med spesi�sering av generatorse-
mantikk. La oss anse initial-ligningsmengden E0 delt disjunkt i generatorlignin-
ger Ec0 og andre ligninger E
d0 . Det kan se ut til at skjuling kan implementeres i
kompletteringsbaserte metoder ved følgende endring:
For inferensregelen Utled gjør vi følgende restriksjon:
RD-Utled:
hE;Ri
hE [ fs = tg;Ri
for hs; ti = hvi�[hj�]p; hi�i et ekte kritisk par i R fra vi� for to
regler vi!hi og vj! hj , der ikke både vi�[2]p har forekomster
av hjelpefunksjonssymboler og samtidig vj ! hj 62�$
E0nEc0.
Ved et induktivt resonnement kan vi fastslå at et kritisk par ikke blir generert
med mindre det er i relasjonen (�$Ec0T�c (V)[
�$Ed0T�(V))
��0 , der �c er generatorene
i � og �0 er � uten hjelpefunksjonssymboler.
Vi skal ikke gå videre inn på RD-restriktert komplettering her, men lar på-
stand 3.35 over antyde en lignende kurs for kjernemanifest og RD-restriktert
induktiv komplettering.
Videre bør resonnementene omkring RI-restriktert komplettering kunne ut-
vides til å omfatte hjelpefunksjonssymboler også utenom de involvert i den in-
direkte spesi�kasjonen.
Ved å inlemme skjuling av hjelpefunksjoner i resolusjonsmetoder, får man en
ny frihet i algebraisk spesi�kasjon, idet hjelpefunksjoner som innfører kunstig
inkonsistens likevel kan benyttes i spesi�sering og i formell mekanisk resonnering
om programmer. Dette er et tema som synes meget interessant. Vi må som sagt
heller ta tid til å utrede dette tema mer helhetlig en annen gang.
I de følgende avsnitt skal vi se på andre måter å skjule kunstig inkonsistens
på. Det ser ut som disse først får praktisk interesse når resolusjonsmetoder for
generell initial- og �nalsemantikk fore�nnes.
3.7.3 Skjuling på spesi�kasjonsnivå
I sats 2.8 side 37 etablerte vi at fullstendig ukompletthet garanterer kjernebe-
varing/konsistens. Vi skal her la oss inspirere av dette til å avvæpne hjelpe-
funskjonssymboler med hensyn til inkonsistens, ved å la vår �E være fullstendig
fsg [�h-ukomplett mhp. G�c .
La oss først se at det gir mening for oss å snakke om indirekte spesi�kasjoner
som er fullstendig fsg [�h-ukomplette mhp. G�c :
133
![Page 142: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/142.jpg)
3. Semantikkgivende syntaktiske funksjoner
Eksempel 79 Betrakt den indirekte spesi�kasjon En fra eksempel 65 på side
116.
Ved å fjerne ligning 9 får vi en ekvivalent indirekte spesi�kasjon Efun som
er fullstendig fdeltag [ fmemg-ukomplett mhp. GInt. At denne amputerte spe-
si�kasjon er ekvivalent med den opprinnelige, sees ved å observere at en vil-
kårlig gc 2 GInt er en En-normalform hvis og bare hvis mem(0,0,gc) er en Efun -
normalform. (Både En og Efun er konvergente.)
d
Eksempel 80 Betrakt den indirekte spesi�kasjon Eb fra eksempel 66 på side
117.
Ved å fjerne ligning 8 får vi en ekvivalent indirekte spesi�kasjon Efub som
er fullstendig fdeltag [ fmemg-ukomplett mhp. GInt. En vilkårlig gc 2 GInt er en
Eb-normalform hvis og bare hvis mem(0,0,0,gc) er en Efu
b -normalform.d
Følgende sats viser at inkonsistens innført ved symboler i�h under visse omsten-
digheter kan forhindres, ved å la den indirekte spesi�kasjon Es være fullstendig
fsg [�h-ukomplett mhp. G�c :
Sats 3.36 Anta DISJ, EsKONSERV+ og T�K. Anta Es er fullstendig fsg [ �h-
ukomplett mhp. G�c. La '�0 være initialsemantikken relativ til 's spesi�sert
av Ed og �. La på den annen side '� være initialsemantikken relativ til 's
spesi�sert av �E og ��. Da har vi
'�G� = '�0
M.a.o.:
('s [�$�E G��
)���G�
= ('s [�$Ed G�
)��
Bevis: At
('s [�$�E G��
)���G�� ('s [
�$Ed G�
)��
er innlysende.
For denmotsatte inklusjon betrakt først en vilkårlig ('s [�$�E G��
)��� -utledning
hgc; : : : ; g0ci i G�� for generatortermer gc; g
0c 2 G�c .
Siden Es er fullstendig fsg [ �h-ukomplett mhp. G�c , og vi antar DISJ, er
�E også fullstendig fsg [�h-ukomplett mhp. G�c . Men da må hgc; : : : ; g0ci være
en utledning i G�. Ved EsKONSERV+ og igjen DISJ, må i tillegg ethvert �E-steg i
hgc; : : : ; g0ci være et E
d-steg. Følgelig har vi
gc ('s[
�$Ed
G�)�� g0c
Anta nå
g ('s [�$�E G��
)��� g0
for vilkårlige g; g0 2 G�.
Ved T�K har vi jo g�$�Eg1 og g
0 �$�Eg2 for noen g1; g2 2 G�c . Da har vi
g1�$�Eg ('s [
�$�E G��
)��� g0
�$�Eg2
og følgelig g1 ('s [�$�E G��
)��� g2, og da altså ved argumentet over g1 ('s
[�$Ed G�
)�� g2.
Ved DISJ og EsKONSERV+ har vi endog g�$Ed
g1 og g0 �$Ed
g2. Dette gir da på
den annen side
g�$Edg1 ('
s[
�$Ed
G�)�� g2
�$Ed g
0
134
![Page 143: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/143.jpg)
3.7. Skjuling av hjelpefunksjoner
og dermed
g ('s [�$Ed
G�)�� g0
og satsen følger.
2
Vi kan altså under rimelige antagelser skjule hjelpefunksjonssymboler med
hensyn til inkonsistens, ved å la den indirekte spesi�kasjon Es være fullstendig
fsg [�h-ukomplett mhp. G�c .
Dette er vel og bra, men i neste avsnitt skal vi se at antagelsen om full-
stendig fsg [ �h-ukomplett mhp. G�c kan ødelegge korrespondansen mellom
basis-initialsemantikk og id -utvidelser av indirekte spesi�kasjoner.
3.7.4 Skjuling på spesi�kasjonsnivå og reduksjon til basis-
initialsemantikk
La oss igjen betrakte (3.22) på side 107. Vi skal som vi lovte på side 107, nå
vise et par eksempler der
� �h 6= ;
� �E er fullstendig fsg [�h-ukomplett mhp. G�c
og der (3.22) ikke holder.
Eksempel 79 (forts.) Ved å fjerne ligning 9 fra den indirekte spesi�kasjon Enfra eksempel 65 på side 116 �kk vi en ekvivalent indirekte spesi�kasjon Efu
n som
er fullstendig fdeltag [ fmemg-ukomplett mhp. GInt.
La '� være initialsemantikken spesi�sert av Efun og GInt[fmemg, relativ til
semantikken 'delta på GInt spesi�sert indirekte av Efun . M.a.o.:
'� = ('delta[
�$Efu
nGInt[fmemg
)�
Int[fmemg
Betingelsene for sats 3.36 side 134 er oppfylt (eller mer passende i dette
tilfellet: sats 2.8 side 37). Vi har altså initiell konsistens, m.a.o.:
'�GInt= 'delta
Imidlertid er delta-id-utvidelsen Efu idn av Efu
n ikke kjernebevarende. En ter-
minerende vellykket Knuth&Bendix-prosess gitt delta-id -utvidelsen av Efun for
n = 2, gir Int-manifestet
Rfu man2 =
�succ(succ(succ(x)))! x;
pred(x)! succ(succ(x))
�
Vi kan analogt som i eksempel 65 på side 116, vise mangel på kjernebevaring
ved
delta(pred(0))!Efu2 6= delta(succ(succ(0)))!E
fu2
Altså har vi
'�GInt6=
� !Efu id
nGInt
og (3.22) på side 107 holder ikke.d
135
![Page 144: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/144.jpg)
3. Semantikkgivende syntaktiske funksjoner
Eksempel 80 (forts.) Betrakt den indirekte spesi�kasjon Eb fra eksempel 66
på side 117.
Ved å fjerne ligning 8 fra den indirekte spesi�kasjon Eb fra eksempel 66
på side 117, får vi en ekvivalent indirekte spesi�kasjon Efub som er fullstendig
fdeltag [ fmemg-ukomplett mhp. GInt.
Vår komplettering av delta-id -utvidelsen av Efu
b terminerer ikke (på en ana-
log måte som i eksempel 66 side 117), men følgende regler blir blant andre,
generert:
Rb =
8>>>>>><>>>>>>:
:
delta(x)! x;
:
succ(pred(x))! x;
pred(succ(x))! x
:
9>>>>>>=>>>>>>;
Det følger fra lemma 2.28 side 55 at enhver regel generert under en Knuth&-
Bendix-komplettering vil være en logisk konsekvens av initialligningene. Følgelig
kan vi analogt som i eksempel 66 side 117, vise mangel på kjernebevaring ved
delta(pred(succ(0)))!Efub 6= delta(0)!E
fub
På den annen side gir sats 2.8 side 37 for initialsematikken
'� = ('delta[
�$Efu
bGInt[fmemg
)�
Int[fmemg
der 'delta på GInt er spesi�sert indirekte av Efub , at
'�GInt= 'Gdelta
Igjen har vi da at
'�GInt6=
� !Efu id
bGInt
og (3.22) på side 107 holder ikke.d
Vi ser her i eksempler 79 og 80 at id -utvidelsene av de fullstendig fsg [ �h-
ukomplette versjonene av de indirekte spesi�kasjonene oppfører seg, i det minste
på generatorene, identisk med id -utvidelsene av de originale indirekte spesi�ka-
sjonene. Det har for id -utvidelser ingen virkning å innføre fullstendig fsg [�h-
ukompletthet. Forklaringen på dette er, løst forklart, at ligningen s(x) = x
(gjen-)innfører tilstrekkelig fsg [�h-kompletthet mhp. G�c .
Hjelpefunksjonssymboler kan altså skjules med hensyn til inkonsistens, ved
å la den indirekte spesi�kasjon Es være fullstendig fsg [ �h-ukomplett mhp.
G�c . Men skjuling på denne måten mister generelt sin e�ekt ved overføring til
id -utvidelsen. Således har vi altså at denne fullstendige fsg [�h-ukompletthet
kan ødelegge korrespondansen mellom basis-initialsemantikk og id -utvidelser av
indirekte spesi�kasjoner.
Dersom skjuling av hjelpefunksjoner på spesi�kasjonsnivå gjøres som her,
kan altså ikke id-utvidelser generelt brukes som en tilnærming av indirekte
spesi�kasjon til basis-initialsemantikk og tilhørende resolusjonsmetoder.
3.7.5 Skjuling ved innføring av typer
La oss vende tilbake et øyeblikk til kommentaren på side 89 angående måter å
se en mengde av klasserepresentanter på. Vi har hittil diskutert i henhold til
siste punkt i denne kommentaren. Vi skal her se at kunstig inkonsistens kan
elimineres ved å et syn i henhold til første punkt i kommentaren. Vi nøyer oss
med å gi et eksempel.
136
![Page 145: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/145.jpg)
3.7. Skjuling av hjelpefunksjoner
Eksempel 81 La
Int =
8<:
0 : int;succ : int!int;
pred : int!int
9=;
�Int =
8>>>><>>>>:
delta : int!int;
#s : int!int;
#p : int!int;
� : int�int!int;
+ : int�int!int
9>>>>=>>>>;
Vi husker fra eksempel 56 side 108 at E�Int er initielt inkonsistent og ikke �nalt
kjernebevarende relativt til 'delta. Vi innfører nå imidlertid en ny type int og
modi�serer signaturene Int og �Int slik:
Int0 =
8>>>>>><>>>>>>:
0 : int;succ : int!int;
pred : int!int;
0 : int;succ : int!int;
pred : int!int
9>>>>>>=>>>>>>;
�0Int =
8>>>><>>>>:
delta : int!int;
#s : int!int;
#p : int!int;
� : int�int!int;
+ : int�int!int
9>>>>=>>>>;
I henhold til denne typingen modi�seres E�Int til E0�Int
. Merk at semantikken
'delta på GInt er uendret. Typene Int og Int antas disjunkte; dvs. de står ikke i
noe subtype-forhold til hverandre.
Vi har nå
#s(succ(pred(0)))�$E0�Int
succ(0) og #s(0)�$E0�Int
0
Relativt til 'delta gir dette initialsemantisk succ(0) '� 0, men det gjør ikke noe:
Vi er interessert i semantikken gitt på GInt. Det vesentlige er at vi nå har
succ(0) 6'�0
La nå �0Int være som �Int , men med kodomene GInt. For �nalsemantiske be-
traktninger må vi nå inkludere en semantikk på GInt=�0Int i kjernen '
delta. Lar
vi denne semantikken på GInt være den frie (som umiddelbart er naturlig), får
vi stadig �nalsemantisk succ(pred(0)) 6'! 0 og mangel på kjernebevaring. Vi
kan imidlertid spesi�sere universell semantikk på GInt=�0Int (f.eks. ved ligningen
x = y). Merk at dette ikke ødelegger (delen av) kjernesematikken på GInt. Da får
vi (for eksempel)
succ(pred(0)) '!0
d
Ved innføring av en <skygge->type som i dette eksemplet, kan hjelpefunksjons-
symboler avvæpnes mht. inkonsistens.
Kan vi si at slik typing i en viss forstand implementerer den operasjonel-
le restriksjonen på omskrivning over id-utvidelser fra avsnitt 3.7.1? Vel, det
kommer an på hvordan man ser det, men ett er sikkert: Ved tradisjonelle typ-
ingsregler er nå ikke id-ligninger (for eksemplet over: delta(x) = x) lenger lovlig.
137
![Page 146: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/146.jpg)
3. Semantikkgivende syntaktiske funksjoner
Sambandet til id -utvidelser er derfor ikke tilstede ved innføring av en slik skyg-
getype. Det er ikke umiddelbart mulig å redde situasjonen ved subtyping.
*
For initialsemantikk relativ til indirekte kjerner er foreløpig vår eneste kontakt
til resolusjonsmetoder via id-utvidelser. I lys av dette er skjulingsmetodene be-
skrevet i dette avsnittet og i avsnitt 3.7.3 (Skjuling på spesi�kasjonsnivå) fore-
løpig kun av teoretisk interesse. I en drøfting av resolusjonsmetoder for generell
semantikk, vil disse skjulingsmetodene imidlertid være av praktisk interesse.
3.8 Alternativ til id-utvidelser under konsistens
Vi skal som et apropos til begrepet `delvis monoton tillukning' se litt på rela-
sjonen <s som de�nert i (3.9) på side 88.
Vi skal igjen adoptere den formelle omgivelse som de�nert i �gur 3.7 på side
85.
Vi nevnte i avsnitt 3.7.1 (Operasjonell skjuling) at delvis monoton tillukning
anvendt på ('s [�$�E G��
)�, på sett og vis gir forskjellige grader av samarbeid
mellom 's og�$�E G��
. Full monoton tillukning gir rett og slett initialsemantikk.
Vi skal nå se på den andre enden av skalaen; nemlig ingen monoton tillukning.
På side 41 i avsnitt 2.3.7 introduserte vi begrepet `separabel semantikk', og
viste at relasjonen de�nert i (2.13) side 41 uttrykker slik semantikk.
Vi skal her vise at separabel semantikk også kan uttrykkes ved relasjonen
<s som de�nert i (3.9).
Teorem 3.37 Anta T��K og KREP1. Vi har da
s(g)�$�Es(g0) , g ('s [
�$�E G��
)� g0
for alle g; g0 2 G��.
Bevis: Anta
s(g)�$�Es(g0)
for vilkårlige g; g0 2 G��. Da har vi
g !fs(x)=xg s(g)�$�Es(g0) !fs(x)=xg g
0
og altså
g�s!�Eid
g0
Ved sats 3.30 på side 127 har vi da
g ('s [�$�E G��
)� g0
For den andre inklusjonen, betrakt en vilkårlig ('s [�$�E G��
)�-utledning
hg; : : : ; g0i i �E. Vi induserer på lengden n av denne.
n = 1: Trivielt har vi s(g)�$�Es(g).
n = k + 1;k � 1: Da har vi hg; : : : ; gk; g0i. Induksjonshypotesen gir
s(g)�$�Es(gk)
Anta gk 's g0. Dette betyr s(gk)
�$Es
s(g0), som medfører s(gk)�$�Es(g0), og
induksjonssteget følger.
138
![Page 147: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/147.jpg)
3.9. Veri�kasjon av indirekte algebraiske spesi�kasjoner
Anta gk $�E g0. Da har vi ved monotonitet mhp. kontekstapplikasjon umid-
delbart s(gk)�$�Es(g0).
2
Teorem 3.37 gir altså at separabel semantikk kan uttrykkes ved <s.
Relasjonen <s er, på linje med indirekte semantikk, en umiddelbar avledning
av ren ligningslogikk, og gjør derfor semantikken ('s [�$�E G��
)� tilgjengelig for
ligningslogiske metoder.
Merk at ved sats 3.30, er også�s!�Eid
et uttrykk for ('s [�$�E G��
)�. Forøvrig
er da ved teorem 3.37 og sats 3.30, <s identisk med�s!�Eid
. Relasjonen�s!�Eid
er en
operasjonell restriksjon av ligningslogikk: Ligningen s(x) = x kan kun anvendes
i posisjon ".
I tråd med skjuling av hjelpefunksjoner, kan man videre vise under KONVERG,
KONSTR og DISJ, at
('s [�$�E G��
)�G� = ('s [�$Ed
G�)�
(på analog måte som vi viste lemma 3.33 på side 129). Vi har da at restriksjonen
<sG� av <s (og således også restriksjonen�s!�Eid G� av
�s!�Eid
) uttrykker separabel
semantikk bestemt av � og Ed.
Merk til slutt at under konsistens gir teoremene 2.20 side 42 og 2.21 side 43,
at <s (<sG�) og�s!�Eid
(�s!�Eid G�
) gir initialsemantikk og degenerert �nalsemantikk.
Under konsistens er altså<s�en umiddelbar avledning av ligningslogikk, og�s!�Eid
�en enkel restriksjon på ligningslogikk, mulige erstatninger for id-utvidelser
i tilnærminger til eksisterende resolusjonsmetoder.
3.9 Veri�kasjon av indirekte algebraiske spesi�-
kasjoner
Å avgjøre om en indirekte spesi�ksjon i seg selv gir ønsket semantikk, er inte-
ressant. Dette kanskje enda mer, nå som det er mulig å avvæpne den iboende
mulighet for inkonsistens i en indirekte spesi�kasjon.
Vi vender oss nå et øyeblikk mot oppgaven å veri�sere om en indirekte
algebraisk spesi�kasjon gir oss den semantikk vi ønsker. Vi kommenterer kort
følgende metoder:
1. Program-analyse.
2. Veri�kasjon relativt til en direkte algebraisk spesi�kasjon, herunder
(a) sammenligning av indirekte- med direkte spesi�kasjon
(b) generering av direkte spesi�kasjon fra indirekte spesi�kasjon.
3.9.1 Program-analyse
Konstruktiv algebraisk funksjonsspesi�kasjon fører ofte naturlig til at den al-
gebraiske funksjonsspesi�kasjonen er konvergent. Det er derfor mulig å se på
konstruktive algebraiske funksjonsspesi�kasjoner som abstrakte deterministiske
programmer. I prinsipp kan da metoder for programveri�kasjon tas ibruk for å
veri�sere algebraiske funksjonsspesi�kasjoner.
Å eksplisitt ta ibruk programveri�kasjonsmetoder er ikke vanligvis naturlig
for algebraisk funksjonsspesi�kasjon. Men vi har i eksempler antydet bruk av
slike metoder for algebraisk spesi�kasjon av klasserepresentant-funksjoner. Vi
har snakket om invarianter, subprosedyrer osv.
139
![Page 148: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/148.jpg)
3. Semantikkgivende syntaktiske funksjoner
Våre algebraiske spesi�kasjoner av syntaktiske klasserepresentant-funksjoner
har en mye mer operasjonell stil enn det som vanligvis er tilfellet for algebra-
isk spesi�kasjon. Dette er ikke så rart: Våre syntaktiske funksjoner opererer
på termer; på en lignende måte som abstrakte maskiner gjør. En delmengde
av kanonisk-representant funksjoner er endog beregnbare/implementerbare av
konvergente omskrivningssystem (se �gur 3.1 side 67). Dette har gjenspeilt seg
i våre algebraiske spesi�kasjoner av syntaktiske funksjoner.
Således er det naturlig å ta ibruk programveri�kasjonsmetoder i full kraft.
Vi kan f.eks. benytte <Hoare-logikk> eller andre metoder. Vi har ikke gjort,
og kommer ikke til å gjøre dette i detalj. Men vi har som sagt i eksempler
antydet i grove trekk bruken av programveri�kasjonsmetoder på spesi�kasjoner
av syntaktiske funksjoner.
Vi biter oss tilsynelatende i halen. Vi har havnet i programmeringsverdenen
igjen, mens vi jo søkte å resonnere om programmer i en mer abstrakt formell
verden. Begrepsmessig er dette ikke noe problem, og våre algebraiske beskriv-
elser av syntaktiske funksjoner kan fortsatt sies å være på et mer abstrakt nivå
enn konkret programmering. Men det er likevel verdt å merke seg at indirek-
te spesi�kasjon ved algebraiske beskrivelser av syntaktiske funksjoner kan være
mindre abstrakt enn (vanlig) algebraisk spesi�kasjon.
3.9.2 Veri�kasjon relativt til en direkte algebraisk spesi�-
kasjon
Her fungerer en direkte algebraisk spesi�kasjon som en fasit for hvilken seman-
tikk som ønskes.
Sammenligning med direkte spesi�kasjon
Anta en indirekte spesi�kasjon Es med spesi�serende symbol s. Anta en direkte
spesi�kasjon E, som gir den semantikk vi ønsker at den indirekte spesi�kasjon
skal gi på�si�G�. Vi vil med andre ord at
s(g)�$Ess(g0) , g
�$Eg0 (3.25)
for alle g; g0 2 G�. Kravet (3.25) representerer en betydelig bevisbyrde. Det er
ikke utenkelig at programveri�kasjonsmetoder som beskrevet i forrige avsnitt, er
på sin plass i tilknytning til Es. Det er heller ikke utenkelig at (semi)-mekaniske
metoder kan appliseres for å veri�sere (3.25).
Generering av direkte spesi�kasjon
En annen mulighet er å generere en ekvivalent direkte spesi�kasjon fra den
indirekte spesi�kasjonen. Den genererte direkte spesi�kasjon kan så veri�seres;
eller man kanskje vet at denne gir den ønskede semantikk.
I avsnitt 3.6.4 på side 122 så vi at Knuth&Bendix-komplettering av id -
utvidelsen av en indirekte spesi�kasjon kunne gi oss en slik ekvivalent direkte
spesi�kasjon.
Vi husker at dette forutsetter at vi kan etablere kjernebevaring for denne id -
utvidelsen. Vi husker også fra diskusjonen på side 115 og eksempel 63 på side 115
at slik generering ved Knuth&Bendix-komplettering av en direkte spesi�kasjon,
forutsetter eksistensen av en direkte spesi�kasjon hvor hver ligning er en logisk
konsekvens av id -utvidelsen.
Vi kunne nå ønske å fri oss fra disse forutsetningene. Den siste forutset-
ningen er grunnet i måten Knuth&Bendix-prosesser fungerer på (generering av
logiske konsekvenser ved å �nne kritiske par). Og videre, siden det er mulig
140
![Page 149: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/149.jpg)
3.10. Andre temaer
å avvæpne den iboende mulighet for inkonsistens i indirekte spesi�kasjoner, er
nå en indirekte spesi�kasjon interessant i spesi�kasjonssammenheng, selv om
dens id-utvidelse ikke er kjernebevarende; og dermed ikke oppfyller den første
forutsetningen over. Nå hevder påstand 3.35 side 132 generering av direkte spe-
si�kasjon i henhold til skjuling av hjelpefunksjonssymboler. Men selv om denne
påstanden viser seg å holde, vil den siste forutsetningen over fortsatt være bin-
dende.
Ialt er det derfor interessant å �nne andre metoder å generere direkte spesi�-
kasjoner fra indirekte spesi�kasjoner på, enn ved Knuth&Bendix-komplettering.
Jeg har i et arbeidsnotat [Han94] skissert en naïv metode som bygger på
generalisering utfra eksempler. Tanken er at det skal være mulig å sette en øvre
grense for eksempler som må sees, utfra syntaktiske egenskaper i den indirekte
spesi�kasjonen. Denne metoden er her ikke utarbeidet eller veri�sert på noen
måte, og det virker vanskelig å �nne generelle egenskaper i ligningsmengder
som kan overføres til en slik øvre grense. Det er likevel ikke utenkelig at visse
heuristiske regler kan utarbeides for visse forutsetninger. Vi kan bare nevne
eksempelsvis at metoden gitt En for n = 2 fra eksempel 65 på side 116 på et
tidspunkt gir
Edir2 =
8>><>>:
pred(succ(0)) = 0;
pred(succ(succ(0))) = succ(0);
succ(succ(succ(0))) = 0;
succ(pred(x)) = x
9>>=>>;
(Dette er Edirn for n = 2 fra eksempel 75 på side 125).
Edir2 er generert på et tidspunkt hvor det virker opplagt at ingen �ere ek-
sempler behøver å sees. Dette er for metoden grunnet i at ingen regel i E2
<betrakter/ser forskjell på> større deler av generator-uttrykk enn dem av leng-
de 3. Det kunne her tenkes at det utfra dette var mulig å bevise en øvre grense
for lengden av termer som må prøves i eksempler.
Det er også nærliggende å tenke seg muligheten for etablering av indre
kongruens ved en variant av den naïv metoden.
Generering av direkte spesi�kasjon fra indirekte spesi�kasjon kan sees som
en form for programsyntese eller programtransformasjon. Det kan være fruktbart
å se på idéer innen disse felt. Se f.eks. [DR91].
3.10 Andre temaer
Vi avslutter dette kapittel med noen tanker som viderefører noen av temaene
vi har diskutert:
3.10.1 Generaliserte id-utvidelser
Vi reduserte i avsnitt 3.4.5 initialsemantikk relativ til indirekte semantikk til
basis-initialsemantikk. Dette gjorde vi ved hjelp av id-utvidelser av indirekte
spesi�kasjoner. En forutsetning var da at den indirekte spesi�kasjonen kunne
sees som en algebraisk beskrivelse av en kanonisk-representant funksjon. (Husk
antagelsene KREP1 og KREP2.)
Hva nå med indirekte spesi�kasjoner som er algebraiske beskrivelser av klas-
serepresentant funksjoner andre enn kanonisk-representant funksjoner? Det er
ting som tyder på at diskusjoner analoge til dem ført for algebraiske beskrivel-
ser av kanonisk-representant funksjoner og id -utvidelser, kan føres for algebra-
iske beskrivelser av generelle klasserepresentant funksjoner og generaliserte id -
utvidelser.
141
![Page 150: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/150.jpg)
3. Semantikkgivende syntaktiske funksjoner
Slike generaliserte id -utvidelser skal simulere normale id-utvidelser. Dvs.
dersom for spesi�serende symbol s
s(g) = f(g)
for alle (generator-)grunntermer g, må vi �nne et funksjonssymbol h slik at
s(h(x)) = x
Et slikt funksjonssymbol h �nnes kanskje allerede i term-universet, men må også
kanskje innføres som et nytt symbol med tilhørende spesi�kasjon.
Eksempel 82 Betrakt Egamma fra eksempel 57 på side 108. Vi har
gamma(g)�$
Egammasucc(g)
for hver g 2 GInt.
Den generaliserte -id -utvidelse av Egamma fremkommer da ved ligningen
gamma(pred(x)) = x
d
Vi forfølger ikke dette temaet videre her. Vi viser bare følgende eksempel på
komplettering av en en slik generalisert id -utvidelse.
Eksempel 83 Betrakt Egamma fra eksempel 57 på side 108. La
�h = fmemg
�c = f0; succ;predg
Vår eksekvering av en Knuth&Bendix-prosess gitt Egamma[fgamma(pred(x))=xg
og en term-ordning der enhver u 2 T�h[�c(V)nT�c(V) er større i ordningen enn
alle v 2 T�c(V), terminerer ikke, men gir den vedvarende regelmengden
RKBgamma
=
8>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>:
gamma(x)! succ(x);
succ(pred(x))! x;
pred(succ(x))! x;
mem(x,0)! x;
mem(x,succi(0))! succ
i(x); 1 � i;
mem(x,predi(0))! pred
i(x);1 � i;
mem(succ(x),y)!mem(x,succ(y));
mem(pred(x),y)!mem(x,pred(y));
mem(0,x)! x
9>>>>>>>>>>>>>>>>=>>>>>>>>>>>>>>>>;
(Argument for ikke-terminering og vedvarenhet som i eksempel 61 på side 113.)
Alle regler uten den første er identiske med dem i RKBdelta i eksempel 61 på side
113. Merk spesielt <Int-manifestet>.d
3.10.2 id-utvidelser og �nalsemantikk
Hva skjer hvis ligningen h(x) = x tilføres for et de�nert funksjonssymbol hment
å spesi�sere semantikk ved prinsipp (2.11) på side 26?
Kan noe av vår diskusjon rundt id -utvidelser overføres til �nal-semantikk
på denne måten? Kan �nal inkonsistens (se de�nisjon 2.12 side 33) oppdages og
etableres ved metodene vi har nevnt for id-utvidelser? Er det naturlig å snakke
142
![Page 151: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/151.jpg)
3.10. Andre temaer
om kunstig inkonsistens i samband med �nal-semantikk, og kan isåfall kunstig
inkonsistens elimineres ved f.eks. en operasjonell restriksjon av ligningslogikken
for <�nale id-utvidelser>?
Merk at hvis h er en observator, må typer droppes. Det er ikke sikkert at
dette er problemfritt.
3.10.3 Fikspunkt-semantikk
Betrakt en funksjon f på et termunivers G� slik at det for alle g 2 G� �nnes et
positivt naturlig tall n slik at
fn+i(g) = fn(g)
for alle i � n. Elementet fn(g) er et �kspunkt for f . Videre kan det her for hvert
element g i domenet til f identi�seres et unikt slikt �kspunkt gffix . Betrakt
relasjonen
�xf = fg; gffix
�j g 2 G�g
Relasjonen �xf er ikke bare en funksjon på G�, men dessuten en �kspunkt-
funksjon på G� (se (3.4) side 64), siden
�xf(�xf(g)) = �xf (gffix ) = �xf (g)
Merk at selve f ikke nødvendigvis er en �kspunktfunksjon.
Vi kan nå, dersom �xf er semantikkgivende, spesi�sere semantikk som ved
prinsipp (3.2) på side 64:
g ' g0 , �xf (g) = �xf(g0)
La oss kalle en syntaktisk funksjon f for hvilket det �nnes en slik semantikkgi-
vende �xf , en semantikkantydende funksjon. Merk at �xf er en kanonisk-re-
presentant funksjon (se �gur 3.1 side 67).
Det vi skal forslå her, er at algebraiske spesi�kasjoner/beskrivelser av se-
mantikkantydende syntaktiske funksjoner muligens kan brukes sammen med
ligningslogikk i de�nisjon og resolusjon av semantikk.
Det analoge til indirekte spesi�kasjon blir da for en Es med `spesi�serende
symbol s':
g 's g0 , 9n;m j sn(g)�$Essm(g0)
Dersom Es er konvergent kan høyresiden avgjøres ved følgende prosess:
La g0 = g
Beregn gi+1 = s(gi)!Es
inntil s(gi+1)!Es = s(gi)!Es, for en i = k
La g00 = g0
Beregn g0i+1 = s(g0i)!Es
inntil s(g0i+1)!Es = s(g0i)!Es, for en i = l
Test gk+1 = g0l+1
Merk at dersom Es er en algebraisk spesi�kasjon/beskrivelse av en semantikk-
antydende syntaktisk funksjon, så må denne prosessen terminere; dvs k og l i
prosess-skissen over �nnes.
143
![Page 152: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/152.jpg)
3. Semantikkgivende syntaktiske funksjoner
Eksempel 84 Betrakt E0�Int
fra eksempel 73 side 123 og eksempel 49 side 83:
E0�Int
=
8>>>>>>>><>>>>>>>>:
delta(succ(pred(x))) = delta(x);
delta(pred(succ(x))) = delta(x);
delta(succ(succ(x))) = succ(delta(succ(x)));
delta(pred(pred(x))) = pred(delta(pred(x)));
delta(succ(0)) = succ(0);
delta(pred(0)) = pred(0);
delta(0) = 0
9>>>>>>>>=>>>>>>>>;
Vi husker at E0�Int
ikke er indirekte GInt-kongruent. Siden E0�Int
er tilstrekkelig
fdeltag-komplett mhp. GInt, er det lett å se at E0�Int
ikke kan være en algebraisk
beskrivelse av en semantikkgivende syntaktisk funksjon.
Imidlertid er E0�Int
en spesi�kasjon av en semantikkantydende syntaktisk
funksjon f . Videre er
�xf = fg; gffix
�j g 2 GIntg
identisk med kanonisk-representant funksjonen �Int fra eksempel 32 side 64.
E0�Int
er konvergent, og vi har f.eks.
delta(delta(pred(pred(succ(succ(0))))))!!
E0�Int
0 = 0!
E0�Int
delta(pred(succ(0)))
og
delta(succ(pred(succ(pred(succ(pred(0)))))))!!E0�Int
0 = 0! E0�Int
delta(succ(pred(0)))
d
Eksempel 85 Betrakt følgende utvidelse av E fra eksempel 74 på side 123:
E0 =
8>>>>>>>><>>>>>>>>:
delta(succ(pred(x))) = x;
delta(pred(succ(x))) = x;
delta(succ(succ(x))) = succ(delta(succ(x)));
delta(pred(pred(x))) = pred(delta(pred(x)));
delta(succ(0)) = succ(0);
delta(pred(0)) = pred(0);
delta(0) = 0
9>>>>>>>>=>>>>>>>>;
E0 er en spesi�kasjon av en semantikkantydende syntaktisk funksjon h, slik at
�xh = fg; ghfix
�j g 2 GIntg
er identisk med kanonisk-representant funksjonen �Int fra eksempel 32. E0 er
konvergent, og vi har f.eks.
deltan(succpred
n(0))
!!E0
0
d
3.11 Oppsummering
I dette kapitlet har vi introdusert en ny måte å spesi�sere atomær semantikk
på; nemlig indirekte algebraisk spesi�kasjon. Som grunnlag og bakgrunn for in-
direkte algebraisk spesi�kasjon, har vi semantikkgivende syntaktiske funksjon-
er. Kanonisk-representant funksjoner er her spesielt interessante, ved at bildet
144
![Page 153: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/153.jpg)
3.11. Oppsummering
til kanonisk-representant funksjoner er naturlige klasserepresentanter. Algebra-
iske beskrivelser av kanonisk-representant funksjoner utgjør naturlig indirekte
algebraiske spesi�kasjoner, men vi har sett at algebraiske beskrivelser av seman-
tikkgivende syntaktiske funksjoner andre enn kanonisk-representant funksjoner
også kan fungere som indirekte algebraisk spesi�kasjon.
Teorien utviklet i kapittel 2 anvendes, ved at initial- og �nal-semantikk relativ
til indirekte spesi�sert kjernesemantikk betraktes. Slik initial- og �nal-semantikk
kan i utgangspunktet ikke sees som basis-semantikker. I mangel av resolusjons-
metoder for generell initial- og �nal-semantikk, har vi således et problem.
Imidlertid har vi under visse rimelige og interessante forutsetninger redusert
semantikk relativ til indirekte kjerne, til basis-semantikker. Vi har viet spesiell
oppmerksomhet til reduksjon til basis-initialsemantikk. Denne reduksjonen er
gjort ved id-utvidelser av indirekte spesi�kasjon. En grunnleggende forutsetning
for benyttelsen av id-utvidelser i reduksjonen, er at den indirekte spesi�kasjon
er en algebraisk beskrivelse av en kanonisk-representant funksjon.
Vi har videre sett at indirekte spesi�kasjon kan ha en iboende kilde til in-
konsistens. Dette fordi algebraiske beskrivelser av semantikkgivende funksjoner
naturlig har beskrivelser av hjelpefunksjoner.
Vi har i den sammenheng studert id-utvidelser videre, og har introdusert
kjernebevaring for id -utvidelser. Kjernebevaring for id -utvidelser kan ved re-
duksjon, overføres til initial-konsistens relativt til indirekte spesi�sert kjerne.
Vi har sett at Knuth&Bendix-komplettering på id -utvidelser kan brukes for å
oppdage mangel på slik kjernebevaring, og for å synliggjøre kjernebevaring, gitt
viss annen informasjon.
Vi har også sett at Knuth&Bendix-komplettering av id -utvidelser, gitt kjer-
nebevaring, også kan synliggjøre kjernesemantikken i form av en direkte algebra-
isk spesi�kasjon. Dette kan sees som program-transformasjon. Vi har ettersøkt
andre friere metoder å transformere indirekte spesi�kasjoner til direkte spesi�-
kasjoner på, enn ved den noe restriktive Knuth&Bendix-komplettering.
En forutsetning for indirekte spesi�kasjon er indirekte kongruens. (Et analogt
kongruenskrav må også stilles ved aktiv �nal-spesi�kasjon ved prinsipp (2.11)
på side 26, f.eks. ved spesi�kasjon ved observatorer ved såkalt observator-basis.
I [Dah92] beskrives denne teknikken, men kongruenskravet ansees som umid-
delbart oppfylt under konvergent konstruktiv funksjonsspesi�kasjon (TGI). At
dette ikke holder demonstreres f.eks. av spesi�kasjonene E0�Int
ogE0 fra eksempl-
er 84 og 85 hhv., dersom delta sees som en observator og en skyggetype innføres.)
En algebraisk beskrivelse som ikke er indirekte kongruent kan likevel, ved sin
id -utvidelse, spesi�sere fornuftig semantikk. Men da gir ikke våre metoder for
synliggjøring noen mening.
Vi har videre innført begrepet kunstig inkonsistens for den inkonsistens som
skyldes algebraisk beskrivelse av hjelpefunksjoner. Dette begrep har vi grunnet i
at hjelpefunksjon(symbol)ene er implementatoriske hjelpemidler, og burde være
skjult fra logikken. Vi har vist at kunstig inkonsistens kan elimineres, ved faktisk
å skjule disse hjelpefunksjon(symbol)ene. Vi har vist dette ved en operasjonell
restriksjon av ligningslogikk. Vi har spekulert at det er mulig å implementere
denne operasjonelle skjuling i basis-resolusjonsmetoder, og vi har antydet noen
resonnementer i den forbindelse. Vi har dessuten eliminert kunstig inkonsistens
ved skjuling på spesi�kasjonsnivå ved å innføre fullstendig ukompletthet, og ved
å innføre typer. De to sistnevnte skaper imidlertid problemer i forbindelse med
reduksjon til basis-initialsemantikk.
Våre resultater om Knuth&Bendix-komplettering av id-utvidelser antyder
også at basis-semantikk spesi�sering ved id -utvidelser i forbindelse med basis-
semantisk resolusjon kan være litt søkt, for resolusjons-metoder som fordrer kon-
vergente spesi�kasjonsligninger. Ved vellykket komplettering av id -utvidelser,
145
![Page 154: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/154.jpg)
3. Semantikkgivende syntaktiske funksjoner
fås jo ved vår kompletteringsstrategi, direkte algebraiske spesi�kasjoner.
Hvorvidt man kan spesi�sere andre semantikker med indirekte spesi�kasjon
enn med direkte spesi�kasjon, er uklart. Det er også uklart om klassen av se-
mantikker som kan spesi�seres indirekte ved algebraiske beskrivelser av kanon-
isk-representant funksjoner, er mindre enn klassen av semantikker som kan spe-
si�seres indirekte ved algebraiske beskrivelser av semantikkgivende syntaktiske
funksjoner generelt.
Det er likevel klart at indirekte spesi�kasjon utgjør et interessant alternativ
og supplement til direkte spesi�kasjon. Vår indirekte spesi�kasjon er, siden den
er grunnet i syntaktiske funksjoner, generelt mer operasjonell i stil enn direk-
te spesi�kasjon. Veri�kasjon av indirekte spesi�kasjoner kan således gjøres ved
metoder utviklet for mer konkrete programmer. Om dette i seg selv er en fordel
har vi ikke tatt virkelig stilling til.
Vi har også sett at indirekte spesi�kasjon gir et deterministisk ligningslog-
isk grep om �ere semantikker enn det direkte spesi�kasjon gir. Således utvider
indirekte spesi�kasjon klassen av semantikker som er avgjørbare ved termom-
skriving i enkleste form.
Avslutningsvis har vi antydet noen videreføringer av våre idéer i dette avsnit-
tet. Spesielt interessant er kanskje om resultater for id-utvidelser kan overføres
til andre områder av spesi�kasjon.
146
![Page 155: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/155.jpg)
Kapittel 4
Sekvens-utvidet Knuth&
Bendix-komplettering
Konvergente ligningsmengder er essensielle i �ere ligningslogikk-baserte meto-
der som søker mekanisk-formell resonnering. Dersom en gitt ligningsmengde E
ikke er konvergent, kan i noen tilfeller en Knuth&Bendix-prosess gitt E, gi en
konvergent ligningsmengde R som er komplett for E. Det kan f.eks. da avgjø-
res algoritmisk hvorvidt en gitt ligning s = t er en logisk konsekvens av E ved
omskriving i R til unike normalformer s!R og t!R. Ligningen s = t er en logisk
konsekvens av E hvis og bare hvis s!R = t!R.
Vi kan da ved omskrivingen også konstruere R-utledninger (syntaktiske ob-
jekter) hs; : : : ; s!Ri og ht; : : : ; t!Ri. Vi kan således få et konstruktivt bevis/mot-
bevis i R for at s = t er en logisk konsekvens av E.
Imidlertid kan det av og til være ønskelig å se slike bevis i den opprinnne-
lige ligningsmengden E framfor i (den muligens svært forskjellig fra E) regel-
/ligningsmengde R. Vi ønsker m.a.o. av og til E-utledninger framfor R-utled-
ninger.
Selvfølgelig oppfylles dette ønsket hvis E i seg selv er konvergent, men
ved ikke-konvergent E er det generelt ikke uten videre så lett å konstruere
E-utledninger (mekanisk).
Vi presenterer i dette kapittel en metode som gjør det mulig å konstruere E-
utledninger mekanisk utfra de korresponderende R-utledninger; for R komplett
for E og R generert ved Knuth&Bendix-komplettering.
Kjernen i metoden er en enkel utvidelse av Knuth&Bendix-komplettering
sombestår i å legge inn ekstra datastruktur som<husker> E-utledningshistorien
til hver regel generert i løpet av kompletteringsprosessen. Hver regel generert vil
således ha en E-utledning tilknyttet seg. Ved en vellykket prosess resulterende i
en for E komplett R, kan da en E-utledning konstrueres mekanisk utfra enhver
omskriving i R, ved de tilknyttede E-utledningene, og siden enhver omskriving
i R er terminerende.
4.1 De�nisjon av sekvens-utvidet Knuth&Ben-
dix-komplettering
I dette avsnittet beskrives utvidelsen av Knuth&Bendix-komplettering. For en
gitt ligningsmengde E og en regelmengde R komplett for E, er hensikten med
utvidelsen å gjøre det mulig å konstruere E-utledninger fra R-utledninger. Vi
trenger et kraftigere begrepsapparat omkring utledningssekvenser.
147
![Page 156: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/156.jpg)
4. Sekvens-utvidet Knuth&Bendix-komplettering
4.1.1 Utledningssekvenser
For en term-mengde T�(V), la Seq� betegne mengden av alle sekvenser over
T�(V). La videre Seq+�betegne mengden av alle ikke-tomme sekvenser over
T�(V). Vi skal betrakte mengdene Seq� og Seq+�som generert av generator-
funksjonene " og ` , og hi og ` hhv.:
Generatorfunksjoner:
" 2 Seq�hi 2 (T�(V) ! Seq+
�)
` 2 (Seq� � T�(V) ! Seq+�)
Vi skal ha behov for følgende funksjoner:
lt 2 (Seq+�
! T�(V))
rt 2 (Seq+�
! T�(V))
rr 2 (Seq+�
! Seq�)
a 2 (Seq� � Seq� ! Seq�)
a 2 (T�(V)� Seq� ! Seq+�)
rev 2 (Seq� ! Seq�)
lt(x ` t) =
�t for x = "
lt(x) for x 6= "
rt(x ` t) = t
rr(x ` t) =
�" for x = "
rr(x) ` t for x 6= "
x a y =
�x for y = "
(x a z) ` t for y = z ` t
t a x = hti a x
rev(x) =
�" for x = "
t a rev(y) for x = y ` t
Følgende to funksjoner er utvidelser til term-sekvenser av funksjonen
[]p på termer og av substitusjoner på termer.
fgp 2 (T�(V)� Seq+�! Seq+
�)
�S 2 (Seq+�
! Seq+�)
Funksjonen fgp legger en kontekst rundt hver komponent i en term-
sekvens:
tfx ` ugp =
�ht[u]pi for x = "
tfxgp ` t[u]p for x 6= "
148
![Page 157: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/157.jpg)
4.1. De�nisjon av sekvens-utvidet Knuth&Bendix-komplettering
Funksjonen �S utfører en substitusjon på hver komponent i en term-
sekvens:
For en substitusjon � 2 SbstT�(V):
(x ` t)�S = x�S ` t�
Vi lar Sts betegne en sekvens x i Seq� med lt(x) = s og rt(x) = t.
Gitt en ligningsmengdeE, betegner vimengden av alleE-utledninger i T�(V)
med Seq�(E). Vi har Seq�(E) � Seq+�.
Anta det �nnes en E-utledning Sts 2 Seq�(E). Siden relasjonen�$E
i T�(V)
er monoton mhp. substitusjon og monoton mhp. kontekstapplikasjon, vet vi at
også Sc[t�]
c[s�] 2 Seq�(E) �nnes, for vilkårlige � 2 SbstT�(V) og kontekst c 2 T�(V).
Imidlertid er vi i dette avsnittet opptatt av å konstruere utledninger. Det
skal i den sammenheng være interessant å vite hvordan vi fra en utledning
Sts 2 Seq�(E) kan konstruere (mekanisk) en utledning Sc[t�]
c[s�]2 Seq�(E).
Vi presenterer derfor følgende lemmata som det er svært lett å innse rikt-
igheten av. For ordens skyld gjennomfører vi likevel bevis for dem. Det første
lemma beskriver konstruksjon ved �S :
Lemma 4.1 La � være en vilkårlig signatur. La E være en vilkårlig lignings-
mengde. La � være en vilkårlig substitusjon i SbstT�(V).
Anta gitt en E-utledning Sts 2 Seq�(E). Da har vi Sts�S 2 Seq�(E), og
lt(Sts�S) = s� og rt(Sts�S) = t�.
Bevis: Induksjon på lengden n av en vilkårlig Sts 2 Seq�(E).
n = 1: Da er s = t og Sss�S = hs�i er trivielt en E-utledningssekvens i
T�(V). Videre er lt(Sss�S) = s� og rt(Sss�S) = s�.
n = k + 1;k � 1: Da er Sts = hs; : : : ; sk; ti, og da ved de�nisjonen av �S :
Sts�S = Ssks �S ` t�
Induksjonshypotesen gir Ssks �S 2 Seq�(E) og lt(Ssks �S) = s� og rt(Ssks �S) =
sk�. Siden sk$E t og ved monotonitet mhp. substitusjon, har vi sk�$E t�. Følge-
lig er Sts�S 2 Seq�(E). Vi har lt(Sts�S) = lt(Ssks �S ` t�) = lt(Ssks �S) som ved
induksjonshypotesen er identisk med s�. Videre er rt(Sts�S) = rt(Ssks �S ` t�) =
t�.
2
Neste lemma beskriver konstruksjon ved fgp:
Lemma 4.2 La � være en vilkårlig signatur. La E være en vilkårlig lignings-
mengde. La c 2 T�(V) være en vilkårlig konstekst.
Anta gitt en E-utledning Sts 2 Seq�(E). Da har vi cfStsg 2 Seq�(E), og
lt(cfStsg) = c[s] og rt(cfStsg) = c[t].
Bevis: Induksjon på lengden n av en vilkårlig Sts 2 Seq�(E).
n = 1: Da er s = t og cfStsg = hc[s]i er trivielt en E-utledningssekvens i
T�(V). Videre er lt(cfSssg) = c[s] og rt(cfSssg) = c[s].
n = k + 1; k � 1: Da er Sts = hs; : : : ; sk; ti, og da ved de�nisjonen av fgp:
cfStsg = cfSsks g ` c[t]
Induksjonshypotesen gir cfSsks g 2 Seq�(E) og lt(cfSsks g) = c[s] og rt(cfSsks g) =
c[sk]. Siden sk $E t og ved monotonitet, har vi c[sk]$E c[t]. Følgelig er cfStsg 2
149
![Page 158: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/158.jpg)
4. Sekvens-utvidet Knuth&Bendix-komplettering
Seq�(E). Vi har lt(cfStsg) = lt(cfSsks g ` c[t]) = lt(cfSsks g) som ved induksjons-
hypotesen er identisk med c[s]. Videre er rt(cfStsg) = rt(cfSsks g ` c[t]) = c[t].
2
Funksjonene �S og fgp er mekaniserbare. Lemma 4.1 og lemma 4.2 sier derfor
at en utledning Sc[t�]
c[s�] 2 Seq�(E) kan konstrueres mekanisk fra en utledning Sts.
Funksjonene a og rev er også opplagt mekaniserbare, så andre <konstruk-
sjonsmetoder> vi får bruk for opppsummeres i følgende observasjon:
Observasjon 4.3 La � være en vilkårlig signatur. La E være en vilkårlig lig-
ningsmengde. La Sts og Sut være to vilkårlige utledninger i Seq�(E). Da er
1. rev(Sts) 2 Seq�(E), og lt(rev(Sts)) = t og rt(rev(Sts)) = s.
2. Sts a rr(Sut ) 2 Seq�(E), og lt(Sts a rr(Sut )) = s og rt(Sts a rr(Sut )) = u.
Det sentrale for oss er nå:
Sats 4.4 La � være en vilkårlig signatur. La E være en vilkårlig ligningsmeng-
de, og la R være en for E komplett regelmengde. Anta s !Rt for vilkårlige
s; t 2 T�(V). Dvs. det �ns en regel v! h i R, en posisjon p i s og en substitu-
sjon � slik at sjp = v� og t = s[h�]p.
Anta en Shv 2 Seq�(E). Da er sfShv�Sgp 2 Seq�(E). Videre er lt(sfS
hv�Sgp) =
s og rt(sfShv�Sgp) = t. Altså kan en Sts konstrueres fra Shv .
Bevis: Det �nnes en Shv 2 Seq�(E), siden R er komplett for E. Resten er enkelt:
Ved lemma 4.1 kan en Sh�v� 2 Seq�(E) konstrueres ved Shv�S . Ved lemma 4.2
kan videre en Ss[h�]ps[v�]p
2 Seq�(E) konstrueres ved sfSh�v� gp; dvs. ved sfS
hv�Sg.
Men nå er s[v�]p = s og s[h�]p = t, så vi kan altså konstruere en Sts.
2
Det er enkelt å utvide sats 4.4 fra ett enkelt R-omskrivningssteg !R
til�$R:
Sats 4.5 La � være en vilkårlig signatur. La E være en vilkårlig ligningsmeng-
de, og la R være en for E komplett regelmengde. Anta s�$Rt for vilkårlige
s; t 2 T�(V).
Da kan en utledningssekvens Sts 2 Seq�(E) konstrueres, gitt utledningssek-
venser Shv 2 Seq�(E) for hver regel v! h 2 R.
Bevis: Induksjon over lengden n til en vilkårlig R-utledning hs; : : : ; ti i T�(V).
n = 1: Trivielt.
n = k+1;k � 1: Da har vi enR-utledning hs; : : : ; sk; ti. Induksjonshypotesen
gir at en Ssks kan konstrueres. Anta sk!R t. Da kan ved sats 4.4 Stsk konstrueres
og satsen følger ved observasjon 4.3 punkt 2. Anta sk R t. Da kan ved sats 4.4
Sskt konstrueres. Da kan en Stsk konstrueres ved rev(Sskt ) (observasjon 4.3 punkt
1), og satsen følger ved observasjon 4.3 punkt 2.
2
Så anta en ikke-konvergent ligningsmengde E, og en regelmengde R komp-
lett for E. Fra en R-utledning for s�$Rt, kan altså en E-utledning Sts konstrueres
mekanisk utfra E-utledninger for reglene i R brukt i R-utledningen. Eller sna-
rere: Ved mekanisk R-omskrivning av to termer s og t til felles normalform, kan
samtidig en E-utledning Sts konstrueres; gitt at det fore�nnes E-utledninger for
hver av reglene i R.
Konstruksjonen av E-utledninger for hver av reglene i R, er nettopp det vår
utvidelse av Knuth&Bendix-komplettering tar seg av.
150
![Page 159: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/159.jpg)
4.1. De�nisjon av sekvens-utvidet Knuth&Bendix-komplettering
4.1.2 Utvidelsen
Vi beskriver nå sekvens-utvidelse av Knuth&Bendix-komplettering. Datastruk-
turen i vanlig Knuth&Bendix-komplettering består av en ligningsmengde og en
regelmengde. Vi utvider datastrukturen slik at det assosieres en utledningssek-
vens til hver ligning og regel. Datastrukturen blir således en hES;RSi hvor
ES � E(T�(V))� Seq�, og RS � E(T�(V))� Seq�. For en hES;RSi de�nerer
vi:
E@(ES) =�s = t j
s = t; Sts
�2 ES
R@(RS) =�v! h j
v! h;Shv
�2 RS
S@(ES) =�Sts j
s = t; Sts
�2 ES
S@(RS) =�Shv j
v! h;Shv
�2 RS
Sekvens-utvidet Knuth&Bendix-komplettering er beskrevet som et formelt sys-
tem i �gur 4.1.
4.1.3 Godtgjørelse for sekvens-utvidet Knuth&Bendix-
komplettering
Vår utvidelse av Knuth&Bendix-komplettering er rett fram; den består kun
i utvidet struktur og utvidelser i inferensreglene mhp. på den utvidete struk-
turen. Tilleggsstrukturen og utvidelsene i inferensreglene interfererer ikke med
den opprinnelige struktur og dennes utvikling gjennom de opprinnelige infer-
ensregler. Altså: hE;Ri = hE@(ES); R@(RS)i for en hES;RSi i det utvidete
inferensregelsettet er urørt av utvidelsen. Følgelig gjelder invarianter og satser
om hE;Ri vist for det opprinnelige inferensregelsettet, derfor også for hE;Ri i
det utvidete settet.
Vi skal nå vise følgende teorem som beskriver utledningene i en inferens-
sekvens i sekvens-utvidet Knuth&Bendix-komplettering.
Teorem 4.6 La
hhES0;RS0i; : : : ; hESk;RSki; : : :i
være en inferens-sekvens i sekvens-utvidet Knuth-Bendix komplettering. For en
vilkårlig hESi;RSii i sekvensen er
RSi = fv ! h;Shv
�j v ! h 2 R@(RSi)g
ESi = fs = t; Sts
�j s = t 2 E@(ESi)g
der Shv og Sts er E0 = E@(ES0)-utledninger. Dvs.
S@(RSi); S@(ESi) � Seq�(E0)
Godtgjørelse: (Induksjon på i)
i = 0: Opplagt ved inspeksjon av S-Init.
i = l; l > 0: Ved induksjonshypotesen holder teoremet for hESl�1; RSl�1i.
En av reglene utenom S-Init må være brukt for å oppnå hESl;RSli.
Anta S-Forenkle1 er brukt. Induksjonshypotesen gir at en Sts er konstru-
ert. Vi må godtgjøre at det er mulig å konstruere Srs . La R = (R@(RSl�1)).
151
![Page 160: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/160.jpg)
4. Sekvens-utvidet Knuth&Bendix-komplettering
Datastruktur:
hES;RSi hvor ES � E(T�(V)) � Seq�, og RS � E(T�(V)) � Seq�. R =
(R@(RS)). Relasjonen � er den gitte reduksjonsordning.
Inferensregler:
S-Init: For en E0 � E(T�(V)):
hfhv = h; hv; hiijv = h 2 E0g ;;i
S-Forenkle1: ES [
�s = t; Sts
�; RS
�ES [
�r = t; rev(Srs) a rr(Sts)
�;RS
� , s!Rr
S-Forenkle2: ES [
�s = t; Sts
�;RS
�ES [
�s = r;Sts a rr(Srt )
�;RS
� , t!Rr
S-Slett:
hES [ fhs = s;Sssig ;RSi
hES;RSi
S-Orienter1: ES [
�s = t; Sts
�; RS
�ES;RS [ f
s! t; Sts
�g� , s � t
S-Orienter2: ES [
�s = t; Sts
�; RS
�ES;RS [
�t! s; rev(Sts)
�� , t � s
S-Sammensett: ES;RS [
�s! t; Sts
��ES;RS [
�s! r; Sts a rr(Srt )
�� , t!Rr
S-Kollaps:
ES;RS [
�s! t; Sts
��ES [
�r = t; rev(Srs) a rr(Sts)
�;RS
� , s!R0r
for R0 � R n fs! tg.
S-Utled:
hES;RSiES [
�s = t; rev(Ssu) a rr(Stu)
�;RS
�
for hs; ti et ekte kritisk par fra u i R.
Figur 4.1: Inferensregler i sekvens-utvidet Knuth&Bendix-komplettering.
152
![Page 161: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/161.jpg)
4.1. De�nisjon av sekvens-utvidet Knuth&Bendix-komplettering
Regelmengden R er en del av den opprinnelige struktur. I vanlig Knuth&Ben-
dix-komplettering har vi invariant at R er terminerende og endelig. Betingelsen
s!Rr for regelen kan derfor bestemmes algoritmisk.
Ved induksjonshypotesen har vi at en Shv 2 S@(RSl�1) er konstruert for rege-
len v!h iR brukt ved omskrivingen s!Rr. Det følger av sats 4.4 at en algoritme
som bestemmer om s!Rr, på veien også kan konstruere Srs . Derfor gir det men-
ing å snakke om en konstruert Srs kun utfra betingelsen s!R r. Induksjonssteget
følger så ved inspeksjon av S-Forenkle1 og ved induksjonshypotesen.
Analoge argumenter kan brukes for reglene S-Forenkle2, S-Sammensett
og S-Kollaps.
Anta så at regelen S-Utled er brukt. Her må det godtgjøres at vi kan snakke
om konstruerte Ssu og Stu. Betingelsen hs; ti et ekte kritisk par fra u i R kan igjen
bestemmes algoritmisk. En algoritme for å �nne kritiske par vil kunne, gitt at
den har funnet et kritisk par hs; ti, �nne en u som kan omskrives (i ett skritt)
i R til s og t. Ved induksjonshypotesen har vi da at Shv ; Sh0
v0 2 S@(RSl�1) for
reglene v!h og v0! h0 i R brukt ved omskrivingene u!Rs og u!
Rt. Det følger
så av sats 4.4 at Ssu og Stu kan konstrueres.
Induksjonen for de øvrige regler er opplagt.
3
Anta at sekvens-utvidet Knuth&Bendix-komplettering er vellykket, gitt en
E0 � E(T�(V)). La hES1;RS1i være den induktive grense for denne vellykke-
te kompletteringen. Det følger fra resultater for standard Knuth&Bendix-kom-
plettering at R1 = R@(RS1) er et komplett omskrivningssystem for E0. Videre
følger det fra teorem 4.6 at S@(RS1) vil for hver regel i R1, inneholde en kor-
responderende E0-utledningssekvens�et E0-bevis for regelen.
*
Idéen bak vår måte å konstruere E-utledninger fra R-utledninger for R en
regelmengde komplett for E, er på ingen måte ra�nert. Den gir dog en mulighet
for å konstruere E-utledninger mekanisk for ikke-konvergent E.
En umiddelbar observasjon man kan komme med for vår metode, er at måten
hver Shv for hver regel v!h generert i prosessen bygges opp på er <blind>; i den
forstand at utviklingen av hver Shv slavisk følger utviklingen av <sin> v ! h.
Dessuten er metoden svært lokal�dette er bra beregningsmessig�men gir helt
sikkert ikke de mest elegante bevisene i E. Tvert imot har man følelsen av at
bevisene blir svært lange med mange identiske deler.
En opplagt utfordring i tilknytning til konstruksjon av utledninger eller bevis
er konstruksjon av korteste bevis. Vi går ikke videre med dette her, men henviser
til diskusjoner innen feltet bevisteori.
Ligningslogikk kan, ved siden av å presenteres ved term-omskrivning som vi
har gjort, også presenteres som et inferenssystem. <Bevisene> i et slikt infer-
enssystem er ikke utledningssekvenser, men bevis-trær. Det er mulig å de�nere
tre-utvidet Knuth&Bendix-komplettering, som konstruerer bevis-trær isteden-
for utledningssekvenser for hver regel generert i kompletteringsprosessen. Dette
er gjort i [Han92] på en analog måte som for sekvens-utvidet Knuth&Bendix-
komplettering.
153
![Page 162: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/162.jpg)
4. Sekvens-utvidet Knuth&Bendix-komplettering
4.2 Anvendelser av sekvens-utvidet Knuth&-
Bendix-komplettering
Vi skal antyde noen anvendelser av sekvens-utvidet Knuth&Bendix-kompletter-
ing i relasjon til diskusjonen forøvrig. Først tar vi igjen opp temaet id -utvidelser
og kjernebevaring fra avsnitt 3.6.1 i kapittel 3. Deretter ser vi på sekvens-
utvidet Knuth&Bendix-komplettering i tilknytning til diskusjonen om basis-
initialsemantikk og induktive konsekvenser fra kapittel 2.
4.2.1 id-utvidelser og kjernebevaring igjen
Vi tar nå opp igjen temaet fra avsnitt 3.6.1 og diskuterer id-utvidelser av indi-
rekte spesi�kasjoner og kjernebevaring. Vi husker at id -utvidelser av indirekte
spesi�kasjoner under visse forutsetninger er identisk med initialsemantikk rela-
tiv til indirekte spesi�sert kjerne. Kjernebevaring for id -utvidelser overføres da
til initiell konsistens.
Som argumentert i avsnitt 3.6.1 side 115, er det mulig å oppdage mangel
på kjernebevaring av id-utvidelser mekanisk og i endelig tid. Forutsetningene
i vårt argument var et endelig kjerne-manifest for id-utvidelsen og konvergent
indirekte spesi�kasjon av kjernen.
Men det virker ikke så greit å etablere tilstedeværelse av kjernebevaring for
id -utvidelser. Vår strategi i avsnitt 3.6.2 side 120 fordrer i en passende forstand
veri�kasjon av den indirekte spesi�kasjon. Vi skal her se om sekvens-utvidet
Knuth&Bendix-komplettering kan bidra med noe for å etablere kjernebevaring.
Anta �E inneholder en indirekte spesi�kasjon Es med spesi�serende symbol
s, av en semantikk på en G�c . Anta sekvens-utvidet Knuth&Bendix-komplett-
ering anvendes på s-id-utvidelsen �Eid av �E, og at prosessen gir et vedvarende
�c-manifest R for �Eid . Ved sekvens-utvidet Knuth&Bendix-komplettering, kan
nå en �Eid-utledning hv; : : : ; hi konstrueres for hver regel v! h i R.
Idéen i dette avsnittet er at det kanskje er mulig å å �nne syntaktiske kjen-
netegn i disse �Eid-utledningene som etablerer kjernebevaring for �Eid . Dette er
en besnærende tanke. Vi kan ihvertfall komme med følgende enkle resultat:
Teorem 4.7 Anta enhver regel v ! h i �c-manifestet R har assosiert en �Eid -
utledning på formen
v
s(v) s(h)
hid
�
Esid
Da er �Eid kjernebevarende.
Bevis: Denne formen gir direkte at
s(v)�$Ess(h)
for alle regler v ! h i R. Siden vi ved monotonitet også har s(v)��$Es
s(h)�;
m.a.o. s(v�)�$Ess(h�) for vilkårlig substitusjon �, gir sats 3.29 på side 118 da at
�Eid kjernebevarende.
2
Eksempel 86 Betrakt Edelta fra eksempel 56 på side 108. I eksempel 61 side
113 konstaterte vi at
Rmandelta
=
�succ(pred(x))! x;
pred(succ(x))! x
�
154
![Page 163: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/163.jpg)
4.2. Anvendelser av sekvens-utvidet Knuth&Bendix-komplettering
er et vedvarende Int-manifest for delta-id -utvidelsen av Edelta.
Videre er Rmandelta generert ved Knuth&Bendix-komplettering. Sekvensutvidet
Knuth&Bendix-komplettering gir for reglene i Rmandelta her utledningssekvensene
succ(pred(x))
delta(succ(pred(x))) mem(succ(pred(x)),0) mem(pred(x),succ(0)) mem(x,0) delta(x)
xid
�
Es
�
Es
�
Es
�
Es
id
og
pred(succ(x))
delta(pred(succ(x))) mem(pred(succ(x)),0) mem(succ(x),pred(0)) mem(x,0) delta(x)
xid
�
Es
�
Es
�
Es
�
Es
id
Ved teorem 4.7 er derfor delta-id -utvidelsen av Edelta kjernebevarende.
To vesentlige poeng:Merk at kjernebevaring her kan slås fast uten å veri�sere
Edelta. På den annen side kan nå denne viten om kjernebevaring brukes for å
veri�sere Edelta. Se avsnitt 3.6.4 side 122.d
Faktisk kan vi under visse antagelser kommemed en sterkere påstand enn teorem
4.7. Vi benytter signaturer, ligningsmengder osv. som vist i �gur 3.7 side 85:
Teorem 4.8 Anta T��K, DISJ og KREP1. Anta enhver regel v!h i�c-manifestet
R har assosiert en �Eid -utledning der enhver anvendelse av ligningen s(x) = x
forekommer kun i kontekster c 2 G�c[fsg. Da er �Eid kjernebevarende.
Teorem 4.8 følger fra følgende to lemmata:
Lemma 4.9 Anta T��K og KREP1.
�c[fsg�s!�Eid
G��= ('s [
�$�E G��
)�
�c[fsg
Bevis: Lemmaet følger fra sats 3.30 på side 127.
2
Lemma 4.10 Anta T��K og KREP1.
('s [�$�E G��
)�
�c[fsg = ('s [
�$�E G��
)�
Bevis: Lemmaet følger fra følgende påstand (siden forskjellen i de to relasjoner
kun er i grad av tillukning): Dersom
c[g] ('s [�$�E G��
)�
�c[fsg c[g0]
slik at
g 's g0
for en vilkårlig (muligens tom) kontekst c 2 G�c[fsg, så er
c[g] ('s [�$�E G��
)� c[g0]
Påstanden vises ved induksjon på kompleksiteten av konteksten c: Merk at
g; g0 2 G�c .
Tom kontekst c: Trivielt, siden g 's g0.
Anta c = c0[s(2)]. Vi minner nå om (3.13) side 92. Vi antar implisitt INDKONG
(ved å nevne 's), så vi har ved T��K og KREP1:
s(g)�$Es
�g 's g 's g0 's �g0�$Ess(g0)
155
![Page 164: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/164.jpg)
4. Sekvens-utvidet Knuth&Bendix-komplettering
for �g; �g0 2 G�c . Så ved induksjonshypotesen får vi
c0[s(g)]�$Esc0[�g] ('s [
�$�E G��
)� c0[�g0]�$Esc0[s(g0)]
og vi har da at c[g] ('s [�$�E G��
)� c[g0].
Anta c = c0[f(g1; : : : ;2; : : : ; gn)], for et generatorsymbol f og g1; : : : ; gn 2
G�c[fsg. Ved T��K har vi
f(g1; : : : ;2; : : : ; gn)�$�Ef( �g1; : : : ;2; : : : ; �gn)
for �g1; : : : ; �gn 2 G�c . Vi har så ved kongruens:
f( �g1; : : : ; g; : : : ; �gn) 's f( �g1; : : : ; g
0; : : : ; �gn)
La g = f( �g1; : : : ; g; : : : ; �gn) og g0 = f( �g1; : : : ; g0; : : : ; �gn).
Dermed gir induksjonshypotesen
c0[f(g1; : : : ; g; : : : ; gn)]�$�E
c0[g] ('s [�$�E G��
)� c0[g0]
�$�Ec0[f(g1; : : : ; g
0; : : : ; gn)]
og vi har da at c[g] ('s [�$�E G��
)� c[g0].
2
Bevis for teorem 4.8:
Vi har antatt at enhver regel v ! h i �c-manifestet R har assosiert en�Eid-utledning med egenskapen at enhver anvendelse av ligningen s(x) = x fo-
rekommer kun i kontekster c 2 G�c [ fsg.
Observer at da �nnes en �Eid-utledning hv�; : : : ; h�i med denne egenskap,
for hver substitusjon � 2 SbstG�c . Altså har vi
v��c[fsg�s!�Eid
h�
Lemma 4.9 og 4.10 gir så
�c[fsg�s!�Eid G��
= ('s [�$�E G��
)�
Ved lemma 2.16 på side 41, er
('s [�$�E G��
)�G�c = 's
Følgelig har vi
v� 's h�
eller
s(v�)�$Ess(h�)
for vilkårlige v ! h i R og � 2 SbstG�c . Ved sats 3.29 på side 118, er da �Eid
kjernebevarende.
2
Lemmata 4.9 og 4.10 samt teorem 4.8 har varianter 4.9b og 4.10b og 4.8b for
erstatning av antagelsen T��K med hROT, samt EsVARBEVAR, EdVARBEVAR og
DISJ. Det er lett å veri�sere dette.
Merk dessuten at lemma 4.10 er en ytterligere presisering av påstanden i
avsnitt 3.5 om at inkonsistens ikke kan ha opphav i det spesi�serende symbol
156
![Page 165: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/165.jpg)
4.2. Anvendelser av sekvens-utvidet Knuth&Bendix-komplettering
alene (se sats 3.22 side 109). Ifølge lemma 4.10 er nemlig ('s [�$�E G��
)�
�c[fsg
identisk med separabel semantikk, som under konsistens er identisk med gene-
rell initial- og degenerert �nalsemantikk (teorem 2.20 side 42 og teorem 2.21
side 43). M.a.o.: Den (delvise) �c [ fsg-monotone tillukningen er ikke kilde til
inkonsistens.
Vi kan ved teorem 4.8 (4.8b) etablere kjernebevaring av id-utvidelser. Satsen
sier også at mangel på kjernebevaring vil, i et �c-manifest, måtte tilkjennegi seg
ved en regel hvis assosierte �Eid-utledningssekvens fremkommer ved anvendelser
av s(x) = x i �d [�h-kontekster.
Men vi kan ikke fange opp alle tilfeller av kjernebevaring, gitt �c-manifest,
på denne måten. Vi kan nemlig konstruere kjernebevarende id-utvidelser hvis
�c-manifest har regler med assosiert �Eid-utledningssekvens fremkommet ved
anvendelser av s(x) = x i �d [�h-kontekster.
Dette kan f.eks. gjøres ved å observere at premissen i teorem 4.7 fordrer at
hver regel v! h i �c-manifestet R er slik at s(v) = s(h) er en logisk
konsekvens av Es.
Vi kan da prøve å konstruere en indirekte spesi�kasjon hvis id-utvidelse er kjer-
nebevarende, og slik at
1. Et �c-manifest for id-utvidelsen eksisterer. Da må hver regel v ! h i R
være en logisk konsekvens av id -utvidelsen (side 115).
2. �c-manifestet inneholder en regel v ! h slik at s(v) = s(h) ikke er en
logisk konsekvens av Es.
Eksempel 87 Vi betrakter generator-universet over
Int =
8<:
0 : Int;succ : Int!Int;
pred : Int!Int
9=;
For semantikken på GInt spesi�sert direkte av den ene ligning
Ea =�
succ(pred(x)) = x
har vi fra eksempel 66 på side 117 følgende indirekte spesi�kasjon:
Eb =
8>>>>>>>>>><>>>>>>>>>>:
1 : delta(x) = mem(x,0,0,0);
2 : mem(succ(x),y,0,0) = mem(x,succ(y),0,0);
3 : mem(succ(x),y,pred(z),0) = mem(x,succ(y),pred(z),0);
4 : mem(pred(x),0,z,0) = mem(x,0,pred(z),0);
5 : mem(pred(x),succ(y),z,0) = mem(x,y,z,0);
6 : mem(0,succ(y),z,w) = mem(0,y,z,succ(w));
7 : mem(0,0,pred(z),w) = mem(0,0,z,pred(w));
8 : mem(0,0,0,w) = w
9>>>>>>>>>>=>>>>>>>>>>;
Vi skal svakt modi�sere Eb til en E0b slik at E
0b blir en indirekte spesi�kasjon av
semantikken spesi�sert direkte av
E0a =
�succ(pred(x)) = x;
pred(succ(x)) = x
�
For å oppnå E0b legger vi ligningen
5b : mem(0,succ(y),pred(z),0) = mem(0,y,z,0)
157
![Page 166: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/166.jpg)
4. Sekvens-utvidet Knuth&Bendix-komplettering
til Eb. Ligningene 3 og 5b tar nå hånd om <pred(succ(x)) = x-delen> av se-
mantikken. Legg merke til at prosesseringen av denne del, gjøres først når hele
<input>-termen er prosessert ferdig i mems 1. argument. Dette stikker kjepper i
hjulene for at delta(pred(succ(x))) = delta(x) skal kunne være en logisk konsek-
vens av E0b: En term med variabel blir nemlig aldri ferdigprosessert i mems 1.
argument, og blokkerer endog all videre prosessering. (Altså må input-termen x
til delta være en grunnterm for at delta(x) skal være omskrivbar til en kanonisk
representant.)
I tillegg må ligning 6 endres til
60 : mem(0,succ(y),0,w) = mem(0,y,0,succ(w))
(siden kanoniske representanter nå er rene succ- eller rene pred-termer.)
Vi ser at E0b er en indirekte spesi�kasjon av semantikken spesi�sert direkte
av E0a. (Det 4. argument til mem er for E0
b ikke nødvendig spesi�kasjonsmessig,
men er sentralt for vårt argument her.)
Komplettering av Eb [ fdelta(x) = xg gir blant andre regler følgende:
Rb =
8>>>>>><>>>>>>:
:
delta(x)! x;
:
succ(pred(x))! x;
pred(succ(x))! x
:
9>>>>>>=>>>>>>;
Dette avslører at Eb [ fdelta(x) = xg ikke er kjernebevarende.
Vår komplettering av E0b[fdelta(x) = xg terminerer ikke, men gir også blant
andre regler, reglene i Rb. Det er enkelt å overbevise seg om at ingen �ere
regler i E(TInt(V)) vil bli generert, og Rb utgjør derfor et Int-manifest for E0b [
fdelta(x) = xg.
På måten vist i avsnitt 3.6.2 side 120, fastslår vi derfor at E0b[fdelta(x) = xg
er kjernebevarende.
Da er Int-manifestene til begge Eb [ fdelta(x) = xg og E0b [ fdelta(x) = xg
identiske. Poenget er nå at de ved sekvensutvidet Knuth&Bendix-kompletter-
ing assosierte Eb [ fdelta(x) = xg-utledningssekvenser og E0b [ fdelta(x) = xg-
utledningssekvenser også er identiske; til tross for at Eb [ fdelta(x) = xg og
E0b [ fdelta(x) = xg ikke er like mht. kjernebevaring. Se �gur 4.2.d
Det er mulig å etablere noe heuristikk og muligens andre syntaktiske <sig-
naler> i utledninger, med hvilke det er mulig å fange inn �ere tilfeller av kjer-
nebevaring enn gjør teoremene 4.7 og 4.8.
Det er også mulig å bruke sekvens-utvidet Knuth&Bendix-komplettering til
å si mer i tilknytning til eliminasjon av kunstig inkonsistens. Dette kan gjøres
ved typing eller annen syntaktisk kontroll. Velges typing mistes, som i avsnitt
3.7.5, sambandet med id-utvidelser.
Vi kan også ved å studere id-utvidelse-utledningssekvenser gi kriterier som
garanterer kjernebevaring av id -utvidelser (og ved reduksjon: initiell konsistens).
Av plasshensyn må en videre diskusjon om disse ting heller gjøres annen-
steds.
4.2.2 Skjuling av hjelpefunksjoner
Somnok en interessant anvendelse av sekvens-utvidet Knuth&Bendix-komplett-
ering skal vi nå gi en skisseaktig begrunnelse for vår fremsetting av påstand 3.35
158
![Page 167: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/167.jpg)
4.2. Anvendelser av sekvens-utvidet Knuth&Bendix-komplettering
succ(pred(x))
delta(succ(pred(x)))
mem(succ(pred(x)),0,0,0)
mem(pred(x),succ(0),0,0)
mem(x,0,0,0)
delta(x)
x
id
Es
Es
Es
Es
id
pred(succ(x))
delta(pred(succ(x)))
mem(pred(succ(x)),0,0,0)
mem(succ(x),0,pred(0),0)
mem(pred(succ(x)),0,0,0)
mem(pred(succ(x)),delta(0),0,0)
mem(pred(succ(x)),mem(0,0,0,0),0,0)
mem(pred(succ(x)),mem(pred(0),succ(0),0,0),0,0)
mem(pred(succ(x)),mem(succ(pred(0)),0,0,0),0,0)
mem(pred(succ(x)),delta(succ(pred(0))),0,0)
mem(pred(succ(x)),succ(pred(0)),0,0)
mem(succ(x),pred(0),0,0)
mem(x,succ(pred(0)),0,0)
mem(x,delta(succ(pred(0))),0,0)
mem(x,mem(succ(pred(0)),0,0,0),0,0)
mem(x,mem(pred(0),succ(0),0,0),0,0)
mem(x,mem(0,0,0,0),0,0)
mem(x,delta(0),0,0)
mem(x,0,0,0)
delta(x)
x
id
Es
Es
Es
id
Es
Es
Es
Es
id
Es
Es
id
Es
Es
Es
Es
id
Es
id
Figur4.2:Figurtileksempel87.ØverstvisesEb
[
fdelta(x)=
xg-/E0 b[
fdelta(x)=
xg-utledningssekvensenfremkommetvedvåreksekveringavsekvensutvidet
Knuth&Bendix-kompletteringforregelensucc(pred(x))!
x.OmskrivingvedEb=E0 b
ermerketmedEs.NederstvisesEb
[
fdelta(x)=
xg-/E0 b[
fdelta(x)=
xg-
utledningssekvensenforpred(succ(x))!
x.
159
![Page 168: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/168.jpg)
4. Sekvens-utvidet Knuth&Bendix-komplettering
på side 132. Vi gir på dette tidspunkt på ingen måte noe bevis for påstanden,
kun en begrunnelse for spekulasjonen som motiverer den.
Begrunnelsesskisse for påstand 3.35: Vi skal bruke sekvens-utvidet Knuth-
&Bendix-komplettering. La altså RRI
være resultatet av den vellykkete RI-
restrikterte-sekvensutvidete Knuth&Bendix-komplettering gitt �Eid .
Det er lett å innse at hver regel i RRI vil være element i��s!�Eid
. Videre vil det til
hver regel v! h i RRI fore�nnes en konstruert��s!�Eid
-utledningsekvens hv; : : : ; hi.
Siden��s!�Eid�
�$�Eid
, vil de konstruerte utledningsekvensene selvfølgelig også være�$�Eid
-utledningsekvenser.
Det er klart at RRI er terminerende. Det er også klart at�$RRI
=�$�Eid
. For
vilkårlige s; t slik at s�$RRIt kan det da konstrueres en
�$�Eid
-utledningssekvens
hs; : : : ; ti (men som ikke nødvendigvis er en��s!�Eid
-utledningssekvens).
Betrakt nå den operasjonelle restriksjon
�::::RRI
�Eid
av�$RRI, som er som
�$RRI, men med den restriksjon som følger av kravet om
at de konstruerte utledningssekvensene forbundet med en�$RRI-omskrivning er
��s!�Eid
-utledningssekvenser. M.a.o.: s�
::::RRI
�Eidt hvis og bare hvis s
�$RRI
t, og den
konstruerte�$�Eid
-utledningssekvens hs; : : : ; ti også er en��s!�Eid
-utledningssekvens.
Det synes nå mulig å vise at
�::::RRI
�Eid=
��s!�Eid
(4.1)
som er en av delpåstandene i påstand 3.35.
Vi skal nå skissere hvordan det muligens kan vises at�
::::RRI
�Eider konvergent.
Kompletteringsprosessen er vellykket, og la oss for enkelhets skyld anta den er
terminerende. I RRI
�nnes da kun kritiske par som er hindret i å bli eliminert
ved restriksjonen på regelen Utled. Dvs. de kritiske par som �nnes er ikke med
i��s!�Eid
og ved (4.1) ikke med i�
::::RRI
�Eid. Lemma 2.27 (�Critical Pair Lemma�) side
53 kan forsterkes (se beviset for lemmaet i [Kir94]) til å gi lokal kon�uens for�
::::RRI
�Eid. Videre ser det ut til at lemma 2.25 (Newman) og lemma 2.26 kan forsterkes
til å gi global kon�uens og til sist konvergens (sees ved å studere bevisene for
disse lemmata i [Kir94]). Fra dette vises så at
s�
::::RRI
�Eidt , s!
�::::RRI
�Eid= t!
�::::RRI
�Eid
Ved at�
::::RRI
�Eider konvergent og ved den gitte reduksjonsordning, kan det
nå argumenteres for de to siste del-påstandene om eksistensen av en R0RI�
E(T�c(V)) slik at�$R0RI
=��s!
Eid T�c (V).
3
Det er mulig å sjekke mekanisk om en sekvens er en��s!�Eid
-sekvens. Omskriving
i�
::::RRI
�Eider derfor mekaniserbar.
Merk dessuten at kriteriet vj!hj 2�$
E0nfs(x)=xgi inferensregelenRI-Utled lett
kan sjekkes gitt den assosierte E0- (her �Eid-) utledningssekvensen for vj ! hjkonstruert ved sekvens-utvidet komplettering.
Et apropos til eksempel 87 side 157: Påstand 3.35 hevder at en vellykket
RI-restriktert komplettering gir et kjernemanifest for �Eid i henhold til��s!�Eid
.
Slike kjernemanifest vil for id -utvidelsene av Eb og E0b i eksempel 87 selvfølgelig
ikke lenger være identiske! (Men merk at regelen pred(succ(x))! x ikke vil bli
generert for id-utvidelsen av E0b, siden regelens assosierte E0
b [ fdelta(x) = xg-
utledningssekvens ikke kan være enInt�delta!E0bid -utledningssekvens. Se også �gur 4.2.
Ved (4.1) må likevel regler mellom grunntermer sannsynligvis på formen
pred(succ(0))! 0, pred(succ(succ(0)))! succ(0) o.l.
160
![Page 169: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/169.jpg)
4.2. Anvendelser av sekvens-utvidet Knuth&Bendix-komplettering
genereres (i det uendelige).)
4.2.3 Basis-initialsemantikk og induktive konsekvenser
Anta for en gitt ligningsmengde E en vellykket sekvens-utvidet Knuth&Bendix-
prosess resulterende i en regelmengde R komplett (innebærer konvergent) for E.
Gitt at s = t er en logisk og dermed induktiv konsekvens av E, �nnes altså et
omskrivningsbevis s!!R
�! Rt i R for dette faktum. Ved vår utvidelse, kan så et
konstruktivt E-bevis i form av et syntaktisk objekt�en utledningssekvens�
konstrueres fra de lagrede E-utledninger for hver regel i R.
For induktive konsekvenser som ikke også er logiske konsekvenser, er saken
ikke så grei. Anta vi bruker induktiv komplettering. LaR være en forE komplett
regelmengde. En ligning s = t er en induktiv konsekvens av E bl.a. dersom
en Knuth&Bendix-prosess gitt hfs = tg; Ri terminerer vellykket, og alle regler
generert underveis har avR grunnredusible venstresider. Så anta at s = t således
er vist å være en induktiv konsekvens av E, og la R0 være sluttproduktet av
prosessen. Vi antar at sekvens-utvidet Knuth&Bendix-komplettering er brukt i
forbindelse med den induktive komplettering.
Dersom regelen s! t eller t! s �nnes i R0, kan vi konstruere et lignings-
bevis som over. Imidlertid behøver ikke s! t eller t! s �nnes i R0. Men det
må nødvendigvis �nnes et omskrivningsbevis s!!R0
�! R0
t i R0; så igjen kan et
korresponderende ligningsbevis konstrueres.
Saken er imidlertid at de konstruerte bevisene selvfølgelig ikke er E-bevis.
De er E [ fs = tg-bevis, og ikke en eller annen form for induktive bevis i E for
at s = t er en induktiv konsekvens av E. Slike E [ fs = tg-bevis er i dette lys
følgelig ikke så interessante.
Dersom det under induktiv komplettering dukker opp en regel med en av R
ikke grunnredusibel venstreside, er s = t ikke en induktiv konsekvens avE. Den-
ne regel må nødvendigvis ha en anvendelse av s = t i sin tilknyttede E[fs = tg-
utledningssekvens. Ved refutering av en hypotese som induktiv konsekvens kan
derved et konstruktivt E-motbevis konstrueres:
La oss anta en signatur � disjunkt delt i generatorer �c og de�nerte funk-
sjonssymboler �d, og anta at
1. R er tilstrekkelig �d-komplett mhp. G�c .
2. term-ordningen i kompletteringsprosessen er slik at enhver u 2 T�d[�c(V)n
T�c(V) er større i ordningen enn alle v 2 T�c(V).
La v! h være en regel generert ved vår induktive komplettering, slik at v ikke
er grunnredusibel i R. Dvs. det �nnes en � 2 SbstG� slik at v�!R = v�.
På side 57 i avsnitt 2.4.5, nevnte vi at generatortermene v� og h� da vil
være i hver sin E-kongruensklasse. Vi har altså
v��$
E[fs=tgh� og v��6$Eh�
Vi kan ved sekvensutvidet Knuth&Bendix-/induktiv komplettering konstruere
en E [fs = tg-utledningssekvens hv�; : : : ; h�i. En slik utledningssekvens gir en
konstruktiv demonstrasjon på at s = t gir inkonsistens, og derfor ikke kan være
en induktiv konsekvens av E. Dette gir et konstruktivt E [fs = tg-bevis for at
s = t ikke er en induktiv konsekvens av E.
Et rent E-motbevis kan konstrueres slik: At s = t ikke er en induktiv kon-
sekvens av E, medfører jo at s = t heller ikke er en logisk konsekvens av E.
Et konstruktivt E-bevis for at s = t ikke er en logisk konsekvens av E kan da
konstrueres ved hjelp av omskrivingen
s!!Rs! 6= t!
! Rt
161
![Page 170: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/170.jpg)
4. Sekvens-utvidet Knuth&Bendix-komplettering
Et konstruktivt E-bevis for at s = t ikke er en induktiv konsekvens av E kan
så ska�es ved omskrivingen
s�!!Rg 6= g0
! Rt�
for en � 2 SbstG� . Det er algoritmisk å �nne en slik � . (Spesielt er den � over
som vitner ikke-grunnredusibilitet ved v�!R = v�, også slik at s�!!Rg 6= g0
! Rt�.
Anta nemlig det motsatte. Omskrivingen v��$
E[fs=tgh� må nødvendigvis anvende
ligningen s = t. Dvs. det �nnes et enkeltsteg på formen h: : : ; c[s�]; c[t�]; : : :i i
enhver utledning hv�; : : : ; h�i. Dersom s��$Et�, ville vi også ha c[s�]
�$Ec[t�].
Slik kunne ethvert omskrivningssteg ved s = t erstattes ved et E-steg, og vi
ville ha v��$Eh�; som er en motsigelse.)
Slike konstruktive (mot)bevis kan gi større innsikt i såvel den induktive
teorien som den logiske teorien for en ligningsmengde E. Konstruktive motbevis
demonstrerer i en viss forstand hvordan/hvorfor en ligning ikke er en logisk
eller induktiv konsekvens. I implementasjonssammenheng kan dette så brukes
i streben mot en mer korrekt eller fullstendig implementasjon av den aktuelle
abstrakte datatype. Se avsnitt 2.2.9 side 21.
4.2.4 Basis-initialsemantikk og konsistens
I avsnitt 2.4.7 fastslo vi at inkonsistens er algoritmisk oppdagbart gitt konver-
gens og avgjørbarhet av kjernesemantikk. Vi nevnte også et tilfelle der konsistens
kan etableres. I tillegg kan Knuth&Bendix-komplettering av og til brukes for å
etablere konsistens:
Sats 4.11 Anta en signatur � disjunkt delt i generatorer �c og de�nerte funk-
sjonssymboler �d. La R være resultatet av en vellykket Knuth&Bendix-komplett-
ering gitt en ligningsmengde E, under antagelse av punkt 2 over.
Observasjon 3.26 på side 112 gir en R0 � R slik at R0 � E(T�c(V)), og slik at�$R0 T�c(V)
=�$E T�c (V). La E
c = E \ E(T�c(V)). Da er E basis-initielt konsistent
hvis hver v! h 2 R0 er slik at v�$Ec
h.
Bevis: Vi må vise at�$E G�c =
� !Ec G�c . At
�$E G�c �
� !Ec G�c er opplagt. Anta
gc�$Eg0c for vilkårlige gc; g
0c 2 G�c . Vi har da gc
�$R0g0c. Betrakt en vilkårlig R0-
utledning hgc; : : : ; g0ci, og betrakt to nabo-komponenter gi; gi+1 i denne. Vi har
gi = gi[v�]p og gi[h�]p = gi+1 for en v ! h i R0. Pr. antagelse har vi v�$Ec
h
og derfor v��$Ech�. Videre har vi selvfølgelig gi[v�]p
�$Ecgi[h�]p. Således �ns en
Ec-utledning hgc; : : : ; g0ci0. Det følger at E er basis-initielt konsistent.
2
Kriteriet i sats 4.11 om at hver v ! h 2 R0 er slik at v�$Ec
h, kan sjekkes
algoritmisk dersom�$Ec er avgjørbar (f.eks. ved konvergens). DersomEc her ikke
er avgjørbar, kan sekvensutvidet Knuth&Bendix-komplettering være til hjelp
for etablering av konsistens. F.eks. er E konsistent dersom den til hver regel i
R0 assosierte E-utledningssekvens er en Ec-utledningssekvens. Sistnevnte kan
synliggjøres ved bruk av sekvensutvidet Knuth&Bendix-komplettering.
Mer so�stikerte måter å bruke sekvensutvidet Knuth&Bendix-komplettering
på i denne forbindelse, er mulige, men vi følger ikke dette opp her.
162
![Page 171: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/171.jpg)
Kapittel 5
Konklusjon og videre arbeid
Hovedlinjen/grunnstrukturen i denne hovedoppgaven har vært
1) å utvikle et generalisert semantikk-begrep, for så å anvende dette i til-
knytning til
2) å spesi�sere semantikk på en ny måte; ved indirekte algebraisk spesi�ka-
sjon.
På dette rammeverket har vi så lagt vår diskusjon. Vårt generaliserte semantikk-
begrep tillater spesi�sering av semantikk relativ til en kjerne-semantikk. Vi har
kunnet utvikle relevante begreper for slik semantikk uten viten om hvordan kjer-
nen er spesi�sert. Dette åpner for modulær oppbygging av formelle datatyper.
En naturlig anvendelse av generalisert semantikk uttrykkes i intensjonen om
at kjernesemantikk er semantikk til generatorer og den relative del av seman-
tikken er semantikk til de�nerte funksjonssymboler. Det at vi kan spesi�sere
og resonnere om semantikk uten å vite hvordan kjernesemantikken er spesi�-
sert, er da en imøtekomming av at det �nnes ulike teknikker for å spesi�sere
generatorsemantikk.
Generalisert semantikk åpner også for modulær oppbygging av spesi�kasjon-
er og formelle datatyper i �ere nivåer utover en to-nivå oppbygning der kjernen
direkte er atomær. Dette har i seg selv ikke vært vårt hovedtema, og vi har hel-
ler ikke tatt stilling til i hvilken grad en slik �ernivå spesi�kasjonsstil i formelle
datatyper er fornuftig, eller i hvilken grad og på hvilken måte slik �ernivå spe-
si�kasjon svarer til oppbygging av moduler i (konkrete) programmeringsspråk.
Vi har antydet at disse og tilknyttede spørsmål er interessante og bør kunne
utredes videre.
Tradisjonell spesi�kasjon ved ligninger og ligningslogikk involverer én (ho-
mogen) ligningsmengde. Dette utgjør spesialtilfellet basis-semantikk av våre ge-
nerelle semantikker. En egenskap ved vår generelle semantikkspesi�kasjon som
for hovedlinjen i vår diskusjon har vært vesentlig, er den at generell semantikk
uttrykker spesi�kasjon, der deler av semantikken ikke er spesi�sert som del av
en slik homogen ligningsmengde. Denne del isoleres da i kjernen. Denne egen-
skap har vi brukt for å <plugge inn> kjernesemantikk spesi�sert på en ny måte;
nemlig indirekte algebraisk.
Grunnlaget for indirekte algebraisk spesi�kasjon har vært semantikkgivende
syntaktiske funksjoner eller det ekvivalente begrep klasserepresentant funksjon-
er. Av disse har vi først og fremst betraktet kanonisk-representant funksjoner,
men vi har også betraktet andre semantikkgivende syntaktiske funksjoner. Våre
eksempler på indirekte spesi�kasjoner har stort sett vært algebraiske beskriv-
elser av slike funksjoner. Indirekte kongruens er en forutsetning for indirekte
algebraisk spesi�kasjon, og vi har sett eksempler på at indirekte kongruens ver-
163
![Page 172: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/172.jpg)
5. Konklusjon og videre arbeid
ken er umiddelbart tilfredstilt eller nødvendigvis er lett å oppnå. Vi har som
et apropos påpekt at et lignende kongruenskrav også eksplisitt må stilles for
spesi�kasjon ved observator-basis, og at et slikt kongruenskrav ikke trivielt er
oppfylt. Indirekte semantikk egner seg som atomær semantikk.
Semantikk spesi�sert relativ til en indirekte kjerne er et (ekte) tilfelle der
basis-semantikk ikke er tilstrekkelig, og der en generalisert form for semantikk-
spesi�kasjon må brukes. Men med det sagt, har vi vist at den heterogene situa-
sjonen som semantikk relativ til indirekte kjerne i utgangspunktet representerer,
under visse interessante omstendigheter kan reduseres til basis-semantikker. For
�nal-semantikk kan dette gjøres mer eller mindre direkte. For initial-semantikk
har vi gjort reduksjonen ved å hjelp av id -utvidelser.
Slik reduksjon er foreløpig essensiell: En hovedhensikt ved formell spesi�ka-
sjon og formelle datatyper er i formell og endog mekanisk resonnering om pro-
grammer. Resolusjonsmetoder eksisterer for basis-semantikker i basis-formelle
datatyper, men vi har foreløpig ikke utviklet resolusjonsmetoder for våre gene-
raliserte semantikker.
Å utvikle resolusjonsmetoder for generalisert semantikk er en interessant
oppgave. Slike resolusjonsmetoder vil være spesielt hensiktsmessige dersom det
viser seg at en �ernivå spesi�kasjonsstil i formelle datatyper som nevnt over, er
fornuftig. Vi har antydet at vår modulære oppbygging av semantikker og for-
melle datatyper ikke umiddelbart kan overføres til en modulær oppbygging av
korresponderende resolusjonsmetoder. Vi har dog nevnt at en mulig innfallsvin-
kel til å �nne resolusjonsmetoder for generalisert semantikk kan være gjennom
klasse- og utvidet omskriving. Refutering er under konvergens algoritmisk for
basis-semantikker.
Et vesentlig gjennomgangstema har vært konsistens. Konsistens må alltid
sees relativt til forutfatninger i semantikkspesi�kasjon. Inkonsistens utgjør da
en intern motsigelse i spesi�kasjonen i forhold til en slik forutfatning. Vi har
sammen med generaliseringen av semantikk, utviklet tilhørende konsistensbe-
grep. Våre konsistensbegrep generaliserer konsistensbegrepet i predikatlogikk,
hvor forutfatningen uttrykkes ved prede�nert tolkning av symbolene true og
false, og der inkonsistens er ekvivalent med at true = false er bevisbart. I vår
kontekst ivaretas forutfatninger ved håndheving av kjerne-bevaring. Intensjonen
om at kjernesemantikk skal være semantikk til generatorer og den relative del
av semantikken skal være semantikk til de�nerte funksjonssymboler, ivaretas
således ved konsistens. Sentralt i det mer stringente argumentet for dette, var
det vi har kalt separabel semantikk.
I forbindelse med indirekte spesi�kasjon, har vi innført begrepet kunstig in-
konsistens. Dette er inkonsistens som skyldes hjelpefunksjoner og som vi har
argumentert godt kan skjules fra logikken, siden de sannsynligvis ikke hører
hjemme i den semantiske abstrakte datatypen som søkes implementert. Vi har
vist måter å eliminere kunstig inkonsistens fra logikken. Dette har vi bl.a. gjort
ved å legge en operasjonell restriksjon inn i ligningslogikk. Vi har argumentert
at en ny frihetsgrad i semantikkspesi�kasjon oppnås, dersom det også lykkes
å skjule hjelpefunksjoner mhp. kunstig inkonsistens i resolusjonsmetoder. Vi
fremsatte en påstand om at dette er mulig for kompletteringsbaserte resolu-
sjonsmetoder. En utfordring til videre arbeid ligger da i å bevise eller motbevise
påstanden. Teorien utviklet i avsnitt 3.7, samt sekvens-utvidet komplettering i
kapittel 4 kan i denne forbindelse være aktuell. En implementasjon av resolu-
sjonsmetoder for basis-semantikk, f.eks. induktiv komplettering, der skjuling er
innlemmet burde være meget interessant.
Sentralt i teorien utviklet i forbindelse med skjuling av hjelpefunksjoner er
igjen separabel semantikk som nå tillukkes mhp. monotonitet. Vi har funnet
at separabel semantikk sammen med variable monotone tillukninger er kraftige
164
![Page 173: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/173.jpg)
uttrykksredskap. Disse har vært sentrale i all teorien vi har utviklet omkring
konsistens og kjernebevaring.
Vi har videre vurdert muligheter for å etablere konsistens og for å oppdage
inkonsistens. Under visse antagelser er inkonsistens algoritmisk oppdagbart ved
prinsippet om systematisk søk. Vi har nevnt et tilfelle for basis-initialsemantikk
der konvergens umiddelbart fører til konsistens (sats 2.34 side 60). Vi har
dessuten knyttet vårt konsistensbegrep til kongruens i den separable seman-
tikk.
Kjernebevaring i id -utvidelser kan ved reduksjon overføres til initiell konsis-
tens. Det viser seg at en vellykket Knuth&Bendix-prosess gitt en id -utvidelse,
gir et kjerne-manifest for id -utvidelsen. Et slikt kjerne-manifest kan brukes for å
oppdage mangel på kjernebevaring for id-utvidelser av indirekte spesi�kasjoner
og dessuten for å synliggjøre kjernebevaring, gitt positiv kjennskap om hvilken
kjernesemantikk den indirekte spesi�kasjonen spesi�serer. Vi har også nevnt et
tilfelle der Knuth&Bendix-komplettering kan brukes for å etablere konsistens i
basis-initial semantikk (sats 4.11 side 162).
Med konsistens etablert, kan separabel semantikk betraktes i stedet for
initial- og det vi kalte degenerert �nalsemantikk. Separabel semantikk kan være
en åpning til modulære sammensetninger av resolusjonsmetoder. Vi har også vist
at relasjonene<s�en umiddelbar avledning av ligningslogikk, og�s!�Eid
�en enkel
restriksjon på ligningslogikk, utrykker separabel semantikk. Under konsistens er
de således mulige erstatninger for id -utvidelser i tilnærminger til eksisterende
resolusjonsmetoder.
Kjerne-manifest for id -utvidelser av indirekte spesi�kasjoner er, under kjer-
nebevaring, ekvivalente direkte spesi�kasjoner. En slik direkte spesi�kasjon kan
brukes for å veri�sere en indirekte spesi�kasjon. Dette er en form for program-
transformasjon. Knuth&Bendix-komplettering som program-transformator for-
drer �ere noe restriktive forutsetninger. Andre metoder for å generere direkte
spesi�kasjoner fra indirekte spesi�kasjoner ville derfor være av stor interesse. En
lettelse i restriksjonene her forbundet med komplettering oppnås, dersom skju-
ling av hjelpefunksjonssymboler i den indirekte algebraiske spesi�kasjon kan
bygges inn i Knuth&Bendix-komplettering. Dette henger sammen med pro-
blemstillingen over om skjuling av hjelpefunksjoner for kompletteringsbaserte
resolusjonsmetoder.
Vår indirekte spesi�kasjon har tatt utgangspunkt i algebraiske beskrivelser
av semantikkgivende syntaktiske funksjoner. Dette har vist seg å gi indirek-
te spesi�kasjoner en operasjonell karakter. Dette fjerner oss en smule fra det
abstraksjonsnivået vi i utgangspunktet søker for formell resonnering. Den ope-
rasjonelle stilen gjør indirekte spesi�kasjoner tilgjengelige for programveri�ka-
sjons-metoder. Vi har antydet at indirekte spesi�kasjon kanskje i noen tilfeller
er enklere enn direkte spesi�kasjon. Det gjenstår imidlertid en reell analyse av
pro et contra for indirekte spesi�kasjon i forhold til direkte og annen spesi�ka-
sjon. En slik analyse, føler vi, må komme først når et større erfaringsgrunnlag
i bruken av indirekte spesi�kasjon er tilstede. Vi har i denne rapporten lagt et
teoretisk grunnlag for nettopp bruken av indirekte spesi�kasjon.
Vi har sett at indirekte spesi�kasjon utvider klassen av semantikker som er
avgjørbare ved termomskriving i enkleste form. Dette har direkte konsekvenser
for algoritmiske metoder sombygger på avgjørbarhet av semantikk. Eksempelvis
så vi for tilfellet `mengder av naturlig tall' at en naïv metode for algoritmisk
oppdagbarhet av inkonsistens appliserer dersom kjernen spesi�seres indirekte i
motsetning til direkte.
Om man kan spesi�sere andre semantikker med indirekte spesi�kasjon enn
med direkte spesi�kasjon, er uklart. Det er også uklart om algebraiske beskri-
velser av generelle semantikkgivende syntaktiske funksjoner utvider klassen av
165
![Page 174: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/174.jpg)
5. Konklusjon og videre arbeid
semantikker somkan spesi�seres indirekte ved algebraiske beskrivelser av kanon-
isk-representant funksjoner. Disse er høyst interessante spørsmål.
Det kunne være interessant å se om indirekte spesi�kasjon kan anvendes
også på termer med variable. Dette ville utvide anvendelsen av semantikkgiven-
de syntaktiske funksjoner til å omfatte f.eks. logiske teorier i tillegg til induktive
teorier. Kanskje kan indirekte spesi�kasjon dermed også bidra med økt avgjør-
barhet i forbindelse med klasseomskrivning. (Jeg har såvidt forsøkt å spesi�sere
semantikkgivende syntaktiske funksjoner på termer med variable med sikte på
å spesi�sere en interessant teori. Det virker ikke særlig enkelt.)
Et annet <rand>-eksperiment var �kspunkt-semantikk med semantikkantyd-
ende funksjoner. Vi så at ligningsmengder som ikke er indirekte kongruente,
kan være algebraiske beskrivelser av semantikkantydende funksjoner, og kan da
spesi�sere semantikk ved en slags �kspunkt-omskriving.
Vi har også spekulert om noe av teorien om id -utvidelser �alene og i forbin-
delse med Knuth&Bendix-komplettering�kan inspirere til resultater for �nal-
semantikk.
I forbindelse med konstruktive bevis har vi de�nert en enkel utvidelse av
Knuth&Bendix-komplettering, som vi har kalt sekvensutvidet Knuth&Bendix-
komplettering. Konstuktive bevis og sekvensutvidet Knuth&Bendix-kompletter-
ing, har mange anvendelsesområder. Vi har sett at sekvensutvidet Knuth&Ben-
dix-komplettering har vist seg å være interessant i forbindelse med oppdaging
og etablering av inkonsistens og kjernebevaring i forbindelse med id-utvidelser.
Spesielt interessant er kanskje det faktum at syntaktiske kjennetegn i de konst-
ruktive bevis for ligninger i kjerne-manifest for id-utvidelser kan bidra til å
etablere kjernebevaring for id -utvidelser (og konsistens ved reduksjon). Kjerne-
bevaring etableres her uten positiv kjennskap om hvilken kjernesemantikk den
indirekte spesi�kasjonen spesi�serer. Dette i motsetning til synliggjøring av kjer-
nebevaring for id -utvidelser ved vanlig Knuth&Bendix-komplettering som over.
På grunnlag av sådant etablert kjernebevaring, kan på den annen side positiv
kjennskap om hvilken kjernesemantikk den indirekte spesi�kasjonen spesi�serer,
nå etableres via kjerne-manifest.
Vi har også sett litt på anvendelser av sekvensutvidet Knuth&Bendix-kom-
plettering tilknyttet basis-initialsemantikk. Konstruktive mot-bevis kan gi inn-
sikt i hvorfor/hvordan en ligning ikke er en logisk eller induktiv konsekvens. I
implementasjonssammenheng kan dette så brukes på veien mot en mer korrekt
eller fullstendig implementasjon av den aktuelle abstrakte datatype. Sekvensut-
videt Knuth&Bendix-komplettering kan dessuten være til hjelp ved etablering
av basis-initiell konsistens.
Mye mer kan sies om anvendelser av sekvensutvidet Knuth&Bendix-kom-
plettering på id -utvidelser og på basis-initialsemantikk samt om andre anvend-
elser. Ra�nementer av sekvensutvidet Knuth&Bendix-komplettering eller andre
bedre måter å generere konstruktive bevis på, kan også være en interessant opp-
gave.
*
Vår diskusjon har altså utviklet seg rundt rammeverket beskrevet av de to
punktene i begynnelsen av dette kapitlet. Den teorien som har vært utviklet
underveis er imidlertid grunnlag for en rekke andre diskusjoner�noen har vi
tatt tid til her; andre diskusjoner, og muligens svært interessante sådane, har vi
av plass- og tidshensyn ikke kunnet annet enn antyde.
Takk for oppmerksomheten.
166
![Page 175: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/175.jpg)
Tillegg A
Surjektivitet og
grunnterm-algebraer
A.1 Mer om formelle datatyper og semantikk
Dette avsnittet er ment å utdype noen av de for oss sentrale begreper i algebra.
Mye i dette avsnittet har ingen direkte relevans til den øvrige diskusjon.
A.1.1 Bevis av (2.2) side 17
Vi viser her mer presist (2.2) på side 17. Vi bruker følgende lemma [Lys92]:
Lemma A.1 La A og B være to �-algebraer slik at det �ns en surjektiv homo-
mor� � fra A til B. Da kan enhver homomor� � fra T�(V) til B, utrykkes ved
sammensetningen ���, hvor � er en homomor� fra T�(V) til A.
Bevis: Betrakt en vilkårlig homomor� � fra T�(V) til B, og betrakt �(x) for
en vilkårlig variabel x. Siden � er surjektiv, �ns det en a 2 A slik at �(a) =
�(x). La � være homomor�en slik at �(x) = a. Således er � entydig bestemt
av verdiene den på denne måten tilordner hver variabel. Vi har altså �(�(x)) =
�(x). Sammensetningen av homomor�er er en homomor�, så homomor�en ���
er entydig bestemt på samme måte som �. Følgelig må ��� og � være samme
homomor�.
2
Vi kan umiddelbart bekrefte (2.2) på side 17. Påstanden A j= s = t betyr jo
8� 2 HomAT�(V)
j �(s) = �(t). Betrakt en slik �. Vi har antatt en surjektiv
homomor� �AG� fra G� til A. Lemma A.1 sier da at � = ���AG� for en homomor�
(substitusjon) � 2 SbstG� . Altså er 8� 2 HomAT�(V)
j �(s) = �(t) samme påstand
som 8� 2 SbstG� j �AG�(s�) = �AG�(t�), siden �AG�
er unik. Men dette betyr jo
8� 2 SbstG� j A j= s� = t�, ved (2.1) på side 16.
A.1.2 Semantikk, initialalgebra og �nalalgebra
Dette avsnittet bør leses i forbindelse med avsnitt 2.3.
La ' være en semantikk på G�. Betrakt klassen av �-algebraer
b'c� = fA j g ' g0 ) A j= g = g0g
167
![Page 176: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/176.jpg)
A. Surjektivitet og grunnterm-algebraer
La oss si at algebraene i b'c�, realiserer semantikken gitt av '. Algebraene i
klassen av �-algebraer
d'e� = fA j g ' g0 ( A j= g = g0g
= fA j g 6' g0 ) A 6j= g = g0g
kan vi på den annen side si begrenser semantikken gitt av '.
Betrakt restriksjonen d'esur�
av d'e� til de algebraer som er homomorfe
bilder av G�. Vi skal vise at G�=' er initiell i b'c� og �nal i d'esur�
. Altså
Sats A.2 Vi har
1. G�=' er initiell i b'c�
2. G�=' er �nal i d'esur�
Godtgjøring av punkt 1 i sats A.2 fordrer at vi viser at G�=' 2 b'c�, og at
det �nnes en unik homomor� fra G�=' til alle A i b'c�. At G�=' 2 b'c� er
innlysende siden (2.6) på side 23 gir G�=' j= g = g0 , g ' g0.
Vi skal vise eksistensen av en unik homomor� ved hjelp av induktiv impli-
kasjon. Vi trenger først et generelt resultat:
Lemma A.3 La A;B;C være tre �-algebraer. La � være en homomor� fra A til
B og ' en avbildning fra B til C slik at sammensetningen ��' er en homomor�.
La '0 være ' restriktert til �(A)�C (funksjoner er relasjoner), der �(A) � B er
bildet av A under �. Da er '0 en homomor� fra algebraen �(A) = h�(A); F 0Bi til
C, der F 0B består av alle funksjoner i funksjonsmengden FB til B men restriktert
til �(A)��(A), og slik at hver funksjon i F 0B er en tolkning av et funksjonssymbol
i �.
Bevis: Først viser vi at algebraen �(A) er en �-algebra. Det holder å vise at
kodomenet til hver f 0B 2 F 0B er inkludert i �(A), m.a.o. at restriksjonen f 0Bav fB �nnes. Betrakt derfor f 0B(b1; : : : ; bn) for en vilkårlig f 0B 2 F
0B og vilkår-
lig hb1; : : : ; bni i domenet til f0B. Domenet til f
0B er inkludert i �(A), så det
�nnes ai 2 A slik at �(ai) = bi;1 � i � n. Pr. antagelse �nnes et funksjon-
symbol f i � av hvilket f 0B er en tolkning. La fA være tolkningen av f i A.
Vi har f 0B(b1; : : : ; bn) = f 0B(�(a1); : : : ; �(an)) = �(fA(a1; : : : ; an)) som viser at
f 0B(b1; : : : ; bn) 2 �(A).
For å vise at '0 er en homomor�, betrakt '0(f 0B(b1; : : : ; bn)) for en vilkårlig
f 0B 2 F 0B. Siden domenet til f 0B er inkludert i �(A), �ns det ai 2 A slik at
�(ai) = bi og det gir dessuten mening å snakke om '0(bi); 1 � i � n. Merk at
'0(bi) = '(bi); 1 � i � n. Vi har altså '(�(ai)) = '(bi); 1 � i � n. Siden ��' er
en homomor� får vi da
'(�(fA(a1; : : : ; an))) = fC('(�(a1); : : : ; '(�(an))
= fC('(b1); : : : ; '(bn))
= fC('0(b1); : : : ; '
0(bn))
for tolkninger fA og fC av funksjonssymbolet av hvilket f 0B er en tolkning. Men
vi har også
'(�(fA(a1; : : : ; an))) = '0(�(fA(a1; : : : ; an)))
= '0(f 0B(�(a1); : : : ; �(an)))
= '0(f 0B(b1; : : : ; bn))
Altså har vi
'0(f 0B(b1; : : : ; bn)) = fC('0(b1); : : : ; '
0(bn))
2
168
![Page 177: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/177.jpg)
A.1. Mer om formelle datatyper og semantikk
Sats A.4 La A og B være to �-algebraer slik at den unike homomor�en fra G�til A er surjektiv, og slik at B er induktivt implisert av A. Da �nnes en unik
homomor� fra A til B.
Bevis: La � være den surjektive homomor� fra G� til A og � den unike homo-
mor� fra G� til B. Betrakt et vilkårlig element a 2 A. Siden � er surjektiv, �ns
minst en g 2 G� slik at �(g) = a. Velg en slik g og kall den ga. For alle a 2 A
og på denne måte assosierte ga slik at �(ga) = a, de�nerer vi så ' fra A til B
slik at '(a) = �(ga).
Vi viser så at ��' = �. For en vilkårlig g 2 G� betrakt '(�(g)). Nå er
�(g) = a for en a 2 A. Videre �ns en ga slik at '(a) = �(ga) og slik at
�(ga) = a. Men da har viA j= g = ga. SidenB er induktivt implisert avA, har vi
B j= g = ga og altså �(g) = �(ga). Altså har vi '(�(g)) = '(a) = �(ga) = �(g).
Da er ��' lik homomor�en �, så ifølge lemma A.3 er ' en homomor� fra A
til B. Homomor�en ��' er unik fra G� til B (� er unik). Siden � er unik fra G�til A, må ' være unik fra A til B.
2
Det er lett å se at homomor�en fra G� til G�=' er surjektiv, så det følger fra sats
A.4 at G�=' er initiell i b'c� for vilkårlige � og ' på G�, siden hver A 2 b'c�er induktivt implisert av G�='. Punkt 1 i sats A.2 er dermed vist.
For punkt 2 i sats A.2, gir (2.6) på side 23 at G�=' 2 d'esur�
. Ved sats A.4
følger det at det �nnes en unik homomor� fra enhver A i d'esur�
til G�=', siden
G�=' er induktivt implisert av hver slik A. Følgelig er G�=' �nal i d'esur�
.
Vi ser på unike homomor�er som abstrakte tolker. En homomor� tolker et
element i en algebra til et tilsvarende (ifølge den felles signatur) element i en
(annen) algebra. At G�=' er initiell i b'c� betyr i en viss forstand at G�=' er
en minste algebra i b'c� slik at det �nnes en abstrakt tolk til alle algebraer i
b'c�. Betrakt nemlig en'0 slik at ' � ' 0. Da vil G�='
0 2 b'c�, men det �nnes
ingen homomor� fra G�='0 til f.eks. G�='. Vi har nemlig for noen g; g0 2 G�
at g '0 g0 men g 6' g0. En homomor� � fra G�='0 til G�=' må være slik at
�([g]'0) = [g]' og �([g0]'0) = [g0]'. Men [g]'0 = [g0]'0 , så da må [g]' = [g0]'.
Sistnevnte er ikke mulig siden g 6' g0.
A.1.3 Elementær ekvivalens og isomor�
En homomor� som er bijektiv kalles en isomor�. En isomor� har, siden den
er bikjektiv, en entydig invers. Denne inversen er også en isomor�. Dersom det
�nnes en isomor� mellom to algebraer A og B, sier vi at A og B er isomorfe.
Sammensetningen av homomor�er er en homomor�. Siden sammensetningen av
bijektive funksjoner er bijektiv, har vi at sammensetningen av isomor�er er en
isomor�.
Anta to �-algebraer A og B som er isomorfe ved en isomor� � 2 HomBA .
Bæremengdene til A og B er da like store (har lik kardinalitet), og med ethvert
element a i A kan det assosieres et unikt element b = �(a) i B som da igjen kan
assosieres med elementet a = ��1(b).
Med hver funksjon fA i A som er en tolkning av et symbol f i �, kan det
videre assosieres en fB og omvendt.
La f være et vilkårlig funksjonssymbol (med aritet n) i�, og la fA og fB være
tolkningene av f i hhv. A og B. Enhver operasjon i A utført av operatoren fAslik at fA tar et n-tuppel ha1; : : : ; ani og gir et element a kan da simuleres iB ved
operasjonen der operatoren fB tar n-tuplet h�(a1); : : : ; �(an)i = hb1; : : : ; bni og
gir �(a) = b. Likeledes simuleres operasjonen fB(b1; : : : ; bn) = b av operasjonen
av fA(��1(b1); : : : ; �
�1(bn)) = ��1(b), dvs. av operasjonen fA(a1; : : : ; an) = a.
169
![Page 178: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/178.jpg)
A. Surjektivitet og grunnterm-algebraer
Algebraer som er isomorfe er derfor formlike til en slik grad at den eneste
essensielle matematiske forskjell er navnene på bestandelene av algebraene (sett
bort fra <ekstra> funksjoner og skrot ikke representert i �).
For oss er det imidlertid en pragmatisk vesensforskjell. Denne vesensforskjell
er grunnet i forskjellen mellom syntaks og semantiske størrelser, og gir seg utslag
i følgende:
Betrakt en kvotientalgebra G�='. Anta at vi har et formelt mekanisk
grep på '. Dersom G�=' er isomorf med en algebra A, har vi dermed
et formelt mekanisk grep på A.
Ved vår intuisjon om isomor� er dette formelle grepet nettopp det vi er ute etter
ved implementasjon av abstrakte datatyper.
Hoveddiskusjonen i avsnitt 2.3 etablerer at korrekt implementasjon av en
abstrakt datatype A oppnås f.eks. ved algebraisk spesi�kasjon av samtlige funk-
sjoner i A, samt implementasjon av identitetsrelasjonen på A. Dette uttryktes
ved (2.3) på side 20.
For å fange inn dette, samt andre måter å spesi�sere semantikk formelt vha.
ligningslogikk på, uttrykkes `korrekt implementasjon' ved kongruensrelasjonen
'AG� indusert av unik grunntermtolk �AG� . `Korrekt implementasjon' kan videre
uttrykkes ved induktiv ekvivalens mellom en G�=' og A (A en �-algebra).
Poenget her i dette avsnittet, og det vi etterhvert skal vise, er at under
surjektiv �AG� så er induktiv ekvivalens, elementær ekvivalens og isomor� mellom
G�='AG�
og A ekvivalente begreper. Dette vil si følgende:
� En implementasjon G�='AG�
av en �-algebra A er isomorf med A. Således
møtes den ved (2.3) mer operasjonelle måten å utrykke `korrekt imple-
mentasjon' på, med en ren strukturell matematisk betraktning om isomorf
simulering.
� En implementasjon G�='AG�
av en �-algebra A er elementært ekvivalent
med A. Anta vi var interessert i å utlede sanne påstander om A. I den
grad vi har et formelt mekanisk grep om 'AG� , har vi således et formelt
mekanisk middel for å utlede sanne påstander om A.
La oss altså betrakte den spesielle kongruensrelasjon 'AG� indusert av �AG�for en �-algebra A. Muligens er �AG� ikke injektiv. Betrakt så kvotientalgebraen
G�='AG�. Kvotientalgebraen G�='
AG�
består nå av kongruensklasser av termer
som tolkes til det samme i A av �AG� . Homomor�en � fra G�='AG�
til A er da en
slags <injektiv versjon> av �AG� , og intuitivt er ikke-injektivitets-slakken dratt
(akkurat passe) inn. Hvis �AG� var surjektiv, skjønner vi intuitivt at G�='AG�
og
A er isomorfe.
Imidlertid skal vi nå presist vise sammenhenger mellom induktiv ekvivalens,
elementær ekvivalens og isomor�.
Lemma A.5 La A og B være to �-algebraer slik at det �ns en surjektiv homo-
mor� fra A til B. Da er B elementært implisert av A.
Bevis: La � være en surjektiv homomor� fra A til B. Anta A j= u = v for
en u = v 2 E(T�(V)). Betrakt så en vilkårlig homomor� � fra T�(V) til B.
Ved lemma A.1 har vi �(s) = �(�(s)) for en homomor� � fra T�(V) til A. Ved
antagelse er (u) = (v) for alle homomor�er fra T�(V) til A, og spesielt er
�(u) = �(v). Det følger at
�(u) = �(�(u)) = �(�(v)) = �(v)
2
170
![Page 179: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/179.jpg)
A.1. Mer om formelle datatyper og semantikk
Sats A.6 La A og B være to �-algebraer som er isomorfe. Da er A og B
elementært ekvivalente.
Bevis: Isomor�en � fra A til B er en bijektiv homomor�. Enhver bijeksjon har
en entydig invers som også er en bijeksjon. Så vi får fra lemma A.5
A j= u = v ) B j= u = v og B j= u = v ) A j= u = v
2
Resultatet i sats A.6 skulle bare mangle. Motsatsen gjelder dog ikke generelt.
Her er et moteksempel:
Eksempel 88 Betrakt en signatur ffg. La A og K være to ffg-algebraer slik
at
A = hfa; b; cg; fIdgi
K = hfk; lg;fIdgi
Funksjonssymbolet f tolkes til identitetsfunksjonen Id slik at Id(x) = x, i begge
A og K. Både A og K tilfredstiller ligningene ff(x) = x; f(f(x)) = f(x); : : :g og
bare disse. Så A og K er elementært ekvivalente. Men A og K er ikke isomorfe.d
Dette moteksemplet er mulig siden det ikke �ns noen felles signatur � slik at
det �nnes surjektive homomor�er fra G� til A og K. Vi skal se at dette er den
eneste måten å lage et slikt moteksempel på. Dette gjør vi ved å utforske sam-
menhengen mellom induktiv implikasjon og unike homomor�er videre. Følgende
to lemmata er påbygninger til sats A.4.
Lemma A.7 La A og B være to �-algebraer slik at begge de unike homomor-
�ene fra G� til A og fra G� til B er surjektive, og slik at B er induktivt implisert
av A. Da �nnes en (unik) surjektiv homomor� fra A til B.
Bevis: Fra sats A.4 har vi at det �nnes en unik homomor� ' fra A til B. La
� være den surjektive homomor� fra G� til A og � den unike homomor� fra G�til B. I beviset for sats A.4 viste vi at � = ��'. Nå er � surjektiv, og det er lett
å se at ' da må være surjektiv.
2
Lemma A.8 La A og B være to �-algebraer slik at den unike homomor�en fra
G� til A er surjektiv, og slik at A er induktivt implisert av B. Da er avbildningen
' som de�nert i beviset for sats A.4 injektiv.
Bevis: Avbildning ' fra A til B var de�nert slik: La � være den surjektive
homomor� fra G� til A og � den unike homomor� fra G� til B. Betrakt et
vilkårlig element a 2 A. Siden � er surjektiv, �ns minst en g 2 G� slik at
�(g) = a. Velg en slik g og kall den ga. For alle a 2 A og alle på denne måte
assosierte ga slik at �(ga) = a, de�nerer vi så ' fra A til B slik at '(a) = �(ga).
Anta så at det �ns a; a0 2 A slik at a 6= a0. Ved de�nisjonen av ' kan
vi identi�sere ga; ga0 2 G� slik at '(a) = �(ga) og '(a0) = �(ga0). Siden
A 6j= ga = ga0 og vi har A induktivt implisert av B, har vi B 6j= ga = ga0 og
dermed �(ga) 6= �(ga0). Men dette gir '(a) 6= '(a0) og dermed injektivitet av
'.
2
171
![Page 180: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/180.jpg)
A. Surjektivitet og grunnterm-algebraer
Sats A.9 La A og B være to �-algebraer slik at de to unike homomor�ene fra
G� til A og fra G� til B er surjektive og slik at A og B er induktivt ekvivalente.
Da er A og B isomorfe.
Bevis: Fra sats A.4 har vi at det �nnes en unik homomor� ' fra A til B. Fra
lemma A.7 har vi at ' er surjektiv. Fra lemma A.8 har vi at ' er injektiv.
2
Vi oppsummerer (grovt).
Teorem A.10 La A og B være to �-algebraer slik at homomor�ene fra G� til
A og fra G� til B er surjektive. Da har vi:
A og B er isomorfe hvis og bare hvis A og B er elementært ekvivalente.
Bevis: Anta A og B er isomorfe. Ved sats A.6 har vi at A og B er elemen-
tært ekvivalente. Anta A og B er elementært ekvivalente. Elementær ekvivalens
medfører induktiv ekvivalens, og A og B er da isomorfe ved sats A.9.
2
For en �-algebra A, anta �AG� er surjektiv. Betrakt så G�='AG�. Siden den
unike homomor� fra G� til G�='AG�
er surjektiv, har vi ved sats A.9 og siden
G�='AG�
og A er induktivt ekvivalente, at
� G�='AG�
og A er isomorfe
og dermed ved sats A.6 at
� G�='AG�
og A er elementært ekvivalente.
(Sistnevnte har vi også etablert på side 23.)
A.1.4 Semantikk på termer med variable
Det er selvsagt også mulig å gi semantikk til termer med variable. Relasjonen
'A slik at s 'A t , A j= s = t, for alle s; t 2 T�(V) og A en �-algebra, er av
en viss interesse for oss, siden denne også er mengden av ligninger tilfredstilt i
A. Restriksjonen av 'A til G��G� er den kjente kongruensrelasjon indusert av
�AG� .
Merk at dersom �AG� er surjektiv, kan 'A utrykkes ved 'AG� :
s 'A t , A j= s = t , G�='AG�j= s = t , 8� 2 SbstG� j s�'AG�t�
for alle s; t 2 T�(V). Dette ved elementær ekvivalens mellom G�='AG�
og A og
ved (2.2) side 17, kombinert med (2.6) side 23.
Vi viser nå at 'A er en kongruensrelasjon.
Sats A.11 La � være en vilkårlig signatur. La A være en vilkårlig �-algebra.
Relasjonen 'A på T�(V) slik at s 'A t , A j= s = t, er en kongruensrelasjon
på T�(V).
Bevis: For vilkårlige s; t 2 T�(V) betyr s 'A t at 8� 2 HomA
T�(V)j �(s) = �(t).
Da er 'A en ekvivalensrelasjon ved at identitetsrelasjonen på A er en ekviva-
lensrelasjon. La nå fT være en vilkårlig n-ær funksjon i T�(V). Anta si 'A ti for
vilkårlige si; ti 2 T�(V);1 � i � n. Dvs. 8� 2 HomAT�(V)
j �(si) = �(ti);1 � i �
n. Men vi har �(fT (s1; : : : ;sn)) = fA(�(s1); : : : ;�(sn)) og �(fT (t1; : : : ;tn)) =
172
![Page 181: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/181.jpg)
A.2. Induktive konsekvenser og surjektivitet
fA(�(t1); : : : ;�(tn)) for alle � 2 HomAT�(V)
, og ved funksjonsapplikasjon av iden-
titiske elementer får vi så 8� 2 HomAT�(V)
j �(fT (s1; : : : ;sn)) = �(fT (t1; : : : ;tn)),
og dermed fT (s1; : : : ;sn) 'A fT (t1; : : : ;tn).
2
Følgende resultat er dessuten viktig for oss:
Sats A.12 La � være en vilkårlig signatur. La A være en vilkårlig �-algebra og
B et vilkårlig redukt av A. La ' være en kongruensrelasjon på A. Restriksjonen
'B av ' til B � B er en kongruensrelasjon på B.
Bevis: Siden 'B � ' er det innlysende at 'B er en ekvivalensrelasjon på
B. La så fB være en vilkårlig funksjon i B. Anta fB er n-ær. Anta bi 'B b0ifor vilkårlige bi; b
0i 2 B;1 � i � n. Siden 'B � ' har vi også bi ' b0i. Ved
de�nisjon av redukt er fB en restriksjon av en funksjon i A. Siden ' er en
kongruensrelasjon (på A), får vi derfor fB(b1; : : : ; bn) ' fB(b01; : : : ; b
0n). Siden B
er en algebra er fB(�1; : : : ; �n) 2 B for vilkårlige �i 2 B; 1 � i � n. Da får vi,
siden 'B � ', fB(b1; : : : ; bn) 'B fB(b01; : : : ; b
0n).
2
At 'AG� er en kongruensrelasjon følger fra A.12; men dette er også godtgjort
direkte i sats 2.1 på side 23.
Vi utvider notasjonen b'c� til å omfatte vilkårlige kongruensrelasjoner på
vilkårlige �-term-algebraer. Altså b'c� = fA j s ' t ) A j= s = tg eksempel-
vis. For en kongruensrelasjon ' på en T�(V), har vi ved sats A.4 at det �nnes
en unik homomor� fra G�='G� til alle A 2 b'c�, siden hver A er induktivt imp-
lisert av G�='G� . Imidlertid er det ikke sikkert at G�='G� 2 b'c�, så G�='G�er ikke nødvendigvis initiell i b'c�.
A.2 Induktive konsekvenser og surjektivitet
Dette avsnittet bør leses i forbindelse med avsnitt 2.4.1 på side 47.
Mengden Teo(E) er mengden av ligninger som følger ved logisk nødven-
dighet fra en ligningsmengde E � E(T�(V)) for en �; m.a.o. de ligninger som
er tilfredstilt i enhver modell for E. Nå er ikke modeller for E nødvendigvis
homomorfe bilder av G�. Vi skal se at forskjellen mellom Teo(E) og Ind(E) er
betinget av nettopp disse fra G� <ikke-kontrollerbare> modeller for E.
Først viser vi at G�=E 2 Mod�(E). Ved teorem 2.24 side 48 kanMod�(E)
uttrykkes ved b�$Ec� = fA j s
�$Et ) A j= s = tg. Anta så s
�$Et for vil-
kårlige s; t 2 T�(V). Spesielt har vi da ved monotonitet mhp. substitusjon
8� 2 SbstG� j s��$Et�. Men vi har jo G�=E j= s = t , 8� 2 SbstG� j s�
�$Et�.
Ergo er G�=E 2 Mod�(E). (Ved diskusjonen i avsnitt A.1 er da også G�=E
initiell iMod�(E).)
De�nisjon A.1 La K være en klasse algebraer. Vi lar K j= s = t bety at
A j= s = t for alle A 2 K for en ligning s = t. For en signatur � er algebraen
Q en induktiv representant for K dersom
Q j= g = g0 , K j= g = g0
for alle g; g0 2 G� og en elementær representant for K dersom
Q j= s = t , K j= s = t
for alle s; t 2 T�(V)
173
![Page 182: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/182.jpg)
A. Surjektivitet og grunnterm-algebraer
Vi har altså sett at G�=E generelt ikke er en elementær representant for klassen
Mod�(E).
Lemma A.13 Betrakt G� for en vilkårlig signatur �. La K være en klasse
av algebraer slik at �AG� er surjektiv for alle A 2 K. La Q være en induktiv
representant for K. Anta videre at Q 2 K. Da er Q en elementær representant
for K.
Bevis: Observer at alle elementene i K er �-algebraer. La A 2 K være vilkårlig.
Q er en induktiv representant for K mhp. �, så Q j= g = g0 ) A j= g = g0
for alle g; g0 2 G�. Nå er Q 2 K, så �QG�
er surjektiv, og lemma A.7 gir at
det �nnes en surjektiv homomor� fra Q til A. Og da gir lemma A.5 at Q j=
s = t ) A j= s = t for alle s; t 2 T�(V). Vi har altså Q j= s = t ) K j=
s = t for alle s; t 2 T�(V). Observer til slutt at siden Q 2 K har vi trivielt
K j= s = t ) Q j= s = t for alle s; t 2 T�(V).
2
Teorem A.14 La � være en vilkårlig signatur. Betrakt en vilkårlig lignings-
mengde E. LaMod�(E)sur betegne snittet avMod�(E) med mengden av homo-
morfe bilder av G�. La Esur j= s = t bety at s = t er tilfredstilt av alle A 2
Mod�(E)sur . Vi har:
G�=E j= u = v , Esur j= u = v
for alle u; v 2 T�(V).
Bevis: G�=E er en modell for E, og det �ns en surjektiv homomor� fra G� til
G�=E, så G�=E 2 Mod�(E)sur . Altså har vi Esur j= u = v ) G�=E j= u = v
for alle u; v 2 T�(V) og spesielt
Esur j= g = g0 ) G�=E j= g = g0
for alle g; g0 2 G�.
Videre har vi ved (2.2) side 17, (2.6) side 23 og Birkho�s teorem 2.24 side
48
G�=E j= u = v , 8� 2 SbstG� j E j= u� = v�
for alle u; v 2 T�(V). Spesielt har vi da G�=E j= g = g0 ) E j= g = g0, og
sidenMod�(E)sur �Mod�(E) har vi
E j= g = g0 ) Esur j= g = g0
for alle g; g0 2 G�. Altså er G�=E en induktiv representant forMod�(E)sur . Siden
G�=E 2Mod�(E)sur gir lemma A.13 at G�=E er en elementær representant for
Mod�(E)sur .
2
Ser vi altså bort fra modeller som ikke er homomorfe bilder av grunnterm-
algebraer, har vi på et vis, og sagt litt sleivete, at den <logiske> teori og den
induktive teori er identisk.
De modeller som betraktes som abstrakte datatyper i implementasjons-
/spesi�kasjons-/programmerings-sammenheng er nettopp homomorfe bilder av
grunnterm-algebraer (jfr avsnitt 2.2.4 på side 15).
Mod�(E) har også en elementær representant mhp. �; nemlig T�(V)=E ved
(2.6) side 23. Vi oppsummerer: For en vilkårlig � har vi for vilkårlige u; v 2
T�(V):
174
![Page 183: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/183.jpg)
A.3. Omskrivningssystemer og konvergens
� E j= u = v , T�(V)=E j= u = v , u�$Ev
� Esur j= u = v , G�=E j= u = v , 8� 2 SbstG� j u��$Ev�
A.3 Omskrivningssystemer og konvergens
Dette avsnittet inneholder beviset av (2.16) på side 49, samt en bemerkning
om de�nisjonen av T -konvergens når T er hele termuniverset i den aktuelle
diskusjon.
A.3.1 Bevis for (2.16) side 49
Vi skal altså vise
Sats A.15 La R � E(T�(V)) være et omskrivningssystem for en signatur �.
La T være en term-mengde slik at T � T�(V). Anta R er T -konvergent. Da
�nnes s!R og t!R for vilkårlige s; t 2 T , og
s�$Rt , s!R = t!R
Bevis: Anta s!R = t!R for vilkårlige s; t 2 T . Da har vi trivielt s�$Rt.
Anta så at s�$Rt. Siden R er T -Church-Rosser �nnes en u 2 T�(V) slik at
s�!Ru
� Rt. Nå må u ha en normalform ellers fantes en uendelig !
R-utledning
hs; : : :i og R var ikke T -terminerende. Siden R har entydige T -normalformer
må videre u ha en entydig normalform u!R ellers ville s 2 T ikke ha en entydig
normalform. Men u!R er også en normalform for t, og siden R har entydige
T -normalformer har vi at s!R = t!R.
2
A.3.2 Delvis konvergens vs. full konvergens
La T�(V) være vårt termunivers. La T være en term-mengde slik at T � T�(V).
Vi har i på side 49 de�nert T -konvergens for en vilkårlig R � E(T�(V)) ved at
R
� er T -terminerende
� har entydige T -normalformer
� er T -Church-Rosser
Dersom T = T�(V) kan kravet om T�(V)-Church-Rosser utelates i de�nisjonen
for (T�(V))-konvergens, siden:
Lemma A.16 Hvis et omskrivningssystem R � E(T�(V)) er (T�(V))-termine-
rende og har entydige (T�(V))-normalformer så er det (T�(V))-Church-Rosser.
At et omskrivningssystem R � E(T�(V)) generelt er T -Church-Rosser hvis det
er T -terminerende og har entydige T -normalformer holder ikke:
Eksempel 89 La � = fa;b; cg være en signatur av konstanter. La T = fa;bg.
Betrakt følgende R � E(T�(V)):
fc! a; c! bg
R er T -terminerende og har entydige T -normalformer, men er ikke T -Church-
Rosser, siden
a! R
c!!R
b
d
175
![Page 184: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/184.jpg)
![Page 185: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/185.jpg)
Symboltabell
AT (Delmengde (bæremengde) av domenet A til en algebra som er tolkningen
i algebraen av en type T ), 14
A=' (Kvotientalgebra av A over '), 23
F (Mengden av alle funksjoner), 11
G� (Grunntermalgebraen over �), 15
GType (Symbolmengde av grunntyper), 12
HomBA (Mengden av homomor�er fra A til B), 14
N (Mengden av naturlige tall), 14
P(A) (Mengden av alle delmengder av A), 11
�F (Funksjonspro�ltolk), 13
�T (Typetolk), 13
R (Mengden av reelle tall), 12
<A01�����A0n
(Restriksjonen av relasjonen < til A01 � � � � � A0n), 10
<A0 (Restriksjonen av relasjonen < til A01� � � � �A0n for A01 = � � � = A0n = A0),
10
S (Mengden av alle mengder), 11
SbstT (Mengden av substitusjoner med kodomene T ), 17
T�(V) (Term-algebraen over � og V), 15
Type (Symbolmengde av typer), 12
Z (Mengden av hele tall), 14
�BA (En homomor� fra A til B), 14
g\s (Termen identisk med g, men med alle forekomster av spesi�serende symbol
s fjernet), 102
g (En generatorterm slik at g�$Eg), 92
�gc (En generatorterm slik at s(gc)�$Es
�gc, for en generatorterm gc og spesi�serende
symbol s), 92
2 (Hull i en kontekst.), 18
'AG� (Kongruensrelasjonen indusert i G� av den unike �AG�), 23
'� (initialsemantikk), 31
'! (�nalsemantikk), 27
's (indirekte semantikk), 85
'x (kjernesemantikk), 27
lens (Lengden av sekvensen s), 10
s!R (Den unike normalformen i R av s), 49
177
![Page 186: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/186.jpg)
![Page 187: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/187.jpg)
Referanser
[Apt90] K.R. Apt. Logic programming. In J. van Leeuwen, editor,Handbook of
Theoretical Computer Science, volume B, chapter 10, pages 491�574.
Elsevier, Amsterdam, 1990.
[Bac87] L. Bachmair. Proof methods for equational theories. PhD thesis,
University of Illinois, Urbana-Champaign, 1987.
[Bac88] L. Bachmair. Proof by consistency in equational theories. In
Proceedings 3rd IEEE Symposium on Logic in Computer Science,
Edinburgh (UK), pages 228�233, 1988.
[Bir35] G. Birkho�. On the structure of abstract algebras. In Proceedings
Cambridge Philosophical Society, 31, pages 433�454, 1935.
[BM88] R. S. Boyer and J. S. Moore. A Computational Logic Handbook.
Academic Press, Inc., 1988.
[Bur69] R. Burstall. Proving properties of programs by structural induction.
Computer Journal, 12(1):41�48, 1969.
[Dah92] O.-J. Dahl.Veri�able Programming. Prentice Hall International Series
in Computer Science; C.A.R. Hoare, Series Editor. Prentice-Hall, UK,
1992.
[DJ90] N. Dershowitz and J.-P. Jouannaud. Rewrite systems. In
J. van Leeuwen, editor, Handbook of Theoretical Computer Science,
volume B, chapter 6. Elsevier, Amsterdam, 1990.
[DMN70] O.-J. Dahl, B. Myhrhaug, and K. Nygaard. Simula 67 Common Base
Language. Publikasjon N. S-22, Norsk Regnesentral, Oslo, okt. 1970.
[DO91] O.-J. Dahl and O. Owe. Formal development with ABEL. In
Proceedings 4th International Symposium of VDM Europe, volume
552 of Lecture Notes in Computer Science, 1991.
[DR91] N. Dershowitz and U.S. Reddy. Deductive and inductive synthesis of
equational programs. Journal of Symbolic Computation, 15:467�494,
1991.
[EN58] E.Nagel and J.R. Newman. Gödel's Proof. New YorkUniversity Press,
New York, N.Y., 1958.
[GG91] S.J. Garland and J.V. Guttag. A guide to LP, the Larch Prover.
Technical report, Digital Equipment Corporation Systems Research
Center, desember 1991.
[GJ67] G.Kreisel and J.L.Krivine. Elements of Mathematical Logic. North-
Holland, 1967.
179
![Page 188: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/188.jpg)
[Göd31] K. Gödel. Über formal unentscheidbare Sätze der Principia
Mathematica und verwandter Systeme I.Monatshefte für Mathematik
und Physik, 38:173�198, 1931.
[GR83] A. Goldberg and D. Robson. Smalltalk-80: The Language and its
Implementation. Addison-Wesley, Reading, Mass., 1983.
[Gut75] J.V. Guttag. The Speci�cation and Application to Programming of
Abstract Data Types. PhD thesis, Computer Science Department,
University of Toronto, 1975.
[Gut77] J.V. Guttag. Abstract datatypes and the development of data
structures. Communications of the ACM, 20(6):396�404, 1977.
[GW88] J.A. Goguen and T. Winkler. Introducing OBJ3. Technical report,
SRI International, Computer Science Lab, 1988.
[Han92] J.E. Hannay. Konstruksjon. Arbeidsnotat, november 1992.
[Han94] J.E. Hannay. Generering av (direkte) algebraiske spesi�kasjoner fra
indirekte algebraiske spesi�kasjoner. Arbeidsnotat, mai 1994.
[Her92] M. Hermann. On the relation between primitive recursion,
schematization, and divergence. In Giorgio Levi, editor, Proceedings
of the 3rd International Conference on Algebraic and Logic
Programming, Volterra, Italy, volume 632 of Lecture Notes in
Computer Science, pages 115�127. Springer-Verlag, September 1992.
[HH82] G. Huet and J.-M. Hullot. Proofs by induction in equational theories
with constructors. Journal of Computer and System Sciences, pages
239�266, 1982.
[Hoa69] C.A.R. Hoare. An Axiomatic Approach to Computer Programming.
Communications of the ACM, 12:576�580, 1969.
[HZ89] X. Hua and H. Zhang. An overwiew of RRL: Rewrite Rule
Laborotory. In Proceedings 3rd Conference on Rewriting Techniques
and Applications, Chapel Hill (North Carolina, USA), volume 355 of
Lecture Notes in Computer Science, pages 513�529. Springer-Verlag,
april 1989.
[JK89] J.-P. Jouannaud and E. Kounalis. Automatic proofs by induction
in theories without constructors. Information and Computation,
82(1):1�33, July 1989.
[KB70] D.E. Knuth and P.B. Bendix. Simple word problems in universal
algebras. In J. Leech, editor, Computational Problems in Abstract
Algebra, pages 263�297. Pergamon Press, Oxford, 1970.
[Kir94] B. Kirkerud. Omskrivningssystemer. Forelesningsnotater til IN307,
Institutt for informatikk, Universitetet i Oslo, 1994.
[KM87] D. Kapur and R. Musser. Proof by consistency. Arti�cial Intelligence,
31:125�157, 1987.
[KNZ87] D. Kapur, P. Narendran, and H. Zhang. On su�cient completeness
ans related properties of term rewriting systems. Acta Informatica,
24(4):395�415, 1987.
180
![Page 189: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/189.jpg)
[Lys92] O. Lysne. Proof by consistency in constructive systems with �nal
algebra semantics. In Proceedings 3rd International Conference on
Algebraic and Logic Programming, Pisa (Italy), volume 632 of Lecture
Notes in Computer Science, pages 276�290. Springer-Verlag, 1992.
[Lys93] O. Lysne. The equational part of proofs by structural induction. BIT,
33:596�618, 1993.
[Lys94a] O. Lysne. Extending Bachmair's method for proof by consistency to
the �nal algebra. Information Processing Letters, 51:303�310, 1994.
[Lys94b] O. Lysne. Heuristics for completion in automatic proofs by structural
induction. Nordic Journal of Computing, 1:135�156, 1994.
[Mar47] A.A. Markov. The impossibility of some algorithms in the theory of
associative systems. Dokl. Akad. Nauk SSSR, 55(7):587�590, 1947.
[Mos90] P.D. Mosses. Denotational semantics. In J. van Leeuwen, editor,
Handbook of Theoretical Computer Science, volume B, chapter 11,
pages 575�631. Elsevier, Amsterdam, 1990.
[Mus80] D.L. Musser. On proving inductive properties in abstract data types.
In Proceedings of the 7th Annual ACM Symposium on Principles of
Programming Languages, pages 154�162, January 1980.
[New42] M.H.A. Newman. On theories with a combinatorial de�nition of
`equvalence'. Ann. Math., 43(2):223�243, 1942.
[Pla85] D. Plaisted. Semantic con�uence tests and completion methods.
Information and Control, 65:182�215, 1985.
[Pos47] E.L. Post. Recursive unsolvability of a problem of Thue. Journal of
Symbolic Logic, 13:1�11, 1947.
[Rob65] J.A. Robinson. A machine-oriented logic based on the resolution
principle. Journal of the Association for Computing Machinery,
12(1):23�41, 1965.
[Tar68] A. Tarski. Equational logic and equational theories of algebras.
In K. Schutte, editor, Contributions to Mathematical Logic. North-
Holland, Amsterdam, 1968.
[Tur36] A.M. Turing. On Computable Numbers, with an Application to the
Entscheidungsproblem. London Mathematical Society, 2(42, 43):230�
265, 544�546, 1936.
181
![Page 190: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/190.jpg)
![Page 191: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/191.jpg)
Register
ASSS, 88
DEGEN, 39
DISJ, 84
EdFRI
c, 87
EdKONSERV+, 87
EdVARBEVAR, 84
EsFRIc, 87
EsKONSERV+, 87
EsVARBEVAR, 84
hROT, 94
INDDEGEN, 84
INDKONG, 84
INDKONSERV, 86
KONSERV, 28
KONSTR, 86
KONVERG, 86
KREP1, 91
KREP2, 102
�h = fhg, 95
TK, 28
T�K, 85
T�hK, 85
T��K, 85
TsK, 85
abstrakt deterministisk program, se
ligninger
abstrakt ikke-deterministisk prog-
ram, se ligninger
abstrakte maskiner, 3
adekvat regelmengde, 49
algebra, 13
bæremengde til, 14
domene til, 14
funksjonsmengde til, 14
utvidelse av, 74
algebraisk funksjonsbeskrivelse, 20
algoritmisk, 12
avgjørbar, 12
e�ektivt, 12
bæremengde, se algebra
begrense semantikk, se semantikk
bijektiv, se funksjon
Church-Rosser, 49
datatype, 1
abstrakt, 2
formell, 2
basis-�nal, 27
basis-initiell, 24
�nal, 28
initiell, 31
de�nert funksjonssymbol, 25
delvis monoton tillukning, se rela-
sjon
direkte spesi�kasjon, se spesi�ka-
sjon
domene
algeba-, se algebra
funksjons-, se funksjon
relasjons-, se relasjon
elementært ekvivalent, 17
elementært implisert, 17
�kspunktfunksjon, 64
�nal, 14
�nistiske bevisprinsipper, 60
formell omgivelse, 46
grensesnitt-, 47
logisk, 47
fri ligningsmengde, 58
fri semantikk, se semantikk
full uttrykkbarhet, 16
fullstendig de�nerthet, 25
funksjon, 11
applikasjon av, 11
bijektiv, 11
bildet av, 11
domene til, 11
�kspunkt til, 11
injektiv, 11
kodomene til, 11
konstant-, 11
surjektiv, 11
verdi av, 11
funksjonsmengde, se algebra
funksjonsvariant, 11
183
![Page 192: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/192.jpg)
funksjonsymbol, 12
generator, 25
-funksjon, 3
-termer, 4
-univers, 4
grensesnitt-omgivelse, se formell
omgivelse
grunnredusibel, 56
hjelpefunksjon(symbol)er, 80
homomor�, 14
homomorft bilde, 14
hull, 18
id -utvidelse, 91
generalisert, 141
identitet, 9
id -restriksjon, 127
implementasjon
de�nisjon av, 23
intuitivt, 12
operasjonell del av, 12
representasjonell del av, 12
indirekte G-kongruent, 84
indirekte spesi�kasjon, se spesi�ka-
sjon
induktiv grense, 55
induktiv komplettering, 56
RD-restriktert, 133
RI-restriktert, 133
sekvens-utvidet, 161
induktiv teori, 48
induktive konsekvenser, 48
induktivt implisert, 17
induktivt ekvivalent, 17
initiell, 14
injektiv, se funksjon
instansiering, 16
invers
til funksjon, se funksjon
til relasjon, se binær-relasjon
isomor�, 169
kanonisk representant, se klassere-
presentant
kanonisk-representant funksjon, 64
kjernebevarende
�nalt, 33
initielt, se konsistens
klasserepresentant, 66
kanonisk, 64
naturlige, 67
klasserepresentant funksjon, 66
Knuth&Bendix-prosess
RD-restriktert, 133
RI-restriktert, 132
terminerende, 55
terminerende mislykket, 55
terminerende vellykket, 55
vellykket, 55
kodomene, se funksjon
komplett regelmengde, 49
komplettering, se Knuth&Bendix-
prosess
kon�uens
global, 53
lokal, 53
kongruensrelasjon, 22
indusert av homomor�, 23
kongruent, se relasjon
konsistens
�nal, 33
indre, 33
initiell, 32
relativ til kjerne, 33
konstant, 12
kontekst, 18
tom, 18
konvergent, 49
korrekthet, 1
kritisk par
ekte, 53
trivielt, 53
kunstig inkonsistens, 125
leksikogra�sk ordning, 100
ligninger, 16
!-komplette, 48
som abstrakte programmer, 4
deterministiske, 5, 49
ikke-deterministiske, 5, 21
ligningslogikk, 19
logisk omgivelse, se formell omgiv-
else
logisk teori, 48
lukket mengde, se mengde
manifest, 113
i henhold til skjuling, 132
kjerne, 113
matching, 18
mengde, 9
avgjørbar, 12
lukket, 11
modul, 2
monoton, se relasjon
184
![Page 193: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/193.jpg)
n-foldige kartesiske produkt, 10
n-tuppel, 10
normalform, 49
normalformer
entydige, 49
observator, 28
omskrivbar, 19
omskrivningsberegnbar, 63
omskrivningsrelasjon, 18
omskrivningssystem, 18
operator, 11
gi, 11
ta, 11
posisjon, 17
pro�l
funksjons-, 12
variabel-, 13
RD-restriktert komplettering, se
Knuth&Bendix-prosess
realisere semantikk, se semantikk
reduksjon, 66
reduksjonsordning, 19
redukt, 14
relasjon, 10
binær, 10
delvis monoton tillukning av,
126
invers av, 10
monoton, 18
monotone tillukning av, 19
re�eksiv, 10
re�eksiv tillukning av, 10
re�eksiv-transitiv tillukning
av, 10
sammensetning, 10
symmetrisk, 10
symmetrisk tillukning av, 10
transitiv, 10
transitiv tillukning av, 10
velfundert, 10
domene til, 10
ekvivalens-, 10
restriksjon av, 10
universell, 10
resolusjon, 47
metoder, 50
resonnering
formell, 3
mekanisk, 3
ustrukturert, 1
RI-restriktert komplettering, se Knuth-
&Bendix-prosess
Russels paradox, 11
sann, 16
sekvens, 10
sekvens-utvidet komplettering, se
Knuth&Bendix-prosess, 151
semantikk, 24
atomær, 46
basis-�nal, 27
basis-initial, 24
begrense, 44, 168
�nal pseudo-, 27
�nal-, 28
for funksjonssymboler, 24
fri, 24
fullstendig, 30
indirekte, 84
initial, 31
kjerne-, 27
løs, 31
på termer, 24
realisere, 26, 168
separabel, 41
ønsket, 44
semantikkantydende, se syntaktiske
funksjoner
semantikkgivende, se syntaktiske
funksjoner
semantisk sprang, 2
semantisk subtype, 69
signatur
funksjons-, 12
variabel-, 13
skrot, 15
spesi�kasjon
av kongruensrelasjon
direkte, 25
indirekte, 84
mhp. syntaktisk funksjon, 81
funksjons-, 19
konstruktiv, 19, 67
spesi�serende symbol, 84
subalgebra, 14
substitusjon, 16
grunn-, 16
T -, 17
subterm-egenskap
kanonisk representant, 73
sunn regelmengde, 49
surjektiv, se funksjon
syntaktisk funksjon, 63
syntaktiske funksjoner
185
![Page 194: j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/JHannay.pdf · k ed j er.D et h rb ts tt a ta g b ra em e-to d er k a nta si b r u kf o ra st k tre p es en t](https://reader033.vdocuments.site/reader033/viewer/2022042121/5e9b1fb40514e31c747713dd/html5/thumbnails/194.jpg)
semantikkantydende, 143
semantikkgivende, 64
term, 13
dybde, 18
grunn-, 13
rot i, 18
som tre, 18
subterm, 18
ekte, 18
term-algebra, 14
terminerende Knuth&Bendix-pro-
sess, se Knuth&Bendix-
prosess
terminerende omskrivningssystem,
49
terminerende mislykket Knuth&-
Bendix-prosess, se Knuth-
&Bendix-prosess
terminerende vellykket Knuth&-
Bendix-prosess, se Knuth-
&Bendix-prosess
termomskrivningsberegnbar, se om-
skrivningsberegnbar
termomskrivningssystem, se om-
skrivningssystem
termunivers, 19
tilfredstille, 16
tilstrekkelig komplett, 25
tolk
funksjonspro�l-, 13
grunnterm-, 15
type-, 13
type, 12
grunn-, 12
uni�kator, 52
mest generell, 52
uni�serbar, 52
utledbar, 19
utledning
M -, 19
<-, 18
ensrettet M-, 19
utledningsforekomst, 95
kritisk, 95
opphørbar, 95
opphørt, 95
oppstå, 95
samme, 95
variabelbevarende, 84
variabelsymbol, 13
vedvarende regler, 55
vedvarende ligninger, 55
velfundert, se relasjon
186