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
- définition 4.1, clock-of (AC) : horloge abstraite (booléenne) d'un flot
- définition 4.2, base-of (bss) : flot d'horloge de base
- définition 4.3, denotC (denot_clock) : interprétation d'une annotation d'horloge
- wt_value
- figure 4.1 : typage des constantes, opérations unaires, opérations binaires, etc.
- figure 4.2 : typage des horloges des constantes, opérations unaires, opérations binaires, échantillonnages, etc.
- définition 4.4 (wf_env) : environnements bien formés
- lemme 4.15 : sûreté de la réinitialisation
- no-rte-exp, no-rte-node, no-run-time-errors.
- théorème 4.16 : sûreté du typage
5.1 Correction du compilateur
5.2 Détection statique des erreurs à l’exécution