. Coq, The coq proof assistant reference manual : Version 8.6, 2016.

T. Genet, T. Haudebourg, and T. Jensen, Verifying Higher-Order Functions with Tree Automata, 21st International Conference on Foundations of Software Science and Computation Structures, 2018.
URL : https://hal.archives-ouvertes.fr/hal-01775188

T. Genet and V. Rusu, Equational approximations for tree automata completion, Journal of Symbolic Computation, vol.45, issue.5, pp.574-597, 2010.
URL : https://hal.archives-ouvertes.fr/inria-00495405

N. Kobayashi, Types and higher-order recursion schemes for verification of higher-order programs, Proceedings of the 36th ACM SIGPLANSIGACT Symposium on Principles of Programming Languages, pp.416-428, 2009.

N. Kobayashi, R. Sato, and H. Unno, Predicate abstraction and CEGAR for higher-order model checking, Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2011, pp.222-233, 2011.

Y. Matsumoto, N. Kobayashi, and H. Unno, Automata-based abstraction for automated verification of higher-order tree-processing programs, Programming Languages and Systems-13th Asian Symposium, pp.295-312, 2015.

C. Ong, On model-checking trees generated by higher-order recursion schemes, 21st Annual IEEE Symposium on Logic in Computer Science (LICS'06), pp.81-90, 2006.

. Lawrence-c-paulson, The isabelle reference manual, 1993.

M. Patrick-maxim-rondon, R. Kawaguchi, and . Jhala, Liquid types, Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, pp.159-169, 2008.

N. Vazou, A. Bakst, and R. Jhala, Bounded refinement types, Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, pp.48-61, 2015.

N. Vazou, P. Maxim-rondon, and R. Jhala, Abstract refinement types, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2013, pp.209-228, 2013.

, Approches Formelles dans l'Assistance au Développement de Logiciels-AFADL'18

G. D. Abowd, A formal technique for automated dialogue development, Proceedings of the 1st Conference on Designing Interactive Systems: Processes, Practices, Methods, & Techniques, DIS '95, pp.219-226, 1995.

J. Abrial, Modeling in Event-B: System and Software Engineering, 2010.

Y. Aït-ameur, Vérification et validation formelles de systèmes interactifs fondées sur la preuve : application aux systèmes Multi-Modaux, JIPS, vol.1, issue.1, pp.1-30, 2010.

P. Antoine, Volta: the first all-electric conventional helicopter, MEA 2017, 2017.
URL : https://hal.archives-ouvertes.fr/hal-01609233

E. Bainomugisha, A survey on reactive programming, ACM Comput. Surv, vol.45, issue.4, 2013.

J. Bowen and S. Reeves, Modelling safety properties of interactive medical systems, Proceedings of the 5th ACM SIGCHI Symposium on Engineering Interactive Computing Systems, EICS '13, pp.91-100, 2013.

B. Bérard, Systems and Software Verification: Model-Checking Techniques and Tools, 2010.

P. Bumbulis, Validating properties of component-based graphical user interfaces, Design, Specification and Verification of Interactive Systems '96, pp.347-365, 1996.

S. Chatty, Verification of properties of interactive components from their executable code, Proceedings of the 7th ACM SIGCHI, EICS '15, pp.276-285, 2015.
URL : https://hal.archives-ouvertes.fr/hal-01619784

S. Chatty, Designing, developing and verifying interactive components iteratively with djnn, ERTS 2016, 2016.
URL : https://hal.archives-ouvertes.fr/hal-01292291

E. M. Clarke, Model Checking, 1999.

P. Cousot, Interprétation abstraite. Technique et science informatiques, vol.19, pp.155-164, 2000.

B. J. Cox, Object-Oriented Programming; An Evolutionary Approach, 1991.

B. , Using model checking for the automatic validation of user interface systems, vol.01, 1998.

E. W. Dijkstra, A Discipline of Programming, 1997.

C. A. Hoare, An axiomatic basis for computer programming, Commun. ACM, vol.12, issue.10, pp.576-580, 1969.

M. Hristakeva, A survey of object oriented programming languages, 2009.

P. Masci, Formal verification of medical device user interfaces using pvs, Fundamental Approaches to Software Engineering, pp.200-214, 2014.

D. Navarre, A formal description of multimodal interaction techniques for immersive virtual reality applications, Proceedings of the 2005 IFIP TC13, INTERACT'05, pp.170-183, 2005.

O. Nierstrasz, Object-oriented concepts, databases, and applications. chapter A Survey of Object-oriented Concepts, pp.3-21, 1989.

D. Prun, M. Magnaudet, and S. Chatty, Towards support for verification of adaptative systems with djnn, Proceedings of Cognitive 2015, vol.03, p.2015
URL : https://hal.archives-ouvertes.fr/hal-01888093

W. Reisig, Understanding Petri Nets: Modeling Techniques, Analysis Methods, Case Studies, 2013.

G. Salvaneschi, Debugging for reactive programming, Proceedings of the 38th International Conference on Software Engineering, ICSE '16, pp.796-807, 2016.

P. Van-roy, Concepts, Techniques, and Models of Computer Programming, 2004.

M. Schumacher, E. Fernandez-buglioni, D. Hybertson, F. Buschmann, and P. Sommerlad, Security Patterns: Integrating security and systems engineering, 2013.

N. Yoshioka, H. Washizaki, and K. Maruyama, A survey on security patterns, Progress in informatics, vol.5, issue.5, pp.35-47, 2008.

B. Eduardo, R. Fernandez, and . Pan, A pattern language for security models, proceedings of PLOP, vol.1, 2001.

R. Wassermann, . Betty, and . Cheng, Security patterns, Michigan State University, PLoP Conf. Citeseer, 2003.

J. Yoder and J. Barcalow, Architectural patterns for enabling application security, vol.51, p.61801, 1997.

P. Dhaussy, F. Boniol, J. Roger, and L. Leroux, Improving model checking with context modelling, Advances in Software Engineering, 2012.
URL : https://hal.archives-ouvertes.fr/hal-00738735

P. Luka-le-roux-ciprian-teodorov and . Dhaussy, Environment-driven reachability for timed systems : Safety verification of an aircraft landing gear system, Int. Software Tools for Technology Transfer (STTT), 2016.

, Approches Formelles dans l'Assistance au Développement de Logiciels-AFADL'18

E. Bartocci, Y. Falcone, B. Bonakdarpour, C. Colombo, N. Decker et al., First international competition on runtime verification: rules, benchmarks, tools, and final results of crv 2014, International Journal on Software Tools for Technology Transfer, pp.1-40, 2017.
URL : https://hal.archives-ouvertes.fr/cea-01845191

D. A. Basin, F. Klaedtke, and E. Zalinescu, Failure-aware runtime verification of distributed systems, FSTTCS 2015. LIPIcs, vol.45, pp.590-603, 2015.

A. Bauer, M. Leucker, and C. Schallhart, Runtime verification for LTL and TLTL, ACM Trans. Softw. Eng. Methodol, vol.20, issue.4, p.14, 2011.

C. Colombo and Y. Falcone, Organising LTL monitors over distributed systems with a global clock, Formal Methods in System Design, vol.49, issue.1-2, pp.109-158, 2016.
URL : https://hal.archives-ouvertes.fr/hal-01315776

A. Duret-lutz, Manipulating LTL formulas using Spot 1.0, Proceedings of the 11th International Symposium on Automated Technology for Verification and Analysis (ATVA'13), vol.8172, pp.442-445, 2013.

A. El-hokayem and Y. Falcone, Monitoring decentralized specifications, Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, pp.125-135, 2017.
URL : https://hal.archives-ouvertes.fr/hal-01653725

A. El-hokayem and Y. Falcone, THEMIS: a tool for decentralized monitoring algorithms, Proceedings of 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA'17-DEMOS), 2017.
URL : https://hal.archives-ouvertes.fr/hal-01653727

A. El-hokayem and Y. Falcone, THEMIS demonstration repository, 2017.

A. El-hokayem and Y. Falcone, THEMIS website, 2017.

Y. Falcone, K. Havelund, and G. Reger, Engineering Dependable Software Systems, NATO science for peace and security series, d: information and communication security, vol.34, pp.141-175, 2013.

, Approches Formelles dans l'Assistance au Développement de Logiciels-AFADL'18

, Lectures on Runtime Verification-Introductory and Advanced Topics, vol.10457, 2018.

R. Jakse, Y. Falcone, J. Méhaut, and K. Pouget, Interactive runtime verification-when interactive debugging meets runtime verification, 28th IEEE International Symposium on Software Reliability Engineering, pp.182-193, 2017.
URL : https://hal.archives-ouvertes.fr/hal-01592671

F. Petrillo, Z. Soh, F. Khomh, M. Pimenta, C. M. Freitas et al., Towards understanding interactive debugging, 2016 IEEE International Conference on Software Quality, Reliability and Security, QRS 2016, pp.152-163, 2016.

, Approches Formelles dans l'Assistance au Développement de Logiciels-AFADL'18

J. Abrial, The B-book : Assigning Programs to Meanings, 1996.

B. Combemale, X. Crégut, J. Giacometti, P. Michel, and M. Pantel, Introducing Simulation and Model Animation in the MDE Topcased Toolkit, 4th European Congress EMBEDDED REAL TIME SOFTWARE (ERTS), 2008.
URL : https://hal.archives-ouvertes.fr/hal-00371596

A. Idani and Y. Ledru, B for Modeling Secure Information Systems-The B4MSecure Platform, 17th Int. Conference on Formal Engineering Methods, vol.9407, pp.312-318, 2015.
URL : https://hal.archives-ouvertes.fr/hal-01420686

M. Leuschel and M. Butler, ProB : A model checker for B, FME 2003 : Formal Methods, LNCS 2805, pp.855-874, 2003.

P. Mohagheghi and V. Dehlen, Where is the proof ?-a review of experiences from applying mde in industry, Model Driven Architecture-Foundations and Applications, vol.5095, pp.432-443, 2008.

M. Pierre-alain, F. Fleurey, and J. , J&eacute ;z&eacute ;quel. Weaving executability into object-oriented meta-languages, Proceedings of MODELS/UML'2005, pp.264-278, 2005.

M. Soden and H. Eichler, Towards a model execution framework for eclipse, Proceedings of the 1st Workshop on Behaviour Modelling in Model-Driven Architecture, BM-MDA '09, vol.4, pp.1-4, 2009.

D. Steinberg, F. Budinsky, M. Paternostro, and E. Merks, EMF : Eclipse Modeling Framework 2.0, 2009.

, Approches Formelles dans l'Assistance au Développement de Logiciels-AFADL'18

. Références,

K. Bansal, A. Reynolds, T. King, C. W. Barrett, and T. Wies, Deciding Local Theory Extensions via E-matching, CAV 2015, 2015.

C. W. Barrett, R. Sebastiani, S. A. Seshia, and C. Tinelli, Satisfiability modulo theories, Handbook of Satisfiability, pp.825-885, 2009.
URL : https://hal.archives-ouvertes.fr/hal-01095009

A. Biere, Bounded model checking, Handbook of Satisfiability, pp.457-481, 2009.

R. David, S. Bardin, T. D. Ta, L. Mounier, J. Feist et al., BINSEC/SE : A dynamic symbolic execution toolkit for binary-level analysis, SANER 2016, 2016.
URL : https://hal.archives-ouvertes.fr/hal-01721502

L. M. De-moura and N. Bjørner, Efficient E-Matching for SMT Solvers, 2007.

B. Farinier, S. Bardin, R. Bonichon, and M. Potet, Model Generation for Quantified Formulas : A Taint-Based Approach, CAV 2018, 2018.
URL : https://hal.archives-ouvertes.fr/cea-01709306

P. Godefroid, M. Y. Levin, and D. A. Molnar, SAGE : whitebox fuzzing for security testing, ACM Queue, vol.10, issue.1, p.20, 2012.

A. Reynolds, M. Deters, V. Kuncak, C. Tinelli, and C. W. Barrett, Counterexample-Guided Quantifier Instantiation for Synthesis in SMT, CAV 2015, 2015.

A. Reynolds, C. Tinelli, A. Goel, and S. Krstic, Finite Model Finding in SMT, CAV 2013, 2013.

Y. Blein, Y. Ledru, L. Bousquet, and R. Groz, Extending Specification Patterns for Verification of Parametric Traces, 2018.
URL : https://hal.archives-ouvertes.fr/hal-02004378

M. B. Dwyer, S. George, J. C. Avrunin, and . Corbett, Patterns in Property Specifications for Finite-State Verification. Dans ICSE, pp.411-420

, ACM, 1999.

D. Jackson and J. Wing, Lightweight Formal Methods. ACM Comput. Surv, vol.28, issue.4, p.121, 1996.

, Approches Formelles dans l'Assistance au Développement de Logiciels-AFADL'18

. Références,

P. Pierre-marie and T. Nicolas, An Effectful Way to Eliminate Addiction to Dependence, 32nd Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2017, pp.1-12, 2017.

P. Pierre-marie and T. Nicolas, Failure is Not an Option-An Exceptional Type Theory, Held as Part of the European Joint Conferences on Theory and Practice of Software, pp.245-271, 2018.

, Approches Formelles dans l'Assistance au Développement de Logiciels-AFADL'18 8 let corec fib : int stream with

|. ,

|. , #Tail : int stream with

|. ,

|. , #Tail-> map2 ( + ) fib fib#Tail

, Ce calcul est défini au moment de la définition d'une valeur du type 'a stream par le biais d'un filtrage par comotifs. La ligne 8 introduit ici la suite de Fibonacci en définissant les calculs déclenchés pour chacune de ses observations. Par exemple, en ligne 9, on déclare que "fib#Head = 1" tandis qu'en ligne 12, on déclare que "fib#Tail#Tail = map2 ( + ) fib fib#Tail". Ces définitions sont à la fois de haut-niveau et suffisamment paresseuses pour que la définition d'un objet infini (productif) puisse se faire sans provoquer de divergence incontrôlée. Le filtrage par comotifs a été introduit par Abel, Pientka, Thibodeau et Setzer pour éviter l'écueil des coinductifs de COQ : la perte de la préservation du typage par l'évaluation. Notre contribution a été de montrer qu'il suffit qu'un langage de programmation fonctionnel soit muni d'un système de type incluant GADTs et polymorphisme d'ordre 2 pour que son extension avec un filtrage par comotifs se résume à l'écriture d'une macro, c'est-à-dire d'une transformation purement locale et syntaxique. Non seulement la simplicité de cette transformation nous a permis d, La déclaration de type de la ligne 1 introduit un type coalgébrique pour les séquences infinies de valeurs de type 'a. Un type coalgébrique est défini par les observations que l'on peut faire de ses habitants : ici par exemple, on peut observer la tête d'une séquence avec l'observation

. Références,

P. Laforgue and Y. Régis-gianas, Copattern matching and first class observations in OCaml, Pages 97-108. Editeurs : Wim Vanhoof, Brigitte Pientka, 2017.
URL : https://hal.archives-ouvertes.fr/hal-01653261

, Approches Formelles dans l'Assistance au Développement de Logiciels-AFADL'18