C. André, Synccharts : a visual representation of reactive behaviors, 1996.

L. Augustsson and K. Petersson, Silly type families * DRAFT, 1994.

A. Benveniste, Safety critical embedded systems design : the sacres approach, 1998.

A. Benveniste, P. Caspi, S. A. Edwards, N. Halbwachs, P. L. Guernic et al., The synchronous languages 12 years later, Proceedings of the IEEE, vol.91, issue.1, 2003.
DOI : 10.1109/JPROC.2002.805826

G. Berry, G. Gonthier, A. B. Gonthier, and P. S. Laltte, The Esterel synchronous programming language: design, semantics, implementation, Science of Computer Programming, vol.19, issue.2, 1992.
DOI : 10.1016/0167-6423(92)90005-V

URL : https://hal.archives-ouvertes.fr/inria-00075711

Y. Bertot and P. Castéran, Interactive Theorem Proving and Program Development. Coq'Art : The Calculus of Inductive Constructions. Texts in Theoretical Computer Science, 2004.
URL : https://hal.archives-ouvertes.fr/hal-00344237

D. Biernacki, J. Colaço, G. Hamon, and M. Pouzet, Clock-directed modular code generation for synchronous data-flow languages, ACM SIGPLAN Notices, vol.43, issue.7, pp.121-130, 2008.
DOI : 10.1145/1379023.1375674

S. Boulmé and G. Hamon, Certifying Synchrony for Free Short version of A clocked denotational semantics for Lucid- Synchrone in Coq, International Conference on Logic for Programming, Artificial Intelligence and Reasoning (LPAR), 2001.

P. Caspi and M. Pouzet, A Functional Extension to Lustre, International Symposium on Languages for Intentional Programming, 1995.

A. Chlipala, Certified Programming with Dependent Types

A. J. Chlipala, Implementing certified programming language tools in dependent type theory, 2007.

E. M. Clarke, O. Grumberg, and D. A. , Peled. Model checking, 2000.

J. Colaço and M. Pouzet, Clocks as First Class Abstract Types, Third International Conference on Embedded Software (EMSOFT'03), 2003.
DOI : 10.1007/978-3-540-45212-6_10

J. Colaço and M. Pouzet, Type-based Initialization Analysis of a Synchronous Data-flow Language, Electronic Notes in Theoretical Computer Science, vol.65, issue.5, pp.245-255, 2004.
DOI : 10.1016/S1571-0661(05)80441-4

S. Coupet-grimal and L. Jakubiec, Hardware Verification Using Co-induction in COQ, International Conference on Theorem Proving in Higher Order Logics, TPHOL'99, pp.91-108, 1999.
DOI : 10.1007/3-540-48256-3_7

P. Cousot and R. Cousot, Abstract interpretation, Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages , POPL '77, pp.238-252, 1977.
DOI : 10.1145/512950.512973

URL : https://hal.archives-ouvertes.fr/inria-00528590

R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck, Efficiently computing static single assignment form and the control dependence graph, ACM Transactions on Programming Languages and Systems, vol.13, issue.4, pp.451-490, 1991.
DOI : 10.1145/115372.115320

N. G. De-bruijn, AUTOMATH, a Language for Mathematics, 1968.
DOI : 10.1007/978-3-642-81955-1_11

C. Flanagan, A. Sabry, B. F. Duba, and M. Felleisen, The essence of compiling with continuations, ACM SIGPLAN Notices, vol.28, issue.6, pp.237-247, 1993.
DOI : 10.1145/173262.155113

R. W. Floyd, Assigning meaning to programs, Proceedings of the Symposium on Applied Maths, pp.19-32, 1967.

T. Gautier, P. L. Guernic, and J. Talpin, Polychronous Design of Real- Time Applications with Signal, ARTIST Survey of Programming Languages, 2008.
URL : https://hal.archives-ouvertes.fr/hal-00549814

L. Gérard, A. Guatto, C. Pasteur, and M. Pouzet, A modular memory optimization for synchronous data-flow languages, Proceedings of the 13th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems, LCTES '12, pp.51-60, 2012.
DOI : 10.1145/2248418.2248426

E. Gimenez and E. Ledinot, Certification de SCADE V3. Rapport final du projet GENIE II, 2000.

C. E. Giménez, Un calcul de constructions infinies et son application à la vérification de programmes communicants, 1996.

J. Girard, Linear logic, Theoretical Computer Science, vol.50, issue.1, pp.1-102, 1987.
DOI : 10.1016/0304-3975(87)90045-4

URL : https://hal.archives-ouvertes.fr/inria-00075966

N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud, The synchronous dataflow programming language LUSTRE, Proceedings of the IEEE, pp.1305-1320, 1991.

C. A. Hoare, An axiomatic basis for computer programming, Communications of the ACM, vol.26, issue.1, pp.53-56, 1983.
DOI : 10.1145/357980.358001

W. A. Howard, The Formulae-As-Types Notion Of Construction Curry : Essays on Combinatory Logic, Lambda Calculus and Formalism [31] N. Izerrouken. Développement prouvé de composants formels pour un générateur de code embarqué critique pré-qualifié, Thèse de doctorat, pp.479-490, 1980.

N. Izerrouken, X. Thirioux, M. Pantel, and M. Strecker, Certifying an automated code generator using formal tools : Preliminary experiments in the geneauto project, 2008.

G. Kahn, The semantics of a simple language for parallel programming, pp.471-475, 1974.

R. Lalement, Logique, réduction, résolution. Dunod, 1990.

L. Lamport, Specifying concurrent systems with TLA+, 1999.

X. Leroy, Formal verification of a realistic compiler, Communications of the ACM, vol.52, issue.7, pp.107-115, 2009.
DOI : 10.1145/1538788.1538814

URL : https://hal.archives-ouvertes.fr/inria-00415861

P. Letouzey, Programmation fonctionnelle certifiée ? L'extraction de programmes dans l'assistant Coq, 2004.

F. Maraninchi and Y. Rémond, Argos: an automaton-based synchronous language, Computer Languages, vol.27, issue.1-3, pp.61-92, 2001.
DOI : 10.1016/S0096-0551(01)00016-9

URL : https://hal.archives-ouvertes.fr/hal-00273055

X. Leroy, The CompCert C Verified Compiler
URL : https://hal.archives-ouvertes.fr/hal-01091802

G. H. Mealy, A method for synthesizing sequential circuits, The Bell System Technical Journal, vol.34, issue.5, pp.1045-1079, 1955.
DOI : 10.1002/j.1538-7305.1955.tb03788.x

E. F. Moore, Gedanken-Experiments on Sequential Machines, Annals of Mathematical Studies, vol.34, pp.129-153, 1956.
DOI : 10.1515/9781400882618-006

J. S. Moore, A mechanically verified language implementation, Journal of Automated Reasoning, vol.5, issue.4, pp.461-492, 1989.
DOI : 10.1007/BF00243133

G. C. Necula and P. Lee, The design and implementation of a certifying compiler, ACM SIGPLAN Notices, vol.33, issue.5, pp.333-344, 1998.
DOI : 10.1145/277652.277752

D. Nowak, J. R. Beauvais, and J. P. Talpin, Co-inductive axiomatisation of synchronous language, International Conference on Theorem Proving in Higher-Order Logics (TPHOLs'98, 1998.

A. Pnueli, O. Shtrichman, and M. Siegel, Translation validation for synchronous languages, International Colloquium on Automata, Languages and Programming, pp.235-246, 1998.
DOI : 10.1007/BFb0055057

A. Pnueli, M. Siegel, and F. Singerman, Translation validation, pp.151-166, 1998.
DOI : 10.1007/BFb0054170

A. Pnueli, O. Strichman, and M. Siegel, Translation Validation: From SIGNAL to C, Correct System Design, Recent Insight and Advances, (to Hans Langmaack on the occasion of his retirement from his professorship at the University of Kiel), volume 1710 of Lecture Notes in Computer Science, pp.231-255, 1999.
DOI : 10.1007/3-540-48092-7_11

M. Pouzet, Lucid Synchrone : un langage synchrone d'ordre supérieur, 2002.

P. Raymond, Compilation efficace d'un langage déclaratif synchrone : le générateur de code Lustre-V3, These, Institut National Polytechnique de Grenoble -INPG, 1991.

P. Raymond, LUSTRE V4 manual, 2000.

D. M. Russinoff, A verified prolog compiler for the Warren Abstract Machine, The Journal of Logic Programming, vol.13, issue.4, pp.367-412, 1992.
DOI : 10.1016/0743-1066(92)90054-7

D. Scott, Continuous lattices, Toposes, Algebraic Geometry, and Logic, number 274 in Lecture Notes in Mathematics, pp.97-136, 1972.
DOI : 10.1007/BFb0073967

D. Scott and C. Strachey, Toward A Mathematical Semantics for Computer Languages, Proceedings of the Symposium on Computers and Automata, pp.19-46, 1971.

J. Souyris, E. L. Pavec, G. Himbert, V. Jégu, and G. Borios, Computing the worst case execution time of an avionics program by abstract interpretation, Proceedings of the 5th Intl Workshop on Worst-Case Execution Time (WCET) Analysis, pp.21-24, 2005.

D. Terrasse, Vers la certification du compilateur v5 de Esterel dans coq, 2000.

A. Turing, The early british computer conferences. chapter Checking a large routine, pp.70-72, 1989.

M. Van-eekelen, S. Smetsers, and R. Plasmeijer, Graph rewriting semantics for functional programming languages, Proc. of the CSL '96, Fifth Annual conference of the European Association for Computer Science Logic, pp.106-128, 1996.
DOI : 10.1007/3-540-63172-0_35

W. W. Wadge and E. A. Ashcroft, LUCID, the dataflow programming language, 1985.

S. Wehr and M. M. Chakravarty, ML Modules and Haskell Type Classes: A Constructive Comparison, Proceedings of the 6th Asian Symposium on Programming Languages and Systems, APLAS '08, pp.188-204, 2008.
DOI : 10.1017/S0956796806006034

R. Wilhelm, J. Engblom, A. Ermedahl, N. Holsti, S. Thesing et al., The worst-case execution-time problem???overview of methods and survey of tools, ACM Transactions on Embedded Computing Systems, vol.7, issue.3, pp.1-53, 2008.
DOI : 10.1145/1347375.1347389

. Lspervarsives, Ce fichier déclare des types standards (booléens, entier de 8, 16, 32 et 64 bits, flottants de 32 et 64 bits) ainsi que des primitives (addition, soustraction, ...) sur ces types Ce fichier (ou plutôt sa version extraite) est utilisé pour l'analyse syntaxique des programmes

. Synchronousstreams, Ce fichier décrit les flots utilisés comme des listes (construites « par la droite ») Il introduit les notations : ? flot >> valeur pour le flot flot auquel on a ajouté la valeur valeur en dernière position

. Primitives, Ce fichier définit le type des valeurs (une constante pour un type concret, ou une référence pour un type abstrait), la notion d'absence, le typage des valeurs, et la notion d'opérateur. Il introduit les notations : ? abs pour les valeurs absentes

. Dfprimitives, Ce fichier définit les primitives flot de données. Il introduit toutes les notations en

. Dfprimitivesfunctionnal, Ce fichier contient les preuves de l'aspect fonctionnel des primitives flot de données En effet ces primitives ont été définies comme des relations, afin de pouvoir exprimer des fonctions partielles. De plus les preuves sont simplifiées puisqu'une analyse sur la relation permet d'analyser simultanément toutes les entrées et les sorties d'une primitive. En contrepartie, le déterminisme des primitives n'est plus automatique

. Ssenv, v Ce fichier décrit l'environnement sémantique local pour les langages Ls et Lsn

H. Si and . Un, environnement sémantique local dans un environnement de typage local T (ie. un TEnvironment, voir Static.v) et p un élément de {x st dom T x}

C. Flot, Type := | Queue

. Proof, set ( x := Queue ( vide T ) ) ; rewrite ( red_eq ( vide T ) ) ; simpl ; split

I. Suivant and {. , Prop := | Ensuite : ( forall {u } , EnQueue u f ?> Suivant u ) ?> Suivant f . Definition ensuivant {T U} ( f : T ?> Flot T ?> U ) : forall {t : Flot T } , Suivant t ?> U := fix ensuivant {t} H { struct H} := match t as f return

C. Prefixe, {. Flot, T. ?>-flot, and T. Prop, = | PQ : forall { f1 f2 } , Prefixe f1 f2 ?> Prefixe ( Queue f1 ) f2 | PT : forall { f1 f2 } ( s : Suivant f2, Prefixe f1 ( queue s ) ?> Prefixe ( Tete ( tete s ) f1 ) f2

I. App, {. Flot, T. ?>-flot, and T. Prop, = | App_bottom : forall t , App ( vide T ) t | App_cons : forall u v ( s : Suivant u ) , App v ( queue s ) ?> App ( Tete ( tete s ) v ) u

*. Continuite, . Record, and . {t}, P : Flot T ?> Prop ) := { monotony : forall u v , Prefixe u v ?> P u ?> P v ; scott : forall u , P u ?> exists a, Definition continue {A B} ( f : Flot A ?> Flot B ) := forall ( P : Flot B ?> Prop ) , ouvert P ?> ouvert

D. Figure, 1: Définition coinductive de flots en vue de définitions constructive d'opérateurs