De nouveaux outils pour calculer avec des inductifs en Coq
En ajoutant au lambda-calcul des structures de données algébriques, des types dépendants et un système de modules, on obtient un langage de programmation avec peu de primitives mais une très grande expressivité. L'assistant de preuve Coq s'appuie sur un tel langage (le CIC) à la sémantique...
Main Author: | |
---|---|
Language: | fra |
Published: |
Université Paris-Diderot - Paris VII
2014
|
Subjects: | |
Online Access: | http://tel.archives-ouvertes.fr/tel-01054723 http://tel.archives-ouvertes.fr/docs/01/05/47/23/PDF/these_boutillier.pdf http://tel.archives-ouvertes.fr/docs/01/05/47/23/ANNEX/soutenace_boutillier.pdf |
id |
ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-01054723 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-010547232014-08-09T03:34:30Z http://tel.archives-ouvertes.fr/tel-01054723 http://tel.archives-ouvertes.fr/docs/01/05/47/23/PDF/these_boutillier.pdf http://tel.archives-ouvertes.fr/docs/01/05/47/23/ANNEX/soutenace_boutillier.pdf De nouveaux outils pour calculer avec des inductifs en Coq Boutillier, Pierre [INFO:INFO_PL] Computer Science/Programming Languages [INFO:INFO_PL] Informatique/Langage de programmation Coq (logiciel) Assistants de preuve Langages de programmation -- Sémantique Induction (logique) filtrage En ajoutant au lambda-calcul des structures de données algébriques, des types dépendants et un système de modules, on obtient un langage de programmation avec peu de primitives mais une très grande expressivité. L'assistant de preuve Coq s'appuie sur un tel langage (le CIC) à la sémantique particulièrement claire. L'utilisateur n'écrit pas directement de programme en CIC car cela est ardu et fastidieux. Coq propose un environnement de programmation qui facilite la tâche en permettant d'écrire des programmes incrémentalement grâce à des constructions de haut niveau plus concises. Typiquement, les types dépendants imposent des contraintes fortes sur les données. Une analyse de cas peut n'avoir à traiter qu'un sous-ensemble des constructeurs d'un type algébrique, les autres étant impossibles par typage. Le type attendu dans chacun des cas varie en fonction du constructeur considéré. L'impossibilité de cas et les transformations de type doivent être explicitement écrites dans les termes de Coq. Pourtant, ce traitement est mécanisable et cette thèse décrit un algorithme pour réaliser cette automatisation. Par ailleurs, il est nécessaire à l'interaction avec l'utilisateur de calculer des programmes du CIC sans faire exploser la taille syntaxique de la forme réduite. Cette thèse présente une machine abstraite conçu dans ce but. Enfin, les points fixes permettent une manipulation aisée des structure de données récursives. En contrepartie, il faut s'assurer que leur exécution termine systématiquement. Cette question sensible fait l'objet du dernier chapitre de cette thèse. 2014-02-18 fra PhD thesis Université Paris-Diderot - Paris VII |
collection |
NDLTD |
language |
fra |
sources |
NDLTD |
topic |
[INFO:INFO_PL] Computer Science/Programming Languages [INFO:INFO_PL] Informatique/Langage de programmation Coq (logiciel) Assistants de preuve Langages de programmation -- Sémantique Induction (logique) filtrage |
spellingShingle |
[INFO:INFO_PL] Computer Science/Programming Languages [INFO:INFO_PL] Informatique/Langage de programmation Coq (logiciel) Assistants de preuve Langages de programmation -- Sémantique Induction (logique) filtrage Boutillier, Pierre De nouveaux outils pour calculer avec des inductifs en Coq |
description |
En ajoutant au lambda-calcul des structures de données algébriques, des types dépendants et un système de modules, on obtient un langage de programmation avec peu de primitives mais une très grande expressivité. L'assistant de preuve Coq s'appuie sur un tel langage (le CIC) à la sémantique particulièrement claire. L'utilisateur n'écrit pas directement de programme en CIC car cela est ardu et fastidieux. Coq propose un environnement de programmation qui facilite la tâche en permettant d'écrire des programmes incrémentalement grâce à des constructions de haut niveau plus concises. Typiquement, les types dépendants imposent des contraintes fortes sur les données. Une analyse de cas peut n'avoir à traiter qu'un sous-ensemble des constructeurs d'un type algébrique, les autres étant impossibles par typage. Le type attendu dans chacun des cas varie en fonction du constructeur considéré. L'impossibilité de cas et les transformations de type doivent être explicitement écrites dans les termes de Coq. Pourtant, ce traitement est mécanisable et cette thèse décrit un algorithme pour réaliser cette automatisation. Par ailleurs, il est nécessaire à l'interaction avec l'utilisateur de calculer des programmes du CIC sans faire exploser la taille syntaxique de la forme réduite. Cette thèse présente une machine abstraite conçu dans ce but. Enfin, les points fixes permettent une manipulation aisée des structure de données récursives. En contrepartie, il faut s'assurer que leur exécution termine systématiquement. Cette question sensible fait l'objet du dernier chapitre de cette thèse. |
author |
Boutillier, Pierre |
author_facet |
Boutillier, Pierre |
author_sort |
Boutillier, Pierre |
title |
De nouveaux outils pour calculer avec des inductifs en Coq |
title_short |
De nouveaux outils pour calculer avec des inductifs en Coq |
title_full |
De nouveaux outils pour calculer avec des inductifs en Coq |
title_fullStr |
De nouveaux outils pour calculer avec des inductifs en Coq |
title_full_unstemmed |
De nouveaux outils pour calculer avec des inductifs en Coq |
title_sort |
de nouveaux outils pour calculer avec des inductifs en coq |
publisher |
Université Paris-Diderot - Paris VII |
publishDate |
2014 |
url |
http://tel.archives-ouvertes.fr/tel-01054723 http://tel.archives-ouvertes.fr/docs/01/05/47/23/PDF/these_boutillier.pdf http://tel.archives-ouvertes.fr/docs/01/05/47/23/ANNEX/soutenace_boutillier.pdf |
work_keys_str_mv |
AT boutillierpierre denouveauxoutilspourcalculeravecdesinductifsencoq |
_version_ |
1716710375398834176 |