diffusion_seq_5_2 Trace summary:

Step 1: State 0 -- diffusion_seq.c line 44 [main@0->main@1] "init();" -> State 1
Step 2: State 1 -- diffusion_seq.c line 24 [init@0->init@1] "i=0" -> State 2
Step 3: State 2 -- diffusion_seq.c line 24 [init@1->init@2] "for (i=0; i<nx; i++)" [true] -> State 3
Step 4: State 3 -- diffusion_seq.c line 24 [init@2->init@3] "u[i] = u0[i];" -> State 4
Step 5: State 4 -- diffusion_seq.c line 24 [init@3->init@1] "i++" -> State 5
Step 6: State 5 -- diffusion_seq.c line 24 [init@1->init@2] "for (i=0; i<nx; i++)" [true] -> State 6
Step 7: State 6 -- diffusion_seq.c line 24 [init@2->init@3] "u[i] = u0[i];" -> State 7
Step 8: State 7 -- diffusion_seq.c line 24 [init@3->init@1] "i++" -> State 8
Step 9: State 8 -- diffusion_seq.c line 24 [init@1->init@2] "for (i=0; i<nx; i++)" [true] -> State 9
Step 10: State 9 -- diffusion_seq.c line 24 [init@2->init@3] "u[i] = u0[i];" -> State 10
Step 11: State 10 -- diffusion_seq.c line 24 [init@3->init@1] "i++" -> State 11
Step 12: State 11 -- diffusion_seq.c line 24 [init@1->init@4] "for (i=0; i<nx; i++)" [false] -> State 233
Step 13: State 233 -- diffusion_seq.c line 25 [init@4->init@5] "}" -> State 234
Step 14: State 234 -- diffusion_seq.c line 45 [main@1->main@2] "write(0);" -> State 235
Step 15: State 235 -- diffusion_seq.c line 30 [write@0->write@1] "i=0" -> State 236
Step 16: State 236 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 237
Step 17: State 237 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 238
Step 18: State 238 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 239
Step 19: State 239 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 240
Step 20: State 240 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 241
Step 21: State 241 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 242
Step 22: State 242 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 243
Step 23: State 243 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 244
Step 24: State 244 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 245
Step 25: State 245 -- diffusion_seq.c line 30 [write@1->write@4] "for (i=0; i<nx; i++)" [false] -> State 246
Step 26: State 246 -- diffusion_seq.c line 31 [write@4->write@5] "}" -> State 247
Step 27: State 247 -- diffusion_seq.c line 46 [main@2->main@3] "iter = 1" -> State 248
Step 28: State 248 -- diffusion_seq.c line 46 [main@3->main@4] "for (iter = 1; iter <= nsteps; iter++)" [true] -> State 249
Step 29: State 249 -- diffusion_seq.c line 47 [main@4->main@5] "update();" -> State 250
Step 30: State 250 -- diffusion_seq.c line 37 [update@0->update@1] "i=1" -> State 251
Step 31: State 251 -- diffusion_seq.c line 37 [update@1->update@2] "for (i=1; i<nx-1; i++)" [true] -> State 252
Step 32: State 252 -- diffusion_seq.c line 37 [update@2->update@3] "u_new[i] =  u[i] + kappa*(u[i+1] + u[i-1] - 2*u[i]);" -> State 253
Step 33: State 253 -- diffusion_seq.c line 37 [update@3->update@1] "i++" -> State 254
Step 34: State 254 -- diffusion_seq.c line 37 [update@1->update@4] "for (i=1; i<nx-1; i++)" [false] -> State 255
Step 35: State 255 -- diffusion_seq.c line 38 [update@4->update@5] "i=1" -> State 256
Step 36: State 256 -- diffusion_seq.c line 38 [update@5->update@6] "for (i=1; i<nx-1; i++)" [true] -> State 257
Step 37: State 257 -- diffusion_seq.c line 38 [update@6->update@7] "u[i] = u_new[i];" -> State 258
Step 38: State 258 -- diffusion_seq.c line 38 [update@7->update@5] "i++" -> State 259
Step 39: State 259 -- diffusion_seq.c line 38 [update@5->update@8] "for (i=1; i<nx-1; i++)" [false] -> State 260
Step 40: State 260 -- diffusion_seq.c line 39 [update@8->update@9] "}" -> State 261
Step 41: State 261 -- diffusion_seq.c line 48 [main@5->main@6] "write(iter);" -> State 262
Step 42: State 262 -- diffusion_seq.c line 30 [write@0->write@1] "i=0" -> State 263
Step 43: State 263 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 264
Step 44: State 264 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 265
Step 45: State 265 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 266
Step 46: State 266 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 267
Step 47: State 267 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 268
Step 48: State 268 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 269
Step 49: State 269 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 270
Step 50: State 270 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 271
Step 51: State 271 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 272
Step 52: State 272 -- diffusion_seq.c line 30 [write@1->write@4] "for (i=0; i<nx; i++)" [false] -> State 273
Step 53: State 273 -- diffusion_seq.c line 31 [write@4->write@5] "}" -> State 274
Step 54: State 274 -- diffusion_seq.c line 46 [main@6->main@3] "iter++" -> State 275
Step 55: State 275 -- diffusion_seq.c line 46 [main@3->main@7] "for (iter = 1; iter <= nsteps; iter++)" [false] -> State 305
Step 56: State 305 -- diffusion_seq.c line 50 [main@7->main@8] "}" -> State 306
Step 57: State 306

diffusion_seq_5_2 Trace details:

begin state 0
  save = true
  onStack = true;
  seen = true;
  pathCondition : X0 + -2 >= 0 && -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7 (real[X0]);
      end global variables;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 0.

Step 1: State 0 -- diffusion_seq.c line 44 [main@0->main@1] "init();" -> State 1

begin state 1
  save = false
  onStack = true;
  seen = true;
  pathCondition : X0 + -2 >= 0 && -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7 (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 0;
        i = undefined (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 1.

Step 2: State 1 -- diffusion_seq.c line 24 [init@0->init@1] "i=0" -> State 2

begin state 2
  save = true
  onStack = true;
  seen = true;
  pathCondition : X0 + -2 >= 0 && -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7 (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 1;
        i = 0 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 2.

Step 3: State 2 -- diffusion_seq.c line 24 [init@1->init@2] "for (i=0; i<nx; i++)" [true] -> State 3

begin state 3
  save = false
  onStack = true;
  seen = true;
  pathCondition : X0 + -2 >= 0 && -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7 (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 2;
        i = 0 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 3.

Step 4: State 3 -- diffusion_seq.c line 24 [init@2->init@3] "u[i] = u0[i];" -> State 4

begin state 4
  save = false
  onStack = true;
  seen = true;
  pathCondition : X0 + -2 >= 0 && -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]> (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 3;
        i = 0 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 4.

Step 5: State 4 -- diffusion_seq.c line 24 [init@3->init@1] "i++" -> State 5

begin state 5
  save = true
  onStack = true;
  seen = true;
  pathCondition : X0 + -2 >= 0 && -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]> (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 1;
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 5.

Step 6: State 5 -- diffusion_seq.c line 24 [init@1->init@2] "for (i=0; i<nx; i++)" [true] -> State 6

begin state 6
  save = false
  onStack = true;
  seen = true;
  pathCondition : X0 + -2 >= 0 && -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]> (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 2;
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 6.

Step 7: State 6 -- diffusion_seq.c line 24 [init@2->init@3] "u[i] = u0[i];" -> State 7

begin state 7
  save = false
  onStack = true;
  seen = true;
  pathCondition : X0 + -2 >= 0 && -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]> (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 3;
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 7.

Step 8: State 7 -- diffusion_seq.c line 24 [init@3->init@1] "i++" -> State 8

begin state 8
  save = true
  onStack = true;
  seen = true;
  pathCondition : X0 + -2 >= 0 && -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]> (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 1;
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 8.

Step 9: State 8 -- diffusion_seq.c line 24 [init@1->init@2] "for (i=0; i<nx; i++)" [true] -> State 9

begin state 9
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0 && X0 + -3 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]> (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 2;
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 9.

Step 10: State 9 -- diffusion_seq.c line 24 [init@2->init@3] "u[i] = u0[i];" -> State 10

begin state 10
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0 && X0 + -3 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 3;
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 10.

Step 11: State 10 -- diffusion_seq.c line 24 [init@3->init@1] "i++" -> State 11

begin state 11
  save = true
  onStack = true;
  seen = true;
  pathCondition : -1*X0 + 5 >= 0 && X2 >= 0 && -1*X2 + 2 >= 0 && X0 + -3 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = X0 (int);
      u0 = X1 (real[X0]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][X0]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[X0]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 1;
        i = 3 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 11.

Step 12: State 11 -- diffusion_seq.c line 24 [init@1->init@4] "for (i=0; i<nx; i++)" [false] -> State 233

begin state 233
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : init;
        location : 4;
        i = 3 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 0;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 233.

Step 13: State 233 -- diffusion_seq.c line 25 [init@4->init@5] "}" -> State 234

begin state 234
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 234.

Step 14: State 234 -- diffusion_seq.c line 45 [main@1->main@2] "write(0);" -> State 235

begin state 235
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 0;
        time = 0;
        i = undefined (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 235.

Step 15: State 235 -- diffusion_seq.c line 30 [write@0->write@1] "i=0" -> State 236

begin state 236
  save = true
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 1;
        time = 0;
        i = 0 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 236.

Step 16: State 236 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 237

begin state 237
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6 (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 2;
        time = 0;
        i = 0 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 237.

Step 17: State 237 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 238

begin state 238
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 3;
        time = 0;
        i = 0 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 238.

Step 18: State 238 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 239

begin state 239
  save = true
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 1;
        time = 0;
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 239.

Step 19: State 239 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 240

begin state 240
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 2;
        time = 0;
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 240.

Step 20: State 240 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 241

begin state 241
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 3;
        time = 0;
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 241.

Step 21: State 241 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 242

begin state 242
  save = true
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 1;
        time = 0;
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 242.

Step 22: State 242 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 243

begin state 243
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 2;
        time = 0;
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 243.

Step 23: State 243 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 244

begin state 244
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 3;
        time = 0;
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 244.

Step 24: State 244 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 245

begin state 245
  save = true
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 1;
        time = 0;
        i = 3 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 245.

Step 25: State 245 -- diffusion_seq.c line 30 [write@1->write@4] "for (i=0; i<nx; i++)" [false] -> State 246

begin state 246
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 4;
        time = 0;
        i = 3 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 1;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 246.

Step 26: State 246 -- diffusion_seq.c line 31 [write@4->write@5] "}" -> State 247

begin state 247
  save = false
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 0
        function : main;
        location : 2;
        iter = undefined (int);
      end stack frame 0;
    end process 0;
  end model state
end state 247.

Step 27: State 247 -- diffusion_seq.c line 46 [main@2->main@3] "iter = 1" -> State 248

begin state 248
  save = true
  onStack = true;
  seen = true;
  pathCondition : X2 >= 0 && -1*X2 + 2 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 0
        function : main;
        location : 3;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 248.

Step 28: State 248 -- diffusion_seq.c line 46 [main@3->main@4] "for (iter = 1; iter <= nsteps; iter++)" [true] -> State 249

begin state 249
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 249.

Step 29: State 249 -- diffusion_seq.c line 47 [main@4->main@5] "update();" -> State 250

begin state 250
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 0;
        u_new = m0p0s1f2v0 (real[3]);
        i = undefined (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 250.

Step 30: State 250 -- diffusion_seq.c line 37 [update@0->update@1] "i=1" -> State 251

begin state 251
  save = true
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 1;
        u_new = m0p0s1f2v0 (real[3]);
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 251.

Step 31: State 251 -- diffusion_seq.c line 37 [update@1->update@2] "for (i=1; i<nx-1; i++)" [true] -> State 252

begin state 252
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 2;
        u_new = m0p0s1f2v0 (real[3]);
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 252.

Step 32: State 252 -- diffusion_seq.c line 37 [update@2->update@3] "u_new[i] =  u[i] + kappa*(u[i+1] + u[i-1] - 2*u[i]);" -> State 253

begin state 253
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 3;
        u_new = m0p0s1f2v0<1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]> (real[3]);
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 253.

Step 33: State 253 -- diffusion_seq.c line 37 [update@3->update@1] "i++" -> State 254

begin state 254
  save = true
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 1;
        u_new = m0p0s1f2v0<1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]> (real[3]);
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 254.

Step 34: State 254 -- diffusion_seq.c line 37 [update@1->update@4] "for (i=1; i<nx-1; i++)" [false] -> State 255

begin state 255
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 4;
        u_new = m0p0s1f2v0<1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]> (real[3]);
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 255.

Step 35: State 255 -- diffusion_seq.c line 38 [update@4->update@5] "i=1" -> State 256

begin state 256
  save = true
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 5;
        u_new = m0p0s1f2v0<1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]> (real[3]);
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 256.

Step 36: State 256 -- diffusion_seq.c line 38 [update@5->update@6] "for (i=1; i<nx-1; i++)" [true] -> State 257

begin state 257
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 6;
        u_new = m0p0s1f2v0<1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]> (real[3]);
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 257.

Step 37: State 257 -- diffusion_seq.c line 38 [update@6->update@7] "u[i] = u_new[i];" -> State 258

begin state 258
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 7;
        u_new = m0p0s1f2v0<1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]> (real[3]);
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 258.

Step 38: State 258 -- diffusion_seq.c line 38 [update@7->update@5] "i++" -> State 259

begin state 259
  save = true
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 5;
        u_new = m0p0s1f2v0<1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]> (real[3]);
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 259.

Step 39: State 259 -- diffusion_seq.c line 38 [update@5->update@8] "for (i=1; i<nx-1; i++)" [false] -> State 260

begin state 260
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : update;
        location : 8;
        u_new = m0p0s1f2v0<1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]> (real[3]);
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 4;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 260.

Step 40: State 260 -- diffusion_seq.c line 39 [update@8->update@9] "}" -> State 261

begin state 261
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 261.

Step 41: State 261 -- diffusion_seq.c line 48 [main@5->main@6] "write(iter);" -> State 262

begin state 262
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 0;
        time = 1;
        i = undefined (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 262.

Step 42: State 262 -- diffusion_seq.c line 30 [write@0->write@1] "i=0" -> State 263

begin state 263
  save = true
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 1;
        time = 1;
        i = 0 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 263.

Step 43: State 263 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 264

begin state 264
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 2;
        time = 1;
        i = 0 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 264.

Step 44: State 264 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 265

begin state 265
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 3;
        time = 1;
        i = 0 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 265.

Step 45: State 265 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 266

begin state 266
  save = true
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 1;
        time = 1;
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 266.

Step 46: State 266 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 267

begin state 267
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 2;
        time = 1;
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 267.

Step 47: State 267 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 268

begin state 268
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 3;
        time = 1;
        i = 1 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 268.

Step 48: State 268 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 269

begin state 269
  save = true
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 1;
        time = 1;
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 269.

Step 49: State 269 -- diffusion_seq.c line 30 [write@1->write@2] "for (i=0; i<nx; i++)" [true] -> State 270

begin state 270
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 2;
        time = 1;
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 270.

Step 50: State 270 -- diffusion_seq.c line 30 [write@2->write@3] "data[time][i] = u[i];" -> State 271

begin state 271
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 3;
        time = 1;
        i = 2 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 271.

Step 51: State 271 -- diffusion_seq.c line 30 [write@3->write@1] "i++" -> State 272

begin state 272
  save = true
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 1;
        time = 1;
        i = 3 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 272.

Step 52: State 272 -- diffusion_seq.c line 30 [write@1->write@4] "for (i=0; i<nx; i++)" [false] -> State 273

begin state 273
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 1
        function : write;
        location : 4;
        time = 1;
        i = 3 (int);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 5;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 273.

Step 53: State 273 -- diffusion_seq.c line 31 [write@4->write@5] "}" -> State 274

begin state 274
  save = false
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 0
        function : main;
        location : 6;
        iter = 1 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 274.

Step 54: State 274 -- diffusion_seq.c line 46 [main@6->main@3] "iter++" -> State 275

begin state 275
  save = true
  onStack = true;
  seen = true;
  pathCondition : -1*X2 + 2 >= 0 && X2 + -1 >= 0
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = X2 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]>> (real[X2 + 1][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 0
        function : main;
        location : 3;
        iter = 2 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 275.

Step 55: State 275 -- diffusion_seq.c line 46 [main@3->main@7] "for (iter = 1; iter <= nsteps; iter++)" [false] -> State 305

begin state 305
  save = false
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = 1 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]>> (real[2][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
      begin stack frame 0
        function : main;
        location : 7;
        iter = 2 (int);
      end stack frame 0;
    end process 0;
  end model state
end state 305.

Step 56: State 305 -- diffusion_seq.c line 50 [main@7->main@8] "}" -> State 306

begin state 306
  save = false
  onStack = true;
  seen = true;
  pathCondition : true
  begin model state
    begin shared variables
      NX_BOUND = 5 (int);
      NSTEPS_BOUND = 2 (int);
      nx = 3 (int);
      u0 = X1 (real[3]);
      nsteps = 1 (int);
      kappa = X3 (real);
      data = m0v6<0,m0v6[0]<0,X1[0]><1,X1[1]><2,X1[2]>><1,m0v6[1]<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]>> (real[2][3]);
    end shared variables;
    begin process 0
      begin global variables
        u = m0v7<0,X1[0]><1,X3*X1[0] + -2*X3*X1[1] + X3*X1[2] + X1[1]><2,X1[2]> (real[3]);
      end global variables;
    end process 0;
  end model state
end state 306.

Step 57: State 306
