S. De and . Et, analyse de cohérence de mode pour une permutation ? des prémisses du constructeur C est vérifiée si les quatre équations suivantes le sont : 1. S 0 = invars(d t 1 . . . t p , m d ) 2. invars(T ?(j) , M(T ?(j) )) ? S j?1 , avec 1 ? j ? m 3 M(T ?(j) )), avec 1 ? j ? m 4. outvars(d t 1

. Si-on, exemple de l'addition, avec le constructeur addS on a : 1. S 0 = invars(add n (S m) (S p, {1, 2}) = {n, m} 2. invars(add n m p, {1, 2}) = {n

J. Abrial, The B Book, Assigning Programs to Meanings, p.41, 1996.

A. W. Appel, R. Dockins, and X. Leroy, A List-Machine Benchmark for Mechanized Metatheory, Journal of Automated Reasoning, vol.115, issue.1, pp.453-491
DOI : 10.1007/s10817-011-9226-1

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

A. Asperti, W. Ricciotti, C. Sacerdoti-coen, and E. Tassi, The Matita Interactive Theorem Prover, CADE, pp.64-69, 2011.
DOI : 10.1007/3-540-48256-3_12

I. Attali and D. Parigot, Integrating Natural Semantics and Attribute Grammars : the Minotaur System, p.39, 1994.
URL : https://hal.archives-ouvertes.fr/inria-00077110

G. Barthe and P. Courtieu, Efficient Reasoning about Executable Specifications in Coq, TPHOLs, pp.31-46, 2002.
DOI : 10.1007/3-540-45685-6_4

G. Barthe, J. Forest, D. Pichardie, and V. Rusu, Defining and Reasoning About Recursive Functions: A Practical Tool for the Coq Proof Assistant, FLOPS, pp.114-129, 2006.
DOI : 10.1007/11737414_9

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

U. Berger, K. Miyamoto, H. Schwichtenberg, and M. Seisenberger, Minlog - A Tool for Program Extraction Supporting Algebras and Coalgebras, CALCO, pp.393-399, 2011.
DOI : 10.1007/978-3-642-22944-2_29

S. Berghofer and T. Nipkow, Executing Higher Order Logic, TYPES, pp.24-40, 2000.
DOI : 10.1007/3-540-45842-5_2

S. Berghofer and M. Wenzel, Inductive Datatypes in HOL ??? Lessons Learned in Formal-Logic Engineering, TPHOLs, pp.19-36, 1999.
DOI : 10.1007/3-540-48256-3_3

S. Berghofer, L. Bulwahn, and F. Haftmann, Turning Inductive into Equational Specifications, TPHOLs, pp.131-146, 2009.
DOI : 10.1145/1167473.1167503

Y. Bertot and P. Castéran, Interactive Theorem Proving and Program Development
DOI : 10.1007/978-3-662-07964-5

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

A. Coq, The Calculus of Inductive Constructions. Texts in Theoretical Computer Science, p.116, 2004.

L. Bettini, D. Stoll, M. Völter, and S. Colameo, Approaches and Tools for Implementing Type Systems in Xtext, SLE, pp.392-412, 2012.
DOI : 10.1007/978-3-642-36089-3_22

S. Blazy and X. Leroy, Mechanized Semantics for the Clight Subset of the C Language, Journal of Automated Reasoning, vol.29, issue.6, pp.263-288, 2009.
DOI : 10.1007/s10817-009-9148-3

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

R. Bonichon, D. Delahaye, and D. Doligez, Zenon: An Extensible Automated Theorem Prover Producing Checkable Proofs, In Logic for Programming Artificial Intelligence and Reasoning LNCS/LNAI, vol.4790, issue.128, pp.151-165, 2007.
DOI : 10.1007/978-3-540-75560-9_13

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

P. Borras, D. Clément, T. Despeyroux, J. Incerpi, G. Kahn et al., CENTAUR : The System, Software Development Environments (SDE), pp.14-24, 1988.
URL : https://hal.archives-ouvertes.fr/inria-00075774

L. Bulwahn, Code Generation from Inductive Predicates in Isabelle, 2009.

A. J. Camilleri, A hybrid approach to verifying liveness in a symmetric multi-processor, Proceedings of the 10th International Conference on Theorem Proving in Higher Order Logics, TPHOLs '97, pp.49-67, 1997.
DOI : 10.1007/BFb0028385

B. Campbell, An Executable Semantics for CompCert C, CPP, pp.60-75, 2012.
DOI : 10.1007/978-3-642-35308-6_8

M. Bibliographie-edmund, E. A. Clarke, J. Emerson, and . Sifakis, Model Checking : Algorithmic Verification and Debugging, Commun. ACM, vol.52, issue.11, pp.74-84, 2009.

D. Clément, J. Despeyroux, T. Despeyroux, and G. Kahn, A simple applicative language: mini-ML, Proceedings of the 1986 ACM conference on LISP and functional programming , LFP '86, pp.13-27, 1986.
DOI : 10.1145/319838.319847

T. Coquand and G. Huet, The calculus of constructions, Information and Computation, vol.76, issue.2-3, pp.95-120, 0105.
DOI : 10.1016/0890-5401(88)90005-3

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

T. Coquand and C. Paulin, Inductively defined types, Conference on Computer Logic, pp.50-66, 1988.
DOI : 10.1007/3-540-52335-9_47

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

P. Cuoq, F. Kirchner, and N. Kosmatov, Virgile Prevosto, Julien Signoles, and Boris Yakobowski. Frama-C -A Software Analysis Perspective, SEFM, pp.233-247, 2012.

N. Anders-danielsson, Operational Semantics Using the Partiality Monad, ICFP, pp.127-138, 2012.

Z. Dargaye, Vérification formelle d'un compilateur optimisant pour langages fonctionnels, p.138, 1935.

Z. Dargaye, http://gallium.inria.fr/~dargaye/source/Mml.html, 0173.

G. Nicolaas and . De-bruijn, The mathematical language AUTOMATH, its usage, and some of its extensions, Symposium on Automatic Demonstration, pp.29-61, 1970.

D. Delahaye, A Tactic Language for the System Coq, Reunion Island (France), vol.1955, pp.85-95, 2000.
DOI : 10.1007/3-540-44404-1_7

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

D. Delahaye, C. Dubois, and J. Étienne, Extracting Purely Functional Contents from Logical Inductive Types, TPHOLs, pp.70-85, 2007.
DOI : 10.1007/978-3-540-74591-4_7

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

D. Delahaye, C. Dubois, and P. Tollitte, Génération de code fonctionnel certifié à partir de spécifications inductives dans l'environnement Focalize, JFLA, pp.55-81, 2010.

V. Donzeau-gouge, G. Huet, B. Lang, and G. Kahn, Programming environments based on structured editors : the Mentor experience, 1980.
URL : https://hal.archives-ouvertes.fr/inria-00076535

C. Ellison and G. Ro?u, An Executable Formal Semantics of C with Applications

F. Pfenning and C. Schuermann, Twelf User's Guide, version 1.4, p.36, 2002.

P. Fritzson and V. Engelson, Modelica -A Unified Object-Oriented Language for System Modelling and Simulation, ECOOP, pp.67-90, 1998.

H. Geuvers, Proof assistants: History, ideas and future, Sadhana, vol.121, issue.1, pp.3-25, 1920.
DOI : 10.1007/s12046-009-0001-5

S. Glondu, Vers une certification de l'extraction de Coq, p.35, 2012.

G. Gonthier, A. Asperti, J. Avigad, Y. Bertot, C. Cohen et al., A Machine-Checked Proof of the Odd Order Theorem, ITP 2013, 4th Conference on Interactive Theorem Proving, p.20, 2013.
DOI : 10.1007/978-3-642-39634-2_14

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

F. Haftmann and T. Nipkow, Code Generation via Higher-Order Rewrite Systems, FLOPS, pp.103-117, 2010.
DOI : 10.1007/978-3-642-12251-4_9

URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.629.9094

C. Thomas and . Hales, Introduction to the Flyspeck Project, Mathematics, Algorithms, Proofs, 1920.

C. Thomas and . Hales, A Proof of the Kepler Conjecture, Ann. Math, vol.162, p.1065, 1920.

R. Harper, F. Honsell, and G. D. Plotkin, A framework for defining logics, Journal of the ACM, vol.40, issue.1
DOI : 10.1145/138027.138060

A. William and . Howard, The formulas-as-types notion of construction

. Hindley and H. B. To, Curry : Essays on Combinatory Logic, Lambda Calculus, and Formalism, pp.479-490, 1980.

G. Kahn, Natural semantics, STACS, pp.22-39, 1987.
DOI : 10.1007/BFb0039592

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

C. L. Lennart, E. Kats, and . Visser, The Spoofax Language Workbench : Rules for Declarative Specification of Languages and IDEs, OOPSLA, pp.444-463, 2010.

A. Gary and . Kildall, A Unified Approach to Global Program Optimization, POPL, pp.194-206, 1973.

P. Klint, A Meta-Environment for Generating Programming Environments

E. Donald and . Knuth, Semantics of context-free languages, Mathematical Systems Theory, vol.2, issue.2, pp.127-145, 1968.

C. Kästner and S. Apel, Type-Checking Software Product Lines - A Formal Approach, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering, pp.258-267, 2008.
DOI : 10.1109/ASE.2008.36

D. Kågedal and P. Fritzson, Generating a Modelica Compiler from Natural Semantics Specifications, Proceedings of the Summer Computer Simulation Conference, p.38, 1998.

D. Lazar, A. Arusoaie, . Traian-florin, C. Serbanuta, R. Ellison et al., Executing Formal Semantics with the $\mathbb K$ Tool, In FM, pp.267-271, 2012.
DOI : 10.1007/978-3-642-32759-9_23

F. L. , F. , and L. Maranget, Optimizing Pattern Matching, ICFP, pp.26-37, 2001.

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, A New Extraction for Coq, TYPES, pp.200-219, 2002.
DOI : 10.1007/3-540-39185-1_12

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

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

P. Letouzey, Extraction in Coq: An Overview, CiE, pp.359-369, 2008.
DOI : 10.1007/978-3-540-69407-6_39

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

M. Leuschel and M. J. Butler, ProB: an automated analysis toolset for the B method, International Journal on Software Tools for Technology Transfer, vol.49, issue.3, pp.185-203, 2008.
DOI : 10.1007/s10009-007-0063-9

B. Manuel, M. , and V. Prevosto, FocDoc : The Documentation System of Foc, Calculemus. LIP6, 0133.

C. Mcbride, Epigram: Practical Programming with Dependent Types, Advanced Functional Programming, pp.130-170, 2004.
DOI : 10.1007/11546382_3

D. Méry and N. Singh, Automatic code generation from event-B models, Proceedings of the Second Symposium on Information and Communication Technology, SoICT '11, pp.179-188, 2011.
DOI : 10.1145/2069216.2069252

T. Nipkow, L. C. Paulson, and M. Wenzel, Isabelle/HOL ? A Proof Assistant for Higher-Order Logic, LNCS, vol.2283, p.20, 2002.

C. Paulin-mohring, Extracting F(omega)'s Programs from Proofs in the Calculus of Constructions, POPL, pp.89-104, 1989.

C. Paulin-mohring and B. Werner, Synthesis of ML programs in the system Coq, Journal of Symbolic Computation, vol.15, issue.5-6, pp.607-640, 1993.
DOI : 10.1016/S0747-7171(06)80007-6

P. Frizson, Developing Efficient Language Implementations from Structural and Natural Semantics, p.38, 2006.

M. Pettersson, RML ??? A new language and implementation for Natural Semantics
DOI : 10.1007/3-540-58402-1_10

M. Pettersson, A compiler for natural semantics, CC, pp.177-191, 1996.
DOI : 10.1007/3-540-61053-7_61

F. Pfenning and C. Paulin-mohring, Inductively defined types in the Calculus of Constructions, Mathematical Foundations of Programming Semantics, pp.209-228, 1989.
DOI : 10.1007/BFb0040259

G. D. Plotkin, A Structural Approach to Operational Semantics, p.30, 1981.

D. Prawitz, Natural Deduction : A Proof-Theoretical Study, p.30, 1965.

K. Slind and M. Norrish, A Brief Overview of HOL4, TPHOLs, pp.28-32, 2008.
DOI : 10.1007/s00165-007-0028-5

Z. Somogyi, F. Henderson, and T. C. Conway, The implementation of mercury , an efficient purely declarative logic programming language, ILPS Workshop : Implementation Techniques for Logic Programming Languages, p.37, 1994.

M. Sozeau, Subset Coercions in Coq, TYPES, pp.237-252, 2006.
DOI : 10.1007/978-3-540-74464-1_16

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

A. Spiwack, An Abstract Type for Constructing Tactics in Coq, Proof Search in Type Theory, 2010.
URL : https://hal.archives-ouvertes.fr/inria-00502500

R. F. Stärk, Input/Output Dependencies of Normal Logic Programs, Journal of Logic and Computation, vol.4, issue.3, pp.249-262, 1994.
DOI : 10.1093/logcom/4.3.249

D. Terrasse, Encoding natural semantics in Coq, AMAST, pp.230-244, 1995.
DOI : 10.1007/3-540-60043-4_56

P. Tollitte, D. Delahaye, and C. Dubois, Producing Certified Functional Code from Inductive Specifications, CPP, pp.76-91, 2012.
DOI : 10.1007/978-3-642-35308-6_9

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

P. Tollitte, D. Delahaye, and C. Dubois, Relationextraction. http://coq.inria.fr/pylons, p.137, 2013.

P. Tollitte, D. Delahaye, and C. Dubois, Relationextraction. https://github, pp.2013-137

A. Verdejo and N. Martí-oliet, Two Case Studies of Semantics Execution in Maude : CCS and LOTOS. Formal Methods in System Design, pp.113-172, 2005.

A. Verdejo and N. Martí-oliet, Executable structural operational semantics in Maude, The Journal of Logic and Algebraic Programming, vol.67, issue.1-2, pp.226-293, 2006.
DOI : 10.1016/j.jlap.2005.09.008

M. Wenzel and S. Berghofer, The Isabelle System Manual, TU München, 2013.

B. Werner, Une Théorie des Constructions Inductives, 0105.

N. Alfred, B. Whitehead, and . Russell, Principia mathematica, p.19, 1957.

G. Winskel, The Formal Semantics of Programming Languages -an Introduction. Foundation of computing series, p.30, 1993.

F. Yang, J. Jacquot, and J. Souquières, The Case for Using Simulation to Validate Event-B Specifications, 2012 19th Asia-Pacific Software Engineering Conference, pp.85-90, 2012.
DOI : 10.1109/APSEC.2012.66

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

T. Pierre-nicolas, Extraction de code fonctionnel certifié à partir de spécifications inductives Résumé

. Les-outils-d, aide à la preuve basés sur la théorie des types permettent à l'utilisateur d'adopter soit un style fonctionnel, soit un style relationnel (c'est-à-dire en utilisant des types inductifs) Chacun des deux styles a des avantages et des inconvénients Le style relationnel peut être préféré parce qu'il permet à l'utilisateur de décrire seulement ce qui est vrai, de s'abstraire temporairement de la question de la terminaison