• Aucun résultat trouvé

Nousavons hoisid'exprimerlesspé i ationsdesfon tionssousformede ouplesdepre/post

[Hoa69℄.

L'expressiondesspé i ationssousformepre/postaétéprivilégiéepourdiérentspoints:

 le otésimpled'appréhensiond'untelformatd'expression(danslesens ara térisationd'un

sous-domaineenentréeasso ié àun omportementpré is),

 la simpli ité d'expression (nousaurions pu opterpar exemple pour les spé i ations algé-

briquesmaisnouslesavonsjugéplus omplexespourl'utilisateur)et

 le point de vue outillage (le rle de haque partie de ontraintes des pre/post est laire-

ment déni : valeursinterdites, ara térisationdu sous-domaineen entrée, ara térisation

entrées/sorties).

Leformatdesspé i ations hoisimanipuledesformulesdenotrelangage

L

.

Avant d'aller dans le détail, nous allons donner deux illustrations du type de spé i ation

Parexemple,prenonslafon tion

valAbs(X) = Y

ave

p1(X) = x

et

p1(Y ) = y

al ulantlavaleur

absolued'unnombredeprol:

valAbs(x) = (y)

lafon tion

valAbs

est totale

et deuxsous-domainesenentréedelafon tionpeuventêtredistingués:

(x < 0)

(x ≥ 0)

et pour haque sous-domaine orrespondun omportement pré is de lafon tion (en respe tant

l'ordrepré édentdesous-domainesenentrée:

(y = −x)

(y = x)

Illustration 24

Sinousprenonsen orel'exempledelafon tion

div(x1, x2) = (y)

lavaleurnullepour

x2

estinterdite:

(x26= 0)

La fon tion ne possède pas de omportement parti ulier pour de sous-domainesen entrée et le

omportementensortiedelafon tionvérie:

(y = x1/x2)

ave

p1(X) = x1

,

p2(X) = x2

et

p1(Y ) = y

Nous avons don besoin de ara tériser les ontraintes de bonne utilisation d'une fon tion, de

ara tériserlessous-domainesenentréeasso iéàun omportementdonnédelafon tionetenn

de ara tériser es omportements.

Chaquepré onditiond'unefon tion représenteunensemble de ontraintes(pouvantêtre des

onjon tionset/oudisjon tionsde ontraintes)àrespe terparl'utilisateurpourunbonfon tion-

nementdelafon tion ara térisantledomainededénitiondelafon tionetlespost onditionsles

ontraintesquelafon tiondoitrempliraprèsexé ution.Ceformatàl'avantaged'êtrerapidement

ompréhensibleparl'utilisateur,deplusils'agitd'unformat ourammentutilisé quipermetune

identi ationpré isedes hangementsd'états.

Définition  3.4.1

Lespré onditionsd'unefon tionfdeprol

f (X) = Y

sontunensembledepropriétéspor-

tant surlesvariables de

X

.Nousnoterons la onjon tion despré onditions d'unefon tion

P re(f, X)

.Ledomaine ara tériséparlespré onditionssedénit omme

Dom(P re(f, X)) = {(a1. . . an)|M |=ν

P re(f, X)}

ave

ν

interprétationuniquesur

M

telleque

∀i, 1 ≤ i ≤ n, ν(xi) = ai

ave

xi= pi(X)

pour

Dom(P re(f, X)) = Def (f )

.

Le non respe t de l'ensemble des ontraintes des pré onditions d'une fon tion orrespond à

unevaleurnondénie

U ndef

etl'appli ationd'unefon tionsurunevaleurnondénie orrespond

àunrésultatnondéni.

Les post onditions traduisent le omportement attendu de la fon tion et permettent

d'exprimerlespropriétéssurlessortiesprévues.

Nousavons hoisi ommeformatd'expressiondespost onditionsleformatsuivant:

(1)P ost(f, X, Y ) : (D(f, X) ∧ Q(f, X, Y ))

ar il est fa ilement ompréhensible par l'utilisateur :

D(f, X)

détermine un sous-domaine en

entrée de la fon tion et

Q(f, X, Y )

dénit le omportement attendu pour e sous-domaine par

l'expressiondes propriétés à vérier pour

X

et

Y

. Il est toutefois possibleque la post ondition

soitexpriméeselonleformatsuivantplusgénéral:

(2)P ost(f, X, Y ) : Q(f, X, Y )

dans e as,les ontraintes expriméespar

Q(f, X, Y )

s'appliquentsur latotalité dudomaine de

dénitiondelafon tion.

Définition 3.4.2

Les post onditions d'une fon tion ftelleque

f (X) = Y

sont unensemble de propriétés

P ost(f, X, Y )

surlesentréesetlessorties de

f

dontledomaine sedénit omme :

Dom(P ost(f, X, Y )) = {(a1. . . an)|∃b1. . . bmM |=ν

P ost(f, X, Y )}

ave

ν

interprétation uniquesur

M

telleque

∀i, 1 ≤ i ≤ n, ν(xi) = ai

Notonsquenousnouslimitonsi iaux asoù

Q(f, X, Y )

estuneexpressionfon tionnellede

Y

enfon tionde

X

i.e.quin'induitpasde ontraintessupplémentairessur

X

parrapportà

D(f, X)

soit:

Dom(P ost(f, X, Y )) = Dom(D(f, X))

La se onde partie d'une post ondition,

Q(f, X, Y )

, dénit le omportement attendu de la

fon tiondansle odomainedelapost ondition:

CoDom(P ost(f, X, Y )) = {(b1. . . bm)|∃a1. . . an

∈ Dom(P ost(f, X, Y )), M |=νP ost(f, X, Y )}

ave

ν

interprétationuniquesur

M

telleque

∀i, 1 ≤ i ≤ n, ν(xi) = ai

∀j, 1 ≤ j ≤ m, ν(yj) = bi

toujoursave

xi= pi(X)

pour

X

à

n

omposanteset

yj= pj(X)

pour

Y

à

m

omposantes.

Pourune fon tionftelleque

f (X) = Y

, lespré onditions

P re(f, X)

et haquepost ondition

P osti(f, X, Y )

peuvent être représentées par analogie au triplet de la logique de Hoare sous la

forme:

ave

P osti(f, X, Y ) = (Di(f, X) ∧ Qi(f, X, Y ))

. LesensintuitifdutripletdeHoarepré édentest

quesi

X

vérie

P re(f, X) ∧ Di(f, X)

alors

f

setermineet àl'issue del'exé utionde

f

,

X

et

Y

vérient

Qi(f, X, Y )

.

P re(f, X)

et

P osti(f, X, Y )

sontdesformules universellementquantiéesdans

L

et respe ti-

vementsur

X

et

X ∪ Y

.

Nousnoteronsun ouplepre/post

P Pi(f, X, Y )

d'unefon tion

f

telle que

f (X) = Y

P Pi(f, X, Y ) : P re(f, X) ∧ Di(f, X)[f (X) = Y ]Qi(f, X, Y )

P Pi(f, X, Y ) = P re(f, X) ∧ Di(f, X), Qi(f, X, Y )

Convention 1

Pourallégerunpeulesnotations,

Dom(f )|P re(f,X)∧D

i(f,X)

seranoté

Dom(P re(f, X) ∧ Di(f, X))

.

Le support d'un ouple pre/post

P Pi(f, X, Y )

,

Dom(P Pi(f, X, Y ))

et son odomaine,

CoDom(P Pi(f, X, Y ))

sontdénis omme:

Dom(P Pi(f, X, Y )) = Dom(P re(f, X)) ∩ Dom(P ost(f, X, Y ))

= Dom(P re(f, X)) ∩ Dom(Di(f, X)

CoDom(P Pi(f, X, Y )) = CoDom{(b1. . . bm)|∃(a1. . . an) ∈ Dom(P Pi(f, X, Y )), M |=ν

Qi(f, X, Y )}

L'interprétationd'un ouplepre/postdansnotremodèlevérie:

P PiM(f, X, Y ) =

{(a1. . . an, b1. . . bm)|

(a1. . . an) ∈ Dom(P Pi(f, X, Y )), (b1. . . bm) ∈ CoDom(P Pi(f, X, Y )),

M |=ν

P re(f, X) ∧ Di(f, X) ∧ Qi(f, X, Y )}

ave

ν(xi) = ai

et

ν(yi) = bi

.

Laspé i ationdelafon tionf,notée

Spec(f, X, Y )

orrespondàunensemblenide ouples

pre/postpourf:

Spec(f, X, Y ) : {P Pi(f, X, Y )}i∈I

ave

I

unensembled'entiersnaturelsborné.

Remarque(s) 11

Les domaines des diérents ouples pre/post d'une fon tion

f

sont aussi appelés les diérents

domainesfon tionnelsdelafon tion

f

.Ils'agitdesous-domainesdesvaleursdesvariablesd'entrée

Un domaine fon tionnel

DFi

orrespond ausupport d'un ouple pre/postde la spé i-

ationtelque:

DFi= Dom(P Pi(f, X, Y ))

P Pi(f, X, Y ) ∈ Spec(f, X, Y )

Documents relatifs