PhD of Paul Jeanmaire

Paul Jeanmaire developed a functional semantics for the dataflow core of Vélus. This work is described in his PhD dissertation (in French).

The slides of the defense are available.

Références au développement Coq, par section

Les conventions de nommage diffèrent parfois entre la thèse et le code source. Les liens donnés ici se réfèrent aux noms imprimés dans la thèse (les noms du code sont mis entre parenthèses).

Le développement complet est disponible ici.

2.1.4 Le langage d’entrée, syntaxe et typage

2.1.5 Sémantique synchrone relationnelle

2.1.7 Correction de la compilation

2.2.2 Modèle synchrone à types dépendants

Importé de Boulmé et Hamon, adapté à la nouvelle syntaxe de Coq par Chantal Keller.

3.1 La bibliothèque CPO et nos extensions

Importé de C. Paulin-Mohring.

Définitions génériques
  • ord : type ordonné
  • monotonic : fonctions monotones
  • cpo : CPO
  • continuous : fonctions continues
  • FIXP : opérateur de point fixe, lui-même fonction continue
Définitions de flots
  • Steam_ε (DStr) : le type des flots
  • DS_bot : le flot vide (Eps pour toujours)
  • DS : le CPO des flots finis et infinis
  • infinite : la propriété d'infinitude
  • REM : la primitive tl
  • MAP : la primitive map définie comme un point fixe
  • APP : le fby en sémantique de Kahn
  • first, filter, zip, take
Principes de preuve

3.2.1 Flots avec erreurs

3.2.2 propriétés et conversions

3.3 Sémantique des opérateurs de flots

Constantes
  • const : constantes dans Vélus
  • sconst : flot constant dénotationnel
  • ok_const : lemme de correspondance
Opérateurs unaires
Opérateurs binaires
Délai initialisé
Échantillonnage
Conditionnelle

3.4 Réinitialisation modulaire

  • mask : l'opérateur relationnel de masquage
  • Sapp : la règle de la sémantique relationnelle pour les instances réinitialisées
  • reset : caractérisation du reset à la Lucid Synchrone
  • merge : un merge adapté à la récursion instantanée
  • sreset : caractérisation du reset dénotationnel
  • lemme 3.14 (smask_sreset) : correspondance du reset dénotationnel et relationnel
  • lemme 3.15 (reset_match) : correspondance des deux caractérisations

3.5 Interprétation et composition

4.1 Infinitude des flots et causalité

4.2 Commutativité du préfixe

4.3 Indépendance à l'absence initiale

4.4 Sûreté du typage

5.1 Correction du compilateur

5.2 Détection statique des erreurs à l’exécution