outcome (compile(e , t) , R) = outcome(mkli (val (e)) , R) 1
= step (mkli (val(e)) , R) 2
= a (ac , arg (mkli(val (e))) , R) 3
= a (ac , val(e) , R) 4
= a (ac , value (e , E) , R) 5
=t a(ac , value (e , E) , R) 6
outcome (compile (e , t) , R) = outcome (mkload (loc (e ,map)) , R) 1
= step (mkload (loc (e , map)) , R) 2
= a (ac , c (adr(mkload (loc (e , map))) , R), R) 3
= a (ac , c (loc (e , map) , R) , R) 4
= a (ac , c (e ,E) , R) hyp. 3
= a (ac , value(e , E) , R) 5
=t a(ac , value (e , E) , R) 6
outcome (compile (e , t) , R) = outcome (compile (s1 (e) , t) * mksto (t) * compile (s2(e) , t+1) * mkadd (t) , R) 1
8 = outcome(mkadd (t) , 7 trois fois
outcome (compile(s2 (e) , t + 1) ,
outcome (mksto(t) ,
outcome (compile(s1 (e) , t) , R))))
introduisons des notations :
nous voulons prouver :
R4 =t a (ac , v , R)
- R1 = outcome (compile (s1 (e) , t) , R) déf. de R1
11 =t a (ac , v1 , R) ¬ hypothèse d'induction
c (ac , R1) = c (ac , a (ac , v1 , R))
- R2 = outcome (mksto (t) , R1) déf. de R2
= a (t , c (ac , R1) , R1) 3
= a (t , v1 , R1) 10
=t +1 a (t , v1 , a (ac , v1 , R)) 11 + 6
=t +1,ac a (t , v1 , R) 6
c (t , R2) = c (t , a (t , v1 , R))
v1 = c (t , R2)
- R3 = outcome (compile (s2 (e) , t + 1) , R2) déf. de R3
=t +1 a (ac , v2 , R2) <- hypothèse d'induction
14 =t +1 a (ac , v2 , a (t , v1 , R)) 12
on peut ici utiliser l'hypothèse d'induction car :
c (loc (v , map) , R2) = c (loc (v , map) , a (t , v1 , R)) si loc (v , map) < t
= c (loc (v , map) , R) si loc (v , map) < t
= c (v , E) pour tout v
- R4 = outcome (mkadd (t) , R3) déf. de R4
= step (mkadd (t) , R3) 2
= a (ac , c (t , R3) + c (ac , R3) , R3) 3
v1 v2
= a (ac , v , R3) 13
=t +1 a (ac , v , a (ac , v2 , a (t , v1 , R))) 14
=t +1 a (ac , v , a (t , v1 , R)) 12
=t a (ac , v , R) 12
CQFD
Dernières modifications : Fri Feb 11 18:53:48 MET 2000