HAL Id: tel-01431238
https://tel.archives-ouvertes.fr/tel-01431238
Submitted on 10 Jan 2017
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.
Sylvain Soliman
To cite this version:
Sylvain Soliman. Concurrent constraint programming and linear logic. Langage de programmation
[cs.PL]. Université Paris Diderot - Paris 7, 2001. Français. �tel-01431238�
UFR INFORMATIQUE
Annee 2000-2001 N
Æ
attribue par la bibliotheque
THESE
pour l'obtention du Dipl^omede
DOCTEUR DE L'UNIVERSITE PARIS 7 SPECIALITE: PROGRAMMATION
presentee etsoutenue publiquement par
Sylvain SOLIMAN
le 20Avril 2001
Titre:
ProgrammationCon urrente ave Contraintes etLogique Lineaire
Dire teur de these:
Fran ois Fages
JURY
Mme Catus ia Palamidessi Rapporteur M. Philippede Groote Rapporteur M. Vin ent Danos
M. PaulRuet M. Fran ois Fages
\One of thesymptomsofan approa hingnervousbreakdown is thebeliefthat one's work isterriblyimportant." { Bertrand Russel
Remer iements.
Jetiens toutd'abord aremer ier eux quim'ontaideae rire ettethese, etenparti ulierFran oisFages,quiaa epted'en adrermontravail,d'abord au sein du Laboratoire d'Informatique de l'
E ole Normale Superieure, puis
a l'INRIA. Ses onseils avises furent nombreux et pre ieux, ils m'ont guide dans mes re her hes, aussi bien en Informatique et en Logique qu'en e qui on erne les Velos Tout-Terrain. Sa disponibilite a toute epreuve, m^eme lorsque la \liste noire" des t^a hes a nir pour la semaine pre edente s'al-longeait,mefutd'ungrandse ourspour orienter montravail,etson enthou-siasme de tous lesjours futsans lemoindredoute une des raisons quim'ont permisdenepaslaisser ettetheseina hevee,al'instarde ertainsromans...
Jeremer ieegalementmes rapporteurs,Catus iaPalamidessietPhilippe de Groote, 'est gr^a e a eux que mon manus rit a pu evoluer vers sa forme denitive,ainsiquetous euxquiontfaitl'eortde lire ettethese eten par-ti ulier les membres du jury: Vin ent Danos et Paul Ruet, mais aussi Dale Miller,Rajeev Gore, Vi tor Vianu,et MitsuhiroOkada pour lesnombreuses dis ussions que nous avons eu pendant lestrois dernieres annees.
J'adresse par la m^eme o asion mes plus plates ex uses a tous eux qui ont du me subir au jour le jour pendant es annees de these, les membres de l'equipe Langages Logiques et Contraintes du LIENS, et en parti ulier PaulRuet qui fut monvoisin de bureau, GabrieleSantinidont j'avoue avoir squatte le bureau plus que e qu'aurait justie nos postes de responsable de lama hine a afe,mais aussi lesmembresdu projet Contraintes de l'INRIA eten parti ulier SorinCra iunes uet EmmanuelCoqueryaqui je re onnais avoirimposedes pausesintempestivesetdes appelsaudejeunerquelque peu brutaux,etenn eux duClubde Gode l'INRIAquij'esperesurvivra amon depart.
Je remer ie mes amaradesnon-informati iensqui pendanttrois ans ont fait admirablement semblant de s'interesser a l'avan ement de ma these, malgremoninvariablereponse \ asuit son ours...",j'espere queletitrede mon stage de DEA lesfera sourireen ore longtemps.
Enn jeremer ie monepouse, Yuki,pour uneplethorede raisonsdontla presen e a mes ^otes n'est pas la moindre,ainsi que mes parents sans quije ne serais evidemment pas i i.
\Whywastetimelearning, whenignoran e is instantaneous?" { Calvinand Hobbes
Resume
Dans ette these, nous etudions les liens etroits entre la logique lineaireetlaprogrammation on urrente par ontraintes, sousl'angle delasemantique,etpluspre isementdelaveri ationdeprogrammes. Nous raÆnons les observables ara terisables gr^a e a la logique lineaireetetendonsdesresultatsanterieurs,and'obtenirunes eman-tiquepluspre iseetplusgenerale. Cesresultatssont obtenusparune tradu tion plusdele des agents en formuleslogiques et un enri his-sement de latheorie.
Nous presentons aussi une methode originale de preuves de pro-grammes, basee sur la semantique de la prouvabilite de la logique lineaire: la semantique des phases. Celle- i nous donne un outil de veri ation ave de nombreuses bonnes proprietes: la possibilite de montrer une propriete universelle du programme simplement par un ontre-exemple; une fa ilite d'abstra tion; enn la simpli ite des preuvesobtenues.
Nous onstruisons don une methode systematique de preuve et, apres l'avoir testee ave su es sur des exemples lassiques, nous etudions sonautomatisation. Cetteetudeaboutita l'implementation d'unprototypede prouveur quia ompagne un interpreteur pourles langageslineaires on urrentsave ontraintes.
Abstra t
In this thesis, we study the lose links between linear logi and on urrent onstraint programming, from theangle of semanti s and more pre iselyofprogram veri ation.
Werene theobservablesthat an be hara terized inlinearlogi andextendexistingresultsto obtainamore pre iseandmore general semanti s. Theseresultsareonlybasedonamore faithfultranslation from agentsinto logi formulae and onan enri hment ofthetheory.
We also present an originalmethod to getprogram proofs, based on the provability semanti s of linear logi : phase semanti s. This gives us a tool for veri ation, enjoying lots of good properties, like theabilityto prove a universal propertyof the program simply with a ounter-example; an easy abstra tion from the program; and the simpli ityoftheproofsobtained.
Wethus onstru tasystemati methodofproofgenerationand af-terapplyingitto lassi alexamples,westudyitsautomatization. This resear h leadsto theimplementationof aprototype-proverwhi h an live side by sidewith our interpreter forlinear on urrent onstraint languages.
TABLE DES MATIERES v
Table des matieres
1 Introdu tion 1
2 Langages CC 5
2.1 Introdu tion . . . 5
2.2 Denitions et syntaxe . . . 5
2.3 Semantiqueoperationnelle . . . 8
2.3.1 Systeme de transition. . . 8
2.3.2 Observables . . . 11 2.4 Sequentialite. . . 12 2.5 CC Lineaires . . . 14 2.5.1 Syntaxe . . . 15 2.5.2 Tradu tion de CC dans LCC . . . 17 2.5.3 Exemple de programme LCC . . . 19 3 Semantiques 21 3.1 Introdu tion . . . 21 3.2 StoresCC dans IL . . . 22
3.3 Storeset su es dans ILL. . . 23
3.4 Suspensions dans NL . . . 25 3.5 Semantiquedenotationnelle . . . 26 3.6 Con lusion . . . 28 4 Nouvelle semantique 29 4.1 Introdu tion . . . 29 4.2 Semantiquepour CC . . . 30 4.2.1 Denitions . . . 30 4.2.2 Completude . . . 32 4.3 LCC . . . 37 4.3.1 Denitions . . . 37 4.3.2 Completude . . . 38
4.4.1 Denitions . . . 40
4.4.2 Completude . . . 41
4.5 Suspensions . . . 41
4.6 Con lusion . . . 42
5 Semantique des phases 45 5.1 Introdu tion . . . 45
5.2 Semantiquedes phases pour ILL . . . 46
5.3 Preuves semantiques . . . 48
5.4 Exemples . . . 49
5.4.1 Exemple 1- Led^ner des philosophes . . . 50
5.4.2 Exemple 2- Produ teur/Consommateur . . . 53
5.4.3 Autres exemples- ex lusion mutuelle . . . 55
5.5 Completude . . . 56 5.6 Con lusion . . . 57 6 Phase model- he king 59 6.1 Introdu tion . . . 59 6.2 Implementation . . . 60 6.3 Exemples . . . 61
6.3.1 D^ner des philosophes. . . 61
6.3.2 Produ teur/Consommateur . . . 63
6.3.3 Algorithmede Peterson . . . 64
6.3.4 Doubletons . . . 66
6.3.5 Temps d'exe ution . . . 67
6.4 Con lusion . . . 67
7 Con lusion et perspe tives 69
A Logique Lineaire Intuitionniste 73
B Exemple de programme LCC 75
C Logique Non- ommutative 79
D Code sour e 81
Chapitre 1
Introdu tion
\Understandingis akindof e stasy." { CarlSagan
Langages on urrents ave ontraintes
LaProgrammationLogique ave Contraintes (CLP),introduiteparJaar et Lassez en 1987 [16℄ est une extension de la programmationlogique basee surla ombinaisonave les lausesdeHorndenissantlesrelations,d'un lan-gagede premierordre{les ontraintes{de idable, surune stru turedonnee X representant ledomainedu dis ours. Ce paradigmetresgeneral aete, de-puislors,utiliseave su esdansdenombreusesappli ationsde modelisation et d'optimisation [17℄. De plus, la semantique logique des programmes lo-giques s'etend naturellement aux langages CLP(X) pour ara teriser les su es et les e he s nis, il suÆt en eet de onsiderer les onsequen es en logique lassique, non seulement du programme, mais aussi de la theorie de lastru ture X.
LeslangagesCon urrents ave Contraintes (CC(X)),introduits lam^eme annee par Maher [24℄ puis Saraswat [33℄, peuvent ^etre vus omme une ex-tension de la lasse CLP(X) par un me anisme de syn hronisation base sur l'impli ationde ontraintes. Le modele obtenu permet a des agentsde om-muniquer au travers d'une sorte de \tableau noir", le store, qui est en fait une ontrainte exprimant une a umulation d'information partielle sur les variables du al ul. Les operations de base des agents sont don d'appor-ter l'information austore par l'operateurtell( ) oud'attendre que le store impliqueune informationdonnee par l'operateurask( ).Enajoutantle
non-autres, une re onstru tion de ertains pro essus utilises en pratique dans lesimplementations de CLP mais \ a hes" jusqu'alors, omme par exemple le predi at freeze de Prolog [9, 6℄, la propagation de ontraintes dans les domaines nis [15℄, et ...
Semantique
L'evolutionmonotonedu storeau oursd'un al ulCCapermisdedoter leslangages CC(X) d'une semantique denotationnellesimple, basee sur une representation des agents par des operateurs de fermeture [35, 18℄. Cepen-dant,m^emesilagrandeideeExe ution=Re her hedepreuvedela program-mationlogique est moins presente dans leslangagesCC(X), l'equation Pro-gramme+Domaine=Theorierestevalableetadonnelieuaunesemantique logique des CC omplementaire de lasemantiquedenotationnelle.
Or, de la grande variete des appli ations de CC vient naturellement une volonte de pouvoir demontrer ertaines proprietes des programmes, par exempledesproprietesdes^ureteoudeterminaison.Maissi e domaineaete tresetudiedansle adredeslangagespurement on urrents(model- he king, temporal logi , ...), peu de hoses ont ete faites pour lesCC. Certains tra-vaux ont essaye de tirer parti de la semantique denotationnelle [10℄, nous suivons i i une voie dierente qui se fonde sur l'idee qu'en utilisant la Lo-gique Lineaire (LL) introduite par Girard [14℄ en 1987 (un bon millesime visiblement)onpeut tirerun meilleur partide l'equation Programme + Do-maine =Theorie.
Cetteideeapermis,nonseulementd'aÆnerlesresultatsde ompletudede lasemantiquelogiquepour CC[30℄, e quiestimportantpourlespreuvesde proprietesdeviva ite(voir hapitre3),maisaaussi onduital'enri hissement du langage lui-m^eme: on est en eet naturellement amene a onsiderer des domainesde ontraintes lineaireset asupposer que lesoperationsd'ajoutet d'impli ationde ontrainte(askettell) orrespondentaux onjon tionset im-pli ationsde LL.Lestorepeutalorseventuellementevoluer de maniere non-monotonepar\ onsommation"d'une ontrainte.L'expressivitede ette nou-velle lassedelangagesLineairesCon urrentsave Contraintes(LCC(X))[12℄, tres pro he des p
get
de Best et al. [4℄, nous permet enn d'e rire de fa on de larative les proto oles on urrents que CC mettait a notre portee mais
Plan de la these
Dansle hapitre2nousetablissons lesnotationsqui serontutilisees dans ette these et rappelons les denitions lassiques pour CC etLCC, nous les agrementons d'exemples et dis utons le probleme de la sequentialite dans CC, puis le hapitre 3donne les resultats de base on ernant la semantique logique des langages on urrents ave ontraintes. L'a ent est mis sur les theoremes de ompletude et leur limitations,ainsi que sur une omparaison ave les resultatsobtenuspar l'appro he semantiquedenotationnelle.
Nous montrons ensuite dans le hapitre 4 omment es resultats ont pu ^etre pousses plus loin a l'aide d'une semantique logique plus \ne", abou-tissant ainsi a une semantique pre ise de type input-output, omme seule la semantique denotationnelle le permettait jusqu'alors, mais en s'aran his-sant des limitations sur le langage, omme la monotonie du store, et sur le systeme de ontraintes, omme l'hypothese de treillis, qui luisont propres.
Dans une deuxieme partie de la these, nous utilisons les proprietes semantiques des langages on urrents ave ontraintes pour prouver dans le hapitre5des proprietesde programmesgr^a ea lasemantiquedes phases de la logique lineaire (telle qu'elle est de rite par exemple dans [26℄). Cette tradu tionpermetde ramenerlademonstrationdeproprietesdes^urete,don de non-existen e de ertaines derivations, a elle, plus simple, de problemes d'existen e, au niveau semantique; onverra sur des exemples lassiques que ette methode de preuve donne des resultatstressatisfaisants.Ensuite nous etudions dans le hapitre 6 omment automatiser, au moins partiellement la methode exposee pre edemment, en tirant partie au mieux de la te hno-logie des ontraintes. On aboutit a une premiere des ription de ette nou-velle te hnique de phase model- he king. Ce hapitre a donne lieu a une implementationen GNU-Prologdusystemede rit,dontle ode estdonneen annexe D.
Enn pour on lure nous exposons brievement les perspe tives qu'ont ouvert es travaux, les diÆ ultes qui restent a fran hir et les solutions qui nous semblent envisageables.
Chapitre 2
Langages CC
\Toerr is human,butto reallyfoulthings up requiresa omputer." {Almana h desfermiers ameri ains,1978
2.1 Introdu tion
La programmation on urrente par ontraintes, introduite par Saras-wat [33℄ en 1987, est un modele de al ul on urrent, ou les pro essus (ap-peles agents) ommuniquent par l'intermediaire d'un tableau noir (appele store) ommun, 'est-a-dire un ensemble de ontraintes, don une informa-tion partielle,sur lesvaleurs des variables.
Nous rappelons i i les denitions lassiques des langages CC et xons les denitions qui nous seront utiles par la suite. Nous insisterons sur les questionsd'expressivitedeCC etenparti ulierlasequentialitequis'exprime ave les operateurs lassiques (ask, tell, k et +). Nous presenterons aussi le paradigme des CC lineaires, ou LCC, quietend naturellement elui des CC en se basant sur une logique plus ri he: la logique lineaire de Girard [14℄. Enn nous donnons des exemples de programmes et dis utons du probleme de la veri ation de proprietes de es programmes.
2.2 Denitions et syntaxe
Dans la suite nous noterons X, Y,..., un ensemble de variables et ~x une suite nie de variables. L'ensemble des variables libres apparaissant dans la
Pour un ensembleS,S
denotel'ensembledes suites nies d'elementsde S. Pour une relation de transition !, !
denote sa fermeture re exive et transitive.
Denition 2.1 (Systeme de ontraintes) Un systeme de ontraintes est une paire (C;`
C
), telleque:
{ C est un ensemble de formules (les ontraintes) onstruites a partir d'un ensemble V de variables, d'un ensemble de symboles de fon -tions et de relations et des operateurs logiques suivants: 1 (\vrai"), la onjon tion ^ etle quanti ateur existentiel 9; C sera suppose lospar renommage, onjon tion et quanti ation existentielle.
{ C
est un sous-ensemble de C C, qui denit les axiomes non-logiques du systeme de ontraintes. A la pla e de ( ;d) 2
C , nous noterons C d. { ` C
est le plus petit sous-ensemble de C
C ontenant C
et los par les regles de la Logique Intuitionniste(IL) pour 1, ^ et 9:
; ` ; `d ` `d `1 ` ;1` ` 1 ` 2 ` 1 ^ 2 ; 1 ` ; 1 ^ 2 ` ; 2 ` ; 1 ^ 2 ` ;d;d` ;d` ` ;d` ` `9x ; `d ;9x `d x62fv( ;d)
Dans lasuite, ;d;e:::denoterons des ontraintes.
Remarque.
Le adre hoisi i i, elui de la logique intuitionniste plut^ot que lassique, n'estpas essentielmais simplementsuÆsant omptetenude lastru ture des ontraintes qui ne sont onstruites qu'ave des onjon tions et des impli a-tions. Pour les m^emes raisons, et an de preserver la possibilited'avoir des ontraintes ommefreeze dansun systeme de ontraintes,nous onsiderons quela regle d'inferen e
` ` [t=x℄
ave x62fv( ) n'est pas indispensable.
Denition 2.2 (Agents) LasyntaxedesagentsCCestdonneeparla gram-maire suivante:
A::= p(~x)jtell( )j(AkA)jA+Aj9xAj8~x (ask( )!A)
2.2. DEFINITIONS ET SYNTAXE 7
{ l'ajout d'une ontrainte dans le store (agent tell( ) aussi note plus simplement ), raÆnant ainsi l'information partielle sur les variables libres,
{ la suspension sur une ertaine ontrainte : si A est un agent, l'agent 8~x (ask( )!A)(ouplussimplement8~x ( !A))attend,pourexe uter A, que le store ontienne suÆsamment d'information pour impliquer [
~
t=~x℄, et lie les variables orrespondantes,
{ lamise en parallelede deuxagents A et B par l'operateur k,
{ le hoix non-deterministeentre deuxagents A et B par l'operateur+, { lalo alisation d'une variablepar l'operateur9
Remarque.
Les agents atomiques p(~x)::: seront appeles noms de pro edure, nous sup-poseront que lesarguments dans lasuite ~x sont des variablesdistin tes.
La ommuni ation entre agents se deroule par l'intermediaire du store sous formed'ajout de ontraintes (tell) et de suspension sur es ontraintes (ask).
L'emissiond'informationparuntelln'estpasbloquante,onadon afaire
a une ommuni ation asyn hrone (voir par exemple [5℄).
LesCCetendentlaprogrammationlogiquepar ontraintes[17,24℄parleur me anisme de suspension. Ils ont la m^eme semantique operationnelle, sauf pour !A quiattend quele store impliquela ontrainte pour devenir A. Il n'yapas,apriori, d'operateurdesequentialite\;", ependantonverra dans la se tion2.4qu'il peut ^etre en ode al'aide des operateurs existants.
L'operateurask est noteave un 8 an de larierl'operationde liendes variables de la garde qui est generalement impli ite dans CC, on peut don e rire ainsi dans CC(H ) le programme (dire tionnel) de on atenation de deux listes, L1 etL2 dans L3:
on at(L1,L2,L3)=
(L1=[℄ ! tell(L2=L3)) +
8 E,L (L1=[E|L℄ ! 9R (tell(L3=[E|R℄) k on at(L,L2,R)))
Onpeut ependantnoterque,dansunsystemede ontraintesquin'admet qu'une solutionunique a haque ontrainte ( omme 'est le as par exemple sur le domaine de Herbrand), il serait possible de se passer du lien des va-riables dans la garde en repetant la ontrainte gardee dans le orps de la garde. On rempla eraitainsi 8~x ( !A)par (9~x )!(9~x tell( )kA), mais ette solution, en plus de dissimuler la veritable a tion du ask ne pourrait pas ^etre etendue aLCC (voir se tion2.5).
La re ursion est obtenue gr^a e aux de larations:
Denition 2.3 (De larations) Lasyntaxedesde larationsestdonneepar lagrammaire suivante:
D::=jp(~x)=AjD;D
Denition 2.4 (Programmes) Un programme est une paire D:A o u D est une de laration, lose par renommage des variables, et A un agent.
L'agent A sera appele agent initial.
LesprogrammesCCsontparametresparunsystemede ontraintes,mais en general nous le garderons impli ite dans notre presentation, aussi bien dansla relationde transitionque dans elle d'impli ationde ontraintes.De m^eme,la de laration Drestera impli ite.
Nous ferons l'hypothese naturelle que dans une de laration p(~x) = A, touteslesvariablesde fv(A)apparaissentdans~x.Cela orrespond d'ailleurs ave l'interpretation habituelle des lauses de Horn en programmation lo-gique: les variables libres dans le orps d'une lause et n'apparaissant pas dans la t^ete de elle- i sont onsiderees (impli itement dans la syntaxe et expli itementdans la semantique) omme quantiees existentiellement.
2.3 Semantique operationnelle
2.3.1 Systeme de transition
La semantique operationnelle des programmes CC est denie sur des ongurations oule store est distinguedes agents:
Denition 2.5 (Congurations) Une ongurationestuntriplet(X; ;A), o u est une ontrainte appelee store, A un agent ou ; s'il est vide, et X un ensemble de variables, appelees variables a hees de et A.
Lasemantiqueoperationnelleestdenieparunsystemedetransitionsqui ne prend en ompte au une strategie d'evaluation parti uliere. Ce systeme est donne dans lestyle de la CHAM [3℄(voir aussi [29℄).Nous distinguerons don une relationde ongruen ede larelation de transition.
pe-2.3. SEMANTIQUE OPERATIONNELLE 9
-Conversion
z 62fv(A) 9yA9zA[z=y℄
Composition parallele AkB B kA
Ak(B kC)(AkB)kC
Tab. 2.1 {Congruen e stru turelle
Les axiomes d'asso iativite et de ommutativite de la omposition pa-ralleledonnent auxagentsune stru ture de multi-ensemble. Desormais nous identieronsdon ,par un legerabusde notation, l'agentd'une onguration etle multi-ensemblede ses sous-agents en ompositionparallele.Nous note-rons ;;::: es multi-ensembles.La ongruen es'etendalors defa on ano-nique aux multi-ensembles:
0 ssi =fA 1 ;:::;A n g, 0 = fA 0 1 ;:::;A 0 n g et8i=1;:::;n, A i A 0 i .
Deux ongurations seront dites ongrues, (X; ; ) (X 0 ; 0 ; 0 ), quand les ensembles X et X
0
sont egaux et les multi-ensembles d'agents et
0
ongrus.
Denition 2.7 (Transitions) La relation de transition ! est la plus pe-tite relation sur les ongurations satisfaisant les regles de la table 2.2.
Dans ette presentation de la relation de transition, il est lair que l'en-sembledes variables a hees ne peut que grossir lelong d'une derivation:
Proposition 2.8 Si (X; ; ) !
(Y;d;) alors X Y.
Preuve.
IlsuÆtde raisonnerparindu tion surladerivation,puisremarquer que l'en-sembledes variables a hees n'est modiequedanslalo alisationetqu'alors
il grossit.
Lesagentsetde larationsne ontenantpas +sontappelesdeterministes. Ce nom se justie par la proposition suivante:
Proposition 2.9 (Con uen e [35℄) Soitune ongurationdeterministe ave des de larations deterministes, si !
1
et ! 2
, alors il existe une onguration deterministe
0 telle que ! 0 et ! 0 .
Equivalen e (X; ; )(X 0 ; 0 ; 0 ) !(Y 0 ;d 0 ; 0 )(Y;d;) (X; ; ) !(Y;d;) Tell (X; ;tell(d); ) !(X; ^d; ) Ask ` C d[ ~ t=~x℄ (X; ;8~x(d!A); ) !(X; ;A[ ~ t=~x℄; ) Lo alisation y62X[fv( ; ) (X; ;9yA; ) !(X [fyg; ;A; )
Appel de pro edure
(p(~y)=A)2D
(X; ;p(~y); ) !(X; ;A; )
Choix aveugle (X; ;A+B; ) !(X; ;A; ) (X; ;A+B; ) !(X; ;B; )
Tab. 2.2 {Relation de transitionde CC
Uneautreproprietedes programmesCC estqueleurexe utionest exten-sive(les ontraintes nefontques'a umulerdanslestoredurantl'exe ution) etmonotone: Proposition 2.10 (Extensivite [35℄) Si (X; ; ) ! (Y;d;) alors 9Yd` C 9X . Proposition 2.11 (Monotonie) Si (X; ; ) !
(X[Y;d;), alorspour tout ensemblede variablesZ, tout multi-ensemble d'agents et toute ontrainte e, il existe un renommage Y
0 de Y tel que,(X[Z; ^e; ;) ! (X[Y 0 [Z;d[Y 0 =Y℄^e;[Y 0 =Y℄;). Preuve.
On pro ede par indu tion sur lalongueur de la derivation. On onstate que touteslesregles saufequivalen e, ask etlo alisationpeuvent^etrereproduites dans (X [Z; ^e; ;) ar leurs onditions d'appli ations ne portent pas sur lesvariables a hees ni sur le store.
Pour ask, il suÆt alors de onstater que si ` C d alors [Y 0 =Y℄^e ` C d[Y 0 =Y℄.
2.3. SEMANTIQUE OPERATIONNELLE 11
Pour l'equivalen e il suÆt de remarquer que si d 1 d 2 alors d 1 [Y 0 =Y℄ d 2 [Y 0
=Y℄ etla m^eme hose pour 1
.
2.3.2 Observables
Lasemantiqueoperationnellepre ise depend ommed'habitudedu hoix des observables. Voi i elles que nous onsidereront:
Denition 2.12 (Observables) Le store d'une onguration (X; ; ) est la ontrainte 9X .Nous dirons que9Xd est un store a essible de l'agent A ave store initial , s'il existe un multi-ensemble d'agents tel que (;; ;A) !
(X;d; ).
Un storesu es(resp.un su es) pourun agentA etun store initial est une ontrainte9Xd(resp.une onguration(X;d;;))telleque(;; ;A) !
(X;d;;).
Une ongurationterminalepour Aet lestore initial est une ongura-tion (X;d;8~x 1 (d 1 ! A 1 );:::;8~x n (d n !A n )) telle que n 0, (;; ;A) ! (X;d;8~x 1 (d 1 !A 1 );:::;8~x n (d n !A n )) et 8i; ~ t, d 6` C d i [ ~ t =~x i ℄. Si la ongu-rationn'est pasunsu es(i.e.n>0),lestore9Xdestappeleune suspension.
Il est fa ile de verier, gr^a e aux proprietes 2.10 et 2.11, que le ompor-tement operationnel des programmesCC est ompletement ara terise,sous es observables, par leur omportementa partird'un store initialvide: Proposition 2.13 Soit A un agent et une ontrainte.
Les stores a essiblesde A ave un store initial sontles onjon tionsde et des stores a essibles de Aktell( ) ave un store initial vide.
Ses su es et ses ongurations terminales sont eux de A ktell( ) dans le store initial vide.
Preuve.
Onraisonneparindu tionsurladerivationenutilisantlamonotonie(prop.2.11) jusqu'a e que l'agent tell( ) ajoute vraiment sa ontrainteau store.
La semantique operationnelle peut don ^etre denie ave le store initial vide (i.e. la ontrainte\vrai"notee 1):
Denition 2.14 (Semantique operationnelle) O store (C;D:A)=f9Xd2C j9 ; (;;1;A) ! (X;d; )g O term: (C;D:A)=f9Xd2C j9 ; (;;1;A) ! (X;d; )6 !g O su es (C;D:A)=f9Xd2C j (;;1;A) ! (X;d;;)g
Remarque.
Dans le systeme de transition, nous avons hoisi la regle de hoix aveugle: l'agent non-deterministe A+B peut se omporter omme A ou omme B. Sil'on rempla e e hoix \interne"par le hoix garde:
(X; ;A; ) !(Y;d;) (X; ;A+B; ) !(Y;d;)
et
(X; ;B; ) !(Y;d;) (X; ;A+B; ) !(Y;d;)
les suspensions d'un programme hangent bien evidement. Par exemple si = (;; ;( ! tell(1)) + (d ! tell(1))) ave 6`
C
d, alors pour le hoix aveugle, a deux derivations possibles: ! (;; ; ! tell(1)) ! (;; ;tell(1)) ! (;; ;;) et ! (;; ;d ! tell(1)) 6 !, alors que la deuxieme derivation n'est pas possible ave le hoix garde. Il est ependant interessantdenoterquelessu esetstoresa essiblesrestentin hangesdans les deux interpretations. Les resultats de ette these qui ne on ernent que es deux types d'observables restent don valides pour le hoix garde.
Proposition 2.15 Soient O store garde et O su es garde
la semantique operationnelle denie omme i-dessus maisave les regles du hoixgarde.Pourtout agent CC,A, on a: O store (C;D:A)=O store garde (C;D:A) et O su es (C;D:A)=O su es garde (C;D:A) Preuve.
La preuve se fait par une simple indu tion: si l'on note ! garde
la relation de transitionave lesregles du hoix garde, onsiderons une derivation pour
!, elle ne diverges d'une derivation pour ! garde
que quand elle s'arr^ete apres une transition utilisant une regle de hoix aveugle, mais alors: (1) le store n'a pas hange, don les stores a essibles ne hangent pas et (2) la nouvelle onguration terminale n'est pas un su es, et la onguration a l'etape du hoix, quiaurait pu ^etre terminale, n'en etait pas un non plus.
2.4 Sequentialite
BienqueleslangagesCCnepossedentpas d'operateurdesequentialite,il s'avere que et operateurpeut^etre ode dans CC sans au une modi ation:
Proposition 2.16 Soit D:A un programme de CC seq
(C), 'est a dire CC etendu de l'operateur deni par les regles suivantes:
(X; ;A) !(Y;d;B)
2.4. SEQUENTIALITE 13
Il existe unsystemede ontraintes C etun programme D :A deCC(C ) dont les observables permettent de ara teriser entierement elles de D:A dans CC
seq (C).
Preuve.
Soit ok un nouveau symbole de relation d'arite un. C
est le systeme de ontraintes C auquel ona ajoute ok sans au unaxiome non-logique. Le pro-grammeD
:A
est deni par latradu tion suivante:
tell( ) x = tell( ^ok(x)) p(~y) x = p (x;~y) (AkB) x = 9y;z(A y kB z
k(ok(y)^ok(z))!ok(x)) (A+B) x = A x +B x (8~y( !A)) x
= 8~z( [~z=~y℄!A[~z=~y℄ x ) ave x62~z (9yA) x = 9zA[z=y℄ x ave z 6=x (AB) x = 9y(A y kok(y)!B x ) (p(~y)=A) = p (x;~y)=A x A = 9xA x
Il est immediat de verier (par une indu tion sur la derivation) qu'une ontrainteok(x)est ajouteeaustoresietseulementsil'agent orrespondant A
x
a atteint un su es.
Or les arbres de derivation de D:A et de D
:A
ne dierent que par des ha^nes ajoutees a ertaines feuilles. En eet les seuls agents ajoutes par la tradu tion sont de la forme ok(y)^ok(z) ! ok(x) et par la proposition de monotonie2.11(quirestevalableave l'ajoutde)leseventuellesreglesAsk peuvent ^etre onsiderees omme ayant lieuala n.
De plus, les stores au ours de la derivation de D
:A
ne dierent que tres peu de leur store orrespondant dans la derivation de D:A; en eet ils ne omportent en plus quedes ontraintes de laformeok(x) introduitespar un tell.
Comme les prolongements de derivation ne font qu'ajouter d'autres ontraintes ok(x)au store ourant, ona don :
Ost(C;D:A)= C Ost(C 0 ;D :A ) ou C
est l'operationqui onsisteaprojetersur C une ontraintede C 0
Orsionobtientun su espour unederivationdeD:Anousavons vuque la ontrainte ok orrespondante etait ajoutee au store, et re iproquement, par onsequent ona:
Osu (C;D:A)= C Osu (C 0 ;D :A )
Dem^eme,siD:Asuspend,alorsD
:A
suspendsurlem^emeask,et omme il n'y a jamais de suspension sur le ask ajoute en n de bran he sans qu'il y en ait une avant (expliquant ainsi la non-produ tion d'un ok) on a don aussi lesm^emes suspensionset don :
Ostt(C;D:A)= C Ostt(C 0 ;D :A ) 2.5 CC Lineaires
Il y a en fait plusieurs raisons qui ont mene a l'utilisation de la logique lineaire omme base du systeme de ontraintes, et don a la naissan e des CC lineaires:
{ toutd'abord,malgrel'expressiviteimportantede CC, quipar exemple permetde oder lasequentialite ommenousl'avons vudanslase tion pre edente, on peut vouloir en ore augmenter le pouvoir d'expression de es langages, en parti ulier pour permettre un meilleur ontr^ole de la on urren e (voir par exemple [36℄).Une option est de permettre la onsommationde ertaines ontraintes, eque SaraswatetLin olnont ompris des 1992 [34℄ et qui fut ensuite pousse plus loin dans [4, 37℄. Les ontraintes y sont alors naturellement des formules de la logique lineaire.
{ Un autre motif qui pousse a se diriger vers LCC nous est donne par la semantique, en eet nous verrons dans le hapitre 3 que la logique lineaire s'impose omme un outil tres puissant pour etudier CC, en permettant de ara teriser des observables plus nes que la logique intuitionniste.
Nous presentons don i i les CC lineaires omme ette suite naturelle des CC; nous en donnons des exempleset her herons dans les hapitres qui
2.5. CC LINEAIRES 15
2.5.1 Syntaxe
Commedansles as des CCnous allonsdenirlesysteme de ontraintes, les agents et ongurations, et lesysteme de transition. La dieren e essen-tiellesera lanaturelineairedes ontraintesetdon la onsommation d'infor-mation par l'operateurask.
Denition 2.17 (Systeme de ontraintes Lineaire) Un systeme de ontraintes lineaire est une paire (C;`
C
), telle que:
{ C est un ensemble de formules (les ontraintes lineaires) onstruites a partir d'un ensemble V de variables, d'un ensemble de symboles de fon tionetderelationetdesoperateurslogiquessuivants:1(i.e.\vrai"), la onjon tion ,l'exponentiel!etlequanti ateurexistentiel9; C sera suppose los par renommage, , ! et 9.
{ C
est un sous-ensemble de CC, qui denit les axiomes non-logiques du systeme de ontraintes.
{ ` C
est le plus petit sous-ensemble de C
C ontenant C
et los par les reglesde la Logique Lineaire Intuitionniste (ILL) pour 1, , ! et 9 (voir aussi l'annexeA):
` ; `d ` ;`d `1 ` ;1` ` 1 ` 2 ;` 1 2 ; 1 ; 2 ` ; 1 2 ` ` `9x ; `d ;9x `d x62fv( ;d) ;!d;!d` ;!d` ` ;!d` ; `d ;! `d ! `d ! `!d Remarque.
Lessystemes de ontraintes ( lassiques) de lase tionpre edente sontun as parti ulier que l'on peut retrouver en utilisant latradu tion lassique de IL dansILLqui onsisteatoutmettresousun![14℄.L'utilisationdu!estlimitee aux ontraintesetnonpasauxagents,ilestdon adierentierde l'operateur de repli ationdes al ulsde pro essus ( ommepar exemple le- al ul [25℄) qui permettrait la dupli ation d'un agent (rempla ee dans LCC par l'appel de pro edure), mais pas l'ea ement.
Onpeutdenirune lassede ontraintesparti ulieres,appelees ontraintes de syn hronisation [32℄ et representant les ontraintes atomiques qui n'ap-paraissentdans au un axiomenon-logique. Nousverronsplus loinetdans le hapitre 3 que es ontraintes bene ient de nombreuses bonnes proprietes semantiques quenous etendrons aux autres ontraintes dans le hapitre4.
La denition des agents, de larations et ongurations est la m^eme que pour CC (se tion 2.2).
Denition 2.18 (Systeme de transition) La ongruen e stru turelle reste identique a elle de CC (se tion 2.3) et la relation de transition est denie par les m^emes regles, ex epte pour LinearTell et LinearAsk qui rempla ent Tellet Ask:
LinearTell (X; ;tell(d); ) ! LCC (X; d; ) LinearAsk ` C de[ ~ t =~y℄ (X; ;8~y(e!A); ) ! LCC (X;d;A[ ~ t=~y℄; )
Tab. 2.3{ Relation de transition de LCC
Le al ul est intrinsequement non-deterministe,m^eme en l'absen e de + puisque plusieurs ontraintes peuvent satisfaire la garde d'un ask et don mener a des residus dierents. Pour les ontraintes de syn hronisation par ontre, ask (sans 8) et tell deviennent des operateurs de manipulation el e-mentaire de multi-ensemble etsont don deterministes. Des exemples d'uti-lisationde es ontraintes sont donnesdans la se tion2.5.3.
La nature lineaire des ontraintes nous oblige a reformuler la denition des ongurations terminales.
Denition 2.19 (Observables) Lessu esetstoresa essiblessontdenis omme pour CC.
Une onguration terminale pour A et le store initial est une ongu-ration (X;d;8~x 1 (d 1 !A 1 );:::;8~x n (d n !A n )telleque n0, (;; ;A) ! (X;d;8~x 1 (d 1 !A 1 );:::;8~x n (d n !A n )) et 8i; ~ t ,d6` C d i [ ~ t =~x i ℄>.
On a seulement introduit la onstante > pour re eter le hangement de ondition dansla regleLinearAsk: lagarde sedebloques'il existe e telque `
C
de on auraitalors ` C
d> d'apres laregle pour >.
CequirendLCCbeau oupplusexpressifqueCCestlaperted'extensivite, don la possibilite d'exprimer des evolutions non-monotones du store. Il est ependantimportantdenoterquelamonotoniedes transitionsest onservee.
Proposition 2.20 (Monotonie) Si (X; ; ) ! LCC
(X [Y;d;), alors pour tout ensemble de variables Z, tout multi-ensemble d'agents et toute ontraintee,ilexisteunrenommageY
0
deY telque(X[Z; e; ;) ! LCC
2.5. CC LINEAIRES 17
Preuve.
La preuve suit la m^eme indu tion que pour la proposition 2.11 on ernant la monotonie de CC, puisque les deux seules regles qui ont hange ne mo-dient pas l'ensemble des variables a hees et n'en dependent pas pour leur
exe ution.
Commedans lase tionpre edente lesobservables apartird'un store ini-tialvidesuÆsentdon aretrouver ellesprovenant d'un al ul ave un store initial arbitraire. L'argument ne hange que pour l'observation des stores a essibles:
Proposition 2.21 Soit C un systeme de ontraintes, et C 0
le systeme de ontraintes obtenu en ajoutant a C un nouveau symbole de ontraintes d. L'ensemble des stores a essibles de (;; ;A) dans C est fe 2 C j e d 2 O store LCC (C 0 ;D:(tell( d)k(d!A)))g. Preuve.
Commed est nouveau, les seules transitions possibles sont: (;;1;tell( d d) k (d ! A)) ! LCC (;; d d;d ! A) ! LCC (;; d;A) ! LCC .
Les stores a essibles de (;; ;A) sont don les e 2 C (i.e. ne ontenant pas d) tels que ed est a essible de (;;1;tell( dd)k(d!A))
1 .
Denition 2.22 (Semantique operationnelle) O store LCC (C;D:A)=f9Xd2C j9 ; (;;1;A) ! LCC (X;d; )g O term: LCC (C;D:A)=f9Xd2C j9 ; (;;1;A) ! LCC (X;d; )6 ! LCC g O su es LCC (C;D:A)=f9Xd2C j (;;1;A) ! LCC (X;d;;)g 2.5.2 Tradu tion de CC dans LCC
LeparadigmeLCCestuneextensiondesCC,danslequelonpeuttraduire simplement et delement lesCC monotones en respe tant l'observation des stores etdes su es [12℄:
Denition 2.23 Soit(C; C
)unsystemede ontraintes.Satradu tionestle systemede ontraintes lineaire(C
Æ ;
Æ C
),deni ommesuitave latradu tion
des agents:
Æ
=! , si est une ontrainte atomique ( ^d) Æ = Æ d Æ (9x ) Æ =9x Æ tell( ) Æ =tell( Æ ) p(~x) Æ =p(~x) (AkB) Æ =A Æ kB Æ (A+B) Æ =A Æ +B Æ (8~x ( !A)) Æ =8~x( Æ !A Æ ) (9xA) Æ =9xA Æ C Æ =f Æ j 2Cg. C
Æ est denie par C d ssi Æ C Æ d Æ
Cette tradu tion s'etendnaturellement aux ongurations.
Pour les ontraintes, ette tradu tion est une tradu tion bien onnue de IL dans ILL [14, p.81℄, d'ou:
Proposition 2.24 Soient et d des ontraintes de C: ` C d ssi Æ ` C Æ d Æ .
On peut alors verier que le omportement des ongurations traduites est bien elui qui est attendu:
Proposition 2.25 Soient (X; ; ) et (Y;d;) des ongurations CC: (i) (X; ; )(Y;d;) ssi (X; Æ ; Æ ) Æ (Y;d Æ ; Æ ); (ii) si (X; ; ) !(Y;d;) alors (X; Æ ; Æ ) ! LCC (Y;d Æ ; Æ ); (iii) si (X; Æ ; Æ ) ! LCC (Y;d Æ ; Æ ) alors (X; ; ) ! (Y;e;), ave e` C d. Preuve. (i)est evident.
Pour (ii),pro edonspar indu tionsur !,seulle asde laregleAskest interessant: supposons
(X; ;8~x(d!A); ) !(X; ;A[ ~ t=~x ℄; ) utilisant la relation ` C d[ ~ t=~x℄. On a don ` C ^d[ ~ t=~x ℄, et d'apres la proposition 2.24, Æ ` C Æ ( ^d[ ~ t=~x℄) Æ = Æ d[ ~ t=~x℄ Æ .D'ou (X; Æ ;8~x(d Æ !A Æ )); Æ ) ! LCC (X; Æ ;A[ ~ t=~x℄ Æ ; Æ ) qfd.
Pour (iii),pro edons par indu tion sur ! LCC
, eta nouveau, leseul as interessant est elui de laregle LinearAsk: supposons
(X; Æ ;8~x (d Æ !A Æ )); Æ ) ! (X;e Æ ;A[ ~ t=~x℄ Æ ; Æ )
2.5. CC LINEAIRES 19 utilisant la relation Æ ` C Æ d[ ~ t=~x ℄ Æ e Æ = (d[ ~ t=~x℄ ^e) Æ . D'apres 2.24, ` C d[ ~ t=~x ℄^e ` C d[ ~ t=~x℄,don (X; ;8~x(d!A); ) !(X; ;A[ ~ t=~x℄; ) et ` C e.
(i) et (ii) prouvent que la tradu tion i-dessus est orre te vis a vis de l'observation des stores et des su es d'un al ul CC.
2.5.3 Exemple de programme LCC
Untest lassiquedel'expressivitedeslangages on urrentsestleprobleme du d^ner des philosophes:N philosophessont assis autourd'une table ronde, entre haque paire est posee une four hette. Les philosophes alternent des periodes de pensee profonde ave des periodes de faim, et dans e dernier as ils ont besoin des deux four hettes qui les entourent pour manger (des baguettes seraient ertes plus vraisemblables).
Comme suggere dans [4℄, e probleme a une solution simple et elegante en LCC.
Les ontraintes atomiques sont: fork(I), eat(I,N) pour I,N 2 N, et N=M, N6=M pour N,M 2N. Le systeme de ontraintes lineairesest une ombi-naisondelatradu tiondelatheoriedel'egalitepour(N;+),etdes ontraintes lineairesfork eteatave pour seuls axiomesnon logiques les hema orres-pondant a l'axiome d'egalite: (~x)!(~x = ~y) (~y) pour toute ontrainte .
philosophe(I,N) =
fork(I) fork(I+1 mod N) ! (tell(eat(I,N)) k
eat(I,N) !
(tell(fork(I) fork(I+1 mod N)) k philosophe(I,N))).
re philo(M,P) =
M 6= P ! (philosophe(M,P) k tell(fork(M)) k re philo(M+1,P)) k
Une exe ution ave l'agent initial init(5), par exemple, va mettre en pla e les philosophes et les four hettes, puis la sequen e (innie) des stores le long d'une derivation montrera les periodes ou les philosophes mangent, omptetenudus heduling(ordonnan ementd'exe ution)desagentsen om-position parallele.
Contrairement a un programme CC lassique, les stru tures de donnees imperatives sont i i dire tement odees par des ontraintes lineaires au lieu de streams [33℄. On peut aussi noter que par rapporta des langages omme Linda,ilesti iinutiled'avoirdes \ti kets"[7℄puisquel'operateuraskpermet de onsommer atomiquementle tenseur de deux four hettes.
Ce programme verie ertaines proprietes de viva ite et de s^urete, nous verrons une methode de preuve de es proprietesutilisantla semantiquedes phases de laLogique Lineaire dans le hapitre5.
Un autre exemple illustrant le gain d'expressivite qu'apporte LCC est donne dans l'annexe B (il est un peu long pour gurer i i). Il s'agit de la re onstru tion d'un solveur sur les domaines nis a la maniere CLP(FD) et sanslesindexi auxde [15℄.Ceprogramme,ainsiquetouslesexemplesdonnes dans ettetheseontetetestesgr^a eauneimplementationprototypedeLCC quenous avons realise audessus de GNU-Prolog.
D'autres exemples enn peuvent ^etre trouves dans la these de Vin ent S ha hter [36℄, omme par exemple un solveur base sur le simplexe.
Chapitre 3
Semantiques
\It might look like I'mdoing nothing, butat the ellularlevelI'm reallyquitebusy." { Dilbert (S ott Adams)
3.1 Introdu tion
Les langages CC etant issus de la programmationlogique, il est naturel de her her a onne terleurs aspe ts operationnels ave une semantique for-mellepermettantde raisonnersurlesprogrammesadierentsniveaux d'abs-tra tion. L'evolution monotone du store pendant un al ul CC a permis de donner une semantique denotationnelle simple et elegante aux programmes CC,souslaformed'operateursdefermeturesurles ontraintes[35,18℄.Cette semantique aete utilisee, par exemple dans [10℄ pour obtenir un systeme de preuve de ertaines proprietes de programmes. Nous verrons dans la se -tion 3.5quelles sontlesresultatslespluspre is obtenusave ette appro he. Cependant, m^eme si l'ajoutdu ask abrise la semantique logique simple de la programmation logique, nous rappelons i i omment en logique intui-tionniste puis dans la logique lineaire de Girard [14℄, il est possible de faire
a nouveau le lien CC-logique. Une partie des resultats presentes i i appa-raissaient deja dans [22, 34℄, mais n'ont ete formalises ompletement que dans[30℄et[12℄. etteappro he ouvreune plusgrandevarieted'observables ets'adaptenaturellementau adreLCC,mais omportedeslimitesquenous
3.2 Cara terisation des stores CC en logique
intuitionniste
Soient(C; C
) un systeme de ontraintes etD des de larations,
Denition 3.1 On peut traduire les agents CC deterministes en formules de la logique intuitionniste (IL) de lamaniere suivante:
tell( ) y = p(~x) y =p(~x) (9xA) y =9xA y (8~x ( !A)) y =8~x ( )A y ) (AkB) y =A y ^B y
Cette tradu tion s'etend aux multi-ensembles d'agents: Si est le multi-ensemble fA 1 :::A n g, alors denissons y = A y 1 ^ ^A y n . Et y = 1 si =;.
La tradu tiond'une onguration (X; ; ) y
est laformule 9X( ^ y
).
notons IL(C;D) le systeme de dedu tion obtenu en ajoutant a IL les axiomes non-logiques suivants:
{ `d pour tout C d de C , { p(~x)`A y
pour toute de laration p(~x )=Ade D.
a` denote l'equivalen e logique.
Theoreme 3.2 (Corre tion [12℄) Soient(X; ; )et (Y;d;) deux on-gurations CC deterministes. Si (X; ; )(Y;d;) alors (X; ; ) y a` IL(C;D) (Y;d;) y . Si (X; ; ) ! (Y;d;) alors (X; ; ) y ` IL(C;D) (Y;d;) y .
La re iproqueest vraiepour l'observation des stores:
Theoreme 3.3 (Observation des stores pour CC deterministe [12℄)
Soit S un ensemble de ontraintes,et A un agent CC deterministe, notons #S =f 2C j9d2S;d` C get L store (C;D:A)=f 2C jA y ` IL(C;D) g, on a: L store (C;D:A)=#O store (C;D:A)
Le asnon-deterministen'estpasevidentdans IL,eneettraduire+par la disjon tion_ ne onvient pas pour la orre tion (A_B 6` A) et traduire parla onjon tion^,nepermetpasdegarderla ompletudesurl'observation
3.3. STORESET SUCCES DANS ILL 23
3.3 Cara terisation des stores et su es en
lo-gique lineaire intuitionniste
Bienquel'observationdesstoressoitimportante,ellenerepresentequ'un desaspe tsdu omportementoperationneldesprogrammesCC.Parexemple, si l'on onsidere lestrois programmes suivants:
p(x)=x1
p(x) =x1kp(x)
p(x)=x1k(false!A):
Ils ont les m^emes stores (x 1) et sont don equivalents vis a vis de ette observable, ependant l'un termine ave un su es, l'autrebou leet le troisieme suspend.
Or, omme le montrent les ontre-exemples suivants, IL ne permet de ara teriser niles su es, ni lessuspensions:
{ a: Il est en general faux que A a B (ou B est un su es ou une sus-pension) implique (;;1;A) !
LCC
(;;1;B). Par exemple ! d a d mais !d suspend dans lestore initialvide.Pour le as ouB est une suspension, par exemple d k ( ! d) ave d n'impliquant pas , on a dad^( !d) mais tell(d)ne sereduit pas vers ette suspension. { `:On ren ontre des problemes similairesave `.On ad^( )A)`d
mais dk ( !A) suspend sid 6` . De plus d^(d) e)`d) e,mais dk(d!e) aun su es(d^e) et pas de suspensions.
{ a`: L'equivalen e a` pose les m^emes problemes, par exemple on re-marque que d^( ) d) a` d, mais on ne peut rien en deduire sur le omportement operationnel des agents tell(d) et d k ( ! d) en supposant que d n'impliquepas .
L'obsta le prin ipalest en faitla regle (stru turelle)d'aaiblissement:
`B ;A`B
La LogiqueLineaire (LL)de Girard[14℄ raÆnant lalogique lassique,en parti ulier auniveau des regles stru turelles d'aaiblissement etde ontra -tion, il est naturel d'interpreter lesprogrammes CC dans ette logique plus ne. C'est d'ailleurs ette demar he qui a onduit ala reation des langages
Fixons un systeme de ontraintes lineaire (C; C
) et des de larations D.
Denition 3.4 On traduitles agentsLCCen formulesde lalogique lineaire (intuitionniste) de la maniere suivante:
tell( ) z = p(~x ) z =p(~x ) 8~y( !A) z =8~y ( (A z ) (AkB) z =A z B z (A+B) z =A z &B z (9xA) z =9xA z Si est le multi-ensemble (A 1 :::A n ), on denit z =A z 1 A z n . Si =; alors z =1. La tradu tion(X; ; ) z
d'une onguration, est la formule 9X( z
).
ILL(C;D) denote le systeme de dedu tion obtenu en ajoutant a ILL les axiomes non-logiques: { `d pour tout C d de C , { p(~x)`A z
pour toute de laration p(~x )=Ade D.
a` denotera l'equivalen elogique.
Theoreme 3.5 (Corre tion [12℄) Soient(X; ; )et (Y;d;) deux on-gurations LCC. Si (X; ; )(Y;d;) alors (X; ; ) z a` ILL(C;D) (Y;d;) z . Si (X; ; ) ! LCC (Y;d;) alors (X; ; ) z ` ILL(C;D) (Y;d;) z .
Re iproquement, on peut ara teriser l'observation des su es, m^eme en presen e de l'operateurde hoix+:
Theoreme 3.6 (Observation des su es [12℄) Soit A un agent LCC et une ontrainte lineaire.DenissonsLL
su es (C;D:A)=f 2CjA z ` ILL(C;D) g. On a LL su es (C;D:A)=#O su es LCC (C;D:A):
Soit S un ensemblede ontraintes lineaires, notons + S =f 2C j 9d 2 S;d ` >g.
Theoreme 3.7 (Observation des stores [12℄) Soit A un agentLCC et une ontrainte lineaire. Denissons LL
store (C;D:A) = f 2 CjA z ` ILL(C;D) >g. On a LL store (C;D:A)=+O store LCC (C;D:A):
3.4 Cara terisation des suspensions enlogique
non- ommutative
M^eme en logique lineaire, on n'arrive toujours pas a ara teriser les sus-pensions,l'undes obsta lesetantl'adjon tionentreet(quipeutgenerer de fausses suspensions omme par exemple dans le as ( ( d) ` ( ( d). Pour supprimer ette adjon tion, on peut utiliser la Logique Non- ommutative (NL) de Ruet et Abrus i [31℄ introduite a et eet dans [30℄ (voir aussi l'annexe C).
La tradu tion des agents LCC dans le fragment intuitionniste de NL ne diere de la pre edente que par la tradu tion du ask:
( !A) }
=
(A)
ou est une nouvelleformuleatomique, introduitepoureviter la ompo-sitiondes suspensions(d(
d)(d
A)`d(
A)).On ne onsidere dans e adre que les agents LCC sans 8, mais nous avons vu dans la se -tion 2.2 que ela ontientdeja tout CC.
Theoreme 3.8 (Corre tion [30℄) Soient (X; ; )et (Y;d;) deux on-gurations LCC. Si (X; ; )(Y;d;) alors (X; ; ) } a` INL(C;D) (Y;d;) } . Si (X; ; ) ! LCC (Y;d;) alors (X; ; ) } ` INL(C;D) (Y;d;) } .
Re iproquement, onpeut toujours ara teriser l'observation des su es:
Theoreme 3.9 (Observation des su es [30℄) SoitAunagentLCCet une ontrainte lineaire.DenissonsNL
su es (C;D:A)=f 2CjA } ` INL(C;D) ~ g. On a NL su es (C;D:A)=#O su es LCC (C;D:A):
Theoreme 3.10 (Observation des suspensions [30 ℄) SoientA;A 1
;:::;A n des agents LCC, une ontrainte lineaire, d
1 ;:::;d
n
des ontraintes de syn- hronisation telles que 8i; 6` d
i >. Si A } ` INL(C;D) ~ (d 1 A 1 ) :::(d n A n
)g, alors (;;1;A) suspend ave le store sur les ontraintes d 1 ;:::;d n . Remarque.
Ilest importantdenoter i ique e resultats'appuyant sur lesresultatsde la se tion pre edente, 'est a dire sur des ara terisations modulo l^oture vers le bas, il ne s'applique qu'au as de ontraintes de syn hronisation, 'est a
Une ara terisationplus pre ise,evitant la l^oture, permettrait don , en plus de ses apports propres pour mieux ara teriser stores et su es, de generaliser le resultat de ara terisation des suspensions a des ontraintes quel onques. C'est e quenous montrerons dans le hapitre4.
3.5 Semantique denotationnelle
Jusqu'a present nous avons rappele les dierents resultats obtenus par l'appro he semantique logique de CC qui permet don de ara teriser les stores, su es et suspensions des agents CC (et m^eme LCC) sous reserve de restri tions sur la stru ture des agents dans le as des suspensions, eta une l^oturepres(# ou+) dans les autres as.
Interessons-nous desormais aux resultats obtenus par l'autre appro he prin ipale dans e domaine, la semantique denotationnelle. Un agent CC deterministeyestvu ommeunefon tiondes ontraintesdansles ontraintes, asso iant au store initial le store apres exe ution de l'agent. Cela aboutit a une semantique denotationnelle tres simple denie par des operateurs de l^oture. En eet un agent CC ne peut qu'ajouter une ontrainte au store (extensivite), exe uter une deuxieme foisun m^eme agentne hangera pas le store (idempoten e), enn plus le store initial ontient d'information, plus le store nal en ontiendra (monotonie). En representant un operateur de l^oturepar l'ensemblede ses points xes on obtient [35℄:
JD:tell( )K(e) ="
JD: !AK(e) =(" \JD:AK(e))[" JD:AkBK(e) =JD:AK(e)\JD:BK(e) J9xAK(e) =9
x
JD:AK(e)
JD:p(~x)K(e) = ou (f)=JDnfpg:AK(eff=pg) si p=A2D JD:p(~x)K(e) =e(p) sip62D
Tab. 3.1{ Semantique denotationnelle de CC deterministe
Pour traiter l'operateur de non-determinisme, on ajoute naturellement l'equationJD:A+BK(e) =JD:AK(e)[JD:BK(e).Ladenotationainsiobtenue re etebienl'ensembledesstoresterminauxd'unagent(voirparexemple[10℄), mais onperd ependant larelationpre ise d'entree-sortie: en eetJtell( )+ tell(1)K = Jtell(1)K = C, alors que dans le store initial vide ils ont
respe ti-3.5. SEMANTIQUE DENOTATIONNELLE 27
important de noter que l'on peut retrouver ette pre ision gr^a e a une nou-vellesemantiquedenotationnelle[23℄qui onsideredesensemblesd'ensembles de ontraintes orrespondantintuitivement auxbran hes de laderivation:
JD:tell( )K(e) =f" g
JD: !AK(e) =f(" \X)[" jX 2JD:AK(e)g
JD:AkBK(e) =fX\Y jX 2JD:AK(e);Y 2JD:BK(e)g J9xAK(e) =9
x
JD:AK(e)
JD:A+BK(e) =JD:AK(e)[JD:BK(e)
JD:p(~x )K(e) = ou (f)=JDnfpg:AK(eff=pg) sip=A2D JD:p(~x )K(e) =e(p)si p62D
Tab. 3.2{ Semantique denotationnelle de CC
O term:
(C;D:A)=fd2C j9X 2JD:AK;d=min(X)g
Leresultatobtenuestd'unenatureassezdierentede euxapportesparla semantiquelogique:eneetilesti ipossibled'avoirunerelationentree-sortie pre ise asso iant a haque onguration initiale, l'ensemble des observables lui orrespondant, sans avoir de l^oture, ni vers le haut ( omme 'est le as ave des semantiques denotationnelles plus simples), ni vers le bas ( omme nous l'avons vu dans les se tions pre edentes pour la semantique logique). Ce resultat est d'ailleurs extensible a une version de CC ave hoix garde \mutuellementex lusif"(voir[23℄).
Cette pre isiondes resultats a ependant un prixpuisque le faitde s'ap-puyer sur une semantique de type denotationnelle implique l'existen e d'un treillis, en general omplet, de ontraintes, et impose que les agents soient interpretables ommedes operateurs de l^oture sur un ertaindomaine. Ces deux onditions vont ompletement a l'en ontre d'une possible extension de la semantique aux agents LCC qui ne sont ni idempotents ni mono-tones. Quant au systeme de ontraintes, on voudra souvent eviter d'avoir une borne inferieure pour deux ontraintes, omme par exemple dans le as des ontraintes de syn hronisation.
Enn,ilfautsignalerque e resultatneportequesurlesstoresterminaux et que m^eme si en utilisant le odage de la se tion 2.4 on peut ara teriser aussi lessu es(storesterminauxde A
x
ontenantok(x)), onn'a pas autant d'informationqu'alase tionpre edente on ernantlessuspensionspuisqu'on ne onna^t pas les agents sur lesquels on suspend, de plus si une ontrainte
une suspension stri te ou pas. D'autre part, il semble diÆ ile de generaliser e type de resultat a des observables omme les stores a essibles qui sont eux ara terisables par lasemantiquelogique.
3.6 Con lusion
La volonte de pouvoir verier des proprietes de programmes a don , ommenous l'avons vu, motivede nombreux travaux sur la semantique des langagesCC et LCC. Cependant il semblequemalgrelesre entes avan ees, aussi bien du ^ote logique que du ^ote denotationnel, au une semantique ne puisse nous apporter a la fois une ara terisation pre ise et une grande variete d'observables, voire de langages.
Or si l'on se ontente d'observables loses vers le haut, quand un agent se reduit vers une onguration de store dont on veut dire qu'elle n'est pasdangereuse (ne ontientpas la ontraintedanger),onne pourrapas dire grand hose de l'examen de " qui ontient ^danger.
De m^eme pour des proprietes de type liveness et une semantique lose vers le bas. Sans parler dans e dernier as des problemes entra^nes par les e he s qui \impliquenttout".
Il y a don une ne essite de poursuivre notre re her he dans le domaine de la semantique des langages CC, e que nous allons faire dans le hapitre suivant. Nous pourrons alors dans les hapitres 5 et 6 utiliser les proprietes semantiques des langages CC et LCC pour passer on retement a la preuve de proprietesde programmes.
Chapitre 4
Une nouvelle semantique
logique pour CC
\Yourtheoryis razy, butit'snot razyenough to be true." {Niels Bohr (1885-1962) to a youngphysi ist
4.1 Introdu tion
Commenous l'avons vu,la semantiquelogique permet de ara teriserde nombreusesproprietesobservablesmaisseulementaune l^oturepres,quanta lasemantiquedenotationnelle,elleal'avantagededonnerune ara terisation pre ise, mais seulement pour ertaines observables, les stores terminaux, et via un odage, les su es, de plus il n'y a pas d'espoir de pouvoir etendre ette methode auxLCC.
Il semble don naturel de vouloir utiliser la semantique logique, an de garderladiversitedesobservablesquel'onpeut ara teriser, ommelesstores a essibles par exemple, et d'esperer rester ompatible ave LCC, mais de her her a aÆner ette semantique pour obtenir l'exa titude, au moins a equivalen e logique pres, entre semantique etobservables.
Si l'on regarde les problemes qui entra^nent la l^oture itee i-dessus, on peut les regrouperen deux ategories:
{ la onfusion entre les axiomes non-logiques ` C
, utilises pour verier l'impli ation ou non de la garde d'un ask, et la relation d'impli ation de la logique hoisie (ILL par exemple) qui re ete plus delement les
{ ertaines regles logiques permettant l'aaiblissement non- ontr^ole du store (9;!, et .).
Pour resoudre lapremiere ategoriede problemes,l'idee de base denotre travailfutd'essayer de distinguer,ausein m^emede latheorie,lesdeux om-posantes de ILL
C;D
.Une modaliteserait une solution,mais en faitil s'avere qu'iln'est au unementne essaire de modier lalogique sur laquelleon s'ap-puie, la logique lineaire, mais seulement d'enri hir la theorie pour limiter l'a tiondes axiomes non-logiques aux ontraintes qui vont^etre onsommees par un ask.
La deuxieme ategorie de problemes est un peu dierente etil est m^eme diÆ iled'etablir pre isement e quel'on veut que 9fasse et e quel'on veut eviter.Nousverronsdans lase tionsuivante ommentl'introdu tionde nou-velles ontraintes va resoudre e probleme en permettant de distinguer les 9 introduits par un agent ou une ontrainte et eux de oulant de l'aai-blissement d'une ontrainte (t) en 9x (x). Pour l'exponentiel !, il semble diÆ ilede letraiter orre tement,aussinousverrons ommentilestpossible de s'enpasser etdon de simplierlalogique surlaquelle ons'appuiede ILL aIMALL.
4.2 Semantique pour CC
4.2.1 Denitions
Soient(C; C
) un systeme de ontraintes etD des de larations. Denissons C
0
omme leplus petit ensemble telque: { pourtouteformuleatomiqueadeC,onaa2C
0
,etilexisteuneformule a
0
dans C 0
nC,
{ pour toute variable x de C, il existe une formulelo (x) dans C 0
nC. On a don , intuitivement, dans C
0
, a la fois C, une opie de C et des formules lo (x).
Soit ? latradu tion de C dans C 0 denie par: (e^f) ? =e ? f ? (9x(e)) ? =9x(lo (x)e ? ) ? = 0 si est atomique
Denissonsunerelationd'impli ation` C
0 surC 0
and'enfaireunsysteme de ontraintes: pour tout `
C d ona ? ` C 0 ? d
4.2. SEMANTIQUE POURCC 31
que elle de la se tion3.3.
Denition 4.1 Les agents CC sont traduits en formules IMALL (logique lineaire intuitionniste sans les exponentiels) de lamaniere suivante:
tell( ) = ? (A+B) =A &B p(~x ) =p(~x) (9xA) =9x(lo (x)A ) (8~x ( !A)) =8~x ( (A ) (AkB) =A B
Cette tradu tion s'etend omme d'habitude aux multi-ensembles d'agents et aux ongurations: Si est le multi-ensemble (A 1 :::A n ), on denit =A 1 A n . Si =; alors =1. La tradu tion (X; ; )
d'une onguration (X; ; ) est la formule 9X( N x2X lo (x) ? ). On notera IMALL(C 0
;D) le systeme de dedu tion obtenu en ajoutant a IMALL les axiomes non-logiques suivants:
{ `d pour haque ` C 0 d de ` C 0, { p(~x)`A
pour haque de laration p(~x)=A de D.
Theoreme 4.2 (Corre tion) Soient (X; ; ) et (Y;d;) deux ongura-tions CC. Si (X; ; )(Y;d;) alors (X; ; ) a` IMALL(C 0 ;D) (Y;d;) . Si (X; ; ) ! (Y;d;) alors (X; ; ) ` IMALL(C 0 ;D) (Y;d;) . Preuve.
Par indu tion sur et !.
{ Pourles ompositionparallele, - onversion,tell,equivalen e,appelsde pro edureet le hoix aveugle 'est immediat.
{ Pourlalo alisation,A9x(Blo (x)) `
IMALL(C 0
;D)
9x(lo (x)AB) si x62fv(A).
{ Pour ask, il suÆt de remarquer que ? 8~x (d (A)` IMALL(C 0 ;D) ? d[ ~ t=~x℄8~x (d(A)` IMALL(C 0 ;D) ? A[ ~ t=~x ℄si ` C d[ ~ t =~x℄, qfd.
4.2.2 Completude
Bienque esproprietesde orre tionsoientimportantes(voirparexemple les hapitres5et6),elles ne sont pas nouvelles, interessons nousdon plut^ot
ala re iproque.
Ils'averequenousobtenonsunresultatde ompletudepourl'observation exa te des su es.
Notons !
larelationobtenue en ajoutant dans une derivation !
la possibilitede debloquer un ask suspendu sur .
Soient (X; ; ) une onguration CC, d une ontrainte de C, Z un en-sembledevariablesetune ontraintede C
0
ouun nomde pro edure.notons (X; ; );d;Z =) pour: 1. siestdelaforme N y2Y lo (y)e ? alors(X; ; );d;Z =)siY Z et(X; ; );d;ZnY =)e ? .
2. sinon,si fv()\Z 6=;,alors (X; ; );d;Z =) est toujours \vrai". 3. sinon:
(a) si est un nom de pro edure: (X; ; );d;Z =) s'il existe une onguration(Y;e;),tellequefv()\Y =;;9Y(
N y2Y lo (y) e ? )a`1 et(X [Z; ; ) ! d (Y;e;). (b) siest une ontraintedelaformee
?
alors(X; ; );d;Z =)s'il existe une onguration su es (Y;e;;), telle que (Y;e;;)
a` et (X [Z; ; ) ! d (Y;e;;).
( ) si est une ontraintede C alors (X; ; );d;Z =) si d = et (X; ; ) etZ sont vides quand 6=1 ou(X; ; );d etZ vides si =1.
(d) si est une autre sorte de ontrainte alors (X; ; );d;Z =) est toujours\vrai".
On notera que si !
et ;d;Z =) alors ;d;Z =) puisque =) est denie par as sur en fon tion de !
.
Lemme 4.3 Soient etdeux ongurationsCC tellesque
=
, dune ontrainte de C, X un ensemble de variables et une ontrainte ou un nom de pro edure.
;d;X =) ssi ;d;X =).
Preuve.
Prouvons le lemmepar as sur la formule
=
.
4.2. SEMANTIQUE POURCC 33 { Si = =8~x ( (A
),ave une ontrainte et A un agent, alors et sont ne essairement toutesdeux de la forme(;;1;8~x( !A)). { Si = =9x(lo (x)A
),alors lesdeux seules possibilitespour etsont(fxg[Y; ; )et(Y 1 ;1;9x9Y 2 (tell( )k )),ave Y 1 [Y 2 =Y. Commeladeuxieme ongurationsereduit sur lapremiere etque=) est deni a l'aide de !
une des impli ations est triviale. Pour la re iproque il suÆt de remarquer que les seules derivations possibles pourlase onde ongurationmenenta(fxg[Y;1;tell( )k ).Onpeut alors utiliserla proprietede monotonie2.11 pour obtenirle resultat. { Si = =A B
,alorslespossibilitespouretsont:(;;1;Ak B), (;; ;B) (si A
=
?
, une ontrainte, i.e. A =tell( )), (;; ;A) (si B = ? ) et (;; f;;) (si A = ? et B = f ? , des ontraintes). On obtient a nouveau le resultat par derivation de l'une a l'autre et monotonie. { Si = = A &B
, alors la seule onguration possible est (;;1;A+B), don =, qfd.
Lemme 4.4 Soit = (X; ; ) une onguration CC, d une ontrainte de C, Y un ensemble de variables et une ontrainte ou un nom de pro edure.
Si ;d; N y2Y lo (y)` IMALL(C 0 ;D) , alors ;d;Y =). Preuve.
Pro edonspar indu tionsurlapreuve.Cetteindu tionaunsens puisque l'on peut supposer, sanspertede generalite,que les oupures n'apparaissent qu'auniveaudesaxiomesnon-logiques,etqu'ellessontdon d'unedesformes suivantes: ;d`p p` ;d` ;d`e ? e ? `e ? f ;d`e ? f p` ; ` ;p` e ? `e ? f ;e ? f ` ;e ? `
L'appli ation (de bas en haut)d'une de es regles introduit des sequents dontla formulea droite reste une ontrainte ouun nom de pro edure.
Les formules agau he du sequent restent quant aelles des sous-formules detradu tiond'agentsetde ontraintes,etsontdon destradu tionsd'agents etdes ontraintes.
{ Si est un axiome: on peut utiliser la re exivite de !
dans le as d'un axiome logique, ou laregle de larations pour un axiome p` q; le as d'un axiome
? `
?
d est trivial.
{ nit par une oupure: nous avons vu que les as possibles sont eux enumeres i-dessus. Considerons don quelques as en detail, par exemple: ; ; N x2X lo (x)`p p` ; ; N x2X lo (x)`
Parhypothesed'indu tion,(;;1; )
; ;X=)p,i.e.ilexisteune on-guration (Y;d;p) telle que fv(p)\Y = ; don fv()\Y = ; (hy-pothese sur la formation des de larations), (X;1; ) !
(Y;d;p) et 9Y( N y2Y lo (y)d)a`1.
Siestunnomdepro edure,ona(X;1; ) !
(Y;d;)parappelde pro edure etfv()\Y =;, qfd.Si =e
?
,alors l'axiomevient d'une de laration p =tell(e) don (X;1; ) !
(Y;d;) ! (Y;de;;) et 9Y( N y2Y
lo (y)de) a` e (on a fv(e)\Y =fv()\Y = ;), qfd.
Leseul autre as interessant est:
? ` ? d ; ? d; N x2X lo (x)` ; ? ; N x2X lo (x)`
Parhypothese d'indu tion(;;1; ;tell( ));d;X =),orpardenition de =) ela signieque l'on peut utiliser une fois d pour debloquer un ask. Mais omme `
C
d, pourrait debloquer e ask don (;; ; );1;X =), qfd.
Les deux autres as se traitent par la redu tion d'une onguration a une autre oupar la denition m^eme de =), as 3.d.
{ nis par une introdu tion a gau he de 1: on a (;;1; ;tell(1)) !
(;;1; ). Par hypothese d'indu tion, (;;1; ); ;X =) don (;;1; ;tell(1)); ;X =), qfd.
{ nit par:
;A;B `
4.2. SEMANTIQUE POURCC 35
Il peut y avoir une ambigute quand A
et B
sont des ontraintes, ependant gr^a e au lemme 4.3 on sait que la nature exa te des on-gurations n'est pas importante.
{ nit par: ; ; N x2X lo (x)` ;d; N y2Y lo (y)` ; ; ;d; N z2X[Y lo (z)` Si fv()\X 6= ; ou fv( )\Y 6= ; alors fv( )\(X [Y) 6= ;. Si ou ontient un lo (z) alors d'apres l'hypothese d'indu tion on sait quela variable appara^t dans l'ensemble orrespondant (X ou Y) etdon dansleur union, par onsequent onpeut onsiderer que et sontdes ontraintes.
Si = e ? et = f ? , on a (X;1; ) ! (X [X 0 ; 0 ;;) ave (X [ X 0 ; 0 ;;) a`e ?
etdem^emepour(Y;1;).Onobtientalorspar mono-tonie(X[Y;1; ;) ! (X[X 00 [Y; 00 ;)et(X[X 00 ; 00 ;;) a`e ?
puisquenousn'avonsfaitquedes renommagesdeX 0 aX 00 pourobtenir X 00
\(Y[fv(d;))=;.Onad'ailleurstoujoursfv( 00
)=fv().Parle m^ememe anismeonobtient(X[Y;1; ;) !
;d (X[Y[X 00 [Y 00 ; 00 ^ d 00 ;;)etY 00 \(X[X 00 [fv( 00 ))=;.D'ou(X[Y[X 00 [Y 00 ; 00 ^d 00 ;;) = 9Y9X9X 00 9Y 00 (d 00 00 ) et omme Y 00 \ fv( 00 ) = ; ela revient a 9Y9X9X 00 (9Y 00 d 00 00
). Or les variables libres de 9Y 00
d 00
viennent de elles de d et et l'on sait que X
00 \fv(d;) = ; don on obtient 9Y9X(9Y 00 d 00 9X 00 00
). Par onsequent, sifv()\Y 6=; (respe tive-ment et Y) ona fv( )\X[Y 6=; et on a don termine (par denitionde =)); sinon ona fv( 00 )\Y =; puisque fv( 00 ) =fv() etdon 9Y9Y 00 d 00 9X9X 00 00
qui est equivalent a , qfd.
Le as ou et sonttoutesles deuxdans C de ouledire tementde la denitionde =), as 3. . { nit par: ;A ; ; N x2X lo (x)` ;A &B ; ; N x2X lo (x)`
Par hypothese d'indu tion, (;;1;A; ); ;X =) , or (;;1;A+B; ) !
(;;1;A; ), etX ne hange pas, don (;;1;A+B; ); ;X =). { nit par une introdu tion a droite de 9. Le seul as non-trivial est
quand est une ontraintee ?
=9x(lo (x) ?
)(sinon onpeut utiliser le as 3.d. de la denitionde =)). ;d; N y2Y lo (y)`lo (t) ? [t=x℄ ;d; N lo (y)`9x(lo (x) ? )
Parhypothese d'indu tionondoitavoirt2Y et(;;1; );d;Ynftg=)
?
[t=x℄, i.e. il existe un su es (Z;e;;) tel que (Y n ftg;1; ) ! d (Z;e;;) et (Z;e;;) a` ? [t=x℄. Si on ajoute t a Y nftg on ne fait que bloquer une derivation ou appara^trait un agent 9tA, mais on sait que l'on peut renommer t par - onversion et obtenir une nou-velle derivation ave un resultat equivalent. Don (Y;1; ) !
d (Z 0 [ ftg;e 0 ;;)etona(Z 0 [ftg;e 0 ;;) a`9t(lo (t) ? [t=x℄)a`9x(lo (x) ? ), qfd. { nit par: ; ; N y2Y lo (y);A lo (x)` ; ; N y2Y lo (y);9x(A lo (x))` x62fv( ; ;)[Y
Par hypothese d'indu tion, (;;1;A; ); ;Y [fxg =) . Comme x 62 fv() onsaitque n'est pasde laformelo (x) ,de plus sifv()\ (Y [fxg) 6= ; alors fv()\Y 6= ; et on a deja termine, sinon on a (Y [fxg;1;A; ) !
pour un (ave les proprietes de =)). Mais ommex 62fv( ; ;)[Y, (Y;1;9xA; ) !(Y [fxg;1;A; ),don (Y;1;9xA; ) ! , qfd. { nit par: ;A ;d` ;e` ; ; (A ;d;e`
Parhypothesed'indu tion,(;;1;);e=) ,i.e.e= etestvide.Or (;;1; !A; ) ! (;;1;A; ) par denitionde ! . D'ou (;;1; ! A;; );d;e=) . { nit par: ;A [t=x℄;d` ;8xA ;d `
Cettesituationnesepresentebiensurqu'ave un askpourA,onverie alors aisement que si un (t) ! B(t) permet une derivation ou e ask dispara^t (puisqu'il ne peut appara^tre dans ), 8x( (x) ! B(x)) permet lam^eme.
Notons = a`
l'egalitemodulo a`.On peut desormaisenon er letheoreme de ompletude quietendet pre ise elui du hapitre 3.
Theoreme 4.5 (Observation exa te des su es) Soit A un agent CC. Denissons LL su es (C;D:A)=f 2CjA ` IMALL(C 0 ;D) ? g. On a
LL su es (C;D:A)= a` O su es (C;D:A): Preuve.
IlsuÆtd'appliquerlelemmepre edentala onguration(;;1;A)eta= ?
puis de sereferer a ladenitionde =) ( as 3.b.).
Remarque.
Ondoittoutdem^emese ontenterde= a`
, 'estadiredel'equivalen elogique entre les ontraintes observees et elles de la semantique logique, ar on ne peut pasfairedispara^tre lesquanti ateurs existentiels, m^eme inutiles,dans la semantique operationnelle, alors que ela peut se produire dans ertains as pour des ontraintes (par exemple (;;1;9x p(y)) !(fxg;1;p(y))dont lestore est bienequivalenta 1, mais onne peut pas se debarrasser du x).
4.3 LCC
Le as des langagesLCC n'est pas beau oup plus ompliqueatraiter,en eetnousnous sommesdejaappuyessur unesemantiqueen logiquelineaire, il est don assez naturel d'y traduire les agents LCC. Il faudra ependant prendre garde a la denition de notre nouvelle theorie (`
C 0)
an de gerer orre tement la onsommation de ontraintes. De plus nous devons eviter la presen e de l'exponentiel ! qui permet d'aaiblir le store sans ontr^ole. On doit don se restreindre a un fragmentde LCC outoutes les ontraintes appara^ssent sous une formepurement lineaire, ependant ommela se tion pre edente l'a montre, ela n'enleve pas tant de pouvoir expressif que ela puisque les ontraintes \ lassiques" peuvent ^etre odees en les repetant a droite du symbole`.
4.3.1 Denitions
Soient (C; C
) un systeme de ontraintes lineaire (sans \!") et D des de larations. C
0
est deni omme dans lase tion 4.2.1. Soit ?? latradu tion de C dans C
0 denie par: (ef) ?? =e ?? f ?? (9x(e)) ?? =9x(lo (x)e ?? ) ?? = 0 si est atomique
Denissonsunerelationd'impli ation` C
0 surC 0
and'enfaireunsysteme de ontraintes: pour tout `
C N i2I d i et tout J ( I;J 6= ; posons ?? ` C 0 N d i N d ?? i .