File bench/check-ce/array_records_mono.mlw:
Goal array_of_records'vc.
Prover result is: Valid (1 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)
- Checked 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)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 49, characters 45-49:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (6 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_07 arg_11 arg_21 ->
                      {flag = true; first_value = 3; second_value = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val : basic_record -> int = [|_ => 3|]
  Line 15:
    sec_val : basic_record -> int = [|_ => 5|]
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|_ =>
                       [|-2 =>
                         {flag = true; first_value = 3; second_value = 5};
                       _ => {flag = true; first_value = 3; second_value = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 26:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag = true; first_value = 3; second_value = 5};
                          _ =>
                          {flag = true; first_value = 3; second_value = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag = true; first_value = 3; second_value = 5};
                          _ =>
                          {flag = true; first_value = 3; second_value = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag = true; first_value = 3; second_value = 5};
                          _ =>
                          {flag = true; first_value = 3; second_value = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 49, characters 21-25:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (9 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_016 arg_13 arg_23 ->
                      {flag1 = true; first_value1 = 3; second_value1 = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val : basic_record -> int = [|_ => 3|]
  Line 15:
    sec_val : basic_record -> int = [|_ => 5|]
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|_ =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 26:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 49, characters 5-81:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (13 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_026 arg_15 arg_25 ->
                      if arg_026 = true /\ arg_15 = 3 /\ arg_25 = 69
                      then {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 69}
                      else {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val : basic_record -> int = [|_ => 3|]
  Line 15:
    sec_val :
      basic_record
      ->
      int = [|{flag1 = true; first_value1 = 3; second_value1 = 69} => 69;
            _ => 5|]
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|_ =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 50, characters 64-68:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (20 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_039 arg_19 arg_29 ->
                      if arg_039 = true /\ arg_19 = 3 /\ arg_29 = 69
                      then {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 69}
                      else {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val : basic_record -> int = [|_ => 3|]
  Line 15:
    sec_val :
      basic_record
      ->
      int = [|{flag1 = true; first_value1 = 3; second_value1 = 69} => 69;
            _ => 5|]
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|{ArrayRecords.elts =
                        [|-2 =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5};
                        _ =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                        ArrayRecords.length = 1} =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     _ =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 26:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 29:
    mixfix [<-] :
      array_of_records
      ->
      int
      ->
      basic_record
      ->
      array_of_records = fun arg_034 arg_18 arg_28 ->
                          {ArrayRecords.elts =
                           [|-2 =>
                             {flag1 = true;
                              first_value1 = 3;
                              second_value1 = 5};
                           _ =>
                           {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 5}|];
                           ArrayRecords.length = 1}
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 50:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 50, characters 21-25:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (24 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_053 arg_113 arg_213 ->
                      if arg_053 = true /\ arg_113 = 3 /\ arg_213 = 69
                      then {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 69}
                      else {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val : basic_record -> int = [|_ => 3|]
  Line 15:
    sec_val :
      basic_record
      ->
      int = [|{flag1 = true; first_value1 = 3; second_value1 = 69} => 69;
            _ => 5|]
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|{ArrayRecords.elts =
                        [|-2 =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5};
                        _ =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                        ArrayRecords.length = 1} =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     _ =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 26:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 29:
    mixfix [<-] :
      array_of_records
      ->
      int
      ->
      basic_record
      ->
      array_of_records = fun arg_048 arg_112 arg_212 ->
                          {ArrayRecords.elts =
                           [|-2 =>
                             {flag1 = true;
                              first_value1 = 3;
                              second_value1 = 5};
                           _ =>
                           {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 5}|];
                           ArrayRecords.length = 1}
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 50:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 50, characters 5-82:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (27 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_067 arg_117 arg_217 ->
                      if arg_067 = true /\ arg_117 = 42 /\ arg_217 = 69
                      then {flag1 = true;
                            first_value1 = 42;
                            second_value1 = 69}
                      else if arg_067 = true /\ arg_117 = 3 /\ arg_217 = 69
                           then {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 69}
                           else {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val :
      basic_record
      ->
      int = [|{flag1 = true; first_value1 = 42; second_value1 = 69} => 42;
            _ => 3|]
  Line 15:
    sec_val :
      basic_record
      ->
      int = fun arg_061 ->
             if arg_061 = {flag1 = true;
                           first_value1 = 42;
                           second_value1 = 69} \/
                arg_061 = {flag1 = true;
                           first_value1 = 3;
                           second_value1 = 69}
             then 69 else 5
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|{ArrayRecords.elts =
                        [|-2 =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5};
                        _ =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                        ArrayRecords.length = 1} =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     _ =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 29:
    mixfix [<-] :
      array_of_records
      ->
      int
      ->
      basic_record
      ->
      array_of_records = fun arg_062 arg_116 arg_216 ->
                          {ArrayRecords.elts =
                           [|-2 =>
                             {flag1 = true;
                              first_value1 = 3;
                              second_value1 = 5};
                           _ =>
                           {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 5}|];
                           ArrayRecords.length = 1}
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 50:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 51, characters 64-68:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (34 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_081 arg_121 arg_221 ->
                      if arg_081 = true /\ arg_121 = 42 /\ arg_221 = 69
                      then {flag1 = true;
                            first_value1 = 42;
                            second_value1 = 69}
                      else if arg_081 = true /\ arg_121 = 3 /\ arg_221 = 69
                           then {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 69}
                           else {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val :
      basic_record
      ->
      int = [|{flag1 = true; first_value1 = 42; second_value1 = 69} => 42;
            _ => 3|]
  Line 15:
    sec_val :
      basic_record
      ->
      int = fun arg_075 ->
             if arg_075 = {flag1 = true;
                           first_value1 = 42;
                           second_value1 = 69} \/
                arg_075 = {flag1 = true;
                           first_value1 = 3;
                           second_value1 = 69}
             then 69 else 5
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|{ArrayRecords.elts =
                        [|-2 =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5};
                        _ =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                        ArrayRecords.length = 1} =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|-2 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     _ =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 26:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 29:
    mixfix [<-] :
      array_of_records
      ->
      int
      ->
      basic_record
      ->
      array_of_records = fun arg_076 arg_120 arg_220 ->
                          if arg_076 = {ArrayRecords.elts =
                                        [|-2 =>
                                          {flag1 = true;
                                           first_value1 = 3;
                                           second_value1 = 5};
                                        _ =>
                                        {flag1 = true;
                                         first_value1 = 3;
                                         second_value1 = 5}|];
                                        ArrayRecords.length = 1} /\
                             arg_120 = -2 /\
                             arg_220 = {flag1 = true;
                                        first_value1 = 42;
                                        second_value1 = 69}
                          then {ArrayRecords.elts =
                                [|-2 =>
                                  {flag1 = true;
                                   first_value1 = 3;
                                   second_value1 = 5};
                                _ =>
                                {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}|];
                                ArrayRecords.length = 1}
                          else {ArrayRecords.elts =
                                [|-2 =>
                                  {flag1 = true;
                                   first_value1 = 3;
                                   second_value1 = 5};
                                _ =>
                                {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}|];
                                ArrayRecords.length = 1}
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 50:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 51:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 51, characters 21-25:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (38 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_095 arg_125 arg_225 ->
                      if arg_095 = true /\ arg_125 = 42 /\ arg_225 = 69
                      then {flag1 = true;
                            first_value1 = 42;
                            second_value1 = 69}
                      else if arg_095 = true /\ arg_125 = 3 /\ arg_225 = 69
                           then {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 69}
                           else {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val :
      basic_record
      ->
      int = [|{flag1 = true; first_value1 = 42; second_value1 = 69} => 42;
            _ => 3|]
  Line 15:
    sec_val :
      basic_record
      ->
      int = fun arg_089 ->
             if arg_089 = {flag1 = true;
                           first_value1 = 42;
                           second_value1 = 69} \/
                arg_089 = {flag1 = true;
                           first_value1 = 3;
                           second_value1 = 69}
             then 69 else 5
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|{ArrayRecords.elts =
                        [|-2 =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5};
                        _ =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                        ArrayRecords.length = 1} =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|-2 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     _ =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 26:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 29:
    mixfix [<-] :
      array_of_records
      ->
      int
      ->
      basic_record
      ->
      array_of_records = fun arg_090 arg_124 arg_224 ->
                          if arg_090 = {ArrayRecords.elts =
                                        [|-2 =>
                                          {flag1 = true;
                                           first_value1 = 3;
                                           second_value1 = 5};
                                        _ =>
                                        {flag1 = true;
                                         first_value1 = 3;
                                         second_value1 = 5}|];
                                        ArrayRecords.length = 1} /\
                             arg_124 = -2 /\
                             arg_224 = {flag1 = true;
                                        first_value1 = 42;
                                        second_value1 = 69}
                          then {ArrayRecords.elts =
                                [|-2 =>
                                  {flag1 = true;
                                   first_value1 = 3;
                                   second_value1 = 5};
                                _ =>
                                {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}|];
                                ArrayRecords.length = 1}
                          else {ArrayRecords.elts =
                                [|-2 =>
                                  {flag1 = true;
                                   first_value1 = 3;
                                   second_value1 = 5};
                                _ =>
                                {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}|];
                                ArrayRecords.length = 1}
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 50:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 51:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 51, characters 5-82:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (42 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_0109 arg_129 arg_229 ->
                      if arg_0109 = true /\ arg_129 = 23 /\ arg_229 = 69
                      then {flag1 = true;
                            first_value1 = 23;
                            second_value1 = 69}
                      else if arg_0109 = true /\ arg_129 = 42 /\ arg_229 = 69
                           then {flag1 = true;
                                 first_value1 = 42;
                                 second_value1 = 69}
                           else if arg_0109 = true /\
                                   arg_129 = 3 /\ arg_229 = 69
                                then {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 69}
                                else {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val :
      basic_record
      ->
      int = [|{flag1 = true; first_value1 = 23; second_value1 = 69} => 23;
            {flag1 = true; first_value1 = 42; second_value1 = 69} => 42;
            _ => 3|]
  Line 15:
    sec_val :
      basic_record
      ->
      int = fun arg_0103 ->
             if arg_0103 = {flag1 = true;
                            first_value1 = 23;
                            second_value1 = 69} \/
                arg_0103 = {flag1 = true;
                            first_value1 = 42;
                            second_value1 = 69} \/
                arg_0103 = {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 69}
             then 69 else 5
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|{ArrayRecords.elts =
                        [|-2 =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5};
                        _ =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                        ArrayRecords.length = 1} =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|-2 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     _ =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 29:
    mixfix [<-] :
      array_of_records
      ->
      int
      ->
      basic_record
      ->
      array_of_records = fun arg_0104 arg_128 arg_228 ->
                          if arg_0104 = {ArrayRecords.elts =
                                         [|-2 =>
                                           {flag1 = true;
                                            first_value1 = 3;
                                            second_value1 = 5};
                                         _ =>
                                         {flag1 = true;
                                          first_value1 = 3;
                                          second_value1 = 5}|];
                                         ArrayRecords.length = 1} /\
                             arg_128 = -2 /\
                             arg_228 = {flag1 = true;
                                        first_value1 = 42;
                                        second_value1 = 69}
                          then {ArrayRecords.elts =
                                [|-2 =>
                                  {flag1 = true;
                                   first_value1 = 3;
                                   second_value1 = 5};
                                _ =>
                                {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}|];
                                ArrayRecords.length = 1}
                          else {ArrayRecords.elts =
                                [|-2 =>
                                  {flag1 = true;
                                   first_value1 = 3;
                                   second_value1 = 5};
                                _ =>
                                {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}|];
                                ArrayRecords.length = 1}
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 50:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 51:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 52, characters 74-78:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (50 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_0123 arg_133 arg_233 ->
                      if arg_0123 = true /\ arg_133 = 23 /\ arg_233 = 69
                      then {flag1 = true;
                            first_value1 = 23;
                            second_value1 = 69}
                      else if arg_0123 = true /\ arg_133 = 42 /\ arg_233 = 69
                           then {flag1 = true;
                                 first_value1 = 42;
                                 second_value1 = 69}
                           else if arg_0123 = true /\
                                   arg_133 = 3 /\ arg_233 = 69
                                then {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 69}
                                else {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val :
      basic_record
      ->
      int = [|{flag1 = true; first_value1 = 23; second_value1 = 69} => 23;
            {flag1 = true; first_value1 = 42; second_value1 = 69} => 42;
            _ => 3|]
  Line 15:
    sec_val :
      basic_record
      ->
      int = fun arg_0117 ->
             if arg_0117 = {flag1 = true;
                            first_value1 = 23;
                            second_value1 = 69} \/
                arg_0117 = {flag1 = true;
                            first_value1 = 42;
                            second_value1 = 69} \/
                arg_0117 = {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 69}
             then 69 else 5
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|{ArrayRecords.elts =
                        [|-2 =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5};
                        _ =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                        ArrayRecords.length = 1} =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|-2 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|-2 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     _ =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 26:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 29:
    mixfix [<-] :
      array_of_records
      ->
      int
      ->
      basic_record
      ->
      array_of_records = fun arg_0118 arg_132 arg_232 ->
                          if arg_0118 = {ArrayRecords.elts =
                                         [|-2 =>
                                           {flag1 = true;
                                            first_value1 = 3;
                                            second_value1 = 5};
                                         _ =>
                                         {flag1 = true;
                                          first_value1 = 3;
                                          second_value1 = 5}|];
                                         ArrayRecords.length = 1} /\
                             arg_132 = -2 /\
                             arg_232 = {flag1 = true;
                                        first_value1 = 23;
                                        second_value1 = 69}
                          then {ArrayRecords.elts =
                                [|-2 =>
                                  {flag1 = true;
                                   first_value1 = 3;
                                   second_value1 = 5};
                                _ =>
                                {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}|];
                                ArrayRecords.length = 1}
                          else if arg_0118 = {ArrayRecords.elts =
                                              [|-2 =>
                                                {flag1 = true;
                                                 first_value1 = 3;
                                                 second_value1 = 5};
                                              _ =>
                                              {flag1 = true;
                                               first_value1 = 3;
                                               second_value1 = 5}|];
                                              ArrayRecords.length = 1} /\
                                  arg_132 = -2 /\
                                  arg_232 = {flag1 = true;
                                             first_value1 = 42;
                                             second_value1 = 69}
                               then {ArrayRecords.elts =
                                     [|-2 =>
                                       {flag1 = true;
                                        first_value1 = 3;
                                        second_value1 = 5};
                                     _ =>
                                     {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 5}|];
                                     ArrayRecords.length = 1}
                               else {ArrayRecords.elts =
                                     [|-2 =>
                                       {flag1 = true;
                                        first_value1 = 3;
                                        second_value1 = 5};
                                     _ =>
                                     {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 5}|];
                                     ArrayRecords.length = 1}
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 50:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 51:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 52:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 52, characters 41-45:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (54 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_0137 arg_137 arg_237 ->
                      if arg_0137 = true /\ arg_137 = 23 /\ arg_237 = 69
                      then {flag1 = true;
                            first_value1 = 23;
                            second_value1 = 69}
                      else if arg_0137 = true /\ arg_137 = 42 /\ arg_237 = 69
                           then {flag1 = true;
                                 first_value1 = 42;
                                 second_value1 = 69}
                           else if arg_0137 = true /\
                                   arg_137 = 3 /\ arg_237 = 69
                                then {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 69}
                                else {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 5}
  Line 13:
    flag : basic_record -> bool = [|_ => true|]
  Line 14:
    first_val :
      basic_record
      ->
      int = [|{flag1 = true; first_value1 = 23; second_value1 = 69} => 23;
            {flag1 = true; first_value1 = 42; second_value1 = 69} => 42;
            _ => 3|]
  Line 15:
    sec_val :
      basic_record
      ->
      int = fun arg_0131 ->
             if arg_0131 = {flag1 = true;
                            first_value1 = 23;
                            second_value1 = 69} \/
                arg_0131 = {flag1 = true;
                            first_value1 = 42;
                            second_value1 = 69} \/
                arg_0131 = {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 69}
             then 69 else 5
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|{ArrayRecords.elts =
                        [|-2 =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5};
                        _ =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                        ArrayRecords.length = 1} =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|-2 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|-2 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     _ =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 26:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 29:
    mixfix [<-] :
      array_of_records
      ->
      int
      ->
      basic_record
      ->
      array_of_records = fun arg_0132 arg_136 arg_236 ->
                          if arg_0132 = {ArrayRecords.elts =
                                         [|-2 =>
                                           {flag1 = true;
                                            first_value1 = 3;
                                            second_value1 = 5};
                                         _ =>
                                         {flag1 = true;
                                          first_value1 = 3;
                                          second_value1 = 5}|];
                                         ArrayRecords.length = 1} /\
                             arg_136 = -2 /\
                             arg_236 = {flag1 = true;
                                        first_value1 = 23;
                                        second_value1 = 69}
                          then {ArrayRecords.elts =
                                [|-2 =>
                                  {flag1 = true;
                                   first_value1 = 3;
                                   second_value1 = 5};
                                _ =>
                                {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}|];
                                ArrayRecords.length = 1}
                          else if arg_0132 = {ArrayRecords.elts =
                                              [|-2 =>
                                                {flag1 = true;
                                                 first_value1 = 3;
                                                 second_value1 = 5};
                                              _ =>
                                              {flag1 = true;
                                               first_value1 = 3;
                                               second_value1 = 5}|];
                                              ArrayRecords.length = 1} /\
                                  arg_136 = -2 /\
                                  arg_236 = {flag1 = true;
                                             first_value1 = 42;
                                             second_value1 = 69}
                               then {ArrayRecords.elts =
                                     [|-2 =>
                                       {flag1 = true;
                                        first_value1 = 3;
                                        second_value1 = 5};
                                     _ =>
                                     {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 5}|];
                                     ArrayRecords.length = 1}
                               else {ArrayRecords.elts =
                                     [|-2 =>
                                       {flag1 = true;
                                        first_value1 = 3;
                                        second_value1 = 5};
                                     _ =>
                                     {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 5}|];
                                     ArrayRecords.length = 1}
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 50:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 51:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 52:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 52, characters 5-92:
Sub-goal Index in array bounds of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (59 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_0151 arg_141 arg_241 ->
                      if arg_0151 = false /\ arg_141 = 23 /\ arg_241 = 69
                      then {flag1 = false;
                            first_value1 = 23;
                            second_value1 = 69}
                      else if arg_0151 = true /\ arg_141 = 23 /\ arg_241 = 69
                           then {flag1 = true;
                                 first_value1 = 23;
                                 second_value1 = 69}
                           else if arg_0151 = true /\
                                   arg_141 = 42 /\ arg_241 = 69
                                then {flag1 = true;
                                      first_value1 = 42;
                                      second_value1 = 69}
                                else if arg_0151 = true /\
                                        arg_141 = 3 /\ arg_241 = 69
                                     then {flag1 = true;
                                           first_value1 = 3;
                                           second_value1 = 69}
                                     else {flag1 = true;
                                           first_value1 = 3;
                                           second_value1 = 5}
  Line 13:
    flag :
      basic_record
      ->
      bool = [|{flag1 = false; first_value1 = 23; second_value1 = 69} =>
               false;
             _ => true|]
  Line 14:
    first_val :
      basic_record
      ->
      int = fun arg_0149 ->
             if arg_0149 = {flag1 = false;
                            first_value1 = 23;
                            second_value1 = 69} \/
                arg_0149 = {flag1 = true;
                            first_value1 = 23;
                            second_value1 = 69}
             then 23
             else if arg_0149 = {flag1 = true;
                                 first_value1 = 42;
                                 second_value1 = 69}
                  then 42 else 3
  Line 15:
    sec_val :
      basic_record
      ->
      int = fun arg_0145 ->
             if arg_0145 = {flag1 = false;
                            first_value1 = 23;
                            second_value1 = 69} \/
                arg_0145 = {flag1 = true;
                            first_value1 = 23;
                            second_value1 = 69} \/
                arg_0145 = {flag1 = true;
                            first_value1 = 42;
                            second_value1 = 69} \/
                arg_0145 = {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 69}
             then 69 else 5
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|{ArrayRecords.elts =
                        [|-2 =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5};
                        _ =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                        ArrayRecords.length = 1} =>
                       [|-2 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|-2 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|-2 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     _ =>
                     [|-2 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 29:
    mixfix [<-] :
      array_of_records
      ->
      int
      ->
      basic_record
      ->
      array_of_records = fun arg_0146 arg_140 arg_240 ->
                          if arg_0146 = {ArrayRecords.elts =
                                         [|-2 =>
                                           {flag1 = true;
                                            first_value1 = 3;
                                            second_value1 = 5};
                                         _ =>
                                         {flag1 = true;
                                          first_value1 = 3;
                                          second_value1 = 5}|];
                                         ArrayRecords.length = 1} /\
                             arg_140 = -2 /\
                             arg_240 = {flag1 = true;
                                        first_value1 = 23;
                                        second_value1 = 69}
                          then {ArrayRecords.elts =
                                [|-2 =>
                                  {flag1 = true;
                                   first_value1 = 3;
                                   second_value1 = 5};
                                _ =>
                                {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}|];
                                ArrayRecords.length = 1}
                          else if arg_0146 = {ArrayRecords.elts =
                                              [|-2 =>
                                                {flag1 = true;
                                                 first_value1 = 3;
                                                 second_value1 = 5};
                                              _ =>
                                              {flag1 = true;
                                               first_value1 = 3;
                                               second_value1 = 5}|];
                                              ArrayRecords.length = 1} /\
                                  arg_140 = -2 /\
                                  arg_240 = {flag1 = true;
                                             first_value1 = 42;
                                             second_value1 = 69}
                               then {ArrayRecords.elts =
                                     [|-2 =>
                                       {flag1 = true;
                                        first_value1 = 3;
                                        second_value1 = 5};
                                     _ =>
                                     {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 5}|];
                                     ArrayRecords.length = 1}
                               else {ArrayRecords.elts =
                                     [|-2 =>
                                       {flag1 = true;
                                        first_value1 = 3;
                                        second_value1 = 5};
                                     _ =>
                                     {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 5}|];
                                     ArrayRecords.length = 1}
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 50:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 51:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 52:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|-2 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = -2

File "bench/check-ce/array_records_mono.mlw", line 53, characters 13-35:
Sub-goal Assertion of goal var_overwrite'vc.
Prover result is: Valid (69 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)
- Checked model 1: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
- Selected model 2: INCOMPLETE
  - Concrete RAC: INCOMPLETE (terminated with uncaught exception)
  - Abstract RAC: INCOMPLETE (terminated with uncaught exception)
File "bench/check-ce/array_records_mono.mlw", line 47, characters 15-36:
Sub-goal Postcondition of goal var_overwrite'vc.
Prover result is: Unknown (unknown) (70 steps).
The following counterexample model could not be verified
  (both RAC terminated with uncaught exception):
File array_records_mono.mlw:
  Line 12:
    basic_record'mk :
      bool
      ->
      int
      ->
      int
      ->
      basic_record = fun arg_0172 arg_147 arg_247 ->
                      if arg_0172 = false /\ arg_147 = 23 /\ arg_247 = 69
                      then {flag1 = false;
                            first_value1 = 23;
                            second_value1 = 69}
                      else if arg_0172 = true /\ arg_147 = 23 /\ arg_247 = 69
                           then {flag1 = true;
                                 first_value1 = 23;
                                 second_value1 = 69}
                           else if arg_0172 = true /\
                                   arg_147 = 42 /\ arg_247 = 69
                                then {flag1 = true;
                                      first_value1 = 42;
                                      second_value1 = 69}
                                else if arg_0172 = true /\
                                        arg_147 = 3 /\ arg_247 = 69
                                     then {flag1 = true;
                                           first_value1 = 3;
                                           second_value1 = 69}
                                     else {flag1 = true;
                                           first_value1 = 3;
                                           second_value1 = 5}
  Line 13:
    flag :
      basic_record
      ->
      bool = [|{flag1 = false; first_value1 = 23; second_value1 = 69} =>
               false;
             _ => true|]
  Line 14:
    first_val :
      basic_record
      ->
      int = fun arg_0170 ->
             if arg_0170 = {flag1 = false;
                            first_value1 = 23;
                            second_value1 = 69} \/
                arg_0170 = {flag1 = true;
                            first_value1 = 23;
                            second_value1 = 69}
             then 23
             else if arg_0170 = {flag1 = true;
                                 first_value1 = 42;
                                 second_value1 = 69}
                  then 42 else 3
  Line 15:
    sec_val :
      basic_record
      ->
      int = fun arg_0166 ->
             if arg_0166 = {flag1 = false;
                            first_value1 = 23;
                            second_value1 = 69} \/
                arg_0166 = {flag1 = true;
                            first_value1 = 23;
                            second_value1 = 69} \/
                arg_0166 = {flag1 = true;
                            first_value1 = 42;
                            second_value1 = 69} \/
                arg_0166 = {flag1 = true;
                            first_value1 = 3;
                            second_value1 = 69}
             then 69 else 5
  Line 19:
    elts :
      array_of_records
      ->
      int
      ->
      basic_record = [|{ArrayRecords.elts =
                        [|0 =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5};
                        _ =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                        ArrayRecords.length = 1} =>
                       [|0 =>
                         {flag1 = true; first_value1 = 3; second_value1 = 5};
                       _ =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|0 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|0 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|0 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|0 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     {ArrayRecords.elts =
                      [|0 =>
                        {flag1 = true; first_value1 = 3; second_value1 = 5};
                      _ =>
                      {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                      ArrayRecords.length = 1} =>
                     [|0 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                     _ =>
                     [|0 =>
                       {flag1 = true; first_value1 = 3; second_value1 = 5};
                     _ => {flag1 = true; first_value1 = 3; second_value1 = 5}|]|]
  Line 20:
    length : array_of_records -> int = [|_ => 1|]
  Line 27:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = 0
  Line 29:
    mixfix [<-] :
      array_of_records
      ->
      int
      ->
      basic_record
      ->
      array_of_records = fun arg_0167 arg_146 arg_246 ->
                          if arg_0167 = {ArrayRecords.elts =
                                         [|0 =>
                                           {flag1 = true;
                                            first_value1 = 3;
                                            second_value1 = 5};
                                         _ =>
                                         {flag1 = true;
                                          first_value1 = 3;
                                          second_value1 = 5}|];
                                         ArrayRecords.length = 1} /\
                             arg_146 = 0 /\
                             arg_246 = {flag1 = false;
                                        first_value1 = 23;
                                        second_value1 = 69}
                          then {ArrayRecords.elts =
                                [|0 =>
                                  {flag1 = true;
                                   first_value1 = 3;
                                   second_value1 = 5};
                                _ =>
                                {flag1 = true;
                                 first_value1 = 3;
                                 second_value1 = 5}|];
                                ArrayRecords.length = 1}
                          else if arg_0167 = {ArrayRecords.elts =
                                              [|0 =>
                                                {flag1 = true;
                                                 first_value1 = 3;
                                                 second_value1 = 5};
                                              _ =>
                                              {flag1 = true;
                                               first_value1 = 3;
                                               second_value1 = 5}|];
                                              ArrayRecords.length = 1} /\
                                  arg_146 = 0 /\
                                  arg_246 = {flag1 = true;
                                             first_value1 = 23;
                                             second_value1 = 69}
                               then {ArrayRecords.elts =
                                     [|0 =>
                                       {flag1 = true;
                                        first_value1 = 3;
                                        second_value1 = 5};
                                     _ =>
                                     {flag1 = true;
                                      first_value1 = 3;
                                      second_value1 = 5}|];
                                     ArrayRecords.length = 1}
                               else if arg_0167 = {ArrayRecords.elts =
                                                   [|0 =>
                                                     {flag1 = true;
                                                      first_value1 = 3;
                                                      second_value1 = 5};
                                                   _ =>
                                                   {flag1 = true;
                                                    first_value1 = 3;
                                                    second_value1 = 5}|];
                                                   ArrayRecords.length = 1} /\
                                       arg_146 = 0 /\
                                       arg_246 = {flag1 = true;
                                                  first_value1 = 42;
                                                  second_value1 = 69}
                                    then {ArrayRecords.elts =
                                          [|0 =>
                                            {flag1 = true;
                                             first_value1 = 3;
                                             second_value1 = 5};
                                          _ =>
                                          {flag1 = true;
                                           first_value1 = 3;
                                           second_value1 = 5}|];
                                          ArrayRecords.length = 1}
                                    else {ArrayRecords.elts =
                                          [|0 =>
                                            {flag1 = true;
                                             first_value1 = 3;
                                             second_value1 = 5};
                                          _ =>
                                          {flag1 = true;
                                           first_value1 = 3;
                                           second_value1 = 5}|];
                                          ArrayRecords.length = 1}
  Line 35:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 45:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = 0
  Line 47:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
    i : int = 0
  Line 49:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 50:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 51:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}
  Line 52:
    a :
      array_of_records = {ArrayRecords.elts =
                          [|0 =>
                            {flag1 = true;
                             first_value1 = 3;
                             second_value1 = 5};
                          _ =>
                          {flag1 = true; first_value1 = 3; second_value1 = 5}|];
                          ArrayRecords.length = 1}

