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

  1. ⊥\(_{A}\)F⊥\(_{B}\)
  2. aFb \(\wedge\) aFb' => aF(b\(\sqcup\)b')
  3. aFb \(\wedge\) b'\(\sqsubseteq_{B}\)b => aFb'
  4. 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