Domain Theory
Denotationele semantiek
- Termen worden gekoppeld aan een wiskundig object (betekenis)
- Compositioneel principe:
Vormvereisten:
samengestelde termen = samenstelling betekenis subtermen
Welk soort objecten?
Domain theory
Bepaalt de wiskundige objecten voor een denotationele semantiek voor lambda calculus
Domein van lambda calculus ligt niet vast
=> Geen totale, wel partiële functies
?
Moet oneindige data kunnen voorstellen
=> Oneindige sequentie van (steeds betere) eindige benaderingen
'undefined' (⊥) voor niet-bepaalde functies
Domain theory
Wat betekent 'steeds betere'?
partiële orde op de eindige benaderingen
- ⊥ het minst precieze element
- upper en lower bound zoals standaard
Finitary Base:
Partiële orde + Elke eindige set met een upper bound heeft een least upper bound
Domain Theory
Ideals: subsets \(\mathcal{I}\) van een finitary base B w.g.
- \(\mathcal{I}\) is neerwaarts gesloten
- Elke eindige subset v. heeft een l.u.b. in \(\mathcal{I}\)
Principal ideals zijn die ideals die we bekomen uit b \(\in\) B door:
\(\mathcal{I}_b\)={\(b' \in B | b' \sqsubseteq b\)}
Domain Theory
Ideals: subsets \(\mathcal{I}\) van een finitary base B w.g.
- \(\mathcal{I}\) is neerwaarts gesloten
Een finitary base B bepaalt een Domein \(\mathcal{D}_{B}\): De partiële orde \(\langle D, \sqsubseteq_{D}\rangle\) met D de set van alle ideals en \(\sqsubseteq_{D}\) de subset relatie
- Elke eindige subset v. heeft een l.u.b. in \(\mathcal{I}\)
Deze partiële orde voldoet aan de voorwaarde van een finitary base
Domain Theory
De betekenis van een expressie is een element uit een domein \(\mathcal{D}\).
Domain Theory
Een benaderbare mapping \(F \subseteq A \times B \):
Op weg naar functies
- ⊥\(_{A}\)F⊥\(_{B}\)
- aFb \(\wedge\) aFb' => aF(b\(\sqcup\)b')
- aFb \(\wedge\) b'\(\sqsubseteq_{B}\)b => aFb'
- aFb \(\wedge\) a\(\sqsubseteq_{A}\)a' => a'Fb
Met de subset-relatie stelt dit een partiële orde voor
Domain Theory
Continue functies: f: \(\mathcal{A} \rightarrow \mathcal{B}\) is continue a.s.a.
f(\(\mathcal{I}\)) = \(\bigsqcup\) {f(\(\mathcal{I}_{a}\)) | a \(\in \mathcal{I}\)}
De partiële orde \(\sqsubseteq_{\mathcal{B}}\) op \(\mathcal{B}\) bepaalt een partiële orde op de continue functies
- Er is een isomorphisme tussen benaderbare mappings en continue functies
- benaderbare mappings / continue functies vormen een categorie over finitary bases / hun domeinen
Domain Theory
Domeinen definiëren
- Platte domeinen rechtstreeks (term algebras)
- Complexere d.m.v. constructors (manipulaties) op simpelere domeinen
Domain Theory
Product Base: Gegeven finitary bases D en E (en dus \(\mathcal{D}\) en \(\mathcal{E}\)) is de product base D\(\times\)E de partiële orde:
Dit is opnieuw een finitary base
D × E = {[d, e] | d ∈ D, e ∈ E}
[d,e]\(\sqsubseteq\)[i,j] \(\) d⊑\(_{D}\)i and e⊑\(_{E}\)j
Domain Theory
Projection mappings:
[d,e]P\(_{0}\)d' <=> d'\(\sqsubseteq_{D}\) d
[d,e]P\(_{1}\)e' <=> e'\(\sqsubseteq_{E}\) e
- Het duale van de product base
- \(P_{0}\) en \(P_{1}\) zijn benaderbare mappings
Een aantal eigenschappen:
Andere benaderbare mappings: Apply, Curry
Domain Theory
Function base: Gegeven finitary bases D en E (en dus \(\mathcal{D}\) en \(\mathcal{E}\)) is de function base D\(\times\)E de partiële orde A=>B:
- Het universum van alle finite stap mappings
- F\(\sqsubseteq\)G <=> \(\forall\)a \(\in\) A: F(a) \(\sqsubseteq_{B}\)G(a)
Dit is opnieuw een finitary base
Domain Theory
We hebben nu genoeg om functies te definiëren:
- Product basis
- Function Basis met
- Projection
- Curry
- Apply
Domain Theory
Functies definiëren m.b.v. recursie:
fix : (D \(\rightarrow\) D)\(\rightarrow\) D
fix(f) = \(\bigcup_{n=0}^{\infty}\) f\(^{n}\)(⊥)
Voor elke benaderbare mapping D \(\rightarrow\) D \(\exists\) een kleinste x \(\in\) D
f(x) = x
Voor elk domein D bestaat de benaderbare mapping
Domain Theory
By Matthias van der Hallen
Domain Theory
- 1,336