Intégration des outils Persée (Proposition d architecture) Déliverable 3.1 du projet PERSÉE - Partie 1



Documents pareils
CSMA e Colloque National en Calcul des Structures Mai 2013

Exemple de Plan d Assurance Qualité Projet PAQP simplifié

Le guide du parraina

Les nouvelles orientations politiques du budget 2015 du Gouvernement prévoient

7. Droit fiscal. Calendrier Actualité fiscale 7.2 Contrôle et contentieux fiscal 7.3 Détermination du résultat fiscal.

Bloc 1 : La stabilité, une question d équilibre

A. RENSEIGNEMENTS GÉNÉRAUX. (Adresse civique) 3. Veuillez remplir l'annexe relative aux Sociétés en commandites assurées à la partie E.

Programme GénieArts Î.-P.-É GénieArts

Comment utiliser une banque en France. c 2014 Fabian M. Suchanek

MAISON DE LA RATP 54, quai de la Râpée -189, rue de Bercy Paris. M Gare de Lyon. M Gare de Lyon

Matériau pour greffe MIS Corporation. Al Rights Reserved.

Journée d échanges techniques sur la continuité écologique

Évaluation de performance et optimisation de réseaux IP/MPLS/DiffServ

Guide de correction TD 6

Systèmes à événements discrets : de la simulation à l'analyse temporelle de la décision en agriculture

TVA et Systèmes d Information. Retour d expérience d entreprise. A3F - 26 mars 2015 Hélène Percie du Sert COFELY INEO

au Point Info Famille

Sommaire G-apps : Smart fun for your smartphone!

DEMANDE DE GARANTIE FINANCIÈRE ET PACK RCP

Les ressources du PC

Vu la loi n portant code des assurances prom ulguée par le dahir n du 25 rejeb 1423 (3 octobre 2002), telle qu'elle a été complétée ;

f n (x) = x n e x. T k

Initiation à la virologie Chapitre IV : Diagnostic viral

Corrigé du baccalauréat S Pondichéry 13 avril 2011

Le traitement des expulsions locatives

Découverte Sociale et Patrimoniale

Devenez ingénieur en Génie Informatique et Statistique par la voie de l apprentissage

THÈSE. présentée à. par Nicolas Palix. DOCTEUR Spécialité: INFORMATIQUE. Langages dédiés au développement de services de communications

La transformation et la mutation des immeubles de bureaux

Juin

CENTRE FRANCO-ONTARIEN DE RESSOURCES PÉDAGOGIQUES

Titrages acidobasiques de mélanges contenant une espèce forte et une espèce faible : successifs ou simultanés?

«COMBATTRE LES BLEUS» Ce que signifie le programme social des Conservateurs pour les femmes

Développement de site web dynaùique Dot.NET

Les maisons de santé pluridisciplinaires en Haute-Normandie

C est signé mars 2015 Mutuelle soumise au livre II du Code de la Mutualité - SIREN N DOC 007 B-06-18/02/2015

Garantie des Accidents de la Vie - Protection Juridique des Risques liés à Internet

La lettre du Bureau Asie-Pacifique

DOSSIER DE CANDIDATURE POUR UNE LOCATION

DELIBERATION DU CONSEIL REGIONAL

Florence Jusot, Myriam Khlat, Thierry Rochereau, Catherine Sermet*

Murs coupe-feu dans maisons mitoyennes à une famille

Impôts PLUS ou moins-values

Assurer les proposants donneurs de rein

Bénévole pour quoi? N 20 - Sommaire. N 20 - Déc 08. v d s. f bénévoles désormais, et on s'arrête là pour l'instant.

LE SURENDETTEMENT. a s s e c o. leo lagrange UNION NATIONALE DES ASSOCIATIONS FAMILIALES. union féminine civique et sociale

Focus. Les placements éthiques : entre défis et opportunités. Patrick Barisan. Sintesi a cura di Luisa Crisigiovanni

Le Songe d une nuit d été

Demande de retraite de réversion

J adopte le geste naturel

Lundi 7 mars Trier et réduire ses déchets

Réseau des bibliothèques du Pays de Pamiers Guide du Numérique

Subventions Diverses 2009

PAR. été Les Affaires Plus

Base de données bibliographique. p p. 33. valorisation économique de l'eau potable. energétique et municipales. p.13 - fédérale de.

FORMATIONS 2014 CENTRE EUROPÉEN DE FORMATION À LA PRODUCTION DE FILMS

Produits à base de cellules souches de pomme

Commune de Villars-sur-Glâne Plan directeur du stationnement Bases

Model checking temporisé

Hector Guimard et le fer : inventivité et économie

Les odeurs. é ens M. d e. sur. / janvier-février Informations sur la Qualité de l Air en Picardie

S a i n t - M a l o G R O U P E

UNIVERSITÉ SAVOIE MONT BLANC FRANCE KIT DE SURVIE DE L ÉTUDIANT ETRANGER.

Date de publication : Juillet 2014

BEC-BENCHMARKING (Benchmarks inclus dans le club des Brand Managers) Exemple Veille Stratégique n 1

UNE AVENTVRE DE AGILE & CMMI POTION MAGIQUE OU GRAND FOSSÉ? AGILE TOVLOVSE 2011 I.VI VERSION

CLOUD TROTTER La Vache Noire Sud rue Oscar Roulet Robion - Tél. :

Sommaire. qui sommes-nous. Nos grandes realisations. 4 Madagascar 5 Nous vivons nos valeurs 6 Telma en bref 8 La Gouvernance

Le mandat de Chercheur qualifié du F.R.S.-FNRS

Formula Negator, Outil de négation de formule.

Rassemblement National des Interlocuteurs Academiques TICE Éducation Physique et Sportive - Evry - 20/21 Janvier 2014 TABLETTES TACTILES

programme mars 2015 VENEZ DÉCOUVRIR LES SAVOIR-FAIRE DES ARTISANS D ART À GENÈVE Genève, ville d art

Le nouveau projet Israélo-Palestinien : Terreau pour une culture de paix

Plan directeur des zones 30 km/h

RAPPORT D ACTIVITÉ. Maison de l Emploi Sarthe Nord

CASIO D 20 Mémoire du grand total CASIO ECO Affichage 8, 10 ou 12 chiffres Tous les calculs de bases Calcul de taxes

responsabilité Analyse des décisions civiles, pénales et avis CCI des anesthésistes, obstétriciens et chirurgiens concernant supplément au N o 52

BOULOGNE (92) TRIANGLE ENTRE VERDURE ET BOUCLE DE SEINE INVESTISSEMENT EN NUE-PROPRIÉTÉ IMMOBILIER NEUF

Agricoles LES BONNES RÉSOLUTIONS DU MODEF DES LANDES. le 15 janvier. sommaire. édito. Aides aux fourrages (CG 40) et aide MSA : Dossiers à déposer

ces révolutions qui nous attendent Jeudi 23 octobre 2014 Bien assuré, on peut tout oser. programme

magazine N 61 décembre 2011 Joyeuses fêtes Dossier : Fiscalité locale Vie économique : Animations commerciales Travaux : Plan neige

JOURNAL DE 'JURISPRUDENCE ET DES DEBATS JUDICIAIRES.

Cours de Programmation 2

ÉLECTRONIQUE NUMÉRIQUE

ATTRACTIVITÉ COMMERCIALE DU CENTRE DE L AGGLOMÉRATION Le poids des réseaux et leur stratégie d implantation

Le conseil municipal vous présente ses meilleurs vœux pour 2014

!!!! "#$$%&'(%)!*+!,-+..+! /0-'.1!2+!34!&#5+$6-+!3788!! 9+!8+-!:#-%$!*+.!;)<'+-.!*+!2='&*%.<-'+!'$$#6'2'>-+!.+!<'+&*-0!?+%*'!

nous votre service clients orange.fr > espace client 3970*

Enquête sur le naufrage de Serono, coulé par une gestion aberrante > Biotech Toute l histoire du fleuron déchu de l économie genevoise

SEPTEMBRE 2014 C EST AUSSI LA RENTRÉE DES PETITS ALBIGEOIS ALBI PENDANT LA PREMIÈRE GUERRE MONDIALE QUATRE SPORTIFS SOUS LES FEUX DE LA RAMPE

dobutô-et fes PORMS œiasetvsîme Cl N É - M AG AZ I N E du"'?

PARTIE 1 : La gestion administrative des relations avec les fournisseurs

e x o s CORRIGÉ Chapitre 7. La conduite du diagnostic 1. Bilan fonctionnel par grandes masses Bilan fonctionnel de la société Bastin

LE PROGRAMME DU CASINO Septembre - octobre 2014

- Organisé par - L AUDAX CLUB PARISIEN avec le concours DES VILLES CONTRÔLE et. de l agglomération de SAINT-QUENTIN -EN-YVELINES

Métriques de performance pour les algorithmes et programmes parallèles

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Bord ailes Hélène Pilotte

Chapitre VI- La validation de la composition.

Gestion de casiers en milieu scolaire. Augmenter la disponibilité en mode centralisé ou consignes, avec les casiers de Traka. traka.

Transcription:

Intégration ds outils Prsé (Proposition d architctur) Délivrabl 3.1 du projt PERSÉE - Parti 1 S. Bardin and F. Hrbrtau and M. Sighiranu and G. Sutr and A. Vincnt 2 juin 2005 Participants au group Intégration : A. Griffault, F. Hrbrtau, G. Point, G. Sutr, A. Vincnt (Labri), M. Sighiranu (Liafa) t S. Bardin, A. Finkl, D. Nowak (LSV) 1 Introduction L mbarqumnt d applications informatiqus dans ds systèms critiqus a conduit au dévloppmnt d modèls t d tchniqus d vérification automatiqu dpuis un vingtain d annés [22, 48, 21, 49]. Lorsqu l modèl st fini, ls propriétés à vérifir sont généralmnt décidabls, mais ls algorithms énumératifs usuls s hurtnt au problèm d l xplosion combinatoir d l spac d états. D nombruss tchniqus [25, 46, 18, 47, 34, 40, 43, 33] ont été dévloppés pour contournr c problèm, conduisant à ds outils fficacs [17, 39]. L un d ntr lls [18] a introduit l idé d la vérification symboliqu qui consist à passr d un rprésntation énumérativ à un rprésntation symboliqu pour ls nsmbls d états. Ctt tchniqu a non sulmnt prmis un bond significatif dans la taill ds modèls vérifiabls, mais ll a aussi donné naissanc aux tchniqus d vérification d systèms infinis. La vérification d systèms infinis pos non sulmnt l problèm d la rprésntation d nsmbls infinis d états, mais aussi lur calcul. Or, justmnt, ls systèms infinis font apparaîtr un nouvau problèm : très souvnt, ls problèms d vérification sont indécidabls. Dux approchs sont alors utilisés : soit on s rstrint à ds sous-classs d systèms infinis pour lsqulls l modl-chcking st décidabl [42, 41, 19, 32], soit on utilis ds smi-algorithms [9, 3, 16, 8, 14, 5, 30, 31, 13, 2]. La prmièr approch s bas soit sur la construction d un modèl fini prmttant d conclur [4], soit sur ds tchniqus d troncatur [29] qui prmttnt l xamn d un parti fini du modèl. La prmièr approch s bas sur l dévloppmnt d méthods capturant, partillmnt t évntullmnt d façon approché, ls causs d l indécidabilité, comm l widning [27, 3, 5] ou ls méthods d accélération [9, 30, 31, 13, 2]. Cs tchniqus ont prmis l élaboration d outils [12, 38, 6, 11] qui ont montré lur prtinnc sur d nombrux xmpls [26, 31, 15]. Or, cs méthods ont été dévloppés pour la vérification d modèls homogèns, bin souvnt ds automats finis étndus avc ds variabls d un typ fixé (par xmpl, ds fils ou ds compturs). Mais la plupart ds systèms réls sont naturllmnt plus richs : ainsi, un protocol d communication, comm l BRP d Philips, utilis ds fils pour l nvoi t la récption d mssags, ds horlogs pour détctr ls rrurs (timout), t ds compturs pour rspctr ls nombrs maximaux d réḿissions spécifiés. Dans l cadr du projt Prsé, nous souhaitons dévloppr ds tchniqus pour cs systèms hétérogèns. D tlls tchniqus ont été miss n œuvr dans l cadr d l outil TRX [6], mais nous souhaitons allr plus loin : Il apparaît tout d abord qu cs tchniqus sont spécialisés : lls n sont réllmnt fficacs qu dans un cadr précis. Pour l analys d un modèl présntant potntillmnt ds situations divrss, il st donc util d disposr d plusiurs tchniqus qu l on appliqu là où lls sont ls plus adaptés. 1

La difficulté à rprésntr ds spacs d états dépnd ds opérations qu l on réalis sur cuxci. Or, dans un mêm modèl crtains donnés sont complxs à rprésntr, t d autrs simpls. Il st donc bénéfiqu d disposr d un hétérogénéité au nivau ds rprésntations symboliqus afin d augmntr l fficacité ds algorithms d vérification. La comparaison t la validation d nouvlls tchniqus sont rndus difficils par ls spécificités ds différnts outils, sans qu cla n soit intrinsèqu au problèm considéré. Nous souhaitons donc disposr d un cadr prmttant d ls tstr t d ls mttr n œuvr. Dans l cadr du projt Prsé, nous dévloppons par aillurs un approch complémntair à ctt attaqu frontal ds modèls hétérogèns : l abstraction automatiqu. En fft, la complxité ds modèls issus d applications rélls st bin souvnt hors d porté d nos tchniqus d analys. Mais ctt complxité st n mêm tmps xcssiv : l information qu ll apport n st pas util pour tl ou tl but d vérification. Par xmpl, dans l cas d la validation d un protocol, on put imaginr qu ls variabls horlogs n influnt pas sur la bornitud ds fils d communication, contrairmnt aux variabls fils t compturs, t qu lls puvnt êtr «rtirés» du modèl tout n prmttant d conclur sur c problèm. L but st donc d vérifir ds propriétés du modèl concrt sur un abstraction d clui-ci, consrvativ vis-à-vis ds propriétés considérés. Dans l cadr d l intrprétation abstrait [27], ds tchniqus d construction automatiqu d modèls abstraits comm l abstraction d donnés ou l abstraction par prédicats [45, 23] ont été invntés, puis miss n œuvr avc succès [37, 10]. Cs méthods d abstraction s basnt sur la production d un prmir modèl abstrait sur lqul on tnt d vérifir la propriété. Soit la satisfaction ou l insatisfaction d la propriété sur l modèl abstrait s transmt au modèl concrt, soit ls approximations introduits n prmttnt pas l transfrt du résultat d l abstrait vrs l concrt. Il st alors nécssair d raffinr l modèl : n affinant ls critèrs d abstraction (par xmpl, ls prédicats) utilisés lors d la construction du prmir modèl abstrait. On obtint ainsi un scond modèl abstrait, mais plus précis qu l prmir, t on continu la boucl abstraction-vérification-raffinmnt jusqu à pouvoir prouvr la satisfaction ou l insatisfaction d la propriété. Notr intrêt st donc d utilisr conjointmnt ls dux méthods [24, 1]. Du point d vu d l outillag, la vérification symboliqu t l abstraction automatiqu présntnt ds bsoins similairs : la rprésntation t l calcul d nsmbls d états infinis, t l évaluation ds opérations du modèl sur cux-ci. Nous nous somms donc fixés l but d dévloppr un architctur pour la vérification t l abstraction d modèls hétérogèns, qui prnn n compt cs bsoins. Ell doit donc êtr : Génériqu : l hétérogénéité ds systèms fait qu nous n pouvons pas nous rstrindr à un modèl particulir, mais qu nous dvons choisir un formalism ouvrt prmttant la modélisation d applications divrss. Modulair : afin d pouvoir comparr ls tchniqus t bénéficir d lurs avantags conjointmnt, il st nécssair d trouvr un cadr dans lqul cs tchniqus puvnt collaborr. Ainsi, suivant la propriété à vérifir, on prévilégira tll ou tll tchniqu d abstraction, t pndant la phas d vérification, on utilisra un prmièr tchniqu sur un parti du modèl t un scond tchniqu sur l rst du modèl afin d pouvoir conclur. L absnc d généricité t d modularité dans ls outils d modl-chcking usuls provint souvnt d la rstriction d lur utilisation (prévu) à un domain d application étroit. En fft, l langag d spécification limit ls modèls qu l on put soumttr à la vérification. Par xmpl, Promla/Spin n prmttnt pas d modélisr l tmps, ni ds canaux d communication non bornés. L manqu d modularité st du à un trop grand intégration, allant jusqu à la fusion, ntr ls composants logicils. Ell provint souvnt du fait qu l concptur a chrché à obtnir un outil ntièrmnt automatiqu, donc sans xprtis prmttant d choisir la méthod la miux adapté. Cs aspcts révèlnt un sul t mêm point : la séparation ntr syntax t sémantiqu dans ls outils xistants st très faibl t conduit à un outil figé. Traditionllmnt, un modl-chckr s compos d 3 partis : l formalism d modélisation, l modul d rprésntation symboliqu (rprésntation d nsmbls d états t opérations sur cuxci), t l algorithm d modl-chcking (parcours du graph sémantiqu, huristiqus, tc.). Notr proposition consist à isolr cs 3 partis t à introduir uniqumnt ls intractions nécssairs 2

ntr lls. La figur 1 détaill notr architctur. La généricité st obtnu d un part au nivau du modèl n prmttant l ajout d nouvaux typs t opératurs via ds signaturs qui sont décrits n sction 2. Ell st obtnu d autr part au nivau ds rprésntations symboliqus : lls n sont pas fixés t il st donc possibl d n ajoutr autant qu nécssair tant qu ls intrfacs sont rspéctés, comm indiqué n sction 3. L lin ntr la syntax (l modèl) t la sémantiqu (la rprésntation symboliqu) s fait au nivau ds variabls : qull rprésntation pour qull variabl? C choix fixé lors d la vérification, st décrit n sction 4. La modularité s rtrouv au nivau ds rprésntations symboliqus qui son éclatés n trois aspcts : la région qui corrspond à la structur d donnés muni ds opérations nsmblists usulls, la rprésntation symboliqu qui st un région muni d un sémantiqu, t nfin, l accélération (au sns larg : accélération xact, intrpolation, widning, tc) st ll aussi construit au-dssus ds régions. Il st donc aisé d rmplacr un rprésntation symboliqu par un autr tout n consrvant l mêm algorithm d modl-chcking pour pu qu ls intrfacs soint rspctés. D mêm, rmplacr un accélération par un autr n nécssit pas d changr la région ou la rprésntation symboliqu. La sction 3 décrit cs trois ntités, ainsi qu la façon dont sont évalués ls opérations sur ls régions, t commnt lls sont composés pour obtnir d autrs régions. FDS signaturs RS pr post rlbin sig int : + : int * int > int... nd control modl AltaRica R MC Acc pr* post* rlbin rprsntation modl modl chcking guid & calcul Fig. 1 Architctur d l outil Prsé. 2 Formalism d dscription L formalism AltaRica [7, 44] a été conçu au LaBRI pour prmttr d utilisr un mêm dscription d un systèm avc plusiurs outils d analys. Il st par xmpl possibl à partir d la dscription AltaRica d un modèl d l simulr, d générr ds arbrs d défaillancs, ou d vérifir qu il satisfait ds propriétés logiqus. Plusiurs organisms ont participé à l élaboration du formalism t du langag associé, no- 3

tammnt l LaBRI t aussi ds ntrpriss privés comm IXI (maintnant GFI Consulting) ou Dassault Systèms. Ctt collaboration a été fructuus t nous a convaincus d l importanc ds dux propriétés suivants d AltaRica : un sémantiqu clairmnt défini : on put associr à tout dscription AltaRica l systèm d transitions qui lui corrspond, un langag dont la syntax st proprmnt spécifié. L but d cs dux points étant qu ls outils autour d AltaRica, dévloppés par ls divrs partnairs, puissnt accptr ls mêms dscriptions t qu lurs résultats puissnt êtr mis n corrélation. D nombruss étuds comm par xmpl [35, 20, 36] ont été réalisés n utilisant l formalism AltaRica, t c formalism st largmnt utilisé par nos partnairs industrils. Nous allons dans ctt sction présntr ls concpts d AltaRica, t nous utilisrons ds xmpls écrits dans l langag AltaRica. La syntax du langag st défini n annx t sa sémantiqu formll sont définis dans la thès d Gérald Point [44]. 2.1 Décrir ls comportmnts par contraints Nous donnons tout d suit un xmpl simpl qui prmt d montrr commnt on décrit un automat à contraints n AltaRica. nod xmpl stat x : [ 0, 8 ]; vnt ; trans x <= 2 - -> x := x + 1; x >= 3 - -> x := x + 2; init x := 0; don L spac d états st donné par ls valuations possibls ds variabls d état (ici, x, qui put prndr 9 valurs différnts). A l xcption d l événmnt ε qu nous décrirons plus loin, tous ls événmnts doivnt êtr nommés, t nous nous donnons donc ici un événmnt. Dans la sction trans sont énumérés ls dits macro-transitions (2 dans l xmpl). Afin d xpliqur l comportmnt d modèls AltaRica, nous donnrons l équivalnt d cs modèls sous form d systèms d transitions. 2.1.1 Sémantiqu d un macro-transition Chaqu macro-transition put donnr plusiurs transitions dans la sémantiqu du nœud. Voici commnt s ffctu l passag d la macro-transition à sa sémantiqu sur l xmpl cidssus. gard mis à jour x <= 2 - -> x := x + 1 ; nom d l événmnt 4

La gard spécifi l nsmbl ds configurations qui puvnt potntillmnt êtr sourc d un transition ngndré par la macro-transition. Dans c cas-ci, il s agit ds valuations pour lsqulls x vaut 0, 1, ou 2. L nom d l événmnt st clui qui sra utilisé pour chaqu transition ngndré. Pour chaqu configuration d départ, ls variabls d état sont affctés par la mis à jour, t cla donn l nsmbl ds configurations qu il st possibl d attindr à partir d ctt configuration. Voici donc ls transitions qu l on obtint pour la prmièr t la duxièm macro-transitions : x = 0 x = 1 x = 1 x = 2 x = 2 x = 3 x = 3 x = 5 x = 4 x = 6 x = 5 x = 7 x = 6 x = 8 Et nous obtnons graphiqumnt l systèm d transitions suivant après idntification ds configurations égals. x = 0 x = 1 x = 2 x = 3 x = 5 x = 7 x = 4 x = 6 x = 8 D plus, ds ε-transitions n apparaissant pas ici font parti d la sémantiqu du modèl, sous la form d boucls sur chaqu configuration. Notz qu dpuis l état initial x = 0, la composant où x vaut 4, 6, ou 8 n st pas accssibl. 2.1.2 Non-détrminism Si ls gards d dux macro-transitions ayant l mêm nom d événmnt sont d intrsction non vid, plusiurs transitions différnts puvnt êtr tirés lorsqu ct événmnt survint dans un configuration appartnant à l intrsction ds dux gards. L systèm put ngndrr ou accptr ls divrs comportmnts indifférmmnt : c st du non-détrminism. L non-détrminism st util pour modélisr ds comportmnts dont on n sait pas a priori lqul aura liu. En autorisant ls dux comportmnts d manièr non-détrminist, on st sûr qu l énumération d tous ls comportmnts du systèm ls contindra tous. Voici un légèr modification d la gard d la duxièm macro-transition d l xmpl précédnt. nod xmpl stat x : [ 0, 8 ]; vnt ; trans x <= 2 - -> x := x + 1; x >= 2 - -> x := x + 2; init x := 0; don 5

On obtint alors l systèm d transitions suivant : x = 0 x = 1 x = 2 x = 3 x = 5 x = 7 x = 4 x = 6 x = 8 On voit ici qu dans la configuration x = 2, l systèm put passr indifférmmnt à la configuration x = 3 ou à la configuration x = 4 par un événmnt. 2.1.3 Assrtion t contraints d domains Il st possibl d spécifir un contraint applé assrtion qui doit êtr satisfait par tout configuration du systèm. Nous pouvons par xmpl intrdir la configuration dans laqull x vaut 3. Il suffit pour cla d ajoutr à notr nœud xmpl précédnt l champ : assrt x!= 3; Cci donnra l systèm d transitions suivant : x = 0 x = 1 x = 2 x = 5 x = 7 x = 4 x = 6 x = 8 L assrtion contint aussi implicitmnt ls contraints d domains ds variabls du nœud. Ainsi, dans ls xmpls précédnts, nous n avons pas u bsoin d précisr dans la gard d la duxièm macro-transition qu ll n était possibl qu si x <= 6. Du fait qu ls dux configurations x = 7 t x = 8 mènraint à ds valurs d x hors d son domain, cs transitions n xistnt pas dans la sémantiqu du modèl. L fait qu la valur ds variabls après tirag d un transition puiss affctr la tirabilité d la transition st souvnt applé tst d post-condition. L assrtion dans sa totalité (t pas sulmnt ls contraints d domains) srt à évalur la post-condition. 2.2 Elémnts introduits pour la hiérarchi AltaRica prmt d réutilisr ds nœuds à l intériur d autrs nœuds. Nous allons ici présntr dux concpts qui, bin qu ayant déjà un sns dans un nœud simpl, prnnnt tout lur sns lorsqu on souhait modélisr un systèm qui contint ds sous-nœuds. En accord avc [44], nous utilisrons parfois l trm composant pour désignr un nœud qui n contint pas d sous-nœud. 2.2.1 Variabls d flux/variabls d état Il xist dux sorts d variabls dans un nœud AltaRica : ls variabls d état t ls variabls d flux. Ls variabls d état rprésntnt l état du systèm, lls puvnt êtr utilisés à tout ndroit où un variabl put êtr utilisé : dans un gard, dans l affctation qui suit un transition, ou dans un prédicat global applé assrtion qui contraint ls valurs qu puvnt prndr ls variabls. 6

Ls variabls d flux sont comm ls variabls d état, à cci près qu lls n font pas parti d l état du systèm : lls rprésntnt ds valurs auxiliairs qui sont uniqumnt n rlation avc l état courant grâc à l assrtion. Ls variabls d flux n puvnt pas êtr affctés xplicitmnt lors du franchissmnt d un transition. Ls variabls d flux ont dux rôls possibls : lls prmttnt d xtrair d l information du systèm, d plus haut nivau qu simplmnt l état courant du systèm, par xmpl pour abstrair d l information prtinnt lls prmttnt aussi d contraindr l état du systèm puisqu lls apparaissnt dans l assrtion, qui st un prédicat qu touts ls configurations du systèm doivnt satisfair. L intérêt principal d cs variabls d flux st d prmttr la communication d information ntr nœuds. (cf. sous-sction 2.3.2, pag 10) Il st tmps d introduir l vocabulair adéquat : on appll état d un modèl AltaRica un valuation d ss variabls d état, t configuration un valuation d touts ss variabls, y compris ls variabls d flux. 2.2.2 Ls ε-transitions Comm nous l avons laissé ntndr un pu plus haut dans l xmpl, ds transitions ε (c stà-dir sans nom) sont ajoutés à tous ls états sous la form d boucls. On put déjà notr qu cs ε-transitions n puvnt pas êtr spécifiés xplicitmnt dans un modèl AltaRica. Ells font uniqumnt parti d la sémantiqu du modèl. Lur rôl st d assurr qu un nœud n bloqu jamais : pour un configuration donné, il st toujours possibl d tirr un ε-transition sortant. Ctt particularité st très util lors d la composition hiérarchiqu d nœuds AltaRica, comm nous l vrrons dans la sction suivant. Touts ls configurations corrspondant au mêm état du systèm sont rliés par ds ε- transitions. En particulir, à tout configuration st associé un boucl ε. Ls variabls d flux puvnt toujours changr d valur lors du tirag d un transition, t ls ε-transitions n font pas xcption. 2.2.3 Un xmpl Afin d éclaircir l intraction ntr ls variabls d flux t ls ε-transitions, nous allons prndr l xmpl d un sall qui put contnir jusqu à cinq prsonns, t dont l battant d port prmt à un prsonn d s dissimulr (voir la figur 2). Fnêtr Fig. 2 Sall avc vu partill sur l intériur Un prsonn obsrvant la sall dpuis l xtériur par la fnêtr n put jamais savoir s il y a un prsonn drrièr l battant d la port. A tout instant, l nombr d prsonns qu ll obsrvra dans la sall sra donc faux d au plus un prsonn par défaut. 7

L état d la sall st clairmnt constitué du nombr xact d prsonns présnts t nous nous donnons un variabl d flux pour rprésntr la quantité d prsonns obsrvabls d l xtériur d la sall. Cci s traduit aisémnt n AltaRica, cf. figur 3. nod SallAvcRcoin stat prsonns : [ 0, 5 ]; flow obsrvs : [ 0, 5 ]; vnt ntr, sort; trans prsonns < 5 - ntr -> prsonns := prsonns + 1; prsonns > 0 - sort -> prsonns := prsonns - 1; assrt obsrvs <= prsonns & obsrvs >= (prsonns - 1); don Fig. 3 Modèl AltaRica d la sall d la figur 2 Nous rprésntons ci-dssous l graph ds configurations d c nœud. Ls événmnts ntr t sort n sont pas écrits pour qu l graph rst lisibl mais lurs transitions sont rprésntés n ligns pointillés : ls transitions dscndants corrspondnt à l événmnt ntr, ls transitions montants à l événmnt sort. On put obsrvr qu ls ε-transitions consrvnt bin ls états, mais laissnt ls flux librs à l intériur d lurs contraints. prsonns = 0, obsrvs = 0 prsonns = 1, obsrvs = 1 prsonns = 1, obsrvs = 0 prsonns = 2, obsrvs = 2 prsonns = 2, obsrvs = 1 prsonns = 3, obsrvs = 3 prsonns = 3, obsrvs = 2 prsonns = 4, obsrvs = 4 prsonns = 4, obsrvs = 3 prsonns = 5, obsrvs = 5 prsonns = 5, obsrvs = 4 8

2.3 Composition hiérarchiqu L formalism AltaRica prmt d utilisr un nœud AltaRica à l intériur d un autr, ou d fair communiqur plusiurs nœuds ntr ux. Dans c drnir cas, il st toujours nécssair qu un nœud nglob ls nœuds communiquants : c nœud jou l rôl d contrôlur. Un nœud s compos donc d un parti local t d ss sous-nœuds potntils. nœud assrtion synchros sous-nœud 1 sous-nœud 2 Ls comportmnts d la parti local du nœud t ls sous-nœuds sont liés par l assrtion t ls synchronisations d événmnts, afin d décrir l comportmnt du nœud dans sa globalité. Notz qu ls dux sous-nœuds n ont pas connaissanc d l xistnc l un d l autr. La communication qui s établit ntr ux st contrôlé par lurs ancêtrs communs. 2.3.1 Sémantiqu d un nœud sans synchronisations Nous allons d abord décrir commnt un nœud s comport lorsqu aucun intraction n st imposé ntr lui t ss sous-nœuds. Chaqu configuration du nœud st pris dans ls valuations d la réunion ds variabls du nœud t d ss sous-nœuds. Ctt réunion st disjoint t on utilis ls noms ds sous-nœuds comm préfixs pour nommr ls variabls afin d ls distingur. La variabl x du sous-nœud N st nommé N.x lorsqu on vut y fair référnc. Vcturs d événmnts Un transition st désormais étiquté par un vctur d événmnts. Chaqu vctur d événmnts st constitué d un ds événmnts du nœud local t d un événmnt par sous-nœud : un vctur d événmnts cod donc précisémnt ls événmnts d chacun ds composants apparaissant dans l nœud, qui sront activés si c vctur l st. En l absnc d autr contraint, chacun ds événmnts (local ou apparaissant dans un sousnœud dirct) constitu un vctur d événmnts où tous ls autrs élémnts du vctur sont l événmnt ε du nœud corrspodant. Dans c contxt, dux événmnts nommés n puvnt pas avoir liu n mêm tmps. On put parlr d asynchronism fort. Exmpl Nous définissons dans la figur 4 un nœud Simpl qui contint un variabl boolénn qui pass d l état faux à l état vrai sur un événmnt. L nœud Simpl a donc dux événmnts : l événmnt qui chang son état, t l événmnt ε qui boucl sur chaqu configuration (qui n sont ici qu ds états). L nœud PasDSynchro contint dux sous-nœuds N1 t N2 qui sont ds nœuds Simpl. Comm il n définit pas d événmnt propr, son sul événmnt local st ε. Ss vcturs d événmnts sont donc <ε, N1.ε, N2.ε>, <ε, N1., N2.ε>, t <ε, N1.ε, N2.>. 9

nod Simpl stat v : bool; vnt ; trans ~v - -> v := tru; don nod PasDSynchro sub N1, N2 : Simpl; don Fig. 4 Nœuds Simpl t PasDSynchro ε ~v v ε Fig. 5 Sémantiqu du nœud Simpl 2.3.2 Synchronisation par assrtion Il st possibl dans l assrtion d un nœud d contraindr à la fois ls variabls locals au nœud, t ls variabls d ss sous-nœuds. Grâc à cla, il st par xmpl possibl d partagr ds variabls ntr nœuds : il suffit d contraindr dux variabls à êtr égals (figur 7). L assrtion n put qu intrdir crtains configurations, ainsi qu par conséqunt ls transitions qui n partnt ou qui y arrivnt. Tout autr contraint st accpté, t parmi ls utilisations possibls, on put par xmpl contraindr un nœud prévu d manièr génériqu à limitr ss variabls dans un crtain domain, c qui st illustré par la figur 8. 2.3.3 Synchronisation d événmnts L autr mécanism d communication disponibl n AltaRica st la synchronisation d événmnts. Ell prmt d précisr ls vcturs d événmnts qu l on souhait gardr dans l nœud. Cs vcturs sont applés vcturs d synchronisation. Chaqu vctur fait apparaîtr au plus un événmnt par sous-nœud ainsi qu au plus un événmnt du nœud local, t st complété par ds événmnts ε. Dès qu un événmnt nommé d un sous-nœud apparaît dans un vctur d synchronisation, ct événmnt n sra plus synchronisé avc l événmnt ε du nœud local, comm c st l cas n l absnc d synchronisation. Voyons sur notr xmpl simpl c qui s pass lorsqu on synchronis ls dux événmnts nommés ds dux sous-nœuds (figur 9). Comm on put l voir n comparant ls figurs 6 (pag 11) t 10, ls vcturs<ε, N1., N2.ε> t <ε, N1.ε, N2.> n apparaissnt plus, puisqu rspctivmnt N1. t N2. sont xplicitmnt cités dans l vctur d synchronisation. Il st d aillurs intérssant d constatr sur ct xmpl qu l on aurait obtnu xactmnt la mêm sémantiqu si au liu d synchronisr ls événmnts N1. t N2. on avait intrdit ls dux configurations où N1.v t N2.v sont différnts n imposant l égalité dans l assrtion (assrt N1.v = N2.v). Bin qu ancdotiqu sur ct xmpl, ctt dualité ntr contraint sur ls configurations t contraint sur ls vcturs d événmnts st un ds caractéristiqus importants d AltaRica. Ell st l témoin du fait qu l langag AltaRica st un langag d haut nivau, qui prmt d fair ds choix d modélisation différnts pour un mêm systèm. 10

<ε, N1.ε, N2.ε> ~N1.v, ~N2.v <ε, N1., N2.ε> N1.v, ~N2.v <ε, N1.ε, N2.ε> <ε, N1.ε, N2.> <ε, N1.ε, N2.> <ε, N1.ε, N2.ε> ~N1.v, N2.v <ε, N1., N2.ε> N1.v, N2.v <ε, N1.ε, N2.ε> nœud Fig. 6 Sémantiqu du nœud PasDSynchro assrt N1.x = N2.x synchros N1 N2 flow x : X flow x : X Fig. 7 Partag d variabls 2.4 Notion d visibilité Jusqu ici, nous avons montré plusiurs xmpls d assrtions t d contraints d événmnts qui lint ds nœuds différnts ntr ux. Cci n st possibl qu à la condidition qu ls élémnts (variabls ou événmnts) utilisés dans cs liaisons soint visibls dpuis un autr nœud. Cs propriétés d visibilité intrvinnnt n amont d la sémantiqu : lls sont un aspct langag d AltaRica. Ls contraints d visibilité intrdisnt l utilisation d crtains variabls dans crtains nœuds, d manièr purmnt syntaxiqu. Ls trois propriétés d visibilité disponibls n AltaRica sont ls suivants : privé, parnt, public. Un élémnt privé n st accssibl qu dans l nœud où il st déclaré, un élémnt ayant la visibilité parnt sra n plus accssibl dans tout nœud qui l utilis comm sous-nœud. Enfin, un élémnt public st visibl par tous ls nœuds qui sont au-dssus d lui dans la hiérarchi AltaRica induit par la rlation d utilisation. Il y a un analogi évidnt avc ls langags d programmation orintés objt puisqu il s agit d répondr au mêm problèm d autorisation d accès. L langag C++ propos ls trois qualificaturs d visibilité privé, protégé, t public. Nous n avons pas consrvé l trm protégé car il corrspond n C++ à un notion d héritag alors qu il corrspond n AltaRica à un notion d utilisation. Du fait qu il n xist pas d mécanism d passag d paramètrs n AltaRica, t donc à plus fort raison d mécanism prmttant d passr n paramètr un nœud AltaRica à un autr n dhors d la ré-utilisation statiqu d un nœud, un élémnt public sra visibl l long du chmin qui rmont d parnt n parnt, t n sra jamais visibl à l xtériur d c chmin. Cs règls sont résumés graphiqumnt dans la figur 11. Ls nœuds AltaRica sont symbolisés par ds rctangls, t la rlation d utilisation d un nœud par ls arêts. Ls nœuds dans lsquls l élémnt x st visibl sont ncadrés par un doubl cadr. L élmnt x put êtr indifférmmnt 11

nœud stat max : [0, 10] assrt N.x <= max synchros N flow x : [0, 10] nod SynchroSimpl sub N1, N2 : Simpl sync <N1., N2.> don Fig. 8 Contraint sur un sous-variabl Fig. 9 L nœud SynchroSimpl un variabl d état ou d flux, ou un événmnt à l xcption ds événmnts publics qui sont contraints par un règl supplémntair. 2.4.1 L cas particulir ds événmnts publics Ls événmnts publics nécssitnt d généralisr un pu la notion d synchronisation d événmnts qu nous avons présnté, t du point d vu d la visibilité ils sont rstrints d la manièr suivant : dès qu un événmnt public st synchronisé dans un nœud, il css d êtr public. Un schéma xplicatif st donné par la figur 12. 2.4.2 Visibilités comm réécritur syntaxiqu L fait qu un variabl d un sous-nœud A soit publiqu ou visibl du nœud parnt put s voir comm un prmission accordé d accédr à ctt variabl dans l sous-nœud, mais put aussi s xpliqur n imaginant qu l on rmont un imag d ctt variabl dans l nœud parnt. C st ctt vision qu nous allons adoptr ici car ll prmt d xpliqur sans ambiguïté ls règls d visibilité t d voir clairmnt l impact qu ont ls événmnts publics sur la sémantiqu du nœud parnt. 12

<ε, N1.ε, N2.ε> ~N1.v, ~N2.v <ε, N1., N2.> N1.v, N2.v <ε, N1.ε, N2.ε> Fig. 10 Sémantiqu du nœud SynchroSimpl x : privat x : parnt x : public Fig. 11 Ls trois qualificatifs d visibilité Objt dans l sous-nœud A stat s : bool : privat; flow f : bool : privat; vnt : privat; stat s : bool : parnt; flow f : bool : parnt; vnt : parnt; stat s : bool : public; flow f : bool : public; vnt : public; vnt : public; Incarnation d l objt dans l nœud parnt Rin d visibl flow s A : bool : privat; assrt s A = A.s; flow f A : bool : privat; assrt f A = A.f; vnt A : privat; flow s A : bool : public; assrt s A = A.s; flow f A : bool : public; assrt f A = A.f; si A. n st pas synchronisé dans c nœud vnt A : public; sync < A, A.>; trans tru - A ->; si A. st synchronisé dans c nœud vnt A : privat; 13

sync <..., X.Y.,...> vnt : public Fig. 12 Propagation ds événmnts publics 2.4.3 Visibilité par défaut t compatibilité ascndant L langag AltaRica prmt d spécifir ds qualificatifs d visibilité. Ls visibilités par défaut corrspondnt à l ancinn vrsion du langag afin d présrvr la compatibilité ascndant pour ls modèls déjà écrits. Dans la précédnt vrsion du langag, aucun élémnt n était public, ls variabls d état étaint privés, t ls variabls d flux t ls événmnts étaint visibls ds parnts. L point d départ d ctt xtnsion a été l bsoin xprimé par ls industrils d rndr ls panns ds fuills visibls jusqu à la racin d la hiérarchi. Comm ls concpts privé/parnt xistaint déjà sans êtr nommés xplicitmnt dans ls modèls, c st tout naturllmnt qu cs trois qualificatifs ont été introduits t qu lur sns a été défini. Voici un tablau récapitulatif ds règls d visibilité par défaut : Typ d objt Etat Flux Evénmnt Visibilité par défaut privé parnt parnt 2.5 La spécification d nouvaux typs 2.5.1 Ls signaturs Pour nos bsoins d généricité, nous souhaitons étndr l formalism AltaRica d façon à c qu il prmtt la définition d nouvaux typs t ds opérations associés. En fft, AltaRica offr principalmnt un sul typ d donnés : ls énumérations finis. Ls opérations prmiss dépndnt d la déclaration d la variabl : si cll-ci st boolénn alors ls opératurs classiqus (conjonction, disjonction, négation, tc) sont prmis, si ll st ntièr, alors la comparaison, la somm, la négation, tc, sont autorisés. Nous proposons donc un mécanism prmttant d définir d nouvaux typs à bas d signaturs. Nous pouvons par xmpl ajoutr un typ fil qui prmt d modélisr ls communications ntr procssus : 14

domain msg = { SND, ACK, NACK, END }; sig fifo mpty : -> fifo is_mpty : fifo -> bool top : fifo -> msg push : fifo * msg -> fifo pop : fifo -> fifo gis Ctt signatur définit ls opérations classiqus sur ls fils FIFO. Avc c mécanism, l formalism AltaRica prmt d modélisr la plupart d systèms dont l nombr d procssus st borné. Notons au passag qu il st aussi désormais possibl d spécifir ds typs infinis. D autrs xmpls d signaturs sont présntés n annx A (pag 25). Nous considérons donc qu un modèl Prsé st composé d un nsmbl d signaturs t d un modèl AltaRica. 2.5.2 Syntaxiqu t sémantiqu ds modèls Prsé L ajout ds signaturs au formalism AltaRica pos ds difficultés lors d l analys syntaxiqu. En fft, l nsmbl ds typs t ds opératurs du langag n st pas connu a priori. Par xmpl, pour la transition suivant : (! is mpty(f)) && (top(f)!= m) - -> f := push(f, m) is mpty, push t!= n sont pas ds opératurs du langag : ils sont introduits par la signatur fifo d la sction précédnt. La solution consist donc à ls traitr comm ds idntificaturs, sans lur associr d sémantiqu particulièr (d la mêm manièr qu ls noms d fonctions sont gérés par un compilatur C par xmpl). La figur 13 présnt l arbr d analys syntaxiqu obtnu pour la transition précédnt. La sémantiqu st donné par ls rprésntations symboliqus comm il st décrit n sction 3.1. Nous obtnons ainsi un séparation fort ntr syntax : un modèl AltaRica paramétré par ds signaturs, t sémantiqu : l systèm d transitions symboliqu construit n sction 3. transition gard événmnt action && :=!!= f push is mpty top m f m f f Fig. 13 Arbr d analys syntaxiqu pour un transition. 15

L affctation d un sémantiqu donné à un opératur s fait par l attribution d un rprésntation symboliqu à chaqu variabl du modèl. Ainsi, pour la transition précédnt, la sémantiqu d top st fixé par l choix d la rprésntation symboliqu pour f dans l trm top(f). L fait d associr un rprésntation à chaqu variabl t non pas à chaqu typ offr un plus grand souplss dans la stratégi d vérification du modèl. Notons qu cla prmt par xmpl qu un mêm modèl soit intrprété avc ds fils d communication parfaits, ou non fiabls, ou ncor, qu la sémantiqu du tmps soit discrèt ou continu, simplmnt n changant l affctation d un rprésntation symboliqu aux variabls. C choix st réalisé par l utilisatur via ls mécanisms d intraction décrits n sction 4. La rprésntation symboliqu rçoit, lors d un calcul d pr ou post, un région d un part, t un arbr syntaxiqu comm clui décrit n figur 13. L évaluation d l opération st décrit n sction 3.1. Un outil d vérification d typag s basant sur ls signaturs sra inclus à notr architctur Prsé. Il sra capabl, à partir d un arbr syntaxiqu comm clui d la figur 13 d vérifir qu ls opératurs définis dans ls signaturs sont applés avc l bon nombr d paramètrs, qui satisfont ls contraints d typags. D mêm, pour ls affctations comm f := push(f,m), l modul d vérification d typ s assur qu la valur rnvoyé par push t l typ d f coïncidnt. 3 Calcul symboliqu Nous précisons dans ctt sction ls notions d région, d rprésntation symboliqu, t d accélération. Nous prnons dans la suit d ctt sction un point d vu abstrait, théoriqu, afin d n pas surchargr la présntation par ds détails d syntax ou d implantation. 3.1 Opérations t sémantiqu associé Comm nous l avons dit n sction 2.5.2, l évaluation ds opérations par ls fonctions pr ou post consist à rcvoir un arbr d analys syntaxiqu comm clui d la figur 13 (pag 15), à associr un sémantiqu à chaqu opératur n fonction d la rprésntation associé aux variabls, t nfin, à évalur l résultat d l opération. Nous décrivons maintnant c procssus. Nous considérons ls opérations sous un form abstrait, non structuré, t sans aucun sucr syntaxiqu. Ls opérations sront simplmnt ls élémnts d un alphabt noté Op. Cla s traduit par la signatur d modul (OCaml) suivant : modul Opration : sig typ t (* typ for all oprations *) nd On s attnd naturllmnt à c qu l intrprétation d un opération tinn compt d la valur ds variabls, afin : d autorisr ou non l xécution d l opération (gard), t d modifir évntullmnt la valur ds variabls (affctation). Aussi utilisrons-nous la définition suivant pour donnr un signification aux opérations. Afin d simplifir la présntation, nous supposons dans la suit d ctt sction qu touts ls variabls prnnnt lur valurs dans l mêm domain d intrprétation. Un sémantiqu d un alphabt d opérations Op st un triplt = (V, D, δ), où : V st un nsmbl fini d variabls, t D st un domain d intrprétation pour ls variabls, t δ st un fonction total d Op dans P(D V D V ). La fonction δ associ à chaqu opération un rlation binair sur D V, prmttant d décrir l fft d un opération sur ls variabls. Nous étndons naturllmnt la fonction δ : Op P(D V 16

D V ) aux séquncs d opérations σ Op, par la définition récursiv suivant : { δ(ε) = {( d, d ) d D V } δ(op σ) = {( d, d ) d D V, ( d, d ) δ(op) t ( d, d ) δ(σ)} Nous notons post t pr ls fonctions totals post, pr : P(D V ) Op P(D V ) d succssurs t d prédécssur définis par : post(x, σ) = { d D V d X, ( d, d ) δ(σ)} pr(x, σ) = { d D V d X, ( d, d ) δ(σ)} Exmpl. L nsmbl d opérations Op = {x =? 0,y y +2}, où x t y sont dux compturs, a pour sémantiqu naturll (N, {x, y}, δ), où la fonction δ : Op P(N {x,y} N {x,y} ) st défini par : ( d, d ) δ(x =? 0) si d [x] = 0 t d = d ( d, d ) δ(y y +2) si d [x] = d [x] t d [y] = d [y] + 2 Nous considérons maintnant, pour l rst d ctt sction, un alphabt d opérations fixé Op muni d un sémantiqu fixé = (V, D, δ). Un élémnt d D V st applé un valuation (ds variabls). 3.2 Structur d régions Nous utilisons ds régions afin d rprésntr symboliqumnt ds nsmbls potntillmnt infinis d valuations. Intuitivmnt, chaqu région st un sous-nsmbl d D V, t l nsmbl ds régions doit (1) contnir t D V, t (2) êtr clos par union t intrsction. Plus précisémnt, nous applons région l ncodag (par xmpl sous la form d un formul) d un tl sous-nsmbl d D V. La définition suivant tint compt du fait qu dux régions puvnt rprésntr l mêm sous-nsmbl d D V. Un structur d régions pour (D, V ) st un 7-uplt (R,,,,,, ) où : R st un nsmbl d régions, dont l intrprétation st donné par : R P(D V ), la rlation binair R R d inclusion symboliqu ntr régions satisfait : r r ssi r r (1) ls régions, R d vid symboliqu t d univrs symboliqu satisfont : = t = D V (2) ls fonctions totals, : R R R sont ls opératurs d union symboliqu t d intrsction symboliqu satisfaisant : r r = r r t r r = r r (3) Ctt présntation formll s traduit par la signatur d modul (OCaml) suivant : modul typ REGION = sig typ t (* typ for all rgions *) val bot : t (* th mpty rgion *) val top : t (* th univrsal rgion *) val lq : t -> t -> bool (* rgion inclusion *) val cup : t -> t -> t (* union of rgions *) val cap : t -> t -> t (* intrsction of rgions *) nd 17

Rmarqu. Afin d obtnir ds approximations supériurs (rsp. infériurs) ds calculs symboliqus, la contraint (3) put êtr rlâché n rmplaçant ls égalités par ds inclusions. D autr part, la contraint (1) put égalmnt êtr rlâché, pour ds raisons d ffctivité, par l implication r r = r r, mais ls calculs d point fix (par itérations succssivs t tst d inclusion) trminront alors moins souvnt (n théori). 3.3 Rprésntation symboliqu Un structur d régions prmt d manipulr d manièr symboliqu ds nsmbls d valuations. Cpndant, nous avons égalmnt bsoin d intrprétr d manièr symboliqu ls opérations d Op sur cs régions. Nous complétons donc ls structurs d régions avc ds opératurs symboliqus post t pr. Un rprésntation symboliqu pour la sémantiqu = (V, D, δ) st un 9-uplt (R,,,,,, post, pr, ) où : (R,,,,,, ) st un structur d régions pour (D, V ), ls fonctions totals post, pr : R Op R sont ls opératurs d succssur symboliqu t d prédécssur symboliqu satisfaisant : post(r,op) = post( r,op) (4) pr(r,op) = pr( r,op) (5) Ctt présntation formll s traduit par la signatur d modul (OCaml) suivant : modul typ SYMBOLIC_REPRESENTATION = sig modul R : REGION (* rgion modul *) val post : R.t -> Opration.t -> R.t (* symbolic post *) val pr : R.t -> Opration.t -> R.t (* symbolic pr *) nd Rmarqu. Afin d obtnir ds approximations supériurs (rsp. infériurs) ds calculs symboliqus, ls contraints (4) t (5) puvnt êtr rlâchés n rmplaçant ls égalités par ds inclusions. Exmpl. Considérons l nsmbl d opérations Op = {y y +2} d sémantiqu (N, {y}, δ), où la fonction δ : Op P(N N) st défini par : (n, n ) δ(y y +2) si n = n + 2 Nous pouvons définir un rprésntation symboliqu, par sous-nsmbl clos supériurmnt d N, pour ctt sémantiqu. Ell st formllmnt défini par R = (R,,,,,, post, pr, ) avc R = N { }, = 0, t pour tout n, n N : n = = n n n = min(n, n ) n = n = n n n = max(n, n ) n = n = post(,y y +2) = pr(,y y +2) = post(n,y y +2) = n + 2 pr(n,y y +2) = max(0, n 2) où min(n, n ) (rsp. max(n, n )) désign l élémnt minimal (rsp. maximal), pour l ordr total habitul sur ls ntirs, d {n, n }. 18

3.4 Accélération Ls rprésntations symboliqus prmttnt d réalisr ds calculs symboliqus d attignabilité, par xmpl l calcul par itération d point fix d l nsmbl d attignabilité d un systèm. Cpndant, la région obtnu à chaqu étap d un tl calcul put n rprésntr qu un portion fini d l nsmbl (souvnt infini) d attignabilité. Dans un tl cas, on bénéfici pu d l avantag d utilisr un rprésntation symboliqu (sauf, bin sûr, si l but poursuivi st la rprésntation compact d nsmbls finis d états, comm par xmpl avc ls BDD). Ls tchniqus d accélération sont basés sur l obsrvation suivant : si l itération d un séqunc d opérations σ Op (étiqutant un circuit d contrôl du systèm) à partir d un valuation d D V produit un nsmbl infini qui put êtr calculé symboliqumnt, alors un portion infini d l nsmbl d attignabilité put êtr capturé n un sul étap. Un accélération pour la sémantiqu = (V, D, δ) st un 8-uplt (R,,,,,,, ) où : (R,,,,,, ) st un structur d régions pour (D, V ), la fonction total : R + Op R st l opératur d itération symboliqu satisfaisant 1 : (r 0 r n, σ) = i N post( r 0, σ i ) (6) pour tous σ Op t r 0 r n R + tls qu : r k = post( r k 1, σ) pour tout 1 k n. Ctt présntation formll s traduit par la signatur d modul (OCaml) suivant : modul typ ACCELERATION = sig modul R : REGION (* rgion modul *) val acc : R.t list -> Opration.t list -> R.t (* acclration *) nd Rmarqu. Afin d obtnir ds approximations supériurs (rsp. infériurs) ds calculs symboliqus, la contraint (6) put êtr rlâché n rmplaçant l égalité par un inclusion. Ls algorithms d vérification puvnt utilisr l accélération d dux façons : statiqu : l utilisatur indiqu ls séquncs d opérations à accélérr avant d lancr ls calculs symboliqus. Ctt option corrspond ssntillmnt aux méta-transitions d [9]. dynamiqu : ls séquncs d opérations à accélérr sont choisis automatiqumnt au cours ds calculs symboliqus [6, 11]. Ds huristiqus puvnt alors êtr utilisés afin d limitr l choix [11]. 4 Modul d vérification 4.1 Intrfac avc la dscription A la suit d la compilation d la dscription, l modul d vérification doit obtnir un spécification du modèl qui doit inclur au minimum : la list ds variabls rprésntés xplicitmnt t lur typ la list ds variabls rprésntés symboliqumnt t lur signatur la list ds transtions du systèm la list ds invariants (assrtions) du systèm l état initial ds variabls (s il xist) 1 On not R + l nsmbl ds séquncs finis (non vids) (r k ) 0 k n d régions, notés plus simplmnt r 0 r n. 19

4.2 Intrfac avc ls rprésntations symboliqus En général, l modul d vérification doit pouvoir applr tout opération fourni par un rprésntation symboliqu choisi. Diagnostiqu utilisatur Comm montré dans l architctur général 1, la corrspondanc ntr ls signaturs d la dscription t ls rprésntations symboliqus st fait à l aid d un fichir d corrspondancs. L modul d vérification doit êtr capabl d vérifir qu c fichir st corrct. Diagnostiqu automatiqu D plus, dpuis c modul, on doit pouvoir applr un command qui prmt d indiqur, n partant d la dscription, ls différnts rprésntations symboliqus qui puvnt êtr utilisés pour ls signaturs d la dscription. Cci corrspond à un diagnostiqu automatiqu d la dscription. Choix ds accélrations Si pour un rprésntation symboliqu, plusiurs acclrations sont possibl, l utilisatur put choisir l un n spécifiant l modul accélration à utilisr par la suit. 4.3 Exploration t vérification : plac à l xprtis Il st évidnt qu un outil prss-bouton n st pas un bonn solution pour un plat-form d xpérimntation. Nous dvons donc proposr ds moyns pour qu l xprt utilisatur puiss xploitr, aussi librmnt qu possibl, la puissanc ds bibliothèqus (pour ls rprésntations symboliqus ou pour ls accélérations) intrfacés à la plat-form. Cci n mpêch pas d proposr égalmnt ds solutions génériqus (classiqus) d analys, vu qu lls sont déjà dévloppés dans ls outils xistants. C st pourquoi nous proposons pour l modul d vérification un langag d commands pour guidr t suprvisr l modl-chckr. C langag put êtr compilé (comm n HyTch) ou intrprété. Vu la divrsité ds options qui sont à présnt utilisés dans ls outils Fast t TRX, il nous a smbl ssntil d proposr un langag qui prmt un xtnsion facil avc ds options spécifiqus. C st pourquoi l langag d commands qu nous proposons st divisé n dux partis : parti d bas (général) qui inclut ls commands qui sont apparus comm communs aux outils xistants. parti spécifiqu (dépndant d outil ou bibliothèqu) qui inclut tous c qui n st pas génériqu. Ctt parti sra à définir à l intrfac avc la plat-form Prsé t sra accssibl par un command d typ load, par xmpl : mck> load Fast;; mck> load Trx;; À la fin d ctt sction, nous indiquons qulqus uns ds options spécifiqus ds outils xistants. Dans la suit, nous présntons la parti d bas du langag d commands. La syntax qu nous mployons st cll d ocaml. Cci n st n aucun cas l xprssion d un choix, mais plutôt un solution pour évitr (pour l momnt) l choix d un syntax spécifiqu. Déclaration t affctation d variabls d typ région ou configuration (produit cartésin d rprésntations). mck> lt R = str2rgion("... ") ;; # rgion mck> lt Rinit = init ;; # config initial dscription mck> lt Rbad = (str2auto(...), str2sr(...)) ;; # config qulconqu mck> lt Rnw = cap Rinit Rbad ;; # xprssion 20

Ls xprssion utilisés pour l affctation ds variabls région (rprésntation) puvnt fair appl à tout fonction fourni par l intrfac ds implémntations choisis pour cs régions (rprésntations). Suprvision ds calculs ffctués par l modl-chckr. Ici, plusiurs commands sont nécssairs : affichag d un variabl à l écran ou dans un fichir : mck> print R;; # sur stdout... mck> print Rnw to "filrnw.aut";; # dans un fichir suivi ds calculs pas à pas automatiqu t complt : mck> trac on;; # dbut... mck> trac off;; # fin ou partil : mck> trac only transitions;;... mck> trac only acclrations;; # indiqu ls trans appliqués # indiqu ls acc calculés Il st égalmnt util d pouvoir intrrompr ou suspndr ls calculs lancés t affichr ls calculs partils. Un solution systèm st d rdirigr ds signaux (CTRL-S ou CTRL-Q) vrs ds fonction d affichag qui sraint évntullmnt réntrant. Instanciation d un modl-chckr génériqu fourni par défaut. L idé st d fournir un squltt d modl-chckr, avc ds fonctions génériqus (choix ds cycls, huristiqu d rchrch, quand déclnchr l accélération) instanciés soit à partir d cod nouvau, soit avc du cod déjà écrit. On aurait ainsi un ptit bibliothèqu d cods classiqus (x : ls différnts typs d parcours, différnts rchrch d cycls,... ), c qui prmttrait d xpérimntr très vit ds idés. Pour ds bsoins spécifiqus, d autrs moduls dédiés d modl-chckr puvnt êtr implantés. L modl-chckr génériqu aurait l cod suivant : lt rach = lt loops = prcomput_loops() # pr-calcul ds cycls à la Fast in rach_star rach_star.stratgy loops... ;; C cod génériqu (ls fonctions prcomput loops ou rach star.stratgy sont génériqus) pourra êtr nsuit instancié avc différnts fonctions concrèts. Par xmpl, l pr-calcul ds cycls à accélérr pourra êtr fait n utilisant un ds huristiqus d Fast : mck> lt prcomput_loops = Fast.post_star_hur1;; ou n lisant ls mta-transitions donnés par l utilisatur : mck> lt prcomput_loops = rad_mta_transitions "mta.tr" ;; La stratégi d parcours (n largur ou n profondur) srait égalmnt à instancir : mck> lt rach_star.stratgy = dpth;; 21

Paramétrisation du rach star avc ds options classiqus comm, par xmpl : dirction du parcours : lt rach_star.dir = forward ;; # autr : backward définition d un calcul sûr (saf) : mck> lt safty =... ;; (safty étant un mot clé) pour l analys d accéssibilité. Ctt option vis à offrir un équivalnc à l option d accssibilité avc obsrvatur d TRX. Ell nous a smbl plus élégant qu l calcul xplicit dmandé par HyTch. masquag ds transitions ou définition d un obsrvatur comportamntal : mck> lt rach_star.st = [ t1, t2, [t2, t3] ] lang;; (st étant un mot clé) pour l calcul ds accélérations ou l analys d accssibilité, définit l nsmbl ds transitions à considérr. Cci prmt donc d complétr l option d accssibilité avc obsrvatur d TRX : l calcul d accssibilité st intrrompu s il st possibl d tirr ds transitions n dhors du langag spécifié par rach st. Pour Fast, ll prmt d indiqur xplicitmnt ls combinaison d transitions à prndr n compt pour l accélération. Options spécifiqus Fast à définir dans un modul à chargr avc la command load : int LOOP LENGTH : la longuur initial ds cycls à calculr. int MAX SIZE : la taill maximal d l automat courant. int MAX ACC : l nombr maximal d accélérations nchaînés. string ALGO : l algorithm d accélération mployé. Options spécifiqus TRX à définir dans un modul à chargr avc la command load : int DFS LOOP DEEP : la profondur maximal ds cycls à tstr dans l parcours n profondur. stat list EXTRAPOL STATES : la list ds états d contrôl pour lsquls on doit ssayr d xtrapolr ls cycls trouvés. num DECISION PROCEDURE REAL : sélctionn la procédur d décision à utilisr pour résoudr ls contraints arithmétiqus dans ls réls. num DECISION PROCEDURE INT : paril pour ls ntirs. bool SIMPLIFY CONSTRAINTS : simplification systématiqu ds contraints résultants ds calculs. int MAX CALL REDUCE : nombr maximal d appls pour Rduc/rdlog. bool SUBSTITUTE VARS : appl d huristiqus pour minimisr l nombr d paramètrs d xtrapolation. string OUTPUT FILES : préfix pour ls fichirs d sorti (graph symboliqu t configurations accssibls). Référncs [1] P. A. Abdulla, A. Annichini, S. Bnsalm, A. Bouajjani, P. Habrmhl, and Y. Lakhnch. Vrification of infinit-stat systms by combining abstraction and rachability analysis. In Proc. 11th Int. Conf. on Computr Aidd Vrification (CAV 99), volum 1633 of Lctur Nots in Computr Scinc, pags 146 159. Springr-Vrlag, 1999. [2] P.A. Abdulla, A. Collomb-Annichini, A. Bouajjani, and B. Jonsson. Using Forward Rachability Analysis for Vrification of Lossy Channl Systms. Formal Mthods in Systm Dsign, 25(1) :39 65, 2004. 22

[3] R. Alur, C. Courcoubtis, N. Halbwachs, T. A. Hnzingr, P.-H. Ho, X. Nicollin, A. Olivro, J. Sifakis, and S. Yovin. Th algorithmic analysis of hybrid systms. Thortical Computr Scinc, 138(1) :3 34, 1995. [4] R. Alur and D. L. Dill. A thory of timd automata. Thortical Computr Scinc, 126(2) :183 235, 1994. [5] A. Annichini, E. Asarin, and A. Bouajjani. Symbolic Tchniqus for Paramtric Rasoning about Countr and Clock Systms. In Proc. 12th Int. Conf. Computr Aidd Vrification (CAV 00), volum 1855 of Lctur Nots in Computr Scinc, pags 419 434, Chicago (IL), USA, July 2000. Springr. [6] A. Annichini, A. Bouajjani, and M. Sighiranu. TRX : A Tool for Rachability Analysis of Complx Systms. In Proc. 13th Int. Conf. Computr Aidd Vrification (CAV 01), volum 2102 of Lctur Nots in Computr Scinc, pags 368 372, Paris, Franc, July 2001. Springr. [7] A. Arnold, A. Griffault, G. Point, and A. Rauzy. Th altarica formalism for dscribing concurrnt systms. Fundamnta Informatica, 40(2 3) :109 124, 1999. [8] B. Boiglot and P. Godfroid. Symbolic vrification of communication protocols with infinit stat spacs using qdds. Formal Mthods in Systm Dsign, 14(3) :237 255, 1999. [9] B. Boiglot and P. Wolpr. Symbolic vrification with priodic sts. In David L. Dill, ditor, Proc. of th 6th Int. Conf. on Computr-Aidd Vrification (CAV 94), volum 818 of Lctur Nots in Computr Scinc, pags 55 67, Standford, California, USA, 1994. Springr-Vrlag. [10] T. Ball and S. K. Rajamani. Th SLAM projct : Dbugging systm softwar via static analysis. In Conf. Rcord of th 29th Annual ACM SIGPLAN SIGACT Symposium on Principls of Programming Languags (POPL 02). ACM, January 2002. [11] S. Bardin, A. Finkl, J. Lroux, and L. Ptrucci. FAST : Fast Acclration of Symbolic Transition systms. In Proc. 15th Int. Conf. Computr Aidd Vrification (CAV 03), volum 2725 of Lctur Nots in Computr Scinc, pags 118 121, Bouldr, CO, USA, July 2003. Springr. [12] J. Bngtsson, K. G. Larsn, F. Larsson, P. Pttrsson, and W. Yi. Uppaal a Tool Suit for Automatic Vrification of Ral Tim Systms. In Proc. of Workshop on Vrification and Control of Hybrid Systms III, numbr 1066 in Lctur Nots in Computr Scinc, pags 232 243. Springr Vrlag, Octobr 1995. [13] B. Boiglot, F. Hrbrtau, and S. Jodogn. Hybrid acclration using ral vctor automata. In Proc. 15th Int. Conf. Computr Aidd Vrification (CAV 03), volum 2725 of Lctur Nots in Computr Scinc, pags 193 205, Bouldr, CO, USA, July 2003. Springr. [14] A. Bouajjani and P. Habrmhl. Symbolic Rachability Analysis of Fifo-Channl Systms with Nonrgular Sts of Configurations. Thortical Computr Scinc, 221(1-2) :211 250, 1999. [15] M. Boyr and M. Sighiranu. Synthsis and Vrification of Constraints in th PGM protocol. In Proc. 12th Int. Symposium of Formal Mthods Europ (FME 03), volum 2805 of Lctur Nots in Computr Scinc, Pisa, Italy, Sptmbr 2003. Springr. [16] T. Bultan, R. Grbr, and W. Pugh. Symbolic modl chcking of infinit stat systms using prsburgr arithmtic. In Proc. of th 9th Int. Confȯn Computr Aidd Vrification (CAV 97), volum 1254 of Lctur Nots in Computr Scinc, pags 400 411. Springr-Vrlag, 1997. [17] J. R. Burch, E. M. Clark, K. L. McMillan, and D. L. Dill. Squntial circuit vrification using symbolic modl chcking. In Proc. 27th ACM/IEEE Dsign Automation Confrnc (DAC 90), pags 46 51, Orlando, Florida, 1990. [18] J. R. Burch, E. M. Clark, K. L. McMillan, D. L. Dill, and L. J. Hwang. Symbolic modl chcking : 10 20 stats and byond. Information and Computation, 98(2) :142 170, Jun 1992. [19] O. Burkart and J. Esparza. Mor infinit rsults. In Currnt Trnds in Thortical Computr Scinc, Entring th 21th Cntury, pags 480 503. World Scintific, 2001. 23