<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 27, characters 45-49:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown + incomplete) (3181 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_5431 bOUND_VARIABLE_5441 -> 0
    length : array basic_record -> int = [|_ => 0|]
  Line 20:
    mixfix [] :
      array
      basic_record
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_5801 bOUND_VARIABLE_5811 ->
                      {flag = true; first_value = 3; second_value = 5}
File array_records_poly.mlw:
  Line 14:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_6931 bOUND_VARIABLE_6941
                      bOUND_VARIABLE_6951 ->
                      {flag = true; first_value = 3; second_value = 5}
  Line 16:
    flag : basic_record -> bool = [|_ => true|]
  Line 17:
    first_val : basic_record -> int = [|_ => 3|]
  Line 18:
    sec_val : basic_record -> int = [|_ => 5|]
  Line 23:
    i : int = -1
  Line 27:
    i : int = -1

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 27, characters 21-25:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown + incomplete) (3238 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_5523 bOUND_VARIABLE_5531 -> 0
    length : array basic_record -> int = [|_ => 0|]
  Line 20:
    mixfix [] :
      array
      basic_record
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_5893 bOUND_VARIABLE_5901 ->
                      {flag = true; first_value = 3; second_value = 5}
File array_records_poly.mlw:
  Line 14:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_7021 bOUND_VARIABLE_7033
                      bOUND_VARIABLE_7041 ->
                      {flag = true; first_value = 3; second_value = 5}
  Line 16:
    flag : basic_record -> bool = [|_ => true|]
  Line 17:
    first_val : basic_record -> int = [|_ => 3|]
  Line 18:
    sec_val : basic_record -> int = [|_ => 5|]
  Line 23:
    i : int = -1
  Line 27:
    i : int = -1
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = {flag = true; first_value = 3; second_value = 5}

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 27, characters 5-81:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown + incomplete) (3419 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_5723 bOUND_VARIABLE_5731 -> 0
    length : array basic_record -> int = [|_ => 0|]
  Line 20:
    mixfix [] :
      array
      basic_record
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_6093 bOUND_VARIABLE_6101 ->
                      {flag = true; first_value = 3; second_value = 5}
File array_records_poly.mlw:
  Line 14:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_7221 bOUND_VARIABLE_7231
                      bOUND_VARIABLE_7241 ->
                      {flag = true; first_value = 3; second_value = 5}
  Line 16:
    flag : basic_record -> bool = [|_ => true|]
  Line 17:
    first_val : basic_record -> int = [|_ => 3|]
  Line 18:
    sec_val : basic_record -> int = [|_ => 5|]
  Line 23:
    i : int = -1
  Line 27:
    i : int = -1
    result of call at line 27, characters 13-81 :
      basic_record = {flag = true; first_value = 3; second_value = 5}
    result of call at line 27, characters 21-30 : bool = true
    result of call at line 27, characters 21-25 :
      basic_record = {flag = true; first_value = 3; second_value = 5}
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = {flag = true; first_value = 3; second_value = 5}

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Checked model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 28, characters 64-68:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Step limit exceeded (150292 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 16:
    elts :
      array
      basic_record
      ->
      int
      ->
      basic_record = [|_ =>
                       [|_ =>
                         {flag = true; first_value = 3; second_value = 0}|]|]
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_6881 bOUND_VARIABLE_6893 -> 0
    length : array basic_record -> int = [|_ => 0|]
  Line 20:
    mixfix [] :
      array
      basic_record
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_7205 bOUND_VARIABLE_7211 ->
                      {flag = true; first_value = 3; second_value = 0}
File array_records_poly.mlw:
  Line 14:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_8371 bOUND_VARIABLE_8381
                      bOUND_VARIABLE_8391 ->
                      {flag = true; first_value = 3; second_value = 0}
  Line 16:
    flag : basic_record -> bool = [|_ => true|]
  Line 17:
    first_val : basic_record -> int = [|_ => 3|]
  Line 18:
    sec_val : basic_record -> int = [|_ => 0|]
  Line 23:
    i : int = -1
  Line 27:
    result of call at line 27, characters 13-81 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
    result of call at line 27, characters 21-30 : bool = true
    result of call at line 27, characters 21-25 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
  Line 28:
    i : int = -1

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Checked model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 28, characters 21-25:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Step limit exceeded (150302 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 16:
    elts :
      array
      basic_record
      ->
      int
      ->
      basic_record = [|_ =>
                       [|_ =>
                         {flag = true; first_value = 3; second_value = 0}|]|]
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_7023 bOUND_VARIABLE_7035 -> 0
    length : array basic_record -> int = [|_ => 0|]
  Line 20:
    mixfix [] :
      array
      basic_record
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_7341 bOUND_VARIABLE_7351 ->
                      {flag = true; first_value = 3; second_value = 0}
File array_records_poly.mlw:
  Line 14:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_8511 bOUND_VARIABLE_8521
                      bOUND_VARIABLE_8531 ->
                      {flag = true; first_value = 3; second_value = 0}
  Line 16:
    flag : basic_record -> bool = [|_ => true|]
  Line 17:
    first_val : basic_record -> int = [|_ => 3|]
  Line 18:
    sec_val : basic_record -> int = [|_ => 0|]
  Line 23:
    i : int = -1
  Line 27:
    result of call at line 27, characters 13-81 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
    result of call at line 27, characters 21-30 : bool = true
    result of call at line 27, characters 21-25 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
  Line 28:
    i : int = -1
    result of call at line 28, characters 64-81 : int = 0
    result of call at line 28, characters 64-68 :
      basic_record = {flag = true; first_value = 3; second_value = 0}

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Checked model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 28, characters 5-82:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Step limit exceeded (150309 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 16:
    elts :
      array
      basic_record
      ->
      int
      ->
      basic_record = [|_ =>
                       [|_ =>
                         {flag = true; first_value = 3; second_value = 0}|]|]
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_7391 bOUND_VARIABLE_7401 -> 0
    length : array basic_record -> int = [|_ => 0|]
  Line 20:
    mixfix [] :
      array
      basic_record
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_7741 bOUND_VARIABLE_7751 ->
                      {flag = true; first_value = 3; second_value = 0}
File array_records_poly.mlw:
  Line 14:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun bOUND_VARIABLE_5938 bOUND_VARIABLE_5939
                      bOUND_VARIABLE_5940 ->
                      {flag = true; first_value = 3; second_value = 0}
  Line 16:
    flag : basic_record -> bool = [|_ => true|]
  Line 17:
    first_val : basic_record -> int = [|_ => 3|]
  Line 18:
    sec_val : basic_record -> int = [|_ => 0|]
  Line 23:
    i : int = -1
  Line 27:
    result of call at line 27, characters 13-81 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
    result of call at line 27, characters 21-30 : bool = true
    result of call at line 27, characters 21-25 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
  Line 28:
    i : int = -1
    result of call at line 28, characters 13-82 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
    result of call at line 28, characters 21-30 : bool = true
    result of call at line 28, characters 21-25 :
      basic_record = {flag = true; first_value = 3; second_value = 0}
    result of call at line 28, characters 64-81 : int = 0
    result of call at line 28, characters 64-68 :
      basic_record = {flag = true; first_value = 3; second_value = 0}

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Checked model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 29, characters 64-68:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Step limit exceeded (150585 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_8311 bOUND_VARIABLE_8321 -> 0
    length : array basic_record -> int = [|_ => 0|]
File array_records_poly.mlw:
  Line 16:
    flag : basic_record -> bool = [|_ => true|]
  Line 17:
    first_val : basic_record -> int = [|_ => 3|]
  Line 18:
    sec_val :
      basic_record
      ->
      int = fun bOUND_VARIABLE_10362 ->
             if {flag = true; first_value = 3; second_value = 69} = bOUND_VARIABLE_10362
             then 69 else 5
  Line 23:
    i : int = -1
  Line 27:
    result of call at line 27, characters 13-81 :
      basic_record = {flag = true; first_value = 3; second_value = 69}
    result of call at line 27, characters 21-30 : bool = true
    result of call at line 27, characters 21-25 :
      basic_record = {flag = true; first_value = 3; second_value = 5}
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = {flag = true; first_value = 3; second_value = 5}
  Line 28:
    result of call at line 28, characters 13-82 :
      basic_record = {flag = true; first_value = 3; second_value = 69}
    result of call at line 28, characters 21-30 : bool = true
    result of call at line 28, characters 21-25 :
      basic_record = {flag = true; first_value = 3; second_value = 69}
    result of call at line 28, characters 64-81 : int = 69
    result of call at line 28, characters 64-68 :
      basic_record = {flag = true; first_value = 3; second_value = 69}
  Line 29:
    i : int = -1

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Checked model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 29, characters 21-25:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Step limit exceeded (150602 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_8451 bOUND_VARIABLE_8461 -> 0
    length : array basic_record -> int = [|_ => 0|]
File array_records_poly.mlw:
  Line 16:
    flag : basic_record -> bool = [|_ => true|]
  Line 17:
    first_val : basic_record -> int = [|_ => 3|]
  Line 18:
    sec_val :
      basic_record
      ->
      int = fun bOUND_VARIABLE_10502 ->
             if {flag = true; first_value = 3; second_value = 69} = bOUND_VARIABLE_10502
             then 69 else 5
  Line 23:
    i : int = -1
  Line 27:
    result of call at line 27, characters 13-81 :
      basic_record = {flag = true; first_value = 3; second_value = 69}
    result of call at line 27, characters 21-30 : bool = true
    result of call at line 27, characters 21-25 :
      basic_record = {flag = true; first_value = 3; second_value = 5}
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = {flag = true; first_value = 3; second_value = 5}
  Line 28:
    result of call at line 28, characters 13-82 :
      basic_record = {flag = true; first_value = 3; second_value = 69}
    result of call at line 28, characters 21-30 : bool = true
    result of call at line 28, characters 21-25 :
      basic_record = {flag = true; first_value = 3; second_value = 69}
    result of call at line 28, characters 64-81 : int = 69
    result of call at line 28, characters 64-68 :
      basic_record = {flag = true; first_value = 3; second_value = 69}
  Line 29:
    i : int = -1
    result of call at line 29, characters 64-81 : int = 69
    result of call at line 29, characters 64-68 :
      basic_record = {flag = true; first_value = 3; second_value = 69}

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Checked model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 29, characters 5-82:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Step limit exceeded (150057 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 16:
    elts :
      array
      basic_record
      ->
      int
      ->
      basic_record = [|_ =>
                       [|-1 =>
                         {flag = false; first_value = 1; second_value = 2};
                       _ => {flag = false; first_value = 1; second_value = 2}|]|]
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_8883 bOUND_VARIABLE_8891 -> 0
    length : array basic_record -> int = [|_ => 0|]
File array_records_poly.mlw:
  Line 16:
    flag : basic_record -> bool = [|_ => false|]
  Line 17:
    first_val : basic_record -> int = [|_ => 1|]
  Line 18:
    sec_val : basic_record -> int = [|_ => 2|]
  Line 23:
    i : int = -1
  Line 27:
    result of call at line 27, characters 13-81 :
      basic_record = {flag = false; first_value = 1; second_value = 2}
    result of call at line 27, characters 21-30 : bool = false
    result of call at line 27, characters 21-25 :
      basic_record = {flag = false; first_value = 1; second_value = 2}
    result of call at line 27, characters 45-61 : int = 1
    result of call at line 27, characters 45-49 :
      basic_record = {flag = false; first_value = 1; second_value = 2}
  Line 28:
    result of call at line 28, characters 13-82 :
      basic_record = {flag = false; first_value = 1; second_value = 2}
    result of call at line 28, characters 21-30 : bool = false
    result of call at line 28, characters 21-25 :
      basic_record = {flag = false; first_value = 1; second_value = 2}
    result of call at line 28, characters 64-81 : int = 2
    result of call at line 28, characters 64-68 :
      basic_record = {flag = false; first_value = 1; second_value = 2}
  Line 29:
    i : int = -1
    result of call at line 29, characters 13-82 :
      basic_record = {flag = false; first_value = 1; second_value = 2}
    result of call at line 29, characters 21-30 : bool = false
    result of call at line 29, characters 21-25 :
      basic_record = {flag = false; first_value = 1; second_value = 2}
    result of call at line 29, characters 64-81 : int = 2
    result of call at line 29, characters 64-68 :
      basic_record = {flag = false; first_value = 1; second_value = 2}

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Checked model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 30, characters 74-78:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Step limit exceeded (157569 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_9651 bOUND_VARIABLE_9661 -> 0
    length : array basic_record -> int = [|_ => 0|]
File array_records_poly.mlw:
  Line 17:
    first_val :
      basic_record
      ->
      int = [|epsilon x. (second_value x) = 69 /\ (first_value x) = 42 => 42;
            _ =>
            if epsilon x.
            (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_11953
            then 23
            else if epsilon x.
                 (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_11953
                 then 23 else 3|]
  Line 18:
    sec_val :
      basic_record
      ->
      int = [|epsilon x. (second_value x) = 69 /\ (first_value x) = 42 => 69;
            _ =>
            if epsilon x.
            (second_value x) = 69 /\ (first_value x) = 3 = bOUND_VARIABLE_11952
            then 69
            else if epsilon x.
                 (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_11952
                 then 69
                 else if epsilon x.
                      (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_11952
                      then 69 else 5|]
  Line 23:
    i : int = -1
  Line 27:
    result of call at line 27, characters 13-81 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
    result of call at line 27, characters 21-30 : bool = true
    result of call at line 27, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 5 /\ (first_value x) = 3
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = epsilon x.
      (second_value x) = 5 /\ (first_value x) = 3
  Line 28:
    result of call at line 28, characters 13-82 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
    result of call at line 28, characters 21-30 : bool = true
    result of call at line 28, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
    result of call at line 28, characters 64-81 : int = 69
    result of call at line 28, characters 64-68 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
  Line 29:
    result of call at line 29, characters 13-82 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23
    result of call at line 29, characters 21-30 : bool = true
    result of call at line 29, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
    result of call at line 29, characters 64-81 : int = 69
    result of call at line 29, characters 64-68 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
  Line 30:
    i : int = -1

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Checked model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 30, characters 41-45:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Step limit exceeded (157749 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_9793 bOUND_VARIABLE_9801 -> 0
    length : array basic_record -> int = [|_ => 0|]
File array_records_poly.mlw:
  Line 17:
    first_val :
      basic_record
      ->
      int = [|epsilon x. (second_value x) = 69 /\ (first_value x) = 42 => 42;
            _ =>
            if epsilon x.
            (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_12093
            then 23
            else if epsilon x.
                 (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_12093
                 then 23 else 3|]
  Line 18:
    sec_val :
      basic_record
      ->
      int = [|epsilon x. (second_value x) = 69 /\ (first_value x) = 42 => 69;
            _ =>
            if epsilon x.
            (second_value x) = 69 /\ (first_value x) = 3 = bOUND_VARIABLE_12092
            then 69
            else if epsilon x.
                 (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_12092
                 then 69
                 else if epsilon x.
                      (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_12092
                      then 69 else 5|]
  Line 23:
    i : int = -1
  Line 27:
    result of call at line 27, characters 13-81 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
    result of call at line 27, characters 21-30 : bool = true
    result of call at line 27, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 5 /\ (first_value x) = 3
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = epsilon x.
      (second_value x) = 5 /\ (first_value x) = 3
  Line 28:
    result of call at line 28, characters 13-82 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
    result of call at line 28, characters 21-30 : bool = true
    result of call at line 28, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
    result of call at line 28, characters 64-81 : int = 69
    result of call at line 28, characters 64-68 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
  Line 29:
    result of call at line 29, characters 13-82 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23
    result of call at line 29, characters 21-30 : bool = true
    result of call at line 29, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
    result of call at line 29, characters 64-81 : int = 69
    result of call at line 29, characters 64-68 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
  Line 30:
    i : int = -1
    result of call at line 30, characters 74-91 : int = 69
    result of call at line 30, characters 74-78 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Checked model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 30, characters 5-92:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Step limit exceeded (157844 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_9983 bOUND_VARIABLE_9993 -> 0
    length : array basic_record -> int = [|_ => 0|]
File array_records_poly.mlw:
  Line 17:
    first_val :
      basic_record
      ->
      int = [|epsilon x. (second_value x) = 69 /\ (first_value x) = 42 => 42;
            _ =>
            if epsilon x.
            (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_12283
            then 23
            else if epsilon x.
                 (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_12283
                 then 23 else 3|]
  Line 18:
    sec_val :
      basic_record
      ->
      int = [|epsilon x. (second_value x) = 69 /\ (first_value x) = 42 => 69;
            _ =>
            if epsilon x.
            (second_value x) = 69 /\ (first_value x) = 3 = bOUND_VARIABLE_12282
            then 69
            else if epsilon x.
                 (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_12282
                 then 69
                 else if epsilon x.
                      (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_12282
                      then 69 else 5|]
  Line 23:
    i : int = -1
  Line 27:
    result of call at line 27, characters 13-81 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
    result of call at line 27, characters 21-30 : bool = true
    result of call at line 27, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 5 /\ (first_value x) = 3
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = epsilon x.
      (second_value x) = 5 /\ (first_value x) = 3
  Line 28:
    result of call at line 28, characters 13-82 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
    result of call at line 28, characters 21-30 : bool = true
    result of call at line 28, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
    result of call at line 28, characters 64-81 : int = 69
    result of call at line 28, characters 64-68 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
  Line 29:
    result of call at line 29, characters 13-82 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23
    result of call at line 29, characters 21-30 : bool = true
    result of call at line 29, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
    result of call at line 29, characters 64-81 : int = 69
    result of call at line 29, characters 64-68 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
  Line 30:
    i : int = -1
    result of call at line 30, characters 13-92 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23
    result of call at line 30, characters 41-57 : int = 23
    result of call at line 30, characters 41-45 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23
    result of call at line 30, characters 74-91 : int = 69
    result of call at line 30, characters 74-78 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23

File "bench/check-ce/array_records_poly.mlw", line 31, characters 13-35:
Sub-goal Assertion of goal var_overwrite'vc.
Prover result is: Valid (6264 steps).

<check_ce:categorization>Categorizations of models:
- Checked model 0: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
- Selected model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
  - Abstract RAC: INCOMPLETE (terminated because Precondition of `var_overwrite` cannot be evaluated)
File "bench/check-ce/array_records_poly.mlw", line 25, characters 15-36:
Sub-goal Postcondition of goal var_overwrite'vc.
Prover result is: Unknown (unknown + incomplete) (10733 steps).
The following counterexample model could not be verified
  (both RAC terminated because Precondition of `var_overwrite` cannot be evaluated):
File array.mlw:
  Line 17:
    length :
      ty
      ->
      uni
      ->
      int = fun bOUND_VARIABLE_11281 bOUND_VARIABLE_11293 -> 0
    length : array basic_record -> int = [|_ => 0|]
File array_records_poly.mlw:
  Line 17:
    first_val :
      basic_record
      ->
      int = fun bOUND_VARIABLE_14033 ->
             if epsilon x.
             (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_14033
             then 23
             else if epsilon x.
                  (second_value x) = 69 /\ (first_value x) = 42 = bOUND_VARIABLE_14033
                  then 42
                  else if epsilon x.
                       (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_14033
                       then 23 else 3
  Line 18:
    sec_val :
      basic_record
      ->
      int = fun bOUND_VARIABLE_14032 ->
             if epsilon x.
             (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_14032
             then 69
             else if epsilon x.
                  (second_value x) = 69 /\ (first_value x) = 42 = bOUND_VARIABLE_14032
                  then 69
                  else if epsilon x.
                       (second_value x) = 69 /\ (first_value x) = 23 = bOUND_VARIABLE_14032
                       then 69
                       else if epsilon x.
                            (second_value x) = 69 /\ (first_value x) = 3 = bOUND_VARIABLE_14032
                            then 69 else 5
  Line 23:
    i : int = 0
  Line 25:
    i : int = 0
  Line 27:
    result of call at line 27, characters 13-81 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
    result of call at line 27, characters 21-30 : bool = true
    result of call at line 27, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 5 /\ (first_value x) = 3
    result of call at line 27, characters 45-61 : int = 3
    result of call at line 27, characters 45-49 :
      basic_record = epsilon x.
      (second_value x) = 5 /\ (first_value x) = 3
  Line 28:
    result of call at line 28, characters 13-82 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
    result of call at line 28, characters 21-30 : bool = true
    result of call at line 28, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
    result of call at line 28, characters 64-81 : int = 69
    result of call at line 28, characters 64-68 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 3
  Line 29:
    result of call at line 29, characters 13-82 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23
    result of call at line 29, characters 21-30 : bool = true
    result of call at line 29, characters 21-25 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
    result of call at line 29, characters 64-81 : int = 69
    result of call at line 29, characters 64-68 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 42
  Line 30:
    result of call at line 30, characters 13-92 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23
    result of call at line 30, characters 41-57 : int = 23
    result of call at line 30, characters 41-45 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23
    result of call at line 30, characters 74-91 : int = 69
    result of call at line 30, characters 74-78 :
      basic_record = epsilon x.
      (second_value x) = 69 /\ (first_value x) = 23

