* Experiment isqrt
** Original
File "bench/check-ce/petiot2018/isqrt.mlw", line 10, characters 19-31:
Sub-goal Loop invariant init of goal isqrt'vc.
Prover result is: Valid.

File "bench/check-ce/petiot2018/isqrt.mlw", line 11, characters 19-31:
Sub-goal Loop invariant init of goal isqrt'vc.
Prover result is: Valid.

File "bench/check-ce/petiot2018/isqrt.mlw", line 12, characters 19-38:
Sub-goal Loop invariant init of goal isqrt'vc.
Prover result is: Valid.

File "bench/check-ce/petiot2018/isqrt.mlw", line 13, characters 19-35:
Sub-goal Loop invariant init of goal isqrt'vc.
Prover result is: Valid.

File "bench/check-ce/petiot2018/isqrt.mlw", line 14, characters 14-16:
Sub-goal Loop variant decrease of goal isqrt'vc.
Prover result is: Valid.

File "bench/check-ce/petiot2018/isqrt.mlw", line 10, characters 19-31:
Sub-goal Loop invariant preservation of goal isqrt'vc.
Prover result is: Valid.

File "bench/check-ce/petiot2018/isqrt.mlw", line 11, characters 19-31:
Sub-goal Loop invariant preservation of goal isqrt'vc.
Prover result is: Valid.

File "bench/check-ce/petiot2018/isqrt.mlw", line 12, characters 19-38:
Sub-goal Loop invariant preservation of goal isqrt'vc.
Prover result is: Valid.

File "bench/check-ce/petiot2018/isqrt.mlw", line 13, characters 19-35:
Sub-goal Loop invariant preservation of goal isqrt'vc.
Prover result is: Valid.

File "bench/check-ce/petiot2018/isqrt.mlw", line 5, characters 12-62:
Sub-goal Postcondition of goal isqrt'vc.
Prover result is: Valid.

** isqrt-S1
bin/why3 prove --library=bench/check-ce/petiot2018 bench/check-ce/petiot2018/experiments/isqrt-S1.mlw --apply-transform=split_vc --prover=CVC4,1.8,counterexamples --timelimit=15 --check-ce --rac-prover=CVC4,1.8 --sub-goal=:10@loop invariant init --stepslimit=10000
File "bench/check-ce/petiot2018/experiments/isqrt-S1.mlw", line 10, characters 19-31:
Sub-goal Loop invariant init of goal isqrt'vc.
Prover result is: Unknown (sat).
The program does not comply to the verification goal, for example during the
  following execution:
File isqrt-S1.mlw:
  Line 3:
    Execution of main function `isqrt` with env:
      n = (- 1)
      zero = 0
      one = 1
  Line 6:
    Normal execution of function `int_ref` with args:
      i = (- 1)
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = (- 1)
File isqrt-S1.mlw:
  Line 7:
    Normal execution of function `( * )` with args:
      _ = (- 1)
      _ = (- 1)
    Normal execution of function `int_ref` with args:
      i = 1
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 1
File isqrt-S1.mlw:
  Line 8:
    Normal execution of function `( * )` with args:
      _ = (-2)
      _ = (- 1)
    Normal execution of function `(+)` with args:
      _ = 2
      _ = 1
    Normal execution of function `int_ref` with args:
      i = 3
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 3
File isqrt-S1.mlw:
  Line 10:
    Property failure at loop invariant init with:
      n = (- 1)
      r = {contents= (- 1)}

** isqrt-S2
bin/why3 prove --library=bench/check-ce/petiot2018 bench/check-ce/petiot2018/experiments/isqrt-S2.mlw --apply-transform=split_vc --prover=CVC4,1.8,counterexamples --timelimit=15 --check-ce --rac-prover=CVC4,1.8 --sub-goal=:13@loop invariant init --stepslimit=10000
File "bench/check-ce/petiot2018/experiments/isqrt-S2.mlw", line 13, characters 19-35:
Sub-goal Loop invariant init of goal isqrt'vc.
Prover result is: Unknown (sat).
The program does not comply to the verification goal, for example during the
  following execution:
File isqrt-S2.mlw:
  Line 3:
    Execution of main function `isqrt` with env:
      n = 1
      zero = 0
      one = 1
  Line 6:
    Normal execution of function `int_ref` with args:
      i = 1
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 1
File isqrt-S2.mlw:
  Line 7:
    Normal execution of function `( * )` with args:
      _ = 1
      _ = 1
    Normal execution of function `int_ref` with args:
      i = 1
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 1
File isqrt-S2.mlw:
  Line 8:
    Normal execution of function `( * )` with args:
      _ = 2
      _ = 1
    Normal execution of function `(+)` with args:
      _ = 2
      _ = 1
    Normal execution of function `int_ref` with args:
      i = 3
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 3
File isqrt-S2.mlw:
  Line 13:
    Property failure at loop invariant init with:
      r = {contents= 1}
      z = {contents= 3}

** isqrt-S3
bin/why3 prove --library=bench/check-ce/petiot2018 bench/check-ce/petiot2018/experiments/isqrt-S3.mlw --apply-transform=split_vc --prover=CVC4,1.8,counterexamples --timelimit=15 --check-ce --rac-prover=CVC4,1.8 --sub-goal=:13@loop invariant init --stepslimit=10000
File "bench/check-ce/petiot2018/experiments/isqrt-S3.mlw", line 13, characters 15-30:
Sub-goal Loop invariant init of goal isqrt'vc.
Prover result is: Unknown (sat).
The program does not comply to the verification goal, for example during the
  following execution:
File isqrt-S3.mlw:
  Line 3:
    Execution of main function `isqrt` with env:
      n = 1
      zero = 0
      one = 1
  Line 6:
    Normal execution of function `int_ref` with args:
      i = 1
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 1
File isqrt-S3.mlw:
  Line 7:
    Normal execution of function `( * )` with args:
      _ = 1
      _ = 1
    Normal execution of function `int_ref` with args:
      i = 1
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 1
File isqrt-S3.mlw:
  Line 8:
    Normal execution of function `( * )` with args:
      _ = (-2)
      _ = 1
    Normal execution of function `(+)` with args:
      _ = (-2)
      _ = 1
    Normal execution of function `int_ref` with args:
      i = (-1)
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = (-1)
File isqrt-S3.mlw:
  Line 13:
    Property failure at loop invariant init with:
      r = {contents= 1}
      z = {contents= (-1)}

** isqrt-S4
bin/why3 prove --library=bench/check-ce/petiot2018 bench/check-ce/petiot2018/experiments/isqrt-S4.mlw --apply-transform=split_vc --prover=CVC4,1.8,counterexamples --timelimit=15 --check-ce --rac-prover=CVC4,1.8 --sub-goal=:11@loop invariant preservation --stepslimit=10000
File "bench/check-ce/petiot2018/experiments/isqrt-S4.mlw", line 11, characters 19-31:
Sub-goal Loop invariant preservation of goal isqrt'vc.
Prover result is: Unknown (sat).
The program does not comply to the verification goal, for example during the
  following execution:
File isqrt-S4.mlw:
  Line 3:
    Execution of main function `isqrt` with env:
      n = 3
      zero = 0
      one = 1
  Line 6:
    Normal execution of function `int_ref` with args:
      i = 3
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 3
File isqrt-S4.mlw:
  Line 7:
    Normal execution of function `( * )` with args:
      _ = 3
      _ = 3
    Normal execution of function `int_ref` with args:
      i = 9
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 9
File isqrt-S4.mlw:
  Line 8:
    Normal execution of function `( * )` with args:
      _ = (-2)
      _ = 3
    Normal execution of function `(+)` with args:
      _ = (-6)
      _ = 1
    Normal execution of function `int_ref` with args:
      i = (-5)
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = (-5)
File isqrt-S4.mlw:
  Line 9:
    Normal execution of function `(!)` with args:
      r = {contents= 9}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 9}
File isqrt-S4.mlw:
  Line 9:
    Normal execution of function `(>)` with args:
      x = 9
      y = 3
    Normal iteration of loop
  Line 15:
    Normal execution of function `(!)` with args:
      r = {contents= (-5)}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= (-5)}
File isqrt-S4.mlw:
  Line 15:
    Normal execution of function `(!)` with args:
      r = {contents= 9}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 9}
File isqrt-S4.mlw:
  Line 15:
    Normal execution of function `(-)` with args:
      x = 9
      y = (-5)
File int.mlw:
  Line 23:
    Normal execution of function `(-_)` with args:
      _ = (-5)
    Normal execution of function `(+)` with args:
      _ = 9
      _ = 5
File isqrt-S4.mlw:
  Line 15:
    Normal execution of function `(:=)` with args:
      r = {contents= 9}
      i = 14
  Line 16:
    Normal execution of function `(!)` with args:
      r = {contents= (-5)}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= (-5)}
File isqrt-S4.mlw:
  Line 16:
    Normal execution of function `(+)` with args:
      _ = (-5)
      _ = 2
    Normal execution of function `(:=)` with args:
      r = {contents= (-5)}
      i = (-3)
  Line 17:
    Normal execution of function `(!)` with args:
      r = {contents= 3}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 3}
File isqrt-S4.mlw:
  Line 17:
    Normal execution of function `(-)` with args:
      x = 3
      y = 1
File int.mlw:
  Line 23:
    Normal execution of function `(-_)` with args:
      _ = 1
    Normal execution of function `(+)` with args:
      _ = 3
      _ = (-1)
File isqrt-S4.mlw:
  Line 17:
    Normal execution of function `(:=)` with args:
      r = {contents= 3}
      i = 2
  Line 11:
    Property failure at loop invariant preservation with:
      r = {contents= 2}
      y = {contents= 14}

** isqrt-S5
bin/why3 prove --library=bench/check-ce/petiot2018 bench/check-ce/petiot2018/experiments/isqrt-S5.mlw --apply-transform=split_vc --prover=CVC4,1.8,counterexamples --timelimit=15 --check-ce --rac-prover=CVC4,1.8 --sub-goal=:11@loop invariant preservation --stepslimit=10000
File "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 11, characters 19-31:
Sub-goal Loop invariant preservation of goal isqrt'vc.
Prover result is: Unknown (sat).
The contracts of the following functions/loops are too weak :
  - Function 'int_ref' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 6, characters 10-19
  - Function 'int_ref' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 7, characters 10-25
  - Function 'int_ref' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 8, characters 10-30
  - Loop at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 9, character 2 to line 18, character 6
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 9, characters 8-10
  - Loop at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 9, character 2 to line 18, character 6
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 15, characters 14-16
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 15, characters 9-11
  - Function '(:=)' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 15, characters 4-16
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 16, characters 9-11
  - Function '(:=)' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 16, characters 4-15
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 17, characters 9-11
  - Function '(:=)' at "bench/check-ce/petiot2018/experiments/isqrt-S5.mlw", line 17, characters 4-15
, for example during the following execution:
File isqrt-S5.mlw:
  Line 3:
    Execution of main function `isqrt` with env:
      n = 3
      zero = 0
      one = 1
  Line 6:
    Giant-step execution of function `int_ref` with args:
      i = 3
    result of `int_ref` = {contents= 3}
  Line 7:
    Normal execution of function `( * )` with args:
      _ = 3
      _ = 3
    Giant-step execution of function `int_ref` with args:
      i = 9
    result of `int_ref` = {contents= 9}
  Line 8:
    Normal execution of function `( * )` with args:
      _ = (-2)
      _ = 3
    Normal execution of function `(+)` with args:
      _ = (-6)
      _ = 1
    Giant-step execution of function `int_ref` with args:
      i = (-5)
    result of `int_ref` = {contents= (- 5)}
  Line 9:
    Giant-step iteration of loop
    r = {contents= 2}
    y = {contents= 4}
    z = {contents= (- 2)}
    Giant-step execution of function `(!)` with args:
      r = {contents= 4}
    result of `(!)` = 4
    Normal execution of function `(>)` with args:
      x = 4
      y = 3
    Normal iteration of loop
  Line 15:
    Giant-step execution of function `(!)` with args:
      r = {contents= (- 2)}
    result of `(!)` = (- 2)
    Giant-step execution of function `(!)` with args:
      r = {contents= 4}
    result of `(!)` = 4
    Normal execution of function `(+)` with args:
      _ = 4
      _ = (- 2)
    Giant-step execution of function `(:=)` with args:
      r = {contents= 4}
      i = 2
    y = {contents= 2}
    result of `(:=)` = ()
  Line 16:
    Giant-step execution of function `(!)` with args:
      r = {contents= (- 2)}
    result of `(!)` = (- 2)
    Normal execution of function `(+)` with args:
      _ = (- 2)
      _ = 2
    Giant-step execution of function `(:=)` with args:
      r = {contents= (- 2)}
      i = 0
    z = {contents= 0}
    result of `(:=)` = ()
  Line 17:
    Giant-step execution of function `(!)` with args:
      r = {contents= 2}
    result of `(!)` = 2
    Giant-step execution of function `(-)` with args:
      x = 2
      y = 1
    result of `(-)` = 1
    Giant-step execution of function `(:=)` with args:
      r = {contents= 2}
      i = 1
    r = {contents= 1}
    result of `(:=)` = ()
  Line 11:
    Property failure at loop invariant preservation with:
      r = {contents= 1}
      y = {contents= 2}

** isqrt-S6
bin/why3 prove --library=bench/check-ce/petiot2018 bench/check-ce/petiot2018/experiments/isqrt-S6.mlw --apply-transform=split_vc --prover=CVC4,1.8,counterexamples --timelimit=15 --check-ce --rac-prover=CVC4,1.8 --sub-goal=:5@postcondition --stepslimit=10000
File "bench/check-ce/petiot2018/experiments/isqrt-S6.mlw", line 5, characters 12-62:
Sub-goal Postcondition of goal isqrt'vc.
Prover result is: Unknown (sat).
The program does not comply to the verification goal, for example during the
  following execution:
File isqrt-S6.mlw:
  Line 3:
    Execution of main function `isqrt` with env:
      n = 3
      zero = 0
      one = 1
  Line 6:
    Normal execution of function `int_ref` with args:
      i = 3
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 3
File isqrt-S6.mlw:
  Line 7:
    Normal execution of function `( * )` with args:
      _ = 3
      _ = 3
    Normal execution of function `int_ref` with args:
      i = 9
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 9
File isqrt-S6.mlw:
  Line 8:
    Normal execution of function `( * )` with args:
      _ = (-2)
      _ = 3
    Normal execution of function `(+)` with args:
      _ = (-6)
      _ = 1
    Normal execution of function `int_ref` with args:
      i = (-5)
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = (-5)
File isqrt-S6.mlw:
  Line 9:
    Normal execution of function `(+)` with args:
      _ = 3
      _ = 1
    Normal execution of function `(!)` with args:
      r = {contents= 9}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 9}
File isqrt-S6.mlw:
  Line 9:
    Normal execution of function `(>)` with args:
      x = 9
      y = 4
    Normal iteration of loop
  Line 15:
    Normal execution of function `(!)` with args:
      r = {contents= (-5)}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= (-5)}
File isqrt-S6.mlw:
  Line 15:
    Normal execution of function `(!)` with args:
      r = {contents= 9}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 9}
File isqrt-S6.mlw:
  Line 15:
    Normal execution of function `(+)` with args:
      _ = 9
      _ = (-5)
    Normal execution of function `(:=)` with args:
      r = {contents= 9}
      i = 4
  Line 16:
    Normal execution of function `(!)` with args:
      r = {contents= (-5)}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= (-5)}
File isqrt-S6.mlw:
  Line 16:
    Normal execution of function `(+)` with args:
      _ = (-5)
      _ = 2
    Normal execution of function `(:=)` with args:
      r = {contents= (-5)}
      i = (-3)
  Line 17:
    Normal execution of function `(!)` with args:
      r = {contents= 3}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 3}
File isqrt-S6.mlw:
  Line 17:
    Normal execution of function `(-)` with args:
      x = 3
      y = 1
File int.mlw:
  Line 23:
    Normal execution of function `(-_)` with args:
      _ = 1
    Normal execution of function `(+)` with args:
      _ = 3
      _ = (-1)
File isqrt-S6.mlw:
  Line 17:
    Normal execution of function `(:=)` with args:
      r = {contents= 3}
      i = 2
  Line 9:
    Normal execution of function `(+)` with args:
      _ = 3
      _ = 1
    Normal execution of function `(!)` with args:
      r = {contents= 4}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 4}
File isqrt-S6.mlw:
  Line 9:
    Normal execution of function `(>)` with args:
      x = 4
      y = 4
  Line 19:
    Normal execution of function `(!)` with args:
      r = {contents= 2}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 2}
File isqrt-S6.mlw:
  Line 5:
    Property failure at postcondition of `isqrt` with:
      n = 3
      result = 2

** isqrt-S7
bin/why3 prove --library=bench/check-ce/petiot2018 bench/check-ce/petiot2018/experiments/isqrt-S7.mlw --apply-transform=split_vc --prover=CVC4,1.8,counterexamples --timelimit=15 --check-ce --rac-prover=CVC4,1.8 --sub-goal=:5@postcondition --stepslimit=10000
File "bench/check-ce/petiot2018/experiments/isqrt-S7.mlw", line 5, characters 12-62:
Sub-goal Postcondition of goal isqrt'vc.
Prover result is: Unknown (sat).
The contracts of the following functions/loops are too weak :
  - Function 'int_ref' at "bench/check-ce/petiot2018/experiments/isqrt-S7.mlw", line 6, characters 10-19
  - Function 'int_ref' at "bench/check-ce/petiot2018/experiments/isqrt-S7.mlw", line 7, characters 10-25
  - Function 'int_ref' at "bench/check-ce/petiot2018/experiments/isqrt-S7.mlw", line 8, characters 10-30
  - Loop at "bench/check-ce/petiot2018/experiments/isqrt-S7.mlw", line 9, character 2 to line 18, character 6
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S7.mlw", line 9, characters 8-10
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S7.mlw", line 19, characters 2-4
, for example during the following execution:
File isqrt-S7.mlw:
  Line 3:
    Execution of main function `isqrt` with env:
      n = 4
      zero = 0
      one = 1
  Line 6:
    Giant-step execution of function `int_ref` with args:
      i = 4
    result of `int_ref` = {contents= 4}
  Line 7:
    Normal execution of function `( * )` with args:
      _ = 4
      _ = 4
    Giant-step execution of function `int_ref` with args:
      i = 16
    result of `int_ref` = {contents= 16}
  Line 8:
    Normal execution of function `( * )` with args:
      _ = (-2)
      _ = 4
    Normal execution of function `(+)` with args:
      _ = (-8)
      _ = 1
    Giant-step execution of function `int_ref` with args:
      i = (-7)
    result of `int_ref` = {contents= (- 7)}
  Line 9:
    Giant-step iteration of loop
    r = {contents= 1}
    y = {contents= 1}
    z = {contents= (- 1)}
    Giant-step execution of function `(!)` with args:
      r = {contents= 1}
    result of `(!)` = 1
    Normal execution of function `(>)` with args:
      x = 1
      y = 4
  Line 19:
    Giant-step execution of function `(!)` with args:
      r = {contents= 1}
    result of `(!)` = 1
  Line 5:
    Property failure at postcondition of `isqrt` with:
      n = 4
      result = 1

** isqrt-S8
bin/why3 prove --library=bench/check-ce/petiot2018 bench/check-ce/petiot2018/experiments/isqrt-S8.mlw --apply-transform=split_vc --prover=CVC4,1.8,counterexamples --timelimit=15 --check-ce --rac-prover=CVC4,1.8 --sub-goal=:5@postcondition --stepslimit=10000
File "bench/check-ce/petiot2018/experiments/isqrt-S8.mlw", line 5, characters 12-62:
Sub-goal Postcondition of goal isqrt'vc.
Prover result is: Unknown (sat).
The program does not comply to the verification goal, for example during the
  following execution:
File isqrt-S8.mlw:
  Line 3:
    Execution of main function `isqrt` with env:
      n = 0
      zero = 0
      one = 1
  Line 6:
    Normal execution of function `int_ref` with args:
      i = 0
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 0
File isqrt-S8.mlw:
  Line 7:
    Normal execution of function `( * )` with args:
      _ = 0
      _ = 0
    Normal execution of function `int_ref` with args:
      i = 0
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 0
File isqrt-S8.mlw:
  Line 8:
    Normal execution of function `( * )` with args:
      _ = (-2)
      _ = 0
    Normal execution of function `(+)` with args:
      _ = 0
      _ = 1
    Normal execution of function `int_ref` with args:
      i = 1
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 1
File isqrt-S8.mlw:
  Line 9:
    Normal execution of function `(!)` with args:
      r = {contents= 0}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 0}
File isqrt-S8.mlw:
  Line 9:
    Normal execution of function `(>)` with args:
      x = 0
      y = 0
  Line 19:
    Normal execution of function `(!)` with args:
      r = {contents= 0}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 0}
File isqrt-S8.mlw:
  Line 19:
    Normal execution of function `(-)` with args:
      x = 0
      y = 1
File int.mlw:
  Line 23:
    Normal execution of function `(-_)` with args:
      _ = 1
    Normal execution of function `(+)` with args:
      _ = 0
      _ = (-1)
File isqrt-S8.mlw:
  Line 5:
    Property failure at postcondition of `isqrt` with:
      n = 0
      result = (-1)

** isqrt-S9
bin/why3 prove --library=bench/check-ce/petiot2018 bench/check-ce/petiot2018/experiments/isqrt-S9.mlw --apply-transform=split_vc --prover=CVC4,1.8,counterexamples --timelimit=15 --check-ce --rac-prover=CVC4,1.8 --sub-goal=:14@loop variant decrease --stepslimit=10000
File "bench/check-ce/petiot2018/experiments/isqrt-S9.mlw", line 14, characters 10-16:
Sub-goal Loop variant decrease of goal isqrt'vc.
Prover result is: Unknown (sat).
The program does not comply to the verification goal, for example during the
  following execution:
File isqrt-S9.mlw:
  Line 3:
    Execution of main function `isqrt` with env:
      n = 3
      zero = 0
      one = 1
  Line 6:
    Normal execution of function `int_ref` with args:
      i = 3
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 3
File isqrt-S9.mlw:
  Line 7:
    Normal execution of function `( * )` with args:
      _ = 3
      _ = 3
    Normal execution of function `int_ref` with args:
      i = 9
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = 9
File isqrt-S9.mlw:
  Line 8:
    Normal execution of function `( * )` with args:
      _ = (-2)
      _ = 3
    Normal execution of function `(+)` with args:
      _ = (-6)
      _ = 1
    Normal execution of function `int_ref` with args:
      i = (-5)
File lib.mlw:
  Line 12:
    Normal execution of function `int_ref'mk` with args:
      contents = (-5)
File isqrt-S9.mlw:
  Line 9:
    Normal execution of function `(!)` with args:
      r = {contents= 9}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 9}
File isqrt-S9.mlw:
  Line 9:
    Normal execution of function `(>)` with args:
      x = 9
      y = 3
    Normal iteration of loop
  Line 15:
    Normal execution of function `(!)` with args:
      r = {contents= (-5)}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= (-5)}
File isqrt-S9.mlw:
  Line 15:
    Normal execution of function `(!)` with args:
      r = {contents= 9}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 9}
File isqrt-S9.mlw:
  Line 15:
    Normal execution of function `(+)` with args:
      _ = 9
      _ = (-5)
    Normal execution of function `(:=)` with args:
      r = {contents= 9}
      i = 4
  Line 16:
    Normal execution of function `(!)` with args:
      r = {contents= (-5)}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= (-5)}
File isqrt-S9.mlw:
  Line 16:
    Normal execution of function `(+)` with args:
      _ = (-5)
      _ = 2
    Normal execution of function `(:=)` with args:
      r = {contents= (-5)}
      i = (-3)
  Line 17:
    Normal execution of function `(!)` with args:
      r = {contents= 3}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 3}
File isqrt-S9.mlw:
  Line 17:
    Normal execution of function `(-)` with args:
      x = 3
      y = 1
File int.mlw:
  Line 23:
    Normal execution of function `(-_)` with args:
      _ = 1
    Normal execution of function `(+)` with args:
      _ = 3
      _ = (-1)
File isqrt-S9.mlw:
  Line 17:
    Normal execution of function `(:=)` with args:
      r = {contents= 3}
      i = 2
  Line 9:
    Normal execution of function `(!)` with args:
      r = {contents= 4}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 4}
File isqrt-S9.mlw:
  Line 9:
    Normal execution of function `(>)` with args:
      x = 4
      y = 3
    Normal iteration of loop
  Line 15:
    Normal execution of function `(!)` with args:
      r = {contents= (-3)}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= (-3)}
File isqrt-S9.mlw:
  Line 15:
    Normal execution of function `(!)` with args:
      r = {contents= 4}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 4}
File isqrt-S9.mlw:
  Line 15:
    Normal execution of function `(+)` with args:
      _ = 4
      _ = (-3)
    Normal execution of function `(:=)` with args:
      r = {contents= 4}
      i = 1
  Line 16:
    Normal execution of function `(!)` with args:
      r = {contents= (-3)}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= (-3)}
File isqrt-S9.mlw:
  Line 16:
    Normal execution of function `(+)` with args:
      _ = (-3)
      _ = 2
    Normal execution of function `(:=)` with args:
      r = {contents= (-3)}
      i = (-1)
  Line 17:
    Normal execution of function `(!)` with args:
      r = {contents= 2}
File lib.mlw:
  Line 23:
    Normal execution of function `contents` with args:
      arg = {contents= 2}
File isqrt-S9.mlw:
  Line 17:
    Normal execution of function `(-)` with args:
      x = 2
      y = 1
File int.mlw:
  Line 23:
    Normal execution of function `(-_)` with args:
      _ = 1
    Normal execution of function `(+)` with args:
      _ = 2
      _ = (-1)
File isqrt-S9.mlw:
  Line 17:
    Normal execution of function `(:=)` with args:
      r = {contents= 2}
      i = 1
  Line 14:
    Property failure at loop variant decrease with:
      n = 3
      r = {contents= 1}
      r = {contents= 2}
      n = 3

** isqrt-S10
bin/why3 prove --library=bench/check-ce/petiot2018 bench/check-ce/petiot2018/experiments/isqrt-S10.mlw --apply-transform=split_vc --prover=CVC4,1.8,counterexamples --timelimit=15 --check-ce --rac-prover=CVC4,1.8 --sub-goal=:14@loop variant decrease --stepslimit=10000
File "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 14, characters 14-16:
Sub-goal Loop variant decrease of goal isqrt'vc.
Prover result is: Unknown (sat).
The contracts of the following functions/loops are too weak :
  - Function 'int_ref' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 6, characters 10-19
  - Function 'int_ref' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 7, characters 10-25
  - Function 'int_ref' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 8, characters 10-30
  - Loop at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 9, character 2 to line 18, character 6
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 9, characters 8-10
  - Loop at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 9, character 2 to line 18, character 6
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 15, characters 14-16
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 15, characters 9-11
  - Function '(:=)' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 15, characters 4-16
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 16, characters 9-11
  - Function '(:=)' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 16, characters 4-15
  - Function '(!)' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 17, characters 9-11
  - Function '(:=)' at "bench/check-ce/petiot2018/experiments/isqrt-S10.mlw", line 17, characters 4-15
, for example during the following execution:
File isqrt-S10.mlw:
  Line 3:
    Execution of main function `isqrt` with env:
      n = 0
      zero = 0
      one = 1
  Line 6:
    Giant-step execution of function `int_ref` with args:
      i = 0
    result of `int_ref` = {contents= 0}
  Line 7:
    Normal execution of function `( * )` with args:
      _ = 0
      _ = 0
    Giant-step execution of function `int_ref` with args:
      i = 0
    result of `int_ref` = {contents= 0}
  Line 8:
    Normal execution of function `( * )` with args:
      _ = (-2)
      _ = 0
    Normal execution of function `(+)` with args:
      _ = 0
      _ = 1
    Giant-step execution of function `int_ref` with args:
      i = 1
    result of `int_ref` = {contents= 1}
  Line 9:
    Giant-step iteration of loop
    r = {contents= (- 2)}
    y = {contents= 4}
    z = {contents= 5}
    Giant-step execution of function `(!)` with args:
      r = {contents= 4}
    result of `(!)` = 4
    Normal execution of function `(>)` with args:
      x = 4
      y = 0
    Normal iteration of loop
  Line 15:
    Giant-step execution of function `(!)` with args:
      r = {contents= 5}
    result of `(!)` = 5
    Giant-step execution of function `(!)` with args:
      r = {contents= 4}
    result of `(!)` = 4
    Normal execution of function `(+)` with args:
      _ = 4
      _ = 5
    Giant-step execution of function `(:=)` with args:
      r = {contents= 4}
      i = 9
    y = {contents= 9}
    result of `(:=)` = ()
  Line 16:
    Giant-step execution of function `(!)` with args:
      r = {contents= 5}
    result of `(!)` = 5
    Normal execution of function `(+)` with args:
      _ = 5
      _ = 2
    Giant-step execution of function `(:=)` with args:
      r = {contents= 5}
      i = 7
    z = {contents= 7}
    result of `(:=)` = ()
  Line 17:
    Giant-step execution of function `(!)` with args:
      r = {contents= (- 2)}
    result of `(!)` = (- 2)
    Giant-step execution of function `(-)` with args:
      x = (- 2)
      y = 1
    result of `(-)` = (- 3)
    Giant-step execution of function `(:=)` with args:
      r = {contents= (- 2)}
      i = (- 3)
    r = {contents= (- 3)}
    result of `(:=)` = ()
  Line 14:
    Property failure at loop variant decrease with:
      r = {contents= (- 3)}
      r = {contents= (- 2)}

