Conception d'un langage de haut niveau de representation de preuves : recurrence par filtrage de motifs unification en presence de types inductifs primitifs synthese de lemmes d'inversion
暂无分享,去创建一个
Les systemes de preuves bases sur les theories des types offrent un cadre uniforme qui permet de programmer, specifier et prouver. L'utilisateur dispose d'un langage de programmation, d'un langage de specification et d'outils qui l'aident a raisonner formellement sur son programme. Dans le but de rapprocher dans ces systemes la syntaxe des definitions de fonctions de celle des mathematiques et des langages de programmation a la ml, nous etudions les preuves de terminaison de fonctions recursives definies equationnellement. A partir de la methode de synthese de preuves proposee par gilles dowek pour les systemes de types purs, et celle proposee par hassan saidi pour le systeme t de godel, nous proposons une methode de synthese de preuves pour le calcul des constructions inductives (cci). Ce calcul est une theorie des types tres riche, avec types polymorphes, types dependants et types inductifs primitifs (par exemple, les types algebriques et les predicats inductifs). Cette methode est complete, et fournit un cadre general ou definir des strategies de recherche de preuves. La completude se paye par la non terminaison. Nous etudions donc des restrictions qui terminent et qui permettent de resoudre une certaine classe de problemes de filtrage et d'unification du second ordre dans cci. Nous analysons aussi la derivation de principes d'analyse par cas specialises (dits principes d'inversion), technique necessaire pour resoudre une classe large de problemes de filtrage. Ces restrictions, que l'on peut considerer comme des algorithmes de compilation, synthetisent des preuves explicites a partir de notations plus implicites, dans l'esprit de la compilation des motifs dans un langage fonctionnel. Ceci permet d'incorporer au langage de specification du systeme de preuves la notation par filtrage de motifs aussi bien pour ecrire des programmes que des preuves.