j h@ u i o. n oftp.project.ifi.uio.no/publications/cand-scient-theses/jhannay.pdf · k ed j er.d et...

194

Upload: others

Post on 16-Apr-2020

1 views

Category:

Documents


0 download

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

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
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

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

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

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

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

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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.5. Inkonsistens i tilknytning til indirekte algebraisk spesi�kasjon

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
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

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
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

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

[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

[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
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

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

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

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

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