multierr Trace summary:

Step 1: State 0 -- multierr.c line 22 [main@0->main@1] "assert n>=1;" -> State 1
Step 2: State 1 -- multierr.c line 25 [main@1->main@2] "a[3] = 3.14;" -> State 2
Step 3: State 2 -- multierr.c line 28 [main@2->main@3] "leak();" -> State 3
Step 4: State 3 -- multierr.c line 41 [leak@0->leak@1] "p = (double*)malloc(10*sizeof(double));" -> State 4
Step 5: State 4 -- multierr.c line 42 [leak@1->leak@2] "}"

multierr Trace details:

begin state 0
  save = true
  onStack = true;
  seen = true;
  pathCondition : X0 != 0 && X0 >= 0 && X1 >= 0
  begin model state
    begin shared variables
      n = X0 (int);
      extent = X1 (int);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 0;
        m = ((10)�(X0)) (int);
        a = m0p0s0f0v1 (real[X1]);
        q = &a[0] (Ref[real]);
      end stack frame 0;
    end process 0;
  end model state
end state 0.

Step 1: State 0 -- multierr.c line 22 [main@0->main@1] "assert n>=1;" -> State 1

begin state 1
  save = false
  onStack = true;
  seen = true;
  pathCondition : X1 >= 0 && X0 + -1 >= 0
  begin model state
    begin shared variables
      n = X0 (int);
      extent = X1 (int);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        m = ((10)�(X0)) (int);
        a = m0p0s0f0v1 (real[X1]);
        q = &a[0] (Ref[real]);
      end stack frame 0;
    end process 0;
  end model state
end state 1.

Step 2: State 1 -- multierr.c line 25 [main@1->main@2] "a[3] = 3.14;" -> State 2

begin state 2
  save = false
  onStack = true;
  seen = true;
  pathCondition : X0 + -1 >= 0 && X1 + -3 >= 0
  begin model state
    begin shared variables
      n = X0 (int);
      extent = X1 (int);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 2;
        m = ((10)�(X0)) (int);
        a = m0p0s0f0v1<3,157/50> (real[X1]);
        q = &a[0] (Ref[real]);
      end stack frame 0;
    end process 0;
  end model state
end state 2.

Step 3: State 2 -- multierr.c line 28 [main@2->main@3] "leak();" -> State 3

begin state 3
  save = false
  onStack = true;
  seen = true;
  pathCondition : X0 + -1 >= 0 && X1 + -3 >= 0
  begin model state
    begin shared variables
      n = X0 (int);
      extent = X1 (int);
    end shared variables;
    begin process 0
      begin stack frame 1
        function : leak;
        location : 0;
        p = undefined (Ref[real]);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 2;
        m = ((10)�(X0)) (int);
        a = m0p0s0f0v1<3,157/50> (real[X1]);
        q = &a[0] (Ref[real]);
      end stack frame 0;
    end process 0;
  end model state
end state 3.

Step 4: State 3 -- multierr.c line 41 [leak@0->leak@1] "p = (double*)malloc(10*sizeof(double));" -> State 4

begin state 4
  save = false
  onStack = true;
  seen = true;
  pathCondition : X0 + -1 >= 0 && X1 + -3 >= 0 && SIZEOF_TYPE(3) + -1 >= 0
  begin model state
    begin shared variables
      n = X0 (int);
      extent = X1 (int);
    end shared variables;
    begin process 0
      begin heap variables
        __heap_0_0 = m0p0h0 (real[10]);
      end heap variables;
      begin stack frame 1
        function : leak;
        location : 1;
        p = &__heap_0_0[0] (Ref[real]);
      end stack frame 1;
      begin stack frame 0
        function : main;
        location : 2;
        m = ((10)�(X0)) (int);
        a = m0p0s0f0v1<3,157/50> (real[X1]);
        q = &a[0] (Ref[real]);
      end stack frame 0;
    end process 0;
  end model state
end state 4.

Step 5: State 4 -- multierr.c line 42 [leak@1->leak@2] "}"
