DM : Programmation 1

DM Programmation I

Énoncé

Younesse Kaddar

Q 1

Soit u,vI.

  • Cas 1 : u= et v=

    clairement : uv=

  • Cas 2 : u= et v

    clairement : uv=v

  • Cas 3 : u(a,b) et v(c,d) (où a,b,c,d{±}) :

    Alors uv=(min(a,c),max(b,d)), car

    • cet élément est clairement un majorant
    • tout majorant (e,f) de u=(a,b) et v=(c,d) vérifie :

      • u,v(e,f)a,cemin(a,c)e
      • u,v(e,f)b,dfmax(b,d)f

    Donc (min(a,c),max(b,d))(e,f), et (min(a,c),max(b,d)) est bien le plus petit des majorants.

Q 2

a).

I est un trellis complet, donc un DCPO, d’où

In reste un DCPO

car un produit cartésien de DCPO est un DCPO pour l’ordre produit (d’après le cours), et on conclut par une récurrence immédiate.

b).

Lemme : Un produit cartésien fini 𝒯𝒯1××𝒯n de treillis complets reste un treillis complet.

Soit A𝒯1××𝒯n.

Pour tout i1,n, pour tout n-uplet a(a1,,an)A, on pose

𝜋i(a)ai

(la projection sur la i-ème composante des n-uplets de A)

Montrons que

𝒯𝒜(supaA𝜋1(a)𝒯1,,supaA𝜋n(a)𝒯n)=sup𝒯A

(en utilisant le fait que les 𝒯i sont des treillis complets)

En effet :

  • 𝒜 majore A :

    Pour tout a(a1,,an)A, pout tout i1,n,

    aisupaA𝜋i(a)

    Donc a𝒜 pour l’ordre produit.

  • 𝒜 est le plus petit des majorants :

    Pour tout majorant m(m1,,mn) de A, pout tout i1,n,

    aA,amaA,𝜋i(a)misupaA𝜋i(a)mi

    Donc 𝒜m pour l’ordre produit.


En utilisant le lemme avec 𝒯1==𝒯n=I, on conclut que

In est un trellis complet.

Q 3

On applique le théorème de Knaster-Tarski à la fonction

F{InInηη0F(η)

Notons que

  • In est un trellis complet, d’après Q2.
  • F est bien à valeurs dans In, puisque F l’est, 𝜂0In, et In est un trellis.
  • F est bien monotone, puisque F l’est.

Montrons que son plus petit point fixe lfp(F) :

  1. est un point fixe de F :

    En effet :

    lfp(F)=F(lfp(F))𝜂0F(lfp(F)), donc lfp(F)F(lfp(F)), et comme F est inflationnaire, il vient que

    lfp(F)=F(lfp(F))
  2. est plus grand que 𝜂0 :

    En effet : cela résulte de

    𝜂0𝜂0F(lfp(F))=F(lfp(F))=lfp(F)
  3. est le plus petit point fixe de F supérieur à 𝜂0.

    En effet : Soit 𝜂 un point fixe de F supérieur à 𝜂0.

    Comme

    𝜂=F(𝜂)=𝜂0F(𝜂)car 𝜂0𝜂=F(𝜂)=F(𝜂)

    𝜂 est un point fixe de F(𝜂), et donc par définition de lfp(F) :

    lfp(F)𝜂

Donc F a bien un plus petit point fixe supérieur à 𝜂0.

Q 4


NB : On supposera qu’à chaque fois que, dans l’énoncé, il est noté que

Qeηk

(pour une expression e et un environnement quotient 𝜂) cela signfie, par convention, que :

Qeη=(k1,k+1)

On adoptera aussi cette convention.


Fe,c:InIn est monotone

En effet :

Si 𝜂,𝜂In sont tels que 𝜂𝜂.

  • Cas 1 : Si $Q⟦e⟧η, Q⟦e⟧{η’} ∈ \lbrace ⊥, 0 \rbrace$

    alors Fe,c(𝜂)=𝜂𝜂=Fe,c(𝜂)

  • Cas 2 : Si $Q⟦e⟧η, Q⟦e⟧{η’} ∉ \lbrace ⊥, 0 \rbrace$

    alors

    • Fe,c(𝜂)=𝜂Qc𝜂

    • Fe,c(𝜂)=𝜂Qc𝜂

    Or :

    • 𝜂𝜂 par hypothèse

    • Qc𝜂Qc𝜂 par monotonie de Qc

    Donc l’ensemble des majorants de {𝜂,Qc𝜂} est inclus dans l’ensemble des majorants de {𝜂,Qc𝜂}, et comme la borne sup est le plus petit d’entre eux :

    Fe,c(𝜂)=𝜂Qc𝜂𝜂Qc𝜂=Fe,c(𝜂)
    • Cas 3 : Si Qe𝜂{,0}Qe𝜂

      alors

      • Fe,c(𝜂)=𝜂

      • Fe,c(𝜂)=𝜂Qc𝜂

      Or :

      • Fe,c(𝜂)=𝜂𝜂 par hypothèse

      • 𝜂𝜂Qc𝜂=Fe,c(𝜂)

      Donc par transitivité :

      Fe,c(𝜂)=𝜂𝜂Qc𝜂=Fe,c(𝜂)
    • Cas 4 : Si Qe𝜂{,0}Qe𝜂

      • Sous-Cas 1 : Si Qe𝜂=

        alors Qe𝜂Qe𝜂= par monotonie, et

        Qe𝜂=

        ce qui est absurde (par hypothèse).

      • Sous-Cas 2 : Si Qe𝜂=0

        alors Qe𝜂Qe𝜂=0 par monotonie, d’où

        • Qe𝜂=0

        OU

        • Qe𝜂=

        ce qui est absurde (par hypothèse).

      Donc ce cas ne se présente pas.

Dans tous les cas :

Fe,c(𝜂)Fe,c(𝜂)

et le résultat est acquis.

Fe,c:InIn est inflationnaire.

Soit 𝜂In.

  • Cas 1 : Si Qeη{,0}

    alors 𝜂𝜂=Fe,c(𝜂) par réflexivité.

  • Cas 2 : Si Qeη{,0}

    alors 𝜂𝜂Qc𝜂=Fe,c(𝜂) car la borne sup est un majorant.

Dans tous les cas :

𝜂Fe,c(𝜂)

et le résultat est acquis.

Q 5

Si F une fonction inflationnaire d’un treillis complet L dans lui-même, et si ηη, alors

lfpη(F)lfp𝜂(F)

En effet :

Il suffit de constater que l’ensemble FP𝜂 des points fixes supérieurs à 𝜂 est, par transitivité, inclus dans l’ensemble FP𝜂 des points fixes supérieurs à 𝜂.

Comme lfpη(F) minore FP𝜂FP𝜂, lfpη(F) est un minorant de FP𝜂, et

lfpη(F)lfp𝜂(F)

puisque lfp𝜂(F) est le plus grand des minorants de FP𝜂.

Q 6

La fonction +:I×II est Scott-continue.

  1. Elle est monotone :

    Si (u,u),(v,v)I2 sont tels que (u,u)(v,v) :

    • Cas 1 : Si u= ou u=,

      alors u+u=v+v

    • Cas 1 : Si v= ou v=,

      alors comme uv et uv : il vient que u= ou u=, et on se ramène au cas précédent.

    • Cas 3 : Si (u,u)((a,b),(a,b)),(v,v)((c,d),(c,d)) (où a,a,b,b,c,c,d,d{±}),

      alors

      • ac et ac

        • donc a+ac+c
      • bd et bd

        • donc b+bd+d

      d’où u+u=(a+a,b+b)(c+c,d+d)=v+v

2.

Pour toute famille dirigée (vi,wi)iI de couples d’éléments de I, supiI(vi+wi)=(supiIvi)+(supiIwi).

Soit (vi,wi)iI une telle famille dirigée.

Notons que l’inégalité

supiI(vi+wi)(supiIvi)+(supiIwi)

est acquise par monotonie de + et puisque :

iI,vi+wi(supiIvi)+(supiIwi)(monotonie de +)supiI(vi+wi)(supiIvi)+(supiIwi)

Montrons l’autre inégalité.

  • Cas 1 : iI,vi= ou iI,wi= :

    alors supiIvi= ou supiIwi=, et on a bien

    supiI(vi+wi)=(supiIvi)+(supiIwi)
  • Cas 2 : iI,vi et jI,wj :

    alors en écrivant les vi (resp. wi) sous la forme (ai,bi) (resp. (ci,di)), et en utilisant le lemme de l’énoncé :

    • supiIvi=(infiI,vi≠⊥ai𝛼,supiI,vi≠⊥bi𝛽)
    • supiIwi=(infiI,wi≠⊥ci𝛾,supiI,wi≠⊥di𝛿)

    et

    (supiIvi)+(supiIwi)=(𝛼+𝛾,𝛽+𝛿)

    Par ailleurs, comme la famille est dirigée : i,jI,kI;

    {(vk,wk)(vi,wi)vkviwkwi(vk,wk)(vj,wj)vkvjwkwj

    donc i,jI,kI;

    (vk,wk)(vi,wj)

    donc par monotonie de + : i,jI,kI;

    suplI(vl+wl)vk+wkvi+wj

    et i,jI;vi(ai,bi)wj(cj,dj),

    suplI(vl+wl)vi+wj=(ai+cj,bi+dj)(𝛼+𝛾,bi+dj)

    Il vient alors que iI;vi(ai,bi),

    suplI(vl+wl)(𝛼+𝛾,bi+𝛿)

    et enfin :

    suplI(vl+wl)(𝛼+𝛾,𝛽+𝛿)=(supiIvi)+(supiIwi)

Donc + est bien Scott-continue.

Q 7

La fonction :II est Scott-continue.

  1. Elle est monotone :

    Si u,vI sont tels que uv :

    • Cas 1 : Si u=,

      alors clairement u=v

    • Cas 1 : Si v=,

      alors comme uv : il vient que u= et on se ramène au cas précédent.

    • Cas 3 : Si u(a,b),v(c,d) (où a,b,c,d{±}),

      alors

      • ac

        • donc ac
      • bd

        • donc db

      d’où u=(b,a)(d,c)=v

2.

Pour toute famille dirigée (vi)iI d’éléments de I$,$supiI(vi)=supiI(vi).

Soit (vi)iI une telle famille dirigée.

De même qu’auparavant, l’inégalité

supiI(vi)supiI(vi)

est acquise par monotonie de .

Montrons l’autre inégalité.

  • Cas 1 : iI,vi= :

    alors supiIvi=, et on a bien

    supiI(vi)=(supiIvi)
  • Cas 2 : iI,vi :

    alors en écrivant les vi sous la forme (ai,bi), et en utilisant le lemme de l’énoncé :

    supiIvi=(infiI,vi≠⊥ai𝛼,supiI,vi≠⊥bi𝛽)

    Par ailleurs, iI;vi(ai,bi),

    suplI(vl)vi=(bi,ai)(𝛽,ai)

    donc iI;vi(ai,bi),

    suplI(vl)(𝛽,ai)

    d’où l’opposé de la deuxième composante de suplI(vl) est inférieur à ai pour tout iI, et est donc inférieur à 𝛼.

    Il vient alors que la deuxième composante de suplI(vl) est supérieure à 𝛼, d’où enfin :

    suplI(vl)(𝛽,𝛼)=(supiIvi)

Donc est bien Scott-continue.

Q 8

Si F:InIn est une fonction inflationnaire et Scott-continue, alors la fonction gF:InIn,𝜂lfpη(F) est encore Scott-continue.

  1. La monotonie de gF a été montrée en Q 5.

2.

Pour toute famille dirigée (𝜂i)iI d’éléments de In, lfpsupiI𝜂i(F)=supiIlfp𝜂i(F).

Soit (𝜂i)iI une telle famille dirigée.

De même qu’auparavant, l’inégalité

lfpsupiI𝜂i(F)supiIlfp𝜂i(F)

est acquise par monotonie de gF.

Montrons l’autre inégalité : lfpsupiI𝜂i(F)supiIlfp𝜂i(F).



Méthode 1

supiIlfp𝜂i(F)=supiIF(lfp𝜂i(F))=F(supiIlfp𝜂i(F))(⊛)lfpsupiI𝜂i(F)(⊛⊛)
  • : par Scott-continuité de F, et car la famille (lfp𝜂i(F))iI reste dirigée.

    • en effet : pour tous i,jI, il existe k tel que 𝜂k𝜂i,𝜂j. Donc

      lfp𝜂k(F)lfp𝜂i(F),lfp𝜂j(F)

      par monotonie de gF.

  • : supiIlfp𝜂i(F) est un point fixe de F (voir l’égalité qui précède) supérieur à tous à les lfp𝜂i(F) (pour tout iI), donc (par transitivité) à tous les 𝜂i (pour tout iI), donc à supiI𝜂i. Par définition de lfpsupiI𝜂i(F), la minoration s’ensuit.



Méthode 2

NB : J’ai trouvé la méthode 1 après avoir rédigé la méthode 2 : je n’ai pu me résoudre à effacer cette dernière, que je laisse ici à titre alternatif.

Lemme : Si f:InIn est Scott-continue : pour tout 𝜂In, la fonction 𝜂𝜂f(𝜂) reste Scott-continue.

En effet :

  • sa monotonie est héritée de celle de f
  • toute famille dirigée (𝜂i)iI vérifie :

    supiI(𝜂f(𝜂i))=𝜂supiIf(𝜂i)

    car

    • iI,𝜂f(𝜂i)𝜂supiIf(𝜂i)supiI(𝜂f(𝜂i))𝜂supiIf(𝜂i)
    • supiI(𝜂f(𝜂i))𝜂$et$supiI(𝜂f(𝜂i))supiIf(𝜂i)$,donc$supiI(𝜂f(𝜂i))𝜂supiIf(𝜂i)

      Par suite :

      supiI(𝜂f(𝜂i))=𝜂supiIf(𝜂i)=𝜂f(supiI𝜂i)

      par Scott-continuité de f, et la Scott continuité de 𝜂𝜂f(𝜂) est acquise.


On a vu en Q3 que :

𝜂In,lfp𝜂(F)=lfp(𝜂𝜂F(𝜂))

Donc en appliquant le théorème du point fixe de Kleene à la fonction Scott-continue 𝜂(supiI𝜂i)F(𝜂) (d’après le lemme):

lfpsupiI𝜂i(F)=supm((supiI𝜂i)F)m(n)

en notant

  • n le n-uplet (,,)In.
  • (supiI𝜂i)F la fonction 𝜂(supiI𝜂i)F(𝜂)

On veut donc montrer que :

lfpsupiI𝜂i(F)supiIlfp𝜂i(F)supm((supiI𝜂i)F)m(n)supiIsupm(𝜂iF)m(n)=supmsupiI(𝜂iF)m(n)

et il suffit pour cela de montrer que, pour tout entier m :

((supiI𝜂i)F)m(n)supiI(𝜂iF)m(n)

Or : i1,,imI,

r=1m(𝜂irF)(n)=(𝜂i1F)(𝜂imF)(n)(𝜂kF)m(n)((supjI𝜂j)F)m(n)

  • 𝜂i1,,𝜂im𝜂k : un tel majorant existe car la famille est dirigée

    • c’est la définition pour m=2, et on conclut par une récurrence immédiate pour m2, en utilisant la transitivité de .
  • on a utilisé la monotonie (pour l’ordre point à point) de 𝜂𝜂F (qui découle de la monotonie de F) et le fait qu’une composée de fonctions montones reste monotone :

    • (𝜂i1F)((𝜂i2F)(𝜂imF)(n))(𝜂kF)((𝜂i2F)(𝜂imF)(n))
    • (𝜂kF)(𝜂i2F)((𝜂i3F)(𝜂imF)(n))(𝜂kF)(𝜂kF)((𝜂i3F)(𝜂imF)(n))

      • car (𝜂i2F)((𝜂i3F)(𝜂imF)(n))(𝜂kF)((𝜂i3F)(𝜂imF)(n))

        et (𝜂kF) est monotone

    • on conclut par une récurrence immédiate, par monotonie de 𝜂𝜂F et de (𝜂kF)l pour tout l1,m (par composition de fonctions monotones).

Or : i1,,imI,

r=1m(𝜂irF)(n)((supjI𝜂j)F)m(n)

implique que

((supiI𝜂i)F)m(n)=r=1m(supirI𝜂irF)(n)supiI(𝜂iF)m(n)

car :

  • Pour tous x,yIn : iI,(𝜂iF)(x)y((supiI𝜂i)F)(x)y

    • En effet :

      iI,(𝜂iF)(x)=𝜂iF(x)y implique que y majore les 𝜂i, donc ysupiI𝜂i, et comme yF(x), le résultat s’ensuit.

  • on conclut par une récurrence immédiate en utilisant le résultat précédent et la monotonie de (supiI𝜂i)F.

Donc le résultat est acquis.

Q 9

La fonction filt:E{ρE|eρ0} est Scott-continue.

  1. Elle est monotone :

    Si E,E(Env) sont tels que EE : il est clair que

    filt(E){ρEE|eρ0}{ρE|eρ0}filt(E)

2.

Pour toute famille dirigée (Ei)iI d’éléments de (Env),

filt(supiIEi)=filt(iIEi)=supiIfilt(Ei)

Soit (𝜂i)iI une telle famille dirigée.

L’inégalité

filt(supiIEi)supiIfilt(Ei)

est acquise par monotonie.

Montrons que :

filt(supiIEi)=filt(iIEi)={ρiIEi|eρ0}supiIfilt(Ei)=supiI{ρEi|eρ0}=iI{ρEi|eρ0}

C’est clair, car pour tout ρiIEi tel que eρ0, il existe iI tel que

𝜌Ei

donc

𝜌{ρEi|eρ0}

et

𝜌jI{ρEj|eρ0}

Ainsi, on a montré que

{ρiIEi|eρ0}iI{ρEi|eρ0}

Q 10

On note f la fonction Scott-continue EE𝛷e,c(E).

Lemme : m,

Em=fm+1()

En effet : par récurrence sur m :

  • Initialisation : pour m=0, le résultat est acquis :

    E0=E=E=E𝛷e,c()=f()

    car Xc= (aucun environnement n’est accessible depuis c et car il n’existe aucun environnement dans ).

  • Hérédité : pour m1 :

    Em=EEm(car (Em)m croît, et EEm (m1))=EEm1Xc{ρEm1|e𝜌0})=f(Em1)=fm+1()(par hypothèse de récurrence)

    Le résultat est donc acquis.

Donc

Xwhile e do cE=m0Em=m1fm()(d’après le lemme)=m0fm()=supm0fm()=lfp(f)(par le théorème du point fixe de Kleene (f est Scott-continue))=lfp(EE𝛷e,c(E))=lfpE(𝛷e,c)(d’après Q3)

ce qui conclut.

Q 11

NB : les intervalles considérés sont des intervalles entiers.

Pour tout vI, pour tout E(),

α(E)vEγ(v)

En effet : Soient vI, E().

  • Cas 1 : v=

    α(E)v=α(E)=E=Eγ(v)=
  • Cas 2 : v(a,b) (où a,b{±} et a+1<b) :

    • :

      Si α(E)=(infE1,supE+1)v=(a,b), alors

      • infEa+1
      • supEb1

      et on a bien

      E[infE,supE]]a,b[=γ(v)
    • :

      Si Eγ(v)=]a,b[ , alors

      • Comme eE,ea+1, il vient que infEa+1
      • Comme eE,eb1, il vient que supEb1

      et on a bien

      α(E)=(infE1,supE+1)v=(a,b)

Q 12

Soit c une commande.

On suppose que pour tout environnement quotient η et tout ensemble E(Env) que η représente correctement, Qc𝜂 représente correctement XcE.

Pour tous 𝜂In et E(Env), si η représente correctement E, alors Qwhile e do c𝜂 représente correctement Xwhile e do cE.

En effet :

Soit 𝜂In représentant correctement E(Env), i.e 𝛼({ρ(x)|ρE})η(x), ce qui équivaut à {ρ(x)|ρE}𝛾(η(x)) pour toute variable x.

Montrons que : pour toute variable x,

{ρ(x)|ρlfpE(Φe,c)}𝛾(lfpη(Fe,c)(x))

Lemme 1 : Soit X est un DCPO pointé, f:XX une fonction inflationnaire Scott-continue, xX :

lfpx(f)supmfm(x)

(fm(x))m est une chaîne, et est donc dirigée.

Posons

ysupmfm(x)

Alors :

f(y)=f(supmfm(x))=supmfm+1(x)(par Scott-continuité de f)=supmfm(x)(car f est inflationnaire (f(x)x))

Donc :

y=f(y) et y est un point fixe.

Montrons que c’est le plus petit point fixe supérieur à x :

Si z est un autre point fixe supérieur à x :

xzf(x)f(z)=z(par monotonie de f)m,fm(x)z(par une récurrence immédiate)yz

En appliquant le lemme précédent, il vient que :

  • lfpη(Fe,c)=supmFe,cm(η)
  • lfpE(Φe,c)=m0Φe,cm(E)

Scolie 1 : Pour tous environnements quotients 𝜂,𝜂 et tous ensembles E,E(Env) représentés correctement respectivement par 𝜂,𝜂 : 𝜂𝜂 représente correctement EE

En effet :

pour toute variable x, il suffit de remarquer que :

{{ρ(x)|ρE}𝛾(𝜂(x)){ρ(x)|ρE}𝛾(𝜂(x)){ρ(x)|ρEE}𝛾(𝜂(x))𝛾(𝜂(x))𝛾((𝜂𝜂)(x))

la dernière inclusion venant du fait que :

  • 𝛾(𝜂(x))𝛾((𝜂𝜂)(x)) et 𝛾(𝜂(x))𝛾((𝜂𝜂)(x)) car 𝛾 est monotone
  • ce qui impique que 𝛾(𝜂(x))𝛾(𝜂(x))𝛾((𝜂𝜂)(x))

Scolie 2 : Pour tout environnement quotient η et tout ensemble E(Env) que η représente correctement :

Fe,c(η) représente correctement Φe,c(E)

En effet :

  • Cas 1 : Si Qeη=⊥ ou Qeη=𝛼({0}) :

    alors

    • Φe,c(E)=EXc{ρE|eρ0}
    • Fe,c(η)=η

    mais comme Qeη représente correctement {e𝜌|𝜌E}, il vient que :

    {e𝜌|𝜌E}𝛾(Qeη){0}

    Donc {ρE|eρ0}=, et :

    Xc{ρE|eρ0}=Xc=

    (cf. l’initialisation du lemme de Q10)

    Par suite :

    Φe,c(E)=E

    et le résultat est acquis (par hypothèse).

  • Cas 2 : Sinon, si Qeη≠⊥ et Qeη𝛼({0}) :

    alors

    • Φe,c(E)=EXc{ρE|eρ0}
    • Fe,c(η)=ηQcη

    et :

    {e𝜌|𝜌E}𝛾(Qeη),{0}

    (car 𝛼𝛾=id)

    D’où :

    {ρE|eρ0}E

    et pour toute variable x :

    {ρ(x)|ρ{ρE|eρ0}}{ρ(x)|ρE}𝛾(𝜂(x))

    donc 𝜂 représente correctement {ρE|eρ0}, donc Qc𝜂 représente correctement Xc{ρE|eρ0} (d’après le résultat admis rappelé au début).

    On conclut avec la scolie 1 : Fe,c(η) représente correctement Φe,c(E).

Lemme 2 : Pour tout m, Fe,cm(η) représente correctement Φe,cm(E)

En effet : par récurrence sur m :

  • Initialisation : pour m=0, le résultat est acquis.

  • Hérédité : pour m1 :

    On utilise la scolie 2 avec Fe,cm1(η) qui, par hypothèse de récurrence, représente correctement Φe,cm1(E), pour en déduire que Fe,cm(η) représente correctement Φe,cm(E).


On montre ainsi, par une récurrence immédiate avec la scolie 2 et le lemme 2, que :

Pour tout N,

sup0mNFe,cm(η) représente correctement m=0NΦe,cm(E)

Donc pour tout N, pour toute variable x :

{ρ(x)|ρm=0NΦe,cm(E)}𝛾(sup0mNFe,cm(η)(x))𝛾(supmFe,cm(η)(x))=𝛾(lfpη(Fe,c)(x))

par monotonie de 𝛾, et :

lfpη(Fe,c) représente correctement m=0NΦe,cm(E) pour tout N.


Par l’absurde :

Si lfpη(Fe,c) ne représentait pas correctement lfpE(Φe,c)=m0Φe,cm(E) : il existerait une variable x et un environnement (réel) 𝜌m0Φe,cm(E) tels que 𝜌(x)({ρ(x)|ρm0Φe,cm(E)})\𝛾(lfpη(Fe,c)(x)).

Or, il existerait un N tel que 𝜌Φe,cN(E)m=0NΦe,cm(E), d’où

𝜌(x)({ρ(x)|ρm=0NΦe,cm(E)})\𝛾(lfpη(Fe,c)(x))

ce qui est absurde, car {ρ(x)|ρm=0NΦe,cm(E)}𝛾(lfpη(Fe,c)(x)).


Ainsi :

lfpη(Fe,c)=supmFe,cm(η) représente correctement lfpE(Φe,c)=m0Φe,cm(E).

Q 13

La démonstration se fait par induction structurelle sur la commande (ou : par récurrence sur la structure de la commande).

En Q12, on avait c=while e do c, et on a utilisé l’hypothèse d’induction, supposée acquise, sur c, pour en déduire le résultat pour c.

Q 14 / 15

Pour tous 𝜂In et E(Env), si η représente correctement E, alors Qx:=e𝜂=ηη[xQeη] représente correctement Xx:=eE=E{ρ[xeρ]|ρE}.

En effet :

Il suffira, en utilisant la scolie 2 de Q12, de montrer que η[xQeη] représente correctement {ρ[xeρ]|ρE}.

i.e pour toute variable y,

{ρ(y)|ρ{ρ[xeρ]|ρE}}𝛾(η[xQeη](y))

Soit y une variable.

On sait par ailleurs que Qeη représente correctement {eρ|ρE}, i.e :

{eρ|ρE}𝛾(Qeη)

Soit ρ{ρ[xeρ]|ρE}.

Montrons que ρ(y)𝛾(η[xQeη](y))

  • Cas 1 : Si yx

    alors

    𝜌(y){ρ(y)|ρE}𝛾(𝜂(y)=η[xQeη](y))=𝛾(η[xQeη](y))

    (car 𝜂 représente correctement E).

  • Cas 2 : Si y=x

    alors

    𝜌(y)=𝜌(x)=e𝜌{eρ|ρE}𝛾(Qeη=η[xQeη](y))

    (d’après ).

Donc le résultat est acquis.

Q 16

NB : on utilisera les notations usuelles pour dénoter la relation binaire “stricte” > obtenue à partir de : > et 

Soit x une variable telle que 𝛾(𝜂(x)) (donc si 𝜂(x)(a,b) : a,b)

Avec while 1e do x:=x+1c :

comme

Fe,c(η){η si Qeη=⊥ ou Qeη=0ηQcη sinon.

ici :

Fe,c(η)=ηQx:=x+1η=ηη[xQx+1η]=ηη[xη(x)+(0,2)]

Or

η[xη(x)+(0,2)]>η

(pour l’ordre point à point : il y a seulement à remarquer que η(x)+(0,2)>η(x))

donc

Fe,c(η)=η[xη(x)+(0,2)]>η

En rétiréant avec 𝜂1Fe,c(η), on montre de la même manière que :

Fe,c(η1)=η1[xη1(x)+(0,2)]>η1

et par une récurrence immédiate :

m,𝜂mFe,c(ηm1)=ηm1[xηm1(x)+(0,2)]>ηm1

Donc la suite (𝜂m)m n’est pas stationnaire, et la procédure décrite ne termine pas.

Q 17

Cette fois :

Fe,c(η)={η si Qeη=⊥ ou Qeη=0ηQcη sinon.

On remarque que : pour tout environnement quotient 𝜂, Fe,c(𝜂)𝜂 (car ηQcη𝜂).

Donc pour tout m :

  • Cas 1 : 𝜂m=Fe,c(ηm1)=ηm1( si Qe𝜂m1{,(1,1)} ou Qc𝜂m1𝜂m1)

OU

  • Cas 2 : 𝜂m=Fe,c(ηm1)>ηm1

Dans le dernier cas, il existe une variable x telle que 𝜂m(x) est de la forme

  • (a,b) si 𝜂m1(x)=
  • (,b) ou (a,+) sinon

d’où il existe i0,2 indices p1>>pi>m tels que

j1,i,𝜂pj(x)>𝜂pj1(x) (si i1, 𝜂p1(x) vaut alors (,+), d’où (𝜂q(x))qp1 est constante de valeur (,+))

Donc

la suite (𝜂m)m ne peut croître strictement qu’un nombre fini de fois.

(au plus 3n fois, pour être précis)

On remarque par ailleurs que

si m;𝜂m+1=𝜂m, alors pm,𝜂p=𝜂m

(car 𝜂m+2=Fe,c(𝜂m+1)=Fe,c(𝜂m)=𝜂m+1=𝜂m, et on conclut par une récurrence immédiate sur q1 que q1,𝜂m+q=𝜂m)

Avec et , on conclut que donc que la suite croissante (𝜂m)m est stationnaire, et la procédure décrite termine.


Montrons que Qcη représente toujours correctement XcE pour toute commande c.

On remarque que, pour tout environnement quotient 𝜂 et pour toute commande c :

𝜂Qcη𝜂Qcη
  • en effet : pour toute variable x :

    • Si Qcη(x)𝜂(x), alors (𝜂Qcη)(x)=(𝜂Qcη)(x)=𝜂(x)
    • Sinon :

      • si 𝜂(x)= : (𝜂Qcη)(x)=(𝜂Qcη)(x)=Qcη(x)
      • si 𝜂(x)(a,b),Qcη(x)(c,d) (où a,b,c,d{±}) :

        (𝜂Qcη)(x)=(min(a,c),max(b,d))

        et en posant

        • 𝛼{min(a,c) si min(a,c)=a sinon
        • 𝛽{max(b,d) si max(b,d)=b+ sinon
        (𝜂Qcη)(x)=(min(a,c),max(b,d))(𝛼,𝛽)(𝜂Qcη)(x)

Il s’ensuit que :

Fe,cFe,c

(pour l’ordre point à point)

Il vient que, pour toute commande c, Qcη

  • est soit resté inchangé
  • a soit augmenté au sens large

    • c’est le cas pour les commandes de la forme while e do c, car Fe,cFe,c et par monotonie (pour l’ordre point à point) de la fonction 𝛹𝜂:flfp𝜂(f) pour tout environnement quotient 𝜂

      • en effet: la monotonie de 𝛹𝜂:flfp𝜂(f) vient du lemme 1 de Q12 :

        si fg,

        lfp𝜂(f)=supmfm(𝜂)gm(𝜂)supmgm(𝜂)=lfp𝜂(g)

Scolie : Si η et 𝜂 sont des environnements tels que

  • 𝜂𝜂
  • 𝜂 représente correctement un ensemble E d’environnements (réels)

alors 𝜂 représente correctement E.

En effet :

pour toute variable x, il suffit de remarquer que :

{{ρ(x)|ρE}𝛾(𝜂(x))𝛾(𝜂(x))𝛾(𝜂(x)) (par monotonie de 𝛾){ρ(x)|ρE}𝛾(𝜂(x))

Donc d’après la scolie :

Qcη représente toujours correctement XcE pour toute commande c.

Leave a comment