********* SOLUTION
********* Mode: in_copia
********* Scoping: dynamic

     call p1[]     
          x=0 ->	x:p1 = 0
          y=4 ->	y:p1 = 4
          z=0 ->	z:p1 = 0
          t=2 ->	t:p1 = 2
     call p2[x]     in_out_rif y <- x; 
          z=x+2 ->	z:p2 = 2
          y=z ->	y:p2 = x:p1 = 2
          t=1 ->	t:p1 = 1
          x=2 ->	y:p2 = x:p1 = 2
     call p3[y, t]     in_out_copia y <- y; in_copia x <- t; 
          t=x ->	t:p3 = 1
          y=z*4 ->	y:p3 = 8
          x=x*4 ->	x:p3 = 4
          z=y ->	z:p2 = 8
     call p4[t]     in_out_rif y <- t; 
          t=2 ->	t:p4 = 2
          z=x ->	z:p4 = 4
          y=x ->	y:p4 = t:p3 = 4
          x=4 ->	x:p3 = 4
          write[x, y, z, t]
4 4 4 2 
     leaving p4, back to p3
          write[x, y, z, t]
4 8 8 4 
     leaving p3, back to p2
               copy y back -> y:p2 = x:p1 = 8
          write[x, y, z, t]
8 8 8 1 
     leaving p2, back to p1
          write[x, y, z, t]
8 4 0 1 
     leaving p1

