Loop Comparison Trace summary:

Step 1: State 0 -- fib_spec.c line 14 [main@0->main@1] "while (err>=tol)" [true]fib_implBad.c line 14 [main@0->main@1] "while (err>=tol)" [true] -> State 1
Step 2: State 1 -- fib_spec.c line 15 [main@1->main@2] "i=j;" -> State 2
Step 3: State 2 -- fib_spec.c line 15 [main@2->main@3] "j=k;" -> State 3
Step 4: State 3 -- fib_spec.c line 15 [main@3->main@4] "k=i+j;" -> State 4
Step 5: State 4 -- fib_spec.c line 15 [main@4->main@5] "tmp = k/j;" -> State 5
Step 6: State 5 -- fib_spec.c line 16 [main@5->main@7] "if (tmp>=p)" [false] -> State 18
Step 7: State 18 -- fib_spec.c line 16 [main@7->main@8] "err=p-tmp;" -> State 19
Step 8: State 19 -- fib_spec.c line 17 [main@8->main@0] "p = tmp;" -> State 20
Step 9: State 20 -- fib_implBad.c line 15 [main@1->main@2] "k=j+k;" -> State 21
Step 10: State 21 -- fib_implBad.c line 16 [main@2->main@3] "j=k-j;" -> State 22
Step 11: State 22 -- fib_implBad.c line 17 [main@3->main@4] "err=k/j-p;" -> State 23
Step 12: State 23 -- fib_implBad.c line 18 [main@4->main@0] "p=err+p;" -> State 24
Step 13: State 24

Loop Comparison Trace details:

begin State 0
  onStack = true;
  seen = true;
  pathCondition : true
  loopPathCondition : 
 Null
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 0;
        i = undefined (real);
        j = 1 (real);
        k = 1 (real);
        err = X0 (real);
        tmp = undefined (real);
        p = 0 (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 0;
        j = 1 (real);
        k = 1 (real);
        err = X0 (real);
        p = 0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 0

Step 1: State 0 -- fib_spec.c line 14 [main@0->main@1] "while (err>=tol)" [true]fib_implBad.c line 14 [main@0->main@1] "while (err>=tol)" [true] -> State 1

begin State 1
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        i = spec_i_l_0 (real);
        j = spec_j_l_0 (real);
        k = spec_k_l_0 (real);
        err = spec_err_l_0 (real);
        tmp = spec_tmp_l_0 (real);
        p = spec_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        j = impl_j_l_0 (real);
        k = impl_k_l_0 (real);
        err = impl_err_l_0 (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 1

Step 2: State 1 -- fib_spec.c line 15 [main@1->main@2] "i=j;" -> State 2

begin State 2
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 2;
        i = spec_j_l_0 (real);
        j = spec_j_l_0 (real);
        k = spec_k_l_0 (real);
        err = spec_err_l_0 (real);
        tmp = spec_tmp_l_0 (real);
        p = spec_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        j = impl_j_l_0 (real);
        k = impl_k_l_0 (real);
        err = impl_err_l_0 (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 2

Step 3: State 2 -- fib_spec.c line 15 [main@2->main@3] "j=k;" -> State 3

begin State 3
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 3;
        i = spec_j_l_0 (real);
        j = spec_k_l_0 (real);
        k = spec_k_l_0 (real);
        err = spec_err_l_0 (real);
        tmp = spec_tmp_l_0 (real);
        p = spec_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        j = impl_j_l_0 (real);
        k = impl_k_l_0 (real);
        err = impl_err_l_0 (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 3

Step 4: State 3 -- fib_spec.c line 15 [main@3->main@4] "k=i+j;" -> State 4

begin State 4
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 4;
        i = spec_j_l_0 (real);
        j = spec_k_l_0 (real);
        k = spec_j_l_0 + spec_k_l_0 (real);
        err = spec_err_l_0 (real);
        tmp = spec_tmp_l_0 (real);
        p = spec_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        j = impl_j_l_0 (real);
        k = impl_k_l_0 (real);
        err = impl_err_l_0 (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 4

Step 5: State 4 -- fib_spec.c line 15 [main@4->main@5] "tmp = k/j;" -> State 5

begin State 5
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 5;
        i = spec_j_l_0 (real);
        j = spec_k_l_0 (real);
        k = spec_j_l_0 + spec_k_l_0 (real);
        err = spec_err_l_0 (real);
        tmp = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
        p = spec_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        j = impl_j_l_0 (real);
        k = impl_k_l_0 (real);
        err = impl_err_l_0 (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 5

Step 6: State 5 -- fib_spec.c line 16 [main@5->main@7] "if (tmp>=p)" [false] -> State 18

begin State 18
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0 && (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) > 0 
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 7;
        i = spec_j_l_0 (real);
        j = spec_k_l_0 (real);
        k = spec_j_l_0 + spec_k_l_0 (real);
        err = spec_err_l_0 (real);
        tmp = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
        p = spec_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        j = impl_j_l_0 (real);
        k = impl_k_l_0 (real);
        err = impl_err_l_0 (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 18

Step 7: State 18 -- fib_spec.c line 16 [main@7->main@8] "err=p-tmp;" -> State 19

begin State 19
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0 && (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) > 0 
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 8;
        i = spec_j_l_0 (real);
        j = spec_k_l_0 (real);
        k = spec_j_l_0 + spec_k_l_0 (real);
        err = (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) (real);
        tmp = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
        p = spec_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        j = impl_j_l_0 (real);
        k = impl_k_l_0 (real);
        err = impl_err_l_0 (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 19

Step 8: State 19 -- fib_spec.c line 17 [main@8->main@0] "p = tmp;" -> State 20

begin State 20
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0 && (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) > 0 
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 0;
        i = spec_j_l_0 (real);
        j = spec_k_l_0 (real);
        k = spec_j_l_0 + spec_k_l_0 (real);
        err = (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) (real);
        tmp = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
        p = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 1;
        j = impl_j_l_0 (real);
        k = impl_k_l_0 (real);
        err = impl_err_l_0 (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 20

Step 9: State 20 -- fib_implBad.c line 15 [main@1->main@2] "k=j+k;" -> State 21

begin State 21
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0 && (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) > 0 
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 0;
        i = spec_j_l_0 (real);
        j = spec_k_l_0 (real);
        k = spec_j_l_0 + spec_k_l_0 (real);
        err = (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) (real);
        tmp = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
        p = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 2;
        j = impl_j_l_0 (real);
        k = impl_k_l_0 + impl_j_l_0 (real);
        err = impl_err_l_0 (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 21

Step 10: State 21 -- fib_implBad.c line 16 [main@2->main@3] "j=k-j;" -> State 22

begin State 22
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0 && (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) > 0 
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 0;
        i = spec_j_l_0 (real);
        j = spec_k_l_0 (real);
        k = spec_j_l_0 + spec_k_l_0 (real);
        err = (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) (real);
        tmp = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
        p = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 3;
        j = impl_k_l_0 (real);
        k = impl_k_l_0 + impl_j_l_0 (real);
        err = impl_err_l_0 (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 22

Step 11: State 22 -- fib_implBad.c line 17 [main@3->main@4] "err=k/j-p;" -> State 23

begin State 23
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0 && (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) > 0 
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 0;
        i = spec_j_l_0 (real);
        j = spec_k_l_0 (real);
        k = spec_j_l_0 + spec_k_l_0 (real);
        err = (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) (real);
        tmp = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
        p = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 4;
        j = impl_k_l_0 (real);
        k = impl_k_l_0 + impl_j_l_0 (real);
        err = (-1*impl_k_l_0*impl_p_l_0 + impl_k_l_0 + impl_j_l_0)/(impl_k_l_0) (real);
        p = impl_p_l_0 (real);
      end stack frame 0;
    end process 0;
  end model state
end State 23

Step 12: State 23 -- fib_implBad.c line 18 [main@4->main@0] "p=err+p;" -> State 24

begin State 24
  onStack = true;
  seen = true;
  pathCondition : spec_err_l_0 + -1*impl_err_l_0 = 0 && spec_p_l_0 + -1*impl_p_l_0 = 0 && spec_j_l_0 + -1*impl_j_l_0 = 0 && impl_j_l_0 > 0  && spec_k_l_0 + -1*impl_k_l_0 = 0 && impl_k_l_0 > 0  && -1*X0 + impl_err_l_0 >= 0 && (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) > 0 
  loopPathCondition : 
l[0]: true
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 0;
        i = spec_j_l_0 (real);
        j = spec_k_l_0 (real);
        k = spec_j_l_0 + spec_k_l_0 (real);
        err = (spec_k_l_0*spec_p_l_0 + -1*spec_j_l_0 + -1*spec_k_l_0)/(spec_k_l_0) (real);
        tmp = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
        p = (spec_j_l_0 + spec_k_l_0)/(spec_k_l_0) (real);
      end stack frame 0;
    end process 0;
  end model state
  begin model state
    begin shared variables
      tol = X0 (real);
      phi = undefined (real);
    end shared variables;
    begin process 0
      begin stack frame 0
        function : main;
        location : 0;
        j = impl_k_l_0 (real);
        k = impl_k_l_0 + impl_j_l_0 (real);
        err = (-1*impl_k_l_0*impl_p_l_0 + impl_k_l_0 + impl_j_l_0)/(impl_k_l_0) (real);
        p = (impl_k_l_0 + impl_j_l_0)/(impl_k_l_0) (real);
      end stack frame 0;
    end process 0;
  end model state
end State 24

Step 13: State 24
