• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 3
  • 2
  • 1
  • Tagged with
  • 6
  • 6
  • 3
  • 3
  • 3
  • 3
  • 2
  • 2
  • 2
  • 2
  • 2
  • 1
  • 1
  • 1
  • 1
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Program in Coq / Programmation en Coq

Claret, Guillaume 18 September 2018 (has links)
Dans cette thèse, nous cherchons à développer de nouvelles techniques pour écrire plus simplement des programmes formellement vérifiés. Nous procédons en étudiant l'utilisation de Coq en tant que langage de programmation dans différents environnements. Coq étant un langage purement fonctionnel, nous nous concentrons surtout sur la représentation et la spécification d'effets impurs, tel que les exceptions, les références mutables, les entrées-sorties et la concurrence.Nous travaillons premièrement sur deux projets préliminaires qui nous aident à comprendre les défis existants dans la programmation en Coq. Le premier projet, Cybele, est un plugin Coq pour écrire des preuves par réflexion efficaces avec effets. Nous compilons et nous exécutons les effets impurs en OCaml pour générer une prophétie, une forme de certificat, et interprétons les effets dans Coq en utilisant cette prophétie. Le second projet, le compilateur CoqOfOCaml, importe des programmes OCaml avec effets dans Coq en utilisant un système d'inférence d'effets.Puis nous décrivons différentes représentations génériques et composables d'effets impurs en Coq. Les calculs avec pause combinent les effets d'exceptions et de références mutables avec un mécanisme de pause. Ce mécanisme de pause permet de rendre explicite les étapes d'évaluation dans le but de représenter l'évaluation concurrente de deux termes. En implémentant le serveur web Pluto en Coq, nous réalisons que les entrées-sorties asynchrones sont l'effet le plus utile : cet effet est présent dans la plupart des programmes et ne peux être encodé de façon purement fonctionnelle. Nous concevons alors les "calculs asynchrones" comme moyen pour représenter et compiler des programmes avec événements en Coq.Finalement, nous étudions des techniques pour prouver des propriétés à propos de programmes avec effets. Nous commençons avec la vérification du système de blog ChickBlog écrit dans le langage des "calculs interactifs". Ce blog lance un fil d'exécution par client. Nous vérifions notre blog en utilisant une méthode de spécification par cas d'utilisation. Nous adaptons cette technique à la théorie des types en exprimant un cas d'utilisation comme un co-programme bien typé. Grâce à ce formalisme, nous pouvons présenter un cas d'utilisation comme un programme de test symbolique et le déboguer symboliquement, étape par étape, en utilisant le mode interactif de Coq. À notre connaissance, ceci représente la première telle adaptation de la spécification par cas d'utilisation en théorie des types. Nous pensons que la spécification formelle par cas d'utilisation est l'une des clés pour vérifier des programmes avec effets, sachant que la méthode des cas d'utilisation s'est avérée utile dans l'industrie pour exprimer des spécifications informelles. Nous étendons notre formalisme aux programmes concurrents et potentiellement non-terminants, avec le langage des "calculs concurrents". Nous concevons également un vérificateur de modèles pour vérifier l'absence d'interblocage dans un programme concurrent, en compilant la composition parallèle vers l'opérateur de choix non-déterministe. / In this thesis, we develop new techniques to conveniently write formally verified programs. To proceed, we study the use of Coq as a programming language in different settings. Coq being a purely functional language, we mainly focus on the representation and on the specification of impure effects, like exceptions, mutable references, inputs-outputs, and concurrency.First, we work on two preliminary projects helping us to understand the challenges of programming in Coq. The first project, Cybele, is a Coq plugin to write efficient proofs by reflection with effects. We compile and execute the impure effects in OCaml to generate a prophecy, a kind of certificate, and then interpret the effects in Coq using the prophecy. The second project, the compiler CoqOfOCaml, imports OCaml programs with effects into Coq, using an effect inference system.Next, we describe different generic and composable representations of impure effects in Coq. The breakable computations combine the standard exceptions and mutable references effects, with a pause mechanism to make explicit the evaluation steps in order to represent the concurrent evaluation of two terms. By implementing the Pluto web server in Coq, we realize that the most important effects to program are the asynchronous inputs-outputs. Indeed, these effects are ubiquitous and cannot be encoded in a purely functional manner. Thus, we design the asynchronous computations as a first way to represent and compile programs with events and handlers in Coq.Then, we study techniques to prove properties about programs with effects. We start with the verification of the blog system ChickBlog written in the language of the interactive computations. This blog runs one worker with synchronous inputs-outputs per client. We verify our blog using the method of specification by use cases. We adapt this technique to type theory by expressing a use case as a well-typed co-program over the program we verify. Thanks to this formalism, we can present a use case as a symbolic test program and symbolically debug it, step by step, using the interactive proof mode of Coq. To our knowledge, this is the first such adaptation of the use case specifications in type theory. We believe that the formal specification by use cases is one of the keys to verify effectful programs, as the method of use cases proved to be convenient to express (informal) specifications in the software industry. We extend our formalism to concurrent and potentially non-terminating programs with the language of concurrent computations. Apart from the use case method, we design a model-checker to verify the deadlock freedom of concurrent computations, by compiling the parallel composition to the non-deterministic choice operator using the language of blocking computations
2

Approche non locale d'un modèle élasto-plastique endommagable pour le calcul des structures en béton précontraint

Krayani, Abbas 11 December 2007 (has links) (PDF)
La connaissance de l'état mécanique du matériau et de son histoire de chargement (en tout point de la structure) est nécessaire pour évaluer l'étanchéité d'un ouvrage de confinement et par conséquent sa durabilité. Un modèle élastoplastique endommageable non local est développé pour reproduire le comportement mécanique du béton. Une méthode de régularisation est introduite sur la partie responsable de l'adoucissement pour éviter les problèmes numériques dus au phénomène de localisation de l'endommagement. La relation constitutive et son implantation numérique sont détaillées. La matrice tangente cohérente est dérivée, où la technique de la différenciation numérique est appliquée pour intégrer la relation constitutive de la plasticité et obtenir une convergence quadratique de la méthode de Newton-Raphson au niveau du point de Gauss et dans la solution du problème d'équilibre mécanique global. Les simulations effectuées ont montré la capacité du modèle à reproduire les comportements structurels classiques et complexes. Les comparaisons avec des modèles d'endommagement isotropes ont permis de mettre en évidence les améliorations apportées par l'introduction de la plasticité: le mode de rupture est correctement simulé (mode I et mode mixte) et la force ultime est en bon accord avec les résultats expérimentaux. Finalement, nous présentons des modifications du modèle d'endommagement non local intégral afin de prendre en considération les effets du bord. Notre justification est basée sur des arguments micromécaniques dans lesquels les interactions entre les microfissures sont diminuées proche du bord libre.
3

Analyse des efforts à l'interface entre les couches des matériaux composites à l'aide de modèles multiparticulaires de matériaux multicouches (M4)

Chabot, Armelle 24 June 1997 (has links) (PDF)
La thèse a pour but de concevoir un outil simple d'utilisation, pour l'ingénieur, capable d'analyser les champs de contraintes tridimensionnels responsables de délaminage au bord ou de fissuration transverse dans les matériaux multicouches. Dans la première partie du mémoire, nous construisons des modélisations multiparticulaires (M4) à partir de champs de contraintes tridimensionnels approchés écrits sous forme de polynômes de Legendre en z par couche. Les coefficients de ces polynômes sont des champs en (x,y) reliés aux efforts généralisés. Nous utilisons la formulation d'Hellinger-Reissner pour en déduire les déplacements et les déformations généralisées associées. Par stationnarité de la fonctionnelle, nous donnons les équations d'équilibre, les conditions aux limites et le comportement écrit en souplesse. La richesse plus ou moins grande des champs de contraintes approchés ainsi construit mène à 7n, 5n, 3n et (2n+1) (n: nombre de couches) équations d'équilibre dans le plan. Dans la seconde partie de la thèse, nous testons quatre modèles sur le problème de la traction simple pour des stratifiés non troués d'empilement quelconque et troués d'empilement (0°, 90°)s. Nous posons analytiquement les systèmes d'équations qui par combinaison se condensent en un système d'équations différentielles de degré 2 en y et dont la résolution se fait par le logiciel de calcul formel MATHEMATICA. Sur le cas du stratifié (0°, 90°)s non troué, nous montrons que l'énergie due aux efforts manquants dans les modèles réduits ne disparaît pas complètement mais est transférée sur celles des efforts restants. Dans le cas du modèle multiparticulaire M4_(2n+1)M (M: pour membrane) le plus simple, pour assurer l'équilibre global de la plaque, nous proposons un concept, généralisable, d'effort linéique de type Dirac dont l'intensité est relié au maximum des cisaillements au bord. Nous pensons que l'intensité du Dirac peut servir de base à un critère sur le délaminage.
4

Proposition d'une démarche de modélisation pour la prévision de l'amorçage d'une fissure dans un assemblage collé sous des sollicitations statiques

Moradi, A. 11 December 2013 (has links) (PDF)
Dans un contexte de réduction de la masse des aéronefs pour une diminution de la consommation de carburant, l'assemblage par collage représente une alternative intéressante aux assemblages boulonnés. Toutefois, les avantages des assemblages collés ne sont pas pleinement exploités, notamment de par le manque de confiance accordée dans les méthodes de dimensionnement leur étant associés. C'est pourquoi, l'objectif de ce travail était de proposer une démarche de modélisation pour la prévision de l'amorçage d'une fissure dans ce type d'assemblages sous des sollicitations statiques. De nombreux paramètres influents jouent sur la tenue à l'amorçage dans un assemblage collé. En particulier, cette tenue est fortement dépendante de l'épaisseur de la colle de cet assemblage. Aussi, dans un premier temps, l'influence de ce paramètre a été évaluée par une approche par critère couplé pour lequel une nouvelle définition de la mixité de mode a été proposée afin de traduire la dépendance de la résistance et de la ténacité du joint au mode de chargement. La mise en oeuvre du critère couplé a permis de retrouver l'influence, observée expérimentalement, de l'épaisseur de colle sur la tenue lors d'un essai à simple recouvrement, à savoir que plus l'épaisseur de colle est fine, meilleure est la tenue. Dans un deuxième temps, il s'est agit de mettre à profit la compréhension acquise précédemment en prenant en compte de l'épaisseur de colle dans un modèle de zone cohésive composé des mêmes ingrédients que le critère couplé mais qui est applicable dans le cas de structures en 3D. Le modèle de zone cohésive ainsi proposé rend compte de l'influence de l'épaisseur de colle sur l'amorçage identifiée par le critère couplé. Finalement, les apports et les limites de la démarche de modélisation proposée ont été mis en évidence à l'aide de comparaisons avec des résultats expérimentaux issus de la littérature.
5

Les effects et les handlers dans le langage naturel / Effects and handlers in natural language

Maršík, Jiří 09 December 2016 (has links)
Ces travaux s’intéressent à la modélisation formelle de la sémantique des langues naturelles. Pour cela, nous suivons le principe de compositionnalité qui veut que le sens d’une expression complexe soit une fonction du sens de ses parties. Ces fonctions sont généralement formalisées à l’aide du [lambda]-calcul. Cependant, ce principe est remis en cause par certains usages de la langue, comme les pronoms anaphoriques ou les présuppositions. Ceci oblige à soit abandonner la compositionalité, soit modifier les structures du sens. Dans le premier cas, le sens n’est alors plus obtenu par un calcul qui correspond à des fonctions mathématiques, mais par un calcul dépendant du contexte, ce qui le rapproche des langages de programmation qui manipulent leur contexte avec des effets de bord. Dans le deuxième cas, lorsque les structures de sens sont ajustées, les nouveaux sens ont tendance à avoir une structure de monade. Ces dernières sont elles-mêmes largement utilisées en programmation fonctionnelle pour coder des effets de bord, que nous retrouvons à nouveau. Par ailleurs, s’il est souvent possible de proposer le traitement d’un unique phénomène, composer plusieurs traitements s’avère être une tâche complexe. Nos travaux proposent d’utiliser les résultats récents autour des langages de programmation pour parvenir à combiner ces modélisations par les effets de bord. Pour cela, nous étendons le [lambda]-calcul avec une monade qui implémente les effects et les handlers, une technique récente dans l’étude des effets de bord. Dans la première partie de la thèse, nous démontrons les propriétés fondamentales de ce calcul (préservation de type, confluence et terminaison). Dans la seconde partie, nous montrons comment utiliser le calcul pour le traitement de plusieurs phénomènes linguistiques : deixis, quantification, implicature conventionnelle, anaphore et présupposition. Enfin, nous construisons une unique grammaire qui gère ces phénomènes et leurs interactions. / In formal semantics, researchers assign meanings to sentences of a natural language. This work is guided by the principle of compositionality: the meaning of an expression is a function of the meanings of its parts. These functions are often formalized using the [lambda]-calculus. However, there are areas of language which challenge the notion of compositionality, e.g. anaphoric pronouns or presupposition triggers. These force researchers to either abandon compositionality or adjust the structure of meanings. In the first case, meanings are derived by processes that no longer correspond to pure mathematical functions but rather to context-sensitive procedures, much like the functions of a programming language that manipulate their context with side effects. In the second case, when the structure of meanings is adjusted, the new meanings tend to be instances of the same mathematical structure, the monad. Monads themselves being widely used in functional programming to encode side effects, the common theme that emerges in both approaches is the introduction of side effects. Furthermore, different problems in semantics lead to different theories which are challenging to unite. Our thesis claims that by looking at these theories as theories of side effects, we can reuse results from programming language research to combine them.This thesis extends [lambda]-calculus with a monad of computations. The monad implements effects and handlers, a recent technique in the study of programming language side effects. In the first part of the thesis, we prove some of the fundamental properties of this calculus: subject reduction, confluence and termination. Then in the second part, we demonstrate how to use the calculus to implement treatments of several linguistic phenomena: deixis, quantification, conventional implicature, anaphora and presupposition. In the end, we build a grammar that features all of these phenomena and their interactions.
6

Réalisabilité classique et effets de bord / Classical realizability and side effects

Miquey, Étienne 17 November 2017 (has links)
Cette thèse s'intéresse au contenu calculatoire des preuves classiques, et plus spécifiquement aux preuves avec effets de bord et à la réalisabilité classique de Krivine. Le manuscrit est divisé en trois parties, dont la première consiste en une introduction étendue des concepts utilisés par la suite. La seconde partie porte sur l’interprétation calculatoire de l’axiome du choix dépendant en logique classique. Ce travail s'inscrit dans la continuité du système dPAω d'Hugo Herbelin, qui permet d’adapter la preuve constructive de l’axiome du choix en théorie des types de Martin-Löf pour en faire une preuve constructive de l’axiome du choix dépendant dans un cadre compatible avec la logique classique. L'objectif principal de cette partie est de démontrer la propriété de normalisation pour dPAω, sur laquelle repose la cohérence du système. La difficulté d'une telle preuve est liée à la présence simultanée de types dépendants (pour la partie constructive du choix), d'opérateurs de contrôle (pour la logique classique), d'objets co-inductifs (pour "encoder" les fonctions de type N → A par des streams (a₀,a₁,...)) et d'évaluation paresseuse avec partage (pour ces objets co-inductifs). Ces difficultés sont étudiées séparément dans un premier temps. En particulier, on montre la normalisation du call-by-need classique (présenté comme une extension du λµµ̃-calcul avec des environnements partagé), en utilisant notamment des techniques de réalisabilité à la Krivine. On développe ensuite un calcul des séquents classique avec types dépendants, définie comme une adaptation du λµµ̃-calcul, dont la correction est prouvée à l'aide d'une traduction CPS tenant compte des dépendances. Enfin, une variante en calcul des séquents du système dPAω est introduite, combinant les deux points précédents, dont la normalisation est finalement prouvée à l'aide de techniques de réalisabilité. La dernière partie, d'avantage orientée vers la sémantique, porte sur l’étude de la dualité entre l’appel par nom (call-by-name) et l’appel par valeur (call-by-value) dans un cadre purement algébrique inspiré par les travaux autour de la réalisabilité classique (et notamment les algèbres de réalisabilité de Krivine). Ce travail se base sur une notion d'algèbres implicatives développée par Alexandre Miquel, une structure algébrique très simple généralisant à la fois les algèbres de Boole complètes et les algèbres de réalisabilité de Krivine, de manière à exprimer dans un même cadre la théorie du forcing (au sens de Cohen) et la théorie de la réalisabilité classique (au sens de Krivine). Le principal défaut de cette structure est qu’elle est très orientée vers le λ-calcul, et ne permet d’interpréter fidèlement que les langages en appel par nom. Pour remédier à cette situation, on introduit deux variantes des algèbres implicatives les algèbres disjonctives, centrées sur le “par” de la logique linéaire (mais dans un cadre non linéaire) et naturellement adaptées aux langages en appel par nom, et les algèbres conjonctives, centrées sur le “tenseur” de la logique linéaire et adaptées aux langages en appel par valeur. On prouve en particulier que les algèbres disjonctives ne sont que des cas particuliers d'algèbres implicatives et que l'on peut obtenir une algèbre conjonctive à partir d'une algèbre disjonctive (par renversement de l’ordre sous-jacent). De plus, on montre comment interpréter dans ces cadres les fragments du système L de Guillaume Munch-Maccagnoni en appel par valeur (dans les algèbres conjonctives) et en appel par nom (dans les algèbres disjonctives). / This thesis focuses on the computational content of classical proofs, and specifically on proofs with side-effects and Krivine classical realizability. The manuscript is divided in three parts, the first of which consists of a detailed introduction to the concepts used in the sequel.The second part deals with the computational content of the axiom of dependent choice in classical logic. This works is in the continuity of the system dPAω developed Hugo Herbelin. This calculus allows us to adapt the constructive proof of the axiom of choice in Martin-Löf's type theory in order to turn it into a constructive proof of the axiom of dependent choice in a setting compatible with classical logic. The principal goal of this part is to prove the property of normalization for dPAω, on which relies the consistency of the system. Such a proof is hard to obtain, due to the simultaneous presence of dependent types (for the constructive part of the choice), of control operators (for classical logic), of co-inductive objects (in order to "encode" functions of type N → A as streams (a₀,a₁,...)) and of lazy evaluation with sharing (for this co-inductive objects). These difficulties are first studied separately. In particular, we prove the normalization of classical call-by-need (presented as an extension of the λµ̃µ-calculus with shared environments) by means of realizability techniques. Next, we develop a classical sequent calculus with dependent types, defined again as an adaptation of the λµ̃µ-calculus, whose soundness is proved thanks to a CPS translation which takes the dependencies into account. Last, a sequent-calculus variant of dPAω is introduced, combining the two previous systems. Its normalization is finally proved using realizability techniques. The last part, more oriented towards semantics, studies the duality between the call-by-name and the call-by-value evaluation strategies in a purely algebraic setting, inspired from several works around classical realizability (and in particular Krivine realizability algebras). This work relies on the notion of implicative algebras developed by Alexandre Miquel, a very simple algebraic structure generalizing at the same time complete Boolean algebras and Krivine realizability algebras, in such a way that it allows us to express in a same setting the theory of forcing (in the sense of Cohen) and the theory of classical realizability (in the sense of Krivine). The main default of these structures is that they are deeply oriented towards the λ-calculus, and that they only allows to faithfully interpret languages in call-by-name. To remediate the situation, we introduce two variants of implicative algebras: disjunctive algebras, centered on the "par" connective of linear logic (but in a non-linear framework) and naturally adapted to languages in call-by-name; and conjunctives algebras, centered on the "tensor" connective of linear logic and adapted to languages in call-by-value. Amongst other things, we prove that disjunctive algebras are particular cases of implicative algebras and that conjunctive algebras can be obtained from disjunctive algebras (by reversing the underlying order). Moreover, we show how to interpret in these frameworks the fragments of Guillaume Munch-Maccagnoni's system L corresponding to a call-by-value calculus (within conjunctive algebras) and to a call-by-name calculus (within disjunctive algebras).

Page generated in 0.0355 seconds