L. Enfin and . Troisième-extension-permet-d-'introduire-les-tableaux, En effet, tel qu'il est défini dans les deux chapitres précédents, notre langage ne permet pas la gestion de telles structures de données. Il n'est, dans ce cas, pas possible d'écrire des programmes tels que celui des piles

M. Abadi and L. Lamport, The existence of refinement mappings, Digital Systems Research Center, 1988.

J. Abrial, The B-Book, assigning programs to meaning, 1996.

R. Back and J. Wright, Refinement Calculus : A Systematic Introduction, 1998.
DOI : 10.1007/978-1-4612-1674-2

R. J. Back, On the correctness of refinement in program development, 1978.

R. Bardou, Verification of Pointer Programs Using Regions and Permissions, Thèse de doctorat, 2011.
URL : https://hal.archives-ouvertes.fr/tel-00647331

M. Barnett, R. Deline, M. Fähndrich, K. R. Leino, and W. Schulte, Verification of Object-Oriented Programs with Invariants., The Journal of Object Technology, vol.3, issue.6, pp.27-56, 2004.
DOI : 10.5381/jot.2004.3.6.a2

M. Barnett, R. Deline, B. Jacobs, B. E. Chang, and K. R. Leino, Boogie: A Modular Reusable Verifier for Object-Oriented Programs, Formal Methods for Components and Objects : 4th International Symposium, pp.364-387, 2005.
DOI : 10.1007/11804192_17

M. Barnett, K. R. Leino, and W. Schulte, The Spec# Programming System: An Overview, Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, pp.49-69, 2004.
DOI : 10.1007/978-3-540-30569-9_3

P. Baudin, J. Filliâtre, C. Marché, B. Monate, Y. Moy et al., ACSL : ANSI/ISO C Specification Language, 2008.

B. Beckert, R. Hähnle, and P. H. Schmitt, Verification of Object-Oriented Software : The KeY Approach, Lecture Notes in Computer Science, vol.4334, 2007.
DOI : 10.1007/978-3-540-69061-0

P. Behm, P. Desforges, and J. Meynadier, M??T??OR: An industrial success in formal development, p.26, 1998.
DOI : 10.1007/BFb0053352

J. Berdine, C. Calcagno, and P. W. O-'hearn, Smallfoot: Modular Automatic Assertion Checking with Separation Logic, International Symposium on Formal Methods for Components and Objects, pp.115-137, 2005.
DOI : 10.1007/11804192_6

P. Berthomé, K. Heydemann, X. Kauffmann-tourkestansky, and J. Lalande, Attack model for verification of interval security properties for smart card C codes, Proceedings of the 5th ACM SIGPLAN Workshop on Programming Languages and Analysis for Security, PLAS '10, pp.1-2, 2010.
DOI : 10.1145/1814217.1814219

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

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

F. Bobot, S. Conchon, E. Contejean, M. Iguernelala, S. Lescuyer et al., The Alt-Ergo automated theorem prover, 2008.

F. Bobot, J. Filliâtre, C. Marché, and A. Paskevich, Why3 : Shepherd your herd of provers, Boogie 2011 : First International Workshop on Intermediate Verification Languages, pp.53-64, 2011.
URL : https://hal.archives-ouvertes.fr/hal-00790310

A. Bouajjani, C. Dragoi, C. Enea, and M. Sighireanu, On inter-procedural analysis of programs with lists and data, PLDI, pp.578-589, 2011.

S. Boulmé and M. Potet, Interpreting Invariant Composition in the B Method Using the Spec# Ownership Relation: A Way to Explain and Relax B Restrictions, Lecture Notes in Computer Science, vol.4355, 2007.
DOI : 10.1007/11955757_4

L. Burdy, Y. Cheon, D. Cok, M. Ernst, J. Kiniry et al., An overview of JML tools and applications, International Journal on Software Tools for Technology Transfer, vol.box, issue.3, 2004.
DOI : 10.1007/s10009-004-0167-4

L. Burdy, Y. Cheon, D. R. Cok, M. D. Ernst, J. R. Kiniry et al., An overview of JML tools and applications, International Journal on Software Tools for Technology Transfer, vol.box, issue.3, pp.212-232, 2005.
DOI : 10.1007/s10009-004-0167-4

J. Burghardt, J. Gerlach, L. Gu, K. Hartig, H. Pohl et al., ACSL by example, towards a verified C standard library, 2011.

D. Ceara, L. Mounier, and M. Potet, Taint Dependency Sequences: A Characterization of Insecure Execution Paths Based on Input-Sensitive Cause Sequences, 2010 Third International Conference on Software Testing, Verification, and Validation Workshops, pp.371-380, 2010.
DOI : 10.1109/ICSTW.2010.28

A. Charguéraud, Characteristic formulae for the verification of imperative programs, Proceeding of the 16th ACM SIGPLAN international conference on Functional Programming (ICFP), pp.418-430, 2011.

A. Charguéraud and F. Pottier, Functional translation of a calculus of capabilities, ACM SIG- PLAN International Conference on Functional Programming (ICFP), pp.213-224, 2008.

D. R. Cok, J. Kiniry, E. Esc-/-java2-uniting, J. Java, . G. In et al., ESC/Java2: Uniting ESC/Java and JML, Lecture Notes in Computer Science, vol.3362, pp.108-128, 2004.
DOI : 10.1007/978-3-540-30569-9_6

S. Conchon and J. Filliâtre, Semi-persistent Data Structures, 17th European Symposium on Programming (ESOP'08), 2008.
DOI : 10.1007/978-3-540-78739-6_25

K. Crary, D. Walker, and G. Morrisett, Typed memory management in a calculus of capabilities, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages , POPL '99, pp.262-275, 1999.
DOI : 10.1145/292540.292564

P. Cuoq, D. Delmas, V. M. Lamiel, and S. Duprat, Fan-C, a Frama-C plug-in for data flow verification, Embedded Real Time Software and Systems, 2012.

P. Cuoq, F. Kirchner, N. Kosmatov, V. Prevosto, J. Signoles et al., Frama-C, Proceedings of the 10th international conference on Software Engineering and Formal Methods, SEFM12, pp.233-247, 2012.
DOI : 10.1007/978-3-642-33826-7_16

P. Cuoq and V. Prevosto, Value Plugin Documentation, Carbon version. CEA-List, 2011.

M. Dahlweid, M. Moskal, T. Santen, S. Tobies, and W. Schulte, VCC: Contract-based modular verification of concurrent C, 2009 31st International Conference on Software Engineering, Companion Volume, pp.429-430, 2009.
DOI : 10.1109/ICSE-COMPANION.2009.5071046

M. Daumas and G. Melquiond, Certification of bounds on expressions involving rounded operators, ACM Transactions on Mathematical Software, vol.37, issue.1, 2010.
DOI : 10.1145/1644001.1644003

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

L. De-moura and N. Bjørner, Z3: An Efficient SMT Solver, TACAS, pp.337-340, 2008.
DOI : 10.1007/978-3-540-78800-3_24

D. Delmas, S. Duprat, V. M. Lamiel, and J. Signoles, Taster, a Frama-C plug-in to enforce coding standards, Embedded Real Time Software and Systems, 2010.

J. Demay, E. Totel, and F. Tronel, SIDAN: A tool dedicated to software instrumentation for detecting attacks on non-control-data, 2009 Fourth International Conference on Risks and Security of Internet and Systems (CRiSIS 2009), pp.51-58, 2009.
DOI : 10.1109/CRISIS.2009.5411977

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

D. Detlefs, G. Nelson, and J. B. Saxe, Simplify: a theorem prover for program checking, Journal of the ACM, vol.52, issue.3, pp.365-473, 2005.
DOI : 10.1145/1066100.1066102

E. W. Dijkstra, A discipline of programming. Series in Automatic Computation, 1976.

B. Dutertre and L. De-moura, The Yices SMT solver, 2006.

X. Feng, R. Ferreira, and Z. Shao, On the Relationship Between Concurrent Separation Logic and Assume-Guarantee Reasoning, Lecture Notes in Computer Science, vol.4421, pp.173-188, 2007.
DOI : 10.1007/978-3-540-71316-6_13

J. Filliâtre and C. Marché, The Why/Krakatoa/Caduceus Platform for Deductive Program Verification, Damm and Hermanns [45], pp.173-177
DOI : 10.1007/978-3-540-73368-3_21

R. W. Floyd, Assigning meanings to programs, of Proceedings of Symposia in Applied Mathematics, pp.19-32, 1967.
DOI : 10.1090/psapm/019/0235771

A. Goodloe, C. Muñoz, F. Kirchner, and L. Correnson, Verification of floating point programs : From real numbers to floating point numbers, NASA Formal Methods Symposium, 2013.

D. Grossman, G. Morrisett, T. Jim, M. Hicks, Y. Wang et al., Region-based memory management in Cyclone, Programming language design and implementation (PLDI), pp.282-293, 2002.

P. Herms, C. Marché, and B. Monate, A Certified Multi-prover Verification Condition Generator, Verified Software : Theories, Tools, Experiments (4th International Conference VSTTE), pp.2-17, 2012.
DOI : 10.1007/3-540-48118-4_45

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

C. A. Hoare, An axiomatic basis for computer programming, Communications of the ACM, vol.12, issue.10, pp.576-580, 1969.
DOI : 10.1145/363235.363259

T. Hubert, Analyse Statique et preuve de Programmes Industriels Critiques, Thèse de doctorat, 2008.

B. Jacobs and F. Piessens, The VeriFast program verifier, CW Reports, vol.520, 2008.

B. Jacobs, J. Smans, and F. Piessens, A Quick Tour of the VeriFast Program Verifier, Programming Languages and Systems, pp.304-311, 2010.
DOI : 10.1007/978-3-642-17164-2_21

I. T. Kassios, Dynamic Frames: Support for Framing, Dependencies and Sharing Without Restrictions, 14th International Symposium on Formal Methods (FM'06), pp.268-283, 2006.
DOI : 10.1007/11813040_19

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

G. Klein, J. Andronick, K. Elphinstone, G. Heiser, D. Cock et al., seL4, Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles, SOSP '09, pp.107-115, 2010.
DOI : 10.1145/1629575.1629596

G. T. Leavens, K. R. Leino, and P. Müller, Specification and verification challenges for sequential object-oriented programs. Formal Aspects of Computing, 2007.

K. R. Leino, Data groups : Specifying the modification of extended state, OOPSLA, pp.144-153, 1998.

K. R. Leino, Dafny: An Automatic Program Verifier for Functional Correctness, pp.348-370, 2010.
DOI : 10.1007/978-3-642-17511-4_20

K. R. Leino and M. Moskal, VACID-0 : Verification of ample correctness of invariants of data-structures, edition 0, Proceedings of Tools and Experiments Workshop at VSTTE, 2010.

K. R. Leino and M. Moskal, VACID-0 : Verification of ample correctness of invariants of data-structures, edition 0, VSTTE, 2010.

K. R. Leino, A. Poetzsch-heffter, and Y. Zhou, Using data groups to specify and check side effects, PLDI. ACM, 2002.

C. Marché, Towards Modular Algebraic Specifications for Pointer Programs: A Case Study, Rewriting, Computation and Proof, pp.235-258, 2007.
DOI : 10.1007/978-3-540-73147-4_12

C. Marché and A. Tafat, Weakest precondition calculus, revisited using Why3, 2012.

C. Marché and A. Tafat, Calcul de plus faible précondition, revisité en Why3, Vingt-quatrièmes Journées Francophones des Langages Applicatifs, 2013.

B. Meyer, Eiffel : The Language, 1992.

R. Milner, A theory of type polymorphismn in programming, J. Comput. Syst. Sci, vol.17, 1978.

C. Morgan, Programming from specifications, 1994.

J. Morris, A theoretical basis for stepwise refinement and the programming calculus, Science of Computer Programming, vol.9, issue.3, pp.287-306, 1987.
DOI : 10.1016/0167-6423(87)90011-6

Y. Moy and C. Marché, Modular inference of subprogram contracts for safety checking, Journal of Symbolic Computation, vol.45, issue.11, pp.1184-1211, 2010.
DOI : 10.1016/j.jsc.2010.06.004

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

Y. Moy and C. Marché, The Jessie plugin for Deduction Verification in Frama-C ? Tutorial and Reference Manual, INRIA & LRI, 2011.

A. Nanevski, G. Morrisett, and L. Birkedal, Polymorphism and separation in Hoare type theory, 11th ACM SIGPLAN International Conference on Functional Programming, pp.62-73, 2006.

T. M. Nguyen, Taking architecture and compiler into account in formal proofs of numerical programs, Thèse de doctorat, 2012.
URL : https://hal.archives-ouvertes.fr/tel-00710193

T. Nipkow, L. C. Paulson, and M. Wenzel, Isabelle/HOL ? A Proof Assistant for Higher-Order Logic, Lecture Notes in Computer Science, vol.2283, 2002.

P. W. O-'hearn, J. C. Reynolds, and H. Yang, Local reasoning about programs that alter data structures, CSL '01 : Proceedings of the 15th International Workshop on Computer Science Logic, pp.1-19, 2001.

C. Okasaki, Purely Functional Data Structures, 1998.
DOI : 10.1017/CBO9780511530104

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

D. Pariente and E. Ledinot, Formal verification of industrial C code using Frama-C : a case study, Beckert and Marché [23], pp.205-219, 1000019083.

M. Parkinson, Class invariants : The end of the road ?, 3rd International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (IWACO), 2007.

G. D. Plotkin, The origins of structural operational semantics, Journal of Logic and Algebraic Programming, pp.60-61, 2004.

J. C. Reynolds, Separation logic: a logic for shared mutable data structures, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science, 2002.
DOI : 10.1109/LICS.2002.1029817

J. Smans, B. Jacobs, and F. Piessens, Implicit Dynamic Frames: Combining Dynamic Frames and Separation Logic, ECOOP 2009 ? Object-Oriented Programming, pp.148-172, 2009.
DOI : 10.1007/978-3-540-78163-9_19

A. J. Summers and S. Drossopoulou, Considerate Reasoning and the Composite Design Pattern, Lecture Notes in Computer Science, vol.5944, pp.328-344, 2010.
DOI : 10.1007/978-3-642-11319-2_24

A. Tafat, S. Boulmé, and C. Marché, A Refinement Methodology for Object-Oriented Programs, Beckert and Marché [23], pp.143-159, 1000019083.
DOI : 10.1006/inco.1996.2613

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

A. Tafat and C. Marché, Binary heaps formally verified in Why3, Research Report, vol.7780, 2011.
URL : https://hal.archives-ouvertes.fr/inria-00636083

J. Talpin and P. Jouvelot, Abstract, Journal of Functional Programming, vol.78, issue.03, pp.245-271, 1992.
DOI : 10.1145/322123.322135

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

M. Tofte and J. Talpin, Region-Based Memory Management, Information and Computation, vol.132, issue.2, 1997.
DOI : 10.1006/inco.1996.2613

URL : http://doi.org/10.1006/inco.1996.2613

E. Tushkanova, A. Giorgetti, C. Marché, and O. Kouchnarenko, Specifying generic Java programs : two case studies, PreProceedings of LDTA'2010, pp.92-106, 2010.
URL : https://hal.archives-ouvertes.fr/inria-00525784

J. Woodcock, P. G. Larsen, J. Bicarregui, and J. S. Fitzgerald, Formal methods, ACM Computing Surveys, vol.41, issue.4, 2009.
DOI : 10.1145/1592434.1592436

B. Yakobowski, P. Cuoq, P. Hilsenkopf, F. Kirchner, S. Labbé et al., Formal verification of software important to safety using the frama-c tool suite, 2012.