<check_ce:categorization>Categorizations of models:
- Checked model 0: BAD_CE
  - Concrete RAC: NORMAL
  - Abstract RAC: NORMAL
- Checked model 1: BAD_CE
  - Concrete RAC: NORMAL
  - Abstract RAC: NORMAL
- Selected model 2: NC
  - Concrete RAC: FAILURE (precondition at "bench/check-ce/threshold.mlw", line 11, characters 11-20)
  - Abstract RAC: FAILURE (precondition at "bench/check-ce/threshold.mlw", line 11, characters 11-20)
File "bench/check-ce/threshold.mlw", line 11, characters 11-20:
Sub-goal Integer overflow of goal f'vc.
Prover result is: Unknown (unknown) (6 steps).
The program does not comply to the verification goal, for example during the
  following execution:
File int.mlw:
  Line 13:
    Constant zero initialization
    zero = 0
  Line 14:
    Constant one initialization
    one = 1
File int.mlw:
  Line 258:
    Constant min_int32 initialization
    min_int32 = (-2147483648)
  Line 259:
    Constant max_int32 initialization
    max_int32 = 2147483647
File threshold.mlw:
  Line 8:
    n = 0
    min = epsilon x:int32. int32'int x = 2147483647
    max = epsilon x:int32. int32'int x = 2147483647
    n = 0
    min = epsilon x:int32. int32'int x = 2147483647
    max = epsilon x:int32. int32'int x = 2147483647
    Execution of main function `f` with env:
      n = 0
      min = epsilon x:int32. int32'int x = 2147483647
      max = epsilon x:int32. int32'int x = 2147483647
      zero = 0
      one = 1
      min_int32 = (-2147483648)
      max_int32 = 2147483647
  Line 11:
    (giant-step) execution of unimplemented function `(+)`
      a = epsilon x:int32. int32'int x = 2147483647
      b = epsilon x:int32. int32'int x = 2147483647
    Property failure at precondition of `(+)` with:
      a = epsilon x:int32. int32'int x = 2147483647
      b = epsilon x:int32. int32'int x = 2147483647

<check_ce:categorization>Categorizations of models:
- Checked model 0: BAD_CE
  - Concrete RAC: NORMAL
  - Abstract RAC: NORMAL
- Checked model 1: BAD_CE
  - Concrete RAC: NORMAL
  - Abstract RAC: NORMAL
- Selected model 2: BAD_CE
  - Concrete RAC: FAILURE (precondition at "bench/check-ce/threshold.mlw", line 11, characters 11-20)
  - Abstract RAC: FAILURE (precondition at "bench/check-ce/threshold.mlw", line 11, characters 11-20)
File "bench/check-ce/threshold.mlw", line 9, characters 13-33:
Sub-goal Postcondition of goal f'vc.
Prover result is: Unknown (unknown) (23 steps).
Sorry, we don't have a good counterexample for you :(


<check_ce:categorization>Categorizations of models:
- Checked model 0: BAD_CE
  - Concrete RAC: NORMAL
  - Abstract RAC: NORMAL
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24)
  - Abstract RAC: INCOMPLETE (terminated because missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24)
File "bench/check-ce/threshold.mlw", line 30, characters 11-24:
Sub-goal Arithmetic overflow of goal f'vc.
Prover result is: Step limit exceeded (18 steps).
The following counterexample model could not be verified
  (both RAC terminated because missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24):
File bv.mlw:
  Line 362:
    size_bv : t1 = {bv.BV32.t'int => 32}
    size_bv : t = {bv.BV128.t'int => 1}
  Line 620:
    t'int :
      t
      ->
      int = [|{bv.BV128.t'int => 2} => 2;
            {bv.BV128.t'int => 4294967295} => 4294967295;
            {bv.BV128.t'int => 128} => 128;
            _ =>
            if arg_04 = {bv.BV128.t'int => 0} \/
               arg_04 = {bv.BV128.t'int => 0}
            then 0 else 1|]
  Line 626:
    add : t -> t -> t = fun arg_07 arg_1 -> {bv.BV128.t'int => 2}
  Line 676:
    t'int :
      t1
      ->
      int = [|{bv.BV32.t'int => 4294967297} => 4294967297;
            {bv.BV32.t'int => 4294967295} => 4294967295;
            _ =>
            if arg_05 = {bv.BV32.t'int => 0} \/ arg_05 = {bv.BV32.t'int => 0}
            then 0 else if arg_05 = {bv.BV32.t'int => 1} then 1 else 32|]
  Line 824:
    toBig :
      t1
      ->
      t = [|{bv.BV32.t'int => 32} => {bv.BV128.t'int => 0};
          {bv.BV32.t'int => 32} => {bv.BV128.t'int => 1};
          _ => {bv.BV128.t'int => 1}|]
File threshold.mlw:
  Line 26:
    max : t1 = {bv.BV32.t'int => 32}
    min : t1 = {bv.BV32.t'int => 32}
  Line 30:
    max : t1 = {bv.BV32.t'int => 32}
    min : t1 = {bv.BV32.t'int => 32}

<check_ce:categorization>Categorizations of models:
- Checked model 0: BAD_CE
  - Concrete RAC: NORMAL
  - Abstract RAC: NORMAL
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24)
  - Abstract RAC: INCOMPLETE (terminated because missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24)
File "bench/check-ce/threshold.mlw", line 27, characters 13-45:
Sub-goal Postcondition of goal f'vc.
Prover result is: Step limit exceeded (38 steps).
The following counterexample model could not be verified
  (both RAC terminated because missing value for return value of call to u_add at "bench/check-ce/threshold.mlw", line 30, characters 11-24):
File bv.mlw:
  Line 362:
    size_bv : t1 = {bv.BV32.t'int => 32}
    size_bv : t = {bv.BV128.t'int => 1}
  Line 620:
    t'int :
      t
      ->
      int = [|{bv.BV128.t'int => 4294967295} => 4294967295;
            {bv.BV128.t'int => 128} => 128; {bv.BV128.t'int => 0} => 0;
            _ => 1|]
  Line 676:
    t'int :
      t1
      ->
      int = [|{bv.BV32.t'int => 4} => 4; {bv.BV32.t'int => 3} => 3;
            _ =>
            if arg_09 = {bv.BV32.t'int => 0} \/ arg_09 = {bv.BV32.t'int => 0}
            then 0
            else if arg_09 = {bv.BV32.t'int => 1} \/
                    arg_09 = {bv.BV32.t'int => 1}
                 then 1 else 32|]
  Line 682:
    add : t1 -> t1 -> t1 = fun arg_010 arg_11 -> {bv.BV32.t'int => 4}
File threshold.mlw:
  Line 26:
    max : t1 = {bv.BV32.t'int => 32}
    min : t1 = {bv.BV32.t'int => 32}
    n : t1 = {bv.BV32.t'int => 32}
  Line 27:
    max : t1 = {bv.BV32.t'int => 32}
    min : t1 = {bv.BV32.t'int => 32}
    result : t1 = {bv.BV32.t'int => 32}
    result : t1 = {bv.BV32.t'int => 32}
  Line 30:
    _x : t1 = {bv.BV32.t'int => 4}
    result : t1 = {bv.BV32.t'int => 32}

