• Aucun résultat trouvé

Proposition d'architecture du moteur de test de conversion

N/A
N/A
Protected

Academic year: 2021

Partager "Proposition d'architecture du moteur de test de conversion"

Copied!
8
0
0

Texte intégral

(1)

HAL Id: inria-00099931

https://hal.inria.fr/inria-00099931

Submitted on 11 Oct 2006

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of

sci-entific research documents, whether they are

pub-lished or not. The documents may come from

teaching and research institutions in France or

abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est

destinée au dépôt et à la diffusion de documents

scientifiques de niveau recherche, publiés ou non,

émanant des établissements d’enseignement et de

recherche français ou étrangers, des laboratoires

publics ou privés.

Proposition d’architecture du moteur de test de

conversion

Frédéric Blanqui

To cite this version:

Frédéric Blanqui. Proposition d’architecture du moteur de test de conversion. [Contrat] A04-R-488 ||

blanqui04d, 2004, 7 p. �inria-00099931�

(2)

inria-00099931, version 1 - 11 Oct 2006

Lot 5.1

Te hnologie de véri ation

Ajouter la réé riture au noyau de Coq

Proposition d'ar hite ture du

moteur de test de onversion

Des ription: Nousexaminonsl'ar hite turea tuelledeCoqetdis utonsdiérentessolutions

pouryajouterlaré riture.Ensuite, danslebutd'implanter unprototype

rapi-dement,sansbouleverserle odedeCoq,nousproposonsunear hite turesimple

utilisantCiME,unebibliothèqueOCamlpourlaré riture.

Auteur(s) : Frédéri Blanqui

Référen e : Averroes/Lot5.1/Fourniture2/V1.0

Date : 30mars2004

Statut : validé

Version: 1.0

Réseau Nationaldes Te hnologies Logi ielles

ProjetsubventionnéparleMinistèredelaRe her heetdesNouvellesTe hnologies

CRIL Te hnology, Fran e Télé om R&D, INRIA-Futurs, LaBRI (Univ. de Bordeaux CNRS),

LIX (É ole Polyte hnique, CNRS) LORIA, LRI (Univ. de Paris Sud  CNRS), LSV (ENS de

(3)

(AnalysisandVERi ationfortheReliabilityOfEmbeddedSystems)

Historique

10février2004 V0.1 réationdudo ument

30mars2004 V1.0 versionnale

Table des matières

1 Ar hite turede Coq 3

1.1 Noyau . . . 3

1.2 Rédu tion . . . 3

1.3 Conversion . . . 4

2 Ajoutde la ré riture :dis ussion 4

3 Propositiond'ar hite ture 6

(4)

1 Ar hite ture de Coq

Nous ommençons par présenter l'ar hite ture a tuelle de Coq [7℄. Ensuite, nous dis utons

diérentes possibilités pour pouvoir y intégrer de la ré riture. Nous onsidérons la version 7.3

(bugx)deCoqquidatedemai2002.Laversionsuivante7.4(février2003)etlaversionen ours

dedéveloppement(version8.0beta, dé embre2003)neremettentpasen auselemoteurdetest

de onversion.L'adaptationdelaprésentear hite tureàlafutureversion8.0deCoqnedoitdon

pasposerdedi ultés.

Unebrèvedes riptionpeutêtretrouvéedans[4,9℄.Le odedeCoqestdiviséen9répertoires:

 lib:modules implantantdesstru turesdedonnéeset fon tionsd'utilité générale.

 kernel:modulesimplantantlemoteurdetestde onversionet levéri ateurdetype.

 library:modulesimplantantlesmé hanismesdeba ktra king ( ommandeUndo).

 pretyping:modules implantantl'inféren edetype.

 interp:modulestransformantlesAST

1

entermes nontypés.

 parsing :modules implantantlale ture,le odageet l'a hagedes ommandeset termes

fournisparouàl'utilisateur.

 proofs:modulesimplantantlemoteurdepreuves.

 ta ti s:modulesimplantantlelanguagedeta tiques.

 toplevel:modulesimplantantlelan ementetl'exé utiondeCoq.

1.1 Noyau

Lerépertoirequi nousintéressele plus,kernel, ontient les hiers suivants.Ceuxrelatifsà

ladénitiondestermes:

 univ:universet ontraintesd'univers.

 names:nomsdesobjets.

 term:termes.

Ceuximplantantletestde onversion:

 esubst:substitutions expli ites.

 losure:stru turededonnéesutiliséepourlarédu tion.

 onv_ora le :fon tion indiquantquelle

δ

-rédu tion réaliseren premier dans le as où on

doitfaireun hoix.

 redu tion:fon tionsderédu tionetdetestde onversion.

Ceuximplantantlesenvironnements:

 sign:séquen esdedé larations.

 entries:stru turesdedonnéeutiliséespourrajouterunobjetdansunenvironnement.

 de larations: stru tures dedonnéesutilisées eninterne pourreprésenter lesobjets d'un

environnement.

 environ:environnements.

 ooking:?

Enn, euximplantantlavéri ationdetype:

 type_errors:erreursdetypage.

 indtypes:vériel'admissibilitéd'untype( o)indu tif.

 indu tive:vériel'admissibilitéd'unefon tiondénie par( o)pointxe.

 typeops:inféren edetype.

 safe_typing:environnementsbientypés.

1.2 Rédu tion

DanslesystèmeCoq,lemoteurdetestde onversiondoitprendreen ompte4typesdiérents

dedénitionsourelationsderédu tion:



β

-rédu tion: dans l'appli ationd'unefon tion, rempla ementdans le orps dela fon tion

desargumentsformelsparleurvaleur.

1

(5)

(Analysis andVERi ationfortheReliabilityOfEmbeddedSystems)



ι

-rédu tion: rédu tionengendréeparlesdénitions( o)indu tivesintroduitesparles

mot- lés Fixpoint, Fix,CoFixpointetCoFix.



δ

-rédu tion:rédu tionengendréeparlesdénitionsintroduitesparlesmot- lésDefinition

et Lo al.



ζ

-rédu tion: rédu tionengendréeparlesdénitionsintroduitesparlemot- lé let.

Larédu tionestimplantéeparunema hineabstraite.Plusdepré isionspeuventêtretrouvées

dans la thèse de BrunoBarras [1℄. Le type des termes est onstr. Le module losure dénit

un type los_infos qui permet de dénir quelles rédu tions on souhaite voir appliquées (on

peut pré iser les symboles que l'on veut

δ

-réduire individuellement), et un type f onstr pour

représenterlestermesdanslama hine.Unétatdelama hineestdonnéparunf onstr(latête)

et une pile de f onstr(les arguments).Le module losure exporte enparti ulierles fon tions

suivantes:

 inje t : onstr -> f onstrtransformeun onstrenf onstrpourpouvoirleréduire.

 val whd_sta k : los_infos -> f onstr -> f onstr sta k -> f onstr * f onstr

sta k al ulelaforme

βδιζ

-normaledetêted'unf onstrappliquéàunepiled'arguments.

 term_of_f onstr : f onstr -> onstrtransformeunf onstren onstr.

 whd_val : los_infos -> f onstr -> onstr al ulelaforme

βδιζ

-normaledetêted'un

f onstr.

 norm_val : los_infos -> f onstr -> onstr al ulelaforme

βδιζ

-normaled'unf onstr.

1.3 Conversion

L'algorithmedetestde onversionimplantédanslaversion7.3deCoqestdûàBrunoBarras

[1℄.L'idéedebaseestpro hede elledeThierryCoquand[8℄quine onsidèrequela

β

-rédu tion.

Pourtesterla

β

-équivalen ede2termes

u

et

v

,on ommen eparréduire

u

et

v

jusqu'àleursformes

normalesdetêtequi,dans e as,doiventêtreuneséquen ed'abstra tionssuivied'une onstante

ou d'une variable (la tête) appliquée à une séquen e de termes. Si les têtes sont diérentes, les

termessontné essairementdistin ts arlatêteestinvarianteparrédu tion.Sipar ontrelestêtes

sont égales,il onvient alorsde tester l'équivalen e de leursargumentsdeux àdeux de manière

ré ursive.BrunoBarrasaétendu etalgorithmeauxautresrédu tionsetl'aimplantédemanière

e a eàl'aidedesubstitutionsexpli ites.

Danslesfon tionsde onversiondé rites i-après,untermeestdé omposéen2ou3éléments:

unterme de typelift(déni dans esubst)représentantdesrenumérotationsdesindi es de de

Bruijn(lifts),et unf onstrseulouunf onstr(la tête)ave lapiledesesarguments.Letest

de onversionproduitdes ontraintesd'universsatisablessilesdeuxtermessont onvertibles,ou

lèveuneex eption.

 Lafon tionde onversionproprementditeest f onvet s'appliqueàdes onstr. Elle

om-men e partestersi lesdeux onstrsontsyntaxiquementégaux(fon tion eq_ onstr dans

terme a egrâ e auhash- onsing).Dans le as ontraire,elle réeun los_infossans

δ

-rédu tion(les

δ

-rédu tionsné essaires au test de onversionserontrajoutées aufur et à

mesure),transformeles onstrenf onstrave inje t,etappelle nvave desliftségaux

àELID(identité).

 nv al ulelesformesnormalesdetêteave whd_sta k,etappelleeqappr.

 eqappr omparelestêtes.Dansle asoùunetêteseulementestune onstante,ellela

δ

-réduit

et rappelleeqapprave le résultat.Dans le as oùles deux têtes sontdes onstantes, elle

appelleora le_order(dansmodule onv_ora le) pour savoirquelle onstante

δ

-réduire.

Enn, dansle asoùlesdeuxtêtessontégales,on omparelesarguments.

2 Ajout de la ré riture : dis ussion

L'implantation a tuelle de Coq repose de manièreimportante sur le fait que, poursavoirsi

uneappli ationestrédu tibleentête,ilsut deregarderlessous-termesimmédiats:sionaune

(6)

abstra tion,l'appli ationest

β

-rédu tible,etsionaun onstru teur,l'appli ationest

ι

-rédu tible.

Ave desrèglesderé ritureaprioriquel onque,etenparti ulierave delaré rituremoduloAC,

il en va tout autrement. Il peut être né essaire d'examiner des sous-termes à une profondeur

supérieureàunpoursavoirsi unterme est rédu tibleentête. Deplus,unterme non rédu tible

entêten'estpasné essairementenformenormaledetête:desrédu tionsenprofondeurpeuvent

êtrené essairespourpouvoirréduireuntermeentête.

On voit don quel'implantatione a e dutest de onversionen présen e deré riture et de

β

-rédu tionposentdesproblèmes omplexes.Ceux- i n'ayantpasen oreétéexplorés,davantage

dere her he estné essaire avantdepouvoirproposerunalgorithmee a epourl'implantation

deCoqave ré riture,larésolutionde esproblèmesrisquantderemettreprofondémenten ause

l'implantation a tuelle du noyau de Coq. Cependant, l'intégration de ré riture à Coq pose un

ertainnombredequestionsauxquellesilnoussemblené essairederépondreavantde hoisirune

ar hite tureparti ulière:

Distinguer ré ritureet

ι

-rédu tion? Bienque, demanièregénérale,laré ritureenglobe

ertaines des rédu tionsdéjà présentes dans Coq (enparti ulier la

ι

-rédu tion, mais la

δ

-rédu tionaussi),ilaétédé idédansladénitiondela lassederé ritureàintégrer[2℄quela

ré ritureseraitrajoutéeàCoqsanspourautantsesubstituerauxrédu tionsdéjàprésentes,

et qu'elle s'appliqueraitàdesobjetshabituellement onsidérés omme onstantsdans Coq

(ParameteretAxiom).Cependant,onpeutsedemandersi,enterme demaintenan eet de

sé urité,ilestbienraisonabledetraiterdemanièreparti ulière esrédu tions(enparti ulier

la

ι

-rédu tion).Maistraiterla

ι

-rédu tion ommeun asparti ulierderé riturerequiertde

hangerunepartieimportantedu odedeCoq.

(Ré)implanterla ré rituresoi-mêmeou faire appelà des outils spé ialisés?

L'im-plantation e a ede laré riture,et en parti ulier delaré rituremodulo AC, est quelque

hose de non trivial.Cela représente de 10 à20000 lignes de ode dans CiME par

exem-ple, alorsque lenoyaudeCoq faitenviron10000lignesde ode.La questionsepose alors

s'il n'estpasraisonnablede faireappelsàdesoutilsspé ialisésen ré riture(e.g.CiME [6℄,

Elan[3℄,TOM[12℄,Maude[5℄),maisCoqn'estalorspasàl'abrisd'erreursdanslesystème

utilisé. D'autre part, il y a plusieurs manières de faire appel à un tel système. Réutiliser

son ode pose desproblèmes de maintenan e: quefaire si une erreur est dé ouverte dans

le odeimporté?Appelerle systèmede manièredynamique posedes problèmes

d'installa-tion:l'utilisateurdoitavoirinstalléuneversionappropriédusystèmepourpouvoirinstaller

Coq.Parailleurs,lesystèmedoit/peut-ilprendreen hargela

β

-rédu tionaussi(qui

peut-êtrevue ommedelaré rituredupremierordresidessubstitutionsexpli itessontutilisées)?

Interpréterou ompiler? Enn, on peut distinguer deux manières d'implanter la

ré rit-ure qui peuvent se ombiner. L'appro he par interprétation onsiste à disposer d'un ode

générique permettant de al uler la forme normale d'un terme àpartir d'un ensemble de

règles de ré riture ( 'est l'appro he développée dans CiME par exemple). L'appro he par

ompilation onsiste àproduire unprogrammequi, unefois ompiléeenbinaire, al ule la

forme normaled'un terme pour un ensemble de règles de ré riture parti ulier ( 'est

l'ap-pro he développée dans Elan par exemple [11, 10℄). La ombinaison des deux appro hes

semblenaturelleetsouhaitablepuisque,d'unepart,l'appro heparinterprétationest

né es-saire dans une session intera tive et, d'autrepart, l'appro hepar ompilation fournit une

pro éduredenormalisation pluse a eque l'appro heparinterprétation. Cependant,

l'u-tilisation de ode ompilé dans le noyau pose deux problèmes importants. Le premier est

d'ordre te hnique : il né essite de faire appel à des programmes ontruits et ompilés de

manièredynamique.Lese ond estrelatifàlasé urité:quelle onan epeut-ona orderà

(7)

(Analysis andVERi ationfortheReliabilityOfEmbeddedSystems)

3 Proposition d'ar hite ture

L'obje tif d'Averroes étant de réaliser un prototype pour tester l'utilisation de ré riture en

Coqet nonderéaliserune nouvelleversionde Coqin luantdelaré rituretout enétantsûreet

e a e,ilest natureld'adopterune ar hite turequiné essitedemodierCoqlemoinspossible.

C'estainsiquenousavons hoisidedistinguerré ritureet

ι

-rédu tion,d'utiliserle odedeCiME

[6℄pour

R

-normaliserlestermes (onappellera

R

-rédu tionlarédu tionengendréeparlesrègles

de ré rituredé larées dans l'environnement),et don d'interpréterles règlesde ré riture. CiME

fournitégalementunefon tionvériantla onuen elo ale(moduloAC)d'unensemblederègles

deré riture.

Nousdé rivonsmaintenant ommentmodierlapro édurede onversiondeCoqpouryin lure

laré riture.Danseqappr,quand unetêteaumoins estune onstantedénie parré riture,ilest

peut-êtrené essairedefairequelquesré riturespourmontrerquelesdeuxtermessontéquivalents.

Cependant, pour être dé len hables, es ré ritures peuvent né essiter que les arguments soient

d'abord

βδιζ

-normalisés.Deplus,enprésen edesymboles ommutatifsouasso iatifs- ommutatifs,

ilnesut plusdetesterl'égalitésyntaxiquedesarguments: ommedansCiME,ilfautaplatir

et ordonner les arguments de façon à tester leur AC-équivalen e (par exemple, dans CiME, si

x < y < z

alors

+(+yx)z

est représentépar

+xyz

).

On voit don deux in onvénientsimportants à ette appro he. Premièrement, le fait d'avoir

à

βδιζ

-normaliser avant de

R

-normaliser fait perdre l'avantage d'une normalisation progressive

(passage par les formes normales de tête) qui permet de déte ter plus tt une erreur de type.

Deuxièmement, l'utilisation du odede CiME pour normaliserunterme Coq né essitede

nom-breuses onversionsentrestru turesdedonnées.Etantdonnéquelastru turedef onstrutilisée

pourla

βδιζ

-rédu tionest omplexe,ilestplusaisédedénirune onversionentreletype onstr

deCoqetletypetermdeCiMEqui,àladiéren edeCoq, utilisedeslistespourlesarguments

d'un symbole, les aplatit et les ordonne. On a don , à haque

R

-normalisation, deux double

onversions:def onstrà onstr(ave lafon tionterm_of_f onstr), de onstràterm,et la

même hosedansl'autresensaprèsla

R

-normalisation.

La onversionentre onstret term pourrait être éliminée si CiME avait une interfa e plus

génériqueetétait apabledetravaillersurn'importequellestru turededonnées( equineparaît

pasdi ileàréaliseraumoinsenabsen edesymbolesAC).C'estparexemple equepermetTOM

[12℄.Pouréliminer la onversionentref onstret onstr,il fautenplusêtre apabled'exprimer

l'eetd'appliquerunerèglederé riture(exprimée pardes onstr)surunf onstr.

Référen es

[1℄ B. Barras. Auto-validation d'un système de preuves ave familles indu tives. PhD thesis,

UniversitéParisVII,Fran e,1999.

[2℄ F. Blanqui. Dénition de la lasse de réé ritureà intégrer.Averroes, lot 5.1, fourniture 1,

2004.

[3℄ P.Borovanský,H.Cirstea,H.Dubois,C.Kir hner,H.Kir hner,P.-E.Moreau,C.Ringeissen,

andM. Vittek. ELANUser Manual. INRIANan y,Fran e,2000. http://www.loria.fr/

ELAN/.

[4℄ J.Chrz¡sz z.ImplementationofmodulesintheCoqsystem.InPro eedingsofthe16th

Inter-nationalConferen eonTheoremProvinginHigherOrderLogi s,Le tureNotesinComputer

S ien e2758,2003.

[5℄ M. Clavel, F. Durán, S. Eker, P. Lin oln, N. Martí-Oliet, J. Meseguer, and J. Quesada.

Maude : Spe i ation and Programming in Rewriting Logi . ComputerS ien e Laboratory,

SRIInternational,United States,1999. http://maude. sl.sri. om/.

[6℄ E.Contejean,C.Mar hé,B.Monate,andX. Urbain. CiME,2000. http:// ime.lri.fr/.

[7℄ Coq-Development-Team. The Coq Proof AssistantReferen eManual Version 7.4. INRIA

Ro quen ourt,Fran e,2003. http:// oq.inria.fr/.

(8)

[8℄ T.Coquand. Analgorithmfortesting onversionintypetheory. InG.HuetandG.Plotkin,

editors,Logi al Frameworks, pages255279.CambridgeUniversityPress,1991.

[9℄ J.-C.Filliâtre. Designofaproofassistant:Coqversion7. Te hni alReport1369,Université

ParisSud,Fran e,2000.

[10℄ H. Kir hner and P.-E. Moreau. Promoting rewriting to aprogramminglanguage : A

om-pilerfornon-deterministi rewriteprogramsinasso iative- ommutativetheories. Journalof

Fun tional Programming,11(2):207251,2001.

[11℄ P.-E. Moreau. Compilation de règles de réé riture et de stratégies non-déterministes. PhD

thesis,UniversitéNan yI,Fran e,1999.

[12℄ P.-E.Moreau,C.Ringeissen,andM.Vittek.Apatternmat hing ompilerformultipletarget

languages. In Pro eedings of the 12th International Conferen e on Compiler Constru tion,

Références

Documents relatifs

In order to determine quantitatively the relative dielectric constant « r of soft materials at the nanoscale, we have developed an EFM method based on the measurement of an

birth and neonatal hospitalization, abstracted from medical records; parent-report measures of health- care use, health needs, quality of life and neurode- velopment, based on

[r]

 Service indépendant: Dans le cas le plus simple, un service peut effectuer un calcul comme le calcul de la racine cubique d'un nombre fourni sans avoir besoin de se référer à

Un rationnement t énergétique sévère pendant la seule période adulte entraîne une diminution du poids des coqs mais aussi de leur production de sperme.. Le rationnement

Since strong forms of extensionality lead to undecidable type-checking, a good trade-off is to extend intensional equality with a decidable first-order theory T , as done in CoqMT

Now values of type subgoals sensitive act as tactics, for instance by applying them to one particular goal or to all the goals simultaneously.. We could imagine other kinds

Selon la théorie du changement de l’approche du choix rationnel, les banques commerciales auraient dû ou bien perdre le marché des entreprises allemandes et se reporter